blob: 7b4c94d87f2ac77dff65047ef8f5e88ae1128911 [file] [log] [blame]
{"version":3,"sources":["unknown"],"names":["global","factory","exports","module","define","amd","self","echarts","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","hasOwnProperty","__extends","__","constructor","prototype","create","__assign","assign","t","s","i","n","arguments","length","call","apply","__spreadArrays","il","r","k","a","j","jl","Browser","firefox","ie","edge","weChat","Env","browser","node","wxa","worker","canvasSupported","svgSupported","touchEventsSupported","pointerEventsSupported","domSupported","env","wx","getSystemInfoSync","document","navigator","detect","userAgent","ua","match","test","version","createElement","getContext","SVGRect","window","BUILTIN_OBJECT","TYPED_ARRAY","objToString","toString","arrayProto","nativeForEach","forEach","nativeFilter","filter","nativeSlice","slice","nativeMap","map","ctorFunction","protoFunction","methods","$override","name","fn","idStart","guid","logError","args","_i","console","error","clone","source","result","typeStr","isPrimitive","len","Ctor","from","isDom","key","merge","target","overwrite","isObject","targetProp","sourceProp","isArray","isBuiltInObject","mergeAll","targetAndSources","extend","defaults","overlay","keysArr","keys","createCanvas","indexOf","array","value","inherits","clazz","baseClazz","clazzPrototype","F","prop","superClass","mixin","override","getOwnPropertyNames","keyList","isArrayLike","data","each","arr","cb","context","push","reduce","memo","find","obj","bindPolyfill","func","concat","bind","isFunction","curry","isString","isStringSafe","isNumber","type","isTypedArray","nodeType","ownerDocument","isGradientObject","colorStops","isPatternObject","image","isRegExp","eqNaN","retrieve","retrieve2","value0","value1","retrieve3","value2","normalizeCssArray","val","assert","condition","message","Error","trim","str","replace","primitiveKey","setAsPrimitive","HashMap","isArr","thisMap","visit","set","get","removeKey","createHashMap","concatArray","newArray","offset","createObject","proto","properties","StyleCtor","hasOwn","own","noop","zrUtil","freeze","x","y","copy","out","v","clone$1","add","v1","v2","scaleAndAdd","sub","Math","sqrt","lenSquare","lengthSquare","mul","div","dot","scale","normalize","distance","dist","distanceSquare","distSquare","negate","lerp","applyTransform","m","min","max","vector","Param","e","topTarget","Draggable","handler","on","_dragStart","_drag","_dragEnd","draggingTarget","draggable","parent","_draggingTarget","dragging","_x","offsetX","_y","offsetY","dispatchToElement","event","dx","dy","drift","dropTarget","findHover","lastDropTarget","_dropTarget","Eventful","eventProcessors","_$eventProcessor","query","_$handlers","_h","eventProcessor","normalizeQuery","h","wrap","ctx","callAtLast","zrEventfulCallAtLast","lastIndex","lastWrap","splice","isSilent","eventName","off","eventType","newList","l","trigger","argLen","hItem","afterTrigger","triggerWithContext","LN2","log","determinant","rows","rank","rowStart","rowMask","colMask","detCache","cacheKey","fullRank","colStart","round","subRowMask","subRowStart","sum","colLocalIdx","colTag","buildTransformer","src","dest","mA","det","vh","srcPointX","srcPointY","pk","EVENT_SAVED_PROP","_calcOut","transformLocalCoord","elFrom","elTarget","inX","inY","transformCoordWithViewport","el","inverse","getBoundingClientRect","isCanvasEl","saved","markers","prepareCoordMarkers","transformer","preparePointerTransformer","propLR","propTB","marker","stl","style","idxLR","idxTB","cssText","join","appendChild","transformerName","oldSrcCoords","srcCoords","destCoords","oldCoordTheSame","rect","ii","left","top","offsetLeft","offsetTop","nodeName","toUpperCase","isDomLevel2","addEventListener","MOUSE_EVENT_REG","_calcOut$1","clientToLocal","calculate","calculateZrXY","layerX","zrX","zrY","layerY","ex","clientX","ey","clientY","box","getNativeEvent","normalizeEvent","isTouch","wheelDelta","getWheelDeltaMayPolyfill","zrDelta","detail","touch","targetTouches","changedTouches","button","which","undefined","rawWheelDelta","deltaX","deltaY","delta","abs","sign","opt","attachEvent","removeEventListener","detachEvent","stop","preventDefault","stopPropagation","cancelBubble","returnValue","isMiddleOrRightButtonOnMouseUpDown","GestureMgr","_track","recognize","root","_doTrack","_recognize","clear","touches","trackItem","points","pos","recognizers","gestureInfo","dist$1","pointPair","center","pinch","tracks","trackLen","pinchEnd","pinchPre","pinchScale","isFinite","pinchCenter","pinchX","pinchY","SILENT","makeEventPacket","eveType","targetInfo","gestureEvent","zrByTouch","stopEvent","EmptyProxy","_super","_this","dispose","setCursor","HoveredResult","handlerNames","Handler","storage","painter","proxy","painterRoot","_hovered","setHandlerProxy","_draggingMgr","mousemove","isOutside","isOutsideBoundary","lastHovered","lastHoveredTarget","__zr","hovered","hoveredTarget","cursor","mouseout","eventControl","zrEventControl","zrIsToLocalDOM","resize","dispatch","eventArgs","setCursorStyle","cursorStyle","silent","eventKey","eventPacket","__hostTarget","eachOtherLayer","layer","exclude","list","getDisplayList","hoverCheckResult","ignore","isHover","processGesture","stage","_gestureMgr","gestureMgr","dom","res","_downEl","_downPoint","_upEl","displayable","rectHover","ignoreClip","clipPath","getClipPath","contain","hostEl","handlerInstance","getWidth","getHeight","create$1","identity","copy$1","mul$1","m1","m2","out0","out1","out2","out3","out4","out5","translate","rotate","rad","aa","ac","atx","ab","ad","aty","st","sin","ct","cos","scale$1","vx","vy","invert","clone$2","matrix","mIdentity","EPSILON","isNotAroundZero","scaleTmp","tmpTransform","originTransform","Transformable","setPosition","setScale","scaleX","scaleY","setOrigin","originX","originY","needLocalTransform","rotation","updateTransform","parentHasTransform","transform","getLocalTransform","_resolveGlobalScaleRatio","globalScaleRatio","getGlobalScale","relX","relY","sx","sy","invTransform","getComputedTransform","transformNode","ancestors","pop","setLocalTransform","atan2","PI","decomposeTransform","ox","oy","transformCoordToLocal","transformCoordToGlobal","getLineScale","initDefaultProps","easing","linear","quadraticIn","quadraticOut","quadraticInOut","cubicIn","cubicOut","cubicInOut","quarticIn","quarticOut","quarticInOut","quinticIn","quinticOut","quinticInOut","sinusoidalIn","sinusoidalOut","sinusoidalInOut","exponentialIn","pow","exponentialOut","exponentialInOut","circularIn","circularOut","circularInOut","elasticIn","asin","elasticOut","elasticInOut","backIn","backOut","backInOut","bounceIn","bounceOut","bounceInOut","Clip","opts","_initialized","_startTime","_pausedTime","_paused","_life","life","_delay","delay","loop","gap","onframe","ondestroy","onrestart","step","globalTime","deltaTime","percent","easing$1","easingFunc","schedule","_restart","remainder","pause","resume","Entry","LinkedList","_len","insert","entry","insertEntry","head","tail","next","prev","remove","LRU","maxSize","_list","_maxSize","_map","put","removed","_lastRemovedEntry","leastUsedEntry","kCSSColorTable","clampCssByte","clampCssAngle","clampCssFloat","f","parseCssInt","charAt","parseFloat","parseInt","parseCssFloat","cssHueToRgb","lerpNumber","setRgba","g","copyRgba","colorCache","lastRemovedArr","putToCache","colorStr","rgbaArr","parse","cached","toLowerCase","strLen","iv","op","ep","fname","substr","params","split","alpha","hsla2rgba","hsla","rgba","rgba2hsla","R","G","B","vMin","vMax","L","H","S","deltaR","deltaG","deltaB","lift","color","level","colorArr","stringify","toHex","fastLerp","normalizedValue","colors","leftIndex","floor","rightIndex","ceil","leftColor","rightColor","dv","fastMapToColor","lerp$1","fullOutput","mapToColor","modifyHSL","modifyAlpha","arrColor","lum","backgroundLum","random","arraySlice","interpolateNumber","p0","p1","interpolate1DArray","interpolate2DArray","len2","add1DArray","add2DArray","fillArray","val0","val1","arrDim","arr0","arr1","arr0Len","arr1Len","isPreviousLarger","isNaN","is1DArraySame","catmullRomInterpolate","p2","p3","t2","t3","v0","catmullRomInterpolate1DArray","catmullRomInterpolate2DArray","cloneValue","ret","rgba2String","guessArrayDim","tmpRgba","Track","propName","keyframes","maxTime","interpolable","_needsSort","_isAllValueEqual","_lastFrame","_lastFramePercent","isFinished","_finished","setFinished","_additiveTrack","needsAnimate","getAdditiveTrack","addKeyframe","time","arrayDim","lastFrame","colorArray","isValueColor","kf","prepare","additiveTrack","kfs","sort","kfsLen","lastKf","startValue","additiveValue","isAdditive","valueKey","kfsNum","frameIdx","start","nextFrame","frame","range","w","targetArr","_additiveValue","useSpline","_addToTarget","Animator","additiveTo","_tracks","_trackKeys","_maxTime","_started","_clip","_target","_loop","_additiveAnimators","getTarget","changeTarget","when","props","whenWithKeys","propNames","track","initialValue","_getAdditiveTrack","lastFinalKf","isPaused","_doneCallback","_setTracksFinished","doneList","_doneList","_abortedCallback","animation","abortedList","_abortedList","removeClip","tracksKeys","trackName","additiveAnimators","getTrack","forceAnimate","clip","stillHasAdditiveAnimator","onframeList","_onframeList","addClip","forwardToLast","during","done","aborted","getClip","stopTracks","allAborted","saveFinalToTarget","trackKeys","__changeFinalValue","finalProps","Point","other","equal","scalar","toArray","fromArray","input","onet","mathMin","mathMax","lt","rb","lb","rt","minTv","maxTv","BoundingRect","width","height","union","calculateTransform","intersect","mtv","ax0","ax1","ay0","ay1","bx0","bx1","by0","by1","overlap","dMin","Infinity","dMax","d0","d1","d2","d3","plain","isZero","tx","ty","maxX","maxY","textWidthCache","DEFAULT_FONT","_ctx","_cachedFont","defaultMeasureText","text","font","measureText","methods$1","cacheOfFont","innerGetBoundingRect","textAlign","textBaseline","getLineHeight","adjustTextX","adjustTextY","getBoundingRect","textLines","uniondRect","verticalAlign","parsePercent","maxValue","lastIndexOf","calculateTextPosition","textPosition","position","halfHeight","textVerticalAlign","align","dpr","devicePixelRatio","screen","deviceXDPI","logicalXDPI","DARK_MODE_THRESHOLD","DARK_LABEL_COLOR","LIGHT_LABEL_COLOR","LIGHTER_LABEL_COLOR","PRESERVED_NORMAL_STATE","PRIMARY_STATES_KEYS","DEFAULT_ANIMATABLE_MAP","tmpTextPosCalcRes","tmpBoundingRect","Element","id","animators","currentStates","states","_init","attr","markRedraw","beforeUpdate","afterUpdate","update","__dirty","updateInnerText","forceUpdate","textEl","_textContent","textConfig","isLocal","local","attachedTransform","textStyleChanged","innerOrigin","layoutRect","textOrigin","origin","relOriginX","relOriginY","textOffset","isInside","inside","innerTextDefaultStyle","_innerTextDefaultStyle","textFill","textStroke","autoStroke","canBeInsideText","insideFill","insideStroke","getInsideTextFill","getInsideTextStroke","outsideFill","outsideStroke","getOutsideFill","getOutsideStroke","fill","stroke","setDefaultTextStyle","dirtyStyle","isDarkMode","backgroundColor","getBackgroundColor","isDark","traverse","attrKV","setTextConfig","setTextContent","setClipPath","extra","hide","show","keyOrObj","saveCurrentToNormalState","toState","_innerSaveToNormal","normalState","_normalState","animator","fromStateTransition","__fromStateTransition","targetName","_savePrimaryToNormal","primaryKeys","hasState","getState","ensureState","clearStates","noAnimation","useState","stateName","keepCurrentStates","toNormalState","hasStates","animationCfg","stateTransition","state","stateProxy","useHoverLayer","hoverLayer","_toggleHoverLayerFlag","_applyStateObj","__inHover","duration","_textGuide","_updateAnimationTargets","REDARAW_BIT","useStates","stateObjects","notChange","stateObj","mergedState","_mergeStates","removeState","idx","replaceState","oldState","newState","forceAdd","newStateExists","toggleState","enable","mergedTextConfig","transition","needsRestoreToNormal","transitionTarget","hasTransition","propNeedsTransition","_transitionState","_attachComponent","componentEl","zr","addSelfToZr","_detachComponent","removeSelfFromZr","_clipPath","removeClipPath","getTextContent","previousTextContent","removeTextContent","cfg","getTextGuideLine","setTextGuideLine","guideLine","removeTextGuideLine","textGuide","refreshHover","refresh","dirty","inHover","textContent","addAnimator","removeAnimator","animate","updateDuringAnimation","wakeUp","stopAnimation","scope","leftAnimators","animateTo","animationProps","animateFrom","getPaintRect","elProto","isGroup","logs","logDeprecatedError","xKey","yKey","warn","createLegacyProperty","privateKey","defineProperty","enhanceArray","animatable","reverse","animateToShallow","finishCount","doneHappened","cfgDone","cfgAborted","doneCb","abortedCb","force","copyArrShallow","is2DArray","copyValue","sourceArr","len0","len1","topKey","animatableKeys","changedKeys","targetKeys","additive","setToFinal","animateAll","innerKey","keyLen","existsAnimators","existsAnimatorsOnSameTarget","revertedSource","reversedTarget","sourceClone","DEFAULT_MIN_MERGE","DEFAULT_MIN_GALLOPING","minRunLength","makeAscendingRun","lo","hi","compare","runHi","reverseRun","binaryInsertionSort","pivot","right","mid","gallopLeft","hint","lastOffset","maxOffset","tmp","gallopRight","TimSort","minGallop","runStart","runLength","stackSize","pushRun","_runStart","_runLength","mergeRuns","mergeAt","forceMergeRuns","start1","length1","start2","length2","mergeLow","mergeHigh","cursor1","cursor2","_minGallop","count1","count2","exit","customCursor","customDest","remaining","ts","minRun","invalidZErrorLogged","logInvalidZError","shapeCompareFunc","zlevel","z","z2","Storage","_roots","_displayList","_displayListLen","displayableSortFunc","includeIgnore","displayList","updateDisplayList","roots","_updateAndAddDisplayable","clipPaths","userSetClipPath","currentClipPath","parentClipPath","childrenRef","children","child","disp","__clipPaths","decalEl","getDecalElement","addRoot","delRoot","delAllRoots","getRoots","requestAnimationFrame","msRequestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","setTimeout","requestAnimationFrame$1","Animation","_running","_time","_pauseStart","_clipsHead","_clipsTail","notTriggerFrameAndStageUpdate","Date","getTime","nextClip","finished","_startLoop","options","TOUCH_CLICK_DELAY","globalEventSupported","localNativeListenerNames","mouseHandlerNames","touchHandlerNames","pointerEventNameMap","pointerdown","pointerup","pointermove","pointerout","pointerHandlerNames","nm","mouse","pointer","globalNativeListenerNames","wheelEventSupported","isPointerFromTouch","pointerType","setTouchTimer","touching","touchTimer","clearTimeout","markTouch","normalizeGlobalEvent","instance","FakeGlobalEvent","isLocalEl","elTmp","domBelongToZr","parentNode","stopImmediatePropagation","currentTarget","localDOMHandlers","mousedown","__mayPointerCapture","downPoint","__togglePointerCapture","mouseup","__pointerCapturing","element","toElement","relatedTarget","wheel","mousewheel","touchstart","__lastTouchMoment","touchmove","touchend","click","globalDOMHandlers","pointerCaptureReleasing","mountLocalDOMEventListeners","domHandlers","nativeEventName","mountSingleDOMEventListener","mountGlobalDOMEventListeners","mount","nativeEventListener","capture","listener","mounted","listenerOpts","domTarget","unmountDOMEventListeners","DOMHandlerScope","HandlerDomProxy","_localHandlerScope","_globalHandlerScope","isPointerCapturing","globalHandlerScope","STYLE_MAGIC_KEY","DEFAULT_COMMON_STYLE","shadowBlur","shadowOffsetX","shadowOffsetY","shadowColor","opacity","blend","DEFAULT_COMMON_ANIMATION_PROPS","PRIMARY_STATES_KEYS$1","Displayable","useStyle","beforeBrush","afterBrush","innerBeforeBrush","innerAfterBrush","shouldBePainted","viewWidth","viewHeight","considerClipPath","considerAncestors","invisible","culling","isDisplayableCulled","isZeroArea","parent_1","rectContain","coord","_paintRect","elRect","shadowSize","tolerance","dirtyRectTolerance","setPrevPaintRect","paintRect","_prevPaintRect","getPrevPaintRect","animateStyle","targetKey","setStyle","STYLE_CHANGED_BIT","_rect","styleChanged","styleUpdated","createStyle","__hoverStyle","isStyleObject","_mergeStyle","targetStyle","sourceStyle","getAnimationStyleProps","mergedStyle","dispProto","incremental","tmpRect","viewRect","mathPow","mathSqrt","EPSILON$1","EPSILON_NUMERIC","THREE_SQRT","ONE_THIRD","_v0","_v1","_v2","isAroundZero","isNotAroundZero$1","cubicAt","cubicDerivativeAt","cubicRootAt","c","A","C","t1","disc","K","discSqrt","Y1","Y2","T","theta","acos","ASqrt","cubicExtrema","extrema","cubicSubdivide","p01","p12","p23","p012","p123","p0123","cubicProjectPoint","x0","y0","x1","y1","x2","y2","x3","y3","interval","_t","cubicLength","iteration","px","py","quadraticAt","quadraticDerivativeAt","quadraticRootAt","quadraticExtremum","divider","quadraticSubdivide","quadraticProjectPoint","quadraticLength","mathMin$1","mathMax$1","mathSin","mathCos","PI2","end","extremity","fromPoints","bottom","fromLine","xDim","yDim","fromCubic","cubicExtrema$1","cubicAt$1","fromQuadratic","quadraticExtremum$1","quadraticAt$1","fromArc","rx","ry","startAngle","endAngle","anticlockwise","min$1","max$1","vec2Min","vec2Max","diff","angle","CMD","M","Q","Z","tmpOutX","tmpOutY","min2","max2","mathMin$2","mathMax$2","mathCos$1","mathSin$1","mathSqrt$1","mathAbs","PI2$1","hasTypedArray","Float32Array","tmpAngles","modPI2","radian","normalizeArcAngles","angles","newStartAngle","newEndAngle","PathProxy","notSaveData","_version","_xi","_yi","_x0","_y0","_saveData","increaseVersion","getVersion","segmentIgnoreThreshold","_ux","_uy","setDPR","setContext","beginPath","reset","_lineDash","_dashOffset","_pathSegLen","_pathLen","moveTo","addData","lineTo","exceedUnit","_needsDash","_dashedLineTo","bezierCurveTo","_dashedBezierTo","quadraticCurveTo","_dashedQuadraticTo","arc","cx","cy","arcTo","radius","closePath","toStatic","setLineDash","lineDash","_dashIdx","lineDashSum","_dashSum","setLineDashOffset","setData","appendPath","path","appendSize","appendPathData","cmd","_expandData","newData","dashSum","nDash","dash","bezierLen","tmpLen","Number","MAX_VALUE","xi","yi","isFirst","_calculateLength","ux","uy","pathSegLen","pathTotalLen","segCount","rebuildPath","drawPart","accumLength","displayedLength","psi","isEllipse","breakBuild","ellipse","d_1","containStroke","lineWidth","_l","_a","_b","_s","containStroke$1","containStroke$2","PI2$2","normalizeRadian","PI2$3","containStroke$3","windingLine","dir","x_","CMD$1","PI2$4","EPSILON$2","isAroundEqual","swapExtrema","windingCubic","nRoots","nExtrema","y0_","y1_","unit","windingQuadratic","y_","windingArc","dTheta","tmp_1","containPath","isStroke","pathProxy","containStroke$4","DEFAULT_PATH_STYLE","strokePercent","fillOpacity","strokeOpacity","lineDashOffset","lineCap","miterLimit","strokeNoScale","strokeFirst","DEFAULT_PATH_ANIMATION_PROPS","pathCopyParams","Path","decal","_decalEl","buildPath","shape","decalElStyle","getDefaultShape","defaultStyle","getDefaultStyle","hasFill","pathFill","fillLum","isDarkLabel","shapeCfg","inBundle","pathUpdated","SHAPE_CHANGED_BIT","createPathProxy","hasStroke","needsUpdateRect","firstInvoke","rectWithStroke","_rectWithStroke","lineScale","strokeContainThreshold","localPos","dirtyShape","animateShape","setShape","shapeChanged","targetShape","targetShapePrimaryProps","shapeKeys","mergedShape","defaultProps","Sub","init","pathProto","subPixelOptimize","autoBatch","CMD$2","mathSqrt$2","mathAtan2","transformPath","nPoint","p_1","mathSqrt$3","mathSin$2","mathCos$2","PI$1","vMag","vRatio","u","vAngle","processArc","fa","fs","psiDeg","xp","yp","lambda","cxp","cyp","commandReg","numberReg","createPathProxyFromString","cpx","cpy","subpathX","subpathY","prevCmd","cmdList","cmdText","cmdStr","pLen","ctlPtx","ctlPty","pathData","SVGPath","isPathProxy","createPathOptions","innerOpts","createFromString","extendFromString","defaultOpts","mergePath","pathEls","pathList","pathEl","pathBundle","Group","_children","childAt","childOfName","childCount","_doAdd","addBefore","nextSibling","replaceAt","index","old","removeAll","eachChild","stopped","includeChildren","tmpMat","childRect","DEFAULT_IMAGE_STYLE","DEFAULT_IMAGE_ANIMATION_PROPS","sWidth","sHeight","isImageLike","ZRImage","_getSize","dim","size","imageSource","__image","otherDim","otherDimSize","CircleShape","Circle","r1","r2","r3","r4","total","subPixelOptimizeLine","outputShape","inputShape","subPixelOptimizeRect","originWidth","originHeight","positiveOrNegative","doubledPosition","RectShape","subPixelOptimizeOutputShape","Rect","optimizedShape","EllipseShape","Ellipse","subPixelOptimizeOutputShape$1","LineShape","Line","pointAt","interpolate","smoothSpline","isLoop","distance$1","segs","w2","w3","smoothBezier","smooth","constraint","cps","prevPoint","nextPoint","point","cp0","cp1","shift","buildPath$1","controlPoints","smoothConstraint","cp2","PolygonShape","Polygon","PolylineShape","Polyline","Gradient","addColorStop","LinearGradient","globalCoord","DEFAULT_TSPAN_STYLE","TSpan","setBoundingRect","tspanProto","DILIMITER_REG","parseXML","svg","parser","DOMParser","parseFromString","svgNode","firstChild","nodeParsers","SVGParser","_defs","_root","_isDefine","_isText","xml","viewBox","getAttribute","parseAttributes","_parseNode","viewBoxRect","viewBoxTransform","viewBoxArr","makeViewBoxTransform","ignoreViewBox","elRoot","ignoreRootClip","xmlNode","parentGroup","defineParsers","def","_parseText","_textX","_textY","inheritStyle","textStyle","fontSize","fontFamily","fontStyle","fontWeight","internalField","circle","line","pointsStr","pointsArr","parsePoints","polygon","polyline","img","gradient","_parseGradientColorStops","offsetStr","stopColor","__inheritedStyle","pointsString","attributesMap","defs","onlyInlineStyle","zrStyle","parseTransformAttribute","parseStyleAttribute","svgAttrName","attrValue","getPaint","urlRegex","urlMatch","url","transformRegex","transformOps_1","valueArr","styleRegex","styleList","styleRegResult","exec","parseSVG","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","CMD$3","PI2$6","PROP_XY","PROP_WH","tmpArr","aroundEqual","pathToBezierCurves","bezierArray","currentSubpath","createNewSubpath","addLine","addArc","tan","c1","s1","c2","s2","x4","y4","hx","hy","nextAngle","alignSubpath","subpath1","subpath2","shorterPath","shorterLen","shorterBezierCount","eachCurveSubDivCount","newSubpath","remained","tmpSegX","tmpSegY","actualSubDivCount","createSubpath","lastSubpathSubpath","otherSubpath","lastX","lastY","alignBezierCurves","array1","array2","lastSubpath1","lastSubpath2","newArray1","newArray2","newSubpath1","newSubpath2","centroid","signedArea","findBestRingOffset","fromSubBeziers","toSubBeziers","fromCp","toCp","bezierCount","bestScore","bestOffset","cursorOffset","score","newArr","findBestMorphingRotation","fromArr","toArr","searchAngleIteration","searchAngleRange","fromNeedsReverse","fromSubpathBezier","toSubpathBezier","newFromSubpathBezier","newToSubpathBezier","bestAngle","tmpArr_1","sa","ca","newX1","newY1","i_1","to","morphPath","fromPath","toPath","animationOpts","fromPathProxy","toPathProxy","isIndividualMorphingPath","__oldBuildPath","fromBezierCurves","toBezierCurves","morphingData","becomeIndividualMorphingPath","oldDone","oldAborted","oldDuring","__morphT","restoreIndividualMorphingPath","morphingPathBuildPath","__morphingData","newCp","item","morphT","updateIndividualMorphingPath","morphingPath","isCombiningPath","__combiningSubList","isInAnyMorphing","combine","fromPathList","copyPropsIfDivided","fromIndividuals","separateCount","fromCombiningSubList","dividingMethod","toPathSplittedList","divideShape","doneCount","abortedCalled","morphAnimationOpts","restoreCombiningPath","becomeCombiningPath","toIndividuals","count","combiningSubList","updateCombiningPathSubList","combiningPath","__oldAddSelfToZr","__oldRemoveSelfFromZr","combiningAddSelfToZr","combiningRemoveSelfFromZr","combiningChildrenRef","combiningPathSubListAddRemoveWithZr","method","separate","toPathList","toPathListLen","copyProps","duplicateShape","splitShape","resultPaths","toPathShape","splitPropIdx","propWH","propXY","subWH","xyCurr","subShape","splitted","endAngleNormalized","normalizeRadian$1","angleCurr","ctor","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","matchedIndex","pushTokens","substring","pendingList","calculatedHeight","calculatedWidth","stlPadding","truncateLine","finishLine","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","textShadowColor","textShadowBlur","textShadowOffsetX","textShadowOffsetY","borderColor","borderWidth","borderRadius","ZRText","_defaultStyle","_updateSubTexts","_childCursor","normalizeTextStyle","_updateRichTexts","_updatePlainTexts","defaultTextStyle","sourceRich","targetRich","_mergeRich","richNames","richName","_getOrCreateChild","textFont","getStyleText","needDrawBg","needDrawBackground","bgColorDrawn","baseX","baseY","textX","textY","boxX","boxY","_renderBackground","getTextXForPadding","defaultLineWidth","useDefaultFill","getFill","getStroke","hasShadow","fixedBoundingRect","subElStyle","xLeft","lineTop","xRight","tokenCount","remainedWidth","lineXLeft","lineXRight","_placeToken","parentBgColorDrawn","textWidth","textHeight","topStyle","textBorderWidth","textBorderColor","isPlainBg","textBorderRadius","rectEl","imgEl","rectShape","rectStyle","imgStyle","borderDash","borderDashOffset","commonStyle","makeFont","VALID_TEXT_ALIGN","VALID_TEXT_VERTICAL_ALIGN","middle","normalizeStyle","ArcShape","Arc","unitX","unitY","BezierCurveShape","cpx1","cpy1","someVectorAt","isTangent","cpx2","cpy2","BezierCurve","tangentAt","DropletShape","Droplet","HeartShape","Heart","PI$3","IsogonShape","Isogon","dStep","deg","RingShape","Ring","sin$1","cos$1","RoseShape","Rose","PI$4","cos$2","sin$2","StarShape","Star","xStart","yStart","ri","cos$3","sin$3","TrochoidShape","location","Trochoid","num","RadialGradient","extent","extent2","minTv$1","maxTv$1","OrientedBoundingRect","_corners","_axes","_origin","fromBoundingRect","corners","axes","overlapped","noMtv","_intersectCheckOneSide","axis","_getProjMinMaxOnAxis","dist0","dist1","proj","proj_1","useVML","painterCtors","instances","delInstance","totalLum","ZRender","_sleepAfterStill","_stillFrameAccum","_needsRefresh","_needsRefreshHover","_darkMode","rendererType","renderer","vml","useDirtyRect","handerProxy","getViewportRoot","_flush","configLayer","zLevel","config","setBackgroundColor","_backgroundColor","setDarkMode","darkMode","refreshImmediately","fromInside","flush","triggerRendered","refreshHoverImmediately","elapsedTime","setSleepAfterStill","stillFramesCount","addHover","removeHover","clearHover","getType","clearAnimation","pathToImage","eventHandler","disposeAll","getInstance","registerPainter","zrender","RADIAN_EPSILON","_trim","linearMap","domain","clamp","subDomain","subRange","parsePercent$2","all","NaN","round$1","precision","returnStr","toFixed","asc","getPrecision","getPrecisionSafe","eIndex","dotIndex","getPixelPrecision","dataExtent","pixelExtent","LN10","dataQuantity","sizeQuantity","getPercentWithPrecision","valueList","acc","digits","votesPerQuota","targetSeats","seats","votes","currentSum","NEGATIVE_INFINITY","maxId","MAX_SAFE_INTEGER","remRadian","pi2","isRadianAroundZero","TIME_REG","parseDate","hour","UTC","quantity","quantityExponent","exp","nice","exponent","exp10","nf","quantile","ascArr","reformIntervals","littleThan","curr","currClose","close_1","close","lg","numericToNumber","valFloat","isNumeric","getRandomIdBase","getGreatestCommonDividor","getLeastCommonMultiple","numberUtil","ECHARTS_PREFIX","storedLogs","hasConsole","deprecateLog","deprecateReplaceLog","oldOpt","newOpt","consoleLog","makePrintable","hintInfo","msg","makePrintableStringIfPossible_1","toISOString","arg","printableStr","JSON","err","throwError","DUMMY_COMPONENT_NAME_PREFIX","INTERNAL_COMPONENT_ID_PREFIX","normalizeToArray","defaultEmphasis","subOpts","emphasis","subOptName","TEXT_STYLE_OPTIONS","getDataItemValue","dataItem","isDataItemOption","mappingToExists","existings","newCmptOptions","mode","isNormalMergeMode","isReplaceMergeMode","isReplaceAllMode","existingIdIdxMap","cmptOption","isValidIdOrName","warnInvalidateIdOrName","prepareResult","mappingById","mappingByName","mappingByIndex","mappingInReplaceAllMode","makeIdAndName","existing","isComponentIdInternal","newOption","keyInfo","brandNew","optionId","makeComparableKey","existingIdx","resultItem","keyExistAndEqual","nextIdx","mapResult","idMap","idNum","obj1","obj2","key1","convertOptionIdName","key2","idOrName","defaultValue","isNameSpecified","componentModel","makeInternalComponentId","idSuffix","setComponentTypeToKeyInfo","mappingResult","mainType","componentModelCtor","subType","determineSubType","newCmptOption","existComponent","compressBatches","batchA","batchB","mapA","mapB","makeMap","mapToArray","sourceBatch","otherMap","seriesId","dataIndices","dataIndex","otherDataIndices","lenj","isData","queryDataIndex","payload","dataIndexInside","indexOfRawIndex","indexOfName","makeInner","innerUniqueIndex","hostObj","parseFinder","ecModel","finderInput","finder","queryOptionMap","mainTypeSpecified","parsedKey","queryType","includeMainTypes","queryOption","defaultMainType","queryResult","queryReferringComponents","useDefault","enableAll","enableNone","models","SINGLE_REFERRING","MULTIPLE_REFERRING","userOption","indexOption","idOption","nameOption","specified","firstCmpt","getComponent","queryComponents","setAttribute","getTooltipRenderMode","renderModeOption","groupData","getKey","buckets","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","ExtendedClass","isESClass","ins","superCall","superApply","Function","mountExtend","SubClz","SupperClz","classBase","enableClassCheck","classAttr","isInstance","methodName","enableClassManagement","registerClass","componentFullType","componentTypeInfo","container","makeContainer","getClass","throwWhenNotFound","getClassesByMainType","o","hasClass","getAllClassMainTypes","types","hasSubTypes","registerWhenExtend","originalExtend_1","makeStyleMapper","ignoreParent","model","excludes","includes","getShallow","AREA_STYLE_KEY_MAP","getAreaStyle","AreaStyleMixin","getECData","_highlightNextDigit","_highlightKeyMap","getSavedStates","HOVER_STATE_NORMAL","HOVER_STATE_BLUR","HOVER_STATE_EMPHASIS","SPECIAL_STATES","DISPLAY_STATES","Z2_EMPHASIS_LIFT","Z2_SELECT_LIFT","HIGHLIGHT_ACTION_TYPE","DOWNPLAY_ACTION_TYPE","SELECT_ACTION_TYPE","UNSELECT_ACTION_TYPE","TOGGLE_SELECT_ACTION_TYPE","hasFillOrStroke","fillOrStroke","liftedColorCache","liftColor","color$1","liftedColor","doChangeHoverState","hoverStateEnum","onHoverStateChange","hoverState","singleEnterEmphasis","singleLeaveEmphasis","singleEnterBlur","singleLeaveBlur","singleEnterSelect","selected","singleLeaveSelect","updateElementState","updater","commonParam","traverseUpdateState","setStatesFlag","getFromStateStyle","toStateName","fromState","createEmphasisDefaultState","targetStates","hasSelect","cloned","store","fromFill","selectFill","normalFill","fromStroke","selectStroke","normalStroke","emphasisStyle","z2EmphasisLift","createSelectDefaultState","z2SelectLift","createBlurDefaultState","hasBlur","currentOpacity","blurStyle","elementStateProxy","setDefaultStateProxy","enterEmphasisWhenMouseOver","shouldSilent","__highByOuter","leaveEmphasisWhenMouseOut","enterEmphasis","highlightDigit","leaveEmphasis","enterBlur","leaveBlur","enterSelect","leaveSelect","__highDownSilentOnTouch","allLeaveBlur","api","getModel","eachComponent","view","getViewOfSeriesModel","getViewOfComponentModel","group","toggleSeriesBlurState","targetSeriesIndex","focus","blurScope","isBlur","leaveBlurOfIndices","itemEl","getItemGraphicEl","targetSeriesModel","getSeriesByIndex","targetCoordSys","coordinateSystem","master","blurredSeries","eachSeries","seriesModel","sameSeries","coordSys","sameCoordSys","getData","dataTypes","blurSeries","toggleSeriesBlurStateFromPayload","isHighDownPayload","isHighlight","seriesIndex","dataType","current","ecData","focus_1","toggleSelectionFromPayload","isSelectChangePayload","updateSeriesElementSelection","allData","getAllData","eachItemGraphicEl","isSelected","getAllSelectedIndices","getSelectedDataIndices","enableHoverEmphasis","setAsHighDownDispatcher","enableHoverFocus","OTHER_STATES","defaultStyleGetterMap","itemStyle","lineStyle","areaStyle","setStatesStylesFromModel","itemModel","styleType","getter","asDispatcher","disable","extendedEl","highDownSilentOnTouch","__highDownDispatcher","isHighDownDispatcher","getHighlightDigit","highlightKey","payloadType","savePathStates","selectState","select","mathMax$4","mathMin$4","_customShapeMap","extendShape","extendPathFromString","extendPath","registerShape","ShapeClass","getShapeClass","makePath","layout","centerGraphic","resizePath","makeImage","imageUrl","zrImg","boundingRect","aspect","mergePath$1","pathRect","subPixelOptimizeLine$1","param","subPixelOptimizeRect$1","subPixelOptimize$1","animateOrSetProps","animationType","animatableModel","isFrom","removeOpt","isUpdate","isRemove","animationPayload","updatePayload","getUpdatePayload","animationEnabled","isAnimationEnabled","animationEasing","animationDelay","getAnimationDelayParams","updateProps","initProps","removeElement","isElementRemoved","fadeOutDisplayable","removeElementWithFadeOut","doRemove","getTransform","ancestor","mat","applyTransform$1","invert$1","transformDirection","direction","hBase","vBase","vertex","isNotGroup","isPath","groupTransition","g1","g2","getElMap","elMap","anid","getAnimatableProps","elMap1","oldEl","newProp","clipPointsByRect","clipRectByRect","targetRect","createIcon","iconStr","linePolygonIntersect","a1x","a1y","a2x","a2y","lineLineIntersect","b1x","b1y","b2x","b2y","mx","my","nx","ny","nmCrossProduct","crossProduct2d","nearZero","b1a1x","b1a1y","q","graphic","Text","IncrementalDisplayable","EMPTY_OBJ","setLabelText","label","labelTexts","oldStates","normal","getLabelText","stateModels","overrideValue","labelFetcher","labelDataIndex","labelDimIndex","normalModel","baseText","getFormattedLabel","defaultText","statesText","stateModel","setLabelStyle","targetEl","labelStatesModels","stateSpecified","isSetOnText","needsCreateText","labelStatesTexts","showNormal","normalStyle","createTextStyle","createTextConfig","stateShow","targetElEmphasisState","enableTextSetter","labelInner","getLabelStatesModels","labelName","statesModels","textStyleModel","specifiedTextStyle","isNotNormal","isAttached","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","lineX","lineY","keep","dataView","lang","dataZoom","zoom","back","magicType","bar","stack","tiled","restore","saveAsImage","series","typeNames","pie","scatter","effectScatter","radar","tree","treemap","boxplot","candlestick","heatmap","parallel","sankey","funnel","gauge","pictorialBar","themeRiver","sunburst","aria","general","withTitle","withoutTitle","single","prefix","withName","withoutName","multiple","separator","partialData","langZH","LOCALE_ZH","LOCALE_EN","DEFAULT_LOCALE","localeStorage","localeModels","SYSTEM_LANG","langStr","documentElement","language","browserLanguage","registerLocale","locale","localeObj","createLocaleObject","getLocaleModel","getDefaultLocaleModel","ONE_SECOND","ONE_MINUTE","ONE_HOUR","ONE_DAY","ONE_YEAR","defaultLeveledFormatter","year","day","minute","second","millisecond","none","fullDayFormatter","fullLeveledFormatter","primaryTimeUnits","timeUnits","pad","getPrimaryTimeUnit","timeUnit","isPrimaryTimeUnit","getDefaultFormatPrecisionOfInterval","format","template","isUTC","date","fullYearGetterName","monthGetterName","dateGetterName","hoursGetterName","minutesGetterName","secondsGetterName","millisecondsGetterName","localeModel","timeModel","leveledFormat","tick","formatter","defaults$1","mergedFormatter","inherit","getUnitFromValue","targetId","levelId","isSecond","isMinute","isHour","isDay","isMonth","isYear","getUnitValue","fullYearSetterName","monthSetterName","dateSetterName","hoursSetterName","minutesSetterName","secondsSetterName","millisecondsSetterName","addCommas","parts","toCamelCase","upperCaseFirst","group1","normalizeCssArray$1","replaceReg","replaceMap","encodeHTML","makeValueReadable","valueType","useUTC","USER_READABLE_DEFUALT_TIME_PATTERN","stringToUserReadable","isNumberUserReadable","isTypeTime","isValueDate","numericResult","TPL_VAR_ALIAS","wrapVar","varName","seriesIdx","formatTpl","tpl","paramsList","encode","seriesLen","$vars","alias","formatTplSimple","getTooltipMarker","inOpt","extraCssText","renderMode","markerId","content","formatTime","utc","capitalFirst","convertToColorString","defaultColor","windowOpen","link","blank","open","opener","href","formatUtil","each$1","LOCATION_PARAMS","HV_NAMES","boxLayout","orient","maxHeight","currentLineMaxSize","nextChild","nextChildRect","nextX","nextY","moveX","newline","moveY","vbox","hbox","getAvailableSize","positionInfo","containerRect","containerHeight","getLayoutRect","verticalMargin","horizontalMargin","positionElement","hv","boundingMode","sizeCalculable","hvIdx","fetchLayoutMode","layoutMode","mergeLayoutParam","targetOption","ignoreSize","hResult","vResult","names","newParams","newValueCount","merged","mergedValueCount","enoughParamNumber","hasProp","hasValue","getLayoutParams","copyLayoutParams","inner","ComponentModel","uid","mergeDefaultAndTheme","inputPositionParams","themeModel","getTheme","getDefaultOption","optionUpdated","newCptOption","isInit","defaultOption","fields","optList","getReferringComponents","indexKey","idKey","getBoxLayoutParams","boxLayoutModel","protoInitialize","componentIndex","getDependencies","deps","dependencies","unshift","platform","decalColor","globalDefault","gradientColor","decals","dashArrayX","dashArrayY","symbolSize","symbol","dashLineOffset","blendMode","stateAnimation","animationDuration","animationDurationUpdate","animationEasingUpdate","animationThreshold","progressiveThreshold","progressive","hoverLayerThreshold","VISUAL_DIMENSIONS","SOURCE_FORMAT_ORIGINAL","SOURCE_FORMAT_ARRAY_ROWS","SOURCE_FORMAT_OBJECT_ROWS","SOURCE_FORMAT_KEYED_COLUMNS","SOURCE_FORMAT_TYPED_ARRAY","SOURCE_FORMAT_UNKNOWN","SERIES_LAYOUT_BY_COLUMN","SERIES_LAYOUT_BY_ROW","BE_ORDINAL","Must","Might","Not","innerGlobalModel","resetSourceDefaulter","datasetMap","inheritSourceMetaRawOption","upstream","newMetaRawOption","parentMetaRawOption","metaRawOption","seriesLayoutBy","sourceHeader","startIndex","dimensions","dimensionsDefine","makeSeriesEncodeForAxisCoordSys","coordDimensions","datasetModel","querySeriesUpstreamDatasetModel","encodeItemName","encodeSeriesName","baseCategoryDimIndex","categoryWayValueDimStart","coordDimInfoLoose","coordDimIdx","coordDimInfo","getDataDimCountOnCoordDim","datasetRecord","categoryWayDim","valueWayDim","coordDimName","pushDim","dimIdxArr","idxFrom","idxCount","dimsDef","itemName","seriesName","makeSeriesEncodeForNameBased","dimCount","sourceFormat","potentialNameDimIndex","idxResult","idxRes0","idxRes1","guessRecords","guessResult","doGuessOrdinal","isPureNumber","fulfilled","nameDimIndex","thisData","queryDatasetUpstreamDatasetModels","guessOrdinal","dimIndex","maxLoop","dimName","dimType","dimDefItem","dataArrayRows","sample","detectValue","row","dataObjectRows","dataKeyedColumns","dataOriginal","beStr","internalOptionCreatorMap","registerInternalOptionCreator","creator","concatInternalOptions","newCmptOptionList","internalOptionCreator","internalOptions","innerColor","innerDecal","PaletteMixin","getColorFromPalette","requestNum","defaultPalette","layeredPalette","getFromPalette","clearColorPalette","clearPalette","getDecalFromPalette","defaultDecals","getNearestPalette","palettes","requestColorNum","paletteNum","that","scopeFields","paletteIdx","paletteNameMap","palette","pickedPaletteItem","reCreateSeriesIndices","assertSeriesInitialized","initBase","OPTION_INNER_KEY","GlobalModel","theme","optionManager","_theme","_locale","_optionManager","setOption","optionPreprocessorFuncs","innerOpt","normalizeSetOptionInput","_resetOption","resetOption","optionChanged","baseOption","mountOption","_mergeOption","timelineOption","getTimelineOption","mediaOptions","getMediaOption","mediaOption","componentsMap","_componentsMap","componentsCount","_componentsCount","newCmptTypes","newCmptTypeMap","replaceMergeMainTypeMap","componentOption","mainTypeInReplaceMerge","visitComponent","oldCmptList","mergeMode","optionsByMainType","cmptsByMainType","cmptsCountByMainType","ComponentModelClass","extraOpt","__requireNewView","_seriesIndices","getOption","optInMainType","realLen","metNonInner","getLocale","localePosition","setUpdatePayload","_payload","cmpt","cmpts","queryByIdOrName","filterBySubType","findComponents","queryCond","getQueryCond","doFilter","indexAttr","idAttr","nameAttr","ctxForAll_1","cbForAll_1","getSeriesByName","nameStr","oneSeries","getSeriesByType","getSeries","getSeriesCount","rawSeriesIndex","eachRawSeries","eachSeriesByType","eachRawSeriesByType","isSeriesFiltered","_seriesIndicesMap","getCurrentSeriesIndices","filterSeries","newSeriesIndices","seriesRawIdx","componentTypes","components","component","isNotTargetSeries","seriesIndices","airaOption","enabled","mergeTheme","notMergeColorLayer","colorLayer","themeItem","keyMap_1","idOrNameItem","idName","idName_1","replaceMerge","availableMethods","ExtensionAPI","ecInstance","coordinateSystemCreators","CoordinateSystemManager","_coordinateSystems","coordinateSystems","creater","getCoordinateSystems","register","QUERY_REG","OptionManager","_timelineOptions","_mediaList","_currentMediaIndices","_api","rawOption","dataset","optionBackup","_optionBackup","newParsedOption","parseRawOption","_newBaseOption","timelineOptions","mediaList","mediaDefault","isRecreate","_mediaDefault","timelineModel","getCurrentIndex","ecWidth","ecHeight","indices","applyMediaQuery","indicesEquals","isNew","declaredBaseOption","timelineOnRoot","timeline","timelineOptionsOnRoot","mediaOnRoot","media","hasMedia","hasTimeline","singleMedia","doPreprocess","preProcess","realMap","aspectratio","applicatable","matched","operator","realAttr","real","expect","indices1","indices2","each$2","isObject$1","POSSIBLE_STYLES","compatEC2ItemStyle","itemStyleOpt","normalItemStyleOpt","emphasisItemStyleOpt","convertNormalEmphasis","optType","useExtend","normalOpt","emphasisOpt","removeEC3NormalStatus","compatTextStyle","labelOptSingle","textPropName","compatEC3CommonStyles","processSeries","seriesOpt","markPoint","markLine","markArea","nodes","edgeData","links","edges","categories","mpData","mlData","breadcrumb","levels","leaves","toObj","globalCompatStyle","isTheme","axisName","axisOpt","axisPointer","parallelOpt","parallelAxisDefault","calendar","calendarOpt","radarOpt","nameGap","axisNameGap","geo","geoOpt","regions","regionObj","timelineOpt","toolboxOpt","feature","featureOpt","tooltip","set$1","compatLayoutProperties","LAYOUT_PROPERTIES","COMPATITABLE_COMPONENTS","BAR_ITEM_STYLE_MAP","compatBarItemStyle","oldName","newName","compatPieLabel","alignTo","edgeDistance","compatSunburstState","downplay","blur","compatGraphFocus","focusNodeAdjacency","traverseTree","globalBackwardCompat","seriesType","clipOverflow","clockWise","hoverOffset","scaleSize","pointerColor","backgroundStyle","highlightPolicy","mapType","mapLocation","hoverAnimation","dataRange","visualMap","componentName","dataStack","stackInfoMap","stackInfoList","stackInfo","stackResultDimension","getCalculationInfo","stackedOverDimension","stackedDimension","stackedByDimension","isStackedByIndex","setCalculationInfo","calculateStack","targetStackInfo","idxInStack","resultVal","resultNaN","dims","targetData","byValue","stackedDataRawIndex","getRawIndex","stackedOver","rawIndexOf","getByRawIndex","hostModel","SourceImpl","dimensionsDetectedCount","encodeDefine","isSourceInstance","createSource","sourceData","thisMetaRawOption","detectSourceFormat","determined","determineSourceDimensions","makeEncodeDefine","createSourceFromSeriesDataOption","cloneSourceShallow","normalizeDimensionsOption","arrayRowsTravelFirst","objectRowsCollectDimensions","colArr","firstIndex","dimensions_1","nameMap","rawItem","displayName","exist","_c","providerMethods","mountMethods","DefaultDataProvider","sourceParam","dimSize","_source","_data","_offset","_dimSize","getSource","getItem","appendData","clean","pure","persistent","provider","getMethodMapKey","getItemForTypedArray","countForTypedArray","fillStorage","fillStorageForTypedArray","rawItemGetter","getRawSourceItemGetter","rawCounter","getRawSourceDataCounter","dimExtent","appendDataSimply","newCol","oldCol","getItemSimply","rawData","rawSourceItemGetterMap","col","countSimply","rawSourceDataCounterMap","getRawValueSimply","rawSourceValueGetterMap","getRawSourceValueGetter","retrieveRawValue","getRawDataItem","getProvider","dimInfo","DIMENSION_LABEL_REG","DataFormatMixin","getDataParams","rawValue","getRawValue","rawDataIndex","getName","itemOpt","getItemVisual","isSeries","userOutput","componentSubType","dimensionNames","status","extendParams","getItemModel","dimensionIndex","formatTooltip","multipleSeries","normalizeTooltipFormatResult","markupText","markupFragment","createTask","Task","_reset","_plan","plan","_count","_onDirty","onDirty","_dirty","perform","performArgs","upTask","_upstream","skip","outputData","__pipeline","currentTask","planResult","lastModBy","normalizeModBy","_modBy","lastModDataCount","_modDataCount","modBy","modDataCount","forceFirstProgress","_doReset","_outputDueEnd","_dueEnd","_progress","_dueIndex","progress","_doProgress","outputDueEnd","_settedOutputEnd","unfinished","iterator","_callingProgress","downstream","_downstream","pipe","downTask","_disposed","getUpstream","getDownstream","setOutputEnd","winCount","it","sStep","sCount","modNext","sequentialNext","parseDataValue","ordinalMeta","parseAndCollect","valueParserMap","getRawValueParser","ORDER_COMPARISON_OP_MAP","lval","rval","lte","gt","gte","FilterOrderComparator","_opFn","_rvalFloat","evaluate","SortOrderComparator","order","incomparable","isDesc","_resultLT","_incomparable","lvalTypeof","rvalTypeof","lvalFloat","rvalFloat","lvalNotNumeric","rvalNotNumeric","lvalIsStr","rvalIsStr","FilterEqualityComparator","isEq","_rval","_isEQ","_rvalTypeof","eqResult","createFilterComparator","ExternalSource","getRawData","cloneRawData","cloneAllDimensionInfo","retrieveValue","retrieveValueFromItem","convertValue","rawVal","createExternalSource","internalSource","externalTransform","extSource","sourceHeaderCount","dimsByName","dimDef","dimDefExt","__isBuiltIn","rawValueGetter","externalTransformMap","registerExternalTransform","typeParsed","isBuiltIn","applyDataTransform","rawTransOption","sourceList","infoForPrint","pipedTransOption","pipeLen","transOption","applySingleDataTransform","upSourceList","pipeIndex","transType","extUpSourceList","upSource","resultList","upstreamList","print","printStrArr","pipeIndexStr","datasetIndex","resultData","resultMetaRawOption","SourceManager","sourceHost","_sourceList","_upstreamSignList","_versionSignBase","_sourceHost","_setLocalSource","upstreamSignList","_getVersionSign","prepareSource","_isDirty","_createSource","upSourceMgrList","_getUpstreamSourceManagers","hasUpstream","resultSourceList","upSourceMgr","_getSourceMetaRawOption","_applyTransform","upMgrList","transformOption","fromTransformResult","doThrow","upMgr","upSrcMgr","sourceIndex","getSourceManager","disableTransformOptionMerge","TOOLTIP_NAME_TEXT_STYLE_CSS","TOOLTIP_TEXT_STYLE_RICH","TOOLTIP_VALUE_TEXT_STYLE_CSS","TOOLTIP_VALUE_TEXT_STYLE_RICH","TOOLTIP_LINE_HEIGHT_CSS","HTML_GAPS","RICH_TEXT_GAPS","createTooltipMarkup","getBuilder","fragment","builderMap","section","planLayout","subBlockLen","blocks","thisBlockHasInnerGap","noHeader","thisGapLevelBetweenSubBlocks","subBlock","subGapLevel","__gapLevelBetweenSubBlocks","build","topMarginForOuterGap","gaps","getGap","subMarkupText","buildSubBlocks","html","displayableHeader","header","wrapInlineNameRichText","richText","wrapBlockHTML","nameValue","noName","noValue","noMarker","markerType","markerStr","markupStyleCreator","makeTooltipMarker","markerColor","readableName","valueTypeOption","readableValueList","valueAlignRight","valueCloseToMarker","wrapInlineValueRichText","wrapInlineNameHTML","wrapInlineValueHTML","subMarkupTextList","subBlocks","orderMode","sortBlocks","orderMap","valueAsc","valueDesc","comparator_1","sortParam","buildTooltipMarkup","builder","gapLevelBetweenSubBlocks","encodedContent","topGap","clearfix","marginCSS","leftHasMarker","marginCss","alignRight","paddingStr","alignCSS","wrapRichTextStyle","styles","paddingLeft","retrieveVisualColorForTooltipMarker","visualDrawType","getPaddingFromTooltipModel","TooltipMarkupStyleCreator","richTextStyles","_nextStyleNameId","_generateStyleName","finalStl","defaultSeriesFormatTooltip","tooltipDims","mapDimensionsAll","tooltipDimLen","isValueArr","inlineValue","inlineValueType","formatArrResult","formatTooltipArrayValue","inlineValues","inlineValueTypes","seriesNameSpecified","inlineName","isValueMultipleLine","dimItem","setEachItem","otherDims","inner$1","getSelectionKey","getId","SeriesModel","_selectedDataIndicesMap","dataTask","dataTaskCount","dataTaskReset","sourceManager","getInitialData","wrapData","dataBeforeProcessed","autoSeriesName","_initSelectedMapFromData","themeSubType","fillDataTextStyle","newSeriesOption","task","getCurrentTask","getLinkedData","mainData","getLinkedDataAll","getBaseAxis","coordDimToDataDim","coordDim","getProgressive","getProgressiveThreshold","innerDataIndices","_innerSelect","unselect","selectedMap","nameOrId","toggleSelect","selectedDataIndicesMap","nameOrIds","selectedMode","lastDataIndex","hasItemOption","useColorPaletteOnData","ignoreStyleOnData","hasSymbolVisual","defaultSymbol","visualStyleAccessPath","getSeriesAutoName","dataDims","nameArr","dataDim","cloneShallow","dataTaskProgress","CHANGABLE_METHODS","DOWNSAMPLE_METHODS","wrapMethod","onDataChange","scheduler","pipeline","getPipeline","agentStubMap","ComponentView","render","updateView","updateLayout","updateVisual","seriesModels","createRenderPlanner","pipelineContext","originalLarge","large","originalProgressive","progressiveRender","inner$2","renderPlanner","ChartView","renderTask","renderTaskPlan","renderTaskReset","highlight","toggleHighlight","markUpdateMethod","updateMethod","elSetState","dataIdx","progressMethodMap","incrementalPrepareRender","incrementalRender","ORIGIN_METHOD","RATE","THROTTLE_TYPE","throttle","debounce","currCall","lastCall","lastExec","timer","debounceNextCall","cbArgs","thisDelay","thisDebounce","debounceDelay","createOrUpdate","fnAttr","rate","throttleType","originFn","lastThrottleType","lastRate","inner$3","defaultStyleMappers","defaultColorKey","getStyleMapper","stylePath","styleMapper","visualStyleMapper","getDefaultColorKey","colorKey","seriesStyleTask","createOnAllSeries","performRawSeries","styleModel","getStyle","globalStyle","decalOption","setVisual","colorCallback","dataEach","dataParams","setItemVisual","sharedModel","dataStyleTask","getVisual","existsStyle","ensureUniqueItemVisual","dataColorPaletteTask","overallReset","paletteScopeGroupByType","colorScope","dataAll","idxMap","rawIdx","fromPalette","dataCount","PI$5","defaultLoading","textColor","maskColor","showSpinner","spinnerRadius","mask","labelRect","Scheduler","dataProcessorHandlers","visualHandlers","_stageTaskMap","_dataProcessorHandlers","_visualHandlers","_allHandlers","taskRecord","overallTask","getPerformArgs","_pipelineMap","pCtx","progressiveEnabled","__idxInPipeline","blockIndex","pipelineId","updateStreamModes","dataLen","threshold","restorePipelines","pipelineMap","preventIncremental","_pipe","prepareStageTasks","stageTaskMap","record","_createSeriesStageTask","_createOverallStageTask","prepareView","__block","performDataProcessorTasks","_performStageTasks","performVisualTasks","stageHandlers","stageHandler","visualType","stageHandlerRecord","seriesTaskMap","overallNeedDirty_1","stub","needSetDirty","performArgs_1","setDirty","dirtyMap","performSeriesTasks","oldSeriesTaskMap","newSeriesTaskMap","getTargetSeries","seriesTaskPlan","seriesTaskReset","seriesTaskCount","useClearVisual","isVisual","isLayout","overallTaskReset","oldAgentStubMap","newAgentStubMap","overallProgress","shouldOverallTaskDirty","createStub","stubReset","stubOnDirty","agent","wrapStageHandler","detectSeriseType","stubProgress","clearAllVisual","resetDefines","makeSeriesTaskProgress","singleSeriesTaskProgress","resetDefineIdx","resetDefine","legacyFunc","ecModelMock","apiMock","mockMethods","cond","Clz","colorAll","lightTheme","contrastColor","axisCommon","axisLine","splitLine","splitArea","minorSplitLine","colorPalette","crossStyle","subtextStyle","iconStyle","brushStyle","handleStyle","moveHandleStyle","fillerColor","dataBackground","selectedDataBackground","controlStyle","dayLabel","monthLabel","yearLabel","timeAxis","logAxis","valueAxis","categoryAxis","axisLabel","color0","borderColor0","DatasetModel","_sourceManager","DatasetView","mapDataStorage","registerMap","mapName","rawDef","rawSpecialAreas","records","specialAreas","geoSource","geoJson","geoJSON","features","parsers","retrieveMap","svgXML","ECEventProcessor","cptQuery","dataQuery","otherQuery","condCptType","suffixes_1","dataKeys_1","reserved","propSuffix","suffixPos","eventInfo","packedEvent","check","filterForExposedEvent","host","propOnHost","seriesSymbolTask","legendSymbol","symbolType","keepAspect","symbolRotate","hasSymbolTypeCallback","hasSymbolSizeCallback","hasSymbolRotateCallback","hasCallback","seriesSymbol","seriesSymbolSize","seriesSymbolRotate","symbolKeepAspect","dataSymbolTask","itemSymbolType","itemSymbolSize","itemSymbolRotate","itemSymbolKeepAspect","getItemVisualFromData","getVisualFromData","setItemVisualFromData","PI2$7","CMD$4","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","tmpArr$1","tmpProjPoint","linePoints","minTurnAngle","angleCos","minTurnAngleCos","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","maxSqeezePercent","totalGaps","prevItemRect","squeezePercent","movement","moveForEachLabel","shiftLayoutOnX","leftBound","rightBound","shiftLayoutOnY","topBound","bottomBound","hideOverlap","labelList","displayedLabels","hideEl","emphasisState","labelItem","existsTextCfg","labelGuideIgnore","cloneArr","newPoints","prepareLayoutCallbackParams","hostRect","labelLinePoints","LABEL_OPTION_TO_STYLE_KEYS","dummyTransformable","labelLayoutInnerStore","labelLineAnimationStore","extendWithKeys","LABEL_LAYOUT_PROPS","LabelManager","_labelList","_chartViewList","clearLabels","_addLabel","labelStyle","labelTransform","labelGuide","attachedPos","attachedRot","addLabelsOfSeries","chartView","__model","disableLabelLayout","updateLayoutConfig","createDragHandler","defaultLabelAttr","degreeToRadian","needsUpdateLabelLine","labelLayoutStore","labelsNeedsAdjustOnX","moveOverlap","labelsNeedsAdjustOnY","labelsNeedsHideOverlap","processLabelsOverall","ignoreLabelLineUpdate","_updateLabelLine","_animateLabels","visualStyle","disableLabelAnimation","layoutStore","oldLayout","newProps","oldOpacity","prevStates","oldLayoutSelect","oldLayoutEmphasis","layoutSelect","layoutEmphasis","newLayout","createLegacyDataSelectAction","ecRegisterAction","getSeriesIndices","eventsMap","dispatchAction","handleSeriesLegacySelectEvents","eventPostfix","ecIns","legacyEventName","fromActionPayload","handleLegacySelectEvents","messageCenter","isFromClick","fromAction","createLinearGradient","canvasGradient","createRadialGradient","getCanvasGradient","isClipPathChanged","prevClipPaths","normalizeLineDash","lineType","pathProxyForDraw","styleHasStroke","styleHasFill","doFillPath","originalGlobalAlpha","globalAlpha","doStrokePath","createCanvasPattern","pattern","canvasPattern","createPattern","repeat","DOMMatrix","rotateSelf","scaleSelf","translateSelf","setTransform","brushPath","inBatch","strokePart","firstDraw","hasFillGradient","hasStrokeGradient","hasFillPattern","hasStrokePattern","fillGradient","strokeGradient","fillPattern","strokePattern","__canvasFillGradient","__canvasStrokeGradient","__canvasFillPattern","__canvasStrokePattern","fillStyle","strokeStyle","ctxLineDash","lineScale_1","needsRebuild","brushImage","drawImage","brushText","hasLineDash","lineScale_2","strokeText","fillText","SHADOW_NUMBER_PROPS","STROKE_PROPS","bindCommonProps","prevStyle","forceSetAll","flushPathDrawn","globalCompositeOperation","bindPathAndTextCommonStyle","prevEl","newLineWidth","bindImageStyle","setContextTransform","updateClipStatus","allClipped","isTransformChanged","m0","DRAW_TYPE_PATH","DRAW_TYPE_IMAGE","DRAW_TYPE_TEXT","DRAW_TYPE_INCREMENTAL","canPathBatch","batchFill","batchStroke","brushSingle","isLast","__isRendered","prevElClipPaths","forceSetTransform","forceSetStyle","save","canBatchPath","lastDrawType","brushIncremental","temporalDisplayables","innerScope","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","diamond","pin","arrow","triangle","symbolShapeMakers","thickness","symbolBuildProxies","SymbolClz","proxySymbol","symbolPathSetColor","symbolStyle","__isEmptyBrush","createSymbol","symbolPath","setColor","decalMap","decalCache","decalKeys","createOrUpdatePatternFromDecal","decalObject","getDevicePixelRatio","getZr","isSVG","oldPattern","decalOpt","maxTileWidth","maxTileHeight","setPatternnSource","isValidKey","cache","svgElement","normalizeDashArrayX","normalizeDashArrayY","symbolArray","normalizeSymbolArray","lineBlockLengthsX","getLineBlockLengthX","lineBlockLengthY","getLineBlockLengthY","svgRoot","createSVGElement","pSize","getPatternSize","brushDecal","svgWidth","svgHeight","xlen","symbolRepeats","attrName","ySum","yId","yIdTotal","xId0","symbolYId","xId1","xId1Total","xSum","top_1","symbolXId","brushSymbol","isAllString","dashValue","isAllNumber","dashValue_1","blockLength","decalVisual","hasItemVisual","assert$1","each$3","isFunction$1","isObject$2","version$1","TEST_FRAME_REMAIN_TIME","PRIORITY_PROCESSOR_SERIES_FILTER","PRIORITY_PROCESSOR_DATASTACK","PRIORITY_PROCESSOR_FILTER","PRIORITY_PROCESSOR_DEFAULT","PRIORITY_PROCESSOR_STATISTIC","PRIORITY_VISUAL_LAYOUT","PRIORITY_VISUAL_PROGRESSIVE_LAYOUT","PRIORITY_VISUAL_GLOBAL","PRIORITY_VISUAL_CHART","PRIORITY_VISUAL_COMPONENT","PRIORITY_VISUAL_CHART_DATA_CUSTOM","PRIORITY_VISUAL_POST_CHART_LAYOUT","PRIORITY_VISUAL_BRUSH","PRIORITY_VISUAL_ARIA","PRIORITY_VISUAL_DECAL","PRIORITY","PROCESSOR","FILTER","SERIES_FILTER","STATISTIC","VISUAL","LAYOUT","PROGRESSIVE_LAYOUT","GLOBAL","CHART","POST_CHART_LAYOUT","COMPONENT","BRUSH","CHART_ITEM","ARIA","DECAL","IN_MAIN_PROCESS_KEY","OPTION_UPDATED_KEY","STATUS_NEEDS_UPDATE_KEY","ACTION_REG","CONNECT_STATUS_KEY","CONNECT_STATUS_PENDING","CONNECT_STATUS_UPDATING","CONNECT_STATUS_UPDATED","createRegisterEventWithLowercaseECharts","isDisposed","disposedWarning","toLowercaseNameAndCallEventful","createRegisterEventWithLowercaseMessageCenter","MessageCenter","messageCenterProto","updateDirectly","updateMethods","doConvertPixel","doDispatchAction","flushPendingActions","triggerUpdatedEvent","bindRenderedEvent","bindMouseEvent","renderComponents","renderSeries","performPostUpdateFuncs","createExtensionAPI","enableConnect","setTransitionOpt","markStatusToUpdate","applyChangedStates","ECharts","_chartsViews","_chartsMap","_componentsViews","_pendingActions","themeStorage","_dom","defaultRenderer","defaultUseDirtyRect","__ECHARTS__DEFAULT__RENDERER__","devUseDirtyRect","__ECHARTS__DEFAULT__USE_DIRTY_RECT__","_zr","_throttledZrFlush","_coordSysMgr","prioritySortFunc","__prio","visualFuncs","dataProcessorFuncs","_scheduler","_messageCenter","_labelManager","_initEvents","_onframe","remainTime","_model","getDom","notMerge","lazyUpdate","transitionOpt","setTheme","getSvgDataURL","toDataURL","getDataURL","excludeComponents","excludesComponentViews","__viewId","getConnectedDataURL","isSvg","groupId","MAX_NUMBER","connectedGroups","left_1","right_1","bottom_1","canvasList_1","dpr_1","instances$1","chart","getSvgDom","targetCanvas","zr_1","content_1","getSvgRoot","connectedBackgroundColor","convertToPixel","convertFromPixel","containPixel","findResult","containPoint","parsedFinder","MOUSE_EVENT_NAMES","eveName","isGlobalOut","dataModel","eventData","eventActionMap","actionType","DOM_ATTRIBUTE_KEY","_loadingFX","showLoading","hideLoading","loadingEffects","makeActionFromEvent","eventObj","actions","updateLabelLayout","labelManager","isComponent","viewList","viewMap","__alive","doPrepare","requireNewView","viewId","classType","Clazz","__id","__ecComponentInfo","callView","excludeSeriesId","excludeSeriesIdMap","modelId","notBlur","prepareAndUpdate","coordSysMgr","componentDirtyList","componentView","seriesDirtyMap","coordSysList","chartsMap","escapeConnect","actionWrap","actionInfo","cptTypeTmp","cptType","payloads","batched","batch","eventObjBatch","isSelectChange","isStatusChange","batchItem","action","newObj","pendingActions","dispatcher","dirtyList","updateZ","updateStates","__transientTransitionOpt","updateBlend","updateHoverLayerStatus","postUpdateFuncs","applyElementStates","newStates","elCount","preventUsingHoverLayer","preventAutoZ","stateAnimationModel","enableAnimation","class_1","getComponentByElement","modelInfo","updateConnectedChartsStatus","charts","otherChart","action_1","otherCharts_1","transOpt","fromOpt","toOpt","finderOpt","fromResult","toResult","toSeries","dimension","echartsProto","one","wrapped","args2","postInitFuncs","idBase","groupIdBase","init$1","existInstance","getInstanceByDom","clientWidth","clientHeight","postInitFunc","connect","disConnect","disconnect","dispose$1","getInstanceById","registerTheme","registerPreprocessor","preprocessorFunc","registerProcessor","processor","normalizeRegister","registerPostInit","registerPostUpdate","postUpdateFunc","registerAction","registerCoordinateSystem","coordSysCreator","getCoordinateSystemDimensions","getDimensionsInfo","registerLayout","layoutTask","registerVisual","visualTask","targetList","defaultPriority","__raw","registerLoading","loadingFx","extendComponentModel","extendComponentView","extendSeriesModel","extendChartView","setCanvasCreator","getMap","registerTransform","dataTool","dataIndexMapValueLength","valNumOrArrLengthMoreThan2","defaultKeyGetter","DataDiffer","oldArr","oldKeyGetter","newKeyGetter","diffMode","_old","_new","_oldKeyGetter","_newKeyGetter","_diffModeMultiple","_add","_update","updateManyToOne","_updateManyToOne","updateOneToMany","_updateOneToMany","_remove","execute","_executeOneToOne","newDataIndexMap","oldDataKeyArr","newDataKeyArr","_initIndexMap","oldKey","newIdxMapVal","newIdxMapValLen","newIdx","_performRestAdd","_executeMultiple","oldDataIndexMap","oldIdxMapVal","oldIdxMapValLen","newKey","idxMapValLen","keyArr","keyGetterName","cbModeMultiple","idxMapVal","summarizeDimensions","summary","notExtraCoordDimMap","defaultedLabel","defaultedTooltip","coordDimIndex","getOrCreateEncodeArr","isExtraCoord","mayLabelDimType","defaultTooltip","encodeArr","dataDimsOnCoord","encodeFirstDimNotExtra","dimArr","encodeLabel","encodeTooltip","getDimensionTypeByAxis","axisType","DataDimensionInfo","mathFloor","isObject$3","map$1","UNDEFINED","INDEX_NOT_FOUND","ID_PREFIX","dataCtors","Float64Array","Int32Array","CtorUint32Array","Uint32Array","CtorInt32Array","CtorUint16Array","Uint16Array","TRANSFERABLE_PROPERTIES","CLONE_PROPERTIES","defaultDimValueGetters","prepareInvertedIndex","getIndicesCtor","prepareStorage","getRawIndexWithoutIndices","getRawIndexWithIndices","getIdNameFromStore","makeIdFromName","normalizeDimensions","validateDimensions","cloneListForMapAndSample","getInitialExtent","setItemDataAndSeriesIndex","transferProperties","List","_rawCount","_storage","_storageArr","_nameList","_idList","_visual","_layout","_itemVisuals","_itemLayouts","_graphicEls","_rawExtent","_extent","_approximateExtent","_calculationInfo","TRANSFERABLE_METHODS","dimensionInfos","invertedIndicesMap","dimInfoInput","dimensionInfo","dimensionName","createInvertedIndices","_nameDimIdx","_nameOrdinalMeta","itemId","_idDimIdx","_idOrdinalMeta","_dimensionInfos","_dimensionsSummary","_invertedIndicesMap","getDimension","getDimensionsOnCoord","mapDimension","dimensionsSummary","initData","nameList","dimValueGetter","notProvider","_rawData","_indices","_dontMakeIdFromName","_nameRepeatCount","defaultDimValueGetter","_dimValueGetter","_dimValueGetterArrayRows","arrayRows","_initDataFromProvider","appendValues","values","dimLen","rawExtent","rawExtentArr","storageArr","emptyDataItem","sourceIdx","dimIdx","dimRawExtent","append","dimensionInfoMap","idList","isFormatOriginal","dimStorage","getIndices","newIndices","thisCount","buffer","getByDimIdx","dimStore","getValues","getDataExtent","dimData","initialExtent","currEnd","useRaw","getApproximateExtent","setApproximateExtent","getSum","getMedian","dimDataArray","sortedDimDataArray","invertedIndices","rawIndex","indicesOfNearest","maxDistance","nearestIndices","minDiff","nearestIndicesLen","ctxCompat","fCtx","dimNames","dimIndices","filterSelf","dim0","selectRange","originalCount","quickFinished","dimStorage2","val2","dimk","mapArray","tmpRetValue","retValue","rawExtentOnDim","downSample","sampleValue","sampleIndex","targetStorage","frameValues","frameSize","sampleFrameIdx","lttbDownSample","valueDimension","sampledIndex","currentRawIndex","maxArea","area","nextRawIndex","nextFrameStart","nextFrameEnd","avgX","avgY","frameStart","frameEnd","pointAX","pointAY","otherList","thisList","visual","kvObj","itemVisual","itemVisuals","setLayout","getLayout","getItemLayout","setItemLayout","clearItemLayouts","setItemGraphicEl","dimensionInfoList","injectFunction","originalMethod","__wrappedMethods","getDimValueSimply","objectRows","keyedColumns","original","typedArray","chunk","DataCtor","oldStore","oldLen","newStore","excludeDimensions","allDimensions","originalStorage","cloneChunk","originalChunk","childECData","thisECData","nameDimIdx","idDimIdx","nameRepeatCount","nmCnt","completeDimensions","sysDims","dataDimNameMap","coordDimNameMap","getDimCount","dimDefItemRaw","userDimName","encodeDef","encodeDefaulter","encodeDefMap","dataDimsRaw","validDataDims","resultDimIdxOrName","resultDimIdx","applyDim","availDimIdx","sysDimItemRaw","sysDimItemDimsDef","sysDimItemOtherDims","sysDimItem","sysDimItemDimsDefItem","generateCoord","generateCoordCount","fromZero","genName","optDimCount","createDimensions","dimensionsCount","CoordSysInfo","coordSysName","coordSysDims","axisMap","categoryAxisMap","getCoordSysInfoBySeries","fetch","fetchers","cartesian2d","xAxisModel","yAxisModel","isCategory","firstCategoryDimIndex","singleAxis","singleAxisModel","polar","polarModel","radiusAxisModel","findAxisModel","angleAxisModel","parallelModel","parallelAxisIndex","axisIndex","axisModel","axisDim","enableDataStack","byIndex","stackedCoordDimension","mayStack","stackedByDimInfo","stackedDimInfo","stackedDimCoordDim_1","stackedDimType","stackedDimCoordIndex_1","isCalculationCoord","isDimensionStacked","stackedDim","getStackedDimension","targetDim","createListFromArray","registeredCoordSys","coordSysInfo","coordSysDimDefs","useEncodeDefaulter","dimInfoList","hasNameEncode","categoryAxisModel","getOrdinalMeta","stackCalculationInfo","isNeedCompleteOrdinalData","sampleItem","firstDataNotNull","Scale","setting","_setting","getSetting","unionExtent","unionExtentFromData","getExtent","setExtent","thisExtent","isInExtentRange","isBlank","_isBlank","setBlank","OrdinalMeta","_needCollect","needCollect","_deduplication","deduplication","createByAxisModel","dedplication","getOrdinal","category","_getOrCreateMap","roundNumber","intervalScaleNiceTicks","splitNumber","minInterval","maxInterval","span","intervalPrecision","getIntervalPrecision","niceTickExtent","fixExtent","contain$1","normalize$1","scale$2","OrdinalScale","_ordinalMeta","_categorySortInfo","getCategoryIndex","getTicks","ticks","getMinorTicks","setCategorySortInfo","getCategorySortInfo","beforeSortIndex","displayIndex","ordinalNumber","getLabel","cateogry","niceTicks","niceExtent","roundNumber$1","IntervalScale","_interval","_intervalPrecision","getInterval","setInterval","_niceExtent","expandToNicedExtent","safeLimit","lastNiceTick","minorTicks","nextTick","prevTick","minorTicksGroup","minorInterval","minorTick","dataNum","expandSize","fixMax","fixMin","STACK_PREFIX","LARGE_BAR_MIN_WIDTH","LargeArr","getSeriesStackId","getAxisKey","getLayoutOnAxis","baseAxis","axisKey","bandWidth","getBandWidth","stackId","widthAndOffsets","doCalBarWidthAndOffset","offsetCenter","prepareLayoutBarSeries","isOnCartesian","isInLargeMode","getValueAxesMinGaps","barSeries","axisValues","cartesian","cnt","axisMinGaps","valuesInAxis","makeColumnLayout","seriesInfoList","axisExtent","extentSpan","scaleSpan","barWidth","barMaxWidth","barMinWidth","barGap","barCategoryGap","columnsMap","seriesInfo","columnsOnAxis","autoWidthCount","categoryGap","stacks","minWidth","categoryGapPercent","columnCount","barGapPercent","autoWidth","column","finalWidth","widthSum","lastColumn","retrieveColumnLayout","barWidthAndOffset","lastStackCoords","columnLayoutInfo","columnOffset","columnWidth","getOtherAxis","barMinHeight","valueDim","baseDim","stacked","isValueAxisH","isHorizontal","valueAxisStart","getValueAxisStart","baseValue","baseCoord","dataToPoint","largeLayout","coordLayout","getRect","valueAxisHorizontal","valueDimIdx","largePoints","largeBackgroundPoints","largeDataIndices","valuePair","pointsOffset","idxOffset","backgroundStart","toGlobalCoord","dataToCoord","bisect","TimeScale","settings","_minLevelUnit","labelFormatter","innerTicks","getIntervalTicks","_approxInterval","getFullYear","getMonth","getDate","approxTickNum","scaleIntervalsLen","scaleIntervals","isUnitValueSame","valueA","valueB","dateA","dateB","isSame","isSameYear","isSameMonth","isSameDay","isSameHour","isSameMinute","isSameSecond","isSameMilliSecond","getDateInterval","approxInterval","daysInMonth","getMonthInterval","APPROX_ONE_MONTH","getHourInterval","getMinutesAndSecondsInterval","isMinutes","getMillisecondsInterval","getFirstTimestampOfUnit","unitName","outDate","bottomUnitName","unitNames","iter","addTicksInSpan","minTimestamp","maxTimestamp","getMethodName","setMethodName","isDate","dateTime","notAdd","addLevelTicks","lastLevelTicks","levelTicks","newAddedTicks","isFirstLevel","startTick","endTick","getterName","setterName","levelsTicks","currentLevelTicks","tickCount","lastLevelTickCount","primaryTimeUnit","nextPrimaryTimeUnit","levelTicksRemoveDuplicated","tickValue","targetTickNum","levelsTicksInExtent","maxLevel","scaleProto","intervalScaleProto","getPrecisionSafe$1","roundingErrorFix","mathFloor$1","mathCeil","mathPow$1","mathLog","LogScale","_originalScale","originalScale","originalExtent","powVal","_fixMin","fixRoundingError","_fixMax","originalVal","ScaleRawExtentInfo","_prepareParams","_dataMin","_dataMax","isOrdinal","_isOrdinal","_needCrossZero","getNeedCrossZero","modelMinRaw","_modelMinRaw","_modelMinNum","parseAxisModelMinMax","modelMaxRaw","_modelMaxRaw","_modelMaxNum","_axisDataLen","getCategories","boundaryGap","boundaryGapArr","_boundaryGapInner","dataMin","dataMax","axisDataLen","boundaryGapInner","minFixed","maxFixed","determinedMin","_determinedMin","determinedMax","_determinedMax","modifyDataMinMax","minMaxName","frozen","DATA_MIN_MAX_ATTR","setDeterminedMinMax","DETERMINED_MIN_MAX_ATTR","ensureScaleRawExtentInfo","rawExtentInfo","minMax","getScaleExtent","scaleType","rawExtentResult","barSeriesModels","isBaseAxisAndHasBarSeries_1","adjustedScale","adjustScaleForOverflow","axisLength","barsOnCurrentAxis","minOverflow","maxOverflow","totalOverFlow","oldRange","oldRangePercentOfNew","overflowBuffer","niceScaleExtent","extentInfo","createScaleByModel","ifAxisCrossZero","makeLabelFormatter","getLabelModel","categoryTickStart","getAxisRawValue","estimateLabelUnionRect","realNumberScaleTicks","categoryScaleExtent","axisLabelModel","unrotatedSingleRect","singleRect","rotateTextRect","textRect","rotateRadians","beforeWidth","beforeHeight","afterWidth","afterHeight","rotatedRect","getOptionCategoryInterval","shouldShowAllLabels","getDataDimensionsOnAxis","dataDimMap","unionAxisExtentFromData","seriesExtent","AxisModelCommonMixin","getCoordSysModel","createList","dataStack$1","createScale","mixinAxisModelCommonMethods","helper","EPSILON$3","isAroundEqual$1","contain$2","Region","geometries","cp","exterior","loopGeo","interiors","transformTo","newRegion","decode","json","UTF8Encoding","jsonCompressed","encodeScale","UTF8Scale","geometry","coordinates","decodePolygon","encodeOffsets","coordinate","prevX","prevY","parseGeoJSON","nameProperty","featureObj","region","inner$4","createAxisLabels","makeCategoryLabels","makeRealNumberLabels","createAxisTicks","tickModel","makeCategoryTicks","labelModel","makeCategoryLabelsActually","labels","labelCategoryInterval","labelsCache","getListCache","optionLabelInterval","listCacheGet","numericLabelInterval","makeLabelsByCustomizedCategoryInterval","makeAutoCategoryInterval","makeLabelsByNumericCategoryInterval","listCacheSet","ticksCache","optionTickInterval","tickCategoryInterval","labelsResult","formattedLabel","rawLabel","autoInterval","calculateCategoryInterval","fetchAutoCategoryIntervalCalculationParams","axisRotate","ordinalScale","ordinalExtent","unitSpan","unitW","unitH","maxW","maxH","dw","dh","lastAutoInterval","lastTickCount","axisExtent0","axisExtent1","getRotate","categoryInterval","onlyTick","showAllLabel","includeMinLabel","includeMaxLabel","addItem","tickObj","NORMALIZED_EXTENT","Axis","onBand","containData","fixExtentWithBands","coordToData","pointToData","getTicksCoords","getTickModel","ticksCoords","tickVal","alignWithLabel","fixOnBandTicksCoords","getMinorTicksCoords","minorTickModel","minorTicksCoords","getViewLabels","nTick","ticksLen","diffSize","crossLen","shift_1","ticksItem","parseGeoJson","number","format$1","ecUtil","GRAPHIC_KEYS","graphic$1","RELATIONAL_EXPRESSION_OP_ALIAS_MAP","RegExpEvaluator","rVal","condValue","_condVal","RegExp","lVal","ConstConditionInternal","AndConditionInternal","OrConditionInternal","NotConditionInternal","RelationalConditionInternal","needParse","valueParser","getValue","tarValRaw","valueGetterParam","tarValParsed","subCondList","parseOption","exprOption","getters","isObjectNotArray","and","parseAndOrOption","or","not","parseNotOption","parseRelationalOption","subOptionArr","prepareGetValue","exprKeys","parserName","keyRaw","valueGetterAttrMap","condValueRaw","condValueParsed","evaluator","ConditionalExpressionParsed","_cond","parseConditionalExpression","filterTransform","dimLoose","sampleLog","sortTransform","orderExprList","orderDefList","orderExpr","errMsg_1","errMsg_2","comparator","item0","item1","orderDef","LineSeriesModel","legendHoverLink","endLabel","smoothMonotone","showSymbol","showAllSymbol","connectNulls","sampling","getDefaultLabel","labelDims","vals","getDefaultInterpolatedLabel","interpolatedValue","Symbol","seriesScope","updateData","_createSymbol","driftSymbol","_symbolType","stopSymbolAnimation","toLastFrame","getSymbolPath","setZ","setDraggable","getSymbolSize","disableAnimation","_updateCommon","_sizeX","_sizeY","_seriesModel","emphasisItemStyle","blurItemStyle","selectItemStyle","symbolOffset","hoverScale","emphasisModel","visualColor","pathStyle","symbolInnerColor","liftZ","z2Origin","_z2","useNameLabel","getLabelDefaultText","scaleRatio","setSymbolScale","fadeOut","animationOpt","fadeLabel","symbolNeedsDraw","isIgnore","clipShape","normalizeUpdateOpt","makeSeriesScope","SymbolDraw","SymbolCtor","_SymbolCtor","oldData","symbolUpdateOpt","getSymbolPoint","symbolEl","oldIdx","_getSymbolPoint","isPersistent","incrementalPrepareUpdate","_seriesScope","incrementalUpdate","taskParams","updateIncrementalAndHover","prepareDataCoordInfo","valueOrigin","valueStart","getValueStart","baseAxisDim","valueAxisDim","baseDataOffset","stackResultDim","dataDimsForPoint","getStackedOnPoint","dataCoordInfo","stackedData","supportFloat32Array","Float32ArrayCtor","createFloat32Array","diffData","diffResult","idx1","lineAnimationDiff","oldStackedOnPoints","newStackedOnPoints","oldCoordSys","newCoordSys","oldValueOrigin","newValueOrigin","currPoints","nextPoints","currStackedPoints","nextStackedPoints","sortedIndices","rawIndices","newDataOldCoordInfo","oldDataNewCoordInfo","oldPoints","diffItem","pointAdded","oldIdx2","newIdx2","currentX","currentY","newDataDimsForPoint","oldPt","stackedOnPoint","oldDataDimsForPoint","newPt","newStackedOnPt","sortedCurrPoints","sortedNextPoints","sortedCurrStackedPoints","sortedNextStackedPoints","sortedStatus","i2","idx2","stackedOnCurrent","stackedOnNext","mathMin$5","mathMax$5","isPointNull","drawSegment","segLen","allLen","cpx0","cpy0","tmpK","ratioNextSeg","nextCpx0","nextCpy0","lenPrevSeg","lenNextSeg","ECPolylineShape","ECPolyline","getPointOn","xOrY","isDimX","nRoot","t_1","ECPolygonShape","ECPolygon","stackedOnPoints","stackedOnSmooth","createGridClipPath","hasAnimation","getArea","isAxisInversed","duringCb","createPolarClipPath","sectorArea","isRadial","createClipPath","isCoordinateSystemType","isPointsSame","points1","points2","bboxFromPoints","minX","minY","getBoundingDiff","min1","max1","getSmooth","getStackedOnPoints","turnPointsIntoStep","stepTurnAt","baseIndex","stepPoints","stepPt","nextPt","stepPt2","getVisualGradient","visualMetaList","visualMeta","getAxis","stops","stopLen","outerColors","tinyExtent","minCoord","maxCoord","coordSpan","getIsIgnoreFunc","isAuto","getAxesByScale","canShowAllSymbolForCategory","categoryDataDim","labelMap","availSize","isPointNull$1","getLastIndexNotNull","getPointAtIndex","getIndexRange","prevIndex","nextIndex","createLineClipPath","lineView","endLabelModel_1","showEndLabel","valueAnimation_1","data_1","labelAnimationRecord_1","lastFrameIndex","clipRect","_endLabelOnDuring","_endLabel","originalX","originalY","getEndLabelStateSpecified","endLabelModel","isBaseInversed","LineView","lineGroup","symbolDraw","_symbolDraw","_lineGroup","lineStyleModel","areaStyleModel","isCoordSysPolar","prevCoordSys","_coordSys","_polyline","_polygon","isAreaChart","isIgnoreFunc","__temp","clipShapeForSymbol","_clipShapeForSymbol","_step","_initSymbolLabelAnimation","_newPolyline","_newPolygon","_initOrUpdateEndLabel","_stackedOnPoints","_points","_doUpdateAnimation","lineJoin","emphasisLineStyle","stackedOnSeries","changePolyState","_changePolyState","_valueOrigin","isHorizontalOrRadial","isAxisInverse","seriesDuration","seriesDalay","seriesDalayValue","polarClip","pointToCoord","gridClip","ratio","data_2","animationRecord","dataIndexRange","endValue","__points","updatedDataInfo","diffStatus","ptIdx","pointsLayout","forceStoreInTypedArray","useTypedArray","dimInfo0","dimInfo1","dimIdx0","dimIdx1","tmpIn","tmpOut","samplers","average","nearest","indexSampler","dataSample","sampler","nameLocation","nameRotate","nameTruncate","nameTextStyle","triggerEvent","onZero","onZeroAxisIndex","axisTick","showMinLabel","showMaxLabel","primary","logBase","axisDefault","AXIS_TYPES","axisModelCreator","BaseAxisModelClass","extraDefaultOption","AxisModel","getAxisType","thisOption","__ordinalMeta","CartesianAxisModel","extraOption","categorySortInfo","PI$6","AxisBuilder","nameDirection","tickDirection","labelDirection","handleAutoShown","transformGroup","_transformGroup","hasBuilder","builders","getGroup","innerTextLayout","axisRotation","textRotation","rotationDiff","makeAxisEventDataBase","isLabelSilent","tooltipOpt","shown","arrows","arrowSize","arrowOffset","symbolWidth_1","symbolHeight_1","axisTickLabel","ticksEls","buildAxisMajorTicks","labelEls","buildAxisLabel","fixMinMaxLabelShow","buildAxisMinorTicks","gapSignal","isNameLocationCenter","labelLayout","nameRotation","axisNameAvailableWidth","endTextLayout","truncateOpt","nameTruncateMaxWidth","formatterParams","__fullText","targetType","textRotate","onLeft","tickEls","firstLabel","nextLabel","lastLabel","prevLabel","firstTick","lastTick","ignoreEl","isTwoLabelOverlapped","firstRect","nextRect","mRotationBack","createTicks","tickTransform","tickEndCoord","tickLineStyle","anidPrefix","tickCoord","tickEl","minorTickLineStyle","minorTicksEls","axisLabelShow","labelMargin","labelRotation","rawCategoryData","itemLabelModel","rawCategoryItem","collect","axesInfo","seriesInvolved","coordSysAxesInfo","coordSysMap","collectAxesInfo","collectSeriesInfo","globalTooltipModel","globalAxisPointerModel","linksOption","linkGroups","axisPointerEnabled","coordSysKey","makeKey","axesInfoInCoordSys","coordSysModel","baseTooltipModel","getAxes","saveTooltipAxisInfo","getTooltipAxes","triggerAxis","cross","tooltipAxes","baseAxes","otherAxes","fromTooltip","triggerTooltip","axisPointerModel","axisPointerShow","isHandleTrigger","makeAxisPointerModel","snap","involveSeries","axisInfo","useHandle","linkGroup","groupIndex","getLinkGroupIndex","mapper","tooltipAxisPointerModel","volatileOption","field","labelOption","tooltipAxisPointerLabelShow","seriesTooltipTrigger","seriesTooltipShow","seriesDataCount","linkOption","checkPropInLink","linkPropValue","axisPropValue","fixValue","getAxisInfo","getAxisPointerModel","axisPointerClazz","AxisView","axisPointerClass","_doUpdateAxisPointerClass","updateAxisPointer","_axisPointer","_disposeAxisPointer","forceRender","getAxisPointerClass","registerAxisPointerClass","layout$1","gridModel","grid","otherAxisOnZeroOf","getAxesOnZeroOf","rawAxisPosition","axisPosition","rectBound","axisOffset","posBound","onZeroCoord","dirMap","labelInside","isCartesian2DSeries","findAxisModels","axisModelMap","inner$5","rectCoordAxisBuildSplitArea","axisView","axisGroup","splitAreaModel","areaColors","gridRect","areaColorsLen","lastSplitAreaColors","splitAreaColors","newSplitAreaColors","colorIndex","cIndex","rectCoordAxisHandleRemove","axisBuilderAttrs","selfBuilderAttrs","CartesianAxisView","oldAxisGroup","_axisGroup","axisBuilder","elementType","cartesians","getCartesians","otherAxisType","axisElementBuilders","splitLineModel","lineColors","minorSplitLineModel","CartesianXAxisView","CartesianYAxisView","seriesModelMap","seriesRecords","axisRecordMap","prepareDataExtentOnAxis","calculateFilteredExtent","shrinkAxisExtent","axesModelMap","xAxis","yAxis","xRawExtentInfo","yRawExtentInfo","prepareAxisRecord","condExtent","seriesRecord","xAxisRecord","yAxisRecord","condDimMap","tarDimMap","condAxis","tarAxisRecord","addCondition","axisRecord","addTarget","condDims","tarDims","tarDimExtents","initExtent","condDimsLen","tarDimsLen","singleCondDim","singleTarDim","condVal","tarDimExtent","tarAxisExtent","tarExtent","GridModel","containLabel","GridView","Cartesian","_dimList","addAxis","cartesian2DDimensions","canCalculateAffineTransform","Cartesian2D","calcAffineTransform","_transform","_invTransform","xAxisScale","yAxisScale","xScaleExtent","yScaleExtent","xScaleSpan","yScaleSpan","translateX","translateY","axisX","axisY","toLocalCoord","xVal","yVal","clampData","xScale","yScale","xAxisExtent","yAxisExtent","xExtent","getGlobalExtent","yExtent","Axis2D","coordExtent","Grid","_coordsMap","_coordsList","_axesMap","_axesList","_initCartesian","axesMap","_updateScale","onZeroRecords","fixAxisOnZero","ignoreContainLabel","boxLayoutParams","isContainLabel","axesList","adjustAxes","labelUnionRect","updateAxisTransform","axesMapOnDim","getCartesian","xAxisIndex","yAxisIndex","coordList","_findConvertTarget","coordsList","axisPositionUsed","axesCount","createAxisCreator","isAxisUsedInTheGrid","otherAxis","grids","otherAxisDim","canOnZeroToAxis","getOnZeroRecordKey","coordBase","axisExtentSum","BaseBarSeriesModel","getMarkerPosition","offsetIndex","barMinAngle","largeThreshold","progressiveChunkMode","BarSeriesModel","brushSelector","selectors","roundCap","showBackground","realtimeSort","SausageShape","SausagePath","dr","rCenter","unitStartX","unitStartY","unitEndX","unitEndY","lessThanCircle","BAR_BORDER_WIDTH_QUERY","BAR_BORDER_RADIUS_QUERY","_eventPos","mathMax$6","mathMin$6","getClipArea","coordSysClipArea","expandWidth","BarView","_isFirstFrame","removeOnRenderedListener","_updateDrawMode","coordinateSystemType","_isLargeDraw","_renderLarge","_renderNormal","_clear","_updateLargeClip","_incrementalRenderLarge","isLargeDraw","animationModel","axis2DModel","_initSort","_onRendered","_updateSort","needsClip","drawBackground","backgroundModel","barBorderRadius","bgEls","oldBgEls","_backgroundEls","isInitSort","isChangeOrder","createBackground","bgLayout","bgEl","createBackgroundEl","isClipped","elementCreator","updateStyle","updateRealtimeAnimation","newIndex","oldIndex","createBackgroundShape","bgGroup","_backgroundGroup","createLarge","_removeBackground","_dataSort","mappedValue","_isDataOrderChanged","oldOrder","oldCount","lastValue","isOrderChanged","newOrder","axisId","sortInfo","coordSysBoundingRect","signWidth","signHeight","clipped","signR","__dataIndex","animateProperty","sector","sectorShape","animateTarget","seriesTarget","axisTarget","fixedLineWidth","getLineWidth","signX","signY","isZeroOnPolar","isPolar","labelPositionOutside","rawLayout","LagePathShape","LargePath","startPoint","__startPoint","baseDimIdx","__baseDimIdx","backgroundStartPoint","__largeDataIndices","__barWidth","setLargeBackgroundStyle","setLargeStyle","largePathUpdateDataIndex","largePath","largePathFindDataIndex","barWidthHalf","startValueVal","pointerBaseVal","pointerValueVal","baseLowerBound","baseUpperBound","barBaseVal","barValueVal","ElementClz","createListSimply","dimensionsInfo","LegendVisualProvider","getDataWithEncodedVisual","_getDataWithEncodedVisual","_getRawData","getAllNames","containName","dataWithEncodedVisual","PieSeriesModel","legendVisualProvider","_defaultLabelLine","labelLineNormalOpt","labelLineEmphasisOpt","minAngle","minShowLabelAngle","selectedOffset","percentPrecision","stillShowZeroSum","bleedMargin","distanceToLabelLine","avoidLabelOverlap","animationTypeUpdate","RADIAN","adjustSingleSide","viewLeft","viewTop","farthestX","recalculateXOnSemiToAlignOnEllipseCurve","semi","rB","rB2","rA","rA2","recalculateX","items","topSemi","bottomSemi","labelAlignTo","avoidOverlap","labelLayoutList","leftList","rightList","leftmostX","rightmostX","isPositionCenter","isAlignToEdge","realTextWidth","targetTextWidth","pieLabelLayout","hasLabelRotate","minShowLabelRadian","setNotShow","isLabelShown","labelLineLen","labelLineLen2","midAngle","isLabelInside","notShowLabel","getSectorCornerRadius","PiePiece","firstCreate","_updateLabel","visualOpacity","PieView","sectorGroup","_sectorGroup","piePiece","itemLayout","PI2$8","RADIAN$1","getViewRect","pieLayout","validDataCount","unitRadian","roseType","restAngle","valueSumLargerThanMinAngle","currentAngle","angle_1","layout_1","layout_2","dataFilter","legendModels","ScatterSeriesModel","BOOST_SIZE_THRESHOLD","LargeSymbolPathShape","LargeSymbolPath","symbolProxy","symbolProxyShape","canBoost","softClipShape","findDataIndex","LargeSymbolDraw","_incremental","_setCommon","endIndex","byteOffset","_clearIncremental","isIncremental","extrudeShadow","ecData_1","ScatterView","_updateSymbolDraw","_getClipShape","clipArea","IndicatorAxis","radiusExtent","Radar","radarModel","_indicatorAxes","getIndicatorModels","indicatorModel","indicatorAxis","getIndicatorAxes","indicatorIndex","coordToPoint","minRadianDiff","closestAxis","closestAxisIdx","viewSize","indicatorAxes","radarSeries","increaseInterval","fixedMin","fixedMax","nicedSplitNumber","pixel","radarList","valueAxisDefault","defaultsShow","RadarModel","showName","nameFormatter","indicatorModels","indicatorOpt","iNameTextStyle","innerIndicatorOpt","indName","_indicatorModels","indicator","axisBuilderAttrs$1","RadarView","_buildAxes","_buildSplitLineAndArea","axisBuilders","showSplitLine","showSplitArea","splitLineColors","splitLineColorsArr","splitAreaColorsArr","splitLines","splitAreas","getColorIndex","areaOrLine","areaOrLineColorList","ticksRadius","realSplitNumber_1","axesTicksPoints","prevPoints","RadarSeriesModel","nameToDisplay","getTooltipPosition","radarIndex","normalizeSymbolSize","RadarView$1","createSymbol$1","updateSymbols","symbolGroup","__dimIdx","getInitialPoints","itemGroup","polygonIgnore","stateIgnore","itemHoverStyle","pathEmphasisState","radarLayout","isValidPoint","getValueMissingPoint","firstPoint","radarBackwardCompat","polarOptArr","polarNotRadar_1","polarOpt","polarIndex","geoCoord","points$1","fixNanhai","coordsOffsetMap","fixTextCoords","coordFix","geoCoordMap","fixGeoCoords","points$2","fixDiaoyuIsland","inner$6","geoJSONLoader","load","mapRecord","parsed","regionName","specialArea","getBoundingRect$1","regionRect","inner$7","geoSVGLoader","originRoot","buildGraphic","makeGraphic","hostKey","rootMap","originRootHostKey","removeGraphic","loaders","geoSourceManager","regionsMap","nameCoordMap","mapRecords","singleSource","results","mapNotExistsError","MapSeries","needsDrawMap","seriesGroup","getRegion","dataNameMap","toAppendNames","name_2","getMapType","getHostGeoModel","geoIndex","getRegionModel","seriesNames","otherIndex","originalData","setZoom","setCenter","aspectScale","showLegendSymbol","boundingCoords","scaleLimit","areaColor","ATTR","take","resourceKey","userKey","getStore","release","uKey","isTaken","RoamController","mousedownHandler","_mousedownHandler","mousemoveHandler","_mousemoveHandler","mouseupHandler","_mouseupHandler","mousewheelHandler","_mousewheelHandler","pinchHandler","_pinchHandler","controlType","_opt","zoomOnMouseWheel","moveOnMouseMove","moveOnMouseWheel","preventDefaultMouseMove","isDragging","_dragging","isPinching","_pinching","setPointerChecker","pointerChecker","isAvailableBehavior","oldX","oldY","newX","newY","shouldZoom","shouldMove","absWheelDeltaDelta","factor","checkPointerAndTrigger","absDelta","scrollDelta","controller","behaviorToCheck","contollerEvent","updateViewOnPan","controllerHost","updateViewOnZoom","zoomDelta","zoomX","zoomY","zoomLimit","newZoom","zoomMin","zoomMax","zoomScale","IRRELEVANT_EXCLUDES","onIrrelevantElement","targetCoordSysModel","getFixedItemStyle","MapDraw","_controller","_controllerHost","_regionsGroup","mapOrGeoModel","fromView","isGeo","mapSeries","_updateBackground","regionsGroup","transformInfo","getTransformInfo","isFirstDraw","targetScaleX","targetScaleY","roamTransform","isVisualEncodedByVisualMap","regionGroup","compoundPath","regionModel","itemStyleModel","emphasisItemStyleModel","blurItemStyleModel","selectItemStyleModel","rawScaleX","rawScaleY","rawX","rawY","transformPoint","interior","points_1","showLabel","isDataNaN","centerPt","regionModel_1","groupRegions","__regions","_updateController","_updateMapSelectHandler","_mapName","getZoom","makeActionBase","_mouseDownFlag","getViewRectAfterRoam","mapDraw","MapView","mapModel","_mapDraw","_renderSymbols","originalDataIndex","fullData","mainSeries","fullIndex_1","updateCenterAndZoom","previousZoom","getCenter","fixX","fixY","v2ApplyTransform","View","_roamTransformable","_rawTransformable","setViewRect","_viewRect","rawTransform","_updateTransform","centerCoord","_center","_updateCenterAndZoom","_zoom","getDefaultCenter","rawRect","getRoamTransform","rawTransformMatrix","defaultCenter","roamTransformable","rawTransformable","_rawTransform","noRoam","getCoordSys","Geo","invertLongitute","_nameCoordMap","_regionsMap","_invertLongitute","containCoord","getRegionByCoord","addGeoCoord","getGeoCoord","getCoordSys$1","geoModel","resizeGeo","leftTop","rightBottom","centerOption","sizeOption","useCenterAndSize","boxLayoutOption","setGeoCoords","GeoCreator","geoList","mapModelGroupBySeries","nameMapList","singleMapSeries","getFilledRegions","originRegionArr","regionsArr","geoCreator","mapSymbolLayout","processedMapType","mapSymbolOffsets","subMapSeries","dataStatistics","datas","statisticType","mapKey","mapDataStatistic","seriesGroups","hostGeoModel","seriesList","inner$8","linkList","datasAttr","linkAll","transferInjection","cloneShallowInjection","changeInjection","isMainData","linkSingle","struct","structAttr","TreeNode","hostTree","depth","viewChildren","isExpand","isRemoved","eachNode","suppressVisitSub","updateDepthAndHeight","getNodeById","contains","getAncestors","includeSelf","getAncestorsIndices","currNode","getDescendantIndices","childNode","getLevelModel","levelModels","isAncestorOf","isDescendantOf","Tree","_nodes","getNodeByDataIndex","clearLayouts","createTree","dataRoot","beforeLink","listData","dimMax","buildHierarchy","dataNode","addChild","TreeSeriesModel","leavesModel","nodeData","treeDepth","expandAndCollapse","expandTreeDepth","initialTreeDepth","collapsed","getOrient","realRoot","edgeShape","edgeForkPosition","roam","nodeScaleRatio","curveness","init$2","inRoot","hierNode","defaultAncestor","prelim","modifier","change","thread","firstWalk","separation","siblings","subtreeW","executeShifts","midPoint","apportion","secondWalk","nodeX","defaultSeparation","radialCoordinate","getViewRect$1","subtreeV","nodeOutRight","nodeInRight","nodeOutLeft","nodeInLeft","sumOutRight","sumInRight","sumOutLeft","sumInLeft","nextRight","nextLeft","moveSubtree","nextAncestor","wl","wr","node1","node2","TreeEdgeShape","parentPoint","childPoints","TreePath","childLen","firstChildPos","lastChildPos","forkDim","forkPosition","tmpPoint","TreeView","_mainGroup","layoutInfo","_updateViewCoordSys","symbolNeedsDraw$1","updateNode","removeNode","_nodeScaleRatio","_updateNodeAndLinkScale","oldMin","_min","oldMax","_max","viewCoordSys","nodeScale","_getNodeGlobalScale","groupZoom","roamZoom","virtualRoot","sourceSymbolEl","sourceLayout","sourceOldLayout","__oldX","__oldY","__radialOldRawX","__radialOldRawY","targetLayout","__radialRawX","__radialRawY","rootLayout","isLeft","labelRotateRadian","focusDataIndices","drawEdge","__edge","parentEl","curvature","getEdgeShape","childLayout","removeAnimationOpt","sourceEdge","layoutOpt","radialCoor1","radialCoor2","radialCoor3","radialCoor4","eachAfter","eachBefore","treeLayout","commonLayout","separation$1","tx_1","kx_1","ky_1","coorX_1","coorY_1","finalCoor","orient_1","treeVisual","retrieveTargetInfo","validPayloadTypes","targetNode","targetNodeId","getPathToRoot","aboveViewRoot","viewRoot","viewPath","wrapTreePathInfo","treePathInfo","nodeDataIndex","enableAriaDecalForTree","decalPaletteScope","TreemapSeriesModel","completeTreeValue","designatedVisualItemStyle","designatedVisualModel","setDefault","levelDefine","levelModel","resetViewRoot","setLayoutInfo","mapIdToIndex","idIndexMap","_idIndexMap","_idIndexMapCount","getViewRoot","_viewRoot","enableAriaDecal","clipWindow","squareRatio","leafDepth","drillDownIcon","zoomToNodeRatio","nodeClick","emptyItemWidth","upperLabel","colorAlpha","colorSaturation","gapWidth","borderColorSaturation","visualDimension","visualMin","visualMax","colorMappingBy","visibleMin","childrenVisibleMin","childValue","thisValue","globalColorList","globalDecalList","hasColorDefine","hasDecalDefine","modelColor","modelDecal","level0","TEXT_PADDING","ITEM_GAP","ARRAY_LENGTH","Breadcrumb","containerGroup","onSelect","thisGroup","normalStyleModel","layoutParam","totalWidth","renderList","_prepare","_renderContent","itemWidth","availableSize","itemNode","makeItemPoints","onclick","packEventData","itemHeight","selfType","AnimationWrap","_elExistsMap","_finishedCallback","checkTerminate","createWrap","Group$1","Rect$1","DRAG_THRESHOLD","PATH_LABEL_NOAMAL","PATH_UPPERLABEL_NORMAL","Z_BASE","Z_BG","Z_CONTENT","getStateItemStyle","getItemStyleNormal","inner$9","TreemapView","_state","createStorage","_oldTree","thisStorage","reRoot","rootNodeGroup","nodeGroup","_giveContainerGroup","renderResult","_doRender","_doAnimation","renderFinally","_resetController","_renderBreadcrumb","_containerGroup","thisTree","oldTree","lastsForAnimation","oldStorage","willInvisibleEls","doRenderNode","thisNode","oldNode","renderNode","dualTravel","willDeleteEls","clearStorage","thisViewChildren","oldViewChildren","sameTree","processNode","storageName","delEls","willDelete","els","durationOption","easingOption","animationWrap","innerStore","nodeWidth","nodeHeight","targetX","targetY","oldShape","fadein","_onPan","_onZoom","_clearController","rootRect","mouseX","mouseY","findTarget","isLeafRoot","_rootToNode","_zoomToNode","linkTarget","_breadcrumb","background","thisLayout","nodeModel","isInView","thisWidth","thisHeight","thisInvisible","thisRawIndex","oldRawIndex","upperHeight","isParent","itemStyleNormalModel","itemStyleEmphasisModel","itemStyleBlurModel","itemStyleSelectModel","giveGraphic","isAboveViewRoot","bg","renderBackground","upperLabelHeight","renderContent","useUpperLabel","processInvisible","visualBorderColor","selectStyle","upperLabelWidth","prepareText","nodeStyle","upperLabelRect","iconChar","isShow","addDrillDownIcon","textEmphasisState","lasts","prepareAnimationWhenHasOld","calculateZ","prepareAnimationWhenNoOld","lastCfg","parentOldX","parentOldY","parentOldBg","zInLevel","zb","noop$1","actionTypes","i$1","handleRootToNode","originViewRoot","each$4","isObject$4","CATEGORY_DEFAULT_VISUAL_INDEX","VisualMapping","mappingMethod","_normalizeData","normalizers","visualHandler","applyVisual","getColorMapper","_normalizedToVisual","normalizeVisualRange","preprocessForPiecewise","preprocessForSpecifiedCategory","mapValueToVisual","normalized","getNormalizer","listVisualTypes","isValidType","eachVisual","mapVisual","isPrimary","newVisual","newVal","retrieveVisuals","hasVisual","prepareVisualTypes","visualTypes","types_1","type1","type2","dependsOn","visualType1","visualType2","findPieceIndex","pieceList","findClosestWhenOutside","possibleI","pieceValue","updatePossible","piece","newAbs","makeApplyVisual","isNormalized","doMapCategory","returnRGBArray","parsedVisual","piecewise","getSpecifiedVisual","fixed","doMapFixed","colorHue","makePartialColorVisualHandler","colorLightness","createNormalizedToNumericVisual","setter","symbolCfg","doMapToArray","hasSpecialVisual","originIndex","categoryMap","cate","visualArr_1","setVisualToOption","visualArr","doNotNeedPair","applyValue","colorChannel","sourceExtent","pieceIndex","ITEM_STYLE_NORMAL","inner$a","treemapVisual","travelTree","designatedVisual","viewRootAncestors","nodeLayout","nodeItemStyleModel","visuals","buildVisuals","thisNodeColor","calculateColor","calculateBorderColor","mapping_1","buildVisualMapping","childVisual","visualName","getValueVisualDefine","rangeVisual","getRangeVisual","mapping","drColorMappingBy","childVisuals","mappingType","mathMax$7","mathMin$7","each$5","PATH_BORDER_WIDTH","PATH_GAP_WIDTH","PATH_UPPER_LABEL_SHOW","PATH_UPPER_LABEL_HEIGHT","treemapLayout","seriesOption","viewAbovePath","rootSize","estimateRootSize","sort_1","viewRootLayout_1","squarify","treeRoot","calculateRootPosition","prunning","hideChildren","halfGapWidth","getUpperLabelHeight","layoutOffset","layoutOffsetUpper","totalArea","initChildren","rowFixedLength","best","worst","orderBy","overLeafDepth","sort$1","statistic","filterByThreshold","orderedChildren","deletePoint","areaMax","areaMin","squareArea","idx0WhenH","idx1WhenH","xy","rowOtherLength","rowLen","wh1","remain","modWH","wh0","defaultSize","viewArea","currNodeValue","defaultPosition","targetCenter","nodeInViewAbovePath","childClipRect","generateNodeKey","Graph","directed","_nodesMap","_edgesMap","_directed","isDirected","addNode","nodesMap","GraphNode","hostGraph","getNodeByIndex","addEdge","n1","n2","edgesMap","GraphEdge","outEdges","inEdges","getEdgeByIndex","getEdge","eachEdge","breadthFirstTraverse","startNode","edgeType","__visited","queue","currentNode","otherNode","degree","inDegree","outDegree","getAdjacentDataIndices","adjacentEdge","createGraphDataProxyMixin","hostName","dataName","getGraphicEl","createGraphFromNodeEdge","linkNameList","validEdges","linkCount","coordSysCtor","KEY_DELIMITER","getAutoCurvenessParams","createCurveness","appendLength","autoCurvenessParmas","curvenessList","__curvenessList","getKeyOfEdges","getOppositeKey","getEdgeFromMap","__edgeMap","getTotalLengthBetweenNodes","getEdgeMapLengthWithKey","lenV","edgeMap","initCurvenessList","createEdgeMapForCurveness","oppositeEdges","isForward","getCurvenessForEdge","needReverse","autoCurvenessParams","isArrayParam","edgeArray","edgeIndex","totalLen","curKey","parityCorrection","oppositeKey","resValue","GraphSeriesModel","getCategoriesData","_categoriesData","_updateCategoriesData","categoriesModels","_categoriesModels","categoryIdx","categoryModel","oldGetModel","newGetModel","newPathArr","getGraph","getEdgeData","sourceName","nodeMarkup","categoriesData","circular","rotateLabel","initLayout","repulsion","gravity","friction","edgeLength","layoutAnimation","edgeSymbol","edgeSymbolSize","edgeLabel","straightLineProto","bezierCurveProto","StraightLineShape","CurveShape","isStraightLine","ECLinePath","SYMBOL_CATEGORIES","makeSymbolTypeKey","symbolCategory","lineData","symbolSizeArr","__specifiedRotation","createLine","setLinePoints","Line$1","_createLine","_updateCommonStl","getLinePath","blurLineStyle","selectLineStyle","lineState","lineStateStyle","stateStyle","labelNormalModel","__align","__verticalAlign","__position","__labelDistance","linePath","symbolFrom","symbolTo","invScale","fromPos","toPos","setSymbolRotation","specifiedRotation","tangent","distanceX","distanceY","halfPercent","LineDraw","LineCtor","_LineCtor","lineDraw","oldLineData","_lineData","makeSeriesScope$1","_doUpdate","isEffectObject","lineNeedsDraw","newLineData","isPointNaN","pts","getNodeGlobalScale","v3","v2DistSquare","mathAbs$2","intersectCurveCircle","curvePoints","radiusSquare","nextDiff","adjustEdge","tmp0","quadraticSubdivide$1","pts2","fromSymbol","toSymbol","__original","originalPoints","isViewCoordSys","GraphView","_lineDraw","_firstRender","groupNewProp","_layoutTimeout","forceLayout","_startForceLayoutIteration","warmUp","_layouting","setFixed","setUnfixed","circularRotateLabel","categoryFilter","graphSeries","categoryNames","categoryVisual","paletteScope","categoryNameIdxMap","symbolVisualList","symbolVisual","categoryStyle","visualList","normalize$2","graphEdgeVisual","simpleLayout","simpleLayoutEdge","graphSimpleLayout","PI$7","_symbolRadiansHalf","circularLayout","basedOn","_layoutNodesBasedOn","x12","y12","unitAngle","radianHalf","sumRadian","symbolRadianHalf","halfRemainRadian","graphCircularLayout","scaleAndAdd$1","inNodes","pp","initialFriction","beforeStepCallback","afterStepCallback","beforeStep","afterStep","v12","nLen","ignoreForceLayout","repFact","rep","graphForceLayout","preservedPoints_1","preservedPoints","graph_1","nodeData_1","forceModel","nodeDataExtent_1","edgeDataExtent_1","repulsionArr_1","edgeLengthArr_1","nodes_1","edgeModel","forceInstance","getViewRect$2","createViewCoordSys","coordSysType","positions","bbWidth","bbHeight","GaugeSeriesModel","icon","PointerShape","PointerPath","parsePosition","formatLabel","PI2$9","GaugeView","colorList","posInfo","_renderMain","axisLineModel","MainPath","showAxis","axisLineWidth","angleRangeSpan","prevEndAngle","getColor","_renderTicks","_renderTitleAndDetail","_renderAnchor","_renderPointer","minVal","maxVal","subSplitNumber","splitLineLen","tickLen","subStep","splitLineStyle","splitLineDistance","autoColor","tickLine","oldProgressData","_progressEls","progressList","showPointer","progressModel","showProgress","valueExtent","angleExtent","createPointer","pointerModel","pointerWidth","pointerLength","pointerStr","pointerOffset","pointerKeepAspect","createProgress","ProgressPath","isOverlap","progressWidth","isClip","previousPointer","previousRotate","previousProgress","previousEndAngle","anchorModel","showAnchor","anchorSize","anchorType","anchorKeepAspect","contentGroup","newTitleEls","newDetailEls","_titleEls","_detailEls","itemTitleModel","titleOffsetCenter","titleX","titleY","labelEl","itemDetailModel","detailOffsetCenter","detailX","detailY","detailColor","formatter_1","FunnelSeriesModel","minSize","funnelAlign","opacityAccessPath","FunnelPiece","FunnelView","funnelPiece","getViewRect$3","getSortedIndices","isAscending","funnelLayout","sizeExtent","itemSize","getLinePoints","val_1","parallelPreprocessor","createParallelIfNeeded","mergeAxisOptionFromParallel","hasParallelSeries","parallelAxis","axisOption","parallelIndex","parallelOption","ParallelAxis","sliderMove","handleEnds","handleIndex","minSpan","maxSpan","restrict","handleSpan","originalDistSign","getSpanSign","extentMinSpan","realExtent","currDistSign","each$6","mathMin$8","mathMax$8","mathFloor$2","mathCeil$1","round$2","PI$8","Parallel","_axesLayout","_updateAxesFromSeries","_makeLayoutInfo","axisBase","layoutBase","pixelDimIndex","pAxis","pLayout","layoutLength","_layoutAxes","layoutExtent","axisCount","axisExpandWidth","restrict$1","axisExpandCount","axisExpandable","axisExpandWindow","winSize","axisExpandCenter","axisCollapseWidth","winInnerIndices","axisExpandWindow0Pos","layoutAxisWithExpand","layoutAxisWithoutExpand","positionTable","horizontal","vertical","rotationTable","axisCoordToPoint","eachActiveState","dataDimensions","axisModels","hasActiveSet","hasAxisBrushed","activeState","getActiveState","axisLayout","getAxisLayout","getSlidedAxisExpandWindow","behavior","pointCoord","triggerArea","useJump","winSize2","create$2","ParallelAxisModel","activeIntervals","getAreaSelectStyle","setActiveIntervals","intervals","defaultOption$1","areaSelectStyle","realtime","ParallelModel","_initDimensions","setAxisExpand","axisExpandRate","axisExpandDebounce","axisExpandSlideTriggerArea","axisExpandTriggerOn","actionInfo$1","parallelAxisModel","BRUSH_PANEL_GLOBAL","mathMin$9","mathMax$9","mathPow$2","COVER_Z","UNSELECT_THRESHOLD","MIN_RESIZE_LINE_WIDTH","MUTEX_RESOURCE_KEY","DIRECTION_MAP","CURSOR_MAP","ne","sw","nw","se","DEFAULT_BRUSH_OPT","transformable","brushMode","removeOnClick","baseUID","BrushController","_covers","_handlers","_uid","pointerHandlers","enableBrush","brushOption","_mounted","_brushType","_doDisableBrush","brushType","_doEnableBrush","_enableGlobalPan","_brushOption","setPanels","panelOpts","panels_1","_panels","panelId","enableGlobalPan","updateCovers","coverConfigList","coverConfig","tmpIdPrefix","oldCovers","newCovers","creatingCover","_creatingCover","oldGetKey","addOrUpdate","cover","__brushOption","newBrushInternal","endCreating","createCover","updateCoverAfterCreation","unmount","clearCovers","coverRenderers","coverRenderer","getCoverRenderer","updateCoverShape","updateCommon","getPanelByPoint","localCursorPoint","panels","panel","pn","isTargetByCursor","getPanelByCover","covers","originalLength","trigger$1","areas","isEnd","shouldShowCover","getTrackEnds","createBaseRectCover","rectRangeConverter","edgeNameSequences","makeStyle","driftRect","ondragend","nameSequence","updateBaseRect","localRange","handleSize","xa","ya","x2a","y2a","widtha","heighta","updateRectShape","mainEl","globalDir","getGlobalDirection1","getGlobalDirection2","pointsToRect","clipByPanel","formatRectRange","getTransform$1","localDirName","inverseMap","localDirNameSeq","dirNameSequence","rectRange","toRectRange","localDelta","toLocalDelta","dirName","ind","fromRectRange","driftPolygon","localD","localZero","xmin","ymin","xmax","ymax","resetCursor","isOutsideZrArea","currPanel","rawE","mainShapeContain","updateCoverByMouse","_creatingPanel","thisBrushOption","eventParams","determineBrushType","coverBrushOption","getCreatingRange","defaultBrushType","handleDragEnd","getLineRenderer","returnInput","localTrack","ends","xyIndex","otherExtent","getLinearBrushOtherExtent","makeRectPanelClipPath","normalizeRect","localPoints","makeLinearBrushOtherExtent","specifiedXYIndex","brushWidth","makeRectIsTargetByCursor","targetModel","elementList","ParallelAxisView","_brushController","_onBrush","fromAxisAreaSelect","areaWidth","builderOpt","_refreshBrushController","extentLen","getCoverInfoList","eventParam","coverInfoList","coverInfo","parallelAxisId","CLICK_THRESHOLD","ParallelView","handlers","_throttledDispatchExpand","_dispatchExpand","checkTrigger","_mouseDownPoint","mouseDownPoint","triggerOn","ParallelSeriesModel","makeDefaultEncode","getRawIndicesByActiveState","theActiveState","inactiveOpacity","activeOpacity","dataDimIndex","convertDimNameToNumber","DEFAULT_SMOOTH","ParallelView$1","_dataGroup","dataGroup","makeSeriesScope$2","newDataIndex","addEl","updateElCommon","oldDataIndex","createLinePoints","createGridClipShape","isEmptyValue","opacityAccessPath$1","parallelVisual","opacityMap","active","inactive","itemOpacity","SankeySeriesModel","nodeDepth","setNodePosition","localPosition","localX","localY","rawDataOpt","edgeValue","edgeName","nodeValue","nodeGap","layoutIterations","nodeAlign","SankeyPathShape","SankeyPath","SankeyView","_focusAdjacencyDisabled","sankeyView","curve","n1Layout","node1Model","dragX1","dragY1","n2Layout","node2Model","dragX2","dragY2","edgeLayout","sourceColor","targetColor","dragX","dragY","createGridClipShape$1","sankeyLayout","getViewRect$4","computeNodeValues","filteredNodes","iterations","layoutSankey","computeNodeBreadths","computeNodeDepths","computeEdgeDepths","getEdgeValue","nodeRawValue","remainEdges","indegreeArr","zeroIndegrees","nextTargetNode","maxNodeDepth","isItemDepth","edgeIdx","indexEdge","nodeIndex","maxDepth","adjustNodeWithNodeAlign","kx","scaleNodeBreadths","isNodeDepth","nextSourceNode","remainNodes","skNodeHeight","moveSinksRight","nodesByBreadth","prepareNodesByBreadth","initializeNodeDepth","resolveCollisions","relaxRightToLeft","relaxLeftToRight","keyAttr","groupResult","minKy","ky","nodeDy","edgeDy","nodeDyAttr","weightedTarget","centerTarget","center$1","nodeY","weightedSource","centerSource","sankeyVisual","minValue_1","maxValue_1","mapValueToColor","customColor","WhiskerBoxCommonMixin","xAxisType","yAxisType","addOrdinal","coordDims","baseAxisDimIndex","_baseAxisDim","baseAxisType","newOptionData_1","newItem","defaultValueDimensions","BoxplotSeriesModel","boxWidth","BoxplotView","constDim","createNormalBox","updateNormalBoxData","BoxPathShape","BoxPath","transInit","initBaseline","boxplotVisual","each$7","boxplotLayout","groupSeriesByAxis","groupItem","calculateBase","layoutSingleSeries","boxOffsetList","boxWidthList","axisList","seriesCount","boundList","maxDataCount_1","boxWidthBound","availableWidth","boxGap","halfWidth","cDimIdx","vDimIdx","cDim","vDims","axisDimVal","median","getPoint","end1","end2","end4","end5","addBodyEnd","layEndLine","point1","point2","endCenter","prepareBoxplotData","boxData","outliers","boundIQR","useExtreme","ascList","Q1","Q2","Q3","bound","low","high","itemNameFormatter","outlier","boxplotTransform","CandlestickSeriesModel","getShadowDim","brushRect","SKIP_PROPS","CandlestickView","_incrementalRenderNormal","isSimpleBox","isNormalBoxClipped","createNormalBox$1","setBoxCommon","createLarge$1","NormalBoxPathShape","NormalBoxPath","__simpleBox","transInit$1","LargeBoxPathShape","LargeBoxPath","__sign","elP","elN","setLargeStyle$1","candlestickPreprocessor","seriesItem","positiveBorderColorQuery","negativeBorderColorQuery","positiveColorQuery","negativeColorQuery","candlestickVisual","getBorderColor","isLargeRender","LargeArr$1","candlestickLayout","candleWidth","calculateCandleWidth","openDim","closeDim","lowestDim","highestDim","largeProgress","normalProgress","openVal","closeVal","lowestVal","highestVal","ocLow","ocHigh","ocLowPoint","ocHighPoint","lowestPoint","highestPoint","subPixelOptimizePoint","getSign","makeBrushRect","pmin","pmax","EffectScatterSeriesModel","effectType","showEffectOn","rippleEffect","period","EFFECT_RIPPLE_NUMBER","normalizeSymbolSize$1","updateRipplePath","rippleGroup","effectCfg","rippleEffectColor","ripplePath","EffectSymbol","stopEffectAnimation","startEffectAnimation","effectOffset","rippleScale","updateEffectAnimation","oldEffectCfg","_effectCfg","DIFFICULT_PROPS","EffectScatterView","effectSymbolDraw","_updateGroupTransform","Uint32Arr","Float64Arr","compatEc2","coords","fromName","toName","LinesSeriesModel","_processFlatCoordsArray","_flatCoords","flatCoords","_flatCoordsOffset","flatCoordsOffset","_getCoordsFromItemModel","getLineCoordsCount","getLineCoords","startOffset","coordsOffsetAndLenStorage","coordsStorage","coordsCursor","offsetCursor","CoordSys","effect","constantSpeed","trailLength","EffectLine","_updateEffectSymbol","effectModel","_symbolScale","_updateEffectAnimation","delayExpr","_updateAnimationPoints","_getLineLength","_period","delayNum","__t","_updateSymbolPosition","__p1","__cp1","__p2","quadraticDerivativeAt$1","__lastT","Polyline$1","_createPolyline","hoverLineStyle","lineEmphasisState","EffectPolyline","accLenArr","_length","_offsets","offsets","LargeLinesPathShape","LargeLinesPath","LargeLineDraw","lineEl","linesLayout","isPolyline","isLarge","lineCoords","totalCoordsCount","LinesView","_updateLineDraw","_lastZlevel","_showEffect","notInIndividual_1","otherSeriesModel","hasEffect","_hasEffet","_isPolyline","normalize$3","linesVisual","HeatmapSeriesModel","blurSize","pointSize","maxOpacity","minOpacity","GRADIENT_LEVELS","HeatmapLayer","_gradientPixels","inRange","outOfRange","colorFunc","isInRange","_getBrush","gradientInRange","_getGradient","gradientOutOfRange","imageData","getImageData","pixels","pixelLen","diffOpacity","gradientOffset","putImageData","brushCanvas","_brushCanvas","gradientPixels","pixelsSingleState","Uint8ClampedArray","getIsInPiecewiseRange","dataSpan","getIsInContinuousRange","isGeoCoordSys","HeatmapView","visualMapOfThisSeries","eachTargetSeries","targetSeries","_incrementalDisplayable","_renderOnCartesianAndCalendar","_renderOnGeo","dataDimX","dataDimY","dataToRect","contentShape","visualMapModel","inRangeVisuals","targetVisuals","outOfRangeVisuals","hmLayer","_hmLayer","lng","lat","getPieceList","PictorialBarSeriesModel","symbolPosition","symbolMargin","symbolRepeat","symbolRepeatDirection","symbolClip","symbolBoundingData","symbolPatternSize","BAR_BORDER_WIDTH_QUERY$1","LAYOUT_ATTRS","posDesc","pathForLineWidth","PictorialBarView","coordSysRect","ecSize","coordSysExtent","categoryDim","symbolMeta","getSymbolMeta","createBar","updateCommon$1","pictorialShapeStr","getShapeStr","__pictorialShapeStr","updateBar","__pictorialSymbolMeta","removeBar","prepareBarLength","prepareSymbolSize","boundingLength","pxSign","prepareLineWidth","symbolScale","prepareLayoutInfo","valueLineWidth","repeatCutLength","outputSymbolMeta","zeroPx","pxSignIdx","symbolBoundingExtent","convertToCoordOnAxis","categorySize","parsedSymbolSize","unitLength","pathLen","absBoundingLength","hasEndGap","symbolMarginNumeric","uLenWithMargin","endFix","repeatSpecified","repeatTimes","toIntTimes","mDiff","sizeFix","pathPosition","bundlePosition","barRectShape","createPath","createOrUpdateRepeatSymbols","bundle","__pictorialBundle","eachPath","__pictorialAnimationIndex","__pictorialRepeatTimes","updateAttr","makeTarget","createOrUpdateSingleSymbol","mainPath","__pictorialMainPath","createOrUpdateBarRect","barRect","__pictorialBarRect","createOrUpdateClip","__pictorialClipPath","pathes","immediateAttrs","animationAttrs","barPositionOutside","times","roundedTimes","SingleAxis","Single","_axis","_adjustAxis","_updateAxisTransform","extentSum","getCoordSys$2","singleModel","create$3","singles","layout$2","positionMap","directionMap","axisBuilderAttrs$2","selfBuilderAttrs$1","SingleAxisView","axisElementBuilders$1","SingleAxisModel","findPointFromSeries","isStacked","inner$b","axisTrigger","currTrigger","illegalPoint","isIllegalPoint","inputAxesInfo","shouldHide","outputPayload","showValueMap","dataByCoordSys","updaters","showTooltip","coordSysContainsPoint","inputAxisInfo","findInputAxisInfo","processOnAxis","linkTriggers","tarAxisInfo","tarKey","srcAxisInfo","srcKey","srcValItem","makeMapperParam","updateModelActually","dispatchTooltipActually","dispatchHighDownActually","newValue","noSnap","outputFinder","payloadInfo","buildPayloadsBySeries","payloadBatch","snapToValue","seriesNestestValue","getAxisTooltipData","nestestValue","coordSysItem","coordSysId","coordSysIndex","coordSysMainType","dataByAxis","valueLabelOpt","seriesDataIndices","outputAxesInfo","valItem","tooltipOption","highDownKey","lastHighlights","newHighlights","toHighlight","toDownplay","inner$c","each$8","initGlobalListeners","initialized","useHandler","doEnter","onLeave","dis","makeDispatchAction","dispatchTooltipFinally","pendings","showLen","showTip","hideLen","hideTip","actuallyPayload","unregister","AxisPointerView","inner$d","clone$3","bind$1","BaseAxisPointer","_axisModel","_axisPointerModel","_lastValue","_lastStatus","_group","handle","_handle","elOption","makeElOption","graphicKey","_lastGraphicKey","moveAnimation","_moveAnimation","determineAnimation","createPointerEl","createLabelEl","doUpdateProps","updateProps$1","updatePointerEl","updateLabelEl","updateMandatoryProps","_renderHandle","isCategoryAxis","useSnap","pointerOption","pointerEl","updateLabelShowHide","updateHandleTransform","handleModel","onmousemove","onmousedown","_onHandleDragMove","_onHandleDragEnd","_moveHandleToValue","getHandleTransProps","getHandleTransform","trans","_payloadInfo","lastProp","_doDispatchAxisPointer","cursorPoint","buildLabel","xDimIndex","propsEqual","lastProps","equals_1","buildElStyle","axisPointerType","buildLabelElOption","labelPos","getValueLabel","paddings","confineInContainer","bgColor","params_1","axisDimension","seriesData","idxItem","getTransformedPosition","buildCartesianSingleLabelElOption","textLayout","makeLineShape","makeRectShape","makeSectorShape","CartesianAxisPointer","pixelValue","elStyle","pointerShapeBuilder","currPosition","cursorOtherValue","tooltipOptions","getAxisDimIndex","shadow","AxisPointerModel","shadowStyle","XY","WH","SingleAxisPointer","getPointDimIndex","pointerShapeBuilder$1","DATA_NAME_INDEX","ThemeRiverSeriesModel","fixData","rawDataLength","timeValueKeys","layerData","dataList","layerNum","timeValue","filterData","getLayerSeries","lenCount","indexArr","timeDim","layerSeries","index1","index2","nearestIdx","pointNum","theValue","singleAxisIndex","ThemeRiverView","layersSeries","keyGetter","dataDiffer","_layersSeries","newLayersGroups","process","oldLayersGroups","points0","layerGroup","createGridClipShape$2","themeRiverLayout","doThemeRiverLayout","layerPoints","singleLayer","computeBaseline","baseLine","baseY0","layerIndex","sums","temp","SunburstSeriesModel","completeTreeValue$1","renderLabelForZeroData","DEFAULT_SECTOR_Z","DEFAULT_TEXT_Z","SunburstPiece","_ecModel","labelMinAngle","isNormalShown","labelStateModel","isShown","getLabelAttr","sectorState","labelColor","labelPadding","rotateType","stateAttr","ROOT_TO_NODE_ACTION","HIGHLIGHT_ACTION","handleHighlight","UNHIGHLIGHT_ACTION","SunburstView","newRoot","newChildren","oldChildren","_oldChildren","renderRollUp","newNode","virtualPiece","targetFound","RADIAN$2","sunburstLayout","rootDepth","initChildren$1","renderRollupNode","rPerLevel","rStart","rEnd","siblingAngle_1","sortOrder","sort$2","sortTargets","isAsc_1","sunburstVisual","pickColor","treeHeight","dataToCoordSize","dataSize","halfSize","cartesianPrepareCustom","dataToCoordSize$1","geoPrepareCustom","dataToCoordSize$2","singlePrepareCustom","dataToCoordSize$3","polarPrepareCustom","radiusAxis","getRadiusAxis","angleAxis","getAngleAxis","dataToRadius","dataToAngle","calendarPrepareCustom","rangeInfo","getRangeInfo","cellWidth","getCellWidth","cellHeight","getCellHeight","weeks","dayCount","allDay","deprecatedLogs","isEC4CompatibleStyle","elType","hasOwnTextContentOption","hasOwnTextConfig","legacy","convertFromEC4CompatibleStyle","hostStyle","srcStyle","textContentStyle","hasOwnPos","textDistance","convertEC4CompatibleRichItem","richItem","textStrokeWidth","textLineHeight","textBoxShadowColor","textBoxShadowBlur","textBoxShadowOffsetX","textBoxShadowOffsetY","convertToEC4StyleForCustomSerise","itemStl","txStl","txCfg","hostFill","convertToEC4RichItem","textFillNotSet","warnDeprecated","deprecated","insteadApproach","inner$e","TRANSFORM_PROPS","transformPropNamesStr","STYLE_VISUAL_TYPE","NON_STYLE_VISUAL_PROPS","EMPHASIS","NORMAL","BLUR","SELECT","STATES","PATH_ITEM_STYLE","PATH_LABEL","GROUP_DIFF_PREFIX","attachedTxInfoTmp","LEGACY_TRANSFORM_PROPS","tmpTransformable","prepareCustoms","CustomSeriesModel","currentZLevel","currentZ","CustomSeriesView","customSeries","renderItem","makeRenderItem","doRemoveEl","createOrUpdateItem","morphPreparation_1","MorphPreparation","createGetKey","findAndAddFrom","hasFrom","removeElementDirectly","applyMorphing","oldIndices","newLen","setIncrementalAndHoverLayer","elementName","diffByDimName","createEl","graphicType","getPathData","customPathData","customImagePath","customGraphicType","updateElNormal","isMorphTo","styleOpt","attachedTxInfo","isTextContent","transFromProps","allPropsFinal","elDisplayable","prepareShapeOrExtraTransitionFrom","prepareShapeOrExtraAllPropsFinal","prepareTransformTransitionFrom","prepareTransformAllPropsFinal","txCfgOpt","textOptionStyle","decalPattern","decalObj","isPath$1","__decalPattern","prepareStyleTransitionFrom","applyPropsFinal","applyTransitionFrom","originalDecalObj","userDuring","cfgDuringCall","duringCall","mainAttr","morphFromEl","attrOpt","elPropsInAttr","transFromPropsInAttr","enterFrom","enterFromKeys","transitionKeys","elVal","checkNonStyleTansitionRefer","elPropsInAttrKeys","isNonStyleTransitionEnabled","leaveTo","leaveToProps","getOrCreateLeaveToPropsFromEl","leaveToPropsInAttr","leaveToKeys","allProps","allPropsInAttr","keysInAttr","checkTransformPropRefer","fromTransformable","calcOldElLocalTransformBasedOnNewElParent","setTransformPropToTransitionFrom","setLagecyTransformProp","setTransformProp","fromEl","fromElStyle","transFromStyleProps","animationStyleProps","styleKeys","leaveToStyleProps","newEl","tmpM","oldGlobalTransform","newParent","optVal","usedIn","innerEl","tmpDuringScope","customDuringAPI","assertNotReserved","isShapeDirty","getShape","isStyleDirty","setExtra","getExtra","newstUserDuring","scopeUserDuring","updateElOnState","elStateOpt","isRoot","existingEmphasisState","updateZ$1","optZ2","updateZForEachState","retrieveStateOption","targetProps","legacyName","legacyArr","xyName","transitionFrom","userAPI","ordinalRawValue","styleEmphasis","barLayout","currentSeriesIndices","userParams","dataInsideLength","wrapEncodeDef","currDataIndexInside","currItemModel","currItemStyleModels","currLabelModels","seriesItemStyleModels","seriesLabelModels","getItemStyleModel","userProps","preFetchFromExtra","applyUserPropsAfter","style_1","morphPreparation","doCreateOrUpdateEl","toBeReplacedIdx","doesElNeedRecreate","elIsNewCreated","canMorph","morph","thisElIsMorphTo","conOpt","isLegacy","doCreateOrUpdateAttachedTx","doCreateOrUpdateClipPath","pendingAllPropsFinal","addTo","otherStateOpt","otherStyleOpt","retrieveStyleOptionOnState","mergeChildren","elInner","elOptionType","elOptionShape","elOptionStyle","hasOwnPathData","clipPathOpt","processTxInfo","txConOptNormal","txConOptEmphasis","txConOptBlur","txConOptSelect","txConStlOptNormal","txConOptOtherState","stateOpt","txConOpt","convertResult","txConOptNormal_1","stateOptionNormal","stateOption","$mergeChildren","byName","diffChildrenByName","diffGroupChildren","processAddUpdate","processRemove","childOption","_fromList","_toList","_toElOptionList","_allPropsFinalList","_toDataIndices","_morphConfigList","_transOpt","_type","fromList","toList","toListLen","fromListLen","toIdx","_oneToOneForSingleTo","fromSingleSegLen","fromIdxStart","fromCount","_manyToOneForSingleTo","toSingleSegLen","toIdxStart","fromIdx","toCount","_oneToManyForSingleFrom","toElOption","toDataIndex","elAnimationConfig","_getOrCreateMorphConfig","morphDuration","combineResult","copyPropsWhenDivided","_processResultIndividuals","morphFrom","combineFromList","separateToList","separateResult","combineSeparateResult","isSeparate","fromIndividual","toIndividual","morphConfigList","delayOption","srcPath","tarPath","willClone","getSeriesStackId$1","getAxisKey$1","barLayoutPolar","calRadialBar","clampLayout","radiusSpan","angleSpan","PolarModel","foundAxisModel","PolarAxisModel","AngleAxisModel","RadiusAxisModel","angleAxisExtraOption","radiusAxisExtraOption","RadiusAxis","radiusToData","inner$f","AngleAxis","angleToData","Polar","_radiusAxis","_angleAxis","maxAngle","getCoordSys$3","resizePolar","parsedRadius","updatePolarScale","isAngleAxisModel","setAxis","polarCreator","polarList","elementList$1","getAxisLineShape","rExtent","getRadiusIdx","fixAngleOverlap","firstItem","lastItem","AngleAxisView","ticksAngles","minorTickAngles","angelAxisElementsBuilders","rId","r0Id","tickAngleItem","tickAngles","commonLabelModel","labelTextAlign","labelTextVerticalAlign","prevAngle","axisBuilderAttrs$3","selfBuilderAttrs$2","RadiusAxisView","newAxisGroup","axisAngle","layoutAxis","axisElementBuilders$2","prevRadius","PolarAxisPointer","coordValue","pointerShapeBuilder$2","getLabelPosition","GeoView","_handleRegionClick","updateSelectStatus","geoId","GeoModel","_optionModelMap","optionModelMap","regionOpt","unSelect","toggleSelected","makeAction","PROXIMATE_ONE_DAY","Calendar","calendarModel","_rangeInfo","_sw","_sh","_orient","getFirstDayOfWeek","_firstDayOfWeek","getDateInfo","mStr","dStr","getDay","formatedDate","getNextNDay","setDate","_lineWidth","_getRangeInfo","_initRangeOption","whNames","cellSize","getCellSize","layoutParams","cellNumbers","cellSizeSpecified","whGlobal","calendarRect","dayInfo","week","nthWeek","pointToDate","tl","tr","br","bl","nthX","nthY","_getDateByWeeksAndDay","getCoordSys$4","normalizedRange","rangeStr","firstDay","setMonth","parsedRange","reversed","startDateNum","endDateNum","dateNum","fweek","lweek","nthDay","calendarList","calendarSeries","CalendarModel","mergeAndNormalizeLayoutParams","raw","cellSizeArr","MONTH_TEXT","EN","CN","WEEK_TEXT","CalendarView","rangeData","_renderDayRect","_renderLines","_renderYearText","_renderMonthText","_renderWeekText","itemRectStyleModel","sh","_tlpoints","_blpoints","_firstDayOfMonth","_firstDayPoints","addPoints","_getLinePointsOfOneWeek","_drawSplitline","_getEdgesPoints","rs","poyline","parsedDate","tmpD","_formatterLabel","_yearTextPositionControl","aligns","xc","yc","posPoints","yearText","_monthTextPositionControl","isCenter","vAlign","termPoints","firstDayPoints","yyyy","yy","MM","monthText","_weekTextPositionControl","isStart","firstDayOfWeek","weekText","inner$g","_nonShapeGraphicElements","graphicOption","elements","GraphicComponentModel","existList","flattenedList","_flatten","elOptionsToUpdate","_elOptionsToUpdate","newElOption","setKeyInfoToNewElOption","mergeNewElOptionToExist","setLayoutInfoToExist","$action","optionList","parentOption","useElOptionsToUpdate","GraphicComponentView","_elMap","graphicModel","_lastGraphicModel","_updateElements","_relocate","rootGroup","elExisting","parentId","targetElParent","textContentOption","elOptionCleaned","getCleanedElOption","createEl$1","removeEl","textContentExisting","__ecGraphicWidthOption","__ecGraphicHeightOption","setEventData","elOptions","apiWidth","apiHeight","isParentRoot","parentElInner","__ecGraphicWidth","__ecGraphicHeight","containerInfo","bounding","__ecGraphicId","existElParent","isSetLoc","isSet","existElOption","newElParentOption","newElOptCopy","newType","existItem","existingGroupOpt","newGroupOpt","ToolboxFeature","registerFeature","getFeature","ToolboxModel","featureName","Feature","itemGap","showTitle","layout$3","viewportSize","makeBackground","ToolboxView","toolboxModel","featureOpts","_features","featureNames","_featureNames","processFeature","featureModel","newTitle","isUserFeatureName","unusable","createIconPaths","setIconStatus","iconName","iconPaths","iconStatus","iconStyleModel","iconStyleEmphasisModel","icons","getIcons","titles","iconsMap","titlesMap","tooltipModel","__title","hoverStyle","defaultTextPosition","titleText","emphasisTextConfig","emphasisTextState","emphasisTextStyle","needPutOnTop","topOffset","SaveAsImage","MouseEvent","$a","download","evt","bubbles","cancelable","dispatchEvent","msSaveOrOpenBlob","bstr","atob","u8arr","Uint8Array","blob","Blob","tab","write","INNER_STACK_KEYWORD","radioTypes","MagicType","availableIcons","seriesOptGenreator","generateNewSeriesTypes","newSeriesOpt","radio","currentType","isStack","BLOCK_SPLITER","ITEM_SPLITER","groupSeries","seriesGroupByCategoryAxis","otherSeries","meta","assembleSeriesWithCategoryAxis","groups","tables","headers","columns","assembleOtherSeries","getContentFromModel","trim$1","isTSVFormat","firstLine","itemSplitRegex","parseTSVContents","tsv","tsvLines","parseListContents","hasName","parseContents","blockMetaList","blockMeta","DataView","viewMain","textarea","optionToContent","contentToOption","htmlOrDom","readOnly","buttonContainer","buttonStyle","closeButton","refreshButton","textareaColor","textareaBorderColor","buttonColor","buttonTextColor","tryMergeDataOption","newValIsObject","shouldDeleteName","newSeriesOptList","COORD_CONVERTS","INCLUDE_FINDER_MAIN_TYPES","BrushTargetManager","_targetInfoList","foundCpts","parseFinder$1","targetInfoBuilders","include","setOutputRanges","matchOutputRanges","coordRange","coordRanges","coordConvert","__rangeOffset","diffProcessor","xyMinMax","findTargetInfo","coordSyses","setInputRanges","rangeOffset","getScales","makePanelOpts","getDefaultBrushType","getPanelRect","controlSeries","targetInfoList","areaPanelId","targetInfoMatchers","formatMinMax","xAxisModels","yAxisModels","gridModels","gridModelMap","xAxesHas","yAxesHas","panelRectBuilders","xAxisDeclared","yAxisDeclared","geoModels","axisConvert","rangeOrCoordRange","xminymin","xmaxymax","axisNameIndex","axisDiffProcessor","refer","scales","xyMinMaxCurr","xyMinMaxOrigin","sizeCurr","getSize","sizeOrigin","each$9","inner$h","newSnapshot","storedSnapshots","getStoreSnapshots","dataZoomId","snapshot","dataZoomModel","percentRange","getPercentRange","clear$1","snapshots","DATA_ZOOM_AXIS_DIMENSIONS","SERIES_COORDS","isCoordSupported","coordType","getAxisMainType","findEffectedDataZooms","axisRecords","effectedModels","effectedModelMap","addToEffected","foundNewLink","processSingle","isLinked","markAxisControlled","isLink","eachTargetAxis","axisIdxArr","collectReferCoordSysModelInfo","coordSysInfoWrap","infoList","infoMap","coordSysUid","DataZoomAxisInfo","indexList","indexMap","axisCmptIdx","DataZoomModel","_autoThrottle","_noTarget","_rangePropMode","inputRawOption","retrieveRawOption","settledOption","_doInit","_setDefaultThrottle","_updateRangeUse","_resetTarget","optionOrient","targetAxisIndexMap","_targetAxisInfoMap","hasAxisSpecified","_fillSpecifiedTargetAxis","_makeAutoOrientByTargetAxis","_fillAutoTargetAxisByOrient","refering","needAuto","setParallelAxis","gridModel_1","axModel","globalOption","rangePropMode","rangeModeInOption","percentSpecified","valueSpecified","noTarget","getFirstTargetAxisModel","firstAxisModel","getAxisProxy","getAxisModel","__dzAxisProxy","setRawRange","setCalculatedRange","axisProxy","findRepresentativeAxisProxy","getDataPercentWindow","getValueRange","getDataValueWindow","firstProxy","axisDimList","hostedBy","getRangePropMode","filterMode","DataZoomView","SelectDataZoomModel","SelectDataZoomView","each$a","asc$1","AxisProxy","_dimName","_axisIndex","_dataZoomModel","_valueWindow","_percentWindow","getTargetSeriesModels","axisMainType","getMinMaxSpan","_minMaxSpan","calculateDataWindow","_dataExtent","percentExtent","percentWindow","valueWindow","hasPropModeValue","boundPercent","boundValue","spans","restrictSet","fromWindow","toWindow","fromExtent","toExtent","toValue","suffix","calculateDataExtent","_updateMinMaxSpan","dataWindow","_setAxisModel","leftOut","rightOut","thisHasValue","thisLeftOut","thisRightOut","isInWindow","minMaxSpan","percentSpan","valueSpan","eachAxisModel","proxyList","valueRange","each$b","DATA_ZOOM_ID_BASE","DataZoomFeature","brushController","updateZoomBtnStatus","updateBackBtnStatus","handlers$1","brushTargetManager","makeAxisFinder","setBatch","_dispatchZoomAction","findDataZoom","minValueSpan","maxValueSpan","dzModel","nextActive","isZoomActive","dataZoomSelectActive","dzFeatureModel","xAxisId","yAxisId","zoomActive","dzOptions","finderResult","buildInternalOptions","axisIndexPropName","$fromToolbox","RestoreOption","TooltipModel","showContent","alwaysShowContent","displayMode","confine","showDelay","hideDelay","transitionDuration","enterable","shouldTooltipConfine","confineOption","vendors","gCssText","mirrorPos","assembleArrow","arrowPosition","arrowPos","positionStyle","transformStyle","vendorPrefix","styleCss","assembleTransition","onlyFade","transitionCurve","transitionText","assembleFont","assembleCssText","enableTransition","boxShadow","borderName","camelCase","makeStyleCoord","appendToBody","zrPainter","zrViewportRoot","body","viewportRootOffset","TooltipHTMLContent","_show","_styleCoord","_enterable","_firstShow","_longHide","_appendToBody","_container","onmouseenter","_hideTimeout","_inContent","onmouseleave","hideLater","_hideDelay","currentStyle","_moveIfResized","className","nearPointColor","_longHideTimeout","styleCoord","offsetHeight","pointerEvents","setContent","setEnterable","ratioX","ratioY","visibility","getOuterSize","borderLeftWidth","borderRightWidth","borderTopWidth","borderBottomWidth","TooltipRichContent","makeStyleCoord$1","shadowOuterSize","calcShadowOuterSize","mathMaxWith0","bind$2","each$c","parsePercent$3","proxyRect","TooltipView","_renderMode","_tooltipContent","_tooltipModel","_alwaysShowContent","tooltipContent","_initGlobalListener","_keepShow","_tryShow","_hide","_lastX","_lastY","_refreshUpdateTimeout","manuallyShowTip","_lastDataByCoordSys","makeDispatchAction$1","_ticket","_manuallyAxisShowTip","pointInfo","manuallyHideTip","tooltipCascadedModel","buildTooltipModel","_showAxisTooltip","_showSeriesItemTooltip","_showComponentItemTooltip","_showOrMove","_showTimout","singleTooltipModel","cbParamsList","articleMarkup","markupTextArrLegacy","itemCoordSys","axisItem","axisValue","axisValueLabel","axisSectionMarkup","cbParams","seriesTooltipResult","positionExpr","builtMarkupText","blockBreak","allMarkupText","_updateContentNotChangedOnAxis","_updatePosition","_showTooltipContent","tooltipTrigger","asyncTicket","subTooltipModel","defaultHtml","nearPoint","_getNearestPoint","params0","isTimeAxis","cbTicket","tooltipDataParams","contentSize","boxLayoutPosition","calcTooltipPosition","refixTooltipPosition","isCenterAlign","confineTooltipPosition","lastCoordSys","contentNotChanged","lastItemCoordSys","indexCoordSys","lastDataByAxis","thisItemCoordSys","thisDataByAxis","indexAxis","lastIndices","lastIdxItem","newIdxItem","modelCascade","resultModel","gapH","gapV","domWidth","domHeight","rectWidth","rectHeight","DEFAULT_TOOLBOX_BTNS","brushPreprocessor","brushComponents","brushComponentSpecifiedBtns","brushOpt","tbs","toolboxFeature","toolboxBrush","brushTypes","removeDuplicate","flag","each$d","hasKeys","createVisualMappings","stateList","supplementVisualOption","visualMappings","mappings","createMappings","visualData","mappingOption","__hidden","__alphaForOpacity","Creater","replaceVisualOption","getValueState","visualTypesMap","eachItem","valueOrIndex","rawDataItem","valueState","incrementalApplyVisual","makeBrushCommonSelectorForSeries","getLineSelectors","inLineRange","layoutRange","STATE_LIST","DISPATCH_METHOD","DISPATCH_FLAG","PRIORITY_BRUSH","layoutCovers","brushModel","brushSelected","throttleDelay","setBrushOption","brushIndex","thisBrushSelected","brushId","brushName","brushLink","linkedSeriesMap","selectedDataIndexForLink","rangeInfoBySeries","hasBrushExists","boundingRectBuilders","selectableArea","linkOthers","brushed","rangeInfoList","stepAParallel","stepAOthers","brushModelNotControll","checkInRange","seriesBrushSelected","doDispatch","getBoundingRectFromMinMax","rg","DEFAULT_OUT_OF_BRUSH_COLOR","BrushModel","inBrush","outOfBrush","setAreas","generateBrushOption","BrushView","$from","ICON_TYPES","BrushFeature","isBrushed","_brushMode","command","TitleModel","subtext","subtarget","TitleView","titleModel","subtextStyleModel","subText","subTextEl","sublink","groupRect","alignStyle","timelinePreprocessor","compatibleEC2","ec2Types","transferItem","controlPosition","itemStyleEmphasis","labelNormal","excludeLabelAttr","currentIndex","setCurrentIndex","isIndexMax","setPlayState","playState","TimelineModel","_initData","autoPlay","getPlayState","dataArr","_names","processedDataArr","rewind","playInterval","SliderTimelineModel","checkpointStyle","showPlayBtn","showPrevBtn","showNextBtn","playIcon","stopIcon","nextIcon","prevIcon","prevBtnSize","nextBtnSize","TimelineView","TimelineAxis","PI$9","labelDataIndexStore","SliderTimelineView","layoutInfo_1","mainGroup_1","_createGroup","labelGroup","axis_1","_createAxis","_renderAxisLabel","_position","_doPlayStop","_updateTicksStatus","_clearTimer","labelPosOpt","getViewRect$5","parsedLabelPos","labelAlignMap","labelBaselineMap","rotationMap","mainLength","controlModel","showControl","controlSize","controlGap","sizePlusGap","playPosition","prevBtnPosition","nextBtnPosition","labelAlign","labelBaseline","mainGroup","_labelGroup","rotateOriginX","rotateOriginY","viewBound","getBound","mainBound","labelBound","mainPosition","labelsPosition","mainBoundIdx","toBound","targetGroup","boundIdx","createScaleByModel$1","newGroup","_renderAxisLine","progressLine","_progressLine","_currentPointer","_renderAxisTick","_tickSymbols","hoverStyleModel","progressStyleModel","symbolOpt","_changeTimeline","giveSymbol","_tickLabels","hoverLabelModel","progressLabelModel","_renderControl","makeBtn","_handlePlayClick","willRotate","iconSize","btn","makeControlIcon","_renderCurrentPointer","me","onCreate","_handlePointerDrag","_handlePointerDragend","pointerMoveTo","onUpdate","nextState","_pointerChangeTimeline","mousePos","toCoord","_toAxisCoord","targetDataIndex","_findNearestTick","_timer","axisCoord","tickSymbols","tickLabels","objPath","fillLabel","inner$i","MarkerModel","createdBySelf","hostSeries","__hostSeries","markerOpt","markerModel","createMarkerModelFromSeries","getMarkerModelFromSeries","MarkPointModel","masterMarkerModel","hasXOrY","hasXAndY","markerTypeCalculatorWithExtent","otherDataDim","targetDataDim","otherCoordIndex","targetCoordIndex","coordArr","calcDataDim","numCalculate","coordArrValue","markerTypeCalculator","dataTransform","getAxisInfo$1","coordInfo","baseDataDim","valueDataDim","valueIndex","dataDimToCoordDim","dataFilter$1","sum_1","count_1","inner$j","MarkerView","markerGroupMap","markKeep","drawGroup","seriesModelList","updateMarkerLayout","xPx","yPx","MarkPointView","markPointModel","mpModel","symbolDrawMap","createList$1","coordDimsInfos","dataOpt","MarkLineModel","inner$k","markLineTransform","mlModel","itemArray","mlType","mlFrom","mlTo","normalizedItem","isInifinity","ifMarkLineHasOnlyDim","fromCoord","otherDimIndex","markLineFilter","updateSingleMarkerEndLayout","MarkLineView","markLineModel","mlData_1","fromData_1","toData_1","lineDrawMap","createList$2","fromData","toData","updateDataVisualAndLayout","fromSymbolRotate","fromSymbolSize","toSymbolRotate","toSymbolSize","optData","dimValueGetter$1","MarkAreaModel","inner$l","markAreaTransform","maModel","ltCoord","rbCoord","isInifinity$1","ifMarkAreaHasOnlyDim","markAreaFilter","getSingleMarkerEndPoint","dimPermutations","MarkAreaView","markAreaModel","areaData_1","areaGroupMap","polygonGroup","areaData","createList$3","xValue","yValue","getDefaultSelectorOptions","LegendModel","_updateSelector","_updateData","legendData","hasSelected","potentialData","availableNames","isPotential","_availableNames","allSelect","inverseSelect","inactiveColor","inactiveBorderColor","selectorLabel","selectorPosition","selectorItemGap","selectorButtonGap","legendSelectActionHandler","isToggleSelect","legendModel","isItemSelected","curry$1","each$e","Group$2","LegendView","newlineDisabled","_contentGroup","_selectorGroup","_isFirstRender","getContentGroup","getSelectorGroup","isFirstRender","resetInner","itemAlign","renderInner","mainRect","layoutInner","_backgroundEl","legendDrawnMap","selectMode","legendSymbolType","_createItem","dispatchSelectAction","dispatchHighlightAction","dispatchDownplayAction","_createSelector","selectorGroup","createSelectorButton","selectorItem","emphasisLabelModel","legendModelItemStyle","itemIcon","legendGlobalTooltipModel","setSymbolStyle","legendSymbolCenter","hitRect","legendIndex","__legendDataIndex","contentRect","contentPos","selectorRect","selectorPos","orientIdx","hw","yx","isUseHoverLayer","legendFilter","ScrollableLegendModel","setScrollDataIndex","scrollDataIndex","mergeAndNormalizeLayoutParams$1","pageButtonItemGap","pageButtonGap","pageButtonPosition","pageFormatter","pageIcons","pageIconColor","pageIconInactiveColor","pageIconSize","pageTextStyle","Group$3","WH$1","XY$1","ScrollableLegendView","_currentIndex","_controllerGroup","__rectSize","controllerGroup","pageIconSizeArr","createPageButton","pageTextStyleModel","iconIdx","pageDataIndexName","_pageGo","processMaxSize","_layoutContentAndController","controllerRect","showController","_showController","containerPos","controllerPos","pageInfo","_getPageInfo","pageIndex","contentPosition","_updatePageInfoView","legendId","canJump","pageText","pageCount","containerRectSize","targetItemIndex","_findTargetItemIndex","targetItem","itemCount","pCount","pagePrevDataIndex","pageNextDataIndex","targetItemInfo","getItemInfo","winStartItemInfo","winEndItemInfo","currItemInfo","itemRect","itemInfo","winStart","defaultIndex","legendDataIdx","SliderZoomModel","handleIcon","moveHandleSize","moveHandleIcon","showDetail","showDataShadow","zoomLock","brushSelect","Rect$2","DEFAULT_LOCATION_EDGE_GAP","DEFAULT_FRAME_BORDER_WIDTH","DEFAULT_FILLER_SIZE","DEFAULT_MOVE_HANDLE_SIZE","HORIZONTAL","VERTICAL","LABEL_GAP","SHOW_DATA_SHADOW_SERIES_TYPE","REALTIME_ANIMATION_CONFIG","SliderZoomView","_onBrushEnd","_buildView","_updateView","_brushing","_resetLocation","_resetInterval","barGroup","sliderGroup","_renderDataShadow","_positionGroup","showMoveHandle","coordRect","_findCoordRect","_location","_size","targetAxisModel","otherAxisInverse","_dataShadowInfo","_getViewExtent","clickPanel","_onClickPanel","_onBrushStart","_prepareDataShadowInfo","dataShadowSegs","otherDataExtent","otherOffset","otherShadowExtent","thisShadowExtent","areaPoints","thisCoord","stride","lastIsEmpty","otherCoord","createDataShadowGroup","isSelectedArea","thisAxis","getOtherDim","thisDim","handles","handleLabels","filler","_onDragMove","_onDragEnd","onmouseover","_showDataInfo","onmouseout","bRect","_handleHeight","_handleWidth","handleColor","actualMoveZone","moveHandleHeight","moveHandle_1","moveHandle","moveZoneExpandSize","moveZone","ondragstart","_range","viewExtent","_handleEnds","_updateInterval","viewExtend","lastRange","nonRealtime","displaybles","handleInterval","handleHeight","segIntervals","segGroup","_updateDataInfo","dataInterval","_formatLabel","orderedHandleEnds","setLabel","barTransform","textPoint","labelPrecision","valueStr","showOrHide","changed","localPoint","_brushStart","_brushStartTime","brushShape","brushEndTime","_updateBrushRect","brushStart","endPoint","coordSysInfoList","InsideZoomModel","disabled","inner$m","apiInner","coordSysRecordMap","coordSysRecord","dataZoomInfoMap","dzReferCoordSysWrap","dzCoordSysInfo","createCoordSysRecord","dzReferCoordSysInfo","getRange","firstDzInfo","firstDzKey","disposeCoordSysRecord","controllerParams","mergeControllerParams","containsPoint","setViewInfoToCoordSysRecord","dzInfo","disposeCoordSysRecordIfNeeded","coordSysKeyArr","dzUid","dispatchAction$1","typePriority","dataZoomInfo","oneType","InsideZoomView","pan","getRangeHandlers","scrollMove","directionInfo","getDirectionInfo","percentPoint","signal","pixelStart","pixelLength","makeMover","getPercentDelta","percentDelta","oldPoint","newPoint","each$f","visualMapPreprocessor","has$1","pieces","splitList","calculable","VISUAL_PRIORITY","isTargetSeries","getDataDimension","getVisualMeta","getColorVisual","concreteDim","resultVisual","visualDefault","defaultOption$2","mapVisual$1","isArray$1","each$g","asc$2","linearMap$1","VisualMapModel","replacableOptionKeys","dataBound","controllerVisuals","resetItemSize","completeVisualOption","resetVisual","getTargetSeriesIndices","optionSeriesIndex","is","formatValueText","edgeSymbols","isMinMax","textValue","resetExtent","optDim","listDimensions","completeSingle","completeInactive","completeController","stateExist","stateAbsent","optExist","optAbsent","defa","symbolExists","symbolSizeExists","max_1","setSelected","getSelected","contentColor","textGap","DEFAULT_BAR_BOUND","ContinuousModel","_resetRange","auto","findTargetDataIndices","oVals","getColorStopValues","iVals","setStop","iIdx","oIdx","iLen","oLen","stopsLen","hoverLink","indicatorIcon","indicatorSize","indicatorStyle","stopValues","VisualMapView","autoPositionValues","doRender","getControllerVisual","visualCluster","forceState","visualObj","visualMapping","convertOpacityToAlpha","positionGroup","paramsSet","getItemAlign","modelOption","realIndex","reals","fakeValue","layoutInput","rParam","makeHighDownBatch","linearMap$2","each$h","mathMin$a","mathMax$a","HOVER_LINK_SIZE","HOVER_LINK_OUT","ContinuousView","_shapes","_dataInterval","_hoverLinkDataIndices","_useHandle","_renderBar","dataRangeText","_renderEndsText","_enableHoverLinkToSeries","_enableHoverLinkFromSeries","endsIndex","shapes","_createBarGroup","gradientBarGroup","createPolygon","getCursor$1","_dragHandle","textSize","handleThumbs","handleLabelPoints","_createHandle","_createIndicator","onDrift","onDragEnd","handleThumb","handleLabel","handleLabelPoint","indicatorLabel","indicatorLabelPoint","_firstShowIndicator","_hideIndicator","visualMapId","_hovering","_clearHoverLinkToSeries","useHoverLinkOnHandle","_doHoverLinkToSeries","forSketch","outOfRangeHandleEnds","inRangeHandleEnds","visualInRange","_createBarVisual","visualOutOfRange","barColor","barPoints","_updateHandle","_makeColorGradient","symbolSizes","_createBarPoints","handlesColor","sampleNumber","currValue","_showIndicator","cursorValue","rangeSymbol","halfHoverLinkSize","oldIndicatorPos","indicatorNewProps","labelNewProps","_hoverLinkFromSeriesMouseOver","_clearHoverLinkFromSeries","cursorPos","hoverOnBar","getHalfHoverLinkSize","hoverRange","oldBatch","newBatch","resultBatches","_dispatchHighDown","hoverLinkDataSize","hoverLinkOnHandle","actionInfo$2","PiecewiseModel","_pieceList","_mode","_determineMode","resetMethods","_resetSelected","visualTypesInPieces","exists","getSelectedMapKey","hasSel_1","pIdx","getRepresentValue","representValue","pieceInterval","minOpen","maxOpen","itemSymbol","outPieceList","splitStep","normalizeReverse","pieceListItem","closeList","infinityList","useMinMax","PiecewiseVisualMapView","_getItemAlign","viewData","_getViewData","endsText","viewPieceList","_onItemClick","_enableHoverLink","indexInModelPieceList","_createItemSymbol","visualState","onHoverLink","shapeParam","DEFAULT_OPTION","inner$n","ariaVisual","ariaModel","setDecal","decalModel","useDecal","paletteScopeGroupByType_1","decalScope","dataAll_1","idxMap_1","decalScope_1","dataCount_1","paletteDecal","specifiedDecal","mergeDecal","resultDecal","labelLocale","seriesCnt","maxDataCnt","maxSeriesCnt","displaySeriesCnt","ariaLabel","getTitle","seriesLabels_1","seriesLabel","getSeriesTypeName","partialLabel","displayCnt","dataLabels","dataLabel","middleSeparator_1","endSeparator_1","separatorModel","middleSeparator","endSeparator","keyValues","ariaPreprocessor","PRIORITY_VISUAL_ARIA$1","createElementNS","NONE","mathRound","mathSin$4","mathCos$4","PI$a","PI2$a","EPSILON$4","round3","round4","isAroundZero$1","pathHasFill","pathHasStroke","svgEl","attrXLink","setAttributeNS","attrXML","bindStyle","strokeWidth","strokeScale_1","SVGPathRebuilder","_d","_str","firstCmd","dThetaPositive","isCircle","unifiedTheta","_invalid","generateStr","getStr","svgPath","__svgEl","pathVersion","elExt","svgPathBuilder","__svgPathBuilder","__svgPathVersion","svgImage","HTMLImageElement","__imageSrc","TEXT_ALIGN_TO_ANCHOR","adjustTextY$1","svgText","textSvgEl","textSvgElStyle","equals","editLength","maxEditLength","bestPath","newPos","oldPos","extractCommon","added","execEditLength","diagonalPath","basePath","addPath","removePath","canAdd","canRemove","clonePath","pushComponent","buildValues","commonCount","componentPos","componentLen","arrayDiff","MARK_UNUSED","MARK_USED","Definable","zrId","tagNames","markLabel","domName","nextId","_domName","_zrId","_svgRoot","_tagNames","_markLabel","getDefs","isForceCreating","getElementsByTagName","defs_1","doUpdate","addDom","removeDom","getDoms","doms","tagName","tags","markAllUnused","markDomUsed","markDomUnused","isDomUnused","removeUnused","getSvgProxy","getSvgElement","isLinearGradient","isRadialGradient","isGradient","GradientManager","addWithoutUpdate","that_1","__dom","markUsed","updateDom","stop_1","hex","isPattern","patternDomMap","PatternManager","patternDom","SVGElement","prevImage","imageSrc","HTMLCanvasElement","createdImage","generateClipPathsKey","hasClipPath","ClippathManager","_refGroups","_keyDuplicateCount","_getClipPathGroup","prevDisplayable","keyDuplicateCount","clipPathKey","clipGroup","clipPathEl","svgProxy","newRefGroupsMap","ShadowManager","_shadowDomMap","_shadowDomPool","_getFromPool","shadowDom","domChild","shadowKey","getShadowKey","_shadowDom","globalScale","stdDx","stdDy","stdDeviation","shadowDomsPool","parseInt10$1","checkParentAvailable","insertAfter","prevSibling","prepend","removeFromMyParent","SVGPainter","createMethodNotSupport","svgDom","bgRoot","_gradientManager","_patternManager","_clipPathManager","_shadowManager","viewport","_svgDom","_backgroundRoot","_viewport","_visibleList","_backgroundNode","bgNode","tag","gradientManager","patternManager","clipPathManager","shadowManager","visibleList","listLen","newVisibleList","prevSvgElement","topPrevSvgElement","currentClipGroup","isAdd","_getDefs","viewportStyle","viewportNode","encodeURIComponent","outerHTML","innerDrawElementOnCanvas","util"],"mappings":"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","sourcesContent":["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (global = global || self, factory(global.echarts = {}));\n}(this, (function (exports) { 'use strict';\n\n /*! *****************************************************************************\r\n Copyright (c) Microsoft Corporation. All rights reserved.\r\n Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\n this file except in compliance with the License. You may obtain a copy of the\r\n License at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\n THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\n KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\n WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\n MERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\n See the Apache Version 2.0 License for specific language governing permissions\r\n and limitations under the License.\r\n ***************************************************************************** */\r\n /* global Reflect, Promise */\r\n\r\n var extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n\r\n function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n }\r\n\r\n var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n };\r\n\r\n function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n }\n\n var Browser = (function () {\r\n function Browser() {\r\n this.firefox = false;\r\n this.ie = false;\r\n this.edge = false;\r\n this.weChat = false;\r\n }\r\n return Browser;\r\n }());\r\n var Env = (function () {\r\n function Env() {\r\n this.browser = new Browser();\r\n this.node = false;\r\n this.wxa = false;\r\n this.worker = false;\r\n this.canvasSupported = false;\r\n this.svgSupported = false;\r\n this.touchEventsSupported = false;\r\n this.pointerEventsSupported = false;\r\n this.domSupported = false;\r\n }\r\n return Env;\r\n }());\r\n var env = new Env();\r\n if (typeof wx === 'object' && typeof wx.getSystemInfoSync === 'function') {\r\n env.wxa = true;\r\n env.canvasSupported = true;\r\n env.touchEventsSupported = true;\r\n }\r\n else if (typeof document === 'undefined' && typeof self !== 'undefined') {\r\n env.worker = true;\r\n env.canvasSupported = true;\r\n }\r\n else if (typeof navigator === 'undefined') {\r\n env.node = true;\r\n env.canvasSupported = true;\r\n env.svgSupported = true;\r\n }\r\n else {\r\n detect(navigator.userAgent, env);\r\n }\r\n function detect(ua, env) {\r\n var browser = env.browser;\r\n var firefox = ua.match(/Firefox\\/([\\d.]+)/);\r\n var ie = ua.match(/MSIE\\s([\\d.]+)/)\r\n || ua.match(/Trident\\/.+?rv:(([\\d.]+))/);\r\n var edge = ua.match(/Edge\\/([\\d.]+)/);\r\n var weChat = (/micromessenger/i).test(ua);\r\n if (firefox) {\r\n browser.firefox = true;\r\n browser.version = firefox[1];\r\n }\r\n if (ie) {\r\n browser.ie = true;\r\n browser.version = ie[1];\r\n }\r\n if (edge) {\r\n browser.edge = true;\r\n browser.version = edge[1];\r\n }\r\n if (weChat) {\r\n browser.weChat = true;\r\n }\r\n env.canvasSupported = !!document.createElement('canvas').getContext;\r\n env.svgSupported = typeof SVGRect !== 'undefined';\r\n env.touchEventsSupported = 'ontouchstart' in window && !browser.ie && !browser.edge;\r\n env.pointerEventsSupported = 'onpointerdown' in window\r\n && (browser.edge || (browser.ie && +browser.version >= 11));\r\n env.domSupported = typeof document !== 'undefined';\r\n }\n\n var BUILTIN_OBJECT = {\r\n '[object Function]': true,\r\n '[object RegExp]': true,\r\n '[object Date]': true,\r\n '[object Error]': true,\r\n '[object CanvasGradient]': true,\r\n '[object CanvasPattern]': true,\r\n '[object Image]': true,\r\n '[object Canvas]': true\r\n };\r\n var TYPED_ARRAY = {\r\n '[object Int8Array]': true,\r\n '[object Uint8Array]': true,\r\n '[object Uint8ClampedArray]': true,\r\n '[object Int16Array]': true,\r\n '[object Uint16Array]': true,\r\n '[object Int32Array]': true,\r\n '[object Uint32Array]': true,\r\n '[object Float32Array]': true,\r\n '[object Float64Array]': true\r\n };\r\n var objToString = Object.prototype.toString;\r\n var arrayProto = Array.prototype;\r\n var nativeForEach = arrayProto.forEach;\r\n var nativeFilter = arrayProto.filter;\r\n var nativeSlice = arrayProto.slice;\r\n var nativeMap = arrayProto.map;\r\n var ctorFunction = (function () { }).constructor;\r\n var protoFunction = ctorFunction ? ctorFunction.prototype : null;\r\n var methods = {};\r\n function $override(name, fn) {\r\n methods[name] = fn;\r\n }\r\n var idStart = 0x0907;\r\n function guid() {\r\n return idStart++;\r\n }\r\n function logError() {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n if (typeof console !== 'undefined') {\r\n console.error.apply(console, args);\r\n }\r\n }\r\n function clone(source) {\r\n if (source == null || typeof source !== 'object') {\r\n return source;\r\n }\r\n var result = source;\r\n var typeStr = objToString.call(source);\r\n if (typeStr === '[object Array]') {\r\n if (!isPrimitive(source)) {\r\n result = [];\r\n for (var i = 0, len = source.length; i < len; i++) {\r\n result[i] = clone(source[i]);\r\n }\r\n }\r\n }\r\n else if (TYPED_ARRAY[typeStr]) {\r\n if (!isPrimitive(source)) {\r\n var Ctor = source.constructor;\r\n if (Ctor.from) {\r\n result = Ctor.from(source);\r\n }\r\n else {\r\n result = new Ctor(source.length);\r\n for (var i = 0, len = source.length; i < len; i++) {\r\n result[i] = clone(source[i]);\r\n }\r\n }\r\n }\r\n }\r\n else if (!BUILTIN_OBJECT[typeStr] && !isPrimitive(source) && !isDom(source)) {\r\n result = {};\r\n for (var key in source) {\r\n if (source.hasOwnProperty(key)) {\r\n result[key] = clone(source[key]);\r\n }\r\n }\r\n }\r\n return result;\r\n }\r\n function merge(target, source, overwrite) {\r\n if (!isObject(source) || !isObject(target)) {\r\n return overwrite ? clone(source) : target;\r\n }\r\n for (var key in source) {\r\n if (source.hasOwnProperty(key)) {\r\n var targetProp = target[key];\r\n var sourceProp = source[key];\r\n if (isObject(sourceProp)\r\n && isObject(targetProp)\r\n && !isArray(sourceProp)\r\n && !isArray(targetProp)\r\n && !isDom(sourceProp)\r\n && !isDom(targetProp)\r\n && !isBuiltInObject(sourceProp)\r\n && !isBuiltInObject(targetProp)\r\n && !isPrimitive(sourceProp)\r\n && !isPrimitive(targetProp)) {\r\n merge(targetProp, sourceProp, overwrite);\r\n }\r\n else if (overwrite || !(key in target)) {\r\n target[key] = clone(source[key]);\r\n }\r\n }\r\n }\r\n return target;\r\n }\r\n function mergeAll(targetAndSources, overwrite) {\r\n var result = targetAndSources[0];\r\n for (var i = 1, len = targetAndSources.length; i < len; i++) {\r\n result = merge(result, targetAndSources[i], overwrite);\r\n }\r\n return result;\r\n }\r\n function extend(target, source) {\r\n if (Object.assign) {\r\n Object.assign(target, source);\r\n }\r\n else {\r\n for (var key in source) {\r\n if (source.hasOwnProperty(key)) {\r\n target[key] = source[key];\r\n }\r\n }\r\n }\r\n return target;\r\n }\r\n function defaults(target, source, overlay) {\r\n var keysArr = keys(source);\r\n for (var i = 0; i < keysArr.length; i++) {\r\n var key = keysArr[i];\r\n if ((overlay ? source[key] != null : target[key] == null)) {\r\n target[key] = source[key];\r\n }\r\n }\r\n return target;\r\n }\r\n var createCanvas = function () {\r\n return methods.createCanvas();\r\n };\r\n methods.createCanvas = function () {\r\n return document.createElement('canvas');\r\n };\r\n function indexOf(array, value) {\r\n if (array) {\r\n if (array.indexOf) {\r\n return array.indexOf(value);\r\n }\r\n for (var i = 0, len = array.length; i < len; i++) {\r\n if (array[i] === value) {\r\n return i;\r\n }\r\n }\r\n }\r\n return -1;\r\n }\r\n function inherits(clazz, baseClazz) {\r\n var clazzPrototype = clazz.prototype;\r\n function F() { }\r\n F.prototype = baseClazz.prototype;\r\n clazz.prototype = new F();\r\n for (var prop in clazzPrototype) {\r\n if (clazzPrototype.hasOwnProperty(prop)) {\r\n clazz.prototype[prop] = clazzPrototype[prop];\r\n }\r\n }\r\n clazz.prototype.constructor = clazz;\r\n clazz.superClass = baseClazz;\r\n }\r\n function mixin(target, source, override) {\r\n target = 'prototype' in target ? target.prototype : target;\r\n source = 'prototype' in source ? source.prototype : source;\r\n if (Object.getOwnPropertyNames) {\r\n var keyList = Object.getOwnPropertyNames(source);\r\n for (var i = 0; i < keyList.length; i++) {\r\n var key = keyList[i];\r\n if (key !== 'constructor') {\r\n if ((override ? source[key] != null : target[key] == null)) {\r\n target[key] = source[key];\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n defaults(target, source, override);\r\n }\r\n }\r\n function isArrayLike(data) {\r\n if (!data) {\r\n return false;\r\n }\r\n if (typeof data === 'string') {\r\n return false;\r\n }\r\n return typeof data.length === 'number';\r\n }\r\n function each(arr, cb, context) {\r\n if (!(arr && cb)) {\r\n return;\r\n }\r\n if (arr.forEach && arr.forEach === nativeForEach) {\r\n arr.forEach(cb, context);\r\n }\r\n else if (arr.length === +arr.length) {\r\n for (var i = 0, len = arr.length; i < len; i++) {\r\n cb.call(context, arr[i], i, arr);\r\n }\r\n }\r\n else {\r\n for (var key in arr) {\r\n if (arr.hasOwnProperty(key)) {\r\n cb.call(context, arr[key], key, arr);\r\n }\r\n }\r\n }\r\n }\r\n function map(arr, cb, context) {\r\n if (!arr) {\r\n return [];\r\n }\r\n if (!cb) {\r\n return slice(arr);\r\n }\r\n if (arr.map && arr.map === nativeMap) {\r\n return arr.map(cb, context);\r\n }\r\n else {\r\n var result = [];\r\n for (var i = 0, len = arr.length; i < len; i++) {\r\n result.push(cb.call(context, arr[i], i, arr));\r\n }\r\n return result;\r\n }\r\n }\r\n function reduce(arr, cb, memo, context) {\r\n if (!(arr && cb)) {\r\n return;\r\n }\r\n for (var i = 0, len = arr.length; i < len; i++) {\r\n memo = cb.call(context, memo, arr[i], i, arr);\r\n }\r\n return memo;\r\n }\r\n function filter(arr, cb, context) {\r\n if (!arr) {\r\n return [];\r\n }\r\n if (!cb) {\r\n return slice(arr);\r\n }\r\n if (arr.filter && arr.filter === nativeFilter) {\r\n return arr.filter(cb, context);\r\n }\r\n else {\r\n var result = [];\r\n for (var i = 0, len = arr.length; i < len; i++) {\r\n if (cb.call(context, arr[i], i, arr)) {\r\n result.push(arr[i]);\r\n }\r\n }\r\n return result;\r\n }\r\n }\r\n function find(arr, cb, context) {\r\n if (!(arr && cb)) {\r\n return;\r\n }\r\n for (var i = 0, len = arr.length; i < len; i++) {\r\n if (cb.call(context, arr[i], i, arr)) {\r\n return arr[i];\r\n }\r\n }\r\n }\r\n function keys(obj) {\r\n if (!obj) {\r\n return [];\r\n }\r\n if (Object.keys) {\r\n return Object.keys(obj);\r\n }\r\n var keyList = [];\r\n for (var key in obj) {\r\n if (obj.hasOwnProperty(key)) {\r\n keyList.push(key);\r\n }\r\n }\r\n return keyList;\r\n }\r\n function bindPolyfill(func, context) {\r\n var args = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n args[_i - 2] = arguments[_i];\r\n }\r\n return function () {\r\n return func.apply(context, args.concat(nativeSlice.call(arguments)));\r\n };\r\n }\r\n var bind = (protoFunction && isFunction(protoFunction.bind))\r\n ? protoFunction.call.bind(protoFunction.bind)\r\n : bindPolyfill;\r\n function curry(func) {\r\n var args = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n args[_i - 1] = arguments[_i];\r\n }\r\n return function () {\r\n return func.apply(this, args.concat(nativeSlice.call(arguments)));\r\n };\r\n }\r\n function isArray(value) {\r\n if (Array.isArray) {\r\n return Array.isArray(value);\r\n }\r\n return objToString.call(value) === '[object Array]';\r\n }\r\n function isFunction(value) {\r\n return typeof value === 'function';\r\n }\r\n function isString(value) {\r\n return typeof value === 'string';\r\n }\r\n function isStringSafe(value) {\r\n return objToString.call(value) === '[object String]';\r\n }\r\n function isNumber(value) {\r\n return typeof value === 'number';\r\n }\r\n function isObject(value) {\r\n var type = typeof value;\r\n return type === 'function' || (!!value && type === 'object');\r\n }\r\n function isBuiltInObject(value) {\r\n return !!BUILTIN_OBJECT[objToString.call(value)];\r\n }\r\n function isTypedArray(value) {\r\n return !!TYPED_ARRAY[objToString.call(value)];\r\n }\r\n function isDom(value) {\r\n return typeof value === 'object'\r\n && typeof value.nodeType === 'number'\r\n && typeof value.ownerDocument === 'object';\r\n }\r\n function isGradientObject(value) {\r\n return value.colorStops != null;\r\n }\r\n function isPatternObject(value) {\r\n return value.image != null;\r\n }\r\n function isRegExp(value) {\r\n return objToString.call(value) === '[object RegExp]';\r\n }\r\n function eqNaN(value) {\r\n return value !== value;\r\n }\r\n function retrieve() {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n for (var i = 0, len = args.length; i < len; i++) {\r\n if (args[i] != null) {\r\n return args[i];\r\n }\r\n }\r\n }\r\n function retrieve2(value0, value1) {\r\n return value0 != null\r\n ? value0\r\n : value1;\r\n }\r\n function retrieve3(value0, value1, value2) {\r\n return value0 != null\r\n ? value0\r\n : value1 != null\r\n ? value1\r\n : value2;\r\n }\r\n function slice(arr) {\r\n var args = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n args[_i - 1] = arguments[_i];\r\n }\r\n return nativeSlice.apply(arr, args);\r\n }\r\n function normalizeCssArray(val) {\r\n if (typeof (val) === 'number') {\r\n return [val, val, val, val];\r\n }\r\n var len = val.length;\r\n if (len === 2) {\r\n return [val[0], val[1], val[0], val[1]];\r\n }\r\n else if (len === 3) {\r\n return [val[0], val[1], val[2], val[1]];\r\n }\r\n return val;\r\n }\r\n function assert(condition, message) {\r\n if (!condition) {\r\n throw new Error(message);\r\n }\r\n }\r\n function trim(str) {\r\n if (str == null) {\r\n return null;\r\n }\r\n else if (typeof str.trim === 'function') {\r\n return str.trim();\r\n }\r\n else {\r\n return str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\r\n }\r\n }\r\n var primitiveKey = '__ec_primitive__';\r\n function setAsPrimitive(obj) {\r\n obj[primitiveKey] = true;\r\n }\r\n function isPrimitive(obj) {\r\n return obj[primitiveKey];\r\n }\r\n var HashMap = (function () {\r\n function HashMap(obj) {\r\n this.data = {};\r\n var isArr = isArray(obj);\r\n this.data = {};\r\n var thisMap = this;\r\n (obj instanceof HashMap)\r\n ? obj.each(visit)\r\n : (obj && each(obj, visit));\r\n function visit(value, key) {\r\n isArr ? thisMap.set(value, key) : thisMap.set(key, value);\r\n }\r\n }\r\n HashMap.prototype.get = function (key) {\r\n return this.data.hasOwnProperty(key) ? this.data[key] : null;\r\n };\r\n HashMap.prototype.set = function (key, value) {\r\n return (this.data[key] = value);\r\n };\r\n HashMap.prototype.each = function (cb, context) {\r\n for (var key in this.data) {\r\n if (this.data.hasOwnProperty(key)) {\r\n cb.call(context, this.data[key], key);\r\n }\r\n }\r\n };\r\n HashMap.prototype.keys = function () {\r\n return keys(this.data);\r\n };\r\n HashMap.prototype.removeKey = function (key) {\r\n delete this.data[key];\r\n };\r\n return HashMap;\r\n }());\r\n function createHashMap(obj) {\r\n return new HashMap(obj);\r\n }\r\n function concatArray(a, b) {\r\n var newArray = new a.constructor(a.length + b.length);\r\n for (var i = 0; i < a.length; i++) {\r\n newArray[i] = a[i];\r\n }\r\n var offset = a.length;\r\n for (var i = 0; i < b.length; i++) {\r\n newArray[i + offset] = b[i];\r\n }\r\n return newArray;\r\n }\r\n function createObject(proto, properties) {\r\n var obj;\r\n if (Object.create) {\r\n obj = Object.create(proto);\r\n }\r\n else {\r\n var StyleCtor = function () { };\r\n StyleCtor.prototype = proto;\r\n obj = new StyleCtor();\r\n }\r\n if (properties) {\r\n extend(obj, properties);\r\n }\r\n return obj;\r\n }\r\n function hasOwn(own, prop) {\r\n return own.hasOwnProperty(prop);\r\n }\r\n function noop() { }\n\n var zrUtil = /*#__PURE__*/Object.freeze({\n __proto__: null,\n $override: $override,\n guid: guid,\n logError: logError,\n clone: clone,\n merge: merge,\n mergeAll: mergeAll,\n extend: extend,\n defaults: defaults,\n createCanvas: createCanvas,\n indexOf: indexOf,\n inherits: inherits,\n mixin: mixin,\n isArrayLike: isArrayLike,\n each: each,\n map: map,\n reduce: reduce,\n filter: filter,\n find: find,\n keys: keys,\n bind: bind,\n curry: curry,\n isArray: isArray,\n isFunction: isFunction,\n isString: isString,\n isStringSafe: isStringSafe,\n isNumber: isNumber,\n isObject: isObject,\n isBuiltInObject: isBuiltInObject,\n isTypedArray: isTypedArray,\n isDom: isDom,\n isGradientObject: isGradientObject,\n isPatternObject: isPatternObject,\n isRegExp: isRegExp,\n eqNaN: eqNaN,\n retrieve: retrieve,\n retrieve2: retrieve2,\n retrieve3: retrieve3,\n slice: slice,\n normalizeCssArray: normalizeCssArray,\n assert: assert,\n trim: trim,\n setAsPrimitive: setAsPrimitive,\n isPrimitive: isPrimitive,\n HashMap: HashMap,\n createHashMap: createHashMap,\n concatArray: concatArray,\n createObject: createObject,\n hasOwn: hasOwn,\n noop: noop\n });\n\n function create(x, y) {\r\n if (x == null) {\r\n x = 0;\r\n }\r\n if (y == null) {\r\n y = 0;\r\n }\r\n return [x, y];\r\n }\r\n function copy(out, v) {\r\n out[0] = v[0];\r\n out[1] = v[1];\r\n return out;\r\n }\r\n function clone$1(v) {\r\n return [v[0], v[1]];\r\n }\r\n function set(out, a, b) {\r\n out[0] = a;\r\n out[1] = b;\r\n return out;\r\n }\r\n function add(out, v1, v2) {\r\n out[0] = v1[0] + v2[0];\r\n out[1] = v1[1] + v2[1];\r\n return out;\r\n }\r\n function scaleAndAdd(out, v1, v2, a) {\r\n out[0] = v1[0] + v2[0] * a;\r\n out[1] = v1[1] + v2[1] * a;\r\n return out;\r\n }\r\n function sub(out, v1, v2) {\r\n out[0] = v1[0] - v2[0];\r\n out[1] = v1[1] - v2[1];\r\n return out;\r\n }\r\n function len(v) {\r\n return Math.sqrt(lenSquare(v));\r\n }\r\n var length = len;\r\n function lenSquare(v) {\r\n return v[0] * v[0] + v[1] * v[1];\r\n }\r\n var lengthSquare = lenSquare;\r\n function mul(out, v1, v2) {\r\n out[0] = v1[0] * v2[0];\r\n out[1] = v1[1] * v2[1];\r\n return out;\r\n }\r\n function div(out, v1, v2) {\r\n out[0] = v1[0] / v2[0];\r\n out[1] = v1[1] / v2[1];\r\n return out;\r\n }\r\n function dot(v1, v2) {\r\n return v1[0] * v2[0] + v1[1] * v2[1];\r\n }\r\n function scale(out, v, s) {\r\n out[0] = v[0] * s;\r\n out[1] = v[1] * s;\r\n return out;\r\n }\r\n function normalize(out, v) {\r\n var d = len(v);\r\n if (d === 0) {\r\n out[0] = 0;\r\n out[1] = 0;\r\n }\r\n else {\r\n out[0] = v[0] / d;\r\n out[1] = v[1] / d;\r\n }\r\n return out;\r\n }\r\n function distance(v1, v2) {\r\n return Math.sqrt((v1[0] - v2[0]) * (v1[0] - v2[0])\r\n + (v1[1] - v2[1]) * (v1[1] - v2[1]));\r\n }\r\n var dist = distance;\r\n function distanceSquare(v1, v2) {\r\n return (v1[0] - v2[0]) * (v1[0] - v2[0])\r\n + (v1[1] - v2[1]) * (v1[1] - v2[1]);\r\n }\r\n var distSquare = distanceSquare;\r\n function negate(out, v) {\r\n out[0] = -v[0];\r\n out[1] = -v[1];\r\n return out;\r\n }\r\n function lerp(out, v1, v2, t) {\r\n out[0] = v1[0] + t * (v2[0] - v1[0]);\r\n out[1] = v1[1] + t * (v2[1] - v1[1]);\r\n return out;\r\n }\r\n function applyTransform(out, v, m) {\r\n var x = v[0];\r\n var y = v[1];\r\n out[0] = m[0] * x + m[2] * y + m[4];\r\n out[1] = m[1] * x + m[3] * y + m[5];\r\n return out;\r\n }\r\n function min(out, v1, v2) {\r\n out[0] = Math.min(v1[0], v2[0]);\r\n out[1] = Math.min(v1[1], v2[1]);\r\n return out;\r\n }\r\n function max(out, v1, v2) {\r\n out[0] = Math.max(v1[0], v2[0]);\r\n out[1] = Math.max(v1[1], v2[1]);\r\n return out;\r\n }\n\n var vector = /*#__PURE__*/Object.freeze({\n __proto__: null,\n create: create,\n copy: copy,\n clone: clone$1,\n set: set,\n add: add,\n scaleAndAdd: scaleAndAdd,\n sub: sub,\n len: len,\n length: length,\n lenSquare: lenSquare,\n lengthSquare: lengthSquare,\n mul: mul,\n div: div,\n dot: dot,\n scale: scale,\n normalize: normalize,\n distance: distance,\n dist: dist,\n distanceSquare: distanceSquare,\n distSquare: distSquare,\n negate: negate,\n lerp: lerp,\n applyTransform: applyTransform,\n min: min,\n max: max\n });\n\n var Param = (function () {\r\n function Param(target, e) {\r\n this.target = target;\r\n this.topTarget = e && e.topTarget;\r\n }\r\n return Param;\r\n }());\r\n var Draggable = (function () {\r\n function Draggable(handler) {\r\n this.handler = handler;\r\n handler.on('mousedown', this._dragStart, this);\r\n handler.on('mousemove', this._drag, this);\r\n handler.on('mouseup', this._dragEnd, this);\r\n }\r\n Draggable.prototype._dragStart = function (e) {\r\n var draggingTarget = e.target;\r\n while (draggingTarget && !draggingTarget.draggable) {\r\n draggingTarget = draggingTarget.parent;\r\n }\r\n if (draggingTarget) {\r\n this._draggingTarget = draggingTarget;\r\n draggingTarget.dragging = true;\r\n this._x = e.offsetX;\r\n this._y = e.offsetY;\r\n this.handler.dispatchToElement(new Param(draggingTarget, e), 'dragstart', e.event);\r\n }\r\n };\r\n Draggable.prototype._drag = function (e) {\r\n var draggingTarget = this._draggingTarget;\r\n if (draggingTarget) {\r\n var x = e.offsetX;\r\n var y = e.offsetY;\r\n var dx = x - this._x;\r\n var dy = y - this._y;\r\n this._x = x;\r\n this._y = y;\r\n draggingTarget.drift(dx, dy, e);\r\n this.handler.dispatchToElement(new Param(draggingTarget, e), 'drag', e.event);\r\n var dropTarget = this.handler.findHover(x, y, draggingTarget).target;\r\n var lastDropTarget = this._dropTarget;\r\n this._dropTarget = dropTarget;\r\n if (draggingTarget !== dropTarget) {\r\n if (lastDropTarget && dropTarget !== lastDropTarget) {\r\n this.handler.dispatchToElement(new Param(lastDropTarget, e), 'dragleave', e.event);\r\n }\r\n if (dropTarget && dropTarget !== lastDropTarget) {\r\n this.handler.dispatchToElement(new Param(dropTarget, e), 'dragenter', e.event);\r\n }\r\n }\r\n }\r\n };\r\n Draggable.prototype._dragEnd = function (e) {\r\n var draggingTarget = this._draggingTarget;\r\n if (draggingTarget) {\r\n draggingTarget.dragging = false;\r\n }\r\n this.handler.dispatchToElement(new Param(draggingTarget, e), 'dragend', e.event);\r\n if (this._dropTarget) {\r\n this.handler.dispatchToElement(new Param(this._dropTarget, e), 'drop', e.event);\r\n }\r\n this._draggingTarget = null;\r\n this._dropTarget = null;\r\n };\r\n return Draggable;\r\n }());\n\n var Eventful = (function () {\r\n function Eventful(eventProcessors) {\r\n if (eventProcessors) {\r\n this._$eventProcessor = eventProcessors;\r\n }\r\n }\r\n Eventful.prototype.on = function (event, query, handler, context) {\r\n if (!this._$handlers) {\r\n this._$handlers = {};\r\n }\r\n var _h = this._$handlers;\r\n if (typeof query === 'function') {\r\n context = handler;\r\n handler = query;\r\n query = null;\r\n }\r\n if (!handler || !event) {\r\n return this;\r\n }\r\n var eventProcessor = this._$eventProcessor;\r\n if (query != null && eventProcessor && eventProcessor.normalizeQuery) {\r\n query = eventProcessor.normalizeQuery(query);\r\n }\r\n if (!_h[event]) {\r\n _h[event] = [];\r\n }\r\n for (var i = 0; i < _h[event].length; i++) {\r\n if (_h[event][i].h === handler) {\r\n return this;\r\n }\r\n }\r\n var wrap = {\r\n h: handler,\r\n query: query,\r\n ctx: (context || this),\r\n callAtLast: handler.zrEventfulCallAtLast\r\n };\r\n var lastIndex = _h[event].length - 1;\r\n var lastWrap = _h[event][lastIndex];\r\n (lastWrap && lastWrap.callAtLast)\r\n ? _h[event].splice(lastIndex, 0, wrap)\r\n : _h[event].push(wrap);\r\n return this;\r\n };\r\n Eventful.prototype.isSilent = function (eventName) {\r\n var _h = this._$handlers;\r\n return !_h || !_h[eventName] || !_h[eventName].length;\r\n };\r\n Eventful.prototype.off = function (eventType, handler) {\r\n var _h = this._$handlers;\r\n if (!_h) {\r\n return this;\r\n }\r\n if (!eventType) {\r\n this._$handlers = {};\r\n return this;\r\n }\r\n if (handler) {\r\n if (_h[eventType]) {\r\n var newList = [];\r\n for (var i = 0, l = _h[eventType].length; i < l; i++) {\r\n if (_h[eventType][i].h !== handler) {\r\n newList.push(_h[eventType][i]);\r\n }\r\n }\r\n _h[eventType] = newList;\r\n }\r\n if (_h[eventType] && _h[eventType].length === 0) {\r\n delete _h[eventType];\r\n }\r\n }\r\n else {\r\n delete _h[eventType];\r\n }\r\n return this;\r\n };\r\n Eventful.prototype.trigger = function (eventType) {\r\n var args = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n args[_i - 1] = arguments[_i];\r\n }\r\n if (!this._$handlers) {\r\n return this;\r\n }\r\n var _h = this._$handlers[eventType];\r\n var eventProcessor = this._$eventProcessor;\r\n if (_h) {\r\n var argLen = args.length;\r\n var len = _h.length;\r\n for (var i = 0; i < len; i++) {\r\n var hItem = _h[i];\r\n if (eventProcessor\r\n && eventProcessor.filter\r\n && hItem.query != null\r\n && !eventProcessor.filter(eventType, hItem.query)) {\r\n continue;\r\n }\r\n switch (argLen) {\r\n case 0:\r\n hItem.h.call(hItem.ctx);\r\n break;\r\n case 1:\r\n hItem.h.call(hItem.ctx, args[0]);\r\n break;\r\n case 2:\r\n hItem.h.call(hItem.ctx, args[0], args[1]);\r\n break;\r\n default:\r\n hItem.h.apply(hItem.ctx, args);\r\n break;\r\n }\r\n }\r\n }\r\n eventProcessor && eventProcessor.afterTrigger\r\n && eventProcessor.afterTrigger(eventType);\r\n return this;\r\n };\r\n Eventful.prototype.triggerWithContext = function (type) {\r\n if (!this._$handlers) {\r\n return this;\r\n }\r\n var _h = this._$handlers[type];\r\n var eventProcessor = this._$eventProcessor;\r\n if (_h) {\r\n var args = arguments;\r\n var argLen = args.length;\r\n var ctx = args[argLen - 1];\r\n var len = _h.length;\r\n for (var i = 0; i < len; i++) {\r\n var hItem = _h[i];\r\n if (eventProcessor\r\n && eventProcessor.filter\r\n && hItem.query != null\r\n && !eventProcessor.filter(type, hItem.query)) {\r\n continue;\r\n }\r\n switch (argLen) {\r\n case 0:\r\n hItem.h.call(ctx);\r\n break;\r\n case 1:\r\n hItem.h.call(ctx, args[0]);\r\n break;\r\n case 2:\r\n hItem.h.call(ctx, args[0], args[1]);\r\n break;\r\n default:\r\n hItem.h.apply(ctx, args.slice(1, argLen - 1));\r\n break;\r\n }\r\n }\r\n }\r\n eventProcessor && eventProcessor.afterTrigger\r\n && eventProcessor.afterTrigger(type);\r\n return this;\r\n };\r\n return Eventful;\r\n }());\n\n var LN2 = Math.log(2);\r\n function determinant(rows, rank, rowStart, rowMask, colMask, detCache) {\r\n var cacheKey = rowMask + '-' + colMask;\r\n var fullRank = rows.length;\r\n if (detCache.hasOwnProperty(cacheKey)) {\r\n return detCache[cacheKey];\r\n }\r\n if (rank === 1) {\r\n var colStart = Math.round(Math.log(((1 << fullRank) - 1) & ~colMask) / LN2);\r\n return rows[rowStart][colStart];\r\n }\r\n var subRowMask = rowMask | (1 << rowStart);\r\n var subRowStart = rowStart + 1;\r\n while (rowMask & (1 << subRowStart)) {\r\n subRowStart++;\r\n }\r\n var sum = 0;\r\n for (var j = 0, colLocalIdx = 0; j < fullRank; j++) {\r\n var colTag = 1 << j;\r\n if (!(colTag & colMask)) {\r\n sum += (colLocalIdx % 2 ? -1 : 1) * rows[rowStart][j]\r\n * determinant(rows, rank - 1, subRowStart, subRowMask, colMask | colTag, detCache);\r\n colLocalIdx++;\r\n }\r\n }\r\n detCache[cacheKey] = sum;\r\n return sum;\r\n }\r\n function buildTransformer(src, dest) {\r\n var mA = [\r\n [src[0], src[1], 1, 0, 0, 0, -dest[0] * src[0], -dest[0] * src[1]],\r\n [0, 0, 0, src[0], src[1], 1, -dest[1] * src[0], -dest[1] * src[1]],\r\n [src[2], src[3], 1, 0, 0, 0, -dest[2] * src[2], -dest[2] * src[3]],\r\n [0, 0, 0, src[2], src[3], 1, -dest[3] * src[2], -dest[3] * src[3]],\r\n [src[4], src[5], 1, 0, 0, 0, -dest[4] * src[4], -dest[4] * src[5]],\r\n [0, 0, 0, src[4], src[5], 1, -dest[5] * src[4], -dest[5] * src[5]],\r\n [src[6], src[7], 1, 0, 0, 0, -dest[6] * src[6], -dest[6] * src[7]],\r\n [0, 0, 0, src[6], src[7], 1, -dest[7] * src[6], -dest[7] * src[7]]\r\n ];\r\n var detCache = {};\r\n var det = determinant(mA, 8, 0, 0, 0, detCache);\r\n if (det === 0) {\r\n return;\r\n }\r\n var vh = [];\r\n for (var i = 0; i < 8; i++) {\r\n for (var j = 0; j < 8; j++) {\r\n vh[j] == null && (vh[j] = 0);\r\n vh[j] += ((i + j) % 2 ? -1 : 1)\r\n * determinant(mA, 7, i === 0 ? 1 : 0, 1 << i, 1 << j, detCache)\r\n / det * dest[i];\r\n }\r\n }\r\n return function (out, srcPointX, srcPointY) {\r\n var pk = srcPointX * vh[6] + srcPointY * vh[7] + 1;\r\n out[0] = (srcPointX * vh[0] + srcPointY * vh[1] + vh[2]) / pk;\r\n out[1] = (srcPointX * vh[3] + srcPointY * vh[4] + vh[5]) / pk;\r\n };\r\n }\n\n var EVENT_SAVED_PROP = '___zrEVENTSAVED';\r\n var _calcOut = [];\r\n function transformLocalCoord(out, elFrom, elTarget, inX, inY) {\r\n return transformCoordWithViewport(_calcOut, elFrom, inX, inY, true)\r\n && transformCoordWithViewport(out, elTarget, _calcOut[0], _calcOut[1]);\r\n }\r\n function transformCoordWithViewport(out, el, inX, inY, inverse) {\r\n if (el.getBoundingClientRect && env.domSupported && !isCanvasEl(el)) {\r\n var saved = el[EVENT_SAVED_PROP] || (el[EVENT_SAVED_PROP] = {});\r\n var markers = prepareCoordMarkers(el, saved);\r\n var transformer = preparePointerTransformer(markers, saved, inverse);\r\n if (transformer) {\r\n transformer(out, inX, inY);\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n function prepareCoordMarkers(el, saved) {\r\n var markers = saved.markers;\r\n if (markers) {\r\n return markers;\r\n }\r\n markers = saved.markers = [];\r\n var propLR = ['left', 'right'];\r\n var propTB = ['top', 'bottom'];\r\n for (var i = 0; i < 4; i++) {\r\n var marker = document.createElement('div');\r\n var stl = marker.style;\r\n var idxLR = i % 2;\r\n var idxTB = (i >> 1) % 2;\r\n stl.cssText = [\r\n 'position: absolute',\r\n 'visibility: hidden',\r\n 'padding: 0',\r\n 'margin: 0',\r\n 'border-width: 0',\r\n 'user-select: none',\r\n 'width:0',\r\n 'height:0',\r\n propLR[idxLR] + ':0',\r\n propTB[idxTB] + ':0',\r\n propLR[1 - idxLR] + ':auto',\r\n propTB[1 - idxTB] + ':auto',\r\n ''\r\n ].join('!important;');\r\n el.appendChild(marker);\r\n markers.push(marker);\r\n }\r\n return markers;\r\n }\r\n function preparePointerTransformer(markers, saved, inverse) {\r\n var transformerName = inverse ? 'invTrans' : 'trans';\r\n var transformer = saved[transformerName];\r\n var oldSrcCoords = saved.srcCoords;\r\n var srcCoords = [];\r\n var destCoords = [];\r\n var oldCoordTheSame = true;\r\n for (var i = 0; i < 4; i++) {\r\n var rect = markers[i].getBoundingClientRect();\r\n var ii = 2 * i;\r\n var x = rect.left;\r\n var y = rect.top;\r\n srcCoords.push(x, y);\r\n oldCoordTheSame = oldCoordTheSame && oldSrcCoords && x === oldSrcCoords[ii] && y === oldSrcCoords[ii + 1];\r\n destCoords.push(markers[i].offsetLeft, markers[i].offsetTop);\r\n }\r\n return (oldCoordTheSame && transformer)\r\n ? transformer\r\n : (saved.srcCoords = srcCoords,\r\n saved[transformerName] = inverse\r\n ? buildTransformer(destCoords, srcCoords)\r\n : buildTransformer(srcCoords, destCoords));\r\n }\r\n function isCanvasEl(el) {\r\n return el.nodeName.toUpperCase() === 'CANVAS';\r\n }\n\n var isDomLevel2 = (typeof window !== 'undefined') && !!window.addEventListener;\r\n var MOUSE_EVENT_REG = /^(?:mouse|pointer|contextmenu|drag|drop)|click/;\r\n var _calcOut$1 = [];\r\n function clientToLocal(el, e, out, calculate) {\r\n out = out || {};\r\n if (calculate || !env.canvasSupported) {\r\n calculateZrXY(el, e, out);\r\n }\r\n else if (env.browser.firefox\r\n && e.layerX != null\r\n && e.layerX !== e.offsetX) {\r\n out.zrX = e.layerX;\r\n out.zrY = e.layerY;\r\n }\r\n else if (e.offsetX != null) {\r\n out.zrX = e.offsetX;\r\n out.zrY = e.offsetY;\r\n }\r\n else {\r\n calculateZrXY(el, e, out);\r\n }\r\n return out;\r\n }\r\n function calculateZrXY(el, e, out) {\r\n if (env.domSupported && el.getBoundingClientRect) {\r\n var ex = e.clientX;\r\n var ey = e.clientY;\r\n if (isCanvasEl(el)) {\r\n var box = el.getBoundingClientRect();\r\n out.zrX = ex - box.left;\r\n out.zrY = ey - box.top;\r\n return;\r\n }\r\n else {\r\n if (transformCoordWithViewport(_calcOut$1, el, ex, ey)) {\r\n out.zrX = _calcOut$1[0];\r\n out.zrY = _calcOut$1[1];\r\n return;\r\n }\r\n }\r\n }\r\n out.zrX = out.zrY = 0;\r\n }\r\n function getNativeEvent(e) {\r\n return e\r\n || window.event;\r\n }\r\n function normalizeEvent(el, e, calculate) {\r\n e = getNativeEvent(e);\r\n if (e.zrX != null) {\r\n return e;\r\n }\r\n var eventType = e.type;\r\n var isTouch = eventType && eventType.indexOf('touch') >= 0;\r\n if (!isTouch) {\r\n clientToLocal(el, e, e, calculate);\r\n var wheelDelta = getWheelDeltaMayPolyfill(e);\r\n e.zrDelta = wheelDelta ? wheelDelta / 120 : -(e.detail || 0) / 3;\r\n }\r\n else {\r\n var touch = eventType !== 'touchend'\r\n ? e.targetTouches[0]\r\n : e.changedTouches[0];\r\n touch && clientToLocal(el, touch, e, calculate);\r\n }\r\n var button = e.button;\r\n if (e.which == null && button !== undefined && MOUSE_EVENT_REG.test(e.type)) {\r\n e.which = (button & 1 ? 1 : (button & 2 ? 3 : (button & 4 ? 2 : 0)));\r\n }\r\n return e;\r\n }\r\n function getWheelDeltaMayPolyfill(e) {\r\n var rawWheelDelta = e.wheelDelta;\r\n if (rawWheelDelta) {\r\n return rawWheelDelta;\r\n }\r\n var deltaX = e.deltaX;\r\n var deltaY = e.deltaY;\r\n if (deltaX == null || deltaY == null) {\r\n return rawWheelDelta;\r\n }\r\n var delta = deltaY !== 0 ? Math.abs(deltaY) : Math.abs(deltaX);\r\n var sign = deltaY > 0 ? -1\r\n : deltaY < 0 ? 1\r\n : deltaX > 0 ? -1\r\n : 1;\r\n return 3 * delta * sign;\r\n }\r\n function addEventListener(el, name, handler, opt) {\r\n if (isDomLevel2) {\r\n el.addEventListener(name, handler, opt);\r\n }\r\n else {\r\n el.attachEvent('on' + name, handler);\r\n }\r\n }\r\n function removeEventListener(el, name, handler, opt) {\r\n if (isDomLevel2) {\r\n el.removeEventListener(name, handler, opt);\r\n }\r\n else {\r\n el.detachEvent('on' + name, handler);\r\n }\r\n }\r\n var stop = isDomLevel2\r\n ? function (e) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n e.cancelBubble = true;\r\n }\r\n : function (e) {\r\n e.returnValue = false;\r\n e.cancelBubble = true;\r\n };\r\n function isMiddleOrRightButtonOnMouseUpDown(e) {\r\n return e.which === 2 || e.which === 3;\r\n }\n\n var GestureMgr = (function () {\r\n function GestureMgr() {\r\n this._track = [];\r\n }\r\n GestureMgr.prototype.recognize = function (event, target, root) {\r\n this._doTrack(event, target, root);\r\n return this._recognize(event);\r\n };\r\n GestureMgr.prototype.clear = function () {\r\n this._track.length = 0;\r\n return this;\r\n };\r\n GestureMgr.prototype._doTrack = function (event, target, root) {\r\n var touches = event.touches;\r\n if (!touches) {\r\n return;\r\n }\r\n var trackItem = {\r\n points: [],\r\n touches: [],\r\n target: target,\r\n event: event\r\n };\r\n for (var i = 0, len = touches.length; i < len; i++) {\r\n var touch = touches[i];\r\n var pos = clientToLocal(root, touch, {});\r\n trackItem.points.push([pos.zrX, pos.zrY]);\r\n trackItem.touches.push(touch);\r\n }\r\n this._track.push(trackItem);\r\n };\r\n GestureMgr.prototype._recognize = function (event) {\r\n for (var eventName in recognizers) {\r\n if (recognizers.hasOwnProperty(eventName)) {\r\n var gestureInfo = recognizers[eventName](this._track, event);\r\n if (gestureInfo) {\r\n return gestureInfo;\r\n }\r\n }\r\n }\r\n };\r\n return GestureMgr;\r\n }());\r\n function dist$1(pointPair) {\r\n var dx = pointPair[1][0] - pointPair[0][0];\r\n var dy = pointPair[1][1] - pointPair[0][1];\r\n return Math.sqrt(dx * dx + dy * dy);\r\n }\r\n function center(pointPair) {\r\n return [\r\n (pointPair[0][0] + pointPair[1][0]) / 2,\r\n (pointPair[0][1] + pointPair[1][1]) / 2\r\n ];\r\n }\r\n var recognizers = {\r\n pinch: function (tracks, event) {\r\n var trackLen = tracks.length;\r\n if (!trackLen) {\r\n return;\r\n }\r\n var pinchEnd = (tracks[trackLen - 1] || {}).points;\r\n var pinchPre = (tracks[trackLen - 2] || {}).points || pinchEnd;\r\n if (pinchPre\r\n && pinchPre.length > 1\r\n && pinchEnd\r\n && pinchEnd.length > 1) {\r\n var pinchScale = dist$1(pinchEnd) / dist$1(pinchPre);\r\n !isFinite(pinchScale) && (pinchScale = 1);\r\n event.pinchScale = pinchScale;\r\n var pinchCenter = center(pinchEnd);\r\n event.pinchX = pinchCenter[0];\r\n event.pinchY = pinchCenter[1];\r\n return {\r\n type: 'pinch',\r\n target: tracks[0].target,\r\n event: event\r\n };\r\n }\r\n }\r\n };\n\n var SILENT = 'silent';\r\n function makeEventPacket(eveType, targetInfo, event) {\r\n return {\r\n type: eveType,\r\n event: event,\r\n target: targetInfo.target,\r\n topTarget: targetInfo.topTarget,\r\n cancelBubble: false,\r\n offsetX: event.zrX,\r\n offsetY: event.zrY,\r\n gestureEvent: event.gestureEvent,\r\n pinchX: event.pinchX,\r\n pinchY: event.pinchY,\r\n pinchScale: event.pinchScale,\r\n wheelDelta: event.zrDelta,\r\n zrByTouch: event.zrByTouch,\r\n which: event.which,\r\n stop: stopEvent\r\n };\r\n }\r\n function stopEvent() {\r\n stop(this.event);\r\n }\r\n var EmptyProxy = (function (_super) {\r\n __extends(EmptyProxy, _super);\r\n function EmptyProxy() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.handler = null;\r\n return _this;\r\n }\r\n EmptyProxy.prototype.dispose = function () { };\r\n EmptyProxy.prototype.setCursor = function () { };\r\n return EmptyProxy;\r\n }(Eventful));\r\n var HoveredResult = (function () {\r\n function HoveredResult(x, y) {\r\n this.x = x;\r\n this.y = y;\r\n }\r\n return HoveredResult;\r\n }());\r\n var handlerNames = [\r\n 'click', 'dblclick', 'mousewheel', 'mouseout',\r\n 'mouseup', 'mousedown', 'mousemove', 'contextmenu'\r\n ];\r\n var Handler = (function (_super) {\r\n __extends(Handler, _super);\r\n function Handler(storage, painter, proxy, painterRoot) {\r\n var _this = _super.call(this) || this;\r\n _this._hovered = new HoveredResult(0, 0);\r\n _this.storage = storage;\r\n _this.painter = painter;\r\n _this.painterRoot = painterRoot;\r\n proxy = proxy || new EmptyProxy();\r\n _this.proxy = null;\r\n _this.setHandlerProxy(proxy);\r\n _this._draggingMgr = new Draggable(_this);\r\n return _this;\r\n }\r\n Handler.prototype.setHandlerProxy = function (proxy) {\r\n if (this.proxy) {\r\n this.proxy.dispose();\r\n }\r\n if (proxy) {\r\n each(handlerNames, function (name) {\r\n proxy.on && proxy.on(name, this[name], this);\r\n }, this);\r\n proxy.handler = this;\r\n }\r\n this.proxy = proxy;\r\n };\r\n Handler.prototype.mousemove = function (event) {\r\n var x = event.zrX;\r\n var y = event.zrY;\r\n var isOutside = isOutsideBoundary(this, x, y);\r\n var lastHovered = this._hovered;\r\n var lastHoveredTarget = lastHovered.target;\r\n if (lastHoveredTarget && !lastHoveredTarget.__zr) {\r\n lastHovered = this.findHover(lastHovered.x, lastHovered.y);\r\n lastHoveredTarget = lastHovered.target;\r\n }\r\n var hovered = this._hovered = isOutside ? new HoveredResult(x, y) : this.findHover(x, y);\r\n var hoveredTarget = hovered.target;\r\n var proxy = this.proxy;\r\n proxy.setCursor && proxy.setCursor(hoveredTarget ? hoveredTarget.cursor : 'default');\r\n if (lastHoveredTarget && hoveredTarget !== lastHoveredTarget) {\r\n this.dispatchToElement(lastHovered, 'mouseout', event);\r\n }\r\n this.dispatchToElement(hovered, 'mousemove', event);\r\n if (hoveredTarget && hoveredTarget !== lastHoveredTarget) {\r\n this.dispatchToElement(hovered, 'mouseover', event);\r\n }\r\n };\r\n Handler.prototype.mouseout = function (event) {\r\n var eventControl = event.zrEventControl;\r\n var zrIsToLocalDOM = event.zrIsToLocalDOM;\r\n if (eventControl !== 'only_globalout') {\r\n this.dispatchToElement(this._hovered, 'mouseout', event);\r\n }\r\n if (eventControl !== 'no_globalout') {\r\n !zrIsToLocalDOM && this.trigger('globalout', { type: 'globalout', event: event });\r\n }\r\n };\r\n Handler.prototype.resize = function () {\r\n this._hovered = new HoveredResult(0, 0);\r\n };\r\n Handler.prototype.dispatch = function (eventName, eventArgs) {\r\n var handler = this[eventName];\r\n handler && handler.call(this, eventArgs);\r\n };\r\n Handler.prototype.dispose = function () {\r\n this.proxy.dispose();\r\n this.storage = null;\r\n this.proxy = null;\r\n this.painter = null;\r\n };\r\n Handler.prototype.setCursorStyle = function (cursorStyle) {\r\n var proxy = this.proxy;\r\n proxy.setCursor && proxy.setCursor(cursorStyle);\r\n };\r\n Handler.prototype.dispatchToElement = function (targetInfo, eventName, event) {\r\n targetInfo = targetInfo || {};\r\n var el = targetInfo.target;\r\n if (el && el.silent) {\r\n return;\r\n }\r\n var eventKey = ('on' + eventName);\r\n var eventPacket = makeEventPacket(eventName, targetInfo, event);\r\n while (el) {\r\n el[eventKey]\r\n && (eventPacket.cancelBubble = !!el[eventKey].call(el, eventPacket));\r\n el.trigger(eventName, eventPacket);\r\n el = el.__hostTarget ? el.__hostTarget : el.parent;\r\n if (eventPacket.cancelBubble) {\r\n break;\r\n }\r\n }\r\n if (!eventPacket.cancelBubble) {\r\n this.trigger(eventName, eventPacket);\r\n if (this.painter && this.painter.eachOtherLayer) {\r\n this.painter.eachOtherLayer(function (layer) {\r\n if (typeof (layer[eventKey]) === 'function') {\r\n layer[eventKey].call(layer, eventPacket);\r\n }\r\n if (layer.trigger) {\r\n layer.trigger(eventName, eventPacket);\r\n }\r\n });\r\n }\r\n }\r\n };\r\n Handler.prototype.findHover = function (x, y, exclude) {\r\n var list = this.storage.getDisplayList();\r\n var out = new HoveredResult(x, y);\r\n for (var i = list.length - 1; i >= 0; i--) {\r\n var hoverCheckResult = void 0;\r\n if (list[i] !== exclude\r\n && !list[i].ignore\r\n && (hoverCheckResult = isHover(list[i], x, y))) {\r\n !out.topTarget && (out.topTarget = list[i]);\r\n if (hoverCheckResult !== SILENT) {\r\n out.target = list[i];\r\n break;\r\n }\r\n }\r\n }\r\n return out;\r\n };\r\n Handler.prototype.processGesture = function (event, stage) {\r\n if (!this._gestureMgr) {\r\n this._gestureMgr = new GestureMgr();\r\n }\r\n var gestureMgr = this._gestureMgr;\r\n stage === 'start' && gestureMgr.clear();\r\n var gestureInfo = gestureMgr.recognize(event, this.findHover(event.zrX, event.zrY, null).target, this.proxy.dom);\r\n stage === 'end' && gestureMgr.clear();\r\n if (gestureInfo) {\r\n var type = gestureInfo.type;\r\n event.gestureEvent = type;\r\n var res = new HoveredResult();\r\n res.target = gestureInfo.target;\r\n this.dispatchToElement(res, type, gestureInfo.event);\r\n }\r\n };\r\n return Handler;\r\n }(Eventful));\r\n each(['click', 'mousedown', 'mouseup', 'mousewheel', 'dblclick', 'contextmenu'], function (name) {\r\n Handler.prototype[name] = function (event) {\r\n var x = event.zrX;\r\n var y = event.zrY;\r\n var isOutside = isOutsideBoundary(this, x, y);\r\n var hovered;\r\n var hoveredTarget;\r\n if (name !== 'mouseup' || !isOutside) {\r\n hovered = this.findHover(x, y);\r\n hoveredTarget = hovered.target;\r\n }\r\n if (name === 'mousedown') {\r\n this._downEl = hoveredTarget;\r\n this._downPoint = [event.zrX, event.zrY];\r\n this._upEl = hoveredTarget;\r\n }\r\n else if (name === 'mouseup') {\r\n this._upEl = hoveredTarget;\r\n }\r\n else if (name === 'click') {\r\n if (this._downEl !== this._upEl\r\n || !this._downPoint\r\n || dist(this._downPoint, [event.zrX, event.zrY]) > 4) {\r\n return;\r\n }\r\n this._downPoint = null;\r\n }\r\n this.dispatchToElement(hovered, name, event);\r\n };\r\n });\r\n function isHover(displayable, x, y) {\r\n if (displayable[displayable.rectHover ? 'rectContain' : 'contain'](x, y)) {\r\n var el = displayable;\r\n var isSilent = void 0;\r\n var ignoreClip = false;\r\n while (el) {\r\n if (el.ignoreClip) {\r\n ignoreClip = true;\r\n }\r\n if (!ignoreClip) {\r\n var clipPath = el.getClipPath();\r\n if (clipPath && !clipPath.contain(x, y)) {\r\n return false;\r\n }\r\n if (el.silent) {\r\n isSilent = true;\r\n }\r\n }\r\n var hostEl = el.__hostTarget;\r\n el = hostEl ? hostEl : el.parent;\r\n }\r\n return isSilent ? SILENT : true;\r\n }\r\n return false;\r\n }\r\n function isOutsideBoundary(handlerInstance, x, y) {\r\n var painter = handlerInstance.painter;\r\n return x < 0 || x > painter.getWidth() || y < 0 || y > painter.getHeight();\r\n }\n\n function create$1() {\r\n return [1, 0, 0, 1, 0, 0];\r\n }\r\n function identity(out) {\r\n out[0] = 1;\r\n out[1] = 0;\r\n out[2] = 0;\r\n out[3] = 1;\r\n out[4] = 0;\r\n out[5] = 0;\r\n return out;\r\n }\r\n function copy$1(out, m) {\r\n out[0] = m[0];\r\n out[1] = m[1];\r\n out[2] = m[2];\r\n out[3] = m[3];\r\n out[4] = m[4];\r\n out[5] = m[5];\r\n return out;\r\n }\r\n function mul$1(out, m1, m2) {\r\n var out0 = m1[0] * m2[0] + m1[2] * m2[1];\r\n var out1 = m1[1] * m2[0] + m1[3] * m2[1];\r\n var out2 = m1[0] * m2[2] + m1[2] * m2[3];\r\n var out3 = m1[1] * m2[2] + m1[3] * m2[3];\r\n var out4 = m1[0] * m2[4] + m1[2] * m2[5] + m1[4];\r\n var out5 = m1[1] * m2[4] + m1[3] * m2[5] + m1[5];\r\n out[0] = out0;\r\n out[1] = out1;\r\n out[2] = out2;\r\n out[3] = out3;\r\n out[4] = out4;\r\n out[5] = out5;\r\n return out;\r\n }\r\n function translate(out, a, v) {\r\n out[0] = a[0];\r\n out[1] = a[1];\r\n out[2] = a[2];\r\n out[3] = a[3];\r\n out[4] = a[4] + v[0];\r\n out[5] = a[5] + v[1];\r\n return out;\r\n }\r\n function rotate(out, a, rad) {\r\n var aa = a[0];\r\n var ac = a[2];\r\n var atx = a[4];\r\n var ab = a[1];\r\n var ad = a[3];\r\n var aty = a[5];\r\n var st = Math.sin(rad);\r\n var ct = Math.cos(rad);\r\n out[0] = aa * ct + ab * st;\r\n out[1] = -aa * st + ab * ct;\r\n out[2] = ac * ct + ad * st;\r\n out[3] = -ac * st + ct * ad;\r\n out[4] = ct * atx + st * aty;\r\n out[5] = ct * aty - st * atx;\r\n return out;\r\n }\r\n function scale$1(out, a, v) {\r\n var vx = v[0];\r\n var vy = v[1];\r\n out[0] = a[0] * vx;\r\n out[1] = a[1] * vy;\r\n out[2] = a[2] * vx;\r\n out[3] = a[3] * vy;\r\n out[4] = a[4] * vx;\r\n out[5] = a[5] * vy;\r\n return out;\r\n }\r\n function invert(out, a) {\r\n var aa = a[0];\r\n var ac = a[2];\r\n var atx = a[4];\r\n var ab = a[1];\r\n var ad = a[3];\r\n var aty = a[5];\r\n var det = aa * ad - ab * ac;\r\n if (!det) {\r\n return null;\r\n }\r\n det = 1.0 / det;\r\n out[0] = ad * det;\r\n out[1] = -ab * det;\r\n out[2] = -ac * det;\r\n out[3] = aa * det;\r\n out[4] = (ac * aty - ad * atx) * det;\r\n out[5] = (ab * atx - aa * aty) * det;\r\n return out;\r\n }\r\n function clone$2(a) {\r\n var b = create$1();\r\n copy$1(b, a);\r\n return b;\r\n }\n\n var matrix = /*#__PURE__*/Object.freeze({\n __proto__: null,\n create: create$1,\n identity: identity,\n copy: copy$1,\n mul: mul$1,\n translate: translate,\n rotate: rotate,\n scale: scale$1,\n invert: invert,\n clone: clone$2\n });\n\n var mIdentity = identity;\r\n var EPSILON = 5e-5;\r\n function isNotAroundZero(val) {\r\n return val > EPSILON || val < -EPSILON;\r\n }\r\n var scaleTmp = [];\r\n var tmpTransform = [];\r\n var originTransform = create$1();\r\n var abs = Math.abs;\r\n var Transformable = (function () {\r\n function Transformable() {\r\n }\r\n Transformable.prototype.setPosition = function (arr) {\r\n this.x = arr[0];\r\n this.y = arr[1];\r\n };\r\n Transformable.prototype.setScale = function (arr) {\r\n this.scaleX = arr[0];\r\n this.scaleY = arr[1];\r\n };\r\n Transformable.prototype.setOrigin = function (arr) {\r\n this.originX = arr[0];\r\n this.originY = arr[1];\r\n };\r\n Transformable.prototype.needLocalTransform = function () {\r\n return isNotAroundZero(this.rotation)\r\n || isNotAroundZero(this.x)\r\n || isNotAroundZero(this.y)\r\n || isNotAroundZero(this.scaleX - 1)\r\n || isNotAroundZero(this.scaleY - 1);\r\n };\r\n Transformable.prototype.updateTransform = function () {\r\n var parent = this.parent;\r\n var parentHasTransform = parent && parent.transform;\r\n var needLocalTransform = this.needLocalTransform();\r\n var m = this.transform;\r\n if (!(needLocalTransform || parentHasTransform)) {\r\n m && mIdentity(m);\r\n return;\r\n }\r\n m = m || create$1();\r\n if (needLocalTransform) {\r\n this.getLocalTransform(m);\r\n }\r\n else {\r\n mIdentity(m);\r\n }\r\n if (parentHasTransform) {\r\n if (needLocalTransform) {\r\n mul$1(m, parent.transform, m);\r\n }\r\n else {\r\n copy$1(m, parent.transform);\r\n }\r\n }\r\n this.transform = m;\r\n this._resolveGlobalScaleRatio(m);\r\n };\r\n Transformable.prototype._resolveGlobalScaleRatio = function (m) {\r\n var globalScaleRatio = this.globalScaleRatio;\r\n if (globalScaleRatio != null && globalScaleRatio !== 1) {\r\n this.getGlobalScale(scaleTmp);\r\n var relX = scaleTmp[0] < 0 ? -1 : 1;\r\n var relY = scaleTmp[1] < 0 ? -1 : 1;\r\n var sx = ((scaleTmp[0] - relX) * globalScaleRatio + relX) / scaleTmp[0] || 0;\r\n var sy = ((scaleTmp[1] - relY) * globalScaleRatio + relY) / scaleTmp[1] || 0;\r\n m[0] *= sx;\r\n m[1] *= sx;\r\n m[2] *= sy;\r\n m[3] *= sy;\r\n }\r\n this.invTransform = this.invTransform || create$1();\r\n invert(this.invTransform, m);\r\n };\r\n Transformable.prototype.getLocalTransform = function (m) {\r\n return Transformable.getLocalTransform(this, m);\r\n };\r\n Transformable.prototype.getComputedTransform = function () {\r\n var transformNode = this;\r\n var ancestors = [];\r\n while (transformNode) {\r\n ancestors.push(transformNode);\r\n transformNode = transformNode.parent;\r\n }\r\n while (transformNode = ancestors.pop()) {\r\n transformNode.updateTransform();\r\n }\r\n return this.transform;\r\n };\r\n Transformable.prototype.setLocalTransform = function (m) {\r\n if (!m) {\r\n return;\r\n }\r\n var sx = m[0] * m[0] + m[1] * m[1];\r\n var sy = m[2] * m[2] + m[3] * m[3];\r\n if (isNotAroundZero(sx - 1)) {\r\n sx = Math.sqrt(sx);\r\n }\r\n if (isNotAroundZero(sy - 1)) {\r\n sy = Math.sqrt(sy);\r\n }\r\n if (m[0] < 0) {\r\n sx = -sx;\r\n }\r\n if (m[3] < 0) {\r\n sy = -sy;\r\n }\r\n this.rotation = Math.atan2(-m[1] / sy, m[0] / sx);\r\n if (sx < 0 && sy < 0) {\r\n this.rotation += Math.PI;\r\n sx = -sx;\r\n sy = -sy;\r\n }\r\n this.x = m[4];\r\n this.y = m[5];\r\n this.scaleX = sx;\r\n this.scaleY = sy;\r\n };\r\n Transformable.prototype.decomposeTransform = function () {\r\n if (!this.transform) {\r\n return;\r\n }\r\n var parent = this.parent;\r\n var m = this.transform;\r\n if (parent && parent.transform) {\r\n mul$1(tmpTransform, parent.invTransform, m);\r\n m = tmpTransform;\r\n }\r\n var ox = this.originX;\r\n var oy = this.originY;\r\n if (ox || oy) {\r\n originTransform[4] = ox;\r\n originTransform[5] = oy;\r\n mul$1(tmpTransform, m, originTransform);\r\n tmpTransform[4] -= ox;\r\n tmpTransform[5] -= oy;\r\n m = tmpTransform;\r\n }\r\n this.setLocalTransform(m);\r\n };\r\n Transformable.prototype.getGlobalScale = function (out) {\r\n var m = this.transform;\r\n out = out || [];\r\n if (!m) {\r\n out[0] = 1;\r\n out[1] = 1;\r\n return out;\r\n }\r\n out[0] = Math.sqrt(m[0] * m[0] + m[1] * m[1]);\r\n out[1] = Math.sqrt(m[2] * m[2] + m[3] * m[3]);\r\n if (m[0] < 0) {\r\n out[0] = -out[0];\r\n }\r\n if (m[3] < 0) {\r\n out[1] = -out[1];\r\n }\r\n return out;\r\n };\r\n Transformable.prototype.transformCoordToLocal = function (x, y) {\r\n var v2 = [x, y];\r\n var invTransform = this.invTransform;\r\n if (invTransform) {\r\n applyTransform(v2, v2, invTransform);\r\n }\r\n return v2;\r\n };\r\n Transformable.prototype.transformCoordToGlobal = function (x, y) {\r\n var v2 = [x, y];\r\n var transform = this.transform;\r\n if (transform) {\r\n applyTransform(v2, v2, transform);\r\n }\r\n return v2;\r\n };\r\n Transformable.prototype.getLineScale = function () {\r\n var m = this.transform;\r\n return m && abs(m[0] - 1) > 1e-10 && abs(m[3] - 1) > 1e-10\r\n ? Math.sqrt(abs(m[0] * m[3] - m[2] * m[1]))\r\n : 1;\r\n };\r\n Transformable.getLocalTransform = function (target, m) {\r\n m = m || [];\r\n mIdentity(m);\r\n var ox = target.originX || 0;\r\n var oy = target.originY || 0;\r\n var sx = target.scaleX;\r\n var sy = target.scaleY;\r\n var rotation = target.rotation || 0;\r\n var x = target.x;\r\n var y = target.y;\r\n m[4] -= ox;\r\n m[5] -= oy;\r\n m[0] *= sx;\r\n m[1] *= sy;\r\n m[2] *= sx;\r\n m[3] *= sy;\r\n m[4] *= sx;\r\n m[5] *= sy;\r\n if (rotation) {\r\n rotate(m, m, rotation);\r\n }\r\n m[4] += ox;\r\n m[5] += oy;\r\n m[4] += x;\r\n m[5] += y;\r\n return m;\r\n };\r\n Transformable.initDefaultProps = (function () {\r\n var proto = Transformable.prototype;\r\n proto.x = 0;\r\n proto.y = 0;\r\n proto.scaleX = 1;\r\n proto.scaleY = 1;\r\n proto.originX = 0;\r\n proto.originY = 0;\r\n proto.rotation = 0;\r\n proto.globalScaleRatio = 1;\r\n })();\r\n return Transformable;\r\n }());\n\n var easing = {\r\n linear: function (k) {\r\n return k;\r\n },\r\n quadraticIn: function (k) {\r\n return k * k;\r\n },\r\n quadraticOut: function (k) {\r\n return k * (2 - k);\r\n },\r\n quadraticInOut: function (k) {\r\n if ((k *= 2) < 1) {\r\n return 0.5 * k * k;\r\n }\r\n return -0.5 * (--k * (k - 2) - 1);\r\n },\r\n cubicIn: function (k) {\r\n return k * k * k;\r\n },\r\n cubicOut: function (k) {\r\n return --k * k * k + 1;\r\n },\r\n cubicInOut: function (k) {\r\n if ((k *= 2) < 1) {\r\n return 0.5 * k * k * k;\r\n }\r\n return 0.5 * ((k -= 2) * k * k + 2);\r\n },\r\n quarticIn: function (k) {\r\n return k * k * k * k;\r\n },\r\n quarticOut: function (k) {\r\n return 1 - (--k * k * k * k);\r\n },\r\n quarticInOut: function (k) {\r\n if ((k *= 2) < 1) {\r\n return 0.5 * k * k * k * k;\r\n }\r\n return -0.5 * ((k -= 2) * k * k * k - 2);\r\n },\r\n quinticIn: function (k) {\r\n return k * k * k * k * k;\r\n },\r\n quinticOut: function (k) {\r\n return --k * k * k * k * k + 1;\r\n },\r\n quinticInOut: function (k) {\r\n if ((k *= 2) < 1) {\r\n return 0.5 * k * k * k * k * k;\r\n }\r\n return 0.5 * ((k -= 2) * k * k * k * k + 2);\r\n },\r\n sinusoidalIn: function (k) {\r\n return 1 - Math.cos(k * Math.PI / 2);\r\n },\r\n sinusoidalOut: function (k) {\r\n return Math.sin(k * Math.PI / 2);\r\n },\r\n sinusoidalInOut: function (k) {\r\n return 0.5 * (1 - Math.cos(Math.PI * k));\r\n },\r\n exponentialIn: function (k) {\r\n return k === 0 ? 0 : Math.pow(1024, k - 1);\r\n },\r\n exponentialOut: function (k) {\r\n return k === 1 ? 1 : 1 - Math.pow(2, -10 * k);\r\n },\r\n exponentialInOut: function (k) {\r\n if (k === 0) {\r\n return 0;\r\n }\r\n if (k === 1) {\r\n return 1;\r\n }\r\n if ((k *= 2) < 1) {\r\n return 0.5 * Math.pow(1024, k - 1);\r\n }\r\n return 0.5 * (-Math.pow(2, -10 * (k - 1)) + 2);\r\n },\r\n circularIn: function (k) {\r\n return 1 - Math.sqrt(1 - k * k);\r\n },\r\n circularOut: function (k) {\r\n return Math.sqrt(1 - (--k * k));\r\n },\r\n circularInOut: function (k) {\r\n if ((k *= 2) < 1) {\r\n return -0.5 * (Math.sqrt(1 - k * k) - 1);\r\n }\r\n return 0.5 * (Math.sqrt(1 - (k -= 2) * k) + 1);\r\n },\r\n elasticIn: function (k) {\r\n var s;\r\n var a = 0.1;\r\n var p = 0.4;\r\n if (k === 0) {\r\n return 0;\r\n }\r\n if (k === 1) {\r\n return 1;\r\n }\r\n if (!a || a < 1) {\r\n a = 1;\r\n s = p / 4;\r\n }\r\n else {\r\n s = p * Math.asin(1 / a) / (2 * Math.PI);\r\n }\r\n return -(a * Math.pow(2, 10 * (k -= 1))\r\n * Math.sin((k - s) * (2 * Math.PI) / p));\r\n },\r\n elasticOut: function (k) {\r\n var s;\r\n var a = 0.1;\r\n var p = 0.4;\r\n if (k === 0) {\r\n return 0;\r\n }\r\n if (k === 1) {\r\n return 1;\r\n }\r\n if (!a || a < 1) {\r\n a = 1;\r\n s = p / 4;\r\n }\r\n else {\r\n s = p * Math.asin(1 / a) / (2 * Math.PI);\r\n }\r\n return (a * Math.pow(2, -10 * k)\r\n * Math.sin((k - s) * (2 * Math.PI) / p) + 1);\r\n },\r\n elasticInOut: function (k) {\r\n var s;\r\n var a = 0.1;\r\n var p = 0.4;\r\n if (k === 0) {\r\n return 0;\r\n }\r\n if (k === 1) {\r\n return 1;\r\n }\r\n if (!a || a < 1) {\r\n a = 1;\r\n s = p / 4;\r\n }\r\n else {\r\n s = p * Math.asin(1 / a) / (2 * Math.PI);\r\n }\r\n if ((k *= 2) < 1) {\r\n return -0.5 * (a * Math.pow(2, 10 * (k -= 1))\r\n * Math.sin((k - s) * (2 * Math.PI) / p));\r\n }\r\n return a * Math.pow(2, -10 * (k -= 1))\r\n * Math.sin((k - s) * (2 * Math.PI) / p) * 0.5 + 1;\r\n },\r\n backIn: function (k) {\r\n var s = 1.70158;\r\n return k * k * ((s + 1) * k - s);\r\n },\r\n backOut: function (k) {\r\n var s = 1.70158;\r\n return --k * k * ((s + 1) * k + s) + 1;\r\n },\r\n backInOut: function (k) {\r\n var s = 1.70158 * 1.525;\r\n if ((k *= 2) < 1) {\r\n return 0.5 * (k * k * ((s + 1) * k - s));\r\n }\r\n return 0.5 * ((k -= 2) * k * ((s + 1) * k + s) + 2);\r\n },\r\n bounceIn: function (k) {\r\n return 1 - easing.bounceOut(1 - k);\r\n },\r\n bounceOut: function (k) {\r\n if (k < (1 / 2.75)) {\r\n return 7.5625 * k * k;\r\n }\r\n else if (k < (2 / 2.75)) {\r\n return 7.5625 * (k -= (1.5 / 2.75)) * k + 0.75;\r\n }\r\n else if (k < (2.5 / 2.75)) {\r\n return 7.5625 * (k -= (2.25 / 2.75)) * k + 0.9375;\r\n }\r\n else {\r\n return 7.5625 * (k -= (2.625 / 2.75)) * k + 0.984375;\r\n }\r\n },\r\n bounceInOut: function (k) {\r\n if (k < 0.5) {\r\n return easing.bounceIn(k * 2) * 0.5;\r\n }\r\n return easing.bounceOut(k * 2 - 1) * 0.5 + 0.5;\r\n }\r\n };\n\n var Clip = (function () {\r\n function Clip(opts) {\r\n this._initialized = false;\r\n this._startTime = 0;\r\n this._pausedTime = 0;\r\n this._paused = false;\r\n this._life = opts.life || 1000;\r\n this._delay = opts.delay || 0;\r\n this.loop = opts.loop == null ? false : opts.loop;\r\n this.gap = opts.gap || 0;\r\n this.easing = opts.easing || 'linear';\r\n this.onframe = opts.onframe;\r\n this.ondestroy = opts.ondestroy;\r\n this.onrestart = opts.onrestart;\r\n }\r\n Clip.prototype.step = function (globalTime, deltaTime) {\r\n if (!this._initialized) {\r\n this._startTime = globalTime + this._delay;\r\n this._initialized = true;\r\n }\r\n if (this._paused) {\r\n this._pausedTime += deltaTime;\r\n return;\r\n }\r\n var percent = (globalTime - this._startTime - this._pausedTime) / this._life;\r\n if (percent < 0) {\r\n percent = 0;\r\n }\r\n percent = Math.min(percent, 1);\r\n var easing$1 = this.easing;\r\n var easingFunc = typeof easing$1 === 'string'\r\n ? easing[easing$1] : easing$1;\r\n var schedule = typeof easingFunc === 'function'\r\n ? easingFunc(percent)\r\n : percent;\r\n this.onframe && this.onframe(schedule);\r\n if (percent === 1) {\r\n if (this.loop) {\r\n this._restart(globalTime);\r\n this.onrestart && this.onrestart();\r\n }\r\n else {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n Clip.prototype._restart = function (globalTime) {\r\n var remainder = (globalTime - this._startTime - this._pausedTime) % this._life;\r\n this._startTime = globalTime - remainder + this.gap;\r\n this._pausedTime = 0;\r\n };\r\n Clip.prototype.pause = function () {\r\n this._paused = true;\r\n };\r\n Clip.prototype.resume = function () {\r\n this._paused = false;\r\n };\r\n return Clip;\r\n }());\n\n var Entry = (function () {\r\n function Entry(val) {\r\n this.value = val;\r\n }\r\n return Entry;\r\n }());\r\n var LinkedList = (function () {\r\n function LinkedList() {\r\n this._len = 0;\r\n }\r\n LinkedList.prototype.insert = function (val) {\r\n var entry = new Entry(val);\r\n this.insertEntry(entry);\r\n return entry;\r\n };\r\n LinkedList.prototype.insertEntry = function (entry) {\r\n if (!this.head) {\r\n this.head = this.tail = entry;\r\n }\r\n else {\r\n this.tail.next = entry;\r\n entry.prev = this.tail;\r\n entry.next = null;\r\n this.tail = entry;\r\n }\r\n this._len++;\r\n };\r\n LinkedList.prototype.remove = function (entry) {\r\n var prev = entry.prev;\r\n var next = entry.next;\r\n if (prev) {\r\n prev.next = next;\r\n }\r\n else {\r\n this.head = next;\r\n }\r\n if (next) {\r\n next.prev = prev;\r\n }\r\n else {\r\n this.tail = prev;\r\n }\r\n entry.next = entry.prev = null;\r\n this._len--;\r\n };\r\n LinkedList.prototype.len = function () {\r\n return this._len;\r\n };\r\n LinkedList.prototype.clear = function () {\r\n this.head = this.tail = null;\r\n this._len = 0;\r\n };\r\n return LinkedList;\r\n }());\r\n var LRU = (function () {\r\n function LRU(maxSize) {\r\n this._list = new LinkedList();\r\n this._maxSize = 10;\r\n this._map = {};\r\n this._maxSize = maxSize;\r\n }\r\n LRU.prototype.put = function (key, value) {\r\n var list = this._list;\r\n var map = this._map;\r\n var removed = null;\r\n if (map[key] == null) {\r\n var len = list.len();\r\n var entry = this._lastRemovedEntry;\r\n if (len >= this._maxSize && len > 0) {\r\n var leastUsedEntry = list.head;\r\n list.remove(leastUsedEntry);\r\n delete map[leastUsedEntry.key];\r\n removed = leastUsedEntry.value;\r\n this._lastRemovedEntry = leastUsedEntry;\r\n }\r\n if (entry) {\r\n entry.value = value;\r\n }\r\n else {\r\n entry = new Entry(value);\r\n }\r\n entry.key = key;\r\n list.insertEntry(entry);\r\n map[key] = entry;\r\n }\r\n return removed;\r\n };\r\n LRU.prototype.get = function (key) {\r\n var entry = this._map[key];\r\n var list = this._list;\r\n if (entry != null) {\r\n if (entry !== list.tail) {\r\n list.remove(entry);\r\n list.insertEntry(entry);\r\n }\r\n return entry.value;\r\n }\r\n };\r\n LRU.prototype.clear = function () {\r\n this._list.clear();\r\n this._map = {};\r\n };\r\n LRU.prototype.len = function () {\r\n return this._list.len();\r\n };\r\n return LRU;\r\n }());\n\n var kCSSColorTable = {\r\n 'transparent': [0, 0, 0, 0], 'aliceblue': [240, 248, 255, 1],\r\n 'antiquewhite': [250, 235, 215, 1], 'aqua': [0, 255, 255, 1],\r\n 'aquamarine': [127, 255, 212, 1], 'azure': [240, 255, 255, 1],\r\n 'beige': [245, 245, 220, 1], 'bisque': [255, 228, 196, 1],\r\n 'black': [0, 0, 0, 1], 'blanchedalmond': [255, 235, 205, 1],\r\n 'blue': [0, 0, 255, 1], 'blueviolet': [138, 43, 226, 1],\r\n 'brown': [165, 42, 42, 1], 'burlywood': [222, 184, 135, 1],\r\n 'cadetblue': [95, 158, 160, 1], 'chartreuse': [127, 255, 0, 1],\r\n 'chocolate': [210, 105, 30, 1], 'coral': [255, 127, 80, 1],\r\n 'cornflowerblue': [100, 149, 237, 1], 'cornsilk': [255, 248, 220, 1],\r\n 'crimson': [220, 20, 60, 1], 'cyan': [0, 255, 255, 1],\r\n 'darkblue': [0, 0, 139, 1], 'darkcyan': [0, 139, 139, 1],\r\n 'darkgoldenrod': [184, 134, 11, 1], 'darkgray': [169, 169, 169, 1],\r\n 'darkgreen': [0, 100, 0, 1], 'darkgrey': [169, 169, 169, 1],\r\n 'darkkhaki': [189, 183, 107, 1], 'darkmagenta': [139, 0, 139, 1],\r\n 'darkolivegreen': [85, 107, 47, 1], 'darkorange': [255, 140, 0, 1],\r\n 'darkorchid': [153, 50, 204, 1], 'darkred': [139, 0, 0, 1],\r\n 'darksalmon': [233, 150, 122, 1], 'darkseagreen': [143, 188, 143, 1],\r\n 'darkslateblue': [72, 61, 139, 1], 'darkslategray': [47, 79, 79, 1],\r\n 'darkslategrey': [47, 79, 79, 1], 'darkturquoise': [0, 206, 209, 1],\r\n 'darkviolet': [148, 0, 211, 1], 'deeppink': [255, 20, 147, 1],\r\n 'deepskyblue': [0, 191, 255, 1], 'dimgray': [105, 105, 105, 1],\r\n 'dimgrey': [105, 105, 105, 1], 'dodgerblue': [30, 144, 255, 1],\r\n 'firebrick': [178, 34, 34, 1], 'floralwhite': [255, 250, 240, 1],\r\n 'forestgreen': [34, 139, 34, 1], 'fuchsia': [255, 0, 255, 1],\r\n 'gainsboro': [220, 220, 220, 1], 'ghostwhite': [248, 248, 255, 1],\r\n 'gold': [255, 215, 0, 1], 'goldenrod': [218, 165, 32, 1],\r\n 'gray': [128, 128, 128, 1], 'green': [0, 128, 0, 1],\r\n 'greenyellow': [173, 255, 47, 1], 'grey': [128, 128, 128, 1],\r\n 'honeydew': [240, 255, 240, 1], 'hotpink': [255, 105, 180, 1],\r\n 'indianred': [205, 92, 92, 1], 'indigo': [75, 0, 130, 1],\r\n 'ivory': [255, 255, 240, 1], 'khaki': [240, 230, 140, 1],\r\n 'lavender': [230, 230, 250, 1], 'lavenderblush': [255, 240, 245, 1],\r\n 'lawngreen': [124, 252, 0, 1], 'lemonchiffon': [255, 250, 205, 1],\r\n 'lightblue': [173, 216, 230, 1], 'lightcoral': [240, 128, 128, 1],\r\n 'lightcyan': [224, 255, 255, 1], 'lightgoldenrodyellow': [250, 250, 210, 1],\r\n 'lightgray': [211, 211, 211, 1], 'lightgreen': [144, 238, 144, 1],\r\n 'lightgrey': [211, 211, 211, 1], 'lightpink': [255, 182, 193, 1],\r\n 'lightsalmon': [255, 160, 122, 1], 'lightseagreen': [32, 178, 170, 1],\r\n 'lightskyblue': [135, 206, 250, 1], 'lightslategray': [119, 136, 153, 1],\r\n 'lightslategrey': [119, 136, 153, 1], 'lightsteelblue': [176, 196, 222, 1],\r\n 'lightyellow': [255, 255, 224, 1], 'lime': [0, 255, 0, 1],\r\n 'limegreen': [50, 205, 50, 1], 'linen': [250, 240, 230, 1],\r\n 'magenta': [255, 0, 255, 1], 'maroon': [128, 0, 0, 1],\r\n 'mediumaquamarine': [102, 205, 170, 1], 'mediumblue': [0, 0, 205, 1],\r\n 'mediumorchid': [186, 85, 211, 1], 'mediumpurple': [147, 112, 219, 1],\r\n 'mediumseagreen': [60, 179, 113, 1], 'mediumslateblue': [123, 104, 238, 1],\r\n 'mediumspringgreen': [0, 250, 154, 1], 'mediumturquoise': [72, 209, 204, 1],\r\n 'mediumvioletred': [199, 21, 133, 1], 'midnightblue': [25, 25, 112, 1],\r\n 'mintcream': [245, 255, 250, 1], 'mistyrose': [255, 228, 225, 1],\r\n 'moccasin': [255, 228, 181, 1], 'navajowhite': [255, 222, 173, 1],\r\n 'navy': [0, 0, 128, 1], 'oldlace': [253, 245, 230, 1],\r\n 'olive': [128, 128, 0, 1], 'olivedrab': [107, 142, 35, 1],\r\n 'orange': [255, 165, 0, 1], 'orangered': [255, 69, 0, 1],\r\n 'orchid': [218, 112, 214, 1], 'palegoldenrod': [238, 232, 170, 1],\r\n 'palegreen': [152, 251, 152, 1], 'paleturquoise': [175, 238, 238, 1],\r\n 'palevioletred': [219, 112, 147, 1], 'papayawhip': [255, 239, 213, 1],\r\n 'peachpuff': [255, 218, 185, 1], 'peru': [205, 133, 63, 1],\r\n 'pink': [255, 192, 203, 1], 'plum': [221, 160, 221, 1],\r\n 'powderblue': [176, 224, 230, 1], 'purple': [128, 0, 128, 1],\r\n 'red': [255, 0, 0, 1], 'rosybrown': [188, 143, 143, 1],\r\n 'royalblue': [65, 105, 225, 1], 'saddlebrown': [139, 69, 19, 1],\r\n 'salmon': [250, 128, 114, 1], 'sandybrown': [244, 164, 96, 1],\r\n 'seagreen': [46, 139, 87, 1], 'seashell': [255, 245, 238, 1],\r\n 'sienna': [160, 82, 45, 1], 'silver': [192, 192, 192, 1],\r\n 'skyblue': [135, 206, 235, 1], 'slateblue': [106, 90, 205, 1],\r\n 'slategray': [112, 128, 144, 1], 'slategrey': [112, 128, 144, 1],\r\n 'snow': [255, 250, 250, 1], 'springgreen': [0, 255, 127, 1],\r\n 'steelblue': [70, 130, 180, 1], 'tan': [210, 180, 140, 1],\r\n 'teal': [0, 128, 128, 1], 'thistle': [216, 191, 216, 1],\r\n 'tomato': [255, 99, 71, 1], 'turquoise': [64, 224, 208, 1],\r\n 'violet': [238, 130, 238, 1], 'wheat': [245, 222, 179, 1],\r\n 'white': [255, 255, 255, 1], 'whitesmoke': [245, 245, 245, 1],\r\n 'yellow': [255, 255, 0, 1], 'yellowgreen': [154, 205, 50, 1]\r\n };\r\n function clampCssByte(i) {\r\n i = Math.round(i);\r\n return i < 0 ? 0 : i > 255 ? 255 : i;\r\n }\r\n function clampCssAngle(i) {\r\n i = Math.round(i);\r\n return i < 0 ? 0 : i > 360 ? 360 : i;\r\n }\r\n function clampCssFloat(f) {\r\n return f < 0 ? 0 : f > 1 ? 1 : f;\r\n }\r\n function parseCssInt(val) {\r\n var str = val;\r\n if (str.length && str.charAt(str.length - 1) === '%') {\r\n return clampCssByte(parseFloat(str) / 100 * 255);\r\n }\r\n return clampCssByte(parseInt(str, 10));\r\n }\r\n function parseCssFloat(val) {\r\n var str = val;\r\n if (str.length && str.charAt(str.length - 1) === '%') {\r\n return clampCssFloat(parseFloat(str) / 100);\r\n }\r\n return clampCssFloat(parseFloat(str));\r\n }\r\n function cssHueToRgb(m1, m2, h) {\r\n if (h < 0) {\r\n h += 1;\r\n }\r\n else if (h > 1) {\r\n h -= 1;\r\n }\r\n if (h * 6 < 1) {\r\n return m1 + (m2 - m1) * h * 6;\r\n }\r\n if (h * 2 < 1) {\r\n return m2;\r\n }\r\n if (h * 3 < 2) {\r\n return m1 + (m2 - m1) * (2 / 3 - h) * 6;\r\n }\r\n return m1;\r\n }\r\n function lerpNumber(a, b, p) {\r\n return a + (b - a) * p;\r\n }\r\n function setRgba(out, r, g, b, a) {\r\n out[0] = r;\r\n out[1] = g;\r\n out[2] = b;\r\n out[3] = a;\r\n return out;\r\n }\r\n function copyRgba(out, a) {\r\n out[0] = a[0];\r\n out[1] = a[1];\r\n out[2] = a[2];\r\n out[3] = a[3];\r\n return out;\r\n }\r\n var colorCache = new LRU(20);\r\n var lastRemovedArr = null;\r\n function putToCache(colorStr, rgbaArr) {\r\n if (lastRemovedArr) {\r\n copyRgba(lastRemovedArr, rgbaArr);\r\n }\r\n lastRemovedArr = colorCache.put(colorStr, lastRemovedArr || (rgbaArr.slice()));\r\n }\r\n function parse(colorStr, rgbaArr) {\r\n if (!colorStr) {\r\n return;\r\n }\r\n rgbaArr = rgbaArr || [];\r\n var cached = colorCache.get(colorStr);\r\n if (cached) {\r\n return copyRgba(rgbaArr, cached);\r\n }\r\n colorStr = colorStr + '';\r\n var str = colorStr.replace(/ /g, '').toLowerCase();\r\n if (str in kCSSColorTable) {\r\n copyRgba(rgbaArr, kCSSColorTable[str]);\r\n putToCache(colorStr, rgbaArr);\r\n return rgbaArr;\r\n }\r\n var strLen = str.length;\r\n if (str.charAt(0) === '#') {\r\n if (strLen === 4 || strLen === 5) {\r\n var iv = parseInt(str.slice(1, 4), 16);\r\n if (!(iv >= 0 && iv <= 0xfff)) {\r\n setRgba(rgbaArr, 0, 0, 0, 1);\r\n return;\r\n }\r\n setRgba(rgbaArr, ((iv & 0xf00) >> 4) | ((iv & 0xf00) >> 8), (iv & 0xf0) | ((iv & 0xf0) >> 4), (iv & 0xf) | ((iv & 0xf) << 4), strLen === 5 ? parseInt(str.slice(4), 16) / 0xf : 1);\r\n putToCache(colorStr, rgbaArr);\r\n return rgbaArr;\r\n }\r\n else if (strLen === 7 || strLen === 9) {\r\n var iv = parseInt(str.slice(1, 7), 16);\r\n if (!(iv >= 0 && iv <= 0xffffff)) {\r\n setRgba(rgbaArr, 0, 0, 0, 1);\r\n return;\r\n }\r\n setRgba(rgbaArr, (iv & 0xff0000) >> 16, (iv & 0xff00) >> 8, iv & 0xff, strLen === 9 ? parseInt(str.slice(7), 16) / 0xff : 1);\r\n putToCache(colorStr, rgbaArr);\r\n return rgbaArr;\r\n }\r\n return;\r\n }\r\n var op = str.indexOf('(');\r\n var ep = str.indexOf(')');\r\n if (op !== -1 && ep + 1 === strLen) {\r\n var fname = str.substr(0, op);\r\n var params = str.substr(op + 1, ep - (op + 1)).split(',');\r\n var alpha = 1;\r\n switch (fname) {\r\n case 'rgba':\r\n if (params.length !== 4) {\r\n return params.length === 3\r\n ? setRgba(rgbaArr, +params[0], +params[1], +params[2], 1)\r\n : setRgba(rgbaArr, 0, 0, 0, 1);\r\n }\r\n alpha = parseCssFloat(params.pop());\r\n case 'rgb':\r\n if (params.length !== 3) {\r\n setRgba(rgbaArr, 0, 0, 0, 1);\r\n return;\r\n }\r\n setRgba(rgbaArr, parseCssInt(params[0]), parseCssInt(params[1]), parseCssInt(params[2]), alpha);\r\n putToCache(colorStr, rgbaArr);\r\n return rgbaArr;\r\n case 'hsla':\r\n if (params.length !== 4) {\r\n setRgba(rgbaArr, 0, 0, 0, 1);\r\n return;\r\n }\r\n params[3] = parseCssFloat(params[3]);\r\n hsla2rgba(params, rgbaArr);\r\n putToCache(colorStr, rgbaArr);\r\n return rgbaArr;\r\n case 'hsl':\r\n if (params.length !== 3) {\r\n setRgba(rgbaArr, 0, 0, 0, 1);\r\n return;\r\n }\r\n hsla2rgba(params, rgbaArr);\r\n putToCache(colorStr, rgbaArr);\r\n return rgbaArr;\r\n default:\r\n return;\r\n }\r\n }\r\n setRgba(rgbaArr, 0, 0, 0, 1);\r\n return;\r\n }\r\n function hsla2rgba(hsla, rgba) {\r\n var h = (((parseFloat(hsla[0]) % 360) + 360) % 360) / 360;\r\n var s = parseCssFloat(hsla[1]);\r\n var l = parseCssFloat(hsla[2]);\r\n var m2 = l <= 0.5 ? l * (s + 1) : l + s - l * s;\r\n var m1 = l * 2 - m2;\r\n rgba = rgba || [];\r\n setRgba(rgba, clampCssByte(cssHueToRgb(m1, m2, h + 1 / 3) * 255), clampCssByte(cssHueToRgb(m1, m2, h) * 255), clampCssByte(cssHueToRgb(m1, m2, h - 1 / 3) * 255), 1);\r\n if (hsla.length === 4) {\r\n rgba[3] = hsla[3];\r\n }\r\n return rgba;\r\n }\r\n function rgba2hsla(rgba) {\r\n if (!rgba) {\r\n return;\r\n }\r\n var R = rgba[0] / 255;\r\n var G = rgba[1] / 255;\r\n var B = rgba[2] / 255;\r\n var vMin = Math.min(R, G, B);\r\n var vMax = Math.max(R, G, B);\r\n var delta = vMax - vMin;\r\n var L = (vMax + vMin) / 2;\r\n var H;\r\n var S;\r\n if (delta === 0) {\r\n H = 0;\r\n S = 0;\r\n }\r\n else {\r\n if (L < 0.5) {\r\n S = delta / (vMax + vMin);\r\n }\r\n else {\r\n S = delta / (2 - vMax - vMin);\r\n }\r\n var deltaR = (((vMax - R) / 6) + (delta / 2)) / delta;\r\n var deltaG = (((vMax - G) / 6) + (delta / 2)) / delta;\r\n var deltaB = (((vMax - B) / 6) + (delta / 2)) / delta;\r\n if (R === vMax) {\r\n H = deltaB - deltaG;\r\n }\r\n else if (G === vMax) {\r\n H = (1 / 3) + deltaR - deltaB;\r\n }\r\n else if (B === vMax) {\r\n H = (2 / 3) + deltaG - deltaR;\r\n }\r\n if (H < 0) {\r\n H += 1;\r\n }\r\n if (H > 1) {\r\n H -= 1;\r\n }\r\n }\r\n var hsla = [H * 360, S, L];\r\n if (rgba[3] != null) {\r\n hsla.push(rgba[3]);\r\n }\r\n return hsla;\r\n }\r\n function lift(color, level) {\r\n var colorArr = parse(color);\r\n if (colorArr) {\r\n for (var i = 0; i < 3; i++) {\r\n if (level < 0) {\r\n colorArr[i] = colorArr[i] * (1 - level) | 0;\r\n }\r\n else {\r\n colorArr[i] = ((255 - colorArr[i]) * level + colorArr[i]) | 0;\r\n }\r\n if (colorArr[i] > 255) {\r\n colorArr[i] = 255;\r\n }\r\n else if (colorArr[i] < 0) {\r\n colorArr[i] = 0;\r\n }\r\n }\r\n return stringify(colorArr, colorArr.length === 4 ? 'rgba' : 'rgb');\r\n }\r\n }\r\n function toHex(color) {\r\n var colorArr = parse(color);\r\n if (colorArr) {\r\n return ((1 << 24) + (colorArr[0] << 16) + (colorArr[1] << 8) + (+colorArr[2])).toString(16).slice(1);\r\n }\r\n }\r\n function fastLerp(normalizedValue, colors, out) {\r\n if (!(colors && colors.length)\r\n || !(normalizedValue >= 0 && normalizedValue <= 1)) {\r\n return;\r\n }\r\n out = out || [];\r\n var value = normalizedValue * (colors.length - 1);\r\n var leftIndex = Math.floor(value);\r\n var rightIndex = Math.ceil(value);\r\n var leftColor = colors[leftIndex];\r\n var rightColor = colors[rightIndex];\r\n var dv = value - leftIndex;\r\n out[0] = clampCssByte(lerpNumber(leftColor[0], rightColor[0], dv));\r\n out[1] = clampCssByte(lerpNumber(leftColor[1], rightColor[1], dv));\r\n out[2] = clampCssByte(lerpNumber(leftColor[2], rightColor[2], dv));\r\n out[3] = clampCssFloat(lerpNumber(leftColor[3], rightColor[3], dv));\r\n return out;\r\n }\r\n var fastMapToColor = fastLerp;\r\n function lerp$1(normalizedValue, colors, fullOutput) {\r\n if (!(colors && colors.length)\r\n || !(normalizedValue >= 0 && normalizedValue <= 1)) {\r\n return;\r\n }\r\n var value = normalizedValue * (colors.length - 1);\r\n var leftIndex = Math.floor(value);\r\n var rightIndex = Math.ceil(value);\r\n var leftColor = parse(colors[leftIndex]);\r\n var rightColor = parse(colors[rightIndex]);\r\n var dv = value - leftIndex;\r\n var color = stringify([\r\n clampCssByte(lerpNumber(leftColor[0], rightColor[0], dv)),\r\n clampCssByte(lerpNumber(leftColor[1], rightColor[1], dv)),\r\n clampCssByte(lerpNumber(leftColor[2], rightColor[2], dv)),\r\n clampCssFloat(lerpNumber(leftColor[3], rightColor[3], dv))\r\n ], 'rgba');\r\n return fullOutput\r\n ? {\r\n color: color,\r\n leftIndex: leftIndex,\r\n rightIndex: rightIndex,\r\n value: value\r\n }\r\n : color;\r\n }\r\n var mapToColor = lerp$1;\r\n function modifyHSL(color, h, s, l) {\r\n var colorArr = parse(color);\r\n if (color) {\r\n colorArr = rgba2hsla(colorArr);\r\n h != null && (colorArr[0] = clampCssAngle(h));\r\n s != null && (colorArr[1] = parseCssFloat(s));\r\n l != null && (colorArr[2] = parseCssFloat(l));\r\n return stringify(hsla2rgba(colorArr), 'rgba');\r\n }\r\n }\r\n function modifyAlpha(color, alpha) {\r\n var colorArr = parse(color);\r\n if (colorArr && alpha != null) {\r\n colorArr[3] = clampCssFloat(alpha);\r\n return stringify(colorArr, 'rgba');\r\n }\r\n }\r\n function stringify(arrColor, type) {\r\n if (!arrColor || !arrColor.length) {\r\n return;\r\n }\r\n var colorStr = arrColor[0] + ',' + arrColor[1] + ',' + arrColor[2];\r\n if (type === 'rgba' || type === 'hsva' || type === 'hsla') {\r\n colorStr += ',' + arrColor[3];\r\n }\r\n return type + '(' + colorStr + ')';\r\n }\r\n function lum(color, backgroundLum) {\r\n var arr = parse(color);\r\n return arr\r\n ? (0.299 * arr[0] + 0.587 * arr[1] + 0.114 * arr[2]) * arr[3] / 255\r\n + (1 - arr[3]) * backgroundLum\r\n : 0;\r\n }\r\n function random() {\r\n var r = Math.round(Math.random() * 255);\r\n var g = Math.round(Math.random() * 255);\r\n var b = Math.round(Math.random() * 255);\r\n return 'rgb(' + r + ',' + g + ',' + b + ')';\r\n }\n\n var color = /*#__PURE__*/Object.freeze({\n __proto__: null,\n parse: parse,\n lift: lift,\n toHex: toHex,\n fastLerp: fastLerp,\n fastMapToColor: fastMapToColor,\n lerp: lerp$1,\n mapToColor: mapToColor,\n modifyHSL: modifyHSL,\n modifyAlpha: modifyAlpha,\n stringify: stringify,\n lum: lum,\n random: random\n });\n\n var arraySlice = Array.prototype.slice;\r\n function interpolateNumber(p0, p1, percent) {\r\n return (p1 - p0) * percent + p0;\r\n }\r\n function step(p0, p1, percent) {\r\n return percent > 0.5 ? p1 : p0;\r\n }\r\n function interpolate1DArray(out, p0, p1, percent) {\r\n var len = p0.length;\r\n for (var i = 0; i < len; i++) {\r\n out[i] = interpolateNumber(p0[i], p1[i], percent);\r\n }\r\n }\r\n function interpolate2DArray(out, p0, p1, percent) {\r\n var len = p0.length;\r\n var len2 = len && p0[0].length;\r\n for (var i = 0; i < len; i++) {\r\n if (!out[i]) {\r\n out[i] = [];\r\n }\r\n for (var j = 0; j < len2; j++) {\r\n out[i][j] = interpolateNumber(p0[i][j], p1[i][j], percent);\r\n }\r\n }\r\n }\r\n function add1DArray(out, p0, p1, sign) {\r\n var len = p0.length;\r\n for (var i = 0; i < len; i++) {\r\n out[i] = p0[i] + p1[i] * sign;\r\n }\r\n return out;\r\n }\r\n function add2DArray(out, p0, p1, sign) {\r\n var len = p0.length;\r\n var len2 = len && p0[0].length;\r\n for (var i = 0; i < len; i++) {\r\n if (!out[i]) {\r\n out[i] = [];\r\n }\r\n for (var j = 0; j < len2; j++) {\r\n out[i][j] = p0[i][j] + p1[i][j] * sign;\r\n }\r\n }\r\n return out;\r\n }\r\n function fillArray(val0, val1, arrDim) {\r\n var arr0 = val0;\r\n var arr1 = val1;\r\n if (!arr0.push || !arr1.push) {\r\n return;\r\n }\r\n var arr0Len = arr0.length;\r\n var arr1Len = arr1.length;\r\n if (arr0Len !== arr1Len) {\r\n var isPreviousLarger = arr0Len > arr1Len;\r\n if (isPreviousLarger) {\r\n arr0.length = arr1Len;\r\n }\r\n else {\r\n for (var i = arr0Len; i < arr1Len; i++) {\r\n arr0.push(arrDim === 1 ? arr1[i] : arraySlice.call(arr1[i]));\r\n }\r\n }\r\n }\r\n var len2 = arr0[0] && arr0[0].length;\r\n for (var i = 0; i < arr0.length; i++) {\r\n if (arrDim === 1) {\r\n if (isNaN(arr0[i])) {\r\n arr0[i] = arr1[i];\r\n }\r\n }\r\n else {\r\n for (var j = 0; j < len2; j++) {\r\n if (isNaN(arr0[i][j])) {\r\n arr0[i][j] = arr1[i][j];\r\n }\r\n }\r\n }\r\n }\r\n }\r\n function is1DArraySame(arr0, arr1) {\r\n var len = arr0.length;\r\n if (len !== arr1.length) {\r\n return false;\r\n }\r\n for (var i = 0; i < len; i++) {\r\n if (arr0[i] !== arr1[i]) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n function catmullRomInterpolate(p0, p1, p2, p3, t, t2, t3) {\r\n var v0 = (p2 - p0) * 0.5;\r\n var v1 = (p3 - p1) * 0.5;\r\n return (2 * (p1 - p2) + v0 + v1) * t3\r\n + (-3 * (p1 - p2) - 2 * v0 - v1) * t2\r\n + v0 * t + p1;\r\n }\r\n function catmullRomInterpolate1DArray(out, p0, p1, p2, p3, t, t2, t3) {\r\n var len = p0.length;\r\n for (var i = 0; i < len; i++) {\r\n out[i] = catmullRomInterpolate(p0[i], p1[i], p2[i], p3[i], t, t2, t3);\r\n }\r\n }\r\n function catmullRomInterpolate2DArray(out, p0, p1, p2, p3, t, t2, t3) {\r\n var len = p0.length;\r\n var len2 = p0[0].length;\r\n for (var i = 0; i < len; i++) {\r\n if (!out[i]) {\r\n out[1] = [];\r\n }\r\n for (var j = 0; j < len2; j++) {\r\n out[i][j] = catmullRomInterpolate(p0[i][j], p1[i][j], p2[i][j], p3[i][j], t, t2, t3);\r\n }\r\n }\r\n }\r\n function cloneValue(value) {\r\n if (isArrayLike(value)) {\r\n var len = value.length;\r\n if (isArrayLike(value[0])) {\r\n var ret = [];\r\n for (var i = 0; i < len; i++) {\r\n ret.push(arraySlice.call(value[i]));\r\n }\r\n return ret;\r\n }\r\n return arraySlice.call(value);\r\n }\r\n return value;\r\n }\r\n function rgba2String(rgba) {\r\n rgba[0] = Math.floor(rgba[0]);\r\n rgba[1] = Math.floor(rgba[1]);\r\n rgba[2] = Math.floor(rgba[2]);\r\n return 'rgba(' + rgba.join(',') + ')';\r\n }\r\n function guessArrayDim(value) {\r\n return isArrayLike(value && value[0]) ? 2 : 1;\r\n }\r\n var tmpRgba = [0, 0, 0, 0];\r\n var Track = (function () {\r\n function Track(propName) {\r\n this.keyframes = [];\r\n this.maxTime = 0;\r\n this.arrDim = 0;\r\n this.interpolable = true;\r\n this._needsSort = false;\r\n this._isAllValueEqual = true;\r\n this._lastFrame = 0;\r\n this._lastFramePercent = 0;\r\n this.propName = propName;\r\n }\r\n Track.prototype.isFinished = function () {\r\n return this._finished;\r\n };\r\n Track.prototype.setFinished = function () {\r\n this._finished = true;\r\n if (this._additiveTrack) {\r\n this._additiveTrack.setFinished();\r\n }\r\n };\r\n Track.prototype.needsAnimate = function () {\r\n return !this._isAllValueEqual && this.keyframes.length >= 2 && this.interpolable;\r\n };\r\n Track.prototype.getAdditiveTrack = function () {\r\n return this._additiveTrack;\r\n };\r\n Track.prototype.addKeyframe = function (time, value) {\r\n if (time >= this.maxTime) {\r\n this.maxTime = time;\r\n }\r\n else {\r\n this._needsSort = true;\r\n }\r\n var keyframes = this.keyframes;\r\n var len = keyframes.length;\r\n if (this.interpolable) {\r\n if (isArrayLike(value)) {\r\n var arrayDim = guessArrayDim(value);\r\n if (len > 0 && this.arrDim !== arrayDim) {\r\n this.interpolable = false;\r\n return;\r\n }\r\n if (arrayDim === 1 && typeof value[0] !== 'number'\r\n || arrayDim === 2 && typeof value[0][0] !== 'number') {\r\n this.interpolable = false;\r\n return;\r\n }\r\n if (len > 0) {\r\n var lastFrame = keyframes[len - 1];\r\n if (this._isAllValueEqual) {\r\n if (arrayDim === 1) {\r\n if (!is1DArraySame(value, lastFrame.value)) {\r\n this._isAllValueEqual = false;\r\n }\r\n }\r\n else {\r\n this._isAllValueEqual = false;\r\n }\r\n }\r\n }\r\n this.arrDim = arrayDim;\r\n }\r\n else {\r\n if (this.arrDim > 0) {\r\n this.interpolable = false;\r\n return;\r\n }\r\n if (typeof value === 'string') {\r\n var colorArray = parse(value);\r\n if (colorArray) {\r\n value = colorArray;\r\n this.isValueColor = true;\r\n }\r\n else {\r\n this.interpolable = false;\r\n }\r\n }\r\n else if (typeof value !== 'number') {\r\n this.interpolable = false;\r\n return;\r\n }\r\n if (this._isAllValueEqual && len > 0) {\r\n var lastFrame = keyframes[len - 1];\r\n if (this.isValueColor && !is1DArraySame(lastFrame.value, value)) {\r\n this._isAllValueEqual = false;\r\n }\r\n else if (lastFrame.value !== value) {\r\n this._isAllValueEqual = false;\r\n }\r\n }\r\n }\r\n }\r\n var kf = {\r\n time: time,\r\n value: value,\r\n percent: 0\r\n };\r\n this.keyframes.push(kf);\r\n return kf;\r\n };\r\n Track.prototype.prepare = function (additiveTrack) {\r\n var kfs = this.keyframes;\r\n if (this._needsSort) {\r\n kfs.sort(function (a, b) {\r\n return a.time - b.time;\r\n });\r\n }\r\n var arrDim = this.arrDim;\r\n var kfsLen = kfs.length;\r\n var lastKf = kfs[kfsLen - 1];\r\n for (var i = 0; i < kfsLen; i++) {\r\n kfs[i].percent = kfs[i].time / this.maxTime;\r\n if (arrDim > 0 && i !== kfsLen - 1) {\r\n fillArray(kfs[i].value, lastKf.value, arrDim);\r\n }\r\n }\r\n if (additiveTrack\r\n && this.needsAnimate()\r\n && additiveTrack.needsAnimate()\r\n && arrDim === additiveTrack.arrDim\r\n && this.isValueColor === additiveTrack.isValueColor\r\n && !additiveTrack._finished) {\r\n this._additiveTrack = additiveTrack;\r\n var startValue = kfs[0].value;\r\n for (var i = 0; i < kfsLen; i++) {\r\n if (arrDim === 0) {\r\n if (this.isValueColor) {\r\n kfs[i].additiveValue\r\n = add1DArray([], kfs[i].value, startValue, -1);\r\n }\r\n else {\r\n kfs[i].additiveValue = kfs[i].value - startValue;\r\n }\r\n }\r\n else if (arrDim === 1) {\r\n kfs[i].additiveValue = add1DArray([], kfs[i].value, startValue, -1);\r\n }\r\n else if (arrDim === 2) {\r\n kfs[i].additiveValue = add2DArray([], kfs[i].value, startValue, -1);\r\n }\r\n }\r\n }\r\n };\r\n Track.prototype.step = function (target, percent) {\r\n if (this._finished) {\r\n return;\r\n }\r\n if (this._additiveTrack && this._additiveTrack._finished) {\r\n this._additiveTrack = null;\r\n }\r\n var isAdditive = this._additiveTrack != null;\r\n var valueKey = isAdditive ? 'additiveValue' : 'value';\r\n var keyframes = this.keyframes;\r\n var kfsNum = this.keyframes.length;\r\n var propName = this.propName;\r\n var arrDim = this.arrDim;\r\n var isValueColor = this.isValueColor;\r\n var frameIdx;\r\n if (percent < 0) {\r\n frameIdx = 0;\r\n }\r\n else if (percent < this._lastFramePercent) {\r\n var start = Math.min(this._lastFrame + 1, kfsNum - 1);\r\n for (frameIdx = start; frameIdx >= 0; frameIdx--) {\r\n if (keyframes[frameIdx].percent <= percent) {\r\n break;\r\n }\r\n }\r\n frameIdx = Math.min(frameIdx, kfsNum - 2);\r\n }\r\n else {\r\n for (frameIdx = this._lastFrame; frameIdx < kfsNum; frameIdx++) {\r\n if (keyframes[frameIdx].percent > percent) {\r\n break;\r\n }\r\n }\r\n frameIdx = Math.min(frameIdx - 1, kfsNum - 2);\r\n }\r\n var nextFrame = keyframes[frameIdx + 1];\r\n var frame = keyframes[frameIdx];\r\n if (!(frame && nextFrame)) {\r\n return;\r\n }\r\n this._lastFrame = frameIdx;\r\n this._lastFramePercent = percent;\r\n var range = (nextFrame.percent - frame.percent);\r\n if (range === 0) {\r\n return;\r\n }\r\n var w = (percent - frame.percent) / range;\r\n var targetArr = isAdditive ? this._additiveValue\r\n : (isValueColor ? tmpRgba : target[propName]);\r\n if ((arrDim > 0 || isValueColor) && !targetArr) {\r\n targetArr = this._additiveValue = [];\r\n }\r\n if (this.useSpline) {\r\n var p1 = keyframes[frameIdx][valueKey];\r\n var p0 = keyframes[frameIdx === 0 ? frameIdx : frameIdx - 1][valueKey];\r\n var p2 = keyframes[frameIdx > kfsNum - 2 ? kfsNum - 1 : frameIdx + 1][valueKey];\r\n var p3 = keyframes[frameIdx > kfsNum - 3 ? kfsNum - 1 : frameIdx + 2][valueKey];\r\n if (arrDim > 0) {\r\n arrDim === 1\r\n ? catmullRomInterpolate1DArray(targetArr, p0, p1, p2, p3, w, w * w, w * w * w)\r\n : catmullRomInterpolate2DArray(targetArr, p0, p1, p2, p3, w, w * w, w * w * w);\r\n }\r\n else if (isValueColor) {\r\n catmullRomInterpolate1DArray(targetArr, p0, p1, p2, p3, w, w * w, w * w * w);\r\n if (!isAdditive) {\r\n target[propName] = rgba2String(targetArr);\r\n }\r\n }\r\n else {\r\n var value = void 0;\r\n if (!this.interpolable) {\r\n value = p2;\r\n }\r\n else {\r\n value = catmullRomInterpolate(p0, p1, p2, p3, w, w * w, w * w * w);\r\n }\r\n if (isAdditive) {\r\n this._additiveValue = value;\r\n }\r\n else {\r\n target[propName] = value;\r\n }\r\n }\r\n }\r\n else {\r\n if (arrDim > 0) {\r\n arrDim === 1\r\n ? interpolate1DArray(targetArr, frame[valueKey], nextFrame[valueKey], w)\r\n : interpolate2DArray(targetArr, frame[valueKey], nextFrame[valueKey], w);\r\n }\r\n else if (isValueColor) {\r\n interpolate1DArray(targetArr, frame[valueKey], nextFrame[valueKey], w);\r\n if (!isAdditive) {\r\n target[propName] = rgba2String(targetArr);\r\n }\r\n }\r\n else {\r\n var value = void 0;\r\n if (!this.interpolable) {\r\n value = step(frame[valueKey], nextFrame[valueKey], w);\r\n }\r\n else {\r\n value = interpolateNumber(frame[valueKey], nextFrame[valueKey], w);\r\n }\r\n if (isAdditive) {\r\n this._additiveValue = value;\r\n }\r\n else {\r\n target[propName] = value;\r\n }\r\n }\r\n }\r\n if (isAdditive) {\r\n this._addToTarget(target);\r\n }\r\n };\r\n Track.prototype._addToTarget = function (target) {\r\n var arrDim = this.arrDim;\r\n var propName = this.propName;\r\n var additiveValue = this._additiveValue;\r\n if (arrDim === 0) {\r\n if (this.isValueColor) {\r\n parse(target[propName], tmpRgba);\r\n add1DArray(tmpRgba, tmpRgba, additiveValue, 1);\r\n target[propName] = rgba2String(tmpRgba);\r\n }\r\n else {\r\n target[propName] = target[propName] + additiveValue;\r\n }\r\n }\r\n else if (arrDim === 1) {\r\n add1DArray(target[propName], target[propName], additiveValue, 1);\r\n }\r\n else if (arrDim === 2) {\r\n add2DArray(target[propName], target[propName], additiveValue, 1);\r\n }\r\n };\r\n return Track;\r\n }());\r\n var Animator = (function () {\r\n function Animator(target, loop, additiveTo) {\r\n this._tracks = {};\r\n this._trackKeys = [];\r\n this._delay = 0;\r\n this._maxTime = 0;\r\n this._paused = false;\r\n this._started = 0;\r\n this._clip = null;\r\n this._target = target;\r\n this._loop = loop;\r\n if (loop && additiveTo) {\r\n logError('Can\\' use additive animation on looped animation.');\r\n return;\r\n }\r\n this._additiveAnimators = additiveTo;\r\n }\r\n Animator.prototype.getTarget = function () {\r\n return this._target;\r\n };\r\n Animator.prototype.changeTarget = function (target) {\r\n this._target = target;\r\n };\r\n Animator.prototype.when = function (time, props) {\r\n return this.whenWithKeys(time, props, keys(props));\r\n };\r\n Animator.prototype.whenWithKeys = function (time, props, propNames) {\r\n var tracks = this._tracks;\r\n for (var i = 0; i < propNames.length; i++) {\r\n var propName = propNames[i];\r\n var track = tracks[propName];\r\n if (!track) {\r\n track = tracks[propName] = new Track(propName);\r\n var initialValue = void 0;\r\n var additiveTrack = this._getAdditiveTrack(propName);\r\n if (additiveTrack) {\r\n var lastFinalKf = additiveTrack.keyframes[additiveTrack.keyframes.length - 1];\r\n initialValue = lastFinalKf && lastFinalKf.value;\r\n if (additiveTrack.isValueColor && initialValue) {\r\n initialValue = rgba2String(initialValue);\r\n }\r\n }\r\n else {\r\n initialValue = this._target[propName];\r\n }\r\n if (initialValue == null) {\r\n continue;\r\n }\r\n if (time !== 0) {\r\n track.addKeyframe(0, cloneValue(initialValue));\r\n }\r\n this._trackKeys.push(propName);\r\n }\r\n track.addKeyframe(time, cloneValue(props[propName]));\r\n }\r\n this._maxTime = Math.max(this._maxTime, time);\r\n return this;\r\n };\r\n Animator.prototype.pause = function () {\r\n this._clip.pause();\r\n this._paused = true;\r\n };\r\n Animator.prototype.resume = function () {\r\n this._clip.resume();\r\n this._paused = false;\r\n };\r\n Animator.prototype.isPaused = function () {\r\n return !!this._paused;\r\n };\r\n Animator.prototype._doneCallback = function () {\r\n this._setTracksFinished();\r\n this._clip = null;\r\n var doneList = this._doneList;\r\n if (doneList) {\r\n var len = doneList.length;\r\n for (var i = 0; i < len; i++) {\r\n doneList[i].call(this);\r\n }\r\n }\r\n };\r\n Animator.prototype._abortedCallback = function () {\r\n this._setTracksFinished();\r\n var animation = this.animation;\r\n var abortedList = this._abortedList;\r\n if (animation) {\r\n animation.removeClip(this._clip);\r\n }\r\n this._clip = null;\r\n if (abortedList) {\r\n for (var i = 0; i < abortedList.length; i++) {\r\n abortedList[i].call(this);\r\n }\r\n }\r\n };\r\n Animator.prototype._setTracksFinished = function () {\r\n var tracks = this._tracks;\r\n var tracksKeys = this._trackKeys;\r\n for (var i = 0; i < tracksKeys.length; i++) {\r\n tracks[tracksKeys[i]].setFinished();\r\n }\r\n };\r\n Animator.prototype._getAdditiveTrack = function (trackName) {\r\n var additiveTrack;\r\n var additiveAnimators = this._additiveAnimators;\r\n if (additiveAnimators) {\r\n for (var i = 0; i < additiveAnimators.length; i++) {\r\n var track = additiveAnimators[i].getTrack(trackName);\r\n if (track) {\r\n additiveTrack = track;\r\n }\r\n }\r\n }\r\n return additiveTrack;\r\n };\r\n Animator.prototype.start = function (easing, forceAnimate) {\r\n if (this._started > 0) {\r\n return;\r\n }\r\n this._started = 1;\r\n var self = this;\r\n var tracks = [];\r\n for (var i = 0; i < this._trackKeys.length; i++) {\r\n var propName = this._trackKeys[i];\r\n var track = this._tracks[propName];\r\n var additiveTrack = this._getAdditiveTrack(propName);\r\n var kfs = track.keyframes;\r\n track.prepare(additiveTrack);\r\n if (track.needsAnimate()) {\r\n tracks.push(track);\r\n }\r\n else if (!track.interpolable) {\r\n var lastKf = kfs[kfs.length - 1];\r\n if (lastKf) {\r\n self._target[track.propName] = lastKf.value;\r\n }\r\n }\r\n }\r\n if (tracks.length || forceAnimate) {\r\n var clip = new Clip({\r\n life: this._maxTime,\r\n loop: this._loop,\r\n delay: this._delay,\r\n onframe: function (percent) {\r\n self._started = 2;\r\n var additiveAnimators = self._additiveAnimators;\r\n if (additiveAnimators) {\r\n var stillHasAdditiveAnimator = false;\r\n for (var i = 0; i < additiveAnimators.length; i++) {\r\n if (additiveAnimators[i]._clip) {\r\n stillHasAdditiveAnimator = true;\r\n break;\r\n }\r\n }\r\n if (!stillHasAdditiveAnimator) {\r\n self._additiveAnimators = null;\r\n }\r\n }\r\n for (var i = 0; i < tracks.length; i++) {\r\n tracks[i].step(self._target, percent);\r\n }\r\n var onframeList = self._onframeList;\r\n if (onframeList) {\r\n for (var i = 0; i < onframeList.length; i++) {\r\n onframeList[i](self._target, percent);\r\n }\r\n }\r\n },\r\n ondestroy: function () {\r\n self._doneCallback();\r\n }\r\n });\r\n this._clip = clip;\r\n if (this.animation) {\r\n this.animation.addClip(clip);\r\n }\r\n if (easing && easing !== 'spline') {\r\n clip.easing = easing;\r\n }\r\n }\r\n else {\r\n this._doneCallback();\r\n }\r\n return this;\r\n };\r\n Animator.prototype.stop = function (forwardToLast) {\r\n if (!this._clip) {\r\n return;\r\n }\r\n var clip = this._clip;\r\n if (forwardToLast) {\r\n clip.onframe(1);\r\n }\r\n this._abortedCallback();\r\n };\r\n Animator.prototype.delay = function (time) {\r\n this._delay = time;\r\n return this;\r\n };\r\n Animator.prototype.during = function (cb) {\r\n if (cb) {\r\n if (!this._onframeList) {\r\n this._onframeList = [];\r\n }\r\n this._onframeList.push(cb);\r\n }\r\n return this;\r\n };\r\n Animator.prototype.done = function (cb) {\r\n if (cb) {\r\n if (!this._doneList) {\r\n this._doneList = [];\r\n }\r\n this._doneList.push(cb);\r\n }\r\n return this;\r\n };\r\n Animator.prototype.aborted = function (cb) {\r\n if (cb) {\r\n if (!this._abortedList) {\r\n this._abortedList = [];\r\n }\r\n this._abortedList.push(cb);\r\n }\r\n return this;\r\n };\r\n Animator.prototype.getClip = function () {\r\n return this._clip;\r\n };\r\n Animator.prototype.getTrack = function (propName) {\r\n return this._tracks[propName];\r\n };\r\n Animator.prototype.stopTracks = function (propNames, forwardToLast) {\r\n if (!propNames.length || !this._clip) {\r\n return true;\r\n }\r\n var tracks = this._tracks;\r\n var tracksKeys = this._trackKeys;\r\n for (var i = 0; i < propNames.length; i++) {\r\n var track = tracks[propNames[i]];\r\n if (track) {\r\n if (forwardToLast) {\r\n track.step(this._target, 1);\r\n }\r\n else if (this._started === 1) {\r\n track.step(this._target, 0);\r\n }\r\n track.setFinished();\r\n }\r\n }\r\n var allAborted = true;\r\n for (var i = 0; i < tracksKeys.length; i++) {\r\n if (!tracks[tracksKeys[i]].isFinished()) {\r\n allAborted = false;\r\n break;\r\n }\r\n }\r\n if (allAborted) {\r\n this._abortedCallback();\r\n }\r\n return allAborted;\r\n };\r\n Animator.prototype.saveFinalToTarget = function (target, trackKeys) {\r\n if (!target) {\r\n return;\r\n }\r\n trackKeys = trackKeys || this._trackKeys;\r\n for (var i = 0; i < trackKeys.length; i++) {\r\n var propName = trackKeys[i];\r\n var track = this._tracks[propName];\r\n if (!track || track.isFinished()) {\r\n continue;\r\n }\r\n var kfs = track.keyframes;\r\n var lastKf = kfs[kfs.length - 1];\r\n if (lastKf) {\r\n var val = cloneValue(lastKf.value);\r\n if (track.isValueColor) {\r\n val = rgba2String(val);\r\n }\r\n target[propName] = val;\r\n }\r\n }\r\n };\r\n Animator.prototype.__changeFinalValue = function (finalProps, trackKeys) {\r\n trackKeys = trackKeys || keys(finalProps);\r\n for (var i = 0; i < trackKeys.length; i++) {\r\n var propName = trackKeys[i];\r\n var track = this._tracks[propName];\r\n if (!track) {\r\n continue;\r\n }\r\n var kfs = track.keyframes;\r\n if (kfs.length > 1) {\r\n var lastKf = kfs.pop();\r\n track.addKeyframe(lastKf.time, finalProps[propName]);\r\n track.prepare(track.getAdditiveTrack());\r\n }\r\n }\r\n };\r\n return Animator;\r\n }());\n\n var Point = (function () {\r\n function Point(x, y) {\r\n this.x = x || 0;\r\n this.y = y || 0;\r\n }\r\n Point.prototype.copy = function (other) {\r\n this.x = other.x;\r\n this.y = other.y;\r\n return this;\r\n };\r\n Point.prototype.clone = function () {\r\n return new Point(this.x, this.y);\r\n };\r\n Point.prototype.set = function (x, y) {\r\n this.x = x;\r\n this.y = y;\r\n return this;\r\n };\r\n Point.prototype.equal = function (other) {\r\n return other.x === this.x && other.y === this.y;\r\n };\r\n Point.prototype.add = function (other) {\r\n this.x += other.x;\r\n this.y += other.y;\r\n return this;\r\n };\r\n Point.prototype.scale = function (scalar) {\r\n this.x *= scalar;\r\n this.y *= scalar;\r\n };\r\n Point.prototype.scaleAndAdd = function (other, scalar) {\r\n this.x += other.x * scalar;\r\n this.y += other.y * scalar;\r\n };\r\n Point.prototype.sub = function (other) {\r\n this.x -= other.x;\r\n this.y -= other.y;\r\n return this;\r\n };\r\n Point.prototype.dot = function (other) {\r\n return this.x * other.x + this.y * other.y;\r\n };\r\n Point.prototype.len = function () {\r\n return Math.sqrt(this.x * this.x + this.y * this.y);\r\n };\r\n Point.prototype.lenSquare = function () {\r\n return this.x * this.x + this.y * this.y;\r\n };\r\n Point.prototype.normalize = function () {\r\n var len = this.len();\r\n this.x /= len;\r\n this.y /= len;\r\n return this;\r\n };\r\n Point.prototype.distance = function (other) {\r\n var dx = this.x - other.x;\r\n var dy = this.y - other.y;\r\n return Math.sqrt(dx * dx + dy * dy);\r\n };\r\n Point.prototype.distanceSquare = function (other) {\r\n var dx = this.x - other.x;\r\n var dy = this.y - other.y;\r\n return dx * dx + dy * dy;\r\n };\r\n Point.prototype.negate = function () {\r\n this.x = -this.x;\r\n this.y = -this.y;\r\n return this;\r\n };\r\n Point.prototype.transform = function (m) {\r\n if (!m) {\r\n return;\r\n }\r\n var x = this.x;\r\n var y = this.y;\r\n this.x = m[0] * x + m[2] * y + m[4];\r\n this.y = m[1] * x + m[3] * y + m[5];\r\n return this;\r\n };\r\n Point.prototype.toArray = function (out) {\r\n out[0] = this.x;\r\n out[1] = this.y;\r\n return out;\r\n };\r\n Point.prototype.fromArray = function (input) {\r\n this.x = input[0];\r\n this.y = input[1];\r\n };\r\n Point.set = function (p, x, y) {\r\n p.x = x;\r\n p.y = y;\r\n };\r\n Point.copy = function (p, p2) {\r\n p.x = p2.x;\r\n p.y = p2.y;\r\n };\r\n Point.len = function (p) {\r\n return Math.sqrt(p.x * p.x + p.y * p.y);\r\n };\r\n Point.lenSquare = function (p) {\r\n return p.x * p.x + p.y * p.y;\r\n };\r\n Point.dot = function (p0, p1) {\r\n return p0.x * p1.x + p0.y * p1.y;\r\n };\r\n Point.add = function (out, p0, p1) {\r\n out.x = p0.x + p1.x;\r\n out.y = p0.y + p1.y;\r\n };\r\n Point.sub = function (out, p0, p1) {\r\n out.x = p0.x - p1.x;\r\n out.y = p0.y - p1.y;\r\n };\r\n Point.scale = function (out, p0, scalar) {\r\n out.x = p0.x * scalar;\r\n out.y = p0.y * scalar;\r\n };\r\n Point.scaleAndAdd = function (out, p0, p1, scalar) {\r\n out.x = p0.x + p1.x * scalar;\r\n out.y = p0.y + p1.y * scalar;\r\n };\r\n Point.lerp = function (out, p0, p1, t) {\r\n var onet = 1 - t;\r\n out.x = onet * p0.x + t * p1.x;\r\n out.y = onet * p0.y + t * p1.y;\r\n };\r\n return Point;\r\n }());\n\n var mathMin = Math.min;\r\n var mathMax = Math.max;\r\n var lt = new Point();\r\n var rb = new Point();\r\n var lb = new Point();\r\n var rt = new Point();\r\n var minTv = new Point();\r\n var maxTv = new Point();\r\n var BoundingRect = (function () {\r\n function BoundingRect(x, y, width, height) {\r\n if (width < 0 && isFinite(width)) {\r\n x = x + width;\r\n width = -width;\r\n }\r\n if (height < 0 && isFinite(height)) {\r\n y = y + height;\r\n height = -height;\r\n }\r\n this.x = x;\r\n this.y = y;\r\n this.width = width;\r\n this.height = height;\r\n }\r\n BoundingRect.prototype.union = function (other) {\r\n var x = mathMin(other.x, this.x);\r\n var y = mathMin(other.y, this.y);\r\n if (isFinite(this.x) && isFinite(this.width)) {\r\n this.width = mathMax(other.x + other.width, this.x + this.width) - x;\r\n }\r\n else {\r\n this.width = other.width;\r\n }\r\n if (isFinite(this.y) && isFinite(this.height)) {\r\n this.height = mathMax(other.y + other.height, this.y + this.height) - y;\r\n }\r\n else {\r\n this.height = other.height;\r\n }\r\n this.x = x;\r\n this.y = y;\r\n };\r\n BoundingRect.prototype.applyTransform = function (m) {\r\n BoundingRect.applyTransform(this, this, m);\r\n };\r\n BoundingRect.prototype.calculateTransform = function (b) {\r\n var a = this;\r\n var sx = b.width / a.width;\r\n var sy = b.height / a.height;\r\n var m = create$1();\r\n translate(m, m, [-a.x, -a.y]);\r\n scale$1(m, m, [sx, sy]);\r\n translate(m, m, [b.x, b.y]);\r\n return m;\r\n };\r\n BoundingRect.prototype.intersect = function (b, mtv) {\r\n if (!b) {\r\n return false;\r\n }\r\n if (!(b instanceof BoundingRect)) {\r\n b = BoundingRect.create(b);\r\n }\r\n var a = this;\r\n var ax0 = a.x;\r\n var ax1 = a.x + a.width;\r\n var ay0 = a.y;\r\n var ay1 = a.y + a.height;\r\n var bx0 = b.x;\r\n var bx1 = b.x + b.width;\r\n var by0 = b.y;\r\n var by1 = b.y + b.height;\r\n var overlap = !(ax1 < bx0 || bx1 < ax0 || ay1 < by0 || by1 < ay0);\r\n if (mtv) {\r\n var dMin = Infinity;\r\n var dMax = 0;\r\n var d0 = Math.abs(ax1 - bx0);\r\n var d1 = Math.abs(bx1 - ax0);\r\n var d2 = Math.abs(ay1 - by0);\r\n var d3 = Math.abs(by1 - ay0);\r\n var dx = Math.min(d0, d1);\r\n var dy = Math.min(d2, d3);\r\n if (ax1 < bx0 || bx1 < ax0) {\r\n if (dx > dMax) {\r\n dMax = dx;\r\n if (d0 < d1) {\r\n Point.set(maxTv, -d0, 0);\r\n }\r\n else {\r\n Point.set(maxTv, d1, 0);\r\n }\r\n }\r\n }\r\n else {\r\n if (dx < dMin) {\r\n dMin = dx;\r\n if (d0 < d1) {\r\n Point.set(minTv, d0, 0);\r\n }\r\n else {\r\n Point.set(minTv, -d1, 0);\r\n }\r\n }\r\n }\r\n if (ay1 < by0 || by1 < ay0) {\r\n if (dy > dMax) {\r\n dMax = dy;\r\n if (d2 < d3) {\r\n Point.set(maxTv, 0, -d2);\r\n }\r\n else {\r\n Point.set(maxTv, 0, d3);\r\n }\r\n }\r\n }\r\n else {\r\n if (dx < dMin) {\r\n dMin = dx;\r\n if (d2 < d3) {\r\n Point.set(minTv, 0, d2);\r\n }\r\n else {\r\n Point.set(minTv, 0, -d3);\r\n }\r\n }\r\n }\r\n }\r\n if (mtv) {\r\n Point.copy(mtv, overlap ? minTv : maxTv);\r\n }\r\n return overlap;\r\n };\r\n BoundingRect.prototype.contain = function (x, y) {\r\n var rect = this;\r\n return x >= rect.x\r\n && x <= (rect.x + rect.width)\r\n && y >= rect.y\r\n && y <= (rect.y + rect.height);\r\n };\r\n BoundingRect.prototype.clone = function () {\r\n return new BoundingRect(this.x, this.y, this.width, this.height);\r\n };\r\n BoundingRect.prototype.copy = function (other) {\r\n BoundingRect.copy(this, other);\r\n };\r\n BoundingRect.prototype.plain = function () {\r\n return {\r\n x: this.x,\r\n y: this.y,\r\n width: this.width,\r\n height: this.height\r\n };\r\n };\r\n BoundingRect.prototype.isFinite = function () {\r\n return isFinite(this.x)\r\n && isFinite(this.y)\r\n && isFinite(this.width)\r\n && isFinite(this.height);\r\n };\r\n BoundingRect.prototype.isZero = function () {\r\n return this.width === 0 || this.height === 0;\r\n };\r\n BoundingRect.create = function (rect) {\r\n return new BoundingRect(rect.x, rect.y, rect.width, rect.height);\r\n };\r\n BoundingRect.copy = function (target, source) {\r\n target.x = source.x;\r\n target.y = source.y;\r\n target.width = source.width;\r\n target.height = source.height;\r\n };\r\n BoundingRect.applyTransform = function (target, source, m) {\r\n if (!m) {\r\n if (target !== source) {\r\n BoundingRect.copy(target, source);\r\n }\r\n return;\r\n }\r\n if (m[1] < 1e-5 && m[1] > -1e-5 && m[2] < 1e-5 && m[2] > -1e-5) {\r\n var sx = m[0];\r\n var sy = m[3];\r\n var tx = m[4];\r\n var ty = m[5];\r\n target.x = source.x * sx + tx;\r\n target.y = source.y * sy + ty;\r\n target.width = source.width * sx;\r\n target.height = source.height * sy;\r\n if (target.width < 0) {\r\n target.x += target.width;\r\n target.width = -target.width;\r\n }\r\n if (target.height < 0) {\r\n target.y += target.height;\r\n target.height = -target.height;\r\n }\r\n return;\r\n }\r\n lt.x = lb.x = source.x;\r\n lt.y = rt.y = source.y;\r\n rb.x = rt.x = source.x + source.width;\r\n rb.y = lb.y = source.y + source.height;\r\n lt.transform(m);\r\n rt.transform(m);\r\n rb.transform(m);\r\n lb.transform(m);\r\n target.x = mathMin(lt.x, rb.x, lb.x, rt.x);\r\n target.y = mathMin(lt.y, rb.y, lb.y, rt.y);\r\n var maxX = mathMax(lt.x, rb.x, lb.x, rt.x);\r\n var maxY = mathMax(lt.y, rb.y, lb.y, rt.y);\r\n target.width = maxX - target.x;\r\n target.height = maxY - target.y;\r\n };\r\n return BoundingRect;\r\n }());\n\n var textWidthCache = {};\r\n var DEFAULT_FONT = '12px sans-serif';\r\n var _ctx;\r\n var _cachedFont;\r\n function defaultMeasureText(text, font) {\r\n if (!_ctx) {\r\n _ctx = createCanvas().getContext('2d');\r\n }\r\n if (_cachedFont !== font) {\r\n _cachedFont = _ctx.font = font || DEFAULT_FONT;\r\n }\r\n return _ctx.measureText(text);\r\n }\r\n var methods$1 = {\r\n measureText: defaultMeasureText\r\n };\r\n function getWidth(text, font) {\r\n font = font || DEFAULT_FONT;\r\n var cacheOfFont = textWidthCache[font];\r\n if (!cacheOfFont) {\r\n cacheOfFont = textWidthCache[font] = new LRU(500);\r\n }\r\n var width = cacheOfFont.get(text);\r\n if (width == null) {\r\n width = methods$1.measureText(text, font).width;\r\n cacheOfFont.put(text, width);\r\n }\r\n return width;\r\n }\r\n function innerGetBoundingRect(text, font, textAlign, textBaseline) {\r\n var width = getWidth(text, font);\r\n var height = getLineHeight(font);\r\n var x = adjustTextX(0, width, textAlign);\r\n var y = adjustTextY(0, height, textBaseline);\r\n var rect = new BoundingRect(x, y, width, height);\r\n return rect;\r\n }\r\n function getBoundingRect(text, font, textAlign, textBaseline) {\r\n var textLines = ((text || '') + '').split('\\n');\r\n var len = textLines.length;\r\n if (len === 1) {\r\n return innerGetBoundingRect(textLines[0], font, textAlign, textBaseline);\r\n }\r\n else {\r\n var uniondRect = new BoundingRect(0, 0, 0, 0);\r\n for (var i = 0; i < textLines.length; i++) {\r\n var rect = innerGetBoundingRect(textLines[i], font, textAlign, textBaseline);\r\n i === 0 ? uniondRect.copy(rect) : uniondRect.union(rect);\r\n }\r\n return uniondRect;\r\n }\r\n }\r\n function adjustTextX(x, width, textAlign) {\r\n if (textAlign === 'right') {\r\n x -= width;\r\n }\r\n else if (textAlign === 'center') {\r\n x -= width / 2;\r\n }\r\n return x;\r\n }\r\n function adjustTextY(y, height, verticalAlign) {\r\n if (verticalAlign === 'middle') {\r\n y -= height / 2;\r\n }\r\n else if (verticalAlign === 'bottom') {\r\n y -= height;\r\n }\r\n return y;\r\n }\r\n function getLineHeight(font) {\r\n return getWidth('国', font);\r\n }\r\n function parsePercent(value, maxValue) {\r\n if (typeof value === 'string') {\r\n if (value.lastIndexOf('%') >= 0) {\r\n return parseFloat(value) / 100 * maxValue;\r\n }\r\n return parseFloat(value);\r\n }\r\n return value;\r\n }\r\n function calculateTextPosition(out, opts, rect) {\r\n var textPosition = opts.position || 'inside';\r\n var distance = opts.distance != null ? opts.distance : 5;\r\n var height = rect.height;\r\n var width = rect.width;\r\n var halfHeight = height / 2;\r\n var x = rect.x;\r\n var y = rect.y;\r\n var textAlign = 'left';\r\n var textVerticalAlign = 'top';\r\n if (textPosition instanceof Array) {\r\n x += parsePercent(textPosition[0], rect.width);\r\n y += parsePercent(textPosition[1], rect.height);\r\n textAlign = null;\r\n textVerticalAlign = null;\r\n }\r\n else {\r\n switch (textPosition) {\r\n case 'left':\r\n x -= distance;\r\n y += halfHeight;\r\n textAlign = 'right';\r\n textVerticalAlign = 'middle';\r\n break;\r\n case 'right':\r\n x += distance + width;\r\n y += halfHeight;\r\n textVerticalAlign = 'middle';\r\n break;\r\n case 'top':\r\n x += width / 2;\r\n y -= distance;\r\n textAlign = 'center';\r\n textVerticalAlign = 'bottom';\r\n break;\r\n case 'bottom':\r\n x += width / 2;\r\n y += height + distance;\r\n textAlign = 'center';\r\n break;\r\n case 'inside':\r\n x += width / 2;\r\n y += halfHeight;\r\n textAlign = 'center';\r\n textVerticalAlign = 'middle';\r\n break;\r\n case 'insideLeft':\r\n x += distance;\r\n y += halfHeight;\r\n textVerticalAlign = 'middle';\r\n break;\r\n case 'insideRight':\r\n x += width - distance;\r\n y += halfHeight;\r\n textAlign = 'right';\r\n textVerticalAlign = 'middle';\r\n break;\r\n case 'insideTop':\r\n x += width / 2;\r\n y += distance;\r\n textAlign = 'center';\r\n break;\r\n case 'insideBottom':\r\n x += width / 2;\r\n y += height - distance;\r\n textAlign = 'center';\r\n textVerticalAlign = 'bottom';\r\n break;\r\n case 'insideTopLeft':\r\n x += distance;\r\n y += distance;\r\n break;\r\n case 'insideTopRight':\r\n x += width - distance;\r\n y += distance;\r\n textAlign = 'right';\r\n break;\r\n case 'insideBottomLeft':\r\n x += distance;\r\n y += height - distance;\r\n textVerticalAlign = 'bottom';\r\n break;\r\n case 'insideBottomRight':\r\n x += width - distance;\r\n y += height - distance;\r\n textAlign = 'right';\r\n textVerticalAlign = 'bottom';\r\n break;\r\n }\r\n }\r\n out = out || {};\r\n out.x = x;\r\n out.y = y;\r\n out.align = textAlign;\r\n out.verticalAlign = textVerticalAlign;\r\n return out;\r\n }\n\n var dpr = 1;\r\n if (typeof window !== 'undefined') {\r\n dpr = Math.max(window.devicePixelRatio\r\n || (window.screen.deviceXDPI / window.screen.logicalXDPI)\r\n || 1, 1);\r\n }\r\n var devicePixelRatio = dpr;\r\n var DARK_MODE_THRESHOLD = 0.4;\r\n var DARK_LABEL_COLOR = '#333';\r\n var LIGHT_LABEL_COLOR = '#ccc';\r\n var LIGHTER_LABEL_COLOR = '#eee';\n\n var PRESERVED_NORMAL_STATE = '__zr_normal__';\r\n var PRIMARY_STATES_KEYS = ['x', 'y', 'scaleX', 'scaleY', 'originX', 'originY', 'rotation', 'ignore'];\r\n var DEFAULT_ANIMATABLE_MAP = {\r\n x: true,\r\n y: true,\r\n scaleX: true,\r\n scaleY: true,\r\n originX: true,\r\n originY: true,\r\n rotation: true,\r\n ignore: false\r\n };\r\n var tmpTextPosCalcRes = {};\r\n var tmpBoundingRect = new BoundingRect(0, 0, 0, 0);\r\n var Element = (function () {\r\n function Element(props) {\r\n this.id = guid();\r\n this.animators = [];\r\n this.currentStates = [];\r\n this.states = {};\r\n this._init(props);\r\n }\r\n Element.prototype._init = function (props) {\r\n this.attr(props);\r\n };\r\n Element.prototype.drift = function (dx, dy, e) {\r\n switch (this.draggable) {\r\n case 'horizontal':\r\n dy = 0;\r\n break;\r\n case 'vertical':\r\n dx = 0;\r\n break;\r\n }\r\n var m = this.transform;\r\n if (!m) {\r\n m = this.transform = [1, 0, 0, 1, 0, 0];\r\n }\r\n m[4] += dx;\r\n m[5] += dy;\r\n this.decomposeTransform();\r\n this.markRedraw();\r\n };\r\n Element.prototype.beforeUpdate = function () { };\r\n Element.prototype.afterUpdate = function () { };\r\n Element.prototype.update = function () {\r\n this.updateTransform();\r\n if (this.__dirty) {\r\n this.updateInnerText();\r\n }\r\n };\r\n Element.prototype.updateInnerText = function (forceUpdate) {\r\n var textEl = this._textContent;\r\n if (textEl && (!textEl.ignore || forceUpdate)) {\r\n if (!this.textConfig) {\r\n this.textConfig = {};\r\n }\r\n var textConfig = this.textConfig;\r\n var isLocal = textConfig.local;\r\n var attachedTransform = textEl.attachedTransform;\r\n var textAlign = void 0;\r\n var textVerticalAlign = void 0;\r\n var textStyleChanged = false;\r\n if (isLocal) {\r\n attachedTransform.parent = this;\r\n }\r\n else {\r\n attachedTransform.parent = null;\r\n }\r\n var innerOrigin = false;\r\n attachedTransform.x = textEl.x;\r\n attachedTransform.y = textEl.y;\r\n attachedTransform.originX = textEl.originX;\r\n attachedTransform.originY = textEl.originY;\r\n attachedTransform.rotation = textEl.rotation;\r\n attachedTransform.scaleX = textEl.scaleX;\r\n attachedTransform.scaleY = textEl.scaleY;\r\n if (textConfig.position != null) {\r\n var layoutRect = tmpBoundingRect;\r\n if (textConfig.layoutRect) {\r\n layoutRect.copy(textConfig.layoutRect);\r\n }\r\n else {\r\n layoutRect.copy(this.getBoundingRect());\r\n }\r\n if (!isLocal) {\r\n layoutRect.applyTransform(this.transform);\r\n }\r\n if (this.calculateTextPosition) {\r\n this.calculateTextPosition(tmpTextPosCalcRes, textConfig, layoutRect);\r\n }\r\n else {\r\n calculateTextPosition(tmpTextPosCalcRes, textConfig, layoutRect);\r\n }\r\n attachedTransform.x = tmpTextPosCalcRes.x;\r\n attachedTransform.y = tmpTextPosCalcRes.y;\r\n textAlign = tmpTextPosCalcRes.align;\r\n textVerticalAlign = tmpTextPosCalcRes.verticalAlign;\r\n var textOrigin = textConfig.origin;\r\n if (textOrigin && textConfig.rotation != null) {\r\n var relOriginX = void 0;\r\n var relOriginY = void 0;\r\n if (textOrigin === 'center') {\r\n relOriginX = layoutRect.width * 0.5;\r\n relOriginY = layoutRect.height * 0.5;\r\n }\r\n else {\r\n relOriginX = parsePercent(textOrigin[0], layoutRect.width);\r\n relOriginY = parsePercent(textOrigin[1], layoutRect.height);\r\n }\r\n innerOrigin = true;\r\n attachedTransform.originX = -attachedTransform.x + relOriginX + (isLocal ? 0 : layoutRect.x);\r\n attachedTransform.originY = -attachedTransform.y + relOriginY + (isLocal ? 0 : layoutRect.y);\r\n }\r\n }\r\n if (textConfig.rotation != null) {\r\n attachedTransform.rotation = textConfig.rotation;\r\n }\r\n var textOffset = textConfig.offset;\r\n if (textOffset) {\r\n attachedTransform.x += textOffset[0];\r\n attachedTransform.y += textOffset[1];\r\n if (!innerOrigin) {\r\n attachedTransform.originX = -textOffset[0];\r\n attachedTransform.originY = -textOffset[1];\r\n }\r\n }\r\n var isInside = textConfig.inside == null\r\n ? (typeof textConfig.position === 'string' && textConfig.position.indexOf('inside') >= 0)\r\n : textConfig.inside;\r\n var innerTextDefaultStyle = this._innerTextDefaultStyle || (this._innerTextDefaultStyle = {});\r\n var textFill = void 0;\r\n var textStroke = void 0;\r\n var autoStroke = void 0;\r\n if (isInside && this.canBeInsideText()) {\r\n textFill = textConfig.insideFill;\r\n textStroke = textConfig.insideStroke;\r\n if (textFill == null || textFill === 'auto') {\r\n textFill = this.getInsideTextFill();\r\n }\r\n if (textStroke == null || textStroke === 'auto') {\r\n textStroke = this.getInsideTextStroke(textFill);\r\n autoStroke = true;\r\n }\r\n }\r\n else {\r\n textFill = textConfig.outsideFill;\r\n textStroke = textConfig.outsideStroke;\r\n if (textFill == null || textFill === 'auto') {\r\n textFill = this.getOutsideFill();\r\n }\r\n if (textStroke == null || textStroke === 'auto') {\r\n textStroke = this.getOutsideStroke(textFill);\r\n autoStroke = true;\r\n }\r\n }\r\n textFill = textFill || '#000';\r\n if (textFill !== innerTextDefaultStyle.fill\r\n || textStroke !== innerTextDefaultStyle.stroke\r\n || autoStroke !== innerTextDefaultStyle.autoStroke\r\n || textAlign !== innerTextDefaultStyle.align\r\n || textVerticalAlign !== innerTextDefaultStyle.verticalAlign) {\r\n textStyleChanged = true;\r\n innerTextDefaultStyle.fill = textFill;\r\n innerTextDefaultStyle.stroke = textStroke;\r\n innerTextDefaultStyle.autoStroke = autoStroke;\r\n innerTextDefaultStyle.align = textAlign;\r\n innerTextDefaultStyle.verticalAlign = textVerticalAlign;\r\n textEl.setDefaultTextStyle(innerTextDefaultStyle);\r\n }\r\n if (textStyleChanged) {\r\n textEl.dirtyStyle();\r\n }\r\n textEl.markRedraw();\r\n }\r\n };\r\n Element.prototype.canBeInsideText = function () {\r\n return true;\r\n };\r\n Element.prototype.getInsideTextFill = function () {\r\n return '#fff';\r\n };\r\n Element.prototype.getInsideTextStroke = function (textFill) {\r\n return '#000';\r\n };\r\n Element.prototype.getOutsideFill = function () {\r\n return this.__zr && this.__zr.isDarkMode() ? LIGHT_LABEL_COLOR : DARK_LABEL_COLOR;\r\n };\r\n Element.prototype.getOutsideStroke = function (textFill) {\r\n var backgroundColor = this.__zr && this.__zr.getBackgroundColor();\r\n var colorArr = typeof backgroundColor === 'string' && parse(backgroundColor);\r\n if (!colorArr) {\r\n colorArr = [255, 255, 255, 1];\r\n }\r\n var alpha = colorArr[3];\r\n var isDark = this.__zr.isDarkMode();\r\n for (var i = 0; i < 3; i++) {\r\n colorArr[i] = colorArr[i] * alpha + (isDark ? 0 : 255) * (1 - alpha);\r\n }\r\n colorArr[3] = 1;\r\n return stringify(colorArr, 'rgba');\r\n };\r\n Element.prototype.traverse = function (cb, context) { };\r\n Element.prototype.attrKV = function (key, value) {\r\n if (key === 'textConfig') {\r\n this.setTextConfig(value);\r\n }\r\n else if (key === 'textContent') {\r\n this.setTextContent(value);\r\n }\r\n else if (key === 'clipPath') {\r\n this.setClipPath(value);\r\n }\r\n else if (key === 'extra') {\r\n this.extra = this.extra || {};\r\n extend(this.extra, value);\r\n }\r\n else {\r\n this[key] = value;\r\n }\r\n };\r\n Element.prototype.hide = function () {\r\n this.ignore = true;\r\n this.markRedraw();\r\n };\r\n Element.prototype.show = function () {\r\n this.ignore = false;\r\n this.markRedraw();\r\n };\r\n Element.prototype.attr = function (keyOrObj, value) {\r\n if (typeof keyOrObj === 'string') {\r\n this.attrKV(keyOrObj, value);\r\n }\r\n else if (isObject(keyOrObj)) {\r\n var obj = keyOrObj;\r\n var keysArr = keys(obj);\r\n for (var i = 0; i < keysArr.length; i++) {\r\n var key = keysArr[i];\r\n this.attrKV(key, keyOrObj[key]);\r\n }\r\n }\r\n this.markRedraw();\r\n return this;\r\n };\r\n Element.prototype.saveCurrentToNormalState = function (toState) {\r\n this._innerSaveToNormal(toState);\r\n var normalState = this._normalState;\r\n for (var i = 0; i < this.animators.length; i++) {\r\n var animator = this.animators[i];\r\n var fromStateTransition = animator.__fromStateTransition;\r\n if (fromStateTransition && fromStateTransition !== PRESERVED_NORMAL_STATE) {\r\n continue;\r\n }\r\n var targetName = animator.targetName;\r\n var target = targetName\r\n ? normalState[targetName] : normalState;\r\n animator.saveFinalToTarget(target);\r\n }\r\n };\r\n Element.prototype._innerSaveToNormal = function (toState) {\r\n var normalState = this._normalState;\r\n if (!normalState) {\r\n normalState = this._normalState = {};\r\n }\r\n if (toState.textConfig && !normalState.textConfig) {\r\n normalState.textConfig = this.textConfig;\r\n }\r\n this._savePrimaryToNormal(toState, normalState, PRIMARY_STATES_KEYS);\r\n };\r\n Element.prototype._savePrimaryToNormal = function (toState, normalState, primaryKeys) {\r\n for (var i = 0; i < primaryKeys.length; i++) {\r\n var key = primaryKeys[i];\r\n if (toState[key] != null && !(key in normalState)) {\r\n normalState[key] = this[key];\r\n }\r\n }\r\n };\r\n Element.prototype.hasState = function () {\r\n return this.currentStates.length > 0;\r\n };\r\n Element.prototype.getState = function (name) {\r\n return this.states[name];\r\n };\r\n Element.prototype.ensureState = function (name) {\r\n var states = this.states;\r\n if (!states[name]) {\r\n states[name] = {};\r\n }\r\n return states[name];\r\n };\r\n Element.prototype.clearStates = function (noAnimation) {\r\n this.useState(PRESERVED_NORMAL_STATE, false, noAnimation);\r\n };\r\n Element.prototype.useState = function (stateName, keepCurrentStates, noAnimation) {\r\n var toNormalState = stateName === PRESERVED_NORMAL_STATE;\r\n var hasStates = this.hasState();\r\n if (!hasStates && toNormalState) {\r\n return;\r\n }\r\n var currentStates = this.currentStates;\r\n var animationCfg = this.stateTransition;\r\n if (indexOf(currentStates, stateName) >= 0 && (keepCurrentStates || currentStates.length === 1)) {\r\n return;\r\n }\r\n var state;\r\n if (this.stateProxy && !toNormalState) {\r\n state = this.stateProxy(stateName);\r\n }\r\n if (!state) {\r\n state = (this.states && this.states[stateName]);\r\n }\r\n if (!state && !toNormalState) {\r\n logError(\"State \" + stateName + \" not exists.\");\r\n return;\r\n }\r\n if (!toNormalState) {\r\n this.saveCurrentToNormalState(state);\r\n }\r\n var useHoverLayer = !!(state && state.hoverLayer);\r\n if (useHoverLayer) {\r\n this._toggleHoverLayerFlag(true);\r\n }\r\n this._applyStateObj(stateName, state, this._normalState, keepCurrentStates, !noAnimation && !this.__inHover && animationCfg && animationCfg.duration > 0, animationCfg);\r\n if (this._textContent) {\r\n this._textContent.useState(stateName, keepCurrentStates);\r\n }\r\n if (this._textGuide) {\r\n this._textGuide.useState(stateName, keepCurrentStates);\r\n }\r\n if (toNormalState) {\r\n this.currentStates = [];\r\n this._normalState = {};\r\n }\r\n else {\r\n if (!keepCurrentStates) {\r\n this.currentStates = [stateName];\r\n }\r\n else {\r\n this.currentStates.push(stateName);\r\n }\r\n }\r\n this._updateAnimationTargets();\r\n this.markRedraw();\r\n if (!useHoverLayer && this.__inHover) {\r\n this._toggleHoverLayerFlag(false);\r\n this.__dirty &= ~Element.REDARAW_BIT;\r\n }\r\n return state;\r\n };\r\n Element.prototype.useStates = function (states, noAnimation) {\r\n if (!states.length) {\r\n this.clearStates();\r\n }\r\n else {\r\n var stateObjects = [];\r\n var currentStates = this.currentStates;\r\n var len = states.length;\r\n var notChange = len === currentStates.length;\r\n if (notChange) {\r\n for (var i = 0; i < len; i++) {\r\n if (states[i] !== currentStates[i]) {\r\n notChange = false;\r\n break;\r\n }\r\n }\r\n }\r\n if (notChange) {\r\n return;\r\n }\r\n for (var i = 0; i < len; i++) {\r\n var stateName = states[i];\r\n var stateObj = void 0;\r\n if (this.stateProxy) {\r\n stateObj = this.stateProxy(stateName, states);\r\n }\r\n if (!stateObj) {\r\n stateObj = this.states[stateName];\r\n }\r\n if (stateObj) {\r\n stateObjects.push(stateObj);\r\n }\r\n }\r\n var useHoverLayer = !!(stateObjects[len - 1] && stateObjects[len - 1].hoverLayer);\r\n if (useHoverLayer) {\r\n this._toggleHoverLayerFlag(true);\r\n }\r\n var mergedState = this._mergeStates(stateObjects);\r\n var animationCfg = this.stateTransition;\r\n this.saveCurrentToNormalState(mergedState);\r\n this._applyStateObj(states.join(','), mergedState, this._normalState, false, !noAnimation && !this.__inHover && animationCfg && animationCfg.duration > 0, animationCfg);\r\n if (this._textContent) {\r\n this._textContent.useStates(states);\r\n }\r\n if (this._textGuide) {\r\n this._textGuide.useStates(states);\r\n }\r\n this._updateAnimationTargets();\r\n this.currentStates = states.slice();\r\n this.markRedraw();\r\n if (!useHoverLayer && this.__inHover) {\r\n this._toggleHoverLayerFlag(false);\r\n this.__dirty &= ~Element.REDARAW_BIT;\r\n }\r\n }\r\n };\r\n Element.prototype._updateAnimationTargets = function () {\r\n for (var i = 0; i < this.animators.length; i++) {\r\n var animator = this.animators[i];\r\n if (animator.targetName) {\r\n animator.changeTarget(this[animator.targetName]);\r\n }\r\n }\r\n };\r\n Element.prototype.removeState = function (state) {\r\n var idx = indexOf(this.currentStates, state);\r\n if (idx >= 0) {\r\n var currentStates = this.currentStates.slice();\r\n currentStates.splice(idx, 1);\r\n this.useStates(currentStates);\r\n }\r\n };\r\n Element.prototype.replaceState = function (oldState, newState, forceAdd) {\r\n var currentStates = this.currentStates.slice();\r\n var idx = indexOf(currentStates, oldState);\r\n var newStateExists = indexOf(currentStates, newState) >= 0;\r\n if (idx >= 0) {\r\n if (!newStateExists) {\r\n currentStates[idx] = newState;\r\n }\r\n else {\r\n currentStates.splice(idx, 1);\r\n }\r\n }\r\n else if (forceAdd && !newStateExists) {\r\n currentStates.push(newState);\r\n }\r\n this.useStates(currentStates);\r\n };\r\n Element.prototype.toggleState = function (state, enable) {\r\n if (enable) {\r\n this.useState(state, true);\r\n }\r\n else {\r\n this.removeState(state);\r\n }\r\n };\r\n Element.prototype._mergeStates = function (states) {\r\n var mergedState = {};\r\n var mergedTextConfig;\r\n for (var i = 0; i < states.length; i++) {\r\n var state = states[i];\r\n extend(mergedState, state);\r\n if (state.textConfig) {\r\n mergedTextConfig = mergedTextConfig || {};\r\n extend(mergedTextConfig, state.textConfig);\r\n }\r\n }\r\n if (mergedTextConfig) {\r\n mergedState.textConfig = mergedTextConfig;\r\n }\r\n return mergedState;\r\n };\r\n Element.prototype._applyStateObj = function (stateName, state, normalState, keepCurrentStates, transition, animationCfg) {\r\n var needsRestoreToNormal = !(state && keepCurrentStates);\r\n if (state && state.textConfig) {\r\n this.textConfig = extend({}, keepCurrentStates ? this.textConfig : normalState.textConfig);\r\n extend(this.textConfig, state.textConfig);\r\n }\r\n else if (needsRestoreToNormal) {\r\n if (normalState.textConfig) {\r\n this.textConfig = normalState.textConfig;\r\n }\r\n }\r\n var transitionTarget = {};\r\n var hasTransition = false;\r\n for (var i = 0; i < PRIMARY_STATES_KEYS.length; i++) {\r\n var key = PRIMARY_STATES_KEYS[i];\r\n var propNeedsTransition = transition && DEFAULT_ANIMATABLE_MAP[key];\r\n if (state && state[key] != null) {\r\n if (propNeedsTransition) {\r\n hasTransition = true;\r\n transitionTarget[key] = state[key];\r\n }\r\n else {\r\n this[key] = state[key];\r\n }\r\n }\r\n else if (needsRestoreToNormal) {\r\n if (normalState[key] != null) {\r\n if (propNeedsTransition) {\r\n hasTransition = true;\r\n transitionTarget[key] = normalState[key];\r\n }\r\n else {\r\n this[key] = normalState[key];\r\n }\r\n }\r\n }\r\n }\r\n if (!transition) {\r\n for (var i = 0; i < this.animators.length; i++) {\r\n var animator = this.animators[i];\r\n var targetName = animator.targetName;\r\n animator.__changeFinalValue(targetName\r\n ? (state || normalState)[targetName]\r\n : (state || normalState));\r\n }\r\n }\r\n if (hasTransition) {\r\n this._transitionState(stateName, transitionTarget, animationCfg);\r\n }\r\n };\r\n Element.prototype._attachComponent = function (componentEl) {\r\n if (componentEl.__zr && !componentEl.__hostTarget) {\r\n throw new Error('Text element has been added to zrender.');\r\n }\r\n if (componentEl === this) {\r\n throw new Error('Recursive component attachment.');\r\n }\r\n var zr = this.__zr;\r\n if (zr) {\r\n componentEl.addSelfToZr(zr);\r\n }\r\n componentEl.__zr = zr;\r\n componentEl.__hostTarget = this;\r\n };\r\n Element.prototype._detachComponent = function (componentEl) {\r\n if (componentEl.__zr) {\r\n componentEl.removeSelfFromZr(componentEl.__zr);\r\n }\r\n componentEl.__zr = null;\r\n componentEl.__hostTarget = null;\r\n };\r\n Element.prototype.getClipPath = function () {\r\n return this._clipPath;\r\n };\r\n Element.prototype.setClipPath = function (clipPath) {\r\n if (this._clipPath && this._clipPath !== clipPath) {\r\n this.removeClipPath();\r\n }\r\n this._attachComponent(clipPath);\r\n this._clipPath = clipPath;\r\n this.markRedraw();\r\n };\r\n Element.prototype.removeClipPath = function () {\r\n var clipPath = this._clipPath;\r\n if (clipPath) {\r\n this._detachComponent(clipPath);\r\n this._clipPath = null;\r\n this.markRedraw();\r\n }\r\n };\r\n Element.prototype.getTextContent = function () {\r\n return this._textContent;\r\n };\r\n Element.prototype.setTextContent = function (textEl) {\r\n var previousTextContent = this._textContent;\r\n if (previousTextContent === textEl) {\r\n return;\r\n }\r\n if (previousTextContent && previousTextContent !== textEl) {\r\n this.removeTextContent();\r\n }\r\n if (textEl.__zr && !textEl.__hostTarget) {\r\n throw new Error('Text element has been added to zrender.');\r\n }\r\n textEl.attachedTransform = new Transformable();\r\n this._attachComponent(textEl);\r\n this._textContent = textEl;\r\n this.markRedraw();\r\n };\r\n Element.prototype.setTextConfig = function (cfg) {\r\n if (!this.textConfig) {\r\n this.textConfig = {};\r\n }\r\n extend(this.textConfig, cfg);\r\n this.markRedraw();\r\n };\r\n Element.prototype.removeTextContent = function () {\r\n var textEl = this._textContent;\r\n if (textEl) {\r\n textEl.attachedTransform = null;\r\n this._detachComponent(textEl);\r\n this._textContent = null;\r\n this._innerTextDefaultStyle = null;\r\n this.markRedraw();\r\n }\r\n };\r\n Element.prototype.getTextGuideLine = function () {\r\n return this._textGuide;\r\n };\r\n Element.prototype.setTextGuideLine = function (guideLine) {\r\n if (this._textGuide && this._textGuide !== guideLine) {\r\n this.removeTextGuideLine();\r\n }\r\n this._attachComponent(guideLine);\r\n this._textGuide = guideLine;\r\n this.markRedraw();\r\n };\r\n Element.prototype.removeTextGuideLine = function () {\r\n var textGuide = this._textGuide;\r\n if (textGuide) {\r\n this._detachComponent(textGuide);\r\n this._textGuide = null;\r\n this.markRedraw();\r\n }\r\n };\r\n Element.prototype.markRedraw = function () {\r\n this.__dirty |= Element.REDARAW_BIT;\r\n var zr = this.__zr;\r\n if (zr) {\r\n if (this.__inHover) {\r\n zr.refreshHover();\r\n }\r\n else {\r\n zr.refresh();\r\n }\r\n }\r\n if (this.__hostTarget) {\r\n this.__hostTarget.markRedraw();\r\n }\r\n };\r\n Element.prototype.dirty = function () {\r\n this.markRedraw();\r\n };\r\n Element.prototype._toggleHoverLayerFlag = function (inHover) {\r\n this.__inHover = inHover;\r\n var textContent = this._textContent;\r\n var textGuide = this._textGuide;\r\n if (textContent) {\r\n textContent.__inHover = inHover;\r\n }\r\n if (textGuide) {\r\n textGuide.__inHover = inHover;\r\n }\r\n };\r\n Element.prototype.addSelfToZr = function (zr) {\r\n this.__zr = zr;\r\n var animators = this.animators;\r\n if (animators) {\r\n for (var i = 0; i < animators.length; i++) {\r\n zr.animation.addAnimator(animators[i]);\r\n }\r\n }\r\n if (this._clipPath) {\r\n this._clipPath.addSelfToZr(zr);\r\n }\r\n if (this._textContent) {\r\n this._textContent.addSelfToZr(zr);\r\n }\r\n if (this._textGuide) {\r\n this._textGuide.addSelfToZr(zr);\r\n }\r\n };\r\n Element.prototype.removeSelfFromZr = function (zr) {\r\n this.__zr = null;\r\n var animators = this.animators;\r\n if (animators) {\r\n for (var i = 0; i < animators.length; i++) {\r\n zr.animation.removeAnimator(animators[i]);\r\n }\r\n }\r\n if (this._clipPath) {\r\n this._clipPath.removeSelfFromZr(zr);\r\n }\r\n if (this._textContent) {\r\n this._textContent.removeSelfFromZr(zr);\r\n }\r\n if (this._textGuide) {\r\n this._textGuide.removeSelfFromZr(zr);\r\n }\r\n };\r\n Element.prototype.animate = function (key, loop) {\r\n var target = key ? this[key] : this;\r\n if (!target) {\r\n logError('Property \"'\r\n + key\r\n + '\" is not existed in element '\r\n + this.id);\r\n return;\r\n }\r\n var animator = new Animator(target, loop);\r\n this.addAnimator(animator, key);\r\n return animator;\r\n };\r\n Element.prototype.addAnimator = function (animator, key) {\r\n var zr = this.__zr;\r\n var el = this;\r\n animator.during(function () {\r\n el.updateDuringAnimation(key);\r\n }).done(function () {\r\n var animators = el.animators;\r\n var idx = indexOf(animators, animator);\r\n if (idx >= 0) {\r\n animators.splice(idx, 1);\r\n }\r\n });\r\n this.animators.push(animator);\r\n if (zr) {\r\n zr.animation.addAnimator(animator);\r\n }\r\n zr && zr.wakeUp();\r\n };\r\n Element.prototype.updateDuringAnimation = function (key) {\r\n this.markRedraw();\r\n };\r\n Element.prototype.stopAnimation = function (scope, forwardToLast) {\r\n var animators = this.animators;\r\n var len = animators.length;\r\n var leftAnimators = [];\r\n for (var i = 0; i < len; i++) {\r\n var animator = animators[i];\r\n if (!scope || scope === animator.scope) {\r\n animator.stop(forwardToLast);\r\n }\r\n else {\r\n leftAnimators.push(animator);\r\n }\r\n }\r\n this.animators = leftAnimators;\r\n return this;\r\n };\r\n Element.prototype.animateTo = function (target, cfg, animationProps) {\r\n animateTo(this, target, cfg, animationProps);\r\n };\r\n Element.prototype.animateFrom = function (target, cfg, animationProps) {\r\n animateTo(this, target, cfg, animationProps, true);\r\n };\r\n Element.prototype._transitionState = function (stateName, target, cfg, animationProps) {\r\n var animators = animateTo(this, target, cfg, animationProps);\r\n for (var i = 0; i < animators.length; i++) {\r\n animators[i].__fromStateTransition = stateName;\r\n }\r\n };\r\n Element.prototype.getBoundingRect = function () {\r\n return null;\r\n };\r\n Element.prototype.getPaintRect = function () {\r\n return null;\r\n };\r\n Element.REDARAW_BIT = 1;\r\n Element.initDefaultProps = (function () {\r\n var elProto = Element.prototype;\r\n elProto.type = 'element';\r\n elProto.name = '';\r\n elProto.ignore = false;\r\n elProto.silent = false;\r\n elProto.isGroup = false;\r\n elProto.draggable = false;\r\n elProto.dragging = false;\r\n elProto.ignoreClip = false;\r\n elProto.__inHover = false;\r\n elProto.__dirty = Element.REDARAW_BIT;\r\n var logs = {};\r\n function logDeprecatedError(key, xKey, yKey) {\r\n if (!logs[key + xKey + yKey]) {\r\n console.warn(\"DEPRECATED: '\" + key + \"' has been deprecated. use '\" + xKey + \"', '\" + yKey + \"' instead\");\r\n logs[key + xKey + yKey] = true;\r\n }\r\n }\r\n function createLegacyProperty(key, privateKey, xKey, yKey) {\r\n Object.defineProperty(elProto, key, {\r\n get: function () {\r\n logDeprecatedError(key, xKey, yKey);\r\n if (!this[privateKey]) {\r\n var pos = this[privateKey] = [];\r\n enhanceArray(this, pos);\r\n }\r\n return this[privateKey];\r\n },\r\n set: function (pos) {\r\n logDeprecatedError(key, xKey, yKey);\r\n this[xKey] = pos[0];\r\n this[yKey] = pos[1];\r\n this[privateKey] = pos;\r\n enhanceArray(this, pos);\r\n }\r\n });\r\n function enhanceArray(self, pos) {\r\n Object.defineProperty(pos, 0, {\r\n get: function () {\r\n return self[xKey];\r\n },\r\n set: function (val) {\r\n self[xKey] = val;\r\n }\r\n });\r\n Object.defineProperty(pos, 1, {\r\n get: function () {\r\n return self[yKey];\r\n },\r\n set: function (val) {\r\n self[yKey] = val;\r\n }\r\n });\r\n }\r\n }\r\n if (Object.defineProperty && (!env.browser.ie || env.browser.version > 8)) {\r\n createLegacyProperty('position', '_legacyPos', 'x', 'y');\r\n createLegacyProperty('scale', '_legacyScale', 'scaleX', 'scaleY');\r\n createLegacyProperty('origin', '_legacyOrigin', 'originX', 'originY');\r\n }\r\n })();\r\n return Element;\r\n }());\r\n mixin(Element, Eventful);\r\n mixin(Element, Transformable);\r\n function animateTo(animatable, target, cfg, animationProps, reverse) {\r\n cfg = cfg || {};\r\n var animators = [];\r\n animateToShallow(animatable, '', animatable, target, cfg, animationProps, animators, reverse);\r\n var finishCount = animators.length;\r\n var doneHappened = false;\r\n var cfgDone = cfg.done;\r\n var cfgAborted = cfg.aborted;\r\n var doneCb = function () {\r\n doneHappened = true;\r\n finishCount--;\r\n if (finishCount <= 0) {\r\n doneHappened\r\n ? (cfgDone && cfgDone())\r\n : (cfgAborted && cfgAborted());\r\n }\r\n };\r\n var abortedCb = function () {\r\n finishCount--;\r\n if (finishCount <= 0) {\r\n doneHappened\r\n ? (cfgDone && cfgDone())\r\n : (cfgAborted && cfgAborted());\r\n }\r\n };\r\n if (!finishCount) {\r\n cfgDone && cfgDone();\r\n }\r\n if (animators.length > 0 && cfg.during) {\r\n animators[0].during(function (target, percent) {\r\n cfg.during(percent);\r\n });\r\n }\r\n for (var i = 0; i < animators.length; i++) {\r\n var animator = animators[i];\r\n if (doneCb) {\r\n animator.done(doneCb);\r\n }\r\n if (abortedCb) {\r\n animator.aborted(abortedCb);\r\n }\r\n animator.start(cfg.easing, cfg.force);\r\n }\r\n return animators;\r\n }\r\n function copyArrShallow(source, target, len) {\r\n for (var i = 0; i < len; i++) {\r\n source[i] = target[i];\r\n }\r\n }\r\n function is2DArray(value) {\r\n return isArrayLike(value[0]);\r\n }\r\n function copyValue(target, source, key) {\r\n if (isArrayLike(source[key])) {\r\n if (!isArrayLike(target[key])) {\r\n target[key] = [];\r\n }\r\n if (isTypedArray(source[key])) {\r\n var len = source[key].length;\r\n if (target[key].length !== len) {\r\n target[key] = new (source[key].constructor)(len);\r\n copyArrShallow(target[key], source[key], len);\r\n }\r\n }\r\n else {\r\n var sourceArr = source[key];\r\n var targetArr = target[key];\r\n var len0 = sourceArr.length;\r\n if (is2DArray(sourceArr)) {\r\n var len1 = sourceArr[0].length;\r\n for (var i = 0; i < len0; i++) {\r\n if (!targetArr[i]) {\r\n targetArr[i] = Array.prototype.slice.call(sourceArr[i]);\r\n }\r\n else {\r\n copyArrShallow(targetArr[i], sourceArr[i], len1);\r\n }\r\n }\r\n }\r\n else {\r\n copyArrShallow(targetArr, sourceArr, len0);\r\n }\r\n targetArr.length = sourceArr.length;\r\n }\r\n }\r\n else {\r\n target[key] = source[key];\r\n }\r\n }\r\n function animateToShallow(animatable, topKey, source, target, cfg, animationProps, animators, reverse) {\r\n var animatableKeys = [];\r\n var changedKeys = [];\r\n var targetKeys = keys(target);\r\n var duration = cfg.duration;\r\n var delay = cfg.delay;\r\n var additive = cfg.additive;\r\n var setToFinal = cfg.setToFinal;\r\n var animateAll = !isObject(animationProps);\r\n for (var k = 0; k < targetKeys.length; k++) {\r\n var innerKey = targetKeys[k];\r\n if (source[innerKey] != null\r\n && target[innerKey] != null\r\n && (animateAll || animationProps[innerKey])) {\r\n if (isObject(target[innerKey]) && !isArrayLike(target[innerKey])) {\r\n if (topKey) {\r\n if (!reverse) {\r\n source[innerKey] = target[innerKey];\r\n animatable.updateDuringAnimation(topKey);\r\n }\r\n continue;\r\n }\r\n animateToShallow(animatable, innerKey, source[innerKey], target[innerKey], cfg, animationProps && animationProps[innerKey], animators, reverse);\r\n }\r\n else {\r\n animatableKeys.push(innerKey);\r\n changedKeys.push(innerKey);\r\n }\r\n }\r\n else if (!reverse) {\r\n source[innerKey] = target[innerKey];\r\n animatable.updateDuringAnimation(topKey);\r\n changedKeys.push(innerKey);\r\n }\r\n }\r\n var keyLen = animatableKeys.length;\r\n if (keyLen > 0\r\n || (cfg.force && !animators.length)) {\r\n var existsAnimators = animatable.animators;\r\n var existsAnimatorsOnSameTarget = [];\r\n for (var i = 0; i < existsAnimators.length; i++) {\r\n if (existsAnimators[i].targetName === topKey) {\r\n existsAnimatorsOnSameTarget.push(existsAnimators[i]);\r\n }\r\n }\r\n if (!additive && existsAnimatorsOnSameTarget.length) {\r\n for (var i = 0; i < existsAnimatorsOnSameTarget.length; i++) {\r\n var allAborted = existsAnimatorsOnSameTarget[i].stopTracks(changedKeys);\r\n if (allAborted) {\r\n var idx = indexOf(existsAnimators, existsAnimatorsOnSameTarget[i]);\r\n existsAnimators.splice(idx, 1);\r\n }\r\n }\r\n }\r\n var revertedSource = void 0;\r\n var reversedTarget = void 0;\r\n var sourceClone = void 0;\r\n if (reverse) {\r\n reversedTarget = {};\r\n if (setToFinal) {\r\n revertedSource = {};\r\n }\r\n for (var i = 0; i < keyLen; i++) {\r\n var innerKey = animatableKeys[i];\r\n reversedTarget[innerKey] = source[innerKey];\r\n if (setToFinal) {\r\n revertedSource[innerKey] = target[innerKey];\r\n }\r\n else {\r\n source[innerKey] = target[innerKey];\r\n }\r\n }\r\n }\r\n else if (setToFinal) {\r\n sourceClone = {};\r\n for (var i = 0; i < keyLen; i++) {\r\n var innerKey = animatableKeys[i];\r\n sourceClone[innerKey] = cloneValue(source[innerKey]);\r\n copyValue(source, target, innerKey);\r\n }\r\n }\r\n var animator = new Animator(source, false, additive ? existsAnimatorsOnSameTarget : null);\r\n animator.targetName = topKey;\r\n if (cfg.scope) {\r\n animator.scope = cfg.scope;\r\n }\r\n if (setToFinal && revertedSource) {\r\n animator.whenWithKeys(0, revertedSource, animatableKeys);\r\n }\r\n if (sourceClone) {\r\n animator.whenWithKeys(0, sourceClone, animatableKeys);\r\n }\r\n animator.whenWithKeys(duration == null ? 500 : duration, reverse ? reversedTarget : target, animatableKeys).delay(delay || 0);\r\n animatable.addAnimator(animator, topKey);\r\n animators.push(animator);\r\n }\r\n }\n\n var DEFAULT_MIN_MERGE = 32;\r\n var DEFAULT_MIN_GALLOPING = 7;\r\n function minRunLength(n) {\r\n var r = 0;\r\n while (n >= DEFAULT_MIN_MERGE) {\r\n r |= n & 1;\r\n n >>= 1;\r\n }\r\n return n + r;\r\n }\r\n function makeAscendingRun(array, lo, hi, compare) {\r\n var runHi = lo + 1;\r\n if (runHi === hi) {\r\n return 1;\r\n }\r\n if (compare(array[runHi++], array[lo]) < 0) {\r\n while (runHi < hi && compare(array[runHi], array[runHi - 1]) < 0) {\r\n runHi++;\r\n }\r\n reverseRun(array, lo, runHi);\r\n }\r\n else {\r\n while (runHi < hi && compare(array[runHi], array[runHi - 1]) >= 0) {\r\n runHi++;\r\n }\r\n }\r\n return runHi - lo;\r\n }\r\n function reverseRun(array, lo, hi) {\r\n hi--;\r\n while (lo < hi) {\r\n var t = array[lo];\r\n array[lo++] = array[hi];\r\n array[hi--] = t;\r\n }\r\n }\r\n function binaryInsertionSort(array, lo, hi, start, compare) {\r\n if (start === lo) {\r\n start++;\r\n }\r\n for (; start < hi; start++) {\r\n var pivot = array[start];\r\n var left = lo;\r\n var right = start;\r\n var mid;\r\n while (left < right) {\r\n mid = left + right >>> 1;\r\n if (compare(pivot, array[mid]) < 0) {\r\n right = mid;\r\n }\r\n else {\r\n left = mid + 1;\r\n }\r\n }\r\n var n = start - left;\r\n switch (n) {\r\n case 3:\r\n array[left + 3] = array[left + 2];\r\n case 2:\r\n array[left + 2] = array[left + 1];\r\n case 1:\r\n array[left + 1] = array[left];\r\n break;\r\n default:\r\n while (n > 0) {\r\n array[left + n] = array[left + n - 1];\r\n n--;\r\n }\r\n }\r\n array[left] = pivot;\r\n }\r\n }\r\n function gallopLeft(value, array, start, length, hint, compare) {\r\n var lastOffset = 0;\r\n var maxOffset = 0;\r\n var offset = 1;\r\n if (compare(value, array[start + hint]) > 0) {\r\n maxOffset = length - hint;\r\n while (offset < maxOffset && compare(value, array[start + hint + offset]) > 0) {\r\n lastOffset = offset;\r\n offset = (offset << 1) + 1;\r\n if (offset <= 0) {\r\n offset = maxOffset;\r\n }\r\n }\r\n if (offset > maxOffset) {\r\n offset = maxOffset;\r\n }\r\n lastOffset += hint;\r\n offset += hint;\r\n }\r\n else {\r\n maxOffset = hint + 1;\r\n while (offset < maxOffset && compare(value, array[start + hint - offset]) <= 0) {\r\n lastOffset = offset;\r\n offset = (offset << 1) + 1;\r\n if (offset <= 0) {\r\n offset = maxOffset;\r\n }\r\n }\r\n if (offset > maxOffset) {\r\n offset = maxOffset;\r\n }\r\n var tmp = lastOffset;\r\n lastOffset = hint - offset;\r\n offset = hint - tmp;\r\n }\r\n lastOffset++;\r\n while (lastOffset < offset) {\r\n var m = lastOffset + (offset - lastOffset >>> 1);\r\n if (compare(value, array[start + m]) > 0) {\r\n lastOffset = m + 1;\r\n }\r\n else {\r\n offset = m;\r\n }\r\n }\r\n return offset;\r\n }\r\n function gallopRight(value, array, start, length, hint, compare) {\r\n var lastOffset = 0;\r\n var maxOffset = 0;\r\n var offset = 1;\r\n if (compare(value, array[start + hint]) < 0) {\r\n maxOffset = hint + 1;\r\n while (offset < maxOffset && compare(value, array[start + hint - offset]) < 0) {\r\n lastOffset = offset;\r\n offset = (offset << 1) + 1;\r\n if (offset <= 0) {\r\n offset = maxOffset;\r\n }\r\n }\r\n if (offset > maxOffset) {\r\n offset = maxOffset;\r\n }\r\n var tmp = lastOffset;\r\n lastOffset = hint - offset;\r\n offset = hint - tmp;\r\n }\r\n else {\r\n maxOffset = length - hint;\r\n while (offset < maxOffset && compare(value, array[start + hint + offset]) >= 0) {\r\n lastOffset = offset;\r\n offset = (offset << 1) + 1;\r\n if (offset <= 0) {\r\n offset = maxOffset;\r\n }\r\n }\r\n if (offset > maxOffset) {\r\n offset = maxOffset;\r\n }\r\n lastOffset += hint;\r\n offset += hint;\r\n }\r\n lastOffset++;\r\n while (lastOffset < offset) {\r\n var m = lastOffset + (offset - lastOffset >>> 1);\r\n if (compare(value, array[start + m]) < 0) {\r\n offset = m;\r\n }\r\n else {\r\n lastOffset = m + 1;\r\n }\r\n }\r\n return offset;\r\n }\r\n function TimSort(array, compare) {\r\n var minGallop = DEFAULT_MIN_GALLOPING;\r\n var length = 0;\r\n var runStart;\r\n var runLength;\r\n var stackSize = 0;\r\n length = array.length;\r\n var tmp = [];\r\n runStart = [];\r\n runLength = [];\r\n function pushRun(_runStart, _runLength) {\r\n runStart[stackSize] = _runStart;\r\n runLength[stackSize] = _runLength;\r\n stackSize += 1;\r\n }\r\n function mergeRuns() {\r\n while (stackSize > 1) {\r\n var n = stackSize - 2;\r\n if ((n >= 1 && runLength[n - 1] <= runLength[n] + runLength[n + 1])\r\n || (n >= 2 && runLength[n - 2] <= runLength[n] + runLength[n - 1])) {\r\n if (runLength[n - 1] < runLength[n + 1]) {\r\n n--;\r\n }\r\n }\r\n else if (runLength[n] > runLength[n + 1]) {\r\n break;\r\n }\r\n mergeAt(n);\r\n }\r\n }\r\n function forceMergeRuns() {\r\n while (stackSize > 1) {\r\n var n = stackSize - 2;\r\n if (n > 0 && runLength[n - 1] < runLength[n + 1]) {\r\n n--;\r\n }\r\n mergeAt(n);\r\n }\r\n }\r\n function mergeAt(i) {\r\n var start1 = runStart[i];\r\n var length1 = runLength[i];\r\n var start2 = runStart[i + 1];\r\n var length2 = runLength[i + 1];\r\n runLength[i] = length1 + length2;\r\n if (i === stackSize - 3) {\r\n runStart[i + 1] = runStart[i + 2];\r\n runLength[i + 1] = runLength[i + 2];\r\n }\r\n stackSize--;\r\n var k = gallopRight(array[start2], array, start1, length1, 0, compare);\r\n start1 += k;\r\n length1 -= k;\r\n if (length1 === 0) {\r\n return;\r\n }\r\n length2 = gallopLeft(array[start1 + length1 - 1], array, start2, length2, length2 - 1, compare);\r\n if (length2 === 0) {\r\n return;\r\n }\r\n if (length1 <= length2) {\r\n mergeLow(start1, length1, start2, length2);\r\n }\r\n else {\r\n mergeHigh(start1, length1, start2, length2);\r\n }\r\n }\r\n function mergeLow(start1, length1, start2, length2) {\r\n var i = 0;\r\n for (i = 0; i < length1; i++) {\r\n tmp[i] = array[start1 + i];\r\n }\r\n var cursor1 = 0;\r\n var cursor2 = start2;\r\n var dest = start1;\r\n array[dest++] = array[cursor2++];\r\n if (--length2 === 0) {\r\n for (i = 0; i < length1; i++) {\r\n array[dest + i] = tmp[cursor1 + i];\r\n }\r\n return;\r\n }\r\n if (length1 === 1) {\r\n for (i = 0; i < length2; i++) {\r\n array[dest + i] = array[cursor2 + i];\r\n }\r\n array[dest + length2] = tmp[cursor1];\r\n return;\r\n }\r\n var _minGallop = minGallop;\r\n var count1;\r\n var count2;\r\n var exit;\r\n while (1) {\r\n count1 = 0;\r\n count2 = 0;\r\n exit = false;\r\n do {\r\n if (compare(array[cursor2], tmp[cursor1]) < 0) {\r\n array[dest++] = array[cursor2++];\r\n count2++;\r\n count1 = 0;\r\n if (--length2 === 0) {\r\n exit = true;\r\n break;\r\n }\r\n }\r\n else {\r\n array[dest++] = tmp[cursor1++];\r\n count1++;\r\n count2 = 0;\r\n if (--length1 === 1) {\r\n exit = true;\r\n break;\r\n }\r\n }\r\n } while ((count1 | count2) < _minGallop);\r\n if (exit) {\r\n break;\r\n }\r\n do {\r\n count1 = gallopRight(array[cursor2], tmp, cursor1, length1, 0, compare);\r\n if (count1 !== 0) {\r\n for (i = 0; i < count1; i++) {\r\n array[dest + i] = tmp[cursor1 + i];\r\n }\r\n dest += count1;\r\n cursor1 += count1;\r\n length1 -= count1;\r\n if (length1 <= 1) {\r\n exit = true;\r\n break;\r\n }\r\n }\r\n array[dest++] = array[cursor2++];\r\n if (--length2 === 0) {\r\n exit = true;\r\n break;\r\n }\r\n count2 = gallopLeft(tmp[cursor1], array, cursor2, length2, 0, compare);\r\n if (count2 !== 0) {\r\n for (i = 0; i < count2; i++) {\r\n array[dest + i] = array[cursor2 + i];\r\n }\r\n dest += count2;\r\n cursor2 += count2;\r\n length2 -= count2;\r\n if (length2 === 0) {\r\n exit = true;\r\n break;\r\n }\r\n }\r\n array[dest++] = tmp[cursor1++];\r\n if (--length1 === 1) {\r\n exit = true;\r\n break;\r\n }\r\n _minGallop--;\r\n } while (count1 >= DEFAULT_MIN_GALLOPING || count2 >= DEFAULT_MIN_GALLOPING);\r\n if (exit) {\r\n break;\r\n }\r\n if (_minGallop < 0) {\r\n _minGallop = 0;\r\n }\r\n _minGallop += 2;\r\n }\r\n minGallop = _minGallop;\r\n minGallop < 1 && (minGallop = 1);\r\n if (length1 === 1) {\r\n for (i = 0; i < length2; i++) {\r\n array[dest + i] = array[cursor2 + i];\r\n }\r\n array[dest + length2] = tmp[cursor1];\r\n }\r\n else if (length1 === 0) {\r\n throw new Error();\r\n }\r\n else {\r\n for (i = 0; i < length1; i++) {\r\n array[dest + i] = tmp[cursor1 + i];\r\n }\r\n }\r\n }\r\n function mergeHigh(start1, length1, start2, length2) {\r\n var i = 0;\r\n for (i = 0; i < length2; i++) {\r\n tmp[i] = array[start2 + i];\r\n }\r\n var cursor1 = start1 + length1 - 1;\r\n var cursor2 = length2 - 1;\r\n var dest = start2 + length2 - 1;\r\n var customCursor = 0;\r\n var customDest = 0;\r\n array[dest--] = array[cursor1--];\r\n if (--length1 === 0) {\r\n customCursor = dest - (length2 - 1);\r\n for (i = 0; i < length2; i++) {\r\n array[customCursor + i] = tmp[i];\r\n }\r\n return;\r\n }\r\n if (length2 === 1) {\r\n dest -= length1;\r\n cursor1 -= length1;\r\n customDest = dest + 1;\r\n customCursor = cursor1 + 1;\r\n for (i = length1 - 1; i >= 0; i--) {\r\n array[customDest + i] = array[customCursor + i];\r\n }\r\n array[dest] = tmp[cursor2];\r\n return;\r\n }\r\n var _minGallop = minGallop;\r\n while (true) {\r\n var count1 = 0;\r\n var count2 = 0;\r\n var exit = false;\r\n do {\r\n if (compare(tmp[cursor2], array[cursor1]) < 0) {\r\n array[dest--] = array[cursor1--];\r\n count1++;\r\n count2 = 0;\r\n if (--length1 === 0) {\r\n exit = true;\r\n break;\r\n }\r\n }\r\n else {\r\n array[dest--] = tmp[cursor2--];\r\n count2++;\r\n count1 = 0;\r\n if (--length2 === 1) {\r\n exit = true;\r\n break;\r\n }\r\n }\r\n } while ((count1 | count2) < _minGallop);\r\n if (exit) {\r\n break;\r\n }\r\n do {\r\n count1 = length1 - gallopRight(tmp[cursor2], array, start1, length1, length1 - 1, compare);\r\n if (count1 !== 0) {\r\n dest -= count1;\r\n cursor1 -= count1;\r\n length1 -= count1;\r\n customDest = dest + 1;\r\n customCursor = cursor1 + 1;\r\n for (i = count1 - 1; i >= 0; i--) {\r\n array[customDest + i] = array[customCursor + i];\r\n }\r\n if (length1 === 0) {\r\n exit = true;\r\n break;\r\n }\r\n }\r\n array[dest--] = tmp[cursor2--];\r\n if (--length2 === 1) {\r\n exit = true;\r\n break;\r\n }\r\n count2 = length2 - gallopLeft(array[cursor1], tmp, 0, length2, length2 - 1, compare);\r\n if (count2 !== 0) {\r\n dest -= count2;\r\n cursor2 -= count2;\r\n length2 -= count2;\r\n customDest = dest + 1;\r\n customCursor = cursor2 + 1;\r\n for (i = 0; i < count2; i++) {\r\n array[customDest + i] = tmp[customCursor + i];\r\n }\r\n if (length2 <= 1) {\r\n exit = true;\r\n break;\r\n }\r\n }\r\n array[dest--] = array[cursor1--];\r\n if (--length1 === 0) {\r\n exit = true;\r\n break;\r\n }\r\n _minGallop--;\r\n } while (count1 >= DEFAULT_MIN_GALLOPING || count2 >= DEFAULT_MIN_GALLOPING);\r\n if (exit) {\r\n break;\r\n }\r\n if (_minGallop < 0) {\r\n _minGallop = 0;\r\n }\r\n _minGallop += 2;\r\n }\r\n minGallop = _minGallop;\r\n if (minGallop < 1) {\r\n minGallop = 1;\r\n }\r\n if (length2 === 1) {\r\n dest -= length1;\r\n cursor1 -= length1;\r\n customDest = dest + 1;\r\n customCursor = cursor1 + 1;\r\n for (i = length1 - 1; i >= 0; i--) {\r\n array[customDest + i] = array[customCursor + i];\r\n }\r\n array[dest] = tmp[cursor2];\r\n }\r\n else if (length2 === 0) {\r\n throw new Error();\r\n }\r\n else {\r\n customCursor = dest - (length2 - 1);\r\n for (i = 0; i < length2; i++) {\r\n array[customCursor + i] = tmp[i];\r\n }\r\n }\r\n }\r\n return {\r\n mergeRuns: mergeRuns,\r\n forceMergeRuns: forceMergeRuns,\r\n pushRun: pushRun\r\n };\r\n }\r\n function sort(array, compare, lo, hi) {\r\n if (!lo) {\r\n lo = 0;\r\n }\r\n if (!hi) {\r\n hi = array.length;\r\n }\r\n var remaining = hi - lo;\r\n if (remaining < 2) {\r\n return;\r\n }\r\n var runLength = 0;\r\n if (remaining < DEFAULT_MIN_MERGE) {\r\n runLength = makeAscendingRun(array, lo, hi, compare);\r\n binaryInsertionSort(array, lo, hi, lo + runLength, compare);\r\n return;\r\n }\r\n var ts = TimSort(array, compare);\r\n var minRun = minRunLength(remaining);\r\n do {\r\n runLength = makeAscendingRun(array, lo, hi, compare);\r\n if (runLength < minRun) {\r\n var force = remaining;\r\n if (force > minRun) {\r\n force = minRun;\r\n }\r\n binaryInsertionSort(array, lo, lo + force, lo + runLength, compare);\r\n runLength = force;\r\n }\r\n ts.pushRun(lo, runLength);\r\n ts.mergeRuns();\r\n remaining -= runLength;\r\n lo += runLength;\r\n } while (remaining !== 0);\r\n ts.forceMergeRuns();\r\n }\n\n var invalidZErrorLogged = false;\r\n function logInvalidZError() {\r\n if (invalidZErrorLogged) {\r\n return;\r\n }\r\n invalidZErrorLogged = true;\r\n console.warn('z / z2 / zlevel of displayable is invalid, which may cause unexpected errors');\r\n }\r\n function shapeCompareFunc(a, b) {\r\n if (a.zlevel === b.zlevel) {\r\n if (a.z === b.z) {\r\n return a.z2 - b.z2;\r\n }\r\n return a.z - b.z;\r\n }\r\n return a.zlevel - b.zlevel;\r\n }\r\n var Storage = (function () {\r\n function Storage() {\r\n this._roots = [];\r\n this._displayList = [];\r\n this._displayListLen = 0;\r\n this.displayableSortFunc = shapeCompareFunc;\r\n }\r\n Storage.prototype.traverse = function (cb, context) {\r\n for (var i = 0; i < this._roots.length; i++) {\r\n this._roots[i].traverse(cb, context);\r\n }\r\n };\r\n Storage.prototype.getDisplayList = function (update, includeIgnore) {\r\n includeIgnore = includeIgnore || false;\r\n var displayList = this._displayList;\r\n if (update || !displayList.length) {\r\n this.updateDisplayList(includeIgnore);\r\n }\r\n return displayList;\r\n };\r\n Storage.prototype.updateDisplayList = function (includeIgnore) {\r\n this._displayListLen = 0;\r\n var roots = this._roots;\r\n var displayList = this._displayList;\r\n for (var i = 0, len = roots.length; i < len; i++) {\r\n this._updateAndAddDisplayable(roots[i], null, includeIgnore);\r\n }\r\n displayList.length = this._displayListLen;\r\n env.canvasSupported && sort(displayList, shapeCompareFunc);\r\n };\r\n Storage.prototype._updateAndAddDisplayable = function (el, clipPaths, includeIgnore) {\r\n if (el.ignore && !includeIgnore) {\r\n return;\r\n }\r\n el.beforeUpdate();\r\n el.update();\r\n el.afterUpdate();\r\n var userSetClipPath = el.getClipPath();\r\n if (el.ignoreClip) {\r\n clipPaths = null;\r\n }\r\n else if (userSetClipPath) {\r\n if (clipPaths) {\r\n clipPaths = clipPaths.slice();\r\n }\r\n else {\r\n clipPaths = [];\r\n }\r\n var currentClipPath = userSetClipPath;\r\n var parentClipPath = el;\r\n while (currentClipPath) {\r\n currentClipPath.parent = parentClipPath;\r\n currentClipPath.updateTransform();\r\n clipPaths.push(currentClipPath);\r\n parentClipPath = currentClipPath;\r\n currentClipPath = currentClipPath.getClipPath();\r\n }\r\n }\r\n if (el.childrenRef) {\r\n var children = el.childrenRef();\r\n for (var i = 0; i < children.length; i++) {\r\n var child = children[i];\r\n if (el.__dirty) {\r\n child.__dirty |= Element.REDARAW_BIT;\r\n }\r\n this._updateAndAddDisplayable(child, clipPaths, includeIgnore);\r\n }\r\n el.__dirty = 0;\r\n }\r\n else {\r\n var disp = el;\r\n if (clipPaths && clipPaths.length) {\r\n disp.__clipPaths = clipPaths;\r\n }\r\n else if (disp.__clipPaths && disp.__clipPaths.length > 0) {\r\n disp.__clipPaths = [];\r\n }\r\n if (isNaN(disp.z)) {\r\n logInvalidZError();\r\n disp.z = 0;\r\n }\r\n if (isNaN(disp.z2)) {\r\n logInvalidZError();\r\n disp.z2 = 0;\r\n }\r\n if (isNaN(disp.zlevel)) {\r\n logInvalidZError();\r\n disp.zlevel = 0;\r\n }\r\n this._displayList[this._displayListLen++] = disp;\r\n }\r\n var decalEl = el.getDecalElement && el.getDecalElement();\r\n if (decalEl) {\r\n this._updateAndAddDisplayable(decalEl, clipPaths, includeIgnore);\r\n }\r\n var textGuide = el.getTextGuideLine();\r\n if (textGuide) {\r\n this._updateAndAddDisplayable(textGuide, clipPaths, includeIgnore);\r\n }\r\n var textEl = el.getTextContent();\r\n if (textEl) {\r\n this._updateAndAddDisplayable(textEl, clipPaths, includeIgnore);\r\n }\r\n };\r\n Storage.prototype.addRoot = function (el) {\r\n if (el.__zr && el.__zr.storage === this) {\r\n return;\r\n }\r\n this._roots.push(el);\r\n };\r\n Storage.prototype.delRoot = function (el) {\r\n if (el instanceof Array) {\r\n for (var i = 0, l = el.length; i < l; i++) {\r\n this.delRoot(el[i]);\r\n }\r\n return;\r\n }\r\n var idx = indexOf(this._roots, el);\r\n if (idx >= 0) {\r\n this._roots.splice(idx, 1);\r\n }\r\n };\r\n Storage.prototype.delAllRoots = function () {\r\n this._roots = [];\r\n this._displayList = [];\r\n this._displayListLen = 0;\r\n return;\r\n };\r\n Storage.prototype.getRoots = function () {\r\n return this._roots;\r\n };\r\n Storage.prototype.dispose = function () {\r\n this._displayList = null;\r\n this._roots = null;\r\n };\r\n return Storage;\r\n }());\n\n var requestAnimationFrame;\r\n requestAnimationFrame = (typeof window !== 'undefined'\r\n && ((window.requestAnimationFrame && window.requestAnimationFrame.bind(window))\r\n || (window.msRequestAnimationFrame && window.msRequestAnimationFrame.bind(window))\r\n || window.mozRequestAnimationFrame\r\n || window.webkitRequestAnimationFrame)) || function (func) {\r\n return setTimeout(func, 16);\r\n };\r\n var requestAnimationFrame$1 = requestAnimationFrame;\n\n var Animation = (function (_super) {\r\n __extends(Animation, _super);\r\n function Animation(opts) {\r\n var _this = _super.call(this) || this;\r\n _this._running = false;\r\n _this._time = 0;\r\n _this._pausedTime = 0;\r\n _this._pauseStart = 0;\r\n _this._paused = false;\r\n opts = opts || {};\r\n _this.stage = opts.stage || {};\r\n _this.onframe = opts.onframe || function () { };\r\n return _this;\r\n }\r\n Animation.prototype.addClip = function (clip) {\r\n if (clip.animation) {\r\n this.removeClip(clip);\r\n }\r\n if (!this._clipsHead) {\r\n this._clipsHead = this._clipsTail = clip;\r\n }\r\n else {\r\n this._clipsTail.next = clip;\r\n clip.prev = this._clipsTail;\r\n clip.next = null;\r\n this._clipsTail = clip;\r\n }\r\n clip.animation = this;\r\n };\r\n Animation.prototype.addAnimator = function (animator) {\r\n animator.animation = this;\r\n var clip = animator.getClip();\r\n if (clip) {\r\n this.addClip(clip);\r\n }\r\n };\r\n Animation.prototype.removeClip = function (clip) {\r\n if (!clip.animation) {\r\n return;\r\n }\r\n var prev = clip.prev;\r\n var next = clip.next;\r\n if (prev) {\r\n prev.next = next;\r\n }\r\n else {\r\n this._clipsHead = next;\r\n }\r\n if (next) {\r\n next.prev = prev;\r\n }\r\n else {\r\n this._clipsTail = prev;\r\n }\r\n clip.next = clip.prev = clip.animation = null;\r\n };\r\n Animation.prototype.removeAnimator = function (animator) {\r\n var clip = animator.getClip();\r\n if (clip) {\r\n this.removeClip(clip);\r\n }\r\n animator.animation = null;\r\n };\r\n Animation.prototype.update = function (notTriggerFrameAndStageUpdate) {\r\n var time = new Date().getTime() - this._pausedTime;\r\n var delta = time - this._time;\r\n var clip = this._clipsHead;\r\n while (clip) {\r\n var nextClip = clip.next;\r\n var finished = clip.step(time, delta);\r\n if (finished) {\r\n clip.ondestroy && clip.ondestroy();\r\n this.removeClip(clip);\r\n clip = nextClip;\r\n }\r\n else {\r\n clip = nextClip;\r\n }\r\n }\r\n this._time = time;\r\n if (!notTriggerFrameAndStageUpdate) {\r\n this.onframe(delta);\r\n this.trigger('frame', delta);\r\n this.stage.update && this.stage.update();\r\n }\r\n };\r\n Animation.prototype._startLoop = function () {\r\n var self = this;\r\n this._running = true;\r\n function step() {\r\n if (self._running) {\r\n requestAnimationFrame$1(step);\r\n !self._paused && self.update();\r\n }\r\n }\r\n requestAnimationFrame$1(step);\r\n };\r\n Animation.prototype.start = function () {\r\n if (this._running) {\r\n return;\r\n }\r\n this._time = new Date().getTime();\r\n this._pausedTime = 0;\r\n this._startLoop();\r\n };\r\n Animation.prototype.stop = function () {\r\n this._running = false;\r\n };\r\n Animation.prototype.pause = function () {\r\n if (!this._paused) {\r\n this._pauseStart = new Date().getTime();\r\n this._paused = true;\r\n }\r\n };\r\n Animation.prototype.resume = function () {\r\n if (this._paused) {\r\n this._pausedTime += (new Date().getTime()) - this._pauseStart;\r\n this._paused = false;\r\n }\r\n };\r\n Animation.prototype.clear = function () {\r\n var clip = this._clipsHead;\r\n while (clip) {\r\n var nextClip = clip.next;\r\n clip.prev = clip.next = clip.animation = null;\r\n clip = nextClip;\r\n }\r\n this._clipsHead = this._clipsTail = null;\r\n };\r\n Animation.prototype.isFinished = function () {\r\n return this._clipsHead == null;\r\n };\r\n Animation.prototype.animate = function (target, options) {\r\n options = options || {};\r\n this.start();\r\n var animator = new Animator(target, options.loop);\r\n this.addAnimator(animator);\r\n return animator;\r\n };\r\n return Animation;\r\n }(Eventful));\n\n var TOUCH_CLICK_DELAY = 300;\r\n var globalEventSupported = env.domSupported;\r\n var localNativeListenerNames = (function () {\r\n var mouseHandlerNames = [\r\n 'click', 'dblclick', 'mousewheel', 'wheel', 'mouseout',\r\n 'mouseup', 'mousedown', 'mousemove', 'contextmenu'\r\n ];\r\n var touchHandlerNames = [\r\n 'touchstart', 'touchend', 'touchmove'\r\n ];\r\n var pointerEventNameMap = {\r\n pointerdown: 1, pointerup: 1, pointermove: 1, pointerout: 1\r\n };\r\n var pointerHandlerNames = map(mouseHandlerNames, function (name) {\r\n var nm = name.replace('mouse', 'pointer');\r\n return pointerEventNameMap.hasOwnProperty(nm) ? nm : name;\r\n });\r\n return {\r\n mouse: mouseHandlerNames,\r\n touch: touchHandlerNames,\r\n pointer: pointerHandlerNames\r\n };\r\n })();\r\n var globalNativeListenerNames = {\r\n mouse: ['mousemove', 'mouseup'],\r\n pointer: ['pointermove', 'pointerup']\r\n };\r\n var wheelEventSupported = false;\r\n function isPointerFromTouch(event) {\r\n var pointerType = event.pointerType;\r\n return pointerType === 'pen' || pointerType === 'touch';\r\n }\r\n function setTouchTimer(scope) {\r\n scope.touching = true;\r\n if (scope.touchTimer != null) {\r\n clearTimeout(scope.touchTimer);\r\n scope.touchTimer = null;\r\n }\r\n scope.touchTimer = setTimeout(function () {\r\n scope.touching = false;\r\n scope.touchTimer = null;\r\n }, 700);\r\n }\r\n function markTouch(event) {\r\n event && (event.zrByTouch = true);\r\n }\r\n function normalizeGlobalEvent(instance, event) {\r\n return normalizeEvent(instance.dom, new FakeGlobalEvent(instance, event), true);\r\n }\r\n function isLocalEl(instance, el) {\r\n var elTmp = el;\r\n var isLocal = false;\r\n while (elTmp && elTmp.nodeType !== 9\r\n && !(isLocal = elTmp.domBelongToZr\r\n || (elTmp !== el && elTmp === instance.painterRoot))) {\r\n elTmp = elTmp.parentNode;\r\n }\r\n return isLocal;\r\n }\r\n var FakeGlobalEvent = (function () {\r\n function FakeGlobalEvent(instance, event) {\r\n this.stopPropagation = noop;\r\n this.stopImmediatePropagation = noop;\r\n this.preventDefault = noop;\r\n this.type = event.type;\r\n this.target = this.currentTarget = instance.dom;\r\n this.pointerType = event.pointerType;\r\n this.clientX = event.clientX;\r\n this.clientY = event.clientY;\r\n }\r\n return FakeGlobalEvent;\r\n }());\r\n var localDOMHandlers = {\r\n mousedown: function (event) {\r\n event = normalizeEvent(this.dom, event);\r\n this.__mayPointerCapture = [event.zrX, event.zrY];\r\n this.trigger('mousedown', event);\r\n },\r\n mousemove: function (event) {\r\n event = normalizeEvent(this.dom, event);\r\n var downPoint = this.__mayPointerCapture;\r\n if (downPoint && (event.zrX !== downPoint[0] || event.zrY !== downPoint[1])) {\r\n this.__togglePointerCapture(true);\r\n }\r\n this.trigger('mousemove', event);\r\n },\r\n mouseup: function (event) {\r\n event = normalizeEvent(this.dom, event);\r\n this.__togglePointerCapture(false);\r\n this.trigger('mouseup', event);\r\n },\r\n mouseout: function (event) {\r\n if (event.target !== this.dom) {\r\n return;\r\n }\r\n event = normalizeEvent(this.dom, event);\r\n if (this.__pointerCapturing) {\r\n event.zrEventControl = 'no_globalout';\r\n }\r\n var element = event.toElement || event.relatedTarget;\r\n event.zrIsToLocalDOM = isLocalEl(this, element);\r\n this.trigger('mouseout', event);\r\n },\r\n wheel: function (event) {\r\n wheelEventSupported = true;\r\n event = normalizeEvent(this.dom, event);\r\n this.trigger('mousewheel', event);\r\n },\r\n mousewheel: function (event) {\r\n if (wheelEventSupported) {\r\n return;\r\n }\r\n event = normalizeEvent(this.dom, event);\r\n this.trigger('mousewheel', event);\r\n },\r\n touchstart: function (event) {\r\n event = normalizeEvent(this.dom, event);\r\n markTouch(event);\r\n this.__lastTouchMoment = new Date();\r\n this.handler.processGesture(event, 'start');\r\n localDOMHandlers.mousemove.call(this, event);\r\n localDOMHandlers.mousedown.call(this, event);\r\n },\r\n touchmove: function (event) {\r\n event = normalizeEvent(this.dom, event);\r\n markTouch(event);\r\n this.handler.processGesture(event, 'change');\r\n localDOMHandlers.mousemove.call(this, event);\r\n },\r\n touchend: function (event) {\r\n event = normalizeEvent(this.dom, event);\r\n markTouch(event);\r\n this.handler.processGesture(event, 'end');\r\n localDOMHandlers.mouseup.call(this, event);\r\n if (+new Date() - (+this.__lastTouchMoment) < TOUCH_CLICK_DELAY) {\r\n localDOMHandlers.click.call(this, event);\r\n }\r\n },\r\n pointerdown: function (event) {\r\n localDOMHandlers.mousedown.call(this, event);\r\n },\r\n pointermove: function (event) {\r\n if (!isPointerFromTouch(event)) {\r\n localDOMHandlers.mousemove.call(this, event);\r\n }\r\n },\r\n pointerup: function (event) {\r\n localDOMHandlers.mouseup.call(this, event);\r\n },\r\n pointerout: function (event) {\r\n if (!isPointerFromTouch(event)) {\r\n localDOMHandlers.mouseout.call(this, event);\r\n }\r\n }\r\n };\r\n each(['click', 'dblclick', 'contextmenu'], function (name) {\r\n localDOMHandlers[name] = function (event) {\r\n event = normalizeEvent(this.dom, event);\r\n this.trigger(name, event);\r\n };\r\n });\r\n var globalDOMHandlers = {\r\n pointermove: function (event) {\r\n if (!isPointerFromTouch(event)) {\r\n globalDOMHandlers.mousemove.call(this, event);\r\n }\r\n },\r\n pointerup: function (event) {\r\n globalDOMHandlers.mouseup.call(this, event);\r\n },\r\n mousemove: function (event) {\r\n this.trigger('mousemove', event);\r\n },\r\n mouseup: function (event) {\r\n var pointerCaptureReleasing = this.__pointerCapturing;\r\n this.__togglePointerCapture(false);\r\n this.trigger('mouseup', event);\r\n if (pointerCaptureReleasing) {\r\n event.zrEventControl = 'only_globalout';\r\n this.trigger('mouseout', event);\r\n }\r\n }\r\n };\r\n function mountLocalDOMEventListeners(instance, scope) {\r\n var domHandlers = scope.domHandlers;\r\n if (env.pointerEventsSupported) {\r\n each(localNativeListenerNames.pointer, function (nativeEventName) {\r\n mountSingleDOMEventListener(scope, nativeEventName, function (event) {\r\n domHandlers[nativeEventName].call(instance, event);\r\n });\r\n });\r\n }\r\n else {\r\n if (env.touchEventsSupported) {\r\n each(localNativeListenerNames.touch, function (nativeEventName) {\r\n mountSingleDOMEventListener(scope, nativeEventName, function (event) {\r\n domHandlers[nativeEventName].call(instance, event);\r\n setTouchTimer(scope);\r\n });\r\n });\r\n }\r\n each(localNativeListenerNames.mouse, function (nativeEventName) {\r\n mountSingleDOMEventListener(scope, nativeEventName, function (event) {\r\n event = getNativeEvent(event);\r\n if (!scope.touching) {\r\n domHandlers[nativeEventName].call(instance, event);\r\n }\r\n });\r\n });\r\n }\r\n }\r\n function mountGlobalDOMEventListeners(instance, scope) {\r\n if (env.pointerEventsSupported) {\r\n each(globalNativeListenerNames.pointer, mount);\r\n }\r\n else if (!env.touchEventsSupported) {\r\n each(globalNativeListenerNames.mouse, mount);\r\n }\r\n function mount(nativeEventName) {\r\n function nativeEventListener(event) {\r\n event = getNativeEvent(event);\r\n if (!isLocalEl(instance, event.target)) {\r\n event = normalizeGlobalEvent(instance, event);\r\n scope.domHandlers[nativeEventName].call(instance, event);\r\n }\r\n }\r\n mountSingleDOMEventListener(scope, nativeEventName, nativeEventListener, { capture: true });\r\n }\r\n }\r\n function mountSingleDOMEventListener(scope, nativeEventName, listener, opt) {\r\n scope.mounted[nativeEventName] = listener;\r\n scope.listenerOpts[nativeEventName] = opt;\r\n addEventListener(scope.domTarget, nativeEventName, listener, opt);\r\n }\r\n function unmountDOMEventListeners(scope) {\r\n var mounted = scope.mounted;\r\n for (var nativeEventName in mounted) {\r\n if (mounted.hasOwnProperty(nativeEventName)) {\r\n removeEventListener(scope.domTarget, nativeEventName, mounted[nativeEventName], scope.listenerOpts[nativeEventName]);\r\n }\r\n }\r\n scope.mounted = {};\r\n }\r\n var DOMHandlerScope = (function () {\r\n function DOMHandlerScope(domTarget, domHandlers) {\r\n this.mounted = {};\r\n this.listenerOpts = {};\r\n this.touching = false;\r\n this.domTarget = domTarget;\r\n this.domHandlers = domHandlers;\r\n }\r\n return DOMHandlerScope;\r\n }());\r\n var HandlerDomProxy = (function (_super) {\r\n __extends(HandlerDomProxy, _super);\r\n function HandlerDomProxy(dom, painterRoot) {\r\n var _this = _super.call(this) || this;\r\n _this.__pointerCapturing = false;\r\n _this.dom = dom;\r\n _this.painterRoot = painterRoot;\r\n _this._localHandlerScope = new DOMHandlerScope(dom, localDOMHandlers);\r\n if (globalEventSupported) {\r\n _this._globalHandlerScope = new DOMHandlerScope(document, globalDOMHandlers);\r\n }\r\n mountLocalDOMEventListeners(_this, _this._localHandlerScope);\r\n return _this;\r\n }\r\n HandlerDomProxy.prototype.dispose = function () {\r\n unmountDOMEventListeners(this._localHandlerScope);\r\n if (globalEventSupported) {\r\n unmountDOMEventListeners(this._globalHandlerScope);\r\n }\r\n };\r\n HandlerDomProxy.prototype.setCursor = function (cursorStyle) {\r\n this.dom.style && (this.dom.style.cursor = cursorStyle || 'default');\r\n };\r\n HandlerDomProxy.prototype.__togglePointerCapture = function (isPointerCapturing) {\r\n this.__mayPointerCapture = null;\r\n if (globalEventSupported\r\n && ((+this.__pointerCapturing) ^ (+isPointerCapturing))) {\r\n this.__pointerCapturing = isPointerCapturing;\r\n var globalHandlerScope = this._globalHandlerScope;\r\n isPointerCapturing\r\n ? mountGlobalDOMEventListeners(this, globalHandlerScope)\r\n : unmountDOMEventListeners(globalHandlerScope);\r\n }\r\n };\r\n return HandlerDomProxy;\r\n }(Eventful));\n\n var STYLE_MAGIC_KEY = '__zr_style_' + Math.round((Math.random() * 10));\r\n var DEFAULT_COMMON_STYLE = {\r\n shadowBlur: 0,\r\n shadowOffsetX: 0,\r\n shadowOffsetY: 0,\r\n shadowColor: '#000',\r\n opacity: 1,\r\n blend: 'source-over'\r\n };\r\n var DEFAULT_COMMON_ANIMATION_PROPS = {\r\n style: {\r\n shadowBlur: true,\r\n shadowOffsetX: true,\r\n shadowOffsetY: true,\r\n shadowColor: true,\r\n opacity: true\r\n }\r\n };\r\n DEFAULT_COMMON_STYLE[STYLE_MAGIC_KEY] = true;\r\n var PRIMARY_STATES_KEYS$1 = ['z', 'z2', 'invisible'];\r\n var Displayable = (function (_super) {\r\n __extends(Displayable, _super);\r\n function Displayable(props) {\r\n return _super.call(this, props) || this;\r\n }\r\n Displayable.prototype._init = function (props) {\r\n var keysArr = keys(props);\r\n for (var i = 0; i < keysArr.length; i++) {\r\n var key = keysArr[i];\r\n if (key === 'style') {\r\n this.useStyle(props[key]);\r\n }\r\n else {\r\n _super.prototype.attrKV.call(this, key, props[key]);\r\n }\r\n }\r\n if (!this.style) {\r\n this.useStyle({});\r\n }\r\n };\r\n Displayable.prototype.beforeBrush = function () { };\r\n Displayable.prototype.afterBrush = function () { };\r\n Displayable.prototype.innerBeforeBrush = function () { };\r\n Displayable.prototype.innerAfterBrush = function () { };\r\n Displayable.prototype.shouldBePainted = function (viewWidth, viewHeight, considerClipPath, considerAncestors) {\r\n var m = this.transform;\r\n if (this.ignore\r\n || this.invisible\r\n || this.style.opacity === 0\r\n || (this.culling\r\n && isDisplayableCulled(this, viewWidth, viewHeight))\r\n || (m && !m[0] && !m[3])) {\r\n return false;\r\n }\r\n if (considerClipPath && this.__clipPaths) {\r\n for (var i = 0; i < this.__clipPaths.length; ++i) {\r\n if (this.__clipPaths[i].isZeroArea()) {\r\n return false;\r\n }\r\n }\r\n }\r\n if (considerAncestors && this.parent) {\r\n var parent_1 = this.parent;\r\n while (parent_1) {\r\n if (parent_1.ignore) {\r\n return false;\r\n }\r\n parent_1 = parent_1.parent;\r\n }\r\n }\r\n return true;\r\n };\r\n Displayable.prototype.contain = function (x, y) {\r\n return this.rectContain(x, y);\r\n };\r\n Displayable.prototype.traverse = function (cb, context) {\r\n cb.call(context, this);\r\n };\r\n Displayable.prototype.rectContain = function (x, y) {\r\n var coord = this.transformCoordToLocal(x, y);\r\n var rect = this.getBoundingRect();\r\n return rect.contain(coord[0], coord[1]);\r\n };\r\n Displayable.prototype.getPaintRect = function () {\r\n var rect = this._paintRect;\r\n if (!this._paintRect || this.__dirty) {\r\n var transform = this.transform;\r\n var elRect = this.getBoundingRect();\r\n var style = this.style;\r\n var shadowSize = style.shadowBlur || 0;\r\n var shadowOffsetX = style.shadowOffsetX || 0;\r\n var shadowOffsetY = style.shadowOffsetY || 0;\r\n rect = this._paintRect || (this._paintRect = new BoundingRect(0, 0, 0, 0));\r\n if (transform) {\r\n BoundingRect.applyTransform(rect, elRect, transform);\r\n }\r\n else {\r\n rect.copy(elRect);\r\n }\r\n if (shadowSize || shadowOffsetX || shadowOffsetY) {\r\n rect.width += shadowSize * 2 + Math.abs(shadowOffsetX);\r\n rect.height += shadowSize * 2 + Math.abs(shadowOffsetY);\r\n rect.x = Math.min(rect.x, rect.x + shadowOffsetX - shadowSize);\r\n rect.y = Math.min(rect.y, rect.y + shadowOffsetY - shadowSize);\r\n }\r\n var tolerance = this.dirtyRectTolerance;\r\n if (!rect.isZero()) {\r\n rect.x = Math.floor(rect.x - tolerance);\r\n rect.y = Math.floor(rect.y - tolerance);\r\n rect.width = Math.ceil(rect.width + 1 + tolerance * 2);\r\n rect.height = Math.ceil(rect.height + 1 + tolerance * 2);\r\n }\r\n }\r\n return rect;\r\n };\r\n Displayable.prototype.setPrevPaintRect = function (paintRect) {\r\n if (paintRect) {\r\n this._prevPaintRect = this._prevPaintRect || new BoundingRect(0, 0, 0, 0);\r\n this._prevPaintRect.copy(paintRect);\r\n }\r\n else {\r\n this._prevPaintRect = null;\r\n }\r\n };\r\n Displayable.prototype.getPrevPaintRect = function () {\r\n return this._prevPaintRect;\r\n };\r\n Displayable.prototype.animateStyle = function (loop) {\r\n return this.animate('style', loop);\r\n };\r\n Displayable.prototype.updateDuringAnimation = function (targetKey) {\r\n if (targetKey === 'style') {\r\n this.dirtyStyle();\r\n }\r\n else {\r\n this.markRedraw();\r\n }\r\n };\r\n Displayable.prototype.attrKV = function (key, value) {\r\n if (key !== 'style') {\r\n _super.prototype.attrKV.call(this, key, value);\r\n }\r\n else {\r\n if (!this.style) {\r\n this.useStyle(value);\r\n }\r\n else {\r\n this.setStyle(value);\r\n }\r\n }\r\n };\r\n Displayable.prototype.setStyle = function (keyOrObj, value) {\r\n if (typeof keyOrObj === 'string') {\r\n this.style[keyOrObj] = value;\r\n }\r\n else {\r\n extend(this.style, keyOrObj);\r\n }\r\n this.dirtyStyle();\r\n return this;\r\n };\r\n Displayable.prototype.dirtyStyle = function () {\r\n this.markRedraw();\r\n this.__dirty |= Displayable.STYLE_CHANGED_BIT;\r\n if (this._rect) {\r\n this._rect = null;\r\n }\r\n };\r\n Displayable.prototype.dirty = function () {\r\n this.dirtyStyle();\r\n };\r\n Displayable.prototype.styleChanged = function () {\r\n return !!(this.__dirty & Displayable.STYLE_CHANGED_BIT);\r\n };\r\n Displayable.prototype.styleUpdated = function () {\r\n this.__dirty &= ~Displayable.STYLE_CHANGED_BIT;\r\n };\r\n Displayable.prototype.createStyle = function (obj) {\r\n return createObject(DEFAULT_COMMON_STYLE, obj);\r\n };\r\n Displayable.prototype.useStyle = function (obj) {\r\n if (!obj[STYLE_MAGIC_KEY]) {\r\n obj = this.createStyle(obj);\r\n }\r\n if (this.__inHover) {\r\n this.__hoverStyle = obj;\r\n }\r\n else {\r\n this.style = obj;\r\n }\r\n this.dirtyStyle();\r\n };\r\n Displayable.prototype.isStyleObject = function (obj) {\r\n return obj[STYLE_MAGIC_KEY];\r\n };\r\n Displayable.prototype._innerSaveToNormal = function (toState) {\r\n _super.prototype._innerSaveToNormal.call(this, toState);\r\n var normalState = this._normalState;\r\n if (toState.style && !normalState.style) {\r\n normalState.style = this._mergeStyle(this.createStyle(), this.style);\r\n }\r\n this._savePrimaryToNormal(toState, normalState, PRIMARY_STATES_KEYS$1);\r\n };\r\n Displayable.prototype._applyStateObj = function (stateName, state, normalState, keepCurrentStates, transition, animationCfg) {\r\n _super.prototype._applyStateObj.call(this, stateName, state, normalState, keepCurrentStates, transition, animationCfg);\r\n var needsRestoreToNormal = !(state && keepCurrentStates);\r\n var targetStyle;\r\n if (state && state.style) {\r\n if (transition) {\r\n if (keepCurrentStates) {\r\n targetStyle = state.style;\r\n }\r\n else {\r\n targetStyle = this._mergeStyle(this.createStyle(), normalState.style);\r\n this._mergeStyle(targetStyle, state.style);\r\n }\r\n }\r\n else {\r\n targetStyle = this._mergeStyle(this.createStyle(), keepCurrentStates ? this.style : normalState.style);\r\n this._mergeStyle(targetStyle, state.style);\r\n }\r\n }\r\n else if (needsRestoreToNormal) {\r\n targetStyle = normalState.style;\r\n }\r\n if (targetStyle) {\r\n if (transition) {\r\n var sourceStyle = this.style;\r\n this.style = this.createStyle(needsRestoreToNormal ? {} : sourceStyle);\r\n if (needsRestoreToNormal) {\r\n var changedKeys = keys(sourceStyle);\r\n for (var i = 0; i < changedKeys.length; i++) {\r\n var key = changedKeys[i];\r\n if (key in targetStyle) {\r\n targetStyle[key] = targetStyle[key];\r\n this.style[key] = sourceStyle[key];\r\n }\r\n }\r\n }\r\n var targetKeys = keys(targetStyle);\r\n for (var i = 0; i < targetKeys.length; i++) {\r\n var key = targetKeys[i];\r\n this.style[key] = this.style[key];\r\n }\r\n this._transitionState(stateName, {\r\n style: targetStyle\r\n }, animationCfg, this.getAnimationStyleProps());\r\n }\r\n else {\r\n this.useStyle(targetStyle);\r\n }\r\n }\r\n for (var i = 0; i < PRIMARY_STATES_KEYS$1.length; i++) {\r\n var key = PRIMARY_STATES_KEYS$1[i];\r\n if (state && state[key] != null) {\r\n this[key] = state[key];\r\n }\r\n else if (needsRestoreToNormal) {\r\n if (normalState[key] != null) {\r\n this[key] = normalState[key];\r\n }\r\n }\r\n }\r\n };\r\n Displayable.prototype._mergeStates = function (states) {\r\n var mergedState = _super.prototype._mergeStates.call(this, states);\r\n var mergedStyle;\r\n for (var i = 0; i < states.length; i++) {\r\n var state = states[i];\r\n if (state.style) {\r\n mergedStyle = mergedStyle || {};\r\n this._mergeStyle(mergedStyle, state.style);\r\n }\r\n }\r\n if (mergedStyle) {\r\n mergedState.style = mergedStyle;\r\n }\r\n return mergedState;\r\n };\r\n Displayable.prototype._mergeStyle = function (targetStyle, sourceStyle) {\r\n extend(targetStyle, sourceStyle);\r\n return targetStyle;\r\n };\r\n Displayable.prototype.getAnimationStyleProps = function () {\r\n return DEFAULT_COMMON_ANIMATION_PROPS;\r\n };\r\n Displayable.STYLE_CHANGED_BIT = 2;\r\n Displayable.initDefaultProps = (function () {\r\n var dispProto = Displayable.prototype;\r\n dispProto.type = 'displayable';\r\n dispProto.invisible = false;\r\n dispProto.z = 0;\r\n dispProto.z2 = 0;\r\n dispProto.zlevel = 0;\r\n dispProto.culling = false;\r\n dispProto.cursor = 'pointer';\r\n dispProto.rectHover = false;\r\n dispProto.incremental = false;\r\n dispProto._rect = null;\r\n dispProto.dirtyRectTolerance = 0;\r\n dispProto.__dirty = Element.REDARAW_BIT | Displayable.STYLE_CHANGED_BIT;\r\n })();\r\n return Displayable;\r\n }(Element));\r\n var tmpRect = new BoundingRect(0, 0, 0, 0);\r\n var viewRect = new BoundingRect(0, 0, 0, 0);\r\n function isDisplayableCulled(el, width, height) {\r\n tmpRect.copy(el.getBoundingRect());\r\n if (el.transform) {\r\n tmpRect.applyTransform(el.transform);\r\n }\r\n viewRect.width = width;\r\n viewRect.height = height;\r\n return !tmpRect.intersect(viewRect);\r\n }\n\n var mathPow = Math.pow;\r\n var mathSqrt = Math.sqrt;\r\n var EPSILON$1 = 1e-8;\r\n var EPSILON_NUMERIC = 1e-4;\r\n var THREE_SQRT = mathSqrt(3);\r\n var ONE_THIRD = 1 / 3;\r\n var _v0 = create();\r\n var _v1 = create();\r\n var _v2 = create();\r\n function isAroundZero(val) {\r\n return val > -EPSILON$1 && val < EPSILON$1;\r\n }\r\n function isNotAroundZero$1(val) {\r\n return val > EPSILON$1 || val < -EPSILON$1;\r\n }\r\n function cubicAt(p0, p1, p2, p3, t) {\r\n var onet = 1 - t;\r\n return onet * onet * (onet * p0 + 3 * t * p1)\r\n + t * t * (t * p3 + 3 * onet * p2);\r\n }\r\n function cubicDerivativeAt(p0, p1, p2, p3, t) {\r\n var onet = 1 - t;\r\n return 3 * (((p1 - p0) * onet + 2 * (p2 - p1) * t) * onet\r\n + (p3 - p2) * t * t);\r\n }\r\n function cubicRootAt(p0, p1, p2, p3, val, roots) {\r\n var a = p3 + 3 * (p1 - p2) - p0;\r\n var b = 3 * (p2 - p1 * 2 + p0);\r\n var c = 3 * (p1 - p0);\r\n var d = p0 - val;\r\n var A = b * b - 3 * a * c;\r\n var B = b * c - 9 * a * d;\r\n var C = c * c - 3 * b * d;\r\n var n = 0;\r\n if (isAroundZero(A) && isAroundZero(B)) {\r\n if (isAroundZero(b)) {\r\n roots[0] = 0;\r\n }\r\n else {\r\n var t1 = -c / b;\r\n if (t1 >= 0 && t1 <= 1) {\r\n roots[n++] = t1;\r\n }\r\n }\r\n }\r\n else {\r\n var disc = B * B - 4 * A * C;\r\n if (isAroundZero(disc)) {\r\n var K = B / A;\r\n var t1 = -b / a + K;\r\n var t2 = -K / 2;\r\n if (t1 >= 0 && t1 <= 1) {\r\n roots[n++] = t1;\r\n }\r\n if (t2 >= 0 && t2 <= 1) {\r\n roots[n++] = t2;\r\n }\r\n }\r\n else if (disc > 0) {\r\n var discSqrt = mathSqrt(disc);\r\n var Y1 = A * b + 1.5 * a * (-B + discSqrt);\r\n var Y2 = A * b + 1.5 * a * (-B - discSqrt);\r\n if (Y1 < 0) {\r\n Y1 = -mathPow(-Y1, ONE_THIRD);\r\n }\r\n else {\r\n Y1 = mathPow(Y1, ONE_THIRD);\r\n }\r\n if (Y2 < 0) {\r\n Y2 = -mathPow(-Y2, ONE_THIRD);\r\n }\r\n else {\r\n Y2 = mathPow(Y2, ONE_THIRD);\r\n }\r\n var t1 = (-b - (Y1 + Y2)) / (3 * a);\r\n if (t1 >= 0 && t1 <= 1) {\r\n roots[n++] = t1;\r\n }\r\n }\r\n else {\r\n var T = (2 * A * b - 3 * a * B) / (2 * mathSqrt(A * A * A));\r\n var theta = Math.acos(T) / 3;\r\n var ASqrt = mathSqrt(A);\r\n var tmp = Math.cos(theta);\r\n var t1 = (-b - 2 * ASqrt * tmp) / (3 * a);\r\n var t2 = (-b + ASqrt * (tmp + THREE_SQRT * Math.sin(theta))) / (3 * a);\r\n var t3 = (-b + ASqrt * (tmp - THREE_SQRT * Math.sin(theta))) / (3 * a);\r\n if (t1 >= 0 && t1 <= 1) {\r\n roots[n++] = t1;\r\n }\r\n if (t2 >= 0 && t2 <= 1) {\r\n roots[n++] = t2;\r\n }\r\n if (t3 >= 0 && t3 <= 1) {\r\n roots[n++] = t3;\r\n }\r\n }\r\n }\r\n return n;\r\n }\r\n function cubicExtrema(p0, p1, p2, p3, extrema) {\r\n var b = 6 * p2 - 12 * p1 + 6 * p0;\r\n var a = 9 * p1 + 3 * p3 - 3 * p0 - 9 * p2;\r\n var c = 3 * p1 - 3 * p0;\r\n var n = 0;\r\n if (isAroundZero(a)) {\r\n if (isNotAroundZero$1(b)) {\r\n var t1 = -c / b;\r\n if (t1 >= 0 && t1 <= 1) {\r\n extrema[n++] = t1;\r\n }\r\n }\r\n }\r\n else {\r\n var disc = b * b - 4 * a * c;\r\n if (isAroundZero(disc)) {\r\n extrema[0] = -b / (2 * a);\r\n }\r\n else if (disc > 0) {\r\n var discSqrt = mathSqrt(disc);\r\n var t1 = (-b + discSqrt) / (2 * a);\r\n var t2 = (-b - discSqrt) / (2 * a);\r\n if (t1 >= 0 && t1 <= 1) {\r\n extrema[n++] = t1;\r\n }\r\n if (t2 >= 0 && t2 <= 1) {\r\n extrema[n++] = t2;\r\n }\r\n }\r\n }\r\n return n;\r\n }\r\n function cubicSubdivide(p0, p1, p2, p3, t, out) {\r\n var p01 = (p1 - p0) * t + p0;\r\n var p12 = (p2 - p1) * t + p1;\r\n var p23 = (p3 - p2) * t + p2;\r\n var p012 = (p12 - p01) * t + p01;\r\n var p123 = (p23 - p12) * t + p12;\r\n var p0123 = (p123 - p012) * t + p012;\r\n out[0] = p0;\r\n out[1] = p01;\r\n out[2] = p012;\r\n out[3] = p0123;\r\n out[4] = p0123;\r\n out[5] = p123;\r\n out[6] = p23;\r\n out[7] = p3;\r\n }\r\n function cubicProjectPoint(x0, y0, x1, y1, x2, y2, x3, y3, x, y, out) {\r\n var t;\r\n var interval = 0.005;\r\n var d = Infinity;\r\n var prev;\r\n var next;\r\n var d1;\r\n var d2;\r\n _v0[0] = x;\r\n _v0[1] = y;\r\n for (var _t = 0; _t < 1; _t += 0.05) {\r\n _v1[0] = cubicAt(x0, x1, x2, x3, _t);\r\n _v1[1] = cubicAt(y0, y1, y2, y3, _t);\r\n d1 = distSquare(_v0, _v1);\r\n if (d1 < d) {\r\n t = _t;\r\n d = d1;\r\n }\r\n }\r\n d = Infinity;\r\n for (var i = 0; i < 32; i++) {\r\n if (interval < EPSILON_NUMERIC) {\r\n break;\r\n }\r\n prev = t - interval;\r\n next = t + interval;\r\n _v1[0] = cubicAt(x0, x1, x2, x3, prev);\r\n _v1[1] = cubicAt(y0, y1, y2, y3, prev);\r\n d1 = distSquare(_v1, _v0);\r\n if (prev >= 0 && d1 < d) {\r\n t = prev;\r\n d = d1;\r\n }\r\n else {\r\n _v2[0] = cubicAt(x0, x1, x2, x3, next);\r\n _v2[1] = cubicAt(y0, y1, y2, y3, next);\r\n d2 = distSquare(_v2, _v0);\r\n if (next <= 1 && d2 < d) {\r\n t = next;\r\n d = d2;\r\n }\r\n else {\r\n interval *= 0.5;\r\n }\r\n }\r\n }\r\n if (out) {\r\n out[0] = cubicAt(x0, x1, x2, x3, t);\r\n out[1] = cubicAt(y0, y1, y2, y3, t);\r\n }\r\n return mathSqrt(d);\r\n }\r\n function cubicLength(x0, y0, x1, y1, x2, y2, x3, y3, iteration) {\r\n var px = x0;\r\n var py = y0;\r\n var d = 0;\r\n var step = 1 / iteration;\r\n for (var i = 1; i <= iteration; i++) {\r\n var t = i * step;\r\n var x = cubicAt(x0, x1, x2, x3, t);\r\n var y = cubicAt(y0, y1, y2, y3, t);\r\n var dx = x - px;\r\n var dy = y - py;\r\n d += Math.sqrt(dx * dx + dy * dy);\r\n px = x;\r\n py = y;\r\n }\r\n return d;\r\n }\r\n function quadraticAt(p0, p1, p2, t) {\r\n var onet = 1 - t;\r\n return onet * (onet * p0 + 2 * t * p1) + t * t * p2;\r\n }\r\n function quadraticDerivativeAt(p0, p1, p2, t) {\r\n return 2 * ((1 - t) * (p1 - p0) + t * (p2 - p1));\r\n }\r\n function quadraticRootAt(p0, p1, p2, val, roots) {\r\n var a = p0 - 2 * p1 + p2;\r\n var b = 2 * (p1 - p0);\r\n var c = p0 - val;\r\n var n = 0;\r\n if (isAroundZero(a)) {\r\n if (isNotAroundZero$1(b)) {\r\n var t1 = -c / b;\r\n if (t1 >= 0 && t1 <= 1) {\r\n roots[n++] = t1;\r\n }\r\n }\r\n }\r\n else {\r\n var disc = b * b - 4 * a * c;\r\n if (isAroundZero(disc)) {\r\n var t1 = -b / (2 * a);\r\n if (t1 >= 0 && t1 <= 1) {\r\n roots[n++] = t1;\r\n }\r\n }\r\n else if (disc > 0) {\r\n var discSqrt = mathSqrt(disc);\r\n var t1 = (-b + discSqrt) / (2 * a);\r\n var t2 = (-b - discSqrt) / (2 * a);\r\n if (t1 >= 0 && t1 <= 1) {\r\n roots[n++] = t1;\r\n }\r\n if (t2 >= 0 && t2 <= 1) {\r\n roots[n++] = t2;\r\n }\r\n }\r\n }\r\n return n;\r\n }\r\n function quadraticExtremum(p0, p1, p2) {\r\n var divider = p0 + p2 - 2 * p1;\r\n if (divider === 0) {\r\n return 0.5;\r\n }\r\n else {\r\n return (p0 - p1) / divider;\r\n }\r\n }\r\n function quadraticSubdivide(p0, p1, p2, t, out) {\r\n var p01 = (p1 - p0) * t + p0;\r\n var p12 = (p2 - p1) * t + p1;\r\n var p012 = (p12 - p01) * t + p01;\r\n out[0] = p0;\r\n out[1] = p01;\r\n out[2] = p012;\r\n out[3] = p012;\r\n out[4] = p12;\r\n out[5] = p2;\r\n }\r\n function quadraticProjectPoint(x0, y0, x1, y1, x2, y2, x, y, out) {\r\n var t;\r\n var interval = 0.005;\r\n var d = Infinity;\r\n _v0[0] = x;\r\n _v0[1] = y;\r\n for (var _t = 0; _t < 1; _t += 0.05) {\r\n _v1[0] = quadraticAt(x0, x1, x2, _t);\r\n _v1[1] = quadraticAt(y0, y1, y2, _t);\r\n var d1 = distSquare(_v0, _v1);\r\n if (d1 < d) {\r\n t = _t;\r\n d = d1;\r\n }\r\n }\r\n d = Infinity;\r\n for (var i = 0; i < 32; i++) {\r\n if (interval < EPSILON_NUMERIC) {\r\n break;\r\n }\r\n var prev = t - interval;\r\n var next = t + interval;\r\n _v1[0] = quadraticAt(x0, x1, x2, prev);\r\n _v1[1] = quadraticAt(y0, y1, y2, prev);\r\n var d1 = distSquare(_v1, _v0);\r\n if (prev >= 0 && d1 < d) {\r\n t = prev;\r\n d = d1;\r\n }\r\n else {\r\n _v2[0] = quadraticAt(x0, x1, x2, next);\r\n _v2[1] = quadraticAt(y0, y1, y2, next);\r\n var d2 = distSquare(_v2, _v0);\r\n if (next <= 1 && d2 < d) {\r\n t = next;\r\n d = d2;\r\n }\r\n else {\r\n interval *= 0.5;\r\n }\r\n }\r\n }\r\n if (out) {\r\n out[0] = quadraticAt(x0, x1, x2, t);\r\n out[1] = quadraticAt(y0, y1, y2, t);\r\n }\r\n return mathSqrt(d);\r\n }\r\n function quadraticLength(x0, y0, x1, y1, x2, y2, iteration) {\r\n var px = x0;\r\n var py = y0;\r\n var d = 0;\r\n var step = 1 / iteration;\r\n for (var i = 1; i <= iteration; i++) {\r\n var t = i * step;\r\n var x = quadraticAt(x0, x1, x2, t);\r\n var y = quadraticAt(y0, y1, y2, t);\r\n var dx = x - px;\r\n var dy = y - py;\r\n d += Math.sqrt(dx * dx + dy * dy);\r\n px = x;\r\n py = y;\r\n }\r\n return d;\r\n }\n\n var mathMin$1 = Math.min;\r\n var mathMax$1 = Math.max;\r\n var mathSin = Math.sin;\r\n var mathCos = Math.cos;\r\n var PI2 = Math.PI * 2;\r\n var start = create();\r\n var end = create();\r\n var extremity = create();\r\n function fromPoints(points, min, max) {\r\n if (points.length === 0) {\r\n return;\r\n }\r\n var p = points[0];\r\n var left = p[0];\r\n var right = p[0];\r\n var top = p[1];\r\n var bottom = p[1];\r\n for (var i = 1; i < points.length; i++) {\r\n p = points[i];\r\n left = mathMin$1(left, p[0]);\r\n right = mathMax$1(right, p[0]);\r\n top = mathMin$1(top, p[1]);\r\n bottom = mathMax$1(bottom, p[1]);\r\n }\r\n min[0] = left;\r\n min[1] = top;\r\n max[0] = right;\r\n max[1] = bottom;\r\n }\r\n function fromLine(x0, y0, x1, y1, min, max) {\r\n min[0] = mathMin$1(x0, x1);\r\n min[1] = mathMin$1(y0, y1);\r\n max[0] = mathMax$1(x0, x1);\r\n max[1] = mathMax$1(y0, y1);\r\n }\r\n var xDim = [];\r\n var yDim = [];\r\n function fromCubic(x0, y0, x1, y1, x2, y2, x3, y3, min, max) {\r\n var cubicExtrema$1 = cubicExtrema;\r\n var cubicAt$1 = cubicAt;\r\n var n = cubicExtrema$1(x0, x1, x2, x3, xDim);\r\n min[0] = Infinity;\r\n min[1] = Infinity;\r\n max[0] = -Infinity;\r\n max[1] = -Infinity;\r\n for (var i = 0; i < n; i++) {\r\n var x = cubicAt$1(x0, x1, x2, x3, xDim[i]);\r\n min[0] = mathMin$1(x, min[0]);\r\n max[0] = mathMax$1(x, max[0]);\r\n }\r\n n = cubicExtrema$1(y0, y1, y2, y3, yDim);\r\n for (var i = 0; i < n; i++) {\r\n var y = cubicAt$1(y0, y1, y2, y3, yDim[i]);\r\n min[1] = mathMin$1(y, min[1]);\r\n max[1] = mathMax$1(y, max[1]);\r\n }\r\n min[0] = mathMin$1(x0, min[0]);\r\n max[0] = mathMax$1(x0, max[0]);\r\n min[0] = mathMin$1(x3, min[0]);\r\n max[0] = mathMax$1(x3, max[0]);\r\n min[1] = mathMin$1(y0, min[1]);\r\n max[1] = mathMax$1(y0, max[1]);\r\n min[1] = mathMin$1(y3, min[1]);\r\n max[1] = mathMax$1(y3, max[1]);\r\n }\r\n function fromQuadratic(x0, y0, x1, y1, x2, y2, min, max) {\r\n var quadraticExtremum$1 = quadraticExtremum;\r\n var quadraticAt$1 = quadraticAt;\r\n var tx = mathMax$1(mathMin$1(quadraticExtremum$1(x0, x1, x2), 1), 0);\r\n var ty = mathMax$1(mathMin$1(quadraticExtremum$1(y0, y1, y2), 1), 0);\r\n var x = quadraticAt$1(x0, x1, x2, tx);\r\n var y = quadraticAt$1(y0, y1, y2, ty);\r\n min[0] = mathMin$1(x0, x2, x);\r\n min[1] = mathMin$1(y0, y2, y);\r\n max[0] = mathMax$1(x0, x2, x);\r\n max[1] = mathMax$1(y0, y2, y);\r\n }\r\n function fromArc(x, y, rx, ry, startAngle, endAngle, anticlockwise, min$1, max$1) {\r\n var vec2Min = min;\r\n var vec2Max = max;\r\n var diff = Math.abs(startAngle - endAngle);\r\n if (diff % PI2 < 1e-4 && diff > 1e-4) {\r\n min$1[0] = x - rx;\r\n min$1[1] = y - ry;\r\n max$1[0] = x + rx;\r\n max$1[1] = y + ry;\r\n return;\r\n }\r\n start[0] = mathCos(startAngle) * rx + x;\r\n start[1] = mathSin(startAngle) * ry + y;\r\n end[0] = mathCos(endAngle) * rx + x;\r\n end[1] = mathSin(endAngle) * ry + y;\r\n vec2Min(min$1, start, end);\r\n vec2Max(max$1, start, end);\r\n startAngle = startAngle % (PI2);\r\n if (startAngle < 0) {\r\n startAngle = startAngle + PI2;\r\n }\r\n endAngle = endAngle % (PI2);\r\n if (endAngle < 0) {\r\n endAngle = endAngle + PI2;\r\n }\r\n if (startAngle > endAngle && !anticlockwise) {\r\n endAngle += PI2;\r\n }\r\n else if (startAngle < endAngle && anticlockwise) {\r\n startAngle += PI2;\r\n }\r\n if (anticlockwise) {\r\n var tmp = endAngle;\r\n endAngle = startAngle;\r\n startAngle = tmp;\r\n }\r\n for (var angle = 0; angle < endAngle; angle += Math.PI / 2) {\r\n if (angle > startAngle) {\r\n extremity[0] = mathCos(angle) * rx + x;\r\n extremity[1] = mathSin(angle) * ry + y;\r\n vec2Min(min$1, extremity, min$1);\r\n vec2Max(max$1, extremity, max$1);\r\n }\r\n }\r\n }\n\n var CMD = {\r\n M: 1,\r\n L: 2,\r\n C: 3,\r\n Q: 4,\r\n A: 5,\r\n Z: 6,\r\n R: 7\r\n };\r\n var tmpOutX = [];\r\n var tmpOutY = [];\r\n var min$1 = [];\r\n var max$1 = [];\r\n var min2 = [];\r\n var max2 = [];\r\n var mathMin$2 = Math.min;\r\n var mathMax$2 = Math.max;\r\n var mathCos$1 = Math.cos;\r\n var mathSin$1 = Math.sin;\r\n var mathSqrt$1 = Math.sqrt;\r\n var mathAbs = Math.abs;\r\n var PI = Math.PI;\r\n var PI2$1 = PI * 2;\r\n var hasTypedArray = typeof Float32Array !== 'undefined';\r\n var tmpAngles = [];\r\n function modPI2(radian) {\r\n var n = Math.round(radian / PI * 1e8) / 1e8;\r\n return (n % 2) * PI;\r\n }\r\n function normalizeArcAngles(angles, anticlockwise) {\r\n var newStartAngle = modPI2(angles[0]);\r\n if (newStartAngle < 0) {\r\n newStartAngle += PI2$1;\r\n }\r\n var delta = newStartAngle - angles[0];\r\n var newEndAngle = angles[1];\r\n newEndAngle += delta;\r\n if (!anticlockwise && newEndAngle - newStartAngle >= PI2$1) {\r\n newEndAngle = newStartAngle + PI2$1;\r\n }\r\n else if (anticlockwise && newStartAngle - newEndAngle >= PI2$1) {\r\n newEndAngle = newStartAngle - PI2$1;\r\n }\r\n else if (!anticlockwise && newStartAngle > newEndAngle) {\r\n newEndAngle = newStartAngle +\r\n (PI2$1 - modPI2(newStartAngle - newEndAngle));\r\n }\r\n else if (anticlockwise && newStartAngle < newEndAngle) {\r\n newEndAngle = newStartAngle -\r\n (PI2$1 - modPI2(newEndAngle - newStartAngle));\r\n }\r\n angles[0] = newStartAngle;\r\n angles[1] = newEndAngle;\r\n }\r\n var PathProxy = (function () {\r\n function PathProxy(notSaveData) {\r\n this.dpr = 1;\r\n this._version = 0;\r\n this._xi = 0;\r\n this._yi = 0;\r\n this._x0 = 0;\r\n this._y0 = 0;\r\n this._len = 0;\r\n if (notSaveData) {\r\n this._saveData = false;\r\n }\r\n if (this._saveData) {\r\n this.data = [];\r\n }\r\n }\r\n PathProxy.prototype.increaseVersion = function () {\r\n this._version++;\r\n };\r\n PathProxy.prototype.getVersion = function () {\r\n return this._version;\r\n };\r\n PathProxy.prototype.setScale = function (sx, sy, segmentIgnoreThreshold) {\r\n segmentIgnoreThreshold = segmentIgnoreThreshold || 0;\r\n if (segmentIgnoreThreshold > 0) {\r\n this._ux = mathAbs(segmentIgnoreThreshold / devicePixelRatio / sx) || 0;\r\n this._uy = mathAbs(segmentIgnoreThreshold / devicePixelRatio / sy) || 0;\r\n }\r\n };\r\n PathProxy.prototype.setDPR = function (dpr) {\r\n this.dpr = dpr;\r\n };\r\n PathProxy.prototype.setContext = function (ctx) {\r\n this._ctx = ctx;\r\n };\r\n PathProxy.prototype.getContext = function () {\r\n return this._ctx;\r\n };\r\n PathProxy.prototype.beginPath = function () {\r\n this._ctx && this._ctx.beginPath();\r\n this.reset();\r\n return this;\r\n };\r\n PathProxy.prototype.reset = function () {\r\n if (this._saveData) {\r\n this._len = 0;\r\n }\r\n if (this._lineDash) {\r\n this._lineDash = null;\r\n this._dashOffset = 0;\r\n }\r\n if (this._pathSegLen) {\r\n this._pathSegLen = null;\r\n this._pathLen = 0;\r\n }\r\n this._version++;\r\n };\r\n PathProxy.prototype.moveTo = function (x, y) {\r\n this.addData(CMD.M, x, y);\r\n this._ctx && this._ctx.moveTo(x, y);\r\n this._x0 = x;\r\n this._y0 = y;\r\n this._xi = x;\r\n this._yi = y;\r\n return this;\r\n };\r\n PathProxy.prototype.lineTo = function (x, y) {\r\n var exceedUnit = mathAbs(x - this._xi) > this._ux\r\n || mathAbs(y - this._yi) > this._uy\r\n || this._len < 5;\r\n this.addData(CMD.L, x, y);\r\n if (this._ctx && exceedUnit) {\r\n this._needsDash ? this._dashedLineTo(x, y)\r\n : this._ctx.lineTo(x, y);\r\n }\r\n if (exceedUnit) {\r\n this._xi = x;\r\n this._yi = y;\r\n }\r\n return this;\r\n };\r\n PathProxy.prototype.bezierCurveTo = function (x1, y1, x2, y2, x3, y3) {\r\n this.addData(CMD.C, x1, y1, x2, y2, x3, y3);\r\n if (this._ctx) {\r\n this._needsDash ? this._dashedBezierTo(x1, y1, x2, y2, x3, y3)\r\n : this._ctx.bezierCurveTo(x1, y1, x2, y2, x3, y3);\r\n }\r\n this._xi = x3;\r\n this._yi = y3;\r\n return this;\r\n };\r\n PathProxy.prototype.quadraticCurveTo = function (x1, y1, x2, y2) {\r\n this.addData(CMD.Q, x1, y1, x2, y2);\r\n if (this._ctx) {\r\n this._needsDash ? this._dashedQuadraticTo(x1, y1, x2, y2)\r\n : this._ctx.quadraticCurveTo(x1, y1, x2, y2);\r\n }\r\n this._xi = x2;\r\n this._yi = y2;\r\n return this;\r\n };\r\n PathProxy.prototype.arc = function (cx, cy, r, startAngle, endAngle, anticlockwise) {\r\n tmpAngles[0] = startAngle;\r\n tmpAngles[1] = endAngle;\r\n normalizeArcAngles(tmpAngles, anticlockwise);\r\n startAngle = tmpAngles[0];\r\n endAngle = tmpAngles[1];\r\n var delta = endAngle - startAngle;\r\n this.addData(CMD.A, cx, cy, r, r, startAngle, delta, 0, anticlockwise ? 0 : 1);\r\n this._ctx && this._ctx.arc(cx, cy, r, startAngle, endAngle, anticlockwise);\r\n this._xi = mathCos$1(endAngle) * r + cx;\r\n this._yi = mathSin$1(endAngle) * r + cy;\r\n return this;\r\n };\r\n PathProxy.prototype.arcTo = function (x1, y1, x2, y2, radius) {\r\n if (this._ctx) {\r\n this._ctx.arcTo(x1, y1, x2, y2, radius);\r\n }\r\n return this;\r\n };\r\n PathProxy.prototype.rect = function (x, y, w, h) {\r\n this._ctx && this._ctx.rect(x, y, w, h);\r\n this.addData(CMD.R, x, y, w, h);\r\n return this;\r\n };\r\n PathProxy.prototype.closePath = function () {\r\n this.addData(CMD.Z);\r\n var ctx = this._ctx;\r\n var x0 = this._x0;\r\n var y0 = this._y0;\r\n if (ctx) {\r\n this._needsDash && this._dashedLineTo(x0, y0);\r\n ctx.closePath();\r\n }\r\n this._xi = x0;\r\n this._yi = y0;\r\n return this;\r\n };\r\n PathProxy.prototype.fill = function (ctx) {\r\n ctx && ctx.fill();\r\n this.toStatic();\r\n };\r\n PathProxy.prototype.stroke = function (ctx) {\r\n ctx && ctx.stroke();\r\n this.toStatic();\r\n };\r\n PathProxy.prototype.setLineDash = function (lineDash) {\r\n if (lineDash instanceof Array) {\r\n this._lineDash = lineDash;\r\n this._dashIdx = 0;\r\n var lineDashSum = 0;\r\n for (var i = 0; i < lineDash.length; i++) {\r\n lineDashSum += lineDash[i];\r\n }\r\n this._dashSum = lineDashSum;\r\n this._needsDash = true;\r\n }\r\n else {\r\n this._lineDash = null;\r\n this._needsDash = false;\r\n }\r\n return this;\r\n };\r\n PathProxy.prototype.setLineDashOffset = function (offset) {\r\n this._dashOffset = offset;\r\n return this;\r\n };\r\n PathProxy.prototype.len = function () {\r\n return this._len;\r\n };\r\n PathProxy.prototype.setData = function (data) {\r\n var len = data.length;\r\n if (!(this.data && this.data.length === len) && hasTypedArray) {\r\n this.data = new Float32Array(len);\r\n }\r\n for (var i = 0; i < len; i++) {\r\n this.data[i] = data[i];\r\n }\r\n this._len = len;\r\n };\r\n PathProxy.prototype.appendPath = function (path) {\r\n if (!(path instanceof Array)) {\r\n path = [path];\r\n }\r\n var len = path.length;\r\n var appendSize = 0;\r\n var offset = this._len;\r\n for (var i = 0; i < len; i++) {\r\n appendSize += path[i].len();\r\n }\r\n if (hasTypedArray && (this.data instanceof Float32Array)) {\r\n this.data = new Float32Array(offset + appendSize);\r\n }\r\n for (var i = 0; i < len; i++) {\r\n var appendPathData = path[i].data;\r\n for (var k = 0; k < appendPathData.length; k++) {\r\n this.data[offset++] = appendPathData[k];\r\n }\r\n }\r\n this._len = offset;\r\n };\r\n PathProxy.prototype.addData = function (cmd, a, b, c, d, e, f, g, h) {\r\n if (!this._saveData) {\r\n return;\r\n }\r\n var data = this.data;\r\n if (this._len + arguments.length > data.length) {\r\n this._expandData();\r\n data = this.data;\r\n }\r\n for (var i = 0; i < arguments.length; i++) {\r\n data[this._len++] = arguments[i];\r\n }\r\n };\r\n PathProxy.prototype._expandData = function () {\r\n if (!(this.data instanceof Array)) {\r\n var newData = [];\r\n for (var i = 0; i < this._len; i++) {\r\n newData[i] = this.data[i];\r\n }\r\n this.data = newData;\r\n }\r\n };\r\n PathProxy.prototype._dashedLineTo = function (x1, y1) {\r\n var dashSum = this._dashSum;\r\n var lineDash = this._lineDash;\r\n var ctx = this._ctx;\r\n var offset = this._dashOffset;\r\n var x0 = this._xi;\r\n var y0 = this._yi;\r\n var dx = x1 - x0;\r\n var dy = y1 - y0;\r\n var dist = mathSqrt$1(dx * dx + dy * dy);\r\n var x = x0;\r\n var y = y0;\r\n var nDash = lineDash.length;\r\n var dash;\r\n var idx;\r\n dx /= dist;\r\n dy /= dist;\r\n if (offset < 0) {\r\n offset = dashSum + offset;\r\n }\r\n offset %= dashSum;\r\n x -= offset * dx;\r\n y -= offset * dy;\r\n while ((dx > 0 && x <= x1) || (dx < 0 && x >= x1)\r\n || (dx === 0 && ((dy > 0 && y <= y1) || (dy < 0 && y >= y1)))) {\r\n idx = this._dashIdx;\r\n dash = lineDash[idx];\r\n x += dx * dash;\r\n y += dy * dash;\r\n this._dashIdx = (idx + 1) % nDash;\r\n if ((dx > 0 && x < x0) || (dx < 0 && x > x0) || (dy > 0 && y < y0) || (dy < 0 && y > y0)) {\r\n continue;\r\n }\r\n ctx[idx % 2 ? 'moveTo' : 'lineTo'](dx >= 0 ? mathMin$2(x, x1) : mathMax$2(x, x1), dy >= 0 ? mathMin$2(y, y1) : mathMax$2(y, y1));\r\n }\r\n dx = x - x1;\r\n dy = y - y1;\r\n this._dashOffset = -mathSqrt$1(dx * dx + dy * dy);\r\n };\r\n PathProxy.prototype._dashedBezierTo = function (x1, y1, x2, y2, x3, y3) {\r\n var ctx = this._ctx;\r\n var dashSum = this._dashSum;\r\n var offset = this._dashOffset;\r\n var lineDash = this._lineDash;\r\n var x0 = this._xi;\r\n var y0 = this._yi;\r\n var bezierLen = 0;\r\n var idx = this._dashIdx;\r\n var nDash = lineDash.length;\r\n var t;\r\n var dx;\r\n var dy;\r\n var x;\r\n var y;\r\n var tmpLen = 0;\r\n if (offset < 0) {\r\n offset = dashSum + offset;\r\n }\r\n offset %= dashSum;\r\n for (t = 0; t < 1; t += 0.1) {\r\n dx = cubicAt(x0, x1, x2, x3, t + 0.1)\r\n - cubicAt(x0, x1, x2, x3, t);\r\n dy = cubicAt(y0, y1, y2, y3, t + 0.1)\r\n - cubicAt(y0, y1, y2, y3, t);\r\n bezierLen += mathSqrt$1(dx * dx + dy * dy);\r\n }\r\n for (; idx < nDash; idx++) {\r\n tmpLen += lineDash[idx];\r\n if (tmpLen > offset) {\r\n break;\r\n }\r\n }\r\n t = (tmpLen - offset) / bezierLen;\r\n while (t <= 1) {\r\n x = cubicAt(x0, x1, x2, x3, t);\r\n y = cubicAt(y0, y1, y2, y3, t);\r\n idx % 2 ? ctx.moveTo(x, y)\r\n : ctx.lineTo(x, y);\r\n t += lineDash[idx] / bezierLen;\r\n idx = (idx + 1) % nDash;\r\n }\r\n (idx % 2 !== 0) && ctx.lineTo(x3, y3);\r\n dx = x3 - x;\r\n dy = y3 - y;\r\n this._dashOffset = -mathSqrt$1(dx * dx + dy * dy);\r\n };\r\n PathProxy.prototype._dashedQuadraticTo = function (x1, y1, x2, y2) {\r\n var x3 = x2;\r\n var y3 = y2;\r\n x2 = (x2 + 2 * x1) / 3;\r\n y2 = (y2 + 2 * y1) / 3;\r\n x1 = (this._xi + 2 * x1) / 3;\r\n y1 = (this._yi + 2 * y1) / 3;\r\n this._dashedBezierTo(x1, y1, x2, y2, x3, y3);\r\n };\r\n PathProxy.prototype.toStatic = function () {\r\n if (!this._saveData) {\r\n return;\r\n }\r\n var data = this.data;\r\n if (data instanceof Array) {\r\n data.length = this._len;\r\n if (hasTypedArray && this._len > 11) {\r\n this.data = new Float32Array(data);\r\n }\r\n }\r\n };\r\n PathProxy.prototype.getBoundingRect = function () {\r\n min$1[0] = min$1[1] = min2[0] = min2[1] = Number.MAX_VALUE;\r\n max$1[0] = max$1[1] = max2[0] = max2[1] = -Number.MAX_VALUE;\r\n var data = this.data;\r\n var xi = 0;\r\n var yi = 0;\r\n var x0 = 0;\r\n var y0 = 0;\r\n var i;\r\n for (i = 0; i < this._len;) {\r\n var cmd = data[i++];\r\n var isFirst = i === 1;\r\n if (isFirst) {\r\n xi = data[i];\r\n yi = data[i + 1];\r\n x0 = xi;\r\n y0 = yi;\r\n }\r\n switch (cmd) {\r\n case CMD.M:\r\n xi = x0 = data[i++];\r\n yi = y0 = data[i++];\r\n min2[0] = x0;\r\n min2[1] = y0;\r\n max2[0] = x0;\r\n max2[1] = y0;\r\n break;\r\n case CMD.L:\r\n fromLine(xi, yi, data[i], data[i + 1], min2, max2);\r\n xi = data[i++];\r\n yi = data[i++];\r\n break;\r\n case CMD.C:\r\n fromCubic(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], min2, max2);\r\n xi = data[i++];\r\n yi = data[i++];\r\n break;\r\n case CMD.Q:\r\n fromQuadratic(xi, yi, data[i++], data[i++], data[i], data[i + 1], min2, max2);\r\n xi = data[i++];\r\n yi = data[i++];\r\n break;\r\n case CMD.A:\r\n var cx = data[i++];\r\n var cy = data[i++];\r\n var rx = data[i++];\r\n var ry = data[i++];\r\n var startAngle = data[i++];\r\n var endAngle = data[i++] + startAngle;\r\n i += 1;\r\n var anticlockwise = !data[i++];\r\n if (isFirst) {\r\n x0 = mathCos$1(startAngle) * rx + cx;\r\n y0 = mathSin$1(startAngle) * ry + cy;\r\n }\r\n fromArc(cx, cy, rx, ry, startAngle, endAngle, anticlockwise, min2, max2);\r\n xi = mathCos$1(endAngle) * rx + cx;\r\n yi = mathSin$1(endAngle) * ry + cy;\r\n break;\r\n case CMD.R:\r\n x0 = xi = data[i++];\r\n y0 = yi = data[i++];\r\n var width = data[i++];\r\n var height = data[i++];\r\n fromLine(x0, y0, x0 + width, y0 + height, min2, max2);\r\n break;\r\n case CMD.Z:\r\n xi = x0;\r\n yi = y0;\r\n break;\r\n }\r\n min(min$1, min$1, min2);\r\n max(max$1, max$1, max2);\r\n }\r\n if (i === 0) {\r\n min$1[0] = min$1[1] = max$1[0] = max$1[1] = 0;\r\n }\r\n return new BoundingRect(min$1[0], min$1[1], max$1[0] - min$1[0], max$1[1] - min$1[1]);\r\n };\r\n PathProxy.prototype._calculateLength = function () {\r\n var data = this.data;\r\n var len = this._len;\r\n var ux = this._ux;\r\n var uy = this._uy;\r\n var xi = 0;\r\n var yi = 0;\r\n var x0 = 0;\r\n var y0 = 0;\r\n if (!this._pathSegLen) {\r\n this._pathSegLen = [];\r\n }\r\n var pathSegLen = this._pathSegLen;\r\n var pathTotalLen = 0;\r\n var segCount = 0;\r\n for (var i = 0; i < len;) {\r\n var cmd = data[i++];\r\n var isFirst = i === 1;\r\n if (isFirst) {\r\n xi = data[i];\r\n yi = data[i + 1];\r\n x0 = xi;\r\n y0 = yi;\r\n }\r\n var l = -1;\r\n switch (cmd) {\r\n case CMD.M:\r\n xi = x0 = data[i++];\r\n yi = y0 = data[i++];\r\n break;\r\n case CMD.L: {\r\n var x2 = data[i++];\r\n var y2 = data[i++];\r\n var dx = x2 - xi;\r\n var dy = y2 - yi;\r\n if (mathAbs(dx) > ux || mathAbs(dy) > uy || i === len - 1) {\r\n l = Math.sqrt(dx * dx + dy * dy);\r\n xi = x2;\r\n yi = y2;\r\n }\r\n break;\r\n }\r\n case CMD.C: {\r\n var x1 = data[i++];\r\n var y1 = data[i++];\r\n var x2 = data[i++];\r\n var y2 = data[i++];\r\n var x3 = data[i++];\r\n var y3 = data[i++];\r\n l = cubicLength(xi, yi, x1, y1, x2, y2, x3, y3, 10);\r\n xi = x3;\r\n yi = y3;\r\n break;\r\n }\r\n case CMD.Q: {\r\n var x1 = data[i++];\r\n var y1 = data[i++];\r\n var x2 = data[i++];\r\n var y2 = data[i++];\r\n l = quadraticLength(xi, yi, x1, y1, x2, y2, 10);\r\n xi = x2;\r\n yi = y2;\r\n break;\r\n }\r\n case CMD.A:\r\n var cx = data[i++];\r\n var cy = data[i++];\r\n var rx = data[i++];\r\n var ry = data[i++];\r\n var startAngle = data[i++];\r\n var delta = data[i++];\r\n var endAngle = delta + startAngle;\r\n i += 1;\r\n var anticlockwise = !data[i++];\r\n if (isFirst) {\r\n x0 = mathCos$1(startAngle) * rx + cx;\r\n y0 = mathSin$1(startAngle) * ry + cy;\r\n }\r\n l = mathMax$2(rx, ry) * mathMin$2(PI2$1, Math.abs(delta));\r\n xi = mathCos$1(endAngle) * rx + cx;\r\n yi = mathSin$1(endAngle) * ry + cy;\r\n break;\r\n case CMD.R: {\r\n x0 = xi = data[i++];\r\n y0 = yi = data[i++];\r\n var width = data[i++];\r\n var height = data[i++];\r\n l = width * 2 + height * 2;\r\n break;\r\n }\r\n case CMD.Z: {\r\n var dx = x0 - xi;\r\n var dy = y0 - yi;\r\n l = Math.sqrt(dx * dx + dy * dy);\r\n xi = x0;\r\n yi = y0;\r\n break;\r\n }\r\n }\r\n if (l >= 0) {\r\n pathSegLen[segCount++] = l;\r\n pathTotalLen += l;\r\n }\r\n }\r\n this._pathLen = pathTotalLen;\r\n return pathTotalLen;\r\n };\r\n PathProxy.prototype.rebuildPath = function (ctx, percent) {\r\n var d = this.data;\r\n var ux = this._ux;\r\n var uy = this._uy;\r\n var len = this._len;\r\n var x0;\r\n var y0;\r\n var xi;\r\n var yi;\r\n var x;\r\n var y;\r\n var drawPart = percent < 1;\r\n var pathSegLen;\r\n var pathTotalLen;\r\n var accumLength = 0;\r\n var segCount = 0;\r\n var displayedLength;\r\n if (drawPart) {\r\n if (!this._pathSegLen) {\r\n this._calculateLength();\r\n }\r\n pathSegLen = this._pathSegLen;\r\n pathTotalLen = this._pathLen;\r\n displayedLength = percent * pathTotalLen;\r\n if (!displayedLength) {\r\n return;\r\n }\r\n }\r\n lo: for (var i = 0; i < len;) {\r\n var cmd = d[i++];\r\n var isFirst = i === 1;\r\n if (isFirst) {\r\n xi = d[i];\r\n yi = d[i + 1];\r\n x0 = xi;\r\n y0 = yi;\r\n }\r\n switch (cmd) {\r\n case CMD.M:\r\n x0 = xi = d[i++];\r\n y0 = yi = d[i++];\r\n ctx.moveTo(xi, yi);\r\n break;\r\n case CMD.L: {\r\n x = d[i++];\r\n y = d[i++];\r\n if (mathAbs(x - xi) > ux || mathAbs(y - yi) > uy || i === len - 1) {\r\n if (drawPart) {\r\n var l = pathSegLen[segCount++];\r\n if (accumLength + l > displayedLength) {\r\n var t = (displayedLength - accumLength) / l;\r\n ctx.lineTo(xi * (1 - t) + x * t, yi * (1 - t) + y * t);\r\n break lo;\r\n }\r\n accumLength += l;\r\n }\r\n ctx.lineTo(x, y);\r\n xi = x;\r\n yi = y;\r\n }\r\n break;\r\n }\r\n case CMD.C: {\r\n var x1 = d[i++];\r\n var y1 = d[i++];\r\n var x2 = d[i++];\r\n var y2 = d[i++];\r\n var x3 = d[i++];\r\n var y3 = d[i++];\r\n if (drawPart) {\r\n var l = pathSegLen[segCount++];\r\n if (accumLength + l > displayedLength) {\r\n var t = (displayedLength - accumLength) / l;\r\n cubicSubdivide(xi, x1, x2, x3, t, tmpOutX);\r\n cubicSubdivide(yi, y1, y2, y3, t, tmpOutY);\r\n ctx.bezierCurveTo(tmpOutX[1], tmpOutY[1], tmpOutX[2], tmpOutY[2], tmpOutX[3], tmpOutY[3]);\r\n break lo;\r\n }\r\n accumLength += l;\r\n }\r\n ctx.bezierCurveTo(x1, y1, x2, y2, x3, y3);\r\n xi = x3;\r\n yi = y3;\r\n break;\r\n }\r\n case CMD.Q: {\r\n var x1 = d[i++];\r\n var y1 = d[i++];\r\n var x2 = d[i++];\r\n var y2 = d[i++];\r\n if (drawPart) {\r\n var l = pathSegLen[segCount++];\r\n if (accumLength + l > displayedLength) {\r\n var t = (displayedLength - accumLength) / l;\r\n quadraticSubdivide(xi, x1, x2, t, tmpOutX);\r\n quadraticSubdivide(yi, y1, y2, t, tmpOutY);\r\n ctx.quadraticCurveTo(tmpOutX[1], tmpOutY[1], tmpOutX[2], tmpOutY[2]);\r\n break lo;\r\n }\r\n accumLength += l;\r\n }\r\n ctx.quadraticCurveTo(x1, y1, x2, y2);\r\n xi = x2;\r\n yi = y2;\r\n break;\r\n }\r\n case CMD.A:\r\n var cx = d[i++];\r\n var cy = d[i++];\r\n var rx = d[i++];\r\n var ry = d[i++];\r\n var startAngle = d[i++];\r\n var delta = d[i++];\r\n var psi = d[i++];\r\n var anticlockwise = !d[i++];\r\n var r = (rx > ry) ? rx : ry;\r\n var isEllipse = mathAbs(rx - ry) > 1e-3;\r\n var endAngle = startAngle + delta;\r\n var breakBuild = false;\r\n if (drawPart) {\r\n var l = pathSegLen[segCount++];\r\n if (accumLength + l > displayedLength) {\r\n endAngle = startAngle + delta * (displayedLength - accumLength) / l;\r\n breakBuild = true;\r\n }\r\n accumLength += l;\r\n }\r\n if (isEllipse && ctx.ellipse) {\r\n ctx.ellipse(cx, cy, rx, ry, psi, startAngle, endAngle, anticlockwise);\r\n }\r\n else {\r\n ctx.arc(cx, cy, r, startAngle, endAngle, anticlockwise);\r\n }\r\n if (breakBuild) {\r\n break lo;\r\n }\r\n if (isFirst) {\r\n x0 = mathCos$1(startAngle) * rx + cx;\r\n y0 = mathSin$1(startAngle) * ry + cy;\r\n }\r\n xi = mathCos$1(endAngle) * rx + cx;\r\n yi = mathSin$1(endAngle) * ry + cy;\r\n break;\r\n case CMD.R:\r\n x0 = xi = d[i];\r\n y0 = yi = d[i + 1];\r\n x = d[i++];\r\n y = d[i++];\r\n var width = d[i++];\r\n var height = d[i++];\r\n if (drawPart) {\r\n var l = pathSegLen[segCount++];\r\n if (accumLength + l > displayedLength) {\r\n var d_1 = displayedLength - accumLength;\r\n ctx.moveTo(x, y);\r\n ctx.lineTo(x + mathMin$2(d_1, width), y);\r\n d_1 -= width;\r\n if (d_1 > 0) {\r\n ctx.lineTo(x + width, y + mathMin$2(d_1, height));\r\n }\r\n d_1 -= height;\r\n if (d_1 > 0) {\r\n ctx.lineTo(x + mathMax$2(width - d_1, 0), y + height);\r\n }\r\n d_1 -= width;\r\n if (d_1 > 0) {\r\n ctx.lineTo(x, y + mathMax$2(height - d_1, 0));\r\n }\r\n break lo;\r\n }\r\n accumLength += l;\r\n }\r\n ctx.rect(x, y, width, height);\r\n break;\r\n case CMD.Z:\r\n if (drawPart) {\r\n var l = pathSegLen[segCount++];\r\n if (accumLength + l > displayedLength) {\r\n var t = (displayedLength - accumLength) / l;\r\n ctx.lineTo(xi * (1 - t) + x0 * t, yi * (1 - t) + y0 * t);\r\n break lo;\r\n }\r\n accumLength += l;\r\n }\r\n ctx.closePath();\r\n xi = x0;\r\n yi = y0;\r\n }\r\n }\r\n };\r\n PathProxy.CMD = CMD;\r\n PathProxy.initDefaultProps = (function () {\r\n var proto = PathProxy.prototype;\r\n proto._saveData = true;\r\n proto._needsDash = false;\r\n proto._dashOffset = 0;\r\n proto._dashIdx = 0;\r\n proto._dashSum = 0;\r\n proto._ux = 0;\r\n proto._uy = 0;\r\n })();\r\n return PathProxy;\r\n }());\n\n function containStroke(x0, y0, x1, y1, lineWidth, x, y) {\r\n if (lineWidth === 0) {\r\n return false;\r\n }\r\n var _l = lineWidth;\r\n var _a = 0;\r\n var _b = x0;\r\n if ((y > y0 + _l && y > y1 + _l)\r\n || (y < y0 - _l && y < y1 - _l)\r\n || (x > x0 + _l && x > x1 + _l)\r\n || (x < x0 - _l && x < x1 - _l)) {\r\n return false;\r\n }\r\n if (x0 !== x1) {\r\n _a = (y0 - y1) / (x0 - x1);\r\n _b = (x0 * y1 - x1 * y0) / (x0 - x1);\r\n }\r\n else {\r\n return Math.abs(x - x0) <= _l / 2;\r\n }\r\n var tmp = _a * x - y + _b;\r\n var _s = tmp * tmp / (_a * _a + 1);\r\n return _s <= _l / 2 * _l / 2;\r\n }\n\n function containStroke$1(x0, y0, x1, y1, x2, y2, x3, y3, lineWidth, x, y) {\r\n if (lineWidth === 0) {\r\n return false;\r\n }\r\n var _l = lineWidth;\r\n if ((y > y0 + _l && y > y1 + _l && y > y2 + _l && y > y3 + _l)\r\n || (y < y0 - _l && y < y1 - _l && y < y2 - _l && y < y3 - _l)\r\n || (x > x0 + _l && x > x1 + _l && x > x2 + _l && x > x3 + _l)\r\n || (x < x0 - _l && x < x1 - _l && x < x2 - _l && x < x3 - _l)) {\r\n return false;\r\n }\r\n var d = cubicProjectPoint(x0, y0, x1, y1, x2, y2, x3, y3, x, y, null);\r\n return d <= _l / 2;\r\n }\n\n function containStroke$2(x0, y0, x1, y1, x2, y2, lineWidth, x, y) {\r\n if (lineWidth === 0) {\r\n return false;\r\n }\r\n var _l = lineWidth;\r\n if ((y > y0 + _l && y > y1 + _l && y > y2 + _l)\r\n || (y < y0 - _l && y < y1 - _l && y < y2 - _l)\r\n || (x > x0 + _l && x > x1 + _l && x > x2 + _l)\r\n || (x < x0 - _l && x < x1 - _l && x < x2 - _l)) {\r\n return false;\r\n }\r\n var d = quadraticProjectPoint(x0, y0, x1, y1, x2, y2, x, y, null);\r\n return d <= _l / 2;\r\n }\n\n var PI2$2 = Math.PI * 2;\r\n function normalizeRadian(angle) {\r\n angle %= PI2$2;\r\n if (angle < 0) {\r\n angle += PI2$2;\r\n }\r\n return angle;\r\n }\n\n var PI2$3 = Math.PI * 2;\r\n function containStroke$3(cx, cy, r, startAngle, endAngle, anticlockwise, lineWidth, x, y) {\r\n if (lineWidth === 0) {\r\n return false;\r\n }\r\n var _l = lineWidth;\r\n x -= cx;\r\n y -= cy;\r\n var d = Math.sqrt(x * x + y * y);\r\n if ((d - _l > r) || (d + _l < r)) {\r\n return false;\r\n }\r\n if (Math.abs(startAngle - endAngle) % PI2$3 < 1e-4) {\r\n return true;\r\n }\r\n if (anticlockwise) {\r\n var tmp = startAngle;\r\n startAngle = normalizeRadian(endAngle);\r\n endAngle = normalizeRadian(tmp);\r\n }\r\n else {\r\n startAngle = normalizeRadian(startAngle);\r\n endAngle = normalizeRadian(endAngle);\r\n }\r\n if (startAngle > endAngle) {\r\n endAngle += PI2$3;\r\n }\r\n var angle = Math.atan2(y, x);\r\n if (angle < 0) {\r\n angle += PI2$3;\r\n }\r\n return (angle >= startAngle && angle <= endAngle)\r\n || (angle + PI2$3 >= startAngle && angle + PI2$3 <= endAngle);\r\n }\n\n function windingLine(x0, y0, x1, y1, x, y) {\r\n if ((y > y0 && y > y1) || (y < y0 && y < y1)) {\r\n return 0;\r\n }\r\n if (y1 === y0) {\r\n return 0;\r\n }\r\n var t = (y - y0) / (y1 - y0);\r\n var dir = y1 < y0 ? 1 : -1;\r\n if (t === 1 || t === 0) {\r\n dir = y1 < y0 ? 0.5 : -0.5;\r\n }\r\n var x_ = t * (x1 - x0) + x0;\r\n return x_ === x ? Infinity : x_ > x ? dir : 0;\r\n }\n\n var CMD$1 = PathProxy.CMD;\r\n var PI2$4 = Math.PI * 2;\r\n var EPSILON$2 = 1e-4;\r\n function isAroundEqual(a, b) {\r\n return Math.abs(a - b) < EPSILON$2;\r\n }\r\n var roots = [-1, -1, -1];\r\n var extrema = [-1, -1];\r\n function swapExtrema() {\r\n var tmp = extrema[0];\r\n extrema[0] = extrema[1];\r\n extrema[1] = tmp;\r\n }\r\n function windingCubic(x0, y0, x1, y1, x2, y2, x3, y3, x, y) {\r\n if ((y > y0 && y > y1 && y > y2 && y > y3)\r\n || (y < y0 && y < y1 && y < y2 && y < y3)) {\r\n return 0;\r\n }\r\n var nRoots = cubicRootAt(y0, y1, y2, y3, y, roots);\r\n if (nRoots === 0) {\r\n return 0;\r\n }\r\n else {\r\n var w = 0;\r\n var nExtrema = -1;\r\n var y0_ = void 0;\r\n var y1_ = void 0;\r\n for (var i = 0; i < nRoots; i++) {\r\n var t = roots[i];\r\n var unit = (t === 0 || t === 1) ? 0.5 : 1;\r\n var x_ = cubicAt(x0, x1, x2, x3, t);\r\n if (x_ < x) {\r\n continue;\r\n }\r\n if (nExtrema < 0) {\r\n nExtrema = cubicExtrema(y0, y1, y2, y3, extrema);\r\n if (extrema[1] < extrema[0] && nExtrema > 1) {\r\n swapExtrema();\r\n }\r\n y0_ = cubicAt(y0, y1, y2, y3, extrema[0]);\r\n if (nExtrema > 1) {\r\n y1_ = cubicAt(y0, y1, y2, y3, extrema[1]);\r\n }\r\n }\r\n if (nExtrema === 2) {\r\n if (t < extrema[0]) {\r\n w += y0_ < y0 ? unit : -unit;\r\n }\r\n else if (t < extrema[1]) {\r\n w += y1_ < y0_ ? unit : -unit;\r\n }\r\n else {\r\n w += y3 < y1_ ? unit : -unit;\r\n }\r\n }\r\n else {\r\n if (t < extrema[0]) {\r\n w += y0_ < y0 ? unit : -unit;\r\n }\r\n else {\r\n w += y3 < y0_ ? unit : -unit;\r\n }\r\n }\r\n }\r\n return w;\r\n }\r\n }\r\n function windingQuadratic(x0, y0, x1, y1, x2, y2, x, y) {\r\n if ((y > y0 && y > y1 && y > y2)\r\n || (y < y0 && y < y1 && y < y2)) {\r\n return 0;\r\n }\r\n var nRoots = quadraticRootAt(y0, y1, y2, y, roots);\r\n if (nRoots === 0) {\r\n return 0;\r\n }\r\n else {\r\n var t = quadraticExtremum(y0, y1, y2);\r\n if (t >= 0 && t <= 1) {\r\n var w = 0;\r\n var y_ = quadraticAt(y0, y1, y2, t);\r\n for (var i = 0; i < nRoots; i++) {\r\n var unit = (roots[i] === 0 || roots[i] === 1) ? 0.5 : 1;\r\n var x_ = quadraticAt(x0, x1, x2, roots[i]);\r\n if (x_ < x) {\r\n continue;\r\n }\r\n if (roots[i] < t) {\r\n w += y_ < y0 ? unit : -unit;\r\n }\r\n else {\r\n w += y2 < y_ ? unit : -unit;\r\n }\r\n }\r\n return w;\r\n }\r\n else {\r\n var unit = (roots[0] === 0 || roots[0] === 1) ? 0.5 : 1;\r\n var x_ = quadraticAt(x0, x1, x2, roots[0]);\r\n if (x_ < x) {\r\n return 0;\r\n }\r\n return y2 < y0 ? unit : -unit;\r\n }\r\n }\r\n }\r\n function windingArc(cx, cy, r, startAngle, endAngle, anticlockwise, x, y) {\r\n y -= cy;\r\n if (y > r || y < -r) {\r\n return 0;\r\n }\r\n var tmp = Math.sqrt(r * r - y * y);\r\n roots[0] = -tmp;\r\n roots[1] = tmp;\r\n var dTheta = Math.abs(startAngle - endAngle);\r\n if (dTheta < 1e-4) {\r\n return 0;\r\n }\r\n if (dTheta >= PI2$4 - 1e-4) {\r\n startAngle = 0;\r\n endAngle = PI2$4;\r\n var dir = anticlockwise ? 1 : -1;\r\n if (x >= roots[0] + cx && x <= roots[1] + cx) {\r\n return dir;\r\n }\r\n else {\r\n return 0;\r\n }\r\n }\r\n if (startAngle > endAngle) {\r\n var tmp_1 = startAngle;\r\n startAngle = endAngle;\r\n endAngle = tmp_1;\r\n }\r\n if (startAngle < 0) {\r\n startAngle += PI2$4;\r\n endAngle += PI2$4;\r\n }\r\n var w = 0;\r\n for (var i = 0; i < 2; i++) {\r\n var x_ = roots[i];\r\n if (x_ + cx > x) {\r\n var angle = Math.atan2(y, x_);\r\n var dir = anticlockwise ? 1 : -1;\r\n if (angle < 0) {\r\n angle = PI2$4 + angle;\r\n }\r\n if ((angle >= startAngle && angle <= endAngle)\r\n || (angle + PI2$4 >= startAngle && angle + PI2$4 <= endAngle)) {\r\n if (angle > Math.PI / 2 && angle < Math.PI * 1.5) {\r\n dir = -dir;\r\n }\r\n w += dir;\r\n }\r\n }\r\n }\r\n return w;\r\n }\r\n function containPath(path, lineWidth, isStroke, x, y) {\r\n var data = path.data;\r\n var len = path.len();\r\n var w = 0;\r\n var xi = 0;\r\n var yi = 0;\r\n var x0 = 0;\r\n var y0 = 0;\r\n var x1;\r\n var y1;\r\n for (var i = 0; i < len;) {\r\n var cmd = data[i++];\r\n var isFirst = i === 1;\r\n if (cmd === CMD$1.M && i > 1) {\r\n if (!isStroke) {\r\n w += windingLine(xi, yi, x0, y0, x, y);\r\n }\r\n }\r\n if (isFirst) {\r\n xi = data[i];\r\n yi = data[i + 1];\r\n x0 = xi;\r\n y0 = yi;\r\n }\r\n switch (cmd) {\r\n case CMD$1.M:\r\n x0 = data[i++];\r\n y0 = data[i++];\r\n xi = x0;\r\n yi = y0;\r\n break;\r\n case CMD$1.L:\r\n if (isStroke) {\r\n if (containStroke(xi, yi, data[i], data[i + 1], lineWidth, x, y)) {\r\n return true;\r\n }\r\n }\r\n else {\r\n w += windingLine(xi, yi, data[i], data[i + 1], x, y) || 0;\r\n }\r\n xi = data[i++];\r\n yi = data[i++];\r\n break;\r\n case CMD$1.C:\r\n if (isStroke) {\r\n if (containStroke$1(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], lineWidth, x, y)) {\r\n return true;\r\n }\r\n }\r\n else {\r\n w += windingCubic(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], x, y) || 0;\r\n }\r\n xi = data[i++];\r\n yi = data[i++];\r\n break;\r\n case CMD$1.Q:\r\n if (isStroke) {\r\n if (containStroke$2(xi, yi, data[i++], data[i++], data[i], data[i + 1], lineWidth, x, y)) {\r\n return true;\r\n }\r\n }\r\n else {\r\n w += windingQuadratic(xi, yi, data[i++], data[i++], data[i], data[i + 1], x, y) || 0;\r\n }\r\n xi = data[i++];\r\n yi = data[i++];\r\n break;\r\n case CMD$1.A:\r\n var cx = data[i++];\r\n var cy = data[i++];\r\n var rx = data[i++];\r\n var ry = data[i++];\r\n var theta = data[i++];\r\n var dTheta = data[i++];\r\n i += 1;\r\n var anticlockwise = !!(1 - data[i++]);\r\n x1 = Math.cos(theta) * rx + cx;\r\n y1 = Math.sin(theta) * ry + cy;\r\n if (!isFirst) {\r\n w += windingLine(xi, yi, x1, y1, x, y);\r\n }\r\n else {\r\n x0 = x1;\r\n y0 = y1;\r\n }\r\n var _x = (x - cx) * ry / rx + cx;\r\n if (isStroke) {\r\n if (containStroke$3(cx, cy, ry, theta, theta + dTheta, anticlockwise, lineWidth, _x, y)) {\r\n return true;\r\n }\r\n }\r\n else {\r\n w += windingArc(cx, cy, ry, theta, theta + dTheta, anticlockwise, _x, y);\r\n }\r\n xi = Math.cos(theta + dTheta) * rx + cx;\r\n yi = Math.sin(theta + dTheta) * ry + cy;\r\n break;\r\n case CMD$1.R:\r\n x0 = xi = data[i++];\r\n y0 = yi = data[i++];\r\n var width = data[i++];\r\n var height = data[i++];\r\n x1 = x0 + width;\r\n y1 = y0 + height;\r\n if (isStroke) {\r\n if (containStroke(x0, y0, x1, y0, lineWidth, x, y)\r\n || containStroke(x1, y0, x1, y1, lineWidth, x, y)\r\n || containStroke(x1, y1, x0, y1, lineWidth, x, y)\r\n || containStroke(x0, y1, x0, y0, lineWidth, x, y)) {\r\n return true;\r\n }\r\n }\r\n else {\r\n w += windingLine(x1, y0, x1, y1, x, y);\r\n w += windingLine(x0, y1, x0, y0, x, y);\r\n }\r\n break;\r\n case CMD$1.Z:\r\n if (isStroke) {\r\n if (containStroke(xi, yi, x0, y0, lineWidth, x, y)) {\r\n return true;\r\n }\r\n }\r\n else {\r\n w += windingLine(xi, yi, x0, y0, x, y);\r\n }\r\n xi = x0;\r\n yi = y0;\r\n break;\r\n }\r\n }\r\n if (!isStroke && !isAroundEqual(yi, y0)) {\r\n w += windingLine(xi, yi, x0, y0, x, y) || 0;\r\n }\r\n return w !== 0;\r\n }\r\n function contain(pathProxy, x, y) {\r\n return containPath(pathProxy, 0, false, x, y);\r\n }\r\n function containStroke$4(pathProxy, lineWidth, x, y) {\r\n return containPath(pathProxy, lineWidth, true, x, y);\r\n }\n\n var DEFAULT_PATH_STYLE = defaults({\r\n fill: '#000',\r\n stroke: null,\r\n strokePercent: 1,\r\n fillOpacity: 1,\r\n strokeOpacity: 1,\r\n lineDashOffset: 0,\r\n lineWidth: 1,\r\n lineCap: 'butt',\r\n miterLimit: 10,\r\n strokeNoScale: false,\r\n strokeFirst: false\r\n }, DEFAULT_COMMON_STYLE);\r\n var DEFAULT_PATH_ANIMATION_PROPS = {\r\n style: defaults({\r\n fill: true,\r\n stroke: true,\r\n strokePercent: true,\r\n fillOpacity: true,\r\n strokeOpacity: true,\r\n lineDashOffset: true,\r\n lineWidth: true,\r\n miterLimit: true\r\n }, DEFAULT_COMMON_ANIMATION_PROPS.style)\r\n };\r\n var pathCopyParams = [\r\n 'x', 'y', 'rotation', 'scaleX', 'scaleY', 'originX', 'originY', 'invisible',\r\n 'culling', 'z', 'z2', 'zlevel', 'parent'\r\n ];\r\n var Path = (function (_super) {\r\n __extends(Path, _super);\r\n function Path(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Path.prototype.update = function () {\r\n var _this = this;\r\n _super.prototype.update.call(this);\r\n var style = this.style;\r\n if (style.decal) {\r\n var decalEl = this._decalEl\r\n = this._decalEl || new Path();\r\n if (decalEl.buildPath === Path.prototype.buildPath) {\r\n decalEl.buildPath = function (ctx) {\r\n _this.buildPath(ctx, _this.shape);\r\n };\r\n }\r\n decalEl.silent = true;\r\n var decalElStyle = decalEl.style;\r\n for (var key in style) {\r\n if (decalElStyle[key] !== style[key]) {\r\n decalElStyle[key] = style[key];\r\n }\r\n }\r\n decalElStyle.fill = style.fill ? style.decal : null;\r\n decalElStyle.decal = null;\r\n decalElStyle.shadowColor = null;\r\n style.strokeFirst && (decalElStyle.stroke = null);\r\n for (var i = 0; i < pathCopyParams.length; ++i) {\r\n decalEl[pathCopyParams[i]] = this[pathCopyParams[i]];\r\n }\r\n decalEl.__dirty |= Element.REDARAW_BIT;\r\n }\r\n else if (this._decalEl) {\r\n this._decalEl = null;\r\n }\r\n };\r\n Path.prototype.getDecalElement = function () {\r\n return this._decalEl;\r\n };\r\n Path.prototype._init = function (props) {\r\n var keysArr = keys(props);\r\n this.shape = this.getDefaultShape();\r\n var defaultStyle = this.getDefaultStyle();\r\n if (defaultStyle) {\r\n this.useStyle(defaultStyle);\r\n }\r\n for (var i = 0; i < keysArr.length; i++) {\r\n var key = keysArr[i];\r\n var value = props[key];\r\n if (key === 'style') {\r\n if (!this.style) {\r\n this.useStyle(value);\r\n }\r\n else {\r\n extend(this.style, value);\r\n }\r\n }\r\n else if (key === 'shape') {\r\n extend(this.shape, value);\r\n }\r\n else {\r\n _super.prototype.attrKV.call(this, key, value);\r\n }\r\n }\r\n if (!this.style) {\r\n this.useStyle({});\r\n }\r\n };\r\n Path.prototype.getDefaultStyle = function () {\r\n return null;\r\n };\r\n Path.prototype.getDefaultShape = function () {\r\n return {};\r\n };\r\n Path.prototype.canBeInsideText = function () {\r\n return this.hasFill();\r\n };\r\n Path.prototype.getInsideTextFill = function () {\r\n var pathFill = this.style.fill;\r\n if (pathFill !== 'none') {\r\n if (isString(pathFill)) {\r\n var fillLum = lum(pathFill, 0);\r\n if (fillLum > 0.5) {\r\n return DARK_LABEL_COLOR;\r\n }\r\n else if (fillLum > 0.2) {\r\n return LIGHTER_LABEL_COLOR;\r\n }\r\n return LIGHT_LABEL_COLOR;\r\n }\r\n else if (pathFill) {\r\n return LIGHT_LABEL_COLOR;\r\n }\r\n }\r\n return DARK_LABEL_COLOR;\r\n };\r\n Path.prototype.getInsideTextStroke = function (textFill) {\r\n var pathFill = this.style.fill;\r\n if (isString(pathFill)) {\r\n var zr = this.__zr;\r\n var isDarkMode = !!(zr && zr.isDarkMode());\r\n var isDarkLabel = lum(textFill, 0) < DARK_MODE_THRESHOLD;\r\n if (isDarkMode === isDarkLabel) {\r\n return pathFill;\r\n }\r\n }\r\n };\r\n Path.prototype.buildPath = function (ctx, shapeCfg, inBundle) { };\r\n Path.prototype.pathUpdated = function () {\r\n this.__dirty &= ~Path.SHAPE_CHANGED_BIT;\r\n };\r\n Path.prototype.createPathProxy = function () {\r\n this.path = new PathProxy(false);\r\n };\r\n Path.prototype.hasStroke = function () {\r\n var style = this.style;\r\n var stroke = style.stroke;\r\n return !(stroke == null || stroke === 'none' || !(style.lineWidth > 0));\r\n };\r\n Path.prototype.hasFill = function () {\r\n var style = this.style;\r\n var fill = style.fill;\r\n return fill != null && fill !== 'none';\r\n };\r\n Path.prototype.getBoundingRect = function () {\r\n var rect = this._rect;\r\n var style = this.style;\r\n var needsUpdateRect = !rect;\r\n if (needsUpdateRect) {\r\n var firstInvoke = false;\r\n if (!this.path) {\r\n firstInvoke = true;\r\n this.createPathProxy();\r\n }\r\n var path = this.path;\r\n if (firstInvoke || (this.__dirty & Path.SHAPE_CHANGED_BIT)) {\r\n path.beginPath();\r\n this.buildPath(path, this.shape, false);\r\n this.pathUpdated();\r\n }\r\n rect = path.getBoundingRect();\r\n }\r\n this._rect = rect;\r\n if (this.hasStroke() && this.path && this.path.len() > 0) {\r\n var rectWithStroke = this._rectWithStroke || (this._rectWithStroke = rect.clone());\r\n if (this.__dirty || needsUpdateRect) {\r\n rectWithStroke.copy(rect);\r\n var lineScale = style.strokeNoScale ? this.getLineScale() : 1;\r\n var w = style.lineWidth;\r\n if (!this.hasFill()) {\r\n var strokeContainThreshold = this.strokeContainThreshold;\r\n w = Math.max(w, strokeContainThreshold == null ? 4 : strokeContainThreshold);\r\n }\r\n if (lineScale > 1e-10) {\r\n rectWithStroke.width += w / lineScale;\r\n rectWithStroke.height += w / lineScale;\r\n rectWithStroke.x -= w / lineScale / 2;\r\n rectWithStroke.y -= w / lineScale / 2;\r\n }\r\n }\r\n return rectWithStroke;\r\n }\r\n return rect;\r\n };\r\n Path.prototype.contain = function (x, y) {\r\n var localPos = this.transformCoordToLocal(x, y);\r\n var rect = this.getBoundingRect();\r\n var style = this.style;\r\n x = localPos[0];\r\n y = localPos[1];\r\n if (rect.contain(x, y)) {\r\n var pathProxy = this.path;\r\n if (this.hasStroke()) {\r\n var lineWidth = style.lineWidth;\r\n var lineScale = style.strokeNoScale ? this.getLineScale() : 1;\r\n if (lineScale > 1e-10) {\r\n if (!this.hasFill()) {\r\n lineWidth = Math.max(lineWidth, this.strokeContainThreshold);\r\n }\r\n if (containStroke$4(pathProxy, lineWidth / lineScale, x, y)) {\r\n return true;\r\n }\r\n }\r\n }\r\n if (this.hasFill()) {\r\n return contain(pathProxy, x, y);\r\n }\r\n }\r\n return false;\r\n };\r\n Path.prototype.dirtyShape = function () {\r\n this.__dirty |= Path.SHAPE_CHANGED_BIT;\r\n if (this._rect) {\r\n this._rect = null;\r\n }\r\n if (this._decalEl) {\r\n this._decalEl.dirtyShape();\r\n }\r\n this.markRedraw();\r\n };\r\n Path.prototype.dirty = function () {\r\n this.dirtyStyle();\r\n this.dirtyShape();\r\n };\r\n Path.prototype.animateShape = function (loop) {\r\n return this.animate('shape', loop);\r\n };\r\n Path.prototype.updateDuringAnimation = function (targetKey) {\r\n if (targetKey === 'style') {\r\n this.dirtyStyle();\r\n }\r\n else if (targetKey === 'shape') {\r\n this.dirtyShape();\r\n }\r\n else {\r\n this.markRedraw();\r\n }\r\n };\r\n Path.prototype.attrKV = function (key, value) {\r\n if (key === 'shape') {\r\n this.setShape(value);\r\n }\r\n else {\r\n _super.prototype.attrKV.call(this, key, value);\r\n }\r\n };\r\n Path.prototype.setShape = function (keyOrObj, value) {\r\n var shape = this.shape;\r\n if (!shape) {\r\n shape = this.shape = {};\r\n }\r\n if (typeof keyOrObj === 'string') {\r\n shape[keyOrObj] = value;\r\n }\r\n else {\r\n extend(shape, keyOrObj);\r\n }\r\n this.dirtyShape();\r\n return this;\r\n };\r\n Path.prototype.shapeChanged = function () {\r\n return !!(this.__dirty & Path.SHAPE_CHANGED_BIT);\r\n };\r\n Path.prototype.createStyle = function (obj) {\r\n return createObject(DEFAULT_PATH_STYLE, obj);\r\n };\r\n Path.prototype._innerSaveToNormal = function (toState) {\r\n _super.prototype._innerSaveToNormal.call(this, toState);\r\n var normalState = this._normalState;\r\n if (toState.shape && !normalState.shape) {\r\n normalState.shape = extend({}, this.shape);\r\n }\r\n };\r\n Path.prototype._applyStateObj = function (stateName, state, normalState, keepCurrentStates, transition, animationCfg) {\r\n _super.prototype._applyStateObj.call(this, stateName, state, normalState, keepCurrentStates, transition, animationCfg);\r\n var needsRestoreToNormal = !(state && keepCurrentStates);\r\n var targetShape;\r\n if (state && state.shape) {\r\n if (transition) {\r\n if (keepCurrentStates) {\r\n targetShape = state.shape;\r\n }\r\n else {\r\n targetShape = extend({}, normalState.shape);\r\n extend(targetShape, state.shape);\r\n }\r\n }\r\n else {\r\n targetShape = extend({}, keepCurrentStates ? this.shape : normalState.shape);\r\n extend(targetShape, state.shape);\r\n }\r\n }\r\n else if (needsRestoreToNormal) {\r\n targetShape = normalState.shape;\r\n }\r\n if (targetShape) {\r\n if (transition) {\r\n this.shape = extend({}, this.shape);\r\n var targetShapePrimaryProps = {};\r\n var shapeKeys = keys(targetShape);\r\n for (var i = 0; i < shapeKeys.length; i++) {\r\n var key = shapeKeys[i];\r\n if (typeof targetShape[key] === 'object') {\r\n this.shape[key] = targetShape[key];\r\n }\r\n else {\r\n targetShapePrimaryProps[key] = targetShape[key];\r\n }\r\n }\r\n this._transitionState(stateName, {\r\n shape: targetShapePrimaryProps\r\n }, animationCfg);\r\n }\r\n else {\r\n this.shape = targetShape;\r\n this.dirtyShape();\r\n }\r\n }\r\n };\r\n Path.prototype._mergeStates = function (states) {\r\n var mergedState = _super.prototype._mergeStates.call(this, states);\r\n var mergedShape;\r\n for (var i = 0; i < states.length; i++) {\r\n var state = states[i];\r\n if (state.shape) {\r\n mergedShape = mergedShape || {};\r\n this._mergeStyle(mergedShape, state.shape);\r\n }\r\n }\r\n if (mergedShape) {\r\n mergedState.shape = mergedShape;\r\n }\r\n return mergedState;\r\n };\r\n Path.prototype.getAnimationStyleProps = function () {\r\n return DEFAULT_PATH_ANIMATION_PROPS;\r\n };\r\n Path.prototype.isZeroArea = function () {\r\n return false;\r\n };\r\n Path.extend = function (defaultProps) {\r\n var Sub = (function (_super) {\r\n __extends(Sub, _super);\r\n function Sub(opts) {\r\n var _this = _super.call(this, opts) || this;\r\n defaultProps.init && defaultProps.init.call(_this, opts);\r\n return _this;\r\n }\r\n Sub.prototype.getDefaultStyle = function () {\r\n return clone(defaultProps.style);\r\n };\r\n Sub.prototype.getDefaultShape = function () {\r\n return clone(defaultProps.shape);\r\n };\r\n return Sub;\r\n }(Path));\r\n for (var key in defaultProps) {\r\n if (typeof defaultProps[key] === 'function') {\r\n Sub.prototype[key] = defaultProps[key];\r\n }\r\n }\r\n return Sub;\r\n };\r\n Path.SHAPE_CHANGED_BIT = 4;\r\n Path.initDefaultProps = (function () {\r\n var pathProto = Path.prototype;\r\n pathProto.type = 'path';\r\n pathProto.strokeContainThreshold = 5;\r\n pathProto.segmentIgnoreThreshold = 0;\r\n pathProto.subPixelOptimize = false;\r\n pathProto.autoBatch = false;\r\n pathProto.__dirty = Element.REDARAW_BIT | Displayable.STYLE_CHANGED_BIT | Path.SHAPE_CHANGED_BIT;\r\n })();\r\n return Path;\r\n }(Displayable));\n\n var CMD$2 = PathProxy.CMD;\r\n var points = [[], [], []];\r\n var mathSqrt$2 = Math.sqrt;\r\n var mathAtan2 = Math.atan2;\r\n function transformPath(path, m) {\r\n var data = path.data;\r\n var len = path.len();\r\n var cmd;\r\n var nPoint;\r\n var i;\r\n var j;\r\n var k;\r\n var p;\r\n var M = CMD$2.M;\r\n var C = CMD$2.C;\r\n var L = CMD$2.L;\r\n var R = CMD$2.R;\r\n var A = CMD$2.A;\r\n var Q = CMD$2.Q;\r\n for (i = 0, j = 0; i < len;) {\r\n cmd = data[i++];\r\n j = i;\r\n nPoint = 0;\r\n switch (cmd) {\r\n case M:\r\n nPoint = 1;\r\n break;\r\n case L:\r\n nPoint = 1;\r\n break;\r\n case C:\r\n nPoint = 3;\r\n break;\r\n case Q:\r\n nPoint = 2;\r\n break;\r\n case A:\r\n var x = m[4];\r\n var y = m[5];\r\n var sx = mathSqrt$2(m[0] * m[0] + m[1] * m[1]);\r\n var sy = mathSqrt$2(m[2] * m[2] + m[3] * m[3]);\r\n var angle = mathAtan2(-m[1] / sy, m[0] / sx);\r\n data[i] *= sx;\r\n data[i++] += x;\r\n data[i] *= sy;\r\n data[i++] += y;\r\n data[i++] *= sx;\r\n data[i++] *= sy;\r\n data[i++] += angle;\r\n data[i++] += angle;\r\n i += 2;\r\n j = i;\r\n break;\r\n case R:\r\n p[0] = data[i++];\r\n p[1] = data[i++];\r\n applyTransform(p, p, m);\r\n data[j++] = p[0];\r\n data[j++] = p[1];\r\n p[0] += data[i++];\r\n p[1] += data[i++];\r\n applyTransform(p, p, m);\r\n data[j++] = p[0];\r\n data[j++] = p[1];\r\n }\r\n for (k = 0; k < nPoint; k++) {\r\n var p_1 = points[k];\r\n p_1[0] = data[i++];\r\n p_1[1] = data[i++];\r\n applyTransform(p_1, p_1, m);\r\n data[j++] = p_1[0];\r\n data[j++] = p_1[1];\r\n }\r\n }\r\n path.increaseVersion();\r\n }\n\n var mathSqrt$3 = Math.sqrt;\r\n var mathSin$2 = Math.sin;\r\n var mathCos$2 = Math.cos;\r\n var PI$1 = Math.PI;\r\n function vMag(v) {\r\n return Math.sqrt(v[0] * v[0] + v[1] * v[1]);\r\n }\r\n function vRatio(u, v) {\r\n return (u[0] * v[0] + u[1] * v[1]) / (vMag(u) * vMag(v));\r\n }\r\n function vAngle(u, v) {\r\n return (u[0] * v[1] < u[1] * v[0] ? -1 : 1)\r\n * Math.acos(vRatio(u, v));\r\n }\r\n function processArc(x1, y1, x2, y2, fa, fs, rx, ry, psiDeg, cmd, path) {\r\n var psi = psiDeg * (PI$1 / 180.0);\r\n var xp = mathCos$2(psi) * (x1 - x2) / 2.0\r\n + mathSin$2(psi) * (y1 - y2) / 2.0;\r\n var yp = -1 * mathSin$2(psi) * (x1 - x2) / 2.0\r\n + mathCos$2(psi) * (y1 - y2) / 2.0;\r\n var lambda = (xp * xp) / (rx * rx) + (yp * yp) / (ry * ry);\r\n if (lambda > 1) {\r\n rx *= mathSqrt$3(lambda);\r\n ry *= mathSqrt$3(lambda);\r\n }\r\n var f = (fa === fs ? -1 : 1)\r\n * mathSqrt$3((((rx * rx) * (ry * ry))\r\n - ((rx * rx) * (yp * yp))\r\n - ((ry * ry) * (xp * xp))) / ((rx * rx) * (yp * yp)\r\n + (ry * ry) * (xp * xp))) || 0;\r\n var cxp = f * rx * yp / ry;\r\n var cyp = f * -ry * xp / rx;\r\n var cx = (x1 + x2) / 2.0\r\n + mathCos$2(psi) * cxp\r\n - mathSin$2(psi) * cyp;\r\n var cy = (y1 + y2) / 2.0\r\n + mathSin$2(psi) * cxp\r\n + mathCos$2(psi) * cyp;\r\n var theta = vAngle([1, 0], [(xp - cxp) / rx, (yp - cyp) / ry]);\r\n var u = [(xp - cxp) / rx, (yp - cyp) / ry];\r\n var v = [(-1 * xp - cxp) / rx, (-1 * yp - cyp) / ry];\r\n var dTheta = vAngle(u, v);\r\n if (vRatio(u, v) <= -1) {\r\n dTheta = PI$1;\r\n }\r\n if (vRatio(u, v) >= 1) {\r\n dTheta = 0;\r\n }\r\n if (dTheta < 0) {\r\n var n = Math.round(dTheta / PI$1 * 1e6) / 1e6;\r\n dTheta = PI$1 * 2 + (n % 2) * PI$1;\r\n }\r\n path.addData(cmd, cx, cy, rx, ry, theta, dTheta, psi, fs);\r\n }\r\n var commandReg = /([mlvhzcqtsa])([^mlvhzcqtsa]*)/ig;\r\n var numberReg = /-?([0-9]*\\.)?[0-9]+([eE]-?[0-9]+)?/g;\r\n function createPathProxyFromString(data) {\r\n if (!data) {\r\n return new PathProxy();\r\n }\r\n var cpx = 0;\r\n var cpy = 0;\r\n var subpathX = cpx;\r\n var subpathY = cpy;\r\n var prevCmd;\r\n var path = new PathProxy();\r\n var CMD = PathProxy.CMD;\r\n var cmdList = data.match(commandReg);\r\n for (var l = 0; l < cmdList.length; l++) {\r\n var cmdText = cmdList[l];\r\n var cmdStr = cmdText.charAt(0);\r\n var cmd = void 0;\r\n var p = cmdText.match(numberReg) || [];\r\n var pLen = p.length;\r\n for (var i = 0; i < pLen; i++) {\r\n p[i] = parseFloat(p[i]);\r\n }\r\n var off = 0;\r\n while (off < pLen) {\r\n var ctlPtx = void 0;\r\n var ctlPty = void 0;\r\n var rx = void 0;\r\n var ry = void 0;\r\n var psi = void 0;\r\n var fa = void 0;\r\n var fs = void 0;\r\n var x1 = cpx;\r\n var y1 = cpy;\r\n var len = void 0;\r\n var pathData = void 0;\r\n switch (cmdStr) {\r\n case 'l':\r\n cpx += p[off++];\r\n cpy += p[off++];\r\n cmd = CMD.L;\r\n path.addData(cmd, cpx, cpy);\r\n break;\r\n case 'L':\r\n cpx = p[off++];\r\n cpy = p[off++];\r\n cmd = CMD.L;\r\n path.addData(cmd, cpx, cpy);\r\n break;\r\n case 'm':\r\n cpx += p[off++];\r\n cpy += p[off++];\r\n cmd = CMD.M;\r\n path.addData(cmd, cpx, cpy);\r\n subpathX = cpx;\r\n subpathY = cpy;\r\n cmdStr = 'l';\r\n break;\r\n case 'M':\r\n cpx = p[off++];\r\n cpy = p[off++];\r\n cmd = CMD.M;\r\n path.addData(cmd, cpx, cpy);\r\n subpathX = cpx;\r\n subpathY = cpy;\r\n cmdStr = 'L';\r\n break;\r\n case 'h':\r\n cpx += p[off++];\r\n cmd = CMD.L;\r\n path.addData(cmd, cpx, cpy);\r\n break;\r\n case 'H':\r\n cpx = p[off++];\r\n cmd = CMD.L;\r\n path.addData(cmd, cpx, cpy);\r\n break;\r\n case 'v':\r\n cpy += p[off++];\r\n cmd = CMD.L;\r\n path.addData(cmd, cpx, cpy);\r\n break;\r\n case 'V':\r\n cpy = p[off++];\r\n cmd = CMD.L;\r\n path.addData(cmd, cpx, cpy);\r\n break;\r\n case 'C':\r\n cmd = CMD.C;\r\n path.addData(cmd, p[off++], p[off++], p[off++], p[off++], p[off++], p[off++]);\r\n cpx = p[off - 2];\r\n cpy = p[off - 1];\r\n break;\r\n case 'c':\r\n cmd = CMD.C;\r\n path.addData(cmd, p[off++] + cpx, p[off++] + cpy, p[off++] + cpx, p[off++] + cpy, p[off++] + cpx, p[off++] + cpy);\r\n cpx += p[off - 2];\r\n cpy += p[off - 1];\r\n break;\r\n case 'S':\r\n ctlPtx = cpx;\r\n ctlPty = cpy;\r\n len = path.len();\r\n pathData = path.data;\r\n if (prevCmd === CMD.C) {\r\n ctlPtx += cpx - pathData[len - 4];\r\n ctlPty += cpy - pathData[len - 3];\r\n }\r\n cmd = CMD.C;\r\n x1 = p[off++];\r\n y1 = p[off++];\r\n cpx = p[off++];\r\n cpy = p[off++];\r\n path.addData(cmd, ctlPtx, ctlPty, x1, y1, cpx, cpy);\r\n break;\r\n case 's':\r\n ctlPtx = cpx;\r\n ctlPty = cpy;\r\n len = path.len();\r\n pathData = path.data;\r\n if (prevCmd === CMD.C) {\r\n ctlPtx += cpx - pathData[len - 4];\r\n ctlPty += cpy - pathData[len - 3];\r\n }\r\n cmd = CMD.C;\r\n x1 = cpx + p[off++];\r\n y1 = cpy + p[off++];\r\n cpx += p[off++];\r\n cpy += p[off++];\r\n path.addData(cmd, ctlPtx, ctlPty, x1, y1, cpx, cpy);\r\n break;\r\n case 'Q':\r\n x1 = p[off++];\r\n y1 = p[off++];\r\n cpx = p[off++];\r\n cpy = p[off++];\r\n cmd = CMD.Q;\r\n path.addData(cmd, x1, y1, cpx, cpy);\r\n break;\r\n case 'q':\r\n x1 = p[off++] + cpx;\r\n y1 = p[off++] + cpy;\r\n cpx += p[off++];\r\n cpy += p[off++];\r\n cmd = CMD.Q;\r\n path.addData(cmd, x1, y1, cpx, cpy);\r\n break;\r\n case 'T':\r\n ctlPtx = cpx;\r\n ctlPty = cpy;\r\n len = path.len();\r\n pathData = path.data;\r\n if (prevCmd === CMD.Q) {\r\n ctlPtx += cpx - pathData[len - 4];\r\n ctlPty += cpy - pathData[len - 3];\r\n }\r\n cpx = p[off++];\r\n cpy = p[off++];\r\n cmd = CMD.Q;\r\n path.addData(cmd, ctlPtx, ctlPty, cpx, cpy);\r\n break;\r\n case 't':\r\n ctlPtx = cpx;\r\n ctlPty = cpy;\r\n len = path.len();\r\n pathData = path.data;\r\n if (prevCmd === CMD.Q) {\r\n ctlPtx += cpx - pathData[len - 4];\r\n ctlPty += cpy - pathData[len - 3];\r\n }\r\n cpx += p[off++];\r\n cpy += p[off++];\r\n cmd = CMD.Q;\r\n path.addData(cmd, ctlPtx, ctlPty, cpx, cpy);\r\n break;\r\n case 'A':\r\n rx = p[off++];\r\n ry = p[off++];\r\n psi = p[off++];\r\n fa = p[off++];\r\n fs = p[off++];\r\n x1 = cpx, y1 = cpy;\r\n cpx = p[off++];\r\n cpy = p[off++];\r\n cmd = CMD.A;\r\n processArc(x1, y1, cpx, cpy, fa, fs, rx, ry, psi, cmd, path);\r\n break;\r\n case 'a':\r\n rx = p[off++];\r\n ry = p[off++];\r\n psi = p[off++];\r\n fa = p[off++];\r\n fs = p[off++];\r\n x1 = cpx, y1 = cpy;\r\n cpx += p[off++];\r\n cpy += p[off++];\r\n cmd = CMD.A;\r\n processArc(x1, y1, cpx, cpy, fa, fs, rx, ry, psi, cmd, path);\r\n break;\r\n }\r\n }\r\n if (cmdStr === 'z' || cmdStr === 'Z') {\r\n cmd = CMD.Z;\r\n path.addData(cmd);\r\n cpx = subpathX;\r\n cpy = subpathY;\r\n }\r\n prevCmd = cmd;\r\n }\r\n path.toStatic();\r\n return path;\r\n }\r\n var SVGPath = (function (_super) {\r\n __extends(SVGPath, _super);\r\n function SVGPath() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n SVGPath.prototype.applyTransform = function (m) { };\r\n return SVGPath;\r\n }(Path));\r\n function isPathProxy(path) {\r\n return path.setData != null;\r\n }\r\n function createPathOptions(str, opts) {\r\n var pathProxy = createPathProxyFromString(str);\r\n var innerOpts = extend({}, opts);\r\n innerOpts.buildPath = function (path) {\r\n if (isPathProxy(path)) {\r\n path.setData(pathProxy.data);\r\n var ctx = path.getContext();\r\n if (ctx) {\r\n path.rebuildPath(ctx, 1);\r\n }\r\n }\r\n else {\r\n var ctx = path;\r\n pathProxy.rebuildPath(ctx, 1);\r\n }\r\n };\r\n innerOpts.applyTransform = function (m) {\r\n transformPath(pathProxy, m);\r\n this.dirtyShape();\r\n };\r\n return innerOpts;\r\n }\r\n function createFromString(str, opts) {\r\n return new SVGPath(createPathOptions(str, opts));\r\n }\r\n function extendFromString(str, defaultOpts) {\r\n var innerOpts = createPathOptions(str, defaultOpts);\r\n var Sub = (function (_super) {\r\n __extends(Sub, _super);\r\n function Sub(opts) {\r\n var _this = _super.call(this, opts) || this;\r\n _this.applyTransform = innerOpts.applyTransform;\r\n _this.buildPath = innerOpts.buildPath;\r\n return _this;\r\n }\r\n return Sub;\r\n }(SVGPath));\r\n return Sub;\r\n }\r\n function mergePath(pathEls, opts) {\r\n var pathList = [];\r\n var len = pathEls.length;\r\n for (var i = 0; i < len; i++) {\r\n var pathEl = pathEls[i];\r\n if (!pathEl.path) {\r\n pathEl.createPathProxy();\r\n }\r\n if (pathEl.shapeChanged()) {\r\n pathEl.buildPath(pathEl.path, pathEl.shape, true);\r\n }\r\n pathList.push(pathEl.path);\r\n }\r\n var pathBundle = new Path(opts);\r\n pathBundle.createPathProxy();\r\n pathBundle.buildPath = function (path) {\r\n if (isPathProxy(path)) {\r\n path.appendPath(pathList);\r\n var ctx = path.getContext();\r\n if (ctx) {\r\n path.rebuildPath(ctx, 1);\r\n }\r\n }\r\n };\r\n return pathBundle;\r\n }\n\n var Group = (function (_super) {\r\n __extends(Group, _super);\r\n function Group(opts) {\r\n var _this = _super.call(this) || this;\r\n _this.isGroup = true;\r\n _this._children = [];\r\n _this.attr(opts);\r\n return _this;\r\n }\r\n Group.prototype.childrenRef = function () {\r\n return this._children;\r\n };\r\n Group.prototype.children = function () {\r\n return this._children.slice();\r\n };\r\n Group.prototype.childAt = function (idx) {\r\n return this._children[idx];\r\n };\r\n Group.prototype.childOfName = function (name) {\r\n var children = this._children;\r\n for (var i = 0; i < children.length; i++) {\r\n if (children[i].name === name) {\r\n return children[i];\r\n }\r\n }\r\n };\r\n Group.prototype.childCount = function () {\r\n return this._children.length;\r\n };\r\n Group.prototype.add = function (child) {\r\n if (child) {\r\n if (child !== this && child.parent !== this) {\r\n this._children.push(child);\r\n this._doAdd(child);\r\n }\r\n if (child.__hostTarget) {\r\n throw 'This elemenet has been used as an attachment';\r\n }\r\n }\r\n return this;\r\n };\r\n Group.prototype.addBefore = function (child, nextSibling) {\r\n if (child && child !== this && child.parent !== this\r\n && nextSibling && nextSibling.parent === this) {\r\n var children = this._children;\r\n var idx = children.indexOf(nextSibling);\r\n if (idx >= 0) {\r\n children.splice(idx, 0, child);\r\n this._doAdd(child);\r\n }\r\n }\r\n return this;\r\n };\r\n Group.prototype.replaceAt = function (child, index) {\r\n var children = this._children;\r\n var old = children[index];\r\n if (child && child !== this && child.parent !== this && child !== old) {\r\n children[index] = child;\r\n old.parent = null;\r\n var zr = this.__zr;\r\n if (zr) {\r\n old.removeSelfFromZr(zr);\r\n }\r\n this._doAdd(child);\r\n }\r\n return this;\r\n };\r\n Group.prototype._doAdd = function (child) {\r\n if (child.parent) {\r\n child.parent.remove(child);\r\n }\r\n child.parent = this;\r\n var zr = this.__zr;\r\n if (zr && zr !== child.__zr) {\r\n child.addSelfToZr(zr);\r\n }\r\n zr && zr.refresh();\r\n };\r\n Group.prototype.remove = function (child) {\r\n var zr = this.__zr;\r\n var children = this._children;\r\n var idx = indexOf(children, child);\r\n if (idx < 0) {\r\n return this;\r\n }\r\n children.splice(idx, 1);\r\n child.parent = null;\r\n if (zr) {\r\n child.removeSelfFromZr(zr);\r\n }\r\n zr && zr.refresh();\r\n return this;\r\n };\r\n Group.prototype.removeAll = function () {\r\n var children = this._children;\r\n var zr = this.__zr;\r\n for (var i = 0; i < children.length; i++) {\r\n var child = children[i];\r\n if (zr) {\r\n child.removeSelfFromZr(zr);\r\n }\r\n child.parent = null;\r\n }\r\n children.length = 0;\r\n return this;\r\n };\r\n Group.prototype.eachChild = function (cb, context) {\r\n var children = this._children;\r\n for (var i = 0; i < children.length; i++) {\r\n var child = children[i];\r\n cb.call(context, child, i);\r\n }\r\n return this;\r\n };\r\n Group.prototype.traverse = function (cb, context) {\r\n for (var i = 0; i < this._children.length; i++) {\r\n var child = this._children[i];\r\n var stopped = cb.call(context, child);\r\n if (child.isGroup && !stopped) {\r\n child.traverse(cb, context);\r\n }\r\n }\r\n return this;\r\n };\r\n Group.prototype.addSelfToZr = function (zr) {\r\n _super.prototype.addSelfToZr.call(this, zr);\r\n for (var i = 0; i < this._children.length; i++) {\r\n var child = this._children[i];\r\n child.addSelfToZr(zr);\r\n }\r\n };\r\n Group.prototype.removeSelfFromZr = function (zr) {\r\n _super.prototype.removeSelfFromZr.call(this, zr);\r\n for (var i = 0; i < this._children.length; i++) {\r\n var child = this._children[i];\r\n child.removeSelfFromZr(zr);\r\n }\r\n };\r\n Group.prototype.getBoundingRect = function (includeChildren) {\r\n var tmpRect = new BoundingRect(0, 0, 0, 0);\r\n var children = includeChildren || this._children;\r\n var tmpMat = [];\r\n var rect = null;\r\n for (var i = 0; i < children.length; i++) {\r\n var child = children[i];\r\n if (child.ignore || child.invisible) {\r\n continue;\r\n }\r\n var childRect = child.getBoundingRect();\r\n var transform = child.getLocalTransform(tmpMat);\r\n if (transform) {\r\n BoundingRect.applyTransform(tmpRect, childRect, transform);\r\n rect = rect || tmpRect.clone();\r\n rect.union(tmpRect);\r\n }\r\n else {\r\n rect = rect || childRect.clone();\r\n rect.union(childRect);\r\n }\r\n }\r\n return rect || tmpRect;\r\n };\r\n return Group;\r\n }(Element));\r\n Group.prototype.type = 'group';\n\n var DEFAULT_IMAGE_STYLE = defaults({\r\n x: 0,\r\n y: 0\r\n }, DEFAULT_COMMON_STYLE);\r\n var DEFAULT_IMAGE_ANIMATION_PROPS = {\r\n style: defaults({\r\n x: true,\r\n y: true,\r\n width: true,\r\n height: true,\r\n sx: true,\r\n sy: true,\r\n sWidth: true,\r\n sHeight: true\r\n }, DEFAULT_COMMON_ANIMATION_PROPS.style)\r\n };\r\n function isImageLike(source) {\r\n return !!(source\r\n && typeof source !== 'string'\r\n && source.width && source.height);\r\n }\r\n var ZRImage = (function (_super) {\r\n __extends(ZRImage, _super);\r\n function ZRImage() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ZRImage.prototype.createStyle = function (obj) {\r\n return createObject(DEFAULT_IMAGE_STYLE, obj);\r\n };\r\n ZRImage.prototype._getSize = function (dim) {\r\n var style = this.style;\r\n var size = style[dim];\r\n if (size != null) {\r\n return size;\r\n }\r\n var imageSource = isImageLike(style.image)\r\n ? style.image : this.__image;\r\n if (!imageSource) {\r\n return 0;\r\n }\r\n var otherDim = dim === 'width' ? 'height' : 'width';\r\n var otherDimSize = style[otherDim];\r\n if (otherDimSize == null) {\r\n return imageSource[dim];\r\n }\r\n else {\r\n return imageSource[dim] / imageSource[otherDim] * otherDimSize;\r\n }\r\n };\r\n ZRImage.prototype.getWidth = function () {\r\n return this._getSize('width');\r\n };\r\n ZRImage.prototype.getHeight = function () {\r\n return this._getSize('height');\r\n };\r\n ZRImage.prototype.getAnimationStyleProps = function () {\r\n return DEFAULT_IMAGE_ANIMATION_PROPS;\r\n };\r\n ZRImage.prototype.getBoundingRect = function () {\r\n var style = this.style;\r\n if (!this._rect) {\r\n this._rect = new BoundingRect(style.x || 0, style.y || 0, this.getWidth(), this.getHeight());\r\n }\r\n return this._rect;\r\n };\r\n return ZRImage;\r\n }(Displayable));\r\n ZRImage.prototype.type = 'image';\n\n var CircleShape = (function () {\r\n function CircleShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.r = 0;\r\n }\r\n return CircleShape;\r\n }());\r\n var Circle = (function (_super) {\r\n __extends(Circle, _super);\r\n function Circle(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Circle.prototype.getDefaultShape = function () {\r\n return new CircleShape();\r\n };\r\n Circle.prototype.buildPath = function (ctx, shape, inBundle) {\r\n if (inBundle) {\r\n ctx.moveTo(shape.cx + shape.r, shape.cy);\r\n }\r\n ctx.arc(shape.cx, shape.cy, shape.r, 0, Math.PI * 2);\r\n };\r\n return Circle;\r\n }(Path));\r\n Circle.prototype.type = 'circle';\n\n function buildPath(ctx, shape) {\r\n var x = shape.x;\r\n var y = shape.y;\r\n var width = shape.width;\r\n var height = shape.height;\r\n var r = shape.r;\r\n var r1;\r\n var r2;\r\n var r3;\r\n var r4;\r\n if (width < 0) {\r\n x = x + width;\r\n width = -width;\r\n }\r\n if (height < 0) {\r\n y = y + height;\r\n height = -height;\r\n }\r\n if (typeof r === 'number') {\r\n r1 = r2 = r3 = r4 = r;\r\n }\r\n else if (r instanceof Array) {\r\n if (r.length === 1) {\r\n r1 = r2 = r3 = r4 = r[0];\r\n }\r\n else if (r.length === 2) {\r\n r1 = r3 = r[0];\r\n r2 = r4 = r[1];\r\n }\r\n else if (r.length === 3) {\r\n r1 = r[0];\r\n r2 = r4 = r[1];\r\n r3 = r[2];\r\n }\r\n else {\r\n r1 = r[0];\r\n r2 = r[1];\r\n r3 = r[2];\r\n r4 = r[3];\r\n }\r\n }\r\n else {\r\n r1 = r2 = r3 = r4 = 0;\r\n }\r\n var total;\r\n if (r1 + r2 > width) {\r\n total = r1 + r2;\r\n r1 *= width / total;\r\n r2 *= width / total;\r\n }\r\n if (r3 + r4 > width) {\r\n total = r3 + r4;\r\n r3 *= width / total;\r\n r4 *= width / total;\r\n }\r\n if (r2 + r3 > height) {\r\n total = r2 + r3;\r\n r2 *= height / total;\r\n r3 *= height / total;\r\n }\r\n if (r1 + r4 > height) {\r\n total = r1 + r4;\r\n r1 *= height / total;\r\n r4 *= height / total;\r\n }\r\n ctx.moveTo(x + r1, y);\r\n ctx.lineTo(x + width - r2, y);\r\n r2 !== 0 && ctx.arc(x + width - r2, y + r2, r2, -Math.PI / 2, 0);\r\n ctx.lineTo(x + width, y + height - r3);\r\n r3 !== 0 && ctx.arc(x + width - r3, y + height - r3, r3, 0, Math.PI / 2);\r\n ctx.lineTo(x + r4, y + height);\r\n r4 !== 0 && ctx.arc(x + r4, y + height - r4, r4, Math.PI / 2, Math.PI);\r\n ctx.lineTo(x, y + r1);\r\n r1 !== 0 && ctx.arc(x + r1, y + r1, r1, Math.PI, Math.PI * 1.5);\r\n }\n\n var round = Math.round;\r\n function subPixelOptimizeLine(outputShape, inputShape, style) {\r\n if (!inputShape) {\r\n return;\r\n }\r\n var x1 = inputShape.x1;\r\n var x2 = inputShape.x2;\r\n var y1 = inputShape.y1;\r\n var y2 = inputShape.y2;\r\n outputShape.x1 = x1;\r\n outputShape.x2 = x2;\r\n outputShape.y1 = y1;\r\n outputShape.y2 = y2;\r\n var lineWidth = style && style.lineWidth;\r\n if (!lineWidth) {\r\n return outputShape;\r\n }\r\n if (round(x1 * 2) === round(x2 * 2)) {\r\n outputShape.x1 = outputShape.x2 = subPixelOptimize(x1, lineWidth, true);\r\n }\r\n if (round(y1 * 2) === round(y2 * 2)) {\r\n outputShape.y1 = outputShape.y2 = subPixelOptimize(y1, lineWidth, true);\r\n }\r\n return outputShape;\r\n }\r\n function subPixelOptimizeRect(outputShape, inputShape, style) {\r\n if (!inputShape) {\r\n return;\r\n }\r\n var originX = inputShape.x;\r\n var originY = inputShape.y;\r\n var originWidth = inputShape.width;\r\n var originHeight = inputShape.height;\r\n outputShape.x = originX;\r\n outputShape.y = originY;\r\n outputShape.width = originWidth;\r\n outputShape.height = originHeight;\r\n var lineWidth = style && style.lineWidth;\r\n if (!lineWidth) {\r\n return outputShape;\r\n }\r\n outputShape.x = subPixelOptimize(originX, lineWidth, true);\r\n outputShape.y = subPixelOptimize(originY, lineWidth, true);\r\n outputShape.width = Math.max(subPixelOptimize(originX + originWidth, lineWidth, false) - outputShape.x, originWidth === 0 ? 0 : 1);\r\n outputShape.height = Math.max(subPixelOptimize(originY + originHeight, lineWidth, false) - outputShape.y, originHeight === 0 ? 0 : 1);\r\n return outputShape;\r\n }\r\n function subPixelOptimize(position, lineWidth, positiveOrNegative) {\r\n if (!lineWidth) {\r\n return position;\r\n }\r\n var doubledPosition = round(position * 2);\r\n return (doubledPosition + round(lineWidth)) % 2 === 0\r\n ? doubledPosition / 2\r\n : (doubledPosition + (positiveOrNegative ? 1 : -1)) / 2;\r\n }\n\n var RectShape = (function () {\r\n function RectShape() {\r\n this.x = 0;\r\n this.y = 0;\r\n this.width = 0;\r\n this.height = 0;\r\n }\r\n return RectShape;\r\n }());\r\n var subPixelOptimizeOutputShape = {};\r\n var Rect = (function (_super) {\r\n __extends(Rect, _super);\r\n function Rect(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Rect.prototype.getDefaultShape = function () {\r\n return new RectShape();\r\n };\r\n Rect.prototype.buildPath = function (ctx, shape) {\r\n var x;\r\n var y;\r\n var width;\r\n var height;\r\n if (this.subPixelOptimize) {\r\n var optimizedShape = subPixelOptimizeRect(subPixelOptimizeOutputShape, shape, this.style);\r\n x = optimizedShape.x;\r\n y = optimizedShape.y;\r\n width = optimizedShape.width;\r\n height = optimizedShape.height;\r\n optimizedShape.r = shape.r;\r\n shape = optimizedShape;\r\n }\r\n else {\r\n x = shape.x;\r\n y = shape.y;\r\n width = shape.width;\r\n height = shape.height;\r\n }\r\n if (!shape.r) {\r\n ctx.rect(x, y, width, height);\r\n }\r\n else {\r\n buildPath(ctx, shape);\r\n }\r\n };\r\n Rect.prototype.isZeroArea = function () {\r\n return !this.shape.width || !this.shape.height;\r\n };\r\n return Rect;\r\n }(Path));\r\n Rect.prototype.type = 'rect';\n\n var EllipseShape = (function () {\r\n function EllipseShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.rx = 0;\r\n this.ry = 0;\r\n }\r\n return EllipseShape;\r\n }());\r\n var Ellipse = (function (_super) {\r\n __extends(Ellipse, _super);\r\n function Ellipse(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Ellipse.prototype.getDefaultShape = function () {\r\n return new EllipseShape();\r\n };\r\n Ellipse.prototype.buildPath = function (ctx, shape) {\r\n var k = 0.5522848;\r\n var x = shape.cx;\r\n var y = shape.cy;\r\n var a = shape.rx;\r\n var b = shape.ry;\r\n var ox = a * k;\r\n var oy = b * k;\r\n ctx.moveTo(x - a, y);\r\n ctx.bezierCurveTo(x - a, y - oy, x - ox, y - b, x, y - b);\r\n ctx.bezierCurveTo(x + ox, y - b, x + a, y - oy, x + a, y);\r\n ctx.bezierCurveTo(x + a, y + oy, x + ox, y + b, x, y + b);\r\n ctx.bezierCurveTo(x - ox, y + b, x - a, y + oy, x - a, y);\r\n ctx.closePath();\r\n };\r\n return Ellipse;\r\n }(Path));\r\n Ellipse.prototype.type = 'ellipse';\n\n var subPixelOptimizeOutputShape$1 = {};\r\n var LineShape = (function () {\r\n function LineShape() {\r\n this.x1 = 0;\r\n this.y1 = 0;\r\n this.x2 = 0;\r\n this.y2 = 0;\r\n this.percent = 1;\r\n }\r\n return LineShape;\r\n }());\r\n var Line = (function (_super) {\r\n __extends(Line, _super);\r\n function Line(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Line.prototype.getDefaultStyle = function () {\r\n return {\r\n stroke: '#000',\r\n fill: null\r\n };\r\n };\r\n Line.prototype.getDefaultShape = function () {\r\n return new LineShape();\r\n };\r\n Line.prototype.buildPath = function (ctx, shape) {\r\n var x1;\r\n var y1;\r\n var x2;\r\n var y2;\r\n if (this.subPixelOptimize) {\r\n var optimizedShape = subPixelOptimizeLine(subPixelOptimizeOutputShape$1, shape, this.style);\r\n x1 = optimizedShape.x1;\r\n y1 = optimizedShape.y1;\r\n x2 = optimizedShape.x2;\r\n y2 = optimizedShape.y2;\r\n }\r\n else {\r\n x1 = shape.x1;\r\n y1 = shape.y1;\r\n x2 = shape.x2;\r\n y2 = shape.y2;\r\n }\r\n var percent = shape.percent;\r\n if (percent === 0) {\r\n return;\r\n }\r\n ctx.moveTo(x1, y1);\r\n if (percent < 1) {\r\n x2 = x1 * (1 - percent) + x2 * percent;\r\n y2 = y1 * (1 - percent) + y2 * percent;\r\n }\r\n ctx.lineTo(x2, y2);\r\n };\r\n Line.prototype.pointAt = function (p) {\r\n var shape = this.shape;\r\n return [\r\n shape.x1 * (1 - p) + shape.x2 * p,\r\n shape.y1 * (1 - p) + shape.y2 * p\r\n ];\r\n };\r\n return Line;\r\n }(Path));\r\n Line.prototype.type = 'line';\n\n function interpolate(p0, p1, p2, p3, t, t2, t3) {\r\n var v0 = (p2 - p0) * 0.5;\r\n var v1 = (p3 - p1) * 0.5;\r\n return (2 * (p1 - p2) + v0 + v1) * t3\r\n + (-3 * (p1 - p2) - 2 * v0 - v1) * t2\r\n + v0 * t + p1;\r\n }\r\n function smoothSpline(points, isLoop) {\r\n var len = points.length;\r\n var ret = [];\r\n var distance$1 = 0;\r\n for (var i = 1; i < len; i++) {\r\n distance$1 += distance(points[i - 1], points[i]);\r\n }\r\n var segs = distance$1 / 2;\r\n segs = segs < len ? len : segs;\r\n for (var i = 0; i < segs; i++) {\r\n var pos = i / (segs - 1) * (isLoop ? len : len - 1);\r\n var idx = Math.floor(pos);\r\n var w = pos - idx;\r\n var p0 = void 0;\r\n var p1 = points[idx % len];\r\n var p2 = void 0;\r\n var p3 = void 0;\r\n if (!isLoop) {\r\n p0 = points[idx === 0 ? idx : idx - 1];\r\n p2 = points[idx > len - 2 ? len - 1 : idx + 1];\r\n p3 = points[idx > len - 3 ? len - 1 : idx + 2];\r\n }\r\n else {\r\n p0 = points[(idx - 1 + len) % len];\r\n p2 = points[(idx + 1) % len];\r\n p3 = points[(idx + 2) % len];\r\n }\r\n var w2 = w * w;\r\n var w3 = w * w2;\r\n ret.push([\r\n interpolate(p0[0], p1[0], p2[0], p3[0], w, w2, w3),\r\n interpolate(p0[1], p1[1], p2[1], p3[1], w, w2, w3)\r\n ]);\r\n }\r\n return ret;\r\n }\n\n function smoothBezier(points, smooth, isLoop, constraint) {\r\n var cps = [];\r\n var v = [];\r\n var v1 = [];\r\n var v2 = [];\r\n var prevPoint;\r\n var nextPoint;\r\n var min$1;\r\n var max$1;\r\n if (constraint) {\r\n min$1 = [Infinity, Infinity];\r\n max$1 = [-Infinity, -Infinity];\r\n for (var i = 0, len = points.length; i < len; i++) {\r\n min(min$1, min$1, points[i]);\r\n max(max$1, max$1, points[i]);\r\n }\r\n min(min$1, min$1, constraint[0]);\r\n max(max$1, max$1, constraint[1]);\r\n }\r\n for (var i = 0, len = points.length; i < len; i++) {\r\n var point = points[i];\r\n if (isLoop) {\r\n prevPoint = points[i ? i - 1 : len - 1];\r\n nextPoint = points[(i + 1) % len];\r\n }\r\n else {\r\n if (i === 0 || i === len - 1) {\r\n cps.push(clone$1(points[i]));\r\n continue;\r\n }\r\n else {\r\n prevPoint = points[i - 1];\r\n nextPoint = points[i + 1];\r\n }\r\n }\r\n sub(v, nextPoint, prevPoint);\r\n scale(v, v, smooth);\r\n var d0 = distance(point, prevPoint);\r\n var d1 = distance(point, nextPoint);\r\n var sum = d0 + d1;\r\n if (sum !== 0) {\r\n d0 /= sum;\r\n d1 /= sum;\r\n }\r\n scale(v1, v, -d0);\r\n scale(v2, v, d1);\r\n var cp0 = add([], point, v1);\r\n var cp1 = add([], point, v2);\r\n if (constraint) {\r\n max(cp0, cp0, min$1);\r\n min(cp0, cp0, max$1);\r\n max(cp1, cp1, min$1);\r\n min(cp1, cp1, max$1);\r\n }\r\n cps.push(cp0);\r\n cps.push(cp1);\r\n }\r\n if (isLoop) {\r\n cps.push(cps.shift());\r\n }\r\n return cps;\r\n }\n\n function buildPath$1(ctx, shape, closePath) {\r\n var smooth = shape.smooth;\r\n var points = shape.points;\r\n if (points && points.length >= 2) {\r\n if (smooth && smooth !== 'spline') {\r\n var controlPoints = smoothBezier(points, smooth, closePath, shape.smoothConstraint);\r\n ctx.moveTo(points[0][0], points[0][1]);\r\n var len = points.length;\r\n for (var i = 0; i < (closePath ? len : len - 1); i++) {\r\n var cp1 = controlPoints[i * 2];\r\n var cp2 = controlPoints[i * 2 + 1];\r\n var p = points[(i + 1) % len];\r\n ctx.bezierCurveTo(cp1[0], cp1[1], cp2[0], cp2[1], p[0], p[1]);\r\n }\r\n }\r\n else {\r\n if (smooth === 'spline') {\r\n points = smoothSpline(points, closePath);\r\n }\r\n ctx.moveTo(points[0][0], points[0][1]);\r\n for (var i = 1, l = points.length; i < l; i++) {\r\n ctx.lineTo(points[i][0], points[i][1]);\r\n }\r\n }\r\n closePath && ctx.closePath();\r\n }\r\n }\n\n var PolygonShape = (function () {\r\n function PolygonShape() {\r\n this.points = null;\r\n this.smooth = 0;\r\n this.smoothConstraint = null;\r\n }\r\n return PolygonShape;\r\n }());\r\n var Polygon = (function (_super) {\r\n __extends(Polygon, _super);\r\n function Polygon(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Polygon.prototype.getDefaultShape = function () {\r\n return new PolygonShape();\r\n };\r\n Polygon.prototype.buildPath = function (ctx, shape) {\r\n buildPath$1(ctx, shape, true);\r\n };\r\n return Polygon;\r\n }(Path));\r\n Polygon.prototype.type = 'polygon';\n\n var PolylineShape = (function () {\r\n function PolylineShape() {\r\n this.points = null;\r\n this.percent = 1;\r\n this.smooth = 0;\r\n this.smoothConstraint = null;\r\n }\r\n return PolylineShape;\r\n }());\r\n var Polyline = (function (_super) {\r\n __extends(Polyline, _super);\r\n function Polyline(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Polyline.prototype.getDefaultStyle = function () {\r\n return {\r\n stroke: '#000',\r\n fill: null\r\n };\r\n };\r\n Polyline.prototype.getDefaultShape = function () {\r\n return new PolylineShape();\r\n };\r\n Polyline.prototype.buildPath = function (ctx, shape) {\r\n buildPath$1(ctx, shape, false);\r\n };\r\n return Polyline;\r\n }(Path));\r\n Polyline.prototype.type = 'polyline';\n\n var Gradient = (function () {\r\n function Gradient(colorStops) {\r\n this.colorStops = colorStops || [];\r\n }\r\n Gradient.prototype.addColorStop = function (offset, color) {\r\n this.colorStops.push({\r\n offset: offset,\r\n color: color\r\n });\r\n };\r\n return Gradient;\r\n }());\n\n var LinearGradient = (function (_super) {\r\n __extends(LinearGradient, _super);\r\n function LinearGradient(x, y, x2, y2, colorStops, globalCoord) {\r\n var _this = _super.call(this, colorStops) || this;\r\n _this.x = x == null ? 0 : x;\r\n _this.y = y == null ? 0 : y;\r\n _this.x2 = x2 == null ? 1 : x2;\r\n _this.y2 = y2 == null ? 0 : y2;\r\n _this.type = 'linear';\r\n _this.global = globalCoord || false;\r\n return _this;\r\n }\r\n return LinearGradient;\r\n }(Gradient));\n\n var DEFAULT_TSPAN_STYLE = defaults({\r\n strokeFirst: true,\r\n font: DEFAULT_FONT,\r\n x: 0,\r\n y: 0,\r\n textAlign: 'left',\r\n textBaseline: 'top',\r\n miterLimit: 2\r\n }, DEFAULT_PATH_STYLE);\r\n var TSpan = (function (_super) {\r\n __extends(TSpan, _super);\r\n function TSpan() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n TSpan.prototype.hasStroke = function () {\r\n var style = this.style;\r\n var stroke = style.stroke;\r\n return stroke != null && stroke !== 'none' && style.lineWidth > 0;\r\n };\r\n TSpan.prototype.hasFill = function () {\r\n var style = this.style;\r\n var fill = style.fill;\r\n return fill != null && fill !== 'none';\r\n };\r\n TSpan.prototype.createStyle = function (obj) {\r\n return createObject(DEFAULT_TSPAN_STYLE, obj);\r\n };\r\n TSpan.prototype.setBoundingRect = function (rect) {\r\n this._rect = rect;\r\n };\r\n TSpan.prototype.getBoundingRect = function () {\r\n var style = this.style;\r\n if (!this._rect) {\r\n var text = style.text;\r\n text != null ? (text += '') : (text = '');\r\n var rect = getBoundingRect(text, style.font, style.textAlign, style.textBaseline);\r\n rect.x += style.x || 0;\r\n rect.y += style.y || 0;\r\n if (this.hasStroke()) {\r\n var w = style.lineWidth;\r\n rect.x -= w / 2;\r\n rect.y -= w / 2;\r\n rect.width += w;\r\n rect.height += w;\r\n }\r\n this._rect = rect;\r\n }\r\n return this._rect;\r\n };\r\n TSpan.initDefaultProps = (function () {\r\n var tspanProto = TSpan.prototype;\r\n tspanProto.dirtyRectTolerance = 10;\r\n })();\r\n return TSpan;\r\n }(Displayable));\r\n TSpan.prototype.type = 'tspan';\n\n var DILIMITER_REG = /[\\s,]+/;\r\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 }\r\n var nodeParsers;\r\n var SVGParser = (function () {\r\n function SVGParser() {\r\n this._defs = {};\r\n this._root = null;\r\n this._isDefine = false;\r\n this._isText = false;\r\n }\r\n SVGParser.prototype.parse = function (xml, opt) {\r\n opt = opt || {};\r\n var svg = parseXML(xml);\r\n if (!svg) {\r\n throw new Error('Illegal svg');\r\n }\r\n var root = new Group();\r\n this._root = root;\r\n var viewBox = svg.getAttribute('viewBox') || '';\r\n var width = parseFloat((svg.getAttribute('width') || opt.width));\r\n var height = parseFloat((svg.getAttribute('height') || opt.height));\r\n isNaN(width) && (width = null);\r\n isNaN(height) && (height = null);\r\n parseAttributes(svg, root, null, true);\r\n var child = svg.firstChild;\r\n while (child) {\r\n this._parseNode(child, root);\r\n child = child.nextSibling;\r\n }\r\n var viewBoxRect;\r\n var viewBoxTransform;\r\n if (viewBox) {\r\n var viewBoxArr = trim(viewBox).split(DILIMITER_REG);\r\n if (viewBoxArr.length >= 4) {\r\n viewBoxRect = {\r\n x: parseFloat((viewBoxArr[0] || 0)),\r\n y: parseFloat((viewBoxArr[1] || 0)),\r\n width: parseFloat(viewBoxArr[2]),\r\n height: parseFloat(viewBoxArr[3])\r\n };\r\n }\r\n }\r\n if (viewBoxRect && width != null && height != null) {\r\n viewBoxTransform = makeViewBoxTransform(viewBoxRect, width, height);\r\n if (!opt.ignoreViewBox) {\r\n var elRoot = root;\r\n root = new Group();\r\n root.add(elRoot);\r\n elRoot.scaleX = elRoot.scaleY = viewBoxTransform.scale;\r\n elRoot.x = viewBoxTransform.x;\r\n elRoot.y = viewBoxTransform.y;\r\n }\r\n }\r\n if (!opt.ignoreRootClip && width != null && height != null) {\r\n root.setClipPath(new Rect({\r\n shape: { x: 0, y: 0, width: width, height: height }\r\n }));\r\n }\r\n return {\r\n root: root,\r\n width: width,\r\n height: height,\r\n viewBoxRect: viewBoxRect,\r\n viewBoxTransform: viewBoxTransform\r\n };\r\n };\r\n SVGParser.prototype._parseNode = function (xmlNode, parentGroup) {\r\n var nodeName = xmlNode.nodeName.toLowerCase();\r\n if (nodeName === 'defs') {\r\n this._isDefine = true;\r\n }\r\n else if (nodeName === 'text') {\r\n this._isText = true;\r\n }\r\n var el;\r\n if (this._isDefine) {\r\n var parser = defineParsers[nodeName];\r\n if (parser) {\r\n var def = parser.call(this, xmlNode);\r\n var id = xmlNode.getAttribute('id');\r\n if (id) {\r\n this._defs[id] = def;\r\n }\r\n }\r\n }\r\n else {\r\n var parser = nodeParsers[nodeName];\r\n if (parser) {\r\n el = parser.call(this, xmlNode, parentGroup);\r\n parentGroup.add(el);\r\n }\r\n }\r\n if (el) {\r\n var child = xmlNode.firstChild;\r\n while (child) {\r\n if (child.nodeType === 1) {\r\n this._parseNode(child, el);\r\n }\r\n if (child.nodeType === 3 && this._isText) {\r\n this._parseText(child, el);\r\n }\r\n child = child.nextSibling;\r\n }\r\n }\r\n if (nodeName === 'defs') {\r\n this._isDefine = false;\r\n }\r\n else if (nodeName === 'text') {\r\n this._isText = false;\r\n }\r\n };\r\n SVGParser.prototype._parseText = function (xmlNode, parentGroup) {\r\n if (xmlNode.nodeType === 1) {\r\n var dx = xmlNode.getAttribute('dx') || 0;\r\n var dy = xmlNode.getAttribute('dy') || 0;\r\n this._textX += parseFloat(dx);\r\n this._textY += parseFloat(dy);\r\n }\r\n var text = new TSpan({\r\n style: {\r\n text: xmlNode.textContent\r\n },\r\n x: this._textX || 0,\r\n y: this._textY || 0\r\n });\r\n inheritStyle(parentGroup, text);\r\n parseAttributes(xmlNode, text, this._defs);\r\n var textStyle = text.style;\r\n var fontSize = textStyle.fontSize;\r\n if (fontSize && fontSize < 9) {\r\n textStyle.fontSize = 9;\r\n text.scaleX *= fontSize / 9;\r\n text.scaleY *= fontSize / 9;\r\n }\r\n var font = (textStyle.fontSize || textStyle.fontFamily) && [\r\n textStyle.fontStyle,\r\n textStyle.fontWeight,\r\n (textStyle.fontSize || 12) + 'px',\r\n textStyle.fontFamily || 'sans-serif'\r\n ].join(' ');\r\n textStyle.font = font;\r\n var rect = text.getBoundingRect();\r\n this._textX += rect.width;\r\n parentGroup.add(text);\r\n return text;\r\n };\r\n SVGParser.internalField = (function () {\r\n nodeParsers = {\r\n 'g': function (xmlNode, parentGroup) {\r\n var g = new Group();\r\n inheritStyle(parentGroup, g);\r\n parseAttributes(xmlNode, g, this._defs);\r\n return g;\r\n },\r\n 'rect': function (xmlNode, parentGroup) {\r\n var rect = new Rect();\r\n inheritStyle(parentGroup, rect);\r\n parseAttributes(xmlNode, rect, this._defs);\r\n rect.setShape({\r\n x: parseFloat(xmlNode.getAttribute('x') || '0'),\r\n y: parseFloat(xmlNode.getAttribute('y') || '0'),\r\n width: parseFloat(xmlNode.getAttribute('width') || '0'),\r\n height: parseFloat(xmlNode.getAttribute('height') || '0')\r\n });\r\n return rect;\r\n },\r\n 'circle': function (xmlNode, parentGroup) {\r\n var circle = new Circle();\r\n inheritStyle(parentGroup, circle);\r\n parseAttributes(xmlNode, circle, this._defs);\r\n circle.setShape({\r\n cx: parseFloat(xmlNode.getAttribute('cx') || '0'),\r\n cy: parseFloat(xmlNode.getAttribute('cy') || '0'),\r\n r: parseFloat(xmlNode.getAttribute('r') || '0')\r\n });\r\n return circle;\r\n },\r\n 'line': function (xmlNode, parentGroup) {\r\n var line = new Line();\r\n inheritStyle(parentGroup, line);\r\n parseAttributes(xmlNode, line, this._defs);\r\n line.setShape({\r\n x1: parseFloat(xmlNode.getAttribute('x1') || '0'),\r\n y1: parseFloat(xmlNode.getAttribute('y1') || '0'),\r\n x2: parseFloat(xmlNode.getAttribute('x2') || '0'),\r\n y2: parseFloat(xmlNode.getAttribute('y2') || '0')\r\n });\r\n return line;\r\n },\r\n 'ellipse': function (xmlNode, parentGroup) {\r\n var ellipse = new Ellipse();\r\n inheritStyle(parentGroup, ellipse);\r\n parseAttributes(xmlNode, ellipse, this._defs);\r\n ellipse.setShape({\r\n cx: parseFloat(xmlNode.getAttribute('cx') || '0'),\r\n cy: parseFloat(xmlNode.getAttribute('cy') || '0'),\r\n rx: parseFloat(xmlNode.getAttribute('rx') || '0'),\r\n ry: parseFloat(xmlNode.getAttribute('ry') || '0')\r\n });\r\n return ellipse;\r\n },\r\n 'polygon': function (xmlNode, parentGroup) {\r\n var pointsStr = xmlNode.getAttribute('points');\r\n var pointsArr;\r\n if (pointsStr) {\r\n pointsArr = parsePoints(pointsStr);\r\n }\r\n var polygon = new Polygon({\r\n shape: {\r\n points: pointsArr || []\r\n }\r\n });\r\n inheritStyle(parentGroup, polygon);\r\n parseAttributes(xmlNode, polygon, this._defs);\r\n return polygon;\r\n },\r\n 'polyline': function (xmlNode, parentGroup) {\r\n var path = new Path();\r\n inheritStyle(parentGroup, path);\r\n parseAttributes(xmlNode, path, this._defs);\r\n var pointsStr = xmlNode.getAttribute('points');\r\n var pointsArr;\r\n if (pointsStr) {\r\n pointsArr = parsePoints(pointsStr);\r\n }\r\n var polyline = new Polyline({\r\n shape: {\r\n points: pointsArr || []\r\n }\r\n });\r\n return polyline;\r\n },\r\n 'image': function (xmlNode, parentGroup) {\r\n var img = new ZRImage();\r\n inheritStyle(parentGroup, img);\r\n parseAttributes(xmlNode, img, this._defs);\r\n img.setStyle({\r\n image: xmlNode.getAttribute('xlink:href'),\r\n x: +xmlNode.getAttribute('x'),\r\n y: +xmlNode.getAttribute('y'),\r\n width: +xmlNode.getAttribute('width'),\r\n height: +xmlNode.getAttribute('height')\r\n });\r\n return img;\r\n },\r\n 'text': function (xmlNode, parentGroup) {\r\n var x = xmlNode.getAttribute('x') || '0';\r\n var y = xmlNode.getAttribute('y') || '0';\r\n var dx = xmlNode.getAttribute('dx') || '0';\r\n var dy = xmlNode.getAttribute('dy') || '0';\r\n this._textX = parseFloat(x) + parseFloat(dx);\r\n this._textY = parseFloat(y) + parseFloat(dy);\r\n var g = new Group();\r\n inheritStyle(parentGroup, g);\r\n parseAttributes(xmlNode, g, this._defs);\r\n return g;\r\n },\r\n 'tspan': function (xmlNode, parentGroup) {\r\n var x = xmlNode.getAttribute('x');\r\n var y = xmlNode.getAttribute('y');\r\n if (x != null) {\r\n this._textX = parseFloat(x);\r\n }\r\n if (y != null) {\r\n this._textY = parseFloat(y);\r\n }\r\n var dx = xmlNode.getAttribute('dx') || 0;\r\n var dy = xmlNode.getAttribute('dy') || 0;\r\n var g = new Group();\r\n inheritStyle(parentGroup, g);\r\n parseAttributes(xmlNode, g, this._defs);\r\n this._textX += dx;\r\n this._textY += dy;\r\n return g;\r\n },\r\n 'path': function (xmlNode, parentGroup) {\r\n var d = xmlNode.getAttribute('d') || '';\r\n var path = createFromString(d);\r\n inheritStyle(parentGroup, path);\r\n parseAttributes(xmlNode, path, this._defs);\r\n return path;\r\n }\r\n };\r\n })();\r\n return SVGParser;\r\n }());\r\n var defineParsers = {\r\n 'lineargradient': function (xmlNode) {\r\n var x1 = parseInt(xmlNode.getAttribute('x1') || '0', 10);\r\n var y1 = parseInt(xmlNode.getAttribute('y1') || '0', 10);\r\n var x2 = parseInt(xmlNode.getAttribute('x2') || '10', 10);\r\n var y2 = parseInt(xmlNode.getAttribute('y2') || '0', 10);\r\n var gradient = new LinearGradient(x1, y1, x2, y2);\r\n _parseGradientColorStops(xmlNode, gradient);\r\n return gradient;\r\n }\r\n };\r\n function _parseGradientColorStops(xmlNode, gradient) {\r\n var stop = xmlNode.firstChild;\r\n while (stop) {\r\n if (stop.nodeType === 1) {\r\n var offsetStr = stop.getAttribute('offset');\r\n var offset = void 0;\r\n if (offsetStr.indexOf('%') > 0) {\r\n offset = parseInt(offsetStr, 10) / 100;\r\n }\r\n else if (offsetStr) {\r\n offset = parseFloat(offsetStr);\r\n }\r\n else {\r\n offset = 0;\r\n }\r\n var stopColor = stop.getAttribute('stop-color') || '#000000';\r\n gradient.colorStops.push({\r\n offset: offset,\r\n color: stopColor\r\n });\r\n }\r\n stop = stop.nextSibling;\r\n }\r\n }\r\n function inheritStyle(parent, child) {\r\n if (parent && parent.__inheritedStyle) {\r\n if (!child.__inheritedStyle) {\r\n child.__inheritedStyle = {};\r\n }\r\n defaults(child.__inheritedStyle, parent.__inheritedStyle);\r\n }\r\n }\r\n function parsePoints(pointsString) {\r\n var list = trim(pointsString).split(DILIMITER_REG);\r\n var points = [];\r\n for (var i = 0; i < list.length; i += 2) {\r\n var x = parseFloat(list[i]);\r\n var y = parseFloat(list[i + 1]);\r\n points.push([x, y]);\r\n }\r\n return points;\r\n }\r\n var attributesMap = {\r\n 'fill': 'fill',\r\n 'stroke': 'stroke',\r\n 'stroke-width': 'lineWidth',\r\n 'opacity': 'opacity',\r\n 'fill-opacity': 'fillOpacity',\r\n 'stroke-opacity': 'strokeOpacity',\r\n 'stroke-dasharray': 'lineDash',\r\n 'stroke-dashoffset': 'lineDashOffset',\r\n 'stroke-linecap': 'lineCap',\r\n 'stroke-linejoin': 'lineJoin',\r\n 'stroke-miterlimit': 'miterLimit',\r\n 'font-family': 'fontFamily',\r\n 'font-size': 'fontSize',\r\n 'font-style': 'fontStyle',\r\n 'font-weight': 'fontWeight',\r\n 'text-align': 'textAlign',\r\n 'alignment-baseline': 'textBaseline'\r\n };\r\n function parseAttributes(xmlNode, el, defs, onlyInlineStyle) {\r\n var disp = el;\r\n var zrStyle = disp.__inheritedStyle || {};\r\n if (xmlNode.nodeType === 1) {\r\n parseTransformAttribute(xmlNode, el);\r\n extend(zrStyle, parseStyleAttribute(xmlNode));\r\n if (!onlyInlineStyle) {\r\n for (var svgAttrName in attributesMap) {\r\n if (attributesMap.hasOwnProperty(svgAttrName)) {\r\n var attrValue = xmlNode.getAttribute(svgAttrName);\r\n if (attrValue != null) {\r\n zrStyle[attributesMap[svgAttrName]] = attrValue;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n disp.style = disp.style || {};\r\n zrStyle.fill != null && (disp.style.fill = getPaint(zrStyle.fill, defs));\r\n zrStyle.stroke != null && (disp.style.stroke = getPaint(zrStyle.stroke, defs));\r\n each([\r\n 'lineWidth', 'opacity', 'fillOpacity', 'strokeOpacity', 'miterLimit', 'fontSize'\r\n ], function (propName) {\r\n zrStyle[propName] != null && (disp.style[propName] = parseFloat(zrStyle[propName]));\r\n });\r\n if (!zrStyle.textBaseline || zrStyle.textBaseline === 'auto') {\r\n zrStyle.textBaseline = 'alphabetic';\r\n }\r\n if (zrStyle.textBaseline === 'alphabetic') {\r\n zrStyle.textBaseline = 'bottom';\r\n }\r\n if (zrStyle.textAlign === 'start') {\r\n zrStyle.textAlign = 'left';\r\n }\r\n if (zrStyle.textAlign === 'end') {\r\n zrStyle.textAlign = 'right';\r\n }\r\n each(['lineDashOffset', 'lineCap', 'lineJoin',\r\n 'fontWeight', 'fontFamily', 'fontStyle', 'textAlign', 'textBaseline'\r\n ], function (propName) {\r\n zrStyle[propName] != null && (disp.style[propName] = zrStyle[propName]);\r\n });\r\n if (zrStyle.lineDash) {\r\n disp.style.lineDash = map(trim(zrStyle.lineDash).split(DILIMITER_REG), function (str) {\r\n return parseFloat(str);\r\n });\r\n }\r\n disp.__inheritedStyle = zrStyle;\r\n }\r\n var urlRegex = /url\\(\\s*#(.*?)\\)/;\r\n function getPaint(str, defs) {\r\n var urlMatch = defs && str && str.match(urlRegex);\r\n if (urlMatch) {\r\n var url = trim(urlMatch[1]);\r\n var def = defs[url];\r\n return def;\r\n }\r\n return str;\r\n }\r\n var transformRegex = /(translate|scale|rotate|skewX|skewY|matrix)\\(([\\-\\s0-9\\.e,]*)\\)/g;\r\n function parseTransformAttribute(xmlNode, node) {\r\n var transform = xmlNode.getAttribute('transform');\r\n if (transform) {\r\n transform = transform.replace(/,/g, ' ');\r\n var transformOps_1 = [];\r\n var m = null;\r\n transform.replace(transformRegex, function (str, type, value) {\r\n transformOps_1.push(type, value);\r\n return '';\r\n });\r\n for (var i = transformOps_1.length - 1; i > 0; i -= 2) {\r\n var value = transformOps_1[i];\r\n var type = transformOps_1[i - 1];\r\n var valueArr = void 0;\r\n m = m || create$1();\r\n switch (type) {\r\n case 'translate':\r\n valueArr = trim(value).split(DILIMITER_REG);\r\n translate(m, m, [parseFloat(valueArr[0]), parseFloat(valueArr[1] || '0')]);\r\n break;\r\n case 'scale':\r\n valueArr = trim(value).split(DILIMITER_REG);\r\n scale$1(m, m, [parseFloat(valueArr[0]), parseFloat(valueArr[1] || valueArr[0])]);\r\n break;\r\n case 'rotate':\r\n valueArr = trim(value).split(DILIMITER_REG);\r\n rotate(m, m, parseFloat(valueArr[0]));\r\n break;\r\n case 'skew':\r\n valueArr = trim(value).split(DILIMITER_REG);\r\n console.warn('Skew transform is not supported yet');\r\n break;\r\n case 'matrix':\r\n valueArr = trim(value).split(DILIMITER_REG);\r\n m[0] = parseFloat(valueArr[0]);\r\n m[1] = parseFloat(valueArr[1]);\r\n m[2] = parseFloat(valueArr[2]);\r\n m[3] = parseFloat(valueArr[3]);\r\n m[4] = parseFloat(valueArr[4]);\r\n m[5] = parseFloat(valueArr[5]);\r\n break;\r\n }\r\n }\r\n node.setLocalTransform(m);\r\n }\r\n }\r\n var styleRegex = /([^\\s:;]+)\\s*:\\s*([^:;]+)/g;\r\n function parseStyleAttribute(xmlNode) {\r\n var style = xmlNode.getAttribute('style');\r\n var result = {};\r\n if (!style) {\r\n return result;\r\n }\r\n var styleList = {};\r\n styleRegex.lastIndex = 0;\r\n var styleRegResult;\r\n while ((styleRegResult = styleRegex.exec(style)) != null) {\r\n styleList[styleRegResult[1]] = styleRegResult[2];\r\n }\r\n for (var svgAttrName in attributesMap) {\r\n if (attributesMap.hasOwnProperty(svgAttrName) && styleList[svgAttrName] != null) {\r\n result[attributesMap[svgAttrName]] = styleList[svgAttrName];\r\n }\r\n }\r\n return result;\r\n }\r\n function makeViewBoxTransform(viewBoxRect, width, height) {\r\n var scaleX = width / viewBoxRect.width;\r\n var scaleY = height / viewBoxRect.height;\r\n var scale = Math.min(scaleX, scaleY);\r\n return {\r\n scale: scale,\r\n x: -(viewBoxRect.x + viewBoxRect.width / 2) * scale + width / 2,\r\n y: -(viewBoxRect.y + viewBoxRect.height / 2) * scale + height / 2\r\n };\r\n }\r\n function parseSVG(xml, opt) {\r\n var parser = new SVGParser();\r\n return parser.parse(xml, opt);\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 CMD$3 = PathProxy.CMD;\r\n var PI2$6 = Math.PI * 2;\r\n var PROP_XY = ['x', 'y'];\r\n var PROP_WH = ['width', 'height'];\r\n var tmpArr = [];\r\n function aroundEqual(a, b) {\r\n return Math.abs(a - b) < 1e-5;\r\n }\r\n function pathToBezierCurves(path) {\r\n var data = path.data;\r\n var len = path.len();\r\n var bezierArray = [];\r\n var currentSubpath;\r\n var xi = 0;\r\n var yi = 0;\r\n var x0 = 0;\r\n var y0 = 0;\r\n function createNewSubpath(x, y) {\r\n if (currentSubpath && currentSubpath.length > 2) {\r\n bezierArray.push(currentSubpath);\r\n }\r\n currentSubpath = [x, y];\r\n }\r\n function addLine(x0, y0, x1, y1) {\r\n if (!(aroundEqual(x0, x1) && aroundEqual(y0, y1))) {\r\n currentSubpath.push(x0, y0, x1, y1, x1, y1);\r\n }\r\n }\r\n function addArc(startAngle, endAngle, cx, cy, rx, ry) {\r\n var delta = Math.abs(endAngle - startAngle);\r\n var len = Math.tan(delta / 4) * 4 / 3;\r\n var dir = endAngle < startAngle ? -1 : 1;\r\n var c1 = Math.cos(startAngle);\r\n var s1 = Math.sin(startAngle);\r\n var c2 = Math.cos(endAngle);\r\n var s2 = Math.sin(endAngle);\r\n var x1 = c1 * rx + cx;\r\n var y1 = s1 * ry + cy;\r\n var x4 = c2 * rx + cx;\r\n var y4 = s2 * ry + cy;\r\n var hx = rx * len * dir;\r\n var hy = ry * len * dir;\r\n currentSubpath.push(x1 - hx * s1, y1 + hy * c1, x4 + hx * s2, y4 - hy * c2, x4, y4);\r\n }\r\n var x1;\r\n var y1;\r\n var x2;\r\n var y2;\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 if (cmd === CMD$3.L || cmd === CMD$3.C || cmd === CMD$3.Q) {\r\n currentSubpath = [x0, y0];\r\n }\r\n }\r\n switch (cmd) {\r\n case CMD$3.M:\r\n xi = x0 = data[i++];\r\n yi = y0 = data[i++];\r\n createNewSubpath(x0, y0);\r\n break;\r\n case CMD$3.L:\r\n x1 = data[i++];\r\n y1 = data[i++];\r\n addLine(xi, yi, x1, y1);\r\n xi = x1;\r\n yi = y1;\r\n break;\r\n case CMD$3.C:\r\n currentSubpath.push(data[i++], data[i++], data[i++], data[i++], xi = data[i++], yi = data[i++]);\r\n break;\r\n case CMD$3.Q:\r\n x1 = data[i++];\r\n y1 = data[i++];\r\n x2 = data[i++];\r\n y2 = data[i++];\r\n currentSubpath.push(xi + 2 / 3 * (x1 - xi), yi + 2 / 3 * (y1 - yi), x2 + 2 / 3 * (x1 - x2), y2 + 2 / 3 * (y1 - y2), x2, y2);\r\n xi = x2;\r\n yi = y2;\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 startAngle = data[i++];\r\n var endAngle = data[i++] + startAngle;\r\n i += 1;\r\n var anticlockwise = !data[i++];\r\n x1 = Math.cos(startAngle) * rx + cx;\r\n y1 = Math.sin(startAngle) * ry + cy;\r\n if (isFirst) {\r\n x0 = x1;\r\n y0 = y1;\r\n createNewSubpath(x0, y0);\r\n }\r\n else {\r\n addLine(xi, yi, x1, y1);\r\n }\r\n xi = Math.cos(endAngle) * rx + cx;\r\n yi = Math.sin(endAngle) * ry + cy;\r\n var step = (anticlockwise ? -1 : 1) * Math.PI / 2;\r\n for (var angle = startAngle; anticlockwise ? angle > endAngle : angle < endAngle; angle += step) {\r\n var nextAngle = anticlockwise ? Math.max(angle + step, endAngle)\r\n : Math.min(angle + step, endAngle);\r\n addArc(angle, nextAngle, cx, cy, rx, ry);\r\n }\r\n break;\r\n case CMD$3.R:\r\n x0 = xi = data[i++];\r\n y0 = yi = data[i++];\r\n x1 = x0 + data[i++];\r\n y1 = y0 + data[i++];\r\n createNewSubpath(x1, y0);\r\n addLine(x1, y0, x1, y1);\r\n addLine(x1, y1, x0, y1);\r\n addLine(x0, y1, x0, y0);\r\n addLine(x0, y0, x1, y0);\r\n break;\r\n case CMD$3.Z:\r\n currentSubpath && addLine(xi, yi, x0, y0);\r\n xi = x0;\r\n yi = y0;\r\n break;\r\n }\r\n }\r\n if (currentSubpath && currentSubpath.length > 2) {\r\n bezierArray.push(currentSubpath);\r\n }\r\n return bezierArray;\r\n }\r\n function alignSubpath(subpath1, subpath2) {\r\n var len1 = subpath1.length;\r\n var len2 = subpath2.length;\r\n if (len1 === len2) {\r\n return [subpath1, subpath2];\r\n }\r\n var shorterPath = len1 < len2 ? subpath1 : subpath2;\r\n var shorterLen = Math.min(len1, len2);\r\n var diff = Math.abs(len2 - len1) / 6;\r\n var shorterBezierCount = (shorterLen - 2) / 6;\r\n var eachCurveSubDivCount = Math.ceil(diff / shorterBezierCount) + 1;\r\n var newSubpath = [shorterPath[0], shorterPath[1]];\r\n var remained = diff;\r\n var tmpSegX = [];\r\n var tmpSegY = [];\r\n for (var i = 2; i < shorterLen;) {\r\n var x0 = shorterPath[i - 2];\r\n var y0 = shorterPath[i - 1];\r\n var x1 = shorterPath[i++];\r\n var y1 = shorterPath[i++];\r\n var x2 = shorterPath[i++];\r\n var y2 = shorterPath[i++];\r\n var x3 = shorterPath[i++];\r\n var y3 = shorterPath[i++];\r\n if (remained <= 0) {\r\n newSubpath.push(x1, y1, x2, y2, x3, y3);\r\n continue;\r\n }\r\n var actualSubDivCount = Math.min(remained, eachCurveSubDivCount - 1) + 1;\r\n for (var k = 1; k <= actualSubDivCount; k++) {\r\n var p = k / actualSubDivCount;\r\n cubicSubdivide(x0, x1, x2, x3, p, tmpSegX);\r\n cubicSubdivide(y0, y1, y2, y3, p, tmpSegY);\r\n x0 = tmpSegX[3];\r\n y0 = tmpSegY[3];\r\n newSubpath.push(tmpSegX[1], tmpSegY[1], tmpSegX[2], tmpSegY[2], x0, y0);\r\n x1 = tmpSegX[5];\r\n y1 = tmpSegY[5];\r\n x2 = tmpSegX[6];\r\n y2 = tmpSegY[6];\r\n }\r\n remained -= actualSubDivCount - 1;\r\n }\r\n return shorterPath === subpath1 ? [newSubpath, subpath2] : [subpath1, newSubpath];\r\n }\r\n function createSubpath(lastSubpathSubpath, otherSubpath) {\r\n var len = lastSubpathSubpath.length;\r\n var lastX = lastSubpathSubpath[len - 2];\r\n var lastY = lastSubpathSubpath[len - 1];\r\n var newSubpath = [];\r\n for (var i = 0; i < otherSubpath.length;) {\r\n newSubpath[i++] = lastX;\r\n newSubpath[i++] = lastY;\r\n }\r\n return newSubpath;\r\n }\r\n function alignBezierCurves(array1, array2) {\r\n var _a;\r\n var lastSubpath1;\r\n var lastSubpath2;\r\n var newArray1 = [];\r\n var newArray2 = [];\r\n for (var i = 0; i < Math.max(array1.length, array2.length); i++) {\r\n var subpath1 = array1[i];\r\n var subpath2 = array2[i];\r\n var newSubpath1 = void 0;\r\n var newSubpath2 = void 0;\r\n if (!subpath1) {\r\n newSubpath1 = createSubpath(lastSubpath1 || subpath2, subpath2);\r\n newSubpath2 = subpath2;\r\n }\r\n else if (!subpath2) {\r\n newSubpath2 = createSubpath(lastSubpath2 || subpath1, subpath1);\r\n newSubpath1 = subpath1;\r\n }\r\n else {\r\n _a = alignSubpath(subpath1, subpath2), newSubpath1 = _a[0], newSubpath2 = _a[1];\r\n lastSubpath1 = newSubpath1;\r\n lastSubpath2 = newSubpath2;\r\n }\r\n newArray1.push(newSubpath1);\r\n newArray2.push(newSubpath2);\r\n }\r\n return [newArray1, newArray2];\r\n }\r\n function centroid(array) {\r\n var signedArea = 0;\r\n var cx = 0;\r\n var cy = 0;\r\n var len = array.length;\r\n for (var i = 0, j = len - 2; i < len; j = i, i += 2) {\r\n var x0 = array[j];\r\n var y0 = array[j + 1];\r\n var x1 = array[i];\r\n var y1 = array[i + 1];\r\n var a = x0 * y1 - x1 * y0;\r\n signedArea += a;\r\n cx += (x0 + x1) * a;\r\n cy += (y0 + y1) * a;\r\n }\r\n if (signedArea === 0) {\r\n return [array[0] || 0, array[1] || 0];\r\n }\r\n return [cx / signedArea / 3, cy / signedArea / 3, signedArea];\r\n }\r\n function findBestRingOffset(fromSubBeziers, toSubBeziers, fromCp, toCp) {\r\n var bezierCount = (fromSubBeziers.length - 2) / 6;\r\n var bestScore = Infinity;\r\n var bestOffset = 0;\r\n var len = fromSubBeziers.length;\r\n var len2 = len - 2;\r\n for (var offset = 0; offset < bezierCount; offset++) {\r\n var cursorOffset = offset * 6;\r\n var score = 0;\r\n for (var k = 0; k < len; k += 2) {\r\n var idx = k === 0 ? cursorOffset : ((cursorOffset + k - 2) % len2 + 2);\r\n var x0 = fromSubBeziers[idx] - fromCp[0];\r\n var y0 = fromSubBeziers[idx + 1] - fromCp[1];\r\n var x1 = toSubBeziers[k] - toCp[0];\r\n var y1 = toSubBeziers[k + 1] - toCp[1];\r\n var dx = x1 - x0;\r\n var dy = y1 - y0;\r\n score += dx * dx + dy * dy;\r\n }\r\n if (score < bestScore) {\r\n bestScore = score;\r\n bestOffset = offset;\r\n }\r\n }\r\n return bestOffset;\r\n }\r\n function reverse(array) {\r\n var newArr = [];\r\n var len = array.length;\r\n for (var i = 0; i < len; i += 2) {\r\n newArr[i] = array[len - i - 2];\r\n newArr[i + 1] = array[len - i - 1];\r\n }\r\n return newArr;\r\n }\r\n function findBestMorphingRotation(fromArr, toArr, searchAngleIteration, searchAngleRange) {\r\n var result = [];\r\n var fromNeedsReverse;\r\n for (var i = 0; i < fromArr.length; i++) {\r\n var fromSubpathBezier = fromArr[i];\r\n var toSubpathBezier = toArr[i];\r\n var fromCp = centroid(fromSubpathBezier);\r\n var toCp = centroid(toSubpathBezier);\r\n if (fromNeedsReverse == null) {\r\n fromNeedsReverse = fromCp[2] < 0 !== toCp[2] < 0;\r\n }\r\n var newFromSubpathBezier = [];\r\n var newToSubpathBezier = [];\r\n var bestAngle = 0;\r\n var bestScore = Infinity;\r\n var tmpArr_1 = [];\r\n var len = fromSubpathBezier.length;\r\n if (fromNeedsReverse) {\r\n fromSubpathBezier = reverse(fromSubpathBezier);\r\n }\r\n var offset = findBestRingOffset(fromSubpathBezier, toSubpathBezier, fromCp, toCp) * 6;\r\n var len2 = len - 2;\r\n for (var k = 0; k < len2; k += 2) {\r\n var idx = (offset + k) % len2 + 2;\r\n newFromSubpathBezier[k + 2] = fromSubpathBezier[idx] - fromCp[0];\r\n newFromSubpathBezier[k + 3] = fromSubpathBezier[idx + 1] - fromCp[1];\r\n }\r\n newFromSubpathBezier[0] = fromSubpathBezier[offset] - fromCp[0];\r\n newFromSubpathBezier[1] = fromSubpathBezier[offset + 1] - fromCp[1];\r\n if (searchAngleIteration > 0) {\r\n var step = searchAngleRange / searchAngleIteration;\r\n for (var angle = -searchAngleRange / 2; angle <= searchAngleRange / 2; angle += step) {\r\n var sa = Math.sin(angle);\r\n var ca = Math.cos(angle);\r\n var score = 0;\r\n for (var k = 0; k < fromSubpathBezier.length; k += 2) {\r\n var x0 = newFromSubpathBezier[k];\r\n var y0 = newFromSubpathBezier[k + 1];\r\n var x1 = toSubpathBezier[k] - toCp[0];\r\n var y1 = toSubpathBezier[k + 1] - toCp[1];\r\n var newX1 = x1 * ca - y1 * sa;\r\n var newY1 = x1 * sa + y1 * ca;\r\n tmpArr_1[k] = newX1;\r\n tmpArr_1[k + 1] = newY1;\r\n var dx = newX1 - x0;\r\n var dy = newY1 - y0;\r\n score += dx * dx + dy * dy;\r\n }\r\n if (score < bestScore) {\r\n bestScore = score;\r\n bestAngle = angle;\r\n for (var m = 0; m < tmpArr_1.length; m++) {\r\n newToSubpathBezier[m] = tmpArr_1[m];\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n for (var i_1 = 0; i_1 < len; i_1 += 2) {\r\n newToSubpathBezier[i_1] = toSubpathBezier[i_1] - toCp[0];\r\n newToSubpathBezier[i_1 + 1] = toSubpathBezier[i_1 + 1] - toCp[1];\r\n }\r\n }\r\n result.push({\r\n from: newFromSubpathBezier,\r\n to: newToSubpathBezier,\r\n fromCp: fromCp,\r\n toCp: toCp,\r\n rotation: -bestAngle\r\n });\r\n }\r\n return result;\r\n }\r\n function morphPath(fromPath, toPath, animationOpts) {\r\n var fromPathProxy;\r\n var toPathProxy;\r\n if (!fromPath || !toPath) {\r\n return toPath;\r\n }\r\n !fromPath.path && fromPath.createPathProxy();\r\n fromPathProxy = fromPath.path;\r\n fromPathProxy.beginPath();\r\n fromPath.buildPath(fromPathProxy, fromPath.shape);\r\n !toPath.path && toPath.createPathProxy();\r\n toPathProxy = toPath.path;\r\n toPathProxy === fromPathProxy && (toPathProxy = new PathProxy(false));\r\n toPathProxy.beginPath();\r\n if (isIndividualMorphingPath(toPath)) {\r\n toPath.__oldBuildPath(toPathProxy, toPath.shape);\r\n }\r\n else {\r\n toPath.buildPath(toPathProxy, toPath.shape);\r\n }\r\n var _a = alignBezierCurves(pathToBezierCurves(fromPathProxy), pathToBezierCurves(toPathProxy)), fromBezierCurves = _a[0], toBezierCurves = _a[1];\r\n var morphingData = findBestMorphingRotation(fromBezierCurves, toBezierCurves, 10, Math.PI);\r\n becomeIndividualMorphingPath(toPath, morphingData, 0);\r\n var oldDone = animationOpts && animationOpts.done;\r\n var oldAborted = animationOpts && animationOpts.aborted;\r\n var oldDuring = animationOpts && animationOpts.during;\r\n toPath.animateTo({\r\n __morphT: 1\r\n }, defaults({\r\n during: function (p) {\r\n toPath.dirtyShape();\r\n oldDuring && oldDuring(p);\r\n },\r\n done: function () {\r\n restoreIndividualMorphingPath(toPath);\r\n toPath.createPathProxy();\r\n toPath.dirtyShape();\r\n oldDone && oldDone();\r\n },\r\n aborted: function () {\r\n oldAborted && oldAborted();\r\n }\r\n }, animationOpts));\r\n return toPath;\r\n }\r\n function morphingPathBuildPath(path) {\r\n var morphingData = this.__morphingData;\r\n var t = this.__morphT;\r\n var onet = 1 - t;\r\n var newCp = [];\r\n for (var i = 0; i < morphingData.length; i++) {\r\n var item = morphingData[i];\r\n var from = item.from;\r\n var to = item.to;\r\n var angle = item.rotation * t;\r\n var fromCp = item.fromCp;\r\n var toCp = item.toCp;\r\n var sa = Math.sin(angle);\r\n var ca = Math.cos(angle);\r\n lerp(newCp, fromCp, toCp, t);\r\n for (var m = 0; m < from.length; m += 2) {\r\n var x0 = from[m];\r\n var y0 = from[m + 1];\r\n var x1 = to[m];\r\n var y1 = to[m + 1];\r\n var x = x0 * onet + x1 * t;\r\n var y = y0 * onet + y1 * t;\r\n tmpArr[m] = (x * ca - y * sa) + newCp[0];\r\n tmpArr[m + 1] = (x * sa + y * ca) + newCp[1];\r\n }\r\n for (var m = 0; m < from.length;) {\r\n if (m === 0) {\r\n path.moveTo(tmpArr[m++], tmpArr[m++]);\r\n }\r\n path.bezierCurveTo(tmpArr[m++], tmpArr[m++], tmpArr[m++], tmpArr[m++], tmpArr[m++], tmpArr[m++]);\r\n }\r\n }\r\n }\r\n function becomeIndividualMorphingPath(path, morphingData, morphT) {\r\n if (isIndividualMorphingPath(path)) {\r\n updateIndividualMorphingPath(path, morphingData, morphT);\r\n return;\r\n }\r\n var morphingPath = path;\r\n morphingPath.__oldBuildPath = morphingPath.buildPath;\r\n morphingPath.buildPath = morphingPathBuildPath;\r\n updateIndividualMorphingPath(morphingPath, morphingData, morphT);\r\n }\r\n function updateIndividualMorphingPath(morphingPath, morphingData, morphT) {\r\n morphingPath.__morphingData = morphingData;\r\n morphingPath.__morphT = morphT;\r\n }\r\n function restoreIndividualMorphingPath(path) {\r\n if (isIndividualMorphingPath(path)) {\r\n path.buildPath = path.__oldBuildPath;\r\n path.__oldBuildPath = path.__morphingData = null;\r\n }\r\n }\r\n function isIndividualMorphingPath(path) {\r\n return path.__oldBuildPath != null;\r\n }\r\n function isCombiningPath(path) {\r\n return !!path.__combiningSubList;\r\n }\r\n function isInAnyMorphing(path) {\r\n return isIndividualMorphingPath(path) || isCombiningPath(path);\r\n }\r\n function combine(fromPathList, toPath, animationOpts, copyPropsIfDivided) {\r\n var fromIndividuals = [];\r\n var separateCount = 0;\r\n for (var i = 0; i < fromPathList.length; i++) {\r\n var fromPath = fromPathList[i];\r\n if (isCombiningPath(fromPath)) {\r\n var fromCombiningSubList = fromPath.__combiningSubList;\r\n for (var j = 0; j < fromCombiningSubList.length; j++) {\r\n fromIndividuals.push(fromCombiningSubList[j]);\r\n }\r\n separateCount += fromCombiningSubList.length;\r\n }\r\n else {\r\n fromIndividuals.push(fromPath);\r\n separateCount++;\r\n }\r\n }\r\n if (!separateCount) {\r\n return;\r\n }\r\n var dividingMethod = animationOpts ? animationOpts.dividingMethod : null;\r\n var toPathSplittedList = divideShape(toPath, separateCount, dividingMethod);\r\n assert(toPathSplittedList.length === separateCount);\r\n var oldDone = animationOpts && animationOpts.done;\r\n var oldAborted = animationOpts && animationOpts.aborted;\r\n var oldDuring = animationOpts && animationOpts.during;\r\n var doneCount = 0;\r\n var abortedCalled = false;\r\n var morphAnimationOpts = defaults({\r\n during: function (p) {\r\n oldDuring && oldDuring(p);\r\n },\r\n done: function () {\r\n doneCount++;\r\n if (doneCount === toPathSplittedList.length) {\r\n restoreCombiningPath(toPath);\r\n oldDone && oldDone();\r\n }\r\n },\r\n aborted: function () {\r\n if (!abortedCalled) {\r\n abortedCalled = true;\r\n oldAborted && oldAborted();\r\n }\r\n }\r\n }, animationOpts);\r\n for (var i = 0; i < separateCount; i++) {\r\n var from = fromIndividuals[i];\r\n var to = toPathSplittedList[i];\r\n copyPropsIfDivided && copyPropsIfDivided(toPath, to, true);\r\n morphPath(from, to, morphAnimationOpts);\r\n }\r\n becomeCombiningPath(toPath, toPathSplittedList);\r\n return {\r\n fromIndividuals: fromIndividuals,\r\n toIndividuals: toPathSplittedList,\r\n count: separateCount\r\n };\r\n }\r\n function becomeCombiningPath(path, combiningSubList) {\r\n if (isCombiningPath(path)) {\r\n updateCombiningPathSubList(path, combiningSubList);\r\n return;\r\n }\r\n var combiningPath = path;\r\n updateCombiningPathSubList(combiningPath, combiningSubList);\r\n combiningPath.__oldAddSelfToZr = path.addSelfToZr;\r\n combiningPath.__oldRemoveSelfFromZr = path.removeSelfFromZr;\r\n combiningPath.addSelfToZr = combiningAddSelfToZr;\r\n combiningPath.removeSelfFromZr = combiningRemoveSelfFromZr;\r\n combiningPath.__oldBuildPath = combiningPath.buildPath;\r\n combiningPath.buildPath = noop;\r\n combiningPath.childrenRef = combiningChildrenRef;\r\n }\r\n function restoreCombiningPath(path) {\r\n if (!isCombiningPath(path)) {\r\n return;\r\n }\r\n var combiningPath = path;\r\n updateCombiningPathSubList(combiningPath, null);\r\n combiningPath.addSelfToZr = combiningPath.__oldAddSelfToZr;\r\n combiningPath.removeSelfFromZr = combiningPath.__oldRemoveSelfFromZr;\r\n combiningPath.buildPath = combiningPath.__oldBuildPath;\r\n combiningPath.childrenRef =\r\n combiningPath.__combiningSubList =\r\n combiningPath.__oldAddSelfToZr =\r\n combiningPath.__oldRemoveSelfFromZr =\r\n combiningPath.__oldBuildPath = null;\r\n }\r\n function updateCombiningPathSubList(combiningPath, combiningSubList) {\r\n if (combiningPath.__combiningSubList !== combiningSubList) {\r\n combiningPathSubListAddRemoveWithZr(combiningPath, 'removeSelfFromZr');\r\n combiningPath.__combiningSubList = combiningSubList;\r\n if (combiningSubList) {\r\n for (var i = 0; i < combiningSubList.length; i++) {\r\n combiningSubList[i].parent = combiningPath;\r\n }\r\n }\r\n combiningPathSubListAddRemoveWithZr(combiningPath, 'addSelfToZr');\r\n }\r\n }\r\n function combiningAddSelfToZr(zr) {\r\n this.__oldAddSelfToZr(zr);\r\n combiningPathSubListAddRemoveWithZr(this, 'addSelfToZr');\r\n }\r\n function combiningPathSubListAddRemoveWithZr(path, method) {\r\n var combiningSubList = path.__combiningSubList;\r\n var zr = path.__zr;\r\n if (combiningSubList && zr) {\r\n for (var i = 0; i < combiningSubList.length; i++) {\r\n var child = combiningSubList[i];\r\n child[method](zr);\r\n }\r\n }\r\n }\r\n function combiningRemoveSelfFromZr(zr) {\r\n this.__oldRemoveSelfFromZr(zr);\r\n var combiningSubList = this.__combiningSubList;\r\n for (var i = 0; i < combiningSubList.length; i++) {\r\n var child = combiningSubList[i];\r\n child.removeSelfFromZr(zr);\r\n }\r\n }\r\n function combiningChildrenRef() {\r\n return this.__combiningSubList;\r\n }\r\n function separate(fromPath, toPathList, animationOpts, copyPropsIfDivided) {\r\n var toPathListLen = toPathList.length;\r\n var fromPathList;\r\n var dividingMethod = animationOpts ? animationOpts.dividingMethod : null;\r\n var copyProps = false;\r\n if (isCombiningPath(fromPath)) {\r\n var fromCombiningSubList = fromPath.__combiningSubList;\r\n if (fromCombiningSubList.length === toPathListLen) {\r\n fromPathList = fromCombiningSubList;\r\n }\r\n else {\r\n fromPathList = divideShape(fromPath, toPathListLen, dividingMethod);\r\n copyProps = true;\r\n }\r\n }\r\n else {\r\n fromPathList = divideShape(fromPath, toPathListLen, dividingMethod);\r\n copyProps = true;\r\n }\r\n assert(fromPathList.length === toPathListLen);\r\n for (var i = 0; i < toPathListLen; i++) {\r\n if (copyProps && copyPropsIfDivided) {\r\n copyPropsIfDivided(fromPath, fromPathList[i], false);\r\n }\r\n morphPath(fromPathList[i], toPathList[i], animationOpts);\r\n }\r\n return {\r\n fromIndividuals: fromPathList,\r\n toIndividuals: toPathList,\r\n count: toPathListLen\r\n };\r\n }\r\n function divideShape(path, separateCount, dividingMethod) {\r\n return dividingMethod === 'duplicate'\r\n ? duplicateShape(path, separateCount)\r\n : splitShape(path, separateCount);\r\n }\r\n function splitShape(path, separateCount) {\r\n var resultPaths = [];\r\n if (separateCount <= 0) {\r\n return resultPaths;\r\n }\r\n if (separateCount === 1) {\r\n return duplicateShape(path, separateCount);\r\n }\r\n if (path instanceof Rect) {\r\n var toPathShape = path.shape;\r\n var splitPropIdx = toPathShape.height > toPathShape.width ? 1 : 0;\r\n var propWH = PROP_WH[splitPropIdx];\r\n var propXY = PROP_XY[splitPropIdx];\r\n var subWH = toPathShape[propWH] / separateCount;\r\n var xyCurr = toPathShape[propXY];\r\n for (var i = 0; i < separateCount; i++, xyCurr += subWH) {\r\n var subShape = {\r\n x: toPathShape.x,\r\n y: toPathShape.y,\r\n width: toPathShape.width,\r\n height: toPathShape.height\r\n };\r\n subShape[propXY] = xyCurr;\r\n subShape[propWH] = i < separateCount - 1\r\n ? subWH\r\n : toPathShape[propXY] + toPathShape[propWH] - xyCurr;\r\n var splitted = new Rect({ shape: subShape });\r\n resultPaths.push(splitted);\r\n }\r\n }\r\n else if (path instanceof Sector) {\r\n var toPathShape = path.shape;\r\n var clockwise = toPathShape.clockwise;\r\n var startAngle = toPathShape.startAngle;\r\n var endAngle = toPathShape.endAngle;\r\n var endAngleNormalized = normalizeRadian$1(startAngle, toPathShape.endAngle, clockwise);\r\n var step = (endAngleNormalized - startAngle) / separateCount;\r\n var angleCurr = startAngle;\r\n for (var i = 0; i < separateCount; i++, angleCurr += step) {\r\n var splitted = new Sector({\r\n shape: {\r\n cx: toPathShape.cx,\r\n cy: toPathShape.cy,\r\n r: toPathShape.r,\r\n r0: toPathShape.r0,\r\n clockwise: clockwise,\r\n startAngle: angleCurr,\r\n endAngle: i === separateCount - 1 ? endAngle : angleCurr + step\r\n }\r\n });\r\n resultPaths.push(splitted);\r\n }\r\n }\r\n else {\r\n return duplicateShape(path, separateCount);\r\n }\r\n return resultPaths;\r\n }\r\n function duplicateShape(path, separateCount) {\r\n var resultPaths = [];\r\n if (separateCount <= 0) {\r\n return resultPaths;\r\n }\r\n var ctor = path.constructor;\r\n for (var i = 0; i < separateCount; i++) {\r\n var sub = new ctor({\r\n shape: clone(path.shape)\r\n });\r\n resultPaths.push(sub);\r\n }\r\n return resultPaths;\r\n }\r\n function normalizeRadian$1(start, end, clockwise) {\r\n return end + PI2$6 * (Math[clockwise ? 'ceil' : 'floor']((start - end) / PI2$6));\r\n }\n\n var CompoundPath = (function (_super) {\r\n __extends(CompoundPath, _super);\r\n function CompoundPath() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = 'compound';\r\n return _this;\r\n }\r\n CompoundPath.prototype._updatePathDirty = function () {\r\n var paths = this.shape.paths;\r\n var dirtyPath = this.shapeChanged();\r\n for (var i = 0; i < paths.length; i++) {\r\n dirtyPath = dirtyPath || paths[i].shapeChanged();\r\n }\r\n if (dirtyPath) {\r\n this.dirtyShape();\r\n }\r\n };\r\n CompoundPath.prototype.beforeBrush = function () {\r\n this._updatePathDirty();\r\n var paths = this.shape.paths || [];\r\n var scale = this.getGlobalScale();\r\n for (var i = 0; i < paths.length; i++) {\r\n if (!paths[i].path) {\r\n paths[i].createPathProxy();\r\n }\r\n paths[i].path.setScale(scale[0], scale[1], paths[i].segmentIgnoreThreshold);\r\n }\r\n };\r\n CompoundPath.prototype.buildPath = function (ctx, shape) {\r\n var paths = shape.paths || [];\r\n for (var i = 0; i < paths.length; i++) {\r\n paths[i].buildPath(ctx, paths[i].shape, true);\r\n }\r\n };\r\n CompoundPath.prototype.afterBrush = function () {\r\n var paths = this.shape.paths || [];\r\n for (var i = 0; i < paths.length; i++) {\r\n paths[i].pathUpdated();\r\n }\r\n };\r\n CompoundPath.prototype.getBoundingRect = function () {\r\n this._updatePathDirty.call(this);\r\n return Path.prototype.getBoundingRect.call(this);\r\n };\r\n return CompoundPath;\r\n }(Path));\n\n var m = [];\r\n var IncrementalDisplayble = (function (_super) {\r\n __extends(IncrementalDisplayble, _super);\r\n function IncrementalDisplayble() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.notClear = true;\r\n _this.incremental = true;\r\n _this._displayables = [];\r\n _this._temporaryDisplayables = [];\r\n _this._cursor = 0;\r\n return _this;\r\n }\r\n IncrementalDisplayble.prototype.traverse = function (cb, context) {\r\n cb.call(context, this);\r\n };\r\n IncrementalDisplayble.prototype.useStyle = function () {\r\n this.style = {};\r\n };\r\n IncrementalDisplayble.prototype.getCursor = function () {\r\n return this._cursor;\r\n };\r\n IncrementalDisplayble.prototype.innerAfterBrush = function () {\r\n this._cursor = this._displayables.length;\r\n };\r\n IncrementalDisplayble.prototype.clearDisplaybles = function () {\r\n this._displayables = [];\r\n this._temporaryDisplayables = [];\r\n this._cursor = 0;\r\n this.markRedraw();\r\n this.notClear = false;\r\n };\r\n IncrementalDisplayble.prototype.clearTemporalDisplayables = function () {\r\n this._temporaryDisplayables = [];\r\n };\r\n IncrementalDisplayble.prototype.addDisplayable = function (displayable, notPersistent) {\r\n if (notPersistent) {\r\n this._temporaryDisplayables.push(displayable);\r\n }\r\n else {\r\n this._displayables.push(displayable);\r\n }\r\n this.markRedraw();\r\n };\r\n IncrementalDisplayble.prototype.addDisplayables = function (displayables, notPersistent) {\r\n notPersistent = notPersistent || false;\r\n for (var i = 0; i < displayables.length; i++) {\r\n this.addDisplayable(displayables[i], notPersistent);\r\n }\r\n };\r\n IncrementalDisplayble.prototype.getDisplayables = function () {\r\n return this._displayables;\r\n };\r\n IncrementalDisplayble.prototype.getTemporalDisplayables = function () {\r\n return this._temporaryDisplayables;\r\n };\r\n IncrementalDisplayble.prototype.eachPendingDisplayable = function (cb) {\r\n for (var i = this._cursor; i < this._displayables.length; i++) {\r\n cb && cb(this._displayables[i]);\r\n }\r\n for (var i = 0; i < this._temporaryDisplayables.length; i++) {\r\n cb && cb(this._temporaryDisplayables[i]);\r\n }\r\n };\r\n IncrementalDisplayble.prototype.update = function () {\r\n this.updateTransform();\r\n for (var i = this._cursor; i < this._displayables.length; i++) {\r\n var displayable = this._displayables[i];\r\n displayable.parent = this;\r\n displayable.update();\r\n displayable.parent = null;\r\n }\r\n for (var i = 0; i < this._temporaryDisplayables.length; i++) {\r\n var displayable = this._temporaryDisplayables[i];\r\n displayable.parent = this;\r\n displayable.update();\r\n displayable.parent = null;\r\n }\r\n };\r\n IncrementalDisplayble.prototype.getBoundingRect = function () {\r\n if (!this._rect) {\r\n var rect = new BoundingRect(Infinity, Infinity, -Infinity, -Infinity);\r\n for (var i = 0; i < this._displayables.length; i++) {\r\n var displayable = this._displayables[i];\r\n var childRect = displayable.getBoundingRect().clone();\r\n if (displayable.needLocalTransform()) {\r\n childRect.applyTransform(displayable.getLocalTransform(m));\r\n }\r\n rect.union(childRect);\r\n }\r\n this._rect = rect;\r\n }\r\n return this._rect;\r\n };\r\n IncrementalDisplayble.prototype.contain = function (x, y) {\r\n var localPos = this.transformCoordToLocal(x, y);\r\n var rect = this.getBoundingRect();\r\n if (rect.contain(localPos[0], localPos[1])) {\r\n for (var i = 0; i < this._displayables.length; i++) {\r\n var displayable = this._displayables[i];\r\n if (displayable.contain(x, y)) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n };\r\n return IncrementalDisplayble;\r\n }(Displayable));\n\n var globalImageCache = new LRU(50);\r\n function findExistImage(newImageOrSrc) {\r\n if (typeof newImageOrSrc === 'string') {\r\n var cachedImgObj = globalImageCache.get(newImageOrSrc);\r\n return cachedImgObj && cachedImgObj.image;\r\n }\r\n else {\r\n return newImageOrSrc;\r\n }\r\n }\r\n function createOrUpdateImage(newImageOrSrc, image, hostEl, onload, cbPayload) {\r\n if (!newImageOrSrc) {\r\n return image;\r\n }\r\n else if (typeof newImageOrSrc === 'string') {\r\n if ((image && image.__zrImageSrc === newImageOrSrc) || !hostEl) {\r\n return image;\r\n }\r\n var cachedImgObj = globalImageCache.get(newImageOrSrc);\r\n var pendingWrap = { hostEl: hostEl, cb: onload, cbPayload: cbPayload };\r\n if (cachedImgObj) {\r\n image = cachedImgObj.image;\r\n !isImageReady(image) && cachedImgObj.pending.push(pendingWrap);\r\n }\r\n else {\r\n image = new Image();\r\n image.onload = image.onerror = imageOnLoad;\r\n globalImageCache.put(newImageOrSrc, image.__cachedImgObj = {\r\n image: image,\r\n pending: [pendingWrap]\r\n });\r\n image.src = image.__zrImageSrc = newImageOrSrc;\r\n }\r\n return image;\r\n }\r\n else {\r\n return newImageOrSrc;\r\n }\r\n }\r\n function imageOnLoad() {\r\n var cachedImgObj = this.__cachedImgObj;\r\n this.onload = this.onerror = this.__cachedImgObj = null;\r\n for (var i = 0; i < cachedImgObj.pending.length; i++) {\r\n var pendingWrap = cachedImgObj.pending[i];\r\n var cb = pendingWrap.cb;\r\n cb && cb(this, pendingWrap.cbPayload);\r\n pendingWrap.hostEl.dirty();\r\n }\r\n cachedImgObj.pending.length = 0;\r\n }\r\n function isImageReady(image) {\r\n return image && image.width && image.height;\r\n }\n\n var STYLE_REG = /\\{([a-zA-Z0-9_]+)\\|([^}]*)\\}/g;\r\n function truncateText(text, containerWidth, font, ellipsis, options) {\r\n if (!containerWidth) {\r\n return '';\r\n }\r\n var textLines = (text + '').split('\\n');\r\n options = prepareTruncateOptions(containerWidth, font, ellipsis, options);\r\n for (var i = 0, len = textLines.length; i < len; i++) {\r\n textLines[i] = truncateSingleLine(textLines[i], options);\r\n }\r\n return textLines.join('\\n');\r\n }\r\n function prepareTruncateOptions(containerWidth, font, ellipsis, options) {\r\n options = options || {};\r\n var preparedOpts = extend({}, options);\r\n preparedOpts.font = font;\r\n ellipsis = retrieve2(ellipsis, '...');\r\n preparedOpts.maxIterations = retrieve2(options.maxIterations, 2);\r\n var minChar = preparedOpts.minChar = retrieve2(options.minChar, 0);\r\n preparedOpts.cnCharWidth = getWidth('国', font);\r\n var ascCharWidth = preparedOpts.ascCharWidth = getWidth('a', font);\r\n preparedOpts.placeholder = retrieve2(options.placeholder, '');\r\n var contentWidth = containerWidth = Math.max(0, containerWidth - 1);\r\n for (var i = 0; i < minChar && contentWidth >= ascCharWidth; i++) {\r\n contentWidth -= ascCharWidth;\r\n }\r\n var ellipsisWidth = getWidth(ellipsis, font);\r\n if (ellipsisWidth > contentWidth) {\r\n ellipsis = '';\r\n ellipsisWidth = 0;\r\n }\r\n contentWidth = containerWidth - ellipsisWidth;\r\n preparedOpts.ellipsis = ellipsis;\r\n preparedOpts.ellipsisWidth = ellipsisWidth;\r\n preparedOpts.contentWidth = contentWidth;\r\n preparedOpts.containerWidth = containerWidth;\r\n return preparedOpts;\r\n }\r\n function truncateSingleLine(textLine, options) {\r\n var containerWidth = options.containerWidth;\r\n var font = options.font;\r\n var contentWidth = options.contentWidth;\r\n if (!containerWidth) {\r\n return '';\r\n }\r\n var lineWidth = getWidth(textLine, font);\r\n if (lineWidth <= containerWidth) {\r\n return textLine;\r\n }\r\n for (var j = 0;; j++) {\r\n if (lineWidth <= contentWidth || j >= options.maxIterations) {\r\n textLine += options.ellipsis;\r\n break;\r\n }\r\n var subLength = j === 0\r\n ? estimateLength(textLine, contentWidth, options.ascCharWidth, options.cnCharWidth)\r\n : lineWidth > 0\r\n ? Math.floor(textLine.length * contentWidth / lineWidth)\r\n : 0;\r\n textLine = textLine.substr(0, subLength);\r\n lineWidth = getWidth(textLine, font);\r\n }\r\n if (textLine === '') {\r\n textLine = options.placeholder;\r\n }\r\n return textLine;\r\n }\r\n function estimateLength(text, contentWidth, ascCharWidth, cnCharWidth) {\r\n var width = 0;\r\n var i = 0;\r\n for (var len = text.length; i < len && width < contentWidth; i++) {\r\n var charCode = text.charCodeAt(i);\r\n width += (0 <= charCode && charCode <= 127) ? ascCharWidth : cnCharWidth;\r\n }\r\n return i;\r\n }\r\n function parsePlainText(text, style) {\r\n text != null && (text += '');\r\n var overflow = style.overflow;\r\n var padding = style.padding;\r\n var font = style.font;\r\n var truncate = overflow === 'truncate';\r\n var calculatedLineHeight = getLineHeight(font);\r\n var lineHeight = retrieve2(style.lineHeight, calculatedLineHeight);\r\n var truncateLineOverflow = style.lineOverflow === 'truncate';\r\n var width = style.width;\r\n var lines;\r\n if (width != null && overflow === 'break' || overflow === 'breakAll') {\r\n lines = text ? wrapText(text, style.font, width, overflow === 'breakAll', 0).lines : [];\r\n }\r\n else {\r\n lines = text ? text.split('\\n') : [];\r\n }\r\n var contentHeight = lines.length * lineHeight;\r\n var height = retrieve2(style.height, contentHeight);\r\n if (contentHeight > height && truncateLineOverflow) {\r\n var lineCount = Math.floor(height / lineHeight);\r\n lines = lines.slice(0, lineCount);\r\n }\r\n var outerHeight = height;\r\n var outerWidth = width;\r\n if (padding) {\r\n outerHeight += padding[0] + padding[2];\r\n if (outerWidth != null) {\r\n outerWidth += padding[1] + padding[3];\r\n }\r\n }\r\n if (text && truncate && outerWidth != null) {\r\n var options = prepareTruncateOptions(width, font, style.ellipsis, {\r\n minChar: style.truncateMinChar,\r\n placeholder: style.placeholder\r\n });\r\n for (var i = 0; i < lines.length; i++) {\r\n lines[i] = truncateSingleLine(lines[i], options);\r\n }\r\n }\r\n if (width == null) {\r\n var maxWidth = 0;\r\n for (var i = 0; i < lines.length; i++) {\r\n maxWidth = Math.max(getWidth(lines[i], font), maxWidth);\r\n }\r\n width = maxWidth;\r\n }\r\n return {\r\n lines: lines,\r\n height: height,\r\n outerHeight: outerHeight,\r\n lineHeight: lineHeight,\r\n calculatedLineHeight: calculatedLineHeight,\r\n contentHeight: contentHeight,\r\n width: width\r\n };\r\n }\r\n var RichTextToken = (function () {\r\n function RichTextToken() {\r\n }\r\n return RichTextToken;\r\n }());\r\n var RichTextLine = (function () {\r\n function RichTextLine(tokens) {\r\n this.tokens = [];\r\n if (tokens) {\r\n this.tokens = tokens;\r\n }\r\n }\r\n return RichTextLine;\r\n }());\r\n var RichTextContentBlock = (function () {\r\n function RichTextContentBlock() {\r\n this.width = 0;\r\n this.height = 0;\r\n this.contentWidth = 0;\r\n this.contentHeight = 0;\r\n this.outerWidth = 0;\r\n this.outerHeight = 0;\r\n this.lines = [];\r\n }\r\n return RichTextContentBlock;\r\n }());\r\n function parseRichText(text, style) {\r\n var contentBlock = new RichTextContentBlock();\r\n text != null && (text += '');\r\n if (!text) {\r\n return contentBlock;\r\n }\r\n var topWidth = style.width;\r\n var topHeight = style.height;\r\n var overflow = style.overflow;\r\n var wrapInfo = (overflow === 'break' || overflow === 'breakAll') && topWidth != null\r\n ? { width: topWidth, accumWidth: 0, breakAll: overflow === 'breakAll' }\r\n : null;\r\n var lastIndex = STYLE_REG.lastIndex = 0;\r\n var result;\r\n while ((result = STYLE_REG.exec(text)) != null) {\r\n var matchedIndex = result.index;\r\n if (matchedIndex > lastIndex) {\r\n pushTokens(contentBlock, text.substring(lastIndex, matchedIndex), style, wrapInfo);\r\n }\r\n pushTokens(contentBlock, result[2], style, wrapInfo, result[1]);\r\n lastIndex = STYLE_REG.lastIndex;\r\n }\r\n if (lastIndex < text.length) {\r\n pushTokens(contentBlock, text.substring(lastIndex, text.length), style, wrapInfo);\r\n }\r\n var pendingList = [];\r\n var calculatedHeight = 0;\r\n var calculatedWidth = 0;\r\n var stlPadding = style.padding;\r\n var truncate = overflow === 'truncate';\r\n var truncateLine = style.lineOverflow === 'truncate';\r\n function finishLine(line, lineWidth, lineHeight) {\r\n line.width = lineWidth;\r\n line.lineHeight = lineHeight;\r\n calculatedHeight += lineHeight;\r\n calculatedWidth = Math.max(calculatedWidth, lineWidth);\r\n }\r\n outer: for (var i = 0; i < contentBlock.lines.length; i++) {\r\n var line = contentBlock.lines[i];\r\n var lineHeight = 0;\r\n var lineWidth = 0;\r\n for (var j = 0; j < line.tokens.length; j++) {\r\n var token = line.tokens[j];\r\n var tokenStyle = token.styleName && style.rich[token.styleName] || {};\r\n var textPadding = token.textPadding = tokenStyle.padding;\r\n var paddingH = textPadding ? textPadding[1] + textPadding[3] : 0;\r\n var font = token.font = tokenStyle.font || style.font;\r\n token.contentHeight = getLineHeight(font);\r\n var tokenHeight = retrieve2(tokenStyle.height, token.contentHeight);\r\n token.innerHeight = tokenHeight;\r\n textPadding && (tokenHeight += textPadding[0] + textPadding[2]);\r\n token.height = tokenHeight;\r\n token.lineHeight = retrieve3(tokenStyle.lineHeight, style.lineHeight, tokenHeight);\r\n token.align = tokenStyle && tokenStyle.align || style.align;\r\n token.verticalAlign = tokenStyle && tokenStyle.verticalAlign || 'middle';\r\n if (truncateLine && topHeight != null && calculatedHeight + token.lineHeight > topHeight) {\r\n if (j > 0) {\r\n line.tokens = line.tokens.slice(0, j);\r\n finishLine(line, lineWidth, lineHeight);\r\n contentBlock.lines = contentBlock.lines.slice(0, i + 1);\r\n }\r\n else {\r\n contentBlock.lines = contentBlock.lines.slice(0, i);\r\n }\r\n break outer;\r\n }\r\n var styleTokenWidth = tokenStyle.width;\r\n var tokenWidthNotSpecified = styleTokenWidth == null || styleTokenWidth === 'auto';\r\n if (typeof styleTokenWidth === 'string' && styleTokenWidth.charAt(styleTokenWidth.length - 1) === '%') {\r\n token.percentWidth = styleTokenWidth;\r\n pendingList.push(token);\r\n token.contentWidth = getWidth(token.text, font);\r\n }\r\n else {\r\n if (tokenWidthNotSpecified) {\r\n var textBackgroundColor = tokenStyle.backgroundColor;\r\n var bgImg = textBackgroundColor && textBackgroundColor.image;\r\n if (bgImg) {\r\n bgImg = findExistImage(bgImg);\r\n if (isImageReady(bgImg)) {\r\n token.width = Math.max(token.width, bgImg.width * tokenHeight / bgImg.height);\r\n }\r\n }\r\n }\r\n var remainTruncWidth = truncate && topWidth != null\r\n ? topWidth - lineWidth : null;\r\n if (remainTruncWidth != null && remainTruncWidth < token.width) {\r\n if (!tokenWidthNotSpecified || remainTruncWidth < paddingH) {\r\n token.text = '';\r\n token.width = token.contentWidth = 0;\r\n }\r\n else {\r\n token.text = truncateText(token.text, remainTruncWidth - paddingH, font, style.ellipsis, { minChar: style.truncateMinChar });\r\n token.width = token.contentWidth = getWidth(token.text, font);\r\n }\r\n }\r\n else {\r\n token.contentWidth = getWidth(token.text, font);\r\n }\r\n }\r\n token.width += paddingH;\r\n lineWidth += token.width;\r\n tokenStyle && (lineHeight = Math.max(lineHeight, token.lineHeight));\r\n }\r\n finishLine(line, lineWidth, lineHeight);\r\n }\r\n contentBlock.outerWidth = contentBlock.width = retrieve2(topWidth, calculatedWidth);\r\n contentBlock.outerHeight = contentBlock.height = retrieve2(topHeight, calculatedHeight);\r\n contentBlock.contentHeight = calculatedHeight;\r\n contentBlock.contentWidth = calculatedWidth;\r\n if (stlPadding) {\r\n contentBlock.outerWidth += stlPadding[1] + stlPadding[3];\r\n contentBlock.outerHeight += stlPadding[0] + stlPadding[2];\r\n }\r\n for (var i = 0; i < pendingList.length; i++) {\r\n var token = pendingList[i];\r\n var percentWidth = token.percentWidth;\r\n token.width = parseInt(percentWidth, 10) / 100 * contentBlock.width;\r\n }\r\n return contentBlock;\r\n }\r\n function pushTokens(block, str, style, wrapInfo, styleName) {\r\n var isEmptyStr = str === '';\r\n var tokenStyle = styleName && style.rich[styleName] || {};\r\n var lines = block.lines;\r\n var font = tokenStyle.font || style.font;\r\n var newLine = false;\r\n var strLines;\r\n var linesWidths;\r\n if (wrapInfo) {\r\n var tokenPadding = tokenStyle.padding;\r\n var tokenPaddingH = tokenPadding ? tokenPadding[1] + tokenPadding[3] : 0;\r\n if (tokenStyle.width != null && tokenStyle.width !== 'auto') {\r\n var outerWidth_1 = parsePercent$1(tokenStyle.width, wrapInfo.width) + tokenPaddingH;\r\n if (lines.length > 0) {\r\n if (outerWidth_1 + wrapInfo.accumWidth > wrapInfo.width) {\r\n strLines = str.split('\\n');\r\n newLine = true;\r\n }\r\n }\r\n wrapInfo.accumWidth = outerWidth_1;\r\n }\r\n else {\r\n var res = wrapText(str, font, wrapInfo.width, wrapInfo.breakAll, wrapInfo.accumWidth);\r\n wrapInfo.accumWidth = res.accumWidth + tokenPaddingH;\r\n linesWidths = res.linesWidths;\r\n strLines = res.lines;\r\n }\r\n }\r\n else {\r\n strLines = str.split('\\n');\r\n }\r\n for (var i = 0; i < strLines.length; i++) {\r\n var text = strLines[i];\r\n var token = new RichTextToken();\r\n token.styleName = styleName;\r\n token.text = text;\r\n token.isLineHolder = !text && !isEmptyStr;\r\n if (typeof tokenStyle.width === 'number') {\r\n token.width = tokenStyle.width;\r\n }\r\n else {\r\n token.width = linesWidths\r\n ? linesWidths[i]\r\n : getWidth(text, font);\r\n }\r\n if (!i && !newLine) {\r\n var tokens = (lines[lines.length - 1] || (lines[0] = new RichTextLine())).tokens;\r\n var tokensLen = tokens.length;\r\n (tokensLen === 1 && tokens[0].isLineHolder)\r\n ? (tokens[0] = token)\r\n : ((text || !tokensLen || isEmptyStr) && tokens.push(token));\r\n }\r\n else {\r\n lines.push(new RichTextLine([token]));\r\n }\r\n }\r\n }\r\n function isLatin(ch) {\r\n var code = ch.charCodeAt(0);\r\n return code >= 0x21 && code <= 0xFF;\r\n }\r\n var breakCharMap = reduce(',&?/;] '.split(''), function (obj, ch) {\r\n obj[ch] = true;\r\n return obj;\r\n }, {});\r\n function isWordBreakChar(ch) {\r\n if (isLatin(ch)) {\r\n if (breakCharMap[ch]) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n return true;\r\n }\r\n function wrapText(text, font, lineWidth, isBreakAll, lastAccumWidth) {\r\n var lines = [];\r\n var linesWidths = [];\r\n var line = '';\r\n var currentWord = '';\r\n var currentWordWidth = 0;\r\n var accumWidth = 0;\r\n for (var i = 0; i < text.length; i++) {\r\n var ch = text.charAt(i);\r\n if (ch === '\\n') {\r\n if (currentWord) {\r\n line += currentWord;\r\n accumWidth += currentWordWidth;\r\n }\r\n lines.push(line);\r\n linesWidths.push(accumWidth);\r\n line = '';\r\n currentWord = '';\r\n currentWordWidth = 0;\r\n accumWidth = 0;\r\n continue;\r\n }\r\n var chWidth = getWidth(ch, font);\r\n var inWord = isBreakAll ? false : !isWordBreakChar(ch);\r\n if (!lines.length\r\n ? lastAccumWidth + accumWidth + chWidth > lineWidth\r\n : accumWidth + chWidth > lineWidth) {\r\n if (!accumWidth) {\r\n if (inWord) {\r\n lines.push(currentWord);\r\n linesWidths.push(currentWordWidth);\r\n currentWord = ch;\r\n currentWordWidth = chWidth;\r\n }\r\n else {\r\n lines.push(ch);\r\n linesWidths.push(chWidth);\r\n }\r\n }\r\n else if (line || currentWord) {\r\n if (inWord) {\r\n if (!line) {\r\n line = currentWord;\r\n currentWord = '';\r\n currentWordWidth = 0;\r\n accumWidth = currentWordWidth;\r\n }\r\n lines.push(line);\r\n linesWidths.push(accumWidth - currentWordWidth);\r\n currentWord += ch;\r\n currentWordWidth += chWidth;\r\n line = '';\r\n accumWidth = currentWordWidth;\r\n }\r\n else {\r\n if (currentWord) {\r\n line += currentWord;\r\n accumWidth += currentWordWidth;\r\n currentWord = '';\r\n currentWordWidth = 0;\r\n }\r\n lines.push(line);\r\n linesWidths.push(accumWidth);\r\n line = ch;\r\n accumWidth = chWidth;\r\n }\r\n }\r\n continue;\r\n }\r\n accumWidth += chWidth;\r\n if (inWord) {\r\n currentWord += ch;\r\n currentWordWidth += chWidth;\r\n }\r\n else {\r\n if (currentWord) {\r\n line += currentWord;\r\n currentWord = '';\r\n currentWordWidth = 0;\r\n }\r\n line += ch;\r\n }\r\n }\r\n if (!lines.length && !line) {\r\n line = text;\r\n currentWord = '';\r\n currentWordWidth = 0;\r\n }\r\n if (currentWord) {\r\n line += currentWord;\r\n }\r\n if (line) {\r\n lines.push(line);\r\n linesWidths.push(accumWidth);\r\n }\r\n if (lines.length === 1) {\r\n accumWidth += lastAccumWidth;\r\n }\r\n return {\r\n accumWidth: accumWidth,\r\n lines: lines,\r\n linesWidths: linesWidths\r\n };\r\n }\r\n function parsePercent$1(value, maxValue) {\r\n if (typeof value === 'string') {\r\n if (value.lastIndexOf('%') >= 0) {\r\n return parseFloat(value) / 100 * maxValue;\r\n }\r\n return parseFloat(value);\r\n }\r\n return value;\r\n }\n\n var DEFAULT_RICH_TEXT_COLOR = {\r\n fill: '#000'\r\n };\r\n var DEFAULT_STROKE_LINE_WIDTH = 2;\r\n var DEFAULT_TEXT_ANIMATION_PROPS = {\r\n style: defaults({\r\n fill: true,\r\n stroke: true,\r\n fillOpacity: true,\r\n strokeOpacity: true,\r\n lineWidth: true,\r\n fontSize: true,\r\n lineHeight: true,\r\n width: true,\r\n height: true,\r\n textShadowColor: true,\r\n textShadowBlur: true,\r\n textShadowOffsetX: true,\r\n textShadowOffsetY: true,\r\n backgroundColor: true,\r\n padding: true,\r\n borderColor: true,\r\n borderWidth: true,\r\n borderRadius: true\r\n }, DEFAULT_COMMON_ANIMATION_PROPS.style)\r\n };\r\n var ZRText = (function (_super) {\r\n __extends(ZRText, _super);\r\n function ZRText(opts) {\r\n var _this = _super.call(this) || this;\r\n _this.type = 'text';\r\n _this._children = [];\r\n _this._defaultStyle = DEFAULT_RICH_TEXT_COLOR;\r\n _this.attr(opts);\r\n return _this;\r\n }\r\n ZRText.prototype.childrenRef = function () {\r\n return this._children;\r\n };\r\n ZRText.prototype.update = function () {\r\n if (this.styleChanged()) {\r\n this._updateSubTexts();\r\n }\r\n for (var i = 0; i < this._children.length; i++) {\r\n var child = this._children[i];\r\n child.zlevel = this.zlevel;\r\n child.z = this.z;\r\n child.z2 = this.z2;\r\n child.culling = this.culling;\r\n child.cursor = this.cursor;\r\n child.invisible = this.invisible;\r\n }\r\n var attachedTransform = this.attachedTransform;\r\n if (attachedTransform) {\r\n attachedTransform.updateTransform();\r\n var m = attachedTransform.transform;\r\n if (m) {\r\n this.transform = this.transform || [];\r\n copy$1(this.transform, m);\r\n }\r\n else {\r\n this.transform = null;\r\n }\r\n }\r\n else {\r\n _super.prototype.update.call(this);\r\n }\r\n };\r\n ZRText.prototype.getComputedTransform = function () {\r\n if (this.__hostTarget) {\r\n this.__hostTarget.getComputedTransform();\r\n this.__hostTarget.updateInnerText(true);\r\n }\r\n return this.attachedTransform ? this.attachedTransform.getComputedTransform()\r\n : _super.prototype.getComputedTransform.call(this);\r\n };\r\n ZRText.prototype._updateSubTexts = function () {\r\n this._childCursor = 0;\r\n normalizeTextStyle(this.style);\r\n this.style.rich\r\n ? this._updateRichTexts()\r\n : this._updatePlainTexts();\r\n this._children.length = this._childCursor;\r\n this.styleUpdated();\r\n };\r\n ZRText.prototype.addSelfToZr = function (zr) {\r\n _super.prototype.addSelfToZr.call(this, zr);\r\n for (var i = 0; i < this._children.length; i++) {\r\n this._children[i].__zr = zr;\r\n }\r\n };\r\n ZRText.prototype.removeSelfFromZr = function (zr) {\r\n _super.prototype.removeSelfFromZr.call(this, zr);\r\n for (var i = 0; i < this._children.length; i++) {\r\n this._children[i].__zr = null;\r\n }\r\n };\r\n ZRText.prototype.getBoundingRect = function () {\r\n if (this.styleChanged()) {\r\n this._updateSubTexts();\r\n }\r\n if (!this._rect) {\r\n var tmpRect = new BoundingRect(0, 0, 0, 0);\r\n var children = this._children;\r\n var tmpMat = [];\r\n var rect = null;\r\n for (var i = 0; i < children.length; i++) {\r\n var child = children[i];\r\n var childRect = child.getBoundingRect();\r\n var transform = child.getLocalTransform(tmpMat);\r\n if (transform) {\r\n tmpRect.copy(childRect);\r\n tmpRect.applyTransform(transform);\r\n rect = rect || tmpRect.clone();\r\n rect.union(tmpRect);\r\n }\r\n else {\r\n rect = rect || childRect.clone();\r\n rect.union(childRect);\r\n }\r\n }\r\n this._rect = rect || tmpRect;\r\n }\r\n return this._rect;\r\n };\r\n ZRText.prototype.setDefaultTextStyle = function (defaultTextStyle) {\r\n this._defaultStyle = defaultTextStyle || DEFAULT_RICH_TEXT_COLOR;\r\n };\r\n ZRText.prototype.setTextContent = function (textContent) {\r\n throw new Error('Can\\'t attach text on another text');\r\n };\r\n ZRText.prototype._mergeStyle = function (targetStyle, sourceStyle) {\r\n if (!sourceStyle) {\r\n return targetStyle;\r\n }\r\n var sourceRich = sourceStyle.rich;\r\n var targetRich = targetStyle.rich || (sourceRich && {});\r\n extend(targetStyle, sourceStyle);\r\n if (sourceRich && targetRich) {\r\n this._mergeRich(targetRich, sourceRich);\r\n targetStyle.rich = targetRich;\r\n }\r\n else if (targetRich) {\r\n targetStyle.rich = targetRich;\r\n }\r\n return targetStyle;\r\n };\r\n ZRText.prototype._mergeRich = function (targetRich, sourceRich) {\r\n var richNames = keys(sourceRich);\r\n for (var i = 0; i < richNames.length; i++) {\r\n var richName = richNames[i];\r\n targetRich[richName] = targetRich[richName] || {};\r\n extend(targetRich[richName], sourceRich[richName]);\r\n }\r\n };\r\n ZRText.prototype.getAnimationStyleProps = function () {\r\n return DEFAULT_TEXT_ANIMATION_PROPS;\r\n };\r\n ZRText.prototype._getOrCreateChild = function (Ctor) {\r\n var child = this._children[this._childCursor];\r\n if (!child || !(child instanceof Ctor)) {\r\n child = new Ctor();\r\n }\r\n this._children[this._childCursor++] = child;\r\n child.__zr = this.__zr;\r\n child.parent = this;\r\n return child;\r\n };\r\n ZRText.prototype._updatePlainTexts = function () {\r\n var style = this.style;\r\n var textFont = style.font || DEFAULT_FONT;\r\n var textPadding = style.padding;\r\n var text = getStyleText(style);\r\n var contentBlock = parsePlainText(text, style);\r\n var needDrawBg = needDrawBackground(style);\r\n var bgColorDrawn = !!(style.backgroundColor);\r\n var outerHeight = contentBlock.outerHeight;\r\n var textLines = contentBlock.lines;\r\n var lineHeight = contentBlock.lineHeight;\r\n var defaultStyle = this._defaultStyle;\r\n var baseX = style.x || 0;\r\n var baseY = style.y || 0;\r\n var textAlign = style.align || defaultStyle.align || 'left';\r\n var verticalAlign = style.verticalAlign || defaultStyle.verticalAlign || 'top';\r\n var textX = baseX;\r\n var textY = adjustTextY(baseY, contentBlock.contentHeight, verticalAlign);\r\n if (needDrawBg || textPadding) {\r\n var outerWidth_1 = contentBlock.width;\r\n textPadding && (outerWidth_1 += textPadding[1] + textPadding[3]);\r\n var boxX = adjustTextX(baseX, outerWidth_1, textAlign);\r\n var boxY = adjustTextY(baseY, outerHeight, verticalAlign);\r\n needDrawBg && this._renderBackground(style, style, boxX, boxY, outerWidth_1, outerHeight);\r\n }\r\n textY += lineHeight / 2;\r\n if (textPadding) {\r\n textX = getTextXForPadding(baseX, textAlign, textPadding);\r\n if (verticalAlign === 'top') {\r\n textY += textPadding[0];\r\n }\r\n else if (verticalAlign === 'bottom') {\r\n textY -= textPadding[2];\r\n }\r\n }\r\n var defaultLineWidth = 0;\r\n var useDefaultFill = false;\r\n var textFill = getFill('fill' in style\r\n ? style.fill\r\n : (useDefaultFill = true, defaultStyle.fill));\r\n var textStroke = getStroke('stroke' in style\r\n ? style.stroke\r\n : (!bgColorDrawn\r\n && (!defaultStyle.autoStroke || useDefaultFill))\r\n ? (defaultLineWidth = DEFAULT_STROKE_LINE_WIDTH, defaultStyle.stroke)\r\n : null);\r\n var hasShadow = style.textShadowBlur > 0;\r\n var fixedBoundingRect = style.width != null\r\n && (style.overflow === 'truncate' || style.overflow === 'break' || style.overflow === 'breakAll');\r\n var calculatedLineHeight = contentBlock.calculatedLineHeight;\r\n for (var i = 0; i < textLines.length; i++) {\r\n var el = this._getOrCreateChild(TSpan);\r\n var subElStyle = el.createStyle();\r\n el.useStyle(subElStyle);\r\n subElStyle.text = textLines[i];\r\n subElStyle.x = textX;\r\n subElStyle.y = textY;\r\n if (textAlign) {\r\n subElStyle.textAlign = textAlign;\r\n }\r\n subElStyle.textBaseline = 'middle';\r\n subElStyle.opacity = style.opacity;\r\n subElStyle.strokeFirst = true;\r\n if (hasShadow) {\r\n subElStyle.shadowBlur = style.textShadowBlur || 0;\r\n subElStyle.shadowColor = style.textShadowColor || 'transparent';\r\n subElStyle.shadowOffsetX = style.textShadowOffsetX || 0;\r\n subElStyle.shadowOffsetY = style.textShadowOffsetY || 0;\r\n }\r\n if (textStroke) {\r\n subElStyle.stroke = textStroke;\r\n subElStyle.lineWidth = style.lineWidth || defaultLineWidth;\r\n subElStyle.lineDash = style.lineDash;\r\n subElStyle.lineDashOffset = style.lineDashOffset || 0;\r\n }\r\n if (textFill) {\r\n subElStyle.fill = textFill;\r\n }\r\n subElStyle.font = textFont;\r\n textY += lineHeight;\r\n if (fixedBoundingRect) {\r\n el.setBoundingRect(new BoundingRect(adjustTextX(subElStyle.x, style.width, subElStyle.textAlign), adjustTextY(subElStyle.y, calculatedLineHeight, subElStyle.textBaseline), style.width, calculatedLineHeight));\r\n }\r\n }\r\n };\r\n ZRText.prototype._updateRichTexts = function () {\r\n var style = this.style;\r\n var text = getStyleText(style);\r\n var contentBlock = parseRichText(text, style);\r\n var contentWidth = contentBlock.width;\r\n var outerWidth = contentBlock.outerWidth;\r\n var outerHeight = contentBlock.outerHeight;\r\n var textPadding = style.padding;\r\n var baseX = style.x || 0;\r\n var baseY = style.y || 0;\r\n var defaultStyle = this._defaultStyle;\r\n var textAlign = style.align || defaultStyle.align;\r\n var verticalAlign = style.verticalAlign || defaultStyle.verticalAlign;\r\n var boxX = adjustTextX(baseX, outerWidth, textAlign);\r\n var boxY = adjustTextY(baseY, outerHeight, verticalAlign);\r\n var xLeft = boxX;\r\n var lineTop = boxY;\r\n if (textPadding) {\r\n xLeft += textPadding[3];\r\n lineTop += textPadding[0];\r\n }\r\n var xRight = xLeft + contentWidth;\r\n if (needDrawBackground(style)) {\r\n this._renderBackground(style, style, boxX, boxY, outerWidth, outerHeight);\r\n }\r\n var bgColorDrawn = !!(style.backgroundColor);\r\n for (var i = 0; i < contentBlock.lines.length; i++) {\r\n var line = contentBlock.lines[i];\r\n var tokens = line.tokens;\r\n var tokenCount = tokens.length;\r\n var lineHeight = line.lineHeight;\r\n var remainedWidth = line.width;\r\n var leftIndex = 0;\r\n var lineXLeft = xLeft;\r\n var lineXRight = xRight;\r\n var rightIndex = tokenCount - 1;\r\n var token = void 0;\r\n while (leftIndex < tokenCount\r\n && (token = tokens[leftIndex], !token.align || token.align === 'left')) {\r\n this._placeToken(token, style, lineHeight, lineTop, lineXLeft, 'left', bgColorDrawn);\r\n remainedWidth -= token.width;\r\n lineXLeft += token.width;\r\n leftIndex++;\r\n }\r\n while (rightIndex >= 0\r\n && (token = tokens[rightIndex], token.align === 'right')) {\r\n this._placeToken(token, style, lineHeight, lineTop, lineXRight, 'right', bgColorDrawn);\r\n remainedWidth -= token.width;\r\n lineXRight -= token.width;\r\n rightIndex--;\r\n }\r\n lineXLeft += (contentWidth - (lineXLeft - xLeft) - (xRight - lineXRight) - remainedWidth) / 2;\r\n while (leftIndex <= rightIndex) {\r\n token = tokens[leftIndex];\r\n this._placeToken(token, style, lineHeight, lineTop, lineXLeft + token.width / 2, 'center', bgColorDrawn);\r\n lineXLeft += token.width;\r\n leftIndex++;\r\n }\r\n lineTop += lineHeight;\r\n }\r\n };\r\n ZRText.prototype._placeToken = function (token, style, lineHeight, lineTop, x, textAlign, parentBgColorDrawn) {\r\n var tokenStyle = style.rich[token.styleName] || {};\r\n tokenStyle.text = token.text;\r\n var verticalAlign = token.verticalAlign;\r\n var y = lineTop + lineHeight / 2;\r\n if (verticalAlign === 'top') {\r\n y = lineTop + token.height / 2;\r\n }\r\n else if (verticalAlign === 'bottom') {\r\n y = lineTop + lineHeight - token.height / 2;\r\n }\r\n var needDrawBg = !token.isLineHolder && needDrawBackground(tokenStyle);\r\n needDrawBg && this._renderBackground(tokenStyle, style, textAlign === 'right'\r\n ? x - token.width\r\n : textAlign === 'center'\r\n ? x - token.width / 2\r\n : x, y - token.height / 2, token.width, token.height);\r\n var bgColorDrawn = !!tokenStyle.backgroundColor;\r\n var textPadding = token.textPadding;\r\n if (textPadding) {\r\n x = getTextXForPadding(x, textAlign, textPadding);\r\n y -= token.height / 2 - textPadding[0] - token.innerHeight / 2;\r\n }\r\n var el = this._getOrCreateChild(TSpan);\r\n var subElStyle = el.createStyle();\r\n el.useStyle(subElStyle);\r\n var defaultStyle = this._defaultStyle;\r\n var useDefaultFill = false;\r\n var defaultLineWidth = 0;\r\n var textFill = getStroke('fill' in tokenStyle ? tokenStyle.fill\r\n : 'fill' in style ? style.fill\r\n : (useDefaultFill = true, defaultStyle.fill));\r\n var textStroke = getStroke('stroke' in tokenStyle ? tokenStyle.stroke\r\n : 'stroke' in style ? style.stroke\r\n : (!bgColorDrawn\r\n && !parentBgColorDrawn\r\n && (!defaultStyle.autoStroke || useDefaultFill)) ? (defaultLineWidth = DEFAULT_STROKE_LINE_WIDTH, defaultStyle.stroke)\r\n : null);\r\n var hasShadow = tokenStyle.textShadowBlur > 0\r\n || style.textShadowBlur > 0;\r\n subElStyle.text = token.text;\r\n subElStyle.x = x;\r\n subElStyle.y = y;\r\n if (hasShadow) {\r\n subElStyle.shadowBlur = tokenStyle.textShadowBlur || style.textShadowBlur || 0;\r\n subElStyle.shadowColor = tokenStyle.textShadowColor || style.textShadowColor || 'transparent';\r\n subElStyle.shadowOffsetX = tokenStyle.textShadowOffsetX || style.textShadowOffsetX || 0;\r\n subElStyle.shadowOffsetY = tokenStyle.textShadowOffsetY || style.textShadowOffsetY || 0;\r\n }\r\n subElStyle.textAlign = textAlign;\r\n subElStyle.textBaseline = 'middle';\r\n subElStyle.font = token.font || DEFAULT_FONT;\r\n subElStyle.opacity = retrieve3(tokenStyle.opacity, style.opacity, 1);\r\n if (textStroke) {\r\n subElStyle.lineWidth = retrieve3(tokenStyle.lineWidth, style.lineWidth, defaultLineWidth);\r\n subElStyle.lineDash = retrieve2(tokenStyle.lineDash, style.lineDash);\r\n subElStyle.lineDashOffset = style.lineDashOffset || 0;\r\n subElStyle.stroke = textStroke;\r\n }\r\n if (textFill) {\r\n subElStyle.fill = textFill;\r\n }\r\n var textWidth = token.contentWidth;\r\n var textHeight = token.contentHeight;\r\n el.setBoundingRect(new BoundingRect(adjustTextX(subElStyle.x, textWidth, subElStyle.textAlign), adjustTextY(subElStyle.y, textHeight, subElStyle.textBaseline), textWidth, textHeight));\r\n };\r\n ZRText.prototype._renderBackground = function (style, topStyle, x, y, width, height) {\r\n var textBackgroundColor = style.backgroundColor;\r\n var textBorderWidth = style.borderWidth;\r\n var textBorderColor = style.borderColor;\r\n var isPlainBg = isString(textBackgroundColor);\r\n var textBorderRadius = style.borderRadius;\r\n var self = this;\r\n var rectEl;\r\n var imgEl;\r\n if (isPlainBg || (textBorderWidth && textBorderColor)) {\r\n rectEl = this._getOrCreateChild(Rect);\r\n rectEl.useStyle(rectEl.createStyle());\r\n rectEl.style.fill = null;\r\n var rectShape = rectEl.shape;\r\n rectShape.x = x;\r\n rectShape.y = y;\r\n rectShape.width = width;\r\n rectShape.height = height;\r\n rectShape.r = textBorderRadius;\r\n rectEl.dirtyShape();\r\n }\r\n if (isPlainBg) {\r\n var rectStyle = rectEl.style;\r\n rectStyle.fill = textBackgroundColor || null;\r\n rectStyle.fillOpacity = retrieve2(style.fillOpacity, 1);\r\n }\r\n else if (textBackgroundColor && textBackgroundColor.image) {\r\n imgEl = this._getOrCreateChild(ZRImage);\r\n imgEl.onload = function () {\r\n self.dirtyStyle();\r\n };\r\n var imgStyle = imgEl.style;\r\n imgStyle.image = textBackgroundColor.image;\r\n imgStyle.x = x;\r\n imgStyle.y = y;\r\n imgStyle.width = width;\r\n imgStyle.height = height;\r\n }\r\n if (textBorderWidth && textBorderColor) {\r\n var rectStyle = rectEl.style;\r\n rectStyle.lineWidth = textBorderWidth;\r\n rectStyle.stroke = textBorderColor;\r\n rectStyle.strokeOpacity = retrieve2(style.strokeOpacity, 1);\r\n rectStyle.lineDash = style.borderDash;\r\n rectStyle.lineDashOffset = style.borderDashOffset || 0;\r\n rectEl.strokeContainThreshold = 0;\r\n if (rectEl.hasFill() && rectEl.hasStroke()) {\r\n rectStyle.strokeFirst = true;\r\n rectStyle.lineWidth *= 2;\r\n }\r\n }\r\n var commonStyle = (rectEl || imgEl).style;\r\n commonStyle.shadowBlur = style.shadowBlur || 0;\r\n commonStyle.shadowColor = style.shadowColor || 'transparent';\r\n commonStyle.shadowOffsetX = style.shadowOffsetX || 0;\r\n commonStyle.shadowOffsetY = style.shadowOffsetY || 0;\r\n commonStyle.opacity = retrieve3(style.opacity, topStyle.opacity, 1);\r\n };\r\n ZRText.makeFont = function (style) {\r\n var font = '';\r\n if (style.fontSize || style.fontFamily || style.fontWeight) {\r\n var fontSize = '';\r\n if (typeof style.fontSize === 'string'\r\n && (style.fontSize.indexOf('px') !== -1\r\n || style.fontSize.indexOf('rem') !== -1\r\n || style.fontSize.indexOf('em') !== -1)) {\r\n fontSize = style.fontSize;\r\n }\r\n else if (!isNaN(+style.fontSize)) {\r\n fontSize = style.fontSize + 'px';\r\n }\r\n else {\r\n fontSize = '12px';\r\n }\r\n font = [\r\n style.fontStyle,\r\n style.fontWeight,\r\n fontSize,\r\n style.fontFamily || 'sans-serif'\r\n ].join(' ');\r\n }\r\n return font && trim(font) || style.textFont || style.font;\r\n };\r\n return ZRText;\r\n }(Displayable));\r\n var VALID_TEXT_ALIGN = { left: true, right: 1, center: 1 };\r\n var VALID_TEXT_VERTICAL_ALIGN = { top: 1, bottom: 1, middle: 1 };\r\n function normalizeTextStyle(style) {\r\n normalizeStyle(style);\r\n each(style.rich, normalizeStyle);\r\n return style;\r\n }\r\n function normalizeStyle(style) {\r\n if (style) {\r\n style.font = ZRText.makeFont(style);\r\n var textAlign = style.align;\r\n textAlign === 'middle' && (textAlign = 'center');\r\n style.align = (textAlign == null || VALID_TEXT_ALIGN[textAlign]) ? textAlign : 'left';\r\n var verticalAlign = style.verticalAlign;\r\n verticalAlign === 'center' && (verticalAlign = 'middle');\r\n style.verticalAlign = (verticalAlign == null || VALID_TEXT_VERTICAL_ALIGN[verticalAlign]) ? verticalAlign : 'top';\r\n var textPadding = style.padding;\r\n if (textPadding) {\r\n style.padding = normalizeCssArray(style.padding);\r\n }\r\n }\r\n }\r\n function getStroke(stroke, lineWidth) {\r\n return (stroke == null || lineWidth <= 0 || stroke === 'transparent' || stroke === 'none')\r\n ? null\r\n : (stroke.image || stroke.colorStops)\r\n ? '#000'\r\n : stroke;\r\n }\r\n function getFill(fill) {\r\n return (fill == null || fill === 'none')\r\n ? null\r\n : (fill.image || fill.colorStops)\r\n ? '#000'\r\n : fill;\r\n }\r\n function getTextXForPadding(x, textAlign, textPadding) {\r\n return textAlign === 'right'\r\n ? (x - textPadding[1])\r\n : textAlign === 'center'\r\n ? (x + textPadding[3] / 2 - textPadding[1] / 2)\r\n : (x + textPadding[3]);\r\n }\r\n function getStyleText(style) {\r\n var text = style.text;\r\n text != null && (text += '');\r\n return text;\r\n }\r\n function needDrawBackground(style) {\r\n return !!(style.backgroundColor\r\n || (style.borderWidth && style.borderColor));\r\n }\n\n var ArcShape = (function () {\r\n function ArcShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.r = 0;\r\n this.startAngle = 0;\r\n this.endAngle = Math.PI * 2;\r\n this.clockwise = true;\r\n }\r\n return ArcShape;\r\n }());\r\n var Arc = (function (_super) {\r\n __extends(Arc, _super);\r\n function Arc(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Arc.prototype.getDefaultStyle = function () {\r\n return {\r\n stroke: '#000',\r\n fill: null\r\n };\r\n };\r\n Arc.prototype.getDefaultShape = function () {\r\n return new ArcShape();\r\n };\r\n Arc.prototype.buildPath = function (ctx, shape) {\r\n var x = shape.cx;\r\n var y = shape.cy;\r\n var r = Math.max(shape.r, 0);\r\n var startAngle = shape.startAngle;\r\n var endAngle = shape.endAngle;\r\n var clockwise = shape.clockwise;\r\n var unitX = Math.cos(startAngle);\r\n var unitY = Math.sin(startAngle);\r\n ctx.moveTo(unitX * r + x, unitY * r + y);\r\n ctx.arc(x, y, r, startAngle, endAngle, !clockwise);\r\n };\r\n return Arc;\r\n }(Path));\r\n Arc.prototype.type = 'arc';\n\n var out = [];\r\n var BezierCurveShape = (function () {\r\n function BezierCurveShape() {\r\n this.x1 = 0;\r\n this.y1 = 0;\r\n this.x2 = 0;\r\n this.y2 = 0;\r\n this.cpx1 = 0;\r\n this.cpy1 = 0;\r\n this.percent = 1;\r\n }\r\n return BezierCurveShape;\r\n }());\r\n function someVectorAt(shape, t, isTangent) {\r\n var cpx2 = shape.cpx2;\r\n var cpy2 = shape.cpy2;\r\n if (cpx2 === null || cpy2 === null) {\r\n return [\r\n (isTangent ? cubicDerivativeAt : cubicAt)(shape.x1, shape.cpx1, shape.cpx2, shape.x2, t),\r\n (isTangent ? cubicDerivativeAt : cubicAt)(shape.y1, shape.cpy1, shape.cpy2, shape.y2, t)\r\n ];\r\n }\r\n else {\r\n return [\r\n (isTangent ? quadraticDerivativeAt : quadraticAt)(shape.x1, shape.cpx1, shape.x2, t),\r\n (isTangent ? quadraticDerivativeAt : quadraticAt)(shape.y1, shape.cpy1, shape.y2, t)\r\n ];\r\n }\r\n }\r\n var BezierCurve = (function (_super) {\r\n __extends(BezierCurve, _super);\r\n function BezierCurve(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n BezierCurve.prototype.getDefaultStyle = function () {\r\n return {\r\n stroke: '#000',\r\n fill: null\r\n };\r\n };\r\n BezierCurve.prototype.getDefaultShape = function () {\r\n return new BezierCurveShape();\r\n };\r\n BezierCurve.prototype.buildPath = function (ctx, shape) {\r\n var x1 = shape.x1;\r\n var y1 = shape.y1;\r\n var x2 = shape.x2;\r\n var y2 = shape.y2;\r\n var cpx1 = shape.cpx1;\r\n var cpy1 = shape.cpy1;\r\n var cpx2 = shape.cpx2;\r\n var cpy2 = shape.cpy2;\r\n var percent = shape.percent;\r\n if (percent === 0) {\r\n return;\r\n }\r\n ctx.moveTo(x1, y1);\r\n if (cpx2 == null || cpy2 == null) {\r\n if (percent < 1) {\r\n quadraticSubdivide(x1, cpx1, x2, percent, out);\r\n cpx1 = out[1];\r\n x2 = out[2];\r\n quadraticSubdivide(y1, cpy1, y2, percent, out);\r\n cpy1 = out[1];\r\n y2 = out[2];\r\n }\r\n ctx.quadraticCurveTo(cpx1, cpy1, x2, y2);\r\n }\r\n else {\r\n if (percent < 1) {\r\n cubicSubdivide(x1, cpx1, cpx2, x2, percent, out);\r\n cpx1 = out[1];\r\n cpx2 = out[2];\r\n x2 = out[3];\r\n cubicSubdivide(y1, cpy1, cpy2, y2, percent, out);\r\n cpy1 = out[1];\r\n cpy2 = out[2];\r\n y2 = out[3];\r\n }\r\n ctx.bezierCurveTo(cpx1, cpy1, cpx2, cpy2, x2, y2);\r\n }\r\n };\r\n BezierCurve.prototype.pointAt = function (t) {\r\n return someVectorAt(this.shape, t, false);\r\n };\r\n BezierCurve.prototype.tangentAt = function (t) {\r\n var p = someVectorAt(this.shape, t, true);\r\n return normalize(p, p);\r\n };\r\n return BezierCurve;\r\n }(Path));\r\n BezierCurve.prototype.type = 'bezier-curve';\n\n var DropletShape = (function () {\r\n function DropletShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.width = 0;\r\n this.height = 0;\r\n }\r\n return DropletShape;\r\n }());\r\n var Droplet = (function (_super) {\r\n __extends(Droplet, _super);\r\n function Droplet(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Droplet.prototype.getDefaultShape = function () {\r\n return new DropletShape();\r\n };\r\n Droplet.prototype.buildPath = function (ctx, shape) {\r\n var x = shape.cx;\r\n var y = shape.cy;\r\n var a = shape.width;\r\n var b = shape.height;\r\n ctx.moveTo(x, y + a);\r\n ctx.bezierCurveTo(x + a, y + a, x + a * 3 / 2, y - a / 3, x, y - b);\r\n ctx.bezierCurveTo(x - a * 3 / 2, y - a / 3, x - a, y + a, x, y + a);\r\n ctx.closePath();\r\n };\r\n return Droplet;\r\n }(Path));\r\n Droplet.prototype.type = 'droplet';\n\n var HeartShape = (function () {\r\n function HeartShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.width = 0;\r\n this.height = 0;\r\n }\r\n return HeartShape;\r\n }());\r\n var Heart = (function (_super) {\r\n __extends(Heart, _super);\r\n function Heart(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Heart.prototype.getDefaultShape = function () {\r\n return new HeartShape();\r\n };\r\n Heart.prototype.buildPath = function (ctx, shape) {\r\n var x = shape.cx;\r\n var y = shape.cy;\r\n var a = shape.width;\r\n var b = shape.height;\r\n ctx.moveTo(x, y);\r\n ctx.bezierCurveTo(x + a / 2, y - b * 2 / 3, x + a * 2, y + b / 3, x, y + b);\r\n ctx.bezierCurveTo(x - a * 2, y + b / 3, x - a / 2, y - b * 2 / 3, x, y);\r\n };\r\n return Heart;\r\n }(Path));\r\n Heart.prototype.type = 'heart';\n\n var PI$3 = Math.PI;\r\n var sin = Math.sin;\r\n var cos = Math.cos;\r\n var IsogonShape = (function () {\r\n function IsogonShape() {\r\n this.x = 0;\r\n this.y = 0;\r\n this.r = 0;\r\n this.n = 0;\r\n }\r\n return IsogonShape;\r\n }());\r\n var Isogon = (function (_super) {\r\n __extends(Isogon, _super);\r\n function Isogon(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Isogon.prototype.getDefaultShape = function () {\r\n return new IsogonShape();\r\n };\r\n Isogon.prototype.buildPath = function (ctx, shape) {\r\n var n = shape.n;\r\n if (!n || n < 2) {\r\n return;\r\n }\r\n var x = shape.x;\r\n var y = shape.y;\r\n var r = shape.r;\r\n var dStep = 2 * PI$3 / n;\r\n var deg = -PI$3 / 2;\r\n ctx.moveTo(x + r * cos(deg), y + r * sin(deg));\r\n for (var i = 0, end = n - 1; i < end; i++) {\r\n deg += dStep;\r\n ctx.lineTo(x + r * cos(deg), y + r * sin(deg));\r\n }\r\n ctx.closePath();\r\n return;\r\n };\r\n return Isogon;\r\n }(Path));\r\n Isogon.prototype.type = 'isogon';\n\n var RingShape = (function () {\r\n function RingShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.r = 0;\r\n this.r0 = 0;\r\n }\r\n return RingShape;\r\n }());\r\n var Ring = (function (_super) {\r\n __extends(Ring, _super);\r\n function Ring(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Ring.prototype.getDefaultShape = function () {\r\n return new RingShape();\r\n };\r\n Ring.prototype.buildPath = function (ctx, shape) {\r\n var x = shape.cx;\r\n var y = shape.cy;\r\n var PI2 = Math.PI * 2;\r\n ctx.moveTo(x + shape.r, y);\r\n ctx.arc(x, y, shape.r, 0, PI2, false);\r\n ctx.moveTo(x + shape.r0, y);\r\n ctx.arc(x, y, shape.r0, 0, PI2, true);\r\n };\r\n return Ring;\r\n }(Path));\r\n Ring.prototype.type = 'ring';\n\n var sin$1 = Math.sin;\r\n var cos$1 = Math.cos;\r\n var radian = Math.PI / 180;\r\n var RoseShape = (function () {\r\n function RoseShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.r = [];\r\n this.k = 0;\r\n this.n = 1;\r\n }\r\n return RoseShape;\r\n }());\r\n var Rose = (function (_super) {\r\n __extends(Rose, _super);\r\n function Rose(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Rose.prototype.getDefaultStyle = function () {\r\n return {\r\n stroke: '#000',\r\n fill: null\r\n };\r\n };\r\n Rose.prototype.getDefaultShape = function () {\r\n return new RoseShape();\r\n };\r\n Rose.prototype.buildPath = function (ctx, shape) {\r\n var R = shape.r;\r\n var k = shape.k;\r\n var n = shape.n;\r\n var x0 = shape.cx;\r\n var y0 = shape.cy;\r\n var x;\r\n var y;\r\n var r;\r\n ctx.moveTo(x0, y0);\r\n for (var i = 0, len = R.length; i < len; i++) {\r\n r = R[i];\r\n for (var j = 0; j <= 360 * n; j++) {\r\n x = r\r\n * sin$1(k / n * j % 360 * radian)\r\n * cos$1(j * radian)\r\n + x0;\r\n y = r\r\n * sin$1(k / n * j % 360 * radian)\r\n * sin$1(j * radian)\r\n + y0;\r\n ctx.lineTo(x, y);\r\n }\r\n }\r\n };\r\n return Rose;\r\n }(Path));\r\n Rose.prototype.type = 'rose';\n\n var PI$4 = Math.PI;\r\n var cos$2 = Math.cos;\r\n var sin$2 = Math.sin;\r\n var StarShape = (function () {\r\n function StarShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.n = 3;\r\n this.r = 0;\r\n }\r\n return StarShape;\r\n }());\r\n var Star = (function (_super) {\r\n __extends(Star, _super);\r\n function Star(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Star.prototype.getDefaultShape = function () {\r\n return new StarShape();\r\n };\r\n Star.prototype.buildPath = function (ctx, shape) {\r\n var n = shape.n;\r\n if (!n || n < 2) {\r\n return;\r\n }\r\n var x = shape.cx;\r\n var y = shape.cy;\r\n var r = shape.r;\r\n var r0 = shape.r0;\r\n if (r0 == null) {\r\n r0 = n > 4\r\n ? r * cos$2(2 * PI$4 / n) / cos$2(PI$4 / n)\r\n : r / 3;\r\n }\r\n var dStep = PI$4 / n;\r\n var deg = -PI$4 / 2;\r\n var xStart = x + r * cos$2(deg);\r\n var yStart = y + r * sin$2(deg);\r\n deg += dStep;\r\n ctx.moveTo(xStart, yStart);\r\n for (var i = 0, end = n * 2 - 1, ri = void 0; i < end; i++) {\r\n ri = i % 2 === 0 ? r0 : r;\r\n ctx.lineTo(x + ri * cos$2(deg), y + ri * sin$2(deg));\r\n deg += dStep;\r\n }\r\n ctx.closePath();\r\n };\r\n return Star;\r\n }(Path));\r\n Star.prototype.type = 'star';\n\n var cos$3 = Math.cos;\r\n var sin$3 = Math.sin;\r\n var TrochoidShape = (function () {\r\n function TrochoidShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.r = 0;\r\n this.r0 = 0;\r\n this.d = 0;\r\n this.location = 'out';\r\n }\r\n return TrochoidShape;\r\n }());\r\n var Trochoid = (function (_super) {\r\n __extends(Trochoid, _super);\r\n function Trochoid(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n Trochoid.prototype.getDefaultStyle = function () {\r\n return {\r\n stroke: '#000',\r\n fill: null\r\n };\r\n };\r\n Trochoid.prototype.getDefaultShape = function () {\r\n return new TrochoidShape();\r\n };\r\n Trochoid.prototype.buildPath = function (ctx, shape) {\r\n var R = shape.r;\r\n var r = shape.r0;\r\n var d = shape.d;\r\n var offsetX = shape.cx;\r\n var offsetY = shape.cy;\r\n var delta = shape.location === 'out' ? 1 : -1;\r\n var x1;\r\n var y1;\r\n var x2;\r\n var y2;\r\n if (shape.location && R <= r) {\r\n return;\r\n }\r\n var num = 0;\r\n var i = 1;\r\n var theta;\r\n x1 = (R + delta * r) * cos$3(0)\r\n - delta * d * cos$3(0) + offsetX;\r\n y1 = (R + delta * r) * sin$3(0)\r\n - d * sin$3(0) + offsetY;\r\n ctx.moveTo(x1, y1);\r\n do {\r\n num++;\r\n } while ((r * num) % (R + delta * r) !== 0);\r\n do {\r\n theta = Math.PI / 180 * i;\r\n x2 = (R + delta * r) * cos$3(theta)\r\n - delta * d * cos$3((R / r + delta) * theta)\r\n + offsetX;\r\n y2 = (R + delta * r) * sin$3(theta)\r\n - d * sin$3((R / r + delta) * theta)\r\n + offsetY;\r\n ctx.lineTo(x2, y2);\r\n i++;\r\n } while (i <= (r * num) / (R + delta * r) * 360);\r\n };\r\n return Trochoid;\r\n }(Path));\r\n Trochoid.prototype.type = 'trochoid';\n\n var RadialGradient = (function (_super) {\r\n __extends(RadialGradient, _super);\r\n function RadialGradient(x, y, r, colorStops, globalCoord) {\r\n var _this = _super.call(this, colorStops) || this;\r\n _this.x = x == null ? 0.5 : x;\r\n _this.y = y == null ? 0.5 : y;\r\n _this.r = r == null ? 0.5 : r;\r\n _this.type = 'radial';\r\n _this.global = globalCoord || false;\r\n return _this;\r\n }\r\n return RadialGradient;\r\n }(Gradient));\n\n var extent = [0, 0];\r\n var extent2 = [0, 0];\r\n var minTv$1 = new Point();\r\n var maxTv$1 = new Point();\r\n var OrientedBoundingRect = (function () {\r\n function OrientedBoundingRect(rect, transform) {\r\n this._corners = [];\r\n this._axes = [];\r\n this._origin = [0, 0];\r\n for (var i = 0; i < 4; i++) {\r\n this._corners[i] = new Point();\r\n }\r\n for (var i = 0; i < 2; i++) {\r\n this._axes[i] = new Point();\r\n }\r\n if (rect) {\r\n this.fromBoundingRect(rect, transform);\r\n }\r\n }\r\n OrientedBoundingRect.prototype.fromBoundingRect = function (rect, transform) {\r\n var corners = this._corners;\r\n var axes = this._axes;\r\n var x = rect.x;\r\n var y = rect.y;\r\n var x2 = x + rect.width;\r\n var y2 = y + rect.height;\r\n corners[0].set(x, y);\r\n corners[1].set(x2, y);\r\n corners[2].set(x2, y2);\r\n corners[3].set(x, y2);\r\n if (transform) {\r\n for (var i = 0; i < 4; i++) {\r\n corners[i].transform(transform);\r\n }\r\n }\r\n Point.sub(axes[0], corners[1], corners[0]);\r\n Point.sub(axes[1], corners[3], corners[0]);\r\n axes[0].normalize();\r\n axes[1].normalize();\r\n for (var i = 0; i < 2; i++) {\r\n this._origin[i] = axes[i].dot(corners[0]);\r\n }\r\n };\r\n OrientedBoundingRect.prototype.intersect = function (other, mtv) {\r\n var overlapped = true;\r\n var noMtv = !mtv;\r\n minTv$1.set(Infinity, Infinity);\r\n maxTv$1.set(0, 0);\r\n if (!this._intersectCheckOneSide(this, other, minTv$1, maxTv$1, noMtv, 1)) {\r\n overlapped = false;\r\n if (noMtv) {\r\n return overlapped;\r\n }\r\n }\r\n if (!this._intersectCheckOneSide(other, this, minTv$1, maxTv$1, noMtv, -1)) {\r\n overlapped = false;\r\n if (noMtv) {\r\n return overlapped;\r\n }\r\n }\r\n if (!noMtv) {\r\n Point.copy(mtv, overlapped ? minTv$1 : maxTv$1);\r\n }\r\n return overlapped;\r\n };\r\n OrientedBoundingRect.prototype._intersectCheckOneSide = function (self, other, minTv, maxTv, noMtv, inverse) {\r\n var overlapped = true;\r\n for (var i = 0; i < 2; i++) {\r\n var axis = this._axes[i];\r\n this._getProjMinMaxOnAxis(i, self._corners, extent);\r\n this._getProjMinMaxOnAxis(i, other._corners, extent2);\r\n if (extent[1] < extent2[0] || extent[0] > extent2[1]) {\r\n overlapped = false;\r\n if (noMtv) {\r\n return overlapped;\r\n }\r\n var dist0 = Math.abs(extent2[0] - extent[1]);\r\n var dist1 = Math.abs(extent[0] - extent2[1]);\r\n if (Math.min(dist0, dist1) > maxTv.len()) {\r\n if (dist0 < dist1) {\r\n Point.scale(maxTv, axis, -dist0 * inverse);\r\n }\r\n else {\r\n Point.scale(maxTv, axis, dist1 * inverse);\r\n }\r\n }\r\n }\r\n else if (minTv) {\r\n var dist0 = Math.abs(extent2[0] - extent[1]);\r\n var dist1 = Math.abs(extent[0] - extent2[1]);\r\n if (Math.min(dist0, dist1) < minTv.len()) {\r\n if (dist0 < dist1) {\r\n Point.scale(minTv, axis, dist0 * inverse);\r\n }\r\n else {\r\n Point.scale(minTv, axis, -dist1 * inverse);\r\n }\r\n }\r\n }\r\n }\r\n return overlapped;\r\n };\r\n OrientedBoundingRect.prototype._getProjMinMaxOnAxis = function (dim, corners, out) {\r\n var axis = this._axes[dim];\r\n var origin = this._origin;\r\n var proj = corners[0].dot(axis) + origin[dim];\r\n var min = proj;\r\n var max = proj;\r\n for (var i = 1; i < corners.length; i++) {\r\n var proj_1 = corners[i].dot(axis) + origin[dim];\r\n min = Math.min(proj_1, min);\r\n max = Math.max(proj_1, max);\r\n }\r\n out[0] = min;\r\n out[1] = max;\r\n };\r\n return OrientedBoundingRect;\r\n }());\n\n /*!\r\n * ZRender, a high performance 2d drawing library.\r\n *\r\n * Copyright (c) 2013, Baidu Inc.\r\n * All rights reserved.\r\n *\r\n * LICENSE\r\n * https://github.com/ecomfe/zrender/blob/master/LICENSE.txt\r\n */\r\n var useVML = !env.canvasSupported;\r\n var painterCtors = {};\r\n var instances = {};\r\n function delInstance(id) {\r\n delete instances[id];\r\n }\r\n function isDarkMode(backgroundColor) {\r\n if (!backgroundColor) {\r\n return false;\r\n }\r\n if (typeof backgroundColor === 'string') {\r\n return lum(backgroundColor, 1) < DARK_MODE_THRESHOLD;\r\n }\r\n else if (backgroundColor.colorStops) {\r\n var colorStops = backgroundColor.colorStops;\r\n var totalLum = 0;\r\n var len = colorStops.length;\r\n for (var i = 0; i < len; i++) {\r\n totalLum += lum(colorStops[i].color, 1);\r\n }\r\n totalLum /= len;\r\n return totalLum < DARK_MODE_THRESHOLD;\r\n }\r\n return false;\r\n }\r\n var ZRender = (function () {\r\n function ZRender(id, dom, opts) {\r\n var _this = this;\r\n this._sleepAfterStill = 10;\r\n this._stillFrameAccum = 0;\r\n this._needsRefresh = true;\r\n this._needsRefreshHover = true;\r\n this._darkMode = false;\r\n opts = opts || {};\r\n this.dom = dom;\r\n this.id = id;\r\n var storage = new Storage();\r\n var rendererType = opts.renderer;\r\n if (useVML) {\r\n if (!painterCtors.vml) {\r\n throw new Error('You need to require \\'zrender/vml/vml\\' to support IE8');\r\n }\r\n rendererType = 'vml';\r\n }\r\n else if (!rendererType) {\r\n rendererType = 'canvas';\r\n }\r\n if (!painterCtors[rendererType]) {\r\n throw new Error(\"Renderer '\" + rendererType + \"' is not imported. Please import it first.\");\r\n }\r\n opts.useDirtyRect = opts.useDirtyRect == null\r\n ? false\r\n : opts.useDirtyRect;\r\n var painter = new painterCtors[rendererType](dom, storage, opts, id);\r\n this.storage = storage;\r\n this.painter = painter;\r\n var handerProxy = (!env.node && !env.worker)\r\n ? new HandlerDomProxy(painter.getViewportRoot(), painter.root)\r\n : null;\r\n this.handler = new Handler(storage, painter, handerProxy, painter.root);\r\n this.animation = new Animation({\r\n stage: {\r\n update: function () { return _this._flush(true); }\r\n }\r\n });\r\n this.animation.start();\r\n }\r\n ZRender.prototype.add = function (el) {\r\n if (!el) {\r\n return;\r\n }\r\n this.storage.addRoot(el);\r\n el.addSelfToZr(this);\r\n this.refresh();\r\n };\r\n ZRender.prototype.remove = function (el) {\r\n if (!el) {\r\n return;\r\n }\r\n this.storage.delRoot(el);\r\n el.removeSelfFromZr(this);\r\n this.refresh();\r\n };\r\n ZRender.prototype.configLayer = function (zLevel, config) {\r\n if (this.painter.configLayer) {\r\n this.painter.configLayer(zLevel, config);\r\n }\r\n this.refresh();\r\n };\r\n ZRender.prototype.setBackgroundColor = function (backgroundColor) {\r\n if (this.painter.setBackgroundColor) {\r\n this.painter.setBackgroundColor(backgroundColor);\r\n }\r\n this.refresh();\r\n this._backgroundColor = backgroundColor;\r\n this._darkMode = isDarkMode(backgroundColor);\r\n };\r\n ZRender.prototype.getBackgroundColor = function () {\r\n return this._backgroundColor;\r\n };\r\n ZRender.prototype.setDarkMode = function (darkMode) {\r\n this._darkMode = darkMode;\r\n };\r\n ZRender.prototype.isDarkMode = function () {\r\n return this._darkMode;\r\n };\r\n ZRender.prototype.refreshImmediately = function (fromInside) {\r\n if (!fromInside) {\r\n this.animation.update(true);\r\n }\r\n this._needsRefresh = false;\r\n this.painter.refresh();\r\n this._needsRefresh = false;\r\n };\r\n ZRender.prototype.refresh = function () {\r\n this._needsRefresh = true;\r\n this.animation.start();\r\n };\r\n ZRender.prototype.flush = function () {\r\n this._flush(false);\r\n };\r\n ZRender.prototype._flush = function (fromInside) {\r\n var triggerRendered;\r\n var start = new Date().getTime();\r\n if (this._needsRefresh) {\r\n triggerRendered = true;\r\n this.refreshImmediately(fromInside);\r\n }\r\n if (this._needsRefreshHover) {\r\n triggerRendered = true;\r\n this.refreshHoverImmediately();\r\n }\r\n var end = new Date().getTime();\r\n if (triggerRendered) {\r\n this._stillFrameAccum = 0;\r\n this.trigger('rendered', {\r\n elapsedTime: end - start\r\n });\r\n }\r\n else if (this._sleepAfterStill > 0) {\r\n this._stillFrameAccum++;\r\n if (this._stillFrameAccum > this._sleepAfterStill) {\r\n this.animation.stop();\r\n }\r\n }\r\n };\r\n ZRender.prototype.setSleepAfterStill = function (stillFramesCount) {\r\n this._sleepAfterStill = stillFramesCount;\r\n };\r\n ZRender.prototype.wakeUp = function () {\r\n this.animation.start();\r\n this._stillFrameAccum = 0;\r\n };\r\n ZRender.prototype.addHover = function (el) {\r\n };\r\n ZRender.prototype.removeHover = function (el) {\r\n };\r\n ZRender.prototype.clearHover = function () {\r\n };\r\n ZRender.prototype.refreshHover = function () {\r\n this._needsRefreshHover = true;\r\n };\r\n ZRender.prototype.refreshHoverImmediately = function () {\r\n this._needsRefreshHover = false;\r\n if (this.painter.refreshHover && this.painter.getType() === 'canvas') {\r\n this.painter.refreshHover();\r\n }\r\n };\r\n ZRender.prototype.resize = function (opts) {\r\n opts = opts || {};\r\n this.painter.resize(opts.width, opts.height);\r\n this.handler.resize();\r\n };\r\n ZRender.prototype.clearAnimation = function () {\r\n this.animation.clear();\r\n };\r\n ZRender.prototype.getWidth = function () {\r\n return this.painter.getWidth();\r\n };\r\n ZRender.prototype.getHeight = function () {\r\n return this.painter.getHeight();\r\n };\r\n ZRender.prototype.pathToImage = function (e, dpr) {\r\n if (this.painter.pathToImage) {\r\n return this.painter.pathToImage(e, dpr);\r\n }\r\n };\r\n ZRender.prototype.setCursorStyle = function (cursorStyle) {\r\n this.handler.setCursorStyle(cursorStyle);\r\n };\r\n ZRender.prototype.findHover = function (x, y) {\r\n return this.handler.findHover(x, y);\r\n };\r\n ZRender.prototype.on = function (eventName, eventHandler, context) {\r\n this.handler.on(eventName, eventHandler, context);\r\n return this;\r\n };\r\n ZRender.prototype.off = function (eventName, eventHandler) {\r\n this.handler.off(eventName, eventHandler);\r\n };\r\n ZRender.prototype.trigger = function (eventName, event) {\r\n this.handler.trigger(eventName, event);\r\n };\r\n ZRender.prototype.clear = function () {\r\n var roots = this.storage.getRoots();\r\n for (var i = 0; i < roots.length; i++) {\r\n if (roots[i] instanceof Group) {\r\n roots[i].removeSelfFromZr(this);\r\n }\r\n }\r\n this.storage.delAllRoots();\r\n this.painter.clear();\r\n };\r\n ZRender.prototype.dispose = function () {\r\n this.animation.stop();\r\n this.clear();\r\n this.storage.dispose();\r\n this.painter.dispose();\r\n this.handler.dispose();\r\n this.animation =\r\n this.storage =\r\n this.painter =\r\n this.handler = null;\r\n delInstance(this.id);\r\n };\r\n return ZRender;\r\n }());\r\n function init(dom, opts) {\r\n var zr = new ZRender(guid(), dom, opts);\r\n instances[zr.id] = zr;\r\n return zr;\r\n }\r\n function dispose(zr) {\r\n zr.dispose();\r\n }\r\n function disposeAll() {\r\n for (var key in instances) {\r\n if (instances.hasOwnProperty(key)) {\r\n instances[key].dispose();\r\n }\r\n }\r\n instances = {};\r\n }\r\n function getInstance(id) {\r\n return instances[id];\r\n }\r\n function registerPainter(name, Ctor) {\r\n painterCtors[name] = Ctor;\r\n }\r\n var version = '5.0.1';\n\n var zrender = /*#__PURE__*/Object.freeze({\n __proto__: null,\n init: init,\n dispose: dispose,\n disposeAll: disposeAll,\n getInstance: getInstance,\n registerPainter: registerPainter,\n version: version\n });\n\n var RADIAN_EPSILON = 1e-4;\r\n function _trim(str) {\r\n return str.replace(/^\\s+|\\s+$/g, '');\r\n }\r\n function linearMap(val, domain, range, clamp) {\r\n var subDomain = domain[1] - domain[0];\r\n var subRange = range[1] - range[0];\r\n if (subDomain === 0) {\r\n return subRange === 0\r\n ? range[0]\r\n : (range[0] + range[1]) / 2;\r\n }\r\n if (clamp) {\r\n if (subDomain > 0) {\r\n if (val <= domain[0]) {\r\n return range[0];\r\n }\r\n else if (val >= domain[1]) {\r\n return range[1];\r\n }\r\n }\r\n else {\r\n if (val >= domain[0]) {\r\n return range[0];\r\n }\r\n else if (val <= domain[1]) {\r\n return range[1];\r\n }\r\n }\r\n }\r\n else {\r\n if (val === domain[0]) {\r\n return range[0];\r\n }\r\n if (val === domain[1]) {\r\n return range[1];\r\n }\r\n }\r\n return (val - domain[0]) / subDomain * subRange + range[0];\r\n }\r\n function parsePercent$2(percent, all) {\r\n switch (percent) {\r\n case 'center':\r\n case 'middle':\r\n percent = '50%';\r\n break;\r\n case 'left':\r\n case 'top':\r\n percent = '0%';\r\n break;\r\n case 'right':\r\n case 'bottom':\r\n percent = '100%';\r\n break;\r\n }\r\n if (typeof percent === 'string') {\r\n if (_trim(percent).match(/%$/)) {\r\n return parseFloat(percent) / 100 * all;\r\n }\r\n return parseFloat(percent);\r\n }\r\n return percent == null ? NaN : +percent;\r\n }\r\n function round$1(x, precision, returnStr) {\r\n if (precision == null) {\r\n precision = 10;\r\n }\r\n precision = Math.min(Math.max(0, precision), 20);\r\n x = (+x).toFixed(precision);\r\n return (returnStr ? x : +x);\r\n }\r\n function asc(arr) {\r\n arr.sort(function (a, b) {\r\n return a - b;\r\n });\r\n return arr;\r\n }\r\n function getPrecision(val) {\r\n val = +val;\r\n if (isNaN(val)) {\r\n return 0;\r\n }\r\n var e = 1;\r\n var count = 0;\r\n while (Math.round(val * e) / e !== val) {\r\n e *= 10;\r\n count++;\r\n }\r\n return count;\r\n }\r\n function getPrecisionSafe(val) {\r\n var str = val.toString();\r\n var eIndex = str.indexOf('e');\r\n if (eIndex > 0) {\r\n var precision = +str.slice(eIndex + 1);\r\n return precision < 0 ? -precision : 0;\r\n }\r\n else {\r\n var dotIndex = str.indexOf('.');\r\n return dotIndex < 0 ? 0 : str.length - 1 - dotIndex;\r\n }\r\n }\r\n function getPixelPrecision(dataExtent, pixelExtent) {\r\n var log = Math.log;\r\n var LN10 = Math.LN10;\r\n var dataQuantity = Math.floor(log(dataExtent[1] - dataExtent[0]) / LN10);\r\n var sizeQuantity = Math.round(log(Math.abs(pixelExtent[1] - pixelExtent[0])) / LN10);\r\n var precision = Math.min(Math.max(-dataQuantity + sizeQuantity, 0), 20);\r\n return !isFinite(precision) ? 20 : precision;\r\n }\r\n function getPercentWithPrecision(valueList, idx, precision) {\r\n if (!valueList[idx]) {\r\n return 0;\r\n }\r\n var sum = reduce(valueList, function (acc, val) {\r\n return acc + (isNaN(val) ? 0 : val);\r\n }, 0);\r\n if (sum === 0) {\r\n return 0;\r\n }\r\n var digits = Math.pow(10, precision);\r\n var votesPerQuota = map(valueList, function (val) {\r\n return (isNaN(val) ? 0 : val) / sum * digits * 100;\r\n });\r\n var targetSeats = digits * 100;\r\n var seats = map(votesPerQuota, function (votes) {\r\n return Math.floor(votes);\r\n });\r\n var currentSum = reduce(seats, function (acc, val) {\r\n return acc + val;\r\n }, 0);\r\n var remainder = map(votesPerQuota, function (votes, idx) {\r\n return votes - seats[idx];\r\n });\r\n while (currentSum < targetSeats) {\r\n var max = Number.NEGATIVE_INFINITY;\r\n var maxId = null;\r\n for (var i = 0, len = remainder.length; i < len; ++i) {\r\n if (remainder[i] > max) {\r\n max = remainder[i];\r\n maxId = i;\r\n }\r\n }\r\n ++seats[maxId];\r\n remainder[maxId] = 0;\r\n ++currentSum;\r\n }\r\n return seats[idx] / digits;\r\n }\r\n var MAX_SAFE_INTEGER = 9007199254740991;\r\n function remRadian(radian) {\r\n var pi2 = Math.PI * 2;\r\n return (radian % pi2 + pi2) % pi2;\r\n }\r\n function isRadianAroundZero(val) {\r\n return val > -RADIAN_EPSILON && val < RADIAN_EPSILON;\r\n }\r\n var TIME_REG = /^(?:(\\d{4})(?:[-\\/](\\d{1,2})(?:[-\\/](\\d{1,2})(?:[T ](\\d{1,2})(?::(\\d{1,2})(?::(\\d{1,2})(?:[.,](\\d+))?)?)?(Z|[\\+\\-]\\d\\d:?\\d\\d)?)?)?)?)?$/;\r\n function parseDate(value) {\r\n if (value instanceof Date) {\r\n return value;\r\n }\r\n else if (typeof value === 'string') {\r\n var match = TIME_REG.exec(value);\r\n if (!match) {\r\n return new Date(NaN);\r\n }\r\n if (!match[8]) {\r\n return new Date(+match[1], +(match[2] || 1) - 1, +match[3] || 1, +match[4] || 0, +(match[5] || 0), +match[6] || 0, +match[7] || 0);\r\n }\r\n else {\r\n var hour = +match[4] || 0;\r\n if (match[8].toUpperCase() !== 'Z') {\r\n hour -= +match[8].slice(0, 3);\r\n }\r\n return new Date(Date.UTC(+match[1], +(match[2] || 1) - 1, +match[3] || 1, hour, +(match[5] || 0), +match[6] || 0, +match[7] || 0));\r\n }\r\n }\r\n else if (value == null) {\r\n return new Date(NaN);\r\n }\r\n return new Date(Math.round(value));\r\n }\r\n function quantity(val) {\r\n return Math.pow(10, quantityExponent(val));\r\n }\r\n function quantityExponent(val) {\r\n if (val === 0) {\r\n return 0;\r\n }\r\n var exp = Math.floor(Math.log(val) / Math.LN10);\r\n if (val / Math.pow(10, exp) >= 10) {\r\n exp++;\r\n }\r\n return exp;\r\n }\r\n function nice(val, round) {\r\n var exponent = quantityExponent(val);\r\n var exp10 = Math.pow(10, exponent);\r\n var f = val / exp10;\r\n var nf;\r\n if (round) {\r\n if (f < 1.5) {\r\n nf = 1;\r\n }\r\n else if (f < 2.5) {\r\n nf = 2;\r\n }\r\n else if (f < 4) {\r\n nf = 3;\r\n }\r\n else if (f < 7) {\r\n nf = 5;\r\n }\r\n else {\r\n nf = 10;\r\n }\r\n }\r\n else {\r\n if (f < 1) {\r\n nf = 1;\r\n }\r\n else if (f < 2) {\r\n nf = 2;\r\n }\r\n else if (f < 3) {\r\n nf = 3;\r\n }\r\n else if (f < 5) {\r\n nf = 5;\r\n }\r\n else {\r\n nf = 10;\r\n }\r\n }\r\n val = nf * exp10;\r\n return exponent >= -20 ? +val.toFixed(exponent < 0 ? -exponent : 0) : val;\r\n }\r\n function quantile(ascArr, p) {\r\n var H = (ascArr.length - 1) * p + 1;\r\n var h = Math.floor(H);\r\n var v = +ascArr[h - 1];\r\n var e = H - h;\r\n return e ? v + e * (ascArr[h] - v) : v;\r\n }\r\n function reformIntervals(list) {\r\n list.sort(function (a, b) {\r\n return littleThan(a, b, 0) ? -1 : 1;\r\n });\r\n var curr = -Infinity;\r\n var currClose = 1;\r\n for (var i = 0; i < list.length;) {\r\n var interval = list[i].interval;\r\n var close_1 = list[i].close;\r\n for (var lg = 0; lg < 2; lg++) {\r\n if (interval[lg] <= curr) {\r\n interval[lg] = curr;\r\n close_1[lg] = (!lg ? 1 - currClose : 1);\r\n }\r\n curr = interval[lg];\r\n currClose = close_1[lg];\r\n }\r\n if (interval[0] === interval[1] && close_1[0] * close_1[1] !== 1) {\r\n list.splice(i, 1);\r\n }\r\n else {\r\n i++;\r\n }\r\n }\r\n return list;\r\n function littleThan(a, b, lg) {\r\n return a.interval[lg] < b.interval[lg]\r\n || (a.interval[lg] === b.interval[lg]\r\n && ((a.close[lg] - b.close[lg] === (!lg ? 1 : -1))\r\n || (!lg && littleThan(a, b, 1))));\r\n }\r\n }\r\n function numericToNumber(val) {\r\n var valFloat = parseFloat(val);\r\n return (valFloat == val\r\n && (valFloat !== 0 || typeof val !== 'string' || val.indexOf('x') <= 0)) ? valFloat : NaN;\r\n }\r\n function isNumeric(val) {\r\n return !isNaN(numericToNumber(val));\r\n }\r\n function getRandomIdBase() {\r\n return Math.round(Math.random() * 9);\r\n }\r\n function getGreatestCommonDividor(a, b) {\r\n if (b === 0) {\r\n return a;\r\n }\r\n return getGreatestCommonDividor(b, a % b);\r\n }\r\n function getLeastCommonMultiple(a, b) {\r\n if (a == null) {\r\n return b;\r\n }\r\n if (b == null) {\r\n return a;\r\n }\r\n return a * b / getGreatestCommonDividor(a, b);\r\n }\n\n var numberUtil = /*#__PURE__*/Object.freeze({\n __proto__: null,\n linearMap: linearMap,\n parsePercent: parsePercent$2,\n round: round$1,\n asc: asc,\n getPrecision: getPrecision,\n getPrecisionSafe: getPrecisionSafe,\n getPixelPrecision: getPixelPrecision,\n getPercentWithPrecision: getPercentWithPrecision,\n MAX_SAFE_INTEGER: MAX_SAFE_INTEGER,\n remRadian: remRadian,\n isRadianAroundZero: isRadianAroundZero,\n parseDate: parseDate,\n quantity: quantity,\n quantityExponent: quantityExponent,\n nice: nice,\n quantile: quantile,\n reformIntervals: reformIntervals,\n numericToNumber: numericToNumber,\n isNumeric: isNumeric,\n getRandomIdBase: getRandomIdBase,\n getGreatestCommonDividor: getGreatestCommonDividor,\n getLeastCommonMultiple: getLeastCommonMultiple\n });\n\n var ECHARTS_PREFIX = '[ECharts] ';\r\n var storedLogs = {};\r\n var hasConsole = typeof console !== 'undefined'\r\n && console.warn && console.log;\r\n function warn(str) {\r\n if (hasConsole) {\r\n console.warn(ECHARTS_PREFIX + str);\r\n }\r\n }\r\n function error(str) {\r\n if (hasConsole) {\r\n console.error(ECHARTS_PREFIX + str);\r\n }\r\n }\r\n function deprecateLog(str) {\r\n if (__DEV__) {\r\n if (storedLogs[str]) {\r\n return;\r\n }\r\n if (hasConsole) {\r\n storedLogs[str] = true;\r\n console.warn(ECHARTS_PREFIX + 'DEPRECATED: ' + str);\r\n }\r\n }\r\n }\r\n function deprecateReplaceLog(oldOpt, newOpt, scope) {\r\n if (__DEV__) {\r\n deprecateLog((scope ? \"[\" + scope + \"]\" : '') + (oldOpt + \" is deprecated, use \" + newOpt + \" instead.\"));\r\n }\r\n }\r\n function consoleLog() {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n if (__DEV__) {\r\n if (typeof console !== 'undefined' && console.log) {\r\n console.log.apply(console, args);\r\n }\r\n }\r\n }\r\n function makePrintable() {\r\n var hintInfo = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n hintInfo[_i] = arguments[_i];\r\n }\r\n var msg = '';\r\n if (__DEV__) {\r\n var makePrintableStringIfPossible_1 = function (val) {\r\n return val === void 0 ? 'undefined'\r\n : val === Infinity ? 'Infinity'\r\n : val === -Infinity ? '-Infinity'\r\n : eqNaN(val) ? 'NaN'\r\n : val instanceof Date ? 'Date(' + val.toISOString() + ')'\r\n : isFunction(val) ? 'function () { ... }'\r\n : isRegExp(val) ? val + ''\r\n : null;\r\n };\r\n msg = map(hintInfo, function (arg) {\r\n if (isString(arg)) {\r\n return arg;\r\n }\r\n else {\r\n var printableStr = makePrintableStringIfPossible_1(arg);\r\n if (printableStr != null) {\r\n return printableStr;\r\n }\r\n else if (typeof JSON !== 'undefined' && JSON.stringify) {\r\n try {\r\n return JSON.stringify(arg, function (n, val) {\r\n var printableStr = makePrintableStringIfPossible_1(val);\r\n return printableStr == null ? val : printableStr;\r\n });\r\n }\r\n catch (err) {\r\n return '?';\r\n }\r\n }\r\n else {\r\n return '?';\r\n }\r\n }\r\n }).join(' ');\r\n }\r\n return msg;\r\n }\r\n function throwError(msg) {\r\n throw new Error(msg);\r\n }\n\n var DUMMY_COMPONENT_NAME_PREFIX = 'series\\0';\r\n var INTERNAL_COMPONENT_ID_PREFIX = '\\0_ec_\\0';\r\n function normalizeToArray(value) {\r\n return value instanceof Array\r\n ? value\r\n : value == null\r\n ? []\r\n : [value];\r\n }\r\n function defaultEmphasis(opt, key, subOpts) {\r\n if (opt) {\r\n opt[key] = opt[key] || {};\r\n opt.emphasis = opt.emphasis || {};\r\n opt.emphasis[key] = opt.emphasis[key] || {};\r\n for (var i = 0, len = subOpts.length; i < len; i++) {\r\n var subOptName = subOpts[i];\r\n if (!opt.emphasis[key].hasOwnProperty(subOptName)\r\n && opt[key].hasOwnProperty(subOptName)) {\r\n opt.emphasis[key][subOptName] = opt[key][subOptName];\r\n }\r\n }\r\n }\r\n }\r\n var TEXT_STYLE_OPTIONS = [\r\n 'fontStyle', 'fontWeight', 'fontSize', 'fontFamily',\r\n 'rich', 'tag', 'color', 'textBorderColor', 'textBorderWidth',\r\n 'width', 'height', 'lineHeight', 'align', 'verticalAlign', 'baseline',\r\n 'shadowColor', 'shadowBlur', 'shadowOffsetX', 'shadowOffsetY',\r\n 'textShadowColor', 'textShadowBlur', 'textShadowOffsetX', 'textShadowOffsetY',\r\n 'backgroundColor', 'borderColor', 'borderWidth', 'borderRadius', 'padding'\r\n ];\r\n function getDataItemValue(dataItem) {\r\n return (isObject(dataItem) && !isArray(dataItem) && !(dataItem instanceof Date))\r\n ? dataItem.value : dataItem;\r\n }\r\n function isDataItemOption(dataItem) {\r\n return isObject(dataItem)\r\n && !(dataItem instanceof Array);\r\n }\r\n function mappingToExists(existings, newCmptOptions, mode) {\r\n var isNormalMergeMode = mode === 'normalMerge';\r\n var isReplaceMergeMode = mode === 'replaceMerge';\r\n var isReplaceAllMode = mode === 'replaceAll';\r\n existings = existings || [];\r\n newCmptOptions = (newCmptOptions || []).slice();\r\n var existingIdIdxMap = createHashMap();\r\n each(newCmptOptions, function (cmptOption, index) {\r\n if (!isObject(cmptOption)) {\r\n newCmptOptions[index] = null;\r\n return;\r\n }\r\n if (__DEV__) {\r\n if (cmptOption.id != null && !isValidIdOrName(cmptOption.id)) {\r\n warnInvalidateIdOrName(cmptOption.id);\r\n }\r\n if (cmptOption.name != null && !isValidIdOrName(cmptOption.name)) {\r\n warnInvalidateIdOrName(cmptOption.name);\r\n }\r\n }\r\n });\r\n var result = prepareResult(existings, existingIdIdxMap, mode);\r\n if (isNormalMergeMode || isReplaceMergeMode) {\r\n mappingById(result, existings, existingIdIdxMap, newCmptOptions);\r\n }\r\n if (isNormalMergeMode) {\r\n mappingByName(result, newCmptOptions);\r\n }\r\n if (isNormalMergeMode || isReplaceMergeMode) {\r\n mappingByIndex(result, newCmptOptions, isReplaceMergeMode);\r\n }\r\n else if (isReplaceAllMode) {\r\n mappingInReplaceAllMode(result, newCmptOptions);\r\n }\r\n makeIdAndName(result);\r\n return result;\r\n }\r\n function prepareResult(existings, existingIdIdxMap, mode) {\r\n var result = [];\r\n if (mode === 'replaceAll') {\r\n return result;\r\n }\r\n for (var index = 0; index < existings.length; index++) {\r\n var existing = existings[index];\r\n if (existing && existing.id != null) {\r\n existingIdIdxMap.set(existing.id, index);\r\n }\r\n result.push({\r\n existing: (mode === 'replaceMerge' || isComponentIdInternal(existing))\r\n ? null\r\n : existing,\r\n newOption: null,\r\n keyInfo: null,\r\n brandNew: null\r\n });\r\n }\r\n return result;\r\n }\r\n function mappingById(result, existings, existingIdIdxMap, newCmptOptions) {\r\n each(newCmptOptions, function (cmptOption, index) {\r\n if (!cmptOption || cmptOption.id == null) {\r\n return;\r\n }\r\n var optionId = makeComparableKey(cmptOption.id);\r\n var existingIdx = existingIdIdxMap.get(optionId);\r\n if (existingIdx != null) {\r\n var resultItem = result[existingIdx];\r\n assert(!resultItem.newOption, 'Duplicated option on id \"' + optionId + '\".');\r\n resultItem.newOption = cmptOption;\r\n resultItem.existing = existings[existingIdx];\r\n newCmptOptions[index] = null;\r\n }\r\n });\r\n }\r\n function mappingByName(result, newCmptOptions) {\r\n each(newCmptOptions, function (cmptOption, index) {\r\n if (!cmptOption || cmptOption.name == null) {\r\n return;\r\n }\r\n for (var i = 0; i < result.length; i++) {\r\n var existing = result[i].existing;\r\n if (!result[i].newOption\r\n && existing\r\n && (existing.id == null || cmptOption.id == null)\r\n && !isComponentIdInternal(cmptOption)\r\n && !isComponentIdInternal(existing)\r\n && keyExistAndEqual('name', existing, cmptOption)) {\r\n result[i].newOption = cmptOption;\r\n newCmptOptions[index] = null;\r\n return;\r\n }\r\n }\r\n });\r\n }\r\n function mappingByIndex(result, newCmptOptions, brandNew) {\r\n each(newCmptOptions, function (cmptOption) {\r\n if (!cmptOption) {\r\n return;\r\n }\r\n var resultItem;\r\n var nextIdx = 0;\r\n while ((resultItem = result[nextIdx])\r\n && (resultItem.newOption\r\n || isComponentIdInternal(resultItem.existing)\r\n || (resultItem.existing\r\n && cmptOption.id != null\r\n && !keyExistAndEqual('id', cmptOption, resultItem.existing)))) {\r\n nextIdx++;\r\n }\r\n if (resultItem) {\r\n resultItem.newOption = cmptOption;\r\n resultItem.brandNew = brandNew;\r\n }\r\n else {\r\n result.push({\r\n newOption: cmptOption,\r\n brandNew: brandNew,\r\n existing: null,\r\n keyInfo: null\r\n });\r\n }\r\n nextIdx++;\r\n });\r\n }\r\n function mappingInReplaceAllMode(result, newCmptOptions) {\r\n each(newCmptOptions, function (cmptOption) {\r\n result.push({\r\n newOption: cmptOption,\r\n brandNew: true,\r\n existing: null,\r\n keyInfo: null\r\n });\r\n });\r\n }\r\n function makeIdAndName(mapResult) {\r\n var idMap = createHashMap();\r\n each(mapResult, function (item) {\r\n var existing = item.existing;\r\n existing && idMap.set(existing.id, item);\r\n });\r\n each(mapResult, function (item) {\r\n var opt = item.newOption;\r\n assert(!opt || opt.id == null || !idMap.get(opt.id) || idMap.get(opt.id) === item, 'id duplicates: ' + (opt && opt.id));\r\n opt && opt.id != null && idMap.set(opt.id, item);\r\n !item.keyInfo && (item.keyInfo = {});\r\n });\r\n each(mapResult, function (item, index) {\r\n var existing = item.existing;\r\n var opt = item.newOption;\r\n var keyInfo = item.keyInfo;\r\n if (!isObject(opt)) {\r\n return;\r\n }\r\n keyInfo.name = opt.name != null\r\n ? makeComparableKey(opt.name)\r\n : existing\r\n ? existing.name\r\n : DUMMY_COMPONENT_NAME_PREFIX + index;\r\n if (existing) {\r\n keyInfo.id = makeComparableKey(existing.id);\r\n }\r\n else if (opt.id != null) {\r\n keyInfo.id = makeComparableKey(opt.id);\r\n }\r\n else {\r\n var idNum = 0;\r\n do {\r\n keyInfo.id = '\\0' + keyInfo.name + '\\0' + idNum++;\r\n } while (idMap.get(keyInfo.id));\r\n }\r\n idMap.set(keyInfo.id, item);\r\n });\r\n }\r\n function keyExistAndEqual(attr, obj1, obj2) {\r\n var key1 = convertOptionIdName(obj1[attr], null);\r\n var key2 = convertOptionIdName(obj2[attr], null);\r\n return key1 != null && key2 != null && key1 === key2;\r\n }\r\n function makeComparableKey(val) {\r\n if (__DEV__) {\r\n if (val == null) {\r\n throw new Error();\r\n }\r\n }\r\n return convertOptionIdName(val, '');\r\n }\r\n function convertOptionIdName(idOrName, defaultValue) {\r\n if (idOrName == null) {\r\n return defaultValue;\r\n }\r\n var type = typeof idOrName;\r\n return type === 'string'\r\n ? idOrName\r\n : (type === 'number' || isStringSafe(idOrName))\r\n ? idOrName + ''\r\n : defaultValue;\r\n }\r\n function warnInvalidateIdOrName(idOrName) {\r\n if (__DEV__) {\r\n warn('`' + idOrName + '` is invalid id or name. Must be a string or number.');\r\n }\r\n }\r\n function isValidIdOrName(idOrName) {\r\n return isStringSafe(idOrName) || isNumeric(idOrName);\r\n }\r\n function isNameSpecified(componentModel) {\r\n var name = componentModel.name;\r\n return !!(name && name.indexOf(DUMMY_COMPONENT_NAME_PREFIX));\r\n }\r\n function isComponentIdInternal(cmptOption) {\r\n return cmptOption\r\n && cmptOption.id != null\r\n && makeComparableKey(cmptOption.id).indexOf(INTERNAL_COMPONENT_ID_PREFIX) === 0;\r\n }\r\n function makeInternalComponentId(idSuffix) {\r\n return INTERNAL_COMPONENT_ID_PREFIX + idSuffix;\r\n }\r\n function setComponentTypeToKeyInfo(mappingResult, mainType, componentModelCtor) {\r\n each(mappingResult, function (item) {\r\n var newOption = item.newOption;\r\n if (isObject(newOption)) {\r\n item.keyInfo.mainType = mainType;\r\n item.keyInfo.subType = determineSubType(mainType, newOption, item.existing, componentModelCtor);\r\n }\r\n });\r\n }\r\n function determineSubType(mainType, newCmptOption, existComponent, componentModelCtor) {\r\n var subType = newCmptOption.type\r\n ? newCmptOption.type\r\n : existComponent\r\n ? existComponent.subType\r\n : componentModelCtor.determineSubType(mainType, newCmptOption);\r\n return subType;\r\n }\r\n function compressBatches(batchA, batchB) {\r\n var mapA = {};\r\n var mapB = {};\r\n makeMap(batchA || [], mapA);\r\n makeMap(batchB || [], mapB, mapA);\r\n return [mapToArray(mapA), mapToArray(mapB)];\r\n function makeMap(sourceBatch, map, otherMap) {\r\n for (var i = 0, len = sourceBatch.length; i < len; i++) {\r\n var seriesId = convertOptionIdName(sourceBatch[i].seriesId, null);\r\n if (seriesId == null) {\r\n return;\r\n }\r\n var dataIndices = normalizeToArray(sourceBatch[i].dataIndex);\r\n var otherDataIndices = otherMap && otherMap[seriesId];\r\n for (var j = 0, lenj = dataIndices.length; j < lenj; j++) {\r\n var dataIndex = dataIndices[j];\r\n if (otherDataIndices && otherDataIndices[dataIndex]) {\r\n otherDataIndices[dataIndex] = null;\r\n }\r\n else {\r\n (map[seriesId] || (map[seriesId] = {}))[dataIndex] = 1;\r\n }\r\n }\r\n }\r\n }\r\n function mapToArray(map, isData) {\r\n var result = [];\r\n for (var i in map) {\r\n if (map.hasOwnProperty(i) && map[i] != null) {\r\n if (isData) {\r\n result.push(+i);\r\n }\r\n else {\r\n var dataIndices = mapToArray(map[i], true);\r\n dataIndices.length && result.push({ seriesId: i, dataIndex: dataIndices });\r\n }\r\n }\r\n }\r\n return result;\r\n }\r\n }\r\n function queryDataIndex(data, payload) {\r\n if (payload.dataIndexInside != null) {\r\n return payload.dataIndexInside;\r\n }\r\n else if (payload.dataIndex != null) {\r\n return isArray(payload.dataIndex)\r\n ? map(payload.dataIndex, function (value) {\r\n return data.indexOfRawIndex(value);\r\n })\r\n : data.indexOfRawIndex(payload.dataIndex);\r\n }\r\n else if (payload.name != null) {\r\n return isArray(payload.name)\r\n ? map(payload.name, function (value) {\r\n return data.indexOfName(value);\r\n })\r\n : data.indexOfName(payload.name);\r\n }\r\n }\r\n function makeInner() {\r\n var key = '__ec_inner_' + innerUniqueIndex++;\r\n return function (hostObj) {\r\n return hostObj[key] || (hostObj[key] = {});\r\n };\r\n }\r\n var innerUniqueIndex = getRandomIdBase();\r\n function parseFinder(ecModel, finderInput, opt) {\r\n var finder;\r\n if (isString(finderInput)) {\r\n var obj = {};\r\n obj[finderInput + 'Index'] = 0;\r\n finder = obj;\r\n }\r\n else {\r\n finder = finderInput;\r\n }\r\n var queryOptionMap = createHashMap();\r\n var result = {};\r\n var mainTypeSpecified = false;\r\n each(finder, function (value, key) {\r\n if (key === 'dataIndex' || key === 'dataIndexInside') {\r\n result[key] = value;\r\n return;\r\n }\r\n var parsedKey = key.match(/^(\\w+)(Index|Id|Name)$/) || [];\r\n var mainType = parsedKey[1];\r\n var queryType = (parsedKey[2] || '').toLowerCase();\r\n if (!mainType\r\n || !queryType\r\n || (opt && opt.includeMainTypes && indexOf(opt.includeMainTypes, mainType) < 0)) {\r\n return;\r\n }\r\n mainTypeSpecified = mainTypeSpecified || !!mainType;\r\n var queryOption = queryOptionMap.get(mainType) || queryOptionMap.set(mainType, {});\r\n queryOption[queryType] = value;\r\n });\r\n var defaultMainType = opt ? opt.defaultMainType : null;\r\n if (!mainTypeSpecified && defaultMainType) {\r\n queryOptionMap.set(defaultMainType, {});\r\n }\r\n queryOptionMap.each(function (queryOption, mainType) {\r\n var queryResult = queryReferringComponents(ecModel, mainType, queryOption, {\r\n useDefault: defaultMainType === mainType,\r\n enableAll: (opt && opt.enableAll != null) ? opt.enableAll : true,\r\n enableNone: (opt && opt.enableNone != null) ? opt.enableNone : true\r\n });\r\n result[mainType + 'Models'] = queryResult.models;\r\n result[mainType + 'Model'] = queryResult.models[0];\r\n });\r\n return result;\r\n }\r\n var SINGLE_REFERRING = { useDefault: true, enableAll: false, enableNone: false };\r\n var MULTIPLE_REFERRING = { useDefault: false, enableAll: true, enableNone: true };\r\n function queryReferringComponents(ecModel, mainType, userOption, opt) {\r\n opt = opt || SINGLE_REFERRING;\r\n var indexOption = userOption.index;\r\n var idOption = userOption.id;\r\n var nameOption = userOption.name;\r\n var result = {\r\n models: null,\r\n specified: indexOption != null || idOption != null || nameOption != null\r\n };\r\n if (!result.specified) {\r\n var firstCmpt = void 0;\r\n result.models = (opt.useDefault && (firstCmpt = ecModel.getComponent(mainType))) ? [firstCmpt] : [];\r\n return result;\r\n }\r\n if (indexOption === 'none' || indexOption === false) {\r\n assert(opt.enableNone, '`\"none\"` or `false` is not a valid value on index option.');\r\n result.models = [];\r\n return result;\r\n }\r\n if (indexOption === 'all') {\r\n assert(opt.enableAll, '`\"all\"` is not a valid value on index option.');\r\n indexOption = idOption = nameOption = null;\r\n }\r\n result.models = ecModel.queryComponents({\r\n mainType: mainType,\r\n index: indexOption,\r\n id: idOption,\r\n name: nameOption\r\n });\r\n return result;\r\n }\r\n function setAttribute(dom, key, value) {\r\n dom.setAttribute\r\n ? dom.setAttribute(key, value)\r\n : (dom[key] = value);\r\n }\r\n function getAttribute(dom, key) {\r\n return dom.getAttribute\r\n ? dom.getAttribute(key)\r\n : dom[key];\r\n }\r\n function getTooltipRenderMode(renderModeOption) {\r\n if (renderModeOption === 'auto') {\r\n return env.domSupported ? 'html' : 'richText';\r\n }\r\n else {\r\n return renderModeOption || 'html';\r\n }\r\n }\r\n function groupData(array, getKey) {\r\n var buckets = createHashMap();\r\n var keys = [];\r\n each(array, function (item) {\r\n var key = getKey(item);\r\n (buckets.get(key)\r\n || (keys.push(key), buckets.set(key, []))).push(item);\r\n });\r\n return {\r\n keys: keys,\r\n buckets: buckets\r\n };\r\n }\r\n function interpolateRawValues(data, precision, sourceValue, targetValue, percent) {\r\n var isAutoPrecision = precision == null || precision === 'auto';\r\n if (targetValue == null) {\r\n return targetValue;\r\n }\r\n if (typeof targetValue === 'number') {\r\n var value = interpolateNumber(sourceValue || 0, targetValue, percent);\r\n return round$1(value, isAutoPrecision ? Math.max(getPrecisionSafe(sourceValue || 0), getPrecisionSafe(targetValue))\r\n : precision);\r\n }\r\n else if (typeof targetValue === 'string') {\r\n return percent < 1 ? sourceValue : targetValue;\r\n }\r\n else {\r\n var interpolated = [];\r\n var leftArr = sourceValue || [];\r\n var rightArr = targetValue;\r\n var length_1 = Math.max(leftArr.length, rightArr.length);\r\n for (var i = 0; i < length_1; ++i) {\r\n var info = data.getDimensionInfo(i);\r\n if (info.type === 'ordinal') {\r\n interpolated[i] = (percent < 1 ? leftArr : rightArr)[i];\r\n }\r\n else {\r\n var leftVal = leftArr && leftArr[i] ? leftArr[i] : 0;\r\n var rightVal = rightArr[i];\r\n var value = leftArr == null\r\n ? targetValue[i]\r\n : interpolateNumber(leftVal, rightVal, percent);\r\n interpolated[i] = round$1(value, isAutoPrecision ? Math.max(getPrecisionSafe(leftVal), getPrecisionSafe(rightVal))\r\n : precision);\r\n }\r\n }\r\n return interpolated;\r\n }\r\n }\n\n var TYPE_DELIMITER = '.';\r\n var IS_CONTAINER = '___EC__COMPONENT__CONTAINER___';\r\n var IS_EXTENDED_CLASS = '___EC__EXTENDED_CLASS___';\r\n function parseClassType(componentType) {\r\n var ret = { main: '', sub: '' };\r\n if (componentType) {\r\n var typeArr = componentType.split(TYPE_DELIMITER);\r\n ret.main = typeArr[0] || '';\r\n ret.sub = typeArr[1] || '';\r\n }\r\n return ret;\r\n }\r\n function checkClassType(componentType) {\r\n assert(/^[a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)?$/.test(componentType), 'componentType \"' + componentType + '\" illegal');\r\n }\r\n function isExtendedClass(clz) {\r\n return !!(clz && clz[IS_EXTENDED_CLASS]);\r\n }\r\n function enableClassExtend(rootClz, mandatoryMethods) {\r\n rootClz.$constructor = rootClz;\r\n rootClz.extend = function (proto) {\r\n if (__DEV__) {\r\n each(mandatoryMethods, function (method) {\r\n if (!proto[method]) {\r\n console.warn('Method `' + method + '` should be implemented'\r\n + (proto.type ? ' in ' + proto.type : '') + '.');\r\n }\r\n });\r\n }\r\n var superClass = this;\r\n function ExtendedClass() {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n if (!proto.$constructor) {\r\n if (!isESClass(superClass)) {\r\n superClass.apply(this, arguments);\r\n }\r\n else {\r\n var ins = createObject(ExtendedClass.prototype, new (superClass.bind.apply(superClass, __spreadArrays([void 0], args)))());\r\n return ins;\r\n }\r\n }\r\n else {\r\n proto.$constructor.apply(this, arguments);\r\n }\r\n }\r\n ExtendedClass[IS_EXTENDED_CLASS] = true;\r\n extend(ExtendedClass.prototype, proto);\r\n ExtendedClass.extend = this.extend;\r\n ExtendedClass.superCall = superCall;\r\n ExtendedClass.superApply = superApply;\r\n inherits(ExtendedClass, this);\r\n ExtendedClass.superClass = superClass;\r\n return ExtendedClass;\r\n };\r\n }\r\n function isESClass(fn) {\r\n return typeof fn === 'function'\r\n && /^class\\s/.test(Function.prototype.toString.call(fn));\r\n }\r\n function mountExtend(SubClz, SupperClz) {\r\n SubClz.extend = SupperClz.extend;\r\n }\r\n var classBase = Math.round(Math.random() * 10);\r\n function enableClassCheck(target) {\r\n var classAttr = ['__\\0is_clz', classBase++].join('_');\r\n target.prototype[classAttr] = true;\r\n if (__DEV__) {\r\n assert(!target.isInstance, 'The method \"is\" can not be defined.');\r\n }\r\n target.isInstance = function (obj) {\r\n return !!(obj && obj[classAttr]);\r\n };\r\n }\r\n function superCall(context, methodName) {\r\n var args = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n args[_i - 2] = arguments[_i];\r\n }\r\n return this.superClass.prototype[methodName].apply(context, args);\r\n }\r\n function superApply(context, methodName, args) {\r\n return this.superClass.prototype[methodName].apply(context, args);\r\n }\r\n function enableClassManagement(target, options) {\r\n options = options || {};\r\n var storage = {};\r\n target.registerClass = function (clz) {\r\n var componentFullType = clz.type || clz.prototype.type;\r\n if (componentFullType) {\r\n checkClassType(componentFullType);\r\n clz.prototype.type = componentFullType;\r\n var componentTypeInfo = parseClassType(componentFullType);\r\n if (!componentTypeInfo.sub) {\r\n if (__DEV__) {\r\n if (storage[componentTypeInfo.main]) {\r\n console.warn(componentTypeInfo.main + ' exists.');\r\n }\r\n }\r\n storage[componentTypeInfo.main] = clz;\r\n }\r\n else if (componentTypeInfo.sub !== IS_CONTAINER) {\r\n var container = makeContainer(componentTypeInfo);\r\n container[componentTypeInfo.sub] = clz;\r\n }\r\n }\r\n return clz;\r\n };\r\n target.getClass = function (mainType, subType, throwWhenNotFound) {\r\n var clz = storage[mainType];\r\n if (clz && clz[IS_CONTAINER]) {\r\n clz = subType ? clz[subType] : null;\r\n }\r\n if (throwWhenNotFound && !clz) {\r\n throw new Error(!subType\r\n ? mainType + '.' + 'type should be specified.'\r\n : 'Component ' + mainType + '.' + (subType || '') + ' not exists. Load it first.');\r\n }\r\n return clz;\r\n };\r\n target.getClassesByMainType = function (componentType) {\r\n var componentTypeInfo = parseClassType(componentType);\r\n var result = [];\r\n var obj = storage[componentTypeInfo.main];\r\n if (obj && obj[IS_CONTAINER]) {\r\n each(obj, function (o, type) {\r\n type !== IS_CONTAINER && result.push(o);\r\n });\r\n }\r\n else {\r\n result.push(obj);\r\n }\r\n return result;\r\n };\r\n target.hasClass = function (componentType) {\r\n var componentTypeInfo = parseClassType(componentType);\r\n return !!storage[componentTypeInfo.main];\r\n };\r\n target.getAllClassMainTypes = function () {\r\n var types = [];\r\n each(storage, function (obj, type) {\r\n types.push(type);\r\n });\r\n return types;\r\n };\r\n target.hasSubTypes = function (componentType) {\r\n var componentTypeInfo = parseClassType(componentType);\r\n var obj = storage[componentTypeInfo.main];\r\n return obj && obj[IS_CONTAINER];\r\n };\r\n function makeContainer(componentTypeInfo) {\r\n var container = storage[componentTypeInfo.main];\r\n if (!container || !container[IS_CONTAINER]) {\r\n container = storage[componentTypeInfo.main] = {};\r\n container[IS_CONTAINER] = true;\r\n }\r\n return container;\r\n }\r\n if (options.registerWhenExtend) {\r\n var originalExtend_1 = target.extend;\r\n if (originalExtend_1) {\r\n target.extend = function (proto) {\r\n var ExtendedClass = originalExtend_1.call(this, proto);\r\n return target.registerClass(ExtendedClass);\r\n };\r\n }\r\n }\r\n }\n\n function makeStyleMapper(properties, ignoreParent) {\r\n for (var i = 0; i < properties.length; i++) {\r\n if (!properties[i][1]) {\r\n properties[i][1] = properties[i][0];\r\n }\r\n }\r\n ignoreParent = ignoreParent || false;\r\n return function (model, excludes, includes) {\r\n var style = {};\r\n for (var i = 0; i < properties.length; i++) {\r\n var propName = properties[i][1];\r\n if ((excludes && indexOf(excludes, propName) >= 0)\r\n || (includes && indexOf(includes, propName) < 0)) {\r\n continue;\r\n }\r\n var val = model.getShallow(propName, ignoreParent);\r\n if (val != null) {\r\n style[properties[i][0]] = val;\r\n }\r\n }\r\n return style;\r\n };\r\n }\n\n var AREA_STYLE_KEY_MAP = [\r\n ['fill', 'color'],\r\n ['shadowBlur'],\r\n ['shadowOffsetX'],\r\n ['shadowOffsetY'],\r\n ['opacity'],\r\n ['shadowColor']\r\n ];\r\n var getAreaStyle = makeStyleMapper(AREA_STYLE_KEY_MAP);\r\n var AreaStyleMixin = (function () {\r\n function AreaStyleMixin() {\r\n }\r\n AreaStyleMixin.prototype.getAreaStyle = function (excludes, includes) {\r\n return getAreaStyle(this, excludes, includes);\r\n };\r\n return AreaStyleMixin;\r\n }());\n\n var getECData = makeInner();\n\n var _highlightNextDigit = 1;\r\n var _highlightKeyMap = {};\r\n var getSavedStates = makeInner();\r\n var HOVER_STATE_NORMAL = 0;\r\n var HOVER_STATE_BLUR = 1;\r\n var HOVER_STATE_EMPHASIS = 2;\r\n var SPECIAL_STATES = ['emphasis', 'blur', 'select'];\r\n var DISPLAY_STATES = ['normal', 'emphasis', 'blur', 'select'];\r\n var Z2_EMPHASIS_LIFT = 10;\r\n var Z2_SELECT_LIFT = 9;\r\n var HIGHLIGHT_ACTION_TYPE = 'highlight';\r\n var DOWNPLAY_ACTION_TYPE = 'downplay';\r\n var SELECT_ACTION_TYPE = 'select';\r\n var UNSELECT_ACTION_TYPE = 'unselect';\r\n var TOGGLE_SELECT_ACTION_TYPE = 'toggleSelect';\r\n function hasFillOrStroke(fillOrStroke) {\r\n return fillOrStroke != null && fillOrStroke !== 'none';\r\n }\r\n var liftedColorCache = new LRU(100);\r\n function liftColor(color$1) {\r\n if (typeof color$1 !== 'string') {\r\n return color$1;\r\n }\r\n var liftedColor = liftedColorCache.get(color$1);\r\n if (!liftedColor) {\r\n liftedColor = lift(color$1, -0.1);\r\n liftedColorCache.put(color$1, liftedColor);\r\n }\r\n return liftedColor;\r\n }\r\n function doChangeHoverState(el, stateName, hoverStateEnum) {\r\n if (el.onHoverStateChange && (el.hoverState || 0) !== hoverStateEnum) {\r\n el.onHoverStateChange(stateName);\r\n }\r\n el.hoverState = hoverStateEnum;\r\n }\r\n function singleEnterEmphasis(el) {\r\n doChangeHoverState(el, 'emphasis', HOVER_STATE_EMPHASIS);\r\n }\r\n function singleLeaveEmphasis(el) {\r\n if (el.hoverState === HOVER_STATE_EMPHASIS) {\r\n doChangeHoverState(el, 'normal', HOVER_STATE_NORMAL);\r\n }\r\n }\r\n function singleEnterBlur(el) {\r\n doChangeHoverState(el, 'blur', HOVER_STATE_BLUR);\r\n }\r\n function singleLeaveBlur(el) {\r\n if (el.hoverState === HOVER_STATE_BLUR) {\r\n doChangeHoverState(el, 'normal', HOVER_STATE_NORMAL);\r\n }\r\n }\r\n function singleEnterSelect(el) {\r\n el.selected = true;\r\n }\r\n function singleLeaveSelect(el) {\r\n el.selected = false;\r\n }\r\n function updateElementState(el, updater, commonParam) {\r\n updater(el, commonParam);\r\n }\r\n function traverseUpdateState(el, updater, commonParam) {\r\n updateElementState(el, updater, commonParam);\r\n el.isGroup && el.traverse(function (child) {\r\n updateElementState(child, updater, commonParam);\r\n });\r\n }\r\n function setStatesFlag(el, stateName) {\r\n switch (stateName) {\r\n case 'emphasis':\r\n el.hoverState = HOVER_STATE_EMPHASIS;\r\n break;\r\n case 'normal':\r\n el.hoverState = HOVER_STATE_NORMAL;\r\n break;\r\n case 'blur':\r\n el.hoverState = HOVER_STATE_BLUR;\r\n break;\r\n case 'select':\r\n el.selected = true;\r\n }\r\n }\r\n function getFromStateStyle(el, props, toStateName, defaultValue) {\r\n var style = el.style;\r\n var fromState = {};\r\n for (var i = 0; i < props.length; i++) {\r\n var propName = props[i];\r\n var val = style[propName];\r\n fromState[propName] = val == null ? (defaultValue && defaultValue[propName]) : val;\r\n }\r\n for (var i = 0; i < el.animators.length; i++) {\r\n var animator = el.animators[i];\r\n if (animator.__fromStateTransition\r\n && animator.__fromStateTransition.indexOf(toStateName) < 0\r\n && animator.targetName === 'style') {\r\n animator.saveFinalToTarget(fromState, props);\r\n }\r\n }\r\n return fromState;\r\n }\r\n function createEmphasisDefaultState(el, stateName, targetStates, state) {\r\n var hasSelect = targetStates && indexOf(targetStates, 'select') >= 0;\r\n var cloned = false;\r\n if (el instanceof Path) {\r\n var store = getSavedStates(el);\r\n var fromFill = hasSelect ? (store.selectFill || store.normalFill) : store.normalFill;\r\n var fromStroke = hasSelect ? (store.selectStroke || store.normalStroke) : store.normalStroke;\r\n if (hasFillOrStroke(fromFill) || hasFillOrStroke(fromStroke)) {\r\n state = state || {};\r\n var emphasisStyle = state.style || {};\r\n if (!hasFillOrStroke(emphasisStyle.fill) && hasFillOrStroke(fromFill)) {\r\n cloned = true;\r\n state = extend({}, state);\r\n emphasisStyle = extend({}, emphasisStyle);\r\n emphasisStyle.fill = liftColor(fromFill);\r\n }\r\n else if (!hasFillOrStroke(emphasisStyle.stroke) && hasFillOrStroke(fromStroke)) {\r\n if (!cloned) {\r\n state = extend({}, state);\r\n emphasisStyle = extend({}, emphasisStyle);\r\n }\r\n emphasisStyle.stroke = liftColor(fromStroke);\r\n }\r\n state.style = emphasisStyle;\r\n }\r\n }\r\n if (state) {\r\n if (state.z2 == null) {\r\n if (!cloned) {\r\n state = extend({}, state);\r\n }\r\n var z2EmphasisLift = el.z2EmphasisLift;\r\n state.z2 = el.z2 + (z2EmphasisLift != null ? z2EmphasisLift : Z2_EMPHASIS_LIFT);\r\n }\r\n }\r\n return state;\r\n }\r\n function createSelectDefaultState(el, stateName, state) {\r\n if (state) {\r\n if (state.z2 == null) {\r\n state = extend({}, state);\r\n var z2SelectLift = el.z2SelectLift;\r\n state.z2 = el.z2 + (z2SelectLift != null ? z2SelectLift : Z2_SELECT_LIFT);\r\n }\r\n }\r\n return state;\r\n }\r\n function createBlurDefaultState(el, stateName, state) {\r\n var hasBlur = indexOf(el.currentStates, stateName) >= 0;\r\n var currentOpacity = el.style.opacity;\r\n var fromState = !hasBlur\r\n ? getFromStateStyle(el, ['opacity'], stateName, {\r\n opacity: 1\r\n })\r\n : null;\r\n state = state || {};\r\n var blurStyle = state.style || {};\r\n if (blurStyle.opacity == null) {\r\n state = extend({}, state);\r\n blurStyle = extend({\r\n opacity: hasBlur ? currentOpacity : (fromState.opacity * 0.1)\r\n }, blurStyle);\r\n state.style = blurStyle;\r\n }\r\n return state;\r\n }\r\n function elementStateProxy(stateName, targetStates) {\r\n var state = this.states[stateName];\r\n if (this.style) {\r\n if (stateName === 'emphasis') {\r\n return createEmphasisDefaultState(this, stateName, targetStates, state);\r\n }\r\n else if (stateName === 'blur') {\r\n return createBlurDefaultState(this, stateName, state);\r\n }\r\n else if (stateName === 'select') {\r\n return createSelectDefaultState(this, stateName, state);\r\n }\r\n }\r\n return state;\r\n }\r\n function setDefaultStateProxy(el) {\r\n el.stateProxy = elementStateProxy;\r\n var textContent = el.getTextContent();\r\n var textGuide = el.getTextGuideLine();\r\n if (textContent) {\r\n textContent.stateProxy = elementStateProxy;\r\n }\r\n if (textGuide) {\r\n textGuide.stateProxy = elementStateProxy;\r\n }\r\n }\r\n function enterEmphasisWhenMouseOver(el, e) {\r\n !shouldSilent(el, e)\r\n && !el.__highByOuter\r\n && traverseUpdateState(el, singleEnterEmphasis);\r\n }\r\n function leaveEmphasisWhenMouseOut(el, e) {\r\n !shouldSilent(el, e)\r\n && !el.__highByOuter\r\n && traverseUpdateState(el, singleLeaveEmphasis);\r\n }\r\n function enterEmphasis(el, highlightDigit) {\r\n el.__highByOuter |= 1 << (highlightDigit || 0);\r\n traverseUpdateState(el, singleEnterEmphasis);\r\n }\r\n function leaveEmphasis(el, highlightDigit) {\r\n !(el.__highByOuter &= ~(1 << (highlightDigit || 0)))\r\n && traverseUpdateState(el, singleLeaveEmphasis);\r\n }\r\n function enterBlur(el) {\r\n traverseUpdateState(el, singleEnterBlur);\r\n }\r\n function leaveBlur(el) {\r\n traverseUpdateState(el, singleLeaveBlur);\r\n }\r\n function enterSelect(el) {\r\n traverseUpdateState(el, singleEnterSelect);\r\n }\r\n function leaveSelect(el) {\r\n traverseUpdateState(el, singleLeaveSelect);\r\n }\r\n function shouldSilent(el, e) {\r\n return el.__highDownSilentOnTouch && e.zrByTouch;\r\n }\r\n function allLeaveBlur(api) {\r\n var model = api.getModel();\r\n model.eachComponent(function (componentType, componentModel) {\r\n var view = componentType === 'series'\r\n ? api.getViewOfSeriesModel(componentModel)\r\n : api.getViewOfComponentModel(componentModel);\r\n view.group.traverse(function (child) {\r\n singleLeaveBlur(child);\r\n });\r\n });\r\n }\r\n function toggleSeriesBlurState(targetSeriesIndex, focus, blurScope, api, isBlur) {\r\n var ecModel = api.getModel();\r\n blurScope = blurScope || 'coordinateSystem';\r\n function leaveBlurOfIndices(data, dataIndices) {\r\n for (var i = 0; i < dataIndices.length; i++) {\r\n var itemEl = data.getItemGraphicEl(dataIndices[i]);\r\n itemEl && leaveBlur(itemEl);\r\n }\r\n }\r\n if (!isBlur) {\r\n allLeaveBlur(api);\r\n return;\r\n }\r\n if (targetSeriesIndex == null) {\r\n return;\r\n }\r\n if (!focus || focus === 'none') {\r\n return;\r\n }\r\n var targetSeriesModel = ecModel.getSeriesByIndex(targetSeriesIndex);\r\n var targetCoordSys = targetSeriesModel.coordinateSystem;\r\n if (targetCoordSys && targetCoordSys.master) {\r\n targetCoordSys = targetCoordSys.master;\r\n }\r\n var blurredSeries = [];\r\n ecModel.eachSeries(function (seriesModel) {\r\n var sameSeries = targetSeriesModel === seriesModel;\r\n var coordSys = seriesModel.coordinateSystem;\r\n if (coordSys && coordSys.master) {\r\n coordSys = coordSys.master;\r\n }\r\n var sameCoordSys = coordSys && targetCoordSys\r\n ? coordSys === targetCoordSys\r\n : sameSeries;\r\n if (!(blurScope === 'series' && !sameSeries\r\n || blurScope === 'coordinateSystem' && !sameCoordSys\r\n || focus === 'series' && sameSeries)) {\r\n var view = api.getViewOfSeriesModel(seriesModel);\r\n view.group.traverse(function (child) {\r\n singleEnterBlur(child);\r\n });\r\n if (isArrayLike(focus)) {\r\n leaveBlurOfIndices(seriesModel.getData(), focus);\r\n }\r\n else if (isObject(focus)) {\r\n var dataTypes = keys(focus);\r\n for (var d = 0; d < dataTypes.length; d++) {\r\n leaveBlurOfIndices(seriesModel.getData(dataTypes[d]), focus[dataTypes[d]]);\r\n }\r\n }\r\n blurredSeries.push(seriesModel);\r\n }\r\n });\r\n ecModel.eachComponent(function (componentType, componentModel) {\r\n if (componentType === 'series') {\r\n return;\r\n }\r\n var view = api.getViewOfComponentModel(componentModel);\r\n if (view && view.blurSeries) {\r\n view.blurSeries(blurredSeries, ecModel);\r\n }\r\n });\r\n }\r\n function toggleSeriesBlurStateFromPayload(seriesModel, payload, api) {\r\n if (!isHighDownPayload(payload)) {\r\n return;\r\n }\r\n var isHighlight = payload.type === HIGHLIGHT_ACTION_TYPE;\r\n var seriesIndex = seriesModel.seriesIndex;\r\n var data = seriesModel.getData(payload.dataType);\r\n var dataIndex = queryDataIndex(data, payload);\r\n dataIndex = (isArray(dataIndex) ? dataIndex[0] : dataIndex) || 0;\r\n var el = data.getItemGraphicEl(dataIndex);\r\n if (!el) {\r\n var count = data.count();\r\n var current = 0;\r\n while (!el && current < count) {\r\n el = data.getItemGraphicEl(current++);\r\n }\r\n }\r\n if (el) {\r\n var ecData = getECData(el);\r\n toggleSeriesBlurState(seriesIndex, ecData.focus, ecData.blurScope, api, isHighlight);\r\n }\r\n else {\r\n var focus_1 = seriesModel.get(['emphasis', 'focus']);\r\n var blurScope = seriesModel.get(['emphasis', 'blurScope']);\r\n if (focus_1 != null) {\r\n toggleSeriesBlurState(seriesIndex, focus_1, blurScope, api, isHighlight);\r\n }\r\n }\r\n }\r\n function toggleSelectionFromPayload(seriesModel, payload, api) {\r\n if (!(isSelectChangePayload(payload))) {\r\n return;\r\n }\r\n var dataType = payload.dataType;\r\n var data = seriesModel.getData(dataType);\r\n var dataIndex = queryDataIndex(data, payload);\r\n if (!isArray(dataIndex)) {\r\n dataIndex = [dataIndex];\r\n }\r\n seriesModel[payload.type === TOGGLE_SELECT_ACTION_TYPE ? 'toggleSelect'\r\n : payload.type === SELECT_ACTION_TYPE ? 'select' : 'unselect'](dataIndex, dataType);\r\n }\r\n function updateSeriesElementSelection(seriesModel) {\r\n var allData = seriesModel.getAllData();\r\n each(allData, function (_a) {\r\n var data = _a.data, type = _a.type;\r\n data.eachItemGraphicEl(function (el, idx) {\r\n seriesModel.isSelected(idx, type) ? enterSelect(el) : leaveSelect(el);\r\n });\r\n });\r\n }\r\n function getAllSelectedIndices(ecModel) {\r\n var ret = [];\r\n ecModel.eachSeries(function (seriesModel) {\r\n var allData = seriesModel.getAllData();\r\n each(allData, function (_a) {\r\n var data = _a.data, type = _a.type;\r\n var dataIndices = seriesModel.getSelectedDataIndices();\r\n if (dataIndices.length > 0) {\r\n var item = {\r\n dataIndex: dataIndices,\r\n seriesIndex: seriesModel.seriesIndex\r\n };\r\n if (type != null) {\r\n item.dataType = type;\r\n }\r\n ret.push(item);\r\n }\r\n });\r\n });\r\n return ret;\r\n }\r\n function enableHoverEmphasis(el, focus, blurScope) {\r\n setAsHighDownDispatcher(el, true);\r\n traverseUpdateState(el, setDefaultStateProxy);\r\n enableHoverFocus(el, focus, blurScope);\r\n }\r\n function enableHoverFocus(el, focus, blurScope) {\r\n var ecData = getECData(el);\r\n if (focus != null) {\r\n ecData.focus = focus;\r\n ecData.blurScope = blurScope;\r\n }\r\n else if (ecData.focus) {\r\n ecData.focus = null;\r\n }\r\n }\r\n var OTHER_STATES = ['emphasis', 'blur', 'select'];\r\n var defaultStyleGetterMap = {\r\n itemStyle: 'getItemStyle',\r\n lineStyle: 'getLineStyle',\r\n areaStyle: 'getAreaStyle'\r\n };\r\n function setStatesStylesFromModel(el, itemModel, styleType, getter) {\r\n styleType = styleType || 'itemStyle';\r\n for (var i = 0; i < OTHER_STATES.length; i++) {\r\n var stateName = OTHER_STATES[i];\r\n var model = itemModel.getModel([stateName, styleType]);\r\n var state = el.ensureState(stateName);\r\n state.style = getter ? getter(model) : model[defaultStyleGetterMap[styleType]]();\r\n }\r\n }\r\n function setAsHighDownDispatcher(el, asDispatcher) {\r\n var disable = asDispatcher === false;\r\n var extendedEl = el;\r\n if (el.highDownSilentOnTouch) {\r\n extendedEl.__highDownSilentOnTouch = el.highDownSilentOnTouch;\r\n }\r\n if (!disable || extendedEl.__highDownDispatcher) {\r\n extendedEl.__highByOuter = extendedEl.__highByOuter || 0;\r\n extendedEl.__highDownDispatcher = !disable;\r\n }\r\n }\r\n function isHighDownDispatcher(el) {\r\n return !!(el && el.__highDownDispatcher);\r\n }\r\n function getHighlightDigit(highlightKey) {\r\n var highlightDigit = _highlightKeyMap[highlightKey];\r\n if (highlightDigit == null && _highlightNextDigit <= 32) {\r\n highlightDigit = _highlightKeyMap[highlightKey] = _highlightNextDigit++;\r\n }\r\n return highlightDigit;\r\n }\r\n function isSelectChangePayload(payload) {\r\n var payloadType = payload.type;\r\n return payloadType === SELECT_ACTION_TYPE\r\n || payloadType === UNSELECT_ACTION_TYPE\r\n || payloadType === TOGGLE_SELECT_ACTION_TYPE;\r\n }\r\n function isHighDownPayload(payload) {\r\n var payloadType = payload.type;\r\n return payloadType === HIGHLIGHT_ACTION_TYPE\r\n || payloadType === DOWNPLAY_ACTION_TYPE;\r\n }\r\n function savePathStates(el) {\r\n var store = getSavedStates(el);\r\n store.normalFill = el.style.fill;\r\n store.normalStroke = el.style.stroke;\r\n var selectState = el.states.select || {};\r\n store.selectFill = (selectState.style && selectState.style.fill) || null;\r\n store.selectStroke = (selectState.style && selectState.style.stroke) || null;\r\n }\n\n var mathMax$4 = Math.max;\r\n var mathMin$4 = Math.min;\r\n var _customShapeMap = {};\r\n function extendShape(opts) {\r\n return Path.extend(opts);\r\n }\r\n var extendPathFromString = extendFromString;\r\n function extendPath(pathData, opts) {\r\n return extendPathFromString(pathData, opts);\r\n }\r\n function registerShape(name, ShapeClass) {\r\n _customShapeMap[name] = ShapeClass;\r\n }\r\n function getShapeClass(name) {\r\n if (_customShapeMap.hasOwnProperty(name)) {\r\n return _customShapeMap[name];\r\n }\r\n }\r\n function makePath(pathData, opts, rect, layout) {\r\n var path = createFromString(pathData, opts);\r\n if (rect) {\r\n if (layout === 'center') {\r\n rect = centerGraphic(rect, path.getBoundingRect());\r\n }\r\n resizePath(path, rect);\r\n }\r\n return path;\r\n }\r\n function makeImage(imageUrl, rect, layout) {\r\n var zrImg = new ZRImage({\r\n style: {\r\n image: imageUrl,\r\n x: rect.x,\r\n y: rect.y,\r\n width: rect.width,\r\n height: rect.height\r\n },\r\n onload: function (img) {\r\n if (layout === 'center') {\r\n var boundingRect = {\r\n width: img.width,\r\n height: img.height\r\n };\r\n zrImg.setStyle(centerGraphic(rect, boundingRect));\r\n }\r\n }\r\n });\r\n return zrImg;\r\n }\r\n function centerGraphic(rect, boundingRect) {\r\n var aspect = boundingRect.width / boundingRect.height;\r\n var width = rect.height * aspect;\r\n var height;\r\n if (width <= rect.width) {\r\n height = rect.height;\r\n }\r\n else {\r\n width = rect.width;\r\n height = width / aspect;\r\n }\r\n var cx = rect.x + rect.width / 2;\r\n var cy = rect.y + rect.height / 2;\r\n return {\r\n x: cx - width / 2,\r\n y: cy - height / 2,\r\n width: width,\r\n height: height\r\n };\r\n }\r\n var mergePath$1 = mergePath;\r\n function resizePath(path, rect) {\r\n if (!path.applyTransform) {\r\n return;\r\n }\r\n var pathRect = path.getBoundingRect();\r\n var m = pathRect.calculateTransform(rect);\r\n path.applyTransform(m);\r\n }\r\n function subPixelOptimizeLine$1(param) {\r\n subPixelOptimizeLine(param.shape, param.shape, param.style);\r\n return param;\r\n }\r\n function subPixelOptimizeRect$1(param) {\r\n subPixelOptimizeRect(param.shape, param.shape, param.style);\r\n return param;\r\n }\r\n var subPixelOptimize$1 = subPixelOptimize;\r\n function animateOrSetProps(animationType, el, props, animatableModel, dataIndex, cb, during) {\r\n var isFrom = false;\r\n var removeOpt;\r\n if (typeof dataIndex === 'function') {\r\n during = cb;\r\n cb = dataIndex;\r\n dataIndex = null;\r\n }\r\n else if (isObject(dataIndex)) {\r\n cb = dataIndex.cb;\r\n during = dataIndex.during;\r\n isFrom = dataIndex.isFrom;\r\n removeOpt = dataIndex.removeOpt;\r\n dataIndex = dataIndex.dataIndex;\r\n }\r\n var isUpdate = animationType === 'update';\r\n var isRemove = animationType === 'remove';\r\n var animationPayload;\r\n if (animatableModel && animatableModel.ecModel) {\r\n var updatePayload = animatableModel.ecModel.getUpdatePayload();\r\n animationPayload = (updatePayload && updatePayload.animation);\r\n }\r\n var animationEnabled = animatableModel && animatableModel.isAnimationEnabled();\r\n if (!isRemove) {\r\n el.stopAnimation('remove');\r\n }\r\n if (animationEnabled) {\r\n var duration = void 0;\r\n var animationEasing = void 0;\r\n var animationDelay = void 0;\r\n if (animationPayload) {\r\n duration = animationPayload.duration || 0;\r\n animationEasing = animationPayload.easing || 'cubicOut';\r\n animationDelay = animationPayload.delay || 0;\r\n }\r\n else if (isRemove) {\r\n removeOpt = removeOpt || {};\r\n duration = retrieve2(removeOpt.duration, 200);\r\n animationEasing = retrieve2(removeOpt.easing, 'cubicOut');\r\n animationDelay = 0;\r\n }\r\n else {\r\n duration = animatableModel.getShallow(isUpdate ? 'animationDurationUpdate' : 'animationDuration');\r\n animationEasing = animatableModel.getShallow(isUpdate ? 'animationEasingUpdate' : 'animationEasing');\r\n animationDelay = animatableModel.getShallow(isUpdate ? 'animationDelayUpdate' : 'animationDelay');\r\n }\r\n if (typeof animationDelay === 'function') {\r\n animationDelay = animationDelay(dataIndex, animatableModel.getAnimationDelayParams\r\n ? animatableModel.getAnimationDelayParams(el, dataIndex)\r\n : null);\r\n }\r\n if (typeof duration === 'function') {\r\n duration = duration(dataIndex);\r\n }\r\n duration > 0\r\n ? (isFrom\r\n ? el.animateFrom(props, {\r\n duration: duration,\r\n delay: animationDelay || 0,\r\n easing: animationEasing,\r\n done: cb,\r\n force: !!cb || !!during,\r\n scope: animationType,\r\n during: during\r\n })\r\n : el.animateTo(props, {\r\n duration: duration,\r\n delay: animationDelay || 0,\r\n easing: animationEasing,\r\n done: cb,\r\n force: !!cb || !!during,\r\n setToFinal: true,\r\n scope: animationType,\r\n during: during\r\n }))\r\n : (el.stopAnimation(),\r\n !isFrom && el.attr(props),\r\n cb && cb());\r\n }\r\n else {\r\n el.stopAnimation();\r\n !isFrom && el.attr(props);\r\n during && during(1);\r\n cb && cb();\r\n }\r\n }\r\n function updateProps(el, props, animatableModel, dataIndex, cb, during) {\r\n animateOrSetProps('update', el, props, animatableModel, dataIndex, cb, during);\r\n }\r\n function initProps(el, props, animatableModel, dataIndex, cb, during) {\r\n animateOrSetProps('init', el, props, animatableModel, dataIndex, cb, during);\r\n }\r\n function removeElement(el, props, animatableModel, dataIndex, cb, during) {\r\n if (isElementRemoved(el)) {\r\n return;\r\n }\r\n animateOrSetProps('remove', el, props, animatableModel, dataIndex, cb, during);\r\n }\r\n function fadeOutDisplayable(el, animatableModel, dataIndex, done) {\r\n el.removeTextContent();\r\n el.removeTextGuideLine();\r\n removeElement(el, {\r\n style: {\r\n opacity: 0\r\n }\r\n }, animatableModel, dataIndex, done);\r\n }\r\n function removeElementWithFadeOut(el, animatableModel, dataIndex) {\r\n function doRemove() {\r\n el.parent && el.parent.remove(el);\r\n }\r\n if (!el.isGroup) {\r\n fadeOutDisplayable(el, animatableModel, dataIndex, doRemove);\r\n }\r\n else {\r\n el.traverse(function (disp) {\r\n if (!disp.isGroup) {\r\n fadeOutDisplayable(disp, animatableModel, dataIndex, doRemove);\r\n }\r\n });\r\n }\r\n }\r\n function isElementRemoved(el) {\r\n if (!el.__zr) {\r\n return true;\r\n }\r\n for (var i = 0; i < el.animators.length; i++) {\r\n var animator = el.animators[i];\r\n if (animator.scope === 'remove') {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n function getTransform(target, ancestor) {\r\n var mat = identity([]);\r\n while (target && target !== ancestor) {\r\n mul$1(mat, target.getLocalTransform(), mat);\r\n target = target.parent;\r\n }\r\n return mat;\r\n }\r\n function applyTransform$1(target, transform, invert$1) {\r\n if (transform && !isArrayLike(transform)) {\r\n transform = Transformable.getLocalTransform(transform);\r\n }\r\n if (invert$1) {\r\n transform = invert([], transform);\r\n }\r\n return applyTransform([], target, transform);\r\n }\r\n function transformDirection(direction, transform, invert) {\r\n var hBase = (transform[4] === 0 || transform[5] === 0 || transform[0] === 0)\r\n ? 1 : Math.abs(2 * transform[4] / transform[0]);\r\n var vBase = (transform[4] === 0 || transform[5] === 0 || transform[2] === 0)\r\n ? 1 : Math.abs(2 * transform[4] / transform[2]);\r\n var vertex = [\r\n direction === 'left' ? -hBase : direction === 'right' ? hBase : 0,\r\n direction === 'top' ? -vBase : direction === 'bottom' ? vBase : 0\r\n ];\r\n vertex = applyTransform$1(vertex, transform, invert);\r\n return Math.abs(vertex[0]) > Math.abs(vertex[1])\r\n ? (vertex[0] > 0 ? 'right' : 'left')\r\n : (vertex[1] > 0 ? 'bottom' : 'top');\r\n }\r\n function isNotGroup(el) {\r\n return !el.isGroup;\r\n }\r\n function isPath(el) {\r\n return el.shape != null;\r\n }\r\n function groupTransition(g1, g2, animatableModel) {\r\n if (!g1 || !g2) {\r\n return;\r\n }\r\n function getElMap(g) {\r\n var elMap = {};\r\n g.traverse(function (el) {\r\n if (isNotGroup(el) && el.anid) {\r\n elMap[el.anid] = el;\r\n }\r\n });\r\n return elMap;\r\n }\r\n function getAnimatableProps(el) {\r\n var obj = {\r\n x: el.x,\r\n y: el.y,\r\n rotation: el.rotation\r\n };\r\n if (isPath(el)) {\r\n obj.shape = extend({}, el.shape);\r\n }\r\n return obj;\r\n }\r\n var elMap1 = getElMap(g1);\r\n g2.traverse(function (el) {\r\n if (isNotGroup(el) && el.anid) {\r\n var oldEl = elMap1[el.anid];\r\n if (oldEl) {\r\n var newProp = getAnimatableProps(el);\r\n el.attr(getAnimatableProps(oldEl));\r\n updateProps(el, newProp, animatableModel, getECData(el).dataIndex);\r\n }\r\n }\r\n });\r\n }\r\n function clipPointsByRect(points, rect) {\r\n return map(points, function (point) {\r\n var x = point[0];\r\n x = mathMax$4(x, rect.x);\r\n x = mathMin$4(x, rect.x + rect.width);\r\n var y = point[1];\r\n y = mathMax$4(y, rect.y);\r\n y = mathMin$4(y, rect.y + rect.height);\r\n return [x, y];\r\n });\r\n }\r\n function clipRectByRect(targetRect, rect) {\r\n var x = mathMax$4(targetRect.x, rect.x);\r\n var x2 = mathMin$4(targetRect.x + targetRect.width, rect.x + rect.width);\r\n var y = mathMax$4(targetRect.y, rect.y);\r\n var y2 = mathMin$4(targetRect.y + targetRect.height, rect.y + rect.height);\r\n if (x2 >= x && y2 >= y) {\r\n return {\r\n x: x,\r\n y: y,\r\n width: x2 - x,\r\n height: y2 - y\r\n };\r\n }\r\n }\r\n function createIcon(iconStr, opt, rect) {\r\n var innerOpts = extend({ rectHover: true }, opt);\r\n var style = innerOpts.style = { strokeNoScale: true };\r\n rect = rect || { x: -1, y: -1, width: 2, height: 2 };\r\n if (iconStr) {\r\n return iconStr.indexOf('image://') === 0\r\n ? (style.image = iconStr.slice(8),\r\n defaults(style, rect),\r\n new ZRImage(innerOpts))\r\n : (makePath(iconStr.replace('path://', ''), innerOpts, rect, 'center'));\r\n }\r\n }\r\n function linePolygonIntersect(a1x, a1y, a2x, a2y, points) {\r\n for (var i = 0, p2 = points[points.length - 1]; i < points.length; i++) {\r\n var p = points[i];\r\n if (lineLineIntersect(a1x, a1y, a2x, a2y, p[0], p[1], p2[0], p2[1])) {\r\n return true;\r\n }\r\n p2 = p;\r\n }\r\n }\r\n function lineLineIntersect(a1x, a1y, a2x, a2y, b1x, b1y, b2x, b2y) {\r\n var mx = a2x - a1x;\r\n var my = a2y - a1y;\r\n var nx = b2x - b1x;\r\n var ny = b2y - b1y;\r\n var nmCrossProduct = crossProduct2d(nx, ny, mx, my);\r\n if (nearZero(nmCrossProduct)) {\r\n return false;\r\n }\r\n var b1a1x = a1x - b1x;\r\n var b1a1y = a1y - b1y;\r\n var q = crossProduct2d(b1a1x, b1a1y, mx, my) / nmCrossProduct;\r\n if (q < 0 || q > 1) {\r\n return false;\r\n }\r\n var p = crossProduct2d(b1a1x, b1a1y, nx, ny) / nmCrossProduct;\r\n if (p < 0 || p > 1) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n function crossProduct2d(x1, y1, x2, y2) {\r\n return x1 * y2 - x2 * y1;\r\n }\r\n function nearZero(val) {\r\n return val <= (1e-6) && val >= -(1e-6);\r\n }\r\n registerShape('circle', Circle);\r\n registerShape('ellipse', Ellipse);\r\n registerShape('sector', Sector);\r\n registerShape('ring', Ring);\r\n registerShape('polygon', Polygon);\r\n registerShape('polyline', Polyline);\r\n registerShape('rect', Rect);\r\n registerShape('line', Line);\r\n registerShape('bezierCurve', BezierCurve);\r\n registerShape('arc', Arc);\n\n var graphic = /*#__PURE__*/Object.freeze({\n __proto__: null,\n extendShape: extendShape,\n extendPath: extendPath,\n registerShape: registerShape,\n getShapeClass: getShapeClass,\n makePath: makePath,\n makeImage: makeImage,\n mergePath: mergePath$1,\n resizePath: resizePath,\n subPixelOptimizeLine: subPixelOptimizeLine$1,\n subPixelOptimizeRect: subPixelOptimizeRect$1,\n subPixelOptimize: subPixelOptimize$1,\n updateProps: updateProps,\n initProps: initProps,\n removeElement: removeElement,\n removeElementWithFadeOut: removeElementWithFadeOut,\n isElementRemoved: isElementRemoved,\n getTransform: getTransform,\n applyTransform: applyTransform$1,\n transformDirection: transformDirection,\n groupTransition: groupTransition,\n clipPointsByRect: clipPointsByRect,\n clipRectByRect: clipRectByRect,\n createIcon: createIcon,\n linePolygonIntersect: linePolygonIntersect,\n lineLineIntersect: lineLineIntersect,\n Group: Group,\n Image: ZRImage,\n Text: ZRText,\n Circle: Circle,\n Ellipse: Ellipse,\n Sector: Sector,\n Ring: Ring,\n Polygon: Polygon,\n Polyline: Polyline,\n Rect: Rect,\n Line: Line,\n BezierCurve: BezierCurve,\n Arc: Arc,\n IncrementalDisplayable: IncrementalDisplayble,\n CompoundPath: CompoundPath,\n LinearGradient: LinearGradient,\n RadialGradient: RadialGradient,\n BoundingRect: BoundingRect,\n OrientedBoundingRect: OrientedBoundingRect,\n Point: Point,\n Path: Path\n });\n\n var EMPTY_OBJ = {};\r\n function setLabelText(label, labelTexts) {\r\n for (var i = 0; i < SPECIAL_STATES.length; i++) {\r\n var stateName = SPECIAL_STATES[i];\r\n var text = labelTexts[stateName];\r\n var state = label.ensureState(stateName);\r\n state.style = state.style || {};\r\n state.style.text = text;\r\n }\r\n var oldStates = label.currentStates.slice();\r\n label.clearStates(true);\r\n label.setStyle({ text: labelTexts.normal });\r\n label.useStates(oldStates, true);\r\n }\r\n function getLabelText(opt, stateModels, overrideValue) {\r\n var labelFetcher = opt.labelFetcher;\r\n var labelDataIndex = opt.labelDataIndex;\r\n var labelDimIndex = opt.labelDimIndex;\r\n var normalModel = stateModels.normal;\r\n var baseText;\r\n if (labelFetcher) {\r\n baseText = labelFetcher.getFormattedLabel(labelDataIndex, 'normal', null, labelDimIndex, normalModel && normalModel.get('formatter'), overrideValue != null ? {\r\n value: overrideValue\r\n } : null);\r\n }\r\n if (baseText == null) {\r\n baseText = isFunction(opt.defaultText) ? opt.defaultText(labelDataIndex, opt, overrideValue) : opt.defaultText;\r\n }\r\n var statesText = {\r\n normal: baseText\r\n };\r\n for (var i = 0; i < SPECIAL_STATES.length; i++) {\r\n var stateName = SPECIAL_STATES[i];\r\n var stateModel = stateModels[stateName];\r\n statesText[stateName] = retrieve2(labelFetcher\r\n ? labelFetcher.getFormattedLabel(labelDataIndex, stateName, null, labelDimIndex, stateModel && stateModel.get('formatter'))\r\n : null, baseText);\r\n }\r\n return statesText;\r\n }\r\n function setLabelStyle(targetEl, labelStatesModels, opt, stateSpecified) {\r\n opt = opt || EMPTY_OBJ;\r\n var isSetOnText = targetEl instanceof ZRText;\r\n var needsCreateText = false;\r\n for (var i = 0; i < DISPLAY_STATES.length; i++) {\r\n var stateModel = labelStatesModels[DISPLAY_STATES[i]];\r\n if (stateModel && stateModel.getShallow('show')) {\r\n needsCreateText = true;\r\n break;\r\n }\r\n }\r\n var textContent = isSetOnText ? targetEl : targetEl.getTextContent();\r\n if (needsCreateText) {\r\n if (!isSetOnText) {\r\n if (!textContent) {\r\n textContent = new ZRText();\r\n targetEl.setTextContent(textContent);\r\n }\r\n if (targetEl.stateProxy) {\r\n textContent.stateProxy = targetEl.stateProxy;\r\n }\r\n }\r\n var labelStatesTexts = getLabelText(opt, labelStatesModels);\r\n var normalModel = labelStatesModels.normal;\r\n var showNormal = !!normalModel.getShallow('show');\r\n var normalStyle = createTextStyle(normalModel, stateSpecified && stateSpecified.normal, opt, false, !isSetOnText);\r\n normalStyle.text = labelStatesTexts.normal;\r\n if (!isSetOnText) {\r\n targetEl.setTextConfig(createTextConfig(normalModel, opt, false));\r\n }\r\n for (var i = 0; i < SPECIAL_STATES.length; i++) {\r\n var stateName = SPECIAL_STATES[i];\r\n var stateModel = labelStatesModels[stateName];\r\n if (stateModel) {\r\n var stateObj = textContent.ensureState(stateName);\r\n var stateShow = !!retrieve2(stateModel.getShallow('show'), showNormal);\r\n if (stateShow !== showNormal) {\r\n stateObj.ignore = !stateShow;\r\n }\r\n stateObj.style = createTextStyle(stateModel, stateSpecified && stateSpecified[stateName], opt, true, !isSetOnText);\r\n stateObj.style.text = labelStatesTexts[stateName];\r\n if (!isSetOnText) {\r\n var targetElEmphasisState = targetEl.ensureState(stateName);\r\n targetElEmphasisState.textConfig = createTextConfig(stateModel, opt, true);\r\n }\r\n }\r\n }\r\n textContent.silent = !!normalModel.getShallow('silent');\r\n if (textContent.style.x != null) {\r\n normalStyle.x = textContent.style.x;\r\n }\r\n if (textContent.style.y != null) {\r\n normalStyle.y = textContent.style.y;\r\n }\r\n textContent.ignore = !showNormal;\r\n textContent.useStyle(normalStyle);\r\n textContent.dirty();\r\n if (opt.enableTextSetter) {\r\n labelInner(textContent).setLabelText = function (overrideValue) {\r\n var labelStatesTexts = getLabelText(opt, labelStatesModels, overrideValue);\r\n setLabelText(textContent, labelStatesTexts);\r\n };\r\n }\r\n }\r\n else if (textContent) {\r\n textContent.ignore = true;\r\n }\r\n targetEl.dirty();\r\n }\r\n function getLabelStatesModels(itemModel, labelName) {\r\n labelName = (labelName || 'label');\r\n var statesModels = {\r\n normal: itemModel.getModel(labelName)\r\n };\r\n for (var i = 0; i < SPECIAL_STATES.length; i++) {\r\n var stateName = SPECIAL_STATES[i];\r\n statesModels[stateName] = itemModel.getModel([stateName, labelName]);\r\n }\r\n return statesModels;\r\n }\r\n function createTextStyle(textStyleModel, specifiedTextStyle, opt, isNotNormal, isAttached) {\r\n var textStyle = {};\r\n setTextStyleCommon(textStyle, textStyleModel, opt, isNotNormal, isAttached);\r\n specifiedTextStyle && extend(textStyle, specifiedTextStyle);\r\n return textStyle;\r\n }\r\n function createTextConfig(textStyleModel, opt, isNotNormal) {\r\n opt = opt || {};\r\n var textConfig = {};\r\n var labelPosition;\r\n var labelRotate = textStyleModel.getShallow('rotate');\r\n var labelDistance = retrieve2(textStyleModel.getShallow('distance'), isNotNormal ? null : 5);\r\n var labelOffset = textStyleModel.getShallow('offset');\r\n labelPosition = textStyleModel.getShallow('position')\r\n || (isNotNormal ? null : 'inside');\r\n labelPosition === 'outside' && (labelPosition = opt.defaultOutsidePosition || 'top');\r\n if (labelPosition != null) {\r\n textConfig.position = labelPosition;\r\n }\r\n if (labelOffset != null) {\r\n textConfig.offset = labelOffset;\r\n }\r\n if (labelRotate != null) {\r\n labelRotate *= Math.PI / 180;\r\n textConfig.rotation = labelRotate;\r\n }\r\n if (labelDistance != null) {\r\n textConfig.distance = labelDistance;\r\n }\r\n textConfig.outsideFill = textStyleModel.get('color') === 'inherit'\r\n ? (opt.inheritColor || null)\r\n : 'auto';\r\n return textConfig;\r\n }\r\n function setTextStyleCommon(textStyle, textStyleModel, opt, isNotNormal, isAttached) {\r\n opt = opt || EMPTY_OBJ;\r\n var ecModel = textStyleModel.ecModel;\r\n var globalTextStyle = ecModel && ecModel.option.textStyle;\r\n var richItemNames = getRichItemNames(textStyleModel);\r\n var richResult;\r\n if (richItemNames) {\r\n richResult = {};\r\n for (var name_1 in richItemNames) {\r\n if (richItemNames.hasOwnProperty(name_1)) {\r\n var richTextStyle = textStyleModel.getModel(['rich', name_1]);\r\n setTokenTextStyle(richResult[name_1] = {}, richTextStyle, globalTextStyle, opt, isNotNormal, isAttached, false, true);\r\n }\r\n }\r\n }\r\n if (richResult) {\r\n textStyle.rich = richResult;\r\n }\r\n var overflow = textStyleModel.get('overflow');\r\n if (overflow) {\r\n textStyle.overflow = overflow;\r\n }\r\n var margin = textStyleModel.get('minMargin');\r\n if (margin != null) {\r\n textStyle.margin = margin;\r\n }\r\n setTokenTextStyle(textStyle, textStyleModel, globalTextStyle, opt, isNotNormal, isAttached, true, false);\r\n }\r\n function getRichItemNames(textStyleModel) {\r\n var richItemNameMap;\r\n while (textStyleModel && textStyleModel !== textStyleModel.ecModel) {\r\n var rich = (textStyleModel.option || EMPTY_OBJ).rich;\r\n if (rich) {\r\n richItemNameMap = richItemNameMap || {};\r\n var richKeys = keys(rich);\r\n for (var i = 0; i < richKeys.length; i++) {\r\n var richKey = richKeys[i];\r\n richItemNameMap[richKey] = 1;\r\n }\r\n }\r\n textStyleModel = textStyleModel.parentModel;\r\n }\r\n return richItemNameMap;\r\n }\r\n var TEXT_PROPS_WITH_GLOBAL = [\r\n 'fontStyle', 'fontWeight', 'fontSize', 'fontFamily',\r\n 'textShadowColor', 'textShadowBlur', 'textShadowOffsetX', 'textShadowOffsetY'\r\n ];\r\n var TEXT_PROPS_SELF = [\r\n 'align', 'lineHeight', 'width', 'height', 'tag', 'verticalAlign'\r\n ];\r\n var TEXT_PROPS_BOX = [\r\n 'padding', 'borderWidth', 'borderRadius', 'borderDashOffset',\r\n 'backgroundColor', 'borderColor',\r\n 'shadowColor', 'shadowBlur', 'shadowOffsetX', 'shadowOffsetY'\r\n ];\r\n function setTokenTextStyle(textStyle, textStyleModel, globalTextStyle, opt, isNotNormal, isAttached, isBlock, inRich) {\r\n globalTextStyle = !isNotNormal && globalTextStyle || EMPTY_OBJ;\r\n var inheritColor = opt && opt.inheritColor;\r\n var fillColor = textStyleModel.getShallow('color');\r\n var strokeColor = textStyleModel.getShallow('textBorderColor');\r\n var opacity = retrieve2(textStyleModel.getShallow('opacity'), globalTextStyle.opacity);\r\n if (fillColor === 'inherit' || fillColor === 'auto') {\r\n if (__DEV__) {\r\n if (fillColor === 'auto') {\r\n deprecateReplaceLog('color: \\'auto\\'', 'color: \\'inherit\\'');\r\n }\r\n }\r\n if (inheritColor) {\r\n fillColor = inheritColor;\r\n }\r\n else {\r\n fillColor = null;\r\n }\r\n }\r\n if (strokeColor === 'inherit' || (strokeColor === 'auto')) {\r\n if (__DEV__) {\r\n if (strokeColor === 'auto') {\r\n deprecateReplaceLog('color: \\'auto\\'', 'color: \\'inherit\\'');\r\n }\r\n }\r\n if (inheritColor) {\r\n strokeColor = inheritColor;\r\n }\r\n else {\r\n strokeColor = null;\r\n }\r\n }\r\n if (!isAttached) {\r\n fillColor = fillColor || globalTextStyle.color;\r\n strokeColor = strokeColor || globalTextStyle.textBorderColor;\r\n }\r\n if (fillColor != null) {\r\n textStyle.fill = fillColor;\r\n }\r\n if (strokeColor != null) {\r\n textStyle.stroke = strokeColor;\r\n }\r\n var textBorderWidth = retrieve2(textStyleModel.getShallow('textBorderWidth'), globalTextStyle.textBorderWidth);\r\n if (textBorderWidth != null) {\r\n textStyle.lineWidth = textBorderWidth;\r\n }\r\n var textBorderType = retrieve2(textStyleModel.getShallow('textBorderType'), globalTextStyle.textBorderType);\r\n if (textBorderType != null) {\r\n textStyle.lineDash = textBorderType;\r\n }\r\n var textBorderDashOffset = retrieve2(textStyleModel.getShallow('textBorderDashOffset'), globalTextStyle.textBorderDashOffset);\r\n if (textBorderDashOffset != null) {\r\n textStyle.lineDashOffset = textBorderDashOffset;\r\n }\r\n if (!isNotNormal && (opacity == null) && !inRich) {\r\n opacity = opt && opt.defaultOpacity;\r\n }\r\n if (opacity != null) {\r\n textStyle.opacity = opacity;\r\n }\r\n if (!isNotNormal && !isAttached) {\r\n if (textStyle.fill == null && opt.inheritColor) {\r\n textStyle.fill = opt.inheritColor;\r\n }\r\n }\r\n for (var i = 0; i < TEXT_PROPS_WITH_GLOBAL.length; i++) {\r\n var key = TEXT_PROPS_WITH_GLOBAL[i];\r\n var val = retrieve2(textStyleModel.getShallow(key), globalTextStyle[key]);\r\n if (val != null) {\r\n textStyle[key] = val;\r\n }\r\n }\r\n for (var i = 0; i < TEXT_PROPS_SELF.length; i++) {\r\n var key = TEXT_PROPS_SELF[i];\r\n var val = textStyleModel.getShallow(key);\r\n if (val != null) {\r\n textStyle[key] = val;\r\n }\r\n }\r\n if (textStyle.verticalAlign == null) {\r\n var baseline = textStyleModel.getShallow('baseline');\r\n if (baseline != null) {\r\n textStyle.verticalAlign = baseline;\r\n }\r\n }\r\n if (!isBlock || !opt.disableBox) {\r\n for (var i = 0; i < TEXT_PROPS_BOX.length; i++) {\r\n var key = TEXT_PROPS_BOX[i];\r\n var val = textStyleModel.getShallow(key);\r\n if (val != null) {\r\n textStyle[key] = val;\r\n }\r\n }\r\n var borderType = textStyleModel.getShallow('borderType');\r\n if (borderType != null) {\r\n textStyle.borderDash = borderType;\r\n }\r\n if ((textStyle.backgroundColor === 'auto' || textStyle.backgroundColor === 'inherit') && inheritColor) {\r\n if (__DEV__) {\r\n if (textStyle.backgroundColor === 'auto') {\r\n deprecateReplaceLog('backgroundColor: \\'auto\\'', 'backgroundColor: \\'inherit\\'');\r\n }\r\n }\r\n textStyle.backgroundColor = inheritColor;\r\n }\r\n if ((textStyle.borderColor === 'auto' || textStyle.borderColor === 'inherit') && inheritColor) {\r\n if (__DEV__) {\r\n if (textStyle.borderColor === 'auto') {\r\n deprecateReplaceLog('borderColor: \\'auto\\'', 'borderColor: \\'inherit\\'');\r\n }\r\n }\r\n textStyle.borderColor = inheritColor;\r\n }\r\n }\r\n }\r\n function getFont(opt, ecModel) {\r\n var gTextStyleModel = ecModel && ecModel.getModel('textStyle');\r\n return trim([\r\n opt.fontStyle || gTextStyleModel && gTextStyleModel.getShallow('fontStyle') || '',\r\n opt.fontWeight || gTextStyleModel && gTextStyleModel.getShallow('fontWeight') || '',\r\n (opt.fontSize || gTextStyleModel && gTextStyleModel.getShallow('fontSize') || 12) + 'px',\r\n opt.fontFamily || gTextStyleModel && gTextStyleModel.getShallow('fontFamily') || 'sans-serif'\r\n ].join(' '));\r\n }\r\n var labelInner = makeInner();\r\n function setLabelValueAnimation(label, labelStatesModels, value, getDefaultText) {\r\n if (!label) {\r\n return;\r\n }\r\n var obj = labelInner(label);\r\n obj.prevValue = obj.value;\r\n obj.value = value;\r\n var normalLabelModel = labelStatesModels.normal;\r\n obj.valueAnimation = normalLabelModel.get('valueAnimation');\r\n if (obj.valueAnimation) {\r\n obj.precision = normalLabelModel.get('precision');\r\n obj.defaultInterpolatedText = getDefaultText;\r\n obj.statesModels = labelStatesModels;\r\n }\r\n }\r\n function animateLabelValue(textEl, dataIndex, data, seriesModel) {\r\n var labelInnerStore = labelInner(textEl);\r\n if (!labelInnerStore.valueAnimation) {\r\n return;\r\n }\r\n var defaultInterpolatedText = labelInnerStore.defaultInterpolatedText;\r\n var prevValue = labelInnerStore.prevValue;\r\n var currentValue = labelInnerStore.value;\r\n function during(percent) {\r\n var interpolated = interpolateRawValues(data, labelInnerStore.precision, prevValue, currentValue, percent);\r\n var labelText = getLabelText({\r\n labelDataIndex: dataIndex,\r\n defaultText: defaultInterpolatedText\r\n ? defaultInterpolatedText(interpolated)\r\n : interpolated + ''\r\n }, labelInnerStore.statesModels, interpolated);\r\n setLabelText(textEl, labelText);\r\n }\r\n (prevValue == null ? initProps\r\n : updateProps)(textEl, {}, seriesModel, dataIndex, null, during);\r\n }\n\n var PATH_COLOR = ['textStyle', 'color'];\r\n var tmpRichText = new ZRText();\r\n var TextStyleMixin = (function () {\r\n function TextStyleMixin() {\r\n }\r\n TextStyleMixin.prototype.getTextColor = function (isEmphasis) {\r\n var ecModel = this.ecModel;\r\n return this.getShallow('color')\r\n || ((!isEmphasis && ecModel) ? ecModel.get(PATH_COLOR) : null);\r\n };\r\n TextStyleMixin.prototype.getFont = function () {\r\n return getFont({\r\n fontStyle: this.getShallow('fontStyle'),\r\n fontWeight: this.getShallow('fontWeight'),\r\n fontSize: this.getShallow('fontSize'),\r\n fontFamily: this.getShallow('fontFamily')\r\n }, this.ecModel);\r\n };\r\n TextStyleMixin.prototype.getTextRect = function (text) {\r\n tmpRichText.useStyle({\r\n text: text,\r\n fontStyle: this.getShallow('fontStyle'),\r\n fontWeight: this.getShallow('fontWeight'),\r\n fontSize: this.getShallow('fontSize'),\r\n fontFamily: this.getShallow('fontFamily'),\r\n verticalAlign: this.getShallow('verticalAlign') || this.getShallow('baseline'),\r\n padding: this.getShallow('padding'),\r\n lineHeight: this.getShallow('lineHeight'),\r\n rich: this.getShallow('rich')\r\n });\r\n tmpRichText.update();\r\n return tmpRichText.getBoundingRect();\r\n };\r\n return TextStyleMixin;\r\n }());\n\n var LINE_STYLE_KEY_MAP = [\r\n ['lineWidth', 'width'],\r\n ['stroke', 'color'],\r\n ['opacity'],\r\n ['shadowBlur'],\r\n ['shadowOffsetX'],\r\n ['shadowOffsetY'],\r\n ['shadowColor'],\r\n ['lineDash', 'type'],\r\n ['lineDashOffset', 'dashOffset'],\r\n ['lineCap', 'cap'],\r\n ['lineJoin', 'join'],\r\n ['miterLimit']\r\n ];\r\n var getLineStyle = makeStyleMapper(LINE_STYLE_KEY_MAP);\r\n var LineStyleMixin = (function () {\r\n function LineStyleMixin() {\r\n }\r\n LineStyleMixin.prototype.getLineStyle = function (excludes) {\r\n return getLineStyle(this, excludes);\r\n };\r\n return LineStyleMixin;\r\n }());\n\n var ITEM_STYLE_KEY_MAP = [\r\n ['fill', 'color'],\r\n ['stroke', 'borderColor'],\r\n ['lineWidth', 'borderWidth'],\r\n ['opacity'],\r\n ['shadowBlur'],\r\n ['shadowOffsetX'],\r\n ['shadowOffsetY'],\r\n ['shadowColor'],\r\n ['lineDash', 'borderType'],\r\n ['lineDashOffset', 'borderDashOffset'],\r\n ['lineCap', 'borderCap'],\r\n ['lineJoin', 'borderJoin'],\r\n ['miterLimit', 'borderMiterLimit']\r\n ];\r\n var getItemStyle = makeStyleMapper(ITEM_STYLE_KEY_MAP);\r\n var ItemStyleMixin = (function () {\r\n function ItemStyleMixin() {\r\n }\r\n ItemStyleMixin.prototype.getItemStyle = function (excludes, includes) {\r\n return getItemStyle(this, excludes, includes);\r\n };\r\n return ItemStyleMixin;\r\n }());\n\n var Model = (function () {\r\n function Model(option, parentModel, ecModel) {\r\n this.parentModel = parentModel;\r\n this.ecModel = ecModel;\r\n this.option = option;\r\n }\r\n Model.prototype.init = function (option, parentModel, ecModel) {\r\n var rest = [];\r\n for (var _i = 3; _i < arguments.length; _i++) {\r\n rest[_i - 3] = arguments[_i];\r\n }\r\n };\r\n Model.prototype.mergeOption = function (option, ecModel) {\r\n merge(this.option, option, true);\r\n };\r\n Model.prototype.get = function (path, ignoreParent) {\r\n if (path == null) {\r\n return this.option;\r\n }\r\n return this._doGet(this.parsePath(path), !ignoreParent && this.parentModel);\r\n };\r\n Model.prototype.getShallow = function (key, ignoreParent) {\r\n var option = this.option;\r\n var val = option == null ? option : option[key];\r\n if (val == null && !ignoreParent) {\r\n var parentModel = this.parentModel;\r\n if (parentModel) {\r\n val = parentModel.getShallow(key);\r\n }\r\n }\r\n return val;\r\n };\r\n Model.prototype.getModel = function (path, parentModel) {\r\n var hasPath = path != null;\r\n var pathFinal = hasPath ? this.parsePath(path) : null;\r\n var obj = hasPath\r\n ? this._doGet(pathFinal)\r\n : this.option;\r\n parentModel = parentModel || (this.parentModel\r\n && this.parentModel.getModel(this.resolveParentPath(pathFinal)));\r\n return new Model(obj, parentModel, this.ecModel);\r\n };\r\n Model.prototype.isEmpty = function () {\r\n return this.option == null;\r\n };\r\n Model.prototype.restoreData = function () { };\r\n Model.prototype.clone = function () {\r\n var Ctor = this.constructor;\r\n return new Ctor(clone(this.option));\r\n };\r\n Model.prototype.parsePath = function (path) {\r\n if (typeof path === 'string') {\r\n return path.split('.');\r\n }\r\n return path;\r\n };\r\n Model.prototype.resolveParentPath = function (path) {\r\n return path;\r\n };\r\n Model.prototype.isAnimationEnabled = function () {\r\n if (!env.node && this.option) {\r\n if (this.option.animation != null) {\r\n return !!this.option.animation;\r\n }\r\n else if (this.parentModel) {\r\n return this.parentModel.isAnimationEnabled();\r\n }\r\n }\r\n };\r\n Model.prototype._doGet = function (pathArr, parentModel) {\r\n var obj = this.option;\r\n if (!pathArr) {\r\n return obj;\r\n }\r\n for (var i = 0; i < pathArr.length; i++) {\r\n if (!pathArr[i]) {\r\n continue;\r\n }\r\n obj = (obj && typeof obj === 'object') ? obj[pathArr[i]] : null;\r\n if (obj == null) {\r\n break;\r\n }\r\n }\r\n if (obj == null && parentModel) {\r\n obj = parentModel._doGet(this.resolveParentPath(pathArr), parentModel.parentModel);\r\n }\r\n return obj;\r\n };\r\n return Model;\r\n }());\r\n enableClassExtend(Model);\r\n enableClassCheck(Model);\r\n mixin(Model, LineStyleMixin);\r\n mixin(Model, ItemStyleMixin);\r\n mixin(Model, AreaStyleMixin);\r\n mixin(Model, TextStyleMixin);\n\n var base = Math.round(Math.random() * 10);\r\n function getUID(type) {\r\n return [(type || ''), base++].join('_');\r\n }\r\n function enableSubTypeDefaulter(target) {\r\n var subTypeDefaulters = {};\r\n target.registerSubTypeDefaulter = function (componentType, defaulter) {\r\n var componentTypeInfo = parseClassType(componentType);\r\n subTypeDefaulters[componentTypeInfo.main] = defaulter;\r\n };\r\n target.determineSubType = function (componentType, option) {\r\n var type = option.type;\r\n if (!type) {\r\n var componentTypeMain = parseClassType(componentType).main;\r\n if (target.hasSubTypes(componentType) && subTypeDefaulters[componentTypeMain]) {\r\n type = subTypeDefaulters[componentTypeMain](option);\r\n }\r\n }\r\n return type;\r\n };\r\n }\r\n function enableTopologicalTravel(entity, dependencyGetter) {\r\n entity.topologicalTravel = function (targetNameList, fullNameList, callback, context) {\r\n if (!targetNameList.length) {\r\n return;\r\n }\r\n var result = makeDepndencyGraph(fullNameList);\r\n var graph = result.graph;\r\n var noEntryList = result.noEntryList;\r\n var targetNameSet = {};\r\n each(targetNameList, function (name) {\r\n targetNameSet[name] = true;\r\n });\r\n while (noEntryList.length) {\r\n var currComponentType = noEntryList.pop();\r\n var currVertex = graph[currComponentType];\r\n var isInTargetNameSet = !!targetNameSet[currComponentType];\r\n if (isInTargetNameSet) {\r\n callback.call(context, currComponentType, currVertex.originalDeps.slice());\r\n delete targetNameSet[currComponentType];\r\n }\r\n each(currVertex.successor, isInTargetNameSet ? removeEdgeAndAdd : removeEdge);\r\n }\r\n each(targetNameSet, function () {\r\n var errMsg = '';\r\n if (__DEV__) {\r\n errMsg = makePrintable('Circle dependency may exists: ', targetNameSet, targetNameList, fullNameList);\r\n }\r\n throw new Error(errMsg);\r\n });\r\n function removeEdge(succComponentType) {\r\n graph[succComponentType].entryCount--;\r\n if (graph[succComponentType].entryCount === 0) {\r\n noEntryList.push(succComponentType);\r\n }\r\n }\r\n function removeEdgeAndAdd(succComponentType) {\r\n targetNameSet[succComponentType] = true;\r\n removeEdge(succComponentType);\r\n }\r\n };\r\n function makeDepndencyGraph(fullNameList) {\r\n var graph = {};\r\n var noEntryList = [];\r\n each(fullNameList, function (name) {\r\n var thisItem = createDependencyGraphItem(graph, name);\r\n var originalDeps = thisItem.originalDeps = dependencyGetter(name);\r\n var availableDeps = getAvailableDependencies(originalDeps, fullNameList);\r\n thisItem.entryCount = availableDeps.length;\r\n if (thisItem.entryCount === 0) {\r\n noEntryList.push(name);\r\n }\r\n each(availableDeps, function (dependentName) {\r\n if (indexOf(thisItem.predecessor, dependentName) < 0) {\r\n thisItem.predecessor.push(dependentName);\r\n }\r\n var thatItem = createDependencyGraphItem(graph, dependentName);\r\n if (indexOf(thatItem.successor, dependentName) < 0) {\r\n thatItem.successor.push(name);\r\n }\r\n });\r\n });\r\n return { graph: graph, noEntryList: noEntryList };\r\n }\r\n function createDependencyGraphItem(graph, name) {\r\n if (!graph[name]) {\r\n graph[name] = { predecessor: [], successor: [] };\r\n }\r\n return graph[name];\r\n }\r\n function getAvailableDependencies(originalDeps, fullNameList) {\r\n var availableDeps = [];\r\n each(originalDeps, function (dep) {\r\n indexOf(fullNameList, dep) >= 0 && availableDeps.push(dep);\r\n });\r\n return availableDeps;\r\n }\r\n }\r\n function inheritDefaultOption(superOption, subOption) {\r\n return merge(merge({}, superOption, true), subOption, true);\r\n }\n\n var langEN = {\r\n time: {\r\n month: [\r\n 'January', 'February', 'March', 'April', 'May', 'June',\r\n 'July', 'August', 'September', 'October', 'November', 'December'\r\n ],\r\n monthAbbr: [\r\n 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',\r\n 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'\r\n ],\r\n dayOfWeek: [\r\n 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'\r\n ],\r\n dayOfWeekAbbr: [\r\n 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'\r\n ]\r\n },\r\n legend: {\r\n selector: {\r\n all: 'All',\r\n inverse: 'Inv'\r\n }\r\n },\r\n toolbox: {\r\n brush: {\r\n title: {\r\n rect: 'Box Select',\r\n polygon: 'Lasso Select',\r\n lineX: 'Horizontally Select',\r\n lineY: 'Vertically Select',\r\n keep: 'Keep Selections',\r\n clear: 'Clear Selections'\r\n }\r\n },\r\n dataView: {\r\n title: 'Data View',\r\n lang: ['Data View', 'Close', 'Refresh']\r\n },\r\n dataZoom: {\r\n title: {\r\n zoom: 'Zoom',\r\n back: 'Zoom Reset'\r\n }\r\n },\r\n magicType: {\r\n title: {\r\n line: 'Switch to Line Chart',\r\n bar: 'Switch to Bar Chart',\r\n stack: 'Stack',\r\n tiled: 'Tile'\r\n }\r\n },\r\n restore: {\r\n title: 'Restore'\r\n },\r\n saveAsImage: {\r\n title: 'Save as Image',\r\n lang: ['Right Click to Save Image']\r\n }\r\n },\r\n series: {\r\n typeNames: {\r\n pie: 'Pie chart',\r\n bar: 'Bar chart',\r\n line: 'Line chart',\r\n scatter: 'Scatter plot',\r\n effectScatter: 'Ripple scatter plot',\r\n radar: 'Radar chart',\r\n tree: 'Tree',\r\n treemap: 'Treemap',\r\n boxplot: 'Boxplot',\r\n candlestick: 'Candlestick',\r\n k: 'K line chart',\r\n heatmap: 'Heat map',\r\n map: 'Map',\r\n parallel: 'Parallel coordinate map',\r\n lines: 'Line graph',\r\n graph: 'Relationship graph',\r\n sankey: 'Sankey diagram',\r\n funnel: 'Funnel chart',\r\n gauge: 'Guage',\r\n pictorialBar: 'Pictorial bar',\r\n themeRiver: 'Theme River Map',\r\n sunburst: 'Sunburst'\r\n }\r\n },\r\n aria: {\r\n general: {\r\n withTitle: 'This is a chart about \"{title}\"',\r\n withoutTitle: 'This is a chart'\r\n },\r\n series: {\r\n single: {\r\n prefix: '',\r\n withName: ' with type {seriesType} named {seriesName}.',\r\n withoutName: ' with type {seriesType}.'\r\n },\r\n multiple: {\r\n prefix: '. It consists of {seriesCount} series count.',\r\n withName: ' The {seriesId} series is a {seriesType} representing {seriesName}.',\r\n withoutName: ' The {seriesId} series is a {seriesType}.',\r\n separator: {\r\n middle: '',\r\n end: ''\r\n }\r\n }\r\n },\r\n data: {\r\n allData: 'The data is as follows: ',\r\n partialData: 'The first {displayCnt} items are: ',\r\n withName: 'the data for {name} is {value}',\r\n withoutName: '{value}',\r\n separator: {\r\n middle: ', ',\r\n end: '. '\r\n }\r\n }\r\n }\r\n };\n\n var langZH = {\r\n time: {\r\n month: [\r\n '一月', '二月', '三月', '四月', '五月', '六月',\r\n '七月', '八月', '九月', '十月', '十一月', '十二月'\r\n ],\r\n monthAbbr: [\r\n '1月', '2月', '3月', '4月', '5月', '6月',\r\n '7月', '8月', '9月', '10月', '11月', '12月'\r\n ],\r\n dayOfWeek: [\r\n '星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'\r\n ],\r\n dayOfWeekAbbr: [\r\n '日', '一', '二', '三', '四', '五', '六'\r\n ]\r\n },\r\n legend: {\r\n selector: {\r\n all: '全选',\r\n inverse: '反选'\r\n }\r\n },\r\n toolbox: {\r\n brush: {\r\n title: {\r\n rect: '矩形选择',\r\n polygon: '圈选',\r\n lineX: '横向选择',\r\n lineY: '纵向选择',\r\n keep: '保持选择',\r\n clear: '清除选择'\r\n }\r\n },\r\n dataView: {\r\n title: '数据视图',\r\n lang: ['数据视图', '关闭', '刷新']\r\n },\r\n dataZoom: {\r\n title: {\r\n zoom: '区域缩放',\r\n back: '区域缩放还原'\r\n }\r\n },\r\n magicType: {\r\n title: {\r\n line: '切换为折线图',\r\n bar: '切换为柱状图',\r\n stack: '切换为堆叠',\r\n tiled: '切换为平铺'\r\n }\r\n },\r\n restore: {\r\n title: '还原'\r\n },\r\n saveAsImage: {\r\n title: '保存为图片',\r\n lang: ['右键另存为图片']\r\n }\r\n },\r\n series: {\r\n typeNames: {\r\n pie: '饼图',\r\n bar: '柱状图',\r\n line: '折线图',\r\n scatter: '散点图',\r\n effectScatter: '涟漪散点图',\r\n radar: '雷达图',\r\n tree: '树图',\r\n treemap: '矩形树图',\r\n boxplot: '箱型图',\r\n candlestick: 'K线图',\r\n k: 'K线图',\r\n heatmap: '热力图',\r\n map: '地图',\r\n parallel: '平行坐标图',\r\n lines: '线图',\r\n graph: '关系图',\r\n sankey: '桑基图',\r\n funnel: '漏斗图',\r\n gauge: '仪表盘图',\r\n pictorialBar: '象形柱图',\r\n themeRiver: '主题河流图',\r\n sunburst: '旭日图'\r\n }\r\n },\r\n aria: {\r\n general: {\r\n withTitle: '这是一个关于“{title}”的图表。',\r\n withoutTitle: '这是一个图表,'\r\n },\r\n series: {\r\n single: {\r\n prefix: '',\r\n withName: '图表类型是{seriesType},表示{seriesName}。',\r\n withoutName: '图表类型是{seriesType}。'\r\n },\r\n multiple: {\r\n prefix: '它由{seriesCount}个图表系列组成。',\r\n withName: '第{seriesId}个系列是一个表示{seriesName}的{seriesType},',\r\n withoutName: '第{seriesId}个系列是一个{seriesType},',\r\n separator: {\r\n middle: ';',\r\n end: '。'\r\n }\r\n }\r\n },\r\n data: {\r\n allData: '其数据是——',\r\n partialData: '其中,前{displayCnt}项是——',\r\n withName: '{name}的数据是{value}',\r\n withoutName: '{value}',\r\n separator: {\r\n middle: ',',\r\n end: ''\r\n }\r\n }\r\n }\r\n };\n\n var LOCALE_ZH = 'ZH';\r\n var LOCALE_EN = 'EN';\r\n var DEFAULT_LOCALE = LOCALE_EN;\r\n var localeStorage = {};\r\n var localeModels = {};\r\n var SYSTEM_LANG = !env.domSupported ? DEFAULT_LOCALE : (function () {\r\n var langStr = (document.documentElement.lang || navigator.language || navigator.browserLanguage).toUpperCase();\r\n return langStr.indexOf(LOCALE_ZH) > -1 ? LOCALE_ZH : DEFAULT_LOCALE;\r\n })();\r\n function registerLocale(locale, localeObj) {\r\n locale = locale.toUpperCase();\r\n localeModels[locale] = new Model(localeObj);\r\n localeStorage[locale] = localeObj;\r\n }\r\n function createLocaleObject(locale) {\r\n if (isString(locale)) {\r\n var localeObj = localeStorage[locale.toUpperCase()] || {};\r\n if (locale === LOCALE_ZH || locale === LOCALE_EN) {\r\n return clone(localeObj);\r\n }\r\n else {\r\n return merge(clone(localeObj), clone(localeStorage[DEFAULT_LOCALE]), false);\r\n }\r\n }\r\n else {\r\n return merge(clone(locale), clone(localeStorage[DEFAULT_LOCALE]), false);\r\n }\r\n }\r\n function getLocaleModel(lang) {\r\n return localeModels[lang];\r\n }\r\n function getDefaultLocaleModel() {\r\n return localeModels[DEFAULT_LOCALE];\r\n }\r\n registerLocale(LOCALE_EN, langEN);\r\n registerLocale(LOCALE_ZH, langZH);\n\n var ONE_SECOND = 1000;\r\n var ONE_MINUTE = ONE_SECOND * 60;\r\n var ONE_HOUR = ONE_MINUTE * 60;\r\n var ONE_DAY = ONE_HOUR * 24;\r\n var ONE_YEAR = ONE_DAY * 365;\r\n var defaultLeveledFormatter = {\r\n year: '{yyyy}',\r\n month: '{MMM}',\r\n day: '{d}',\r\n hour: '{HH}:{mm}',\r\n minute: '{HH}:{mm}',\r\n second: '{HH}:{mm}:{ss}',\r\n millisecond: '{hh}:{mm}:{ss} {SSS}',\r\n none: '{yyyy}-{MM}-{dd} {hh}:{mm}:{ss} {SSS}'\r\n };\r\n var fullDayFormatter = '{yyyy}-{MM}-{dd}';\r\n var fullLeveledFormatter = {\r\n year: '{yyyy}',\r\n month: '{yyyy}-{MM}',\r\n day: fullDayFormatter,\r\n hour: fullDayFormatter + ' ' + defaultLeveledFormatter.hour,\r\n minute: fullDayFormatter + ' ' + defaultLeveledFormatter.minute,\r\n second: fullDayFormatter + ' ' + defaultLeveledFormatter.second,\r\n millisecond: defaultLeveledFormatter.none\r\n };\r\n var primaryTimeUnits = [\r\n 'year', 'month', 'day', 'hour', 'minute', 'second', 'millisecond'\r\n ];\r\n var timeUnits = [\r\n 'year', 'half-year', 'quarter', 'month', 'week', 'half-week', 'day',\r\n 'half-day', 'quarter-day', 'hour', 'minute', 'second', 'millisecond'\r\n ];\r\n function pad(str, len) {\r\n str += '';\r\n return '0000'.substr(0, len - str.length) + str;\r\n }\r\n function getPrimaryTimeUnit(timeUnit) {\r\n switch (timeUnit) {\r\n case 'half-year':\r\n case 'quarter':\r\n return 'month';\r\n case 'week':\r\n case 'half-week':\r\n return 'day';\r\n case 'half-day':\r\n case 'quarter-day':\r\n return 'hour';\r\n default:\r\n return timeUnit;\r\n }\r\n }\r\n function isPrimaryTimeUnit(timeUnit) {\r\n return timeUnit === getPrimaryTimeUnit(timeUnit);\r\n }\r\n function getDefaultFormatPrecisionOfInterval(timeUnit) {\r\n switch (timeUnit) {\r\n case 'year':\r\n case 'month':\r\n return 'day';\r\n case 'millisecond':\r\n return 'millisecond';\r\n default:\r\n return 'second';\r\n }\r\n }\r\n function format(time, template, isUTC, lang) {\r\n var date = parseDate(time);\r\n var y = date[fullYearGetterName(isUTC)]();\r\n var M = date[monthGetterName(isUTC)]() + 1;\r\n var q = Math.floor((M - 1) / 4) + 1;\r\n var d = date[dateGetterName(isUTC)]();\r\n var e = date['get' + (isUTC ? 'UTC' : '') + 'Day']();\r\n var H = date[hoursGetterName(isUTC)]();\r\n var h = (H - 1) % 12 + 1;\r\n var m = date[minutesGetterName(isUTC)]();\r\n var s = date[secondsGetterName(isUTC)]();\r\n var S = date[millisecondsGetterName(isUTC)]();\r\n var localeModel = lang instanceof Model ? lang\r\n : getLocaleModel(lang || SYSTEM_LANG) || getDefaultLocaleModel();\r\n var timeModel = localeModel.getModel('time');\r\n var month = timeModel.get('month');\r\n var monthAbbr = timeModel.get('monthAbbr');\r\n var dayOfWeek = timeModel.get('dayOfWeek');\r\n var dayOfWeekAbbr = timeModel.get('dayOfWeekAbbr');\r\n return (template || '')\r\n .replace(/{yyyy}/g, y + '')\r\n .replace(/{yy}/g, y % 100 + '')\r\n .replace(/{Q}/g, q + '')\r\n .replace(/{MMMM}/g, month[M - 1])\r\n .replace(/{MMM}/g, monthAbbr[M - 1])\r\n .replace(/{MM}/g, pad(M, 2))\r\n .replace(/{M}/g, M + '')\r\n .replace(/{dd}/g, pad(d, 2))\r\n .replace(/{d}/g, d + '')\r\n .replace(/{eeee}/g, dayOfWeek[e])\r\n .replace(/{ee}/g, dayOfWeekAbbr[e])\r\n .replace(/{e}/g, e + '')\r\n .replace(/{HH}/g, pad(H, 2))\r\n .replace(/{H}/g, H + '')\r\n .replace(/{hh}/g, pad(h + '', 2))\r\n .replace(/{h}/g, h + '')\r\n .replace(/{mm}/g, pad(m, 2))\r\n .replace(/{m}/g, m + '')\r\n .replace(/{ss}/g, pad(s, 2))\r\n .replace(/{s}/g, s + '')\r\n .replace(/{SSS}/g, pad(S, 3))\r\n .replace(/{S}/g, S + '');\r\n }\r\n function leveledFormat(tick, idx, formatter, lang, isUTC) {\r\n var template = null;\r\n if (typeof formatter === 'string') {\r\n template = formatter;\r\n }\r\n else if (typeof formatter === 'function') {\r\n template = formatter(tick.value, idx, {\r\n level: tick.level\r\n });\r\n }\r\n else {\r\n var defaults$1 = extend({}, defaultLeveledFormatter);\r\n if (tick.level > 0) {\r\n for (var i = 0; i < primaryTimeUnits.length; ++i) {\r\n defaults$1[primaryTimeUnits[i]] = \"{primary|\" + defaults$1[primaryTimeUnits[i]] + \"}\";\r\n }\r\n }\r\n var mergedFormatter = (formatter\r\n ? (formatter.inherit === false\r\n ? formatter\r\n : defaults(formatter, defaults$1))\r\n : defaults$1);\r\n var unit = getUnitFromValue(tick.value, isUTC);\r\n if (mergedFormatter[unit]) {\r\n template = mergedFormatter[unit];\r\n }\r\n else if (mergedFormatter.inherit) {\r\n var targetId = timeUnits.indexOf(unit);\r\n for (var i = targetId - 1; i >= 0; --i) {\r\n if (mergedFormatter[unit]) {\r\n template = mergedFormatter[unit];\r\n break;\r\n }\r\n }\r\n template = template || defaults$1.none;\r\n }\r\n if (isArray(template)) {\r\n var levelId = tick.level == null\r\n ? 0\r\n : (tick.level >= 0 ? tick.level : template.length + tick.level);\r\n levelId = Math.min(levelId, template.length - 1);\r\n template = template[levelId];\r\n }\r\n }\r\n return format(new Date(tick.value), template, isUTC, lang);\r\n }\r\n function getUnitFromValue(value, isUTC) {\r\n var date = parseDate(value);\r\n var M = date[monthGetterName(isUTC)]() + 1;\r\n var d = date[dateGetterName(isUTC)]();\r\n var h = date[hoursGetterName(isUTC)]();\r\n var m = date[minutesGetterName(isUTC)]();\r\n var s = date[secondsGetterName(isUTC)]();\r\n var S = date[millisecondsGetterName(isUTC)]();\r\n var isSecond = S === 0;\r\n var isMinute = isSecond && s === 0;\r\n var isHour = isMinute && m === 0;\r\n var isDay = isHour && h === 0;\r\n var isMonth = isDay && d === 1;\r\n var isYear = isMonth && M === 1;\r\n if (isYear) {\r\n return 'year';\r\n }\r\n else if (isMonth) {\r\n return 'month';\r\n }\r\n else if (isDay) {\r\n return 'day';\r\n }\r\n else if (isHour) {\r\n return 'hour';\r\n }\r\n else if (isMinute) {\r\n return 'minute';\r\n }\r\n else if (isSecond) {\r\n return 'second';\r\n }\r\n else {\r\n return 'millisecond';\r\n }\r\n }\r\n function getUnitValue(value, unit, isUTC) {\r\n var date = typeof value === 'number'\r\n ? parseDate(value)\r\n : value;\r\n unit = unit || getUnitFromValue(value, isUTC);\r\n switch (unit) {\r\n case 'year':\r\n return date[fullYearGetterName(isUTC)]();\r\n case 'half-year':\r\n return date[monthGetterName(isUTC)]() >= 6 ? 1 : 0;\r\n case 'quarter':\r\n return Math.floor((date[monthGetterName(isUTC)]() + 1) / 4);\r\n case 'month':\r\n return date[monthGetterName(isUTC)]();\r\n case 'day':\r\n return date[dateGetterName(isUTC)]();\r\n case 'half-day':\r\n return date[hoursGetterName(isUTC)]() / 24;\r\n case 'hour':\r\n return date[hoursGetterName(isUTC)]();\r\n case 'minute':\r\n return date[minutesGetterName(isUTC)]();\r\n case 'second':\r\n return date[secondsGetterName(isUTC)]();\r\n case 'millisecond':\r\n return date[millisecondsGetterName(isUTC)]();\r\n }\r\n }\r\n function fullYearGetterName(isUTC) {\r\n return isUTC ? 'getUTCFullYear' : 'getFullYear';\r\n }\r\n function monthGetterName(isUTC) {\r\n return isUTC ? 'getUTCMonth' : 'getMonth';\r\n }\r\n function dateGetterName(isUTC) {\r\n return isUTC ? 'getUTCDate' : 'getDate';\r\n }\r\n function hoursGetterName(isUTC) {\r\n return isUTC ? 'getUTCHours' : 'getHours';\r\n }\r\n function minutesGetterName(isUTC) {\r\n return isUTC ? 'getUTCMinutes' : 'getMinutes';\r\n }\r\n function secondsGetterName(isUTC) {\r\n return isUTC ? 'getUTCSeconds' : 'getSeconds';\r\n }\r\n function millisecondsGetterName(isUTC) {\r\n return isUTC ? 'getUTCSeconds' : 'getSeconds';\r\n }\r\n function fullYearSetterName(isUTC) {\r\n return isUTC ? 'setUTCFullYear' : 'setFullYear';\r\n }\r\n function monthSetterName(isUTC) {\r\n return isUTC ? 'setUTCMonth' : 'setMonth';\r\n }\r\n function dateSetterName(isUTC) {\r\n return isUTC ? 'setUTCDate' : 'setDate';\r\n }\r\n function hoursSetterName(isUTC) {\r\n return isUTC ? 'setUTCHours' : 'setHours';\r\n }\r\n function minutesSetterName(isUTC) {\r\n return isUTC ? 'setUTCMinutes' : 'setMinutes';\r\n }\r\n function secondsSetterName(isUTC) {\r\n return isUTC ? 'setUTCSeconds' : 'setSeconds';\r\n }\r\n function millisecondsSetterName(isUTC) {\r\n return isUTC ? 'setUTCSeconds' : 'setSeconds';\r\n }\n\n function getTextRect(text, font, align, verticalAlign, padding, rich, truncate, lineHeight) {\r\n deprecateLog('getTextRect is deprecated.');\r\n var textEl = new ZRText({\r\n style: {\r\n text: text,\r\n font: font,\r\n align: align,\r\n verticalAlign: verticalAlign,\r\n padding: padding,\r\n rich: rich,\r\n overflow: truncate ? 'truncate' : null,\r\n lineHeight: lineHeight\r\n }\r\n });\r\n return textEl.getBoundingRect();\r\n }\n\n function addCommas(x) {\r\n if (!isNumeric(x)) {\r\n return isString(x) ? x : '-';\r\n }\r\n var parts = (x + '').split('.');\r\n return parts[0].replace(/(\\d{1,3})(?=(?:\\d{3})+(?!\\d))/g, '$1,')\r\n + (parts.length > 1 ? ('.' + parts[1]) : '');\r\n }\r\n function toCamelCase(str, upperCaseFirst) {\r\n str = (str || '').toLowerCase().replace(/-(.)/g, function (match, group1) {\r\n return group1.toUpperCase();\r\n });\r\n if (upperCaseFirst && str) {\r\n str = str.charAt(0).toUpperCase() + str.slice(1);\r\n }\r\n return str;\r\n }\r\n var normalizeCssArray$1 = normalizeCssArray;\r\n var replaceReg = /([&<>\"'])/g;\r\n var replaceMap = {\r\n '&': '&amp;',\r\n '<': '&lt;',\r\n '>': '&gt;',\r\n '\"': '&quot;',\r\n '\\'': '&#39;'\r\n };\r\n function encodeHTML(source) {\r\n return source == null\r\n ? ''\r\n : (source + '').replace(replaceReg, function (str, c) {\r\n return replaceMap[c];\r\n });\r\n }\r\n function makeValueReadable(value, valueType, useUTC) {\r\n var USER_READABLE_DEFUALT_TIME_PATTERN = 'yyyy-MM-dd hh:mm:ss';\r\n function stringToUserReadable(str) {\r\n return (str && trim(str)) ? str : '-';\r\n }\r\n function isNumberUserReadable(num) {\r\n return !!(num != null && !isNaN(num) && isFinite(num));\r\n }\r\n var isTypeTime = valueType === 'time';\r\n var isValueDate = value instanceof Date;\r\n if (isTypeTime || isValueDate) {\r\n var date = isTypeTime ? parseDate(value) : value;\r\n if (!isNaN(+date)) {\r\n return format(date, USER_READABLE_DEFUALT_TIME_PATTERN, useUTC);\r\n }\r\n else if (isValueDate) {\r\n return '-';\r\n }\r\n }\r\n if (valueType === 'ordinal') {\r\n return isStringSafe(value)\r\n ? stringToUserReadable(value)\r\n : isNumber(value)\r\n ? (isNumberUserReadable(value) ? value + '' : '-')\r\n : '-';\r\n }\r\n var numericResult = numericToNumber(value);\r\n return isNumberUserReadable(numericResult)\r\n ? addCommas(numericResult)\r\n : isStringSafe(value)\r\n ? stringToUserReadable(value)\r\n : '-';\r\n }\r\n var TPL_VAR_ALIAS = ['a', 'b', 'c', 'd', 'e', 'f', 'g'];\r\n var wrapVar = function (varName, seriesIdx) {\r\n return '{' + varName + (seriesIdx == null ? '' : seriesIdx) + '}';\r\n };\r\n function formatTpl(tpl, paramsList, encode) {\r\n if (!isArray(paramsList)) {\r\n paramsList = [paramsList];\r\n }\r\n var seriesLen = paramsList.length;\r\n if (!seriesLen) {\r\n return '';\r\n }\r\n var $vars = paramsList[0].$vars || [];\r\n for (var i = 0; i < $vars.length; i++) {\r\n var alias = TPL_VAR_ALIAS[i];\r\n tpl = tpl.replace(wrapVar(alias), wrapVar(alias, 0));\r\n }\r\n for (var seriesIdx = 0; seriesIdx < seriesLen; seriesIdx++) {\r\n for (var k = 0; k < $vars.length; k++) {\r\n var val = paramsList[seriesIdx][$vars[k]];\r\n tpl = tpl.replace(wrapVar(TPL_VAR_ALIAS[k], seriesIdx), encode ? encodeHTML(val) : val);\r\n }\r\n }\r\n return tpl;\r\n }\r\n function formatTplSimple(tpl, param, encode) {\r\n each(param, function (value, key) {\r\n tpl = tpl.replace('{' + key + '}', encode ? encodeHTML(value) : value);\r\n });\r\n return tpl;\r\n }\r\n function getTooltipMarker(inOpt, extraCssText) {\r\n var opt = isString(inOpt) ? {\r\n color: inOpt,\r\n extraCssText: extraCssText\r\n } : (inOpt || {});\r\n var color = opt.color;\r\n var type = opt.type;\r\n extraCssText = opt.extraCssText;\r\n var renderMode = opt.renderMode || 'html';\r\n if (!color) {\r\n return '';\r\n }\r\n if (renderMode === 'html') {\r\n return type === 'subItem'\r\n ? '<span style=\"display:inline-block;vertical-align:middle;margin-right:8px;margin-left:3px;'\r\n + 'border-radius:4px;width:4px;height:4px;background-color:'\r\n + encodeHTML(color) + ';' + (extraCssText || '') + '\"></span>'\r\n : '<span style=\"display:inline-block;margin-right:4px;'\r\n + 'border-radius:10px;width:10px;height:10px;background-color:'\r\n + encodeHTML(color) + ';' + (extraCssText || '') + '\"></span>';\r\n }\r\n else {\r\n var markerId = opt.markerId || 'markerX';\r\n return {\r\n renderMode: renderMode,\r\n content: '{' + markerId + '|} ',\r\n style: type === 'subItem'\r\n ? {\r\n width: 4,\r\n height: 4,\r\n borderRadius: 2,\r\n backgroundColor: color\r\n }\r\n : {\r\n width: 10,\r\n height: 10,\r\n borderRadius: 5,\r\n backgroundColor: color\r\n }\r\n };\r\n }\r\n }\r\n function formatTime(tpl, value, isUTC) {\r\n if (__DEV__) {\r\n deprecateReplaceLog('echarts.format.formatTime', 'echarts.time.format');\r\n }\r\n if (tpl === 'week'\r\n || tpl === 'month'\r\n || tpl === 'quarter'\r\n || tpl === 'half-year'\r\n || tpl === 'year') {\r\n tpl = 'MM-dd\\nyyyy';\r\n }\r\n var date = parseDate(value);\r\n var utc = isUTC ? 'UTC' : '';\r\n var y = date['get' + utc + 'FullYear']();\r\n var M = date['get' + utc + 'Month']() + 1;\r\n var d = date['get' + utc + 'Date']();\r\n var h = date['get' + utc + 'Hours']();\r\n var m = date['get' + utc + 'Minutes']();\r\n var s = date['get' + utc + 'Seconds']();\r\n var S = date['get' + utc + 'Milliseconds']();\r\n tpl = tpl.replace('MM', pad(M, 2))\r\n .replace('M', M)\r\n .replace('yyyy', y)\r\n .replace('yy', y % 100 + '')\r\n .replace('dd', pad(d, 2))\r\n .replace('d', d)\r\n .replace('hh', pad(h, 2))\r\n .replace('h', h)\r\n .replace('mm', pad(m, 2))\r\n .replace('m', m)\r\n .replace('ss', pad(s, 2))\r\n .replace('s', s)\r\n .replace('SSS', pad(S, 3));\r\n return tpl;\r\n }\r\n function capitalFirst(str) {\r\n return str ? str.charAt(0).toUpperCase() + str.substr(1) : str;\r\n }\r\n function convertToColorString(color, defaultColor) {\r\n defaultColor = defaultColor || 'transparent';\r\n return isString(color)\r\n ? color\r\n : isObject(color)\r\n ? (color.colorStops\r\n && (color.colorStops[0] || {}).color\r\n || defaultColor)\r\n : defaultColor;\r\n }\r\n function windowOpen(link, target) {\r\n if (target === '_blank' || target === 'blank') {\r\n var blank = window.open();\r\n blank.opener = null;\r\n blank.location.href = link;\r\n }\r\n else {\r\n window.open(link, target);\r\n }\r\n }\n\n var formatUtil = /*#__PURE__*/Object.freeze({\n __proto__: null,\n addCommas: addCommas,\n toCamelCase: toCamelCase,\n normalizeCssArray: normalizeCssArray$1,\n encodeHTML: encodeHTML,\n makeValueReadable: makeValueReadable,\n formatTpl: formatTpl,\n formatTplSimple: formatTplSimple,\n getTooltipMarker: getTooltipMarker,\n formatTime: formatTime,\n capitalFirst: capitalFirst,\n convertToColorString: convertToColorString,\n windowOpen: windowOpen,\n truncateText: truncateText,\n getTextRect: getTextRect\n });\n\n var each$1 = each;\r\n var LOCATION_PARAMS = [\r\n 'left', 'right', 'top', 'bottom', 'width', 'height'\r\n ];\r\n var HV_NAMES = [\r\n ['width', 'left', 'right'],\r\n ['height', 'top', 'bottom']\r\n ];\r\n function boxLayout(orient, group, gap, maxWidth, maxHeight) {\r\n var x = 0;\r\n var y = 0;\r\n if (maxWidth == null) {\r\n maxWidth = Infinity;\r\n }\r\n if (maxHeight == null) {\r\n maxHeight = Infinity;\r\n }\r\n var currentLineMaxSize = 0;\r\n group.eachChild(function (child, idx) {\r\n var rect = child.getBoundingRect();\r\n var nextChild = group.childAt(idx + 1);\r\n var nextChildRect = nextChild && nextChild.getBoundingRect();\r\n var nextX;\r\n var nextY;\r\n if (orient === 'horizontal') {\r\n var moveX = rect.width + (nextChildRect ? (-nextChildRect.x + rect.x) : 0);\r\n nextX = x + moveX;\r\n if (nextX > maxWidth || child.newline) {\r\n x = 0;\r\n nextX = moveX;\r\n y += currentLineMaxSize + gap;\r\n currentLineMaxSize = rect.height;\r\n }\r\n else {\r\n currentLineMaxSize = Math.max(currentLineMaxSize, rect.height);\r\n }\r\n }\r\n else {\r\n var moveY = rect.height + (nextChildRect ? (-nextChildRect.y + rect.y) : 0);\r\n nextY = y + moveY;\r\n if (nextY > maxHeight || child.newline) {\r\n x += currentLineMaxSize + gap;\r\n y = 0;\r\n nextY = moveY;\r\n currentLineMaxSize = rect.width;\r\n }\r\n else {\r\n currentLineMaxSize = Math.max(currentLineMaxSize, rect.width);\r\n }\r\n }\r\n if (child.newline) {\r\n return;\r\n }\r\n child.x = x;\r\n child.y = y;\r\n child.markRedraw();\r\n orient === 'horizontal'\r\n ? (x = nextX + gap)\r\n : (y = nextY + gap);\r\n });\r\n }\r\n var box = boxLayout;\r\n var vbox = curry(boxLayout, 'vertical');\r\n var hbox = curry(boxLayout, 'horizontal');\r\n function getAvailableSize(positionInfo, containerRect, margin) {\r\n var containerWidth = containerRect.width;\r\n var containerHeight = containerRect.height;\r\n var x = parsePercent$2(positionInfo.left, containerWidth);\r\n var y = parsePercent$2(positionInfo.top, containerHeight);\r\n var x2 = parsePercent$2(positionInfo.right, containerWidth);\r\n var y2 = parsePercent$2(positionInfo.bottom, containerHeight);\r\n (isNaN(x) || isNaN(parseFloat(positionInfo.left))) && (x = 0);\r\n (isNaN(x2) || isNaN(parseFloat(positionInfo.right))) && (x2 = containerWidth);\r\n (isNaN(y) || isNaN(parseFloat(positionInfo.top))) && (y = 0);\r\n (isNaN(y2) || isNaN(parseFloat(positionInfo.bottom))) && (y2 = containerHeight);\r\n margin = normalizeCssArray$1(margin || 0);\r\n return {\r\n width: Math.max(x2 - x - margin[1] - margin[3], 0),\r\n height: Math.max(y2 - y - margin[0] - margin[2], 0)\r\n };\r\n }\r\n function getLayoutRect(positionInfo, containerRect, margin) {\r\n margin = normalizeCssArray$1(margin || 0);\r\n var containerWidth = containerRect.width;\r\n var containerHeight = containerRect.height;\r\n var left = parsePercent$2(positionInfo.left, containerWidth);\r\n var top = parsePercent$2(positionInfo.top, containerHeight);\r\n var right = parsePercent$2(positionInfo.right, containerWidth);\r\n var bottom = parsePercent$2(positionInfo.bottom, containerHeight);\r\n var width = parsePercent$2(positionInfo.width, containerWidth);\r\n var height = parsePercent$2(positionInfo.height, containerHeight);\r\n var verticalMargin = margin[2] + margin[0];\r\n var horizontalMargin = margin[1] + margin[3];\r\n var aspect = positionInfo.aspect;\r\n if (isNaN(width)) {\r\n width = containerWidth - right - horizontalMargin - left;\r\n }\r\n if (isNaN(height)) {\r\n height = containerHeight - bottom - verticalMargin - top;\r\n }\r\n if (aspect != null) {\r\n if (isNaN(width) && isNaN(height)) {\r\n if (aspect > containerWidth / containerHeight) {\r\n width = containerWidth * 0.8;\r\n }\r\n else {\r\n height = containerHeight * 0.8;\r\n }\r\n }\r\n if (isNaN(width)) {\r\n width = aspect * height;\r\n }\r\n if (isNaN(height)) {\r\n height = width / aspect;\r\n }\r\n }\r\n if (isNaN(left)) {\r\n left = containerWidth - right - width - horizontalMargin;\r\n }\r\n if (isNaN(top)) {\r\n top = containerHeight - bottom - height - verticalMargin;\r\n }\r\n switch (positionInfo.left || positionInfo.right) {\r\n case 'center':\r\n left = containerWidth / 2 - width / 2 - margin[3];\r\n break;\r\n case 'right':\r\n left = containerWidth - width - horizontalMargin;\r\n break;\r\n }\r\n switch (positionInfo.top || positionInfo.bottom) {\r\n case 'middle':\r\n case 'center':\r\n top = containerHeight / 2 - height / 2 - margin[0];\r\n break;\r\n case 'bottom':\r\n top = containerHeight - height - verticalMargin;\r\n break;\r\n }\r\n left = left || 0;\r\n top = top || 0;\r\n if (isNaN(width)) {\r\n width = containerWidth - horizontalMargin - left - (right || 0);\r\n }\r\n if (isNaN(height)) {\r\n height = containerHeight - verticalMargin - top - (bottom || 0);\r\n }\r\n var rect = new BoundingRect(left + margin[3], top + margin[0], width, height);\r\n rect.margin = margin;\r\n return rect;\r\n }\r\n function positionElement(el, positionInfo, containerRect, margin, opt) {\r\n var h = !opt || !opt.hv || opt.hv[0];\r\n var v = !opt || !opt.hv || opt.hv[1];\r\n var boundingMode = opt && opt.boundingMode || 'all';\r\n if (!h && !v) {\r\n return;\r\n }\r\n var rect;\r\n if (boundingMode === 'raw') {\r\n rect = el.type === 'group'\r\n ? new BoundingRect(0, 0, +positionInfo.width || 0, +positionInfo.height || 0)\r\n : el.getBoundingRect();\r\n }\r\n else {\r\n rect = el.getBoundingRect();\r\n if (el.needLocalTransform()) {\r\n var transform = el.getLocalTransform();\r\n rect = rect.clone();\r\n rect.applyTransform(transform);\r\n }\r\n }\r\n var layoutRect = getLayoutRect(defaults({ width: rect.width, height: rect.height }, positionInfo), containerRect, margin);\r\n var dx = h ? layoutRect.x - rect.x : 0;\r\n var dy = v ? layoutRect.y - rect.y : 0;\r\n if (boundingMode === 'raw') {\r\n el.x = dx;\r\n el.y = dy;\r\n }\r\n else {\r\n el.x += dx;\r\n el.y += dy;\r\n }\r\n el.markRedraw();\r\n }\r\n function sizeCalculable(option, hvIdx) {\r\n return option[HV_NAMES[hvIdx][0]] != null\r\n || (option[HV_NAMES[hvIdx][1]] != null && option[HV_NAMES[hvIdx][2]] != null);\r\n }\r\n function fetchLayoutMode(ins) {\r\n var layoutMode = ins.layoutMode || ins.constructor.layoutMode;\r\n return isObject(layoutMode)\r\n ? layoutMode\r\n : layoutMode\r\n ? { type: layoutMode }\r\n : null;\r\n }\r\n function mergeLayoutParam(targetOption, newOption, opt) {\r\n var ignoreSize = opt && opt.ignoreSize;\r\n !isArray(ignoreSize) && (ignoreSize = [ignoreSize, ignoreSize]);\r\n var hResult = merge(HV_NAMES[0], 0);\r\n var vResult = merge(HV_NAMES[1], 1);\r\n copy(HV_NAMES[0], targetOption, hResult);\r\n copy(HV_NAMES[1], targetOption, vResult);\r\n function merge(names, hvIdx) {\r\n var newParams = {};\r\n var newValueCount = 0;\r\n var merged = {};\r\n var mergedValueCount = 0;\r\n var enoughParamNumber = 2;\r\n each$1(names, function (name) {\r\n merged[name] = targetOption[name];\r\n });\r\n each$1(names, function (name) {\r\n hasProp(newOption, name) && (newParams[name] = merged[name] = newOption[name]);\r\n hasValue(newParams, name) && newValueCount++;\r\n hasValue(merged, name) && mergedValueCount++;\r\n });\r\n if (ignoreSize[hvIdx]) {\r\n if (hasValue(newOption, names[1])) {\r\n merged[names[2]] = null;\r\n }\r\n else if (hasValue(newOption, names[2])) {\r\n merged[names[1]] = null;\r\n }\r\n return merged;\r\n }\r\n if (mergedValueCount === enoughParamNumber || !newValueCount) {\r\n return merged;\r\n }\r\n else if (newValueCount >= enoughParamNumber) {\r\n return newParams;\r\n }\r\n else {\r\n for (var i = 0; i < names.length; i++) {\r\n var name_1 = names[i];\r\n if (!hasProp(newParams, name_1) && hasProp(targetOption, name_1)) {\r\n newParams[name_1] = targetOption[name_1];\r\n break;\r\n }\r\n }\r\n return newParams;\r\n }\r\n }\r\n function hasProp(obj, name) {\r\n return obj.hasOwnProperty(name);\r\n }\r\n function hasValue(obj, name) {\r\n return obj[name] != null && obj[name] !== 'auto';\r\n }\r\n function copy(names, target, source) {\r\n each$1(names, function (name) {\r\n target[name] = source[name];\r\n });\r\n }\r\n }\r\n function getLayoutParams(source) {\r\n return copyLayoutParams({}, source);\r\n }\r\n function copyLayoutParams(target, source) {\r\n source && target && each$1(LOCATION_PARAMS, function (name) {\r\n source.hasOwnProperty(name) && (target[name] = source[name]);\r\n });\r\n return target;\r\n }\n\n var inner = makeInner();\r\n var ComponentModel = (function (_super) {\r\n __extends(ComponentModel, _super);\r\n function ComponentModel(option, parentModel, ecModel) {\r\n var _this = _super.call(this, option, parentModel, ecModel) || this;\r\n _this.uid = getUID('ec_cpt_model');\r\n return _this;\r\n }\r\n ComponentModel.prototype.init = function (option, parentModel, ecModel) {\r\n this.mergeDefaultAndTheme(option, ecModel);\r\n };\r\n ComponentModel.prototype.mergeDefaultAndTheme = function (option, ecModel) {\r\n var layoutMode = fetchLayoutMode(this);\r\n var inputPositionParams = layoutMode\r\n ? getLayoutParams(option) : {};\r\n var themeModel = ecModel.getTheme();\r\n merge(option, themeModel.get(this.mainType));\r\n merge(option, this.getDefaultOption());\r\n if (layoutMode) {\r\n mergeLayoutParam(option, inputPositionParams, layoutMode);\r\n }\r\n };\r\n ComponentModel.prototype.mergeOption = function (option, ecModel) {\r\n merge(this.option, option, true);\r\n var layoutMode = fetchLayoutMode(this);\r\n if (layoutMode) {\r\n mergeLayoutParam(this.option, option, layoutMode);\r\n }\r\n };\r\n ComponentModel.prototype.optionUpdated = function (newCptOption, isInit) { };\r\n ComponentModel.prototype.getDefaultOption = function () {\r\n var ctor = this.constructor;\r\n if (!isExtendedClass(ctor)) {\r\n return ctor.defaultOption;\r\n }\r\n var fields = inner(this);\r\n if (!fields.defaultOption) {\r\n var optList = [];\r\n var clz = ctor;\r\n while (clz) {\r\n var opt = clz.prototype.defaultOption;\r\n opt && optList.push(opt);\r\n clz = clz.superClass;\r\n }\r\n var defaultOption = {};\r\n for (var i = optList.length - 1; i >= 0; i--) {\r\n defaultOption = merge(defaultOption, optList[i], true);\r\n }\r\n fields.defaultOption = defaultOption;\r\n }\r\n return fields.defaultOption;\r\n };\r\n ComponentModel.prototype.getReferringComponents = function (mainType, opt) {\r\n var indexKey = (mainType + 'Index');\r\n var idKey = (mainType + 'Id');\r\n return queryReferringComponents(this.ecModel, mainType, {\r\n index: this.get(indexKey, true),\r\n id: this.get(idKey, true)\r\n }, opt);\r\n };\r\n ComponentModel.prototype.getBoxLayoutParams = function () {\r\n var boxLayoutModel = this;\r\n return {\r\n left: boxLayoutModel.get('left'),\r\n top: boxLayoutModel.get('top'),\r\n right: boxLayoutModel.get('right'),\r\n bottom: boxLayoutModel.get('bottom'),\r\n width: boxLayoutModel.get('width'),\r\n height: boxLayoutModel.get('height')\r\n };\r\n };\r\n ComponentModel.protoInitialize = (function () {\r\n var proto = ComponentModel.prototype;\r\n proto.type = 'component';\r\n proto.id = '';\r\n proto.name = '';\r\n proto.mainType = '';\r\n proto.subType = '';\r\n proto.componentIndex = 0;\r\n })();\r\n return ComponentModel;\r\n }(Model));\r\n mountExtend(ComponentModel, Model);\r\n enableClassManagement(ComponentModel, { registerWhenExtend: true });\r\n enableSubTypeDefaulter(ComponentModel);\r\n enableTopologicalTravel(ComponentModel, getDependencies);\r\n function getDependencies(componentType) {\r\n var deps = [];\r\n each(ComponentModel.getClassesByMainType(componentType), function (clz) {\r\n deps = deps.concat(clz.dependencies || clz.prototype.dependencies || []);\r\n });\r\n deps = map(deps, function (type) {\r\n return parseClassType(type).main;\r\n });\r\n if (componentType !== 'dataset' && indexOf(deps, 'dataset') <= 0) {\r\n deps.unshift('dataset');\r\n }\r\n return deps;\r\n }\n\n var platform = '';\r\n if (typeof navigator !== 'undefined') {\r\n platform = navigator.platform || '';\r\n }\r\n var decalColor = 'rgba(0, 0, 0, 0.2)';\r\n var globalDefault = {\r\n darkMode: 'auto',\r\n color: [\r\n '#5470c6',\r\n '#91cc75',\r\n '#fac858',\r\n '#ee6666',\r\n '#73c0de',\r\n '#3ba272',\r\n '#fc8452',\r\n '#9a60b4',\r\n '#ea7ccc'\r\n ],\r\n gradientColor: ['#f6efa6', '#d88273', '#bf444c'],\r\n aria: {\r\n decal: {\r\n decals: [{\r\n color: decalColor,\r\n dashArrayX: [1, 0],\r\n dashArrayY: [2, 5],\r\n symbolSize: 1,\r\n rotation: Math.PI / 6\r\n }, {\r\n color: decalColor,\r\n symbol: 'circle',\r\n dashArrayX: [[8, 8], [0, 8, 8, 0]],\r\n dashArrayY: [6, 0],\r\n symbolSize: 0.8\r\n }, {\r\n color: decalColor,\r\n dashArrayX: [1, 0],\r\n dashArrayY: [4, 3],\r\n dashLineOffset: 0,\r\n rotation: -Math.PI / 4\r\n }, {\r\n color: decalColor,\r\n dashArrayX: [[6, 6], [0, 6, 6, 0]],\r\n dashArrayY: [6, 0]\r\n }, {\r\n color: decalColor,\r\n dashArrayX: [[1, 0], [1, 6]],\r\n dashArrayY: [1, 0, 6, 0],\r\n rotation: Math.PI / 4\r\n }, {\r\n color: decalColor,\r\n symbol: 'triangle',\r\n dashArrayX: [[9, 9], [0, 9, 9, 0]],\r\n dashArrayY: [7, 2],\r\n symbolSize: 0.75\r\n }]\r\n }\r\n },\r\n textStyle: {\r\n fontFamily: platform.match(/^Win/) ? 'Microsoft YaHei' : 'sans-serif',\r\n fontSize: 12,\r\n fontStyle: 'normal',\r\n fontWeight: 'normal'\r\n },\r\n blendMode: null,\r\n stateAnimation: {\r\n duration: 300,\r\n easing: 'cubicOut'\r\n },\r\n animation: 'auto',\r\n animationDuration: 1000,\r\n animationDurationUpdate: 500,\r\n animationEasing: 'cubicInOut',\r\n animationEasingUpdate: 'cubicInOut',\r\n animationThreshold: 2000,\r\n progressiveThreshold: 3000,\r\n progressive: 400,\r\n hoverLayerThreshold: 3000,\r\n useUTC: false\r\n };\n\n var VISUAL_DIMENSIONS = createHashMap([\r\n 'tooltip', 'label', 'itemName', 'itemId', 'seriesName'\r\n ]);\r\n var SOURCE_FORMAT_ORIGINAL = 'original';\r\n var SOURCE_FORMAT_ARRAY_ROWS = 'arrayRows';\r\n var SOURCE_FORMAT_OBJECT_ROWS = 'objectRows';\r\n var SOURCE_FORMAT_KEYED_COLUMNS = 'keyedColumns';\r\n var SOURCE_FORMAT_TYPED_ARRAY = 'typedArray';\r\n var SOURCE_FORMAT_UNKNOWN = 'unknown';\r\n var SERIES_LAYOUT_BY_COLUMN = 'column';\r\n var SERIES_LAYOUT_BY_ROW = 'row';\n\n var BE_ORDINAL = {\r\n Must: 1,\r\n Might: 2,\r\n Not: 3\r\n };\r\n var innerGlobalModel = makeInner();\r\n function resetSourceDefaulter(ecModel) {\r\n innerGlobalModel(ecModel).datasetMap = createHashMap();\r\n }\r\n function inheritSourceMetaRawOption(upstream, newMetaRawOption) {\r\n var parentMetaRawOption = upstream ? upstream.metaRawOption : null;\r\n var seriesLayoutBy = retrieve2(newMetaRawOption.seriesLayoutBy, parentMetaRawOption ? parentMetaRawOption.seriesLayoutBy : null);\r\n var sourceHeader = retrieve2(newMetaRawOption.sourceHeader, upstream ? upstream.startIndex : null);\r\n var dimensions = retrieve2(newMetaRawOption.dimensions, upstream ? upstream.dimensionsDefine : null);\r\n return { seriesLayoutBy: seriesLayoutBy, sourceHeader: sourceHeader, dimensions: dimensions };\r\n }\r\n function makeSeriesEncodeForAxisCoordSys(coordDimensions, seriesModel, source) {\r\n var encode = {};\r\n var datasetModel = querySeriesUpstreamDatasetModel(seriesModel);\r\n if (!datasetModel || !coordDimensions) {\r\n return encode;\r\n }\r\n var encodeItemName = [];\r\n var encodeSeriesName = [];\r\n var ecModel = seriesModel.ecModel;\r\n var datasetMap = innerGlobalModel(ecModel).datasetMap;\r\n var key = datasetModel.uid + '_' + source.seriesLayoutBy;\r\n var baseCategoryDimIndex;\r\n var categoryWayValueDimStart;\r\n coordDimensions = coordDimensions.slice();\r\n each(coordDimensions, function (coordDimInfoLoose, coordDimIdx) {\r\n var coordDimInfo = isObject(coordDimInfoLoose)\r\n ? coordDimInfoLoose\r\n : (coordDimensions[coordDimIdx] = { name: coordDimInfoLoose });\r\n if (coordDimInfo.type === 'ordinal' && baseCategoryDimIndex == null) {\r\n baseCategoryDimIndex = coordDimIdx;\r\n categoryWayValueDimStart = getDataDimCountOnCoordDim(coordDimInfo);\r\n }\r\n encode[coordDimInfo.name] = [];\r\n });\r\n var datasetRecord = datasetMap.get(key)\r\n || datasetMap.set(key, { categoryWayDim: categoryWayValueDimStart, valueWayDim: 0 });\r\n each(coordDimensions, function (coordDimInfo, coordDimIdx) {\r\n var coordDimName = coordDimInfo.name;\r\n var count = getDataDimCountOnCoordDim(coordDimInfo);\r\n if (baseCategoryDimIndex == null) {\r\n var start = datasetRecord.valueWayDim;\r\n pushDim(encode[coordDimName], start, count);\r\n pushDim(encodeSeriesName, start, count);\r\n datasetRecord.valueWayDim += count;\r\n }\r\n else if (baseCategoryDimIndex === coordDimIdx) {\r\n pushDim(encode[coordDimName], 0, count);\r\n pushDim(encodeItemName, 0, count);\r\n }\r\n else {\r\n var start = datasetRecord.categoryWayDim;\r\n pushDim(encode[coordDimName], start, count);\r\n pushDim(encodeSeriesName, start, count);\r\n datasetRecord.categoryWayDim += count;\r\n }\r\n });\r\n function pushDim(dimIdxArr, idxFrom, idxCount) {\r\n for (var i = 0; i < idxCount; i++) {\r\n dimIdxArr.push(idxFrom + i);\r\n }\r\n }\r\n function getDataDimCountOnCoordDim(coordDimInfo) {\r\n var dimsDef = coordDimInfo.dimsDef;\r\n return dimsDef ? dimsDef.length : 1;\r\n }\r\n encodeItemName.length && (encode.itemName = encodeItemName);\r\n encodeSeriesName.length && (encode.seriesName = encodeSeriesName);\r\n return encode;\r\n }\r\n function makeSeriesEncodeForNameBased(seriesModel, source, dimCount) {\r\n var encode = {};\r\n var datasetModel = querySeriesUpstreamDatasetModel(seriesModel);\r\n if (!datasetModel) {\r\n return encode;\r\n }\r\n var sourceFormat = source.sourceFormat;\r\n var dimensionsDefine = source.dimensionsDefine;\r\n var potentialNameDimIndex;\r\n if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS || sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS) {\r\n each(dimensionsDefine, function (dim, idx) {\r\n if ((isObject(dim) ? dim.name : dim) === 'name') {\r\n potentialNameDimIndex = idx;\r\n }\r\n });\r\n }\r\n var idxResult = (function () {\r\n var idxRes0 = {};\r\n var idxRes1 = {};\r\n var guessRecords = [];\r\n for (var i = 0, len = Math.min(5, dimCount); i < len; i++) {\r\n var guessResult = doGuessOrdinal(source.data, sourceFormat, source.seriesLayoutBy, dimensionsDefine, source.startIndex, i);\r\n guessRecords.push(guessResult);\r\n var isPureNumber = guessResult === BE_ORDINAL.Not;\r\n if (isPureNumber && idxRes0.v == null && i !== potentialNameDimIndex) {\r\n idxRes0.v = i;\r\n }\r\n if (idxRes0.n == null\r\n || (idxRes0.n === idxRes0.v)\r\n || (!isPureNumber && guessRecords[idxRes0.n] === BE_ORDINAL.Not)) {\r\n idxRes0.n = i;\r\n }\r\n if (fulfilled(idxRes0) && guessRecords[idxRes0.n] !== BE_ORDINAL.Not) {\r\n return idxRes0;\r\n }\r\n if (!isPureNumber) {\r\n if (guessResult === BE_ORDINAL.Might && idxRes1.v == null && i !== potentialNameDimIndex) {\r\n idxRes1.v = i;\r\n }\r\n if (idxRes1.n == null || (idxRes1.n === idxRes1.v)) {\r\n idxRes1.n = i;\r\n }\r\n }\r\n }\r\n function fulfilled(idxResult) {\r\n return idxResult.v != null && idxResult.n != null;\r\n }\r\n return fulfilled(idxRes0) ? idxRes0 : fulfilled(idxRes1) ? idxRes1 : null;\r\n })();\r\n if (idxResult) {\r\n encode.value = [idxResult.v];\r\n var nameDimIndex = potentialNameDimIndex != null ? potentialNameDimIndex : idxResult.n;\r\n encode.itemName = [nameDimIndex];\r\n encode.seriesName = [nameDimIndex];\r\n }\r\n return encode;\r\n }\r\n function querySeriesUpstreamDatasetModel(seriesModel) {\r\n var thisData = seriesModel.get('data', true);\r\n if (!thisData) {\r\n return queryReferringComponents(seriesModel.ecModel, 'dataset', {\r\n index: seriesModel.get('datasetIndex', true),\r\n id: seriesModel.get('datasetId', true)\r\n }, SINGLE_REFERRING).models[0];\r\n }\r\n }\r\n function queryDatasetUpstreamDatasetModels(datasetModel) {\r\n if (!datasetModel.get('transform', true)\r\n && !datasetModel.get('fromTransformResult', true)) {\r\n return [];\r\n }\r\n return queryReferringComponents(datasetModel.ecModel, 'dataset', {\r\n index: datasetModel.get('fromDatasetIndex', true),\r\n id: datasetModel.get('fromDatasetId', true)\r\n }, SINGLE_REFERRING).models;\r\n }\r\n function guessOrdinal(source, dimIndex) {\r\n return doGuessOrdinal(source.data, source.sourceFormat, source.seriesLayoutBy, source.dimensionsDefine, source.startIndex, dimIndex);\r\n }\r\n function doGuessOrdinal(data, sourceFormat, seriesLayoutBy, dimensionsDefine, startIndex, dimIndex) {\r\n var result;\r\n var maxLoop = 5;\r\n if (isTypedArray(data)) {\r\n return BE_ORDINAL.Not;\r\n }\r\n var dimName;\r\n var dimType;\r\n if (dimensionsDefine) {\r\n var dimDefItem = dimensionsDefine[dimIndex];\r\n if (isObject(dimDefItem)) {\r\n dimName = dimDefItem.name;\r\n dimType = dimDefItem.type;\r\n }\r\n else if (isString(dimDefItem)) {\r\n dimName = dimDefItem;\r\n }\r\n }\r\n if (dimType != null) {\r\n return dimType === 'ordinal' ? BE_ORDINAL.Must : BE_ORDINAL.Not;\r\n }\r\n if (sourceFormat === SOURCE_FORMAT_ARRAY_ROWS) {\r\n var dataArrayRows = data;\r\n if (seriesLayoutBy === SERIES_LAYOUT_BY_ROW) {\r\n var sample = dataArrayRows[dimIndex];\r\n for (var i = 0; i < (sample || []).length && i < maxLoop; i++) {\r\n if ((result = detectValue(sample[startIndex + i])) != null) {\r\n return result;\r\n }\r\n }\r\n }\r\n else {\r\n for (var i = 0; i < dataArrayRows.length && i < maxLoop; i++) {\r\n var row = dataArrayRows[startIndex + i];\r\n if (row && (result = detectValue(row[dimIndex])) != null) {\r\n return result;\r\n }\r\n }\r\n }\r\n }\r\n else if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS) {\r\n var dataObjectRows = data;\r\n if (!dimName) {\r\n return BE_ORDINAL.Not;\r\n }\r\n for (var i = 0; i < dataObjectRows.length && i < maxLoop; i++) {\r\n var item = dataObjectRows[i];\r\n if (item && (result = detectValue(item[dimName])) != null) {\r\n return result;\r\n }\r\n }\r\n }\r\n else if (sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS) {\r\n var dataKeyedColumns = data;\r\n if (!dimName) {\r\n return BE_ORDINAL.Not;\r\n }\r\n var sample = dataKeyedColumns[dimName];\r\n if (!sample || isTypedArray(sample)) {\r\n return BE_ORDINAL.Not;\r\n }\r\n for (var i = 0; i < sample.length && i < maxLoop; i++) {\r\n if ((result = detectValue(sample[i])) != null) {\r\n return result;\r\n }\r\n }\r\n }\r\n else if (sourceFormat === SOURCE_FORMAT_ORIGINAL) {\r\n var dataOriginal = data;\r\n for (var i = 0; i < dataOriginal.length && i < maxLoop; i++) {\r\n var item = dataOriginal[i];\r\n var val = getDataItemValue(item);\r\n if (!isArray(val)) {\r\n return BE_ORDINAL.Not;\r\n }\r\n if ((result = detectValue(val[dimIndex])) != null) {\r\n return result;\r\n }\r\n }\r\n }\r\n function detectValue(val) {\r\n var beStr = isString(val);\r\n if (val != null && isFinite(val) && val !== '') {\r\n return beStr ? BE_ORDINAL.Might : BE_ORDINAL.Not;\r\n }\r\n else if (beStr && val !== '-') {\r\n return BE_ORDINAL.Must;\r\n }\r\n }\r\n return BE_ORDINAL.Not;\r\n }\n\n var internalOptionCreatorMap = createHashMap();\r\n function registerInternalOptionCreator(mainType, creator) {\r\n assert(internalOptionCreatorMap.get(mainType) == null && creator);\r\n internalOptionCreatorMap.set(mainType, creator);\r\n }\r\n function concatInternalOptions(ecModel, mainType, newCmptOptionList) {\r\n var internalOptionCreator = internalOptionCreatorMap.get(mainType);\r\n if (!internalOptionCreator) {\r\n return newCmptOptionList;\r\n }\r\n var internalOptions = internalOptionCreator(ecModel);\r\n if (!internalOptions) {\r\n return newCmptOptionList;\r\n }\r\n if (__DEV__) {\r\n for (var i = 0; i < internalOptions.length; i++) {\r\n assert(isComponentIdInternal(internalOptions[i]));\r\n }\r\n }\r\n return newCmptOptionList.concat(internalOptions);\r\n }\n\n var innerColor = makeInner();\r\n var innerDecal = makeInner();\r\n var PaletteMixin = (function () {\r\n function PaletteMixin() {\r\n }\r\n PaletteMixin.prototype.getColorFromPalette = function (name, scope, requestNum) {\r\n var defaultPalette = normalizeToArray(this.get('color', true));\r\n var layeredPalette = this.get('colorLayer', true);\r\n return getFromPalette(this, innerColor, defaultPalette, layeredPalette, name, scope, requestNum);\r\n };\r\n PaletteMixin.prototype.clearColorPalette = function () {\r\n clearPalette(this, innerColor);\r\n };\r\n return PaletteMixin;\r\n }());\r\n function getDecalFromPalette(ecModel, name, scope, requestNum) {\r\n var defaultDecals = normalizeToArray(ecModel.get(['aria', 'decal', 'decals']));\r\n return getFromPalette(ecModel, innerDecal, defaultDecals, null, name, scope, requestNum);\r\n }\r\n function getNearestPalette(palettes, requestColorNum) {\r\n var paletteNum = palettes.length;\r\n for (var i = 0; i < paletteNum; i++) {\r\n if (palettes[i].length > requestColorNum) {\r\n return palettes[i];\r\n }\r\n }\r\n return palettes[paletteNum - 1];\r\n }\r\n function getFromPalette(that, inner, defaultPalette, layeredPalette, name, scope, requestNum) {\r\n scope = scope || that;\r\n var scopeFields = inner(scope);\r\n var paletteIdx = scopeFields.paletteIdx || 0;\r\n var paletteNameMap = scopeFields.paletteNameMap = scopeFields.paletteNameMap || {};\r\n if (paletteNameMap.hasOwnProperty(name)) {\r\n return paletteNameMap[name];\r\n }\r\n var palette = ((requestNum == null || !layeredPalette)\r\n ? defaultPalette : getNearestPalette(layeredPalette, requestNum));\r\n palette = palette || defaultPalette;\r\n if (!palette || !palette.length) {\r\n return;\r\n }\r\n var pickedPaletteItem = palette[paletteIdx];\r\n if (name) {\r\n paletteNameMap[name] = pickedPaletteItem;\r\n }\r\n scopeFields.paletteIdx = (paletteIdx + 1) % palette.length;\r\n return pickedPaletteItem;\r\n }\r\n function clearPalette(that, inner) {\r\n inner(that).paletteIdx = 0;\r\n inner(that).paletteNameMap = {};\r\n }\n\n var reCreateSeriesIndices;\r\n var assertSeriesInitialized;\r\n var initBase;\r\n var OPTION_INNER_KEY = '\\0_ec_inner';\r\n var GlobalModel = (function (_super) {\r\n __extends(GlobalModel, _super);\r\n function GlobalModel() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n GlobalModel.prototype.init = function (option, parentModel, ecModel, theme, locale, optionManager) {\r\n theme = theme || {};\r\n this.option = null;\r\n this._theme = new Model(theme);\r\n this._locale = new Model(locale);\r\n this._optionManager = optionManager;\r\n };\r\n GlobalModel.prototype.setOption = function (option, opts, optionPreprocessorFuncs) {\r\n assert(!(OPTION_INNER_KEY in option), 'please use chart.getOption()');\r\n var innerOpt = normalizeSetOptionInput(opts);\r\n this._optionManager.setOption(option, optionPreprocessorFuncs, innerOpt);\r\n this._resetOption(null, innerOpt);\r\n };\r\n GlobalModel.prototype.resetOption = function (type, opt) {\r\n return this._resetOption(type, normalizeSetOptionInput(opt));\r\n };\r\n GlobalModel.prototype._resetOption = function (type, opt) {\r\n var optionChanged = false;\r\n var optionManager = this._optionManager;\r\n if (!type || type === 'recreate') {\r\n var baseOption = optionManager.mountOption(type === 'recreate');\r\n if (!this.option || type === 'recreate') {\r\n initBase(this, baseOption);\r\n }\r\n else {\r\n this.restoreData();\r\n this._mergeOption(baseOption, opt);\r\n }\r\n optionChanged = true;\r\n }\r\n if (type === 'timeline' || type === 'media') {\r\n this.restoreData();\r\n }\r\n if (!type || type === 'recreate' || type === 'timeline') {\r\n var timelineOption = optionManager.getTimelineOption(this);\r\n if (timelineOption) {\r\n optionChanged = true;\r\n this._mergeOption(timelineOption, opt);\r\n }\r\n }\r\n if (!type || type === 'recreate' || type === 'media') {\r\n var mediaOptions = optionManager.getMediaOption(this);\r\n if (mediaOptions.length) {\r\n each(mediaOptions, function (mediaOption) {\r\n optionChanged = true;\r\n this._mergeOption(mediaOption, opt);\r\n }, this);\r\n }\r\n }\r\n return optionChanged;\r\n };\r\n GlobalModel.prototype.mergeOption = function (option) {\r\n this._mergeOption(option, null);\r\n };\r\n GlobalModel.prototype._mergeOption = function (newOption, opt) {\r\n var option = this.option;\r\n var componentsMap = this._componentsMap;\r\n var componentsCount = this._componentsCount;\r\n var newCmptTypes = [];\r\n var newCmptTypeMap = createHashMap();\r\n var replaceMergeMainTypeMap = opt && opt.replaceMergeMainTypeMap;\r\n resetSourceDefaulter(this);\r\n each(newOption, function (componentOption, mainType) {\r\n if (componentOption == null) {\r\n return;\r\n }\r\n if (!ComponentModel.hasClass(mainType)) {\r\n option[mainType] = option[mainType] == null\r\n ? clone(componentOption)\r\n : merge(option[mainType], componentOption, true);\r\n }\r\n else if (mainType) {\r\n newCmptTypes.push(mainType);\r\n newCmptTypeMap.set(mainType, true);\r\n }\r\n });\r\n if (replaceMergeMainTypeMap) {\r\n replaceMergeMainTypeMap.each(function (val, mainTypeInReplaceMerge) {\r\n if (ComponentModel.hasClass(mainTypeInReplaceMerge) && !newCmptTypeMap.get(mainTypeInReplaceMerge)) {\r\n newCmptTypes.push(mainTypeInReplaceMerge);\r\n newCmptTypeMap.set(mainTypeInReplaceMerge, true);\r\n }\r\n });\r\n }\r\n ComponentModel.topologicalTravel(newCmptTypes, ComponentModel.getAllClassMainTypes(), visitComponent, this);\r\n function visitComponent(mainType) {\r\n var newCmptOptionList = concatInternalOptions(this, mainType, normalizeToArray(newOption[mainType]));\r\n var oldCmptList = componentsMap.get(mainType);\r\n var mergeMode = !oldCmptList ? 'replaceAll'\r\n : (replaceMergeMainTypeMap && replaceMergeMainTypeMap.get(mainType)) ? 'replaceMerge'\r\n : 'normalMerge';\r\n var mappingResult = mappingToExists(oldCmptList, newCmptOptionList, mergeMode);\r\n setComponentTypeToKeyInfo(mappingResult, mainType, ComponentModel);\r\n option[mainType] = null;\r\n componentsMap.set(mainType, null);\r\n componentsCount.set(mainType, 0);\r\n var optionsByMainType = [];\r\n var cmptsByMainType = [];\r\n var cmptsCountByMainType = 0;\r\n each(mappingResult, function (resultItem, index) {\r\n var componentModel = resultItem.existing;\r\n var newCmptOption = resultItem.newOption;\r\n if (!newCmptOption) {\r\n if (componentModel) {\r\n componentModel.mergeOption({}, this);\r\n componentModel.optionUpdated({}, false);\r\n }\r\n }\r\n else {\r\n var ComponentModelClass = ComponentModel.getClass(mainType, resultItem.keyInfo.subType, true);\r\n if (componentModel && componentModel.constructor === ComponentModelClass) {\r\n componentModel.name = resultItem.keyInfo.name;\r\n componentModel.mergeOption(newCmptOption, this);\r\n componentModel.optionUpdated(newCmptOption, false);\r\n }\r\n else {\r\n var extraOpt = extend({\r\n componentIndex: index\r\n }, resultItem.keyInfo);\r\n componentModel = new ComponentModelClass(newCmptOption, this, this, extraOpt);\r\n extend(componentModel, extraOpt);\r\n if (resultItem.brandNew) {\r\n componentModel.__requireNewView = true;\r\n }\r\n componentModel.init(newCmptOption, this, this);\r\n componentModel.optionUpdated(null, true);\r\n }\r\n }\r\n if (componentModel) {\r\n optionsByMainType.push(componentModel.option);\r\n cmptsByMainType.push(componentModel);\r\n cmptsCountByMainType++;\r\n }\r\n else {\r\n optionsByMainType.push(void 0);\r\n cmptsByMainType.push(void 0);\r\n }\r\n }, this);\r\n option[mainType] = optionsByMainType;\r\n componentsMap.set(mainType, cmptsByMainType);\r\n componentsCount.set(mainType, cmptsCountByMainType);\r\n if (mainType === 'series') {\r\n reCreateSeriesIndices(this);\r\n }\r\n }\r\n if (!this._seriesIndices) {\r\n reCreateSeriesIndices(this);\r\n }\r\n };\r\n GlobalModel.prototype.getOption = function () {\r\n var option = clone(this.option);\r\n each(option, function (optInMainType, mainType) {\r\n if (ComponentModel.hasClass(mainType)) {\r\n var opts = normalizeToArray(optInMainType);\r\n var realLen = opts.length;\r\n var metNonInner = false;\r\n for (var i = realLen - 1; i >= 0; i--) {\r\n if (opts[i] && !isComponentIdInternal(opts[i])) {\r\n metNonInner = true;\r\n }\r\n else {\r\n opts[i] = null;\r\n !metNonInner && realLen--;\r\n }\r\n }\r\n opts.length = realLen;\r\n option[mainType] = opts;\r\n }\r\n });\r\n delete option[OPTION_INNER_KEY];\r\n return option;\r\n };\r\n GlobalModel.prototype.getTheme = function () {\r\n return this._theme;\r\n };\r\n GlobalModel.prototype.getLocaleModel = function () {\r\n return this._locale;\r\n };\r\n GlobalModel.prototype.getLocale = function (localePosition) {\r\n var locale = this.getLocaleModel();\r\n return locale.get(localePosition);\r\n };\r\n GlobalModel.prototype.setUpdatePayload = function (payload) {\r\n this._payload = payload;\r\n };\r\n GlobalModel.prototype.getUpdatePayload = function () {\r\n return this._payload;\r\n };\r\n GlobalModel.prototype.getComponent = function (mainType, idx) {\r\n var list = this._componentsMap.get(mainType);\r\n if (list) {\r\n var cmpt = list[idx || 0];\r\n if (cmpt) {\r\n return cmpt;\r\n }\r\n else if (idx == null) {\r\n for (var i = 0; i < list.length; i++) {\r\n if (list[i]) {\r\n return list[i];\r\n }\r\n }\r\n }\r\n }\r\n };\r\n GlobalModel.prototype.queryComponents = function (condition) {\r\n var mainType = condition.mainType;\r\n if (!mainType) {\r\n return [];\r\n }\r\n var index = condition.index;\r\n var id = condition.id;\r\n var name = condition.name;\r\n var cmpts = this._componentsMap.get(mainType);\r\n if (!cmpts || !cmpts.length) {\r\n return [];\r\n }\r\n var result;\r\n if (index != null) {\r\n result = [];\r\n each(normalizeToArray(index), function (idx) {\r\n cmpts[idx] && result.push(cmpts[idx]);\r\n });\r\n }\r\n else if (id != null) {\r\n result = queryByIdOrName('id', id, cmpts);\r\n }\r\n else if (name != null) {\r\n result = queryByIdOrName('name', name, cmpts);\r\n }\r\n else {\r\n result = filter(cmpts, function (cmpt) { return !!cmpt; });\r\n }\r\n return filterBySubType(result, condition);\r\n };\r\n GlobalModel.prototype.findComponents = function (condition) {\r\n var query = condition.query;\r\n var mainType = condition.mainType;\r\n var queryCond = getQueryCond(query);\r\n var result = queryCond\r\n ? this.queryComponents(queryCond)\r\n : filter(this._componentsMap.get(mainType), function (cmpt) { return !!cmpt; });\r\n return doFilter(filterBySubType(result, condition));\r\n function getQueryCond(q) {\r\n var indexAttr = mainType + 'Index';\r\n var idAttr = mainType + 'Id';\r\n var nameAttr = mainType + 'Name';\r\n return q && (q[indexAttr] != null\r\n || q[idAttr] != null\r\n || q[nameAttr] != null)\r\n ? {\r\n mainType: mainType,\r\n index: q[indexAttr],\r\n id: q[idAttr],\r\n name: q[nameAttr]\r\n }\r\n : null;\r\n }\r\n function doFilter(res) {\r\n return condition.filter\r\n ? filter(res, condition.filter)\r\n : res;\r\n }\r\n };\r\n GlobalModel.prototype.eachComponent = function (mainType, cb, context) {\r\n var componentsMap = this._componentsMap;\r\n if (isFunction(mainType)) {\r\n var ctxForAll_1 = cb;\r\n var cbForAll_1 = mainType;\r\n componentsMap.each(function (cmpts, componentType) {\r\n for (var i = 0; cmpts && i < cmpts.length; i++) {\r\n var cmpt = cmpts[i];\r\n cmpt && cbForAll_1.call(ctxForAll_1, componentType, cmpt, cmpt.componentIndex);\r\n }\r\n });\r\n }\r\n else {\r\n var cmpts = isString(mainType)\r\n ? componentsMap.get(mainType)\r\n : isObject(mainType)\r\n ? this.findComponents(mainType)\r\n : null;\r\n for (var i = 0; cmpts && i < cmpts.length; i++) {\r\n var cmpt = cmpts[i];\r\n cmpt && cb.call(context, cmpt, cmpt.componentIndex);\r\n }\r\n }\r\n };\r\n GlobalModel.prototype.getSeriesByName = function (name) {\r\n var nameStr = convertOptionIdName(name, null);\r\n return filter(this._componentsMap.get('series'), function (oneSeries) { return !!oneSeries && nameStr != null && oneSeries.name === nameStr; });\r\n };\r\n GlobalModel.prototype.getSeriesByIndex = function (seriesIndex) {\r\n return this._componentsMap.get('series')[seriesIndex];\r\n };\r\n GlobalModel.prototype.getSeriesByType = function (subType) {\r\n return filter(this._componentsMap.get('series'), function (oneSeries) { return !!oneSeries && oneSeries.subType === subType; });\r\n };\r\n GlobalModel.prototype.getSeries = function () {\r\n return filter(this._componentsMap.get('series').slice(), function (oneSeries) { return !!oneSeries; });\r\n };\r\n GlobalModel.prototype.getSeriesCount = function () {\r\n return this._componentsCount.get('series');\r\n };\r\n GlobalModel.prototype.eachSeries = function (cb, context) {\r\n assertSeriesInitialized(this);\r\n each(this._seriesIndices, function (rawSeriesIndex) {\r\n var series = this._componentsMap.get('series')[rawSeriesIndex];\r\n cb.call(context, series, rawSeriesIndex);\r\n }, this);\r\n };\r\n GlobalModel.prototype.eachRawSeries = function (cb, context) {\r\n each(this._componentsMap.get('series'), function (series) {\r\n series && cb.call(context, series, series.componentIndex);\r\n });\r\n };\r\n GlobalModel.prototype.eachSeriesByType = function (subType, cb, context) {\r\n assertSeriesInitialized(this);\r\n each(this._seriesIndices, function (rawSeriesIndex) {\r\n var series = this._componentsMap.get('series')[rawSeriesIndex];\r\n if (series.subType === subType) {\r\n cb.call(context, series, rawSeriesIndex);\r\n }\r\n }, this);\r\n };\r\n GlobalModel.prototype.eachRawSeriesByType = function (subType, cb, context) {\r\n return each(this.getSeriesByType(subType), cb, context);\r\n };\r\n GlobalModel.prototype.isSeriesFiltered = function (seriesModel) {\r\n assertSeriesInitialized(this);\r\n return this._seriesIndicesMap.get(seriesModel.componentIndex) == null;\r\n };\r\n GlobalModel.prototype.getCurrentSeriesIndices = function () {\r\n return (this._seriesIndices || []).slice();\r\n };\r\n GlobalModel.prototype.filterSeries = function (cb, context) {\r\n assertSeriesInitialized(this);\r\n var newSeriesIndices = [];\r\n each(this._seriesIndices, function (seriesRawIdx) {\r\n var series = this._componentsMap.get('series')[seriesRawIdx];\r\n cb.call(context, series, seriesRawIdx) && newSeriesIndices.push(seriesRawIdx);\r\n }, this);\r\n this._seriesIndices = newSeriesIndices;\r\n this._seriesIndicesMap = createHashMap(newSeriesIndices);\r\n };\r\n GlobalModel.prototype.restoreData = function (payload) {\r\n reCreateSeriesIndices(this);\r\n var componentsMap = this._componentsMap;\r\n var componentTypes = [];\r\n componentsMap.each(function (components, componentType) {\r\n if (ComponentModel.hasClass(componentType)) {\r\n componentTypes.push(componentType);\r\n }\r\n });\r\n ComponentModel.topologicalTravel(componentTypes, ComponentModel.getAllClassMainTypes(), function (componentType) {\r\n each(componentsMap.get(componentType), function (component) {\r\n if (component\r\n && (componentType !== 'series'\r\n || !isNotTargetSeries(component, payload))) {\r\n component.restoreData();\r\n }\r\n });\r\n });\r\n };\r\n GlobalModel.internalField = (function () {\r\n reCreateSeriesIndices = function (ecModel) {\r\n var seriesIndices = ecModel._seriesIndices = [];\r\n each(ecModel._componentsMap.get('series'), function (series) {\r\n series && seriesIndices.push(series.componentIndex);\r\n });\r\n ecModel._seriesIndicesMap = createHashMap(seriesIndices);\r\n };\r\n assertSeriesInitialized = function (ecModel) {\r\n if (__DEV__) {\r\n if (!ecModel._seriesIndices) {\r\n throw new Error('Option should contains series.');\r\n }\r\n }\r\n };\r\n initBase = function (ecModel, baseOption) {\r\n ecModel.option = {};\r\n ecModel.option[OPTION_INNER_KEY] = 1;\r\n ecModel._componentsMap = createHashMap({ series: [] });\r\n ecModel._componentsCount = createHashMap();\r\n var airaOption = baseOption.aria;\r\n if (isObject(airaOption) && airaOption.enabled == null) {\r\n airaOption.enabled = true;\r\n }\r\n mergeTheme(baseOption, ecModel._theme.option);\r\n merge(baseOption, globalDefault, false);\r\n ecModel._mergeOption(baseOption, null);\r\n };\r\n })();\r\n return GlobalModel;\r\n }(Model));\r\n function isNotTargetSeries(seriesModel, payload) {\r\n if (payload) {\r\n var index = payload.seriesIndex;\r\n var id = payload.seriesId;\r\n var name_1 = payload.seriesName;\r\n return (index != null && seriesModel.componentIndex !== index)\r\n || (id != null && seriesModel.id !== id)\r\n || (name_1 != null && seriesModel.name !== name_1);\r\n }\r\n }\r\n function mergeTheme(option, theme) {\r\n var notMergeColorLayer = option.color && !option.colorLayer;\r\n each(theme, function (themeItem, name) {\r\n if (name === 'colorLayer' && notMergeColorLayer) {\r\n return;\r\n }\r\n if (!ComponentModel.hasClass(name)) {\r\n if (typeof themeItem === 'object') {\r\n option[name] = !option[name]\r\n ? clone(themeItem)\r\n : merge(option[name], themeItem, false);\r\n }\r\n else {\r\n if (option[name] == null) {\r\n option[name] = themeItem;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n function queryByIdOrName(attr, idOrName, cmpts) {\r\n if (isArray(idOrName)) {\r\n var keyMap_1 = createHashMap();\r\n each(idOrName, function (idOrNameItem) {\r\n if (idOrNameItem != null) {\r\n var idName = convertOptionIdName(idOrNameItem, null);\r\n idName != null && keyMap_1.set(idOrNameItem, true);\r\n }\r\n });\r\n return filter(cmpts, function (cmpt) { return cmpt && keyMap_1.get(cmpt[attr]); });\r\n }\r\n else {\r\n var idName_1 = convertOptionIdName(idOrName, null);\r\n return filter(cmpts, function (cmpt) { return cmpt && idName_1 != null && cmpt[attr] === idName_1; });\r\n }\r\n }\r\n function filterBySubType(components, condition) {\r\n return condition.hasOwnProperty('subType')\r\n ? filter(components, function (cmpt) { return cmpt && cmpt.subType === condition.subType; })\r\n : components;\r\n }\r\n function normalizeSetOptionInput(opts) {\r\n var replaceMergeMainTypeMap = createHashMap();\r\n opts && each(normalizeToArray(opts.replaceMerge), function (mainType) {\r\n if (__DEV__) {\r\n assert(ComponentModel.hasClass(mainType), '\"' + mainType + '\" is not valid component main type in \"replaceMerge\"');\r\n }\r\n replaceMergeMainTypeMap.set(mainType, true);\r\n });\r\n return {\r\n replaceMergeMainTypeMap: replaceMergeMainTypeMap\r\n };\r\n }\r\n mixin(GlobalModel, PaletteMixin);\n\n var availableMethods = [\r\n 'getDom',\r\n 'getZr',\r\n 'getWidth',\r\n 'getHeight',\r\n 'getDevicePixelRatio',\r\n 'dispatchAction',\r\n 'isDisposed',\r\n 'on',\r\n 'off',\r\n 'getDataURL',\r\n 'getConnectedDataURL',\r\n 'getOption',\r\n 'getId',\r\n 'updateLabelLayout'\r\n ];\r\n var ExtensionAPI = (function () {\r\n function ExtensionAPI(ecInstance) {\r\n each(availableMethods, function (methodName) {\r\n this[methodName] = bind(ecInstance[methodName], ecInstance);\r\n }, this);\r\n }\r\n return ExtensionAPI;\r\n }());\n\n var coordinateSystemCreators = {};\r\n var CoordinateSystemManager = (function () {\r\n function CoordinateSystemManager() {\r\n this._coordinateSystems = [];\r\n }\r\n CoordinateSystemManager.prototype.create = function (ecModel, api) {\r\n var coordinateSystems = [];\r\n each(coordinateSystemCreators, function (creater, type) {\r\n var list = creater.create(ecModel, api);\r\n coordinateSystems = coordinateSystems.concat(list || []);\r\n });\r\n this._coordinateSystems = coordinateSystems;\r\n };\r\n CoordinateSystemManager.prototype.update = function (ecModel, api) {\r\n each(this._coordinateSystems, function (coordSys) {\r\n coordSys.update && coordSys.update(ecModel, api);\r\n });\r\n };\r\n CoordinateSystemManager.prototype.getCoordinateSystems = function () {\r\n return this._coordinateSystems.slice();\r\n };\r\n CoordinateSystemManager.register = function (type, creator) {\r\n coordinateSystemCreators[type] = creator;\r\n };\r\n CoordinateSystemManager.get = function (type) {\r\n return coordinateSystemCreators[type];\r\n };\r\n return CoordinateSystemManager;\r\n }());\n\n var QUERY_REG = /^(min|max)?(.+)$/;\r\n var OptionManager = (function () {\r\n function OptionManager(api) {\r\n this._timelineOptions = [];\r\n this._mediaList = [];\r\n this._currentMediaIndices = [];\r\n this._api = api;\r\n }\r\n OptionManager.prototype.setOption = function (rawOption, optionPreprocessorFuncs, opt) {\r\n if (rawOption) {\r\n each(normalizeToArray(rawOption.series), function (series) {\r\n series && series.data && isTypedArray(series.data) && setAsPrimitive(series.data);\r\n });\r\n each(normalizeToArray(rawOption.dataset), function (dataset) {\r\n dataset && dataset.source && isTypedArray(dataset.source) && setAsPrimitive(dataset.source);\r\n });\r\n }\r\n rawOption = clone(rawOption);\r\n var optionBackup = this._optionBackup;\r\n var newParsedOption = parseRawOption(rawOption, optionPreprocessorFuncs, !optionBackup);\r\n this._newBaseOption = newParsedOption.baseOption;\r\n if (optionBackup) {\r\n if (newParsedOption.timelineOptions.length) {\r\n optionBackup.timelineOptions = newParsedOption.timelineOptions;\r\n }\r\n if (newParsedOption.mediaList.length) {\r\n optionBackup.mediaList = newParsedOption.mediaList;\r\n }\r\n if (newParsedOption.mediaDefault) {\r\n optionBackup.mediaDefault = newParsedOption.mediaDefault;\r\n }\r\n }\r\n else {\r\n this._optionBackup = newParsedOption;\r\n }\r\n };\r\n OptionManager.prototype.mountOption = function (isRecreate) {\r\n var optionBackup = this._optionBackup;\r\n this._timelineOptions = optionBackup.timelineOptions;\r\n this._mediaList = optionBackup.mediaList;\r\n this._mediaDefault = optionBackup.mediaDefault;\r\n this._currentMediaIndices = [];\r\n return clone(isRecreate\r\n ? optionBackup.baseOption : this._newBaseOption);\r\n };\r\n OptionManager.prototype.getTimelineOption = function (ecModel) {\r\n var option;\r\n var timelineOptions = this._timelineOptions;\r\n if (timelineOptions.length) {\r\n var timelineModel = ecModel.getComponent('timeline');\r\n if (timelineModel) {\r\n option = clone(timelineOptions[timelineModel.getCurrentIndex()]);\r\n }\r\n }\r\n return option;\r\n };\r\n OptionManager.prototype.getMediaOption = function (ecModel) {\r\n var ecWidth = this._api.getWidth();\r\n var ecHeight = this._api.getHeight();\r\n var mediaList = this._mediaList;\r\n var mediaDefault = this._mediaDefault;\r\n var indices = [];\r\n var result = [];\r\n if (!mediaList.length && !mediaDefault) {\r\n return result;\r\n }\r\n for (var i = 0, len = mediaList.length; i < len; i++) {\r\n if (applyMediaQuery(mediaList[i].query, ecWidth, ecHeight)) {\r\n indices.push(i);\r\n }\r\n }\r\n if (!indices.length && mediaDefault) {\r\n indices = [-1];\r\n }\r\n if (indices.length && !indicesEquals(indices, this._currentMediaIndices)) {\r\n result = map(indices, function (index) {\r\n return clone(index === -1 ? mediaDefault.option : mediaList[index].option);\r\n });\r\n }\r\n this._currentMediaIndices = indices;\r\n return result;\r\n };\r\n return OptionManager;\r\n }());\r\n function parseRawOption(rawOption, optionPreprocessorFuncs, isNew) {\r\n var mediaList = [];\r\n var mediaDefault;\r\n var baseOption;\r\n var declaredBaseOption = rawOption.baseOption;\r\n var timelineOnRoot = rawOption.timeline;\r\n var timelineOptionsOnRoot = rawOption.options;\r\n var mediaOnRoot = rawOption.media;\r\n var hasMedia = !!rawOption.media;\r\n var hasTimeline = !!(timelineOptionsOnRoot || timelineOnRoot || (declaredBaseOption && declaredBaseOption.timeline));\r\n if (declaredBaseOption) {\r\n baseOption = declaredBaseOption;\r\n if (!baseOption.timeline) {\r\n baseOption.timeline = timelineOnRoot;\r\n }\r\n }\r\n else {\r\n if (hasTimeline || hasMedia) {\r\n rawOption.options = rawOption.media = null;\r\n }\r\n baseOption = rawOption;\r\n }\r\n if (hasMedia) {\r\n if (isArray(mediaOnRoot)) {\r\n each(mediaOnRoot, function (singleMedia) {\r\n if (__DEV__) {\r\n if (singleMedia\r\n && !singleMedia.option\r\n && isObject(singleMedia.query)\r\n && isObject(singleMedia.query.option)) {\r\n error('Illegal media option. Must be like { media: [ { query: {}, option: {} } ] }');\r\n }\r\n }\r\n if (singleMedia && singleMedia.option) {\r\n if (singleMedia.query) {\r\n mediaList.push(singleMedia);\r\n }\r\n else if (!mediaDefault) {\r\n mediaDefault = singleMedia;\r\n }\r\n }\r\n });\r\n }\r\n else {\r\n if (__DEV__) {\r\n error('Illegal media option. Must be an array. Like { media: [ {...}, {...} ] }');\r\n }\r\n }\r\n }\r\n doPreprocess(baseOption);\r\n each(timelineOptionsOnRoot, function (option) { return doPreprocess(option); });\r\n each(mediaList, function (media) { return doPreprocess(media.option); });\r\n function doPreprocess(option) {\r\n each(optionPreprocessorFuncs, function (preProcess) {\r\n preProcess(option, isNew);\r\n });\r\n }\r\n return {\r\n baseOption: baseOption,\r\n timelineOptions: timelineOptionsOnRoot || [],\r\n mediaDefault: mediaDefault,\r\n mediaList: mediaList\r\n };\r\n }\r\n function applyMediaQuery(query, ecWidth, ecHeight) {\r\n var realMap = {\r\n width: ecWidth,\r\n height: ecHeight,\r\n aspectratio: ecWidth / ecHeight\r\n };\r\n var applicatable = true;\r\n each(query, function (value, attr) {\r\n var matched = attr.match(QUERY_REG);\r\n if (!matched || !matched[1] || !matched[2]) {\r\n return;\r\n }\r\n var operator = matched[1];\r\n var realAttr = matched[2].toLowerCase();\r\n if (!compare(realMap[realAttr], value, operator)) {\r\n applicatable = false;\r\n }\r\n });\r\n return applicatable;\r\n }\r\n function compare(real, expect, operator) {\r\n if (operator === 'min') {\r\n return real >= expect;\r\n }\r\n else if (operator === 'max') {\r\n return real <= expect;\r\n }\r\n else {\r\n return real === expect;\r\n }\r\n }\r\n function indicesEquals(indices1, indices2) {\r\n return indices1.join(',') === indices2.join(',');\r\n }\n\n var each$2 = each;\r\n var isObject$1 = isObject;\r\n var POSSIBLE_STYLES = [\r\n 'areaStyle', 'lineStyle', 'nodeStyle', 'linkStyle',\r\n 'chordStyle', 'label', 'labelLine'\r\n ];\r\n function compatEC2ItemStyle(opt) {\r\n var itemStyleOpt = opt && opt.itemStyle;\r\n if (!itemStyleOpt) {\r\n return;\r\n }\r\n for (var i = 0, len = POSSIBLE_STYLES.length; i < len; i++) {\r\n var styleName = POSSIBLE_STYLES[i];\r\n var normalItemStyleOpt = itemStyleOpt.normal;\r\n var emphasisItemStyleOpt = itemStyleOpt.emphasis;\r\n if (normalItemStyleOpt && normalItemStyleOpt[styleName]) {\r\n if (__DEV__) {\r\n deprecateReplaceLog(\"itemStyle.normal.\" + styleName, styleName);\r\n }\r\n opt[styleName] = opt[styleName] || {};\r\n if (!opt[styleName].normal) {\r\n opt[styleName].normal = normalItemStyleOpt[styleName];\r\n }\r\n else {\r\n merge(opt[styleName].normal, normalItemStyleOpt[styleName]);\r\n }\r\n normalItemStyleOpt[styleName] = null;\r\n }\r\n if (emphasisItemStyleOpt && emphasisItemStyleOpt[styleName]) {\r\n if (__DEV__) {\r\n deprecateReplaceLog(\"itemStyle.emphasis.\" + styleName, \"emphasis.\" + styleName);\r\n }\r\n opt[styleName] = opt[styleName] || {};\r\n if (!opt[styleName].emphasis) {\r\n opt[styleName].emphasis = emphasisItemStyleOpt[styleName];\r\n }\r\n else {\r\n merge(opt[styleName].emphasis, emphasisItemStyleOpt[styleName]);\r\n }\r\n emphasisItemStyleOpt[styleName] = null;\r\n }\r\n }\r\n }\r\n function convertNormalEmphasis(opt, optType, useExtend) {\r\n if (opt && opt[optType] && (opt[optType].normal || opt[optType].emphasis)) {\r\n var normalOpt = opt[optType].normal;\r\n var emphasisOpt = opt[optType].emphasis;\r\n if (normalOpt) {\r\n if (__DEV__) {\r\n deprecateLog(\"'normal' hierarchy in \" + optType + \" has been removed since 4.0. All style properties are configured in \" + optType + \" directly now.\");\r\n }\r\n if (useExtend) {\r\n opt[optType].normal = opt[optType].emphasis = null;\r\n defaults(opt[optType], normalOpt);\r\n }\r\n else {\r\n opt[optType] = normalOpt;\r\n }\r\n }\r\n if (emphasisOpt) {\r\n if (__DEV__) {\r\n deprecateLog(optType + \".emphasis has been changed to emphasis.\" + optType + \" since 4.0\");\r\n }\r\n opt.emphasis = opt.emphasis || {};\r\n opt.emphasis[optType] = emphasisOpt;\r\n if (emphasisOpt.focus) {\r\n opt.emphasis.focus = emphasisOpt.focus;\r\n }\r\n if (emphasisOpt.blurScope) {\r\n opt.emphasis.blurScope = emphasisOpt.blurScope;\r\n }\r\n }\r\n }\r\n }\r\n function removeEC3NormalStatus(opt) {\r\n convertNormalEmphasis(opt, 'itemStyle');\r\n convertNormalEmphasis(opt, 'lineStyle');\r\n convertNormalEmphasis(opt, 'areaStyle');\r\n convertNormalEmphasis(opt, 'label');\r\n convertNormalEmphasis(opt, 'labelLine');\r\n convertNormalEmphasis(opt, 'upperLabel');\r\n convertNormalEmphasis(opt, 'edgeLabel');\r\n }\r\n function compatTextStyle(opt, propName) {\r\n var labelOptSingle = isObject$1(opt) && opt[propName];\r\n var textStyle = isObject$1(labelOptSingle) && labelOptSingle.textStyle;\r\n if (textStyle) {\r\n if (__DEV__) {\r\n deprecateLog(\"textStyle hierarchy in \" + propName + \" has been removed since 4.0. All textStyle properties are configured in \" + propName + \" directly now.\");\r\n }\r\n for (var i = 0, len = TEXT_STYLE_OPTIONS.length; i < len; i++) {\r\n var textPropName = TEXT_STYLE_OPTIONS[i];\r\n if (textStyle.hasOwnProperty(textPropName)) {\r\n labelOptSingle[textPropName] = textStyle[textPropName];\r\n }\r\n }\r\n }\r\n }\r\n function compatEC3CommonStyles(opt) {\r\n if (opt) {\r\n removeEC3NormalStatus(opt);\r\n compatTextStyle(opt, 'label');\r\n opt.emphasis && compatTextStyle(opt.emphasis, 'label');\r\n }\r\n }\r\n function processSeries(seriesOpt) {\r\n if (!isObject$1(seriesOpt)) {\r\n return;\r\n }\r\n compatEC2ItemStyle(seriesOpt);\r\n removeEC3NormalStatus(seriesOpt);\r\n compatTextStyle(seriesOpt, 'label');\r\n compatTextStyle(seriesOpt, 'upperLabel');\r\n compatTextStyle(seriesOpt, 'edgeLabel');\r\n if (seriesOpt.emphasis) {\r\n compatTextStyle(seriesOpt.emphasis, 'label');\r\n compatTextStyle(seriesOpt.emphasis, 'upperLabel');\r\n compatTextStyle(seriesOpt.emphasis, 'edgeLabel');\r\n }\r\n var markPoint = seriesOpt.markPoint;\r\n if (markPoint) {\r\n compatEC2ItemStyle(markPoint);\r\n compatEC3CommonStyles(markPoint);\r\n }\r\n var markLine = seriesOpt.markLine;\r\n if (markLine) {\r\n compatEC2ItemStyle(markLine);\r\n compatEC3CommonStyles(markLine);\r\n }\r\n var markArea = seriesOpt.markArea;\r\n if (markArea) {\r\n compatEC3CommonStyles(markArea);\r\n }\r\n var data = seriesOpt.data;\r\n if (seriesOpt.type === 'graph') {\r\n data = data || seriesOpt.nodes;\r\n var edgeData = seriesOpt.links || seriesOpt.edges;\r\n if (edgeData && !isTypedArray(edgeData)) {\r\n for (var i = 0; i < edgeData.length; i++) {\r\n compatEC3CommonStyles(edgeData[i]);\r\n }\r\n }\r\n each(seriesOpt.categories, function (opt) {\r\n removeEC3NormalStatus(opt);\r\n });\r\n }\r\n if (data && !isTypedArray(data)) {\r\n for (var i = 0; i < data.length; i++) {\r\n compatEC3CommonStyles(data[i]);\r\n }\r\n }\r\n markPoint = seriesOpt.markPoint;\r\n if (markPoint && markPoint.data) {\r\n var mpData = markPoint.data;\r\n for (var i = 0; i < mpData.length; i++) {\r\n compatEC3CommonStyles(mpData[i]);\r\n }\r\n }\r\n markLine = seriesOpt.markLine;\r\n if (markLine && markLine.data) {\r\n var mlData = markLine.data;\r\n for (var i = 0; i < mlData.length; i++) {\r\n if (isArray(mlData[i])) {\r\n compatEC3CommonStyles(mlData[i][0]);\r\n compatEC3CommonStyles(mlData[i][1]);\r\n }\r\n else {\r\n compatEC3CommonStyles(mlData[i]);\r\n }\r\n }\r\n }\r\n if (seriesOpt.type === 'gauge') {\r\n compatTextStyle(seriesOpt, 'axisLabel');\r\n compatTextStyle(seriesOpt, 'title');\r\n compatTextStyle(seriesOpt, 'detail');\r\n }\r\n else if (seriesOpt.type === 'treemap') {\r\n convertNormalEmphasis(seriesOpt.breadcrumb, 'itemStyle');\r\n each(seriesOpt.levels, function (opt) {\r\n removeEC3NormalStatus(opt);\r\n });\r\n }\r\n else if (seriesOpt.type === 'tree') {\r\n removeEC3NormalStatus(seriesOpt.leaves);\r\n }\r\n }\r\n function toArr(o) {\r\n return isArray(o) ? o : o ? [o] : [];\r\n }\r\n function toObj(o) {\r\n return (isArray(o) ? o[0] : o) || {};\r\n }\r\n function globalCompatStyle(option, isTheme) {\r\n each$2(toArr(option.series), function (seriesOpt) {\r\n isObject$1(seriesOpt) && processSeries(seriesOpt);\r\n });\r\n var axes = ['xAxis', 'yAxis', 'radiusAxis', 'angleAxis', 'singleAxis', 'parallelAxis', 'radar'];\r\n isTheme && axes.push('valueAxis', 'categoryAxis', 'logAxis', 'timeAxis');\r\n each$2(axes, function (axisName) {\r\n each$2(toArr(option[axisName]), function (axisOpt) {\r\n if (axisOpt) {\r\n compatTextStyle(axisOpt, 'axisLabel');\r\n compatTextStyle(axisOpt.axisPointer, 'label');\r\n }\r\n });\r\n });\r\n each$2(toArr(option.parallel), function (parallelOpt) {\r\n var parallelAxisDefault = parallelOpt && parallelOpt.parallelAxisDefault;\r\n compatTextStyle(parallelAxisDefault, 'axisLabel');\r\n compatTextStyle(parallelAxisDefault && parallelAxisDefault.axisPointer, 'label');\r\n });\r\n each$2(toArr(option.calendar), function (calendarOpt) {\r\n convertNormalEmphasis(calendarOpt, 'itemStyle');\r\n compatTextStyle(calendarOpt, 'dayLabel');\r\n compatTextStyle(calendarOpt, 'monthLabel');\r\n compatTextStyle(calendarOpt, 'yearLabel');\r\n });\r\n each$2(toArr(option.radar), function (radarOpt) {\r\n compatTextStyle(radarOpt, 'name');\r\n if (radarOpt.name && radarOpt.axisName == null) {\r\n radarOpt.axisName = radarOpt.name;\r\n delete radarOpt.name;\r\n if (__DEV__) {\r\n deprecateLog('name property in radar component has been changed to axisName');\r\n }\r\n }\r\n if (radarOpt.nameGap != null && radarOpt.axisNameGap == null) {\r\n radarOpt.axisNameGap = radarOpt.nameGap;\r\n delete radarOpt.nameGap;\r\n if (__DEV__) {\r\n deprecateLog('nameGap property in radar component has been changed to axisNameGap');\r\n }\r\n }\r\n });\r\n each$2(toArr(option.geo), function (geoOpt) {\r\n if (isObject$1(geoOpt)) {\r\n compatEC3CommonStyles(geoOpt);\r\n each$2(toArr(geoOpt.regions), function (regionObj) {\r\n compatEC3CommonStyles(regionObj);\r\n });\r\n }\r\n });\r\n each$2(toArr(option.timeline), function (timelineOpt) {\r\n compatEC3CommonStyles(timelineOpt);\r\n convertNormalEmphasis(timelineOpt, 'label');\r\n convertNormalEmphasis(timelineOpt, 'itemStyle');\r\n convertNormalEmphasis(timelineOpt, 'controlStyle', true);\r\n var data = timelineOpt.data;\r\n isArray(data) && each(data, function (item) {\r\n if (isObject(item)) {\r\n convertNormalEmphasis(item, 'label');\r\n convertNormalEmphasis(item, 'itemStyle');\r\n }\r\n });\r\n });\r\n each$2(toArr(option.toolbox), function (toolboxOpt) {\r\n convertNormalEmphasis(toolboxOpt, 'iconStyle');\r\n each$2(toolboxOpt.feature, function (featureOpt) {\r\n convertNormalEmphasis(featureOpt, 'iconStyle');\r\n });\r\n });\r\n compatTextStyle(toObj(option.axisPointer), 'label');\r\n compatTextStyle(toObj(option.tooltip).axisPointer, 'label');\r\n }\n\n function get(opt, path) {\r\n var pathArr = path.split(',');\r\n var obj = opt;\r\n for (var i = 0; i < pathArr.length; i++) {\r\n obj = obj && obj[pathArr[i]];\r\n if (obj == null) {\r\n break;\r\n }\r\n }\r\n return obj;\r\n }\r\n function set$1(opt, path, val, overwrite) {\r\n var pathArr = path.split(',');\r\n var obj = opt;\r\n var key;\r\n var i = 0;\r\n for (; i < pathArr.length - 1; i++) {\r\n key = pathArr[i];\r\n if (obj[key] == null) {\r\n obj[key] = {};\r\n }\r\n obj = obj[key];\r\n }\r\n if (overwrite || obj[pathArr[i]] == null) {\r\n obj[pathArr[i]] = val;\r\n }\r\n }\r\n function compatLayoutProperties(option) {\r\n option && each(LAYOUT_PROPERTIES, function (prop) {\r\n if (prop[0] in option && !(prop[1] in option)) {\r\n option[prop[1]] = option[prop[0]];\r\n }\r\n });\r\n }\r\n var LAYOUT_PROPERTIES = [\r\n ['x', 'left'], ['y', 'top'], ['x2', 'right'], ['y2', 'bottom']\r\n ];\r\n var COMPATITABLE_COMPONENTS = [\r\n 'grid', 'geo', 'parallel', 'legend', 'toolbox', 'title', 'visualMap', 'dataZoom', 'timeline'\r\n ];\r\n var BAR_ITEM_STYLE_MAP = [\r\n ['borderRadius', 'barBorderRadius'],\r\n ['borderColor', 'barBorderColor'],\r\n ['borderWidth', 'barBorderWidth']\r\n ];\r\n function compatBarItemStyle(option) {\r\n var itemStyle = option && option.itemStyle;\r\n if (itemStyle) {\r\n for (var i = 0; i < BAR_ITEM_STYLE_MAP.length; i++) {\r\n var oldName = BAR_ITEM_STYLE_MAP[i][1];\r\n var newName = BAR_ITEM_STYLE_MAP[i][0];\r\n if (itemStyle[oldName] != null) {\r\n itemStyle[newName] = itemStyle[oldName];\r\n if (__DEV__) {\r\n deprecateReplaceLog(oldName, newName);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n function compatPieLabel(option) {\r\n if (!option) {\r\n return;\r\n }\r\n if (option.alignTo === 'edge' && option.margin != null && option.edgeDistance == null) {\r\n if (__DEV__) {\r\n deprecateReplaceLog('label.margin', 'label.edgeDistance', 'pie');\r\n }\r\n option.edgeDistance = option.margin;\r\n }\r\n }\r\n function compatSunburstState(option) {\r\n if (!option) {\r\n return;\r\n }\r\n if (option.downplay && !option.blur) {\r\n option.blur = option.downplay;\r\n if (__DEV__) {\r\n deprecateReplaceLog('downplay', 'blur', 'sunburst');\r\n }\r\n }\r\n }\r\n function compatGraphFocus(option) {\r\n if (!option) {\r\n return;\r\n }\r\n if (option.focusNodeAdjacency != null) {\r\n option.emphasis = option.emphasis || {};\r\n if (option.emphasis.focus == null) {\r\n if (__DEV__) {\r\n deprecateReplaceLog('focusNodeAdjacency', 'emphasis: { focus: \\'adjacency\\'}', 'graph/sankey');\r\n }\r\n option.emphasis.focus = 'adjacency';\r\n }\r\n }\r\n }\r\n function traverseTree(data, cb) {\r\n if (data) {\r\n for (var i = 0; i < data.length; i++) {\r\n cb(data[i]);\r\n data[i] && traverseTree(data[i].children, cb);\r\n }\r\n }\r\n }\r\n function globalBackwardCompat(option, isTheme) {\r\n globalCompatStyle(option, isTheme);\r\n option.series = normalizeToArray(option.series);\r\n each(option.series, function (seriesOpt) {\r\n if (!isObject(seriesOpt)) {\r\n return;\r\n }\r\n var seriesType = seriesOpt.type;\r\n if (seriesType === 'line') {\r\n if (seriesOpt.clipOverflow != null) {\r\n seriesOpt.clip = seriesOpt.clipOverflow;\r\n if (__DEV__) {\r\n deprecateReplaceLog('clipOverflow', 'clip', 'line');\r\n }\r\n }\r\n }\r\n else if (seriesType === 'pie' || seriesType === 'gauge') {\r\n if (seriesOpt.clockWise != null) {\r\n seriesOpt.clockwise = seriesOpt.clockWise;\r\n if (__DEV__) {\r\n deprecateReplaceLog('clockWise', 'clockwise');\r\n }\r\n }\r\n compatPieLabel(seriesOpt.label);\r\n var data = seriesOpt.data;\r\n if (data && !isTypedArray(data)) {\r\n for (var i = 0; i < data.length; i++) {\r\n compatPieLabel(data[i]);\r\n }\r\n }\r\n if (seriesOpt.hoverOffset != null) {\r\n seriesOpt.emphasis = seriesOpt.emphasis || {};\r\n if (seriesOpt.emphasis.scaleSize = null) {\r\n if (__DEV__) {\r\n deprecateReplaceLog('hoverOffset', 'emphasis.scaleSize');\r\n }\r\n seriesOpt.emphasis.scaleSize = seriesOpt.hoverOffset;\r\n }\r\n }\r\n }\r\n else if (seriesType === 'gauge') {\r\n var pointerColor = get(seriesOpt, 'pointer.color');\r\n pointerColor != null\r\n && set$1(seriesOpt, 'itemStyle.color', pointerColor);\r\n }\r\n else if (seriesType === 'bar') {\r\n compatBarItemStyle(seriesOpt);\r\n compatBarItemStyle(seriesOpt.backgroundStyle);\r\n compatBarItemStyle(seriesOpt.emphasis);\r\n var data = seriesOpt.data;\r\n if (data && !isTypedArray(data)) {\r\n for (var i = 0; i < data.length; i++) {\r\n if (typeof data[i] === 'object') {\r\n compatBarItemStyle(data[i]);\r\n compatBarItemStyle(data[i] && data[i].emphasis);\r\n }\r\n }\r\n }\r\n }\r\n else if (seriesType === 'sunburst') {\r\n var highlightPolicy = seriesOpt.highlightPolicy;\r\n if (highlightPolicy) {\r\n seriesOpt.emphasis = seriesOpt.emphasis || {};\r\n if (!seriesOpt.emphasis.focus) {\r\n seriesOpt.emphasis.focus = highlightPolicy;\r\n if (__DEV__) {\r\n deprecateReplaceLog('highlightPolicy', 'emphasis.focus', 'sunburst');\r\n }\r\n }\r\n }\r\n compatSunburstState(seriesOpt);\r\n traverseTree(seriesOpt.data, compatSunburstState);\r\n }\r\n else if (seriesType === 'graph' || seriesType === 'sankey') {\r\n compatGraphFocus(seriesOpt);\r\n }\r\n else if (seriesType === 'map') {\r\n if (seriesOpt.mapType && !seriesOpt.map) {\r\n if (__DEV__) {\r\n deprecateReplaceLog('mapType', 'map', 'map');\r\n }\r\n seriesOpt.map = seriesOpt.mapType;\r\n }\r\n if (seriesOpt.mapLocation) {\r\n if (__DEV__) {\r\n deprecateLog('`mapLocation` is not used anymore.');\r\n }\r\n defaults(seriesOpt, seriesOpt.mapLocation);\r\n }\r\n }\r\n if (seriesOpt.hoverAnimation != null) {\r\n seriesOpt.emphasis = seriesOpt.emphasis || {};\r\n if (seriesOpt.emphasis && seriesOpt.emphasis.scale == null) {\r\n if (__DEV__) {\r\n deprecateReplaceLog('hoverAnimation', 'emphasis.scale');\r\n }\r\n seriesOpt.emphasis.scale = seriesOpt.hoverAnimation;\r\n }\r\n }\r\n compatLayoutProperties(seriesOpt);\r\n });\r\n if (option.dataRange) {\r\n option.visualMap = option.dataRange;\r\n }\r\n each(COMPATITABLE_COMPONENTS, function (componentName) {\r\n var options = option[componentName];\r\n if (options) {\r\n if (!isArray(options)) {\r\n options = [options];\r\n }\r\n each(options, function (option) {\r\n compatLayoutProperties(option);\r\n });\r\n }\r\n });\r\n }\n\n function dataStack(ecModel) {\r\n var stackInfoMap = createHashMap();\r\n ecModel.eachSeries(function (seriesModel) {\r\n var stack = seriesModel.get('stack');\r\n if (stack) {\r\n var stackInfoList = stackInfoMap.get(stack) || stackInfoMap.set(stack, []);\r\n var data = seriesModel.getData();\r\n var stackInfo = {\r\n stackResultDimension: data.getCalculationInfo('stackResultDimension'),\r\n stackedOverDimension: data.getCalculationInfo('stackedOverDimension'),\r\n stackedDimension: data.getCalculationInfo('stackedDimension'),\r\n stackedByDimension: data.getCalculationInfo('stackedByDimension'),\r\n isStackedByIndex: data.getCalculationInfo('isStackedByIndex'),\r\n data: data,\r\n seriesModel: seriesModel\r\n };\r\n if (!stackInfo.stackedDimension\r\n || !(stackInfo.isStackedByIndex || stackInfo.stackedByDimension)) {\r\n return;\r\n }\r\n stackInfoList.length && data.setCalculationInfo('stackedOnSeries', stackInfoList[stackInfoList.length - 1].seriesModel);\r\n stackInfoList.push(stackInfo);\r\n }\r\n });\r\n stackInfoMap.each(calculateStack);\r\n }\r\n function calculateStack(stackInfoList) {\r\n each(stackInfoList, function (targetStackInfo, idxInStack) {\r\n var resultVal = [];\r\n var resultNaN = [NaN, NaN];\r\n var dims = [targetStackInfo.stackResultDimension, targetStackInfo.stackedOverDimension];\r\n var targetData = targetStackInfo.data;\r\n var isStackedByIndex = targetStackInfo.isStackedByIndex;\r\n var newData = targetData.map(dims, function (v0, v1, dataIndex) {\r\n var sum = targetData.get(targetStackInfo.stackedDimension, dataIndex);\r\n if (isNaN(sum)) {\r\n return resultNaN;\r\n }\r\n var byValue;\r\n var stackedDataRawIndex;\r\n if (isStackedByIndex) {\r\n stackedDataRawIndex = targetData.getRawIndex(dataIndex);\r\n }\r\n else {\r\n byValue = targetData.get(targetStackInfo.stackedByDimension, dataIndex);\r\n }\r\n var stackedOver = NaN;\r\n for (var j = idxInStack - 1; j >= 0; j--) {\r\n var stackInfo = stackInfoList[j];\r\n if (!isStackedByIndex) {\r\n stackedDataRawIndex = stackInfo.data.rawIndexOf(stackInfo.stackedByDimension, byValue);\r\n }\r\n if (stackedDataRawIndex >= 0) {\r\n var val = stackInfo.data.getByRawIndex(stackInfo.stackResultDimension, stackedDataRawIndex);\r\n if ((sum >= 0 && val > 0)\r\n || (sum <= 0 && val < 0)) {\r\n sum += val;\r\n stackedOver = val;\r\n break;\r\n }\r\n }\r\n }\r\n resultVal[0] = sum;\r\n resultVal[1] = stackedOver;\r\n return resultVal;\r\n });\r\n targetData.hostModel.setData(newData);\r\n targetStackInfo.data = newData;\r\n });\r\n }\n\n var SourceImpl = (function () {\r\n function SourceImpl(fields) {\r\n this.data = fields.data || (fields.sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS ? {} : []);\r\n this.sourceFormat = fields.sourceFormat || SOURCE_FORMAT_UNKNOWN;\r\n this.seriesLayoutBy = fields.seriesLayoutBy || SERIES_LAYOUT_BY_COLUMN;\r\n this.startIndex = fields.startIndex || 0;\r\n this.dimensionsDefine = fields.dimensionsDefine;\r\n this.dimensionsDetectedCount = fields.dimensionsDetectedCount;\r\n this.encodeDefine = fields.encodeDefine;\r\n this.metaRawOption = fields.metaRawOption;\r\n }\r\n return SourceImpl;\r\n }());\r\n function isSourceInstance(val) {\r\n return val instanceof SourceImpl;\r\n }\r\n function createSource(sourceData, thisMetaRawOption, sourceFormat, encodeDefine) {\r\n sourceFormat = sourceFormat || detectSourceFormat(sourceData);\r\n var seriesLayoutBy = thisMetaRawOption.seriesLayoutBy;\r\n var determined = determineSourceDimensions(sourceData, sourceFormat, seriesLayoutBy, thisMetaRawOption.sourceHeader, thisMetaRawOption.dimensions);\r\n var source = new SourceImpl({\r\n data: sourceData,\r\n sourceFormat: sourceFormat,\r\n seriesLayoutBy: seriesLayoutBy,\r\n dimensionsDefine: determined.dimensionsDefine,\r\n startIndex: determined.startIndex,\r\n dimensionsDetectedCount: determined.dimensionsDetectedCount,\r\n encodeDefine: makeEncodeDefine(encodeDefine),\r\n metaRawOption: clone(thisMetaRawOption)\r\n });\r\n return source;\r\n }\r\n function createSourceFromSeriesDataOption(data) {\r\n return new SourceImpl({\r\n data: data,\r\n sourceFormat: isTypedArray(data)\r\n ? SOURCE_FORMAT_TYPED_ARRAY\r\n : SOURCE_FORMAT_ORIGINAL\r\n });\r\n }\r\n function cloneSourceShallow(source) {\r\n return new SourceImpl({\r\n data: source.data,\r\n sourceFormat: source.sourceFormat,\r\n seriesLayoutBy: source.seriesLayoutBy,\r\n dimensionsDefine: clone(source.dimensionsDefine),\r\n startIndex: source.startIndex,\r\n dimensionsDetectedCount: source.dimensionsDetectedCount,\r\n encodeDefine: makeEncodeDefine(source.encodeDefine)\r\n });\r\n }\r\n function makeEncodeDefine(encodeDefine) {\r\n return encodeDefine\r\n ? createHashMap(encodeDefine)\r\n : null;\r\n }\r\n function detectSourceFormat(data) {\r\n var sourceFormat = SOURCE_FORMAT_UNKNOWN;\r\n if (isTypedArray(data)) {\r\n sourceFormat = SOURCE_FORMAT_TYPED_ARRAY;\r\n }\r\n else if (isArray(data)) {\r\n if (data.length === 0) {\r\n sourceFormat = SOURCE_FORMAT_ARRAY_ROWS;\r\n }\r\n for (var i = 0, len = data.length; i < len; i++) {\r\n var item = data[i];\r\n if (item == null) {\r\n continue;\r\n }\r\n else if (isArray(item)) {\r\n sourceFormat = SOURCE_FORMAT_ARRAY_ROWS;\r\n break;\r\n }\r\n else if (isObject(item)) {\r\n sourceFormat = SOURCE_FORMAT_OBJECT_ROWS;\r\n break;\r\n }\r\n }\r\n }\r\n else if (isObject(data)) {\r\n for (var key in data) {\r\n if (hasOwn(data, key) && isArrayLike(data[key])) {\r\n sourceFormat = SOURCE_FORMAT_KEYED_COLUMNS;\r\n break;\r\n }\r\n }\r\n }\r\n else if (data != null) {\r\n throw new Error('Invalid data');\r\n }\r\n return sourceFormat;\r\n }\r\n function determineSourceDimensions(data, sourceFormat, seriesLayoutBy, sourceHeader, dimensionsDefine) {\r\n var dimensionsDetectedCount;\r\n var startIndex;\r\n if (!data) {\r\n return {\r\n dimensionsDefine: normalizeDimensionsOption(dimensionsDefine),\r\n startIndex: startIndex,\r\n dimensionsDetectedCount: dimensionsDetectedCount\r\n };\r\n }\r\n if (sourceFormat === SOURCE_FORMAT_ARRAY_ROWS) {\r\n var dataArrayRows = data;\r\n if (sourceHeader === 'auto' || sourceHeader == null) {\r\n arrayRowsTravelFirst(function (val) {\r\n if (val != null && val !== '-') {\r\n if (isString(val)) {\r\n startIndex == null && (startIndex = 1);\r\n }\r\n else {\r\n startIndex = 0;\r\n }\r\n }\r\n }, seriesLayoutBy, dataArrayRows, 10);\r\n }\r\n else {\r\n startIndex = isNumber(sourceHeader) ? sourceHeader : sourceHeader ? 1 : 0;\r\n }\r\n if (!dimensionsDefine && startIndex === 1) {\r\n dimensionsDefine = [];\r\n arrayRowsTravelFirst(function (val, index) {\r\n dimensionsDefine[index] = (val != null ? val + '' : '');\r\n }, seriesLayoutBy, dataArrayRows, Infinity);\r\n }\r\n dimensionsDetectedCount = dimensionsDefine\r\n ? dimensionsDefine.length\r\n : seriesLayoutBy === SERIES_LAYOUT_BY_ROW\r\n ? dataArrayRows.length\r\n : dataArrayRows[0]\r\n ? dataArrayRows[0].length\r\n : null;\r\n }\r\n else if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS) {\r\n if (!dimensionsDefine) {\r\n dimensionsDefine = objectRowsCollectDimensions(data);\r\n }\r\n }\r\n else if (sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS) {\r\n if (!dimensionsDefine) {\r\n dimensionsDefine = [];\r\n each(data, function (colArr, key) {\r\n dimensionsDefine.push(key);\r\n });\r\n }\r\n }\r\n else if (sourceFormat === SOURCE_FORMAT_ORIGINAL) {\r\n var value0 = getDataItemValue(data[0]);\r\n dimensionsDetectedCount = isArray(value0) && value0.length || 1;\r\n }\r\n else if (sourceFormat === SOURCE_FORMAT_TYPED_ARRAY) {\r\n if (__DEV__) {\r\n assert(!!dimensionsDefine, 'dimensions must be given if data is TypedArray.');\r\n }\r\n }\r\n return {\r\n startIndex: startIndex,\r\n dimensionsDefine: normalizeDimensionsOption(dimensionsDefine),\r\n dimensionsDetectedCount: dimensionsDetectedCount\r\n };\r\n }\r\n function objectRowsCollectDimensions(data) {\r\n var firstIndex = 0;\r\n var obj;\r\n while (firstIndex < data.length && !(obj = data[firstIndex++])) { }\r\n if (obj) {\r\n var dimensions_1 = [];\r\n each(obj, function (value, key) {\r\n dimensions_1.push(key);\r\n });\r\n return dimensions_1;\r\n }\r\n }\r\n function normalizeDimensionsOption(dimensionsDefine) {\r\n if (!dimensionsDefine) {\r\n return;\r\n }\r\n var nameMap = createHashMap();\r\n return map(dimensionsDefine, function (rawItem, index) {\r\n rawItem = isObject(rawItem) ? rawItem : { name: rawItem };\r\n var item = {\r\n name: rawItem.name,\r\n displayName: rawItem.displayName,\r\n type: rawItem.type\r\n };\r\n if (name == null) {\r\n return item;\r\n }\r\n item.name += '';\r\n if (item.displayName == null) {\r\n item.displayName = item.name;\r\n }\r\n var exist = nameMap.get(item.name);\r\n if (!exist) {\r\n nameMap.set(item.name, { count: 1 });\r\n }\r\n else {\r\n item.name += '-' + exist.count++;\r\n }\r\n return item;\r\n });\r\n }\r\n function arrayRowsTravelFirst(cb, seriesLayoutBy, data, maxLoop) {\r\n if (seriesLayoutBy === SERIES_LAYOUT_BY_ROW) {\r\n for (var i = 0; i < data.length && i < maxLoop; i++) {\r\n cb(data[i] ? data[i][0] : null, i);\r\n }\r\n }\r\n else {\r\n var value0 = data[0] || [];\r\n for (var i = 0; i < value0.length && i < maxLoop; i++) {\r\n cb(value0[i], i);\r\n }\r\n }\r\n }\n\n var _a, _b, _c;\r\n var providerMethods;\r\n var mountMethods;\r\n var DefaultDataProvider = (function () {\r\n function DefaultDataProvider(sourceParam, dimSize) {\r\n var source = !isSourceInstance(sourceParam)\r\n ? createSourceFromSeriesDataOption(sourceParam)\r\n : sourceParam;\r\n this._source = source;\r\n var data = this._data = source.data;\r\n if (source.sourceFormat === SOURCE_FORMAT_TYPED_ARRAY) {\r\n if (__DEV__) {\r\n if (dimSize == null) {\r\n throw new Error('Typed array data must specify dimension size');\r\n }\r\n }\r\n this._offset = 0;\r\n this._dimSize = dimSize;\r\n this._data = data;\r\n }\r\n mountMethods(this, data, source);\r\n }\r\n DefaultDataProvider.prototype.getSource = function () {\r\n return this._source;\r\n };\r\n DefaultDataProvider.prototype.count = function () {\r\n return 0;\r\n };\r\n DefaultDataProvider.prototype.getItem = function (idx, out) {\r\n return;\r\n };\r\n DefaultDataProvider.prototype.appendData = function (newData) {\r\n };\r\n DefaultDataProvider.prototype.clean = function () {\r\n };\r\n DefaultDataProvider.protoInitialize = (function () {\r\n var proto = DefaultDataProvider.prototype;\r\n proto.pure = false;\r\n proto.persistent = true;\r\n })();\r\n DefaultDataProvider.internalField = (function () {\r\n var _a;\r\n mountMethods = function (provider, data, source) {\r\n var sourceFormat = source.sourceFormat;\r\n var seriesLayoutBy = source.seriesLayoutBy;\r\n var startIndex = source.startIndex;\r\n var dimsDef = source.dimensionsDefine;\r\n var methods = providerMethods[getMethodMapKey(sourceFormat, seriesLayoutBy)];\r\n if (__DEV__) {\r\n assert(methods, 'Invalide sourceFormat: ' + sourceFormat);\r\n }\r\n extend(provider, methods);\r\n if (sourceFormat === SOURCE_FORMAT_TYPED_ARRAY) {\r\n provider.getItem = getItemForTypedArray;\r\n provider.count = countForTypedArray;\r\n provider.fillStorage = fillStorageForTypedArray;\r\n }\r\n else {\r\n var rawItemGetter = getRawSourceItemGetter(sourceFormat, seriesLayoutBy);\r\n provider.getItem = bind(rawItemGetter, null, data, startIndex, dimsDef);\r\n var rawCounter = getRawSourceDataCounter(sourceFormat, seriesLayoutBy);\r\n provider.count = bind(rawCounter, null, data, startIndex, dimsDef);\r\n }\r\n };\r\n var getItemForTypedArray = function (idx, out) {\r\n idx = idx - this._offset;\r\n out = out || [];\r\n var data = this._data;\r\n var dimSize = this._dimSize;\r\n var offset = dimSize * idx;\r\n for (var i = 0; i < dimSize; i++) {\r\n out[i] = data[offset + i];\r\n }\r\n return out;\r\n };\r\n var fillStorageForTypedArray = function (start, end, storage, extent) {\r\n var data = this._data;\r\n var dimSize = this._dimSize;\r\n for (var dim = 0; dim < dimSize; dim++) {\r\n var dimExtent = extent[dim];\r\n var min = dimExtent[0] == null ? Infinity : dimExtent[0];\r\n var max = dimExtent[1] == null ? -Infinity : dimExtent[1];\r\n var count = end - start;\r\n var arr = storage[dim];\r\n for (var i = 0; i < count; i++) {\r\n var val = data[(start + i) * dimSize + dim];\r\n arr[start + i] = val;\r\n val < min && (min = val);\r\n val > max && (max = val);\r\n }\r\n dimExtent[0] = min;\r\n dimExtent[1] = max;\r\n }\r\n };\r\n var countForTypedArray = function () {\r\n return this._data ? (this._data.length / this._dimSize) : 0;\r\n };\r\n providerMethods = (_a = {},\r\n _a[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_COLUMN] = {\r\n pure: true,\r\n appendData: appendDataSimply\r\n },\r\n _a[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_ROW] = {\r\n pure: true,\r\n appendData: function () {\r\n throw new Error('Do not support appendData when set seriesLayoutBy: \"row\".');\r\n }\r\n },\r\n _a[SOURCE_FORMAT_OBJECT_ROWS] = {\r\n pure: true,\r\n appendData: appendDataSimply\r\n },\r\n _a[SOURCE_FORMAT_KEYED_COLUMNS] = {\r\n pure: true,\r\n appendData: function (newData) {\r\n var data = this._data;\r\n each(newData, function (newCol, key) {\r\n var oldCol = data[key] || (data[key] = []);\r\n for (var i = 0; i < (newCol || []).length; i++) {\r\n oldCol.push(newCol[i]);\r\n }\r\n });\r\n }\r\n },\r\n _a[SOURCE_FORMAT_ORIGINAL] = {\r\n appendData: appendDataSimply\r\n },\r\n _a[SOURCE_FORMAT_TYPED_ARRAY] = {\r\n persistent: false,\r\n pure: true,\r\n appendData: function (newData) {\r\n if (__DEV__) {\r\n assert(isTypedArray(newData), 'Added data must be TypedArray if data in initialization is TypedArray');\r\n }\r\n this._data = newData;\r\n },\r\n clean: function () {\r\n this._offset += this.count();\r\n this._data = null;\r\n }\r\n },\r\n _a);\r\n function appendDataSimply(newData) {\r\n for (var i = 0; i < newData.length; i++) {\r\n this._data.push(newData[i]);\r\n }\r\n }\r\n })();\r\n return DefaultDataProvider;\r\n }());\r\n var getItemSimply = function (rawData, startIndex, dimsDef, idx) {\r\n return rawData[idx];\r\n };\r\n var rawSourceItemGetterMap = (_a = {},\r\n _a[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_COLUMN] = function (rawData, startIndex, dimsDef, idx) {\r\n return rawData[idx + startIndex];\r\n },\r\n _a[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_ROW] = function (rawData, startIndex, dimsDef, idx) {\r\n idx += startIndex;\r\n var item = [];\r\n var data = rawData;\r\n for (var i = 0; i < data.length; i++) {\r\n var row = data[i];\r\n item.push(row ? row[idx] : null);\r\n }\r\n return item;\r\n },\r\n _a[SOURCE_FORMAT_OBJECT_ROWS] = getItemSimply,\r\n _a[SOURCE_FORMAT_KEYED_COLUMNS] = function (rawData, startIndex, dimsDef, idx) {\r\n var item = [];\r\n for (var i = 0; i < dimsDef.length; i++) {\r\n var dimName = dimsDef[i].name;\r\n if (__DEV__) {\r\n if (dimName == null) {\r\n throw new Error();\r\n }\r\n }\r\n var col = rawData[dimName];\r\n item.push(col ? col[idx] : null);\r\n }\r\n return item;\r\n },\r\n _a[SOURCE_FORMAT_ORIGINAL] = getItemSimply,\r\n _a);\r\n function getRawSourceItemGetter(sourceFormat, seriesLayoutBy) {\r\n var method = rawSourceItemGetterMap[getMethodMapKey(sourceFormat, seriesLayoutBy)];\r\n if (__DEV__) {\r\n assert(method, 'Do not suppport get item on \"' + sourceFormat + '\", \"' + seriesLayoutBy + '\".');\r\n }\r\n return method;\r\n }\r\n var countSimply = function (rawData, startIndex, dimsDef) {\r\n return rawData.length;\r\n };\r\n var rawSourceDataCounterMap = (_b = {},\r\n _b[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_COLUMN] = function (rawData, startIndex, dimsDef) {\r\n return Math.max(0, rawData.length - startIndex);\r\n },\r\n _b[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_ROW] = function (rawData, startIndex, dimsDef) {\r\n var row = rawData[0];\r\n return row ? Math.max(0, row.length - startIndex) : 0;\r\n },\r\n _b[SOURCE_FORMAT_OBJECT_ROWS] = countSimply,\r\n _b[SOURCE_FORMAT_KEYED_COLUMNS] = function (rawData, startIndex, dimsDef) {\r\n var dimName = dimsDef[0].name;\r\n if (__DEV__) {\r\n if (dimName == null) {\r\n throw new Error();\r\n }\r\n }\r\n var col = rawData[dimName];\r\n return col ? col.length : 0;\r\n },\r\n _b[SOURCE_FORMAT_ORIGINAL] = countSimply,\r\n _b);\r\n function getRawSourceDataCounter(sourceFormat, seriesLayoutBy) {\r\n var method = rawSourceDataCounterMap[getMethodMapKey(sourceFormat, seriesLayoutBy)];\r\n if (__DEV__) {\r\n assert(method, 'Do not suppport count on \"' + sourceFormat + '\", \"' + seriesLayoutBy + '\".');\r\n }\r\n return method;\r\n }\r\n var getRawValueSimply = function (dataItem, dimIndex, dimName) {\r\n return dimIndex != null ? dataItem[dimIndex] : dataItem;\r\n };\r\n var rawSourceValueGetterMap = (_c = {},\r\n _c[SOURCE_FORMAT_ARRAY_ROWS] = getRawValueSimply,\r\n _c[SOURCE_FORMAT_OBJECT_ROWS] = function (dataItem, dimIndex, dimName) {\r\n return dimIndex != null ? dataItem[dimName] : dataItem;\r\n },\r\n _c[SOURCE_FORMAT_KEYED_COLUMNS] = getRawValueSimply,\r\n _c[SOURCE_FORMAT_ORIGINAL] = function (dataItem, dimIndex, dimName) {\r\n var value = getDataItemValue(dataItem);\r\n return (dimIndex == null || !(value instanceof Array))\r\n ? value\r\n : value[dimIndex];\r\n },\r\n _c[SOURCE_FORMAT_TYPED_ARRAY] = getRawValueSimply,\r\n _c);\r\n function getRawSourceValueGetter(sourceFormat) {\r\n var method = rawSourceValueGetterMap[sourceFormat];\r\n if (__DEV__) {\r\n assert(method, 'Do not suppport get value on \"' + sourceFormat + '\".');\r\n }\r\n return method;\r\n }\r\n function getMethodMapKey(sourceFormat, seriesLayoutBy) {\r\n return sourceFormat === SOURCE_FORMAT_ARRAY_ROWS\r\n ? sourceFormat + '_' + seriesLayoutBy\r\n : sourceFormat;\r\n }\r\n function retrieveRawValue(data, dataIndex, dim) {\r\n if (!data) {\r\n return;\r\n }\r\n var dataItem = data.getRawDataItem(dataIndex);\r\n if (dataItem == null) {\r\n return;\r\n }\r\n var sourceFormat = data.getProvider().getSource().sourceFormat;\r\n var dimName;\r\n var dimIndex;\r\n var dimInfo = data.getDimensionInfo(dim);\r\n if (dimInfo) {\r\n dimName = dimInfo.name;\r\n dimIndex = dimInfo.index;\r\n }\r\n return getRawSourceValueGetter(sourceFormat)(dataItem, dimIndex, dimName);\r\n }\n\n var DIMENSION_LABEL_REG = /\\{@(.+?)\\}/g;\r\n var DataFormatMixin = (function () {\r\n function DataFormatMixin() {\r\n }\r\n DataFormatMixin.prototype.getDataParams = function (dataIndex, dataType) {\r\n var data = this.getData(dataType);\r\n var rawValue = this.getRawValue(dataIndex, dataType);\r\n var rawDataIndex = data.getRawIndex(dataIndex);\r\n var name = data.getName(dataIndex);\r\n var itemOpt = data.getRawDataItem(dataIndex);\r\n var style = data.getItemVisual(dataIndex, 'style');\r\n var color = style && style[data.getItemVisual(dataIndex, 'drawType') || 'fill'];\r\n var borderColor = style && style.stroke;\r\n var mainType = this.mainType;\r\n var isSeries = mainType === 'series';\r\n var userOutput = data.userOutput;\r\n return {\r\n componentType: mainType,\r\n componentSubType: this.subType,\r\n componentIndex: this.componentIndex,\r\n seriesType: isSeries ? this.subType : null,\r\n seriesIndex: this.seriesIndex,\r\n seriesId: isSeries ? this.id : null,\r\n seriesName: isSeries ? this.name : null,\r\n name: name,\r\n dataIndex: rawDataIndex,\r\n data: itemOpt,\r\n dataType: dataType,\r\n value: rawValue,\r\n color: color,\r\n borderColor: borderColor,\r\n dimensionNames: userOutput ? userOutput.dimensionNames : null,\r\n encode: userOutput ? userOutput.encode : null,\r\n $vars: ['seriesName', 'name', 'value']\r\n };\r\n };\r\n DataFormatMixin.prototype.getFormattedLabel = function (dataIndex, status, dataType, labelDimIndex, formatter, extendParams) {\r\n status = status || 'normal';\r\n var data = this.getData(dataType);\r\n var params = this.getDataParams(dataIndex, dataType);\r\n if (extendParams) {\r\n extend(params, extendParams);\r\n }\r\n if (labelDimIndex != null && (params.value instanceof Array)) {\r\n params.value = params.value[labelDimIndex];\r\n }\r\n if (!formatter) {\r\n var itemModel = data.getItemModel(dataIndex);\r\n formatter = itemModel.get(status === 'normal'\r\n ? ['label', 'formatter']\r\n : [status, 'label', 'formatter']);\r\n }\r\n if (typeof formatter === 'function') {\r\n params.status = status;\r\n params.dimensionIndex = labelDimIndex;\r\n return formatter(params);\r\n }\r\n else if (typeof formatter === 'string') {\r\n var str = formatTpl(formatter, params);\r\n return str.replace(DIMENSION_LABEL_REG, function (origin, dim) {\r\n var len = dim.length;\r\n if (dim.charAt(0) === '[' && dim.charAt(len - 1) === ']') {\r\n dim = +dim.slice(1, len - 1);\r\n }\r\n return retrieveRawValue(data, dataIndex, dim);\r\n });\r\n }\r\n };\r\n DataFormatMixin.prototype.getRawValue = function (idx, dataType) {\r\n return retrieveRawValue(this.getData(dataType), idx);\r\n };\r\n DataFormatMixin.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\r\n return;\r\n };\r\n return DataFormatMixin;\r\n }());\r\n function normalizeTooltipFormatResult(result) {\r\n var markupText;\r\n var markupFragment;\r\n if (isObject(result)) {\r\n if (result.type) {\r\n markupFragment = result;\r\n }\r\n else {\r\n if (__DEV__) {\r\n console.warn('The return type of `formatTooltip` is not supported: ' + makePrintable(result));\r\n }\r\n }\r\n }\r\n else {\r\n markupText = result;\r\n }\r\n return {\r\n markupText: markupText,\r\n markupFragment: markupFragment\r\n };\r\n }\n\n function createTask(define) {\r\n return new Task(define);\r\n }\r\n var Task = (function () {\r\n function Task(define) {\r\n define = define || {};\r\n this._reset = define.reset;\r\n this._plan = define.plan;\r\n this._count = define.count;\r\n this._onDirty = define.onDirty;\r\n this._dirty = true;\r\n }\r\n Task.prototype.perform = function (performArgs) {\r\n var upTask = this._upstream;\r\n var skip = performArgs && performArgs.skip;\r\n if (this._dirty && upTask) {\r\n var context = this.context;\r\n context.data = context.outputData = upTask.context.outputData;\r\n }\r\n if (this.__pipeline) {\r\n this.__pipeline.currentTask = this;\r\n }\r\n var planResult;\r\n if (this._plan && !skip) {\r\n planResult = this._plan(this.context);\r\n }\r\n var lastModBy = normalizeModBy(this._modBy);\r\n var lastModDataCount = this._modDataCount || 0;\r\n var modBy = normalizeModBy(performArgs && performArgs.modBy);\r\n var modDataCount = performArgs && performArgs.modDataCount || 0;\r\n if (lastModBy !== modBy || lastModDataCount !== modDataCount) {\r\n planResult = 'reset';\r\n }\r\n function normalizeModBy(val) {\r\n !(val >= 1) && (val = 1);\r\n return val;\r\n }\r\n var forceFirstProgress;\r\n if (this._dirty || planResult === 'reset') {\r\n this._dirty = false;\r\n forceFirstProgress = this._doReset(skip);\r\n }\r\n this._modBy = modBy;\r\n this._modDataCount = modDataCount;\r\n var step = performArgs && performArgs.step;\r\n if (upTask) {\r\n if (__DEV__) {\r\n assert(upTask._outputDueEnd != null);\r\n }\r\n this._dueEnd = upTask._outputDueEnd;\r\n }\r\n else {\r\n if (__DEV__) {\r\n assert(!this._progress || this._count);\r\n }\r\n this._dueEnd = this._count ? this._count(this.context) : Infinity;\r\n }\r\n if (this._progress) {\r\n var start = this._dueIndex;\r\n var end = Math.min(step != null ? this._dueIndex + step : Infinity, this._dueEnd);\r\n if (!skip && (forceFirstProgress || start < end)) {\r\n var progress = this._progress;\r\n if (isArray(progress)) {\r\n for (var i = 0; i < progress.length; i++) {\r\n this._doProgress(progress[i], start, end, modBy, modDataCount);\r\n }\r\n }\r\n else {\r\n this._doProgress(progress, start, end, modBy, modDataCount);\r\n }\r\n }\r\n this._dueIndex = end;\r\n var outputDueEnd = this._settedOutputEnd != null\r\n ? this._settedOutputEnd : end;\r\n if (__DEV__) {\r\n assert(outputDueEnd >= this._outputDueEnd);\r\n }\r\n this._outputDueEnd = outputDueEnd;\r\n }\r\n else {\r\n this._dueIndex = this._outputDueEnd = this._settedOutputEnd != null\r\n ? this._settedOutputEnd : this._dueEnd;\r\n }\r\n return this.unfinished();\r\n };\r\n Task.prototype.dirty = function () {\r\n this._dirty = true;\r\n this._onDirty && this._onDirty(this.context);\r\n };\r\n Task.prototype._doProgress = function (progress, start, end, modBy, modDataCount) {\r\n iterator.reset(start, end, modBy, modDataCount);\r\n this._callingProgress = progress;\r\n this._callingProgress({\r\n start: start, end: end, count: end - start, next: iterator.next\r\n }, this.context);\r\n };\r\n Task.prototype._doReset = function (skip) {\r\n this._dueIndex = this._outputDueEnd = this._dueEnd = 0;\r\n this._settedOutputEnd = null;\r\n var progress;\r\n var forceFirstProgress;\r\n if (!skip && this._reset) {\r\n progress = this._reset(this.context);\r\n if (progress && progress.progress) {\r\n forceFirstProgress = progress.forceFirstProgress;\r\n progress = progress.progress;\r\n }\r\n if (isArray(progress) && !progress.length) {\r\n progress = null;\r\n }\r\n }\r\n this._progress = progress;\r\n this._modBy = this._modDataCount = null;\r\n var downstream = this._downstream;\r\n downstream && downstream.dirty();\r\n return forceFirstProgress;\r\n };\r\n Task.prototype.unfinished = function () {\r\n return this._progress && this._dueIndex < this._dueEnd;\r\n };\r\n Task.prototype.pipe = function (downTask) {\r\n if (__DEV__) {\r\n assert(downTask && !downTask._disposed && downTask !== this);\r\n }\r\n if (this._downstream !== downTask || this._dirty) {\r\n this._downstream = downTask;\r\n downTask._upstream = this;\r\n downTask.dirty();\r\n }\r\n };\r\n Task.prototype.dispose = function () {\r\n if (this._disposed) {\r\n return;\r\n }\r\n this._upstream && (this._upstream._downstream = null);\r\n this._downstream && (this._downstream._upstream = null);\r\n this._dirty = false;\r\n this._disposed = true;\r\n };\r\n Task.prototype.getUpstream = function () {\r\n return this._upstream;\r\n };\r\n Task.prototype.getDownstream = function () {\r\n return this._downstream;\r\n };\r\n Task.prototype.setOutputEnd = function (end) {\r\n this._outputDueEnd = this._settedOutputEnd = end;\r\n };\r\n return Task;\r\n }());\r\n var iterator = (function () {\r\n var end;\r\n var current;\r\n var modBy;\r\n var modDataCount;\r\n var winCount;\r\n var it = {\r\n reset: function (s, e, sStep, sCount) {\r\n current = s;\r\n end = e;\r\n modBy = sStep;\r\n modDataCount = sCount;\r\n winCount = Math.ceil(modDataCount / modBy);\r\n it.next = (modBy > 1 && modDataCount > 0) ? modNext : sequentialNext;\r\n }\r\n };\r\n return it;\r\n function sequentialNext() {\r\n return current < end ? current++ : null;\r\n }\r\n function modNext() {\r\n var dataIndex = (current % winCount) * modBy + Math.ceil(current / winCount);\r\n var result = current >= end\r\n ? null\r\n : dataIndex < modDataCount\r\n ? dataIndex\r\n : current;\r\n current++;\r\n return result;\r\n }\r\n })();\n\n function parseDataValue(value, opt) {\r\n var dimType = opt && opt.type;\r\n if (dimType === 'ordinal') {\r\n var ordinalMeta = opt && opt.ordinalMeta;\r\n return ordinalMeta\r\n ? ordinalMeta.parseAndCollect(value)\r\n : value;\r\n }\r\n if (dimType === 'time'\r\n && typeof value !== 'number'\r\n && value != null\r\n && value !== '-') {\r\n value = +parseDate(value);\r\n }\r\n return (value == null || value === '')\r\n ? NaN\r\n : +value;\r\n }\r\n var valueParserMap = createHashMap({\r\n 'number': function (val) {\r\n return parseFloat(val);\r\n },\r\n 'time': function (val) {\r\n return +parseDate(val);\r\n },\r\n 'trim': function (val) {\r\n return typeof val === 'string' ? trim(val) : val;\r\n }\r\n });\r\n function getRawValueParser(type) {\r\n return valueParserMap.get(type);\r\n }\r\n var ORDER_COMPARISON_OP_MAP = {\r\n lt: function (lval, rval) { return lval < rval; },\r\n lte: function (lval, rval) { return lval <= rval; },\r\n gt: function (lval, rval) { return lval > rval; },\r\n gte: function (lval, rval) { return lval >= rval; }\r\n };\r\n var FilterOrderComparator = (function () {\r\n function FilterOrderComparator(op, rval) {\r\n if (typeof rval !== 'number') {\r\n var errMsg = '';\r\n if (__DEV__) {\r\n errMsg = 'rvalue of \"<\", \">\", \"<=\", \">=\" can only be number in filter.';\r\n }\r\n throwError(errMsg);\r\n }\r\n this._opFn = ORDER_COMPARISON_OP_MAP[op];\r\n this._rvalFloat = numericToNumber(rval);\r\n }\r\n FilterOrderComparator.prototype.evaluate = function (lval) {\r\n return typeof lval === 'number'\r\n ? this._opFn(lval, this._rvalFloat)\r\n : this._opFn(numericToNumber(lval), this._rvalFloat);\r\n };\r\n return FilterOrderComparator;\r\n }());\r\n var SortOrderComparator = (function () {\r\n function SortOrderComparator(order, incomparable) {\r\n var isDesc = order === 'desc';\r\n this._resultLT = isDesc ? 1 : -1;\r\n if (incomparable == null) {\r\n incomparable = isDesc ? 'min' : 'max';\r\n }\r\n this._incomparable = incomparable === 'min' ? -Infinity : Infinity;\r\n }\r\n SortOrderComparator.prototype.evaluate = function (lval, rval) {\r\n var lvalTypeof = typeof lval;\r\n var rvalTypeof = typeof rval;\r\n var lvalFloat = lvalTypeof === 'number' ? lval : numericToNumber(lval);\r\n var rvalFloat = rvalTypeof === 'number' ? rval : numericToNumber(rval);\r\n var lvalNotNumeric = isNaN(lvalFloat);\r\n var rvalNotNumeric = isNaN(rvalFloat);\r\n if (lvalNotNumeric) {\r\n lvalFloat = this._incomparable;\r\n }\r\n if (rvalNotNumeric) {\r\n rvalFloat = this._incomparable;\r\n }\r\n if (lvalNotNumeric && rvalNotNumeric) {\r\n var lvalIsStr = lvalTypeof === 'string';\r\n var rvalIsStr = rvalTypeof === 'string';\r\n if (lvalIsStr) {\r\n lvalFloat = rvalIsStr ? lval : 0;\r\n }\r\n if (rvalIsStr) {\r\n rvalFloat = lvalIsStr ? rval : 0;\r\n }\r\n }\r\n return lvalFloat < rvalFloat ? this._resultLT\r\n : lvalFloat > rvalFloat ? -this._resultLT\r\n : 0;\r\n };\r\n return SortOrderComparator;\r\n }());\r\n var FilterEqualityComparator = (function () {\r\n function FilterEqualityComparator(isEq, rval) {\r\n this._rval = rval;\r\n this._isEQ = isEq;\r\n this._rvalTypeof = typeof rval;\r\n this._rvalFloat = numericToNumber(rval);\r\n }\r\n FilterEqualityComparator.prototype.evaluate = function (lval) {\r\n var eqResult = lval === this._rval;\r\n if (!eqResult) {\r\n var lvalTypeof = typeof lval;\r\n if (lvalTypeof !== this._rvalTypeof && (lvalTypeof === 'number' || this._rvalTypeof === 'number')) {\r\n eqResult = numericToNumber(lval) === this._rvalFloat;\r\n }\r\n }\r\n return this._isEQ ? eqResult : !eqResult;\r\n };\r\n return FilterEqualityComparator;\r\n }());\r\n function createFilterComparator(op, rval) {\r\n return (op === 'eq' || op === 'ne')\r\n ? new FilterEqualityComparator(op === 'eq', rval)\r\n : hasOwn(ORDER_COMPARISON_OP_MAP, op)\r\n ? new FilterOrderComparator(op, rval)\r\n : null;\r\n }\n\n var ExternalSource = (function () {\r\n function ExternalSource() {\r\n }\r\n ExternalSource.prototype.getRawData = function () {\r\n throw new Error('not supported');\r\n };\r\n ExternalSource.prototype.getRawDataItem = function (dataIndex) {\r\n throw new Error('not supported');\r\n };\r\n ExternalSource.prototype.cloneRawData = function () {\r\n return;\r\n };\r\n ExternalSource.prototype.getDimensionInfo = function (dim) {\r\n return;\r\n };\r\n ExternalSource.prototype.cloneAllDimensionInfo = function () {\r\n return;\r\n };\r\n ExternalSource.prototype.count = function () {\r\n return;\r\n };\r\n ExternalSource.prototype.retrieveValue = function (dataIndex, dimIndex) {\r\n return;\r\n };\r\n ExternalSource.prototype.retrieveValueFromItem = function (dataItem, dimIndex) {\r\n return;\r\n };\r\n ExternalSource.prototype.convertValue = function (rawVal, dimInfo) {\r\n return parseDataValue(rawVal, dimInfo);\r\n };\r\n return ExternalSource;\r\n }());\r\n function createExternalSource(internalSource, externalTransform) {\r\n var extSource = new ExternalSource();\r\n var data = internalSource.data;\r\n var sourceFormat = extSource.sourceFormat = internalSource.sourceFormat;\r\n var sourceHeaderCount = internalSource.startIndex;\r\n var dimensions = [];\r\n var dimsByName = {};\r\n var dimsDef = internalSource.dimensionsDefine;\r\n if (dimsDef) {\r\n each(dimsDef, function (dimDef, idx) {\r\n var name = dimDef.name;\r\n var dimDefExt = {\r\n index: idx,\r\n name: name,\r\n displayName: dimDef.displayName\r\n };\r\n dimensions.push(dimDefExt);\r\n if (name != null) {\r\n var errMsg = '';\r\n if (hasOwn(dimsByName, name)) {\r\n if (__DEV__) {\r\n errMsg = 'dimension name \"' + name + '\" duplicated.';\r\n }\r\n throwError(errMsg);\r\n }\r\n dimsByName[name] = dimDefExt;\r\n }\r\n });\r\n }\r\n else {\r\n for (var i = 0; i < internalSource.dimensionsDetectedCount || 0; i++) {\r\n dimensions.push({ index: i });\r\n }\r\n }\r\n var rawItemGetter = getRawSourceItemGetter(sourceFormat, SERIES_LAYOUT_BY_COLUMN);\r\n if (externalTransform.__isBuiltIn) {\r\n extSource.getRawDataItem = function (dataIndex) {\r\n return rawItemGetter(data, sourceHeaderCount, dimensions, dataIndex);\r\n };\r\n extSource.getRawData = bind(getRawData, null, internalSource);\r\n }\r\n extSource.cloneRawData = bind(cloneRawData, null, internalSource);\r\n var rawCounter = getRawSourceDataCounter(sourceFormat, SERIES_LAYOUT_BY_COLUMN);\r\n extSource.count = bind(rawCounter, null, data, sourceHeaderCount, dimensions);\r\n var rawValueGetter = getRawSourceValueGetter(sourceFormat);\r\n extSource.retrieveValue = function (dataIndex, dimIndex) {\r\n var rawItem = rawItemGetter(data, sourceHeaderCount, dimensions, dataIndex);\r\n return retrieveValueFromItem(rawItem, dimIndex);\r\n };\r\n var retrieveValueFromItem = extSource.retrieveValueFromItem = function (dataItem, dimIndex) {\r\n if (dataItem == null) {\r\n return;\r\n }\r\n var dimDef = dimensions[dimIndex];\r\n if (dimDef) {\r\n return rawValueGetter(dataItem, dimIndex, dimDef.name);\r\n }\r\n };\r\n extSource.getDimensionInfo = bind(getDimensionInfo, null, dimensions, dimsByName);\r\n extSource.cloneAllDimensionInfo = bind(cloneAllDimensionInfo, null, dimensions);\r\n return extSource;\r\n }\r\n function getRawData(upstream) {\r\n var sourceFormat = upstream.sourceFormat;\r\n var data = upstream.data;\r\n if (sourceFormat === SOURCE_FORMAT_ARRAY_ROWS\r\n || sourceFormat === SOURCE_FORMAT_OBJECT_ROWS\r\n || !data\r\n || (isArray(data) && !data.length)) {\r\n return upstream.data;\r\n }\r\n var errMsg = '';\r\n if (__DEV__) {\r\n errMsg = '`getRawData` is not supported in source format ' + sourceFormat;\r\n }\r\n throwError(errMsg);\r\n }\r\n function cloneRawData(upstream) {\r\n var sourceFormat = upstream.sourceFormat;\r\n var data = upstream.data;\r\n if (!data) {\r\n return data;\r\n }\r\n else if (isArray(data) && !data.length) {\r\n return [];\r\n }\r\n else if (sourceFormat === SOURCE_FORMAT_ARRAY_ROWS) {\r\n var result = [];\r\n for (var i = 0, len = data.length; i < len; i++) {\r\n result.push(data[i].slice());\r\n }\r\n return result;\r\n }\r\n else if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS) {\r\n var result = [];\r\n for (var i = 0, len = data.length; i < len; i++) {\r\n result.push(extend({}, data[i]));\r\n }\r\n return result;\r\n }\r\n }\r\n function getDimensionInfo(dimensions, dimsByName, dim) {\r\n if (dim == null) {\r\n return;\r\n }\r\n if (typeof dim === 'number'\r\n || (!isNaN(dim) && !hasOwn(dimsByName, dim))) {\r\n return dimensions[dim];\r\n }\r\n else if (hasOwn(dimsByName, dim)) {\r\n return dimsByName[dim];\r\n }\r\n }\r\n function cloneAllDimensionInfo(dimensions) {\r\n return clone(dimensions);\r\n }\r\n var externalTransformMap = createHashMap();\r\n function registerExternalTransform(externalTransform) {\r\n externalTransform = clone(externalTransform);\r\n var type = externalTransform.type;\r\n var errMsg = '';\r\n if (!type) {\r\n if (__DEV__) {\r\n errMsg = 'Must have a `type` when `registerTransform`.';\r\n }\r\n throwError(errMsg);\r\n }\r\n var typeParsed = type.split(':');\r\n if (typeParsed.length !== 2) {\r\n if (__DEV__) {\r\n errMsg = 'Name must include namespace like \"ns:regression\".';\r\n }\r\n throwError(errMsg);\r\n }\r\n var isBuiltIn = false;\r\n if (typeParsed[0] === 'echarts') {\r\n type = typeParsed[1];\r\n isBuiltIn = true;\r\n }\r\n externalTransform.__isBuiltIn = isBuiltIn;\r\n externalTransformMap.set(type, externalTransform);\r\n }\r\n function applyDataTransform(rawTransOption, sourceList, infoForPrint) {\r\n var pipedTransOption = normalizeToArray(rawTransOption);\r\n var pipeLen = pipedTransOption.length;\r\n var errMsg = '';\r\n if (!pipeLen) {\r\n if (__DEV__) {\r\n errMsg = 'If `transform` declared, it should at least contain one transform.';\r\n }\r\n throwError(errMsg);\r\n }\r\n for (var i = 0, len = pipeLen; i < len; i++) {\r\n var transOption = pipedTransOption[i];\r\n sourceList = applySingleDataTransform(transOption, sourceList, infoForPrint, pipeLen === 1 ? null : i);\r\n if (i !== len - 1) {\r\n sourceList.length = Math.max(sourceList.length, 1);\r\n }\r\n }\r\n return sourceList;\r\n }\r\n function applySingleDataTransform(transOption, upSourceList, infoForPrint, pipeIndex) {\r\n var errMsg = '';\r\n if (!upSourceList.length) {\r\n if (__DEV__) {\r\n errMsg = 'Must have at least one upstream dataset.';\r\n }\r\n throwError(errMsg);\r\n }\r\n if (!isObject(transOption)) {\r\n if (__DEV__) {\r\n errMsg = 'transform declaration must be an object rather than ' + typeof transOption + '.';\r\n }\r\n throwError(errMsg);\r\n }\r\n var transType = transOption.type;\r\n var externalTransform = externalTransformMap.get(transType);\r\n if (!externalTransform) {\r\n if (__DEV__) {\r\n errMsg = 'Can not find transform on type \"' + transType + '\".';\r\n }\r\n throwError(errMsg);\r\n }\r\n var extUpSourceList = map(upSourceList, function (upSource) { return createExternalSource(upSource, externalTransform); });\r\n var resultList = normalizeToArray(externalTransform.transform({\r\n upstream: extUpSourceList[0],\r\n upstreamList: extUpSourceList,\r\n config: clone(transOption.config)\r\n }));\r\n if (__DEV__) {\r\n if (transOption.print) {\r\n var printStrArr = map(resultList, function (extSource) {\r\n var pipeIndexStr = pipeIndex != null ? ' === pipe index: ' + pipeIndex : '';\r\n return [\r\n '=== dataset index: ' + infoForPrint.datasetIndex + pipeIndexStr + ' ===',\r\n '- transform result data:',\r\n makePrintable(extSource.data),\r\n '- transform result dimensions:',\r\n makePrintable(extSource.dimensions)\r\n ].join('\\n');\r\n }).join('\\n');\r\n consoleLog(printStrArr);\r\n }\r\n }\r\n return map(resultList, function (result) {\r\n var errMsg = '';\r\n if (!isObject(result)) {\r\n if (__DEV__) {\r\n errMsg = 'A transform should not return some empty results.';\r\n }\r\n throwError(errMsg);\r\n }\r\n var resultData = result.data;\r\n if (resultData != null) {\r\n if (!isObject(resultData) && !isArrayLike(resultData)) {\r\n if (__DEV__) {\r\n errMsg = 'Result data should be object or array in data transform.';\r\n }\r\n throwError(errMsg);\r\n }\r\n }\r\n else {\r\n resultData = upSourceList[0].data;\r\n }\r\n var resultMetaRawOption = inheritSourceMetaRawOption(upSourceList[0], {\r\n seriesLayoutBy: SERIES_LAYOUT_BY_COLUMN,\r\n sourceHeader: 0,\r\n dimensions: result.dimensions\r\n });\r\n return createSource(resultData, resultMetaRawOption, null, null);\r\n });\r\n }\n\n var SourceManager = (function () {\r\n function SourceManager(sourceHost) {\r\n this._sourceList = [];\r\n this._upstreamSignList = [];\r\n this._versionSignBase = 0;\r\n this._sourceHost = sourceHost;\r\n }\r\n SourceManager.prototype.dirty = function () {\r\n this._setLocalSource([], []);\r\n };\r\n SourceManager.prototype._setLocalSource = function (sourceList, upstreamSignList) {\r\n this._sourceList = sourceList;\r\n this._upstreamSignList = upstreamSignList;\r\n this._versionSignBase++;\r\n if (this._versionSignBase > 9e10) {\r\n this._versionSignBase = 0;\r\n }\r\n };\r\n SourceManager.prototype._getVersionSign = function () {\r\n return this._sourceHost.uid + '_' + this._versionSignBase;\r\n };\r\n SourceManager.prototype.prepareSource = function () {\r\n if (this._isDirty()) {\r\n this._createSource();\r\n }\r\n };\r\n SourceManager.prototype._createSource = function () {\r\n this._setLocalSource([], []);\r\n var sourceHost = this._sourceHost;\r\n var upSourceMgrList = this._getUpstreamSourceManagers();\r\n var hasUpstream = !!upSourceMgrList.length;\r\n var resultSourceList;\r\n var upstreamSignList;\r\n if (isSeries(sourceHost)) {\r\n var seriesModel = sourceHost;\r\n var data = void 0;\r\n var sourceFormat = void 0;\r\n var upSource = void 0;\r\n if (hasUpstream) {\r\n var upSourceMgr = upSourceMgrList[0];\r\n upSourceMgr.prepareSource();\r\n upSource = upSourceMgr.getSource();\r\n data = upSource.data;\r\n sourceFormat = upSource.sourceFormat;\r\n upstreamSignList = [upSourceMgr._getVersionSign()];\r\n }\r\n else {\r\n data = seriesModel.get('data', true);\r\n sourceFormat = isTypedArray(data)\r\n ? SOURCE_FORMAT_TYPED_ARRAY : SOURCE_FORMAT_ORIGINAL;\r\n upstreamSignList = [];\r\n }\r\n var thisMetaRawOption = inheritSourceMetaRawOption(upSource, this._getSourceMetaRawOption());\r\n resultSourceList = [createSource(data, thisMetaRawOption, sourceFormat, seriesModel.get('encode', true))];\r\n }\r\n else {\r\n var datasetModel = sourceHost;\r\n if (hasUpstream) {\r\n var result = this._applyTransform(upSourceMgrList);\r\n resultSourceList = result.sourceList;\r\n upstreamSignList = result.upstreamSignList;\r\n }\r\n else {\r\n var sourceData = datasetModel.get('source', true);\r\n resultSourceList = [createSource(sourceData, this._getSourceMetaRawOption(), null, null)];\r\n upstreamSignList = [];\r\n }\r\n }\r\n if (__DEV__) {\r\n assert(resultSourceList && upstreamSignList);\r\n }\r\n this._setLocalSource(resultSourceList, upstreamSignList);\r\n };\r\n SourceManager.prototype._applyTransform = function (upMgrList) {\r\n var datasetModel = this._sourceHost;\r\n var transformOption = datasetModel.get('transform', true);\r\n var fromTransformResult = datasetModel.get('fromTransformResult', true);\r\n if (__DEV__) {\r\n assert(fromTransformResult != null || transformOption != null);\r\n }\r\n if (fromTransformResult != null) {\r\n var errMsg = '';\r\n if (upMgrList.length !== 1) {\r\n if (__DEV__) {\r\n errMsg = 'When using `fromTransformResult`, there should be only one upstream dataset';\r\n }\r\n doThrow(errMsg);\r\n }\r\n }\r\n var sourceList;\r\n var upSourceList = [];\r\n var upstreamSignList = [];\r\n each(upMgrList, function (upMgr) {\r\n upMgr.prepareSource();\r\n var upSource = upMgr.getSource(fromTransformResult || 0);\r\n var errMsg = '';\r\n if (fromTransformResult != null && !upSource) {\r\n if (__DEV__) {\r\n errMsg = 'Can not retrieve result by `fromTransformResult`: ' + fromTransformResult;\r\n }\r\n doThrow(errMsg);\r\n }\r\n upSourceList.push(upSource);\r\n upstreamSignList.push(upMgr._getVersionSign());\r\n });\r\n if (transformOption) {\r\n sourceList = applyDataTransform(transformOption, upSourceList, { datasetIndex: datasetModel.componentIndex });\r\n }\r\n else if (fromTransformResult != null) {\r\n sourceList = [cloneSourceShallow(upSourceList[0])];\r\n }\r\n return { sourceList: sourceList, upstreamSignList: upstreamSignList };\r\n };\r\n SourceManager.prototype._isDirty = function () {\r\n var sourceList = this._sourceList;\r\n if (!sourceList.length) {\r\n return true;\r\n }\r\n var upSourceMgrList = this._getUpstreamSourceManagers();\r\n for (var i = 0; i < upSourceMgrList.length; i++) {\r\n var upSrcMgr = upSourceMgrList[i];\r\n if (upSrcMgr._isDirty()\r\n || this._upstreamSignList[i] !== upSrcMgr._getVersionSign()) {\r\n return true;\r\n }\r\n }\r\n };\r\n SourceManager.prototype.getSource = function (sourceIndex) {\r\n return this._sourceList[sourceIndex || 0];\r\n };\r\n SourceManager.prototype._getUpstreamSourceManagers = function () {\r\n var sourceHost = this._sourceHost;\r\n if (isSeries(sourceHost)) {\r\n var datasetModel = querySeriesUpstreamDatasetModel(sourceHost);\r\n return !datasetModel ? [] : [datasetModel.getSourceManager()];\r\n }\r\n else {\r\n return map(queryDatasetUpstreamDatasetModels(sourceHost), function (datasetModel) { return datasetModel.getSourceManager(); });\r\n }\r\n };\r\n SourceManager.prototype._getSourceMetaRawOption = function () {\r\n var sourceHost = this._sourceHost;\r\n var seriesLayoutBy;\r\n var sourceHeader;\r\n var dimensions;\r\n if (isSeries(sourceHost)) {\r\n seriesLayoutBy = sourceHost.get('seriesLayoutBy', true);\r\n sourceHeader = sourceHost.get('sourceHeader', true);\r\n dimensions = sourceHost.get('dimensions', true);\r\n }\r\n else if (!this._getUpstreamSourceManagers().length) {\r\n var model = sourceHost;\r\n seriesLayoutBy = model.get('seriesLayoutBy', true);\r\n sourceHeader = model.get('sourceHeader', true);\r\n dimensions = model.get('dimensions', true);\r\n }\r\n return { seriesLayoutBy: seriesLayoutBy, sourceHeader: sourceHeader, dimensions: dimensions };\r\n };\r\n return SourceManager;\r\n }());\r\n function disableTransformOptionMerge(datasetModel) {\r\n var transformOption = datasetModel.option.transform;\r\n transformOption && setAsPrimitive(datasetModel.option.transform);\r\n }\r\n function isSeries(sourceHost) {\r\n return sourceHost.mainType === 'series';\r\n }\r\n function doThrow(errMsg) {\r\n throw new Error(errMsg);\r\n }\n\n var TOOLTIP_NAME_TEXT_STYLE_CSS = 'font-size:12px;color:#6e7079';\r\n var TOOLTIP_TEXT_STYLE_RICH = {\r\n fontSize: 12,\r\n fill: '#6e7079'\r\n };\r\n var TOOLTIP_VALUE_TEXT_STYLE_CSS = 'font-size:14px;color:#464646;font-weight:900';\r\n var TOOLTIP_VALUE_TEXT_STYLE_RICH = {\r\n fontSize: 14,\r\n fill: '#464646',\r\n fontWeight: 900\r\n };\r\n var TOOLTIP_LINE_HEIGHT_CSS = 'line-height:1';\r\n var HTML_GAPS = [0, 10, 20, 30];\r\n var RICH_TEXT_GAPS = ['', '\\n', '\\n\\n', '\\n\\n\\n'];\r\n function createTooltipMarkup(type, option) {\r\n option.type = type;\r\n return option;\r\n }\r\n function getBuilder(fragment) {\r\n return hasOwn(builderMap, fragment.type) && builderMap[fragment.type];\r\n }\r\n var builderMap = {\r\n section: {\r\n planLayout: function (fragment) {\r\n var subBlockLen = fragment.blocks.length;\r\n var thisBlockHasInnerGap = subBlockLen > 1 || (subBlockLen > 0 && !fragment.noHeader);\r\n var thisGapLevelBetweenSubBlocks = 0;\r\n each(fragment.blocks, function (subBlock) {\r\n getBuilder(subBlock).planLayout(subBlock);\r\n var subGapLevel = subBlock.__gapLevelBetweenSubBlocks;\r\n if (subGapLevel >= thisGapLevelBetweenSubBlocks) {\r\n thisGapLevelBetweenSubBlocks = subGapLevel + ((thisBlockHasInnerGap && (!subGapLevel\r\n || (subBlock.type === 'section' && !subBlock.noHeader))) ? 1 : 0);\r\n }\r\n });\r\n fragment.__gapLevelBetweenSubBlocks = thisGapLevelBetweenSubBlocks;\r\n },\r\n build: function (ctx, fragment, topMarginForOuterGap) {\r\n var noHeader = fragment.noHeader;\r\n var gaps = getGap(fragment);\r\n var subMarkupText = buildSubBlocks(ctx, fragment, noHeader ? topMarginForOuterGap : gaps.html);\r\n if (noHeader) {\r\n return subMarkupText;\r\n }\r\n var displayableHeader = makeValueReadable(fragment.header, 'ordinal', ctx.useUTC);\r\n if (ctx.renderMode === 'richText') {\r\n return wrapInlineNameRichText(ctx, displayableHeader) + gaps.richText\r\n + subMarkupText;\r\n }\r\n else {\r\n return wrapBlockHTML(\"<div style=\\\"\" + TOOLTIP_NAME_TEXT_STYLE_CSS + \";\" + TOOLTIP_LINE_HEIGHT_CSS + \";\\\">\"\r\n + encodeHTML(displayableHeader)\r\n + '</div>'\r\n + subMarkupText, topMarginForOuterGap);\r\n }\r\n }\r\n },\r\n nameValue: {\r\n planLayout: function (fragment) {\r\n fragment.__gapLevelBetweenSubBlocks = 0;\r\n },\r\n build: function (ctx, fragment, topMarginForOuterGap) {\r\n var renderMode = ctx.renderMode;\r\n var noName = fragment.noName;\r\n var noValue = fragment.noValue;\r\n var noMarker = !fragment.markerType;\r\n var name = fragment.name;\r\n var value = fragment.value;\r\n var useUTC = ctx.useUTC;\r\n if (noName && noValue) {\r\n return;\r\n }\r\n var markerStr = noMarker\r\n ? ''\r\n : ctx.markupStyleCreator.makeTooltipMarker(fragment.markerType, fragment.markerColor || '#333', renderMode);\r\n var readableName = noName\r\n ? ''\r\n : makeValueReadable(name, 'ordinal', useUTC);\r\n var valueTypeOption = fragment.valueType;\r\n var readableValueList = noValue\r\n ? []\r\n : (isArray(value)\r\n ? map(value, function (val, idx) { return makeValueReadable(val, isArray(valueTypeOption) ? valueTypeOption[idx] : valueTypeOption, useUTC); })\r\n : [makeValueReadable(value, isArray(valueTypeOption) ? valueTypeOption[0] : valueTypeOption, useUTC)]);\r\n var valueAlignRight = !noMarker || !noName;\r\n var valueCloseToMarker = !noMarker && noName;\r\n return renderMode === 'richText'\r\n ? ((noMarker ? '' : markerStr)\r\n + (noName ? '' : wrapInlineNameRichText(ctx, readableName))\r\n + (noValue ? '' : wrapInlineValueRichText(ctx, readableValueList, valueAlignRight, valueCloseToMarker)))\r\n : wrapBlockHTML((noMarker ? '' : markerStr)\r\n + (noName ? '' : wrapInlineNameHTML(readableName, !noMarker))\r\n + (noValue ? '' : wrapInlineValueHTML(readableValueList, valueAlignRight, valueCloseToMarker)), topMarginForOuterGap);\r\n }\r\n }\r\n };\r\n function buildSubBlocks(ctx, fragment, topMarginForOuterGap) {\r\n var subMarkupTextList = [];\r\n var subBlocks = fragment.blocks || [];\r\n assert(!subBlocks || isArray(subBlocks));\r\n subBlocks = subBlocks || [];\r\n var orderMode = ctx.orderMode;\r\n if (fragment.sortBlocks && orderMode) {\r\n subBlocks = subBlocks.slice();\r\n var orderMap = { valueAsc: 'asc', valueDesc: 'desc' };\r\n if (hasOwn(orderMap, orderMode)) {\r\n var comparator_1 = new SortOrderComparator(orderMap[orderMode], null);\r\n subBlocks.sort(function (a, b) { return comparator_1.evaluate(a.sortParam, b.sortParam); });\r\n }\r\n else if (orderMode === 'seriesDesc') {\r\n subBlocks.reverse();\r\n }\r\n }\r\n var gaps = getGap(fragment);\r\n each(subBlocks, function (subBlock, idx) {\r\n var subMarkupText = getBuilder(subBlock).build(ctx, subBlock, idx > 0 ? gaps.html : 0);\r\n subMarkupText != null && subMarkupTextList.push(subMarkupText);\r\n });\r\n if (!subMarkupTextList.length) {\r\n return;\r\n }\r\n return ctx.renderMode === 'richText'\r\n ? subMarkupTextList.join(gaps.richText)\r\n : wrapBlockHTML(subMarkupTextList.join(''), topMarginForOuterGap);\r\n }\r\n function buildTooltipMarkup(fragment, markupStyleCreator, renderMode, orderMode, useUTC) {\r\n if (!fragment) {\r\n return;\r\n }\r\n var builder = getBuilder(fragment);\r\n builder.planLayout(fragment);\r\n var ctx = {\r\n useUTC: useUTC,\r\n renderMode: renderMode,\r\n orderMode: orderMode,\r\n markupStyleCreator: markupStyleCreator\r\n };\r\n return builder.build(ctx, fragment, 0);\r\n }\r\n function getGap(fragment) {\r\n var gapLevelBetweenSubBlocks = fragment.__gapLevelBetweenSubBlocks;\r\n return {\r\n html: HTML_GAPS[gapLevelBetweenSubBlocks],\r\n richText: RICH_TEXT_GAPS[gapLevelBetweenSubBlocks]\r\n };\r\n }\r\n function wrapBlockHTML(encodedContent, topGap) {\r\n var clearfix = '<div style=\"clear:both\"></div>';\r\n var marginCSS = \"margin: \" + topGap + \"px 0 0\";\r\n return \"<div style=\\\"\" + marginCSS + \";\" + TOOLTIP_LINE_HEIGHT_CSS + \";\\\">\"\r\n + encodedContent + clearfix\r\n + '</div>';\r\n }\r\n function wrapInlineNameHTML(name, leftHasMarker) {\r\n var marginCss = leftHasMarker ? 'margin-left:2px' : '';\r\n return \"<span style=\\\"\" + TOOLTIP_NAME_TEXT_STYLE_CSS + \";\" + marginCss + \"\\\">\"\r\n + encodeHTML(name)\r\n + '</span>';\r\n }\r\n function wrapInlineValueHTML(valueList, alignRight, valueCloseToMarker) {\r\n var paddingStr = valueCloseToMarker ? '10px' : '20px';\r\n var alignCSS = alignRight ? \"float:right;margin-left:\" + paddingStr : '';\r\n return (\"<span style=\\\"\" + alignCSS + \";\" + TOOLTIP_VALUE_TEXT_STYLE_CSS + \"\\\">\"\r\n + map(valueList, function (value) { return encodeHTML(value); }).join('&nbsp;&nbsp;')\r\n + '</span>');\r\n }\r\n function wrapInlineNameRichText(ctx, name) {\r\n return ctx.markupStyleCreator.wrapRichTextStyle(name, TOOLTIP_TEXT_STYLE_RICH);\r\n }\r\n function wrapInlineValueRichText(ctx, valueList, alignRight, valueCloseToMarker) {\r\n var styles = [TOOLTIP_VALUE_TEXT_STYLE_RICH];\r\n var paddingLeft = valueCloseToMarker ? 10 : 20;\r\n alignRight && styles.push({ padding: [0, 0, 0, paddingLeft], align: 'right' });\r\n return ctx.markupStyleCreator.wrapRichTextStyle(valueList.join(' '), styles);\r\n }\r\n function retrieveVisualColorForTooltipMarker(series, dataIndex) {\r\n var style = series.getData().getItemVisual(dataIndex, 'style');\r\n var color = style[series.visualDrawType];\r\n return convertToColorString(color);\r\n }\r\n function getPaddingFromTooltipModel(model, renderMode) {\r\n var padding = model.get('padding');\r\n return padding != null\r\n ? padding\r\n : renderMode === 'richText'\r\n ? [8, 10]\r\n : 10;\r\n }\r\n var TooltipMarkupStyleCreator = (function () {\r\n function TooltipMarkupStyleCreator() {\r\n this.richTextStyles = {};\r\n this._nextStyleNameId = getRandomIdBase();\r\n }\r\n TooltipMarkupStyleCreator.prototype._generateStyleName = function () {\r\n return '__EC_aUTo_' + this._nextStyleNameId++;\r\n };\r\n TooltipMarkupStyleCreator.prototype.makeTooltipMarker = function (markerType, colorStr, renderMode) {\r\n var markerId = renderMode === 'richText'\r\n ? this._generateStyleName()\r\n : null;\r\n var marker = getTooltipMarker({\r\n color: colorStr,\r\n type: markerType,\r\n renderMode: renderMode,\r\n markerId: markerId\r\n });\r\n if (isString(marker)) {\r\n return marker;\r\n }\r\n else {\r\n if (__DEV__) {\r\n assert(markerId);\r\n }\r\n this.richTextStyles[markerId] = marker.style;\r\n return marker.content;\r\n }\r\n };\r\n TooltipMarkupStyleCreator.prototype.wrapRichTextStyle = function (text, styles) {\r\n var finalStl = {};\r\n if (isArray(styles)) {\r\n each(styles, function (stl) { return extend(finalStl, stl); });\r\n }\r\n else {\r\n extend(finalStl, styles);\r\n }\r\n var styleName = this._generateStyleName();\r\n this.richTextStyles[styleName] = finalStl;\r\n return \"{\" + styleName + \"|\" + text + \"}\";\r\n };\r\n return TooltipMarkupStyleCreator;\r\n }());\n\n function defaultSeriesFormatTooltip(opt) {\r\n var series = opt.series;\r\n var dataIndex = opt.dataIndex;\r\n var multipleSeries = opt.multipleSeries;\r\n var data = series.getData();\r\n var tooltipDims = data.mapDimensionsAll('defaultedTooltip');\r\n var tooltipDimLen = tooltipDims.length;\r\n var value = series.getRawValue(dataIndex);\r\n var isValueArr = isArray(value);\r\n var markerColor = retrieveVisualColorForTooltipMarker(series, dataIndex);\r\n var inlineValue;\r\n var inlineValueType;\r\n var subBlocks;\r\n var sortParam;\r\n if (tooltipDimLen > 1 || (isValueArr && !tooltipDimLen)) {\r\n var formatArrResult = formatTooltipArrayValue(value, series, dataIndex, tooltipDims, markerColor);\r\n inlineValue = formatArrResult.inlineValues;\r\n inlineValueType = formatArrResult.inlineValueTypes;\r\n subBlocks = formatArrResult.blocks;\r\n sortParam = formatArrResult.inlineValues[0];\r\n }\r\n else if (tooltipDimLen) {\r\n var dimInfo = data.getDimensionInfo(tooltipDims[0]);\r\n sortParam = inlineValue = retrieveRawValue(data, dataIndex, tooltipDims[0]);\r\n inlineValueType = dimInfo.type;\r\n }\r\n else {\r\n sortParam = inlineValue = isValueArr ? value[0] : value;\r\n }\r\n var seriesNameSpecified = isNameSpecified(series);\r\n var seriesName = seriesNameSpecified && series.name || '';\r\n var itemName = data.getName(dataIndex);\r\n var inlineName = multipleSeries ? seriesName : itemName;\r\n return createTooltipMarkup('section', {\r\n header: seriesName,\r\n noHeader: multipleSeries || !seriesNameSpecified,\r\n sortParam: sortParam,\r\n blocks: [\r\n createTooltipMarkup('nameValue', {\r\n markerType: 'item',\r\n markerColor: markerColor,\r\n name: inlineName,\r\n noName: !trim(inlineName),\r\n value: inlineValue,\r\n valueType: inlineValueType\r\n })\r\n ].concat(subBlocks || [])\r\n });\r\n }\r\n function formatTooltipArrayValue(value, series, dataIndex, tooltipDims, colorStr) {\r\n var data = series.getData();\r\n var isValueMultipleLine = reduce(value, function (isValueMultipleLine, val, idx) {\r\n var dimItem = data.getDimensionInfo(idx);\r\n return isValueMultipleLine = isValueMultipleLine\r\n || (dimItem && dimItem.tooltip !== false && dimItem.displayName != null);\r\n }, false);\r\n var inlineValues = [];\r\n var inlineValueTypes = [];\r\n var blocks = [];\r\n tooltipDims.length\r\n ? each(tooltipDims, function (dim) {\r\n setEachItem(retrieveRawValue(data, dataIndex, dim), dim);\r\n })\r\n : each(value, setEachItem);\r\n function setEachItem(val, dim) {\r\n var dimInfo = data.getDimensionInfo(dim);\r\n if (!dimInfo || dimInfo.otherDims.tooltip === false) {\r\n return;\r\n }\r\n if (isValueMultipleLine) {\r\n blocks.push(createTooltipMarkup('nameValue', {\r\n markerType: 'subItem',\r\n markerColor: colorStr,\r\n name: dimInfo.displayName,\r\n value: val,\r\n valueType: dimInfo.type\r\n }));\r\n }\r\n else {\r\n inlineValues.push(val);\r\n inlineValueTypes.push(dimInfo.type);\r\n }\r\n }\r\n return { inlineValues: inlineValues, inlineValueTypes: inlineValueTypes, blocks: blocks };\r\n }\n\n var inner$1 = makeInner();\r\n function getSelectionKey(data, dataIndex) {\r\n return data.getName(dataIndex) || data.getId(dataIndex);\r\n }\r\n var SeriesModel = (function (_super) {\r\n __extends(SeriesModel, _super);\r\n function SeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this._selectedDataIndicesMap = {};\r\n return _this;\r\n }\r\n SeriesModel.prototype.init = function (option, parentModel, ecModel) {\r\n this.seriesIndex = this.componentIndex;\r\n this.dataTask = createTask({\r\n count: dataTaskCount,\r\n reset: dataTaskReset\r\n });\r\n this.dataTask.context = { model: this };\r\n this.mergeDefaultAndTheme(option, ecModel);\r\n var sourceManager = inner$1(this).sourceManager = new SourceManager(this);\r\n sourceManager.prepareSource();\r\n var data = this.getInitialData(option, ecModel);\r\n wrapData(data, this);\r\n this.dataTask.context.data = data;\r\n if (__DEV__) {\r\n assert(data, 'getInitialData returned invalid data.');\r\n }\r\n inner$1(this).dataBeforeProcessed = data;\r\n autoSeriesName(this);\r\n this._initSelectedMapFromData(data);\r\n };\r\n SeriesModel.prototype.mergeDefaultAndTheme = function (option, ecModel) {\r\n var layoutMode = fetchLayoutMode(this);\r\n var inputPositionParams = layoutMode\r\n ? getLayoutParams(option) : {};\r\n var themeSubType = this.subType;\r\n if (ComponentModel.hasClass(themeSubType)) {\r\n themeSubType += 'Series';\r\n }\r\n merge(option, ecModel.getTheme().get(this.subType));\r\n merge(option, this.getDefaultOption());\r\n defaultEmphasis(option, 'label', ['show']);\r\n this.fillDataTextStyle(option.data);\r\n if (layoutMode) {\r\n mergeLayoutParam(option, inputPositionParams, layoutMode);\r\n }\r\n };\r\n SeriesModel.prototype.mergeOption = function (newSeriesOption, ecModel) {\r\n newSeriesOption = merge(this.option, newSeriesOption, true);\r\n this.fillDataTextStyle(newSeriesOption.data);\r\n var layoutMode = fetchLayoutMode(this);\r\n if (layoutMode) {\r\n mergeLayoutParam(this.option, newSeriesOption, layoutMode);\r\n }\r\n var sourceManager = inner$1(this).sourceManager;\r\n sourceManager.dirty();\r\n sourceManager.prepareSource();\r\n var data = this.getInitialData(newSeriesOption, ecModel);\r\n wrapData(data, this);\r\n this.dataTask.dirty();\r\n this.dataTask.context.data = data;\r\n inner$1(this).dataBeforeProcessed = data;\r\n autoSeriesName(this);\r\n this._initSelectedMapFromData(data);\r\n };\r\n SeriesModel.prototype.fillDataTextStyle = function (data) {\r\n if (data && !isTypedArray(data)) {\r\n var props = ['show'];\r\n for (var i = 0; i < data.length; i++) {\r\n if (data[i] && data[i].label) {\r\n defaultEmphasis(data[i], 'label', props);\r\n }\r\n }\r\n }\r\n };\r\n SeriesModel.prototype.getInitialData = function (option, ecModel) {\r\n return;\r\n };\r\n SeriesModel.prototype.appendData = function (params) {\r\n var data = this.getRawData();\r\n data.appendData(params.data);\r\n };\r\n SeriesModel.prototype.getData = function (dataType) {\r\n var task = getCurrentTask(this);\r\n if (task) {\r\n var data = task.context.data;\r\n return (dataType == null ? data : data.getLinkedData(dataType));\r\n }\r\n else {\r\n return inner$1(this).data;\r\n }\r\n };\r\n SeriesModel.prototype.getAllData = function () {\r\n var mainData = this.getData();\r\n return (mainData && mainData.getLinkedDataAll)\r\n ? mainData.getLinkedDataAll()\r\n : [{ data: mainData }];\r\n };\r\n SeriesModel.prototype.setData = function (data) {\r\n var task = getCurrentTask(this);\r\n if (task) {\r\n var context = task.context;\r\n context.outputData = data;\r\n if (task !== this.dataTask) {\r\n context.data = data;\r\n }\r\n }\r\n inner$1(this).data = data;\r\n };\r\n SeriesModel.prototype.getSource = function () {\r\n return inner$1(this).sourceManager.getSource();\r\n };\r\n SeriesModel.prototype.getRawData = function () {\r\n return inner$1(this).dataBeforeProcessed;\r\n };\r\n SeriesModel.prototype.getBaseAxis = function () {\r\n var coordSys = this.coordinateSystem;\r\n return coordSys && coordSys.getBaseAxis && coordSys.getBaseAxis();\r\n };\r\n SeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\r\n return defaultSeriesFormatTooltip({\r\n series: this,\r\n dataIndex: dataIndex,\r\n multipleSeries: multipleSeries\r\n });\r\n };\r\n SeriesModel.prototype.isAnimationEnabled = function () {\r\n if (env.node) {\r\n return false;\r\n }\r\n var animationEnabled = this.getShallow('animation');\r\n if (animationEnabled) {\r\n if (this.getData().count() > this.getShallow('animationThreshold')) {\r\n animationEnabled = false;\r\n }\r\n }\r\n return !!animationEnabled;\r\n };\r\n SeriesModel.prototype.restoreData = function () {\r\n this.dataTask.dirty();\r\n };\r\n SeriesModel.prototype.getColorFromPalette = function (name, scope, requestColorNum) {\r\n var ecModel = this.ecModel;\r\n var color = PaletteMixin.prototype.getColorFromPalette.call(this, name, scope, requestColorNum);\r\n if (!color) {\r\n color = ecModel.getColorFromPalette(name, scope, requestColorNum);\r\n }\r\n return color;\r\n };\r\n SeriesModel.prototype.coordDimToDataDim = function (coordDim) {\r\n return this.getRawData().mapDimensionsAll(coordDim);\r\n };\r\n SeriesModel.prototype.getProgressive = function () {\r\n return this.get('progressive');\r\n };\r\n SeriesModel.prototype.getProgressiveThreshold = function () {\r\n return this.get('progressiveThreshold');\r\n };\r\n SeriesModel.prototype.select = function (innerDataIndices, dataType) {\r\n this._innerSelect(this.getData(dataType), innerDataIndices);\r\n };\r\n SeriesModel.prototype.unselect = function (innerDataIndices, dataType) {\r\n var selectedMap = this.option.selectedMap;\r\n if (!selectedMap) {\r\n return;\r\n }\r\n var data = this.getData(dataType);\r\n for (var i = 0; i < innerDataIndices.length; i++) {\r\n var dataIndex = innerDataIndices[i];\r\n var nameOrId = getSelectionKey(data, dataIndex);\r\n selectedMap[nameOrId] = false;\r\n this._selectedDataIndicesMap[nameOrId] = -1;\r\n }\r\n };\r\n SeriesModel.prototype.toggleSelect = function (innerDataIndices, dataType) {\r\n var tmpArr = [];\r\n for (var i = 0; i < innerDataIndices.length; i++) {\r\n tmpArr[0] = innerDataIndices[i];\r\n this.isSelected(innerDataIndices[i], dataType)\r\n ? this.unselect(tmpArr, dataType)\r\n : this.select(tmpArr, dataType);\r\n }\r\n };\r\n SeriesModel.prototype.getSelectedDataIndices = function () {\r\n var selectedDataIndicesMap = this._selectedDataIndicesMap;\r\n var nameOrIds = keys(selectedDataIndicesMap);\r\n var dataIndices = [];\r\n for (var i = 0; i < nameOrIds.length; i++) {\r\n var dataIndex = selectedDataIndicesMap[nameOrIds[i]];\r\n if (dataIndex >= 0) {\r\n dataIndices.push(dataIndex);\r\n }\r\n }\r\n return dataIndices;\r\n };\r\n SeriesModel.prototype.isSelected = function (dataIndex, dataType) {\r\n var selectedMap = this.option.selectedMap;\r\n if (!selectedMap) {\r\n return false;\r\n }\r\n var data = this.getData(dataType);\r\n var nameOrId = getSelectionKey(data, dataIndex);\r\n return selectedMap[nameOrId] || false;\r\n };\r\n SeriesModel.prototype._innerSelect = function (data, innerDataIndices) {\r\n var _a, _b;\r\n var selectedMode = this.option.selectedMode;\r\n var len = innerDataIndices.length;\r\n if (!selectedMode || !len) {\r\n return;\r\n }\r\n if (selectedMode === 'multiple') {\r\n var selectedMap = this.option.selectedMap || (this.option.selectedMap = {});\r\n for (var i = 0; i < len; i++) {\r\n var dataIndex = innerDataIndices[i];\r\n var nameOrId = getSelectionKey(data, dataIndex);\r\n selectedMap[nameOrId] = true;\r\n this._selectedDataIndicesMap[nameOrId] = data.getRawIndex(dataIndex);\r\n }\r\n }\r\n else if (selectedMode === 'single' || selectedMode === true) {\r\n var lastDataIndex = innerDataIndices[len - 1];\r\n var nameOrId = getSelectionKey(data, lastDataIndex);\r\n this.option.selectedMap = (_a = {},\r\n _a[nameOrId] = true,\r\n _a);\r\n this._selectedDataIndicesMap = (_b = {},\r\n _b[nameOrId] = data.getRawIndex(lastDataIndex),\r\n _b);\r\n }\r\n };\r\n SeriesModel.prototype._initSelectedMapFromData = function (data) {\r\n if (this.option.selectedMap) {\r\n return;\r\n }\r\n var dataIndices = [];\r\n if (data.hasItemOption) {\r\n data.each(function (idx) {\r\n var rawItem = data.getRawDataItem(idx);\r\n if (typeof rawItem === 'object'\r\n && rawItem.selected) {\r\n dataIndices.push(idx);\r\n }\r\n });\r\n }\r\n if (dataIndices.length > 0) {\r\n this._innerSelect(data, dataIndices);\r\n }\r\n };\r\n SeriesModel.registerClass = function (clz) {\r\n return ComponentModel.registerClass(clz);\r\n };\r\n SeriesModel.protoInitialize = (function () {\r\n var proto = SeriesModel.prototype;\r\n proto.type = 'series.__base__';\r\n proto.seriesIndex = 0;\r\n proto.useColorPaletteOnData = false;\r\n proto.ignoreStyleOnData = false;\r\n proto.hasSymbolVisual = false;\r\n proto.defaultSymbol = 'circle';\r\n proto.visualStyleAccessPath = 'itemStyle';\r\n proto.visualDrawType = 'fill';\r\n })();\r\n return SeriesModel;\r\n }(ComponentModel));\r\n mixin(SeriesModel, DataFormatMixin);\r\n mixin(SeriesModel, PaletteMixin);\r\n mountExtend(SeriesModel, ComponentModel);\r\n function autoSeriesName(seriesModel) {\r\n var name = seriesModel.name;\r\n if (!isNameSpecified(seriesModel)) {\r\n seriesModel.name = getSeriesAutoName(seriesModel) || name;\r\n }\r\n }\r\n function getSeriesAutoName(seriesModel) {\r\n var data = seriesModel.getRawData();\r\n var dataDims = data.mapDimensionsAll('seriesName');\r\n var nameArr = [];\r\n each(dataDims, function (dataDim) {\r\n var dimInfo = data.getDimensionInfo(dataDim);\r\n dimInfo.displayName && nameArr.push(dimInfo.displayName);\r\n });\r\n return nameArr.join(' ');\r\n }\r\n function dataTaskCount(context) {\r\n return context.model.getRawData().count();\r\n }\r\n function dataTaskReset(context) {\r\n var seriesModel = context.model;\r\n seriesModel.setData(seriesModel.getRawData().cloneShallow());\r\n return dataTaskProgress;\r\n }\r\n function dataTaskProgress(param, context) {\r\n if (context.outputData && param.end > context.outputData.count()) {\r\n context.model.getRawData().cloneShallow(context.outputData);\r\n }\r\n }\r\n function wrapData(data, seriesModel) {\r\n each(__spreadArrays(data.CHANGABLE_METHODS, data.DOWNSAMPLE_METHODS), function (methodName) {\r\n data.wrapMethod(methodName, curry(onDataChange, seriesModel));\r\n });\r\n }\r\n function onDataChange(seriesModel, newList) {\r\n var task = getCurrentTask(seriesModel);\r\n if (task) {\r\n task.setOutputEnd((newList || this).count());\r\n }\r\n return newList;\r\n }\r\n function getCurrentTask(seriesModel) {\r\n var scheduler = (seriesModel.ecModel || {}).scheduler;\r\n var pipeline = scheduler && scheduler.getPipeline(seriesModel.uid);\r\n if (pipeline) {\r\n var task = pipeline.currentTask;\r\n if (task) {\r\n var agentStubMap = task.agentStubMap;\r\n if (agentStubMap) {\r\n task = agentStubMap.get(seriesModel.uid);\r\n }\r\n }\r\n return task;\r\n }\r\n }\n\n var ComponentView = (function () {\r\n function ComponentView() {\r\n this.group = new Group();\r\n this.uid = getUID('viewComponent');\r\n }\r\n ComponentView.prototype.init = function (ecModel, api) { };\r\n ComponentView.prototype.render = function (model, ecModel, api, payload) { };\r\n ComponentView.prototype.dispose = function (ecModel, api) { };\r\n ComponentView.prototype.updateView = function (model, ecModel, api, payload) {\r\n };\r\n ComponentView.prototype.updateLayout = function (model, ecModel, api, payload) {\r\n };\r\n ComponentView.prototype.updateVisual = function (model, ecModel, api, payload) {\r\n };\r\n ComponentView.prototype.blurSeries = function (seriesModels, ecModel) {\r\n };\r\n return ComponentView;\r\n }());\r\n enableClassExtend(ComponentView);\r\n enableClassManagement(ComponentView, { registerWhenExtend: true });\n\n function createRenderPlanner() {\r\n var inner = makeInner();\r\n return function (seriesModel) {\r\n var fields = inner(seriesModel);\r\n var pipelineContext = seriesModel.pipelineContext;\r\n var originalLarge = !!fields.large;\r\n var originalProgressive = !!fields.progressiveRender;\r\n var large = fields.large = !!(pipelineContext && pipelineContext.large);\r\n var progressive = fields.progressiveRender = !!(pipelineContext && pipelineContext.progressiveRender);\r\n return (!!((originalLarge !== large) || (originalProgressive !== progressive)) && 'reset');\r\n };\r\n }\n\n var inner$2 = makeInner();\r\n var renderPlanner = createRenderPlanner();\r\n var ChartView = (function () {\r\n function ChartView() {\r\n this.group = new Group();\r\n this.uid = getUID('viewChart');\r\n this.renderTask = createTask({\r\n plan: renderTaskPlan,\r\n reset: renderTaskReset\r\n });\r\n this.renderTask.context = { view: this };\r\n }\r\n ChartView.prototype.init = function (ecModel, api) { };\r\n ChartView.prototype.render = function (seriesModel, ecModel, api, payload) { };\r\n ChartView.prototype.highlight = function (seriesModel, ecModel, api, payload) {\r\n toggleHighlight(seriesModel.getData(), payload, 'emphasis');\r\n };\r\n ChartView.prototype.downplay = function (seriesModel, ecModel, api, payload) {\r\n toggleHighlight(seriesModel.getData(), payload, 'normal');\r\n };\r\n ChartView.prototype.remove = function (ecModel, api) {\r\n this.group.removeAll();\r\n };\r\n ChartView.prototype.dispose = function (ecModel, api) { };\r\n ChartView.prototype.updateView = function (seriesModel, ecModel, api, payload) {\r\n this.render(seriesModel, ecModel, api, payload);\r\n };\r\n ChartView.prototype.updateLayout = function (seriesModel, ecModel, api, payload) {\r\n this.render(seriesModel, ecModel, api, payload);\r\n };\r\n ChartView.prototype.updateVisual = function (seriesModel, ecModel, api, payload) {\r\n this.render(seriesModel, ecModel, api, payload);\r\n };\r\n ChartView.markUpdateMethod = function (payload, methodName) {\r\n inner$2(payload).updateMethod = methodName;\r\n };\r\n ChartView.protoInitialize = (function () {\r\n var proto = ChartView.prototype;\r\n proto.type = 'chart';\r\n })();\r\n return ChartView;\r\n }());\r\n function elSetState(el, state, highlightDigit) {\r\n if (el) {\r\n (state === 'emphasis' ? enterEmphasis : leaveEmphasis)(el, highlightDigit);\r\n }\r\n }\r\n function toggleHighlight(data, payload, state) {\r\n var dataIndex = queryDataIndex(data, payload);\r\n var highlightDigit = (payload && payload.highlightKey != null)\r\n ? getHighlightDigit(payload.highlightKey)\r\n : null;\r\n if (dataIndex != null) {\r\n each(normalizeToArray(dataIndex), function (dataIdx) {\r\n elSetState(data.getItemGraphicEl(dataIdx), state, highlightDigit);\r\n });\r\n }\r\n else {\r\n data.eachItemGraphicEl(function (el) {\r\n elSetState(el, state, highlightDigit);\r\n });\r\n }\r\n }\r\n enableClassExtend(ChartView, ['dispose']);\r\n enableClassManagement(ChartView, { registerWhenExtend: true });\r\n function renderTaskPlan(context) {\r\n return renderPlanner(context.model);\r\n }\r\n function renderTaskReset(context) {\r\n var seriesModel = context.model;\r\n var ecModel = context.ecModel;\r\n var api = context.api;\r\n var payload = context.payload;\r\n var progressiveRender = seriesModel.pipelineContext.progressiveRender;\r\n var view = context.view;\r\n var updateMethod = payload && inner$2(payload).updateMethod;\r\n var methodName = progressiveRender\r\n ? 'incrementalPrepareRender'\r\n : (updateMethod && view[updateMethod])\r\n ? updateMethod\r\n : 'render';\r\n if (methodName !== 'render') {\r\n view[methodName](seriesModel, ecModel, api, payload);\r\n }\r\n return progressMethodMap[methodName];\r\n }\r\n var progressMethodMap = {\r\n incrementalPrepareRender: {\r\n progress: function (params, context) {\r\n context.view.incrementalRender(params, context.model, context.ecModel, context.api, context.payload);\r\n }\r\n },\r\n render: {\r\n forceFirstProgress: true,\r\n progress: function (params, context) {\r\n context.view.render(context.model, context.ecModel, context.api, context.payload);\r\n }\r\n }\r\n };\n\n var ORIGIN_METHOD = '\\0__throttleOriginMethod';\r\n var RATE = '\\0__throttleRate';\r\n var THROTTLE_TYPE = '\\0__throttleType';\r\n function throttle(fn, delay, debounce) {\r\n var currCall;\r\n var lastCall = 0;\r\n var lastExec = 0;\r\n var timer = null;\r\n var diff;\r\n var scope;\r\n var args;\r\n var debounceNextCall;\r\n delay = delay || 0;\r\n function exec() {\r\n lastExec = (new Date()).getTime();\r\n timer = null;\r\n fn.apply(scope, args || []);\r\n }\r\n var cb = function () {\r\n var cbArgs = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n cbArgs[_i] = arguments[_i];\r\n }\r\n currCall = (new Date()).getTime();\r\n scope = this;\r\n args = cbArgs;\r\n var thisDelay = debounceNextCall || delay;\r\n var thisDebounce = debounceNextCall || debounce;\r\n debounceNextCall = null;\r\n diff = currCall - (thisDebounce ? lastCall : lastExec) - thisDelay;\r\n clearTimeout(timer);\r\n if (thisDebounce) {\r\n timer = setTimeout(exec, thisDelay);\r\n }\r\n else {\r\n if (diff >= 0) {\r\n exec();\r\n }\r\n else {\r\n timer = setTimeout(exec, -diff);\r\n }\r\n }\r\n lastCall = currCall;\r\n };\r\n cb.clear = function () {\r\n if (timer) {\r\n clearTimeout(timer);\r\n timer = null;\r\n }\r\n };\r\n cb.debounceNextCall = function (debounceDelay) {\r\n debounceNextCall = debounceDelay;\r\n };\r\n return cb;\r\n }\r\n function createOrUpdate(obj, fnAttr, rate, throttleType) {\r\n var fn = obj[fnAttr];\r\n if (!fn) {\r\n return;\r\n }\r\n var originFn = fn[ORIGIN_METHOD] || fn;\r\n var lastThrottleType = fn[THROTTLE_TYPE];\r\n var lastRate = fn[RATE];\r\n if (lastRate !== rate || lastThrottleType !== throttleType) {\r\n if (rate == null || !throttleType) {\r\n return (obj[fnAttr] = originFn);\r\n }\r\n fn = obj[fnAttr] = throttle(originFn, rate, throttleType === 'debounce');\r\n fn[ORIGIN_METHOD] = originFn;\r\n fn[THROTTLE_TYPE] = throttleType;\r\n fn[RATE] = rate;\r\n }\r\n return fn;\r\n }\r\n function clear(obj, fnAttr) {\r\n var fn = obj[fnAttr];\r\n if (fn && fn[ORIGIN_METHOD]) {\r\n obj[fnAttr] = fn[ORIGIN_METHOD];\r\n }\r\n }\n\n var inner$3 = makeInner();\r\n var defaultStyleMappers = {\r\n itemStyle: makeStyleMapper(ITEM_STYLE_KEY_MAP, true),\r\n lineStyle: makeStyleMapper(LINE_STYLE_KEY_MAP, true)\r\n };\r\n var defaultColorKey = {\r\n lineStyle: 'stroke',\r\n itemStyle: 'fill'\r\n };\r\n function getStyleMapper(seriesModel, stylePath) {\r\n var styleMapper = seriesModel.visualStyleMapper\r\n || defaultStyleMappers[stylePath];\r\n if (!styleMapper) {\r\n console.warn(\"Unkown style type '\" + stylePath + \"'.\");\r\n return defaultStyleMappers.itemStyle;\r\n }\r\n return styleMapper;\r\n }\r\n function getDefaultColorKey(seriesModel, stylePath) {\r\n var colorKey = seriesModel.visualDrawType\r\n || defaultColorKey[stylePath];\r\n if (!colorKey) {\r\n console.warn(\"Unkown style type '\" + stylePath + \"'.\");\r\n return 'fill';\r\n }\r\n return colorKey;\r\n }\r\n var seriesStyleTask = {\r\n createOnAllSeries: true,\r\n performRawSeries: true,\r\n reset: function (seriesModel, ecModel) {\r\n var data = seriesModel.getData();\r\n var stylePath = seriesModel.visualStyleAccessPath\r\n || 'itemStyle';\r\n var styleModel = seriesModel.getModel(stylePath);\r\n var getStyle = getStyleMapper(seriesModel, stylePath);\r\n var globalStyle = getStyle(styleModel);\r\n var decalOption = styleModel.getShallow('decal');\r\n if (decalOption) {\r\n data.setVisual('decal', decalOption);\r\n decalOption.dirty = true;\r\n }\r\n var colorKey = getDefaultColorKey(seriesModel, stylePath);\r\n var color = globalStyle[colorKey];\r\n var colorCallback = isFunction(color) ? color : null;\r\n if (!globalStyle[colorKey] || colorCallback) {\r\n globalStyle[colorKey] = seriesModel.getColorFromPalette(seriesModel.name, null, ecModel.getSeriesCount());\r\n data.setVisual('colorFromPalette', true);\r\n }\r\n data.setVisual('style', globalStyle);\r\n data.setVisual('drawType', colorKey);\r\n if (!ecModel.isSeriesFiltered(seriesModel) && colorCallback) {\r\n data.setVisual('colorFromPalette', false);\r\n return {\r\n dataEach: function (data, idx) {\r\n var dataParams = seriesModel.getDataParams(idx);\r\n var itemStyle = extend({}, globalStyle);\r\n itemStyle[colorKey] = colorCallback(dataParams);\r\n data.setItemVisual(idx, 'style', itemStyle);\r\n }\r\n };\r\n }\r\n }\r\n };\r\n var sharedModel = new Model();\r\n var dataStyleTask = {\r\n createOnAllSeries: true,\r\n performRawSeries: true,\r\n reset: function (seriesModel, ecModel) {\r\n if (seriesModel.ignoreStyleOnData || ecModel.isSeriesFiltered(seriesModel)) {\r\n return;\r\n }\r\n var data = seriesModel.getData();\r\n var stylePath = seriesModel.visualStyleAccessPath\r\n || 'itemStyle';\r\n var getStyle = getStyleMapper(seriesModel, stylePath);\r\n var colorKey = data.getVisual('drawType');\r\n return {\r\n dataEach: data.hasItemOption ? function (data, idx) {\r\n var rawItem = data.getRawDataItem(idx);\r\n if (rawItem && rawItem[stylePath]) {\r\n sharedModel.option = rawItem[stylePath];\r\n var style = getStyle(sharedModel);\r\n var existsStyle = data.ensureUniqueItemVisual(idx, 'style');\r\n extend(existsStyle, style);\r\n if (sharedModel.option.decal) {\r\n data.setItemVisual(idx, 'decal', sharedModel.option.decal);\r\n sharedModel.option.decal.dirty = true;\r\n }\r\n if (colorKey in style) {\r\n data.setItemVisual(idx, 'colorFromPalette', false);\r\n }\r\n }\r\n } : null\r\n };\r\n }\r\n };\r\n var dataColorPaletteTask = {\r\n performRawSeries: true,\r\n overallReset: function (ecModel) {\r\n var paletteScopeGroupByType = createHashMap();\r\n ecModel.eachSeries(function (seriesModel) {\r\n if (!seriesModel.useColorPaletteOnData) {\r\n return;\r\n }\r\n var colorScope = paletteScopeGroupByType.get(seriesModel.type);\r\n if (!colorScope) {\r\n colorScope = {};\r\n paletteScopeGroupByType.set(seriesModel.type, colorScope);\r\n }\r\n inner$3(seriesModel).scope = colorScope;\r\n });\r\n ecModel.eachSeries(function (seriesModel) {\r\n if (!seriesModel.useColorPaletteOnData || ecModel.isSeriesFiltered(seriesModel)) {\r\n return;\r\n }\r\n var dataAll = seriesModel.getRawData();\r\n var idxMap = {};\r\n var data = seriesModel.getData();\r\n var colorScope = inner$3(seriesModel).scope;\r\n var stylePath = seriesModel.visualStyleAccessPath\r\n || 'itemStyle';\r\n var colorKey = getDefaultColorKey(seriesModel, stylePath);\r\n data.each(function (idx) {\r\n var rawIdx = data.getRawIndex(idx);\r\n idxMap[rawIdx] = idx;\r\n });\r\n dataAll.each(function (rawIdx) {\r\n var idx = idxMap[rawIdx];\r\n var fromPalette = data.getItemVisual(idx, 'colorFromPalette');\r\n if (fromPalette) {\r\n var itemStyle = data.ensureUniqueItemVisual(idx, 'style');\r\n var name_1 = dataAll.getName(rawIdx) || (rawIdx + '');\r\n var dataCount = dataAll.count();\r\n itemStyle[colorKey] = seriesModel.getColorFromPalette(name_1, colorScope, dataCount);\r\n }\r\n });\r\n });\r\n }\r\n };\n\n var PI$5 = Math.PI;\r\n function defaultLoading(api, opts) {\r\n opts = opts || {};\r\n defaults(opts, {\r\n text: 'loading',\r\n textColor: '#000',\r\n fontSize: '12px',\r\n maskColor: 'rgba(255, 255, 255, 0.8)',\r\n showSpinner: true,\r\n color: '#5470c6',\r\n spinnerRadius: 10,\r\n lineWidth: 5,\r\n zlevel: 0\r\n });\r\n var group = new Group();\r\n var mask = new Rect({\r\n style: {\r\n fill: opts.maskColor\r\n },\r\n zlevel: opts.zlevel,\r\n z: 10000\r\n });\r\n group.add(mask);\r\n var font = opts.fontSize + ' sans-serif';\r\n var labelRect = new Rect({\r\n style: {\r\n fill: 'none'\r\n },\r\n textContent: new ZRText({\r\n style: {\r\n text: opts.text,\r\n fill: opts.textColor,\r\n font: font\r\n }\r\n }),\r\n textConfig: {\r\n position: 'right',\r\n distance: 10\r\n },\r\n zlevel: opts.zlevel,\r\n z: 10001\r\n });\r\n group.add(labelRect);\r\n var arc;\r\n if (opts.showSpinner) {\r\n arc = new Arc({\r\n shape: {\r\n startAngle: -PI$5 / 2,\r\n endAngle: -PI$5 / 2 + 0.1,\r\n r: opts.spinnerRadius\r\n },\r\n style: {\r\n stroke: opts.color,\r\n lineCap: 'round',\r\n lineWidth: opts.lineWidth\r\n },\r\n zlevel: opts.zlevel,\r\n z: 10001\r\n });\r\n arc.animateShape(true)\r\n .when(1000, {\r\n endAngle: PI$5 * 3 / 2\r\n })\r\n .start('circularInOut');\r\n arc.animateShape(true)\r\n .when(1000, {\r\n startAngle: PI$5 * 3 / 2\r\n })\r\n .delay(300)\r\n .start('circularInOut');\r\n group.add(arc);\r\n }\r\n group.resize = function () {\r\n var textWidth = getWidth(opts.text, font);\r\n var r = opts.showSpinner ? opts.spinnerRadius : 0;\r\n var cx = (api.getWidth() - r * 2 - (opts.showSpinner && textWidth ? 10 : 0) - textWidth) / 2\r\n - (opts.showSpinner ? 0 : textWidth / 2);\r\n var cy = api.getHeight() / 2;\r\n opts.showSpinner && arc.setShape({\r\n cx: cx,\r\n cy: cy\r\n });\r\n labelRect.setShape({\r\n x: cx - r,\r\n y: cy - r,\r\n width: r * 2,\r\n height: r * 2\r\n });\r\n mask.setShape({\r\n x: 0,\r\n y: 0,\r\n width: api.getWidth(),\r\n height: api.getHeight()\r\n });\r\n };\r\n group.resize();\r\n return group;\r\n }\n\n var Scheduler = (function () {\r\n function Scheduler(ecInstance, api, dataProcessorHandlers, visualHandlers) {\r\n this._stageTaskMap = createHashMap();\r\n this.ecInstance = ecInstance;\r\n this.api = api;\r\n dataProcessorHandlers = this._dataProcessorHandlers = dataProcessorHandlers.slice();\r\n visualHandlers = this._visualHandlers = visualHandlers.slice();\r\n this._allHandlers = dataProcessorHandlers.concat(visualHandlers);\r\n }\r\n Scheduler.prototype.restoreData = function (ecModel, payload) {\r\n ecModel.restoreData(payload);\r\n this._stageTaskMap.each(function (taskRecord) {\r\n var overallTask = taskRecord.overallTask;\r\n overallTask && overallTask.dirty();\r\n });\r\n };\r\n Scheduler.prototype.getPerformArgs = function (task, isBlock) {\r\n if (!task.__pipeline) {\r\n return;\r\n }\r\n var pipeline = this._pipelineMap.get(task.__pipeline.id);\r\n var pCtx = pipeline.context;\r\n var incremental = !isBlock\r\n && pipeline.progressiveEnabled\r\n && (!pCtx || pCtx.progressiveRender)\r\n && task.__idxInPipeline > pipeline.blockIndex;\r\n var step = incremental ? pipeline.step : null;\r\n var modDataCount = pCtx && pCtx.modDataCount;\r\n var modBy = modDataCount != null ? Math.ceil(modDataCount / step) : null;\r\n return { step: step, modBy: modBy, modDataCount: modDataCount };\r\n };\r\n Scheduler.prototype.getPipeline = function (pipelineId) {\r\n return this._pipelineMap.get(pipelineId);\r\n };\r\n Scheduler.prototype.updateStreamModes = function (seriesModel, view) {\r\n var pipeline = this._pipelineMap.get(seriesModel.uid);\r\n var data = seriesModel.getData();\r\n var dataLen = data.count();\r\n var progressiveRender = pipeline.progressiveEnabled\r\n && view.incrementalPrepareRender\r\n && dataLen >= pipeline.threshold;\r\n var large = seriesModel.get('large') && dataLen >= seriesModel.get('largeThreshold');\r\n var modDataCount = seriesModel.get('progressiveChunkMode') === 'mod' ? dataLen : null;\r\n seriesModel.pipelineContext = pipeline.context = {\r\n progressiveRender: progressiveRender,\r\n modDataCount: modDataCount,\r\n large: large\r\n };\r\n };\r\n Scheduler.prototype.restorePipelines = function (ecModel) {\r\n var scheduler = this;\r\n var pipelineMap = scheduler._pipelineMap = createHashMap();\r\n ecModel.eachSeries(function (seriesModel) {\r\n var progressive = seriesModel.getProgressive();\r\n var pipelineId = seriesModel.uid;\r\n pipelineMap.set(pipelineId, {\r\n id: pipelineId,\r\n head: null,\r\n tail: null,\r\n threshold: seriesModel.getProgressiveThreshold(),\r\n progressiveEnabled: progressive\r\n && !(seriesModel.preventIncremental && seriesModel.preventIncremental()),\r\n blockIndex: -1,\r\n step: Math.round(progressive || 700),\r\n count: 0\r\n });\r\n scheduler._pipe(seriesModel, seriesModel.dataTask);\r\n });\r\n };\r\n Scheduler.prototype.prepareStageTasks = function () {\r\n var stageTaskMap = this._stageTaskMap;\r\n var ecModel = this.api.getModel();\r\n var api = this.api;\r\n each(this._allHandlers, function (handler) {\r\n var record = stageTaskMap.get(handler.uid) || stageTaskMap.set(handler.uid, {});\r\n var errMsg = '';\r\n if (__DEV__) {\r\n errMsg = '\"reset\" and \"overallReset\" must not be both specified.';\r\n }\r\n assert(!(handler.reset && handler.overallReset), errMsg);\r\n handler.reset && this._createSeriesStageTask(handler, record, ecModel, api);\r\n handler.overallReset && this._createOverallStageTask(handler, record, ecModel, api);\r\n }, this);\r\n };\r\n Scheduler.prototype.prepareView = function (view, model, ecModel, api) {\r\n var renderTask = view.renderTask;\r\n var context = renderTask.context;\r\n context.model = model;\r\n context.ecModel = ecModel;\r\n context.api = api;\r\n renderTask.__block = !view.incrementalPrepareRender;\r\n this._pipe(model, renderTask);\r\n };\r\n Scheduler.prototype.performDataProcessorTasks = function (ecModel, payload) {\r\n this._performStageTasks(this._dataProcessorHandlers, ecModel, payload, { block: true });\r\n };\r\n Scheduler.prototype.performVisualTasks = function (ecModel, payload, opt) {\r\n this._performStageTasks(this._visualHandlers, ecModel, payload, opt);\r\n };\r\n Scheduler.prototype._performStageTasks = function (stageHandlers, ecModel, payload, opt) {\r\n opt = opt || {};\r\n var unfinished = false;\r\n var scheduler = this;\r\n each(stageHandlers, function (stageHandler, idx) {\r\n if (opt.visualType && opt.visualType !== stageHandler.visualType) {\r\n return;\r\n }\r\n var stageHandlerRecord = scheduler._stageTaskMap.get(stageHandler.uid);\r\n var seriesTaskMap = stageHandlerRecord.seriesTaskMap;\r\n var overallTask = stageHandlerRecord.overallTask;\r\n if (overallTask) {\r\n var overallNeedDirty_1;\r\n var agentStubMap = overallTask.agentStubMap;\r\n agentStubMap.each(function (stub) {\r\n if (needSetDirty(opt, stub)) {\r\n stub.dirty();\r\n overallNeedDirty_1 = true;\r\n }\r\n });\r\n overallNeedDirty_1 && overallTask.dirty();\r\n scheduler.updatePayload(overallTask, payload);\r\n var performArgs_1 = scheduler.getPerformArgs(overallTask, opt.block);\r\n agentStubMap.each(function (stub) {\r\n stub.perform(performArgs_1);\r\n });\r\n if (overallTask.perform(performArgs_1)) {\r\n unfinished = true;\r\n }\r\n }\r\n else if (seriesTaskMap) {\r\n seriesTaskMap.each(function (task, pipelineId) {\r\n if (needSetDirty(opt, task)) {\r\n task.dirty();\r\n }\r\n var performArgs = scheduler.getPerformArgs(task, opt.block);\r\n performArgs.skip = !stageHandler.performRawSeries\r\n && ecModel.isSeriesFiltered(task.context.model);\r\n scheduler.updatePayload(task, payload);\r\n if (task.perform(performArgs)) {\r\n unfinished = true;\r\n }\r\n });\r\n }\r\n });\r\n function needSetDirty(opt, task) {\r\n return opt.setDirty && (!opt.dirtyMap || opt.dirtyMap.get(task.__pipeline.id));\r\n }\r\n this.unfinished = unfinished || this.unfinished;\r\n };\r\n Scheduler.prototype.performSeriesTasks = function (ecModel) {\r\n var unfinished;\r\n ecModel.eachSeries(function (seriesModel) {\r\n unfinished = seriesModel.dataTask.perform() || unfinished;\r\n });\r\n this.unfinished = unfinished || this.unfinished;\r\n };\r\n Scheduler.prototype.plan = function () {\r\n this._pipelineMap.each(function (pipeline) {\r\n var task = pipeline.tail;\r\n do {\r\n if (task.__block) {\r\n pipeline.blockIndex = task.__idxInPipeline;\r\n break;\r\n }\r\n task = task.getUpstream();\r\n } while (task);\r\n });\r\n };\r\n Scheduler.prototype.updatePayload = function (task, payload) {\r\n payload !== 'remain' && (task.context.payload = payload);\r\n };\r\n Scheduler.prototype._createSeriesStageTask = function (stageHandler, stageHandlerRecord, ecModel, api) {\r\n var scheduler = this;\r\n var oldSeriesTaskMap = stageHandlerRecord.seriesTaskMap;\r\n var newSeriesTaskMap = stageHandlerRecord.seriesTaskMap = createHashMap();\r\n var seriesType = stageHandler.seriesType;\r\n var getTargetSeries = stageHandler.getTargetSeries;\r\n if (stageHandler.createOnAllSeries) {\r\n ecModel.eachRawSeries(create);\r\n }\r\n else if (seriesType) {\r\n ecModel.eachRawSeriesByType(seriesType, create);\r\n }\r\n else if (getTargetSeries) {\r\n getTargetSeries(ecModel, api).each(create);\r\n }\r\n function create(seriesModel) {\r\n var pipelineId = seriesModel.uid;\r\n var task = newSeriesTaskMap.set(pipelineId, oldSeriesTaskMap && oldSeriesTaskMap.get(pipelineId)\r\n || createTask({\r\n plan: seriesTaskPlan,\r\n reset: seriesTaskReset,\r\n count: seriesTaskCount\r\n }));\r\n task.context = {\r\n model: seriesModel,\r\n ecModel: ecModel,\r\n api: api,\r\n useClearVisual: stageHandler.isVisual && !stageHandler.isLayout,\r\n plan: stageHandler.plan,\r\n reset: stageHandler.reset,\r\n scheduler: scheduler\r\n };\r\n scheduler._pipe(seriesModel, task);\r\n }\r\n };\r\n Scheduler.prototype._createOverallStageTask = function (stageHandler, stageHandlerRecord, ecModel, api) {\r\n var scheduler = this;\r\n var overallTask = stageHandlerRecord.overallTask = stageHandlerRecord.overallTask\r\n || createTask({ reset: overallTaskReset });\r\n overallTask.context = {\r\n ecModel: ecModel,\r\n api: api,\r\n overallReset: stageHandler.overallReset,\r\n scheduler: scheduler\r\n };\r\n var oldAgentStubMap = overallTask.agentStubMap;\r\n var newAgentStubMap = overallTask.agentStubMap = createHashMap();\r\n var seriesType = stageHandler.seriesType;\r\n var getTargetSeries = stageHandler.getTargetSeries;\r\n var overallProgress = true;\r\n var shouldOverallTaskDirty = false;\r\n var errMsg = '';\r\n if (__DEV__) {\r\n errMsg = '\"createOnAllSeries\" do not supported for \"overallReset\", '\r\n + 'becuase it will block all streams.';\r\n }\r\n assert(!stageHandler.createOnAllSeries, errMsg);\r\n if (seriesType) {\r\n ecModel.eachRawSeriesByType(seriesType, createStub);\r\n }\r\n else if (getTargetSeries) {\r\n getTargetSeries(ecModel, api).each(createStub);\r\n }\r\n else {\r\n overallProgress = false;\r\n each(ecModel.getSeries(), createStub);\r\n }\r\n function createStub(seriesModel) {\r\n var pipelineId = seriesModel.uid;\r\n var stub = newAgentStubMap.set(pipelineId, oldAgentStubMap && oldAgentStubMap.get(pipelineId)\r\n || (shouldOverallTaskDirty = true,\r\n createTask({ reset: stubReset, onDirty: stubOnDirty })));\r\n stub.context = {\r\n model: seriesModel,\r\n overallProgress: overallProgress\r\n };\r\n stub.agent = overallTask;\r\n stub.__block = overallProgress;\r\n scheduler._pipe(seriesModel, stub);\r\n }\r\n if (shouldOverallTaskDirty) {\r\n overallTask.dirty();\r\n }\r\n };\r\n Scheduler.prototype._pipe = function (seriesModel, task) {\r\n var pipelineId = seriesModel.uid;\r\n var pipeline = this._pipelineMap.get(pipelineId);\r\n !pipeline.head && (pipeline.head = task);\r\n pipeline.tail && pipeline.tail.pipe(task);\r\n pipeline.tail = task;\r\n task.__idxInPipeline = pipeline.count++;\r\n task.__pipeline = pipeline;\r\n };\r\n Scheduler.wrapStageHandler = function (stageHandler, visualType) {\r\n if (isFunction(stageHandler)) {\r\n stageHandler = {\r\n overallReset: stageHandler,\r\n seriesType: detectSeriseType(stageHandler)\r\n };\r\n }\r\n stageHandler.uid = getUID('stageHandler');\r\n visualType && (stageHandler.visualType = visualType);\r\n return stageHandler;\r\n };\r\n return Scheduler;\r\n }());\r\n function overallTaskReset(context) {\r\n context.overallReset(context.ecModel, context.api, context.payload);\r\n }\r\n function stubReset(context) {\r\n return context.overallProgress && stubProgress;\r\n }\r\n function stubProgress() {\r\n this.agent.dirty();\r\n this.getDownstream().dirty();\r\n }\r\n function stubOnDirty() {\r\n this.agent && this.agent.dirty();\r\n }\r\n function seriesTaskPlan(context) {\r\n return context.plan ? context.plan(context.model, context.ecModel, context.api, context.payload) : null;\r\n }\r\n function seriesTaskReset(context) {\r\n if (context.useClearVisual) {\r\n context.data.clearAllVisual();\r\n }\r\n var resetDefines = context.resetDefines = normalizeToArray(context.reset(context.model, context.ecModel, context.api, context.payload));\r\n return resetDefines.length > 1\r\n ? map(resetDefines, function (v, idx) {\r\n return makeSeriesTaskProgress(idx);\r\n })\r\n : singleSeriesTaskProgress;\r\n }\r\n var singleSeriesTaskProgress = makeSeriesTaskProgress(0);\r\n function makeSeriesTaskProgress(resetDefineIdx) {\r\n return function (params, context) {\r\n var data = context.data;\r\n var resetDefine = context.resetDefines[resetDefineIdx];\r\n if (resetDefine && resetDefine.dataEach) {\r\n for (var i = params.start; i < params.end; i++) {\r\n resetDefine.dataEach(data, i);\r\n }\r\n }\r\n else if (resetDefine && resetDefine.progress) {\r\n resetDefine.progress(params, data);\r\n }\r\n };\r\n }\r\n function seriesTaskCount(context) {\r\n return context.data.count();\r\n }\r\n function detectSeriseType(legacyFunc) {\r\n seriesType = null;\r\n try {\r\n legacyFunc(ecModelMock, apiMock);\r\n }\r\n catch (e) {\r\n }\r\n return seriesType;\r\n }\r\n var ecModelMock = {};\r\n var apiMock = {};\r\n var seriesType;\r\n mockMethods(ecModelMock, GlobalModel);\r\n mockMethods(apiMock, ExtensionAPI);\r\n ecModelMock.eachSeriesByType = ecModelMock.eachRawSeriesByType = function (type) {\r\n seriesType = type;\r\n };\r\n ecModelMock.eachComponent = function (cond) {\r\n if (cond.mainType === 'series' && cond.subType) {\r\n seriesType = cond.subType;\r\n }\r\n };\r\n function mockMethods(target, Clz) {\r\n for (var name_1 in Clz.prototype) {\r\n target[name_1] = noop;\r\n }\r\n }\n\n var colorAll = [\r\n '#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f',\r\n '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'\r\n ];\r\n var lightTheme = {\r\n color: colorAll,\r\n colorLayer: [\r\n ['#37A2DA', '#ffd85c', '#fd7b5f'],\r\n ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'],\r\n ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'],\r\n colorAll\r\n ]\r\n };\n\n var contrastColor = '#B9B8CE';\r\n var backgroundColor = '#100C2A';\r\n var axisCommon = function () {\r\n return {\r\n axisLine: {\r\n lineStyle: {\r\n color: contrastColor\r\n }\r\n },\r\n splitLine: {\r\n lineStyle: {\r\n color: '#484753'\r\n }\r\n },\r\n splitArea: {\r\n areaStyle: {\r\n color: ['rgba(255,255,255,0.02)', 'rgba(255,255,255,0.05)']\r\n }\r\n },\r\n minorSplitLine: {\r\n lineStyle: {\r\n color: '#20203B'\r\n }\r\n }\r\n };\r\n };\r\n var colorPalette = [\r\n '#4992ff',\r\n '#7cffb2',\r\n '#fddd60',\r\n '#ff6e76',\r\n '#58d9f9',\r\n '#05c091',\r\n '#ff8a45',\r\n '#8d48e3',\r\n '#dd79ff'\r\n ];\r\n var theme = {\r\n darkMode: true,\r\n color: colorPalette,\r\n backgroundColor: backgroundColor,\r\n axisPointer: {\r\n lineStyle: {\r\n color: '#817f91'\r\n },\r\n crossStyle: {\r\n color: '#817f91'\r\n },\r\n label: {\r\n color: '#fff'\r\n }\r\n },\r\n legend: {\r\n textStyle: {\r\n color: contrastColor\r\n }\r\n },\r\n textStyle: {\r\n color: contrastColor\r\n },\r\n title: {\r\n textStyle: {\r\n color: '#EEF1FA'\r\n },\r\n subtextStyle: {\r\n color: '#B9B8CE'\r\n }\r\n },\r\n toolbox: {\r\n iconStyle: {\r\n borderColor: contrastColor\r\n }\r\n },\r\n dataZoom: {\r\n borderColor: '#71708A',\r\n textStyle: {\r\n color: contrastColor\r\n },\r\n brushStyle: {\r\n color: 'rgba(135,163,206,0.3)'\r\n },\r\n handleStyle: {\r\n color: '#353450',\r\n borderColor: '#C5CBE3'\r\n },\r\n moveHandleStyle: {\r\n color: '#B0B6C3',\r\n opacity: 0.3\r\n },\r\n fillerColor: 'rgba(135,163,206,0.2)',\r\n emphasis: {\r\n handleStyle: {\r\n borderColor: '#91B7F2',\r\n color: '#4D587D'\r\n },\r\n moveHandleStyle: {\r\n color: '#636D9A',\r\n opacity: 0.7\r\n }\r\n },\r\n dataBackground: {\r\n lineStyle: {\r\n color: '#71708A',\r\n width: 1\r\n },\r\n areaStyle: {\r\n color: '#71708A'\r\n }\r\n },\r\n selectedDataBackground: {\r\n lineStyle: {\r\n color: '#87A3CE'\r\n },\r\n areaStyle: {\r\n color: '#87A3CE'\r\n }\r\n }\r\n },\r\n visualMap: {\r\n textStyle: {\r\n color: contrastColor\r\n }\r\n },\r\n timeline: {\r\n lineStyle: {\r\n color: contrastColor\r\n },\r\n label: {\r\n color: contrastColor\r\n },\r\n controlStyle: {\r\n color: contrastColor,\r\n borderColor: contrastColor\r\n }\r\n },\r\n calendar: {\r\n itemStyle: {\r\n color: backgroundColor\r\n },\r\n dayLabel: {\r\n color: contrastColor\r\n },\r\n monthLabel: {\r\n color: contrastColor\r\n },\r\n yearLabel: {\r\n color: contrastColor\r\n }\r\n },\r\n timeAxis: axisCommon(),\r\n logAxis: axisCommon(),\r\n valueAxis: axisCommon(),\r\n categoryAxis: axisCommon(),\r\n line: {\r\n symbol: 'circle'\r\n },\r\n graph: {\r\n color: colorPalette\r\n },\r\n gauge: {\r\n title: {\r\n color: contrastColor\r\n },\r\n axisLine: {\r\n lineStyle: {\r\n color: [[1, 'rgba(207,212,219,0.2)']]\r\n }\r\n },\r\n axisLabel: {\r\n color: contrastColor\r\n },\r\n detail: {\r\n color: '#EEF1FA'\r\n }\r\n },\r\n candlestick: {\r\n itemStyle: {\r\n color: '#FD1050',\r\n color0: '#0CF49B',\r\n borderColor: '#FD1050',\r\n borderColor0: '#0CF49B'\r\n }\r\n }\r\n };\r\n theme.categoryAxis.splitLine.show = false;\n\n var DatasetModel = (function (_super) {\r\n __extends(DatasetModel, _super);\r\n function DatasetModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = 'dataset';\r\n return _this;\r\n }\r\n DatasetModel.prototype.init = function (option, parentModel, ecModel) {\r\n _super.prototype.init.call(this, option, parentModel, ecModel);\r\n this._sourceManager = new SourceManager(this);\r\n disableTransformOptionMerge(this);\r\n };\r\n DatasetModel.prototype.mergeOption = function (newOption, ecModel) {\r\n _super.prototype.mergeOption.call(this, newOption, ecModel);\r\n disableTransformOptionMerge(this);\r\n };\r\n DatasetModel.prototype.optionUpdated = function () {\r\n this._sourceManager.dirty();\r\n };\r\n DatasetModel.prototype.getSourceManager = function () {\r\n return this._sourceManager;\r\n };\r\n DatasetModel.type = 'dataset';\r\n DatasetModel.defaultOption = {\r\n seriesLayoutBy: SERIES_LAYOUT_BY_COLUMN\r\n };\r\n return DatasetModel;\r\n }(ComponentModel));\r\n ComponentModel.registerClass(DatasetModel);\r\n var DatasetView = (function (_super) {\r\n __extends(DatasetView, _super);\r\n function DatasetView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = 'dataset';\r\n return _this;\r\n }\r\n DatasetView.type = 'dataset';\r\n return DatasetView;\r\n }(ComponentView));\r\n ComponentView.registerClass(DatasetView);\n\n var storage = createHashMap();\r\n var mapDataStorage = {\r\n registerMap: function (mapName, rawDef, rawSpecialAreas) {\r\n var records;\r\n if (isArray(rawDef)) {\r\n records = rawDef;\r\n }\r\n else if (rawDef.svg) {\r\n records = [{\r\n type: 'svg',\r\n source: rawDef.svg,\r\n specialAreas: rawDef.specialAreas\r\n }];\r\n }\r\n else {\r\n var geoSource = rawDef.geoJson\r\n || rawDef.geoJSON;\r\n if (geoSource && !rawDef.features) {\r\n rawSpecialAreas = rawDef.specialAreas;\r\n rawDef = geoSource;\r\n }\r\n records = [{\r\n type: 'geoJSON',\r\n source: rawDef,\r\n specialAreas: rawSpecialAreas\r\n }];\r\n }\r\n each(records, function (record) {\r\n var type = record.type;\r\n type === 'geoJson' && (type = record.type = 'geoJSON');\r\n var parse = parsers[type];\r\n if (__DEV__) {\r\n assert(parse, 'Illegal map type: ' + type);\r\n }\r\n parse(record);\r\n });\r\n return storage.set(mapName, records);\r\n },\r\n retrieveMap: function (mapName) {\r\n return storage.get(mapName);\r\n }\r\n };\r\n var parsers = {\r\n geoJSON: function (record) {\r\n var source = record.source;\r\n record.geoJSON = !isString(source)\r\n ? source\r\n : (typeof JSON !== 'undefined' && JSON.parse)\r\n ? JSON.parse(source)\r\n : (new Function('return (' + source + ');'))();\r\n },\r\n svg: function (record) {\r\n record.svgXML = parseXML(record.source);\r\n }\r\n };\n\n var ECEventProcessor = (function () {\r\n function ECEventProcessor() {\r\n }\r\n ECEventProcessor.prototype.normalizeQuery = function (query) {\r\n var cptQuery = {};\r\n var dataQuery = {};\r\n var otherQuery = {};\r\n if (isString(query)) {\r\n var condCptType = parseClassType(query);\r\n cptQuery.mainType = condCptType.main || null;\r\n cptQuery.subType = condCptType.sub || null;\r\n }\r\n else {\r\n var suffixes_1 = ['Index', 'Name', 'Id'];\r\n var dataKeys_1 = { name: 1, dataIndex: 1, dataType: 1 };\r\n each(query, function (val, key) {\r\n var reserved = false;\r\n for (var i = 0; i < suffixes_1.length; i++) {\r\n var propSuffix = suffixes_1[i];\r\n var suffixPos = key.lastIndexOf(propSuffix);\r\n if (suffixPos > 0 && suffixPos === key.length - propSuffix.length) {\r\n var mainType = key.slice(0, suffixPos);\r\n if (mainType !== 'data') {\r\n cptQuery.mainType = mainType;\r\n cptQuery[propSuffix.toLowerCase()] = val;\r\n reserved = true;\r\n }\r\n }\r\n }\r\n if (dataKeys_1.hasOwnProperty(key)) {\r\n dataQuery[key] = val;\r\n reserved = true;\r\n }\r\n if (!reserved) {\r\n otherQuery[key] = val;\r\n }\r\n });\r\n }\r\n return {\r\n cptQuery: cptQuery,\r\n dataQuery: dataQuery,\r\n otherQuery: otherQuery\r\n };\r\n };\r\n ECEventProcessor.prototype.filter = function (eventType, query) {\r\n var eventInfo = this.eventInfo;\r\n if (!eventInfo) {\r\n return true;\r\n }\r\n var targetEl = eventInfo.targetEl;\r\n var packedEvent = eventInfo.packedEvent;\r\n var model = eventInfo.model;\r\n var view = eventInfo.view;\r\n if (!model || !view) {\r\n return true;\r\n }\r\n var cptQuery = query.cptQuery;\r\n var dataQuery = query.dataQuery;\r\n return check(cptQuery, model, 'mainType')\r\n && check(cptQuery, model, 'subType')\r\n && check(cptQuery, model, 'index', 'componentIndex')\r\n && check(cptQuery, model, 'name')\r\n && check(cptQuery, model, 'id')\r\n && check(dataQuery, packedEvent, 'name')\r\n && check(dataQuery, packedEvent, 'dataIndex')\r\n && check(dataQuery, packedEvent, 'dataType')\r\n && (!view.filterForExposedEvent || view.filterForExposedEvent(eventType, query.otherQuery, targetEl, packedEvent));\r\n function check(query, host, prop, propOnHost) {\r\n return query[prop] == null || host[propOnHost || prop] === query[prop];\r\n }\r\n };\r\n ECEventProcessor.prototype.afterTrigger = function () {\r\n this.eventInfo = null;\r\n };\r\n return ECEventProcessor;\r\n }());\n\n var seriesSymbolTask = {\r\n createOnAllSeries: true,\r\n performRawSeries: true,\r\n reset: function (seriesModel, ecModel) {\r\n var data = seriesModel.getData();\r\n if (seriesModel.legendSymbol) {\r\n data.setVisual('legendSymbol', seriesModel.legendSymbol);\r\n }\r\n if (!seriesModel.hasSymbolVisual) {\r\n return;\r\n }\r\n var symbolType = seriesModel.get('symbol');\r\n var symbolSize = seriesModel.get('symbolSize');\r\n var keepAspect = seriesModel.get('symbolKeepAspect');\r\n var symbolRotate = seriesModel.get('symbolRotate');\r\n var hasSymbolTypeCallback = isFunction(symbolType);\r\n var hasSymbolSizeCallback = isFunction(symbolSize);\r\n var hasSymbolRotateCallback = isFunction(symbolRotate);\r\n var hasCallback = hasSymbolTypeCallback || hasSymbolSizeCallback || hasSymbolRotateCallback;\r\n var seriesSymbol = (!hasSymbolTypeCallback && symbolType) ? symbolType : seriesModel.defaultSymbol;\r\n var seriesSymbolSize = !hasSymbolSizeCallback ? symbolSize : null;\r\n var seriesSymbolRotate = !hasSymbolRotateCallback ? symbolRotate : null;\r\n data.setVisual({\r\n legendSymbol: seriesModel.legendSymbol || seriesSymbol,\r\n symbol: seriesSymbol,\r\n symbolSize: seriesSymbolSize,\r\n symbolKeepAspect: keepAspect,\r\n symbolRotate: seriesSymbolRotate\r\n });\r\n if (ecModel.isSeriesFiltered(seriesModel)) {\r\n return;\r\n }\r\n function dataEach(data, idx) {\r\n var rawValue = seriesModel.getRawValue(idx);\r\n var params = seriesModel.getDataParams(idx);\r\n hasSymbolTypeCallback && data.setItemVisual(idx, 'symbol', symbolType(rawValue, params));\r\n hasSymbolSizeCallback && data.setItemVisual(idx, 'symbolSize', symbolSize(rawValue, params));\r\n hasSymbolRotateCallback && data.setItemVisual(idx, 'symbolRotate', symbolRotate(rawValue, params));\r\n }\r\n return { dataEach: hasCallback ? dataEach : null };\r\n }\r\n };\r\n var dataSymbolTask = {\r\n createOnAllSeries: true,\r\n performRawSeries: true,\r\n reset: function (seriesModel, ecModel) {\r\n if (!seriesModel.hasSymbolVisual) {\r\n return;\r\n }\r\n if (ecModel.isSeriesFiltered(seriesModel)) {\r\n return;\r\n }\r\n var data = seriesModel.getData();\r\n function dataEach(data, idx) {\r\n var itemModel = data.getItemModel(idx);\r\n var itemSymbolType = itemModel.getShallow('symbol', true);\r\n var itemSymbolSize = itemModel.getShallow('symbolSize', true);\r\n var itemSymbolRotate = itemModel.getShallow('symbolRotate', true);\r\n var itemSymbolKeepAspect = itemModel.getShallow('symbolKeepAspect', true);\r\n if (itemSymbolType != null) {\r\n data.setItemVisual(idx, 'symbol', itemSymbolType);\r\n }\r\n if (itemSymbolSize != null) {\r\n data.setItemVisual(idx, 'symbolSize', itemSymbolSize);\r\n }\r\n if (itemSymbolRotate != null) {\r\n data.setItemVisual(idx, 'symbolRotate', itemSymbolRotate);\r\n }\r\n if (itemSymbolKeepAspect != null) {\r\n data.setItemVisual(idx, 'symbolKeepAspect', itemSymbolKeepAspect);\r\n }\r\n }\r\n return { dataEach: data.hasItemOption ? dataEach : null };\r\n }\r\n };\n\n function getItemVisualFromData(data, dataIndex, key) {\r\n switch (key) {\r\n case 'color':\r\n var style = data.getItemVisual(dataIndex, 'style');\r\n return style[data.getVisual('drawType')];\r\n case 'opacity':\r\n return data.getItemVisual(dataIndex, 'style').opacity;\r\n case 'symbol':\r\n case 'symbolSize':\r\n case 'liftZ':\r\n return data.getItemVisual(dataIndex, key);\r\n default:\r\n if (__DEV__) {\r\n console.warn(\"Unknown visual type \" + key);\r\n }\r\n }\r\n }\r\n function getVisualFromData(data, key) {\r\n switch (key) {\r\n case 'color':\r\n var style = data.getVisual('style');\r\n return style[data.getVisual('drawType')];\r\n case 'opacity':\r\n return data.getVisual('style').opacity;\r\n case 'symbol':\r\n case 'symbolSize':\r\n case 'liftZ':\r\n return data.getVisual(key);\r\n default:\r\n if (__DEV__) {\r\n console.warn(\"Unknown visual type \" + key);\r\n }\r\n }\r\n }\r\n function setItemVisualFromData(data, dataIndex, key, value) {\r\n switch (key) {\r\n case 'color':\r\n var style = data.ensureUniqueItemVisual(dataIndex, 'style');\r\n style[data.getVisual('drawType')] = value;\r\n data.setItemVisual(dataIndex, 'colorFromPalette', false);\r\n break;\r\n case 'opacity':\r\n data.ensureUniqueItemVisual(dataIndex, 'style').opacity = value;\r\n break;\r\n case 'symbol':\r\n case 'symbolSize':\r\n case 'liftZ':\r\n data.setItemVisual(dataIndex, key, value);\r\n break;\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$7 = Math.PI * 2;\r\n var CMD$4 = 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$7 < 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$7;\r\n }\r\n var angle = Math.atan2(y, x);\r\n if (angle < 0) {\r\n angle += PI2$7;\r\n }\r\n if ((angle >= startAngle && angle <= endAngle)\r\n || (angle + PI2$7 >= startAngle && angle + PI2$7 <= 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$4.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$4.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$4.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$4.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$4.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$4.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$4.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$1 = [];\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$1, false);\r\n tmpProjPoint.fromArray(tmpArr$1);\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$1, false);\r\n tmpProjPoint.fromArray(tmpArr$1);\r\n var HALF_PI = Math.PI / 2;\r\n var angle2 = Math.acos(dir2.dot(surfaceNormal));\r\n var newAngle = HALF_PI + angle2 - maxSurfaceAngle;\r\n if (newAngle >= HALF_PI) {\r\n Point.copy(tmpProjPoint, pt2);\r\n }\r\n else {\r\n tmpProjPoint.scaleAndAdd(dir2, d / Math.tan(Math.PI / 2 - newAngle));\r\n var t = pt2.x !== pt1.x\r\n ? (tmpProjPoint.x - pt1.x) / (pt2.x - pt1.x)\r\n : (tmpProjPoint.y - pt1.y) / (pt2.y - pt1.y);\r\n if (isNaN(t)) {\r\n return;\r\n }\r\n if (t < 0) {\r\n Point.copy(tmpProjPoint, pt1);\r\n }\r\n else if (t > 1) {\r\n Point.copy(tmpProjPoint, pt2);\r\n }\r\n }\r\n tmpProjPoint.toArray(linePoints[1]);\r\n }\r\n }\r\n function setLabelLineState(labelLine, ignore, stateName, stateModel) {\r\n var isNormal = stateName === 'normal';\r\n var stateObj = isNormal ? labelLine : labelLine.ensureState(stateName);\r\n stateObj.ignore = ignore;\r\n var smooth = stateModel.get('smooth');\r\n if (smooth && smooth === true) {\r\n smooth = 0.3;\r\n }\r\n stateObj.shape = stateObj.shape || {};\r\n if (smooth > 0) {\r\n stateObj.shape.smooth = smooth;\r\n }\r\n var styleObj = stateModel.getModel('lineStyle').getLineStyle();\r\n isNormal ? labelLine.useStyle(styleObj) : stateObj.style = styleObj;\r\n }\r\n function buildLabelLinePath(path, shape) {\r\n var smooth = shape.smooth;\r\n var points = shape.points;\r\n if (!points) {\r\n return;\r\n }\r\n path.moveTo(points[0][0], points[0][1]);\r\n if (smooth > 0 && points.length >= 3) {\r\n var len1 = dist(points[0], points[1]);\r\n var len2 = dist(points[1], points[2]);\r\n if (!len1 || !len2) {\r\n path.lineTo(points[1][0], points[1][1]);\r\n path.lineTo(points[2][0], points[2][1]);\r\n return;\r\n }\r\n var moveLen = Math.min(len1, len2) * smooth;\r\n var midPoint0 = lerp([], points[1], points[0], moveLen / len1);\r\n var midPoint2 = lerp([], points[1], points[2], moveLen / len2);\r\n var midPoint1 = lerp([], midPoint0, midPoint2, 0.5);\r\n path.bezierCurveTo(midPoint0[0], midPoint0[1], midPoint0[0], midPoint0[1], midPoint1[0], midPoint1[1]);\r\n path.bezierCurveTo(midPoint2[0], midPoint2[1], midPoint2[0], midPoint2[1], points[2][0], points[2][1]);\r\n }\r\n else {\r\n for (var i = 1; i < points.length; i++) {\r\n path.lineTo(points[i][0], points[i][1]);\r\n }\r\n }\r\n }\r\n function setLabelLineStyle(targetEl, statesModels, defaultStyle) {\r\n var labelLine = targetEl.getTextGuideLine();\r\n var label = targetEl.getTextContent();\r\n if (!label) {\r\n if (labelLine) {\r\n targetEl.removeTextGuideLine();\r\n }\r\n return;\r\n }\r\n var normalModel = statesModels.normal;\r\n var showNormal = normalModel.get('show');\r\n var labelIgnoreNormal = label.ignore;\r\n for (var i = 0; i < DISPLAY_STATES.length; i++) {\r\n var stateName = DISPLAY_STATES[i];\r\n var stateModel = statesModels[stateName];\r\n var isNormal = stateName === 'normal';\r\n if (stateModel) {\r\n var stateShow = stateModel.get('show');\r\n var isLabelIgnored = isNormal\r\n ? labelIgnoreNormal\r\n : retrieve2(label.states[stateName] && label.states[stateName].ignore, labelIgnoreNormal);\r\n if (isLabelIgnored\r\n || !retrieve2(stateShow, showNormal)) {\r\n var stateObj = isNormal ? labelLine : (labelLine && labelLine.states.normal);\r\n if (stateObj) {\r\n stateObj.ignore = true;\r\n }\r\n continue;\r\n }\r\n if (!labelLine) {\r\n labelLine = new Polyline();\r\n targetEl.setTextGuideLine(labelLine);\r\n if (!isNormal && (labelIgnoreNormal || !showNormal)) {\r\n setLabelLineState(labelLine, true, 'normal', statesModels.normal);\r\n }\r\n if (targetEl.stateProxy) {\r\n labelLine.stateProxy = targetEl.stateProxy;\r\n }\r\n }\r\n setLabelLineState(labelLine, false, stateName, stateModel);\r\n }\r\n }\r\n if (labelLine) {\r\n defaults(labelLine.style, defaultStyle);\r\n labelLine.style.fill = null;\r\n var showAbove = normalModel.get('showAbove');\r\n var labelLineConfig = (targetEl.textGuideLineConfig = targetEl.textGuideLineConfig || {});\r\n labelLineConfig.showAbove = showAbove || false;\r\n labelLine.buildPath = buildLabelLinePath;\r\n }\r\n }\r\n function getLabelLineStatesModels(itemModel, labelLineName) {\r\n labelLineName = (labelLineName || 'labelLine');\r\n var statesModels = {\r\n normal: itemModel.getModel(labelLineName)\r\n };\r\n for (var i = 0; i < SPECIAL_STATES.length; i++) {\r\n var stateName = SPECIAL_STATES[i];\r\n statesModels[stateName] = itemModel.getModel([stateName, labelLineName]);\r\n }\r\n return statesModels;\r\n }\n\n function prepareLayoutList(input) {\r\n var list = [];\r\n for (var i = 0; i < input.length; i++) {\r\n var rawItem = input[i];\r\n if (rawItem.defaultAttr.ignore) {\r\n continue;\r\n }\r\n var label = rawItem.label;\r\n var transform = label.getComputedTransform();\r\n var localRect = label.getBoundingRect();\r\n var isAxisAligned = !transform || (transform[1] < 1e-5 && transform[2] < 1e-5);\r\n var minMargin = label.style.margin || 0;\r\n var globalRect = localRect.clone();\r\n globalRect.applyTransform(transform);\r\n globalRect.x -= minMargin / 2;\r\n globalRect.y -= minMargin / 2;\r\n globalRect.width += minMargin;\r\n globalRect.height += minMargin;\r\n var obb = isAxisAligned ? new OrientedBoundingRect(localRect, transform) : null;\r\n list.push({\r\n label: label,\r\n labelLine: rawItem.labelLine,\r\n rect: globalRect,\r\n localRect: localRect,\r\n obb: obb,\r\n priority: rawItem.priority,\r\n defaultAttr: rawItem.defaultAttr,\r\n layoutOption: rawItem.computedLayoutOption,\r\n axisAligned: isAxisAligned,\r\n transform: transform\r\n });\r\n }\r\n return list;\r\n }\r\n function shiftLayout(list, xyDim, sizeDim, minBound, maxBound, balanceShift) {\r\n var len = list.length;\r\n if (len < 2) {\r\n return;\r\n }\r\n list.sort(function (a, b) {\r\n return a.rect[xyDim] - b.rect[xyDim];\r\n });\r\n var lastPos = 0;\r\n var delta;\r\n var adjusted = false;\r\n var totalShifts = 0;\r\n for (var i = 0; i < len; i++) {\r\n var item = list[i];\r\n var rect = item.rect;\r\n delta = rect[xyDim] - lastPos;\r\n if (delta < 0) {\r\n rect[xyDim] -= delta;\r\n item.label[xyDim] -= delta;\r\n adjusted = true;\r\n }\r\n var shift = Math.max(-delta, 0);\r\n totalShifts += shift;\r\n lastPos = rect[xyDim] + rect[sizeDim];\r\n }\r\n if (totalShifts > 0 && balanceShift) {\r\n shiftList(-totalShifts / len, 0, len);\r\n }\r\n var first = list[0];\r\n var last = list[len - 1];\r\n var minGap;\r\n var maxGap;\r\n updateMinMaxGap();\r\n minGap < 0 && squeezeGaps(-minGap, 0.8);\r\n maxGap < 0 && squeezeGaps(maxGap, 0.8);\r\n updateMinMaxGap();\r\n takeBoundsGap(minGap, maxGap, 1);\r\n takeBoundsGap(maxGap, minGap, -1);\r\n updateMinMaxGap();\r\n if (minGap < 0) {\r\n squeezeWhenBailout(-minGap);\r\n }\r\n if (maxGap < 0) {\r\n squeezeWhenBailout(maxGap);\r\n }\r\n function updateMinMaxGap() {\r\n minGap = first.rect[xyDim] - minBound;\r\n maxGap = maxBound - last.rect[xyDim] - last.rect[sizeDim];\r\n }\r\n function takeBoundsGap(gapThisBound, gapOtherBound, moveDir) {\r\n if (gapThisBound < 0) {\r\n var moveFromMaxGap = Math.min(gapOtherBound, -gapThisBound);\r\n if (moveFromMaxGap > 0) {\r\n shiftList(moveFromMaxGap * moveDir, 0, len);\r\n var remained = moveFromMaxGap + gapThisBound;\r\n if (remained < 0) {\r\n squeezeGaps(-remained * moveDir, 1);\r\n }\r\n }\r\n else {\r\n squeezeGaps(-gapThisBound * moveDir, 1);\r\n }\r\n }\r\n }\r\n function shiftList(delta, start, end) {\r\n if (delta !== 0) {\r\n adjusted = true;\r\n }\r\n for (var i = start; i < end; i++) {\r\n var item = list[i];\r\n var rect = item.rect;\r\n rect[xyDim] += delta;\r\n item.label[xyDim] += delta;\r\n }\r\n }\r\n function squeezeGaps(delta, maxSqeezePercent) {\r\n var gaps = [];\r\n var totalGaps = 0;\r\n for (var i = 1; i < len; i++) {\r\n var prevItemRect = list[i - 1].rect;\r\n var gap = Math.max(list[i].rect[xyDim] - prevItemRect[xyDim] - prevItemRect[sizeDim], 0);\r\n gaps.push(gap);\r\n totalGaps += gap;\r\n }\r\n if (!totalGaps) {\r\n return;\r\n }\r\n var squeezePercent = Math.min(Math.abs(delta) / totalGaps, maxSqeezePercent);\r\n if (delta > 0) {\r\n for (var i = 0; i < len - 1; i++) {\r\n var movement = gaps[i] * squeezePercent;\r\n shiftList(movement, 0, i + 1);\r\n }\r\n }\r\n else {\r\n for (var i = len - 1; i > 0; i--) {\r\n var movement = gaps[i - 1] * squeezePercent;\r\n shiftList(-movement, i, len);\r\n }\r\n }\r\n }\r\n function squeezeWhenBailout(delta) {\r\n var dir = delta < 0 ? -1 : 1;\r\n delta = Math.abs(delta);\r\n var moveForEachLabel = Math.ceil(delta / (len - 1));\r\n for (var i = 0; i < len - 1; i++) {\r\n if (dir > 0) {\r\n shiftList(moveForEachLabel, 0, i + 1);\r\n }\r\n else {\r\n shiftList(-moveForEachLabel, len - i - 1, len);\r\n }\r\n delta -= moveForEachLabel;\r\n if (delta <= 0) {\r\n return;\r\n }\r\n }\r\n }\r\n return adjusted;\r\n }\r\n function shiftLayoutOnX(list, leftBound, rightBound, balanceShift) {\r\n return shiftLayout(list, 'x', 'width', leftBound, rightBound, balanceShift);\r\n }\r\n function shiftLayoutOnY(list, topBound, bottomBound, balanceShift) {\r\n return shiftLayout(list, 'y', 'height', topBound, bottomBound, balanceShift);\r\n }\r\n function hideOverlap(labelList) {\r\n var displayedLabels = [];\r\n labelList.sort(function (a, b) {\r\n return b.priority - a.priority;\r\n });\r\n var globalRect = new BoundingRect(0, 0, 0, 0);\r\n function hideEl(el) {\r\n if (!el.ignore) {\r\n var emphasisState = el.ensureState('emphasis');\r\n if (emphasisState.ignore == null) {\r\n emphasisState.ignore = false;\r\n }\r\n }\r\n el.ignore = true;\r\n }\r\n for (var i = 0; i < labelList.length; i++) {\r\n var labelItem = labelList[i];\r\n var isAxisAligned = labelItem.axisAligned;\r\n var localRect = labelItem.localRect;\r\n var transform = labelItem.transform;\r\n var label = labelItem.label;\r\n var labelLine = labelItem.labelLine;\r\n globalRect.copy(labelItem.rect);\r\n globalRect.width -= 0.1;\r\n globalRect.height -= 0.1;\r\n globalRect.x += 0.05;\r\n globalRect.y += 0.05;\r\n var obb = labelItem.obb;\r\n var overlapped = false;\r\n for (var j = 0; j < displayedLabels.length; j++) {\r\n var existsTextCfg = displayedLabels[j];\r\n if (!globalRect.intersect(existsTextCfg.rect)) {\r\n continue;\r\n }\r\n if (isAxisAligned && existsTextCfg.axisAligned) {\r\n overlapped = true;\r\n break;\r\n }\r\n if (!existsTextCfg.obb) {\r\n existsTextCfg.obb = new OrientedBoundingRect(existsTextCfg.localRect, existsTextCfg.transform);\r\n }\r\n if (!obb) {\r\n obb = new OrientedBoundingRect(localRect, transform);\r\n }\r\n if (obb.intersect(existsTextCfg.obb)) {\r\n overlapped = true;\r\n break;\r\n }\r\n }\r\n if (overlapped) {\r\n hideEl(label);\r\n labelLine && hideEl(labelLine);\r\n }\r\n else {\r\n label.attr('ignore', labelItem.defaultAttr.ignore);\r\n labelLine && labelLine.attr('ignore', labelItem.defaultAttr.labelGuideIgnore);\r\n displayedLabels.push(labelItem);\r\n }\r\n }\r\n }\n\n function cloneArr(points) {\r\n if (points) {\r\n var newPoints = [];\r\n for (var i = 0; i < points.length; i++) {\r\n newPoints.push(points[i].slice());\r\n }\r\n return newPoints;\r\n }\r\n }\r\n function prepareLayoutCallbackParams(labelItem, hostEl) {\r\n var label = labelItem.label;\r\n var labelLine = hostEl && hostEl.getTextGuideLine();\r\n return {\r\n dataIndex: labelItem.dataIndex,\r\n dataType: labelItem.dataType,\r\n seriesIndex: labelItem.seriesModel.seriesIndex,\r\n text: labelItem.label.style.text,\r\n rect: labelItem.hostRect,\r\n labelRect: labelItem.rect,\r\n align: label.style.align,\r\n verticalAlign: label.style.verticalAlign,\r\n labelLinePoints: cloneArr(labelLine && labelLine.shape.points)\r\n };\r\n }\r\n var LABEL_OPTION_TO_STYLE_KEYS = ['align', 'verticalAlign', 'width', 'height', 'fontSize'];\r\n var dummyTransformable = new Transformable();\r\n var labelLayoutInnerStore = makeInner();\r\n var labelLineAnimationStore = makeInner();\r\n function extendWithKeys(target, source, keys) {\r\n for (var i = 0; i < keys.length; i++) {\r\n var key = keys[i];\r\n if (source[key] != null) {\r\n target[key] = source[key];\r\n }\r\n }\r\n }\r\n var LABEL_LAYOUT_PROPS = ['x', 'y', 'rotation'];\r\n var LabelManager = (function () {\r\n function LabelManager() {\r\n this._labelList = [];\r\n this._chartViewList = [];\r\n }\r\n LabelManager.prototype.clearLabels = function () {\r\n this._labelList = [];\r\n this._chartViewList = [];\r\n };\r\n LabelManager.prototype._addLabel = function (dataIndex, dataType, seriesModel, label, layoutOption) {\r\n var labelStyle = label.style;\r\n var hostEl = label.__hostTarget;\r\n var textConfig = hostEl.textConfig || {};\r\n var labelTransform = label.getComputedTransform();\r\n var labelRect = label.getBoundingRect().plain();\r\n BoundingRect.applyTransform(labelRect, labelRect, labelTransform);\r\n if (labelTransform) {\r\n dummyTransformable.setLocalTransform(labelTransform);\r\n }\r\n else {\r\n dummyTransformable.x = dummyTransformable.y = dummyTransformable.rotation =\r\n dummyTransformable.originX = dummyTransformable.originY = 0;\r\n dummyTransformable.scaleX = dummyTransformable.scaleY = 1;\r\n }\r\n var host = label.__hostTarget;\r\n var hostRect;\r\n if (host) {\r\n hostRect = host.getBoundingRect().plain();\r\n var transform = host.getComputedTransform();\r\n BoundingRect.applyTransform(hostRect, hostRect, transform);\r\n }\r\n var labelGuide = hostRect && host.getTextGuideLine();\r\n this._labelList.push({\r\n label: label,\r\n labelLine: labelGuide,\r\n seriesModel: seriesModel,\r\n dataIndex: dataIndex,\r\n dataType: dataType,\r\n layoutOption: layoutOption,\r\n computedLayoutOption: null,\r\n rect: labelRect,\r\n hostRect: hostRect,\r\n priority: hostRect ? hostRect.width * hostRect.height : 0,\r\n defaultAttr: {\r\n ignore: label.ignore,\r\n labelGuideIgnore: labelGuide && labelGuide.ignore,\r\n x: dummyTransformable.x,\r\n y: dummyTransformable.y,\r\n rotation: dummyTransformable.rotation,\r\n style: {\r\n x: labelStyle.x,\r\n y: labelStyle.y,\r\n align: labelStyle.align,\r\n verticalAlign: labelStyle.verticalAlign,\r\n width: labelStyle.width,\r\n height: labelStyle.height,\r\n fontSize: labelStyle.fontSize\r\n },\r\n cursor: label.cursor,\r\n attachedPos: textConfig.position,\r\n attachedRot: textConfig.rotation\r\n }\r\n });\r\n };\r\n LabelManager.prototype.addLabelsOfSeries = function (chartView) {\r\n var _this = this;\r\n this._chartViewList.push(chartView);\r\n var seriesModel = chartView.__model;\r\n var layoutOption = seriesModel.get('labelLayout');\r\n if (!(isFunction(layoutOption) || keys(layoutOption).length)) {\r\n return;\r\n }\r\n chartView.group.traverse(function (child) {\r\n if (child.ignore) {\r\n return true;\r\n }\r\n var textEl = child.getTextContent();\r\n var ecData = getECData(child);\r\n if (textEl && !textEl.disableLabelLayout) {\r\n _this._addLabel(ecData.dataIndex, ecData.dataType, seriesModel, textEl, layoutOption);\r\n }\r\n });\r\n };\r\n LabelManager.prototype.updateLayoutConfig = function (api) {\r\n var width = api.getWidth();\r\n var height = api.getHeight();\r\n function createDragHandler(el, labelLineModel) {\r\n return function () {\r\n updateLabelLinePoints(el, labelLineModel);\r\n };\r\n }\r\n for (var i = 0; i < this._labelList.length; i++) {\r\n var labelItem = this._labelList[i];\r\n var label = labelItem.label;\r\n var hostEl = label.__hostTarget;\r\n var defaultLabelAttr = labelItem.defaultAttr;\r\n var layoutOption = void 0;\r\n if (typeof labelItem.layoutOption === 'function') {\r\n layoutOption = labelItem.layoutOption(prepareLayoutCallbackParams(labelItem, hostEl));\r\n }\r\n else {\r\n layoutOption = labelItem.layoutOption;\r\n }\r\n layoutOption = layoutOption || {};\r\n labelItem.computedLayoutOption = layoutOption;\r\n var degreeToRadian = Math.PI / 180;\r\n if (hostEl) {\r\n hostEl.setTextConfig({\r\n local: false,\r\n position: (layoutOption.x != null || layoutOption.y != null)\r\n ? null : defaultLabelAttr.attachedPos,\r\n rotation: layoutOption.rotate != null\r\n ? layoutOption.rotate * degreeToRadian : defaultLabelAttr.attachedRot,\r\n offset: [layoutOption.dx || 0, layoutOption.dy || 0]\r\n });\r\n }\r\n var needsUpdateLabelLine = false;\r\n if (layoutOption.x != null) {\r\n label.x = parsePercent$2(layoutOption.x, width);\r\n label.setStyle('x', 0);\r\n needsUpdateLabelLine = true;\r\n }\r\n else {\r\n label.x = defaultLabelAttr.x;\r\n label.setStyle('x', defaultLabelAttr.style.x);\r\n }\r\n if (layoutOption.y != null) {\r\n label.y = parsePercent$2(layoutOption.y, height);\r\n label.setStyle('y', 0);\r\n needsUpdateLabelLine = true;\r\n }\r\n else {\r\n label.y = defaultLabelAttr.y;\r\n label.setStyle('y', defaultLabelAttr.style.y);\r\n }\r\n if (layoutOption.labelLinePoints) {\r\n var guideLine = hostEl.getTextGuideLine();\r\n if (guideLine) {\r\n guideLine.setShape({ points: layoutOption.labelLinePoints });\r\n needsUpdateLabelLine = false;\r\n }\r\n }\r\n var labelLayoutStore = labelLayoutInnerStore(label);\r\n labelLayoutStore.needsUpdateLabelLine = needsUpdateLabelLine;\r\n label.rotation = layoutOption.rotate != null\r\n ? layoutOption.rotate * degreeToRadian : defaultLabelAttr.rotation;\r\n for (var k = 0; k < LABEL_OPTION_TO_STYLE_KEYS.length; k++) {\r\n var key = LABEL_OPTION_TO_STYLE_KEYS[k];\r\n label.setStyle(key, layoutOption[key] != null ? layoutOption[key] : defaultLabelAttr.style[key]);\r\n }\r\n if (layoutOption.draggable) {\r\n label.draggable = true;\r\n label.cursor = 'move';\r\n if (hostEl) {\r\n var hostModel = labelItem.seriesModel;\r\n if (labelItem.dataIndex != null) {\r\n var data = labelItem.seriesModel.getData(labelItem.dataType);\r\n hostModel = data.getItemModel(labelItem.dataIndex);\r\n }\r\n label.on('drag', createDragHandler(hostEl, hostModel.getModel('labelLine')));\r\n }\r\n }\r\n else {\r\n label.off('drag');\r\n label.cursor = defaultLabelAttr.cursor;\r\n }\r\n }\r\n };\r\n LabelManager.prototype.layout = function (api) {\r\n var width = api.getWidth();\r\n var height = api.getHeight();\r\n var labelList = prepareLayoutList(this._labelList);\r\n var labelsNeedsAdjustOnX = filter(labelList, function (item) {\r\n return item.layoutOption.moveOverlap === 'shiftX';\r\n });\r\n var labelsNeedsAdjustOnY = filter(labelList, function (item) {\r\n return item.layoutOption.moveOverlap === 'shiftY';\r\n });\r\n shiftLayoutOnX(labelsNeedsAdjustOnX, 0, width);\r\n shiftLayoutOnY(labelsNeedsAdjustOnY, 0, height);\r\n var labelsNeedsHideOverlap = filter(labelList, function (item) {\r\n return item.layoutOption.hideOverlap;\r\n });\r\n hideOverlap(labelsNeedsHideOverlap);\r\n };\r\n LabelManager.prototype.processLabelsOverall = function () {\r\n var _this = this;\r\n each(this._chartViewList, function (chartView) {\r\n var seriesModel = chartView.__model;\r\n var ignoreLabelLineUpdate = chartView.ignoreLabelLineUpdate;\r\n var animationEnabled = seriesModel.isAnimationEnabled();\r\n chartView.group.traverse(function (child) {\r\n if (child.ignore) {\r\n return true;\r\n }\r\n var needsUpdateLabelLine = !ignoreLabelLineUpdate;\r\n var label = child.getTextContent();\r\n if (!needsUpdateLabelLine && label) {\r\n needsUpdateLabelLine = labelLayoutInnerStore(label).needsUpdateLabelLine;\r\n }\r\n if (needsUpdateLabelLine) {\r\n _this._updateLabelLine(child, seriesModel);\r\n }\r\n if (animationEnabled) {\r\n _this._animateLabels(child, seriesModel);\r\n }\r\n });\r\n });\r\n };\r\n LabelManager.prototype._updateLabelLine = function (el, seriesModel) {\r\n var textEl = el.getTextContent();\r\n var ecData = getECData(el);\r\n var dataIndex = ecData.dataIndex;\r\n if (textEl && dataIndex != null) {\r\n var data = seriesModel.getData(ecData.dataType);\r\n var itemModel = data.getItemModel(dataIndex);\r\n var defaultStyle = {};\r\n var visualStyle = data.getItemVisual(dataIndex, 'style');\r\n var visualType = data.getVisual('drawType');\r\n defaultStyle.stroke = visualStyle[visualType];\r\n var labelLineModel = itemModel.getModel('labelLine');\r\n setLabelLineStyle(el, getLabelLineStatesModels(itemModel), defaultStyle);\r\n updateLabelLinePoints(el, labelLineModel);\r\n }\r\n };\r\n LabelManager.prototype._animateLabels = function (el, seriesModel) {\r\n var textEl = el.getTextContent();\r\n var guideLine = el.getTextGuideLine();\r\n if (textEl\r\n && !textEl.ignore\r\n && !textEl.invisible\r\n && !el.disableLabelAnimation\r\n && !isElementRemoved(el)) {\r\n var layoutStore = labelLayoutInnerStore(textEl);\r\n var oldLayout = layoutStore.oldLayout;\r\n var ecData = getECData(el);\r\n var dataIndex = ecData.dataIndex;\r\n var newProps = {\r\n x: textEl.x,\r\n y: textEl.y,\r\n rotation: textEl.rotation\r\n };\r\n var data = seriesModel.getData(ecData.dataType);\r\n if (!oldLayout) {\r\n textEl.attr(newProps);\r\n if (!labelInner(textEl).valueAnimation) {\r\n var oldOpacity = retrieve2(textEl.style.opacity, 1);\r\n textEl.style.opacity = 0;\r\n initProps(textEl, {\r\n style: { opacity: oldOpacity }\r\n }, seriesModel, dataIndex);\r\n }\r\n }\r\n else {\r\n textEl.attr(oldLayout);\r\n var prevStates = el.prevStates;\r\n if (prevStates) {\r\n if (indexOf(prevStates, 'select') >= 0) {\r\n textEl.attr(layoutStore.oldLayoutSelect);\r\n }\r\n if (indexOf(prevStates, 'emphasis') >= 0) {\r\n textEl.attr(layoutStore.oldLayoutEmphasis);\r\n }\r\n }\r\n updateProps(textEl, newProps, seriesModel, dataIndex);\r\n }\r\n layoutStore.oldLayout = newProps;\r\n if (textEl.states.select) {\r\n var layoutSelect = layoutStore.oldLayoutSelect = {};\r\n extendWithKeys(layoutSelect, newProps, LABEL_LAYOUT_PROPS);\r\n extendWithKeys(layoutSelect, textEl.states.select, LABEL_LAYOUT_PROPS);\r\n }\r\n if (textEl.states.emphasis) {\r\n var layoutEmphasis = layoutStore.oldLayoutEmphasis = {};\r\n extendWithKeys(layoutEmphasis, newProps, LABEL_LAYOUT_PROPS);\r\n extendWithKeys(layoutEmphasis, textEl.states.emphasis, LABEL_LAYOUT_PROPS);\r\n }\r\n animateLabelValue(textEl, dataIndex, data, seriesModel);\r\n }\r\n if (guideLine && !guideLine.ignore && !guideLine.invisible) {\r\n var layoutStore = labelLineAnimationStore(guideLine);\r\n var oldLayout = layoutStore.oldLayout;\r\n var newLayout = { points: guideLine.shape.points };\r\n if (!oldLayout) {\r\n guideLine.setShape(newLayout);\r\n guideLine.style.strokePercent = 0;\r\n initProps(guideLine, {\r\n style: { strokePercent: 1 }\r\n }, seriesModel);\r\n }\r\n else {\r\n guideLine.attr({ shape: oldLayout });\r\n updateProps(guideLine, {\r\n shape: newLayout\r\n }, seriesModel);\r\n }\r\n layoutStore.oldLayout = newLayout;\r\n }\r\n };\r\n return LabelManager;\r\n }());\n\n function createLegacyDataSelectAction(seriesType, ecRegisterAction) {\r\n function getSeriesIndices(ecModel, payload) {\r\n var seriesIndices = [];\r\n ecModel.eachComponent({\r\n mainType: 'series', subType: seriesType, query: payload\r\n }, function (seriesModel) {\r\n seriesIndices.push(seriesModel.seriesIndex);\r\n });\r\n return seriesIndices;\r\n }\r\n each([\r\n [seriesType + 'ToggleSelect', 'toggleSelect'],\r\n [seriesType + 'Select', 'select'],\r\n [seriesType + 'UnSelect', 'unselect']\r\n ], function (eventsMap) {\r\n ecRegisterAction(eventsMap[0], function (payload, ecModel, api) {\r\n payload = extend({}, payload);\r\n if (__DEV__) {\r\n deprecateReplaceLog(payload.type, eventsMap[1]);\r\n }\r\n api.dispatchAction(extend(payload, {\r\n type: eventsMap[1],\r\n seriesIndex: getSeriesIndices(ecModel, payload)\r\n }));\r\n });\r\n });\r\n }\r\n function handleSeriesLegacySelectEvents(type, eventPostfix, ecIns, ecModel, payload) {\r\n var legacyEventName = type + eventPostfix;\r\n if (!ecIns.isSilent(legacyEventName)) {\r\n if (__DEV__) {\r\n deprecateLog(\"event \" + legacyEventName + \" is deprecated.\");\r\n }\r\n ecModel.eachComponent({\r\n mainType: 'series', subType: 'pie'\r\n }, function (seriesModel) {\r\n var seriesIndex = seriesModel.seriesIndex;\r\n var selected = payload.selected;\r\n for (var i = 0; i < selected.length; i++) {\r\n if (selected[i].seriesIndex === seriesIndex) {\r\n var data = seriesModel.getData();\r\n var dataIndex = queryDataIndex(data, payload.fromActionPayload);\r\n ecIns.trigger(legacyEventName, {\r\n type: legacyEventName,\r\n seriesId: seriesModel.id,\r\n name: isArray(dataIndex) ? data.getName(dataIndex[0]) : data.getName(dataIndex),\r\n selected: extend({}, seriesModel.option.selectedMap)\r\n });\r\n }\r\n }\r\n });\r\n }\r\n }\r\n function handleLegacySelectEvents(messageCenter, ecIns, ecModel) {\r\n messageCenter.on('selectchanged', function (params) {\r\n if (params.isFromClick) {\r\n handleSeriesLegacySelectEvents('map', 'selectchanged', ecIns, ecModel, params);\r\n handleSeriesLegacySelectEvents('pie', 'selectchanged', ecIns, ecModel, params);\r\n }\r\n else if (params.fromAction === 'select') {\r\n handleSeriesLegacySelectEvents('map', 'selected', ecIns, ecModel, params);\r\n handleSeriesLegacySelectEvents('pie', 'selected', ecIns, ecModel, params);\r\n }\r\n else if (params.fromAction === 'unselect') {\r\n handleSeriesLegacySelectEvents('map', 'unselected', ecIns, ecModel, params);\r\n handleSeriesLegacySelectEvents('pie', 'unselected', ecIns, ecModel, params);\r\n }\r\n });\r\n }\n\n function createLinearGradient(ctx, obj, rect) {\r\n var x = obj.x == null ? 0 : obj.x;\r\n var x2 = obj.x2 == null ? 1 : obj.x2;\r\n var y = obj.y == null ? 0 : obj.y;\r\n var y2 = obj.y2 == null ? 0 : obj.y2;\r\n if (!obj.global) {\r\n x = x * rect.width + rect.x;\r\n x2 = x2 * rect.width + rect.x;\r\n y = y * rect.height + rect.y;\r\n y2 = y2 * rect.height + rect.y;\r\n }\r\n x = isNaN(x) ? 0 : x;\r\n x2 = isNaN(x2) ? 1 : x2;\r\n y = isNaN(y) ? 0 : y;\r\n y2 = isNaN(y2) ? 0 : y2;\r\n var canvasGradient = ctx.createLinearGradient(x, y, x2, y2);\r\n return canvasGradient;\r\n }\r\n function createRadialGradient(ctx, obj, rect) {\r\n var width = rect.width;\r\n var height = rect.height;\r\n var min = Math.min(width, height);\r\n var x = obj.x == null ? 0.5 : obj.x;\r\n var y = obj.y == null ? 0.5 : obj.y;\r\n var r = obj.r == null ? 0.5 : obj.r;\r\n if (!obj.global) {\r\n x = x * width + rect.x;\r\n y = y * height + rect.y;\r\n r = r * min;\r\n }\r\n var canvasGradient = ctx.createRadialGradient(x, y, 0, x, y, r);\r\n return canvasGradient;\r\n }\r\n function getCanvasGradient(ctx, obj, rect) {\r\n var canvasGradient = obj.type === 'radial'\r\n ? createRadialGradient(ctx, obj, rect)\r\n : createLinearGradient(ctx, obj, rect);\r\n var colorStops = obj.colorStops;\r\n for (var i = 0; i < colorStops.length; i++) {\r\n canvasGradient.addColorStop(colorStops[i].offset, colorStops[i].color);\r\n }\r\n return canvasGradient;\r\n }\r\n function isClipPathChanged(clipPaths, prevClipPaths) {\r\n if (clipPaths === prevClipPaths || (!clipPaths && !prevClipPaths)) {\r\n return false;\r\n }\r\n if (!clipPaths || !prevClipPaths || (clipPaths.length !== prevClipPaths.length)) {\r\n return true;\r\n }\r\n for (var i = 0; i < clipPaths.length; i++) {\r\n if (clipPaths[i] !== prevClipPaths[i]) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\n\n function normalizeLineDash(lineType, lineWidth) {\r\n if (!lineType || lineType === 'solid' || !(lineWidth > 0)) {\r\n return null;\r\n }\r\n lineWidth = lineWidth || 1;\r\n return lineType === 'dashed'\r\n ? [4 * lineWidth, 2 * lineWidth]\r\n : lineType === 'dotted'\r\n ? [lineWidth]\r\n : isNumber(lineType)\r\n ? [lineType] : isArray(lineType) ? lineType : null;\r\n }\n\n var pathProxyForDraw = new PathProxy(true);\r\n function styleHasStroke(style) {\r\n var stroke = style.stroke;\r\n return !(stroke == null || stroke === 'none' || !(style.lineWidth > 0));\r\n }\r\n function styleHasFill(style) {\r\n var fill = style.fill;\r\n return fill != null && fill !== 'none';\r\n }\r\n function doFillPath(ctx, style) {\r\n if (style.fillOpacity != null && style.fillOpacity !== 1) {\r\n var originalGlobalAlpha = ctx.globalAlpha;\r\n ctx.globalAlpha = style.fillOpacity * style.opacity;\r\n ctx.fill();\r\n ctx.globalAlpha = originalGlobalAlpha;\r\n }\r\n else {\r\n ctx.fill();\r\n }\r\n }\r\n function doStrokePath(ctx, style) {\r\n if (style.strokeOpacity != null && style.strokeOpacity !== 1) {\r\n var originalGlobalAlpha = ctx.globalAlpha;\r\n ctx.globalAlpha = style.strokeOpacity * style.opacity;\r\n ctx.stroke();\r\n ctx.globalAlpha = originalGlobalAlpha;\r\n }\r\n else {\r\n ctx.stroke();\r\n }\r\n }\r\n function createCanvasPattern(ctx, pattern, el) {\r\n var image = createOrUpdateImage(pattern.image, pattern.__image, el);\r\n if (isImageReady(image)) {\r\n var canvasPattern = ctx.createPattern(image, pattern.repeat || 'repeat');\r\n if (typeof DOMMatrix === 'function') {\r\n var matrix = new DOMMatrix();\r\n matrix.rotateSelf(0, 0, (pattern.rotation || 0) / Math.PI * 180);\r\n matrix.scaleSelf((pattern.scaleX || 1), (pattern.scaleY || 1));\r\n matrix.translateSelf((pattern.x || 0), (pattern.y || 0));\r\n canvasPattern.setTransform(matrix);\r\n }\r\n return canvasPattern;\r\n }\r\n }\r\n function brushPath(ctx, el, style, inBatch) {\r\n var hasStroke = styleHasStroke(style);\r\n var hasFill = styleHasFill(style);\r\n var strokePercent = style.strokePercent;\r\n var strokePart = strokePercent < 1;\r\n var firstDraw = !el.path;\r\n if ((!el.silent || strokePart) && firstDraw) {\r\n el.createPathProxy();\r\n }\r\n var path = el.path || pathProxyForDraw;\r\n if (!inBatch) {\r\n var fill = style.fill;\r\n var stroke = style.stroke;\r\n var hasFillGradient = hasFill && !!fill.colorStops;\r\n var hasStrokeGradient = hasStroke && !!stroke.colorStops;\r\n var hasFillPattern = hasFill && !!fill.image;\r\n var hasStrokePattern = hasStroke && !!stroke.image;\r\n var fillGradient = void 0;\r\n var strokeGradient = void 0;\r\n var fillPattern = void 0;\r\n var strokePattern = void 0;\r\n var rect = void 0;\r\n if (hasFillGradient || hasStrokeGradient) {\r\n rect = el.getBoundingRect();\r\n }\r\n if (hasFillGradient) {\r\n fillGradient = el.__dirty\r\n ? getCanvasGradient(ctx, fill, rect)\r\n : el.__canvasFillGradient;\r\n el.__canvasFillGradient = fillGradient;\r\n }\r\n if (hasStrokeGradient) {\r\n strokeGradient = el.__dirty\r\n ? getCanvasGradient(ctx, stroke, rect)\r\n : el.__canvasStrokeGradient;\r\n el.__canvasStrokeGradient = strokeGradient;\r\n }\r\n if (hasFillPattern) {\r\n fillPattern = (el.__dirty || !el.__canvasFillPattern)\r\n ? createCanvasPattern(ctx, fill, el)\r\n : el.__canvasFillPattern;\r\n el.__canvasFillPattern = fillPattern;\r\n }\r\n if (hasStrokePattern) {\r\n strokePattern = (el.__dirty || !el.__canvasStrokePattern)\r\n ? createCanvasPattern(ctx, stroke, el)\r\n : el.__canvasStrokePattern;\r\n el.__canvasStrokePattern = fillPattern;\r\n }\r\n if (hasFillGradient) {\r\n ctx.fillStyle = fillGradient;\r\n }\r\n else if (hasFillPattern) {\r\n if (fillPattern) {\r\n ctx.fillStyle = fillPattern;\r\n }\r\n else {\r\n hasFill = false;\r\n }\r\n }\r\n if (hasStrokeGradient) {\r\n ctx.strokeStyle = strokeGradient;\r\n }\r\n else if (hasStrokePattern) {\r\n if (strokePattern) {\r\n ctx.strokeStyle = strokePattern;\r\n }\r\n else {\r\n hasStroke = false;\r\n }\r\n }\r\n }\r\n var lineDash = style.lineDash && style.lineWidth > 0 && normalizeLineDash(style.lineDash, style.lineWidth);\r\n var lineDashOffset = style.lineDashOffset;\r\n var ctxLineDash = !!ctx.setLineDash;\r\n var scale = el.getGlobalScale();\r\n path.setScale(scale[0], scale[1], el.segmentIgnoreThreshold);\r\n if (lineDash) {\r\n var lineScale_1 = (style.strokeNoScale && el.getLineScale) ? el.getLineScale() : 1;\r\n if (lineScale_1 && lineScale_1 !== 1) {\r\n lineDash = map(lineDash, function (rawVal) {\r\n return rawVal / lineScale_1;\r\n });\r\n lineDashOffset /= lineScale_1;\r\n }\r\n }\r\n var needsRebuild = true;\r\n if (firstDraw || (el.__dirty & Path.SHAPE_CHANGED_BIT)\r\n || (lineDash && !ctxLineDash && hasStroke)) {\r\n path.setDPR(ctx.dpr);\r\n if (strokePart) {\r\n path.setContext(null);\r\n }\r\n else {\r\n path.setContext(ctx);\r\n needsRebuild = false;\r\n }\r\n path.reset();\r\n if (lineDash && !ctxLineDash) {\r\n path.setLineDash(lineDash);\r\n path.setLineDashOffset(lineDashOffset);\r\n }\r\n el.buildPath(path, el.shape, inBatch);\r\n path.toStatic();\r\n el.pathUpdated();\r\n }\r\n if (needsRebuild) {\r\n path.rebuildPath(ctx, strokePart ? strokePercent : 1);\r\n }\r\n if (lineDash && ctxLineDash) {\r\n ctx.setLineDash(lineDash);\r\n ctx.lineDashOffset = lineDashOffset;\r\n }\r\n if (!inBatch) {\r\n if (style.strokeFirst) {\r\n if (hasStroke) {\r\n doStrokePath(ctx, style);\r\n }\r\n if (hasFill) {\r\n doFillPath(ctx, style);\r\n }\r\n }\r\n else {\r\n if (hasFill) {\r\n doFillPath(ctx, style);\r\n }\r\n if (hasStroke) {\r\n doStrokePath(ctx, style);\r\n }\r\n }\r\n }\r\n if (lineDash && ctxLineDash) {\r\n ctx.setLineDash([]);\r\n }\r\n }\r\n function brushImage(ctx, el, style) {\r\n var image = el.__image = createOrUpdateImage(style.image, el.__image, el, el.onload);\r\n if (!image || !isImageReady(image)) {\r\n return;\r\n }\r\n var x = style.x || 0;\r\n var y = style.y || 0;\r\n var width = el.getWidth();\r\n var height = el.getHeight();\r\n var aspect = image.width / image.height;\r\n if (width == null && height != null) {\r\n width = height * aspect;\r\n }\r\n else if (height == null && width != null) {\r\n height = width / aspect;\r\n }\r\n else if (width == null && height == null) {\r\n width = image.width;\r\n height = image.height;\r\n }\r\n if (style.sWidth && style.sHeight) {\r\n var sx = style.sx || 0;\r\n var sy = style.sy || 0;\r\n ctx.drawImage(image, sx, sy, style.sWidth, style.sHeight, x, y, width, height);\r\n }\r\n else if (style.sx && style.sy) {\r\n var sx = style.sx;\r\n var sy = style.sy;\r\n var sWidth = width - sx;\r\n var sHeight = height - sy;\r\n ctx.drawImage(image, sx, sy, sWidth, sHeight, x, y, width, height);\r\n }\r\n else {\r\n ctx.drawImage(image, x, y, width, height);\r\n }\r\n }\r\n function brushText(ctx, el, style) {\r\n var text = style.text;\r\n text != null && (text += '');\r\n if (text) {\r\n ctx.font = style.font || DEFAULT_FONT;\r\n ctx.textAlign = style.textAlign;\r\n ctx.textBaseline = style.textBaseline;\r\n var hasLineDash = void 0;\r\n if (ctx.setLineDash) {\r\n var lineDash = style.lineDash && style.lineWidth > 0 && normalizeLineDash(style.lineDash, style.lineWidth);\r\n var lineDashOffset = style.lineDashOffset;\r\n if (lineDash) {\r\n var lineScale_2 = (style.strokeNoScale && el.getLineScale) ? el.getLineScale() : 1;\r\n if (lineScale_2 && lineScale_2 !== 1) {\r\n lineDash = map(lineDash, function (rawVal) {\r\n return rawVal / lineScale_2;\r\n });\r\n lineDashOffset /= lineScale_2;\r\n }\r\n ctx.setLineDash(lineDash);\r\n ctx.lineDashOffset = lineDashOffset;\r\n hasLineDash = true;\r\n }\r\n }\r\n if (style.strokeFirst) {\r\n if (styleHasStroke(style)) {\r\n ctx.strokeText(text, style.x, style.y);\r\n }\r\n if (styleHasFill(style)) {\r\n ctx.fillText(text, style.x, style.y);\r\n }\r\n }\r\n else {\r\n if (styleHasFill(style)) {\r\n ctx.fillText(text, style.x, style.y);\r\n }\r\n if (styleHasStroke(style)) {\r\n ctx.strokeText(text, style.x, style.y);\r\n }\r\n }\r\n if (hasLineDash) {\r\n ctx.setLineDash([]);\r\n }\r\n }\r\n }\r\n var SHADOW_NUMBER_PROPS = ['shadowBlur', 'shadowOffsetX', 'shadowOffsetY'];\r\n var STROKE_PROPS = [\r\n ['lineCap', 'butt'], ['lineJoin', 'miter'], ['miterLimit', 10]\r\n ];\r\n function bindCommonProps(ctx, style, prevStyle, forceSetAll, scope) {\r\n var styleChanged = false;\r\n if (!forceSetAll) {\r\n prevStyle = prevStyle || {};\r\n if (style === prevStyle) {\r\n return false;\r\n }\r\n }\r\n if (forceSetAll || style.opacity !== prevStyle.opacity) {\r\n if (!styleChanged) {\r\n flushPathDrawn(ctx, scope);\r\n styleChanged = true;\r\n }\r\n ctx.globalAlpha = style.opacity == null ? DEFAULT_COMMON_STYLE.opacity : style.opacity;\r\n }\r\n if (forceSetAll || style.blend !== prevStyle.blend) {\r\n if (!styleChanged) {\r\n flushPathDrawn(ctx, scope);\r\n styleChanged = true;\r\n }\r\n ctx.globalCompositeOperation = style.blend || DEFAULT_COMMON_STYLE.blend;\r\n }\r\n for (var i = 0; i < SHADOW_NUMBER_PROPS.length; i++) {\r\n var propName = SHADOW_NUMBER_PROPS[i];\r\n if (forceSetAll || style[propName] !== prevStyle[propName]) {\r\n if (!styleChanged) {\r\n flushPathDrawn(ctx, scope);\r\n styleChanged = true;\r\n }\r\n ctx[propName] = ctx.dpr * (style[propName] || 0);\r\n }\r\n }\r\n if (forceSetAll || style.shadowColor !== prevStyle.shadowColor) {\r\n if (!styleChanged) {\r\n flushPathDrawn(ctx, scope);\r\n styleChanged = true;\r\n }\r\n ctx.shadowColor = style.shadowColor || DEFAULT_COMMON_STYLE.shadowColor;\r\n }\r\n return styleChanged;\r\n }\r\n function bindPathAndTextCommonStyle(ctx, el, prevEl, forceSetAll, scope) {\r\n var style = getStyle(el, scope.inHover);\r\n var prevStyle = forceSetAll\r\n ? null\r\n : (prevEl && getStyle(prevEl, scope.inHover) || {});\r\n if (style === prevStyle) {\r\n return false;\r\n }\r\n var styleChanged = bindCommonProps(ctx, style, prevStyle, forceSetAll, scope);\r\n if (forceSetAll || style.fill !== prevStyle.fill) {\r\n if (!styleChanged) {\r\n flushPathDrawn(ctx, scope);\r\n styleChanged = true;\r\n }\r\n ctx.fillStyle = style.fill;\r\n }\r\n if (forceSetAll || style.stroke !== prevStyle.stroke) {\r\n if (!styleChanged) {\r\n flushPathDrawn(ctx, scope);\r\n styleChanged = true;\r\n }\r\n ctx.strokeStyle = style.stroke;\r\n }\r\n if (forceSetAll || style.opacity !== prevStyle.opacity) {\r\n if (!styleChanged) {\r\n flushPathDrawn(ctx, scope);\r\n styleChanged = true;\r\n }\r\n ctx.globalAlpha = style.opacity == null ? 1 : style.opacity;\r\n }\r\n if (el.hasStroke()) {\r\n var lineWidth = style.lineWidth;\r\n var newLineWidth = lineWidth / ((style.strokeNoScale && el && el.getLineScale) ? el.getLineScale() : 1);\r\n if (ctx.lineWidth !== newLineWidth) {\r\n if (!styleChanged) {\r\n flushPathDrawn(ctx, scope);\r\n styleChanged = true;\r\n }\r\n ctx.lineWidth = newLineWidth;\r\n }\r\n }\r\n for (var i = 0; i < STROKE_PROPS.length; i++) {\r\n var prop = STROKE_PROPS[i];\r\n var propName = prop[0];\r\n if (forceSetAll || style[propName] !== prevStyle[propName]) {\r\n if (!styleChanged) {\r\n flushPathDrawn(ctx, scope);\r\n styleChanged = true;\r\n }\r\n ctx[propName] = style[propName] || prop[1];\r\n }\r\n }\r\n return styleChanged;\r\n }\r\n function bindImageStyle(ctx, el, prevEl, forceSetAll, scope) {\r\n return bindCommonProps(ctx, getStyle(el, scope.inHover), prevEl && getStyle(prevEl, scope.inHover), forceSetAll, scope);\r\n }\r\n function setContextTransform(ctx, el) {\r\n var m = el.transform;\r\n var dpr = ctx.dpr || 1;\r\n if (m) {\r\n ctx.setTransform(dpr * m[0], dpr * m[1], dpr * m[2], dpr * m[3], dpr * m[4], dpr * m[5]);\r\n }\r\n else {\r\n ctx.setTransform(dpr, 0, 0, dpr, 0, 0);\r\n }\r\n }\r\n function updateClipStatus(clipPaths, ctx, scope) {\r\n var allClipped = false;\r\n for (var i = 0; i < clipPaths.length; i++) {\r\n var clipPath = clipPaths[i];\r\n allClipped = allClipped || clipPath.isZeroArea();\r\n setContextTransform(ctx, clipPath);\r\n ctx.beginPath();\r\n clipPath.buildPath(ctx, clipPath.shape);\r\n ctx.clip();\r\n }\r\n scope.allClipped = allClipped;\r\n }\r\n function isTransformChanged(m0, m1) {\r\n if (m0 && m1) {\r\n return m0[0] !== m1[0]\r\n || m0[1] !== m1[1]\r\n || m0[2] !== m1[2]\r\n || m0[3] !== m1[3]\r\n || m0[4] !== m1[4]\r\n || m0[5] !== m1[5];\r\n }\r\n else if (!m0 && !m1) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n var DRAW_TYPE_PATH = 1;\r\n var DRAW_TYPE_IMAGE = 2;\r\n var DRAW_TYPE_TEXT = 3;\r\n var DRAW_TYPE_INCREMENTAL = 4;\r\n function canPathBatch(style) {\r\n var hasFill = styleHasFill(style);\r\n var hasStroke = styleHasStroke(style);\r\n return !(style.lineDash\r\n || !(+hasFill ^ +hasStroke)\r\n || (hasFill && typeof style.fill !== 'string')\r\n || (hasStroke && typeof style.stroke !== 'string')\r\n || style.strokePercent < 1\r\n || style.strokeOpacity < 1\r\n || style.fillOpacity < 1);\r\n }\r\n function flushPathDrawn(ctx, scope) {\r\n scope.batchFill && ctx.fill();\r\n scope.batchStroke && ctx.stroke();\r\n scope.batchFill = '';\r\n scope.batchStroke = '';\r\n }\r\n function getStyle(el, inHover) {\r\n return inHover ? (el.__hoverStyle || el.style) : el.style;\r\n }\r\n function brushSingle(ctx, el) {\r\n brush(ctx, el, { inHover: false, viewWidth: 0, viewHeight: 0 }, true);\r\n }\r\n function brush(ctx, el, scope, isLast) {\r\n var m = el.transform;\r\n if (!el.shouldBePainted(scope.viewWidth, scope.viewHeight, false, false)) {\r\n el.__dirty &= ~Element.REDARAW_BIT;\r\n el.__isRendered = false;\r\n return;\r\n }\r\n var clipPaths = el.__clipPaths;\r\n var prevElClipPaths = scope.prevElClipPaths;\r\n var forceSetTransform = false;\r\n var forceSetStyle = false;\r\n if (!prevElClipPaths || isClipPathChanged(clipPaths, prevElClipPaths)) {\r\n if (prevElClipPaths && prevElClipPaths.length) {\r\n flushPathDrawn(ctx, scope);\r\n ctx.restore();\r\n forceSetStyle = forceSetTransform = true;\r\n scope.prevElClipPaths = null;\r\n scope.allClipped = false;\r\n scope.prevEl = null;\r\n }\r\n if (clipPaths && clipPaths.length) {\r\n flushPathDrawn(ctx, scope);\r\n ctx.save();\r\n updateClipStatus(clipPaths, ctx, scope);\r\n forceSetTransform = true;\r\n }\r\n scope.prevElClipPaths = clipPaths;\r\n }\r\n if (scope.allClipped) {\r\n el.__isRendered = false;\r\n return;\r\n }\r\n el.beforeBrush && el.beforeBrush();\r\n el.innerBeforeBrush();\r\n var prevEl = scope.prevEl;\r\n if (!prevEl) {\r\n forceSetStyle = forceSetTransform = true;\r\n }\r\n var canBatchPath = el instanceof Path\r\n && el.autoBatch\r\n && canPathBatch(el.style);\r\n if (forceSetTransform || isTransformChanged(m, prevEl.transform)) {\r\n flushPathDrawn(ctx, scope);\r\n setContextTransform(ctx, el);\r\n }\r\n else if (!canBatchPath) {\r\n flushPathDrawn(ctx, scope);\r\n }\r\n var style = getStyle(el, scope.inHover);\r\n if (el instanceof Path) {\r\n if (scope.lastDrawType !== DRAW_TYPE_PATH) {\r\n forceSetStyle = true;\r\n scope.lastDrawType = DRAW_TYPE_PATH;\r\n }\r\n bindPathAndTextCommonStyle(ctx, el, prevEl, forceSetStyle, scope);\r\n if (!canBatchPath || (!scope.batchFill && !scope.batchStroke)) {\r\n ctx.beginPath();\r\n }\r\n brushPath(ctx, el, style, canBatchPath);\r\n if (canBatchPath) {\r\n scope.batchFill = style.fill || '';\r\n scope.batchStroke = style.stroke || '';\r\n }\r\n }\r\n else {\r\n if (el instanceof TSpan) {\r\n if (scope.lastDrawType !== DRAW_TYPE_TEXT) {\r\n forceSetStyle = true;\r\n scope.lastDrawType = DRAW_TYPE_TEXT;\r\n }\r\n bindPathAndTextCommonStyle(ctx, el, prevEl, forceSetStyle, scope);\r\n brushText(ctx, el, style);\r\n }\r\n else if (el instanceof ZRImage) {\r\n if (scope.lastDrawType !== DRAW_TYPE_IMAGE) {\r\n forceSetStyle = true;\r\n scope.lastDrawType = DRAW_TYPE_IMAGE;\r\n }\r\n bindImageStyle(ctx, el, prevEl, forceSetStyle, scope);\r\n brushImage(ctx, el, style);\r\n }\r\n else if (el instanceof IncrementalDisplayble) {\r\n if (scope.lastDrawType !== DRAW_TYPE_INCREMENTAL) {\r\n forceSetStyle = true;\r\n scope.lastDrawType = DRAW_TYPE_INCREMENTAL;\r\n }\r\n brushIncremental(ctx, el, scope);\r\n }\r\n }\r\n if (canBatchPath && isLast) {\r\n flushPathDrawn(ctx, scope);\r\n }\r\n el.innerAfterBrush();\r\n el.afterBrush && el.afterBrush();\r\n scope.prevEl = el;\r\n el.__dirty = 0;\r\n el.__isRendered = true;\r\n }\r\n function brushIncremental(ctx, el, scope) {\r\n var displayables = el.getDisplayables();\r\n var temporalDisplayables = el.getTemporalDisplayables();\r\n ctx.save();\r\n var innerScope = {\r\n prevElClipPaths: null,\r\n prevEl: null,\r\n allClipped: false,\r\n viewWidth: scope.viewWidth,\r\n viewHeight: scope.viewHeight,\r\n inHover: scope.inHover\r\n };\r\n var i;\r\n var len;\r\n for (i = el.getCursor(), len = displayables.length; i < len; i++) {\r\n var displayable = displayables[i];\r\n displayable.beforeBrush && displayable.beforeBrush();\r\n displayable.innerBeforeBrush();\r\n brush(ctx, displayable, innerScope, i === len - 1);\r\n displayable.innerAfterBrush();\r\n displayable.afterBrush && displayable.afterBrush();\r\n innerScope.prevEl = displayable;\r\n }\r\n for (var i_1 = 0, len_1 = temporalDisplayables.length; i_1 < len_1; i_1++) {\r\n var displayable = temporalDisplayables[i_1];\r\n displayable.beforeBrush && displayable.beforeBrush();\r\n displayable.innerBeforeBrush();\r\n brush(ctx, displayable, innerScope, i_1 === len_1 - 1);\r\n displayable.innerAfterBrush();\r\n displayable.afterBrush && displayable.afterBrush();\r\n innerScope.prevEl = displayable;\r\n }\r\n el.clearTemporalDisplayables();\r\n el.notClear = true;\r\n ctx.restore();\r\n }\n\n function returnFalse() {\r\n return false;\r\n }\r\n function createDom(id, painter, dpr) {\r\n var newDom = createCanvas();\r\n var width = painter.getWidth();\r\n var height = painter.getHeight();\r\n var newDomStyle = newDom.style;\r\n if (newDomStyle) {\r\n newDomStyle.position = 'absolute';\r\n newDomStyle.left = '0';\r\n newDomStyle.top = '0';\r\n newDomStyle.width = width + 'px';\r\n newDomStyle.height = height + 'px';\r\n newDom.setAttribute('data-zr-dom-id', id);\r\n }\r\n newDom.width = width * dpr;\r\n newDom.height = height * dpr;\r\n return newDom;\r\n }\r\n var Layer = (function (_super) {\r\n __extends(Layer, _super);\r\n function Layer(id, painter, dpr) {\r\n var _this = _super.call(this) || this;\r\n _this.motionBlur = false;\r\n _this.lastFrameAlpha = 0.7;\r\n _this.dpr = 1;\r\n _this.virtual = false;\r\n _this.config = {};\r\n _this.incremental = false;\r\n _this.zlevel = 0;\r\n _this.maxRepaintRectCount = 5;\r\n _this.__dirty = true;\r\n _this.__firstTimePaint = true;\r\n _this.__used = false;\r\n _this.__drawIndex = 0;\r\n _this.__startIndex = 0;\r\n _this.__endIndex = 0;\r\n _this.__prevStartIndex = null;\r\n _this.__prevEndIndex = null;\r\n var dom;\r\n dpr = dpr || devicePixelRatio;\r\n if (typeof id === 'string') {\r\n dom = createDom(id, painter, dpr);\r\n }\r\n else if (isObject(id)) {\r\n dom = id;\r\n id = dom.id;\r\n }\r\n _this.id = id;\r\n _this.dom = dom;\r\n var domStyle = dom.style;\r\n if (domStyle) {\r\n dom.onselectstart = returnFalse;\r\n domStyle.webkitUserSelect = 'none';\r\n domStyle.userSelect = 'none';\r\n domStyle.webkitTapHighlightColor = 'rgba(0,0,0,0)';\r\n domStyle['-webkit-touch-callout'] = 'none';\r\n domStyle.padding = '0';\r\n domStyle.margin = '0';\r\n domStyle.borderWidth = '0';\r\n }\r\n _this.domBack = null;\r\n _this.ctxBack = null;\r\n _this.painter = painter;\r\n _this.config = null;\r\n _this.dpr = dpr;\r\n return _this;\r\n }\r\n Layer.prototype.getElementCount = function () {\r\n return this.__endIndex - this.__startIndex;\r\n };\r\n Layer.prototype.afterBrush = function () {\r\n this.__prevStartIndex = this.__startIndex;\r\n this.__prevEndIndex = this.__endIndex;\r\n };\r\n Layer.prototype.initContext = function () {\r\n this.ctx = this.dom.getContext('2d');\r\n this.ctx.dpr = this.dpr;\r\n };\r\n Layer.prototype.setUnpainted = function () {\r\n this.__firstTimePaint = true;\r\n };\r\n Layer.prototype.createBackBuffer = function () {\r\n var dpr = this.dpr;\r\n this.domBack = createDom('back-' + this.id, this.painter, dpr);\r\n this.ctxBack = this.domBack.getContext('2d');\r\n if (dpr !== 1) {\r\n this.ctxBack.scale(dpr, dpr);\r\n }\r\n };\r\n Layer.prototype.createRepaintRects = function (displayList, prevList, viewWidth, viewHeight) {\r\n if (this.__firstTimePaint) {\r\n this.__firstTimePaint = false;\r\n return null;\r\n }\r\n var mergedRepaintRects = [];\r\n var maxRepaintRectCount = this.maxRepaintRectCount;\r\n var full = false;\r\n var pendingRect = new BoundingRect(0, 0, 0, 0);\r\n function addRectToMergePool(rect) {\r\n if (!rect.isFinite() || rect.isZero()) {\r\n return;\r\n }\r\n if (mergedRepaintRects.length === 0) {\r\n var boundingRect = new BoundingRect(0, 0, 0, 0);\r\n boundingRect.copy(rect);\r\n mergedRepaintRects.push(boundingRect);\r\n }\r\n else {\r\n var isMerged = false;\r\n var minDeltaArea = Infinity;\r\n var bestRectToMergeIdx = 0;\r\n for (var i = 0; i < mergedRepaintRects.length; ++i) {\r\n var mergedRect = mergedRepaintRects[i];\r\n if (mergedRect.intersect(rect)) {\r\n var pendingRect_1 = new BoundingRect(0, 0, 0, 0);\r\n pendingRect_1.copy(mergedRect);\r\n pendingRect_1.union(rect);\r\n mergedRepaintRects[i] = pendingRect_1;\r\n isMerged = true;\r\n break;\r\n }\r\n else if (full) {\r\n pendingRect.copy(rect);\r\n pendingRect.union(mergedRect);\r\n var aArea = rect.width * rect.height;\r\n var bArea = mergedRect.width * mergedRect.height;\r\n var pendingArea = pendingRect.width * pendingRect.height;\r\n var deltaArea = pendingArea - aArea - bArea;\r\n if (deltaArea < minDeltaArea) {\r\n minDeltaArea = minDeltaArea;\r\n bestRectToMergeIdx = i;\r\n }\r\n }\r\n }\r\n if (full) {\r\n mergedRepaintRects[bestRectToMergeIdx].union(rect);\r\n isMerged = true;\r\n }\r\n if (!isMerged) {\r\n var boundingRect = new BoundingRect(0, 0, 0, 0);\r\n boundingRect.copy(rect);\r\n mergedRepaintRects.push(boundingRect);\r\n }\r\n if (!full) {\r\n full = mergedRepaintRects.length >= maxRepaintRectCount;\r\n }\r\n }\r\n }\r\n for (var i = this.__startIndex; i < this.__endIndex; ++i) {\r\n var el = displayList[i];\r\n if (el) {\r\n var shouldPaint = el.shouldBePainted(viewWidth, viewHeight, true, true);\r\n var prevRect = el.__isRendered && ((el.__dirty & Element.REDARAW_BIT) || !shouldPaint)\r\n ? el.getPrevPaintRect()\r\n : null;\r\n if (prevRect) {\r\n addRectToMergePool(prevRect);\r\n }\r\n var curRect = shouldPaint && ((el.__dirty & Element.REDARAW_BIT) || !el.__isRendered)\r\n ? el.getPaintRect()\r\n : null;\r\n if (curRect) {\r\n addRectToMergePool(curRect);\r\n }\r\n }\r\n }\r\n for (var i = this.__prevStartIndex; i < this.__prevEndIndex; ++i) {\r\n var el = prevList[i];\r\n var shouldPaint = el.shouldBePainted(viewWidth, viewHeight, true, true);\r\n if (el && (!shouldPaint || !el.__zr) && el.__isRendered) {\r\n var prevRect = el.getPrevPaintRect();\r\n if (prevRect) {\r\n addRectToMergePool(prevRect);\r\n }\r\n }\r\n }\r\n var hasIntersections;\r\n do {\r\n hasIntersections = false;\r\n for (var i = 0; i < mergedRepaintRects.length;) {\r\n if (mergedRepaintRects[i].isZero()) {\r\n mergedRepaintRects.splice(i, 1);\r\n continue;\r\n }\r\n for (var j = i + 1; j < mergedRepaintRects.length;) {\r\n if (mergedRepaintRects[i].intersect(mergedRepaintRects[j])) {\r\n hasIntersections = true;\r\n mergedRepaintRects[i].union(mergedRepaintRects[j]);\r\n mergedRepaintRects.splice(j, 1);\r\n }\r\n else {\r\n j++;\r\n }\r\n }\r\n i++;\r\n }\r\n } while (hasIntersections);\r\n this._paintRects = mergedRepaintRects;\r\n return mergedRepaintRects;\r\n };\r\n Layer.prototype.debugGetPaintRects = function () {\r\n return (this._paintRects || []).slice();\r\n };\r\n Layer.prototype.resize = function (width, height) {\r\n var dpr = this.dpr;\r\n var dom = this.dom;\r\n var domStyle = dom.style;\r\n var domBack = this.domBack;\r\n if (domStyle) {\r\n domStyle.width = width + 'px';\r\n domStyle.height = height + 'px';\r\n }\r\n dom.width = width * dpr;\r\n dom.height = height * dpr;\r\n if (domBack) {\r\n domBack.width = width * dpr;\r\n domBack.height = height * dpr;\r\n if (dpr !== 1) {\r\n this.ctxBack.scale(dpr, dpr);\r\n }\r\n }\r\n };\r\n Layer.prototype.clear = function (clearAll, clearColor, repaintRects) {\r\n var dom = this.dom;\r\n var ctx = this.ctx;\r\n var width = dom.width;\r\n var height = dom.height;\r\n clearColor = clearColor || this.clearColor;\r\n var haveMotionBLur = this.motionBlur && !clearAll;\r\n var lastFrameAlpha = this.lastFrameAlpha;\r\n var dpr = this.dpr;\r\n var self = this;\r\n if (haveMotionBLur) {\r\n if (!this.domBack) {\r\n this.createBackBuffer();\r\n }\r\n this.ctxBack.globalCompositeOperation = 'copy';\r\n this.ctxBack.drawImage(dom, 0, 0, width / dpr, height / dpr);\r\n }\r\n var domBack = this.domBack;\r\n function doClear(x, y, width, height) {\r\n ctx.clearRect(x, y, width, height);\r\n if (clearColor && clearColor !== 'transparent') {\r\n var clearColorGradientOrPattern = void 0;\r\n if (isGradientObject(clearColor)) {\r\n clearColorGradientOrPattern = clearColor.__canvasGradient\r\n || getCanvasGradient(ctx, clearColor, {\r\n x: 0,\r\n y: 0,\r\n width: width,\r\n height: height\r\n });\r\n clearColor.__canvasGradient = clearColorGradientOrPattern;\r\n }\r\n else if (isPatternObject(clearColor)) {\r\n clearColorGradientOrPattern = createCanvasPattern(ctx, clearColor, {\r\n dirty: function () {\r\n self.setUnpainted();\r\n self.__painter.refresh();\r\n }\r\n });\r\n }\r\n ctx.save();\r\n ctx.fillStyle = clearColorGradientOrPattern || clearColor;\r\n ctx.fillRect(x, y, width, height);\r\n ctx.restore();\r\n }\r\n if (haveMotionBLur) {\r\n ctx.save();\r\n ctx.globalAlpha = lastFrameAlpha;\r\n ctx.drawImage(domBack, x, y, width, height);\r\n ctx.restore();\r\n }\r\n }\r\n if (!repaintRects || haveMotionBLur) {\r\n doClear(0, 0, width, height);\r\n }\r\n else if (repaintRects.length) {\r\n each(repaintRects, function (rect) {\r\n doClear(rect.x * dpr, rect.y * dpr, rect.width * dpr, rect.height * dpr);\r\n });\r\n }\r\n };\r\n return Layer;\r\n }(Eventful));\n\n var HOVER_LAYER_ZLEVEL = 1e5;\r\n var CANVAS_ZLEVEL = 314159;\r\n var EL_AFTER_INCREMENTAL_INC = 0.01;\r\n var INCREMENTAL_INC = 0.001;\r\n function parseInt10(val) {\r\n return parseInt(val, 10);\r\n }\r\n function isLayerValid(layer) {\r\n if (!layer) {\r\n return false;\r\n }\r\n if (layer.__builtin__) {\r\n return true;\r\n }\r\n if (typeof (layer.resize) !== 'function'\r\n || typeof (layer.refresh) !== 'function') {\r\n return false;\r\n }\r\n return true;\r\n }\r\n function createRoot(width, height) {\r\n var domRoot = document.createElement('div');\r\n domRoot.style.cssText = [\r\n 'position:relative',\r\n 'width:' + width + 'px',\r\n 'height:' + height + 'px',\r\n 'padding:0',\r\n 'margin:0',\r\n 'border-width:0'\r\n ].join(';') + ';';\r\n return domRoot;\r\n }\r\n var CanvasPainter = (function () {\r\n function CanvasPainter(root, storage, opts, id) {\r\n this.type = 'canvas';\r\n this._zlevelList = [];\r\n this._prevDisplayList = [];\r\n this._layers = {};\r\n this._layerConfig = {};\r\n this._needsManuallyCompositing = false;\r\n this.type = 'canvas';\r\n var singleCanvas = !root.nodeName\r\n || root.nodeName.toUpperCase() === 'CANVAS';\r\n this._opts = opts = extend({}, opts || {});\r\n this.dpr = opts.devicePixelRatio || devicePixelRatio;\r\n this._singleCanvas = singleCanvas;\r\n this.root = root;\r\n var rootStyle = root.style;\r\n if (rootStyle) {\r\n rootStyle.webkitTapHighlightColor = 'transparent';\r\n rootStyle.webkitUserSelect = 'none';\r\n rootStyle.userSelect = 'none';\r\n rootStyle['-webkit-touch-callout'] = 'none';\r\n root.innerHTML = '';\r\n }\r\n this.storage = storage;\r\n var zlevelList = this._zlevelList;\r\n this._prevDisplayList = [];\r\n var layers = this._layers;\r\n if (!singleCanvas) {\r\n this._width = this._getSize(0);\r\n this._height = this._getSize(1);\r\n var domRoot = this._domRoot = createRoot(this._width, this._height);\r\n root.appendChild(domRoot);\r\n }\r\n else {\r\n var rootCanvas = root;\r\n var width = rootCanvas.width;\r\n var height = rootCanvas.height;\r\n if (opts.width != null) {\r\n width = opts.width;\r\n }\r\n if (opts.height != null) {\r\n height = opts.height;\r\n }\r\n this.dpr = opts.devicePixelRatio || 1;\r\n rootCanvas.width = width * this.dpr;\r\n rootCanvas.height = height * this.dpr;\r\n this._width = width;\r\n this._height = height;\r\n var mainLayer = new Layer(rootCanvas, this, this.dpr);\r\n mainLayer.__builtin__ = true;\r\n mainLayer.initContext();\r\n layers[CANVAS_ZLEVEL] = mainLayer;\r\n mainLayer.zlevel = CANVAS_ZLEVEL;\r\n zlevelList.push(CANVAS_ZLEVEL);\r\n this._domRoot = root;\r\n }\r\n }\r\n CanvasPainter.prototype.getType = function () {\r\n return 'canvas';\r\n };\r\n CanvasPainter.prototype.isSingleCanvas = function () {\r\n return this._singleCanvas;\r\n };\r\n CanvasPainter.prototype.getViewportRoot = function () {\r\n return this._domRoot;\r\n };\r\n CanvasPainter.prototype.getViewportRootOffset = function () {\r\n var viewportRoot = this.getViewportRoot();\r\n if (viewportRoot) {\r\n return {\r\n offsetLeft: viewportRoot.offsetLeft || 0,\r\n offsetTop: viewportRoot.offsetTop || 0\r\n };\r\n }\r\n };\r\n CanvasPainter.prototype.refresh = function (paintAll) {\r\n var list = this.storage.getDisplayList(true);\r\n var prevList = this._prevDisplayList;\r\n var zlevelList = this._zlevelList;\r\n this._redrawId = Math.random();\r\n this._paintList(list, prevList, paintAll, this._redrawId);\r\n for (var i = 0; i < zlevelList.length; i++) {\r\n var z = zlevelList[i];\r\n var layer = this._layers[z];\r\n if (!layer.__builtin__ && layer.refresh) {\r\n var clearColor = i === 0 ? this._backgroundColor : null;\r\n layer.refresh(clearColor);\r\n }\r\n }\r\n if (this._opts.useDirtyRect) {\r\n this._prevDisplayList = list.slice();\r\n }\r\n return this;\r\n };\r\n CanvasPainter.prototype.refreshHover = function () {\r\n this._paintHoverList(this.storage.getDisplayList(false));\r\n };\r\n CanvasPainter.prototype._paintHoverList = function (list) {\r\n var len = list.length;\r\n var hoverLayer = this._hoverlayer;\r\n hoverLayer && hoverLayer.clear();\r\n if (!len) {\r\n return;\r\n }\r\n var scope = {\r\n inHover: true,\r\n viewWidth: this._width,\r\n viewHeight: this._height\r\n };\r\n var ctx;\r\n for (var i = 0; i < len; i++) {\r\n var el = list[i];\r\n if (el.__inHover) {\r\n if (!hoverLayer) {\r\n hoverLayer = this._hoverlayer = this.getLayer(HOVER_LAYER_ZLEVEL);\r\n }\r\n if (!ctx) {\r\n ctx = hoverLayer.ctx;\r\n ctx.save();\r\n }\r\n brush(ctx, el, scope, i === len - 1);\r\n }\r\n }\r\n if (ctx) {\r\n ctx.restore();\r\n }\r\n };\r\n CanvasPainter.prototype.getHoverLayer = function () {\r\n return this.getLayer(HOVER_LAYER_ZLEVEL);\r\n };\r\n CanvasPainter.prototype.paintOne = function (ctx, el) {\r\n brushSingle(ctx, el);\r\n };\r\n CanvasPainter.prototype._paintList = function (list, prevList, paintAll, redrawId) {\r\n if (this._redrawId !== redrawId) {\r\n return;\r\n }\r\n paintAll = paintAll || false;\r\n this._updateLayerStatus(list);\r\n var _a = this._doPaintList(list, prevList, paintAll), finished = _a.finished, needsRefreshHover = _a.needsRefreshHover;\r\n if (this._needsManuallyCompositing) {\r\n this._compositeManually();\r\n }\r\n if (needsRefreshHover) {\r\n this._paintHoverList(list);\r\n }\r\n if (!finished) {\r\n var self_1 = this;\r\n requestAnimationFrame$1(function () {\r\n self_1._paintList(list, prevList, paintAll, redrawId);\r\n });\r\n }\r\n else {\r\n this.eachLayer(function (layer) {\r\n layer.afterBrush && layer.afterBrush();\r\n });\r\n }\r\n };\r\n CanvasPainter.prototype._compositeManually = function () {\r\n var ctx = this.getLayer(CANVAS_ZLEVEL).ctx;\r\n var width = this._domRoot.width;\r\n var height = this._domRoot.height;\r\n ctx.clearRect(0, 0, width, height);\r\n this.eachBuiltinLayer(function (layer) {\r\n if (layer.virtual) {\r\n ctx.drawImage(layer.dom, 0, 0, width, height);\r\n }\r\n });\r\n };\r\n CanvasPainter.prototype._doPaintList = function (list, prevList, paintAll) {\r\n var _this = this;\r\n var layerList = [];\r\n var useDirtyRect = this._opts.useDirtyRect;\r\n for (var zi = 0; zi < this._zlevelList.length; zi++) {\r\n var zlevel = this._zlevelList[zi];\r\n var layer = this._layers[zlevel];\r\n if (layer.__builtin__\r\n && layer !== this._hoverlayer\r\n && (layer.__dirty || paintAll)) {\r\n layerList.push(layer);\r\n }\r\n }\r\n var finished = true;\r\n var needsRefreshHover = false;\r\n var _loop_1 = function (k) {\r\n var layer = layerList[k];\r\n var ctx = layer.ctx;\r\n var repaintRects = useDirtyRect\r\n && layer.createRepaintRects(list, prevList, this_1._width, this_1._height);\r\n ctx.save();\r\n var start = paintAll ? layer.__startIndex : layer.__drawIndex;\r\n var useTimer = !paintAll && layer.incremental && Date.now;\r\n var startTime = useTimer && Date.now();\r\n var clearColor = layer.zlevel === this_1._zlevelList[0]\r\n ? this_1._backgroundColor : null;\r\n if (layer.__startIndex === layer.__endIndex) {\r\n layer.clear(false, clearColor, repaintRects);\r\n }\r\n else if (start === layer.__startIndex) {\r\n var firstEl = list[start];\r\n if (!firstEl.incremental || !firstEl.notClear || paintAll) {\r\n layer.clear(false, clearColor, repaintRects);\r\n }\r\n }\r\n if (start === -1) {\r\n console.error('For some unknown reason. drawIndex is -1');\r\n start = layer.__startIndex;\r\n }\r\n var i;\r\n var repaint = function (repaintRect) {\r\n var scope = {\r\n inHover: false,\r\n allClipped: false,\r\n prevEl: null,\r\n viewWidth: _this._width,\r\n viewHeight: _this._height\r\n };\r\n for (i = start; i < layer.__endIndex; i++) {\r\n var el = list[i];\r\n if (el.__inHover) {\r\n needsRefreshHover = true;\r\n }\r\n _this._doPaintEl(el, layer, useDirtyRect, repaintRect, scope, i === layer.__endIndex - 1);\r\n if (useTimer) {\r\n var dTime = Date.now() - startTime;\r\n if (dTime > 15) {\r\n break;\r\n }\r\n }\r\n }\r\n if (scope.prevElClipPaths) {\r\n ctx.restore();\r\n }\r\n };\r\n if (repaintRects) {\r\n if (repaintRects.length === 0) {\r\n i = layer.__endIndex;\r\n }\r\n else {\r\n var dpr = this_1.dpr;\r\n for (var r = 0; r < repaintRects.length; ++r) {\r\n var rect = repaintRects[r];\r\n ctx.save();\r\n ctx.beginPath();\r\n ctx.rect(rect.x * dpr, rect.y * dpr, rect.width * dpr, rect.height * dpr);\r\n ctx.clip();\r\n repaint(rect);\r\n ctx.restore();\r\n }\r\n }\r\n }\r\n else {\r\n ctx.save();\r\n repaint();\r\n ctx.restore();\r\n }\r\n layer.__drawIndex = i;\r\n if (layer.__drawIndex < layer.__endIndex) {\r\n finished = false;\r\n }\r\n };\r\n var this_1 = this;\r\n for (var k = 0; k < layerList.length; k++) {\r\n _loop_1(k);\r\n }\r\n if (env.wxa) {\r\n each(this._layers, function (layer) {\r\n if (layer && layer.ctx && layer.ctx.draw) {\r\n layer.ctx.draw();\r\n }\r\n });\r\n }\r\n return {\r\n finished: finished,\r\n needsRefreshHover: needsRefreshHover\r\n };\r\n };\r\n CanvasPainter.prototype._doPaintEl = function (el, currentLayer, useDirtyRect, repaintRect, scope, isLast) {\r\n var ctx = currentLayer.ctx;\r\n if (useDirtyRect) {\r\n var paintRect = el.getPaintRect();\r\n if (!repaintRect || paintRect && paintRect.intersect(repaintRect)) {\r\n brush(ctx, el, scope, isLast);\r\n el.setPrevPaintRect(paintRect);\r\n }\r\n }\r\n else {\r\n brush(ctx, el, scope, isLast);\r\n }\r\n };\r\n CanvasPainter.prototype.getLayer = function (zlevel, virtual) {\r\n if (this._singleCanvas && !this._needsManuallyCompositing) {\r\n zlevel = CANVAS_ZLEVEL;\r\n }\r\n var layer = this._layers[zlevel];\r\n if (!layer) {\r\n layer = new Layer('zr_' + zlevel, this, this.dpr);\r\n layer.zlevel = zlevel;\r\n layer.__builtin__ = true;\r\n if (this._layerConfig[zlevel]) {\r\n merge(layer, this._layerConfig[zlevel], true);\r\n }\r\n else if (this._layerConfig[zlevel - EL_AFTER_INCREMENTAL_INC]) {\r\n merge(layer, this._layerConfig[zlevel - EL_AFTER_INCREMENTAL_INC], true);\r\n }\r\n if (virtual) {\r\n layer.virtual = virtual;\r\n }\r\n this.insertLayer(zlevel, layer);\r\n layer.initContext();\r\n }\r\n return layer;\r\n };\r\n CanvasPainter.prototype.insertLayer = function (zlevel, layer) {\r\n var layersMap = this._layers;\r\n var zlevelList = this._zlevelList;\r\n var len = zlevelList.length;\r\n var domRoot = this._domRoot;\r\n var prevLayer = null;\r\n var i = -1;\r\n if (layersMap[zlevel]) {\r\n logError('ZLevel ' + zlevel + ' has been used already');\r\n return;\r\n }\r\n if (!isLayerValid(layer)) {\r\n logError('Layer of zlevel ' + zlevel + ' is not valid');\r\n return;\r\n }\r\n if (len > 0 && zlevel > zlevelList[0]) {\r\n for (i = 0; i < len - 1; i++) {\r\n if (zlevelList[i] < zlevel\r\n && zlevelList[i + 1] > zlevel) {\r\n break;\r\n }\r\n }\r\n prevLayer = layersMap[zlevelList[i]];\r\n }\r\n zlevelList.splice(i + 1, 0, zlevel);\r\n layersMap[zlevel] = layer;\r\n if (!layer.virtual) {\r\n if (prevLayer) {\r\n var prevDom = prevLayer.dom;\r\n if (prevDom.nextSibling) {\r\n domRoot.insertBefore(layer.dom, prevDom.nextSibling);\r\n }\r\n else {\r\n domRoot.appendChild(layer.dom);\r\n }\r\n }\r\n else {\r\n if (domRoot.firstChild) {\r\n domRoot.insertBefore(layer.dom, domRoot.firstChild);\r\n }\r\n else {\r\n domRoot.appendChild(layer.dom);\r\n }\r\n }\r\n }\r\n layer.__painter = this;\r\n };\r\n CanvasPainter.prototype.eachLayer = function (cb, context) {\r\n var zlevelList = this._zlevelList;\r\n for (var i = 0; i < zlevelList.length; i++) {\r\n var z = zlevelList[i];\r\n cb.call(context, this._layers[z], z);\r\n }\r\n };\r\n CanvasPainter.prototype.eachBuiltinLayer = function (cb, context) {\r\n var zlevelList = this._zlevelList;\r\n for (var i = 0; i < zlevelList.length; i++) {\r\n var z = zlevelList[i];\r\n var layer = this._layers[z];\r\n if (layer.__builtin__) {\r\n cb.call(context, layer, z);\r\n }\r\n }\r\n };\r\n CanvasPainter.prototype.eachOtherLayer = function (cb, context) {\r\n var zlevelList = this._zlevelList;\r\n for (var i = 0; i < zlevelList.length; i++) {\r\n var z = zlevelList[i];\r\n var layer = this._layers[z];\r\n if (!layer.__builtin__) {\r\n cb.call(context, layer, z);\r\n }\r\n }\r\n };\r\n CanvasPainter.prototype.getLayers = function () {\r\n return this._layers;\r\n };\r\n CanvasPainter.prototype._updateLayerStatus = function (list) {\r\n this.eachBuiltinLayer(function (layer, z) {\r\n layer.__dirty = layer.__used = false;\r\n });\r\n function updatePrevLayer(idx) {\r\n if (prevLayer) {\r\n if (prevLayer.__endIndex !== idx) {\r\n prevLayer.__dirty = true;\r\n }\r\n prevLayer.__endIndex = idx;\r\n }\r\n }\r\n if (this._singleCanvas) {\r\n for (var i_1 = 1; i_1 < list.length; i_1++) {\r\n var el = list[i_1];\r\n if (el.zlevel !== list[i_1 - 1].zlevel || el.incremental) {\r\n this._needsManuallyCompositing = true;\r\n break;\r\n }\r\n }\r\n }\r\n var prevLayer = null;\r\n var incrementalLayerCount = 0;\r\n var prevZlevel;\r\n var i;\r\n for (i = 0; i < list.length; i++) {\r\n var el = list[i];\r\n var zlevel = el.zlevel;\r\n var layer = void 0;\r\n if (prevZlevel !== zlevel) {\r\n prevZlevel = zlevel;\r\n incrementalLayerCount = 0;\r\n }\r\n if (el.incremental) {\r\n layer = this.getLayer(zlevel + INCREMENTAL_INC, this._needsManuallyCompositing);\r\n layer.incremental = true;\r\n incrementalLayerCount = 1;\r\n }\r\n else {\r\n layer = this.getLayer(zlevel + (incrementalLayerCount > 0 ? EL_AFTER_INCREMENTAL_INC : 0), this._needsManuallyCompositing);\r\n }\r\n if (!layer.__builtin__) {\r\n logError('ZLevel ' + zlevel + ' has been used by unkown layer ' + layer.id);\r\n }\r\n if (layer !== prevLayer) {\r\n layer.__used = true;\r\n if (layer.__startIndex !== i) {\r\n layer.__dirty = true;\r\n }\r\n layer.__startIndex = i;\r\n if (!layer.incremental) {\r\n layer.__drawIndex = i;\r\n }\r\n else {\r\n layer.__drawIndex = -1;\r\n }\r\n updatePrevLayer(i);\r\n prevLayer = layer;\r\n }\r\n if ((el.__dirty & Element.REDARAW_BIT) && !el.__inHover) {\r\n layer.__dirty = true;\r\n if (layer.incremental && layer.__drawIndex < 0) {\r\n layer.__drawIndex = i;\r\n }\r\n }\r\n }\r\n updatePrevLayer(i);\r\n this.eachBuiltinLayer(function (layer, z) {\r\n if (!layer.__used && layer.getElementCount() > 0) {\r\n layer.__dirty = true;\r\n layer.__startIndex = layer.__endIndex = layer.__drawIndex = 0;\r\n }\r\n if (layer.__dirty && layer.__drawIndex < 0) {\r\n layer.__drawIndex = layer.__startIndex;\r\n }\r\n });\r\n };\r\n CanvasPainter.prototype.clear = function () {\r\n this.eachBuiltinLayer(this._clearLayer);\r\n return this;\r\n };\r\n CanvasPainter.prototype._clearLayer = function (layer) {\r\n layer.clear();\r\n };\r\n CanvasPainter.prototype.setBackgroundColor = function (backgroundColor) {\r\n this._backgroundColor = backgroundColor;\r\n each(this._layers, function (layer) {\r\n layer.setUnpainted();\r\n });\r\n };\r\n CanvasPainter.prototype.configLayer = function (zlevel, config) {\r\n if (config) {\r\n var layerConfig = this._layerConfig;\r\n if (!layerConfig[zlevel]) {\r\n layerConfig[zlevel] = config;\r\n }\r\n else {\r\n merge(layerConfig[zlevel], config, true);\r\n }\r\n for (var i = 0; i < this._zlevelList.length; i++) {\r\n var _zlevel = this._zlevelList[i];\r\n if (_zlevel === zlevel || _zlevel === zlevel + EL_AFTER_INCREMENTAL_INC) {\r\n var layer = this._layers[_zlevel];\r\n merge(layer, layerConfig[zlevel], true);\r\n }\r\n }\r\n }\r\n };\r\n CanvasPainter.prototype.delLayer = function (zlevel) {\r\n var layers = this._layers;\r\n var zlevelList = this._zlevelList;\r\n var layer = layers[zlevel];\r\n if (!layer) {\r\n return;\r\n }\r\n layer.dom.parentNode.removeChild(layer.dom);\r\n delete layers[zlevel];\r\n zlevelList.splice(indexOf(zlevelList, zlevel), 1);\r\n };\r\n CanvasPainter.prototype.resize = function (width, height) {\r\n if (!this._domRoot.style) {\r\n if (width == null || height == null) {\r\n return;\r\n }\r\n this._width = width;\r\n this._height = height;\r\n this.getLayer(CANVAS_ZLEVEL).resize(width, height);\r\n }\r\n else {\r\n var domRoot = this._domRoot;\r\n domRoot.style.display = 'none';\r\n var opts = this._opts;\r\n width != null && (opts.width = width);\r\n height != null && (opts.height = height);\r\n width = this._getSize(0);\r\n height = this._getSize(1);\r\n domRoot.style.display = '';\r\n if (this._width !== width || height !== this._height) {\r\n domRoot.style.width = width + 'px';\r\n domRoot.style.height = height + 'px';\r\n for (var id in this._layers) {\r\n if (this._layers.hasOwnProperty(id)) {\r\n this._layers[id].resize(width, height);\r\n }\r\n }\r\n this.refresh(true);\r\n }\r\n this._width = width;\r\n this._height = height;\r\n }\r\n return this;\r\n };\r\n CanvasPainter.prototype.clearLayer = function (zlevel) {\r\n var layer = this._layers[zlevel];\r\n if (layer) {\r\n layer.clear();\r\n }\r\n };\r\n CanvasPainter.prototype.dispose = function () {\r\n this.root.innerHTML = '';\r\n this.root =\r\n this.storage =\r\n this._domRoot =\r\n this._layers = null;\r\n };\r\n CanvasPainter.prototype.getRenderedCanvas = function (opts) {\r\n opts = opts || {};\r\n if (this._singleCanvas && !this._compositeManually) {\r\n return this._layers[CANVAS_ZLEVEL].dom;\r\n }\r\n var imageLayer = new Layer('image', this, opts.pixelRatio || this.dpr);\r\n var ctx = imageLayer.ctx;\r\n imageLayer.initContext();\r\n imageLayer.clear(false, opts.backgroundColor || this._backgroundColor);\r\n if (opts.pixelRatio <= this.dpr) {\r\n this.refresh();\r\n var width_1 = imageLayer.dom.width;\r\n var height_1 = imageLayer.dom.height;\r\n var ctx_1 = imageLayer.ctx;\r\n this.eachLayer(function (layer) {\r\n if (layer.__builtin__) {\r\n ctx_1.drawImage(layer.dom, 0, 0, width_1, height_1);\r\n }\r\n else if (layer.renderToCanvas) {\r\n imageLayer.ctx.save();\r\n layer.renderToCanvas(imageLayer.ctx);\r\n imageLayer.ctx.restore();\r\n }\r\n });\r\n }\r\n else {\r\n var scope = {\r\n inHover: false,\r\n viewWidth: this._width,\r\n viewHeight: this._height\r\n };\r\n var displayList = this.storage.getDisplayList(true);\r\n for (var i = 0, len = displayList.length; i < len; i++) {\r\n var el = displayList[i];\r\n brush(ctx, el, scope, i === len - 1);\r\n }\r\n }\r\n return imageLayer.dom;\r\n };\r\n CanvasPainter.prototype.getWidth = function () {\r\n return this._width;\r\n };\r\n CanvasPainter.prototype.getHeight = function () {\r\n return this._height;\r\n };\r\n CanvasPainter.prototype._getSize = function (whIdx) {\r\n var opts = this._opts;\r\n var wh = ['width', 'height'][whIdx];\r\n var cwh = ['clientWidth', 'clientHeight'][whIdx];\r\n var plt = ['paddingLeft', 'paddingTop'][whIdx];\r\n var prb = ['paddingRight', 'paddingBottom'][whIdx];\r\n if (opts[wh] != null && opts[wh] !== 'auto') {\r\n return parseFloat(opts[wh]);\r\n }\r\n var root = this.root;\r\n var stl = document.defaultView.getComputedStyle(root);\r\n return ((root[cwh] || parseInt10(stl[wh]) || parseInt10(root.style[wh]))\r\n - (parseInt10(stl[plt]) || 0)\r\n - (parseInt10(stl[prb]) || 0)) | 0;\r\n };\r\n CanvasPainter.prototype.pathToImage = function (path, dpr) {\r\n dpr = dpr || this.dpr;\r\n var canvas = document.createElement('canvas');\r\n var ctx = canvas.getContext('2d');\r\n var rect = path.getBoundingRect();\r\n var style = path.style;\r\n var shadowBlurSize = style.shadowBlur * dpr;\r\n var shadowOffsetX = style.shadowOffsetX * dpr;\r\n var shadowOffsetY = style.shadowOffsetY * dpr;\r\n var lineWidth = path.hasStroke() ? style.lineWidth : 0;\r\n var leftMargin = Math.max(lineWidth / 2, -shadowOffsetX + shadowBlurSize);\r\n var rightMargin = Math.max(lineWidth / 2, shadowOffsetX + shadowBlurSize);\r\n var topMargin = Math.max(lineWidth / 2, -shadowOffsetY + shadowBlurSize);\r\n var bottomMargin = Math.max(lineWidth / 2, shadowOffsetY + shadowBlurSize);\r\n var width = rect.width + leftMargin + rightMargin;\r\n var height = rect.height + topMargin + bottomMargin;\r\n canvas.width = width * dpr;\r\n canvas.height = height * dpr;\r\n ctx.scale(dpr, dpr);\r\n ctx.clearRect(0, 0, width, height);\r\n ctx.dpr = dpr;\r\n var pathTransform = {\r\n x: path.x,\r\n y: path.y,\r\n scaleX: path.scaleX,\r\n scaleY: path.scaleY,\r\n rotation: path.rotation,\r\n originX: path.originX,\r\n originY: path.originY\r\n };\r\n path.x = leftMargin - rect.x;\r\n path.y = topMargin - rect.y;\r\n path.rotation = 0;\r\n path.scaleX = 1;\r\n path.scaleY = 1;\r\n path.updateTransform();\r\n if (path) {\r\n brush(ctx, path, {\r\n inHover: false,\r\n viewWidth: this._width,\r\n viewHeight: this._height\r\n }, true);\r\n }\r\n var imgShape = new ZRImage({\r\n style: {\r\n x: 0,\r\n y: 0,\r\n image: canvas\r\n }\r\n });\r\n extend(path, pathTransform);\r\n return imgShape;\r\n };\r\n return CanvasPainter;\r\n }());\n\n registerPainter('canvas', CanvasPainter);\n\n function findEventDispatcher(target, det, returnFirstMatch) {\r\n var found;\r\n while (target) {\r\n if (det(target)) {\r\n found = target;\r\n if (returnFirstMatch) {\r\n break;\r\n }\r\n }\r\n target = target.__hostTarget || target.parent;\r\n }\r\n return found;\r\n }\n\n var wmUniqueIndex = Math.round(Math.random() * 9);\r\n var WeakMap = (function () {\r\n function WeakMap() {\r\n this._id = '__ec_inner_' + wmUniqueIndex++;\r\n }\r\n WeakMap.prototype.get = function (key) {\r\n return this._guard(key)[this._id];\r\n };\r\n WeakMap.prototype.set = function (key, value) {\r\n var target = this._guard(key);\r\n if (typeof Object.defineProperty === 'function') {\r\n Object.defineProperty(target, this._id, {\r\n value: value,\r\n enumerable: false,\r\n configurable: true\r\n });\r\n }\r\n else {\r\n target[this._id] = value;\r\n }\r\n return this;\r\n };\r\n WeakMap.prototype[\"delete\"] = function (key) {\r\n if (this.has(key)) {\r\n delete this._guard(key)[this._id];\r\n return true;\r\n }\r\n return false;\r\n };\r\n WeakMap.prototype.has = function (key) {\r\n return !!this._guard(key)[this._id];\r\n };\r\n WeakMap.prototype._guard = function (key) {\r\n if (key !== Object(key)) {\r\n throw TypeError('Value of WeakMap is not a non-null object.');\r\n }\r\n return key;\r\n };\r\n return WeakMap;\r\n }());\n\n var Triangle = Path.extend({\r\n type: 'triangle',\r\n shape: {\r\n cx: 0,\r\n cy: 0,\r\n width: 0,\r\n height: 0\r\n },\r\n buildPath: function (path, shape) {\r\n var cx = shape.cx;\r\n var cy = shape.cy;\r\n var width = shape.width / 2;\r\n var height = shape.height / 2;\r\n path.moveTo(cx, cy - height);\r\n path.lineTo(cx + width, cy + height);\r\n path.lineTo(cx - width, cy + height);\r\n path.closePath();\r\n }\r\n });\r\n var Diamond = Path.extend({\r\n type: 'diamond',\r\n shape: {\r\n cx: 0,\r\n cy: 0,\r\n width: 0,\r\n height: 0\r\n },\r\n buildPath: function (path, shape) {\r\n var cx = shape.cx;\r\n var cy = shape.cy;\r\n var width = shape.width / 2;\r\n var height = shape.height / 2;\r\n path.moveTo(cx, cy - height);\r\n path.lineTo(cx + width, cy);\r\n path.lineTo(cx, cy + height);\r\n path.lineTo(cx - width, cy);\r\n path.closePath();\r\n }\r\n });\r\n var Pin = Path.extend({\r\n type: 'pin',\r\n shape: {\r\n x: 0,\r\n y: 0,\r\n width: 0,\r\n height: 0\r\n },\r\n buildPath: function (path, shape) {\r\n var x = shape.x;\r\n var y = shape.y;\r\n var w = shape.width / 5 * 3;\r\n var h = Math.max(w, shape.height);\r\n var r = w / 2;\r\n var dy = r * r / (h - r);\r\n var cy = y - h + r + dy;\r\n var angle = Math.asin(dy / r);\r\n var dx = Math.cos(angle) * r;\r\n var tanX = Math.sin(angle);\r\n var tanY = Math.cos(angle);\r\n var cpLen = r * 0.6;\r\n var cpLen2 = r * 0.7;\r\n path.moveTo(x - dx, cy + dy);\r\n path.arc(x, cy, r, Math.PI - angle, Math.PI * 2 + angle);\r\n path.bezierCurveTo(x + dx - tanX * cpLen, cy + dy + tanY * cpLen, x, y - cpLen2, x, y);\r\n path.bezierCurveTo(x, y - cpLen2, x - dx + tanX * cpLen, cy + dy + tanY * cpLen, x - dx, cy + dy);\r\n path.closePath();\r\n }\r\n });\r\n var Arrow = Path.extend({\r\n type: 'arrow',\r\n shape: {\r\n x: 0,\r\n y: 0,\r\n width: 0,\r\n height: 0\r\n },\r\n buildPath: function (ctx, shape) {\r\n var height = shape.height;\r\n var width = shape.width;\r\n var x = shape.x;\r\n var y = shape.y;\r\n var dx = width / 3 * 2;\r\n ctx.moveTo(x, y);\r\n ctx.lineTo(x + dx, y + height);\r\n ctx.lineTo(x, y + height / 4 * 3);\r\n ctx.lineTo(x - dx, y + height);\r\n ctx.lineTo(x, y);\r\n ctx.closePath();\r\n }\r\n });\r\n var symbolCtors = {\r\n line: Rect,\r\n rect: Rect,\r\n roundRect: Rect,\r\n square: Rect,\r\n circle: Circle,\r\n diamond: Diamond,\r\n pin: Pin,\r\n arrow: Arrow,\r\n triangle: Triangle\r\n };\r\n var symbolShapeMakers = {\r\n line: function (x, y, w, h, shape) {\r\n var thickness = 2;\r\n shape.x = x;\r\n shape.y = y + h / 2 - thickness / 2;\r\n shape.width = w;\r\n shape.height = thickness;\r\n },\r\n rect: function (x, y, w, h, shape) {\r\n shape.x = x;\r\n shape.y = y;\r\n shape.width = w;\r\n shape.height = h;\r\n },\r\n roundRect: function (x, y, w, h, shape) {\r\n shape.x = x;\r\n shape.y = y;\r\n shape.width = w;\r\n shape.height = h;\r\n shape.r = Math.min(w, h) / 4;\r\n },\r\n square: function (x, y, w, h, shape) {\r\n var size = Math.min(w, h);\r\n shape.x = x;\r\n shape.y = y;\r\n shape.width = size;\r\n shape.height = size;\r\n },\r\n circle: function (x, y, w, h, shape) {\r\n shape.cx = x + w / 2;\r\n shape.cy = y + h / 2;\r\n shape.r = Math.min(w, h) / 2;\r\n },\r\n diamond: function (x, y, w, h, shape) {\r\n shape.cx = x + w / 2;\r\n shape.cy = y + h / 2;\r\n shape.width = w;\r\n shape.height = h;\r\n },\r\n pin: function (x, y, w, h, shape) {\r\n shape.x = x + w / 2;\r\n shape.y = y + h / 2;\r\n shape.width = w;\r\n shape.height = h;\r\n },\r\n arrow: function (x, y, w, h, shape) {\r\n shape.x = x + w / 2;\r\n shape.y = y + h / 2;\r\n shape.width = w;\r\n shape.height = h;\r\n },\r\n triangle: function (x, y, w, h, shape) {\r\n shape.cx = x + w / 2;\r\n shape.cy = y + h / 2;\r\n shape.width = w;\r\n shape.height = h;\r\n }\r\n };\r\n var symbolBuildProxies = {};\r\n each(symbolCtors, function (Ctor, name) {\r\n symbolBuildProxies[name] = new Ctor();\r\n });\r\n var SymbolClz = Path.extend({\r\n type: 'symbol',\r\n shape: {\r\n symbolType: '',\r\n x: 0,\r\n y: 0,\r\n width: 0,\r\n height: 0\r\n },\r\n calculateTextPosition: function (out, config, rect) {\r\n var res = calculateTextPosition(out, config, rect);\r\n var shape = this.shape;\r\n if (shape && shape.symbolType === 'pin' && config.position === 'inside') {\r\n res.y = rect.y + rect.height * 0.4;\r\n }\r\n return res;\r\n },\r\n buildPath: function (ctx, shape, inBundle) {\r\n var symbolType = shape.symbolType;\r\n if (symbolType !== 'none') {\r\n var proxySymbol = symbolBuildProxies[symbolType];\r\n if (!proxySymbol) {\r\n symbolType = 'rect';\r\n proxySymbol = symbolBuildProxies[symbolType];\r\n }\r\n symbolShapeMakers[symbolType](shape.x, shape.y, shape.width, shape.height, proxySymbol.shape);\r\n proxySymbol.buildPath(ctx, proxySymbol.shape, inBundle);\r\n }\r\n }\r\n });\r\n function symbolPathSetColor(color, innerColor) {\r\n if (this.type !== 'image') {\r\n var symbolStyle = this.style;\r\n if (this.__isEmptyBrush) {\r\n symbolStyle.stroke = color;\r\n symbolStyle.fill = innerColor || '#fff';\r\n symbolStyle.lineWidth = 2;\r\n }\r\n else {\r\n symbolStyle.fill = color;\r\n }\r\n this.markRedraw();\r\n }\r\n }\r\n function createSymbol(symbolType, x, y, w, h, color, keepAspect) {\r\n var isEmpty = symbolType.indexOf('empty') === 0;\r\n if (isEmpty) {\r\n symbolType = symbolType.substr(5, 1).toLowerCase() + symbolType.substr(6);\r\n }\r\n var symbolPath;\r\n if (symbolType.indexOf('image://') === 0) {\r\n symbolPath = makeImage(symbolType.slice(8), new BoundingRect(x, y, w, h), keepAspect ? 'center' : 'cover');\r\n }\r\n else if (symbolType.indexOf('path://') === 0) {\r\n symbolPath = makePath(symbolType.slice(7), {}, new BoundingRect(x, y, w, h), keepAspect ? 'center' : 'cover');\r\n }\r\n else {\r\n symbolPath = new SymbolClz({\r\n shape: {\r\n symbolType: symbolType,\r\n x: x,\r\n y: y,\r\n width: w,\r\n height: h\r\n }\r\n });\r\n }\r\n symbolPath.__isEmptyBrush = isEmpty;\r\n symbolPath.setColor = symbolPathSetColor;\r\n if (color) {\r\n symbolPath.setColor(color);\r\n }\r\n return symbolPath;\r\n }\n\n var decalMap = new WeakMap();\r\n var decalCache = new LRU(100);\r\n var decalKeys = [\r\n 'symbol', 'symbolSize', 'symbolKeepAspect',\r\n 'color', 'backgroundColor',\r\n 'dashArrayX', 'dashArrayY', 'dashLineOffset',\r\n 'maxTileWidth', 'maxTileHeight'\r\n ];\r\n function createOrUpdatePatternFromDecal(decalObject, api) {\r\n if (decalObject === 'none') {\r\n return null;\r\n }\r\n var dpr = api.getDevicePixelRatio();\r\n var zr = api.getZr();\r\n var isSVG = zr.painter.type === 'svg';\r\n if (decalObject.dirty) {\r\n decalMap[\"delete\"](decalObject);\r\n }\r\n var oldPattern = decalMap.get(decalObject);\r\n if (oldPattern) {\r\n return oldPattern;\r\n }\r\n var decalOpt = defaults(decalObject, {\r\n symbol: 'rect',\r\n symbolSize: 1,\r\n symbolKeepAspect: true,\r\n color: 'rgba(0, 0, 0, 0.2)',\r\n backgroundColor: null,\r\n dashArrayX: 5,\r\n dashArrayY: 5,\r\n dashLineOffset: 0,\r\n rotation: 0,\r\n maxTileWidth: 512,\r\n maxTileHeight: 512\r\n });\r\n if (decalOpt.backgroundColor === 'none') {\r\n decalOpt.backgroundColor = null;\r\n }\r\n var pattern = { repeat: 'repeat' };\r\n setPatternnSource(pattern);\r\n pattern.rotation = decalOpt.rotation;\r\n pattern.scaleX = pattern.scaleY = isSVG ? 1 : 1 / dpr;\r\n decalMap.set(decalObject, pattern);\r\n decalObject.dirty = false;\r\n return pattern;\r\n function setPatternnSource(pattern) {\r\n var keys = [dpr];\r\n var isValidKey = true;\r\n for (var i = 0; i < decalKeys.length; ++i) {\r\n var value = decalOpt[decalKeys[i]];\r\n var valueType = typeof value;\r\n if (value != null\r\n && !isArray(value)\r\n && valueType !== 'string'\r\n && valueType !== 'number'\r\n && valueType !== 'boolean') {\r\n isValidKey = false;\r\n break;\r\n }\r\n keys.push(value);\r\n }\r\n var cacheKey;\r\n if (isValidKey) {\r\n cacheKey = keys.join(',') + (isSVG ? '-svg' : '');\r\n var cache = decalCache.get(cacheKey);\r\n if (cache) {\r\n isSVG ? pattern.svgElement = cache\r\n : pattern.image = cache;\r\n }\r\n }\r\n var dashArrayX = normalizeDashArrayX(decalOpt.dashArrayX);\r\n var dashArrayY = normalizeDashArrayY(decalOpt.dashArrayY);\r\n var symbolArray = normalizeSymbolArray(decalOpt.symbol);\r\n var lineBlockLengthsX = getLineBlockLengthX(dashArrayX);\r\n var lineBlockLengthY = getLineBlockLengthY(dashArrayY);\r\n var canvas = !isSVG && createCanvas();\r\n var svgRoot = isSVG && zr.painter.createSVGElement('g');\r\n var pSize = getPatternSize();\r\n var ctx;\r\n if (canvas) {\r\n canvas.width = pSize.width * dpr;\r\n canvas.height = pSize.height * dpr;\r\n ctx = canvas.getContext('2d');\r\n }\r\n brushDecal();\r\n if (isValidKey) {\r\n decalCache.put(cacheKey, canvas || svgRoot);\r\n }\r\n pattern.image = canvas;\r\n pattern.svgElement = svgRoot;\r\n pattern.svgWidth = pSize.width;\r\n pattern.svgHeight = pSize.height;\r\n function getPatternSize() {\r\n var width = 1;\r\n for (var i = 0, xlen = lineBlockLengthsX.length; i < xlen; ++i) {\r\n width = getLeastCommonMultiple(width, lineBlockLengthsX[i]);\r\n }\r\n var symbolRepeats = 1;\r\n for (var i = 0, xlen = symbolArray.length; i < xlen; ++i) {\r\n symbolRepeats = getLeastCommonMultiple(symbolRepeats, symbolArray[i].length);\r\n }\r\n width *= symbolRepeats;\r\n var height = lineBlockLengthY * lineBlockLengthsX.length * symbolArray.length;\r\n if (__DEV__) {\r\n var warn = function (attrName) {\r\n console.warn(\"Calculated decal size is greater than \" + attrName + \" due to decal option settings so \" + attrName + \" is used for the decal size. Please consider changing the decal option to make a smaller decal or set \" + attrName + \" to be larger to avoid incontinuity.\");\r\n };\r\n if (width > decalOpt.maxTileWidth) {\r\n warn('maxTileWidth');\r\n }\r\n if (height > decalOpt.maxTileHeight) {\r\n warn('maxTileHeight');\r\n }\r\n }\r\n return {\r\n width: Math.max(1, Math.min(width, decalOpt.maxTileWidth)),\r\n height: Math.max(1, Math.min(height, decalOpt.maxTileHeight))\r\n };\r\n }\r\n function brushDecal() {\r\n if (ctx) {\r\n ctx.clearRect(0, 0, canvas.width, canvas.height);\r\n if (decalOpt.backgroundColor) {\r\n ctx.fillStyle = decalOpt.backgroundColor;\r\n ctx.fillRect(0, 0, canvas.width, canvas.height);\r\n }\r\n }\r\n var ySum = 0;\r\n for (var i = 0; i < dashArrayY.length; ++i) {\r\n ySum += dashArrayY[i];\r\n }\r\n if (ySum <= 0) {\r\n return;\r\n }\r\n var y = -lineBlockLengthY;\r\n var yId = 0;\r\n var yIdTotal = 0;\r\n var xId0 = 0;\r\n while (y < pSize.height) {\r\n if (yId % 2 === 0) {\r\n var symbolYId = (yIdTotal / 2) % symbolArray.length;\r\n var x = 0;\r\n var xId1 = 0;\r\n var xId1Total = 0;\r\n while (x < pSize.width * 2) {\r\n var xSum = 0;\r\n for (var i = 0; i < dashArrayX[xId0].length; ++i) {\r\n xSum += dashArrayX[xId0][i];\r\n }\r\n if (xSum <= 0) {\r\n break;\r\n }\r\n if (xId1 % 2 === 0) {\r\n var size = (1 - decalOpt.symbolSize) * 0.5;\r\n var left = x + dashArrayX[xId0][xId1] * size;\r\n var top_1 = y + dashArrayY[yId] * size;\r\n var width = dashArrayX[xId0][xId1] * decalOpt.symbolSize;\r\n var height = dashArrayY[yId] * decalOpt.symbolSize;\r\n var symbolXId = (xId1Total / 2) % symbolArray[symbolYId].length;\r\n brushSymbol(left, top_1, width, height, symbolArray[symbolYId][symbolXId]);\r\n }\r\n x += dashArrayX[xId0][xId1];\r\n ++xId1Total;\r\n ++xId1;\r\n if (xId1 === dashArrayX[xId0].length) {\r\n xId1 = 0;\r\n }\r\n }\r\n ++xId0;\r\n if (xId0 === dashArrayX.length) {\r\n xId0 = 0;\r\n }\r\n }\r\n y += dashArrayY[yId];\r\n ++yIdTotal;\r\n ++yId;\r\n if (yId === dashArrayY.length) {\r\n yId = 0;\r\n }\r\n }\r\n function brushSymbol(x, y, width, height, symbolType) {\r\n var scale = isSVG ? 1 : dpr;\r\n var symbol = createSymbol(symbolType, x * scale, y * scale, width * scale, height * scale, decalOpt.color, decalOpt.symbolKeepAspect);\r\n if (isSVG) {\r\n svgRoot.appendChild(zr.painter.paintOne(symbol));\r\n }\r\n else {\r\n brushSingle(ctx, symbol);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n function normalizeSymbolArray(symbol) {\r\n if (!symbol || symbol.length === 0) {\r\n return [['rect']];\r\n }\r\n if (typeof symbol === 'string') {\r\n return [[symbol]];\r\n }\r\n var isAllString = true;\r\n for (var i = 0; i < symbol.length; ++i) {\r\n if (typeof symbol[i] !== 'string') {\r\n isAllString = false;\r\n break;\r\n }\r\n }\r\n if (isAllString) {\r\n return normalizeSymbolArray([symbol]);\r\n }\r\n var result = [];\r\n for (var i = 0; i < symbol.length; ++i) {\r\n if (typeof symbol[i] === 'string') {\r\n result.push([symbol[i]]);\r\n }\r\n else {\r\n result.push(symbol[i]);\r\n }\r\n }\r\n return result;\r\n }\r\n function normalizeDashArrayX(dash) {\r\n if (!dash || dash.length === 0) {\r\n return [[0, 0]];\r\n }\r\n if (typeof dash === 'number') {\r\n var dashValue = Math.ceil(dash);\r\n return [[dashValue, dashValue]];\r\n }\r\n var isAllNumber = true;\r\n for (var i = 0; i < dash.length; ++i) {\r\n if (typeof dash[i] !== 'number') {\r\n isAllNumber = false;\r\n break;\r\n }\r\n }\r\n if (isAllNumber) {\r\n return normalizeDashArrayX([dash]);\r\n }\r\n var result = [];\r\n for (var i = 0; i < dash.length; ++i) {\r\n if (typeof dash[i] === 'number') {\r\n var dashValue = Math.ceil(dash[i]);\r\n result.push([dashValue, dashValue]);\r\n }\r\n else {\r\n var dashValue = map(dash[i], function (n) { return Math.ceil(n); });\r\n if (dashValue.length % 2 === 1) {\r\n result.push(dashValue.concat(dashValue));\r\n }\r\n else {\r\n result.push(dashValue);\r\n }\r\n }\r\n }\r\n return result;\r\n }\r\n function normalizeDashArrayY(dash) {\r\n if (!dash || typeof dash === 'object' && dash.length === 0) {\r\n return [0, 0];\r\n }\r\n if (typeof dash === 'number') {\r\n var dashValue_1 = Math.ceil(dash);\r\n return [dashValue_1, dashValue_1];\r\n }\r\n var dashValue = map(dash, function (n) { return Math.ceil(n); });\r\n return dash.length % 2 ? dashValue.concat(dashValue) : dashValue;\r\n }\r\n function getLineBlockLengthX(dash) {\r\n return map(dash, function (line) {\r\n return getLineBlockLengthY(line);\r\n });\r\n }\r\n function getLineBlockLengthY(dash) {\r\n var blockLength = 0;\r\n for (var i = 0; i < dash.length; ++i) {\r\n blockLength += dash[i];\r\n }\r\n if (dash.length % 2 === 1) {\r\n return blockLength * 2;\r\n }\r\n return blockLength;\r\n }\n\n function decalVisual(ecModel, api) {\r\n ecModel.eachRawSeries(function (seriesModel) {\r\n if (ecModel.isSeriesFiltered(seriesModel)) {\r\n return;\r\n }\r\n var data = seriesModel.getData();\r\n if (data.hasItemVisual()) {\r\n data.each(function (idx) {\r\n var decal = data.getItemVisual(idx, 'decal');\r\n if (decal) {\r\n var itemStyle = data.ensureUniqueItemVisual(idx, 'style');\r\n itemStyle.decal = createOrUpdatePatternFromDecal(decal, api);\r\n }\r\n });\r\n }\r\n var decal = data.getVisual('decal');\r\n if (decal) {\r\n var style = data.getVisual('style');\r\n style.decal = createOrUpdatePatternFromDecal(decal, api);\r\n }\r\n });\r\n }\n\n var assert$1 = assert;\r\n var each$3 = each;\r\n var isFunction$1 = isFunction;\r\n var isObject$2 = isObject;\r\n var version$1 = '5.0.0';\r\n var dependencies = {\r\n zrender: '5.0.1'\r\n };\r\n var TEST_FRAME_REMAIN_TIME = 1;\r\n var PRIORITY_PROCESSOR_SERIES_FILTER = 800;\r\n var PRIORITY_PROCESSOR_DATASTACK = 900;\r\n var PRIORITY_PROCESSOR_FILTER = 1000;\r\n var PRIORITY_PROCESSOR_DEFAULT = 2000;\r\n var PRIORITY_PROCESSOR_STATISTIC = 5000;\r\n var PRIORITY_VISUAL_LAYOUT = 1000;\r\n var PRIORITY_VISUAL_PROGRESSIVE_LAYOUT = 1100;\r\n var PRIORITY_VISUAL_GLOBAL = 2000;\r\n var PRIORITY_VISUAL_CHART = 3000;\r\n var PRIORITY_VISUAL_COMPONENT = 4000;\r\n var PRIORITY_VISUAL_CHART_DATA_CUSTOM = 4500;\r\n var PRIORITY_VISUAL_POST_CHART_LAYOUT = 4600;\r\n var PRIORITY_VISUAL_BRUSH = 5000;\r\n var PRIORITY_VISUAL_ARIA = 6000;\r\n var PRIORITY_VISUAL_DECAL = 7000;\r\n var PRIORITY = {\r\n PROCESSOR: {\r\n FILTER: PRIORITY_PROCESSOR_FILTER,\r\n SERIES_FILTER: PRIORITY_PROCESSOR_SERIES_FILTER,\r\n STATISTIC: PRIORITY_PROCESSOR_STATISTIC\r\n },\r\n VISUAL: {\r\n LAYOUT: PRIORITY_VISUAL_LAYOUT,\r\n PROGRESSIVE_LAYOUT: PRIORITY_VISUAL_PROGRESSIVE_LAYOUT,\r\n GLOBAL: PRIORITY_VISUAL_GLOBAL,\r\n CHART: PRIORITY_VISUAL_CHART,\r\n POST_CHART_LAYOUT: PRIORITY_VISUAL_POST_CHART_LAYOUT,\r\n COMPONENT: PRIORITY_VISUAL_COMPONENT,\r\n BRUSH: PRIORITY_VISUAL_BRUSH,\r\n CHART_ITEM: PRIORITY_VISUAL_CHART_DATA_CUSTOM,\r\n ARIA: PRIORITY_VISUAL_ARIA,\r\n DECAL: PRIORITY_VISUAL_DECAL\r\n }\r\n };\r\n var IN_MAIN_PROCESS_KEY = '__flagInMainProcess';\r\n var OPTION_UPDATED_KEY = '__optionUpdated';\r\n var STATUS_NEEDS_UPDATE_KEY = '__needsUpdateStatus';\r\n var ACTION_REG = /^[a-zA-Z0-9_]+$/;\r\n var CONNECT_STATUS_KEY = '__connectUpdateStatus';\r\n var CONNECT_STATUS_PENDING = 0;\r\n var CONNECT_STATUS_UPDATING = 1;\r\n var CONNECT_STATUS_UPDATED = 2;\r\n function createRegisterEventWithLowercaseECharts(method) {\r\n return function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n if (this.isDisposed()) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n return toLowercaseNameAndCallEventful(this, method, args);\r\n };\r\n }\r\n function createRegisterEventWithLowercaseMessageCenter(method) {\r\n return function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n return toLowercaseNameAndCallEventful(this, method, args);\r\n };\r\n }\r\n function toLowercaseNameAndCallEventful(host, method, args) {\r\n args[0] = args[0] && args[0].toLowerCase();\r\n return Eventful.prototype[method].apply(host, args);\r\n }\r\n var MessageCenter = (function (_super) {\r\n __extends(MessageCenter, _super);\r\n function MessageCenter() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n return MessageCenter;\r\n }(Eventful));\r\n var messageCenterProto = MessageCenter.prototype;\r\n messageCenterProto.on = createRegisterEventWithLowercaseMessageCenter('on');\r\n messageCenterProto.off = createRegisterEventWithLowercaseMessageCenter('off');\r\n var prepare;\r\n var prepareView;\r\n var updateDirectly;\r\n var updateMethods;\r\n var doConvertPixel;\r\n var updateStreamModes;\r\n var doDispatchAction;\r\n var flushPendingActions;\r\n var triggerUpdatedEvent;\r\n var bindRenderedEvent;\r\n var bindMouseEvent;\r\n var clearColorPalette;\r\n var render;\r\n var renderComponents;\r\n var renderSeries;\r\n var performPostUpdateFuncs;\r\n var createExtensionAPI;\r\n var enableConnect;\r\n var setTransitionOpt;\r\n var markStatusToUpdate;\r\n var applyChangedStates;\r\n var ECharts = (function (_super) {\r\n __extends(ECharts, _super);\r\n function ECharts(dom, theme, opts) {\r\n var _this = _super.call(this, new ECEventProcessor()) || this;\r\n _this._chartsViews = [];\r\n _this._chartsMap = {};\r\n _this._componentsViews = [];\r\n _this._componentsMap = {};\r\n _this._pendingActions = [];\r\n opts = opts || {};\r\n if (typeof theme === 'string') {\r\n theme = themeStorage[theme];\r\n }\r\n _this._dom = dom;\r\n var root = (typeof window === 'undefined' ? global : window);\r\n var defaultRenderer = 'canvas';\r\n var defaultUseDirtyRect = false;\r\n if (__DEV__) {\r\n defaultRenderer = root.__ECHARTS__DEFAULT__RENDERER__ || defaultRenderer;\r\n var devUseDirtyRect = root.__ECHARTS__DEFAULT__USE_DIRTY_RECT__;\r\n defaultUseDirtyRect = devUseDirtyRect == null\r\n ? defaultUseDirtyRect\r\n : devUseDirtyRect;\r\n }\r\n var zr = _this._zr = init(dom, {\r\n renderer: opts.renderer || defaultRenderer,\r\n devicePixelRatio: opts.devicePixelRatio,\r\n width: opts.width,\r\n height: opts.height,\r\n useDirtyRect: opts.useDirtyRect == null ? defaultUseDirtyRect : opts.useDirtyRect\r\n });\r\n _this._throttledZrFlush = throttle(bind(zr.flush, zr), 17);\r\n theme = clone(theme);\r\n theme && globalBackwardCompat(theme, true);\r\n _this._theme = theme;\r\n _this._locale = createLocaleObject(opts.locale || SYSTEM_LANG);\r\n _this._coordSysMgr = new CoordinateSystemManager();\r\n var api = _this._api = createExtensionAPI(_this);\r\n function prioritySortFunc(a, b) {\r\n return a.__prio - b.__prio;\r\n }\r\n sort(visualFuncs, prioritySortFunc);\r\n sort(dataProcessorFuncs, prioritySortFunc);\r\n _this._scheduler = new Scheduler(_this, api, dataProcessorFuncs, visualFuncs);\r\n _this._messageCenter = new MessageCenter();\r\n _this._labelManager = new LabelManager();\r\n _this._initEvents();\r\n _this.resize = bind(_this.resize, _this);\r\n zr.animation.on('frame', _this._onframe, _this);\r\n bindRenderedEvent(zr, _this);\r\n bindMouseEvent(zr, _this);\r\n setAsPrimitive(_this);\r\n return _this;\r\n }\r\n ECharts.prototype._onframe = function () {\r\n if (this._disposed) {\r\n return;\r\n }\r\n applyChangedStates(this);\r\n var scheduler = this._scheduler;\r\n if (this[OPTION_UPDATED_KEY]) {\r\n var silent = this[OPTION_UPDATED_KEY].silent;\r\n this[IN_MAIN_PROCESS_KEY] = true;\r\n prepare(this);\r\n updateMethods.update.call(this);\r\n this._zr.flush();\r\n this[IN_MAIN_PROCESS_KEY] = false;\r\n this[OPTION_UPDATED_KEY] = false;\r\n flushPendingActions.call(this, silent);\r\n triggerUpdatedEvent.call(this, silent);\r\n }\r\n else if (scheduler.unfinished) {\r\n var remainTime = TEST_FRAME_REMAIN_TIME;\r\n var ecModel = this._model;\r\n var api = this._api;\r\n scheduler.unfinished = false;\r\n do {\r\n var startTime = +new Date();\r\n scheduler.performSeriesTasks(ecModel);\r\n scheduler.performDataProcessorTasks(ecModel);\r\n updateStreamModes(this, ecModel);\r\n scheduler.performVisualTasks(ecModel);\r\n renderSeries(this, this._model, api, 'remain');\r\n remainTime -= (+new Date() - startTime);\r\n } while (remainTime > 0 && scheduler.unfinished);\r\n if (!scheduler.unfinished) {\r\n this._zr.flush();\r\n }\r\n }\r\n };\r\n ECharts.prototype.getDom = function () {\r\n return this._dom;\r\n };\r\n ECharts.prototype.getId = function () {\r\n return this.id;\r\n };\r\n ECharts.prototype.getZr = function () {\r\n return this._zr;\r\n };\r\n ECharts.prototype.setOption = function (option, notMerge, lazyUpdate) {\r\n if (__DEV__) {\r\n assert$1(!this[IN_MAIN_PROCESS_KEY], '`setOption` should not be called during main process.');\r\n }\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n var silent;\r\n var replaceMerge;\r\n var transitionOpt;\r\n if (isObject$2(notMerge)) {\r\n lazyUpdate = notMerge.lazyUpdate;\r\n silent = notMerge.silent;\r\n replaceMerge = notMerge.replaceMerge;\r\n transitionOpt = notMerge.transition;\r\n notMerge = notMerge.notMerge;\r\n }\r\n this[IN_MAIN_PROCESS_KEY] = true;\r\n if (!this._model || notMerge) {\r\n var optionManager = new OptionManager(this._api);\r\n var theme = this._theme;\r\n var ecModel = this._model = new GlobalModel();\r\n ecModel.scheduler = this._scheduler;\r\n ecModel.init(null, null, null, theme, this._locale, optionManager);\r\n }\r\n this._model.setOption(option, { replaceMerge: replaceMerge }, optionPreprocessorFuncs);\r\n setTransitionOpt(this, transitionOpt);\r\n if (lazyUpdate) {\r\n this[OPTION_UPDATED_KEY] = { silent: silent };\r\n this[IN_MAIN_PROCESS_KEY] = false;\r\n this.getZr().wakeUp();\r\n }\r\n else {\r\n prepare(this);\r\n updateMethods.update.call(this);\r\n this._zr.flush();\r\n this[OPTION_UPDATED_KEY] = false;\r\n this[IN_MAIN_PROCESS_KEY] = false;\r\n flushPendingActions.call(this, silent);\r\n triggerUpdatedEvent.call(this, silent);\r\n }\r\n };\r\n ECharts.prototype.setTheme = function () {\r\n console.error('ECharts#setTheme() is DEPRECATED in ECharts 3.0');\r\n };\r\n ECharts.prototype.getModel = function () {\r\n return this._model;\r\n };\r\n ECharts.prototype.getOption = function () {\r\n return this._model && this._model.getOption();\r\n };\r\n ECharts.prototype.getWidth = function () {\r\n return this._zr.getWidth();\r\n };\r\n ECharts.prototype.getHeight = function () {\r\n return this._zr.getHeight();\r\n };\r\n ECharts.prototype.getDevicePixelRatio = function () {\r\n return this._zr.painter.dpr || window.devicePixelRatio || 1;\r\n };\r\n ECharts.prototype.getRenderedCanvas = function (opts) {\r\n if (!env.canvasSupported) {\r\n return;\r\n }\r\n opts = extend({}, opts || {});\r\n opts.pixelRatio = opts.pixelRatio || 1;\r\n opts.backgroundColor = opts.backgroundColor\r\n || this._model.get('backgroundColor');\r\n var zr = this._zr;\r\n return zr.painter.getRenderedCanvas(opts);\r\n };\r\n ECharts.prototype.getSvgDataURL = function () {\r\n if (!env.svgSupported) {\r\n return;\r\n }\r\n var zr = this._zr;\r\n var list = zr.storage.getDisplayList();\r\n each(list, function (el) {\r\n el.stopAnimation(null, true);\r\n });\r\n return zr.painter.toDataURL();\r\n };\r\n ECharts.prototype.getDataURL = function (opts) {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n opts = opts || {};\r\n var excludeComponents = opts.excludeComponents;\r\n var ecModel = this._model;\r\n var excludesComponentViews = [];\r\n var self = this;\r\n each$3(excludeComponents, function (componentType) {\r\n ecModel.eachComponent({\r\n mainType: componentType\r\n }, function (component) {\r\n var view = self._componentsMap[component.__viewId];\r\n if (!view.group.ignore) {\r\n excludesComponentViews.push(view);\r\n view.group.ignore = true;\r\n }\r\n });\r\n });\r\n var url = this._zr.painter.getType() === 'svg'\r\n ? this.getSvgDataURL()\r\n : this.getRenderedCanvas(opts).toDataURL('image/' + (opts && opts.type || 'png'));\r\n each$3(excludesComponentViews, function (view) {\r\n view.group.ignore = false;\r\n });\r\n return url;\r\n };\r\n ECharts.prototype.getConnectedDataURL = function (opts) {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n if (!env.canvasSupported) {\r\n return;\r\n }\r\n var isSvg = opts.type === 'svg';\r\n var groupId = this.group;\r\n var mathMin = Math.min;\r\n var mathMax = Math.max;\r\n var MAX_NUMBER = Infinity;\r\n if (connectedGroups[groupId]) {\r\n var left_1 = MAX_NUMBER;\r\n var top_1 = MAX_NUMBER;\r\n var right_1 = -MAX_NUMBER;\r\n var bottom_1 = -MAX_NUMBER;\r\n var canvasList_1 = [];\r\n var dpr_1 = (opts && opts.pixelRatio) || 1;\r\n each(instances$1, function (chart, id) {\r\n if (chart.group === groupId) {\r\n var canvas = isSvg\r\n ? chart.getZr().painter.getSvgDom().innerHTML\r\n : chart.getRenderedCanvas(clone(opts));\r\n var boundingRect = chart.getDom().getBoundingClientRect();\r\n left_1 = mathMin(boundingRect.left, left_1);\r\n top_1 = mathMin(boundingRect.top, top_1);\r\n right_1 = mathMax(boundingRect.right, right_1);\r\n bottom_1 = mathMax(boundingRect.bottom, bottom_1);\r\n canvasList_1.push({\r\n dom: canvas,\r\n left: boundingRect.left,\r\n top: boundingRect.top\r\n });\r\n }\r\n });\r\n left_1 *= dpr_1;\r\n top_1 *= dpr_1;\r\n right_1 *= dpr_1;\r\n bottom_1 *= dpr_1;\r\n var width = right_1 - left_1;\r\n var height = bottom_1 - top_1;\r\n var targetCanvas = createCanvas();\r\n var zr_1 = init(targetCanvas, {\r\n renderer: isSvg ? 'svg' : 'canvas'\r\n });\r\n zr_1.resize({\r\n width: width,\r\n height: height\r\n });\r\n if (isSvg) {\r\n var content_1 = '';\r\n each$3(canvasList_1, function (item) {\r\n var x = item.left - left_1;\r\n var y = item.top - top_1;\r\n content_1 += '<g transform=\"translate(' + x + ','\r\n + y + ')\">' + item.dom + '</g>';\r\n });\r\n zr_1.painter.getSvgRoot().innerHTML = content_1;\r\n if (opts.connectedBackgroundColor) {\r\n zr_1.painter.setBackgroundColor(opts.connectedBackgroundColor);\r\n }\r\n zr_1.refreshImmediately();\r\n return zr_1.painter.toDataURL();\r\n }\r\n else {\r\n if (opts.connectedBackgroundColor) {\r\n zr_1.add(new Rect({\r\n shape: {\r\n x: 0,\r\n y: 0,\r\n width: width,\r\n height: height\r\n },\r\n style: {\r\n fill: opts.connectedBackgroundColor\r\n }\r\n }));\r\n }\r\n each$3(canvasList_1, function (item) {\r\n var img = new ZRImage({\r\n style: {\r\n x: item.left * dpr_1 - left_1,\r\n y: item.top * dpr_1 - top_1,\r\n image: item.dom\r\n }\r\n });\r\n zr_1.add(img);\r\n });\r\n zr_1.refreshImmediately();\r\n return targetCanvas.toDataURL('image/' + (opts && opts.type || 'png'));\r\n }\r\n }\r\n else {\r\n return this.getDataURL(opts);\r\n }\r\n };\r\n ECharts.prototype.convertToPixel = function (finder, value) {\r\n return doConvertPixel(this, 'convertToPixel', finder, value);\r\n };\r\n ECharts.prototype.convertFromPixel = function (finder, value) {\r\n return doConvertPixel(this, 'convertFromPixel', finder, value);\r\n };\r\n ECharts.prototype.containPixel = function (finder, value) {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n var ecModel = this._model;\r\n var result;\r\n var findResult = parseFinder(ecModel, finder);\r\n each(findResult, function (models, key) {\r\n key.indexOf('Models') >= 0 && each(models, function (model) {\r\n var coordSys = model.coordinateSystem;\r\n if (coordSys && coordSys.containPoint) {\r\n result = result || !!coordSys.containPoint(value);\r\n }\r\n else if (key === 'seriesModels') {\r\n var view = this._chartsMap[model.__viewId];\r\n if (view && view.containPoint) {\r\n result = result || view.containPoint(value, model);\r\n }\r\n else {\r\n if (__DEV__) {\r\n console.warn(key + ': ' + (view\r\n ? 'The found component do not support containPoint.'\r\n : 'No view mapping to the found component.'));\r\n }\r\n }\r\n }\r\n else {\r\n if (__DEV__) {\r\n console.warn(key + ': containPoint is not supported');\r\n }\r\n }\r\n }, this);\r\n }, this);\r\n return !!result;\r\n };\r\n ECharts.prototype.getVisual = function (finder, visualType) {\r\n var ecModel = this._model;\r\n var parsedFinder = parseFinder(ecModel, finder, {\r\n defaultMainType: 'series'\r\n });\r\n var seriesModel = parsedFinder.seriesModel;\r\n if (__DEV__) {\r\n if (!seriesModel) {\r\n console.warn('There is no specified seires model');\r\n }\r\n }\r\n var data = seriesModel.getData();\r\n var dataIndexInside = parsedFinder.hasOwnProperty('dataIndexInside')\r\n ? parsedFinder.dataIndexInside\r\n : parsedFinder.hasOwnProperty('dataIndex')\r\n ? data.indexOfRawIndex(parsedFinder.dataIndex)\r\n : null;\r\n return dataIndexInside != null\r\n ? getItemVisualFromData(data, dataIndexInside, visualType)\r\n : getVisualFromData(data, visualType);\r\n };\r\n ECharts.prototype.getViewOfComponentModel = function (componentModel) {\r\n return this._componentsMap[componentModel.__viewId];\r\n };\r\n ECharts.prototype.getViewOfSeriesModel = function (seriesModel) {\r\n return this._chartsMap[seriesModel.__viewId];\r\n };\r\n ECharts.prototype._initEvents = function () {\r\n var _this = this;\r\n each$3(MOUSE_EVENT_NAMES, function (eveName) {\r\n var handler = function (e) {\r\n var ecModel = _this.getModel();\r\n var el = e.target;\r\n var params;\r\n var isGlobalOut = eveName === 'globalout';\r\n if (isGlobalOut) {\r\n params = {};\r\n }\r\n else {\r\n el && findEventDispatcher(el, function (parent) {\r\n var ecData = getECData(parent);\r\n if (ecData && ecData.dataIndex != null) {\r\n var dataModel = ecData.dataModel || ecModel.getSeriesByIndex(ecData.seriesIndex);\r\n params = (dataModel && dataModel.getDataParams(ecData.dataIndex, ecData.dataType) || {});\r\n return true;\r\n }\r\n else if (ecData.eventData) {\r\n params = extend({}, ecData.eventData);\r\n return true;\r\n }\r\n }, true);\r\n }\r\n if (params) {\r\n var componentType = params.componentType;\r\n var componentIndex = params.componentIndex;\r\n if (componentType === 'markLine'\r\n || componentType === 'markPoint'\r\n || componentType === 'markArea') {\r\n componentType = 'series';\r\n componentIndex = params.seriesIndex;\r\n }\r\n var model = componentType && componentIndex != null\r\n && ecModel.getComponent(componentType, componentIndex);\r\n var view = model && _this[model.mainType === 'series' ? '_chartsMap' : '_componentsMap'][model.__viewId];\r\n if (__DEV__) {\r\n if (!isGlobalOut && !(model && view)) {\r\n console.warn('model or view can not be found by params');\r\n }\r\n }\r\n params.event = e;\r\n params.type = eveName;\r\n _this._$eventProcessor.eventInfo = {\r\n targetEl: el,\r\n packedEvent: params,\r\n model: model,\r\n view: view\r\n };\r\n _this.trigger(eveName, params);\r\n }\r\n };\r\n handler.zrEventfulCallAtLast = true;\r\n _this._zr.on(eveName, handler, _this);\r\n });\r\n each$3(eventActionMap, function (actionType, eventType) {\r\n _this._messageCenter.on(eventType, function (event) {\r\n this.trigger(eventType, event);\r\n }, _this);\r\n });\r\n each$3(['selectchanged'], function (eventType) {\r\n _this._messageCenter.on(eventType, function (event) {\r\n this.trigger(eventType, event);\r\n }, _this);\r\n });\r\n handleLegacySelectEvents(this._messageCenter, this, this._model);\r\n };\r\n ECharts.prototype.isDisposed = function () {\r\n return this._disposed;\r\n };\r\n ECharts.prototype.clear = function () {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n this.setOption({ series: [] }, true);\r\n };\r\n ECharts.prototype.dispose = function () {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n this._disposed = true;\r\n setAttribute(this.getDom(), DOM_ATTRIBUTE_KEY, '');\r\n var api = this._api;\r\n var ecModel = this._model;\r\n each$3(this._componentsViews, function (component) {\r\n component.dispose(ecModel, api);\r\n });\r\n each$3(this._chartsViews, function (chart) {\r\n chart.dispose(ecModel, api);\r\n });\r\n this._zr.dispose();\r\n delete instances$1[this.id];\r\n };\r\n ECharts.prototype.resize = function (opts) {\r\n if (__DEV__) {\r\n assert$1(!this[IN_MAIN_PROCESS_KEY], '`resize` should not be called during main process.');\r\n }\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n this._zr.resize(opts);\r\n var ecModel = this._model;\r\n this._loadingFX && this._loadingFX.resize();\r\n if (!ecModel) {\r\n return;\r\n }\r\n var optionChanged = ecModel.resetOption('media');\r\n var silent = opts && opts.silent;\r\n this[IN_MAIN_PROCESS_KEY] = true;\r\n optionChanged && prepare(this);\r\n updateMethods.update.call(this, {\r\n type: 'resize',\r\n animation: {\r\n duration: 0\r\n }\r\n });\r\n this[IN_MAIN_PROCESS_KEY] = false;\r\n flushPendingActions.call(this, silent);\r\n triggerUpdatedEvent.call(this, silent);\r\n };\r\n ECharts.prototype.showLoading = function (name, cfg) {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n if (isObject$2(name)) {\r\n cfg = name;\r\n name = '';\r\n }\r\n name = name || 'default';\r\n this.hideLoading();\r\n if (!loadingEffects[name]) {\r\n if (__DEV__) {\r\n console.warn('Loading effects ' + name + ' not exists.');\r\n }\r\n return;\r\n }\r\n var el = loadingEffects[name](this._api, cfg);\r\n var zr = this._zr;\r\n this._loadingFX = el;\r\n zr.add(el);\r\n };\r\n ECharts.prototype.hideLoading = function () {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n this._loadingFX && this._zr.remove(this._loadingFX);\r\n this._loadingFX = null;\r\n };\r\n ECharts.prototype.makeActionFromEvent = function (eventObj) {\r\n var payload = extend({}, eventObj);\r\n payload.type = eventActionMap[eventObj.type];\r\n return payload;\r\n };\r\n ECharts.prototype.dispatchAction = function (payload, opt) {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n if (!isObject$2(opt)) {\r\n opt = { silent: !!opt };\r\n }\r\n if (!actions[payload.type]) {\r\n return;\r\n }\r\n if (!this._model) {\r\n return;\r\n }\r\n if (this[IN_MAIN_PROCESS_KEY]) {\r\n this._pendingActions.push(payload);\r\n return;\r\n }\r\n var silent = opt.silent;\r\n doDispatchAction.call(this, payload, silent);\r\n var flush = opt.flush;\r\n if (flush) {\r\n this._zr.flush();\r\n }\r\n else if (flush !== false && env.browser.weChat) {\r\n this._throttledZrFlush();\r\n }\r\n flushPendingActions.call(this, silent);\r\n triggerUpdatedEvent.call(this, silent);\r\n };\r\n ECharts.prototype.updateLabelLayout = function () {\r\n var labelManager = this._labelManager;\r\n labelManager.updateLayoutConfig(this._api);\r\n labelManager.layout(this._api);\r\n labelManager.processLabelsOverall();\r\n };\r\n ECharts.prototype.appendData = function (params) {\r\n if (this._disposed) {\r\n disposedWarning(this.id);\r\n return;\r\n }\r\n var seriesIndex = params.seriesIndex;\r\n var ecModel = this.getModel();\r\n var seriesModel = ecModel.getSeriesByIndex(seriesIndex);\r\n if (__DEV__) {\r\n assert$1(params.data && seriesModel);\r\n }\r\n seriesModel.appendData(params);\r\n this._scheduler.unfinished = true;\r\n this.getZr().wakeUp();\r\n };\r\n ECharts.internalField = (function () {\r\n prepare = function (ecIns) {\r\n var scheduler = ecIns._scheduler;\r\n scheduler.restorePipelines(ecIns._model);\r\n scheduler.prepareStageTasks();\r\n prepareView(ecIns, true);\r\n prepareView(ecIns, false);\r\n scheduler.plan();\r\n };\r\n prepareView = function (ecIns, isComponent) {\r\n var ecModel = ecIns._model;\r\n var scheduler = ecIns._scheduler;\r\n var viewList = isComponent ? ecIns._componentsViews : ecIns._chartsViews;\r\n var viewMap = isComponent ? ecIns._componentsMap : ecIns._chartsMap;\r\n var zr = ecIns._zr;\r\n var api = ecIns._api;\r\n for (var i = 0; i < viewList.length; i++) {\r\n viewList[i].__alive = false;\r\n }\r\n isComponent\r\n ? ecModel.eachComponent(function (componentType, model) {\r\n componentType !== 'series' && doPrepare(model);\r\n })\r\n : ecModel.eachSeries(doPrepare);\r\n function doPrepare(model) {\r\n var requireNewView = model.__requireNewView;\r\n model.__requireNewView = false;\r\n var viewId = '_ec_' + model.id + '_' + model.type;\r\n var view = !requireNewView && viewMap[viewId];\r\n if (!view) {\r\n var classType = parseClassType(model.type);\r\n var Clazz = isComponent\r\n ? ComponentView.getClass(classType.main, classType.sub)\r\n : (ChartView.getClass(classType.sub));\r\n if (__DEV__) {\r\n assert$1(Clazz, classType.sub + ' does not exist.');\r\n }\r\n view = new Clazz();\r\n view.init(ecModel, api);\r\n viewMap[viewId] = view;\r\n viewList.push(view);\r\n zr.add(view.group);\r\n }\r\n model.__viewId = view.__id = viewId;\r\n view.__alive = true;\r\n view.__model = model;\r\n view.group.__ecComponentInfo = {\r\n mainType: model.mainType,\r\n index: model.componentIndex\r\n };\r\n !isComponent && scheduler.prepareView(view, model, ecModel, api);\r\n }\r\n for (var i = 0; i < viewList.length;) {\r\n var view = viewList[i];\r\n if (!view.__alive) {\r\n !isComponent && view.renderTask.dispose();\r\n zr.remove(view.group);\r\n view.dispose(ecModel, api);\r\n viewList.splice(i, 1);\r\n if (viewMap[view.__id] === view) {\r\n delete viewMap[view.__id];\r\n }\r\n view.__id = view.group.__ecComponentInfo = null;\r\n }\r\n else {\r\n i++;\r\n }\r\n }\r\n };\r\n updateDirectly = function (ecIns, method, payload, mainType, subType) {\r\n var ecModel = ecIns._model;\r\n ecModel.setUpdatePayload(payload);\r\n if (!mainType) {\r\n each$3([].concat(ecIns._componentsViews).concat(ecIns._chartsViews), callView);\r\n return;\r\n }\r\n var query = {};\r\n query[mainType + 'Id'] = payload[mainType + 'Id'];\r\n query[mainType + 'Index'] = payload[mainType + 'Index'];\r\n query[mainType + 'Name'] = payload[mainType + 'Name'];\r\n var condition = { mainType: mainType, query: query };\r\n subType && (condition.subType = subType);\r\n var excludeSeriesId = payload.excludeSeriesId;\r\n var excludeSeriesIdMap;\r\n if (excludeSeriesId != null) {\r\n excludeSeriesIdMap = createHashMap();\r\n each$3(normalizeToArray(excludeSeriesId), function (id) {\r\n var modelId = convertOptionIdName(id, null);\r\n if (modelId != null) {\r\n excludeSeriesIdMap.set(modelId, true);\r\n }\r\n });\r\n }\r\n ecModel && ecModel.eachComponent(condition, function (model) {\r\n if (!excludeSeriesIdMap || excludeSeriesIdMap.get(model.id) == null) {\r\n if (isHighDownPayload(payload) && !payload.notBlur) {\r\n if (model instanceof SeriesModel) {\r\n toggleSeriesBlurStateFromPayload(model, payload, ecIns._api);\r\n }\r\n }\r\n else if (isSelectChangePayload(payload)) {\r\n if (model instanceof SeriesModel) {\r\n toggleSelectionFromPayload(model, payload, ecIns._api);\r\n updateSeriesElementSelection(model);\r\n markStatusToUpdate(ecIns);\r\n }\r\n }\r\n callView(ecIns[mainType === 'series' ? '_chartsMap' : '_componentsMap'][model.__viewId]);\r\n }\r\n }, ecIns);\r\n function callView(view) {\r\n view && view.__alive && view[method] && view[method](view.__model, ecModel, ecIns._api, payload);\r\n }\r\n };\r\n updateMethods = {\r\n prepareAndUpdate: function (payload) {\r\n prepare(this);\r\n updateMethods.update.call(this, payload);\r\n },\r\n update: function (payload) {\r\n var ecModel = this._model;\r\n var api = this._api;\r\n var zr = this._zr;\r\n var coordSysMgr = this._coordSysMgr;\r\n var scheduler = this._scheduler;\r\n if (!ecModel) {\r\n return;\r\n }\r\n ecModel.setUpdatePayload(payload);\r\n scheduler.restoreData(ecModel, payload);\r\n scheduler.performSeriesTasks(ecModel);\r\n coordSysMgr.create(ecModel, api);\r\n scheduler.performDataProcessorTasks(ecModel, payload);\r\n updateStreamModes(this, ecModel);\r\n coordSysMgr.update(ecModel, api);\r\n clearColorPalette(ecModel);\r\n scheduler.performVisualTasks(ecModel, payload);\r\n render(this, ecModel, api, payload);\r\n var backgroundColor = ecModel.get('backgroundColor') || 'transparent';\r\n var darkMode = ecModel.get('darkMode');\r\n if (!env.canvasSupported) {\r\n var colorArr = parse(backgroundColor);\r\n backgroundColor = stringify(colorArr, 'rgb');\r\n if (colorArr[3] === 0) {\r\n backgroundColor = 'transparent';\r\n }\r\n }\r\n else {\r\n zr.setBackgroundColor(backgroundColor);\r\n if (darkMode != null && darkMode !== 'auto') {\r\n zr.setDarkMode(darkMode);\r\n }\r\n }\r\n performPostUpdateFuncs(ecModel, api);\r\n },\r\n updateTransform: function (payload) {\r\n var _this = this;\r\n var ecModel = this._model;\r\n var api = this._api;\r\n if (!ecModel) {\r\n return;\r\n }\r\n ecModel.setUpdatePayload(payload);\r\n var componentDirtyList = [];\r\n ecModel.eachComponent(function (componentType, componentModel) {\r\n if (componentType === 'series') {\r\n return;\r\n }\r\n var componentView = _this.getViewOfComponentModel(componentModel);\r\n if (componentView && componentView.__alive) {\r\n if (componentView.updateTransform) {\r\n var result = componentView.updateTransform(componentModel, ecModel, api, payload);\r\n result && result.update && componentDirtyList.push(componentView);\r\n }\r\n else {\r\n componentDirtyList.push(componentView);\r\n }\r\n }\r\n });\r\n var seriesDirtyMap = createHashMap();\r\n ecModel.eachSeries(function (seriesModel) {\r\n var chartView = _this._chartsMap[seriesModel.__viewId];\r\n if (chartView.updateTransform) {\r\n var result = chartView.updateTransform(seriesModel, ecModel, api, payload);\r\n result && result.update && seriesDirtyMap.set(seriesModel.uid, 1);\r\n }\r\n else {\r\n seriesDirtyMap.set(seriesModel.uid, 1);\r\n }\r\n });\r\n clearColorPalette(ecModel);\r\n this._scheduler.performVisualTasks(ecModel, payload, { setDirty: true, dirtyMap: seriesDirtyMap });\r\n renderSeries(this, ecModel, api, payload, seriesDirtyMap);\r\n performPostUpdateFuncs(ecModel, this._api);\r\n },\r\n updateView: function (payload) {\r\n var ecModel = this._model;\r\n if (!ecModel) {\r\n return;\r\n }\r\n ecModel.setUpdatePayload(payload);\r\n ChartView.markUpdateMethod(payload, 'updateView');\r\n clearColorPalette(ecModel);\r\n this._scheduler.performVisualTasks(ecModel, payload, { setDirty: true });\r\n render(this, this._model, this._api, payload);\r\n performPostUpdateFuncs(ecModel, this._api);\r\n },\r\n updateVisual: function (payload) {\r\n var _this = this;\r\n var ecModel = this._model;\r\n if (!ecModel) {\r\n return;\r\n }\r\n ecModel.setUpdatePayload(payload);\r\n ecModel.eachSeries(function (seriesModel) {\r\n seriesModel.getData().clearAllVisual();\r\n });\r\n ChartView.markUpdateMethod(payload, 'updateVisual');\r\n clearColorPalette(ecModel);\r\n this._scheduler.performVisualTasks(ecModel, payload, { visualType: 'visual', setDirty: true });\r\n ecModel.eachComponent(function (componentType, componentModel) {\r\n if (componentType !== 'series') {\r\n var componentView = _this.getViewOfComponentModel(componentModel);\r\n componentView && componentView.__alive\r\n && componentView.updateVisual(componentModel, ecModel, _this._api, payload);\r\n }\r\n });\r\n ecModel.eachSeries(function (seriesModel) {\r\n var chartView = _this._chartsMap[seriesModel.__viewId];\r\n chartView.updateVisual(seriesModel, ecModel, _this._api, payload);\r\n });\r\n performPostUpdateFuncs(ecModel, this._api);\r\n },\r\n updateLayout: function (payload) {\r\n updateMethods.update.call(this, payload);\r\n }\r\n };\r\n doConvertPixel = function (ecIns, methodName, finder, value) {\r\n if (ecIns._disposed) {\r\n disposedWarning(ecIns.id);\r\n return;\r\n }\r\n var ecModel = ecIns._model;\r\n var coordSysList = ecIns._coordSysMgr.getCoordinateSystems();\r\n var result;\r\n var parsedFinder = parseFinder(ecModel, finder);\r\n for (var i = 0; i < coordSysList.length; i++) {\r\n var coordSys = coordSysList[i];\r\n if (coordSys[methodName]\r\n && (result = coordSys[methodName](ecModel, parsedFinder, value)) != null) {\r\n return result;\r\n }\r\n }\r\n if (__DEV__) {\r\n console.warn('No coordinate system that supports ' + methodName + ' found by the given finder.');\r\n }\r\n };\r\n updateStreamModes = function (ecIns, ecModel) {\r\n var chartsMap = ecIns._chartsMap;\r\n var scheduler = ecIns._scheduler;\r\n ecModel.eachSeries(function (seriesModel) {\r\n scheduler.updateStreamModes(seriesModel, chartsMap[seriesModel.__viewId]);\r\n });\r\n };\r\n doDispatchAction = function (payload, silent) {\r\n var _this = this;\r\n var ecModel = this.getModel();\r\n var payloadType = payload.type;\r\n var escapeConnect = payload.escapeConnect;\r\n var actionWrap = actions[payloadType];\r\n var actionInfo = actionWrap.actionInfo;\r\n var cptTypeTmp = (actionInfo.update || 'update').split(':');\r\n var updateMethod = cptTypeTmp.pop();\r\n var cptType = cptTypeTmp[0] != null && parseClassType(cptTypeTmp[0]);\r\n this[IN_MAIN_PROCESS_KEY] = true;\r\n var payloads = [payload];\r\n var batched = false;\r\n if (payload.batch) {\r\n batched = true;\r\n payloads = map(payload.batch, function (item) {\r\n item = defaults(extend({}, item), payload);\r\n item.batch = null;\r\n return item;\r\n });\r\n }\r\n var eventObjBatch = [];\r\n var eventObj;\r\n var isSelectChange = isSelectChangePayload(payload);\r\n var isStatusChange = isHighDownPayload(payload) || isSelectChange;\r\n each$3(payloads, function (batchItem) {\r\n eventObj = actionWrap.action(batchItem, _this._model, _this._api);\r\n eventObj = eventObj || extend({}, batchItem);\r\n eventObj.type = actionInfo.event || eventObj.type;\r\n eventObjBatch.push(eventObj);\r\n if (isStatusChange) {\r\n updateDirectly(_this, updateMethod, batchItem, 'series');\r\n markStatusToUpdate(_this);\r\n }\r\n else if (cptType) {\r\n updateDirectly(_this, updateMethod, batchItem, cptType.main, cptType.sub);\r\n }\r\n });\r\n if (updateMethod !== 'none' && !isStatusChange && !cptType) {\r\n if (this[OPTION_UPDATED_KEY]) {\r\n prepare(this);\r\n updateMethods.update.call(this, payload);\r\n this[OPTION_UPDATED_KEY] = false;\r\n }\r\n else {\r\n updateMethods[updateMethod].call(this, payload);\r\n }\r\n }\r\n if (batched) {\r\n eventObj = {\r\n type: actionInfo.event || payloadType,\r\n escapeConnect: escapeConnect,\r\n batch: eventObjBatch\r\n };\r\n }\r\n else {\r\n eventObj = eventObjBatch[0];\r\n }\r\n this[IN_MAIN_PROCESS_KEY] = false;\r\n if (!silent) {\r\n var messageCenter = this._messageCenter;\r\n messageCenter.trigger(eventObj.type, eventObj);\r\n if (isSelectChange) {\r\n var newObj = {\r\n type: 'selectchanged',\r\n escapeConnect: escapeConnect,\r\n selected: getAllSelectedIndices(ecModel),\r\n isFromClick: payload.isFromClick || false,\r\n fromAction: payload.type,\r\n fromActionPayload: payload\r\n };\r\n messageCenter.trigger(newObj.type, newObj);\r\n }\r\n }\r\n };\r\n flushPendingActions = function (silent) {\r\n var pendingActions = this._pendingActions;\r\n while (pendingActions.length) {\r\n var payload = pendingActions.shift();\r\n doDispatchAction.call(this, payload, silent);\r\n }\r\n };\r\n triggerUpdatedEvent = function (silent) {\r\n !silent && this.trigger('updated');\r\n };\r\n bindRenderedEvent = function (zr, ecIns) {\r\n zr.on('rendered', function (params) {\r\n ecIns.trigger('rendered', params);\r\n if (zr.animation.isFinished()\r\n && !ecIns[OPTION_UPDATED_KEY]\r\n && !ecIns._scheduler.unfinished\r\n && !ecIns._pendingActions.length) {\r\n ecIns.trigger('finished');\r\n }\r\n });\r\n };\r\n bindMouseEvent = function (zr, ecIns) {\r\n zr.on('mouseover', function (e) {\r\n var el = e.target;\r\n var dispatcher = findEventDispatcher(el, isHighDownDispatcher);\r\n if (dispatcher) {\r\n var ecData = getECData(dispatcher);\r\n toggleSeriesBlurState(ecData.seriesIndex, ecData.focus, ecData.blurScope, ecIns._api, true);\r\n enterEmphasisWhenMouseOver(dispatcher, e);\r\n markStatusToUpdate(ecIns);\r\n }\r\n }).on('mouseout', function (e) {\r\n var el = e.target;\r\n var dispatcher = findEventDispatcher(el, isHighDownDispatcher);\r\n if (dispatcher) {\r\n var ecData = getECData(dispatcher);\r\n toggleSeriesBlurState(ecData.seriesIndex, ecData.focus, ecData.blurScope, ecIns._api, false);\r\n leaveEmphasisWhenMouseOut(dispatcher, e);\r\n markStatusToUpdate(ecIns);\r\n }\r\n }).on('click', function (e) {\r\n var el = e.target;\r\n var dispatcher = findEventDispatcher(el, function (target) { return getECData(target).dataIndex != null; }, true);\r\n if (dispatcher) {\r\n var actionType = dispatcher.selected ? 'unselect' : 'select';\r\n var ecData = getECData(dispatcher);\r\n ecIns._api.dispatchAction({\r\n type: actionType,\r\n dataType: ecData.dataType,\r\n dataIndexInside: ecData.dataIndex,\r\n seriesIndex: ecData.seriesIndex,\r\n isFromClick: true\r\n });\r\n }\r\n });\r\n };\r\n clearColorPalette = function (ecModel) {\r\n ecModel.clearColorPalette();\r\n ecModel.eachSeries(function (seriesModel) {\r\n seriesModel.clearColorPalette();\r\n });\r\n };\r\n render = function (ecIns, ecModel, api, payload) {\r\n renderComponents(ecIns, ecModel, api, payload);\r\n each$3(ecIns._chartsViews, function (chart) {\r\n chart.__alive = false;\r\n });\r\n renderSeries(ecIns, ecModel, api, payload);\r\n each$3(ecIns._chartsViews, function (chart) {\r\n if (!chart.__alive) {\r\n chart.remove(ecModel, api);\r\n }\r\n });\r\n };\r\n renderComponents = function (ecIns, ecModel, api, payload, dirtyList) {\r\n each$3(dirtyList || ecIns._componentsViews, function (componentView) {\r\n var componentModel = componentView.__model;\r\n clearStates(componentModel, componentView);\r\n componentView.render(componentModel, ecModel, api, payload);\r\n updateZ(componentModel, componentView);\r\n updateStates(componentModel, componentView);\r\n });\r\n };\r\n renderSeries = function (ecIns, ecModel, api, payload, dirtyMap) {\r\n var scheduler = ecIns._scheduler;\r\n var labelManager = ecIns._labelManager;\r\n labelManager.clearLabels();\r\n var unfinished = false;\r\n ecModel.eachSeries(function (seriesModel) {\r\n var chartView = ecIns._chartsMap[seriesModel.__viewId];\r\n chartView.__alive = true;\r\n var renderTask = chartView.renderTask;\r\n scheduler.updatePayload(renderTask, payload);\r\n clearStates(seriesModel, chartView);\r\n if (dirtyMap && dirtyMap.get(seriesModel.uid)) {\r\n renderTask.dirty();\r\n }\r\n if (renderTask.perform(scheduler.getPerformArgs(renderTask))) {\r\n unfinished = true;\r\n }\r\n seriesModel.__transientTransitionOpt = null;\r\n chartView.group.silent = !!seriesModel.get('silent');\r\n updateBlend(seriesModel, chartView);\r\n updateSeriesElementSelection(seriesModel);\r\n labelManager.addLabelsOfSeries(chartView);\r\n });\r\n scheduler.unfinished = unfinished || scheduler.unfinished;\r\n labelManager.updateLayoutConfig(api);\r\n labelManager.layout(api);\r\n labelManager.processLabelsOverall();\r\n ecModel.eachSeries(function (seriesModel) {\r\n var chartView = ecIns._chartsMap[seriesModel.__viewId];\r\n updateZ(seriesModel, chartView);\r\n updateStates(seriesModel, chartView);\r\n });\r\n updateHoverLayerStatus(ecIns, ecModel);\r\n };\r\n performPostUpdateFuncs = function (ecModel, api) {\r\n each$3(postUpdateFuncs, function (func) {\r\n func(ecModel, api);\r\n });\r\n };\r\n markStatusToUpdate = function (ecIns) {\r\n ecIns[STATUS_NEEDS_UPDATE_KEY] = true;\r\n ecIns.getZr().wakeUp();\r\n };\r\n applyChangedStates = function (ecIns) {\r\n if (!ecIns[STATUS_NEEDS_UPDATE_KEY]) {\r\n return;\r\n }\r\n ecIns.getZr().storage.traverse(function (el) {\r\n if (isElementRemoved(el)) {\r\n return;\r\n }\r\n applyElementStates(el);\r\n });\r\n ecIns[STATUS_NEEDS_UPDATE_KEY] = false;\r\n };\r\n function applyElementStates(el) {\r\n var newStates = [];\r\n var oldStates = el.currentStates;\r\n for (var i = 0; i < oldStates.length; i++) {\r\n var stateName = oldStates[i];\r\n if (!(stateName === 'emphasis' || stateName === 'blur' || stateName === 'select')) {\r\n newStates.push(stateName);\r\n }\r\n }\r\n if (el.selected && el.states.select) {\r\n newStates.push('select');\r\n }\r\n if (el.hoverState === HOVER_STATE_EMPHASIS && el.states.emphasis) {\r\n newStates.push('emphasis');\r\n }\r\n else if (el.hoverState === HOVER_STATE_BLUR && el.states.blur) {\r\n newStates.push('blur');\r\n }\r\n el.useStates(newStates);\r\n }\r\n function updateHoverLayerStatus(ecIns, ecModel) {\r\n var zr = ecIns._zr;\r\n var storage = zr.storage;\r\n var elCount = 0;\r\n storage.traverse(function (el) {\r\n if (!el.isGroup) {\r\n elCount++;\r\n }\r\n });\r\n if (elCount > ecModel.get('hoverLayerThreshold') && !env.node && !env.worker) {\r\n ecModel.eachSeries(function (seriesModel) {\r\n if (seriesModel.preventUsingHoverLayer) {\r\n return;\r\n }\r\n var chartView = ecIns._chartsMap[seriesModel.__viewId];\r\n if (chartView.__alive) {\r\n chartView.group.traverse(function (el) {\r\n if (el.states.emphasis) {\r\n el.states.emphasis.hoverLayer = true;\r\n }\r\n });\r\n }\r\n });\r\n }\r\n }\r\n function updateBlend(seriesModel, chartView) {\r\n var blendMode = seriesModel.get('blendMode') || null;\r\n if (__DEV__) {\r\n if (!env.canvasSupported && blendMode && blendMode !== 'source-over') {\r\n console.warn('Only canvas support blendMode');\r\n }\r\n }\r\n chartView.group.traverse(function (el) {\r\n if (!el.isGroup) {\r\n el.style.blend = blendMode;\r\n }\r\n if (el.eachPendingDisplayable) {\r\n el.eachPendingDisplayable(function (displayable) {\r\n displayable.style.blend = blendMode;\r\n });\r\n }\r\n });\r\n }\r\n function updateZ(model, view) {\r\n if (model.preventAutoZ) {\r\n return;\r\n }\r\n var z = model.get('z');\r\n var zlevel = model.get('zlevel');\r\n view.group.traverse(function (el) {\r\n if (!el.isGroup) {\r\n z != null && (el.z = z);\r\n zlevel != null && (el.zlevel = zlevel);\r\n var label = el.getTextContent();\r\n var labelLine = el.getTextGuideLine();\r\n if (label) {\r\n label.z = el.z;\r\n label.zlevel = el.zlevel;\r\n label.z2 = el.z2 + 2;\r\n }\r\n if (labelLine) {\r\n var showAbove = el.textGuideLineConfig && el.textGuideLineConfig.showAbove;\r\n labelLine.z = el.z;\r\n labelLine.zlevel = el.zlevel;\r\n labelLine.z2 = el.z2 + (showAbove ? 1 : -1);\r\n }\r\n }\r\n });\r\n }\r\n function clearStates(model, view) {\r\n view.group.traverse(function (el) {\r\n if (isElementRemoved(el)) {\r\n return;\r\n }\r\n var textContent = el.getTextContent();\r\n var textGuide = el.getTextGuideLine();\r\n if (el.stateTransition) {\r\n el.stateTransition = null;\r\n }\r\n if (textContent && textContent.stateTransition) {\r\n textContent.stateTransition = null;\r\n }\r\n if (textGuide && textGuide.stateTransition) {\r\n textGuide.stateTransition = null;\r\n }\r\n if (el.hasState()) {\r\n el.prevStates = el.currentStates;\r\n el.clearStates();\r\n }\r\n else if (el.prevStates) {\r\n el.prevStates = null;\r\n }\r\n });\r\n }\r\n function updateStates(model, view) {\r\n var stateAnimationModel = model.getModel('stateAnimation');\r\n var enableAnimation = model.isAnimationEnabled();\r\n var duration = stateAnimationModel.get('duration');\r\n var stateTransition = duration > 0 ? {\r\n duration: duration,\r\n delay: stateAnimationModel.get('delay'),\r\n easing: stateAnimationModel.get('easing')\r\n } : null;\r\n view.group.traverse(function (el) {\r\n if (el.states && el.states.emphasis) {\r\n if (isElementRemoved(el)) {\r\n return;\r\n }\r\n if (el instanceof Path) {\r\n savePathStates(el);\r\n }\r\n if (el.__dirty) {\r\n var prevStates = el.prevStates;\r\n if (prevStates) {\r\n el.useStates(prevStates);\r\n }\r\n }\r\n if (enableAnimation) {\r\n el.stateTransition = stateTransition;\r\n var textContent = el.getTextContent();\r\n var textGuide = el.getTextGuideLine();\r\n if (textContent) {\r\n textContent.stateTransition = stateTransition;\r\n }\r\n if (textGuide) {\r\n textGuide.stateTransition = stateTransition;\r\n }\r\n }\r\n if (el.__dirty) {\r\n applyElementStates(el);\r\n }\r\n }\r\n });\r\n }\r\n createExtensionAPI = function (ecIns) {\r\n return new ((function (_super) {\r\n __extends(class_1, _super);\r\n function class_1() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n class_1.prototype.getCoordinateSystems = function () {\r\n return ecIns._coordSysMgr.getCoordinateSystems();\r\n };\r\n class_1.prototype.getComponentByElement = function (el) {\r\n while (el) {\r\n var modelInfo = el.__ecComponentInfo;\r\n if (modelInfo != null) {\r\n return ecIns._model.getComponent(modelInfo.mainType, modelInfo.index);\r\n }\r\n el = el.parent;\r\n }\r\n };\r\n class_1.prototype.enterEmphasis = function (el, highlightDigit) {\r\n enterEmphasis(el, highlightDigit);\r\n markStatusToUpdate(ecIns);\r\n };\r\n class_1.prototype.leaveEmphasis = function (el, highlightDigit) {\r\n leaveEmphasis(el, highlightDigit);\r\n markStatusToUpdate(ecIns);\r\n };\r\n class_1.prototype.enterBlur = function (el) {\r\n enterBlur(el);\r\n markStatusToUpdate(ecIns);\r\n };\r\n class_1.prototype.leaveBlur = function (el) {\r\n leaveBlur(el);\r\n markStatusToUpdate(ecIns);\r\n };\r\n class_1.prototype.enterSelect = function (el) {\r\n enterSelect(el);\r\n markStatusToUpdate(ecIns);\r\n };\r\n class_1.prototype.leaveSelect = function (el) {\r\n leaveSelect(el);\r\n markStatusToUpdate(ecIns);\r\n };\r\n class_1.prototype.getModel = function () {\r\n return ecIns.getModel();\r\n };\r\n class_1.prototype.getViewOfComponentModel = function (componentModel) {\r\n return ecIns.getViewOfComponentModel(componentModel);\r\n };\r\n class_1.prototype.getViewOfSeriesModel = function (seriesModel) {\r\n return ecIns.getViewOfSeriesModel(seriesModel);\r\n };\r\n return class_1;\r\n }(ExtensionAPI)))(ecIns);\r\n };\r\n enableConnect = function (chart) {\r\n function updateConnectedChartsStatus(charts, status) {\r\n for (var i = 0; i < charts.length; i++) {\r\n var otherChart = charts[i];\r\n otherChart[CONNECT_STATUS_KEY] = status;\r\n }\r\n }\r\n each$3(eventActionMap, function (actionType, eventType) {\r\n chart._messageCenter.on(eventType, function (event) {\r\n if (connectedGroups[chart.group] && chart[CONNECT_STATUS_KEY] !== CONNECT_STATUS_PENDING) {\r\n if (event && event.escapeConnect) {\r\n return;\r\n }\r\n var action_1 = chart.makeActionFromEvent(event);\r\n var otherCharts_1 = [];\r\n each$3(instances$1, function (otherChart) {\r\n if (otherChart !== chart && otherChart.group === chart.group) {\r\n otherCharts_1.push(otherChart);\r\n }\r\n });\r\n updateConnectedChartsStatus(otherCharts_1, CONNECT_STATUS_PENDING);\r\n each$3(otherCharts_1, function (otherChart) {\r\n if (otherChart[CONNECT_STATUS_KEY] !== CONNECT_STATUS_UPDATING) {\r\n otherChart.dispatchAction(action_1);\r\n }\r\n });\r\n updateConnectedChartsStatus(otherCharts_1, CONNECT_STATUS_UPDATED);\r\n }\r\n });\r\n });\r\n };\r\n setTransitionOpt = function (chart, transitionOpt) {\r\n var ecModel = chart._model;\r\n each(normalizeToArray(transitionOpt), function (transOpt) {\r\n var errMsg;\r\n var fromOpt = transOpt.from;\r\n var toOpt = transOpt.to;\r\n if (toOpt == null) {\r\n if (__DEV__) {\r\n errMsg = '`transition.to` must be specified.';\r\n }\r\n throwError(errMsg);\r\n }\r\n var finderOpt = {\r\n includeMainTypes: ['series'],\r\n enableAll: false,\r\n enableNone: false\r\n };\r\n var fromResult = fromOpt ? parseFinder(ecModel, fromOpt, finderOpt) : null;\r\n var toResult = parseFinder(ecModel, toOpt, finderOpt);\r\n var toSeries = toResult.seriesModel;\r\n if (toSeries == null) {\r\n errMsg = '';\r\n if (__DEV__) {\r\n errMsg = '`transition` is only supported on series.';\r\n }\r\n }\r\n if (fromResult && fromResult.seriesModel !== toSeries) {\r\n errMsg = '';\r\n if (__DEV__) {\r\n errMsg = '`transition.from` and `transition.to` must be specified to the same series.';\r\n }\r\n }\r\n if (errMsg != null) {\r\n throwError(errMsg);\r\n }\r\n toSeries.__transientTransitionOpt = {\r\n from: fromOpt ? fromOpt.dimension : null,\r\n to: toOpt.dimension,\r\n dividingMethod: transOpt.dividingMethod\r\n };\r\n });\r\n };\r\n })();\r\n return ECharts;\r\n }(Eventful));\r\n var echartsProto = ECharts.prototype;\r\n echartsProto.on = createRegisterEventWithLowercaseECharts('on');\r\n echartsProto.off = createRegisterEventWithLowercaseECharts('off');\r\n echartsProto.one = function (eventName, cb, ctx) {\r\n var self = this;\r\n deprecateLog('ECharts#one is deprecated.');\r\n function wrapped() {\r\n var args2 = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args2[_i] = arguments[_i];\r\n }\r\n cb && cb.apply && cb.apply(this, args2);\r\n self.off(eventName, wrapped);\r\n }\r\n this.on.call(this, eventName, wrapped, ctx);\r\n };\r\n var MOUSE_EVENT_NAMES = [\r\n 'click', 'dblclick', 'mouseover', 'mouseout', 'mousemove',\r\n 'mousedown', 'mouseup', 'globalout', 'contextmenu'\r\n ];\r\n function disposedWarning(id) {\r\n if (__DEV__) {\r\n console.warn('Instance ' + id + ' has been disposed');\r\n }\r\n }\r\n var actions = {};\r\n var eventActionMap = {};\r\n var dataProcessorFuncs = [];\r\n var optionPreprocessorFuncs = [];\r\n var postInitFuncs = [];\r\n var postUpdateFuncs = [];\r\n var visualFuncs = [];\r\n var themeStorage = {};\r\n var loadingEffects = {};\r\n var instances$1 = {};\r\n var connectedGroups = {};\r\n var idBase = +(new Date()) - 0;\r\n var groupIdBase = +(new Date()) - 0;\r\n var DOM_ATTRIBUTE_KEY = '_echarts_instance_';\r\n function init$1(dom, theme, opts) {\r\n if (__DEV__) {\r\n if (!dom) {\r\n throw new Error('Initialize failed: invalid dom.');\r\n }\r\n }\r\n var existInstance = getInstanceByDom(dom);\r\n if (existInstance) {\r\n if (__DEV__) {\r\n console.warn('There is a chart instance already initialized on the dom.');\r\n }\r\n return existInstance;\r\n }\r\n if (__DEV__) {\r\n if (isDom(dom)\r\n && dom.nodeName.toUpperCase() !== 'CANVAS'\r\n && ((!dom.clientWidth && (!opts || opts.width == null))\r\n || (!dom.clientHeight && (!opts || opts.height == null)))) {\r\n console.warn('Can\\'t get DOM width or height. Please check '\r\n + 'dom.clientWidth and dom.clientHeight. They should not be 0.'\r\n + 'For example, you may need to call this in the callback '\r\n + 'of window.onload.');\r\n }\r\n }\r\n var chart = new ECharts(dom, theme, opts);\r\n chart.id = 'ec_' + idBase++;\r\n instances$1[chart.id] = chart;\r\n setAttribute(dom, DOM_ATTRIBUTE_KEY, chart.id);\r\n enableConnect(chart);\r\n each$3(postInitFuncs, function (postInitFunc) {\r\n postInitFunc(chart);\r\n });\r\n return chart;\r\n }\r\n function connect(groupId) {\r\n if (isArray(groupId)) {\r\n var charts = groupId;\r\n groupId = null;\r\n each$3(charts, function (chart) {\r\n if (chart.group != null) {\r\n groupId = chart.group;\r\n }\r\n });\r\n groupId = groupId || ('g_' + groupIdBase++);\r\n each$3(charts, function (chart) {\r\n chart.group = groupId;\r\n });\r\n }\r\n connectedGroups[groupId] = true;\r\n return groupId;\r\n }\r\n function disConnect(groupId) {\r\n connectedGroups[groupId] = false;\r\n }\r\n var disconnect = disConnect;\r\n function dispose$1(chart) {\r\n if (typeof chart === 'string') {\r\n chart = instances$1[chart];\r\n }\r\n else if (!(chart instanceof ECharts)) {\r\n chart = getInstanceByDom(chart);\r\n }\r\n if ((chart instanceof ECharts) && !chart.isDisposed()) {\r\n chart.dispose();\r\n }\r\n }\r\n function getInstanceByDom(dom) {\r\n return instances$1[getAttribute(dom, DOM_ATTRIBUTE_KEY)];\r\n }\r\n function getInstanceById(key) {\r\n return instances$1[key];\r\n }\r\n function registerTheme(name, theme) {\r\n themeStorage[name] = theme;\r\n }\r\n function registerPreprocessor(preprocessorFunc) {\r\n optionPreprocessorFuncs.push(preprocessorFunc);\r\n }\r\n function registerProcessor(priority, processor) {\r\n normalizeRegister(dataProcessorFuncs, priority, processor, PRIORITY_PROCESSOR_DEFAULT);\r\n }\r\n function registerPostInit(postInitFunc) {\r\n postInitFunc && postInitFuncs.push(postInitFunc);\r\n }\r\n function registerPostUpdate(postUpdateFunc) {\r\n postUpdateFunc && postUpdateFuncs.push(postUpdateFunc);\r\n }\r\n function registerAction(actionInfo, eventName, action) {\r\n if (typeof eventName === 'function') {\r\n action = eventName;\r\n eventName = '';\r\n }\r\n var actionType = isObject$2(actionInfo)\r\n ? actionInfo.type\r\n : ([actionInfo, actionInfo = {\r\n event: eventName\r\n }][0]);\r\n actionInfo.event = (actionInfo.event || actionType).toLowerCase();\r\n eventName = actionInfo.event;\r\n assert$1(ACTION_REG.test(actionType) && ACTION_REG.test(eventName));\r\n if (!actions[actionType]) {\r\n actions[actionType] = { action: action, actionInfo: actionInfo };\r\n }\r\n eventActionMap[eventName] = actionType;\r\n }\r\n function registerCoordinateSystem(type, coordSysCreator) {\r\n CoordinateSystemManager.register(type, coordSysCreator);\r\n }\r\n function getCoordinateSystemDimensions(type) {\r\n var coordSysCreator = CoordinateSystemManager.get(type);\r\n if (coordSysCreator) {\r\n return coordSysCreator.getDimensionsInfo\r\n ? coordSysCreator.getDimensionsInfo()\r\n : coordSysCreator.dimensions.slice();\r\n }\r\n }\r\n function registerLayout(priority, layoutTask) {\r\n normalizeRegister(visualFuncs, priority, layoutTask, PRIORITY_VISUAL_LAYOUT, 'layout');\r\n }\r\n function registerVisual(priority, visualTask) {\r\n normalizeRegister(visualFuncs, priority, visualTask, PRIORITY_VISUAL_CHART, 'visual');\r\n }\r\n function normalizeRegister(targetList, priority, fn, defaultPriority, visualType) {\r\n if (isFunction$1(priority) || isObject$2(priority)) {\r\n fn = priority;\r\n priority = defaultPriority;\r\n }\r\n if (__DEV__) {\r\n if (isNaN(priority) || priority == null) {\r\n throw new Error('Illegal priority');\r\n }\r\n each$3(targetList, function (wrap) {\r\n assert$1(wrap.__raw !== fn);\r\n });\r\n }\r\n var stageHandler = Scheduler.wrapStageHandler(fn, visualType);\r\n stageHandler.__prio = priority;\r\n stageHandler.__raw = fn;\r\n targetList.push(stageHandler);\r\n }\r\n function registerLoading(name, loadingFx) {\r\n loadingEffects[name] = loadingFx;\r\n }\r\n function extendComponentModel(proto) {\r\n return ComponentModel.extend(proto);\r\n }\r\n function extendComponentView(proto) {\r\n return ComponentView.extend(proto);\r\n }\r\n function extendSeriesModel(proto) {\r\n return SeriesModel.extend(proto);\r\n }\r\n function extendChartView(proto) {\r\n return ChartView.extend(proto);\r\n }\r\n function setCanvasCreator(creator) {\r\n $override('createCanvas', creator);\r\n }\r\n function registerMap(mapName, geoJson, specialAreas) {\r\n mapDataStorage.registerMap(mapName, geoJson, specialAreas);\r\n }\r\n function getMap(mapName) {\r\n var records = mapDataStorage.retrieveMap(mapName);\r\n return records && records[0] && {\r\n geoJson: records[0].geoJSON,\r\n specialAreas: records[0].specialAreas\r\n };\r\n }\r\n var registerTransform = registerExternalTransform;\r\n registerVisual(PRIORITY_VISUAL_GLOBAL, seriesStyleTask);\r\n registerVisual(PRIORITY_VISUAL_CHART_DATA_CUSTOM, dataStyleTask);\r\n registerVisual(PRIORITY_VISUAL_CHART_DATA_CUSTOM, dataColorPaletteTask);\r\n registerVisual(PRIORITY_VISUAL_GLOBAL, seriesSymbolTask);\r\n registerVisual(PRIORITY_VISUAL_CHART_DATA_CUSTOM, dataSymbolTask);\r\n registerVisual(PRIORITY_VISUAL_DECAL, decalVisual);\r\n registerPreprocessor(globalBackwardCompat);\r\n registerProcessor(PRIORITY_PROCESSOR_DATASTACK, dataStack);\r\n registerLoading('default', defaultLoading);\r\n registerAction({\r\n type: HIGHLIGHT_ACTION_TYPE,\r\n event: HIGHLIGHT_ACTION_TYPE,\r\n update: HIGHLIGHT_ACTION_TYPE\r\n }, noop);\r\n registerAction({\r\n type: DOWNPLAY_ACTION_TYPE,\r\n event: DOWNPLAY_ACTION_TYPE,\r\n update: DOWNPLAY_ACTION_TYPE\r\n }, noop);\r\n registerAction({\r\n type: SELECT_ACTION_TYPE,\r\n event: SELECT_ACTION_TYPE,\r\n update: SELECT_ACTION_TYPE\r\n }, noop);\r\n registerAction({\r\n type: UNSELECT_ACTION_TYPE,\r\n event: UNSELECT_ACTION_TYPE,\r\n update: UNSELECT_ACTION_TYPE\r\n }, noop);\r\n registerAction({\r\n type: TOGGLE_SELECT_ACTION_TYPE,\r\n event: TOGGLE_SELECT_ACTION_TYPE,\r\n update: TOGGLE_SELECT_ACTION_TYPE\r\n }, noop);\r\n registerTheme('light', lightTheme);\r\n registerTheme('dark', theme);\r\n var dataTool = {};\n\n function dataIndexMapValueLength(valNumOrArrLengthMoreThan2) {\r\n return valNumOrArrLengthMoreThan2 == null\r\n ? 0\r\n : (valNumOrArrLengthMoreThan2.length || 1);\r\n }\r\n function defaultKeyGetter(item) {\r\n return item;\r\n }\r\n var DataDiffer = (function () {\r\n function DataDiffer(oldArr, newArr, oldKeyGetter, newKeyGetter, context, diffMode) {\r\n this._old = oldArr;\r\n this._new = newArr;\r\n this._oldKeyGetter = oldKeyGetter || defaultKeyGetter;\r\n this._newKeyGetter = newKeyGetter || defaultKeyGetter;\r\n this.context = context;\r\n this._diffModeMultiple = diffMode === 'multiple';\r\n }\r\n DataDiffer.prototype.add = function (func) {\r\n this._add = func;\r\n return this;\r\n };\r\n DataDiffer.prototype.update = function (func) {\r\n this._update = func;\r\n return this;\r\n };\r\n DataDiffer.prototype.updateManyToOne = function (func) {\r\n this._updateManyToOne = func;\r\n return this;\r\n };\r\n DataDiffer.prototype.updateOneToMany = function (func) {\r\n this._updateOneToMany = func;\r\n return this;\r\n };\r\n DataDiffer.prototype.remove = function (func) {\r\n this._remove = func;\r\n return this;\r\n };\r\n DataDiffer.prototype.execute = function () {\r\n this[this._diffModeMultiple ? '_executeMultiple' : '_executeOneToOne']();\r\n };\r\n DataDiffer.prototype._executeOneToOne = function () {\r\n var oldArr = this._old;\r\n var newArr = this._new;\r\n var newDataIndexMap = {};\r\n var oldDataKeyArr = new Array(oldArr.length);\r\n var newDataKeyArr = new Array(newArr.length);\r\n this._initIndexMap(oldArr, null, oldDataKeyArr, '_oldKeyGetter');\r\n this._initIndexMap(newArr, newDataIndexMap, newDataKeyArr, '_newKeyGetter');\r\n for (var i = 0; i < oldArr.length; i++) {\r\n var oldKey = oldDataKeyArr[i];\r\n var newIdxMapVal = newDataIndexMap[oldKey];\r\n var newIdxMapValLen = dataIndexMapValueLength(newIdxMapVal);\r\n if (newIdxMapValLen > 1) {\r\n var newIdx = newIdxMapVal.shift();\r\n if (newIdxMapVal.length === 1) {\r\n newDataIndexMap[oldKey] = newIdxMapVal[0];\r\n }\r\n this._update && this._update(newIdx, i);\r\n }\r\n else if (newIdxMapValLen === 1) {\r\n newDataIndexMap[oldKey] = null;\r\n this._update && this._update(newIdxMapVal, i);\r\n }\r\n else {\r\n this._remove && this._remove(i);\r\n }\r\n }\r\n this._performRestAdd(newDataKeyArr, newDataIndexMap);\r\n };\r\n DataDiffer.prototype._executeMultiple = function () {\r\n var oldArr = this._old;\r\n var newArr = this._new;\r\n var oldDataIndexMap = {};\r\n var newDataIndexMap = {};\r\n var oldDataKeyArr = [];\r\n var newDataKeyArr = [];\r\n this._initIndexMap(oldArr, oldDataIndexMap, oldDataKeyArr, '_oldKeyGetter');\r\n this._initIndexMap(newArr, newDataIndexMap, newDataKeyArr, '_newKeyGetter');\r\n for (var i = 0; i < oldDataKeyArr.length; i++) {\r\n var oldKey = oldDataKeyArr[i];\r\n var oldIdxMapVal = oldDataIndexMap[oldKey];\r\n var newIdxMapVal = newDataIndexMap[oldKey];\r\n var oldIdxMapValLen = dataIndexMapValueLength(oldIdxMapVal);\r\n var newIdxMapValLen = dataIndexMapValueLength(newIdxMapVal);\r\n if (oldIdxMapValLen > 1 && newIdxMapValLen === 1) {\r\n this._updateManyToOne && this._updateManyToOne(newIdxMapVal, oldIdxMapVal);\r\n newDataIndexMap[oldKey] = null;\r\n }\r\n else if (oldIdxMapValLen === 1 && newIdxMapValLen > 1) {\r\n this._updateOneToMany && this._updateOneToMany(newIdxMapVal, oldIdxMapVal);\r\n newDataIndexMap[oldKey] = null;\r\n }\r\n else if (oldIdxMapValLen === 1 && newIdxMapValLen === 1) {\r\n this._update && this._update(newIdxMapVal, oldIdxMapVal);\r\n newDataIndexMap[oldKey] = null;\r\n }\r\n else if (oldIdxMapValLen > 1) {\r\n for (var i_1 = 0; i_1 < oldIdxMapValLen; i_1++) {\r\n this._remove && this._remove(oldIdxMapVal[i_1]);\r\n }\r\n }\r\n else {\r\n this._remove && this._remove(oldIdxMapVal);\r\n }\r\n }\r\n this._performRestAdd(newDataKeyArr, newDataIndexMap);\r\n };\r\n DataDiffer.prototype._performRestAdd = function (newDataKeyArr, newDataIndexMap) {\r\n for (var i = 0; i < newDataKeyArr.length; i++) {\r\n var newKey = newDataKeyArr[i];\r\n var newIdxMapVal = newDataIndexMap[newKey];\r\n var idxMapValLen = dataIndexMapValueLength(newIdxMapVal);\r\n if (idxMapValLen > 1) {\r\n for (var j = 0; j < idxMapValLen; j++) {\r\n this._add && this._add(newIdxMapVal[j]);\r\n }\r\n }\r\n else if (idxMapValLen === 1) {\r\n this._add && this._add(newIdxMapVal);\r\n }\r\n newDataIndexMap[newKey] = null;\r\n }\r\n };\r\n DataDiffer.prototype._initIndexMap = function (arr, map, keyArr, keyGetterName) {\r\n var cbModeMultiple = this._diffModeMultiple;\r\n for (var i = 0; i < arr.length; i++) {\r\n var key = '_ec_' + this[keyGetterName](arr[i], i);\r\n if (!cbModeMultiple) {\r\n keyArr[i] = key;\r\n }\r\n if (!map) {\r\n continue;\r\n }\r\n var idxMapVal = map[key];\r\n var idxMapValLen = dataIndexMapValueLength(idxMapVal);\r\n if (idxMapValLen === 0) {\r\n map[key] = i;\r\n if (cbModeMultiple) {\r\n keyArr.push(key);\r\n }\r\n }\r\n else if (idxMapValLen === 1) {\r\n map[key] = [idxMapVal, i];\r\n }\r\n else {\r\n idxMapVal.push(i);\r\n }\r\n }\r\n };\r\n return DataDiffer;\r\n }());\n\n function summarizeDimensions(data) {\r\n var summary = {};\r\n var encode = summary.encode = {};\r\n var notExtraCoordDimMap = createHashMap();\r\n var defaultedLabel = [];\r\n var defaultedTooltip = [];\r\n var userOutput = summary.userOutput = {\r\n dimensionNames: data.dimensions.slice(),\r\n encode: {}\r\n };\r\n each(data.dimensions, function (dimName) {\r\n var dimItem = data.getDimensionInfo(dimName);\r\n var coordDim = dimItem.coordDim;\r\n if (coordDim) {\r\n if (__DEV__) {\r\n assert(VISUAL_DIMENSIONS.get(coordDim) == null);\r\n }\r\n var coordDimIndex = dimItem.coordDimIndex;\r\n getOrCreateEncodeArr(encode, coordDim)[coordDimIndex] = dimName;\r\n if (!dimItem.isExtraCoord) {\r\n notExtraCoordDimMap.set(coordDim, 1);\r\n if (mayLabelDimType(dimItem.type)) {\r\n defaultedLabel[0] = dimName;\r\n }\r\n getOrCreateEncodeArr(userOutput.encode, coordDim)[coordDimIndex] = dimItem.index;\r\n }\r\n if (dimItem.defaultTooltip) {\r\n defaultedTooltip.push(dimName);\r\n }\r\n }\r\n VISUAL_DIMENSIONS.each(function (v, otherDim) {\r\n var encodeArr = getOrCreateEncodeArr(encode, otherDim);\r\n var dimIndex = dimItem.otherDims[otherDim];\r\n if (dimIndex != null && dimIndex !== false) {\r\n encodeArr[dimIndex] = dimItem.name;\r\n }\r\n });\r\n });\r\n var dataDimsOnCoord = [];\r\n var encodeFirstDimNotExtra = {};\r\n notExtraCoordDimMap.each(function (v, coordDim) {\r\n var dimArr = encode[coordDim];\r\n encodeFirstDimNotExtra[coordDim] = dimArr[0];\r\n dataDimsOnCoord = dataDimsOnCoord.concat(dimArr);\r\n });\r\n summary.dataDimsOnCoord = dataDimsOnCoord;\r\n summary.encodeFirstDimNotExtra = encodeFirstDimNotExtra;\r\n var encodeLabel = encode.label;\r\n if (encodeLabel && encodeLabel.length) {\r\n defaultedLabel = encodeLabel.slice();\r\n }\r\n var encodeTooltip = encode.tooltip;\r\n if (encodeTooltip && encodeTooltip.length) {\r\n defaultedTooltip = encodeTooltip.slice();\r\n }\r\n else if (!defaultedTooltip.length) {\r\n defaultedTooltip = defaultedLabel.slice();\r\n }\r\n encode.defaultedLabel = defaultedLabel;\r\n encode.defaultedTooltip = defaultedTooltip;\r\n return summary;\r\n }\r\n function getOrCreateEncodeArr(encode, dim) {\r\n if (!encode.hasOwnProperty(dim)) {\r\n encode[dim] = [];\r\n }\r\n return encode[dim];\r\n }\r\n function getDimensionTypeByAxis(axisType) {\r\n return axisType === 'category'\r\n ? 'ordinal'\r\n : axisType === 'time'\r\n ? 'time'\r\n : 'float';\r\n }\r\n function mayLabelDimType(dimType) {\r\n return !(dimType === 'ordinal' || dimType === 'time');\r\n }\n\n var DataDimensionInfo = (function () {\r\n function DataDimensionInfo(opt) {\r\n this.otherDims = {};\r\n if (opt != null) {\r\n extend(this, opt);\r\n }\r\n }\r\n return DataDimensionInfo;\r\n }());\n\n var mathFloor = Math.floor;\r\n var isObject$3 = isObject;\r\n var map$1 = map;\r\n var UNDEFINED = 'undefined';\r\n var INDEX_NOT_FOUND = -1;\r\n var ID_PREFIX = 'e\\0\\0';\r\n var dataCtors = {\r\n 'float': typeof Float64Array === UNDEFINED\r\n ? Array : Float64Array,\r\n 'int': typeof Int32Array === UNDEFINED\r\n ? Array : Int32Array,\r\n 'ordinal': Array,\r\n 'number': Array,\r\n 'time': Array\r\n };\r\n var CtorUint32Array = typeof Uint32Array === UNDEFINED ? Array : Uint32Array;\r\n var CtorInt32Array = typeof Int32Array === UNDEFINED ? Array : Int32Array;\r\n var CtorUint16Array = typeof Uint16Array === UNDEFINED ? Array : Uint16Array;\r\n var TRANSFERABLE_PROPERTIES = [\r\n 'hasItemOption', '_nameList', '_idList', '_invertedIndicesMap',\r\n '_rawData', '_dimValueGetter',\r\n '_count', '_rawCount', '_nameDimIdx', '_idDimIdx', '_nameRepeatCount'\r\n ];\r\n var CLONE_PROPERTIES = [\r\n '_extent', '_approximateExtent', '_rawExtent'\r\n ];\r\n var defaultDimValueGetters;\r\n var prepareInvertedIndex;\r\n var getIndicesCtor;\r\n var prepareStorage;\r\n var getRawIndexWithoutIndices;\r\n var getRawIndexWithIndices;\r\n var getId;\r\n var getIdNameFromStore;\r\n var makeIdFromName;\r\n var normalizeDimensions;\r\n var validateDimensions;\r\n var cloneListForMapAndSample;\r\n var getInitialExtent;\r\n var setItemDataAndSeriesIndex;\r\n var transferProperties;\r\n var List = (function () {\r\n function List(dimensions, hostModel) {\r\n this.type = 'list';\r\n this._count = 0;\r\n this._rawCount = 0;\r\n this._storage = {};\r\n this._storageArr = [];\r\n this._nameList = [];\r\n this._idList = [];\r\n this._visual = {};\r\n this._layout = {};\r\n this._itemVisuals = [];\r\n this._itemLayouts = [];\r\n this._graphicEls = [];\r\n this._rawExtent = {};\r\n this._extent = {};\r\n this._approximateExtent = {};\r\n this._calculationInfo = {};\r\n this.hasItemOption = true;\r\n this.TRANSFERABLE_METHODS = ['cloneShallow', 'downSample', 'lttbDownSample', 'map'];\r\n this.CHANGABLE_METHODS = ['filterSelf', 'selectRange'];\r\n this.DOWNSAMPLE_METHODS = ['downSample', 'lttbDownSample'];\r\n this.getRawIndex = getRawIndexWithoutIndices;\r\n dimensions = dimensions || ['x', 'y'];\r\n var dimensionInfos = {};\r\n var dimensionNames = [];\r\n var invertedIndicesMap = {};\r\n for (var i = 0; i < dimensions.length; i++) {\r\n var dimInfoInput = dimensions[i];\r\n var dimensionInfo = isString(dimInfoInput)\r\n ? new DataDimensionInfo({ name: dimInfoInput })\r\n : !(dimInfoInput instanceof DataDimensionInfo)\r\n ? new DataDimensionInfo(dimInfoInput)\r\n : dimInfoInput;\r\n var dimensionName = dimensionInfo.name;\r\n dimensionInfo.type = dimensionInfo.type || 'float';\r\n if (!dimensionInfo.coordDim) {\r\n dimensionInfo.coordDim = dimensionName;\r\n dimensionInfo.coordDimIndex = 0;\r\n }\r\n var otherDims = dimensionInfo.otherDims = dimensionInfo.otherDims || {};\r\n dimensionNames.push(dimensionName);\r\n dimensionInfos[dimensionName] = dimensionInfo;\r\n dimensionInfo.index = i;\r\n if (dimensionInfo.createInvertedIndices) {\r\n invertedIndicesMap[dimensionName] = [];\r\n }\r\n if (otherDims.itemName === 0) {\r\n this._nameDimIdx = i;\r\n this._nameOrdinalMeta = dimensionInfo.ordinalMeta;\r\n }\r\n if (otherDims.itemId === 0) {\r\n this._idDimIdx = i;\r\n this._idOrdinalMeta = dimensionInfo.ordinalMeta;\r\n }\r\n }\r\n this.dimensions = dimensionNames;\r\n this._dimensionInfos = dimensionInfos;\r\n this.hostModel = hostModel;\r\n this._dimensionsSummary = summarizeDimensions(this);\r\n this._invertedIndicesMap = invertedIndicesMap;\r\n this.userOutput = this._dimensionsSummary.userOutput;\r\n }\r\n List.prototype.getDimension = function (dim) {\r\n if (typeof dim === 'number'\r\n || (!isNaN(dim) && !this._dimensionInfos.hasOwnProperty(dim))) {\r\n dim = this.dimensions[dim];\r\n }\r\n return dim;\r\n };\r\n List.prototype.getDimensionInfo = function (dim) {\r\n return this._dimensionInfos[this.getDimension(dim)];\r\n };\r\n List.prototype.getDimensionsOnCoord = function () {\r\n return this._dimensionsSummary.dataDimsOnCoord.slice();\r\n };\r\n List.prototype.mapDimension = function (coordDim, idx) {\r\n var dimensionsSummary = this._dimensionsSummary;\r\n if (idx == null) {\r\n return dimensionsSummary.encodeFirstDimNotExtra[coordDim];\r\n }\r\n var dims = dimensionsSummary.encode[coordDim];\r\n return dims ? dims[idx] : null;\r\n };\r\n List.prototype.mapDimensionsAll = function (coordDim) {\r\n var dimensionsSummary = this._dimensionsSummary;\r\n var dims = dimensionsSummary.encode[coordDim];\r\n return (dims || []).slice();\r\n };\r\n List.prototype.initData = function (data, nameList, dimValueGetter) {\r\n var notProvider = isSourceInstance(data) || isArrayLike(data);\r\n var provider = notProvider\r\n ? new DefaultDataProvider(data, this.dimensions.length)\r\n : data;\r\n if (__DEV__) {\r\n assert(notProvider || (isFunction(provider.getItem)\r\n && isFunction(provider.count)), 'Inavlid data provider.');\r\n }\r\n this._rawData = provider;\r\n var sourceFormat = provider.getSource().sourceFormat;\r\n this._storage = {};\r\n this._indices = null;\r\n this._dontMakeIdFromName =\r\n this._idDimIdx != null\r\n || sourceFormat === SOURCE_FORMAT_TYPED_ARRAY\r\n || !!provider.fillStorage;\r\n this._nameList = (nameList || []).slice();\r\n this._idList = [];\r\n this._nameRepeatCount = {};\r\n if (!dimValueGetter) {\r\n this.hasItemOption = false;\r\n }\r\n this.defaultDimValueGetter = defaultDimValueGetters[sourceFormat];\r\n this._dimValueGetter = dimValueGetter = dimValueGetter\r\n || this.defaultDimValueGetter;\r\n this._dimValueGetterArrayRows = defaultDimValueGetters.arrayRows;\r\n this._rawExtent = {};\r\n this._initDataFromProvider(0, provider.count());\r\n if (provider.pure) {\r\n this.hasItemOption = false;\r\n }\r\n };\r\n List.prototype.getProvider = function () {\r\n return this._rawData;\r\n };\r\n List.prototype.appendData = function (data) {\r\n if (__DEV__) {\r\n assert(!this._indices, 'appendData can only be called on raw data.');\r\n }\r\n var rawData = this._rawData;\r\n var start = this.count();\r\n rawData.appendData(data);\r\n var end = rawData.count();\r\n if (!rawData.persistent) {\r\n end += start;\r\n }\r\n this._initDataFromProvider(start, end, true);\r\n };\r\n List.prototype.appendValues = function (values, names) {\r\n var storage = this._storage;\r\n var dimensions = this.dimensions;\r\n var dimLen = dimensions.length;\r\n var rawExtent = this._rawExtent;\r\n var start = this.count();\r\n var end = start + Math.max(values.length, names ? names.length : 0);\r\n for (var i = 0; i < dimLen; i++) {\r\n var dim = dimensions[i];\r\n if (!rawExtent[dim]) {\r\n rawExtent[dim] = getInitialExtent();\r\n }\r\n prepareStorage(storage, this._dimensionInfos[dim], end, true);\r\n }\r\n var rawExtentArr = map$1(dimensions, function (dim) {\r\n return rawExtent[dim];\r\n });\r\n var storageArr = this._storageArr = map$1(dimensions, function (dim) {\r\n return storage[dim];\r\n });\r\n var emptyDataItem = [];\r\n for (var idx = start; idx < end; idx++) {\r\n var sourceIdx = idx - start;\r\n for (var dimIdx = 0; dimIdx < dimLen; dimIdx++) {\r\n var dim = dimensions[dimIdx];\r\n var val = this._dimValueGetterArrayRows(values[sourceIdx] || emptyDataItem, dim, sourceIdx, dimIdx);\r\n storageArr[dimIdx][idx] = val;\r\n var dimRawExtent = rawExtentArr[dimIdx];\r\n val < dimRawExtent[0] && (dimRawExtent[0] = val);\r\n val > dimRawExtent[1] && (dimRawExtent[1] = val);\r\n }\r\n if (names) {\r\n this._nameList[idx] = names[sourceIdx];\r\n if (!this._dontMakeIdFromName) {\r\n makeIdFromName(this, idx);\r\n }\r\n }\r\n }\r\n this._rawCount = this._count = end;\r\n this._extent = {};\r\n prepareInvertedIndex(this);\r\n };\r\n List.prototype._initDataFromProvider = function (start, end, append) {\r\n if (start >= end) {\r\n return;\r\n }\r\n var rawData = this._rawData;\r\n var storage = this._storage;\r\n var dimensions = this.dimensions;\r\n var dimLen = dimensions.length;\r\n var dimensionInfoMap = this._dimensionInfos;\r\n var nameList = this._nameList;\r\n var idList = this._idList;\r\n var rawExtent = this._rawExtent;\r\n var sourceFormat = rawData.getSource().sourceFormat;\r\n var isFormatOriginal = sourceFormat === SOURCE_FORMAT_ORIGINAL;\r\n for (var i = 0; i < dimLen; i++) {\r\n var dim = dimensions[i];\r\n if (!rawExtent[dim]) {\r\n rawExtent[dim] = getInitialExtent();\r\n }\r\n prepareStorage(storage, dimensionInfoMap[dim], end, append);\r\n }\r\n var storageArr = this._storageArr = map$1(dimensions, function (dim) {\r\n return storage[dim];\r\n });\r\n var rawExtentArr = map$1(dimensions, function (dim) {\r\n return rawExtent[dim];\r\n });\r\n if (rawData.fillStorage) {\r\n rawData.fillStorage(start, end, storageArr, rawExtentArr);\r\n }\r\n else {\r\n var dataItem = [];\r\n for (var idx = start; idx < end; idx++) {\r\n dataItem = rawData.getItem(idx, dataItem);\r\n for (var dimIdx = 0; dimIdx < dimLen; dimIdx++) {\r\n var dim = dimensions[dimIdx];\r\n var dimStorage = storageArr[dimIdx];\r\n var val = this._dimValueGetter(dataItem, dim, idx, dimIdx);\r\n dimStorage[idx] = val;\r\n var dimRawExtent = rawExtentArr[dimIdx];\r\n val < dimRawExtent[0] && (dimRawExtent[0] = val);\r\n val > dimRawExtent[1] && (dimRawExtent[1] = val);\r\n }\r\n if (isFormatOriginal && !rawData.pure && dataItem) {\r\n var itemName = dataItem.name;\r\n if (nameList[idx] == null && itemName != null) {\r\n nameList[idx] = convertOptionIdName(itemName, null);\r\n }\r\n var itemId = dataItem.id;\r\n if (idList[idx] == null && itemId != null) {\r\n idList[idx] = convertOptionIdName(itemId, null);\r\n }\r\n }\r\n if (!this._dontMakeIdFromName) {\r\n makeIdFromName(this, idx);\r\n }\r\n }\r\n }\r\n if (!rawData.persistent && rawData.clean) {\r\n rawData.clean();\r\n }\r\n this._rawCount = this._count = end;\r\n this._extent = {};\r\n prepareInvertedIndex(this);\r\n };\r\n List.prototype.count = function () {\r\n return this._count;\r\n };\r\n List.prototype.getIndices = function () {\r\n var newIndices;\r\n var indices = this._indices;\r\n if (indices) {\r\n var Ctor = indices.constructor;\r\n var thisCount = this._count;\r\n if (Ctor === Array) {\r\n newIndices = new Ctor(thisCount);\r\n for (var i = 0; i < thisCount; i++) {\r\n newIndices[i] = indices[i];\r\n }\r\n }\r\n else {\r\n newIndices = new Ctor(indices.buffer, 0, thisCount);\r\n }\r\n }\r\n else {\r\n var Ctor = getIndicesCtor(this);\r\n newIndices = new Ctor(this.count());\r\n for (var i = 0; i < newIndices.length; i++) {\r\n newIndices[i] = i;\r\n }\r\n }\r\n return newIndices;\r\n };\r\n List.prototype.getByDimIdx = function (dimIdx, idx) {\r\n if (!(idx >= 0 && idx < this._count)) {\r\n return NaN;\r\n }\r\n var dimStore = this._storageArr[dimIdx];\r\n return dimStore ? dimStore[this.getRawIndex(idx)] : NaN;\r\n };\r\n List.prototype.get = function (dim, idx) {\r\n if (!(idx >= 0 && idx < this._count)) {\r\n return NaN;\r\n }\r\n var dimStore = this._storage[dim];\r\n return dimStore ? dimStore[this.getRawIndex(idx)] : NaN;\r\n };\r\n List.prototype.getByRawIndex = function (dim, rawIdx) {\r\n if (!(rawIdx >= 0 && rawIdx < this._rawCount)) {\r\n return NaN;\r\n }\r\n var dimStore = this._storage[dim];\r\n return dimStore ? dimStore[rawIdx] : NaN;\r\n };\r\n List.prototype.getValues = function (dimensions, idx) {\r\n var values = [];\r\n if (!isArray(dimensions)) {\r\n idx = dimensions;\r\n dimensions = this.dimensions;\r\n }\r\n for (var i = 0, len = dimensions.length; i < len; i++) {\r\n values.push(this.get(dimensions[i], idx));\r\n }\r\n return values;\r\n };\r\n List.prototype.hasValue = function (idx) {\r\n var dataDimsOnCoord = this._dimensionsSummary.dataDimsOnCoord;\r\n for (var i = 0, len = dataDimsOnCoord.length; i < len; i++) {\r\n if (isNaN(this.get(dataDimsOnCoord[i], idx))) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n };\r\n List.prototype.getDataExtent = function (dim) {\r\n dim = this.getDimension(dim);\r\n var dimData = this._storage[dim];\r\n var initialExtent = getInitialExtent();\r\n if (!dimData) {\r\n return initialExtent;\r\n }\r\n var currEnd = this.count();\r\n var useRaw = !this._indices;\r\n var dimExtent;\r\n if (useRaw) {\r\n return this._rawExtent[dim].slice();\r\n }\r\n dimExtent = this._extent[dim];\r\n if (dimExtent) {\r\n return dimExtent.slice();\r\n }\r\n dimExtent = initialExtent;\r\n var min = dimExtent[0];\r\n var max = dimExtent[1];\r\n for (var i = 0; i < currEnd; i++) {\r\n var rawIdx = this.getRawIndex(i);\r\n var value = dimData[rawIdx];\r\n value < min && (min = value);\r\n value > max && (max = value);\r\n }\r\n dimExtent = [min, max];\r\n this._extent[dim] = dimExtent;\r\n return dimExtent;\r\n };\r\n List.prototype.getApproximateExtent = function (dim) {\r\n dim = this.getDimension(dim);\r\n return this._approximateExtent[dim] || this.getDataExtent(dim);\r\n };\r\n List.prototype.setApproximateExtent = function (extent, dim) {\r\n dim = this.getDimension(dim);\r\n this._approximateExtent[dim] = extent.slice();\r\n };\r\n List.prototype.getCalculationInfo = function (key) {\r\n return this._calculationInfo[key];\r\n };\r\n List.prototype.setCalculationInfo = function (key, value) {\r\n isObject$3(key)\r\n ? extend(this._calculationInfo, key)\r\n : (this._calculationInfo[key] = value);\r\n };\r\n List.prototype.getSum = function (dim) {\r\n var dimData = this._storage[dim];\r\n var sum = 0;\r\n if (dimData) {\r\n for (var i = 0, len = this.count(); i < len; i++) {\r\n var value = this.get(dim, i);\r\n if (!isNaN(value)) {\r\n sum += value;\r\n }\r\n }\r\n }\r\n return sum;\r\n };\r\n List.prototype.getMedian = function (dim) {\r\n var dimDataArray = [];\r\n this.each(dim, function (val) {\r\n if (!isNaN(val)) {\r\n dimDataArray.push(val);\r\n }\r\n });\r\n var sortedDimDataArray = dimDataArray.sort(function (a, b) {\r\n return a - b;\r\n });\r\n var len = this.count();\r\n return len === 0\r\n ? 0\r\n : len % 2 === 1\r\n ? sortedDimDataArray[(len - 1) / 2]\r\n : (sortedDimDataArray[len / 2] + sortedDimDataArray[len / 2 - 1]) / 2;\r\n };\r\n List.prototype.rawIndexOf = function (dim, value) {\r\n var invertedIndices = dim && this._invertedIndicesMap[dim];\r\n if (__DEV__) {\r\n if (!invertedIndices) {\r\n throw new Error('Do not supported yet');\r\n }\r\n }\r\n var rawIndex = invertedIndices[value];\r\n if (rawIndex == null || isNaN(rawIndex)) {\r\n return INDEX_NOT_FOUND;\r\n }\r\n return rawIndex;\r\n };\r\n List.prototype.indexOfName = function (name) {\r\n for (var i = 0, len = this.count(); i < len; i++) {\r\n if (this.getName(i) === name) {\r\n return i;\r\n }\r\n }\r\n return -1;\r\n };\r\n List.prototype.indexOfRawIndex = function (rawIndex) {\r\n if (rawIndex >= this._rawCount || rawIndex < 0) {\r\n return -1;\r\n }\r\n if (!this._indices) {\r\n return rawIndex;\r\n }\r\n var indices = this._indices;\r\n var rawDataIndex = indices[rawIndex];\r\n if (rawDataIndex != null && rawDataIndex < this._count && rawDataIndex === rawIndex) {\r\n return rawIndex;\r\n }\r\n var left = 0;\r\n var right = this._count - 1;\r\n while (left <= right) {\r\n var mid = (left + right) / 2 | 0;\r\n if (indices[mid] < rawIndex) {\r\n left = mid + 1;\r\n }\r\n else if (indices[mid] > rawIndex) {\r\n right = mid - 1;\r\n }\r\n else {\r\n return mid;\r\n }\r\n }\r\n return -1;\r\n };\r\n List.prototype.indicesOfNearest = function (dim, value, maxDistance) {\r\n var storage = this._storage;\r\n var dimData = storage[dim];\r\n var nearestIndices = [];\r\n if (!dimData) {\r\n return nearestIndices;\r\n }\r\n if (maxDistance == null) {\r\n maxDistance = Infinity;\r\n }\r\n var minDist = Infinity;\r\n var minDiff = -1;\r\n var nearestIndicesLen = 0;\r\n for (var i = 0, len = this.count(); i < len; i++) {\r\n var dataIndex = this.getRawIndex(i);\r\n var diff = value - dimData[dataIndex];\r\n var dist = Math.abs(diff);\r\n if (dist <= maxDistance) {\r\n if (dist < minDist\r\n || (dist === minDist && diff >= 0 && minDiff < 0)) {\r\n minDist = dist;\r\n minDiff = diff;\r\n nearestIndicesLen = 0;\r\n }\r\n if (diff === minDiff) {\r\n nearestIndices[nearestIndicesLen++] = i;\r\n }\r\n }\r\n }\r\n nearestIndices.length = nearestIndicesLen;\r\n return nearestIndices;\r\n };\r\n List.prototype.getRawDataItem = function (idx) {\r\n if (!this._rawData.persistent) {\r\n var val = [];\r\n for (var i = 0; i < this.dimensions.length; i++) {\r\n var dim = this.dimensions[i];\r\n val.push(this.get(dim, idx));\r\n }\r\n return val;\r\n }\r\n else {\r\n return this._rawData.getItem(this.getRawIndex(idx));\r\n }\r\n };\r\n List.prototype.getName = function (idx) {\r\n var rawIndex = this.getRawIndex(idx);\r\n var name = this._nameList[rawIndex];\r\n if (name == null && this._nameDimIdx != null) {\r\n name = getIdNameFromStore(this, this._nameDimIdx, this._nameOrdinalMeta, rawIndex);\r\n }\r\n if (name == null) {\r\n name = '';\r\n }\r\n return name;\r\n };\r\n List.prototype.getId = function (idx) {\r\n return getId(this, this.getRawIndex(idx));\r\n };\r\n List.prototype.each = function (dims, cb, ctx, ctxCompat) {\r\n var _this = this;\r\n if (!this._count) {\r\n return;\r\n }\r\n if (typeof dims === 'function') {\r\n ctxCompat = ctx;\r\n ctx = cb;\r\n cb = dims;\r\n dims = [];\r\n }\r\n var fCtx = (ctx || ctxCompat || this);\r\n var dimNames = map$1(normalizeDimensions(dims), this.getDimension, this);\r\n if (__DEV__) {\r\n validateDimensions(this, dimNames);\r\n }\r\n var dimSize = dimNames.length;\r\n var dimIndices = map$1(dimNames, function (dimName) {\r\n return _this._dimensionInfos[dimName].index;\r\n });\r\n var storageArr = this._storageArr;\r\n for (var i = 0, len = this.count(); i < len; i++) {\r\n var rawIdx = this.getRawIndex(i);\r\n switch (dimSize) {\r\n case 0:\r\n cb.call(fCtx, i);\r\n break;\r\n case 1:\r\n cb.call(fCtx, storageArr[dimIndices[0]][rawIdx], i);\r\n break;\r\n case 2:\r\n cb.call(fCtx, storageArr[dimIndices[0]][rawIdx], storageArr[dimIndices[1]][rawIdx], i);\r\n break;\r\n default:\r\n var k = 0;\r\n var value = [];\r\n for (; k < dimSize; k++) {\r\n value[k] = storageArr[dimIndices[k]][rawIdx];\r\n }\r\n value[k] = i;\r\n cb.apply(fCtx, value);\r\n }\r\n }\r\n };\r\n List.prototype.filterSelf = function (dims, cb, ctx, ctxCompat) {\r\n var _this = this;\r\n if (!this._count) {\r\n return;\r\n }\r\n if (typeof dims === 'function') {\r\n ctxCompat = ctx;\r\n ctx = cb;\r\n cb = dims;\r\n dims = [];\r\n }\r\n var fCtx = (ctx || ctxCompat || this);\r\n var dimNames = map$1(normalizeDimensions(dims), this.getDimension, this);\r\n if (__DEV__) {\r\n validateDimensions(this, dimNames);\r\n }\r\n var count = this.count();\r\n var Ctor = getIndicesCtor(this);\r\n var newIndices = new Ctor(count);\r\n var value = [];\r\n var dimSize = dimNames.length;\r\n var offset = 0;\r\n var dimIndices = map$1(dimNames, function (dimName) {\r\n return _this._dimensionInfos[dimName].index;\r\n });\r\n var dim0 = dimIndices[0];\r\n var storageArr = this._storageArr;\r\n for (var i = 0; i < count; i++) {\r\n var keep = void 0;\r\n var rawIdx = this.getRawIndex(i);\r\n if (dimSize === 0) {\r\n keep = cb.call(fCtx, i);\r\n }\r\n else if (dimSize === 1) {\r\n var val = storageArr[dim0][rawIdx];\r\n keep = cb.call(fCtx, val, i);\r\n }\r\n else {\r\n var k = 0;\r\n for (; k < dimSize; k++) {\r\n value[k] = storageArr[dimIndices[k]][rawIdx];\r\n }\r\n value[k] = i;\r\n keep = cb.apply(fCtx, value);\r\n }\r\n if (keep) {\r\n newIndices[offset++] = rawIdx;\r\n }\r\n }\r\n if (offset < count) {\r\n this._indices = newIndices;\r\n }\r\n this._count = offset;\r\n this._extent = {};\r\n this.getRawIndex = this._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices;\r\n return this;\r\n };\r\n List.prototype.selectRange = function (range) {\r\n var _this = this;\r\n var len = this._count;\r\n if (!len) {\r\n return;\r\n }\r\n var dimensions = [];\r\n for (var dim in range) {\r\n if (range.hasOwnProperty(dim)) {\r\n dimensions.push(dim);\r\n }\r\n }\r\n if (__DEV__) {\r\n validateDimensions(this, dimensions);\r\n }\r\n var dimSize = dimensions.length;\r\n if (!dimSize) {\r\n return;\r\n }\r\n var originalCount = this.count();\r\n var Ctor = getIndicesCtor(this);\r\n var newIndices = new Ctor(originalCount);\r\n var offset = 0;\r\n var dim0 = dimensions[0];\r\n var dimIndices = map$1(dimensions, function (dimName) {\r\n return _this._dimensionInfos[dimName].index;\r\n });\r\n var min = range[dim0][0];\r\n var max = range[dim0][1];\r\n var storageArr = this._storageArr;\r\n var quickFinished = false;\r\n if (!this._indices) {\r\n var idx = 0;\r\n if (dimSize === 1) {\r\n var dimStorage = storageArr[dimIndices[0]];\r\n for (var i = 0; i < len; i++) {\r\n var val = dimStorage[i];\r\n if ((val >= min && val <= max) || isNaN(val)) {\r\n newIndices[offset++] = idx;\r\n }\r\n idx++;\r\n }\r\n quickFinished = true;\r\n }\r\n else if (dimSize === 2) {\r\n var dimStorage = storageArr[dimIndices[0]];\r\n var dimStorage2 = storageArr[dimIndices[1]];\r\n var min2 = range[dimensions[1]][0];\r\n var max2 = range[dimensions[1]][1];\r\n for (var i = 0; i < len; i++) {\r\n var val = dimStorage[i];\r\n var val2 = dimStorage2[i];\r\n if (((val >= min && val <= max) || isNaN(val))\r\n && ((val2 >= min2 && val2 <= max2) || isNaN(val2))) {\r\n newIndices[offset++] = idx;\r\n }\r\n idx++;\r\n }\r\n quickFinished = true;\r\n }\r\n }\r\n if (!quickFinished) {\r\n if (dimSize === 1) {\r\n for (var i = 0; i < originalCount; i++) {\r\n var rawIndex = this.getRawIndex(i);\r\n var val = storageArr[dimIndices[0]][rawIndex];\r\n if ((val >= min && val <= max) || isNaN(val)) {\r\n newIndices[offset++] = rawIndex;\r\n }\r\n }\r\n }\r\n else {\r\n for (var i = 0; i < originalCount; i++) {\r\n var keep = true;\r\n var rawIndex = this.getRawIndex(i);\r\n for (var k = 0; k < dimSize; k++) {\r\n var dimk = dimensions[k];\r\n var val = storageArr[dimIndices[k]][rawIndex];\r\n if (val < range[dimk][0] || val > range[dimk][1]) {\r\n keep = false;\r\n }\r\n }\r\n if (keep) {\r\n newIndices[offset++] = this.getRawIndex(i);\r\n }\r\n }\r\n }\r\n }\r\n if (offset < originalCount) {\r\n this._indices = newIndices;\r\n }\r\n this._count = offset;\r\n this._extent = {};\r\n this.getRawIndex = this._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices;\r\n return this;\r\n };\r\n List.prototype.mapArray = function (dims, cb, ctx, ctxCompat) {\r\n if (typeof dims === 'function') {\r\n ctxCompat = ctx;\r\n ctx = cb;\r\n cb = dims;\r\n dims = [];\r\n }\r\n ctx = (ctx || ctxCompat || this);\r\n var result = [];\r\n this.each(dims, function () {\r\n result.push(cb && cb.apply(this, arguments));\r\n }, ctx);\r\n return result;\r\n };\r\n List.prototype.map = function (dims, cb, ctx, ctxCompat) {\r\n var fCtx = (ctx || ctxCompat || this);\r\n var dimNames = map$1(normalizeDimensions(dims), this.getDimension, this);\r\n if (__DEV__) {\r\n validateDimensions(this, dimNames);\r\n }\r\n var list = cloneListForMapAndSample(this, dimNames);\r\n var storage = list._storage;\r\n list._indices = this._indices;\r\n list.getRawIndex = list._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices;\r\n var tmpRetValue = [];\r\n var dimSize = dimNames.length;\r\n var dataCount = this.count();\r\n var values = [];\r\n var rawExtent = list._rawExtent;\r\n for (var dataIndex = 0; dataIndex < dataCount; dataIndex++) {\r\n for (var dimIndex = 0; dimIndex < dimSize; dimIndex++) {\r\n values[dimIndex] = this.get(dimNames[dimIndex], dataIndex);\r\n }\r\n values[dimSize] = dataIndex;\r\n var retValue = cb && cb.apply(fCtx, values);\r\n if (retValue != null) {\r\n if (typeof retValue !== 'object') {\r\n tmpRetValue[0] = retValue;\r\n retValue = tmpRetValue;\r\n }\r\n var rawIndex = this.getRawIndex(dataIndex);\r\n for (var i = 0; i < retValue.length; i++) {\r\n var dim = dimNames[i];\r\n var val = retValue[i];\r\n var rawExtentOnDim = rawExtent[dim];\r\n var dimStore = storage[dim];\r\n if (dimStore) {\r\n dimStore[rawIndex] = val;\r\n }\r\n if (val < rawExtentOnDim[0]) {\r\n rawExtentOnDim[0] = val;\r\n }\r\n if (val > rawExtentOnDim[1]) {\r\n rawExtentOnDim[1] = val;\r\n }\r\n }\r\n }\r\n }\r\n return list;\r\n };\r\n List.prototype.downSample = function (dimension, rate, sampleValue, sampleIndex) {\r\n var list = cloneListForMapAndSample(this, [dimension]);\r\n var targetStorage = list._storage;\r\n var frameValues = [];\r\n var frameSize = mathFloor(1 / rate);\r\n var dimStore = targetStorage[dimension];\r\n var len = this.count();\r\n var rawExtentOnDim = list._rawExtent[dimension];\r\n var newIndices = new (getIndicesCtor(this))(len);\r\n var offset = 0;\r\n for (var i = 0; i < len; i += frameSize) {\r\n if (frameSize > len - i) {\r\n frameSize = len - i;\r\n frameValues.length = frameSize;\r\n }\r\n for (var k = 0; k < frameSize; k++) {\r\n var dataIdx = this.getRawIndex(i + k);\r\n frameValues[k] = dimStore[dataIdx];\r\n }\r\n var value = sampleValue(frameValues);\r\n var sampleFrameIdx = this.getRawIndex(Math.min(i + sampleIndex(frameValues, value) || 0, len - 1));\r\n dimStore[sampleFrameIdx] = value;\r\n if (value < rawExtentOnDim[0]) {\r\n rawExtentOnDim[0] = value;\r\n }\r\n if (value > rawExtentOnDim[1]) {\r\n rawExtentOnDim[1] = value;\r\n }\r\n newIndices[offset++] = sampleFrameIdx;\r\n }\r\n list._count = offset;\r\n list._indices = newIndices;\r\n list.getRawIndex = getRawIndexWithIndices;\r\n return list;\r\n };\r\n List.prototype.lttbDownSample = function (valueDimension, rate) {\r\n var list = cloneListForMapAndSample(this, []);\r\n var targetStorage = list._storage;\r\n var dimStore = targetStorage[valueDimension];\r\n var len = this.count();\r\n var newIndices = new (getIndicesCtor(this))(len);\r\n var sampledIndex = 0;\r\n var frameSize = mathFloor(1 / rate);\r\n var currentRawIndex = this.getRawIndex(0);\r\n var maxArea;\r\n var area;\r\n var nextRawIndex;\r\n newIndices[sampledIndex++] = currentRawIndex;\r\n for (var i = 1; i < len - 1; i += frameSize) {\r\n var nextFrameStart = Math.min(i + frameSize, len - 1);\r\n var nextFrameEnd = Math.min(i + frameSize * 2, len);\r\n var avgX = (nextFrameEnd + nextFrameStart) / 2;\r\n var avgY = 0;\r\n for (var idx = nextFrameStart; idx < nextFrameEnd; idx++) {\r\n var rawIndex = this.getRawIndex(idx);\r\n var y = dimStore[rawIndex];\r\n if (isNaN(y)) {\r\n continue;\r\n }\r\n avgY += y;\r\n }\r\n avgY /= (nextFrameEnd - nextFrameStart);\r\n var frameStart = i;\r\n var frameEnd = Math.min(i + frameSize, len);\r\n var pointAX = i - 1;\r\n var pointAY = dimStore[currentRawIndex];\r\n maxArea = -1;\r\n nextRawIndex = frameStart;\r\n for (var idx = frameStart; idx < frameEnd; idx++) {\r\n var rawIndex = this.getRawIndex(idx);\r\n var y = dimStore[rawIndex];\r\n if (isNaN(y)) {\r\n continue;\r\n }\r\n area = Math.abs((pointAX - avgX) * (y - pointAY)\r\n - (pointAX - idx) * (avgY - pointAY));\r\n if (area > maxArea) {\r\n maxArea = area;\r\n nextRawIndex = rawIndex;\r\n }\r\n }\r\n newIndices[sampledIndex++] = nextRawIndex;\r\n currentRawIndex = nextRawIndex;\r\n }\r\n newIndices[sampledIndex++] = this.getRawIndex(len - 1);\r\n list._count = sampledIndex;\r\n list._indices = newIndices;\r\n list.getRawIndex = getRawIndexWithIndices;\r\n return list;\r\n };\r\n List.prototype.getItemModel = function (idx) {\r\n var hostModel = this.hostModel;\r\n var dataItem = this.getRawDataItem(idx);\r\n return new Model(dataItem, hostModel, hostModel && hostModel.ecModel);\r\n };\r\n List.prototype.diff = function (otherList) {\r\n var thisList = this;\r\n return new DataDiffer(otherList ? otherList.getIndices() : [], this.getIndices(), function (idx) {\r\n return getId(otherList, idx);\r\n }, function (idx) {\r\n return getId(thisList, idx);\r\n });\r\n };\r\n List.prototype.getVisual = function (key) {\r\n var visual = this._visual;\r\n return visual && visual[key];\r\n };\r\n List.prototype.setVisual = function (kvObj, val) {\r\n this._visual = this._visual || {};\r\n if (isObject$3(kvObj)) {\r\n extend(this._visual, kvObj);\r\n }\r\n else {\r\n this._visual[kvObj] = val;\r\n }\r\n };\r\n List.prototype.getItemVisual = function (idx, key) {\r\n var itemVisual = this._itemVisuals[idx];\r\n var val = itemVisual && itemVisual[key];\r\n if (val == null) {\r\n return this.getVisual(key);\r\n }\r\n return val;\r\n };\r\n List.prototype.hasItemVisual = function () {\r\n return this._itemVisuals.length > 0;\r\n };\r\n List.prototype.ensureUniqueItemVisual = function (idx, key) {\r\n var itemVisuals = this._itemVisuals;\r\n var itemVisual = itemVisuals[idx];\r\n if (!itemVisual) {\r\n itemVisual = itemVisuals[idx] = {};\r\n }\r\n var val = itemVisual[key];\r\n if (val == null) {\r\n val = this.getVisual(key);\r\n if (isArray(val)) {\r\n val = val.slice();\r\n }\r\n else if (isObject$3(val)) {\r\n val = extend({}, val);\r\n }\r\n itemVisual[key] = val;\r\n }\r\n return val;\r\n };\r\n List.prototype.setItemVisual = function (idx, key, value) {\r\n var itemVisual = this._itemVisuals[idx] || {};\r\n this._itemVisuals[idx] = itemVisual;\r\n if (isObject$3(key)) {\r\n extend(itemVisual, key);\r\n }\r\n else {\r\n itemVisual[key] = value;\r\n }\r\n };\r\n List.prototype.clearAllVisual = function () {\r\n this._visual = {};\r\n this._itemVisuals = [];\r\n };\r\n List.prototype.setLayout = function (key, val) {\r\n if (isObject$3(key)) {\r\n for (var name_1 in key) {\r\n if (key.hasOwnProperty(name_1)) {\r\n this.setLayout(name_1, key[name_1]);\r\n }\r\n }\r\n return;\r\n }\r\n this._layout[key] = val;\r\n };\r\n List.prototype.getLayout = function (key) {\r\n return this._layout[key];\r\n };\r\n List.prototype.getItemLayout = function (idx) {\r\n return this._itemLayouts[idx];\r\n };\r\n List.prototype.setItemLayout = function (idx, layout, merge) {\r\n this._itemLayouts[idx] = merge\r\n ? extend(this._itemLayouts[idx] || {}, layout)\r\n : layout;\r\n };\r\n List.prototype.clearItemLayouts = function () {\r\n this._itemLayouts.length = 0;\r\n };\r\n List.prototype.setItemGraphicEl = function (idx, el) {\r\n var hostModel = this.hostModel;\r\n if (el) {\r\n var ecData = getECData(el);\r\n ecData.dataIndex = idx;\r\n ecData.dataType = this.dataType;\r\n ecData.seriesIndex = hostModel && hostModel.seriesIndex;\r\n if (el.type === 'group') {\r\n el.traverse(setItemDataAndSeriesIndex, el);\r\n }\r\n }\r\n this._graphicEls[idx] = el;\r\n };\r\n List.prototype.getItemGraphicEl = function (idx) {\r\n return this._graphicEls[idx];\r\n };\r\n List.prototype.eachItemGraphicEl = function (cb, context) {\r\n each(this._graphicEls, function (el, idx) {\r\n if (el) {\r\n cb && cb.call(context, el, idx);\r\n }\r\n });\r\n };\r\n List.prototype.cloneShallow = function (list) {\r\n if (!list) {\r\n var dimensionInfoList = map$1(this.dimensions, this.getDimensionInfo, this);\r\n list = new List(dimensionInfoList, this.hostModel);\r\n }\r\n list._storage = this._storage;\r\n list._storageArr = this._storageArr;\r\n transferProperties(list, this);\r\n if (this._indices) {\r\n var Ctor = this._indices.constructor;\r\n if (Ctor === Array) {\r\n var thisCount = this._indices.length;\r\n list._indices = new Ctor(thisCount);\r\n for (var i = 0; i < thisCount; i++) {\r\n list._indices[i] = this._indices[i];\r\n }\r\n }\r\n else {\r\n list._indices = new Ctor(this._indices);\r\n }\r\n }\r\n else {\r\n list._indices = null;\r\n }\r\n list.getRawIndex = list._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices;\r\n return list;\r\n };\r\n List.prototype.wrapMethod = function (methodName, injectFunction) {\r\n var originalMethod = this[methodName];\r\n if (typeof originalMethod !== 'function') {\r\n return;\r\n }\r\n this.__wrappedMethods = this.__wrappedMethods || [];\r\n this.__wrappedMethods.push(methodName);\r\n this[methodName] = function () {\r\n var res = originalMethod.apply(this, arguments);\r\n return injectFunction.apply(this, [res].concat(slice(arguments)));\r\n };\r\n };\r\n List.internalField = (function () {\r\n defaultDimValueGetters = {\r\n arrayRows: getDimValueSimply,\r\n objectRows: function (dataItem, dimName, dataIndex, dimIndex) {\r\n return parseDataValue(dataItem[dimName], this._dimensionInfos[dimName]);\r\n },\r\n keyedColumns: getDimValueSimply,\r\n original: function (dataItem, dimName, dataIndex, dimIndex) {\r\n var value = dataItem && (dataItem.value == null ? dataItem : dataItem.value);\r\n if (!this._rawData.pure && isDataItemOption(dataItem)) {\r\n this.hasItemOption = true;\r\n }\r\n return parseDataValue((value instanceof Array)\r\n ? value[dimIndex]\r\n : value, this._dimensionInfos[dimName]);\r\n },\r\n typedArray: function (dataItem, dimName, dataIndex, dimIndex) {\r\n return dataItem[dimIndex];\r\n }\r\n };\r\n function getDimValueSimply(dataItem, dimName, dataIndex, dimIndex) {\r\n return parseDataValue(dataItem[dimIndex], this._dimensionInfos[dimName]);\r\n }\r\n prepareInvertedIndex = function (list) {\r\n var invertedIndicesMap = list._invertedIndicesMap;\r\n each(invertedIndicesMap, function (invertedIndices, dim) {\r\n var dimInfo = list._dimensionInfos[dim];\r\n var ordinalMeta = dimInfo.ordinalMeta;\r\n if (ordinalMeta) {\r\n invertedIndices = invertedIndicesMap[dim] = new CtorInt32Array(ordinalMeta.categories.length);\r\n for (var i = 0; i < invertedIndices.length; i++) {\r\n invertedIndices[i] = INDEX_NOT_FOUND;\r\n }\r\n for (var i = 0; i < list._count; i++) {\r\n invertedIndices[list.get(dim, i)] = i;\r\n }\r\n }\r\n });\r\n };\r\n getIdNameFromStore = function (list, dimIdx, ordinalMeta, rawIndex) {\r\n var val;\r\n var chunk = list._storageArr[dimIdx];\r\n if (chunk) {\r\n val = chunk[rawIndex];\r\n if (ordinalMeta && ordinalMeta.categories.length) {\r\n val = ordinalMeta.categories[val];\r\n }\r\n }\r\n return convertOptionIdName(val, null);\r\n };\r\n getIndicesCtor = function (list) {\r\n return list._rawCount > 65535 ? CtorUint32Array : CtorUint16Array;\r\n };\r\n prepareStorage = function (storage, dimInfo, end, append) {\r\n var DataCtor = dataCtors[dimInfo.type];\r\n var dim = dimInfo.name;\r\n if (append) {\r\n var oldStore = storage[dim];\r\n var oldLen = oldStore && oldStore.length;\r\n if (!(oldLen === end)) {\r\n var newStore = new DataCtor(end);\r\n for (var j = 0; j < oldLen; j++) {\r\n newStore[j] = oldStore[j];\r\n }\r\n storage[dim] = newStore;\r\n }\r\n }\r\n else {\r\n storage[dim] = new DataCtor(end);\r\n }\r\n };\r\n getRawIndexWithoutIndices = function (idx) {\r\n return idx;\r\n };\r\n getRawIndexWithIndices = function (idx) {\r\n if (idx < this._count && idx >= 0) {\r\n return this._indices[idx];\r\n }\r\n return -1;\r\n };\r\n getId = function (list, rawIndex) {\r\n var id = list._idList[rawIndex];\r\n if (id == null && list._idDimIdx != null) {\r\n id = getIdNameFromStore(list, list._idDimIdx, list._idOrdinalMeta, rawIndex);\r\n }\r\n if (id == null) {\r\n id = ID_PREFIX + rawIndex;\r\n }\r\n return id;\r\n };\r\n normalizeDimensions = function (dimensions) {\r\n if (!isArray(dimensions)) {\r\n dimensions = dimensions != null ? [dimensions] : [];\r\n }\r\n return dimensions;\r\n };\r\n validateDimensions = function (list, dims) {\r\n for (var i = 0; i < dims.length; i++) {\r\n if (!list._dimensionInfos[dims[i]]) {\r\n console.error('Unkown dimension ' + dims[i]);\r\n }\r\n }\r\n };\r\n cloneListForMapAndSample = function (original, excludeDimensions) {\r\n var allDimensions = original.dimensions;\r\n var list = new List(map$1(allDimensions, original.getDimensionInfo, original), original.hostModel);\r\n transferProperties(list, original);\r\n var storage = list._storage = {};\r\n var originalStorage = original._storage;\r\n var storageArr = list._storageArr = [];\r\n for (var i = 0; i < allDimensions.length; i++) {\r\n var dim = allDimensions[i];\r\n if (originalStorage[dim]) {\r\n if (indexOf(excludeDimensions, dim) >= 0) {\r\n storage[dim] = cloneChunk(originalStorage[dim]);\r\n list._rawExtent[dim] = getInitialExtent();\r\n list._extent[dim] = null;\r\n }\r\n else {\r\n storage[dim] = originalStorage[dim];\r\n }\r\n storageArr.push(storage[dim]);\r\n }\r\n }\r\n return list;\r\n };\r\n function cloneChunk(originalChunk) {\r\n var Ctor = originalChunk.constructor;\r\n return Ctor === Array\r\n ? originalChunk.slice()\r\n : new Ctor(originalChunk);\r\n }\r\n getInitialExtent = function () {\r\n return [Infinity, -Infinity];\r\n };\r\n setItemDataAndSeriesIndex = function (child) {\r\n var childECData = getECData(child);\r\n var thisECData = getECData(this);\r\n childECData.seriesIndex = thisECData.seriesIndex;\r\n childECData.dataIndex = thisECData.dataIndex;\r\n childECData.dataType = thisECData.dataType;\r\n };\r\n transferProperties = function (target, source) {\r\n each(TRANSFERABLE_PROPERTIES.concat(source.__wrappedMethods || []), function (propName) {\r\n if (source.hasOwnProperty(propName)) {\r\n target[propName] = source[propName];\r\n }\r\n });\r\n target.__wrappedMethods = source.__wrappedMethods;\r\n each(CLONE_PROPERTIES, function (propName) {\r\n target[propName] = clone(source[propName]);\r\n });\r\n target._calculationInfo = extend({}, source._calculationInfo);\r\n };\r\n makeIdFromName = function (list, idx) {\r\n var nameList = list._nameList;\r\n var idList = list._idList;\r\n var nameDimIdx = list._nameDimIdx;\r\n var idDimIdx = list._idDimIdx;\r\n var name = nameList[idx];\r\n var id = idList[idx];\r\n if (name == null && nameDimIdx != null) {\r\n nameList[idx] = name = getIdNameFromStore(list, nameDimIdx, list._nameOrdinalMeta, idx);\r\n }\r\n if (id == null && idDimIdx != null) {\r\n idList[idx] = id = getIdNameFromStore(list, idDimIdx, list._idOrdinalMeta, idx);\r\n }\r\n if (id == null && name != null) {\r\n var nameRepeatCount = list._nameRepeatCount;\r\n var nmCnt = nameRepeatCount[name] = (nameRepeatCount[name] || 0) + 1;\r\n id = name;\r\n if (nmCnt > 1) {\r\n id += '__ec__' + nmCnt;\r\n }\r\n idList[idx] = id;\r\n }\r\n };\r\n })();\r\n return List;\r\n }());\n\n function completeDimensions(sysDims, source, opt) {\r\n if (!isSourceInstance(source)) {\r\n source = createSourceFromSeriesDataOption(source);\r\n }\r\n opt = opt || {};\r\n sysDims = (sysDims || []).slice();\r\n var dimsDef = (opt.dimsDef || []).slice();\r\n var dataDimNameMap = createHashMap();\r\n var coordDimNameMap = createHashMap();\r\n var result = [];\r\n var dimCount = getDimCount(source, sysDims, dimsDef, opt.dimCount);\r\n for (var i = 0; i < dimCount; i++) {\r\n var dimDefItemRaw = dimsDef[i];\r\n var dimDefItem = dimsDef[i] = extend({}, isObject(dimDefItemRaw) ? dimDefItemRaw : { name: dimDefItemRaw });\r\n var userDimName = dimDefItem.name;\r\n var resultItem = result[i] = new DataDimensionInfo();\r\n if (userDimName != null && dataDimNameMap.get(userDimName) == null) {\r\n resultItem.name = resultItem.displayName = userDimName;\r\n dataDimNameMap.set(userDimName, i);\r\n }\r\n dimDefItem.type != null && (resultItem.type = dimDefItem.type);\r\n dimDefItem.displayName != null && (resultItem.displayName = dimDefItem.displayName);\r\n }\r\n var encodeDef = opt.encodeDef;\r\n if (!encodeDef && opt.encodeDefaulter) {\r\n encodeDef = opt.encodeDefaulter(source, dimCount);\r\n }\r\n var encodeDefMap = createHashMap(encodeDef);\r\n encodeDefMap.each(function (dataDimsRaw, coordDim) {\r\n var dataDims = normalizeToArray(dataDimsRaw).slice();\r\n if (dataDims.length === 1 && !isString(dataDims[0]) && dataDims[0] < 0) {\r\n encodeDefMap.set(coordDim, false);\r\n return;\r\n }\r\n var validDataDims = encodeDefMap.set(coordDim, []);\r\n each(dataDims, function (resultDimIdxOrName, idx) {\r\n var resultDimIdx = isString(resultDimIdxOrName)\r\n ? dataDimNameMap.get(resultDimIdxOrName)\r\n : resultDimIdxOrName;\r\n if (resultDimIdx != null && resultDimIdx < dimCount) {\r\n validDataDims[idx] = resultDimIdx;\r\n applyDim(result[resultDimIdx], coordDim, idx);\r\n }\r\n });\r\n });\r\n var availDimIdx = 0;\r\n each(sysDims, function (sysDimItemRaw) {\r\n var coordDim;\r\n var sysDimItemDimsDef;\r\n var sysDimItemOtherDims;\r\n var sysDimItem;\r\n if (isString(sysDimItemRaw)) {\r\n coordDim = sysDimItemRaw;\r\n sysDimItem = {};\r\n }\r\n else {\r\n sysDimItem = sysDimItemRaw;\r\n coordDim = sysDimItem.name;\r\n var ordinalMeta = sysDimItem.ordinalMeta;\r\n sysDimItem.ordinalMeta = null;\r\n sysDimItem = clone(sysDimItem);\r\n sysDimItem.ordinalMeta = ordinalMeta;\r\n sysDimItemDimsDef = sysDimItem.dimsDef;\r\n sysDimItemOtherDims = sysDimItem.otherDims;\r\n sysDimItem.name = sysDimItem.coordDim = sysDimItem.coordDimIndex =\r\n sysDimItem.dimsDef = sysDimItem.otherDims = null;\r\n }\r\n var dataDims = encodeDefMap.get(coordDim);\r\n if (dataDims === false) {\r\n return;\r\n }\r\n dataDims = normalizeToArray(dataDims);\r\n if (!dataDims.length) {\r\n for (var i = 0; i < (sysDimItemDimsDef && sysDimItemDimsDef.length || 1); i++) {\r\n while (availDimIdx < result.length && result[availDimIdx].coordDim != null) {\r\n availDimIdx++;\r\n }\r\n availDimIdx < result.length && dataDims.push(availDimIdx++);\r\n }\r\n }\r\n each(dataDims, function (resultDimIdx, coordDimIndex) {\r\n var resultItem = result[resultDimIdx];\r\n applyDim(defaults(resultItem, sysDimItem), coordDim, coordDimIndex);\r\n if (resultItem.name == null && sysDimItemDimsDef) {\r\n var sysDimItemDimsDefItem = sysDimItemDimsDef[coordDimIndex];\r\n !isObject(sysDimItemDimsDefItem) && (sysDimItemDimsDefItem = { name: sysDimItemDimsDefItem });\r\n resultItem.name = resultItem.displayName = sysDimItemDimsDefItem.name;\r\n resultItem.defaultTooltip = sysDimItemDimsDefItem.defaultTooltip;\r\n }\r\n sysDimItemOtherDims && defaults(resultItem.otherDims, sysDimItemOtherDims);\r\n });\r\n });\r\n function applyDim(resultItem, coordDim, coordDimIndex) {\r\n if (VISUAL_DIMENSIONS.get(coordDim) != null) {\r\n resultItem.otherDims[coordDim] = coordDimIndex;\r\n }\r\n else {\r\n resultItem.coordDim = coordDim;\r\n resultItem.coordDimIndex = coordDimIndex;\r\n coordDimNameMap.set(coordDim, true);\r\n }\r\n }\r\n var generateCoord = opt.generateCoord;\r\n var generateCoordCount = opt.generateCoordCount;\r\n var fromZero = generateCoordCount != null;\r\n generateCoordCount = generateCoord ? (generateCoordCount || 1) : 0;\r\n var extra = generateCoord || 'value';\r\n for (var resultDimIdx = 0; resultDimIdx < dimCount; resultDimIdx++) {\r\n var resultItem = result[resultDimIdx] = result[resultDimIdx] || new DataDimensionInfo();\r\n var coordDim = resultItem.coordDim;\r\n if (coordDim == null) {\r\n resultItem.coordDim = genName(extra, coordDimNameMap, fromZero);\r\n resultItem.coordDimIndex = 0;\r\n if (!generateCoord || generateCoordCount <= 0) {\r\n resultItem.isExtraCoord = true;\r\n }\r\n generateCoordCount--;\r\n }\r\n resultItem.name == null && (resultItem.name = genName(resultItem.coordDim, dataDimNameMap, false));\r\n if (resultItem.type == null\r\n && (guessOrdinal(source, resultDimIdx) === BE_ORDINAL.Must\r\n || (resultItem.isExtraCoord\r\n && (resultItem.otherDims.itemName != null\r\n || resultItem.otherDims.seriesName != null)))) {\r\n resultItem.type = 'ordinal';\r\n }\r\n }\r\n return result;\r\n }\r\n function getDimCount(source, sysDims, dimsDef, optDimCount) {\r\n var dimCount = Math.max(source.dimensionsDetectedCount || 1, sysDims.length, dimsDef.length, optDimCount || 0);\r\n each(sysDims, function (sysDimItem) {\r\n var sysDimItemDimsDef;\r\n if (isObject(sysDimItem) && (sysDimItemDimsDef = sysDimItem.dimsDef)) {\r\n dimCount = Math.max(dimCount, sysDimItemDimsDef.length);\r\n }\r\n });\r\n return dimCount;\r\n }\r\n function genName(name, map, fromZero) {\r\n if (fromZero || map.get(name) != null) {\r\n var i = 0;\r\n while (map.get(name + i) != null) {\r\n i++;\r\n }\r\n name += i;\r\n }\r\n map.set(name, true);\r\n return name;\r\n }\n\n function createDimensions(source, opt) {\r\n opt = opt || {};\r\n return completeDimensions(opt.coordDimensions || [], source, {\r\n dimsDef: opt.dimensionsDefine || source.dimensionsDefine,\r\n encodeDef: opt.encodeDefine || source.encodeDefine,\r\n dimCount: opt.dimensionsCount,\r\n encodeDefaulter: opt.encodeDefaulter,\r\n generateCoord: opt.generateCoord,\r\n generateCoordCount: opt.generateCoordCount\r\n });\r\n }\n\n var CoordSysInfo = (function () {\r\n function CoordSysInfo(coordSysName) {\r\n this.coordSysDims = [];\r\n this.axisMap = createHashMap();\r\n this.categoryAxisMap = createHashMap();\r\n this.coordSysName = coordSysName;\r\n }\r\n return CoordSysInfo;\r\n }());\r\n function getCoordSysInfoBySeries(seriesModel) {\r\n var coordSysName = seriesModel.get('coordinateSystem');\r\n var result = new CoordSysInfo(coordSysName);\r\n var fetch = fetchers[coordSysName];\r\n if (fetch) {\r\n fetch(seriesModel, result, result.axisMap, result.categoryAxisMap);\r\n return result;\r\n }\r\n }\r\n var fetchers = {\r\n cartesian2d: function (seriesModel, result, axisMap, categoryAxisMap) {\r\n var xAxisModel = seriesModel.getReferringComponents('xAxis', SINGLE_REFERRING).models[0];\r\n var yAxisModel = seriesModel.getReferringComponents('yAxis', SINGLE_REFERRING).models[0];\r\n if (__DEV__) {\r\n if (!xAxisModel) {\r\n throw new Error('xAxis \"' + retrieve(seriesModel.get('xAxisIndex'), seriesModel.get('xAxisId'), 0) + '\" not found');\r\n }\r\n if (!yAxisModel) {\r\n throw new Error('yAxis \"' + retrieve(seriesModel.get('xAxisIndex'), seriesModel.get('yAxisId'), 0) + '\" not found');\r\n }\r\n }\r\n result.coordSysDims = ['x', 'y'];\r\n axisMap.set('x', xAxisModel);\r\n axisMap.set('y', yAxisModel);\r\n if (isCategory(xAxisModel)) {\r\n categoryAxisMap.set('x', xAxisModel);\r\n result.firstCategoryDimIndex = 0;\r\n }\r\n if (isCategory(yAxisModel)) {\r\n categoryAxisMap.set('y', yAxisModel);\r\n result.firstCategoryDimIndex == null && (result.firstCategoryDimIndex = 1);\r\n }\r\n },\r\n singleAxis: function (seriesModel, result, axisMap, categoryAxisMap) {\r\n var singleAxisModel = seriesModel.getReferringComponents('singleAxis', SINGLE_REFERRING).models[0];\r\n if (__DEV__) {\r\n if (!singleAxisModel) {\r\n throw new Error('singleAxis should be specified.');\r\n }\r\n }\r\n result.coordSysDims = ['single'];\r\n axisMap.set('single', singleAxisModel);\r\n if (isCategory(singleAxisModel)) {\r\n categoryAxisMap.set('single', singleAxisModel);\r\n result.firstCategoryDimIndex = 0;\r\n }\r\n },\r\n polar: function (seriesModel, result, axisMap, categoryAxisMap) {\r\n var polarModel = seriesModel.getReferringComponents('polar', SINGLE_REFERRING).models[0];\r\n var radiusAxisModel = polarModel.findAxisModel('radiusAxis');\r\n var angleAxisModel = polarModel.findAxisModel('angleAxis');\r\n if (__DEV__) {\r\n if (!angleAxisModel) {\r\n throw new Error('angleAxis option not found');\r\n }\r\n if (!radiusAxisModel) {\r\n throw new Error('radiusAxis option not found');\r\n }\r\n }\r\n result.coordSysDims = ['radius', 'angle'];\r\n axisMap.set('radius', radiusAxisModel);\r\n axisMap.set('angle', angleAxisModel);\r\n if (isCategory(radiusAxisModel)) {\r\n categoryAxisMap.set('radius', radiusAxisModel);\r\n result.firstCategoryDimIndex = 0;\r\n }\r\n if (isCategory(angleAxisModel)) {\r\n categoryAxisMap.set('angle', angleAxisModel);\r\n result.firstCategoryDimIndex == null && (result.firstCategoryDimIndex = 1);\r\n }\r\n },\r\n geo: function (seriesModel, result, axisMap, categoryAxisMap) {\r\n result.coordSysDims = ['lng', 'lat'];\r\n },\r\n parallel: function (seriesModel, result, axisMap, categoryAxisMap) {\r\n var ecModel = seriesModel.ecModel;\r\n var parallelModel = ecModel.getComponent('parallel', seriesModel.get('parallelIndex'));\r\n var coordSysDims = result.coordSysDims = parallelModel.dimensions.slice();\r\n each(parallelModel.parallelAxisIndex, function (axisIndex, index) {\r\n var axisModel = ecModel.getComponent('parallelAxis', axisIndex);\r\n var axisDim = coordSysDims[index];\r\n axisMap.set(axisDim, axisModel);\r\n if (isCategory(axisModel)) {\r\n categoryAxisMap.set(axisDim, axisModel);\r\n if (result.firstCategoryDimIndex == null) {\r\n result.firstCategoryDimIndex = index;\r\n }\r\n }\r\n });\r\n }\r\n };\r\n function isCategory(axisModel) {\r\n return axisModel.get('type') === 'category';\r\n }\n\n function enableDataStack(seriesModel, dimensionInfoList, opt) {\r\n opt = opt || {};\r\n var byIndex = opt.byIndex;\r\n var stackedCoordDimension = opt.stackedCoordDimension;\r\n var mayStack = !!(seriesModel && seriesModel.get('stack'));\r\n var stackedByDimInfo;\r\n var stackedDimInfo;\r\n var stackResultDimension;\r\n var stackedOverDimension;\r\n each(dimensionInfoList, function (dimensionInfo, index) {\r\n if (isString(dimensionInfo)) {\r\n dimensionInfoList[index] = dimensionInfo = {\r\n name: dimensionInfo\r\n };\r\n }\r\n if (mayStack && !dimensionInfo.isExtraCoord) {\r\n if (!byIndex && !stackedByDimInfo && dimensionInfo.ordinalMeta) {\r\n stackedByDimInfo = dimensionInfo;\r\n }\r\n if (!stackedDimInfo\r\n && dimensionInfo.type !== 'ordinal'\r\n && dimensionInfo.type !== 'time'\r\n && (!stackedCoordDimension || stackedCoordDimension === dimensionInfo.coordDim)) {\r\n stackedDimInfo = dimensionInfo;\r\n }\r\n }\r\n });\r\n if (stackedDimInfo && !byIndex && !stackedByDimInfo) {\r\n byIndex = true;\r\n }\r\n if (stackedDimInfo) {\r\n stackResultDimension = '__\\0ecstackresult';\r\n stackedOverDimension = '__\\0ecstackedover';\r\n if (stackedByDimInfo) {\r\n stackedByDimInfo.createInvertedIndices = true;\r\n }\r\n var stackedDimCoordDim_1 = stackedDimInfo.coordDim;\r\n var stackedDimType = stackedDimInfo.type;\r\n var stackedDimCoordIndex_1 = 0;\r\n each(dimensionInfoList, function (dimensionInfo) {\r\n if (dimensionInfo.coordDim === stackedDimCoordDim_1) {\r\n stackedDimCoordIndex_1++;\r\n }\r\n });\r\n dimensionInfoList.push({\r\n name: stackResultDimension,\r\n coordDim: stackedDimCoordDim_1,\r\n coordDimIndex: stackedDimCoordIndex_1,\r\n type: stackedDimType,\r\n isExtraCoord: true,\r\n isCalculationCoord: true\r\n });\r\n stackedDimCoordIndex_1++;\r\n dimensionInfoList.push({\r\n name: stackedOverDimension,\r\n coordDim: stackedOverDimension,\r\n coordDimIndex: stackedDimCoordIndex_1,\r\n type: stackedDimType,\r\n isExtraCoord: true,\r\n isCalculationCoord: true\r\n });\r\n }\r\n return {\r\n stackedDimension: stackedDimInfo && stackedDimInfo.name,\r\n stackedByDimension: stackedByDimInfo && stackedByDimInfo.name,\r\n isStackedByIndex: byIndex,\r\n stackedOverDimension: stackedOverDimension,\r\n stackResultDimension: stackResultDimension\r\n };\r\n }\r\n function isDimensionStacked(data, stackedDim) {\r\n return !!stackedDim && stackedDim === data.getCalculationInfo('stackedDimension');\r\n }\r\n function getStackedDimension(data, targetDim) {\r\n return isDimensionStacked(data, targetDim)\r\n ? data.getCalculationInfo('stackResultDimension')\r\n : targetDim;\r\n }\n\n function createListFromArray(source, seriesModel, opt) {\r\n opt = opt || {};\r\n if (!isSourceInstance(source)) {\r\n source = createSourceFromSeriesDataOption(source);\r\n }\r\n var coordSysName = seriesModel.get('coordinateSystem');\r\n var registeredCoordSys = CoordinateSystemManager.get(coordSysName);\r\n var coordSysInfo = getCoordSysInfoBySeries(seriesModel);\r\n var coordSysDimDefs;\r\n if (coordSysInfo && coordSysInfo.coordSysDims) {\r\n coordSysDimDefs = map(coordSysInfo.coordSysDims, function (dim) {\r\n var dimInfo = {\r\n name: dim\r\n };\r\n var axisModel = coordSysInfo.axisMap.get(dim);\r\n if (axisModel) {\r\n var axisType = axisModel.get('type');\r\n dimInfo.type = getDimensionTypeByAxis(axisType);\r\n }\r\n return dimInfo;\r\n });\r\n }\r\n if (!coordSysDimDefs) {\r\n coordSysDimDefs = (registeredCoordSys && (registeredCoordSys.getDimensionsInfo\r\n ? registeredCoordSys.getDimensionsInfo()\r\n : registeredCoordSys.dimensions.slice())) || ['x', 'y'];\r\n }\r\n var useEncodeDefaulter = opt.useEncodeDefaulter;\r\n var dimInfoList = createDimensions(source, {\r\n coordDimensions: coordSysDimDefs,\r\n generateCoord: opt.generateCoord,\r\n encodeDefaulter: isFunction(useEncodeDefaulter)\r\n ? useEncodeDefaulter\r\n : useEncodeDefaulter\r\n ? curry(makeSeriesEncodeForAxisCoordSys, coordSysDimDefs, seriesModel)\r\n : null\r\n });\r\n var firstCategoryDimIndex;\r\n var hasNameEncode;\r\n coordSysInfo && each(dimInfoList, function (dimInfo, dimIndex) {\r\n var coordDim = dimInfo.coordDim;\r\n var categoryAxisModel = coordSysInfo.categoryAxisMap.get(coordDim);\r\n if (categoryAxisModel) {\r\n if (firstCategoryDimIndex == null) {\r\n firstCategoryDimIndex = dimIndex;\r\n }\r\n dimInfo.ordinalMeta = categoryAxisModel.getOrdinalMeta();\r\n }\r\n if (dimInfo.otherDims.itemName != null) {\r\n hasNameEncode = true;\r\n }\r\n });\r\n if (!hasNameEncode && firstCategoryDimIndex != null) {\r\n dimInfoList[firstCategoryDimIndex].otherDims.itemName = 0;\r\n }\r\n var stackCalculationInfo = enableDataStack(seriesModel, dimInfoList);\r\n var list = new List(dimInfoList, seriesModel);\r\n list.setCalculationInfo(stackCalculationInfo);\r\n var dimValueGetter = (firstCategoryDimIndex != null && isNeedCompleteOrdinalData(source))\r\n ? function (itemOpt, dimName, dataIndex, dimIndex) {\r\n return dimIndex === firstCategoryDimIndex\r\n ? dataIndex\r\n : this.defaultDimValueGetter(itemOpt, dimName, dataIndex, dimIndex);\r\n }\r\n : null;\r\n list.hasItemOption = false;\r\n list.initData(source, null, dimValueGetter);\r\n return list;\r\n }\r\n function isNeedCompleteOrdinalData(source) {\r\n if (source.sourceFormat === SOURCE_FORMAT_ORIGINAL) {\r\n var sampleItem = firstDataNotNull(source.data || []);\r\n return sampleItem != null\r\n && !isArray(getDataItemValue(sampleItem));\r\n }\r\n }\r\n function firstDataNotNull(data) {\r\n var i = 0;\r\n while (i < data.length && data[i] == null) {\r\n i++;\r\n }\r\n return data[i];\r\n }\n\n var Scale = (function () {\r\n function Scale(setting) {\r\n this._setting = setting || {};\r\n this._extent = [Infinity, -Infinity];\r\n }\r\n Scale.prototype.getSetting = function (name) {\r\n return this._setting[name];\r\n };\r\n Scale.prototype.unionExtent = function (other) {\r\n var extent = this._extent;\r\n other[0] < extent[0] && (extent[0] = other[0]);\r\n other[1] > extent[1] && (extent[1] = other[1]);\r\n };\r\n Scale.prototype.unionExtentFromData = function (data, dim) {\r\n this.unionExtent(data.getApproximateExtent(dim));\r\n };\r\n Scale.prototype.getExtent = function () {\r\n return this._extent.slice();\r\n };\r\n Scale.prototype.setExtent = function (start, end) {\r\n var thisExtent = this._extent;\r\n if (!isNaN(start)) {\r\n thisExtent[0] = start;\r\n }\r\n if (!isNaN(end)) {\r\n thisExtent[1] = end;\r\n }\r\n };\r\n Scale.prototype.isInExtentRange = function (value) {\r\n return this._extent[0] <= value && this._extent[1] >= value;\r\n };\r\n Scale.prototype.isBlank = function () {\r\n return this._isBlank;\r\n };\r\n Scale.prototype.setBlank = function (isBlank) {\r\n this._isBlank = isBlank;\r\n };\r\n return Scale;\r\n }());\r\n enableClassManagement(Scale, {\r\n registerWhenExtend: true\r\n });\n\n var OrdinalMeta = (function () {\r\n function OrdinalMeta(opt) {\r\n this.categories = opt.categories || [];\r\n this._needCollect = opt.needCollect;\r\n this._deduplication = opt.deduplication;\r\n }\r\n OrdinalMeta.createByAxisModel = function (axisModel) {\r\n var option = axisModel.option;\r\n var data = option.data;\r\n var categories = data && map(data, getName);\r\n return new OrdinalMeta({\r\n categories: categories,\r\n needCollect: !categories,\r\n deduplication: option.dedplication !== false\r\n });\r\n };\r\n OrdinalMeta.prototype.getOrdinal = function (category) {\r\n return this._getOrCreateMap().get(category);\r\n };\r\n OrdinalMeta.prototype.parseAndCollect = function (category) {\r\n var index;\r\n var needCollect = this._needCollect;\r\n if (typeof category !== 'string' && !needCollect) {\r\n return category;\r\n }\r\n if (needCollect && !this._deduplication) {\r\n index = this.categories.length;\r\n this.categories[index] = category;\r\n return index;\r\n }\r\n var map = this._getOrCreateMap();\r\n index = map.get(category);\r\n if (index == null) {\r\n if (needCollect) {\r\n index = this.categories.length;\r\n this.categories[index] = category;\r\n map.set(category, index);\r\n }\r\n else {\r\n index = NaN;\r\n }\r\n }\r\n return index;\r\n };\r\n OrdinalMeta.prototype._getOrCreateMap = function () {\r\n return this._map || (this._map = createHashMap(this.categories));\r\n };\r\n return OrdinalMeta;\r\n }());\r\n function getName(obj) {\r\n if (isObject(obj) && obj.value != null) {\r\n return obj.value;\r\n }\r\n else {\r\n return obj + '';\r\n }\r\n }\n\n var roundNumber = round$1;\r\n function intervalScaleNiceTicks(extent, splitNumber, minInterval, maxInterval) {\r\n var result = {};\r\n var span = extent[1] - extent[0];\r\n var interval = result.interval = nice(span / splitNumber, true);\r\n if (minInterval != null && interval < minInterval) {\r\n interval = result.interval = minInterval;\r\n }\r\n if (maxInterval != null && interval > maxInterval) {\r\n interval = result.interval = maxInterval;\r\n }\r\n var precision = result.intervalPrecision = getIntervalPrecision(interval);\r\n var niceTickExtent = result.niceTickExtent = [\r\n roundNumber(Math.ceil(extent[0] / interval) * interval, precision),\r\n roundNumber(Math.floor(extent[1] / interval) * interval, precision)\r\n ];\r\n fixExtent(niceTickExtent, extent);\r\n return result;\r\n }\r\n function getIntervalPrecision(interval) {\r\n return getPrecisionSafe(interval) + 2;\r\n }\r\n function clamp(niceTickExtent, idx, extent) {\r\n niceTickExtent[idx] = Math.max(Math.min(niceTickExtent[idx], extent[1]), extent[0]);\r\n }\r\n function fixExtent(niceTickExtent, extent) {\r\n !isFinite(niceTickExtent[0]) && (niceTickExtent[0] = extent[0]);\r\n !isFinite(niceTickExtent[1]) && (niceTickExtent[1] = extent[1]);\r\n clamp(niceTickExtent, 0, extent);\r\n clamp(niceTickExtent, 1, extent);\r\n if (niceTickExtent[0] > niceTickExtent[1]) {\r\n niceTickExtent[0] = niceTickExtent[1];\r\n }\r\n }\r\n function contain$1(val, extent) {\r\n return val >= extent[0] && val <= extent[1];\r\n }\r\n function normalize$1(val, extent) {\r\n if (extent[1] === extent[0]) {\r\n return 0.5;\r\n }\r\n return (val - extent[0]) / (extent[1] - extent[0]);\r\n }\r\n function scale$2(val, extent) {\r\n return val * (extent[1] - extent[0]) + extent[0];\r\n }\n\n var OrdinalScale = (function (_super) {\r\n __extends(OrdinalScale, _super);\r\n function OrdinalScale(setting) {\r\n var _this = _super.call(this, setting) || this;\r\n _this.type = 'ordinal';\r\n var ordinalMeta = _this.getSetting('ordinalMeta');\r\n if (!ordinalMeta) {\r\n ordinalMeta = new OrdinalMeta({});\r\n }\r\n if (isArray(ordinalMeta)) {\r\n ordinalMeta = new OrdinalMeta({\r\n categories: map(ordinalMeta, function (item) { return (isObject(item) ? item.value : item); })\r\n });\r\n }\r\n _this._ordinalMeta = ordinalMeta;\r\n _this._categorySortInfo = [];\r\n _this._extent = _this.getSetting('extent') || [0, ordinalMeta.categories.length - 1];\r\n return _this;\r\n }\r\n OrdinalScale.prototype.parse = function (val) {\r\n return typeof val === 'string'\r\n ? this._ordinalMeta.getOrdinal(val)\r\n : Math.round(val);\r\n };\r\n OrdinalScale.prototype.contain = function (rank) {\r\n rank = this.parse(rank);\r\n return contain$1(rank, this._extent)\r\n && this._ordinalMeta.categories[rank] != null;\r\n };\r\n OrdinalScale.prototype.normalize = function (val) {\r\n val = this.getCategoryIndex(this.parse(val));\r\n return normalize$1(val, this._extent);\r\n };\r\n OrdinalScale.prototype.scale = function (val) {\r\n val = this.getCategoryIndex(val);\r\n return Math.round(scale$2(val, this._extent));\r\n };\r\n OrdinalScale.prototype.getTicks = function () {\r\n var ticks = [];\r\n var extent = this._extent;\r\n var rank = extent[0];\r\n while (rank <= extent[1]) {\r\n ticks.push({\r\n value: this.getCategoryIndex(rank)\r\n });\r\n rank++;\r\n }\r\n return ticks;\r\n };\r\n OrdinalScale.prototype.getMinorTicks = function (splitNumber) {\r\n return;\r\n };\r\n OrdinalScale.prototype.setCategorySortInfo = function (info) {\r\n this._categorySortInfo = info;\r\n };\r\n OrdinalScale.prototype.getCategorySortInfo = function () {\r\n return this._categorySortInfo;\r\n };\r\n OrdinalScale.prototype.getCategoryIndex = function (n) {\r\n if (this._categorySortInfo.length) {\r\n return this._categorySortInfo[n].beforeSortIndex;\r\n }\r\n else {\r\n return n;\r\n }\r\n };\r\n OrdinalScale.prototype.getRawIndex = function (displayIndex) {\r\n if (this._categorySortInfo.length) {\r\n return this._categorySortInfo[displayIndex].ordinalNumber;\r\n }\r\n else {\r\n return displayIndex;\r\n }\r\n };\r\n OrdinalScale.prototype.getLabel = function (tick) {\r\n if (!this.isBlank()) {\r\n var rawIndex = this.getRawIndex(tick.value);\r\n var cateogry = this._ordinalMeta.categories[rawIndex];\r\n return cateogry == null ? '' : cateogry + '';\r\n }\r\n };\r\n OrdinalScale.prototype.count = function () {\r\n return this._extent[1] - this._extent[0] + 1;\r\n };\r\n OrdinalScale.prototype.unionExtentFromData = function (data, dim) {\r\n this.unionExtent(data.getApproximateExtent(dim));\r\n };\r\n OrdinalScale.prototype.isInExtentRange = function (value) {\r\n value = this.getCategoryIndex(value);\r\n return this._extent[0] <= value && this._extent[1] >= value;\r\n };\r\n OrdinalScale.prototype.getOrdinalMeta = function () {\r\n return this._ordinalMeta;\r\n };\r\n OrdinalScale.prototype.niceTicks = function () { };\r\n OrdinalScale.prototype.niceExtent = function () { };\r\n OrdinalScale.type = 'ordinal';\r\n return OrdinalScale;\r\n }(Scale));\r\n Scale.registerClass(OrdinalScale);\n\n var roundNumber$1 = round$1;\r\n var IntervalScale = (function (_super) {\r\n __extends(IntervalScale, _super);\r\n function IntervalScale() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = 'interval';\r\n _this._interval = 0;\r\n _this._intervalPrecision = 2;\r\n return _this;\r\n }\r\n IntervalScale.prototype.parse = function (val) {\r\n return val;\r\n };\r\n IntervalScale.prototype.contain = function (val) {\r\n return contain$1(val, this._extent);\r\n };\r\n IntervalScale.prototype.normalize = function (val) {\r\n return normalize$1(val, this._extent);\r\n };\r\n IntervalScale.prototype.scale = function (val) {\r\n return scale$2(val, this._extent);\r\n };\r\n IntervalScale.prototype.setExtent = function (start, end) {\r\n var thisExtent = this._extent;\r\n if (!isNaN(start)) {\r\n thisExtent[0] = parseFloat(start);\r\n }\r\n if (!isNaN(end)) {\r\n thisExtent[1] = parseFloat(end);\r\n }\r\n };\r\n IntervalScale.prototype.unionExtent = function (other) {\r\n var extent = this._extent;\r\n other[0] < extent[0] && (extent[0] = other[0]);\r\n other[1] > extent[1] && (extent[1] = other[1]);\r\n this.setExtent(extent[0], extent[1]);\r\n };\r\n IntervalScale.prototype.getInterval = function () {\r\n return this._interval;\r\n };\r\n IntervalScale.prototype.setInterval = function (interval) {\r\n this._interval = interval;\r\n this._niceExtent = this._extent.slice();\r\n this._intervalPrecision = getIntervalPrecision(interval);\r\n };\r\n IntervalScale.prototype.getTicks = function (expandToNicedExtent) {\r\n var interval = this._interval;\r\n var extent = this._extent;\r\n var niceTickExtent = this._niceExtent;\r\n var intervalPrecision = this._intervalPrecision;\r\n var ticks = [];\r\n if (!interval) {\r\n return ticks;\r\n }\r\n var safeLimit = 10000;\r\n if (extent[0] < niceTickExtent[0]) {\r\n if (expandToNicedExtent) {\r\n ticks.push({\r\n value: roundNumber$1(niceTickExtent[0] - interval, intervalPrecision)\r\n });\r\n }\r\n else {\r\n ticks.push({\r\n value: extent[0]\r\n });\r\n }\r\n }\r\n var tick = niceTickExtent[0];\r\n while (tick <= niceTickExtent[1]) {\r\n ticks.push({\r\n value: tick\r\n });\r\n tick = roundNumber$1(tick + interval, intervalPrecision);\r\n if (tick === ticks[ticks.length - 1].value) {\r\n break;\r\n }\r\n if (ticks.length > safeLimit) {\r\n return [];\r\n }\r\n }\r\n var lastNiceTick = ticks.length ? ticks[ticks.length - 1].value : niceTickExtent[1];\r\n if (extent[1] > lastNiceTick) {\r\n if (expandToNicedExtent) {\r\n ticks.push({\r\n value: roundNumber$1(lastNiceTick + interval, intervalPrecision)\r\n });\r\n }\r\n else {\r\n ticks.push({\r\n value: extent[1]\r\n });\r\n }\r\n }\r\n return ticks;\r\n };\r\n IntervalScale.prototype.getMinorTicks = function (splitNumber) {\r\n var ticks = this.getTicks(true);\r\n var minorTicks = [];\r\n var extent = this.getExtent();\r\n for (var i = 1; i < ticks.length; i++) {\r\n var nextTick = ticks[i];\r\n var prevTick = ticks[i - 1];\r\n var count = 0;\r\n var minorTicksGroup = [];\r\n var interval = nextTick.value - prevTick.value;\r\n var minorInterval = interval / splitNumber;\r\n while (count < splitNumber - 1) {\r\n var minorTick = roundNumber$1(prevTick.value + (count + 1) * minorInterval);\r\n if (minorTick > extent[0] && minorTick < extent[1]) {\r\n minorTicksGroup.push(minorTick);\r\n }\r\n count++;\r\n }\r\n minorTicks.push(minorTicksGroup);\r\n }\r\n return minorTicks;\r\n };\r\n IntervalScale.prototype.getLabel = function (data, opt) {\r\n if (data == null) {\r\n return '';\r\n }\r\n var precision = opt && opt.precision;\r\n if (precision == null) {\r\n precision = getPrecisionSafe(data.value) || 0;\r\n }\r\n else if (precision === 'auto') {\r\n precision = this._intervalPrecision;\r\n }\r\n var dataNum = roundNumber$1(data.value, precision, true);\r\n return addCommas(dataNum);\r\n };\r\n IntervalScale.prototype.niceTicks = function (splitNumber, minInterval, maxInterval) {\r\n splitNumber = splitNumber || 5;\r\n var extent = this._extent;\r\n var span = extent[1] - extent[0];\r\n if (!isFinite(span)) {\r\n return;\r\n }\r\n if (span < 0) {\r\n span = -span;\r\n extent.reverse();\r\n }\r\n var result = intervalScaleNiceTicks(extent, splitNumber, minInterval, maxInterval);\r\n this._intervalPrecision = result.intervalPrecision;\r\n this._interval = result.interval;\r\n this._niceExtent = result.niceTickExtent;\r\n };\r\n IntervalScale.prototype.niceExtent = function (opt) {\r\n var extent = this._extent;\r\n if (extent[0] === extent[1]) {\r\n if (extent[0] !== 0) {\r\n var expandSize = extent[0];\r\n if (!opt.fixMax) {\r\n extent[1] += expandSize / 2;\r\n extent[0] -= expandSize / 2;\r\n }\r\n else {\r\n extent[0] -= expandSize / 2;\r\n }\r\n }\r\n else {\r\n extent[1] = 1;\r\n }\r\n }\r\n var span = extent[1] - extent[0];\r\n if (!isFinite(span)) {\r\n extent[0] = 0;\r\n extent[1] = 1;\r\n }\r\n this.niceTicks(opt.splitNumber, opt.minInterval, opt.maxInterval);\r\n var interval = this._interval;\r\n if (!opt.fixMin) {\r\n extent[0] = roundNumber$1(Math.floor(extent[0] / interval) * interval);\r\n }\r\n if (!opt.fixMax) {\r\n extent[1] = roundNumber$1(Math.ceil(extent[1] / interval) * interval);\r\n }\r\n };\r\n IntervalScale.type = 'interval';\r\n return IntervalScale;\r\n }(Scale));\r\n Scale.registerClass(IntervalScale);\n\n var STACK_PREFIX = '__ec_stack_';\r\n var LARGE_BAR_MIN_WIDTH = 0.5;\r\n var LargeArr = typeof Float32Array !== 'undefined' ? Float32Array : Array;\r\n function getSeriesStackId(seriesModel) {\r\n return seriesModel.get('stack') || STACK_PREFIX + seriesModel.seriesIndex;\r\n }\r\n function getAxisKey(axis) {\r\n return axis.dim + axis.index;\r\n }\r\n function getLayoutOnAxis(opt) {\r\n var params = [];\r\n var baseAxis = opt.axis;\r\n var axisKey = 'axis0';\r\n if (baseAxis.type !== 'category') {\r\n return;\r\n }\r\n var bandWidth = baseAxis.getBandWidth();\r\n for (var i = 0; i < opt.count || 0; i++) {\r\n params.push(defaults({\r\n bandWidth: bandWidth,\r\n axisKey: axisKey,\r\n stackId: STACK_PREFIX + i\r\n }, opt));\r\n }\r\n var widthAndOffsets = doCalBarWidthAndOffset(params);\r\n var result = [];\r\n for (var i = 0; i < opt.count; i++) {\r\n var item = widthAndOffsets[axisKey][STACK_PREFIX + i];\r\n item.offsetCenter = item.offset + item.width / 2;\r\n result.push(item);\r\n }\r\n return result;\r\n }\r\n function prepareLayoutBarSeries(seriesType, ecModel) {\r\n var seriesModels = [];\r\n ecModel.eachSeriesByType(seriesType, function (seriesModel) {\r\n if (isOnCartesian(seriesModel) && !isInLargeMode(seriesModel)) {\r\n seriesModels.push(seriesModel);\r\n }\r\n });\r\n return seriesModels;\r\n }\r\n function getValueAxesMinGaps(barSeries) {\r\n var axisValues = {};\r\n each(barSeries, function (seriesModel) {\r\n var cartesian = seriesModel.coordinateSystem;\r\n var baseAxis = cartesian.getBaseAxis();\r\n if (baseAxis.type !== 'time' && baseAxis.type !== 'value') {\r\n return;\r\n }\r\n var data = seriesModel.getData();\r\n var key = baseAxis.dim + '_' + baseAxis.index;\r\n var dim = data.mapDimension(baseAxis.dim);\r\n for (var i = 0, cnt = data.count(); i < cnt; ++i) {\r\n var value = data.get(dim, i);\r\n if (!axisValues[key]) {\r\n axisValues[key] = [value];\r\n }\r\n else {\r\n axisValues[key].push(value);\r\n }\r\n }\r\n });\r\n var axisMinGaps = {};\r\n for (var key in axisValues) {\r\n if (axisValues.hasOwnProperty(key)) {\r\n var valuesInAxis = axisValues[key];\r\n if (valuesInAxis) {\r\n valuesInAxis.sort(function (a, b) {\r\n return a - b;\r\n });\r\n var min = null;\r\n for (var j = 1; j < valuesInAxis.length; ++j) {\r\n var delta = valuesInAxis[j] - valuesInAxis[j - 1];\r\n if (delta > 0) {\r\n min = min === null ? delta : Math.min(min, delta);\r\n }\r\n }\r\n axisMinGaps[key] = min;\r\n }\r\n }\r\n }\r\n return axisMinGaps;\r\n }\r\n function makeColumnLayout(barSeries) {\r\n var axisMinGaps = getValueAxesMinGaps(barSeries);\r\n var seriesInfoList = [];\r\n each(barSeries, function (seriesModel) {\r\n var cartesian = seriesModel.coordinateSystem;\r\n var baseAxis = cartesian.getBaseAxis();\r\n var axisExtent = baseAxis.getExtent();\r\n var bandWidth;\r\n if (baseAxis.type === 'category') {\r\n bandWidth = baseAxis.getBandWidth();\r\n }\r\n else if (baseAxis.type === 'value' || baseAxis.type === 'time') {\r\n var key = baseAxis.dim + '_' + baseAxis.index;\r\n var minGap = axisMinGaps[key];\r\n var extentSpan = Math.abs(axisExtent[1] - axisExtent[0]);\r\n var scale = baseAxis.scale.getExtent();\r\n var scaleSpan = Math.abs(scale[1] - scale[0]);\r\n bandWidth = minGap\r\n ? extentSpan / scaleSpan * minGap\r\n : extentSpan;\r\n }\r\n else {\r\n var data = seriesModel.getData();\r\n bandWidth = Math.abs(axisExtent[1] - axisExtent[0]) / data.count();\r\n }\r\n var barWidth = parsePercent$2(seriesModel.get('barWidth'), bandWidth);\r\n var barMaxWidth = parsePercent$2(seriesModel.get('barMaxWidth'), bandWidth);\r\n var barMinWidth = parsePercent$2(seriesModel.get('barMinWidth') || 1, bandWidth);\r\n var barGap = seriesModel.get('barGap');\r\n var barCategoryGap = seriesModel.get('barCategoryGap');\r\n seriesInfoList.push({\r\n bandWidth: bandWidth,\r\n barWidth: barWidth,\r\n barMaxWidth: barMaxWidth,\r\n barMinWidth: barMinWidth,\r\n barGap: barGap,\r\n barCategoryGap: barCategoryGap,\r\n axisKey: getAxisKey(baseAxis),\r\n stackId: getSeriesStackId(seriesModel)\r\n });\r\n });\r\n return doCalBarWidthAndOffset(seriesInfoList);\r\n }\r\n function doCalBarWidthAndOffset(seriesInfoList) {\r\n var columnsMap = {};\r\n each(seriesInfoList, function (seriesInfo, idx) {\r\n var axisKey = seriesInfo.axisKey;\r\n var bandWidth = seriesInfo.bandWidth;\r\n var columnsOnAxis = columnsMap[axisKey] || {\r\n bandWidth: bandWidth,\r\n remainedWidth: bandWidth,\r\n autoWidthCount: 0,\r\n categoryGap: null,\r\n gap: '20%',\r\n stacks: {}\r\n };\r\n var stacks = columnsOnAxis.stacks;\r\n columnsMap[axisKey] = columnsOnAxis;\r\n var stackId = seriesInfo.stackId;\r\n if (!stacks[stackId]) {\r\n columnsOnAxis.autoWidthCount++;\r\n }\r\n stacks[stackId] = stacks[stackId] || {\r\n width: 0,\r\n maxWidth: 0\r\n };\r\n var barWidth = seriesInfo.barWidth;\r\n if (barWidth && !stacks[stackId].width) {\r\n stacks[stackId].width = barWidth;\r\n barWidth = Math.min(columnsOnAxis.remainedWidth, barWidth);\r\n columnsOnAxis.remainedWidth -= barWidth;\r\n }\r\n var barMaxWidth = seriesInfo.barMaxWidth;\r\n barMaxWidth && (stacks[stackId].maxWidth = barMaxWidth);\r\n var barMinWidth = seriesInfo.barMinWidth;\r\n barMinWidth && (stacks[stackId].minWidth = barMinWidth);\r\n var barGap = seriesInfo.barGap;\r\n (barGap != null) && (columnsOnAxis.gap = barGap);\r\n var barCategoryGap = seriesInfo.barCategoryGap;\r\n (barCategoryGap != null) && (columnsOnAxis.categoryGap = barCategoryGap);\r\n });\r\n var result = {};\r\n each(columnsMap, function (columnsOnAxis, coordSysName) {\r\n result[coordSysName] = {};\r\n var stacks = columnsOnAxis.stacks;\r\n var bandWidth = columnsOnAxis.bandWidth;\r\n var categoryGapPercent = columnsOnAxis.categoryGap;\r\n if (categoryGapPercent == null) {\r\n var columnCount = keys(stacks).length;\r\n categoryGapPercent = Math.max((35 - columnCount * 4), 15) + '%';\r\n }\r\n var categoryGap = parsePercent$2(categoryGapPercent, bandWidth);\r\n var barGapPercent = parsePercent$2(columnsOnAxis.gap, 1);\r\n var remainedWidth = columnsOnAxis.remainedWidth;\r\n var autoWidthCount = columnsOnAxis.autoWidthCount;\r\n var autoWidth = (remainedWidth - categoryGap)\r\n / (autoWidthCount + (autoWidthCount - 1) * barGapPercent);\r\n autoWidth = Math.max(autoWidth, 0);\r\n each(stacks, function (column) {\r\n var maxWidth = column.maxWidth;\r\n var minWidth = column.minWidth;\r\n if (!column.width) {\r\n var finalWidth = autoWidth;\r\n if (maxWidth && maxWidth < finalWidth) {\r\n finalWidth = Math.min(maxWidth, remainedWidth);\r\n }\r\n if (minWidth && minWidth > finalWidth) {\r\n finalWidth = minWidth;\r\n }\r\n if (finalWidth !== autoWidth) {\r\n column.width = finalWidth;\r\n remainedWidth -= finalWidth + barGapPercent * finalWidth;\r\n autoWidthCount--;\r\n }\r\n }\r\n else {\r\n var finalWidth = column.width;\r\n if (maxWidth) {\r\n finalWidth = Math.min(finalWidth, maxWidth);\r\n }\r\n if (minWidth) {\r\n finalWidth = Math.max(finalWidth, minWidth);\r\n }\r\n column.width = finalWidth;\r\n remainedWidth -= finalWidth + barGapPercent * finalWidth;\r\n autoWidthCount--;\r\n }\r\n });\r\n autoWidth = (remainedWidth - categoryGap)\r\n / (autoWidthCount + (autoWidthCount - 1) * barGapPercent);\r\n autoWidth = Math.max(autoWidth, 0);\r\n var widthSum = 0;\r\n var lastColumn;\r\n each(stacks, function (column, idx) {\r\n if (!column.width) {\r\n column.width = autoWidth;\r\n }\r\n lastColumn = column;\r\n widthSum += column.width * (1 + barGapPercent);\r\n });\r\n if (lastColumn) {\r\n widthSum -= lastColumn.width * barGapPercent;\r\n }\r\n var offset = -widthSum / 2;\r\n each(stacks, function (column, stackId) {\r\n result[coordSysName][stackId] = result[coordSysName][stackId] || {\r\n bandWidth: bandWidth,\r\n offset: offset,\r\n width: column.width\r\n };\r\n offset += column.width * (1 + barGapPercent);\r\n });\r\n });\r\n return result;\r\n }\r\n function retrieveColumnLayout(barWidthAndOffset, axis, seriesModel) {\r\n if (barWidthAndOffset && axis) {\r\n var result = barWidthAndOffset[getAxisKey(axis)];\r\n if (result != null && seriesModel != null) {\r\n return result[getSeriesStackId(seriesModel)];\r\n }\r\n return result;\r\n }\r\n }\r\n function layout(seriesType, ecModel) {\r\n var seriesModels = prepareLayoutBarSeries(seriesType, ecModel);\r\n var barWidthAndOffset = makeColumnLayout(seriesModels);\r\n var lastStackCoords = {};\r\n each(seriesModels, function (seriesModel) {\r\n var data = seriesModel.getData();\r\n var cartesian = seriesModel.coordinateSystem;\r\n var baseAxis = cartesian.getBaseAxis();\r\n var stackId = getSeriesStackId(seriesModel);\r\n var columnLayoutInfo = barWidthAndOffset[getAxisKey(baseAxis)][stackId];\r\n var columnOffset = columnLayoutInfo.offset;\r\n var columnWidth = columnLayoutInfo.width;\r\n var valueAxis = cartesian.getOtherAxis(baseAxis);\r\n var barMinHeight = seriesModel.get('barMinHeight') || 0;\r\n lastStackCoords[stackId] = lastStackCoords[stackId] || [];\r\n data.setLayout({\r\n bandWidth: columnLayoutInfo.bandWidth,\r\n offset: columnOffset,\r\n size: columnWidth\r\n });\r\n var valueDim = data.mapDimension(valueAxis.dim);\r\n var baseDim = data.mapDimension(baseAxis.dim);\r\n var stacked = isDimensionStacked(data, valueDim);\r\n var isValueAxisH = valueAxis.isHorizontal();\r\n var valueAxisStart = getValueAxisStart(baseAxis, valueAxis);\r\n for (var idx = 0, len = data.count(); idx < len; idx++) {\r\n var value = data.get(valueDim, idx);\r\n var baseValue = data.get(baseDim, idx);\r\n var sign = value >= 0 ? 'p' : 'n';\r\n var baseCoord = valueAxisStart;\r\n if (stacked) {\r\n if (!lastStackCoords[stackId][baseValue]) {\r\n lastStackCoords[stackId][baseValue] = {\r\n p: valueAxisStart,\r\n n: valueAxisStart\r\n };\r\n }\r\n baseCoord = lastStackCoords[stackId][baseValue][sign];\r\n }\r\n var x = void 0;\r\n var y = void 0;\r\n var width = void 0;\r\n var height = void 0;\r\n if (isValueAxisH) {\r\n var coord = cartesian.dataToPoint([value, baseValue]);\r\n x = baseCoord;\r\n y = coord[1] + columnOffset;\r\n width = coord[0] - valueAxisStart;\r\n height = columnWidth;\r\n if (Math.abs(width) < barMinHeight) {\r\n width = (width < 0 ? -1 : 1) * barMinHeight;\r\n }\r\n if (!isNaN(width)) {\r\n stacked && (lastStackCoords[stackId][baseValue][sign] += width);\r\n }\r\n }\r\n else {\r\n var coord = cartesian.dataToPoint([baseValue, value]);\r\n x = coord[0] + columnOffset;\r\n y = baseCoord;\r\n width = columnWidth;\r\n height = coord[1] - valueAxisStart;\r\n if (Math.abs(height) < barMinHeight) {\r\n height = (height <= 0 ? -1 : 1) * barMinHeight;\r\n }\r\n if (!isNaN(height)) {\r\n stacked && (lastStackCoords[stackId][baseValue][sign] += height);\r\n }\r\n }\r\n data.setItemLayout(idx, {\r\n x: x,\r\n y: y,\r\n width: width,\r\n height: height\r\n });\r\n }\r\n });\r\n }\r\n var largeLayout = {\r\n seriesType: 'bar',\r\n plan: createRenderPlanner(),\r\n reset: function (seriesModel) {\r\n if (!isOnCartesian(seriesModel) || !isInLargeMode(seriesModel)) {\r\n return;\r\n }\r\n var data = seriesModel.getData();\r\n var cartesian = seriesModel.coordinateSystem;\r\n var coordLayout = cartesian.master.getRect();\r\n var baseAxis = cartesian.getBaseAxis();\r\n var valueAxis = cartesian.getOtherAxis(baseAxis);\r\n var valueDim = data.mapDimension(valueAxis.dim);\r\n var baseDim = data.mapDimension(baseAxis.dim);\r\n var valueAxisHorizontal = valueAxis.isHorizontal();\r\n var valueDimIdx = valueAxisHorizontal ? 0 : 1;\r\n var barWidth = retrieveColumnLayout(makeColumnLayout([seriesModel]), baseAxis, seriesModel).width;\r\n if (!(barWidth > LARGE_BAR_MIN_WIDTH)) {\r\n barWidth = LARGE_BAR_MIN_WIDTH;\r\n }\r\n return {\r\n progress: function (params, data) {\r\n var count = params.count;\r\n var largePoints = new LargeArr(count * 2);\r\n var largeBackgroundPoints = new LargeArr(count * 2);\r\n var largeDataIndices = new LargeArr(count);\r\n var dataIndex;\r\n var coord = [];\r\n var valuePair = [];\r\n var pointsOffset = 0;\r\n var idxOffset = 0;\r\n while ((dataIndex = params.next()) != null) {\r\n valuePair[valueDimIdx] = data.get(valueDim, dataIndex);\r\n valuePair[1 - valueDimIdx] = data.get(baseDim, dataIndex);\r\n coord = cartesian.dataToPoint(valuePair, null, coord);\r\n largeBackgroundPoints[pointsOffset] =\r\n valueAxisHorizontal ? coordLayout.x + coordLayout.width : coord[0];\r\n largePoints[pointsOffset++] = coord[0];\r\n largeBackgroundPoints[pointsOffset] =\r\n valueAxisHorizontal ? coord[1] : coordLayout.y + coordLayout.height;\r\n largePoints[pointsOffset++] = coord[1];\r\n largeDataIndices[idxOffset++] = dataIndex;\r\n }\r\n data.setLayout({\r\n largePoints: largePoints,\r\n largeDataIndices: largeDataIndices,\r\n largeBackgroundPoints: largeBackgroundPoints,\r\n barWidth: barWidth,\r\n valueAxisStart: getValueAxisStart(baseAxis, valueAxis),\r\n backgroundStart: valueAxisHorizontal ? coordLayout.x : coordLayout.y,\r\n valueAxisHorizontal: valueAxisHorizontal\r\n });\r\n }\r\n };\r\n }\r\n };\r\n function isOnCartesian(seriesModel) {\r\n return seriesModel.coordinateSystem && seriesModel.coordinateSystem.type === 'cartesian2d';\r\n }\r\n function isInLargeMode(seriesModel) {\r\n return seriesModel.pipelineContext && seriesModel.pipelineContext.large;\r\n }\r\n function getValueAxisStart(baseAxis, valueAxis, stacked) {\r\n return valueAxis.toGlobalCoord(valueAxis.dataToCoord(valueAxis.type === 'log' ? 1 : 0));\r\n }\n\n var bisect = function (a, x, lo, hi) {\r\n while (lo < hi) {\r\n var mid = lo + hi >>> 1;\r\n if (a[mid][1] < x) {\r\n lo = mid + 1;\r\n }\r\n else {\r\n hi = mid;\r\n }\r\n }\r\n return lo;\r\n };\r\n var TimeScale = (function (_super) {\r\n __extends(TimeScale, _super);\r\n function TimeScale(settings) {\r\n var _this = _super.call(this, settings) || this;\r\n _this.type = 'time';\r\n return _this;\r\n }\r\n TimeScale.prototype.getLabel = function (tick) {\r\n var useUTC = this.getSetting('useUTC');\r\n return format(tick.value, fullLeveledFormatter[getDefaultFormatPrecisionOfInterval(getPrimaryTimeUnit(this._minLevelUnit))] || fullLeveledFormatter.second, useUTC, this.getSetting('locale'));\r\n };\r\n TimeScale.prototype.getFormattedLabel = function (tick, idx, labelFormatter) {\r\n var isUTC = this.getSetting('useUTC');\r\n var lang = this.getSetting('locale');\r\n return leveledFormat(tick, idx, labelFormatter, lang, isUTC);\r\n };\r\n TimeScale.prototype.getTicks = function (expandToNicedExtent) {\r\n var interval = this._interval;\r\n var extent = this._extent;\r\n var ticks = [];\r\n if (!interval) {\r\n return ticks;\r\n }\r\n ticks.push({\r\n value: extent[0],\r\n level: 0\r\n });\r\n var useUTC = this.getSetting('useUTC');\r\n var innerTicks = getIntervalTicks(this._minLevelUnit, this._approxInterval, useUTC, extent);\r\n ticks = ticks.concat(innerTicks);\r\n ticks.push({\r\n value: extent[1],\r\n level: 0\r\n });\r\n return ticks;\r\n };\r\n TimeScale.prototype.niceExtent = function (opt) {\r\n var extent = this._extent;\r\n if (extent[0] === extent[1]) {\r\n extent[0] -= ONE_DAY;\r\n extent[1] += ONE_DAY;\r\n }\r\n if (extent[1] === -Infinity && extent[0] === Infinity) {\r\n var d = new Date();\r\n extent[1] = +new Date(d.getFullYear(), d.getMonth(), d.getDate());\r\n extent[0] = extent[1] - ONE_DAY;\r\n }\r\n this.niceTicks(opt.splitNumber, opt.minInterval, opt.maxInterval);\r\n };\r\n TimeScale.prototype.niceTicks = function (approxTickNum, minInterval, maxInterval) {\r\n approxTickNum = approxTickNum || 10;\r\n var extent = this._extent;\r\n var span = extent[1] - extent[0];\r\n this._approxInterval = span / approxTickNum;\r\n if (minInterval != null && this._approxInterval < minInterval) {\r\n this._approxInterval = minInterval;\r\n }\r\n if (maxInterval != null && this._approxInterval > maxInterval) {\r\n this._approxInterval = maxInterval;\r\n }\r\n var scaleIntervalsLen = scaleIntervals.length;\r\n var idx = Math.min(bisect(scaleIntervals, this._approxInterval, 0, scaleIntervalsLen), scaleIntervalsLen - 1);\r\n this._interval = scaleIntervals[idx][1];\r\n this._minLevelUnit = scaleIntervals[Math.max(idx - 1, 0)][0];\r\n };\r\n TimeScale.prototype.parse = function (val) {\r\n return typeof val === 'number' ? val : +parseDate(val);\r\n };\r\n TimeScale.prototype.contain = function (val) {\r\n return contain$1(this.parse(val), this._extent);\r\n };\r\n TimeScale.prototype.normalize = function (val) {\r\n return normalize$1(this.parse(val), this._extent);\r\n };\r\n TimeScale.prototype.scale = function (val) {\r\n return scale$2(val, this._extent);\r\n };\r\n TimeScale.type = 'time';\r\n return TimeScale;\r\n }(IntervalScale));\r\n var scaleIntervals = [\r\n ['second', ONE_SECOND],\r\n ['minute', ONE_MINUTE],\r\n ['hour', ONE_HOUR],\r\n ['quarter-day', ONE_HOUR * 6],\r\n ['half-day', ONE_HOUR * 12],\r\n ['day', ONE_DAY * 1.2],\r\n ['half-week', ONE_DAY * 3.5],\r\n ['week', ONE_DAY * 7],\r\n ['month', ONE_DAY * 31],\r\n ['quarter', ONE_DAY * 95],\r\n ['half-year', ONE_YEAR / 2],\r\n ['year', ONE_YEAR]\r\n ];\r\n function isUnitValueSame(unit, valueA, valueB, isUTC) {\r\n var dateA = parseDate(valueA);\r\n var dateB = parseDate(valueB);\r\n var isSame = function (unit) {\r\n return getUnitValue(dateA, unit, isUTC)\r\n === getUnitValue(dateB, unit, isUTC);\r\n };\r\n var isSameYear = function () { return isSame('year'); };\r\n var isSameMonth = function () { return isSameYear() && isSame('month'); };\r\n var isSameDay = function () { return isSameMonth() && isSame('day'); };\r\n var isSameHour = function () { return isSameDay() && isSame('hour'); };\r\n var isSameMinute = function () { return isSameHour() && isSame('minute'); };\r\n var isSameSecond = function () { return isSameMinute() && isSame('second'); };\r\n var isSameMilliSecond = function () { return isSameSecond() && isSame('millisecond'); };\r\n switch (unit) {\r\n case 'year':\r\n return isSameYear();\r\n case 'month':\r\n return isSameMonth();\r\n case 'day':\r\n return isSameDay();\r\n case 'hour':\r\n return isSameHour();\r\n case 'minute':\r\n return isSameMinute();\r\n case 'second':\r\n return isSameSecond();\r\n case 'millisecond':\r\n return isSameMilliSecond();\r\n }\r\n }\r\n function getDateInterval(approxInterval, daysInMonth) {\r\n approxInterval /= ONE_DAY;\r\n return approxInterval > 16 ? 16\r\n : approxInterval > 7.5 ? 7\r\n : approxInterval > 3.5 ? 4\r\n : approxInterval > 1.5 ? 2 : 1;\r\n }\r\n function getMonthInterval(approxInterval) {\r\n var APPROX_ONE_MONTH = 30 * ONE_DAY;\r\n approxInterval /= APPROX_ONE_MONTH;\r\n return approxInterval > 6 ? 6\r\n : approxInterval > 3 ? 3\r\n : approxInterval > 2 ? 2 : 1;\r\n }\r\n function getHourInterval(approxInterval) {\r\n approxInterval /= ONE_HOUR;\r\n return approxInterval > 12 ? 12\r\n : approxInterval > 6 ? 6\r\n : approxInterval > 3.5 ? 4\r\n : approxInterval > 2 ? 2 : 1;\r\n }\r\n function getMinutesAndSecondsInterval(approxInterval, isMinutes) {\r\n approxInterval /= isMinutes ? ONE_MINUTE : ONE_SECOND;\r\n return approxInterval > 30 ? 30\r\n : approxInterval > 20 ? 20\r\n : approxInterval > 15 ? 15\r\n : approxInterval > 10 ? 10\r\n : approxInterval > 5 ? 5\r\n : approxInterval > 2 ? 2 : 1;\r\n }\r\n function getMillisecondsInterval(approxInterval) {\r\n return nice(approxInterval, true);\r\n }\r\n function getFirstTimestampOfUnit(date, unitName, isUTC) {\r\n var outDate = new Date(date);\r\n switch (getPrimaryTimeUnit(unitName)) {\r\n case 'year':\r\n case 'month':\r\n outDate[monthSetterName(isUTC)](0);\r\n case 'day':\r\n outDate[dateSetterName(isUTC)](1);\r\n case 'hour':\r\n outDate[hoursSetterName(isUTC)](0);\r\n case 'minute':\r\n outDate[minutesSetterName(isUTC)](0);\r\n case 'second':\r\n outDate[secondsSetterName(isUTC)](0);\r\n outDate[millisecondsSetterName(isUTC)](0);\r\n }\r\n return outDate.getTime();\r\n }\r\n function getIntervalTicks(bottomUnitName, approxInterval, isUTC, extent) {\r\n var safeLimit = 10000;\r\n var unitNames = timeUnits;\r\n var iter = 0;\r\n function addTicksInSpan(interval, minTimestamp, maxTimestamp, getMethodName, setMethodName, isDate, out) {\r\n var date = new Date(minTimestamp);\r\n var dateTime = minTimestamp;\r\n var d = date[getMethodName]();\r\n while (dateTime < maxTimestamp && dateTime <= extent[1]) {\r\n out.push({\r\n value: dateTime\r\n });\r\n d += interval;\r\n date[setMethodName](d);\r\n dateTime = date.getTime();\r\n }\r\n out.push({\r\n value: dateTime,\r\n notAdd: true\r\n });\r\n }\r\n function addLevelTicks(unitName, lastLevelTicks, levelTicks) {\r\n var newAddedTicks = [];\r\n var isFirstLevel = !lastLevelTicks.length;\r\n if (isUnitValueSame(getPrimaryTimeUnit(unitName), extent[0], extent[1], isUTC)) {\r\n return;\r\n }\r\n if (isFirstLevel) {\r\n lastLevelTicks = [{\r\n value: getFirstTimestampOfUnit(new Date(extent[0]), unitName, isUTC)\r\n }, {\r\n value: extent[1]\r\n }];\r\n }\r\n for (var i = 0; i < lastLevelTicks.length - 1; i++) {\r\n var startTick = lastLevelTicks[i].value;\r\n var endTick = lastLevelTicks[i + 1].value;\r\n if (startTick === endTick) {\r\n continue;\r\n }\r\n var interval = void 0;\r\n var getterName = void 0;\r\n var setterName = void 0;\r\n var isDate = false;\r\n switch (unitName) {\r\n case 'year':\r\n interval = Math.max(1, Math.round(approxInterval / ONE_DAY / 365));\r\n getterName = fullYearGetterName(isUTC);\r\n setterName = fullYearSetterName(isUTC);\r\n break;\r\n case 'half-year':\r\n case 'quarter':\r\n case 'month':\r\n interval = getMonthInterval(approxInterval);\r\n getterName = monthGetterName(isUTC);\r\n setterName = monthSetterName(isUTC);\r\n break;\r\n case 'week':\r\n case 'half-week':\r\n case 'day':\r\n interval = getDateInterval(approxInterval);\r\n getterName = dateGetterName(isUTC);\r\n setterName = dateSetterName(isUTC);\r\n isDate = true;\r\n break;\r\n case 'half-day':\r\n case 'quarter-day':\r\n case 'hour':\r\n interval = getHourInterval(approxInterval);\r\n getterName = hoursGetterName(isUTC);\r\n setterName = hoursSetterName(isUTC);\r\n break;\r\n case 'minute':\r\n interval = getMinutesAndSecondsInterval(approxInterval, true);\r\n getterName = minutesGetterName(isUTC);\r\n setterName = minutesSetterName(isUTC);\r\n break;\r\n case 'second':\r\n interval = getMinutesAndSecondsInterval(approxInterval, false);\r\n getterName = secondsGetterName(isUTC);\r\n setterName = secondsSetterName(isUTC);\r\n break;\r\n case 'millisecond':\r\n interval = getMillisecondsInterval(approxInterval);\r\n getterName = millisecondsGetterName(isUTC);\r\n setterName = millisecondsSetterName(isUTC);\r\n break;\r\n }\r\n addTicksInSpan(interval, startTick, endTick, getterName, setterName, isDate, newAddedTicks);\r\n if (unitName === 'year' && levelTicks.length > 1 && i === 0) {\r\n levelTicks.unshift({\r\n value: levelTicks[0].value - interval\r\n });\r\n }\r\n }\r\n for (var i = 0; i < newAddedTicks.length; i++) {\r\n levelTicks.push(newAddedTicks[i]);\r\n }\r\n return newAddedTicks;\r\n }\r\n var levelsTicks = [];\r\n var currentLevelTicks = [];\r\n var tickCount = 0;\r\n var lastLevelTickCount = 0;\r\n for (var i = 0; i < unitNames.length && iter++ < safeLimit; ++i) {\r\n var primaryTimeUnit = getPrimaryTimeUnit(unitNames[i]);\r\n if (!isPrimaryTimeUnit(unitNames[i])) {\r\n continue;\r\n }\r\n addLevelTicks(unitNames[i], levelsTicks[levelsTicks.length - 1] || [], currentLevelTicks);\r\n var nextPrimaryTimeUnit = unitNames[i + 1] ? getPrimaryTimeUnit(unitNames[i + 1]) : null;\r\n if (primaryTimeUnit !== nextPrimaryTimeUnit) {\r\n if (currentLevelTicks.length) {\r\n lastLevelTickCount = tickCount;\r\n currentLevelTicks.sort(function (a, b) { return a.value - b.value; });\r\n var levelTicksRemoveDuplicated = [];\r\n for (var i_1 = 0; i_1 < currentLevelTicks.length; ++i_1) {\r\n var tickValue = currentLevelTicks[i_1].value;\r\n if (i_1 === 0 || currentLevelTicks[i_1 - 1].value !== tickValue) {\r\n levelTicksRemoveDuplicated.push(currentLevelTicks[i_1]);\r\n if (tickValue >= extent[0] && tickValue <= extent[1]) {\r\n tickCount++;\r\n }\r\n }\r\n }\r\n var targetTickNum = (extent[1] - extent[0]) / approxInterval;\r\n if (tickCount > targetTickNum * 1.5 && lastLevelTickCount > targetTickNum / 1.5) {\r\n break;\r\n }\r\n levelsTicks.push(levelTicksRemoveDuplicated);\r\n if (tickCount > targetTickNum || bottomUnitName === unitNames[i]) {\r\n break;\r\n }\r\n }\r\n currentLevelTicks = [];\r\n }\r\n }\r\n if (__DEV__) {\r\n if (iter >= safeLimit) {\r\n warn('Exceed safe limit.');\r\n }\r\n }\r\n var levelsTicksInExtent = filter(map(levelsTicks, function (levelTicks) {\r\n return filter(levelTicks, function (tick) { return tick.value >= extent[0] && tick.value <= extent[1] && !tick.notAdd; });\r\n }), function (levelTicks) { return levelTicks.length > 0; });\r\n var ticks = [];\r\n var maxLevel = levelsTicksInExtent.length - 1;\r\n for (var i = 0; i < levelsTicksInExtent.length; ++i) {\r\n var levelTicks = levelsTicksInExtent[i];\r\n for (var k = 0; k < levelTicks.length; ++k) {\r\n ticks.push({\r\n value: levelTicks[k].value,\r\n level: maxLevel - i\r\n });\r\n }\r\n }\r\n ticks.sort(function (a, b) { return a.value - b.value; });\r\n var result = [];\r\n for (var i = 0; i < ticks.length; ++i) {\r\n if (i === 0 || ticks[i].value !== ticks[i - 1].value) {\r\n result.push(ticks[i]);\r\n }\r\n }\r\n return result;\r\n }\r\n Scale.registerClass(TimeScale);\n\n var scaleProto = Scale.prototype;\r\n var intervalScaleProto = IntervalScale.prototype;\r\n var getPrecisionSafe$1 = getPrecisionSafe;\r\n var roundingErrorFix = round$1;\r\n var mathFloor$1 = Math.floor;\r\n var mathCeil = Math.ceil;\r\n var mathPow$1 = Math.pow;\r\n var mathLog = Math.log;\r\n var LogScale = (function (_super) {\r\n __extends(LogScale, _super);\r\n function LogScale() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = 'log';\r\n _this.base = 10;\r\n _this._originalScale = new IntervalScale();\r\n _this._interval = 0;\r\n return _this;\r\n }\r\n LogScale.prototype.getTicks = function (expandToNicedExtent) {\r\n var originalScale = this._originalScale;\r\n var extent = this._extent;\r\n var originalExtent = originalScale.getExtent();\r\n var ticks = intervalScaleProto.getTicks.call(this, expandToNicedExtent);\r\n return map(ticks, function (tick) {\r\n var val = tick.value;\r\n var powVal = round$1(mathPow$1(this.base, val));\r\n powVal = (val === extent[0] && this._fixMin)\r\n ? fixRoundingError(powVal, originalExtent[0])\r\n : powVal;\r\n powVal = (val === extent[1] && this._fixMax)\r\n ? fixRoundingError(powVal, originalExtent[1])\r\n : powVal;\r\n return {\r\n value: powVal\r\n };\r\n }, this);\r\n };\r\n LogScale.prototype.setExtent = function (start, end) {\r\n var base = this.base;\r\n start = mathLog(start) / mathLog(base);\r\n end = mathLog(end) / mathLog(base);\r\n intervalScaleProto.setExtent.call(this, start, end);\r\n };\r\n LogScale.prototype.getExtent = function () {\r\n var base = this.base;\r\n var extent = scaleProto.getExtent.call(this);\r\n extent[0] = mathPow$1(base, extent[0]);\r\n extent[1] = mathPow$1(base, extent[1]);\r\n var originalScale = this._originalScale;\r\n var originalExtent = originalScale.getExtent();\r\n this._fixMin && (extent[0] = fixRoundingError(extent[0], originalExtent[0]));\r\n this._fixMax && (extent[1] = fixRoundingError(extent[1], originalExtent[1]));\r\n return extent;\r\n };\r\n LogScale.prototype.unionExtent = function (extent) {\r\n this._originalScale.unionExtent(extent);\r\n var base = this.base;\r\n extent[0] = mathLog(extent[0]) / mathLog(base);\r\n extent[1] = mathLog(extent[1]) / mathLog(base);\r\n scaleProto.unionExtent.call(this, extent);\r\n };\r\n LogScale.prototype.unionExtentFromData = function (data, dim) {\r\n this.unionExtent(data.getApproximateExtent(dim));\r\n };\r\n LogScale.prototype.niceTicks = function (approxTickNum) {\r\n approxTickNum = approxTickNum || 10;\r\n var extent = this._extent;\r\n var span = extent[1] - extent[0];\r\n if (span === Infinity || span <= 0) {\r\n return;\r\n }\r\n var interval = quantity(span);\r\n var err = approxTickNum / span * interval;\r\n if (err <= 0.5) {\r\n interval *= 10;\r\n }\r\n while (!isNaN(interval) && Math.abs(interval) < 1 && Math.abs(interval) > 0) {\r\n interval *= 10;\r\n }\r\n var niceExtent = [\r\n round$1(mathCeil(extent[0] / interval) * interval),\r\n round$1(mathFloor$1(extent[1] / interval) * interval)\r\n ];\r\n this._interval = interval;\r\n this._niceExtent = niceExtent;\r\n };\r\n LogScale.prototype.niceExtent = function (opt) {\r\n intervalScaleProto.niceExtent.call(this, opt);\r\n this._fixMin = opt.fixMin;\r\n this._fixMax = opt.fixMax;\r\n };\r\n LogScale.prototype.parse = function (val) {\r\n return val;\r\n };\r\n LogScale.prototype.contain = function (val) {\r\n val = mathLog(val) / mathLog(this.base);\r\n return contain$1(val, this._extent);\r\n };\r\n LogScale.prototype.normalize = function (val) {\r\n val = mathLog(val) / mathLog(this.base);\r\n return normalize$1(val, this._extent);\r\n };\r\n LogScale.prototype.scale = function (val) {\r\n val = scale$2(val, this._extent);\r\n return mathPow$1(this.base, val);\r\n };\r\n LogScale.type = 'log';\r\n return LogScale;\r\n }(Scale));\r\n var proto = LogScale.prototype;\r\n proto.getMinorTicks = intervalScaleProto.getMinorTicks;\r\n proto.getLabel = intervalScaleProto.getLabel;\r\n function fixRoundingError(val, originalVal) {\r\n return roundingErrorFix(val, getPrecisionSafe$1(originalVal));\r\n }\r\n Scale.registerClass(LogScale);\n\n var ScaleRawExtentInfo = (function () {\r\n function ScaleRawExtentInfo(scale, model, originalExtent) {\r\n this._prepareParams(scale, model, originalExtent);\r\n }\r\n ScaleRawExtentInfo.prototype._prepareParams = function (scale, model, dataExtent) {\r\n if (dataExtent[1] < dataExtent[0]) {\r\n dataExtent = [NaN, NaN];\r\n }\r\n this._dataMin = dataExtent[0];\r\n this._dataMax = dataExtent[1];\r\n var isOrdinal = this._isOrdinal = scale.type === 'ordinal';\r\n this._needCrossZero = model.getNeedCrossZero && model.getNeedCrossZero();\r\n var modelMinRaw = this._modelMinRaw = model.get('min', true);\r\n if (isFunction(modelMinRaw)) {\r\n this._modelMinNum = parseAxisModelMinMax(scale, modelMinRaw({\r\n min: dataExtent[0],\r\n max: dataExtent[1]\r\n }));\r\n }\r\n else if (modelMinRaw !== 'dataMin') {\r\n this._modelMinNum = parseAxisModelMinMax(scale, modelMinRaw);\r\n }\r\n var modelMaxRaw = this._modelMaxRaw = model.get('max', true);\r\n if (isFunction(modelMaxRaw)) {\r\n this._modelMaxNum = parseAxisModelMinMax(scale, modelMaxRaw({\r\n min: dataExtent[0],\r\n max: dataExtent[1]\r\n }));\r\n }\r\n else if (modelMaxRaw !== 'dataMax') {\r\n this._modelMaxNum = parseAxisModelMinMax(scale, modelMaxRaw);\r\n }\r\n if (isOrdinal) {\r\n this._axisDataLen = model.getCategories().length;\r\n }\r\n else {\r\n var boundaryGap = model.get('boundaryGap');\r\n var boundaryGapArr = isArray(boundaryGap)\r\n ? boundaryGap : [boundaryGap || 0, boundaryGap || 0];\r\n if (typeof boundaryGapArr[0] === 'boolean' || typeof boundaryGapArr[1] === 'boolean') {\r\n if (__DEV__) {\r\n console.warn('Boolean type for boundaryGap is only '\r\n + 'allowed for ordinal axis. Please use string in '\r\n + 'percentage instead, e.g., \"20%\". Currently, '\r\n + 'boundaryGap is set to be 0.');\r\n }\r\n this._boundaryGapInner = [0, 0];\r\n }\r\n else {\r\n this._boundaryGapInner = [\r\n parsePercent(boundaryGapArr[0], 1),\r\n parsePercent(boundaryGapArr[1], 1)\r\n ];\r\n }\r\n }\r\n };\r\n ScaleRawExtentInfo.prototype.calculate = function () {\r\n var isOrdinal = this._isOrdinal;\r\n var dataMin = this._dataMin;\r\n var dataMax = this._dataMax;\r\n var axisDataLen = this._axisDataLen;\r\n var boundaryGapInner = this._boundaryGapInner;\r\n var span = !isOrdinal\r\n ? ((dataMax - dataMin) || Math.abs(dataMin))\r\n : null;\r\n var min = this._modelMinRaw === 'dataMin' ? dataMin : this._modelMinNum;\r\n var max = this._modelMaxRaw === 'dataMax' ? dataMax : this._modelMaxNum;\r\n var minFixed = min != null;\r\n var maxFixed = max != null;\r\n if (min == null) {\r\n min = isOrdinal\r\n ? (axisDataLen ? 0 : NaN)\r\n : dataMin - boundaryGapInner[0] * span;\r\n }\r\n if (max == null) {\r\n max = isOrdinal\r\n ? (axisDataLen ? axisDataLen - 1 : NaN)\r\n : dataMax + boundaryGapInner[1] * span;\r\n }\r\n (min == null || !isFinite(min)) && (min = NaN);\r\n (max == null || !isFinite(max)) && (max = NaN);\r\n if (min > max) {\r\n min = NaN;\r\n max = NaN;\r\n }\r\n var isBlank = eqNaN(min)\r\n || eqNaN(max)\r\n || (isOrdinal && !axisDataLen);\r\n if (this._needCrossZero) {\r\n if (min > 0 && max > 0 && !minFixed) {\r\n min = 0;\r\n }\r\n if (min < 0 && max < 0 && !maxFixed) {\r\n max = 0;\r\n }\r\n }\r\n var determinedMin = this._determinedMin;\r\n var determinedMax = this._determinedMax;\r\n if (determinedMin != null) {\r\n min = determinedMin;\r\n minFixed = true;\r\n }\r\n if (determinedMax != null) {\r\n max = determinedMax;\r\n maxFixed = true;\r\n }\r\n return {\r\n min: min,\r\n max: max,\r\n minFixed: minFixed,\r\n maxFixed: maxFixed,\r\n isBlank: isBlank\r\n };\r\n };\r\n ScaleRawExtentInfo.prototype.modifyDataMinMax = function (minMaxName, val) {\r\n if (__DEV__) {\r\n assert(!this.frozen);\r\n }\r\n this[DATA_MIN_MAX_ATTR[minMaxName]] = val;\r\n };\r\n ScaleRawExtentInfo.prototype.setDeterminedMinMax = function (minMaxName, val) {\r\n var attr = DETERMINED_MIN_MAX_ATTR[minMaxName];\r\n if (__DEV__) {\r\n assert(!this.frozen\r\n && (this[attr] == null));\r\n }\r\n this[attr] = val;\r\n };\r\n ScaleRawExtentInfo.prototype.freeze = function () {\r\n this.frozen = true;\r\n };\r\n return ScaleRawExtentInfo;\r\n }());\r\n var DETERMINED_MIN_MAX_ATTR = { min: '_determinedMin', max: '_determinedMax' };\r\n var DATA_MIN_MAX_ATTR = { min: '_dataMin', max: '_dataMax' };\r\n function ensureScaleRawExtentInfo(scale, model, originalExtent) {\r\n var rawExtentInfo = scale.rawExtentInfo;\r\n if (rawExtentInfo) {\r\n return rawExtentInfo;\r\n }\r\n rawExtentInfo = new ScaleRawExtentInfo(scale, model, originalExtent);\r\n scale.rawExtentInfo = rawExtentInfo;\r\n return rawExtentInfo;\r\n }\r\n function parseAxisModelMinMax(scale, minMax) {\r\n return minMax == null ? null\r\n : eqNaN(minMax) ? NaN\r\n : scale.parse(minMax);\r\n }\n\n function getScaleExtent(scale, model) {\r\n var scaleType = scale.type;\r\n var rawExtentResult = ensureScaleRawExtentInfo(scale, model, scale.getExtent()).calculate();\r\n scale.setBlank(rawExtentResult.isBlank);\r\n var min = rawExtentResult.min;\r\n var max = rawExtentResult.max;\r\n var ecModel = model.ecModel;\r\n if (ecModel && (scaleType === 'time')) {\r\n var barSeriesModels = prepareLayoutBarSeries('bar', ecModel);\r\n var isBaseAxisAndHasBarSeries_1 = false;\r\n each(barSeriesModels, function (seriesModel) {\r\n isBaseAxisAndHasBarSeries_1 = isBaseAxisAndHasBarSeries_1 || seriesModel.getBaseAxis() === model.axis;\r\n });\r\n if (isBaseAxisAndHasBarSeries_1) {\r\n var barWidthAndOffset = makeColumnLayout(barSeriesModels);\r\n var adjustedScale = adjustScaleForOverflow(min, max, model, barWidthAndOffset);\r\n min = adjustedScale.min;\r\n max = adjustedScale.max;\r\n }\r\n }\r\n return {\r\n extent: [min, max],\r\n fixMin: rawExtentResult.minFixed,\r\n fixMax: rawExtentResult.maxFixed\r\n };\r\n }\r\n function adjustScaleForOverflow(min, max, model, barWidthAndOffset) {\r\n var axisExtent = model.axis.getExtent();\r\n var axisLength = axisExtent[1] - axisExtent[0];\r\n var barsOnCurrentAxis = retrieveColumnLayout(barWidthAndOffset, model.axis);\r\n if (barsOnCurrentAxis === undefined) {\r\n return { min: min, max: max };\r\n }\r\n var minOverflow = Infinity;\r\n each(barsOnCurrentAxis, function (item) {\r\n minOverflow = Math.min(item.offset, minOverflow);\r\n });\r\n var maxOverflow = -Infinity;\r\n each(barsOnCurrentAxis, function (item) {\r\n maxOverflow = Math.max(item.offset + item.width, maxOverflow);\r\n });\r\n minOverflow = Math.abs(minOverflow);\r\n maxOverflow = Math.abs(maxOverflow);\r\n var totalOverFlow = minOverflow + maxOverflow;\r\n var oldRange = max - min;\r\n var oldRangePercentOfNew = (1 - (minOverflow + maxOverflow) / axisLength);\r\n var overflowBuffer = ((oldRange / oldRangePercentOfNew) - oldRange);\r\n max += overflowBuffer * (maxOverflow / totalOverFlow);\r\n min -= overflowBuffer * (minOverflow / totalOverFlow);\r\n return { min: min, max: max };\r\n }\r\n function niceScaleExtent(scale, model) {\r\n var extentInfo = getScaleExtent(scale, model);\r\n var extent = extentInfo.extent;\r\n var splitNumber = model.get('splitNumber');\r\n if (scale instanceof LogScale) {\r\n scale.base = model.get('logBase');\r\n }\r\n var scaleType = scale.type;\r\n scale.setExtent(extent[0], extent[1]);\r\n scale.niceExtent({\r\n splitNumber: splitNumber,\r\n fixMin: extentInfo.fixMin,\r\n fixMax: extentInfo.fixMax,\r\n minInterval: (scaleType === 'interval' || scaleType === 'time')\r\n ? model.get('minInterval') : null,\r\n maxInterval: (scaleType === 'interval' || scaleType === 'time')\r\n ? model.get('maxInterval') : null\r\n });\r\n var interval = model.get('interval');\r\n if (interval != null) {\r\n scale.setInterval && scale.setInterval(interval);\r\n }\r\n }\r\n function createScaleByModel(model, axisType) {\r\n axisType = axisType || model.get('type');\r\n if (axisType) {\r\n switch (axisType) {\r\n case 'category':\r\n return new OrdinalScale({\r\n ordinalMeta: model.getOrdinalMeta\r\n ? model.getOrdinalMeta()\r\n : model.getCategories(),\r\n extent: [Infinity, -Infinity]\r\n });\r\n case 'time':\r\n return new TimeScale({\r\n locale: model.ecModel.getLocaleModel(),\r\n useUTC: model.ecModel.get('useUTC')\r\n });\r\n default:\r\n return new (Scale.getClass(axisType) || IntervalScale)();\r\n }\r\n }\r\n }\r\n function ifAxisCrossZero(axis) {\r\n var dataExtent = axis.scale.getExtent();\r\n var min = dataExtent[0];\r\n var max = dataExtent[1];\r\n return !((min > 0 && max > 0) || (min < 0 && max < 0));\r\n }\r\n function makeLabelFormatter(axis) {\r\n var labelFormatter = axis.getLabelModel().get('formatter');\r\n var categoryTickStart = axis.type === 'category' ? axis.scale.getExtent()[0] : null;\r\n if (axis.scale.type === 'time') {\r\n return (function (tpl) {\r\n return function (tick, idx) {\r\n return axis.scale.getFormattedLabel(tick, idx, tpl);\r\n };\r\n })(labelFormatter);\r\n }\r\n else if (typeof labelFormatter === 'string') {\r\n return (function (tpl) {\r\n return function (tick) {\r\n var label = axis.scale.getLabel(tick);\r\n var text = tpl.replace('{value}', label != null ? label : '');\r\n return text;\r\n };\r\n })(labelFormatter);\r\n }\r\n else if (typeof labelFormatter === 'function') {\r\n return (function (cb) {\r\n return function (tick, idx) {\r\n if (categoryTickStart != null) {\r\n idx = tick.value - categoryTickStart;\r\n }\r\n return cb(getAxisRawValue(axis, tick), idx, tick.level != null ? {\r\n level: tick.level\r\n } : null);\r\n };\r\n })(labelFormatter);\r\n }\r\n else {\r\n return function (tick) {\r\n return axis.scale.getLabel(tick);\r\n };\r\n }\r\n }\r\n function getAxisRawValue(axis, tick) {\r\n return axis.type === 'category' ? axis.scale.getLabel(tick) : tick.value;\r\n }\r\n function estimateLabelUnionRect(axis) {\r\n var axisModel = axis.model;\r\n var scale = axis.scale;\r\n if (!axisModel.get(['axisLabel', 'show']) || scale.isBlank()) {\r\n return;\r\n }\r\n var realNumberScaleTicks;\r\n var tickCount;\r\n var categoryScaleExtent = scale.getExtent();\r\n if (scale instanceof OrdinalScale) {\r\n tickCount = scale.count();\r\n }\r\n else {\r\n realNumberScaleTicks = scale.getTicks();\r\n tickCount = realNumberScaleTicks.length;\r\n }\r\n var axisLabelModel = axis.getLabelModel();\r\n var labelFormatter = makeLabelFormatter(axis);\r\n var rect;\r\n var step = 1;\r\n if (tickCount > 40) {\r\n step = Math.ceil(tickCount / 40);\r\n }\r\n for (var i = 0; i < tickCount; i += step) {\r\n var tick = realNumberScaleTicks\r\n ? realNumberScaleTicks[i]\r\n : {\r\n value: categoryScaleExtent[0] + i\r\n };\r\n var label = labelFormatter(tick, i);\r\n var unrotatedSingleRect = axisLabelModel.getTextRect(label);\r\n var singleRect = rotateTextRect(unrotatedSingleRect, axisLabelModel.get('rotate') || 0);\r\n rect ? rect.union(singleRect) : (rect = singleRect);\r\n }\r\n return rect;\r\n }\r\n function rotateTextRect(textRect, rotate) {\r\n var rotateRadians = rotate * Math.PI / 180;\r\n var beforeWidth = textRect.width;\r\n var beforeHeight = textRect.height;\r\n var afterWidth = beforeWidth * Math.abs(Math.cos(rotateRadians))\r\n + Math.abs(beforeHeight * Math.sin(rotateRadians));\r\n var afterHeight = beforeWidth * Math.abs(Math.sin(rotateRadians))\r\n + Math.abs(beforeHeight * Math.cos(rotateRadians));\r\n var rotatedRect = new BoundingRect(textRect.x, textRect.y, afterWidth, afterHeight);\r\n return rotatedRect;\r\n }\r\n function getOptionCategoryInterval(model) {\r\n var interval = model.get('interval');\r\n return interval == null ? 'auto' : interval;\r\n }\r\n function shouldShowAllLabels(axis) {\r\n return axis.type === 'category'\r\n && getOptionCategoryInterval(axis.getLabelModel()) === 0;\r\n }\r\n function getDataDimensionsOnAxis(data, axisDim) {\r\n var dataDimMap = {};\r\n each(data.mapDimensionsAll(axisDim), function (dataDim) {\r\n dataDimMap[getStackedDimension(data, dataDim)] = true;\r\n });\r\n return keys(dataDimMap);\r\n }\r\n function unionAxisExtentFromData(dataExtent, data, axisDim) {\r\n if (data) {\r\n each(getDataDimensionsOnAxis(data, axisDim), function (dim) {\r\n var seriesExtent = data.getApproximateExtent(dim);\r\n seriesExtent[0] < dataExtent[0] && (dataExtent[0] = seriesExtent[0]);\r\n seriesExtent[1] > dataExtent[1] && (dataExtent[1] = seriesExtent[1]);\r\n });\r\n }\r\n }\n\n var AxisModelCommonMixin = (function () {\r\n function AxisModelCommonMixin() {\r\n }\r\n AxisModelCommonMixin.prototype.getNeedCrossZero = function () {\r\n var option = this.option;\r\n return !option.scale;\r\n };\r\n AxisModelCommonMixin.prototype.getCoordSysModel = function () {\r\n return;\r\n };\r\n return AxisModelCommonMixin;\r\n }());\n\n function createList(seriesModel) {\r\n return createListFromArray(seriesModel.getSource(), seriesModel);\r\n }\r\n var dataStack$1 = {\r\n isDimensionStacked: isDimensionStacked,\r\n enableDataStack: enableDataStack,\r\n getStackedDimension: getStackedDimension\r\n };\r\n function createScale(dataExtent, option) {\r\n var axisModel = option;\r\n if (!(option instanceof Model)) {\r\n axisModel = new Model(option);\r\n }\r\n var scale = createScaleByModel(axisModel);\r\n scale.setExtent(dataExtent[0], dataExtent[1]);\r\n niceScaleExtent(scale, axisModel);\r\n return scale;\r\n }\r\n function mixinAxisModelCommonMethods(Model) {\r\n mixin(Model, AxisModelCommonMixin);\r\n }\n\n var helper = /*#__PURE__*/Object.freeze({\n __proto__: null,\n createList: createList,\n getLayoutRect: getLayoutRect,\n dataStack: dataStack$1,\n createScale: createScale,\n mixinAxisModelCommonMethods: mixinAxisModelCommonMethods,\n getECData: getECData,\n createDimensions: createDimensions,\n createSymbol: createSymbol\n });\n\n var EPSILON$3 = 1e-8;\r\n function isAroundEqual$1(a, b) {\r\n return Math.abs(a - b) < EPSILON$3;\r\n }\r\n function contain$2(points, x, y) {\r\n var w = 0;\r\n var p = points[0];\r\n if (!p) {\r\n return false;\r\n }\r\n for (var i = 1; i < points.length; i++) {\r\n var p2 = points[i];\r\n w += windingLine(p[0], p[1], p2[0], p2[1], x, y);\r\n p = p2;\r\n }\r\n var p0 = points[0];\r\n if (!isAroundEqual$1(p[0], p0[0]) || !isAroundEqual$1(p[1], p0[1])) {\r\n w += windingLine(p[0], p[1], p0[0], p0[1], x, y);\r\n }\r\n return w !== 0;\r\n }\n\n var Region = (function () {\r\n function Region(name, geometries, cp) {\r\n this.name = name;\r\n this.geometries = geometries;\r\n if (!cp) {\r\n var rect = this.getBoundingRect();\r\n cp = [\r\n rect.x + rect.width / 2,\r\n rect.y + rect.height / 2\r\n ];\r\n }\r\n else {\r\n cp = [cp[0], cp[1]];\r\n }\r\n this.center = cp;\r\n }\r\n Region.prototype.getBoundingRect = function () {\r\n var rect = this._rect;\r\n if (rect) {\r\n return rect;\r\n }\r\n var MAX_NUMBER = Number.MAX_VALUE;\r\n var min$1 = [MAX_NUMBER, MAX_NUMBER];\r\n var max$1 = [-MAX_NUMBER, -MAX_NUMBER];\r\n var min2 = [];\r\n var max2 = [];\r\n var geometries = this.geometries;\r\n var i = 0;\r\n for (; i < geometries.length; i++) {\r\n if (geometries[i].type !== 'polygon') {\r\n continue;\r\n }\r\n var exterior = geometries[i].exterior;\r\n fromPoints(exterior, min2, max2);\r\n min(min$1, min$1, min2);\r\n max(max$1, max$1, max2);\r\n }\r\n if (i === 0) {\r\n min$1[0] = min$1[1] = max$1[0] = max$1[1] = 0;\r\n }\r\n return (this._rect = new BoundingRect(min$1[0], min$1[1], max$1[0] - min$1[0], max$1[1] - min$1[1]));\r\n };\r\n Region.prototype.contain = function (coord) {\r\n var rect = this.getBoundingRect();\r\n var geometries = this.geometries;\r\n if (!rect.contain(coord[0], coord[1])) {\r\n return false;\r\n }\r\n loopGeo: for (var i = 0, len = geometries.length; i < len; i++) {\r\n if (geometries[i].type !== 'polygon') {\r\n continue;\r\n }\r\n var exterior = geometries[i].exterior;\r\n var interiors = geometries[i].interiors;\r\n if (contain$2(exterior, coord[0], coord[1])) {\r\n for (var k = 0; k < (interiors ? interiors.length : 0); k++) {\r\n if (contain$2(interiors[k], coord[0], coord[1])) {\r\n continue loopGeo;\r\n }\r\n }\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n Region.prototype.transformTo = function (x, y, width, height) {\r\n var rect = this.getBoundingRect();\r\n var aspect = rect.width / rect.height;\r\n if (!width) {\r\n width = aspect * height;\r\n }\r\n else if (!height) {\r\n height = width / aspect;\r\n }\r\n var target = new BoundingRect(x, y, width, height);\r\n var transform = rect.calculateTransform(target);\r\n var geometries = this.geometries;\r\n for (var i = 0; i < geometries.length; i++) {\r\n if (geometries[i].type !== 'polygon') {\r\n continue;\r\n }\r\n var exterior = geometries[i].exterior;\r\n var interiors = geometries[i].interiors;\r\n for (var p = 0; p < exterior.length; p++) {\r\n applyTransform(exterior[p], exterior[p], transform);\r\n }\r\n for (var h = 0; h < (interiors ? interiors.length : 0); h++) {\r\n for (var p = 0; p < interiors[h].length; p++) {\r\n applyTransform(interiors[h][p], interiors[h][p], transform);\r\n }\r\n }\r\n }\r\n rect = this._rect;\r\n rect.copy(target);\r\n this.center = [\r\n rect.x + rect.width / 2,\r\n rect.y + rect.height / 2\r\n ];\r\n };\r\n Region.prototype.cloneShallow = function (name) {\r\n name == null && (name = this.name);\r\n var newRegion = new Region(name, this.geometries, this.center);\r\n newRegion._rect = this._rect;\r\n newRegion.transformTo = null;\r\n return newRegion;\r\n };\r\n return Region;\r\n }());\n\n function decode(json) {\r\n if (!json.UTF8Encoding) {\r\n return json;\r\n }\r\n var jsonCompressed = json;\r\n var encodeScale = jsonCompressed.UTF8Scale;\r\n if (encodeScale == null) {\r\n encodeScale = 1024;\r\n }\r\n var features = jsonCompressed.features;\r\n for (var f = 0; f < features.length; f++) {\r\n var feature = features[f];\r\n var geometry = feature.geometry;\r\n if (geometry.type === 'Polygon') {\r\n var coordinates = geometry.coordinates;\r\n for (var c = 0; c < coordinates.length; c++) {\r\n coordinates[c] = decodePolygon(coordinates[c], geometry.encodeOffsets[c], encodeScale);\r\n }\r\n }\r\n else if (geometry.type === 'MultiPolygon') {\r\n var coordinates = geometry.coordinates;\r\n for (var c = 0; c < coordinates.length; c++) {\r\n var coordinate = coordinates[c];\r\n for (var c2 = 0; c2 < coordinate.length; c2++) {\r\n coordinate[c2] = decodePolygon(coordinate[c2], geometry.encodeOffsets[c][c2], encodeScale);\r\n }\r\n }\r\n }\r\n }\r\n jsonCompressed.UTF8Encoding = false;\r\n return jsonCompressed;\r\n }\r\n function decodePolygon(coordinate, encodeOffsets, encodeScale) {\r\n var result = [];\r\n var prevX = encodeOffsets[0];\r\n var prevY = encodeOffsets[1];\r\n for (var i = 0; i < coordinate.length; i += 2) {\r\n var x = coordinate.charCodeAt(i) - 64;\r\n var y = coordinate.charCodeAt(i + 1) - 64;\r\n x = (x >> 1) ^ (-(x & 1));\r\n y = (y >> 1) ^ (-(y & 1));\r\n x += prevX;\r\n y += prevY;\r\n prevX = x;\r\n prevY = y;\r\n result.push([x / encodeScale, y / encodeScale]);\r\n }\r\n return result;\r\n }\r\n function parseGeoJSON(geoJson, nameProperty) {\r\n geoJson = decode(geoJson);\r\n return map(filter(geoJson.features, function (featureObj) {\r\n return featureObj.geometry\r\n && featureObj.properties\r\n && featureObj.geometry.coordinates.length > 0;\r\n }), function (featureObj) {\r\n var properties = featureObj.properties;\r\n var geo = featureObj.geometry;\r\n var geometries = [];\r\n if (geo.type === 'Polygon') {\r\n var coordinates = geo.coordinates;\r\n geometries.push({\r\n type: 'polygon',\r\n exterior: coordinates[0],\r\n interiors: coordinates.slice(1)\r\n });\r\n }\r\n if (geo.type === 'MultiPolygon') {\r\n var coordinates = geo.coordinates;\r\n each(coordinates, function (item) {\r\n if (item[0]) {\r\n geometries.push({\r\n type: 'polygon',\r\n exterior: item[0],\r\n interiors: item.slice(1)\r\n });\r\n }\r\n });\r\n }\r\n var region = new Region(properties[nameProperty || 'name'], geometries, properties.cp);\r\n region.properties = properties;\r\n return region;\r\n });\r\n }\n\n var inner$4 = makeInner();\r\n function createAxisLabels(axis) {\r\n return axis.type === 'category'\r\n ? makeCategoryLabels(axis)\r\n : makeRealNumberLabels(axis);\r\n }\r\n function createAxisTicks(axis, tickModel) {\r\n return axis.type === 'category'\r\n ? makeCategoryTicks(axis, tickModel)\r\n : { ticks: map(axis.scale.getTicks(), function (tick) { return tick.value; }) };\r\n }\r\n function makeCategoryLabels(axis) {\r\n var labelModel = axis.getLabelModel();\r\n var result = makeCategoryLabelsActually(axis, labelModel);\r\n return (!labelModel.get('show') || axis.scale.isBlank())\r\n ? { labels: [], labelCategoryInterval: result.labelCategoryInterval }\r\n : result;\r\n }\r\n function makeCategoryLabelsActually(axis, labelModel) {\r\n var labelsCache = getListCache(axis, 'labels');\r\n var optionLabelInterval = getOptionCategoryInterval(labelModel);\r\n var result = listCacheGet(labelsCache, optionLabelInterval);\r\n if (result) {\r\n return result;\r\n }\r\n var labels;\r\n var numericLabelInterval;\r\n if (isFunction(optionLabelInterval)) {\r\n labels = makeLabelsByCustomizedCategoryInterval(axis, optionLabelInterval);\r\n }\r\n else {\r\n numericLabelInterval = optionLabelInterval === 'auto'\r\n ? makeAutoCategoryInterval(axis) : optionLabelInterval;\r\n labels = makeLabelsByNumericCategoryInterval(axis, numericLabelInterval);\r\n }\r\n return listCacheSet(labelsCache, optionLabelInterval, {\r\n labels: labels, labelCategoryInterval: numericLabelInterval\r\n });\r\n }\r\n function makeCategoryTicks(axis, tickModel) {\r\n var ticksCache = getListCache(axis, 'ticks');\r\n var optionTickInterval = getOptionCategoryInterval(tickModel);\r\n var result = listCacheGet(ticksCache, optionTickInterval);\r\n if (result) {\r\n return result;\r\n }\r\n var ticks;\r\n var tickCategoryInterval;\r\n if (!tickModel.get('show') || axis.scale.isBlank()) {\r\n ticks = [];\r\n }\r\n if (isFunction(optionTickInterval)) {\r\n ticks = makeLabelsByCustomizedCategoryInterval(axis, optionTickInterval, true);\r\n }\r\n else if (optionTickInterval === 'auto') {\r\n var labelsResult = makeCategoryLabelsActually(axis, axis.getLabelModel());\r\n tickCategoryInterval = labelsResult.labelCategoryInterval;\r\n ticks = map(labelsResult.labels, function (labelItem) {\r\n return labelItem.tickValue;\r\n });\r\n }\r\n else {\r\n tickCategoryInterval = optionTickInterval;\r\n ticks = makeLabelsByNumericCategoryInterval(axis, tickCategoryInterval, true);\r\n }\r\n return listCacheSet(ticksCache, optionTickInterval, {\r\n ticks: ticks, tickCategoryInterval: tickCategoryInterval\r\n });\r\n }\r\n function makeRealNumberLabels(axis) {\r\n var ticks = axis.scale.getTicks();\r\n var labelFormatter = makeLabelFormatter(axis);\r\n return {\r\n labels: map(ticks, function (tick, idx) {\r\n return {\r\n formattedLabel: labelFormatter(tick, idx),\r\n rawLabel: axis.scale.getLabel(tick),\r\n tickValue: tick.value\r\n };\r\n })\r\n };\r\n }\r\n function getListCache(axis, prop) {\r\n return inner$4(axis)[prop] || (inner$4(axis)[prop] = []);\r\n }\r\n function listCacheGet(cache, key) {\r\n for (var i = 0; i < cache.length; i++) {\r\n if (cache[i].key === key) {\r\n return cache[i].value;\r\n }\r\n }\r\n }\r\n function listCacheSet(cache, key, value) {\r\n cache.push({ key: key, value: value });\r\n return value;\r\n }\r\n function makeAutoCategoryInterval(axis) {\r\n var result = inner$4(axis).autoInterval;\r\n return result != null\r\n ? result\r\n : (inner$4(axis).autoInterval = axis.calculateCategoryInterval());\r\n }\r\n function calculateCategoryInterval(axis) {\r\n var params = fetchAutoCategoryIntervalCalculationParams(axis);\r\n var labelFormatter = makeLabelFormatter(axis);\r\n var rotation = (params.axisRotate - params.labelRotate) / 180 * Math.PI;\r\n var ordinalScale = axis.scale;\r\n var ordinalExtent = ordinalScale.getExtent();\r\n var tickCount = ordinalScale.count();\r\n if (ordinalExtent[1] - ordinalExtent[0] < 1) {\r\n return 0;\r\n }\r\n var step = 1;\r\n if (tickCount > 40) {\r\n step = Math.max(1, Math.floor(tickCount / 40));\r\n }\r\n var tickValue = ordinalExtent[0];\r\n var unitSpan = axis.dataToCoord(tickValue + 1) - axis.dataToCoord(tickValue);\r\n var unitW = Math.abs(unitSpan * Math.cos(rotation));\r\n var unitH = Math.abs(unitSpan * Math.sin(rotation));\r\n var maxW = 0;\r\n var maxH = 0;\r\n for (; tickValue <= ordinalExtent[1]; tickValue += step) {\r\n var width = 0;\r\n var height = 0;\r\n var rect = getBoundingRect(labelFormatter({ value: tickValue }), params.font, 'center', 'top');\r\n width = rect.width * 1.3;\r\n height = rect.height * 1.3;\r\n maxW = Math.max(maxW, width, 7);\r\n maxH = Math.max(maxH, height, 7);\r\n }\r\n var dw = maxW / unitW;\r\n var dh = maxH / unitH;\r\n isNaN(dw) && (dw = Infinity);\r\n isNaN(dh) && (dh = Infinity);\r\n var interval = Math.max(0, Math.floor(Math.min(dw, dh)));\r\n var cache = inner$4(axis.model);\r\n var axisExtent = axis.getExtent();\r\n var lastAutoInterval = cache.lastAutoInterval;\r\n var lastTickCount = cache.lastTickCount;\r\n if (lastAutoInterval != null\r\n && lastTickCount != null\r\n && Math.abs(lastAutoInterval - interval) <= 1\r\n && Math.abs(lastTickCount - tickCount) <= 1\r\n && lastAutoInterval > interval\r\n && cache.axisExtent0 === axisExtent[0]\r\n && cache.axisExtent1 === axisExtent[1]) {\r\n interval = lastAutoInterval;\r\n }\r\n else {\r\n cache.lastTickCount = tickCount;\r\n cache.lastAutoInterval = interval;\r\n cache.axisExtent0 = axisExtent[0];\r\n cache.axisExtent1 = axisExtent[1];\r\n }\r\n return interval;\r\n }\r\n function fetchAutoCategoryIntervalCalculationParams(axis) {\r\n var labelModel = axis.getLabelModel();\r\n return {\r\n axisRotate: axis.getRotate\r\n ? axis.getRotate()\r\n : (axis.isHorizontal && !axis.isHorizontal())\r\n ? 90\r\n : 0,\r\n labelRotate: labelModel.get('rotate') || 0,\r\n font: labelModel.getFont()\r\n };\r\n }\r\n function makeLabelsByNumericCategoryInterval(axis, categoryInterval, onlyTick) {\r\n var labelFormatter = makeLabelFormatter(axis);\r\n var ordinalScale = axis.scale;\r\n var ordinalExtent = ordinalScale.getExtent();\r\n var labelModel = axis.getLabelModel();\r\n var result = [];\r\n var step = Math.max((categoryInterval || 0) + 1, 1);\r\n var startTick = ordinalExtent[0];\r\n var tickCount = ordinalScale.count();\r\n if (startTick !== 0 && step > 1 && tickCount / step > 2) {\r\n startTick = Math.round(Math.ceil(startTick / step) * step);\r\n }\r\n var showAllLabel = shouldShowAllLabels(axis);\r\n var includeMinLabel = labelModel.get('showMinLabel') || showAllLabel;\r\n var includeMaxLabel = labelModel.get('showMaxLabel') || showAllLabel;\r\n if (includeMinLabel && startTick !== ordinalExtent[0]) {\r\n addItem(ordinalExtent[0]);\r\n }\r\n var tickValue = startTick;\r\n for (; tickValue <= ordinalExtent[1]; tickValue += step) {\r\n addItem(tickValue);\r\n }\r\n if (includeMaxLabel && tickValue - step !== ordinalExtent[1]) {\r\n addItem(ordinalExtent[1]);\r\n }\r\n function addItem(tickValue) {\r\n var tickObj = { value: tickValue };\r\n result.push(onlyTick\r\n ? tickValue\r\n : {\r\n formattedLabel: labelFormatter(tickObj),\r\n rawLabel: ordinalScale.getLabel(tickObj),\r\n tickValue: tickValue\r\n });\r\n }\r\n return result;\r\n }\r\n function makeLabelsByCustomizedCategoryInterval(axis, categoryInterval, onlyTick) {\r\n var ordinalScale = axis.scale;\r\n var labelFormatter = makeLabelFormatter(axis);\r\n var result = [];\r\n each(ordinalScale.getTicks(), function (tick) {\r\n var rawLabel = ordinalScale.getLabel(tick);\r\n var tickValue = tick.value;\r\n if (categoryInterval(tick.value, rawLabel)) {\r\n result.push(onlyTick\r\n ? tickValue\r\n : {\r\n formattedLabel: labelFormatter(tick),\r\n rawLabel: rawLabel,\r\n tickValue: tickValue\r\n });\r\n }\r\n });\r\n return result;\r\n }\n\n var NORMALIZED_EXTENT = [0, 1];\r\n var Axis = (function () {\r\n function Axis(dim, scale, extent) {\r\n this.onBand = false;\r\n this.inverse = false;\r\n this.dim = dim;\r\n this.scale = scale;\r\n this._extent = extent || [0, 0];\r\n }\r\n Axis.prototype.contain = function (coord) {\r\n var extent = this._extent;\r\n var min = Math.min(extent[0], extent[1]);\r\n var max = Math.max(extent[0], extent[1]);\r\n return coord >= min && coord <= max;\r\n };\r\n Axis.prototype.containData = function (data) {\r\n return this.scale.contain(data);\r\n };\r\n Axis.prototype.getExtent = function () {\r\n return this._extent.slice();\r\n };\r\n Axis.prototype.getPixelPrecision = function (dataExtent) {\r\n return getPixelPrecision(dataExtent || this.scale.getExtent(), this._extent);\r\n };\r\n Axis.prototype.setExtent = function (start, end) {\r\n var extent = this._extent;\r\n extent[0] = start;\r\n extent[1] = end;\r\n };\r\n Axis.prototype.dataToCoord = function (data, clamp) {\r\n var extent = this._extent;\r\n var scale = this.scale;\r\n data = scale.normalize(data);\r\n if (this.onBand && scale.type === 'ordinal') {\r\n extent = extent.slice();\r\n fixExtentWithBands(extent, scale.count());\r\n }\r\n return linearMap(data, NORMALIZED_EXTENT, extent, clamp);\r\n };\r\n Axis.prototype.coordToData = function (coord, clamp) {\r\n var extent = this._extent;\r\n var scale = this.scale;\r\n if (this.onBand && scale.type === 'ordinal') {\r\n extent = extent.slice();\r\n fixExtentWithBands(extent, scale.count());\r\n }\r\n var t = linearMap(coord, extent, NORMALIZED_EXTENT, clamp);\r\n return this.scale.scale(t);\r\n };\r\n Axis.prototype.pointToData = function (point, clamp) {\r\n return;\r\n };\r\n Axis.prototype.getTicksCoords = function (opt) {\r\n opt = opt || {};\r\n var tickModel = opt.tickModel || this.getTickModel();\r\n var result = createAxisTicks(this, tickModel);\r\n var ticks = result.ticks;\r\n var ticksCoords = map(ticks, function (tickVal) {\r\n return {\r\n coord: this.dataToCoord(this.scale.type === 'ordinal'\r\n ? this.scale.getRawIndex(tickVal)\r\n : tickVal),\r\n tickValue: tickVal\r\n };\r\n }, this);\r\n var alignWithLabel = tickModel.get('alignWithLabel');\r\n fixOnBandTicksCoords(this, ticksCoords, alignWithLabel, opt.clamp);\r\n return ticksCoords;\r\n };\r\n Axis.prototype.getMinorTicksCoords = function () {\r\n if (this.scale.type === 'ordinal') {\r\n return [];\r\n }\r\n var minorTickModel = this.model.getModel('minorTick');\r\n var splitNumber = minorTickModel.get('splitNumber');\r\n if (!(splitNumber > 0 && splitNumber < 100)) {\r\n splitNumber = 5;\r\n }\r\n var minorTicks = this.scale.getMinorTicks(splitNumber);\r\n var minorTicksCoords = map(minorTicks, function (minorTicksGroup) {\r\n return map(minorTicksGroup, function (minorTick) {\r\n return {\r\n coord: this.dataToCoord(minorTick),\r\n tickValue: minorTick\r\n };\r\n }, this);\r\n }, this);\r\n return minorTicksCoords;\r\n };\r\n Axis.prototype.getViewLabels = function () {\r\n return createAxisLabels(this).labels;\r\n };\r\n Axis.prototype.getLabelModel = function () {\r\n return this.model.getModel('axisLabel');\r\n };\r\n Axis.prototype.getTickModel = function () {\r\n return this.model.getModel('axisTick');\r\n };\r\n Axis.prototype.getBandWidth = function () {\r\n var axisExtent = this._extent;\r\n var dataExtent = this.scale.getExtent();\r\n var len = dataExtent[1] - dataExtent[0] + (this.onBand ? 1 : 0);\r\n len === 0 && (len = 1);\r\n var size = Math.abs(axisExtent[1] - axisExtent[0]);\r\n return Math.abs(size) / len;\r\n };\r\n Axis.prototype.calculateCategoryInterval = function () {\r\n return calculateCategoryInterval(this);\r\n };\r\n return Axis;\r\n }());\r\n function fixExtentWithBands(extent, nTick) {\r\n var size = extent[1] - extent[0];\r\n var len = nTick;\r\n var margin = size / len / 2;\r\n extent[0] += margin;\r\n extent[1] -= margin;\r\n }\r\n function fixOnBandTicksCoords(axis, ticksCoords, alignWithLabel, clamp) {\r\n var ticksLen = ticksCoords.length;\r\n if (!axis.onBand || alignWithLabel || !ticksLen) {\r\n return;\r\n }\r\n var axisExtent = axis.getExtent();\r\n var last;\r\n var diffSize;\r\n if (ticksLen === 1) {\r\n ticksCoords[0].coord = axisExtent[0];\r\n last = ticksCoords[1] = { coord: axisExtent[0] };\r\n }\r\n else {\r\n var crossLen = ticksCoords[ticksLen - 1].tickValue - ticksCoords[0].tickValue;\r\n var shift_1 = (ticksCoords[ticksLen - 1].coord - ticksCoords[0].coord) / crossLen;\r\n each(ticksCoords, function (ticksItem) {\r\n ticksItem.coord -= shift_1 / 2;\r\n });\r\n var dataExtent = axis.scale.getExtent();\r\n diffSize = 1 + dataExtent[1] - ticksCoords[ticksLen - 1].tickValue;\r\n last = { coord: ticksCoords[ticksLen - 1].coord + shift_1 * diffSize };\r\n ticksCoords.push(last);\r\n }\r\n var inverse = axisExtent[0] > axisExtent[1];\r\n if (littleThan(ticksCoords[0].coord, axisExtent[0])) {\r\n clamp ? (ticksCoords[0].coord = axisExtent[0]) : ticksCoords.shift();\r\n }\r\n if (clamp && littleThan(axisExtent[0], ticksCoords[0].coord)) {\r\n ticksCoords.unshift({ coord: axisExtent[0] });\r\n }\r\n if (littleThan(axisExtent[1], last.coord)) {\r\n clamp ? (last.coord = axisExtent[1]) : ticksCoords.pop();\r\n }\r\n if (clamp && littleThan(last.coord, axisExtent[1])) {\r\n ticksCoords.push({ coord: axisExtent[1] });\r\n }\r\n function littleThan(a, b) {\r\n a = round$1(a);\r\n b = round$1(b);\r\n return inverse ? a > b : a < b;\r\n }\r\n }\n\n var parseGeoJson = parseGeoJSON;\r\n var number = {};\r\n each([\r\n 'linearMap',\r\n 'round',\r\n 'asc',\r\n 'getPrecision',\r\n 'getPrecisionSafe',\r\n 'getPixelPrecision',\r\n 'getPercentWithPrecision',\r\n 'MAX_SAFE_INTEGER',\r\n 'remRadian',\r\n 'isRadianAroundZero',\r\n 'parseDate',\r\n 'quantity',\r\n 'quantityExponent',\r\n 'nice',\r\n 'quantile',\r\n 'reformIntervals',\r\n 'isNumeric',\r\n 'numericToNumber'\r\n ], function (name) {\r\n number[name] = numberUtil[name];\r\n });\r\n var format$1 = {};\r\n each([\r\n 'addCommas',\r\n 'toCamelCase',\r\n 'normalizeCssArray',\r\n 'encodeHTML',\r\n 'formatTpl',\r\n 'getTooltipMarker',\r\n 'formatTime',\r\n 'capitalFirst',\r\n 'truncateText',\r\n 'getTextRect'\r\n ], function (name) {\r\n format$1[name] = formatUtil[name];\r\n });\r\n var time = {\r\n parse: parseDate,\r\n format: format\r\n };\r\n var ecUtil = {};\r\n each([\r\n 'map', 'each', 'filter', 'indexOf', 'inherits', 'reduce', 'filter',\r\n 'bind', 'curry', 'isArray', 'isString', 'isObject', 'isFunction',\r\n 'extend', 'defaults', 'clone', 'merge'\r\n ], function (name) {\r\n ecUtil[name] = zrUtil[name];\r\n });\r\n var GRAPHIC_KEYS = [\r\n 'extendShape', 'extendPath', 'makePath', 'makeImage',\r\n 'mergePath', 'resizePath', 'createIcon',\r\n 'updateProps', 'initProps', 'getTransform',\r\n 'clipPointsByRect', 'clipRectByRect',\r\n 'registerShape', 'getShapeClass',\r\n 'Group',\r\n 'Image',\r\n 'Text',\r\n 'Circle',\r\n 'Ellipse',\r\n 'Sector',\r\n 'Ring',\r\n 'Polygon',\r\n 'Polyline',\r\n 'Rect',\r\n 'Line',\r\n 'BezierCurve',\r\n 'Arc',\r\n 'IncrementalDisplayable',\r\n 'CompoundPath',\r\n 'LinearGradient',\r\n 'RadialGradient',\r\n 'BoundingRect'\r\n ];\r\n var graphic$1 = {};\r\n each(GRAPHIC_KEYS, function (name) {\r\n graphic$1[name] = graphic[name];\r\n });\n\n var RELATIONAL_EXPRESSION_OP_ALIAS_MAP = {\r\n value: 'eq',\r\n '<': 'lt',\r\n '<=': 'lte',\r\n '>': 'gt',\r\n '>=': 'gte',\r\n '=': 'eq',\r\n '!=': 'ne',\r\n '<>': 'ne'\r\n };\r\n var RegExpEvaluator = (function () {\r\n function RegExpEvaluator(rVal) {\r\n var condValue = this._condVal = isString(rVal) ? new RegExp(rVal)\r\n : isRegExp(rVal) ? rVal\r\n : null;\r\n if (condValue == null) {\r\n var errMsg = '';\r\n if (__DEV__) {\r\n errMsg = makePrintable('Illegal regexp', rVal, 'in');\r\n }\r\n throwError(errMsg);\r\n }\r\n }\r\n RegExpEvaluator.prototype.evaluate = function (lVal) {\r\n var type = typeof lVal;\r\n return type === 'string' ? this._condVal.test(lVal)\r\n : type === 'number' ? this._condVal.test(lVal + '')\r\n : false;\r\n };\r\n return RegExpEvaluator;\r\n }());\r\n var ConstConditionInternal = (function () {\r\n function ConstConditionInternal() {\r\n }\r\n ConstConditionInternal.prototype.evaluate = function () {\r\n return this.value;\r\n };\r\n return ConstConditionInternal;\r\n }());\r\n var AndConditionInternal = (function () {\r\n function AndConditionInternal() {\r\n }\r\n AndConditionInternal.prototype.evaluate = function () {\r\n var children = this.children;\r\n for (var i = 0; i < children.length; i++) {\r\n if (!children[i].evaluate()) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n };\r\n return AndConditionInternal;\r\n }());\r\n var OrConditionInternal = (function () {\r\n function OrConditionInternal() {\r\n }\r\n OrConditionInternal.prototype.evaluate = function () {\r\n var children = this.children;\r\n for (var i = 0; i < children.length; i++) {\r\n if (children[i].evaluate()) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n return OrConditionInternal;\r\n }());\r\n var NotConditionInternal = (function () {\r\n function NotConditionInternal() {\r\n }\r\n NotConditionInternal.prototype.evaluate = function () {\r\n return !this.child.evaluate();\r\n };\r\n return NotConditionInternal;\r\n }());\r\n var RelationalConditionInternal = (function () {\r\n function RelationalConditionInternal() {\r\n }\r\n RelationalConditionInternal.prototype.evaluate = function () {\r\n var needParse = !!this.valueParser;\r\n var getValue = this.getValue;\r\n var tarValRaw = getValue(this.valueGetterParam);\r\n var tarValParsed = needParse ? this.valueParser(tarValRaw) : null;\r\n for (var i = 0; i < this.subCondList.length; i++) {\r\n if (!this.subCondList[i].evaluate(needParse ? tarValParsed : tarValRaw)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n };\r\n return RelationalConditionInternal;\r\n }());\r\n function parseOption(exprOption, getters) {\r\n if (exprOption === true || exprOption === false) {\r\n var cond = new ConstConditionInternal();\r\n cond.value = exprOption;\r\n return cond;\r\n }\r\n var errMsg = '';\r\n if (!isObjectNotArray(exprOption)) {\r\n if (__DEV__) {\r\n errMsg = makePrintable('Illegal config. Expect a plain object but actually', exprOption);\r\n }\r\n throwError(errMsg);\r\n }\r\n if (exprOption.and) {\r\n return parseAndOrOption('and', exprOption, getters);\r\n }\r\n else if (exprOption.or) {\r\n return parseAndOrOption('or', exprOption, getters);\r\n }\r\n else if (exprOption.not) {\r\n return parseNotOption(exprOption, getters);\r\n }\r\n return parseRelationalOption(exprOption, getters);\r\n }\r\n function parseAndOrOption(op, exprOption, getters) {\r\n var subOptionArr = exprOption[op];\r\n var errMsg = '';\r\n if (__DEV__) {\r\n errMsg = makePrintable('\"and\"/\"or\" condition should only be `' + op + ': [...]` and must not be empty array.', 'Illegal condition:', exprOption);\r\n }\r\n if (!isArray(subOptionArr)) {\r\n throwError(errMsg);\r\n }\r\n if (!subOptionArr.length) {\r\n throwError(errMsg);\r\n }\r\n var cond = op === 'and' ? new AndConditionInternal() : new OrConditionInternal();\r\n cond.children = map(subOptionArr, function (subOption) { return parseOption(subOption, getters); });\r\n if (!cond.children.length) {\r\n throwError(errMsg);\r\n }\r\n return cond;\r\n }\r\n function parseNotOption(exprOption, getters) {\r\n var subOption = exprOption.not;\r\n var errMsg = '';\r\n if (__DEV__) {\r\n errMsg = makePrintable('\"not\" condition should only be `not: {}`.', 'Illegal condition:', exprOption);\r\n }\r\n if (!isObjectNotArray(subOption)) {\r\n throwError(errMsg);\r\n }\r\n var cond = new NotConditionInternal();\r\n cond.child = parseOption(subOption, getters);\r\n if (!cond.child) {\r\n throwError(errMsg);\r\n }\r\n return cond;\r\n }\r\n function parseRelationalOption(exprOption, getters) {\r\n var errMsg = '';\r\n var valueGetterParam = getters.prepareGetValue(exprOption);\r\n var subCondList = [];\r\n var exprKeys = keys(exprOption);\r\n var parserName = exprOption.parser;\r\n var valueParser = parserName ? getRawValueParser(parserName) : null;\r\n for (var i = 0; i < exprKeys.length; i++) {\r\n var keyRaw = exprKeys[i];\r\n if (keyRaw === 'parser' || getters.valueGetterAttrMap.get(keyRaw)) {\r\n continue;\r\n }\r\n var op = hasOwn(RELATIONAL_EXPRESSION_OP_ALIAS_MAP, keyRaw)\r\n ? RELATIONAL_EXPRESSION_OP_ALIAS_MAP[keyRaw]\r\n : keyRaw;\r\n var condValueRaw = exprOption[keyRaw];\r\n var condValueParsed = valueParser ? valueParser(condValueRaw) : condValueRaw;\r\n var evaluator = createFilterComparator(op, condValueParsed)\r\n || (op === 'reg' && new RegExpEvaluator(condValueParsed));\r\n if (!evaluator) {\r\n if (__DEV__) {\r\n errMsg = makePrintable('Illegal relational operation: \"' + keyRaw + '\" in condition:', exprOption);\r\n }\r\n throwError(errMsg);\r\n }\r\n subCondList.push(evaluator);\r\n }\r\n if (!subCondList.length) {\r\n if (__DEV__) {\r\n errMsg = makePrintable('Relational condition must have at least one operator.', 'Illegal condition:', exprOption);\r\n }\r\n throwError(errMsg);\r\n }\r\n var cond = new RelationalConditionInternal();\r\n cond.valueGetterParam = valueGetterParam;\r\n cond.valueParser = valueParser;\r\n cond.getValue = getters.getValue;\r\n cond.subCondList = subCondList;\r\n return cond;\r\n }\r\n function isObjectNotArray(val) {\r\n return isObject(val) && !isArrayLike(val);\r\n }\r\n var ConditionalExpressionParsed = (function () {\r\n function ConditionalExpressionParsed(exprOption, getters) {\r\n this._cond = parseOption(exprOption, getters);\r\n }\r\n ConditionalExpressionParsed.prototype.evaluate = function () {\r\n return this._cond.evaluate();\r\n };\r\n return ConditionalExpressionParsed;\r\n }());\r\n function parseConditionalExpression(exprOption, getters) {\r\n return new ConditionalExpressionParsed(exprOption, getters);\r\n }\n\n var filterTransform = {\r\n type: 'echarts:filter',\r\n transform: function (params) {\r\n var upstream = params.upstream;\r\n var rawItem;\r\n var condition = parseConditionalExpression(params.config, {\r\n valueGetterAttrMap: createHashMap({ dimension: true }),\r\n prepareGetValue: function (exprOption) {\r\n var errMsg = '';\r\n var dimLoose = exprOption.dimension;\r\n if (!hasOwn(exprOption, 'dimension')) {\r\n if (__DEV__) {\r\n errMsg = makePrintable('Relation condition must has prop \"dimension\" specified.', 'Illegal condition:', exprOption);\r\n }\r\n throwError(errMsg);\r\n }\r\n var dimInfo = upstream.getDimensionInfo(dimLoose);\r\n if (!dimInfo) {\r\n if (__DEV__) {\r\n errMsg = makePrintable('Can not find dimension info via: ' + dimLoose + '.\\n', 'Existing dimensions: ', upstream.cloneAllDimensionInfo(), '.\\n', 'Illegal condition:', exprOption, '.\\n');\r\n }\r\n throwError(errMsg);\r\n }\r\n return { dimIdx: dimInfo.index };\r\n },\r\n getValue: function (param) {\r\n return upstream.retrieveValueFromItem(rawItem, param.dimIdx);\r\n }\r\n });\r\n var resultData = [];\r\n for (var i = 0, len = upstream.count(); i < len; i++) {\r\n rawItem = upstream.getRawDataItem(i);\r\n if (condition.evaluate()) {\r\n resultData.push(rawItem);\r\n }\r\n }\r\n return {\r\n data: resultData\r\n };\r\n }\r\n };\n\n var sampleLog = '';\r\n if (__DEV__) {\r\n sampleLog = [\r\n 'Valid config is like:',\r\n '{ dimension: \"age\", order: \"asc\" }',\r\n 'or [{ dimension: \"age\", order: \"asc\"], { dimension: \"date\", order: \"desc\" }]'\r\n ].join(' ');\r\n }\r\n var sortTransform = {\r\n type: 'echarts:sort',\r\n transform: function (params) {\r\n var upstream = params.upstream;\r\n var config = params.config;\r\n var errMsg = '';\r\n var orderExprList = normalizeToArray(config);\r\n if (!orderExprList.length) {\r\n if (__DEV__) {\r\n errMsg = 'Empty `config` in sort transform.';\r\n }\r\n throwError(errMsg);\r\n }\r\n var orderDefList = [];\r\n each(orderExprList, function (orderExpr) {\r\n var dimLoose = orderExpr.dimension;\r\n var order = orderExpr.order;\r\n var parserName = orderExpr.parser;\r\n var incomparable = orderExpr.incomparable;\r\n if (dimLoose == null) {\r\n if (__DEV__) {\r\n errMsg = 'Sort transform config must has \"dimension\" specified.' + sampleLog;\r\n }\r\n throwError(errMsg);\r\n }\r\n if (order !== 'asc' && order !== 'desc') {\r\n if (__DEV__) {\r\n errMsg = 'Sort transform config must has \"order\" specified.' + sampleLog;\r\n }\r\n throwError(errMsg);\r\n }\r\n if (incomparable && (incomparable !== 'min' && incomparable !== 'max')) {\r\n var errMsg_1 = '';\r\n if (__DEV__) {\r\n errMsg_1 = 'incomparable must be \"min\" or \"max\" rather than \"' + incomparable + '\".';\r\n }\r\n throwError(errMsg_1);\r\n }\r\n if (order !== 'asc' && order !== 'desc') {\r\n var errMsg_2 = '';\r\n if (__DEV__) {\r\n errMsg_2 = 'order must be \"asc\" or \"desc\" rather than \"' + order + '\".';\r\n }\r\n throwError(errMsg_2);\r\n }\r\n var dimInfo = upstream.getDimensionInfo(dimLoose);\r\n if (!dimInfo) {\r\n if (__DEV__) {\r\n errMsg = makePrintable('Can not find dimension info via: ' + dimLoose + '.\\n', 'Existing dimensions: ', upstream.cloneAllDimensionInfo(), '.\\n', 'Illegal config:', orderExpr, '.\\n');\r\n }\r\n throwError(errMsg);\r\n }\r\n var parser = parserName ? getRawValueParser(parserName) : null;\r\n if (parserName && !parser) {\r\n if (__DEV__) {\r\n errMsg = makePrintable('Invalid parser name ' + parserName + '.\\n', 'Illegal config:', orderExpr, '.\\n');\r\n }\r\n throwError(errMsg);\r\n }\r\n orderDefList.push({\r\n dimIdx: dimInfo.index,\r\n parser: parser,\r\n comparator: new SortOrderComparator(order, incomparable)\r\n });\r\n });\r\n var sourceFormat = upstream.sourceFormat;\r\n if (sourceFormat !== SOURCE_FORMAT_ARRAY_ROWS\r\n && sourceFormat !== SOURCE_FORMAT_OBJECT_ROWS) {\r\n if (__DEV__) {\r\n errMsg = 'sourceFormat \"' + sourceFormat + '\" is not supported yet';\r\n }\r\n throwError(errMsg);\r\n }\r\n var resultData = [];\r\n for (var i = 0, len = upstream.count(); i < len; i++) {\r\n resultData.push(upstream.getRawDataItem(i));\r\n }\r\n resultData.sort(function (item0, item1) {\r\n for (var i = 0; i < orderDefList.length; i++) {\r\n var orderDef = orderDefList[i];\r\n var val0 = upstream.retrieveValueFromItem(item0, orderDef.dimIdx);\r\n var val1 = upstream.retrieveValueFromItem(item1, orderDef.dimIdx);\r\n if (orderDef.parser) {\r\n val0 = orderDef.parser(val0);\r\n val1 = orderDef.parser(val1);\r\n }\r\n var result = orderDef.comparator.evaluate(val0, val1);\r\n if (result !== 0) {\r\n return result;\r\n }\r\n }\r\n return 0;\r\n });\r\n return {\r\n data: resultData\r\n };\r\n }\r\n };\n\n registerTransform(filterTransform);\r\n registerTransform(sortTransform);\n\n var LineSeriesModel = (function (_super) {\r\n __extends(LineSeriesModel, _super);\r\n function LineSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = LineSeriesModel.type;\r\n _this.hasSymbolVisual = true;\r\n _this.legendSymbol = 'line';\r\n return _this;\r\n }\r\n LineSeriesModel.prototype.getInitialData = function (option) {\r\n if (__DEV__) {\r\n var coordSys = option.coordinateSystem;\r\n if (coordSys !== 'polar' && coordSys !== 'cartesian2d') {\r\n throw new Error('Line not support coordinateSystem besides cartesian and polar');\r\n }\r\n }\r\n return createListFromArray(this.getSource(), this, {\r\n useEncodeDefaulter: true\r\n });\r\n };\r\n LineSeriesModel.type = 'series.line';\r\n LineSeriesModel.dependencies = ['grid', 'polar'];\r\n LineSeriesModel.defaultOption = {\r\n zlevel: 0,\r\n z: 3,\r\n coordinateSystem: 'cartesian2d',\r\n legendHoverLink: true,\r\n clip: true,\r\n label: {\r\n position: 'top'\r\n },\r\n endLabel: {\r\n show: false,\r\n valueAnimation: true,\r\n distance: 8\r\n },\r\n lineStyle: {\r\n width: 2,\r\n type: 'solid'\r\n },\r\n emphasis: {\r\n scale: true,\r\n lineStyle: {\r\n width: 'bolder'\r\n }\r\n },\r\n step: false,\r\n smooth: false,\r\n smoothMonotone: null,\r\n symbol: 'emptyCircle',\r\n symbolSize: 4,\r\n symbolRotate: null,\r\n showSymbol: true,\r\n showAllSymbol: 'auto',\r\n connectNulls: false,\r\n sampling: 'none',\r\n animationEasing: 'linear',\r\n progressive: 0,\r\n hoverLayerThreshold: Infinity\r\n };\r\n return LineSeriesModel;\r\n }(SeriesModel));\r\n SeriesModel.registerClass(LineSeriesModel);\n\n function getDefaultLabel(data, dataIndex) {\r\n var labelDims = data.mapDimensionsAll('defaultedLabel');\r\n var len = labelDims.length;\r\n if (len === 1) {\r\n return retrieveRawValue(data, dataIndex, labelDims[0]);\r\n }\r\n else if (len) {\r\n var vals = [];\r\n for (var i = 0; i < labelDims.length; i++) {\r\n vals.push(retrieveRawValue(data, dataIndex, labelDims[i]));\r\n }\r\n return vals.join(' ');\r\n }\r\n }\r\n function getDefaultInterpolatedLabel(data, interpolatedValue) {\r\n var labelDims = data.mapDimensionsAll('defaultedLabel');\r\n if (!isArray(interpolatedValue)) {\r\n return interpolatedValue + '';\r\n }\r\n var vals = [];\r\n for (var i = 0; i < labelDims.length; i++) {\r\n var dimInfo = data.getDimensionInfo(labelDims[i]);\r\n if (dimInfo) {\r\n vals.push(interpolatedValue[dimInfo.index]);\r\n }\r\n }\r\n return vals.join(' ');\r\n }\n\n var Symbol = (function (_super) {\r\n __extends(Symbol, _super);\r\n function Symbol(data, idx, seriesScope, opts) {\r\n var _this = _super.call(this) || this;\r\n _this.updateData(data, idx, seriesScope, opts);\r\n return _this;\r\n }\r\n Symbol.prototype._createSymbol = function (symbolType, data, idx, symbolSize, keepAspect) {\r\n this.removeAll();\r\n var symbolPath = createSymbol(symbolType, -1, -1, 2, 2, null, keepAspect);\r\n symbolPath.attr({\r\n z2: 100,\r\n culling: true,\r\n scaleX: symbolSize[0] / 2,\r\n scaleY: symbolSize[1] / 2\r\n });\r\n symbolPath.drift = driftSymbol;\r\n this._symbolType = symbolType;\r\n this.add(symbolPath);\r\n };\r\n Symbol.prototype.stopSymbolAnimation = function (toLastFrame) {\r\n this.childAt(0).stopAnimation(null, toLastFrame);\r\n };\r\n Symbol.prototype.getSymbolPath = function () {\r\n return this.childAt(0);\r\n };\r\n Symbol.prototype.highlight = function () {\r\n enterEmphasis(this.childAt(0));\r\n };\r\n Symbol.prototype.downplay = function () {\r\n leaveEmphasis(this.childAt(0));\r\n };\r\n Symbol.prototype.setZ = function (zlevel, z) {\r\n var symbolPath = this.childAt(0);\r\n symbolPath.zlevel = zlevel;\r\n symbolPath.z = z;\r\n };\r\n Symbol.prototype.setDraggable = function (draggable) {\r\n var symbolPath = this.childAt(0);\r\n symbolPath.draggable = draggable;\r\n symbolPath.cursor = draggable ? 'move' : symbolPath.cursor;\r\n };\r\n Symbol.prototype.updateData = function (data, idx, seriesScope, opts) {\r\n this.silent = false;\r\n var symbolType = data.getItemVisual(idx, 'symbol') || 'circle';\r\n var seriesModel = data.hostModel;\r\n var symbolSize = Symbol.getSymbolSize(data, idx);\r\n var isInit = symbolType !== this._symbolType;\r\n var disableAnimation = opts && opts.disableAnimation;\r\n if (isInit) {\r\n var keepAspect = data.getItemVisual(idx, 'symbolKeepAspect');\r\n this._createSymbol(symbolType, data, idx, symbolSize, keepAspect);\r\n }\r\n else {\r\n var symbolPath = this.childAt(0);\r\n symbolPath.silent = false;\r\n var target = {\r\n scaleX: symbolSize[0] / 2,\r\n scaleY: symbolSize[1] / 2\r\n };\r\n disableAnimation ? symbolPath.attr(target)\r\n : updateProps(symbolPath, target, seriesModel, idx);\r\n }\r\n this._updateCommon(data, idx, symbolSize, seriesScope, opts);\r\n if (isInit) {\r\n var symbolPath = this.childAt(0);\r\n if (!disableAnimation) {\r\n var target = {\r\n scaleX: this._sizeX,\r\n scaleY: this._sizeY,\r\n style: {\r\n opacity: symbolPath.style.opacity\r\n }\r\n };\r\n symbolPath.scaleX = symbolPath.scaleY = 0;\r\n symbolPath.style.opacity = 0;\r\n initProps(symbolPath, target, seriesModel, idx);\r\n }\r\n }\r\n if (disableAnimation) {\r\n this.childAt(0).stopAnimation('remove');\r\n }\r\n this._seriesModel = seriesModel;\r\n };\r\n Symbol.prototype._updateCommon = function (data, idx, symbolSize, seriesScope, opts) {\r\n var symbolPath = this.childAt(0);\r\n var seriesModel = data.hostModel;\r\n var emphasisItemStyle;\r\n var blurItemStyle;\r\n var selectItemStyle;\r\n var focus;\r\n var blurScope;\r\n var symbolOffset;\r\n var labelStatesModels;\r\n var hoverScale;\r\n var cursorStyle;\r\n if (seriesScope) {\r\n emphasisItemStyle = seriesScope.emphasisItemStyle;\r\n blurItemStyle = seriesScope.blurItemStyle;\r\n selectItemStyle = seriesScope.selectItemStyle;\r\n focus = seriesScope.focus;\r\n blurScope = seriesScope.blurScope;\r\n symbolOffset = seriesScope.symbolOffset;\r\n labelStatesModels = seriesScope.labelStatesModels;\r\n hoverScale = seriesScope.hoverScale;\r\n cursorStyle = seriesScope.cursorStyle;\r\n }\r\n if (!seriesScope || data.hasItemOption) {\r\n var itemModel = (seriesScope && seriesScope.itemModel)\r\n ? seriesScope.itemModel : data.getItemModel(idx);\r\n var emphasisModel = itemModel.getModel('emphasis');\r\n emphasisItemStyle = emphasisModel.getModel('itemStyle').getItemStyle();\r\n selectItemStyle = itemModel.getModel(['select', 'itemStyle']).getItemStyle();\r\n blurItemStyle = itemModel.getModel(['blur', 'itemStyle']).getItemStyle();\r\n focus = emphasisModel.get('focus');\r\n blurScope = emphasisModel.get('blurScope');\r\n symbolOffset = itemModel.getShallow('symbolOffset');\r\n labelStatesModels = getLabelStatesModels(itemModel);\r\n hoverScale = emphasisModel.getShallow('scale');\r\n cursorStyle = itemModel.getShallow('cursor');\r\n }\r\n var symbolRotate = data.getItemVisual(idx, 'symbolRotate');\r\n symbolPath.attr('rotation', (symbolRotate || 0) * Math.PI / 180 || 0);\r\n if (symbolOffset) {\r\n symbolPath.x = parsePercent$2(symbolOffset[0], symbolSize[0]);\r\n symbolPath.y = parsePercent$2(symbolOffset[1], symbolSize[1]);\r\n }\r\n cursorStyle && symbolPath.attr('cursor', cursorStyle);\r\n var symbolStyle = data.getItemVisual(idx, 'style');\r\n var visualColor = symbolStyle.fill;\r\n if (symbolPath instanceof ZRImage) {\r\n var pathStyle = symbolPath.style;\r\n symbolPath.useStyle(extend({\r\n image: pathStyle.image,\r\n x: pathStyle.x, y: pathStyle.y,\r\n width: pathStyle.width, height: pathStyle.height\r\n }, symbolStyle));\r\n }\r\n else {\r\n if (symbolPath.__isEmptyBrush) {\r\n symbolPath.useStyle(extend({}, symbolStyle));\r\n }\r\n else {\r\n symbolPath.useStyle(symbolStyle);\r\n }\r\n symbolPath.style.decal = null;\r\n symbolPath.setColor(visualColor, opts && opts.symbolInnerColor);\r\n symbolPath.style.strokeNoScale = true;\r\n }\r\n var liftZ = data.getItemVisual(idx, 'liftZ');\r\n var z2Origin = this._z2;\r\n if (liftZ != null) {\r\n if (z2Origin == null) {\r\n this._z2 = symbolPath.z2;\r\n symbolPath.z2 += liftZ;\r\n }\r\n }\r\n else if (z2Origin != null) {\r\n symbolPath.z2 = z2Origin;\r\n this._z2 = null;\r\n }\r\n var useNameLabel = opts && opts.useNameLabel;\r\n setLabelStyle(symbolPath, labelStatesModels, {\r\n labelFetcher: seriesModel,\r\n labelDataIndex: idx,\r\n defaultText: getLabelDefaultText,\r\n inheritColor: visualColor,\r\n defaultOpacity: symbolStyle.opacity\r\n });\r\n function getLabelDefaultText(idx) {\r\n return useNameLabel ? data.getName(idx) : getDefaultLabel(data, idx);\r\n }\r\n this._sizeX = symbolSize[0] / 2;\r\n this._sizeY = symbolSize[1] / 2;\r\n var emphasisState = symbolPath.ensureState('emphasis');\r\n emphasisState.style = emphasisItemStyle;\r\n symbolPath.ensureState('select').style = selectItemStyle;\r\n symbolPath.ensureState('blur').style = blurItemStyle;\r\n if (hoverScale) {\r\n var scaleRatio = Math.max(1.1, 3 / this._sizeY);\r\n emphasisState.scaleX = this._sizeX * scaleRatio;\r\n emphasisState.scaleY = this._sizeY * scaleRatio;\r\n }\r\n this.setSymbolScale(1);\r\n enableHoverEmphasis(this, focus, blurScope);\r\n };\r\n Symbol.prototype.setSymbolScale = function (scale) {\r\n this.scaleX = this.scaleY = scale;\r\n };\r\n Symbol.prototype.fadeOut = function (cb, opt) {\r\n var symbolPath = this.childAt(0);\r\n var seriesModel = this._seriesModel;\r\n var dataIndex = getECData(this).dataIndex;\r\n var animationOpt = opt && opt.animation;\r\n this.silent = symbolPath.silent = true;\r\n if (opt && opt.fadeLabel) {\r\n var textContent = symbolPath.getTextContent();\r\n if (textContent) {\r\n removeElement(textContent, {\r\n style: {\r\n opacity: 0\r\n }\r\n }, seriesModel, {\r\n dataIndex: dataIndex,\r\n removeOpt: animationOpt,\r\n cb: function () {\r\n symbolPath.removeTextContent();\r\n }\r\n });\r\n }\r\n }\r\n else {\r\n symbolPath.removeTextContent();\r\n }\r\n removeElement(symbolPath, {\r\n style: {\r\n opacity: 0\r\n },\r\n scaleX: 0,\r\n scaleY: 0\r\n }, seriesModel, { dataIndex: dataIndex, cb: cb, removeOpt: animationOpt });\r\n };\r\n Symbol.getSymbolSize = function (data, idx) {\r\n var symbolSize = data.getItemVisual(idx, 'symbolSize');\r\n return symbolSize instanceof Array\r\n ? symbolSize.slice()\r\n : [+symbolSize, +symbolSize];\r\n };\r\n return Symbol;\r\n }(Group));\r\n function driftSymbol(dx, dy) {\r\n this.parent.drift(dx, dy);\r\n }\n\n function symbolNeedsDraw(data, point, idx, opt) {\r\n return point && !isNaN(point[0]) && !isNaN(point[1])\r\n && !(opt.isIgnore && opt.isIgnore(idx))\r\n && !(opt.clipShape && !opt.clipShape.contain(point[0], point[1]))\r\n && data.getItemVisual(idx, 'symbol') !== 'none';\r\n }\r\n function normalizeUpdateOpt(opt) {\r\n if (opt != null && !isObject(opt)) {\r\n opt = { isIgnore: opt };\r\n }\r\n return opt || {};\r\n }\r\n function makeSeriesScope(data) {\r\n var seriesModel = data.hostModel;\r\n var emphasisModel = seriesModel.getModel('emphasis');\r\n return {\r\n emphasisItemStyle: emphasisModel.getModel('itemStyle').getItemStyle(),\r\n blurItemStyle: seriesModel.getModel(['blur', 'itemStyle']).getItemStyle(),\r\n selectItemStyle: seriesModel.getModel(['select', 'itemStyle']).getItemStyle(),\r\n focus: emphasisModel.get('focus'),\r\n blurScope: emphasisModel.get('blurScope'),\r\n symbolRotate: seriesModel.get('symbolRotate'),\r\n symbolOffset: seriesModel.get('symbolOffset'),\r\n hoverScale: emphasisModel.get('scale'),\r\n labelStatesModels: getLabelStatesModels(seriesModel),\r\n cursorStyle: seriesModel.get('cursor')\r\n };\r\n }\r\n var SymbolDraw = (function () {\r\n function SymbolDraw(SymbolCtor) {\r\n this.group = new Group();\r\n this._SymbolCtor = SymbolCtor || Symbol;\r\n }\r\n SymbolDraw.prototype.updateData = function (data, opt) {\r\n opt = normalizeUpdateOpt(opt);\r\n var group = this.group;\r\n var seriesModel = data.hostModel;\r\n var oldData = this._data;\r\n var SymbolCtor = this._SymbolCtor;\r\n var disableAnimation = opt.disableAnimation;\r\n var seriesScope = makeSeriesScope(data);\r\n var symbolUpdateOpt = { disableAnimation: disableAnimation };\r\n var getSymbolPoint = opt.getSymbolPoint || function (idx) {\r\n return data.getItemLayout(idx);\r\n };\r\n if (!oldData) {\r\n group.removeAll();\r\n }\r\n data.diff(oldData)\r\n .add(function (newIdx) {\r\n var point = getSymbolPoint(newIdx);\r\n if (symbolNeedsDraw(data, point, newIdx, opt)) {\r\n var symbolEl = new SymbolCtor(data, newIdx, seriesScope, symbolUpdateOpt);\r\n symbolEl.setPosition(point);\r\n data.setItemGraphicEl(newIdx, symbolEl);\r\n group.add(symbolEl);\r\n }\r\n })\r\n .update(function (newIdx, oldIdx) {\r\n var symbolEl = oldData.getItemGraphicEl(oldIdx);\r\n var point = getSymbolPoint(newIdx);\r\n if (!symbolNeedsDraw(data, point, newIdx, opt)) {\r\n group.remove(symbolEl);\r\n return;\r\n }\r\n if (!symbolEl) {\r\n symbolEl = new SymbolCtor(data, newIdx);\r\n symbolEl.setPosition(point);\r\n }\r\n else {\r\n symbolEl.updateData(data, newIdx, seriesScope, symbolUpdateOpt);\r\n var target = {\r\n x: point[0],\r\n y: point[1]\r\n };\r\n disableAnimation\r\n ? symbolEl.attr(target)\r\n : updateProps(symbolEl, target, seriesModel);\r\n }\r\n group.add(symbolEl);\r\n data.setItemGraphicEl(newIdx, symbolEl);\r\n })\r\n .remove(function (oldIdx) {\r\n var el = oldData.getItemGraphicEl(oldIdx);\r\n el && el.fadeOut(function () {\r\n group.remove(el);\r\n });\r\n })\r\n .execute();\r\n this._getSymbolPoint = getSymbolPoint;\r\n this._data = data;\r\n };\r\n SymbolDraw.prototype.isPersistent = function () {\r\n return true;\r\n };\r\n SymbolDraw.prototype.updateLayout = function () {\r\n var _this = this;\r\n var data = this._data;\r\n if (data) {\r\n data.eachItemGraphicEl(function (el, idx) {\r\n var point = _this._getSymbolPoint(idx);\r\n el.setPosition(point);\r\n el.markRedraw();\r\n });\r\n }\r\n };\r\n SymbolDraw.prototype.incrementalPrepareUpdate = function (data) {\r\n this._seriesScope = makeSeriesScope(data);\r\n this._data = null;\r\n this.group.removeAll();\r\n };\r\n SymbolDraw.prototype.incrementalUpdate = function (taskParams, data, opt) {\r\n opt = normalizeUpdateOpt(opt);\r\n function updateIncrementalAndHover(el) {\r\n if (!el.isGroup) {\r\n el.incremental = true;\r\n el.ensureState('emphasis').hoverLayer = true;\r\n }\r\n }\r\n for (var idx = taskParams.start; idx < taskParams.end; idx++) {\r\n var point = data.getItemLayout(idx);\r\n if (symbolNeedsDraw(data, point, idx, opt)) {\r\n var el = new this._SymbolCtor(data, idx, this._seriesScope);\r\n el.traverse(updateIncrementalAndHover);\r\n el.setPosition(point);\r\n this.group.add(el);\r\n data.setItemGraphicEl(idx, el);\r\n }\r\n }\r\n };\r\n SymbolDraw.prototype.remove = function (enableAnimation) {\r\n var group = this.group;\r\n var data = this._data;\r\n if (data && enableAnimation) {\r\n data.eachItemGraphicEl(function (el) {\r\n el.fadeOut(function () {\r\n group.remove(el);\r\n });\r\n });\r\n }\r\n else {\r\n group.removeAll();\r\n }\r\n };\r\n return SymbolDraw;\r\n }());\n\n function prepareDataCoordInfo(coordSys, data, valueOrigin) {\r\n var baseAxis = coordSys.getBaseAxis();\r\n var valueAxis = coordSys.getOtherAxis(baseAxis);\r\n var valueStart = getValueStart(valueAxis, valueOrigin);\r\n var baseAxisDim = baseAxis.dim;\r\n var valueAxisDim = valueAxis.dim;\r\n var valueDim = data.mapDimension(valueAxisDim);\r\n var baseDim = data.mapDimension(baseAxisDim);\r\n var baseDataOffset = valueAxisDim === 'x' || valueAxisDim === 'radius' ? 1 : 0;\r\n var dims = map(coordSys.dimensions, function (coordDim) {\r\n return data.mapDimension(coordDim);\r\n });\r\n var stacked = false;\r\n var stackResultDim = data.getCalculationInfo('stackResultDimension');\r\n if (isDimensionStacked(data, dims[0])) {\r\n stacked = true;\r\n dims[0] = stackResultDim;\r\n }\r\n if (isDimensionStacked(data, dims[1])) {\r\n stacked = true;\r\n dims[1] = stackResultDim;\r\n }\r\n return {\r\n dataDimsForPoint: dims,\r\n valueStart: valueStart,\r\n valueAxisDim: valueAxisDim,\r\n baseAxisDim: baseAxisDim,\r\n stacked: !!stacked,\r\n valueDim: valueDim,\r\n baseDim: baseDim,\r\n baseDataOffset: baseDataOffset,\r\n stackedOverDimension: data.getCalculationInfo('stackedOverDimension')\r\n };\r\n }\r\n function getValueStart(valueAxis, valueOrigin) {\r\n var valueStart = 0;\r\n var extent = valueAxis.scale.getExtent();\r\n if (valueOrigin === 'start') {\r\n valueStart = extent[0];\r\n }\r\n else if (valueOrigin === 'end') {\r\n valueStart = extent[1];\r\n }\r\n else {\r\n if (extent[0] > 0) {\r\n valueStart = extent[0];\r\n }\r\n else if (extent[1] < 0) {\r\n valueStart = extent[1];\r\n }\r\n }\r\n return valueStart;\r\n }\r\n function getStackedOnPoint(dataCoordInfo, coordSys, data, idx) {\r\n var value = NaN;\r\n if (dataCoordInfo.stacked) {\r\n value = data.get(data.getCalculationInfo('stackedOverDimension'), idx);\r\n }\r\n if (isNaN(value)) {\r\n value = dataCoordInfo.valueStart;\r\n }\r\n var baseDataOffset = dataCoordInfo.baseDataOffset;\r\n var stackedData = [];\r\n stackedData[baseDataOffset] = data.get(dataCoordInfo.baseDim, idx);\r\n stackedData[1 - baseDataOffset] = value;\r\n return coordSys.dataToPoint(stackedData);\r\n }\n\n var supportFloat32Array = typeof Float32Array !== 'undefined';\r\n var Float32ArrayCtor = !supportFloat32Array ? Array : Float32Array;\r\n function createFloat32Array(arg) {\r\n if (isArray(arg)) {\r\n return supportFloat32Array ? new Float32Array(arg) : arg;\r\n }\r\n return new Float32ArrayCtor(arg);\r\n }\n\n function diffData(oldData, newData) {\r\n var diffResult = [];\r\n newData.diff(oldData)\r\n .add(function (idx) {\r\n diffResult.push({ cmd: '+', idx: idx });\r\n })\r\n .update(function (newIdx, oldIdx) {\r\n diffResult.push({ cmd: '=', idx: oldIdx, idx1: newIdx });\r\n })\r\n .remove(function (idx) {\r\n diffResult.push({ cmd: '-', idx: idx });\r\n })\r\n .execute();\r\n return diffResult;\r\n }\r\n function lineAnimationDiff(oldData, newData, oldStackedOnPoints, newStackedOnPoints, oldCoordSys, newCoordSys, oldValueOrigin, newValueOrigin) {\r\n var diff = diffData(oldData, newData);\r\n var currPoints = [];\r\n var nextPoints = [];\r\n var currStackedPoints = [];\r\n var nextStackedPoints = [];\r\n var status = [];\r\n var sortedIndices = [];\r\n var rawIndices = [];\r\n var newDataOldCoordInfo = prepareDataCoordInfo(oldCoordSys, newData, oldValueOrigin);\r\n var oldDataNewCoordInfo = prepareDataCoordInfo(newCoordSys, oldData, newValueOrigin);\r\n var oldPoints = oldData.getLayout('points') || [];\r\n var newPoints = newData.getLayout('points') || [];\r\n for (var i = 0; i < diff.length; i++) {\r\n var diffItem = diff[i];\r\n var pointAdded = true;\r\n var oldIdx2 = void 0;\r\n var newIdx2 = void 0;\r\n switch (diffItem.cmd) {\r\n case '=':\r\n oldIdx2 = diffItem.idx * 2;\r\n newIdx2 = diffItem.idx1 * 2;\r\n var currentX = oldPoints[oldIdx2];\r\n var currentY = oldPoints[oldIdx2 + 1];\r\n var nextX = newPoints[newIdx2];\r\n var nextY = newPoints[newIdx2 + 1];\r\n if (isNaN(currentX) || isNaN(currentY)) {\r\n currentX = nextX;\r\n currentY = nextY;\r\n }\r\n currPoints.push(currentX, currentY);\r\n nextPoints.push(nextX, nextY);\r\n currStackedPoints.push(oldStackedOnPoints[oldIdx2], oldStackedOnPoints[oldIdx2 + 1]);\r\n nextStackedPoints.push(newStackedOnPoints[newIdx2], newStackedOnPoints[newIdx2 + 1]);\r\n rawIndices.push(newData.getRawIndex(diffItem.idx1));\r\n break;\r\n case '+':\r\n var newIdx = diffItem.idx;\r\n var newDataDimsForPoint = newDataOldCoordInfo.dataDimsForPoint;\r\n var oldPt = oldCoordSys.dataToPoint([\r\n newData.get(newDataDimsForPoint[0], newIdx),\r\n newData.get(newDataDimsForPoint[1], newIdx)\r\n ]);\r\n newIdx2 = newIdx * 2;\r\n currPoints.push(oldPt[0], oldPt[1]);\r\n nextPoints.push(newPoints[newIdx2], newPoints[newIdx2 + 1]);\r\n var stackedOnPoint = getStackedOnPoint(newDataOldCoordInfo, oldCoordSys, newData, newIdx);\r\n currStackedPoints.push(stackedOnPoint[0], stackedOnPoint[1]);\r\n nextStackedPoints.push(newStackedOnPoints[newIdx2], newStackedOnPoints[newIdx2 + 1]);\r\n rawIndices.push(newData.getRawIndex(newIdx));\r\n break;\r\n case '-':\r\n var oldIdx = diffItem.idx;\r\n var rawIndex = oldData.getRawIndex(oldIdx);\r\n var oldDataDimsForPoint = oldDataNewCoordInfo.dataDimsForPoint;\r\n oldIdx2 = oldIdx * 2;\r\n if (rawIndex !== oldIdx) {\r\n var newPt = newCoordSys.dataToPoint([\r\n oldData.get(oldDataDimsForPoint[0], oldIdx),\r\n oldData.get(oldDataDimsForPoint[1], oldIdx)\r\n ]);\r\n var newStackedOnPt = getStackedOnPoint(oldDataNewCoordInfo, newCoordSys, oldData, oldIdx);\r\n currPoints.push(oldPoints[oldIdx2], oldPoints[oldIdx2 + 1]);\r\n nextPoints.push(newPt[0], newPt[1]);\r\n currStackedPoints.push(oldStackedOnPoints[oldIdx2], oldStackedOnPoints[oldIdx2 + 1]);\r\n nextStackedPoints.push(newStackedOnPt[0], newStackedOnPt[1]);\r\n rawIndices.push(rawIndex);\r\n }\r\n else {\r\n pointAdded = false;\r\n }\r\n }\r\n if (pointAdded) {\r\n status.push(diffItem);\r\n sortedIndices.push(sortedIndices.length);\r\n }\r\n }\r\n sortedIndices.sort(function (a, b) {\r\n return rawIndices[a] - rawIndices[b];\r\n });\r\n var len = currPoints.length;\r\n var sortedCurrPoints = createFloat32Array(len);\r\n var sortedNextPoints = createFloat32Array(len);\r\n var sortedCurrStackedPoints = createFloat32Array(len);\r\n var sortedNextStackedPoints = createFloat32Array(len);\r\n var sortedStatus = [];\r\n for (var i = 0; i < sortedIndices.length; i++) {\r\n var idx = sortedIndices[i];\r\n var i2 = i * 2;\r\n var idx2 = idx * 2;\r\n sortedCurrPoints[i2] = currPoints[idx2];\r\n sortedCurrPoints[i2 + 1] = currPoints[idx2 + 1];\r\n sortedNextPoints[i2] = nextPoints[idx2];\r\n sortedNextPoints[i2 + 1] = nextPoints[idx2 + 1];\r\n sortedCurrStackedPoints[i2] = currStackedPoints[idx2];\r\n sortedCurrStackedPoints[i2 + 1] = currStackedPoints[idx2 + 1];\r\n sortedNextStackedPoints[i2] = nextStackedPoints[idx2];\r\n sortedNextStackedPoints[i2 + 1] = nextStackedPoints[idx2 + 1];\r\n sortedStatus[i] = status[idx];\r\n }\r\n return {\r\n current: sortedCurrPoints,\r\n next: sortedNextPoints,\r\n stackedOnCurrent: sortedCurrStackedPoints,\r\n stackedOnNext: sortedNextStackedPoints,\r\n status: sortedStatus\r\n };\r\n }\n\n var mathMin$5 = Math.min;\r\n var mathMax$5 = Math.max;\r\n function isPointNull(x, y) {\r\n return isNaN(x) || isNaN(y);\r\n }\r\n function drawSegment(ctx, points, start, segLen, allLen, dir, smooth, smoothMonotone, connectNulls) {\r\n var prevX;\r\n var prevY;\r\n var cpx0;\r\n var cpy0;\r\n var cpx1;\r\n var cpy1;\r\n var idx = start;\r\n var k = 0;\r\n for (; k < segLen; k++) {\r\n var x = points[idx * 2];\r\n var y = points[idx * 2 + 1];\r\n if (idx >= allLen || idx < 0) {\r\n break;\r\n }\r\n if (isPointNull(x, y)) {\r\n if (connectNulls) {\r\n idx += dir;\r\n continue;\r\n }\r\n break;\r\n }\r\n if (idx === start) {\r\n ctx[dir > 0 ? 'moveTo' : 'lineTo'](x, y);\r\n cpx0 = x;\r\n cpy0 = y;\r\n }\r\n else {\r\n var dx = x - prevX;\r\n var dy = y - prevY;\r\n if ((dx * dx + dy * dy) < 0.5) {\r\n idx += dir;\r\n continue;\r\n }\r\n if (smooth > 0) {\r\n var nextIdx = idx + dir;\r\n var nextX = points[nextIdx * 2];\r\n var nextY = points[nextIdx * 2 + 1];\r\n var tmpK = k + 1;\r\n if (connectNulls) {\r\n while (isPointNull(nextX, nextY) && tmpK < segLen) {\r\n tmpK++;\r\n nextIdx += dir;\r\n nextX = points[nextIdx * 2];\r\n nextY = points[nextIdx * 2 + 1];\r\n }\r\n }\r\n var ratioNextSeg = 0.5;\r\n var vx = 0;\r\n var vy = 0;\r\n var nextCpx0 = void 0;\r\n var nextCpy0 = void 0;\r\n if (tmpK >= segLen || isPointNull(nextX, nextY)) {\r\n cpx1 = x;\r\n cpy1 = y;\r\n }\r\n else {\r\n vx = nextX - prevX;\r\n vy = nextY - prevY;\r\n var dx0 = x - prevX;\r\n var dx1 = nextX - x;\r\n var dy0 = y - prevY;\r\n var dy1 = nextY - y;\r\n var lenPrevSeg = void 0;\r\n var lenNextSeg = void 0;\r\n if (smoothMonotone === 'x') {\r\n lenPrevSeg = Math.abs(dx0);\r\n lenNextSeg = Math.abs(dx1);\r\n cpx1 = x - lenPrevSeg * smooth;\r\n cpy1 = y;\r\n nextCpx0 = x + lenPrevSeg * smooth;\r\n nextCpy0 = y;\r\n }\r\n else if (smoothMonotone === 'y') {\r\n lenPrevSeg = Math.abs(dy0);\r\n lenNextSeg = Math.abs(dy1);\r\n cpx1 = x;\r\n cpy1 = y - lenPrevSeg * smooth;\r\n nextCpx0 = x;\r\n nextCpy0 = y + lenPrevSeg * smooth;\r\n }\r\n else {\r\n lenPrevSeg = Math.sqrt(dx0 * dx0 + dy0 * dy0);\r\n lenNextSeg = Math.sqrt(dx1 * dx1 + dy1 * dy1);\r\n ratioNextSeg = lenNextSeg / (lenNextSeg + lenPrevSeg);\r\n cpx1 = x - vx * smooth * (1 - ratioNextSeg);\r\n cpy1 = y - vy * smooth * (1 - ratioNextSeg);\r\n nextCpx0 = x + vx * smooth * ratioNextSeg;\r\n nextCpy0 = y + vy * smooth * ratioNextSeg;\r\n nextCpx0 = mathMin$5(nextCpx0, mathMax$5(nextX, x));\r\n nextCpy0 = mathMin$5(nextCpy0, mathMax$5(nextY, y));\r\n nextCpx0 = mathMax$5(nextCpx0, mathMin$5(nextX, x));\r\n nextCpy0 = mathMax$5(nextCpy0, mathMin$5(nextY, y));\r\n vx = nextCpx0 - x;\r\n vy = nextCpy0 - y;\r\n cpx1 = x - vx * lenPrevSeg / lenNextSeg;\r\n cpy1 = y - vy * lenPrevSeg / lenNextSeg;\r\n cpx1 = mathMin$5(cpx1, mathMax$5(prevX, x));\r\n cpy1 = mathMin$5(cpy1, mathMax$5(prevY, y));\r\n cpx1 = mathMax$5(cpx1, mathMin$5(prevX, x));\r\n cpy1 = mathMax$5(cpy1, mathMin$5(prevY, y));\r\n vx = x - cpx1;\r\n vy = y - cpy1;\r\n nextCpx0 = x + vx * lenNextSeg / lenPrevSeg;\r\n nextCpy0 = y + vy * lenNextSeg / lenPrevSeg;\r\n }\r\n }\r\n ctx.bezierCurveTo(cpx0, cpy0, cpx1, cpy1, x, y);\r\n cpx0 = nextCpx0;\r\n cpy0 = nextCpy0;\r\n }\r\n else {\r\n ctx.lineTo(x, y);\r\n }\r\n }\r\n prevX = x;\r\n prevY = y;\r\n idx += dir;\r\n }\r\n return k;\r\n }\r\n var ECPolylineShape = (function () {\r\n function ECPolylineShape() {\r\n this.smooth = 0;\r\n this.smoothConstraint = true;\r\n }\r\n return ECPolylineShape;\r\n }());\r\n var ECPolyline = (function (_super) {\r\n __extends(ECPolyline, _super);\r\n function ECPolyline(opts) {\r\n var _this = _super.call(this, opts) || this;\r\n _this.type = 'ec-polyline';\r\n return _this;\r\n }\r\n ECPolyline.prototype.getDefaultStyle = function () {\r\n return {\r\n stroke: '#000',\r\n fill: null\r\n };\r\n };\r\n ECPolyline.prototype.getDefaultShape = function () {\r\n return new ECPolylineShape();\r\n };\r\n ECPolyline.prototype.buildPath = function (ctx, shape) {\r\n var points = shape.points;\r\n var i = 0;\r\n var len = points.length / 2;\r\n if (shape.connectNulls) {\r\n for (; len > 0; len--) {\r\n if (!isPointNull(points[len * 2 - 2], points[len * 2 - 1])) {\r\n break;\r\n }\r\n }\r\n for (; i < len; i++) {\r\n if (!isPointNull(points[i * 2], points[i * 2 + 1])) {\r\n break;\r\n }\r\n }\r\n }\r\n while (i < len) {\r\n i += drawSegment(ctx, points, i, len, len, 1, shape.smooth, shape.smoothMonotone, shape.connectNulls) + 1;\r\n }\r\n };\r\n ECPolyline.prototype.getPointOn = function (xOrY, dim) {\r\n if (!this.path) {\r\n this.createPathProxy();\r\n this.buildPath(this.path, this.shape);\r\n }\r\n var path = this.path;\r\n var data = path.data;\r\n var CMD = PathProxy.CMD;\r\n var x0;\r\n var y0;\r\n var isDimX = dim === 'x';\r\n var roots = [];\r\n for (var i = 0; i < data.length;) {\r\n var cmd = data[i++];\r\n var x = void 0;\r\n var y = void 0;\r\n var x2 = void 0;\r\n var y2 = void 0;\r\n var x3 = void 0;\r\n var y3 = void 0;\r\n var t = void 0;\r\n switch (cmd) {\r\n case CMD.M:\r\n x0 = data[i++];\r\n y0 = data[i++];\r\n break;\r\n case CMD.L:\r\n x = data[i++];\r\n y = data[i++];\r\n t = isDimX ? (xOrY - x0) / (x - x0)\r\n : (xOrY - y0) / (y - y0);\r\n if (t <= 1 && t >= 0) {\r\n var val = isDimX ? (y - y0) * t + y0\r\n : (x - x0) * t + x0;\r\n return isDimX ? [xOrY, val] : [val, xOrY];\r\n }\r\n x0 = x;\r\n y0 = y;\r\n break;\r\n case CMD.C:\r\n x = data[i++];\r\n y = data[i++];\r\n x2 = data[i++];\r\n y2 = data[i++];\r\n x3 = data[i++];\r\n y3 = data[i++];\r\n var nRoot = isDimX ? cubicRootAt(x0, x, x2, x3, xOrY, roots)\r\n : cubicRootAt(y0, y, y2, y3, xOrY, roots);\r\n if (nRoot > 0) {\r\n for (var i_1 = 0; i_1 < nRoot; i_1++) {\r\n var t_1 = roots[i_1];\r\n if (t_1 <= 1 && t_1 >= 0) {\r\n var val = isDimX ? cubicAt(y0, y, y2, y3, t_1)\r\n : cubicAt(x0, x, x2, x3, t_1);\r\n return isDimX ? [xOrY, val] : [val, xOrY];\r\n }\r\n }\r\n }\r\n x0 = x3;\r\n y0 = y3;\r\n break;\r\n }\r\n }\r\n };\r\n return ECPolyline;\r\n }(Path));\r\n var ECPolygonShape = (function (_super) {\r\n __extends(ECPolygonShape, _super);\r\n function ECPolygonShape() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n return ECPolygonShape;\r\n }(ECPolylineShape));\r\n var ECPolygon = (function (_super) {\r\n __extends(ECPolygon, _super);\r\n function ECPolygon(opts) {\r\n var _this = _super.call(this, opts) || this;\r\n _this.type = 'ec-polygon';\r\n return _this;\r\n }\r\n ECPolygon.prototype.getDefaultShape = function () {\r\n return new ECPolygonShape();\r\n };\r\n ECPolygon.prototype.buildPath = function (ctx, shape) {\r\n var points = shape.points;\r\n var stackedOnPoints = shape.stackedOnPoints;\r\n var i = 0;\r\n var len = points.length / 2;\r\n var smoothMonotone = shape.smoothMonotone;\r\n if (shape.connectNulls) {\r\n for (; len > 0; len--) {\r\n if (!isPointNull(points[len * 2 - 2], points[len * 2 - 1])) {\r\n break;\r\n }\r\n }\r\n for (; i < len; i++) {\r\n if (!isPointNull(points[i * 2], points[i * 2 + 1])) {\r\n break;\r\n }\r\n }\r\n }\r\n while (i < len) {\r\n var k = drawSegment(ctx, points, i, len, len, 1, shape.smooth, smoothMonotone, shape.connectNulls);\r\n drawSegment(ctx, stackedOnPoints, i + k - 1, k, len, -1, shape.stackedOnSmooth, smoothMonotone, shape.connectNulls);\r\n i += k + 1;\r\n ctx.closePath();\r\n }\r\n };\r\n return ECPolygon;\r\n }(Path));\n\n function createGridClipPath(cartesian, hasAnimation, seriesModel, done, during) {\r\n var rect = cartesian.getArea();\r\n var x = rect.x;\r\n var y = rect.y;\r\n var width = rect.width;\r\n var height = rect.height;\r\n var lineWidth = seriesModel.get(['lineStyle', 'width']) || 2;\r\n x -= lineWidth / 2;\r\n y -= lineWidth / 2;\r\n width += lineWidth;\r\n height += lineWidth;\r\n x = Math.floor(x);\r\n width = Math.round(width);\r\n var clipPath = new Rect({\r\n shape: {\r\n x: x,\r\n y: y,\r\n width: width,\r\n height: height\r\n }\r\n });\r\n if (hasAnimation) {\r\n var baseAxis = cartesian.getBaseAxis();\r\n var isHorizontal = baseAxis.isHorizontal();\r\n var isAxisInversed = baseAxis.inverse;\r\n if (isHorizontal) {\r\n if (isAxisInversed) {\r\n clipPath.shape.x += width;\r\n }\r\n clipPath.shape.width = 0;\r\n }\r\n else {\r\n if (!isAxisInversed) {\r\n clipPath.shape.y += height;\r\n }\r\n clipPath.shape.height = 0;\r\n }\r\n var duringCb = typeof during === 'function'\r\n ? function (percent) {\r\n during(percent, clipPath);\r\n }\r\n : null;\r\n initProps(clipPath, {\r\n shape: {\r\n width: width,\r\n height: height,\r\n x: x,\r\n y: y\r\n }\r\n }, seriesModel, null, done, duringCb);\r\n }\r\n return clipPath;\r\n }\r\n function createPolarClipPath(polar, hasAnimation, seriesModel) {\r\n var sectorArea = polar.getArea();\r\n var r0 = round$1(sectorArea.r0, 1);\r\n var r = round$1(sectorArea.r, 1);\r\n var clipPath = new Sector({\r\n shape: {\r\n cx: round$1(polar.cx, 1),\r\n cy: round$1(polar.cy, 1),\r\n r0: r0,\r\n r: r,\r\n startAngle: sectorArea.startAngle,\r\n endAngle: sectorArea.endAngle,\r\n clockwise: sectorArea.clockwise\r\n }\r\n });\r\n if (hasAnimation) {\r\n var isRadial = polar.getBaseAxis().dim === 'angle';\r\n if (isRadial) {\r\n clipPath.shape.endAngle = sectorArea.startAngle;\r\n }\r\n else {\r\n clipPath.shape.r = r0;\r\n }\r\n initProps(clipPath, {\r\n shape: {\r\n endAngle: sectorArea.endAngle,\r\n r: r\r\n }\r\n }, seriesModel);\r\n }\r\n return clipPath;\r\n }\r\n function createClipPath(coordSys, hasAnimation, seriesModel, done, during) {\r\n if (!coordSys) {\r\n return null;\r\n }\r\n else if (coordSys.type === 'polar') {\r\n return createPolarClipPath(coordSys, hasAnimation, seriesModel);\r\n }\r\n else if (coordSys.type === 'cartesian2d') {\r\n return createGridClipPath(coordSys, hasAnimation, seriesModel, done, during);\r\n }\r\n return null;\r\n }\n\n function isCoordinateSystemType(coordSys, type) {\r\n return coordSys.type === type;\r\n }\n\n function isPointsSame(points1, points2) {\r\n if (points1.length !== points2.length) {\r\n return;\r\n }\r\n for (var i = 0; i < points1.length; i++) {\r\n if (points1[i] !== points2[i]) {\r\n return;\r\n }\r\n }\r\n return true;\r\n }\r\n function bboxFromPoints(points) {\r\n var minX = Infinity;\r\n var minY = Infinity;\r\n var maxX = -Infinity;\r\n var maxY = -Infinity;\r\n for (var i = 0; i < points.length;) {\r\n var x = points[i++];\r\n var y = points[i++];\r\n if (!isNaN(x)) {\r\n minX = Math.min(x, minX);\r\n maxX = Math.max(x, maxX);\r\n }\r\n if (!isNaN(y)) {\r\n minY = Math.min(y, minY);\r\n maxY = Math.max(y, maxY);\r\n }\r\n }\r\n return [\r\n [minX, minY],\r\n [maxX, maxY]\r\n ];\r\n }\r\n function getBoundingDiff(points1, points2) {\r\n var _a = bboxFromPoints(points1), min1 = _a[0], max1 = _a[1];\r\n var _b = bboxFromPoints(points2), min2 = _b[0], max2 = _b[1];\r\n return Math.max(Math.abs(min1[0] - min2[0]), Math.abs(min1[1] - min2[1]), Math.abs(max1[0] - max2[0]), Math.abs(max1[1] - max2[1]));\r\n }\r\n function getSmooth(smooth) {\r\n return typeof smooth === 'number' ? smooth : (smooth ? 0.5 : 0);\r\n }\r\n function getStackedOnPoints(coordSys, data, dataCoordInfo) {\r\n if (!dataCoordInfo.valueDim) {\r\n return [];\r\n }\r\n var len = data.count();\r\n var points = createFloat32Array(len * 2);\r\n for (var idx = 0; idx < len; idx++) {\r\n var pt = getStackedOnPoint(dataCoordInfo, coordSys, data, idx);\r\n points[idx * 2] = pt[0];\r\n points[idx * 2 + 1] = pt[1];\r\n }\r\n return points;\r\n }\r\n function turnPointsIntoStep(points, coordSys, stepTurnAt) {\r\n var baseAxis = coordSys.getBaseAxis();\r\n var baseIndex = baseAxis.dim === 'x' || baseAxis.dim === 'radius' ? 0 : 1;\r\n var stepPoints = [];\r\n var i = 0;\r\n var stepPt = [];\r\n var pt = [];\r\n var nextPt = [];\r\n for (; i < points.length - 2; i += 2) {\r\n nextPt[0] = points[i + 2];\r\n nextPt[1] = points[i + 3];\r\n pt[0] = points[i];\r\n pt[1] = points[i + 1];\r\n stepPoints.push(pt[0], pt[1]);\r\n switch (stepTurnAt) {\r\n case 'end':\r\n stepPt[baseIndex] = nextPt[baseIndex];\r\n stepPt[1 - baseIndex] = pt[1 - baseIndex];\r\n stepPoints.push(stepPt[0], stepPt[1]);\r\n break;\r\n case 'middle':\r\n var middle = (pt[baseIndex] + nextPt[baseIndex]) / 2;\r\n var stepPt2 = [];\r\n stepPt[baseIndex] = stepPt2[baseIndex] = middle;\r\n stepPt[1 - baseIndex] = pt[1 - baseIndex];\r\n stepPt2[1 - baseIndex] = nextPt[1 - baseIndex];\r\n stepPoints.push(stepPt[0], stepPt[1]);\r\n stepPoints.push(stepPt2[0], stepPt2[1]);\r\n break;\r\n default:\r\n stepPt[baseIndex] = pt[baseIndex];\r\n stepPt[1 - baseIndex] = nextPt[1 - baseIndex];\r\n stepPoints.push(stepPt[0], stepPt[1]);\r\n }\r\n }\r\n stepPoints.push(points[i++], points[i++]);\r\n return stepPoints;\r\n }\r\n function getVisualGradient(data, coordSys) {\r\n var visualMetaList = data.getVisual('visualMeta');\r\n if (!visualMetaList || !visualMetaList.length || !data.count()) {\r\n return;\r\n }\r\n if (coordSys.type !== 'cartesian2d') {\r\n if (__DEV__) {\r\n console.warn('Visual map on line style is only supported on cartesian2d.');\r\n }\r\n return;\r\n }\r\n var coordDim;\r\n var visualMeta;\r\n for (var i = visualMetaList.length - 1; i >= 0; i--) {\r\n var dimIndex = visualMetaList[i].dimension;\r\n var dimName = data.dimensions[dimIndex];\r\n var dimInfo = data.getDimensionInfo(dimName);\r\n coordDim = (dimInfo && dimInfo.coordDim);\r\n if (coordDim === 'x' || coordDim === 'y') {\r\n visualMeta = visualMetaList[i];\r\n break;\r\n }\r\n }\r\n if (!visualMeta) {\r\n if (__DEV__) {\r\n console.warn('Visual map on line style only support x or y dimension.');\r\n }\r\n return;\r\n }\r\n var axis = coordSys.getAxis(coordDim);\r\n var colorStops = map(visualMeta.stops, function (stop) {\r\n return {\r\n offset: 0,\r\n coord: axis.toGlobalCoord(axis.dataToCoord(stop.value)),\r\n color: stop.color\r\n };\r\n });\r\n var stopLen = colorStops.length;\r\n var outerColors = visualMeta.outerColors.slice();\r\n if (stopLen && colorStops[0].coord > colorStops[stopLen - 1].coord) {\r\n colorStops.reverse();\r\n outerColors.reverse();\r\n }\r\n var tinyExtent = 10;\r\n var minCoord = colorStops[0].coord - tinyExtent;\r\n var maxCoord = colorStops[stopLen - 1].coord + tinyExtent;\r\n var coordSpan = maxCoord - minCoord;\r\n if (coordSpan < 1e-3) {\r\n return 'transparent';\r\n }\r\n each(colorStops, function (stop) {\r\n stop.offset = (stop.coord - minCoord) / coordSpan;\r\n });\r\n colorStops.push({\r\n offset: stopLen ? colorStops[stopLen - 1].offset : 0.5,\r\n color: outerColors[1] || 'transparent'\r\n });\r\n colorStops.unshift({\r\n offset: stopLen ? colorStops[0].offset : 0.5,\r\n color: outerColors[0] || 'transparent'\r\n });\r\n var gradient = new LinearGradient(0, 0, 0, 0, colorStops, true);\r\n gradient[coordDim] = minCoord;\r\n gradient[coordDim + '2'] = maxCoord;\r\n return gradient;\r\n }\r\n function getIsIgnoreFunc(seriesModel, data, coordSys) {\r\n var showAllSymbol = seriesModel.get('showAllSymbol');\r\n var isAuto = showAllSymbol === 'auto';\r\n if (showAllSymbol && !isAuto) {\r\n return;\r\n }\r\n var categoryAxis = coordSys.getAxesByScale('ordinal')[0];\r\n if (!categoryAxis) {\r\n return;\r\n }\r\n if (isAuto\r\n && canShowAllSymbolForCategory(categoryAxis, data)) {\r\n return;\r\n }\r\n var categoryDataDim = data.mapDimension(categoryAxis.dim);\r\n var labelMap = {};\r\n each(categoryAxis.getViewLabels(), function (labelItem) {\r\n labelMap[labelItem.tickValue] = 1;\r\n });\r\n return function (dataIndex) {\r\n return !labelMap.hasOwnProperty(data.get(categoryDataDim, dataIndex));\r\n };\r\n }\r\n function canShowAllSymbolForCategory(categoryAxis, data) {\r\n var axisExtent = categoryAxis.getExtent();\r\n var availSize = Math.abs(axisExtent[1] - axisExtent[0]) / categoryAxis.scale.count();\r\n isNaN(availSize) && (availSize = 0);\r\n var dataLen = data.count();\r\n var step = Math.max(1, Math.round(dataLen / 5));\r\n for (var dataIndex = 0; dataIndex < dataLen; dataIndex += step) {\r\n if (Symbol.getSymbolSize(data, dataIndex)[categoryAxis.isHorizontal() ? 1 : 0]\r\n * 1.5 > availSize) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n function isPointNull$1(x, y) {\r\n return isNaN(x) || isNaN(y);\r\n }\r\n function getLastIndexNotNull(points) {\r\n var len = points.length / 2;\r\n for (; len > 0; len--) {\r\n if (!isPointNull$1(points[len * 2 - 2], points[len * 2 - 1])) {\r\n break;\r\n }\r\n }\r\n return len - 1;\r\n }\r\n function getPointAtIndex(points, idx) {\r\n return [points[idx * 2], points[idx * 2 + 1]];\r\n }\r\n function getIndexRange(points, xOrY, dim) {\r\n var len = points.length / 2;\r\n var dimIdx = dim === 'x' ? 0 : 1;\r\n var a;\r\n var b;\r\n var prevIndex = 0;\r\n var nextIndex = -1;\r\n for (var i = 0; i < len; i++) {\r\n b = points[i * 2 + dimIdx];\r\n if (isNaN(b) || isNaN(points[i * 2 + 1 - dimIdx])) {\r\n continue;\r\n }\r\n if (i === 0) {\r\n a = b;\r\n continue;\r\n }\r\n if (a <= xOrY && b >= xOrY || a >= xOrY && b <= xOrY) {\r\n nextIndex = i;\r\n break;\r\n }\r\n prevIndex = i;\r\n a = b;\r\n }\r\n return {\r\n range: [prevIndex, nextIndex],\r\n t: (xOrY - a) / (b - a)\r\n };\r\n }\r\n function createLineClipPath(lineView, coordSys, hasAnimation, seriesModel) {\r\n if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\r\n var endLabelModel_1 = seriesModel.getModel('endLabel');\r\n var showEndLabel = endLabelModel_1.get('show');\r\n var valueAnimation_1 = endLabelModel_1.get('valueAnimation');\r\n var data_1 = seriesModel.getData();\r\n var labelAnimationRecord_1 = { lastFrameIndex: 0 };\r\n var during = showEndLabel\r\n ? function (percent, clipRect) {\r\n lineView._endLabelOnDuring(percent, clipRect, data_1, labelAnimationRecord_1, valueAnimation_1, endLabelModel_1, coordSys);\r\n }\r\n : null;\r\n var isHorizontal = coordSys.getBaseAxis().isHorizontal();\r\n var clipPath = createGridClipPath(coordSys, hasAnimation, seriesModel, function () {\r\n var endLabel = lineView._endLabel;\r\n if (endLabel && hasAnimation) {\r\n if (labelAnimationRecord_1.originalX != null) {\r\n endLabel.attr({\r\n x: labelAnimationRecord_1.originalX,\r\n y: labelAnimationRecord_1.originalY\r\n });\r\n }\r\n }\r\n }, during);\r\n if (!seriesModel.get('clip', true)) {\r\n var rectShape = clipPath.shape;\r\n var expandSize = Math.max(rectShape.width, rectShape.height);\r\n if (isHorizontal) {\r\n rectShape.y -= expandSize;\r\n rectShape.height += expandSize * 2;\r\n }\r\n else {\r\n rectShape.x -= expandSize;\r\n rectShape.width += expandSize * 2;\r\n }\r\n }\r\n if (during) {\r\n during(1, clipPath);\r\n }\r\n return clipPath;\r\n }\r\n else {\r\n if (__DEV__) {\r\n if (seriesModel.get(['endLabel', 'show'])) {\r\n console.warn('endLabel is not supported for lines in polar systems.');\r\n }\r\n }\r\n return createPolarClipPath(coordSys, hasAnimation, seriesModel);\r\n }\r\n }\r\n function getEndLabelStateSpecified(endLabelModel, coordSys) {\r\n var baseAxis = coordSys.getBaseAxis();\r\n var isHorizontal = baseAxis.isHorizontal();\r\n var isBaseInversed = baseAxis.inverse;\r\n var align = isHorizontal\r\n ? isBaseInversed ? 'right' : 'left'\r\n : 'center';\r\n var verticalAlign = isHorizontal\r\n ? 'middle'\r\n : (isBaseInversed ? 'top' : 'bottom');\r\n return {\r\n normal: {\r\n align: endLabelModel.get('align') || align,\r\n verticalAlign: endLabelModel.get('verticalAlign') || verticalAlign,\r\n padding: endLabelModel.get('distance') || 0\r\n }\r\n };\r\n }\r\n var LineView = (function (_super) {\r\n __extends(LineView, _super);\r\n function LineView() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n LineView.prototype.init = function () {\r\n var lineGroup = new Group();\r\n var symbolDraw = new SymbolDraw();\r\n this.group.add(symbolDraw.group);\r\n this._symbolDraw = symbolDraw;\r\n this._lineGroup = lineGroup;\r\n };\r\n LineView.prototype.render = function (seriesModel, ecModel, api) {\r\n var _this = this;\r\n var coordSys = seriesModel.coordinateSystem;\r\n var group = this.group;\r\n var data = seriesModel.getData();\r\n var lineStyleModel = seriesModel.getModel('lineStyle');\r\n var areaStyleModel = seriesModel.getModel('areaStyle');\r\n var points = data.getLayout('points') || [];\r\n var isCoordSysPolar = coordSys.type === 'polar';\r\n var prevCoordSys = this._coordSys;\r\n var symbolDraw = this._symbolDraw;\r\n var polyline = this._polyline;\r\n var polygon = this._polygon;\r\n var lineGroup = this._lineGroup;\r\n var hasAnimation = seriesModel.get('animation');\r\n var isAreaChart = !areaStyleModel.isEmpty();\r\n var valueOrigin = areaStyleModel.get('origin');\r\n var dataCoordInfo = prepareDataCoordInfo(coordSys, data, valueOrigin);\r\n var stackedOnPoints = isAreaChart && getStackedOnPoints(coordSys, data, dataCoordInfo);\r\n var showSymbol = seriesModel.get('showSymbol');\r\n var isIgnoreFunc = showSymbol && !isCoordSysPolar\r\n && getIsIgnoreFunc(seriesModel, data, coordSys);\r\n var oldData = this._data;\r\n oldData && oldData.eachItemGraphicEl(function (el, idx) {\r\n if (el.__temp) {\r\n group.remove(el);\r\n oldData.setItemGraphicEl(idx, null);\r\n }\r\n });\r\n if (!showSymbol) {\r\n symbolDraw.remove();\r\n }\r\n group.add(lineGroup);\r\n var step = !isCoordSysPolar ? seriesModel.get('step') : false;\r\n var clipShapeForSymbol;\r\n if (coordSys && coordSys.getArea && seriesModel.get('clip', true)) {\r\n clipShapeForSymbol = coordSys.getArea();\r\n if (clipShapeForSymbol.width != null) {\r\n clipShapeForSymbol.x -= 0.1;\r\n clipShapeForSymbol.y -= 0.1;\r\n clipShapeForSymbol.width += 0.2;\r\n clipShapeForSymbol.height += 0.2;\r\n }\r\n else if (clipShapeForSymbol.r0) {\r\n clipShapeForSymbol.r0 -= 0.5;\r\n clipShapeForSymbol.r += 0.5;\r\n }\r\n }\r\n this._clipShapeForSymbol = clipShapeForSymbol;\r\n if (!(polyline && prevCoordSys.type === coordSys.type && step === this._step)) {\r\n showSymbol && symbolDraw.updateData(data, {\r\n isIgnore: isIgnoreFunc,\r\n clipShape: clipShapeForSymbol,\r\n disableAnimation: true,\r\n getSymbolPoint: function (idx) {\r\n return [points[idx * 2], points[idx * 2 + 1]];\r\n }\r\n });\r\n hasAnimation && this._initSymbolLabelAnimation(data, coordSys, clipShapeForSymbol);\r\n if (step) {\r\n points = turnPointsIntoStep(points, coordSys, step);\r\n if (stackedOnPoints) {\r\n stackedOnPoints = turnPointsIntoStep(stackedOnPoints, coordSys, step);\r\n }\r\n }\r\n polyline = this._newPolyline(points);\r\n if (isAreaChart) {\r\n polygon = this._newPolygon(points, stackedOnPoints);\r\n }\r\n if (!isCoordSysPolar) {\r\n this._initOrUpdateEndLabel(seriesModel, coordSys);\r\n }\r\n lineGroup.setClipPath(createLineClipPath(this, coordSys, true, seriesModel));\r\n }\r\n else {\r\n if (isAreaChart && !polygon) {\r\n polygon = this._newPolygon(points, stackedOnPoints);\r\n }\r\n else if (polygon && !isAreaChart) {\r\n lineGroup.remove(polygon);\r\n polygon = this._polygon = null;\r\n }\r\n if (!isCoordSysPolar) {\r\n this._initOrUpdateEndLabel(seriesModel, coordSys);\r\n }\r\n lineGroup.setClipPath(createLineClipPath(this, coordSys, false, seriesModel));\r\n showSymbol && symbolDraw.updateData(data, {\r\n isIgnore: isIgnoreFunc,\r\n clipShape: clipShapeForSymbol,\r\n disableAnimation: true,\r\n getSymbolPoint: function (idx) {\r\n return [points[idx * 2], points[idx * 2 + 1]];\r\n }\r\n });\r\n if (!isPointsSame(this._stackedOnPoints, stackedOnPoints)\r\n || !isPointsSame(this._points, points)) {\r\n if (hasAnimation) {\r\n this._doUpdateAnimation(data, stackedOnPoints, coordSys, api, step, valueOrigin);\r\n }\r\n else {\r\n if (step) {\r\n points = turnPointsIntoStep(points, coordSys, step);\r\n if (stackedOnPoints) {\r\n stackedOnPoints = turnPointsIntoStep(stackedOnPoints, coordSys, step);\r\n }\r\n }\r\n polyline.setShape({\r\n points: points\r\n });\r\n polygon && polygon.setShape({\r\n points: points,\r\n stackedOnPoints: stackedOnPoints\r\n });\r\n }\r\n }\r\n }\r\n var visualColor = getVisualGradient(data, coordSys)\r\n || data.getVisual('style')[data.getVisual('drawType')];\r\n var focus = seriesModel.get(['emphasis', 'focus']);\r\n var blurScope = seriesModel.get(['emphasis', 'blurScope']);\r\n polyline.useStyle(defaults(lineStyleModel.getLineStyle(), {\r\n fill: 'none',\r\n stroke: visualColor,\r\n lineJoin: 'bevel'\r\n }));\r\n setStatesStylesFromModel(polyline, seriesModel, 'lineStyle');\r\n if (polyline.style.lineWidth > 0 && seriesModel.get(['emphasis', 'lineStyle', 'width']) === 'bolder') {\r\n var emphasisLineStyle = polyline.getState('emphasis').style;\r\n emphasisLineStyle.lineWidth = polyline.style.lineWidth + 1;\r\n }\r\n getECData(polyline).seriesIndex = seriesModel.seriesIndex;\r\n enableHoverEmphasis(polyline, focus, blurScope);\r\n var smooth = getSmooth(seriesModel.get('smooth'));\r\n var smoothMonotone = seriesModel.get('smoothMonotone');\r\n var connectNulls = seriesModel.get('connectNulls');\r\n polyline.setShape({\r\n smooth: smooth,\r\n smoothMonotone: smoothMonotone,\r\n connectNulls: connectNulls\r\n });\r\n if (polygon) {\r\n var stackedOnSeries = data.getCalculationInfo('stackedOnSeries');\r\n var stackedOnSmooth = 0;\r\n polygon.useStyle(defaults(areaStyleModel.getAreaStyle(), {\r\n fill: visualColor,\r\n opacity: 0.7,\r\n lineJoin: 'bevel',\r\n decal: data.getVisual('style').decal\r\n }));\r\n if (stackedOnSeries) {\r\n stackedOnSmooth = getSmooth(stackedOnSeries.get('smooth'));\r\n }\r\n polygon.setShape({\r\n smooth: smooth,\r\n stackedOnSmooth: stackedOnSmooth,\r\n smoothMonotone: smoothMonotone,\r\n connectNulls: connectNulls\r\n });\r\n setStatesStylesFromModel(polygon, seriesModel, 'areaStyle');\r\n getECData(polygon).seriesIndex = seriesModel.seriesIndex;\r\n enableHoverEmphasis(polygon, focus, blurScope);\r\n }\r\n var changePolyState = function (toState) {\r\n _this._changePolyState(toState);\r\n };\r\n data.eachItemGraphicEl(function (el) {\r\n el && (el.onHoverStateChange = changePolyState);\r\n });\r\n this._polyline.onHoverStateChange = changePolyState;\r\n this._data = data;\r\n this._coordSys = coordSys;\r\n this._stackedOnPoints = stackedOnPoints;\r\n this._points = points;\r\n this._step = step;\r\n this._valueOrigin = valueOrigin;\r\n };\r\n LineView.prototype.dispose = function () { };\r\n LineView.prototype.highlight = function (seriesModel, ecModel, api, payload) {\r\n var data = seriesModel.getData();\r\n var dataIndex = queryDataIndex(data, payload);\r\n this._changePolyState('emphasis');\r\n if (!(dataIndex instanceof Array) && dataIndex != null && dataIndex >= 0) {\r\n var points = data.getLayout('points');\r\n var symbol = data.getItemGraphicEl(dataIndex);\r\n if (!symbol) {\r\n var x = points[dataIndex * 2];\r\n var y = points[dataIndex * 2 + 1];\r\n if (isNaN(x) || isNaN(y)) {\r\n return;\r\n }\r\n if (this._clipShapeForSymbol && !this._clipShapeForSymbol.contain(x, y)) {\r\n return;\r\n }\r\n symbol = new Symbol(data, dataIndex);\r\n symbol.x = x;\r\n symbol.y = y;\r\n symbol.setZ(seriesModel.get('zlevel'), seriesModel.get('z'));\r\n symbol.__temp = true;\r\n data.setItemGraphicEl(dataIndex, symbol);\r\n symbol.stopSymbolAnimation(true);\r\n this.group.add(symbol);\r\n }\r\n symbol.highlight();\r\n }\r\n else {\r\n ChartView.prototype.highlight.call(this, seriesModel, ecModel, api, payload);\r\n }\r\n };\r\n LineView.prototype.downplay = function (seriesModel, ecModel, api, payload) {\r\n var data = seriesModel.getData();\r\n var dataIndex = queryDataIndex(data, payload);\r\n this._changePolyState('normal');\r\n if (dataIndex != null && dataIndex >= 0) {\r\n var symbol = data.getItemGraphicEl(dataIndex);\r\n if (symbol) {\r\n if (symbol.__temp) {\r\n data.setItemGraphicEl(dataIndex, null);\r\n this.group.remove(symbol);\r\n }\r\n else {\r\n symbol.downplay();\r\n }\r\n }\r\n }\r\n else {\r\n ChartView.prototype.downplay.call(this, seriesModel, ecModel, api, payload);\r\n }\r\n };\r\n LineView.prototype._changePolyState = function (toState) {\r\n var polygon = this._polygon;\r\n setStatesFlag(this._polyline, toState);\r\n polygon && setStatesFlag(polygon, toState);\r\n };\r\n LineView.prototype._newPolyline = function (points) {\r\n var polyline = this._polyline;\r\n if (polyline) {\r\n this._lineGroup.remove(polyline);\r\n }\r\n polyline = new ECPolyline({\r\n shape: {\r\n points: points\r\n },\r\n segmentIgnoreThreshold: 2,\r\n z2: 10\r\n });\r\n this._lineGroup.add(polyline);\r\n this._polyline = polyline;\r\n return polyline;\r\n };\r\n LineView.prototype._newPolygon = function (points, stackedOnPoints) {\r\n var polygon = this._polygon;\r\n if (polygon) {\r\n this._lineGroup.remove(polygon);\r\n }\r\n polygon = new ECPolygon({\r\n shape: {\r\n points: points,\r\n stackedOnPoints: stackedOnPoints\r\n },\r\n segmentIgnoreThreshold: 2\r\n });\r\n this._lineGroup.add(polygon);\r\n this._polygon = polygon;\r\n return polygon;\r\n };\r\n LineView.prototype._initSymbolLabelAnimation = function (data, coordSys, clipShape) {\r\n var isHorizontalOrRadial;\r\n var isCoordSysPolar;\r\n var baseAxis = coordSys.getBaseAxis();\r\n var isAxisInverse = baseAxis.inverse;\r\n if (coordSys.type === 'cartesian2d') {\r\n isHorizontalOrRadial = baseAxis.isHorizontal();\r\n isCoordSysPolar = false;\r\n }\r\n else if (coordSys.type === 'polar') {\r\n isHorizontalOrRadial = baseAxis.dim === 'angle';\r\n isCoordSysPolar = true;\r\n }\r\n var seriesModel = data.hostModel;\r\n var seriesDuration = seriesModel.get('animationDuration');\r\n if (typeof seriesDuration === 'function') {\r\n seriesDuration = seriesDuration(null);\r\n }\r\n var seriesDalay = seriesModel.get('animationDelay') || 0;\r\n var seriesDalayValue = typeof seriesDalay === 'function'\r\n ? seriesDalay(null)\r\n : seriesDalay;\r\n data.eachItemGraphicEl(function (symbol, idx) {\r\n var el = symbol;\r\n if (el) {\r\n var point = [symbol.x, symbol.y];\r\n var start = void 0;\r\n var end = void 0;\r\n var current = void 0;\r\n if (isCoordSysPolar) {\r\n var polarClip = clipShape;\r\n var coord = coordSys.pointToCoord(point);\r\n if (isHorizontalOrRadial) {\r\n start = polarClip.startAngle;\r\n end = polarClip.endAngle;\r\n current = -coord[1] / 180 * Math.PI;\r\n }\r\n else {\r\n start = polarClip.r0;\r\n end = polarClip.r;\r\n current = coord[0];\r\n }\r\n }\r\n else {\r\n var gridClip = clipShape;\r\n if (isHorizontalOrRadial) {\r\n start = gridClip.x;\r\n end = gridClip.x + gridClip.width;\r\n current = symbol.x;\r\n }\r\n else {\r\n start = gridClip.y + gridClip.height;\r\n end = gridClip.y;\r\n current = symbol.y;\r\n }\r\n }\r\n var ratio = end === start ? 0 : (current - start) / (end - start);\r\n if (isAxisInverse) {\r\n ratio = 1 - ratio;\r\n }\r\n var delay = typeof seriesDalay === 'function' ? seriesDalay(idx)\r\n : (seriesDuration * ratio) + seriesDalayValue;\r\n var symbolPath = el.getSymbolPath();\r\n var text = symbolPath.getTextContent();\r\n el.attr({ scaleX: 0, scaleY: 0 });\r\n el.animateTo({\r\n scaleX: 1,\r\n scaleY: 1\r\n }, {\r\n duration: 200,\r\n delay: delay\r\n });\r\n if (text) {\r\n text.animateFrom({\r\n style: {\r\n opacity: 0\r\n }\r\n }, {\r\n duration: 300,\r\n delay: delay\r\n });\r\n }\r\n symbolPath.disableLabelAnimation = true;\r\n }\r\n });\r\n };\r\n LineView.prototype._initOrUpdateEndLabel = function (seriesModel, coordSys) {\r\n var endLabelModel = seriesModel.getModel('endLabel');\r\n if (endLabelModel.get('show')) {\r\n var data_2 = seriesModel.getData();\r\n var polyline = this._polyline;\r\n var endLabel = this._endLabel;\r\n if (!endLabel) {\r\n endLabel = this._endLabel = new ZRText({\r\n z2: 200\r\n });\r\n endLabel.ignoreClip = true;\r\n polyline.setTextContent(this._endLabel);\r\n polyline.disableLabelAnimation = true;\r\n }\r\n var dataIndex = getLastIndexNotNull(data_2.getLayout('points'));\r\n if (dataIndex >= 0) {\r\n setLabelStyle(endLabel, getLabelStatesModels(seriesModel, 'endLabel'), {\r\n labelFetcher: seriesModel,\r\n labelDataIndex: dataIndex,\r\n defaultText: function (dataIndex, opt, overrideValue) {\r\n return overrideValue ? getDefaultInterpolatedLabel(data_2, overrideValue)\r\n : getDefaultLabel(data_2, dataIndex);\r\n },\r\n enableTextSetter: true\r\n }, getEndLabelStateSpecified(endLabelModel, coordSys));\r\n }\r\n }\r\n else if (this._endLabel) {\r\n this._polyline.removeTextContent();\r\n this._endLabel = null;\r\n }\r\n };\r\n LineView.prototype._endLabelOnDuring = function (percent, clipRect, data, animationRecord, valueAnimation, endLabelModel, coordSys) {\r\n var endLabel = this._endLabel;\r\n var polyline = this._polyline;\r\n if (endLabel) {\r\n if (percent < 1 && animationRecord.originalX == null) {\r\n animationRecord.originalX = endLabel.x;\r\n animationRecord.originalY = endLabel.y;\r\n }\r\n var points = data.getLayout('points');\r\n var seriesModel = data.hostModel;\r\n var connectNulls = seriesModel.get('connectNulls');\r\n var precision = endLabelModel.get('precision');\r\n var baseAxis = coordSys.getBaseAxis();\r\n var isHorizontal = baseAxis.isHorizontal();\r\n var isBaseInversed = baseAxis.inverse;\r\n var clipShape = clipRect.shape;\r\n var xOrY = isBaseInversed\r\n ? isHorizontal ? clipShape.x : (clipShape.y + clipShape.height)\r\n : isHorizontal ? (clipShape.x + clipShape.width) : clipShape.y;\r\n var dim = isHorizontal ? 'x' : 'y';\r\n var dataIndexRange = getIndexRange(points, xOrY, dim);\r\n var indices = dataIndexRange.range;\r\n var diff = indices[1] - indices[0];\r\n var value = void 0;\r\n if (diff >= 1) {\r\n if (diff > 1 && !connectNulls) {\r\n var pt = getPointAtIndex(points, indices[0]);\r\n endLabel.attr({ x: pt[0], y: pt[1] });\r\n valueAnimation && (value = seriesModel.getRawValue(indices[0]));\r\n }\r\n else {\r\n var pt = polyline.getPointOn(xOrY, dim);\r\n pt && endLabel.attr({ x: pt[0], y: pt[1] });\r\n var startValue = seriesModel.getRawValue(indices[0]);\r\n var endValue = seriesModel.getRawValue(indices[1]);\r\n valueAnimation && (value = interpolateRawValues(data, precision, startValue, endValue, dataIndexRange.t));\r\n }\r\n animationRecord.lastFrameIndex = indices[0];\r\n }\r\n else {\r\n var idx = (percent === 1 || animationRecord.lastFrameIndex > 0) ? indices[0] : 0;\r\n var pt = getPointAtIndex(points, idx);\r\n valueAnimation && (value = seriesModel.getRawValue(idx));\r\n endLabel.attr({ x: pt[0], y: pt[1] });\r\n }\r\n if (valueAnimation) {\r\n labelInner(endLabel).setLabelText(value);\r\n }\r\n }\r\n };\r\n LineView.prototype._doUpdateAnimation = function (data, stackedOnPoints, coordSys, api, step, valueOrigin) {\r\n var polyline = this._polyline;\r\n var polygon = this._polygon;\r\n var seriesModel = data.hostModel;\r\n var diff = lineAnimationDiff(this._data, data, this._stackedOnPoints, stackedOnPoints, this._coordSys, coordSys, this._valueOrigin, valueOrigin);\r\n var current = diff.current;\r\n var stackedOnCurrent = diff.stackedOnCurrent;\r\n var next = diff.next;\r\n var stackedOnNext = diff.stackedOnNext;\r\n if (step) {\r\n current = turnPointsIntoStep(diff.current, coordSys, step);\r\n stackedOnCurrent = turnPointsIntoStep(diff.stackedOnCurrent, coordSys, step);\r\n next = turnPointsIntoStep(diff.next, coordSys, step);\r\n stackedOnNext = turnPointsIntoStep(diff.stackedOnNext, coordSys, step);\r\n }\r\n if (getBoundingDiff(current, next) > 3000\r\n || (polygon && getBoundingDiff(stackedOnCurrent, stackedOnNext) > 3000)) {\r\n polyline.setShape({\r\n points: next\r\n });\r\n if (polygon) {\r\n polygon.setShape({\r\n points: next,\r\n stackedOnPoints: stackedOnNext\r\n });\r\n }\r\n return;\r\n }\r\n polyline.shape.__points = diff.current;\r\n polyline.shape.points = current;\r\n var target = {\r\n shape: {\r\n points: next\r\n }\r\n };\r\n if (diff.current !== current) {\r\n target.shape.__points = diff.next;\r\n }\r\n polyline.stopAnimation();\r\n updateProps(polyline, target, seriesModel);\r\n if (polygon) {\r\n polygon.setShape({\r\n points: current,\r\n stackedOnPoints: stackedOnCurrent\r\n });\r\n polygon.stopAnimation();\r\n updateProps(polygon, {\r\n shape: {\r\n stackedOnPoints: stackedOnNext\r\n }\r\n }, seriesModel);\r\n if (polyline.shape.points !== polygon.shape.points) {\r\n polygon.shape.points = polyline.shape.points;\r\n }\r\n }\r\n var updatedDataInfo = [];\r\n var diffStatus = diff.status;\r\n for (var i = 0; i < diffStatus.length; i++) {\r\n var cmd = diffStatus[i].cmd;\r\n if (cmd === '=') {\r\n var el = data.getItemGraphicEl(diffStatus[i].idx1);\r\n if (el) {\r\n updatedDataInfo.push({\r\n el: el,\r\n ptIdx: i\r\n });\r\n }\r\n }\r\n }\r\n if (polyline.animators && polyline.animators.length) {\r\n polyline.animators[0].during(function () {\r\n polygon && polygon.dirtyShape();\r\n var points = polyline.shape.__points;\r\n for (var i = 0; i < updatedDataInfo.length; i++) {\r\n var el = updatedDataInfo[i].el;\r\n var offset = updatedDataInfo[i].ptIdx * 2;\r\n el.x = points[offset];\r\n el.y = points[offset + 1];\r\n el.markRedraw();\r\n }\r\n });\r\n }\r\n };\r\n LineView.prototype.remove = function (ecModel) {\r\n var group = this.group;\r\n var oldData = this._data;\r\n this._lineGroup.removeAll();\r\n this._symbolDraw.remove(true);\r\n oldData && oldData.eachItemGraphicEl(function (el, idx) {\r\n if (el.__temp) {\r\n group.remove(el);\r\n oldData.setItemGraphicEl(idx, null);\r\n }\r\n });\r\n this._polyline =\r\n this._polygon =\r\n this._coordSys =\r\n this._points =\r\n this._stackedOnPoints =\r\n this._endLabel =\r\n this._data = null;\r\n };\r\n LineView.type = 'line';\r\n return LineView;\r\n }(ChartView));\r\n ChartView.registerClass(LineView);\n\n function pointsLayout(seriesType, forceStoreInTypedArray) {\r\n return {\r\n seriesType: seriesType,\r\n plan: createRenderPlanner(),\r\n reset: function (seriesModel) {\r\n var data = seriesModel.getData();\r\n var coordSys = seriesModel.coordinateSystem;\r\n var pipelineContext = seriesModel.pipelineContext;\r\n var useTypedArray = forceStoreInTypedArray || pipelineContext.large;\r\n if (!coordSys) {\r\n return;\r\n }\r\n var dims = map(coordSys.dimensions, function (dim) {\r\n return data.mapDimension(dim);\r\n }).slice(0, 2);\r\n var dimLen = dims.length;\r\n var stackResultDim = data.getCalculationInfo('stackResultDimension');\r\n if (isDimensionStacked(data, dims[0])) {\r\n dims[0] = stackResultDim;\r\n }\r\n if (isDimensionStacked(data, dims[1])) {\r\n dims[1] = stackResultDim;\r\n }\r\n var dimInfo0 = data.getDimensionInfo(dims[0]);\r\n var dimInfo1 = data.getDimensionInfo(dims[1]);\r\n var dimIdx0 = dimInfo0 && dimInfo0.index;\r\n var dimIdx1 = dimInfo1 && dimInfo1.index;\r\n return dimLen && {\r\n progress: function (params, data) {\r\n var segCount = params.end - params.start;\r\n var points = useTypedArray && createFloat32Array(segCount * dimLen);\r\n var tmpIn = [];\r\n var tmpOut = [];\r\n for (var i = params.start, offset = 0; i < params.end; i++) {\r\n var point = void 0;\r\n if (dimLen === 1) {\r\n var x = data.getByDimIdx(dimIdx0, i);\r\n point = coordSys.dataToPoint(x, null, tmpOut);\r\n }\r\n else {\r\n tmpIn[0] = data.getByDimIdx(dimIdx0, i);\r\n tmpIn[1] = data.getByDimIdx(dimIdx1, i);\r\n point = coordSys.dataToPoint(tmpIn, null, tmpOut);\r\n }\r\n if (useTypedArray) {\r\n points[offset++] = point[0];\r\n points[offset++] = point[1];\r\n }\r\n else {\r\n data.setItemLayout(i, point.slice());\r\n }\r\n }\r\n useTypedArray && data.setLayout('points', points);\r\n }\r\n };\r\n }\r\n };\r\n }\n\n var samplers = {\r\n average: function (frame) {\r\n var sum = 0;\r\n var count = 0;\r\n for (var i = 0; i < frame.length; i++) {\r\n if (!isNaN(frame[i])) {\r\n sum += frame[i];\r\n count++;\r\n }\r\n }\r\n return count === 0 ? NaN : sum / count;\r\n },\r\n sum: function (frame) {\r\n var sum = 0;\r\n for (var i = 0; i < frame.length; i++) {\r\n sum += frame[i] || 0;\r\n }\r\n return sum;\r\n },\r\n max: function (frame) {\r\n var max = -Infinity;\r\n for (var i = 0; i < frame.length; i++) {\r\n frame[i] > max && (max = frame[i]);\r\n }\r\n return isFinite(max) ? max : NaN;\r\n },\r\n min: function (frame) {\r\n var min = Infinity;\r\n for (var i = 0; i < frame.length; i++) {\r\n frame[i] < min && (min = frame[i]);\r\n }\r\n return isFinite(min) ? min : NaN;\r\n },\r\n nearest: function (frame) {\r\n return frame[0];\r\n }\r\n };\r\n var indexSampler = function (frame) {\r\n return Math.round(frame.length / 2);\r\n };\r\n function dataSample(seriesType) {\r\n return {\r\n seriesType: seriesType,\r\n reset: function (seriesModel, ecModel, api) {\r\n var data = seriesModel.getData();\r\n var sampling = seriesModel.get('sampling');\r\n var coordSys = seriesModel.coordinateSystem;\r\n var count = data.count();\r\n if (count > 10 && coordSys.type === 'cartesian2d' && sampling) {\r\n var baseAxis = coordSys.getBaseAxis();\r\n var valueAxis = coordSys.getOtherAxis(baseAxis);\r\n var extent = baseAxis.getExtent();\r\n var dpr = api.getDevicePixelRatio();\r\n var size = Math.abs(extent[1] - extent[0]) * (dpr || 1);\r\n var rate = Math.round(count / size);\r\n if (rate > 1) {\r\n if (sampling === 'lttb') {\r\n seriesModel.setData(data.lttbDownSample(data.mapDimension(valueAxis.dim), 1 / rate));\r\n }\r\n var sampler = void 0;\r\n if (typeof sampling === 'string') {\r\n sampler = samplers[sampling];\r\n }\r\n else if (typeof sampling === 'function') {\r\n sampler = sampling;\r\n }\r\n if (sampler) {\r\n seriesModel.setData(data.downSample(data.mapDimension(valueAxis.dim), 1 / rate, sampler, indexSampler));\r\n }\r\n }\r\n }\r\n }\r\n };\r\n }\n\n var defaultOption = {\r\n show: true,\r\n zlevel: 0,\r\n z: 0,\r\n inverse: false,\r\n name: '',\r\n nameLocation: 'end',\r\n nameRotate: null,\r\n nameTruncate: {\r\n maxWidth: null,\r\n ellipsis: '...',\r\n placeholder: '.'\r\n },\r\n nameTextStyle: {},\r\n nameGap: 15,\r\n silent: false,\r\n triggerEvent: false,\r\n tooltip: {\r\n show: false\r\n },\r\n axisPointer: {},\r\n axisLine: {\r\n show: true,\r\n onZero: true,\r\n onZeroAxisIndex: null,\r\n lineStyle: {\r\n color: '#6E7079',\r\n width: 1,\r\n type: 'solid'\r\n },\r\n symbol: ['none', 'none'],\r\n symbolSize: [10, 15]\r\n },\r\n axisTick: {\r\n show: true,\r\n inside: false,\r\n length: 5,\r\n lineStyle: {\r\n width: 1\r\n }\r\n },\r\n axisLabel: {\r\n show: true,\r\n inside: false,\r\n rotate: 0,\r\n showMinLabel: null,\r\n showMaxLabel: null,\r\n margin: 8,\r\n fontSize: 12\r\n },\r\n splitLine: {\r\n show: true,\r\n lineStyle: {\r\n color: ['#E0E6F1'],\r\n width: 1,\r\n type: 'solid'\r\n }\r\n },\r\n splitArea: {\r\n show: false,\r\n areaStyle: {\r\n color: ['rgba(250,250,250,0.2)', 'rgba(210,219,238,0.2)']\r\n }\r\n }\r\n };\r\n var categoryAxis = merge({\r\n boundaryGap: true,\r\n deduplication: null,\r\n splitLine: {\r\n show: false\r\n },\r\n axisTick: {\r\n alignWithLabel: false,\r\n interval: 'auto'\r\n },\r\n axisLabel: {\r\n interval: 'auto'\r\n }\r\n }, defaultOption);\r\n var valueAxis = merge({\r\n boundaryGap: [0, 0],\r\n axisLine: {\r\n show: 'auto'\r\n },\r\n axisTick: {\r\n show: 'auto'\r\n },\r\n splitNumber: 5,\r\n minorTick: {\r\n show: false,\r\n splitNumber: 5,\r\n length: 3,\r\n lineStyle: {}\r\n },\r\n minorSplitLine: {\r\n show: false,\r\n lineStyle: {\r\n color: '#F4F7FD',\r\n width: 1\r\n }\r\n }\r\n }, defaultOption);\r\n var timeAxis = merge({\r\n scale: true,\r\n splitNumber: 6,\r\n axisLabel: {\r\n showMinLabel: false,\r\n showMaxLabel: false,\r\n rich: {\r\n primary: {\r\n fontWeight: 'bold'\r\n }\r\n }\r\n },\r\n splitLine: {\r\n show: false\r\n }\r\n }, valueAxis);\r\n var logAxis = defaults({\r\n scale: true,\r\n logBase: 10\r\n }, valueAxis);\r\n var axisDefault = {\r\n category: categoryAxis,\r\n value: valueAxis,\r\n time: timeAxis,\r\n log: logAxis\r\n };\n\n var AXIS_TYPES = { value: 1, category: 1, time: 1, log: 1 };\n\n function axisModelCreator(axisName, BaseAxisModelClass, extraDefaultOption) {\r\n each(AXIS_TYPES, function (v, axisType) {\r\n var defaultOption = merge(merge({}, axisDefault[axisType], true), extraDefaultOption, true);\r\n var AxisModel = (function (_super) {\r\n __extends(AxisModel, _super);\r\n function AxisModel() {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n var _this = _super.apply(this, args) || this;\r\n _this.type = axisName + 'Axis.' + axisType;\r\n return _this;\r\n }\r\n AxisModel.prototype.mergeDefaultAndTheme = function (option, ecModel) {\r\n var layoutMode = fetchLayoutMode(this);\r\n var inputPositionParams = layoutMode\r\n ? getLayoutParams(option) : {};\r\n var themeModel = ecModel.getTheme();\r\n merge(option, themeModel.get(axisType + 'Axis'));\r\n merge(option, this.getDefaultOption());\r\n option.type = getAxisType(option);\r\n if (layoutMode) {\r\n mergeLayoutParam(option, inputPositionParams, layoutMode);\r\n }\r\n };\r\n AxisModel.prototype.optionUpdated = function () {\r\n var thisOption = this.option;\r\n if (thisOption.type === 'category') {\r\n this.__ordinalMeta = OrdinalMeta.createByAxisModel(this);\r\n }\r\n };\r\n AxisModel.prototype.getCategories = function (rawData) {\r\n var option = this.option;\r\n if (option.type === 'category') {\r\n if (rawData) {\r\n return option.data;\r\n }\r\n return this.__ordinalMeta.categories;\r\n }\r\n };\r\n AxisModel.prototype.getOrdinalMeta = function () {\r\n return this.__ordinalMeta;\r\n };\r\n AxisModel.type = axisName + 'Axis.' + axisType;\r\n AxisModel.defaultOption = defaultOption;\r\n return AxisModel;\r\n }(BaseAxisModelClass));\r\n ComponentModel.registerClass(AxisModel);\r\n });\r\n ComponentModel.registerSubTypeDefaulter(axisName + 'Axis', getAxisType);\r\n }\r\n function getAxisType(option) {\r\n return option.type || (option.data ? 'category' : 'value');\r\n }\n\n var CartesianAxisModel = (function (_super) {\r\n __extends(CartesianAxisModel, _super);\r\n function CartesianAxisModel() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n CartesianAxisModel.prototype.getCoordSysModel = function () {\r\n return this.getReferringComponents('grid', SINGLE_REFERRING).models[0];\r\n };\r\n CartesianAxisModel.type = 'cartesian2dAxis';\r\n return CartesianAxisModel;\r\n }(ComponentModel));\r\n mixin(CartesianAxisModel, AxisModelCommonMixin);\r\n var extraOption = {\r\n offset: 0,\r\n categorySortInfo: []\r\n };\r\n axisModelCreator('x', CartesianAxisModel, extraOption);\r\n axisModelCreator('y', CartesianAxisModel, extraOption);\n\n var PI$6 = Math.PI;\r\n var AxisBuilder = (function () {\r\n function AxisBuilder(axisModel, opt) {\r\n this.group = new Group();\r\n this.opt = opt;\r\n this.axisModel = axisModel;\r\n defaults(opt, {\r\n labelOffset: 0,\r\n nameDirection: 1,\r\n tickDirection: 1,\r\n labelDirection: 1,\r\n silent: true,\r\n handleAutoShown: function () { return true; }\r\n });\r\n var transformGroup = new Group({\r\n x: opt.position[0],\r\n y: opt.position[1],\r\n rotation: opt.rotation\r\n });\r\n transformGroup.updateTransform();\r\n this._transformGroup = transformGroup;\r\n }\r\n AxisBuilder.prototype.hasBuilder = function (name) {\r\n return !!builders[name];\r\n };\r\n AxisBuilder.prototype.add = function (name) {\r\n builders[name](this.opt, this.axisModel, this.group, this._transformGroup);\r\n };\r\n AxisBuilder.prototype.getGroup = function () {\r\n return this.group;\r\n };\r\n AxisBuilder.innerTextLayout = function (axisRotation, textRotation, direction) {\r\n var rotationDiff = remRadian(textRotation - axisRotation);\r\n var textAlign;\r\n var textVerticalAlign;\r\n if (isRadianAroundZero(rotationDiff)) {\r\n textVerticalAlign = direction > 0 ? 'top' : 'bottom';\r\n textAlign = 'center';\r\n }\r\n else if (isRadianAroundZero(rotationDiff - PI$6)) {\r\n textVerticalAlign = direction > 0 ? 'bottom' : 'top';\r\n textAlign = 'center';\r\n }\r\n else {\r\n textVerticalAlign = 'middle';\r\n if (rotationDiff > 0 && rotationDiff < PI$6) {\r\n textAlign = direction > 0 ? 'right' : 'left';\r\n }\r\n else {\r\n textAlign = direction > 0 ? 'left' : 'right';\r\n }\r\n }\r\n return {\r\n rotation: rotationDiff,\r\n textAlign: textAlign,\r\n textVerticalAlign: textVerticalAlign\r\n };\r\n };\r\n AxisBuilder.makeAxisEventDataBase = function (axisModel) {\r\n var eventData = {\r\n componentType: axisModel.mainType,\r\n componentIndex: axisModel.componentIndex\r\n };\r\n eventData[axisModel.mainType + 'Index'] = axisModel.componentIndex;\r\n return eventData;\r\n };\r\n AxisBuilder.isLabelSilent = function (axisModel) {\r\n var tooltipOpt = axisModel.get('tooltip');\r\n return axisModel.get('silent')\r\n || !(axisModel.get('triggerEvent') || (tooltipOpt && tooltipOpt.show));\r\n };\r\n return AxisBuilder;\r\n }());\r\n var builders = {\r\n axisLine: function (opt, axisModel, group, transformGroup) {\r\n var shown = axisModel.get(['axisLine', 'show']);\r\n if (shown === 'auto' && opt.handleAutoShown) {\r\n shown = opt.handleAutoShown('axisLine');\r\n }\r\n if (!shown) {\r\n return;\r\n }\r\n var extent = axisModel.axis.getExtent();\r\n var matrix = transformGroup.transform;\r\n var pt1 = [extent[0], 0];\r\n var pt2 = [extent[1], 0];\r\n if (matrix) {\r\n applyTransform(pt1, pt1, matrix);\r\n applyTransform(pt2, pt2, matrix);\r\n }\r\n var lineStyle = extend({\r\n lineCap: 'round'\r\n }, axisModel.getModel(['axisLine', 'lineStyle']).getLineStyle());\r\n var line = new Line({\r\n subPixelOptimize: true,\r\n shape: {\r\n x1: pt1[0],\r\n y1: pt1[1],\r\n x2: pt2[0],\r\n y2: pt2[1]\r\n },\r\n style: lineStyle,\r\n strokeContainThreshold: opt.strokeContainThreshold || 5,\r\n silent: true,\r\n z2: 1\r\n });\r\n line.anid = 'line';\r\n group.add(line);\r\n var arrows = axisModel.get(['axisLine', 'symbol']);\r\n var arrowSize = axisModel.get(['axisLine', 'symbolSize']);\r\n var arrowOffset = axisModel.get(['axisLine', 'symbolOffset']) || 0;\r\n if (typeof arrowOffset === 'number') {\r\n arrowOffset = [arrowOffset, arrowOffset];\r\n }\r\n if (arrows != null) {\r\n if (typeof arrows === 'string') {\r\n arrows = [arrows, arrows];\r\n }\r\n if (typeof arrowSize === 'string'\r\n || typeof arrowSize === 'number') {\r\n arrowSize = [arrowSize, arrowSize];\r\n }\r\n var symbolWidth_1 = arrowSize[0];\r\n var symbolHeight_1 = arrowSize[1];\r\n each([{\r\n rotate: opt.rotation + Math.PI / 2,\r\n offset: arrowOffset[0],\r\n r: 0\r\n }, {\r\n rotate: opt.rotation - Math.PI / 2,\r\n offset: arrowOffset[1],\r\n r: Math.sqrt((pt1[0] - pt2[0]) * (pt1[0] - pt2[0])\r\n + (pt1[1] - pt2[1]) * (pt1[1] - pt2[1]))\r\n }], function (point, index) {\r\n if (arrows[index] !== 'none' && arrows[index] != null) {\r\n var symbol = createSymbol(arrows[index], -symbolWidth_1 / 2, -symbolHeight_1 / 2, symbolWidth_1, symbolHeight_1, lineStyle.stroke, true);\r\n var r = point.r + point.offset;\r\n symbol.attr({\r\n rotation: point.rotate,\r\n x: pt1[0] + r * Math.cos(opt.rotation),\r\n y: pt1[1] - r * Math.sin(opt.rotation),\r\n silent: true,\r\n z2: 11\r\n });\r\n group.add(symbol);\r\n }\r\n });\r\n }\r\n },\r\n axisTickLabel: function (opt, axisModel, group, transformGroup) {\r\n var ticksEls = buildAxisMajorTicks(group, transformGroup, axisModel, opt);\r\n var labelEls = buildAxisLabel(group, transformGroup, axisModel, opt);\r\n fixMinMaxLabelShow(axisModel, labelEls, ticksEls);\r\n buildAxisMinorTicks(group, transformGroup, axisModel, opt.tickDirection);\r\n },\r\n axisName: function (opt, axisModel, group, transformGroup) {\r\n var name = retrieve(opt.axisName, axisModel.get('name'));\r\n if (!name) {\r\n return;\r\n }\r\n var nameLocation = axisModel.get('nameLocation');\r\n var nameDirection = opt.nameDirection;\r\n var textStyleModel = axisModel.getModel('nameTextStyle');\r\n var gap = axisModel.get('nameGap') || 0;\r\n var extent = axisModel.axis.getExtent();\r\n var gapSignal = extent[0] > extent[1] ? -1 : 1;\r\n var pos = [\r\n nameLocation === 'start'\r\n ? extent[0] - gapSignal * gap\r\n : nameLocation === 'end'\r\n ? extent[1] + gapSignal * gap\r\n : (extent[0] + extent[1]) / 2,\r\n isNameLocationCenter(nameLocation) ? opt.labelOffset + nameDirection * gap : 0\r\n ];\r\n var labelLayout;\r\n var nameRotation = axisModel.get('nameRotate');\r\n if (nameRotation != null) {\r\n nameRotation = nameRotation * PI$6 / 180;\r\n }\r\n var axisNameAvailableWidth;\r\n if (isNameLocationCenter(nameLocation)) {\r\n labelLayout = AxisBuilder.innerTextLayout(opt.rotation, nameRotation != null ? nameRotation : opt.rotation, nameDirection);\r\n }\r\n else {\r\n labelLayout = endTextLayout(opt.rotation, nameLocation, nameRotation || 0, extent);\r\n axisNameAvailableWidth = opt.axisNameAvailableWidth;\r\n if (axisNameAvailableWidth != null) {\r\n axisNameAvailableWidth = Math.abs(axisNameAvailableWidth / Math.sin(labelLayout.rotation));\r\n !isFinite(axisNameAvailableWidth) && (axisNameAvailableWidth = null);\r\n }\r\n }\r\n var textFont = textStyleModel.getFont();\r\n var truncateOpt = axisModel.get('nameTruncate', true) || {};\r\n var ellipsis = truncateOpt.ellipsis;\r\n var maxWidth = retrieve(opt.nameTruncateMaxWidth, truncateOpt.maxWidth, axisNameAvailableWidth);\r\n var tooltipOpt = axisModel.get('tooltip', true);\r\n var mainType = axisModel.mainType;\r\n var formatterParams = {\r\n componentType: mainType,\r\n name: name,\r\n $vars: ['name']\r\n };\r\n formatterParams[mainType + 'Index'] = axisModel.componentIndex;\r\n var textEl = new ZRText({\r\n x: pos[0],\r\n y: pos[1],\r\n rotation: labelLayout.rotation,\r\n silent: AxisBuilder.isLabelSilent(axisModel),\r\n style: createTextStyle(textStyleModel, {\r\n text: name,\r\n font: textFont,\r\n overflow: 'truncate',\r\n width: maxWidth,\r\n ellipsis: ellipsis,\r\n fill: textStyleModel.getTextColor()\r\n || axisModel.get(['axisLine', 'lineStyle', 'color']),\r\n align: textStyleModel.get('align')\r\n || labelLayout.textAlign,\r\n verticalAlign: textStyleModel.get('verticalAlign')\r\n || labelLayout.textVerticalAlign\r\n }),\r\n z2: 1\r\n });\r\n textEl.tooltip = (tooltipOpt && tooltipOpt.show)\r\n ? extend({\r\n content: name,\r\n formatter: function () {\r\n return name;\r\n },\r\n formatterParams: formatterParams\r\n }, tooltipOpt)\r\n : null;\r\n textEl.__fullText = name;\r\n textEl.anid = 'name';\r\n if (axisModel.get('triggerEvent')) {\r\n var eventData = AxisBuilder.makeAxisEventDataBase(axisModel);\r\n eventData.targetType = 'axisName';\r\n eventData.name = name;\r\n getECData(textEl).eventData = eventData;\r\n }\r\n transformGroup.add(textEl);\r\n textEl.updateTransform();\r\n group.add(textEl);\r\n textEl.decomposeTransform();\r\n }\r\n };\r\n function endTextLayout(rotation, textPosition, textRotate, extent) {\r\n var rotationDiff = remRadian(textRotate - rotation);\r\n var textAlign;\r\n var textVerticalAlign;\r\n var inverse = extent[0] > extent[1];\r\n var onLeft = (textPosition === 'start' && !inverse)\r\n || (textPosition !== 'start' && inverse);\r\n if (isRadianAroundZero(rotationDiff - PI$6 / 2)) {\r\n textVerticalAlign = onLeft ? 'bottom' : 'top';\r\n textAlign = 'center';\r\n }\r\n else if (isRadianAroundZero(rotationDiff - PI$6 * 1.5)) {\r\n textVerticalAlign = onLeft ? 'top' : 'bottom';\r\n textAlign = 'center';\r\n }\r\n else {\r\n textVerticalAlign = 'middle';\r\n if (rotationDiff < PI$6 * 1.5 && rotationDiff > PI$6 / 2) {\r\n textAlign = onLeft ? 'left' : 'right';\r\n }\r\n else {\r\n textAlign = onLeft ? 'right' : 'left';\r\n }\r\n }\r\n return {\r\n rotation: rotationDiff,\r\n textAlign: textAlign,\r\n textVerticalAlign: textVerticalAlign\r\n };\r\n }\r\n function fixMinMaxLabelShow(axisModel, labelEls, tickEls) {\r\n if (shouldShowAllLabels(axisModel.axis)) {\r\n return;\r\n }\r\n var showMinLabel = axisModel.get(['axisLabel', 'showMinLabel']);\r\n var showMaxLabel = axisModel.get(['axisLabel', 'showMaxLabel']);\r\n labelEls = labelEls || [];\r\n tickEls = tickEls || [];\r\n var firstLabel = labelEls[0];\r\n var nextLabel = labelEls[1];\r\n var lastLabel = labelEls[labelEls.length - 1];\r\n var prevLabel = labelEls[labelEls.length - 2];\r\n var firstTick = tickEls[0];\r\n var nextTick = tickEls[1];\r\n var lastTick = tickEls[tickEls.length - 1];\r\n var prevTick = tickEls[tickEls.length - 2];\r\n if (showMinLabel === false) {\r\n ignoreEl(firstLabel);\r\n ignoreEl(firstTick);\r\n }\r\n else if (isTwoLabelOverlapped(firstLabel, nextLabel)) {\r\n if (showMinLabel) {\r\n ignoreEl(nextLabel);\r\n ignoreEl(nextTick);\r\n }\r\n else {\r\n ignoreEl(firstLabel);\r\n ignoreEl(firstTick);\r\n }\r\n }\r\n if (showMaxLabel === false) {\r\n ignoreEl(lastLabel);\r\n ignoreEl(lastTick);\r\n }\r\n else if (isTwoLabelOverlapped(prevLabel, lastLabel)) {\r\n if (showMaxLabel) {\r\n ignoreEl(prevLabel);\r\n ignoreEl(prevTick);\r\n }\r\n else {\r\n ignoreEl(lastLabel);\r\n ignoreEl(lastTick);\r\n }\r\n }\r\n }\r\n function ignoreEl(el) {\r\n el && (el.ignore = true);\r\n }\r\n function isTwoLabelOverlapped(current, next) {\r\n var firstRect = current && current.getBoundingRect().clone();\r\n var nextRect = next && next.getBoundingRect().clone();\r\n if (!firstRect || !nextRect) {\r\n return;\r\n }\r\n var mRotationBack = identity([]);\r\n rotate(mRotationBack, mRotationBack, -current.rotation);\r\n firstRect.applyTransform(mul$1([], mRotationBack, current.getLocalTransform()));\r\n nextRect.applyTransform(mul$1([], mRotationBack, next.getLocalTransform()));\r\n return firstRect.intersect(nextRect);\r\n }\r\n function isNameLocationCenter(nameLocation) {\r\n return nameLocation === 'middle' || nameLocation === 'center';\r\n }\r\n function createTicks(ticksCoords, tickTransform, tickEndCoord, tickLineStyle, anidPrefix) {\r\n var tickEls = [];\r\n var pt1 = [];\r\n var pt2 = [];\r\n for (var i = 0; i < ticksCoords.length; i++) {\r\n var tickCoord = ticksCoords[i].coord;\r\n pt1[0] = tickCoord;\r\n pt1[1] = 0;\r\n pt2[0] = tickCoord;\r\n pt2[1] = tickEndCoord;\r\n if (tickTransform) {\r\n applyTransform(pt1, pt1, tickTransform);\r\n applyTransform(pt2, pt2, tickTransform);\r\n }\r\n var tickEl = new Line({\r\n subPixelOptimize: true,\r\n shape: {\r\n x1: pt1[0],\r\n y1: pt1[1],\r\n x2: pt2[0],\r\n y2: pt2[1]\r\n },\r\n style: tickLineStyle,\r\n z2: 2,\r\n autoBatch: true,\r\n silent: true\r\n });\r\n tickEl.anid = anidPrefix + '_' + ticksCoords[i].tickValue;\r\n tickEls.push(tickEl);\r\n }\r\n return tickEls;\r\n }\r\n function buildAxisMajorTicks(group, transformGroup, axisModel, opt) {\r\n var axis = axisModel.axis;\r\n var tickModel = axisModel.getModel('axisTick');\r\n var shown = tickModel.get('show');\r\n if (shown === 'auto' && opt.handleAutoShown) {\r\n shown = opt.handleAutoShown('axisTick');\r\n }\r\n if (!shown || axis.scale.isBlank()) {\r\n return;\r\n }\r\n var lineStyleModel = tickModel.getModel('lineStyle');\r\n var tickEndCoord = opt.tickDirection * tickModel.get('length');\r\n var ticksCoords = axis.getTicksCoords();\r\n var ticksEls = createTicks(ticksCoords, transformGroup.transform, tickEndCoord, defaults(lineStyleModel.getLineStyle(), {\r\n stroke: axisModel.get(['axisLine', 'lineStyle', 'color'])\r\n }), 'ticks');\r\n for (var i = 0; i < ticksEls.length; i++) {\r\n group.add(ticksEls[i]);\r\n }\r\n return ticksEls;\r\n }\r\n function buildAxisMinorTicks(group, transformGroup, axisModel, tickDirection) {\r\n var axis = axisModel.axis;\r\n var minorTickModel = axisModel.getModel('minorTick');\r\n if (!minorTickModel.get('show') || axis.scale.isBlank()) {\r\n return;\r\n }\r\n var minorTicksCoords = axis.getMinorTicksCoords();\r\n if (!minorTicksCoords.length) {\r\n return;\r\n }\r\n var lineStyleModel = minorTickModel.getModel('lineStyle');\r\n var tickEndCoord = tickDirection * minorTickModel.get('length');\r\n var minorTickLineStyle = defaults(lineStyleModel.getLineStyle(), defaults(axisModel.getModel('axisTick').getLineStyle(), {\r\n stroke: axisModel.get(['axisLine', 'lineStyle', 'color'])\r\n }));\r\n for (var i = 0; i < minorTicksCoords.length; i++) {\r\n var minorTicksEls = createTicks(minorTicksCoords[i], transformGroup.transform, tickEndCoord, minorTickLineStyle, 'minorticks_' + i);\r\n for (var k = 0; k < minorTicksEls.length; k++) {\r\n group.add(minorTicksEls[k]);\r\n }\r\n }\r\n }\r\n function buildAxisLabel(group, transformGroup, axisModel, opt) {\r\n var axis = axisModel.axis;\r\n var show = retrieve(opt.axisLabelShow, axisModel.get(['axisLabel', 'show']));\r\n if (!show || axis.scale.isBlank()) {\r\n return;\r\n }\r\n var labelModel = axisModel.getModel('axisLabel');\r\n var labelMargin = labelModel.get('margin');\r\n var labels = axis.getViewLabels();\r\n var labelRotation = (retrieve(opt.labelRotate, labelModel.get('rotate')) || 0) * PI$6 / 180;\r\n var labelLayout = AxisBuilder.innerTextLayout(opt.rotation, labelRotation, opt.labelDirection);\r\n var rawCategoryData = axisModel.getCategories && axisModel.getCategories(true);\r\n var labelEls = [];\r\n var silent = AxisBuilder.isLabelSilent(axisModel);\r\n var triggerEvent = axisModel.get('triggerEvent');\r\n each(labels, function (labelItem, index) {\r\n var tickValue = axis.scale.type === 'ordinal'\r\n ? axis.scale.getRawIndex(labelItem.tickValue)\r\n : labelItem.tickValue;\r\n var formattedLabel = labelItem.formattedLabel;\r\n var rawLabel = labelItem.rawLabel;\r\n var itemLabelModel = labelModel;\r\n if (rawCategoryData && rawCategoryData[tickValue]) {\r\n var rawCategoryItem = rawCategoryData[tickValue];\r\n if (isObject(rawCategoryItem) && rawCategoryItem.textStyle) {\r\n itemLabelModel = new Model(rawCategoryItem.textStyle, labelModel, axisModel.ecModel);\r\n }\r\n }\r\n var textColor = itemLabelModel.getTextColor()\r\n || axisModel.get(['axisLine', 'lineStyle', 'color']);\r\n var tickCoord = axis.dataToCoord(tickValue);\r\n var textEl = new ZRText({\r\n x: tickCoord,\r\n y: opt.labelOffset + opt.labelDirection * labelMargin,\r\n rotation: labelLayout.rotation,\r\n silent: silent,\r\n z2: 10,\r\n style: createTextStyle(itemLabelModel, {\r\n text: formattedLabel,\r\n align: itemLabelModel.getShallow('align', true)\r\n || labelLayout.textAlign,\r\n verticalAlign: itemLabelModel.getShallow('verticalAlign', true)\r\n || itemLabelModel.getShallow('baseline', true)\r\n || labelLayout.textVerticalAlign,\r\n fill: typeof textColor === 'function'\r\n ? textColor(axis.type === 'category'\r\n ? rawLabel\r\n : axis.type === 'value'\r\n ? tickValue + ''\r\n : tickValue, index)\r\n : textColor\r\n })\r\n });\r\n textEl.anid = 'label_' + tickValue;\r\n if (triggerEvent) {\r\n var eventData = AxisBuilder.makeAxisEventDataBase(axisModel);\r\n eventData.targetType = 'axisLabel';\r\n eventData.value = rawLabel;\r\n getECData(textEl).eventData = eventData;\r\n }\r\n transformGroup.add(textEl);\r\n textEl.updateTransform();\r\n labelEls.push(textEl);\r\n group.add(textEl);\r\n textEl.decomposeTransform();\r\n });\r\n return labelEls;\r\n }\n\n function collect(ecModel, api) {\r\n var result = {\r\n axesInfo: {},\r\n seriesInvolved: false,\r\n coordSysAxesInfo: {},\r\n coordSysMap: {}\r\n };\r\n collectAxesInfo(result, ecModel, api);\r\n result.seriesInvolved && collectSeriesInfo(result, ecModel);\r\n return result;\r\n }\r\n function collectAxesInfo(result, ecModel, api) {\r\n var globalTooltipModel = ecModel.getComponent('tooltip');\r\n var globalAxisPointerModel = ecModel.getComponent('axisPointer');\r\n var linksOption = globalAxisPointerModel.get('link', true) || [];\r\n var linkGroups = [];\r\n each(api.getCoordinateSystems(), function (coordSys) {\r\n if (!coordSys.axisPointerEnabled) {\r\n return;\r\n }\r\n var coordSysKey = makeKey(coordSys.model);\r\n var axesInfoInCoordSys = result.coordSysAxesInfo[coordSysKey] = {};\r\n result.coordSysMap[coordSysKey] = coordSys;\r\n var coordSysModel = coordSys.model;\r\n var baseTooltipModel = coordSysModel.getModel('tooltip', globalTooltipModel);\r\n each(coordSys.getAxes(), curry(saveTooltipAxisInfo, false, null));\r\n if (coordSys.getTooltipAxes\r\n && globalTooltipModel\r\n && baseTooltipModel.get('show')) {\r\n var triggerAxis = baseTooltipModel.get('trigger') === 'axis';\r\n var cross = baseTooltipModel.get(['axisPointer', 'type']) === 'cross';\r\n var tooltipAxes = coordSys.getTooltipAxes(baseTooltipModel.get(['axisPointer', 'axis']));\r\n if (triggerAxis || cross) {\r\n each(tooltipAxes.baseAxes, curry(saveTooltipAxisInfo, cross ? 'cross' : true, triggerAxis));\r\n }\r\n if (cross) {\r\n each(tooltipAxes.otherAxes, curry(saveTooltipAxisInfo, 'cross', false));\r\n }\r\n }\r\n function saveTooltipAxisInfo(fromTooltip, triggerTooltip, axis) {\r\n var axisPointerModel = axis.model.getModel('axisPointer', globalAxisPointerModel);\r\n var axisPointerShow = axisPointerModel.get('show');\r\n if (!axisPointerShow || (axisPointerShow === 'auto'\r\n && !fromTooltip\r\n && !isHandleTrigger(axisPointerModel))) {\r\n return;\r\n }\r\n if (triggerTooltip == null) {\r\n triggerTooltip = axisPointerModel.get('triggerTooltip');\r\n }\r\n axisPointerModel = fromTooltip\r\n ? makeAxisPointerModel(axis, baseTooltipModel, globalAxisPointerModel, ecModel, fromTooltip, triggerTooltip)\r\n : axisPointerModel;\r\n var snap = axisPointerModel.get('snap');\r\n var axisKey = makeKey(axis.model);\r\n var involveSeries = triggerTooltip || snap || axis.type === 'category';\r\n var axisInfo = result.axesInfo[axisKey] = {\r\n key: axisKey,\r\n axis: axis,\r\n coordSys: coordSys,\r\n axisPointerModel: axisPointerModel,\r\n triggerTooltip: triggerTooltip,\r\n involveSeries: involveSeries,\r\n snap: snap,\r\n useHandle: isHandleTrigger(axisPointerModel),\r\n seriesModels: [],\r\n linkGroup: null\r\n };\r\n axesInfoInCoordSys[axisKey] = axisInfo;\r\n result.seriesInvolved = result.seriesInvolved || involveSeries;\r\n var groupIndex = getLinkGroupIndex(linksOption, axis);\r\n if (groupIndex != null) {\r\n var linkGroup = linkGroups[groupIndex]\r\n || (linkGroups[groupIndex] = { axesInfo: {} });\r\n linkGroup.axesInfo[axisKey] = axisInfo;\r\n linkGroup.mapper = linksOption[groupIndex].mapper;\r\n axisInfo.linkGroup = linkGroup;\r\n }\r\n }\r\n });\r\n }\r\n function makeAxisPointerModel(axis, baseTooltipModel, globalAxisPointerModel, ecModel, fromTooltip, triggerTooltip) {\r\n var tooltipAxisPointerModel = baseTooltipModel.getModel('axisPointer');\r\n var fields = [\r\n 'type', 'snap', 'lineStyle', 'shadowStyle', 'label',\r\n 'animation', 'animationDurationUpdate', 'animationEasingUpdate', 'z'\r\n ];\r\n var volatileOption = {};\r\n each(fields, function (field) {\r\n volatileOption[field] = clone(tooltipAxisPointerModel.get(field));\r\n });\r\n volatileOption.snap = axis.type !== 'category' && !!triggerTooltip;\r\n if (tooltipAxisPointerModel.get('type') === 'cross') {\r\n volatileOption.type = 'line';\r\n }\r\n var labelOption = volatileOption.label || (volatileOption.label = {});\r\n labelOption.show == null && (labelOption.show = false);\r\n if (fromTooltip === 'cross') {\r\n var tooltipAxisPointerLabelShow = tooltipAxisPointerModel.get(['label', 'show']);\r\n labelOption.show = tooltipAxisPointerLabelShow != null ? tooltipAxisPointerLabelShow : true;\r\n if (!triggerTooltip) {\r\n var crossStyle = volatileOption.lineStyle = tooltipAxisPointerModel.get('crossStyle');\r\n crossStyle && defaults(labelOption, crossStyle.textStyle);\r\n }\r\n }\r\n return axis.model.getModel('axisPointer', new Model(volatileOption, globalAxisPointerModel, ecModel));\r\n }\r\n function collectSeriesInfo(result, ecModel) {\r\n ecModel.eachSeries(function (seriesModel) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n var seriesTooltipTrigger = seriesModel.get(['tooltip', 'trigger'], true);\r\n var seriesTooltipShow = seriesModel.get(['tooltip', 'show'], true);\r\n if (!coordSys\r\n || seriesTooltipTrigger === 'none'\r\n || seriesTooltipTrigger === false\r\n || seriesTooltipTrigger === 'item'\r\n || seriesTooltipShow === false\r\n || seriesModel.get(['axisPointer', 'show'], true) === false) {\r\n return;\r\n }\r\n each(result.coordSysAxesInfo[makeKey(coordSys.model)], function (axisInfo) {\r\n var axis = axisInfo.axis;\r\n if (coordSys.getAxis(axis.dim) === axis) {\r\n axisInfo.seriesModels.push(seriesModel);\r\n axisInfo.seriesDataCount == null && (axisInfo.seriesDataCount = 0);\r\n axisInfo.seriesDataCount += seriesModel.getData().count();\r\n }\r\n });\r\n });\r\n }\r\n function getLinkGroupIndex(linksOption, axis) {\r\n var axisModel = axis.model;\r\n var dim = axis.dim;\r\n for (var i = 0; i < linksOption.length; i++) {\r\n var linkOption = linksOption[i] || {};\r\n if (checkPropInLink(linkOption[dim + 'AxisId'], axisModel.id)\r\n || checkPropInLink(linkOption[dim + 'AxisIndex'], axisModel.componentIndex)\r\n || checkPropInLink(linkOption[dim + 'AxisName'], axisModel.name)) {\r\n return i;\r\n }\r\n }\r\n }\r\n function checkPropInLink(linkPropValue, axisPropValue) {\r\n return linkPropValue === 'all'\r\n || (isArray(linkPropValue) && indexOf(linkPropValue, axisPropValue) >= 0)\r\n || linkPropValue === axisPropValue;\r\n }\r\n function fixValue(axisModel) {\r\n var axisInfo = getAxisInfo(axisModel);\r\n if (!axisInfo) {\r\n return;\r\n }\r\n var axisPointerModel = axisInfo.axisPointerModel;\r\n var scale = axisInfo.axis.scale;\r\n var option = axisPointerModel.option;\r\n var status = axisPointerModel.get('status');\r\n var value = axisPointerModel.get('value');\r\n if (value != null) {\r\n value = scale.parse(value);\r\n }\r\n var useHandle = isHandleTrigger(axisPointerModel);\r\n if (status == null) {\r\n option.status = useHandle ? 'show' : 'hide';\r\n }\r\n var extent = scale.getExtent().slice();\r\n extent[0] > extent[1] && extent.reverse();\r\n if (value == null\r\n || value > extent[1]) {\r\n value = extent[1];\r\n }\r\n if (value < extent[0]) {\r\n value = extent[0];\r\n }\r\n option.value = value;\r\n if (useHandle) {\r\n option.status = axisInfo.axis.scale.isBlank() ? 'hide' : 'show';\r\n }\r\n }\r\n function getAxisInfo(axisModel) {\r\n var coordSysAxesInfo = (axisModel.ecModel.getComponent('axisPointer') || {})\r\n .coordSysAxesInfo;\r\n return coordSysAxesInfo && coordSysAxesInfo.axesInfo[makeKey(axisModel)];\r\n }\r\n function getAxisPointerModel(axisModel) {\r\n var axisInfo = getAxisInfo(axisModel);\r\n return axisInfo && axisInfo.axisPointerModel;\r\n }\r\n function isHandleTrigger(axisPointerModel) {\r\n return !!axisPointerModel.get(['handle', 'show']);\r\n }\r\n function makeKey(model) {\r\n return model.type + '||' + model.id;\r\n }\n\n var axisPointerClazz = {};\r\n var AxisView = (function (_super) {\r\n __extends(AxisView, _super);\r\n function AxisView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = AxisView.type;\r\n return _this;\r\n }\r\n AxisView.prototype.render = function (axisModel, ecModel, api, payload) {\r\n this.axisPointerClass && fixValue(axisModel);\r\n _super.prototype.render.apply(this, arguments);\r\n this._doUpdateAxisPointerClass(axisModel, api, true);\r\n };\r\n AxisView.prototype.updateAxisPointer = function (axisModel, ecModel, api, payload) {\r\n this._doUpdateAxisPointerClass(axisModel, api, false);\r\n };\r\n AxisView.prototype.remove = function (ecModel, api) {\r\n var axisPointer = this._axisPointer;\r\n axisPointer && axisPointer.remove(api);\r\n };\r\n AxisView.prototype.dispose = function (ecModel, api) {\r\n this._disposeAxisPointer(api);\r\n _super.prototype.dispose.apply(this, arguments);\r\n };\r\n AxisView.prototype._doUpdateAxisPointerClass = function (axisModel, api, forceRender) {\r\n var Clazz = AxisView.getAxisPointerClass(this.axisPointerClass);\r\n if (!Clazz) {\r\n return;\r\n }\r\n var axisPointerModel = getAxisPointerModel(axisModel);\r\n axisPointerModel\r\n ? (this._axisPointer || (this._axisPointer = new Clazz()))\r\n .render(axisModel, axisPointerModel, api, forceRender)\r\n : this._disposeAxisPointer(api);\r\n };\r\n AxisView.prototype._disposeAxisPointer = function (api) {\r\n this._axisPointer && this._axisPointer.dispose(api);\r\n this._axisPointer = null;\r\n };\r\n AxisView.registerAxisPointerClass = function (type, clazz) {\r\n if (__DEV__) {\r\n if (axisPointerClazz[type]) {\r\n throw new Error('axisPointer ' + type + ' exists');\r\n }\r\n }\r\n axisPointerClazz[type] = clazz;\r\n };\r\n AxisView.getAxisPointerClass = function (type) {\r\n return type && axisPointerClazz[type];\r\n };\r\n AxisView.type = 'axis';\r\n return AxisView;\r\n }(ComponentView));\n\n function layout$1(gridModel, axisModel, opt) {\r\n opt = opt || {};\r\n var grid = gridModel.coordinateSystem;\r\n var axis = axisModel.axis;\r\n var layout = {};\r\n var otherAxisOnZeroOf = axis.getAxesOnZeroOf()[0];\r\n var rawAxisPosition = axis.position;\r\n var axisPosition = otherAxisOnZeroOf ? 'onZero' : rawAxisPosition;\r\n var axisDim = axis.dim;\r\n var rect = grid.getRect();\r\n var rectBound = [rect.x, rect.x + rect.width, rect.y, rect.y + rect.height];\r\n var idx = { left: 0, right: 1, top: 0, bottom: 1, onZero: 2 };\r\n var axisOffset = axisModel.get('offset') || 0;\r\n var posBound = axisDim === 'x'\r\n ? [rectBound[2] - axisOffset, rectBound[3] + axisOffset]\r\n : [rectBound[0] - axisOffset, rectBound[1] + axisOffset];\r\n if (otherAxisOnZeroOf) {\r\n var onZeroCoord = otherAxisOnZeroOf.toGlobalCoord(otherAxisOnZeroOf.dataToCoord(0));\r\n posBound[idx.onZero] = Math.max(Math.min(onZeroCoord, posBound[1]), posBound[0]);\r\n }\r\n layout.position = [\r\n axisDim === 'y' ? posBound[idx[axisPosition]] : rectBound[0],\r\n axisDim === 'x' ? posBound[idx[axisPosition]] : rectBound[3]\r\n ];\r\n layout.rotation = Math.PI / 2 * (axisDim === 'x' ? 0 : 1);\r\n var dirMap = { top: -1, bottom: 1, left: -1, right: 1 };\r\n layout.labelDirection = layout.tickDirection = layout.nameDirection = dirMap[rawAxisPosition];\r\n layout.labelOffset = otherAxisOnZeroOf ? posBound[idx[rawAxisPosition]] - posBound[idx.onZero] : 0;\r\n if (axisModel.get(['axisTick', 'inside'])) {\r\n layout.tickDirection = -layout.tickDirection;\r\n }\r\n if (retrieve(opt.labelInside, axisModel.get(['axisLabel', 'inside']))) {\r\n layout.labelDirection = -layout.labelDirection;\r\n }\r\n var labelRotate = axisModel.get(['axisLabel', 'rotate']);\r\n layout.labelRotate = axisPosition === 'top' ? -labelRotate : labelRotate;\r\n layout.z2 = 1;\r\n return layout;\r\n }\r\n function isCartesian2DSeries(seriesModel) {\r\n return seriesModel.get('coordinateSystem') === 'cartesian2d';\r\n }\r\n function findAxisModels(seriesModel) {\r\n var axisModelMap = {\r\n xAxisModel: null,\r\n yAxisModel: null\r\n };\r\n each(axisModelMap, function (v, key) {\r\n var axisType = key.replace(/Model$/, '');\r\n var axisModel = seriesModel.getReferringComponents(axisType, SINGLE_REFERRING).models[0];\r\n if (__DEV__) {\r\n if (!axisModel) {\r\n throw new Error(axisType + ' \"' + retrieve3(seriesModel.get(axisType + 'Index'), seriesModel.get(axisType + 'Id'), 0) + '\" not found');\r\n }\r\n }\r\n axisModelMap[key] = axisModel;\r\n });\r\n return axisModelMap;\r\n }\n\n var inner$5 = makeInner();\r\n function rectCoordAxisBuildSplitArea(axisView, axisGroup, axisModel, gridModel) {\r\n var axis = axisModel.axis;\r\n if (axis.scale.isBlank()) {\r\n return;\r\n }\r\n var splitAreaModel = axisModel.getModel('splitArea');\r\n var areaStyleModel = splitAreaModel.getModel('areaStyle');\r\n var areaColors = areaStyleModel.get('color');\r\n var gridRect = gridModel.coordinateSystem.getRect();\r\n var ticksCoords = axis.getTicksCoords({\r\n tickModel: splitAreaModel,\r\n clamp: true\r\n });\r\n if (!ticksCoords.length) {\r\n return;\r\n }\r\n var areaColorsLen = areaColors.length;\r\n var lastSplitAreaColors = inner$5(axisView).splitAreaColors;\r\n var newSplitAreaColors = createHashMap();\r\n var colorIndex = 0;\r\n if (lastSplitAreaColors) {\r\n for (var i = 0; i < ticksCoords.length; i++) {\r\n var cIndex = lastSplitAreaColors.get(ticksCoords[i].tickValue);\r\n if (cIndex != null) {\r\n colorIndex = (cIndex + (areaColorsLen - 1) * i) % areaColorsLen;\r\n break;\r\n }\r\n }\r\n }\r\n var prev = axis.toGlobalCoord(ticksCoords[0].coord);\r\n var areaStyle = areaStyleModel.getAreaStyle();\r\n areaColors = isArray(areaColors) ? areaColors : [areaColors];\r\n for (var i = 1; i < ticksCoords.length; i++) {\r\n var tickCoord = axis.toGlobalCoord(ticksCoords[i].coord);\r\n var x = void 0;\r\n var y = void 0;\r\n var width = void 0;\r\n var height = void 0;\r\n if (axis.isHorizontal()) {\r\n x = prev;\r\n y = gridRect.y;\r\n width = tickCoord - x;\r\n height = gridRect.height;\r\n prev = x + width;\r\n }\r\n else {\r\n x = gridRect.x;\r\n y = prev;\r\n width = gridRect.width;\r\n height = tickCoord - y;\r\n prev = y + height;\r\n }\r\n var tickValue = ticksCoords[i - 1].tickValue;\r\n tickValue != null && newSplitAreaColors.set(tickValue, colorIndex);\r\n axisGroup.add(new Rect({\r\n anid: tickValue != null ? 'area_' + tickValue : null,\r\n shape: {\r\n x: x,\r\n y: y,\r\n width: width,\r\n height: height\r\n },\r\n style: defaults({\r\n fill: areaColors[colorIndex]\r\n }, areaStyle),\r\n autoBatch: true,\r\n silent: true\r\n }));\r\n colorIndex = (colorIndex + 1) % areaColorsLen;\r\n }\r\n inner$5(axisView).splitAreaColors = newSplitAreaColors;\r\n }\r\n function rectCoordAxisHandleRemove(axisView) {\r\n inner$5(axisView).splitAreaColors = null;\r\n }\n\n var axisBuilderAttrs = [\r\n 'axisLine', 'axisTickLabel', 'axisName'\r\n ];\r\n var selfBuilderAttrs = [\r\n 'splitArea', 'splitLine', 'minorSplitLine'\r\n ];\r\n var CartesianAxisView = (function (_super) {\r\n __extends(CartesianAxisView, _super);\r\n function CartesianAxisView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = CartesianAxisView.type;\r\n _this.axisPointerClass = 'CartesianAxisPointer';\r\n return _this;\r\n }\r\n CartesianAxisView.prototype.render = function (axisModel, ecModel, api, payload) {\r\n this.group.removeAll();\r\n var oldAxisGroup = this._axisGroup;\r\n this._axisGroup = new Group();\r\n this.group.add(this._axisGroup);\r\n if (!axisModel.get('show')) {\r\n return;\r\n }\r\n var gridModel = axisModel.getCoordSysModel();\r\n var layout = layout$1(gridModel, axisModel);\r\n var axisBuilder = new AxisBuilder(axisModel, extend({\r\n handleAutoShown: function (elementType) {\r\n var cartesians = gridModel.coordinateSystem.getCartesians();\r\n for (var i = 0; i < cartesians.length; i++) {\r\n var otherAxisType = cartesians[i].getOtherAxis(axisModel.axis).type;\r\n if (otherAxisType === 'value' || otherAxisType === 'log') {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n }, layout));\r\n each(axisBuilderAttrs, axisBuilder.add, axisBuilder);\r\n this._axisGroup.add(axisBuilder.getGroup());\r\n each(selfBuilderAttrs, function (name) {\r\n if (axisModel.get([name, 'show'])) {\r\n axisElementBuilders[name](this, this._axisGroup, axisModel, gridModel);\r\n }\r\n }, this);\r\n groupTransition(oldAxisGroup, this._axisGroup, axisModel);\r\n _super.prototype.render.call(this, axisModel, ecModel, api, payload);\r\n };\r\n CartesianAxisView.prototype.remove = function () {\r\n rectCoordAxisHandleRemove(this);\r\n };\r\n CartesianAxisView.type = 'cartesianAxis';\r\n return CartesianAxisView;\r\n }(AxisView));\r\n var axisElementBuilders = {\r\n splitLine: function (axisView, axisGroup, axisModel, gridModel) {\r\n var axis = axisModel.axis;\r\n if (axis.scale.isBlank()) {\r\n return;\r\n }\r\n var splitLineModel = axisModel.getModel('splitLine');\r\n var lineStyleModel = splitLineModel.getModel('lineStyle');\r\n var lineColors = lineStyleModel.get('color');\r\n lineColors = isArray(lineColors) ? lineColors : [lineColors];\r\n var gridRect = gridModel.coordinateSystem.getRect();\r\n var isHorizontal = axis.isHorizontal();\r\n var lineCount = 0;\r\n var ticksCoords = axis.getTicksCoords({\r\n tickModel: splitLineModel\r\n });\r\n var p1 = [];\r\n var p2 = [];\r\n var lineStyle = lineStyleModel.getLineStyle();\r\n for (var i = 0; i < ticksCoords.length; i++) {\r\n var tickCoord = axis.toGlobalCoord(ticksCoords[i].coord);\r\n if (isHorizontal) {\r\n p1[0] = tickCoord;\r\n p1[1] = gridRect.y;\r\n p2[0] = tickCoord;\r\n p2[1] = gridRect.y + gridRect.height;\r\n }\r\n else {\r\n p1[0] = gridRect.x;\r\n p1[1] = tickCoord;\r\n p2[0] = gridRect.x + gridRect.width;\r\n p2[1] = tickCoord;\r\n }\r\n var colorIndex = (lineCount++) % lineColors.length;\r\n var tickValue = ticksCoords[i].tickValue;\r\n axisGroup.add(new Line({\r\n anid: tickValue != null ? 'line_' + ticksCoords[i].tickValue : null,\r\n subPixelOptimize: true,\r\n autoBatch: true,\r\n shape: {\r\n x1: p1[0],\r\n y1: p1[1],\r\n x2: p2[0],\r\n y2: p2[1]\r\n },\r\n style: defaults({\r\n stroke: lineColors[colorIndex]\r\n }, lineStyle),\r\n silent: true\r\n }));\r\n }\r\n },\r\n minorSplitLine: function (axisView, axisGroup, axisModel, gridModel) {\r\n var axis = axisModel.axis;\r\n var minorSplitLineModel = axisModel.getModel('minorSplitLine');\r\n var lineStyleModel = minorSplitLineModel.getModel('lineStyle');\r\n var gridRect = gridModel.coordinateSystem.getRect();\r\n var isHorizontal = axis.isHorizontal();\r\n var minorTicksCoords = axis.getMinorTicksCoords();\r\n if (!minorTicksCoords.length) {\r\n return;\r\n }\r\n var p1 = [];\r\n var p2 = [];\r\n var lineStyle = lineStyleModel.getLineStyle();\r\n for (var i = 0; i < minorTicksCoords.length; i++) {\r\n for (var k = 0; k < minorTicksCoords[i].length; k++) {\r\n var tickCoord = axis.toGlobalCoord(minorTicksCoords[i][k].coord);\r\n if (isHorizontal) {\r\n p1[0] = tickCoord;\r\n p1[1] = gridRect.y;\r\n p2[0] = tickCoord;\r\n p2[1] = gridRect.y + gridRect.height;\r\n }\r\n else {\r\n p1[0] = gridRect.x;\r\n p1[1] = tickCoord;\r\n p2[0] = gridRect.x + gridRect.width;\r\n p2[1] = tickCoord;\r\n }\r\n axisGroup.add(new Line({\r\n anid: 'minor_line_' + minorTicksCoords[i][k].tickValue,\r\n subPixelOptimize: true,\r\n autoBatch: true,\r\n shape: {\r\n x1: p1[0],\r\n y1: p1[1],\r\n x2: p2[0],\r\n y2: p2[1]\r\n },\r\n style: lineStyle,\r\n silent: true\r\n }));\r\n }\r\n }\r\n },\r\n splitArea: function (axisView, axisGroup, axisModel, gridModel) {\r\n rectCoordAxisBuildSplitArea(axisView, axisGroup, axisModel, gridModel);\r\n }\r\n };\r\n var CartesianXAxisView = (function (_super) {\r\n __extends(CartesianXAxisView, _super);\r\n function CartesianXAxisView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = CartesianXAxisView.type;\r\n return _this;\r\n }\r\n CartesianXAxisView.type = 'xAxis';\r\n return CartesianXAxisView;\r\n }(CartesianAxisView));\r\n var CartesianYAxisView = (function (_super) {\r\n __extends(CartesianYAxisView, _super);\r\n function CartesianYAxisView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = CartesianXAxisView.type;\r\n return _this;\r\n }\r\n CartesianYAxisView.type = 'yAxis';\r\n return CartesianYAxisView;\r\n }(CartesianAxisView));\r\n ComponentView.registerClass(CartesianXAxisView);\r\n ComponentView.registerClass(CartesianYAxisView);\n\n registerProcessor(PRIORITY.PROCESSOR.FILTER + 10, {\r\n getTargetSeries: function (ecModel) {\r\n var seriesModelMap = createHashMap();\r\n ecModel.eachSeries(function (seriesModel) {\r\n isCartesian2DSeries(seriesModel) && seriesModelMap.set(seriesModel.uid, seriesModel);\r\n });\r\n return seriesModelMap;\r\n },\r\n overallReset: function (ecModel, api) {\r\n var seriesRecords = [];\r\n var axisRecordMap = createHashMap();\r\n prepareDataExtentOnAxis(ecModel, axisRecordMap, seriesRecords);\r\n calculateFilteredExtent(axisRecordMap, seriesRecords);\r\n shrinkAxisExtent(axisRecordMap);\r\n }\r\n });\r\n function prepareDataExtentOnAxis(ecModel, axisRecordMap, seriesRecords) {\r\n ecModel.eachSeries(function (seriesModel) {\r\n if (!isCartesian2DSeries(seriesModel)) {\r\n return;\r\n }\r\n var axesModelMap = findAxisModels(seriesModel);\r\n var xAxisModel = axesModelMap.xAxisModel;\r\n var yAxisModel = axesModelMap.yAxisModel;\r\n var xAxis = xAxisModel.axis;\r\n var yAxis = yAxisModel.axis;\r\n var xRawExtentInfo = xAxis.scale.rawExtentInfo;\r\n var yRawExtentInfo = yAxis.scale.rawExtentInfo;\r\n var data = seriesModel.getData();\r\n if ((xRawExtentInfo && xRawExtentInfo.frozen)\r\n || (yRawExtentInfo && yRawExtentInfo.frozen)) {\r\n return;\r\n }\r\n seriesRecords.push({\r\n seriesModel: seriesModel,\r\n xAxisModel: xAxisModel,\r\n yAxisModel: yAxisModel\r\n });\r\n unionAxisExtentFromData(prepareAxisRecord(axisRecordMap, xAxisModel).condExtent, data, xAxis.dim);\r\n unionAxisExtentFromData(prepareAxisRecord(axisRecordMap, yAxisModel).condExtent, data, yAxis.dim);\r\n });\r\n }\r\n function calculateFilteredExtent(axisRecordMap, seriesRecords) {\r\n each(seriesRecords, function (seriesRecord) {\r\n var xAxisModel = seriesRecord.xAxisModel;\r\n var yAxisModel = seriesRecord.yAxisModel;\r\n var xAxis = xAxisModel.axis;\r\n var yAxis = yAxisModel.axis;\r\n var xAxisRecord = prepareAxisRecord(axisRecordMap, xAxisModel);\r\n var yAxisRecord = prepareAxisRecord(axisRecordMap, yAxisModel);\r\n xAxisRecord.rawExtentInfo = ensureScaleRawExtentInfo(xAxis.scale, xAxisModel, xAxisRecord.condExtent);\r\n yAxisRecord.rawExtentInfo = ensureScaleRawExtentInfo(yAxis.scale, yAxisModel, yAxisRecord.condExtent);\r\n xAxisRecord.rawExtentResult = xAxisRecord.rawExtentInfo.calculate();\r\n yAxisRecord.rawExtentResult = yAxisRecord.rawExtentInfo.calculate();\r\n var data = seriesRecord.seriesModel.getData();\r\n var condDimMap = {};\r\n var tarDimMap = {};\r\n var condAxis;\r\n var tarAxisRecord;\r\n function addCondition(axis, axisRecord) {\r\n var condExtent = axisRecord.condExtent;\r\n var rawExtentResult = axisRecord.rawExtentResult;\r\n if (axis.type === 'category'\r\n && (condExtent[0] < rawExtentResult.min || rawExtentResult.max < condExtent[1])) {\r\n each(getDataDimensionsOnAxis(data, axis.dim), function (dataDim) {\r\n if (!hasOwn(condDimMap, dataDim)) {\r\n condDimMap[dataDim] = true;\r\n condAxis = axis;\r\n }\r\n });\r\n }\r\n }\r\n function addTarget(axis, axisRecord) {\r\n var rawExtentResult = axisRecord.rawExtentResult;\r\n if (axis.type !== 'category'\r\n && (!rawExtentResult.minFixed || !rawExtentResult.maxFixed)) {\r\n each(getDataDimensionsOnAxis(data, axis.dim), function (dataDim) {\r\n if (!hasOwn(condDimMap, dataDim) && !hasOwn(tarDimMap, dataDim)) {\r\n tarDimMap[dataDim] = true;\r\n tarAxisRecord = axisRecord;\r\n }\r\n });\r\n }\r\n }\r\n addCondition(xAxis, xAxisRecord);\r\n addCondition(yAxis, yAxisRecord);\r\n addTarget(xAxis, xAxisRecord);\r\n addTarget(yAxis, yAxisRecord);\r\n var condDims = keys(condDimMap);\r\n var tarDims = keys(tarDimMap);\r\n var tarDimExtents = map(tarDims, function () {\r\n return initExtent();\r\n });\r\n var condDimsLen = condDims.length;\r\n var tarDimsLen = tarDims.length;\r\n if (!condDimsLen || !tarDimsLen) {\r\n return;\r\n }\r\n var singleCondDim = condDimsLen === 1 ? condDims[0] : null;\r\n var singleTarDim = tarDimsLen === 1 ? tarDims[0] : null;\r\n var dataLen = data.count();\r\n if (singleCondDim && singleTarDim) {\r\n for (var dataIdx = 0; dataIdx < dataLen; dataIdx++) {\r\n var condVal = data.get(singleCondDim, dataIdx);\r\n if (condAxis.scale.isInExtentRange(condVal)) {\r\n unionExtent(tarDimExtents[0], data.get(singleTarDim, dataIdx));\r\n }\r\n }\r\n }\r\n else {\r\n for (var dataIdx = 0; dataIdx < dataLen; dataIdx++) {\r\n for (var j = 0; j < condDimsLen; j++) {\r\n var condVal = data.get(condDims[j], dataIdx);\r\n if (condAxis.scale.isInExtentRange(condVal)) {\r\n for (var k = 0; k < tarDimsLen; k++) {\r\n unionExtent(tarDimExtents[k], data.get(tarDims[k], dataIdx));\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n each(tarDimExtents, function (tarDimExtent, i) {\r\n var dim = tarDims[i];\r\n data.setApproximateExtent(tarDimExtent, dim);\r\n var tarAxisExtent = tarAxisRecord.tarExtent = tarAxisRecord.tarExtent || initExtent();\r\n unionExtent(tarAxisExtent, tarDimExtent[0]);\r\n unionExtent(tarAxisExtent, tarDimExtent[1]);\r\n });\r\n });\r\n }\r\n function shrinkAxisExtent(axisRecordMap) {\r\n axisRecordMap.each(function (axisRecord) {\r\n var tarAxisExtent = axisRecord.tarExtent;\r\n if (tarAxisExtent) {\r\n var rawExtentResult = axisRecord.rawExtentResult;\r\n var rawExtentInfo = axisRecord.rawExtentInfo;\r\n if (!rawExtentResult.minFixed && tarAxisExtent[0] > rawExtentResult.min) {\r\n rawExtentInfo.modifyDataMinMax('min', tarAxisExtent[0]);\r\n }\r\n if (!rawExtentResult.maxFixed && tarAxisExtent[1] < rawExtentResult.max) {\r\n rawExtentInfo.modifyDataMinMax('max', tarAxisExtent[1]);\r\n }\r\n }\r\n });\r\n }\r\n function prepareAxisRecord(axisRecordMap, axisModel) {\r\n return axisRecordMap.get(axisModel.uid)\r\n || axisRecordMap.set(axisModel.uid, { condExtent: initExtent() });\r\n }\r\n function initExtent() {\r\n return [Infinity, -Infinity];\r\n }\r\n function unionExtent(extent, val) {\r\n val < extent[0] && (extent[0] = val);\r\n val > extent[1] && (extent[1] = val);\r\n }\n\n var GridModel = (function (_super) {\r\n __extends(GridModel, _super);\r\n function GridModel() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n GridModel.type = 'grid';\r\n GridModel.dependencies = ['xAxis', 'yAxis'];\r\n GridModel.layoutMode = 'box';\r\n GridModel.defaultOption = {\r\n show: false,\r\n zlevel: 0,\r\n z: 0,\r\n left: '10%',\r\n top: 60,\r\n right: '10%',\r\n bottom: 70,\r\n containLabel: false,\r\n backgroundColor: 'rgba(0,0,0,0)',\r\n borderWidth: 1,\r\n borderColor: '#ccc'\r\n };\r\n return GridModel;\r\n }(ComponentModel));\n\n var GridView = (function (_super) {\r\n __extends(GridView, _super);\r\n function GridView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = 'grid';\r\n return _this;\r\n }\r\n GridView.prototype.render = function (gridModel, ecModel) {\r\n this.group.removeAll();\r\n if (gridModel.get('show')) {\r\n this.group.add(new Rect({\r\n shape: gridModel.coordinateSystem.getRect(),\r\n style: defaults({\r\n fill: gridModel.get('backgroundColor')\r\n }, gridModel.getItemStyle()),\r\n silent: true,\r\n z2: -1\r\n }));\r\n }\r\n };\r\n GridView.type = 'grid';\r\n return GridView;\r\n }(ComponentView));\r\n ComponentView.registerClass(GridView);\r\n ComponentModel.registerClass(GridModel);\r\n registerPreprocessor(function (option) {\r\n if (option.xAxis && option.yAxis && !option.grid) {\r\n option.grid = {};\r\n }\r\n });\n\n registerLayout(pointsLayout('line', true));\r\n registerProcessor(PRIORITY.PROCESSOR.STATISTIC, dataSample('line'));\n\n var Cartesian = (function () {\r\n function Cartesian(name) {\r\n this.type = 'cartesian';\r\n this._dimList = [];\r\n this._axes = {};\r\n this.name = name || '';\r\n }\r\n Cartesian.prototype.getAxis = function (dim) {\r\n return this._axes[dim];\r\n };\r\n Cartesian.prototype.getAxes = function () {\r\n return map(this._dimList, function (dim) {\r\n return this._axes[dim];\r\n }, this);\r\n };\r\n Cartesian.prototype.getAxesByScale = function (scaleType) {\r\n scaleType = scaleType.toLowerCase();\r\n return filter(this.getAxes(), function (axis) {\r\n return axis.scale.type === scaleType;\r\n });\r\n };\r\n Cartesian.prototype.addAxis = function (axis) {\r\n var dim = axis.dim;\r\n this._axes[dim] = axis;\r\n this._dimList.push(dim);\r\n };\r\n return Cartesian;\r\n }());\n\n var cartesian2DDimensions = ['x', 'y'];\r\n function canCalculateAffineTransform(scale) {\r\n return scale.type === 'interval' || scale.type === 'time';\r\n }\r\n var Cartesian2D = (function (_super) {\r\n __extends(Cartesian2D, _super);\r\n function Cartesian2D() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = 'cartesian2d';\r\n _this.dimensions = cartesian2DDimensions;\r\n return _this;\r\n }\r\n Cartesian2D.prototype.calcAffineTransform = function () {\r\n this._transform = this._invTransform = null;\r\n var xAxisScale = this.getAxis('x').scale;\r\n var yAxisScale = this.getAxis('y').scale;\r\n if (!canCalculateAffineTransform(xAxisScale) || !canCalculateAffineTransform(yAxisScale)) {\r\n return;\r\n }\r\n var xScaleExtent = xAxisScale.getExtent();\r\n var yScaleExtent = yAxisScale.getExtent();\r\n var start = this.dataToPoint([xScaleExtent[0], yScaleExtent[0]]);\r\n var end = this.dataToPoint([xScaleExtent[1], yScaleExtent[1]]);\r\n var xScaleSpan = xScaleExtent[1] - xScaleExtent[0];\r\n var yScaleSpan = yScaleExtent[1] - yScaleExtent[0];\r\n if (!xScaleSpan || !yScaleSpan) {\r\n return;\r\n }\r\n var scaleX = (end[0] - start[0]) / xScaleSpan;\r\n var scaleY = (end[1] - start[1]) / yScaleSpan;\r\n var translateX = start[0] - xScaleExtent[0] * scaleX;\r\n var translateY = start[1] - yScaleExtent[0] * scaleY;\r\n var m = this._transform = [scaleX, 0, 0, scaleY, translateX, translateY];\r\n this._invTransform = invert([], m);\r\n };\r\n Cartesian2D.prototype.getBaseAxis = function () {\r\n return this.getAxesByScale('ordinal')[0]\r\n || this.getAxesByScale('time')[0]\r\n || this.getAxis('x');\r\n };\r\n Cartesian2D.prototype.containPoint = function (point) {\r\n var axisX = this.getAxis('x');\r\n var axisY = this.getAxis('y');\r\n return axisX.contain(axisX.toLocalCoord(point[0]))\r\n && axisY.contain(axisY.toLocalCoord(point[1]));\r\n };\r\n Cartesian2D.prototype.containData = function (data) {\r\n return this.getAxis('x').containData(data[0])\r\n && this.getAxis('y').containData(data[1]);\r\n };\r\n Cartesian2D.prototype.dataToPoint = function (data, reserved, out) {\r\n out = out || [];\r\n var xVal = data[0];\r\n var yVal = data[1];\r\n if (this._transform\r\n && xVal != null\r\n && isFinite(xVal)\r\n && yVal != null\r\n && isFinite(yVal)) {\r\n return applyTransform(out, data, this._transform);\r\n }\r\n var xAxis = this.getAxis('x');\r\n var yAxis = this.getAxis('y');\r\n out[0] = xAxis.toGlobalCoord(xAxis.dataToCoord(xVal));\r\n out[1] = yAxis.toGlobalCoord(yAxis.dataToCoord(yVal));\r\n return out;\r\n };\r\n Cartesian2D.prototype.clampData = function (data, out) {\r\n var xScale = this.getAxis('x').scale;\r\n var yScale = this.getAxis('y').scale;\r\n var xAxisExtent = xScale.getExtent();\r\n var yAxisExtent = yScale.getExtent();\r\n var x = xScale.parse(data[0]);\r\n var y = yScale.parse(data[1]);\r\n out = out || [];\r\n out[0] = Math.min(Math.max(Math.min(xAxisExtent[0], xAxisExtent[1]), x), Math.max(xAxisExtent[0], xAxisExtent[1]));\r\n out[1] = Math.min(Math.max(Math.min(yAxisExtent[0], yAxisExtent[1]), y), Math.max(yAxisExtent[0], yAxisExtent[1]));\r\n return out;\r\n };\r\n Cartesian2D.prototype.pointToData = function (point, out) {\r\n out = out || [];\r\n if (this._invTransform) {\r\n return applyTransform(out, point, this._invTransform);\r\n }\r\n var xAxis = this.getAxis('x');\r\n var yAxis = this.getAxis('y');\r\n out[0] = xAxis.coordToData(xAxis.toLocalCoord(point[0]));\r\n out[1] = yAxis.coordToData(yAxis.toLocalCoord(point[1]));\r\n return out;\r\n };\r\n Cartesian2D.prototype.getOtherAxis = function (axis) {\r\n return this.getAxis(axis.dim === 'x' ? 'y' : 'x');\r\n };\r\n Cartesian2D.prototype.getArea = function () {\r\n var xExtent = this.getAxis('x').getGlobalExtent();\r\n var yExtent = this.getAxis('y').getGlobalExtent();\r\n var x = Math.min(xExtent[0], xExtent[1]);\r\n var y = Math.min(yExtent[0], yExtent[1]);\r\n var width = Math.max(xExtent[0], xExtent[1]) - x;\r\n var height = Math.max(yExtent[0], yExtent[1]) - y;\r\n return new BoundingRect(x, y, width, height);\r\n };\r\n return Cartesian2D;\r\n }(Cartesian));\n\n var Axis2D = (function (_super) {\r\n __extends(Axis2D, _super);\r\n function Axis2D(dim, scale, coordExtent, axisType, position) {\r\n var _this = _super.call(this, dim, scale, coordExtent) || this;\r\n _this.index = 0;\r\n _this.type = axisType || 'value';\r\n _this.position = position || 'bottom';\r\n return _this;\r\n }\r\n Axis2D.prototype.isHorizontal = function () {\r\n var position = this.position;\r\n return position === 'top' || position === 'bottom';\r\n };\r\n Axis2D.prototype.getGlobalExtent = function (asc) {\r\n var ret = this.getExtent();\r\n ret[0] = this.toGlobalCoord(ret[0]);\r\n ret[1] = this.toGlobalCoord(ret[1]);\r\n asc && ret[0] > ret[1] && ret.reverse();\r\n return ret;\r\n };\r\n Axis2D.prototype.pointToData = function (point, clamp) {\r\n return this.coordToData(this.toLocalCoord(point[this.dim === 'x' ? 0 : 1]), clamp);\r\n };\r\n Axis2D.prototype.setCategorySortInfo = function (info) {\r\n if (this.type !== 'category') {\r\n return false;\r\n }\r\n this.model.option.categorySortInfo = info;\r\n this.scale.setCategorySortInfo(info);\r\n };\r\n return Axis2D;\r\n }(Axis));\n\n var Grid = (function () {\r\n function Grid(gridModel, ecModel, api) {\r\n this.type = 'grid';\r\n this._coordsMap = {};\r\n this._coordsList = [];\r\n this._axesMap = {};\r\n this._axesList = [];\r\n this.axisPointerEnabled = true;\r\n this.dimensions = cartesian2DDimensions;\r\n this._initCartesian(gridModel, ecModel, api);\r\n this.model = gridModel;\r\n }\r\n Grid.prototype.getRect = function () {\r\n return this._rect;\r\n };\r\n Grid.prototype.update = function (ecModel, api) {\r\n var axesMap = this._axesMap;\r\n this._updateScale(ecModel, this.model);\r\n each(axesMap.x, function (xAxis) {\r\n niceScaleExtent(xAxis.scale, xAxis.model);\r\n });\r\n each(axesMap.y, function (yAxis) {\r\n niceScaleExtent(yAxis.scale, yAxis.model);\r\n });\r\n var onZeroRecords = {};\r\n each(axesMap.x, function (xAxis) {\r\n fixAxisOnZero(axesMap, 'y', xAxis, onZeroRecords);\r\n });\r\n each(axesMap.y, function (yAxis) {\r\n fixAxisOnZero(axesMap, 'x', yAxis, onZeroRecords);\r\n });\r\n this.resize(this.model, api);\r\n };\r\n Grid.prototype.resize = function (gridModel, api, ignoreContainLabel) {\r\n var boxLayoutParams = gridModel.getBoxLayoutParams();\r\n var isContainLabel = !ignoreContainLabel && gridModel.get('containLabel');\r\n var gridRect = getLayoutRect(boxLayoutParams, {\r\n width: api.getWidth(),\r\n height: api.getHeight()\r\n });\r\n this._rect = gridRect;\r\n var axesList = this._axesList;\r\n adjustAxes();\r\n if (isContainLabel) {\r\n each(axesList, function (axis) {\r\n if (!axis.model.get(['axisLabel', 'inside'])) {\r\n var labelUnionRect = estimateLabelUnionRect(axis);\r\n if (labelUnionRect) {\r\n var dim = axis.isHorizontal() ? 'height' : 'width';\r\n var margin = axis.model.get(['axisLabel', 'margin']);\r\n gridRect[dim] -= labelUnionRect[dim] + margin;\r\n if (axis.position === 'top') {\r\n gridRect.y += labelUnionRect.height + margin;\r\n }\r\n else if (axis.position === 'left') {\r\n gridRect.x += labelUnionRect.width + margin;\r\n }\r\n }\r\n }\r\n });\r\n adjustAxes();\r\n }\r\n each(this._coordsList, function (coord) {\r\n coord.calcAffineTransform();\r\n });\r\n function adjustAxes() {\r\n each(axesList, function (axis) {\r\n var isHorizontal = axis.isHorizontal();\r\n var extent = isHorizontal ? [0, gridRect.width] : [0, gridRect.height];\r\n var idx = axis.inverse ? 1 : 0;\r\n axis.setExtent(extent[idx], extent[1 - idx]);\r\n updateAxisTransform(axis, isHorizontal ? gridRect.x : gridRect.y);\r\n });\r\n }\r\n };\r\n Grid.prototype.getAxis = function (dim, axisIndex) {\r\n var axesMapOnDim = this._axesMap[dim];\r\n if (axesMapOnDim != null) {\r\n return axesMapOnDim[axisIndex || 0];\r\n }\r\n };\r\n Grid.prototype.getAxes = function () {\r\n return this._axesList.slice();\r\n };\r\n Grid.prototype.getCartesian = function (xAxisIndex, yAxisIndex) {\r\n if (xAxisIndex != null && yAxisIndex != null) {\r\n var key = 'x' + xAxisIndex + 'y' + yAxisIndex;\r\n return this._coordsMap[key];\r\n }\r\n if (isObject(xAxisIndex)) {\r\n yAxisIndex = xAxisIndex.yAxisIndex;\r\n xAxisIndex = xAxisIndex.xAxisIndex;\r\n }\r\n for (var i = 0, coordList = this._coordsList; i < coordList.length; i++) {\r\n if (coordList[i].getAxis('x').index === xAxisIndex\r\n || coordList[i].getAxis('y').index === yAxisIndex) {\r\n return coordList[i];\r\n }\r\n }\r\n };\r\n Grid.prototype.getCartesians = function () {\r\n return this._coordsList.slice();\r\n };\r\n Grid.prototype.convertToPixel = function (ecModel, finder, value) {\r\n var target = this._findConvertTarget(finder);\r\n return target.cartesian\r\n ? target.cartesian.dataToPoint(value)\r\n : target.axis\r\n ? target.axis.toGlobalCoord(target.axis.dataToCoord(value))\r\n : null;\r\n };\r\n Grid.prototype.convertFromPixel = function (ecModel, finder, value) {\r\n var target = this._findConvertTarget(finder);\r\n return target.cartesian\r\n ? target.cartesian.pointToData(value)\r\n : target.axis\r\n ? target.axis.coordToData(target.axis.toLocalCoord(value))\r\n : null;\r\n };\r\n Grid.prototype._findConvertTarget = function (finder) {\r\n var seriesModel = finder.seriesModel;\r\n var xAxisModel = finder.xAxisModel\r\n || (seriesModel && seriesModel.getReferringComponents('xAxis', SINGLE_REFERRING).models[0]);\r\n var yAxisModel = finder.yAxisModel\r\n || (seriesModel && seriesModel.getReferringComponents('yAxis', SINGLE_REFERRING).models[0]);\r\n var gridModel = finder.gridModel;\r\n var coordsList = this._coordsList;\r\n var cartesian;\r\n var axis;\r\n if (seriesModel) {\r\n cartesian = seriesModel.coordinateSystem;\r\n indexOf(coordsList, cartesian) < 0 && (cartesian = null);\r\n }\r\n else if (xAxisModel && yAxisModel) {\r\n cartesian = this.getCartesian(xAxisModel.componentIndex, yAxisModel.componentIndex);\r\n }\r\n else if (xAxisModel) {\r\n axis = this.getAxis('x', xAxisModel.componentIndex);\r\n }\r\n else if (yAxisModel) {\r\n axis = this.getAxis('y', yAxisModel.componentIndex);\r\n }\r\n else if (gridModel) {\r\n var grid = gridModel.coordinateSystem;\r\n if (grid === this) {\r\n cartesian = this._coordsList[0];\r\n }\r\n }\r\n return { cartesian: cartesian, axis: axis };\r\n };\r\n Grid.prototype.containPoint = function (point) {\r\n var coord = this._coordsList[0];\r\n if (coord) {\r\n return coord.containPoint(point);\r\n }\r\n };\r\n Grid.prototype._initCartesian = function (gridModel, ecModel, api) {\r\n var _this = this;\r\n var grid = this;\r\n var axisPositionUsed = {\r\n left: false,\r\n right: false,\r\n top: false,\r\n bottom: false\r\n };\r\n var axesMap = {\r\n x: {},\r\n y: {}\r\n };\r\n var axesCount = {\r\n x: 0,\r\n y: 0\r\n };\r\n ecModel.eachComponent('xAxis', createAxisCreator('x'), this);\r\n ecModel.eachComponent('yAxis', createAxisCreator('y'), this);\r\n if (!axesCount.x || !axesCount.y) {\r\n this._axesMap = {};\r\n this._axesList = [];\r\n return;\r\n }\r\n this._axesMap = axesMap;\r\n each(axesMap.x, function (xAxis, xAxisIndex) {\r\n each(axesMap.y, function (yAxis, yAxisIndex) {\r\n var key = 'x' + xAxisIndex + 'y' + yAxisIndex;\r\n var cartesian = new Cartesian2D(key);\r\n cartesian.master = _this;\r\n cartesian.model = gridModel;\r\n _this._coordsMap[key] = cartesian;\r\n _this._coordsList.push(cartesian);\r\n cartesian.addAxis(xAxis);\r\n cartesian.addAxis(yAxis);\r\n });\r\n });\r\n function createAxisCreator(dimName) {\r\n return function (axisModel, idx) {\r\n if (!isAxisUsedInTheGrid(axisModel, gridModel)) {\r\n return;\r\n }\r\n var axisPosition = axisModel.get('position');\r\n if (dimName === 'x') {\r\n if (axisPosition !== 'top' && axisPosition !== 'bottom') {\r\n axisPosition = axisPositionUsed.bottom ? 'top' : 'bottom';\r\n }\r\n }\r\n else {\r\n if (axisPosition !== 'left' && axisPosition !== 'right') {\r\n axisPosition = axisPositionUsed.left ? 'right' : 'left';\r\n }\r\n }\r\n axisPositionUsed[axisPosition] = true;\r\n var axis = new Axis2D(dimName, createScaleByModel(axisModel), [0, 0], axisModel.get('type'), axisPosition);\r\n var isCategory = axis.type === 'category';\r\n axis.onBand = isCategory && axisModel.get('boundaryGap');\r\n axis.inverse = axisModel.get('inverse');\r\n axisModel.axis = axis;\r\n axis.model = axisModel;\r\n axis.grid = grid;\r\n axis.index = idx;\r\n grid._axesList.push(axis);\r\n axesMap[dimName][idx] = axis;\r\n axesCount[dimName]++;\r\n };\r\n }\r\n };\r\n Grid.prototype._updateScale = function (ecModel, gridModel) {\r\n each(this._axesList, function (axis) {\r\n axis.scale.setExtent(Infinity, -Infinity);\r\n if (axis.type === 'category') {\r\n var categorySortInfo = axis.model.get('categorySortInfo');\r\n axis.scale.setCategorySortInfo(categorySortInfo);\r\n }\r\n });\r\n ecModel.eachSeries(function (seriesModel) {\r\n if (isCartesian2DSeries(seriesModel)) {\r\n var axesModelMap = findAxisModels(seriesModel);\r\n var xAxisModel = axesModelMap.xAxisModel;\r\n var yAxisModel = axesModelMap.yAxisModel;\r\n if (!isAxisUsedInTheGrid(xAxisModel, gridModel)\r\n || !isAxisUsedInTheGrid(yAxisModel, gridModel)) {\r\n return;\r\n }\r\n var cartesian = this.getCartesian(xAxisModel.componentIndex, yAxisModel.componentIndex);\r\n var data = seriesModel.getData();\r\n var xAxis = cartesian.getAxis('x');\r\n var yAxis = cartesian.getAxis('y');\r\n if (data.type === 'list') {\r\n unionExtent(data, xAxis);\r\n unionExtent(data, yAxis);\r\n }\r\n }\r\n }, this);\r\n function unionExtent(data, axis) {\r\n each(getDataDimensionsOnAxis(data, axis.dim), function (dim) {\r\n axis.scale.unionExtentFromData(data, dim);\r\n });\r\n }\r\n };\r\n Grid.prototype.getTooltipAxes = function (dim) {\r\n var baseAxes = [];\r\n var otherAxes = [];\r\n each(this.getCartesians(), function (cartesian) {\r\n var baseAxis = (dim != null && dim !== 'auto')\r\n ? cartesian.getAxis(dim) : cartesian.getBaseAxis();\r\n var otherAxis = cartesian.getOtherAxis(baseAxis);\r\n indexOf(baseAxes, baseAxis) < 0 && baseAxes.push(baseAxis);\r\n indexOf(otherAxes, otherAxis) < 0 && otherAxes.push(otherAxis);\r\n });\r\n return { baseAxes: baseAxes, otherAxes: otherAxes };\r\n };\r\n Grid.create = function (ecModel, api) {\r\n var grids = [];\r\n ecModel.eachComponent('grid', function (gridModel, idx) {\r\n var grid = new Grid(gridModel, ecModel, api);\r\n grid.name = 'grid_' + idx;\r\n grid.resize(gridModel, api, true);\r\n gridModel.coordinateSystem = grid;\r\n grids.push(grid);\r\n });\r\n ecModel.eachSeries(function (seriesModel) {\r\n if (!isCartesian2DSeries(seriesModel)) {\r\n return;\r\n }\r\n var axesModelMap = findAxisModels(seriesModel);\r\n var xAxisModel = axesModelMap.xAxisModel;\r\n var yAxisModel = axesModelMap.yAxisModel;\r\n var gridModel = xAxisModel.getCoordSysModel();\r\n if (__DEV__) {\r\n if (!gridModel) {\r\n throw new Error('Grid \"' + retrieve3(xAxisModel.get('gridIndex'), xAxisModel.get('gridId'), 0) + '\" not found');\r\n }\r\n if (xAxisModel.getCoordSysModel() !== yAxisModel.getCoordSysModel()) {\r\n throw new Error('xAxis and yAxis must use the same grid');\r\n }\r\n }\r\n var grid = gridModel.coordinateSystem;\r\n seriesModel.coordinateSystem = grid.getCartesian(xAxisModel.componentIndex, yAxisModel.componentIndex);\r\n });\r\n return grids;\r\n };\r\n Grid.dimensions = cartesian2DDimensions;\r\n return Grid;\r\n }());\r\n function isAxisUsedInTheGrid(axisModel, gridModel) {\r\n return axisModel.getCoordSysModel() === gridModel;\r\n }\r\n function fixAxisOnZero(axesMap, otherAxisDim, axis, onZeroRecords) {\r\n axis.getAxesOnZeroOf = function () {\r\n return otherAxisOnZeroOf ? [otherAxisOnZeroOf] : [];\r\n };\r\n var otherAxes = axesMap[otherAxisDim];\r\n var otherAxisOnZeroOf;\r\n var axisModel = axis.model;\r\n var onZero = axisModel.get(['axisLine', 'onZero']);\r\n var onZeroAxisIndex = axisModel.get(['axisLine', 'onZeroAxisIndex']);\r\n if (!onZero) {\r\n return;\r\n }\r\n if (onZeroAxisIndex != null) {\r\n if (canOnZeroToAxis(otherAxes[onZeroAxisIndex])) {\r\n otherAxisOnZeroOf = otherAxes[onZeroAxisIndex];\r\n }\r\n }\r\n else {\r\n for (var idx in otherAxes) {\r\n if (otherAxes.hasOwnProperty(idx)\r\n && canOnZeroToAxis(otherAxes[idx])\r\n && !onZeroRecords[getOnZeroRecordKey(otherAxes[idx])]) {\r\n otherAxisOnZeroOf = otherAxes[idx];\r\n break;\r\n }\r\n }\r\n }\r\n if (otherAxisOnZeroOf) {\r\n onZeroRecords[getOnZeroRecordKey(otherAxisOnZeroOf)] = true;\r\n }\r\n function getOnZeroRecordKey(axis) {\r\n return axis.dim + '_' + axis.index;\r\n }\r\n }\r\n function canOnZeroToAxis(axis) {\r\n return axis && axis.type !== 'category' && axis.type !== 'time' && ifAxisCrossZero(axis);\r\n }\r\n function updateAxisTransform(axis, coordBase) {\r\n var axisExtent = axis.getExtent();\r\n var axisExtentSum = axisExtent[0] + axisExtent[1];\r\n axis.toGlobalCoord = axis.dim === 'x'\r\n ? function (coord) {\r\n return coord + coordBase;\r\n }\r\n : function (coord) {\r\n return axisExtentSum - coord + coordBase;\r\n };\r\n axis.toLocalCoord = axis.dim === 'x'\r\n ? function (coord) {\r\n return coord - coordBase;\r\n }\r\n : function (coord) {\r\n return axisExtentSum - coord + coordBase;\r\n };\r\n }\r\n CoordinateSystemManager.register('cartesian2d', Grid);\n\n var BaseBarSeriesModel = (function (_super) {\r\n __extends(BaseBarSeriesModel, _super);\r\n function BaseBarSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = BaseBarSeriesModel.type;\r\n return _this;\r\n }\r\n BaseBarSeriesModel.prototype.getInitialData = function (option, ecModel) {\r\n return createListFromArray(this.getSource(), this, { useEncodeDefaulter: true });\r\n };\r\n BaseBarSeriesModel.prototype.getMarkerPosition = function (value) {\r\n var coordSys = this.coordinateSystem;\r\n if (coordSys) {\r\n var pt = coordSys.dataToPoint(coordSys.clampData(value));\r\n var data = this.getData();\r\n var offset = data.getLayout('offset');\r\n var size = data.getLayout('size');\r\n var offsetIndex = coordSys.getBaseAxis().isHorizontal() ? 0 : 1;\r\n pt[offsetIndex] += offset + size / 2;\r\n return pt;\r\n }\r\n return [NaN, NaN];\r\n };\r\n BaseBarSeriesModel.type = 'series.__base_bar__';\r\n BaseBarSeriesModel.defaultOption = {\r\n zlevel: 0,\r\n z: 2,\r\n coordinateSystem: 'cartesian2d',\r\n legendHoverLink: true,\r\n barMinHeight: 0,\r\n barMinAngle: 0,\r\n large: false,\r\n largeThreshold: 400,\r\n progressive: 3e3,\r\n progressiveChunkMode: 'mod'\r\n };\r\n return BaseBarSeriesModel;\r\n }(SeriesModel));\r\n SeriesModel.registerClass(BaseBarSeriesModel);\n\n var BarSeriesModel = (function (_super) {\r\n __extends(BarSeriesModel, _super);\r\n function BarSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = BarSeriesModel.type;\r\n return _this;\r\n }\r\n BarSeriesModel.prototype.getProgressive = function () {\r\n return this.get('large')\r\n ? this.get('progressive')\r\n : false;\r\n };\r\n BarSeriesModel.prototype.getProgressiveThreshold = function () {\r\n var progressiveThreshold = this.get('progressiveThreshold');\r\n var largeThreshold = this.get('largeThreshold');\r\n if (largeThreshold > progressiveThreshold) {\r\n progressiveThreshold = largeThreshold;\r\n }\r\n return progressiveThreshold;\r\n };\r\n BarSeriesModel.prototype.brushSelector = function (dataIndex, data, selectors) {\r\n return selectors.rect(data.getItemLayout(dataIndex));\r\n };\r\n BarSeriesModel.type = 'series.bar';\r\n BarSeriesModel.dependencies = ['grid', 'polar'];\r\n BarSeriesModel.defaultOption = inheritDefaultOption(BaseBarSeriesModel.defaultOption, {\r\n clip: true,\r\n roundCap: false,\r\n showBackground: false,\r\n backgroundStyle: {\r\n color: 'rgba(180, 180, 180, 0.2)',\r\n borderColor: null,\r\n borderWidth: 0,\r\n borderType: 'solid',\r\n borderRadius: 0,\r\n shadowBlur: 0,\r\n shadowColor: null,\r\n shadowOffsetX: 0,\r\n shadowOffsetY: 0,\r\n opacity: 1\r\n },\r\n select: {\r\n itemStyle: {\r\n borderColor: '#212121'\r\n }\r\n },\r\n realtimeSort: false\r\n });\r\n return BarSeriesModel;\r\n }(BaseBarSeriesModel));\r\n SeriesModel.registerClass(BarSeriesModel);\n\n var SausageShape = (function () {\r\n function SausageShape() {\r\n this.cx = 0;\r\n this.cy = 0;\r\n this.r0 = 0;\r\n this.r = 0;\r\n this.startAngle = 0;\r\n this.endAngle = Math.PI * 2;\r\n this.clockwise = true;\r\n }\r\n return SausageShape;\r\n }());\r\n var SausagePath = (function (_super) {\r\n __extends(SausagePath, _super);\r\n function SausagePath(opts) {\r\n var _this = _super.call(this, opts) || this;\r\n _this.type = 'sausage';\r\n return _this;\r\n }\r\n SausagePath.prototype.getDefaultShape = function () {\r\n return new SausageShape();\r\n };\r\n SausagePath.prototype.buildPath = function (ctx, shape) {\r\n var x = shape.cx;\r\n var y = shape.cy;\r\n var r0 = Math.max(shape.r0 || 0, 0);\r\n var r = Math.max(shape.r, 0);\r\n var dr = (r - r0) * 0.5;\r\n var rCenter = r0 + dr;\r\n var startAngle = shape.startAngle;\r\n var endAngle = shape.endAngle;\r\n var clockwise = shape.clockwise;\r\n var unitStartX = Math.cos(startAngle);\r\n var unitStartY = Math.sin(startAngle);\r\n var unitEndX = Math.cos(endAngle);\r\n var unitEndY = Math.sin(endAngle);\r\n var lessThanCircle = clockwise\r\n ? endAngle - startAngle < Math.PI * 2\r\n : startAngle - endAngle < Math.PI * 2;\r\n if (lessThanCircle) {\r\n ctx.moveTo(unitStartX * r0 + x, unitStartY * r0 + y);\r\n ctx.arc(unitStartX * rCenter + x, unitStartY * rCenter + y, dr, -Math.PI + startAngle, startAngle, !clockwise);\r\n }\r\n ctx.arc(x, y, r, startAngle, endAngle, !clockwise);\r\n ctx.moveTo(unitEndX * r + x, unitEndY * r + y);\r\n ctx.arc(unitEndX * rCenter + x, unitEndY * rCenter + y, dr, endAngle - Math.PI * 2, endAngle - Math.PI, !clockwise);\r\n if (r0 !== 0) {\r\n ctx.arc(x, y, r0, endAngle, startAngle, clockwise);\r\n ctx.moveTo(unitStartX * r0 + x, unitEndY * r0 + y);\r\n }\r\n ctx.closePath();\r\n };\r\n return SausagePath;\r\n }(Path));\n\n var BAR_BORDER_WIDTH_QUERY = ['itemStyle', 'borderWidth'];\r\n var BAR_BORDER_RADIUS_QUERY = ['itemStyle', 'borderRadius'];\r\n var _eventPos = [0, 0];\r\n var mathMax$6 = Math.max;\r\n var mathMin$6 = Math.min;\r\n function getClipArea(coord, data) {\r\n var coordSysClipArea = coord.getArea && coord.getArea();\r\n if (isCoordinateSystemType(coord, 'cartesian2d')) {\r\n var baseAxis = coord.getBaseAxis();\r\n if (baseAxis.type !== 'category' || !baseAxis.onBand) {\r\n var expandWidth = data.getLayout('bandWidth');\r\n if (baseAxis.isHorizontal()) {\r\n coordSysClipArea.x -= expandWidth;\r\n coordSysClipArea.width += expandWidth * 2;\r\n }\r\n else {\r\n coordSysClipArea.y -= expandWidth;\r\n coordSysClipArea.height += expandWidth * 2;\r\n }\r\n }\r\n }\r\n return coordSysClipArea;\r\n }\r\n var BarView = (function (_super) {\r\n __extends(BarView, _super);\r\n function BarView() {\r\n var _this = _super.call(this) || this;\r\n _this.type = BarView.type;\r\n _this._isFirstFrame = true;\r\n return _this;\r\n }\r\n BarView.prototype.render = function (seriesModel, ecModel, api, payload) {\r\n this._model = seriesModel;\r\n this.removeOnRenderedListener(api);\r\n this._updateDrawMode(seriesModel);\r\n var coordinateSystemType = seriesModel.get('coordinateSystem');\r\n if (coordinateSystemType === 'cartesian2d'\r\n || coordinateSystemType === 'polar') {\r\n this._isLargeDraw\r\n ? this._renderLarge(seriesModel, ecModel, api)\r\n : this._renderNormal(seriesModel, ecModel, api, payload);\r\n }\r\n else if (__DEV__) {\r\n console.warn('Only cartesian2d and polar supported for bar.');\r\n }\r\n };\r\n BarView.prototype.incrementalPrepareRender = function (seriesModel) {\r\n this._clear();\r\n this._updateDrawMode(seriesModel);\r\n this._updateLargeClip(seriesModel);\r\n };\r\n BarView.prototype.incrementalRender = function (params, seriesModel) {\r\n this._incrementalRenderLarge(params, seriesModel);\r\n };\r\n BarView.prototype._updateDrawMode = function (seriesModel) {\r\n var isLargeDraw = seriesModel.pipelineContext.large;\r\n if (this._isLargeDraw == null || isLargeDraw !== this._isLargeDraw) {\r\n this._isLargeDraw = isLargeDraw;\r\n this._clear();\r\n }\r\n };\r\n BarView.prototype._renderNormal = function (seriesModel, ecModel, api, payload) {\r\n var _this = this;\r\n var group = this.group;\r\n var data = seriesModel.getData();\r\n var oldData = this._data;\r\n var coord = seriesModel.coordinateSystem;\r\n var baseAxis = coord.getBaseAxis();\r\n var isHorizontalOrRadial;\r\n if (coord.type === 'cartesian2d') {\r\n isHorizontalOrRadial = baseAxis.isHorizontal();\r\n }\r\n else if (coord.type === 'polar') {\r\n isHorizontalOrRadial = baseAxis.dim === 'angle';\r\n }\r\n var animationModel = seriesModel.isAnimationEnabled() ? seriesModel : null;\r\n var axis2DModel = baseAxis.model;\r\n var realtimeSort = seriesModel.get('realtimeSort');\r\n if (realtimeSort && data.count()) {\r\n if (this._isFirstFrame) {\r\n this._initSort(data, isHorizontalOrRadial, baseAxis, api);\r\n this._isFirstFrame = false;\r\n return;\r\n }\r\n else {\r\n this._onRendered = function () {\r\n var orderMap = function (idx) {\r\n var el = data.getItemGraphicEl(idx);\r\n if (el) {\r\n var shape = el.shape;\r\n return (isHorizontalOrRadial ? shape.y + shape.height : shape.x + shape.width) || 0;\r\n }\r\n else {\r\n return 0;\r\n }\r\n };\r\n _this._updateSort(data, orderMap, baseAxis, api);\r\n };\r\n api.getZr().on('rendered', this._onRendered);\r\n }\r\n }\r\n var needsClip = seriesModel.get('clip', true) || realtimeSort;\r\n var coordSysClipArea = getClipArea(coord, data);\r\n group.removeClipPath();\r\n var roundCap = seriesModel.get('roundCap', true);\r\n var drawBackground = seriesModel.get('showBackground', true);\r\n var backgroundModel = seriesModel.getModel('backgroundStyle');\r\n var barBorderRadius = backgroundModel.get('borderRadius') || 0;\r\n var bgEls = [];\r\n var oldBgEls = this._backgroundEls;\r\n var isInitSort = payload && payload.isInitSort;\r\n var isChangeOrder = payload && payload.type === 'changeAxisOrder';\r\n function createBackground(dataIndex) {\r\n var bgLayout = getLayout[coord.type](data, dataIndex);\r\n var bgEl = createBackgroundEl(coord, isHorizontalOrRadial, bgLayout);\r\n bgEl.useStyle(backgroundModel.getItemStyle());\r\n if (coord.type === 'cartesian2d') {\r\n bgEl.setShape('r', barBorderRadius);\r\n }\r\n bgEls[dataIndex] = bgEl;\r\n return bgEl;\r\n }\r\n data.diff(oldData)\r\n .add(function (dataIndex) {\r\n var itemModel = data.getItemModel(dataIndex);\r\n var layout = getLayout[coord.type](data, dataIndex, itemModel);\r\n if (drawBackground) {\r\n createBackground(dataIndex);\r\n }\r\n if (!data.hasValue(dataIndex)) {\r\n return;\r\n }\r\n var isClipped = false;\r\n if (needsClip) {\r\n isClipped = clip[coord.type](coordSysClipArea, layout);\r\n }\r\n var el = elementCreator[coord.type](seriesModel, data, dataIndex, layout, isHorizontalOrRadial, animationModel, baseAxis.model, false, roundCap);\r\n updateStyle(el, data, dataIndex, itemModel, layout, seriesModel, isHorizontalOrRadial, coord.type === 'polar');\r\n if (isInitSort) {\r\n el.attr({ shape: layout });\r\n }\r\n else if (realtimeSort) {\r\n updateRealtimeAnimation(seriesModel, axis2DModel, animationModel, el, layout, dataIndex, isHorizontalOrRadial, false, false);\r\n }\r\n else {\r\n initProps(el, { shape: layout }, seriesModel, dataIndex);\r\n }\r\n data.setItemGraphicEl(dataIndex, el);\r\n group.add(el);\r\n el.ignore = isClipped;\r\n })\r\n .update(function (newIndex, oldIndex) {\r\n var itemModel = data.getItemModel(newIndex);\r\n var layout = getLayout[coord.type](data, newIndex, itemModel);\r\n if (drawBackground) {\r\n var bgEl = void 0;\r\n if (oldBgEls.length === 0) {\r\n bgEl = createBackground(oldIndex);\r\n }\r\n else {\r\n bgEl = oldBgEls[oldIndex];\r\n bgEl.useStyle(backgroundModel.getItemStyle());\r\n if (coord.type === 'cartesian2d') {\r\n bgEl.setShape('r', barBorderRadius);\r\n }\r\n bgEls[newIndex] = bgEl;\r\n }\r\n var bgLayout = getLayout[coord.type](data, newIndex);\r\n var shape = createBackgroundShape(isHorizontalOrRadial, bgLayout, coord);\r\n updateProps(bgEl, { shape: shape }, animationModel, newIndex);\r\n }\r\n var el = oldData.getItemGraphicEl(oldIndex);\r\n if (!data.hasValue(newIndex)) {\r\n group.remove(el);\r\n el = null;\r\n return;\r\n }\r\n var isClipped = false;\r\n if (needsClip) {\r\n isClipped = clip[coord.type](coordSysClipArea, layout);\r\n if (isClipped) {\r\n group.remove(el);\r\n }\r\n }\r\n if (!el) {\r\n el = elementCreator[coord.type](seriesModel, data, newIndex, layout, isHorizontalOrRadial, animationModel, baseAxis.model, !!el, roundCap);\r\n }\r\n if (!isChangeOrder) {\r\n updateStyle(el, data, newIndex, itemModel, layout, seriesModel, isHorizontalOrRadial, coord.type === 'polar');\r\n }\r\n if (isInitSort) {\r\n el.attr({ shape: layout });\r\n }\r\n else if (realtimeSort) {\r\n updateRealtimeAnimation(seriesModel, axis2DModel, animationModel, el, layout, newIndex, isHorizontalOrRadial, true, isChangeOrder);\r\n }\r\n else {\r\n updateProps(el, {\r\n shape: layout\r\n }, seriesModel, newIndex, null);\r\n }\r\n data.setItemGraphicEl(newIndex, el);\r\n el.ignore = isClipped;\r\n group.add(el);\r\n })\r\n .remove(function (dataIndex) {\r\n var el = oldData.getItemGraphicEl(dataIndex);\r\n el && removeElementWithFadeOut(el, seriesModel, dataIndex);\r\n })\r\n .execute();\r\n var bgGroup = this._backgroundGroup || (this._backgroundGroup = new Group());\r\n bgGroup.removeAll();\r\n for (var i = 0; i < bgEls.length; ++i) {\r\n bgGroup.add(bgEls[i]);\r\n }\r\n group.add(bgGroup);\r\n this._backgroundEls = bgEls;\r\n this._data = data;\r\n };\r\n BarView.prototype._renderLarge = function (seriesModel, ecModel, api) {\r\n this._clear();\r\n createLarge(seriesModel, this.group);\r\n this._updateLargeClip(seriesModel);\r\n };\r\n BarView.prototype._incrementalRenderLarge = function (params, seriesModel) {\r\n this._removeBackground();\r\n createLarge(seriesModel, this.group, true);\r\n };\r\n BarView.prototype._updateLargeClip = function (seriesModel) {\r\n var clipPath = seriesModel.get('clip', true)\r\n ? createClipPath(seriesModel.coordinateSystem, false, seriesModel)\r\n : null;\r\n if (clipPath) {\r\n this.group.setClipPath(clipPath);\r\n }\r\n else {\r\n this.group.removeClipPath();\r\n }\r\n };\r\n BarView.prototype._dataSort = function (data, idxMap) {\r\n var info = [];\r\n data.each(function (idx) {\r\n info.push({\r\n mappedValue: idxMap(idx),\r\n ordinalNumber: idx,\r\n beforeSortIndex: null\r\n });\r\n });\r\n info.sort(function (a, b) {\r\n return b.mappedValue - a.mappedValue;\r\n });\r\n for (var i = 0; i < info.length; ++i) {\r\n info[info[i].ordinalNumber].beforeSortIndex = i;\r\n }\r\n return map(info, function (item) {\r\n return {\r\n ordinalNumber: item.ordinalNumber,\r\n beforeSortIndex: item.beforeSortIndex\r\n };\r\n });\r\n };\r\n BarView.prototype._isDataOrderChanged = function (data, orderMap, oldOrder) {\r\n var oldCount = oldOrder ? oldOrder.length : 0;\r\n if (oldCount !== data.count()) {\r\n return true;\r\n }\r\n var lastValue = Number.MAX_VALUE;\r\n for (var i = 0; i < oldOrder.length; ++i) {\r\n var value = orderMap(oldOrder[i].ordinalNumber);\r\n if (value > lastValue) {\r\n return true;\r\n }\r\n lastValue = value;\r\n }\r\n return false;\r\n };\r\n BarView.prototype._updateSort = function (data, orderMap, baseAxis, api) {\r\n var oldOrder = baseAxis.scale.getCategorySortInfo();\r\n var isOrderChanged = this._isDataOrderChanged(data, orderMap, oldOrder);\r\n if (isOrderChanged) {\r\n var newOrder = this._dataSort(data, orderMap);\r\n var extent = baseAxis.scale.getExtent();\r\n for (var i = extent[0]; i < extent[1]; ++i) {\r\n if (!oldOrder[i] || oldOrder[i].ordinalNumber !== newOrder[i].ordinalNumber) {\r\n this.removeOnRenderedListener(api);\r\n var action = {\r\n type: 'changeAxisOrder',\r\n componentType: baseAxis.dim + 'Axis',\r\n axisId: baseAxis.index,\r\n sortInfo: newOrder\r\n };\r\n api.dispatchAction(action);\r\n break;\r\n }\r\n }\r\n }\r\n };\r\n BarView.prototype._initSort = function (data, isHorizontal, baseAxis, api) {\r\n var action = {\r\n type: 'changeAxisOrder',\r\n componentType: baseAxis.dim + 'Axis',\r\n isInitSort: true,\r\n axisId: baseAxis.index,\r\n sortInfo: this._dataSort(data, function (idx) { return parseFloat(data.get(isHorizontal ? 'y' : 'x', idx)) || 0; })\r\n };\r\n api.dispatchAction(action);\r\n };\r\n BarView.prototype.remove = function (ecModel, api) {\r\n this._clear(this._model);\r\n this.removeOnRenderedListener(api);\r\n };\r\n BarView.prototype.dispose = function (ecModel, api) {\r\n this.removeOnRenderedListener(api);\r\n };\r\n BarView.prototype.removeOnRenderedListener = function (api) {\r\n if (this._onRendered) {\r\n api.getZr().off('rendered', this._onRendered);\r\n this._onRendered = null;\r\n }\r\n };\r\n BarView.prototype._clear = function (model) {\r\n var group = this.group;\r\n var data = this._data;\r\n if (model && model.isAnimationEnabled() && data && !this._isLargeDraw) {\r\n this._removeBackground();\r\n this._backgroundEls = [];\r\n data.eachItemGraphicEl(function (el) {\r\n removeElementWithFadeOut(el, model, getECData(el).dataIndex);\r\n });\r\n }\r\n else {\r\n group.removeAll();\r\n }\r\n this._data = null;\r\n this._isFirstFrame = true;\r\n };\r\n BarView.prototype._removeBackground = function () {\r\n this.group.remove(this._backgroundGroup);\r\n this._backgroundGroup = null;\r\n };\r\n BarView.type = 'bar';\r\n return BarView;\r\n }(ChartView));\r\n var clip = {\r\n cartesian2d: function (coordSysBoundingRect, layout) {\r\n var signWidth = layout.width < 0 ? -1 : 1;\r\n var signHeight = layout.height < 0 ? -1 : 1;\r\n if (signWidth < 0) {\r\n layout.x += layout.width;\r\n layout.width = -layout.width;\r\n }\r\n if (signHeight < 0) {\r\n layout.y += layout.height;\r\n layout.height = -layout.height;\r\n }\r\n var x = mathMax$6(layout.x, coordSysBoundingRect.x);\r\n var x2 = mathMin$6(layout.x + layout.width, coordSysBoundingRect.x + coordSysBoundingRect.width);\r\n var y = mathMax$6(layout.y, coordSysBoundingRect.y);\r\n var y2 = mathMin$6(layout.y + layout.height, coordSysBoundingRect.y + coordSysBoundingRect.height);\r\n layout.x = x;\r\n layout.y = y;\r\n layout.width = x2 - x;\r\n layout.height = y2 - y;\r\n var clipped = layout.width < 0 || layout.height < 0;\r\n if (signWidth < 0) {\r\n layout.x += layout.width;\r\n layout.width = -layout.width;\r\n }\r\n if (signHeight < 0) {\r\n layout.y += layout.height;\r\n layout.height = -layout.height;\r\n }\r\n return clipped;\r\n },\r\n polar: function (coordSysClipArea, layout) {\r\n var signR = layout.r0 <= layout.r ? 1 : -1;\r\n if (signR < 0) {\r\n var tmp = layout.r;\r\n layout.r = layout.r0;\r\n layout.r0 = tmp;\r\n }\r\n var r = mathMin$6(layout.r, coordSysClipArea.r);\r\n var r0 = mathMax$6(layout.r0, coordSysClipArea.r0);\r\n layout.r = r;\r\n layout.r0 = r0;\r\n var clipped = r - r0 < 0;\r\n if (signR < 0) {\r\n var tmp = layout.r;\r\n layout.r = layout.r0;\r\n layout.r0 = tmp;\r\n }\r\n return clipped;\r\n }\r\n };\r\n var elementCreator = {\r\n cartesian2d: function (seriesModel, data, newIndex, layout, isHorizontal, animationModel, axisModel, isUpdate, roundCap) {\r\n var rect = new Rect({\r\n shape: extend({}, layout),\r\n z2: 1\r\n });\r\n rect.__dataIndex = newIndex;\r\n rect.name = 'item';\r\n if (animationModel) {\r\n var rectShape = rect.shape;\r\n var animateProperty = isHorizontal ? 'height' : 'width';\r\n rectShape[animateProperty] = 0;\r\n }\r\n return rect;\r\n },\r\n polar: function (seriesModel, data, newIndex, layout, isRadial, animationModel, axisModel, isUpdate, roundCap) {\r\n var clockwise = layout.startAngle < layout.endAngle;\r\n var ShapeClass = (!isRadial && roundCap) ? SausagePath : Sector;\r\n var sector = new ShapeClass({\r\n shape: defaults({ clockwise: clockwise }, layout),\r\n z2: 1\r\n });\r\n sector.name = 'item';\r\n if (animationModel) {\r\n var sectorShape = sector.shape;\r\n var animateProperty = isRadial ? 'r' : 'endAngle';\r\n var animateTarget = {};\r\n sectorShape[animateProperty] = isRadial ? 0 : layout.startAngle;\r\n animateTarget[animateProperty] = layout[animateProperty];\r\n (isUpdate ? updateProps : initProps)(sector, {\r\n shape: animateTarget\r\n }, animationModel);\r\n }\r\n return sector;\r\n }\r\n };\r\n function updateRealtimeAnimation(seriesModel, axisModel, animationModel, el, layout, newIndex, isHorizontal, isUpdate, isChangeOrder) {\r\n if (animationModel || axisModel) {\r\n var seriesTarget = void 0;\r\n var axisTarget = void 0;\r\n if (isHorizontal) {\r\n axisTarget = {\r\n x: layout.x,\r\n width: layout.width\r\n };\r\n seriesTarget = {\r\n y: layout.y,\r\n height: layout.height\r\n };\r\n }\r\n else {\r\n axisTarget = {\r\n y: layout.y,\r\n height: layout.height\r\n };\r\n seriesTarget = {\r\n x: layout.x,\r\n width: layout.width\r\n };\r\n }\r\n if (!isChangeOrder) {\r\n (isUpdate ? updateProps : initProps)(el, {\r\n shape: seriesTarget\r\n }, seriesModel, newIndex, null);\r\n }\r\n (isUpdate ? updateProps : initProps)(el, {\r\n shape: axisTarget\r\n }, axisModel, newIndex);\r\n }\r\n }\r\n var getLayout = {\r\n cartesian2d: function (data, dataIndex, itemModel) {\r\n var layout = data.getItemLayout(dataIndex);\r\n var fixedLineWidth = itemModel ? getLineWidth(itemModel, layout) : 0;\r\n var signX = layout.width > 0 ? 1 : -1;\r\n var signY = layout.height > 0 ? 1 : -1;\r\n return {\r\n x: layout.x + signX * fixedLineWidth / 2,\r\n y: layout.y + signY * fixedLineWidth / 2,\r\n width: layout.width - signX * fixedLineWidth,\r\n height: layout.height - signY * fixedLineWidth\r\n };\r\n },\r\n polar: function (data, dataIndex, itemModel) {\r\n var layout = data.getItemLayout(dataIndex);\r\n return {\r\n cx: layout.cx,\r\n cy: layout.cy,\r\n r0: layout.r0,\r\n r: layout.r,\r\n startAngle: layout.startAngle,\r\n endAngle: layout.endAngle\r\n };\r\n }\r\n };\r\n function isZeroOnPolar(layout) {\r\n return layout.startAngle != null\r\n && layout.endAngle != null\r\n && layout.startAngle === layout.endAngle;\r\n }\r\n function updateStyle(el, data, dataIndex, itemModel, layout, seriesModel, isHorizontal, isPolar) {\r\n var style = data.getItemVisual(dataIndex, 'style');\r\n if (!isPolar) {\r\n el.setShape('r', itemModel.get(BAR_BORDER_RADIUS_QUERY) || 0);\r\n }\r\n el.useStyle(style);\r\n var cursorStyle = itemModel.getShallow('cursor');\r\n cursorStyle && el.attr('cursor', cursorStyle);\r\n if (!isPolar) {\r\n var labelPositionOutside = isHorizontal\r\n ? (layout.height > 0 ? 'bottom' : 'top')\r\n : (layout.width > 0 ? 'left' : 'right');\r\n var labelStatesModels = getLabelStatesModels(itemModel);\r\n setLabelStyle(el, labelStatesModels, {\r\n labelFetcher: seriesModel,\r\n labelDataIndex: dataIndex,\r\n defaultText: getDefaultLabel(seriesModel.getData(), dataIndex),\r\n inheritColor: style.fill,\r\n defaultOpacity: style.opacity,\r\n defaultOutsidePosition: labelPositionOutside\r\n });\r\n var label = el.getTextContent();\r\n setLabelValueAnimation(label, labelStatesModels, seriesModel.getRawValue(dataIndex), function (value) { return getDefaultInterpolatedLabel(data, value); });\r\n }\r\n var emphasisModel = itemModel.getModel(['emphasis']);\r\n enableHoverEmphasis(el, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\r\n setStatesStylesFromModel(el, itemModel);\r\n if (isZeroOnPolar(layout)) {\r\n el.style.fill = 'none';\r\n el.style.stroke = 'none';\r\n each(el.states, function (state) {\r\n if (state.style) {\r\n state.style.fill = state.style.stroke = 'none';\r\n }\r\n });\r\n }\r\n }\r\n function getLineWidth(itemModel, rawLayout) {\r\n var lineWidth = itemModel.get(BAR_BORDER_WIDTH_QUERY) || 0;\r\n var width = isNaN(rawLayout.width) ? Number.MAX_VALUE : Math.abs(rawLayout.width);\r\n var height = isNaN(rawLayout.height) ? Number.MAX_VALUE : Math.abs(rawLayout.height);\r\n return Math.min(lineWidth, width, height);\r\n }\r\n var LagePathShape = (function () {\r\n function LagePathShape() {\r\n }\r\n return LagePathShape;\r\n }());\r\n var LargePath = (function (_super) {\r\n __extends(LargePath, _super);\r\n function LargePath(opts) {\r\n var _this = _super.call(this, opts) || this;\r\n _this.type = 'largeBar';\r\n return _this;\r\n }\r\n LargePath.prototype.getDefaultShape = function () {\r\n return new LagePathShape();\r\n };\r\n LargePath.prototype.buildPath = function (ctx, shape) {\r\n var points = shape.points;\r\n var startPoint = this.__startPoint;\r\n var baseDimIdx = this.__baseDimIdx;\r\n for (var i = 0; i < points.length; i += 2) {\r\n startPoint[baseDimIdx] = points[i + baseDimIdx];\r\n ctx.moveTo(startPoint[0], startPoint[1]);\r\n ctx.lineTo(points[i], points[i + 1]);\r\n }\r\n };\r\n return LargePath;\r\n }(Path));\r\n function createLarge(seriesModel, group, incremental) {\r\n var data = seriesModel.getData();\r\n var startPoint = [];\r\n var baseDimIdx = data.getLayout('valueAxisHorizontal') ? 1 : 0;\r\n startPoint[1 - baseDimIdx] = data.getLayout('valueAxisStart');\r\n var largeDataIndices = data.getLayout('largeDataIndices');\r\n var barWidth = data.getLayout('barWidth');\r\n var backgroundModel = seriesModel.getModel('backgroundStyle');\r\n var drawBackground = seriesModel.get('showBackground', true);\r\n if (drawBackground) {\r\n var points = data.getLayout('largeBackgroundPoints');\r\n var backgroundStartPoint = [];\r\n backgroundStartPoint[1 - baseDimIdx] = data.getLayout('backgroundStart');\r\n var bgEl = new LargePath({\r\n shape: { points: points },\r\n incremental: !!incremental,\r\n silent: true,\r\n z2: 0\r\n });\r\n bgEl.__startPoint = backgroundStartPoint;\r\n bgEl.__baseDimIdx = baseDimIdx;\r\n bgEl.__largeDataIndices = largeDataIndices;\r\n bgEl.__barWidth = barWidth;\r\n setLargeBackgroundStyle(bgEl, backgroundModel, data);\r\n group.add(bgEl);\r\n }\r\n var el = new LargePath({\r\n shape: { points: data.getLayout('largePoints') },\r\n incremental: !!incremental\r\n });\r\n el.__startPoint = startPoint;\r\n el.__baseDimIdx = baseDimIdx;\r\n el.__largeDataIndices = largeDataIndices;\r\n el.__barWidth = barWidth;\r\n group.add(el);\r\n setLargeStyle(el, seriesModel, data);\r\n getECData(el).seriesIndex = seriesModel.seriesIndex;\r\n if (!seriesModel.get('silent')) {\r\n el.on('mousedown', largePathUpdateDataIndex);\r\n el.on('mousemove', largePathUpdateDataIndex);\r\n }\r\n }\r\n var largePathUpdateDataIndex = throttle(function (event) {\r\n var largePath = this;\r\n var dataIndex = largePathFindDataIndex(largePath, event.offsetX, event.offsetY);\r\n getECData(largePath).dataIndex = dataIndex >= 0 ? dataIndex : null;\r\n }, 30, false);\r\n function largePathFindDataIndex(largePath, x, y) {\r\n var baseDimIdx = largePath.__baseDimIdx;\r\n var valueDimIdx = 1 - baseDimIdx;\r\n var points = largePath.shape.points;\r\n var largeDataIndices = largePath.__largeDataIndices;\r\n var barWidthHalf = Math.abs(largePath.__barWidth / 2);\r\n var startValueVal = largePath.__startPoint[valueDimIdx];\r\n _eventPos[0] = x;\r\n _eventPos[1] = y;\r\n var pointerBaseVal = _eventPos[baseDimIdx];\r\n var pointerValueVal = _eventPos[1 - baseDimIdx];\r\n var baseLowerBound = pointerBaseVal - barWidthHalf;\r\n var baseUpperBound = pointerBaseVal + barWidthHalf;\r\n for (var i = 0, len = points.length / 2; i < len; i++) {\r\n var ii = i * 2;\r\n var barBaseVal = points[ii + baseDimIdx];\r\n var barValueVal = points[ii + valueDimIdx];\r\n if (barBaseVal >= baseLowerBound && barBaseVal <= baseUpperBound\r\n && (startValueVal <= barValueVal\r\n ? (pointerValueVal >= startValueVal && pointerValueVal <= barValueVal)\r\n : (pointerValueVal >= barValueVal && pointerValueVal <= startValueVal))) {\r\n return largeDataIndices[i];\r\n }\r\n }\r\n return -1;\r\n }\r\n function setLargeStyle(el, seriesModel, data) {\r\n var globalStyle = data.getVisual('style');\r\n el.useStyle(extend({}, globalStyle));\r\n el.style.fill = null;\r\n el.style.stroke = globalStyle.fill;\r\n el.style.lineWidth = data.getLayout('barWidth');\r\n }\r\n function setLargeBackgroundStyle(el, backgroundModel, data) {\r\n var borderColor = backgroundModel.get('borderColor') || backgroundModel.get('color');\r\n var itemStyle = backgroundModel.getItemStyle();\r\n el.useStyle(itemStyle);\r\n el.style.fill = null;\r\n el.style.stroke = borderColor;\r\n el.style.lineWidth = data.getLayout('barWidth');\r\n }\r\n function createBackgroundShape(isHorizontalOrRadial, layout, coord) {\r\n if (isCoordinateSystemType(coord, 'cartesian2d')) {\r\n var rectShape = layout;\r\n var coordLayout = coord.getArea();\r\n return {\r\n x: isHorizontalOrRadial ? rectShape.x : coordLayout.x,\r\n y: isHorizontalOrRadial ? coordLayout.y : rectShape.y,\r\n width: isHorizontalOrRadial ? rectShape.width : coordLayout.width,\r\n height: isHorizontalOrRadial ? coordLayout.height : rectShape.height\r\n };\r\n }\r\n else {\r\n var coordLayout = coord.getArea();\r\n var sectorShape = layout;\r\n return {\r\n cx: coordLayout.cx,\r\n cy: coordLayout.cy,\r\n r0: isHorizontalOrRadial ? coordLayout.r0 : sectorShape.r0,\r\n r: isHorizontalOrRadial ? coordLayout.r : sectorShape.r,\r\n startAngle: isHorizontalOrRadial ? sectorShape.startAngle : 0,\r\n endAngle: isHorizontalOrRadial ? sectorShape.endAngle : Math.PI * 2\r\n };\r\n }\r\n }\r\n function createBackgroundEl(coord, isHorizontalOrRadial, layout) {\r\n var ElementClz = coord.type === 'polar' ? Sector : Rect;\r\n return new ElementClz({\r\n shape: createBackgroundShape(isHorizontalOrRadial, layout, coord),\r\n silent: true,\r\n z2: 0\r\n });\r\n }\r\n ChartView.registerClass(BarView);\n\n registerAction({\r\n type: 'changeAxisOrder',\r\n event: 'changeAxisOrder',\r\n update: 'update'\r\n }, function (payload, ecModel) {\r\n var componentType = payload.componentType || 'series';\r\n ecModel.eachComponent({ mainType: componentType, query: payload }, function (componentModel) {\r\n if (payload.sortInfo) {\r\n componentModel.axis.setCategorySortInfo(payload.sortInfo);\r\n }\r\n });\r\n });\n\n registerLayout(PRIORITY.VISUAL.LAYOUT, curry(layout, 'bar'));\r\n registerLayout(PRIORITY.VISUAL.PROGRESSIVE_LAYOUT, largeLayout);\r\n registerVisual({\r\n seriesType: 'bar',\r\n reset: function (seriesModel) {\r\n seriesModel.getData().setVisual('legendSymbol', 'roundRect');\r\n }\r\n });\r\n registerProcessor(PRIORITY.PROCESSOR.STATISTIC, dataSample('bar'));\n\n function createListSimply(seriesModel, opt, nameList) {\r\n opt = isArray(opt) && { coordDimensions: opt } || extend({}, opt);\r\n var source = seriesModel.getSource();\r\n var dimensionsInfo = createDimensions(source, opt);\r\n var list = new List(dimensionsInfo, seriesModel);\r\n list.initData(source, nameList);\r\n return list;\r\n }\n\n var LegendVisualProvider = (function () {\r\n function LegendVisualProvider(getDataWithEncodedVisual, getRawData) {\r\n this._getDataWithEncodedVisual = getDataWithEncodedVisual;\r\n this._getRawData = getRawData;\r\n }\r\n LegendVisualProvider.prototype.getAllNames = function () {\r\n var rawData = this._getRawData();\r\n return rawData.mapArray(rawData.getName);\r\n };\r\n LegendVisualProvider.prototype.containName = function (name) {\r\n var rawData = this._getRawData();\r\n return rawData.indexOfName(name) >= 0;\r\n };\r\n LegendVisualProvider.prototype.indexOfName = function (name) {\r\n var dataWithEncodedVisual = this._getDataWithEncodedVisual();\r\n return dataWithEncodedVisual.indexOfName(name);\r\n };\r\n LegendVisualProvider.prototype.getItemVisual = function (dataIndex, key) {\r\n var dataWithEncodedVisual = this._getDataWithEncodedVisual();\r\n return dataWithEncodedVisual.getItemVisual(dataIndex, key);\r\n };\r\n return LegendVisualProvider;\r\n }());\n\n var PieSeriesModel = (function (_super) {\r\n __extends(PieSeriesModel, _super);\r\n function PieSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.useColorPaletteOnData = true;\r\n return _this;\r\n }\r\n PieSeriesModel.prototype.init = function (option) {\r\n _super.prototype.init.apply(this, arguments);\r\n this.legendVisualProvider = new LegendVisualProvider(bind(this.getData, this), bind(this.getRawData, this));\r\n this._defaultLabelLine(option);\r\n };\r\n PieSeriesModel.prototype.mergeOption = function () {\r\n _super.prototype.mergeOption.apply(this, arguments);\r\n };\r\n PieSeriesModel.prototype.getInitialData = function () {\r\n return createListSimply(this, {\r\n coordDimensions: ['value'],\r\n encodeDefaulter: curry(makeSeriesEncodeForNameBased, this)\r\n });\r\n };\r\n PieSeriesModel.prototype.getDataParams = function (dataIndex) {\r\n var data = this.getData();\r\n var params = _super.prototype.getDataParams.call(this, dataIndex);\r\n var valueList = [];\r\n data.each(data.mapDimension('value'), function (value) {\r\n valueList.push(value);\r\n });\r\n params.percent = getPercentWithPrecision(valueList, dataIndex, data.hostModel.get('percentPrecision'));\r\n params.$vars.push('percent');\r\n return params;\r\n };\r\n PieSeriesModel.prototype._defaultLabelLine = function (option) {\r\n defaultEmphasis(option, 'labelLine', ['show']);\r\n var labelLineNormalOpt = option.labelLine;\r\n var labelLineEmphasisOpt = option.emphasis.labelLine;\r\n labelLineNormalOpt.show = labelLineNormalOpt.show\r\n && option.label.show;\r\n labelLineEmphasisOpt.show = labelLineEmphasisOpt.show\r\n && option.emphasis.label.show;\r\n };\r\n PieSeriesModel.type = 'series.pie';\r\n PieSeriesModel.defaultOption = {\r\n zlevel: 0,\r\n z: 2,\r\n legendHoverLink: true,\r\n center: ['50%', '50%'],\r\n radius: [0, '75%'],\r\n clockwise: true,\r\n startAngle: 90,\r\n minAngle: 0,\r\n minShowLabelAngle: 0,\r\n selectedOffset: 10,\r\n percentPrecision: 2,\r\n stillShowZeroSum: true,\r\n left: 0,\r\n top: 0,\r\n right: 0,\r\n bottom: 0,\r\n width: null,\r\n height: null,\r\n label: {\r\n rotate: 0,\r\n show: true,\r\n overflow: 'truncate',\r\n position: 'outer',\r\n alignTo: 'none',\r\n edgeDistance: '25%',\r\n bleedMargin: 10,\r\n distanceToLabelLine: 5\r\n },\r\n labelLine: {\r\n show: true,\r\n length: 15,\r\n length2: 15,\r\n smooth: false,\r\n minTurnAngle: 90,\r\n maxSurfaceAngle: 90,\r\n lineStyle: {\r\n width: 1,\r\n type: 'solid'\r\n }\r\n },\r\n itemStyle: {\r\n borderWidth: 1\r\n },\r\n labelLayout: {\r\n hideOverlap: true\r\n },\r\n emphasis: {\r\n scale: true,\r\n scaleSize: 5\r\n },\r\n avoidLabelOverlap: true,\r\n animationType: 'expansion',\r\n animationDuration: 1000,\r\n animationTypeUpdate: 'transition',\r\n animationEasingUpdate: 'cubicInOut',\r\n animationDurationUpdate: 500,\r\n animationEasing: 'cubicInOut'\r\n };\r\n return PieSeriesModel;\r\n }(SeriesModel));\r\n SeriesModel.registerClass(PieSeriesModel);\n\n var RADIAN = Math.PI / 180;\r\n function adjustSingleSide(list, cx, cy, r, dir, viewWidth, viewHeight, viewLeft, viewTop, farthestX) {\r\n if (list.length < 2) {\r\n return;\r\n }\r\n function recalculateXOnSemiToAlignOnEllipseCurve(semi) {\r\n var rB = semi.rB;\r\n var rB2 = rB * rB;\r\n for (var i = 0; i < semi.list.length; i++) {\r\n var item = semi.list[i];\r\n var dy = Math.abs(item.label.y - cy);\r\n var rA = r + item.len;\r\n var rA2 = rA * rA;\r\n var dx = Math.sqrt((1 - Math.abs(dy * dy / rB2)) * rA2);\r\n item.label.x = cx + (dx + item.len2) * dir;\r\n }\r\n }\r\n function recalculateX(items) {\r\n var topSemi = { list: [], maxY: 0 };\r\n var bottomSemi = { list: [], maxY: 0 };\r\n for (var i = 0; i < items.length; i++) {\r\n if (items[i].labelAlignTo !== 'none') {\r\n continue;\r\n }\r\n var item = items[i];\r\n var semi = item.label.y > cy ? bottomSemi : topSemi;\r\n var dy = Math.abs(item.label.y - cy);\r\n if (dy > semi.maxY) {\r\n var dx = item.label.x - cx - item.len2 * dir;\r\n var rA = r + item.len;\r\n var rB = dx < rA\r\n ? Math.sqrt(dy * dy / (1 - dx * dx / rA / rA))\r\n : rA;\r\n semi.rB = rB;\r\n semi.maxY = dy;\r\n }\r\n semi.list.push(item);\r\n }\r\n recalculateXOnSemiToAlignOnEllipseCurve(topSemi);\r\n recalculateXOnSemiToAlignOnEllipseCurve(bottomSemi);\r\n }\r\n var len = list.length;\r\n for (var i = 0; i < len; i++) {\r\n if (list[i].position === 'outer' && list[i].labelAlignTo === 'labelLine') {\r\n var dx = list[i].label.x - farthestX;\r\n list[i].linePoints[1][0] += dx;\r\n list[i].label.x = farthestX;\r\n }\r\n }\r\n if (shiftLayoutOnY(list, viewTop, viewTop + viewHeight)) {\r\n recalculateX(list);\r\n }\r\n }\r\n function avoidOverlap(labelLayoutList, cx, cy, r, viewWidth, viewHeight, viewLeft, viewTop) {\r\n var leftList = [];\r\n var rightList = [];\r\n var leftmostX = Number.MAX_VALUE;\r\n var rightmostX = -Number.MAX_VALUE;\r\n for (var i = 0; i < labelLayoutList.length; i++) {\r\n var label = labelLayoutList[i].label;\r\n if (isPositionCenter(labelLayoutList[i])) {\r\n continue;\r\n }\r\n if (label.x < cx) {\r\n leftmostX = Math.min(leftmostX, label.x);\r\n leftList.push(labelLayoutList[i]);\r\n }\r\n else {\r\n rightmostX = Math.max(rightmostX, label.x);\r\n rightList.push(labelLayoutList[i]);\r\n }\r\n }\r\n adjustSingleSide(rightList, cx, cy, r, 1, viewWidth, viewHeight, viewLeft, viewTop, rightmostX);\r\n adjustSingleSide(leftList, cx, cy, r, -1, viewWidth, viewHeight, viewLeft, viewTop, leftmostX);\r\n for (var i = 0; i < labelLayoutList.length; i++) {\r\n var layout = labelLayoutList[i];\r\n var label = layout.label;\r\n if (isPositionCenter(layout)) {\r\n continue;\r\n }\r\n var linePoints = layout.linePoints;\r\n if (linePoints) {\r\n var isAlignToEdge = layout.labelAlignTo === 'edge';\r\n var realTextWidth = layout.rect.width;\r\n var targetTextWidth = void 0;\r\n if (isAlignToEdge) {\r\n if (label.x < cx) {\r\n targetTextWidth = linePoints[2][0] - layout.labelDistance\r\n - viewLeft - layout.edgeDistance;\r\n }\r\n else {\r\n targetTextWidth = viewLeft + viewWidth - layout.edgeDistance\r\n - linePoints[2][0] - layout.labelDistance;\r\n }\r\n }\r\n else {\r\n if (label.x < cx) {\r\n targetTextWidth = label.x - viewLeft - layout.bleedMargin;\r\n }\r\n else {\r\n targetTextWidth = viewLeft + viewWidth - label.x - layout.bleedMargin;\r\n }\r\n }\r\n if (targetTextWidth < layout.rect.width) {\r\n layout.label.style.width = targetTextWidth;\r\n if (layout.labelAlignTo === 'edge') {\r\n realTextWidth = targetTextWidth;\r\n }\r\n }\r\n var dist = linePoints[1][0] - linePoints[2][0];\r\n if (isAlignToEdge) {\r\n if (label.x < cx) {\r\n linePoints[2][0] = viewLeft + layout.edgeDistance + realTextWidth + layout.labelDistance;\r\n }\r\n else {\r\n linePoints[2][0] = viewLeft + viewWidth - layout.edgeDistance\r\n - realTextWidth - layout.labelDistance;\r\n }\r\n }\r\n else {\r\n if (label.x < cx) {\r\n linePoints[2][0] = label.x + layout.labelDistance;\r\n }\r\n else {\r\n linePoints[2][0] = label.x - layout.labelDistance;\r\n }\r\n linePoints[1][0] = linePoints[2][0] + dist;\r\n }\r\n linePoints[1][1] = linePoints[2][1] = label.y;\r\n }\r\n }\r\n }\r\n function isPositionCenter(sectorShape) {\r\n return sectorShape.position === 'center';\r\n }\r\n function pieLabelLayout(seriesModel) {\r\n var data = seriesModel.getData();\r\n var labelLayoutList = [];\r\n var cx;\r\n var cy;\r\n var hasLabelRotate = false;\r\n var minShowLabelRadian = (seriesModel.get('minShowLabelAngle') || 0) * RADIAN;\r\n var viewRect = data.getLayout('viewRect');\r\n var r = data.getLayout('r');\r\n var viewWidth = viewRect.width;\r\n var viewLeft = viewRect.x;\r\n var viewTop = viewRect.y;\r\n var viewHeight = viewRect.height;\r\n function setNotShow(el) {\r\n el.ignore = true;\r\n }\r\n function isLabelShown(label) {\r\n if (!label.ignore) {\r\n return true;\r\n }\r\n for (var key in label.states) {\r\n if (label.states[key].ignore === false) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n data.each(function (idx) {\r\n var sector = data.getItemGraphicEl(idx);\r\n var sectorShape = sector.shape;\r\n var label = sector.getTextContent();\r\n var labelLine = sector.getTextGuideLine();\r\n var itemModel = data.getItemModel(idx);\r\n var labelModel = itemModel.getModel('label');\r\n var labelPosition = labelModel.get('position') || itemModel.get(['emphasis', 'label', 'position']);\r\n var labelDistance = labelModel.get('distanceToLabelLine');\r\n var labelAlignTo = labelModel.get('alignTo');\r\n var edgeDistance = parsePercent$2(labelModel.get('edgeDistance'), viewWidth);\r\n var bleedMargin = labelModel.get('bleedMargin');\r\n var labelLineModel = itemModel.getModel('labelLine');\r\n var labelLineLen = labelLineModel.get('length');\r\n labelLineLen = parsePercent$2(labelLineLen, viewWidth);\r\n var labelLineLen2 = labelLineModel.get('length2');\r\n labelLineLen2 = parsePercent$2(labelLineLen2, viewWidth);\r\n if (Math.abs(sectorShape.endAngle - sectorShape.startAngle) < minShowLabelRadian) {\r\n each(label.states, setNotShow);\r\n label.ignore = true;\r\n return;\r\n }\r\n if (!isLabelShown(label)) {\r\n return;\r\n }\r\n var midAngle = (sectorShape.startAngle + sectorShape.endAngle) / 2;\r\n var nx = Math.cos(midAngle);\r\n var ny = Math.sin(midAngle);\r\n var textX;\r\n var textY;\r\n var linePoints;\r\n var textAlign;\r\n cx = sectorShape.cx;\r\n cy = sectorShape.cy;\r\n var isLabelInside = labelPosition === 'inside' || labelPosition === 'inner';\r\n if (labelPosition === 'center') {\r\n textX = sectorShape.cx;\r\n textY = sectorShape.cy;\r\n textAlign = 'center';\r\n }\r\n else {\r\n var x1 = (isLabelInside ? (sectorShape.r + sectorShape.r0) / 2 * nx : sectorShape.r * nx) + cx;\r\n var y1 = (isLabelInside ? (sectorShape.r + sectorShape.r0) / 2 * ny : sectorShape.r * ny) + cy;\r\n textX = x1 + nx * 3;\r\n textY = y1 + ny * 3;\r\n if (!isLabelInside) {\r\n var x2 = x1 + nx * (labelLineLen + r - sectorShape.r);\r\n var y2 = y1 + ny * (labelLineLen + r - sectorShape.r);\r\n var x3 = x2 + ((nx < 0 ? -1 : 1) * labelLineLen2);\r\n var y3 = y2;\r\n if (labelAlignTo === 'edge') {\r\n textX = nx < 0\r\n ? viewLeft + edgeDistance\r\n : viewLeft + viewWidth - edgeDistance;\r\n }\r\n else {\r\n textX = x3 + (nx < 0 ? -labelDistance : labelDistance);\r\n }\r\n textY = y3;\r\n linePoints = [[x1, y1], [x2, y2], [x3, y3]];\r\n }\r\n textAlign = isLabelInside\r\n ? 'center'\r\n : (labelAlignTo === 'edge'\r\n ? (nx > 0 ? 'right' : 'left')\r\n : (nx > 0 ? 'left' : 'right'));\r\n }\r\n var labelRotate;\r\n var rotate = labelModel.get('rotate');\r\n if (typeof rotate === 'number') {\r\n labelRotate = rotate * (Math.PI / 180);\r\n }\r\n else {\r\n labelRotate = rotate\r\n ? (nx < 0 ? -midAngle + Math.PI : -midAngle)\r\n : 0;\r\n }\r\n hasLabelRotate = !!labelRotate;\r\n label.x = textX;\r\n label.y = textY;\r\n label.rotation = labelRotate;\r\n label.setStyle({\r\n verticalAlign: 'middle'\r\n });\r\n if (!isLabelInside) {\r\n var textRect = label.getBoundingRect().clone();\r\n textRect.applyTransform(label.getComputedTransform());\r\n var margin = (label.style.margin || 0) + 2.1;\r\n textRect.y -= margin / 2;\r\n textRect.height += margin;\r\n labelLayoutList.push({\r\n label: label,\r\n labelLine: labelLine,\r\n position: labelPosition,\r\n len: labelLineLen,\r\n len2: labelLineLen2,\r\n minTurnAngle: labelLineModel.get('minTurnAngle'),\r\n maxSurfaceAngle: labelLineModel.get('maxSurfaceAngle'),\r\n surfaceNormal: new Point(nx, ny),\r\n linePoints: linePoints,\r\n textAlign: textAlign,\r\n labelDistance: labelDistance,\r\n labelAlignTo: labelAlignTo,\r\n edgeDistance: edgeDistance,\r\n bleedMargin: bleedMargin,\r\n rect: textRect\r\n });\r\n }\r\n else {\r\n label.setStyle({\r\n align: textAlign\r\n });\r\n var selectState = label.states.select;\r\n if (selectState) {\r\n selectState.x += label.x;\r\n selectState.y += label.y;\r\n }\r\n }\r\n sector.setTextConfig({\r\n inside: isLabelInside\r\n });\r\n });\r\n if (!hasLabelRotate && seriesModel.get('avoidLabelOverlap')) {\r\n avoidOverlap(labelLayoutList, cx, cy, r, viewWidth, viewHeight, viewLeft, viewTop);\r\n }\r\n for (var i = 0; i < labelLayoutList.length; i++) {\r\n var layout = labelLayoutList[i];\r\n var label = layout.label;\r\n var labelLine = layout.labelLine;\r\n var notShowLabel = isNaN(label.x) || isNaN(label.y);\r\n if (label) {\r\n label.setStyle({\r\n align: layout.textAlign\r\n });\r\n if (notShowLabel) {\r\n each(label.states, setNotShow);\r\n label.ignore = true;\r\n }\r\n var selectState = label.states.select;\r\n if (selectState) {\r\n selectState.x += label.x;\r\n selectState.y += label.y;\r\n }\r\n }\r\n if (labelLine) {\r\n var linePoints = layout.linePoints;\r\n if (notShowLabel || !linePoints) {\r\n each(labelLine.states, setNotShow);\r\n labelLine.ignore = true;\r\n }\r\n else {\r\n limitTurnAngle(linePoints, layout.minTurnAngle);\r\n limitSurfaceAngle(linePoints, layout.surfaceNormal, layout.maxSurfaceAngle);\r\n labelLine.setShape({ points: linePoints });\r\n label.__hostTarget.textGuideLineConfig = {\r\n anchor: new Point(linePoints[0][0], linePoints[0][1])\r\n };\r\n }\r\n }\r\n }\r\n }\n\n function getSectorCornerRadius(model, shape) {\r\n var cornerRadius = model.get('borderRadius');\r\n if (cornerRadius == null) {\r\n return null;\r\n }\r\n if (!isArray(cornerRadius)) {\r\n cornerRadius = [cornerRadius, cornerRadius];\r\n }\r\n return {\r\n innerCornerRadius: parsePercent(cornerRadius[0], shape.r0),\r\n cornerRadius: parsePercent(cornerRadius[1], shape.r)\r\n };\r\n }\n\n var PiePiece = (function (_super) {\r\n __extends(PiePiece, _super);\r\n function PiePiece(data, idx, startAngle) {\r\n var _this = _super.call(this) || this;\r\n _this.z2 = 2;\r\n var polyline = new Polyline();\r\n var text = new ZRText();\r\n _this.setTextGuideLine(polyline);\r\n _this.setTextContent(text);\r\n _this.updateData(data, idx, startAngle, true);\r\n return _this;\r\n }\r\n PiePiece.prototype.updateData = function (data, idx, startAngle, firstCreate) {\r\n var sector = this;\r\n var seriesModel = data.hostModel;\r\n var itemModel = data.getItemModel(idx);\r\n var emphasisModel = itemModel.getModel('emphasis');\r\n var layout = data.getItemLayout(idx);\r\n var sectorShape = extend(getSectorCornerRadius(itemModel.getModel('itemStyle'), layout) || {}, layout);\r\n if (firstCreate) {\r\n sector.setShape(sectorShape);\r\n var animationType = seriesModel.getShallow('animationType');\r\n if (animationType === 'scale') {\r\n sector.shape.r = layout.r0;\r\n initProps(sector, {\r\n shape: {\r\n r: layout.r\r\n }\r\n }, seriesModel, idx);\r\n }\r\n else {\r\n if (startAngle != null) {\r\n sector.setShape({ startAngle: startAngle, endAngle: startAngle });\r\n initProps(sector, {\r\n shape: {\r\n startAngle: layout.startAngle,\r\n endAngle: layout.endAngle\r\n }\r\n }, seriesModel, idx);\r\n }\r\n else {\r\n sector.shape.endAngle = layout.startAngle;\r\n updateProps(sector, {\r\n shape: {\r\n endAngle: layout.endAngle\r\n }\r\n }, seriesModel, idx);\r\n }\r\n }\r\n }\r\n else {\r\n updateProps(sector, {\r\n shape: sectorShape\r\n }, seriesModel, idx);\r\n }\r\n sector.useStyle(data.getItemVisual(idx, 'style'));\r\n setStatesStylesFromModel(sector, itemModel);\r\n var midAngle = (layout.startAngle + layout.endAngle) / 2;\r\n var offset = seriesModel.get('selectedOffset');\r\n var dx = Math.cos(midAngle) * offset;\r\n var dy = Math.sin(midAngle) * offset;\r\n var cursorStyle = itemModel.getShallow('cursor');\r\n cursorStyle && sector.attr('cursor', cursorStyle);\r\n this._updateLabel(seriesModel, data, idx);\r\n sector.ensureState('emphasis').shape = __assign({ r: layout.r + (emphasisModel.get('scale')\r\n ? (emphasisModel.get('scaleSize') || 0) : 0) }, getSectorCornerRadius(emphasisModel.getModel('itemStyle'), layout));\r\n extend(sector.ensureState('select'), {\r\n x: dx,\r\n y: dy,\r\n shape: getSectorCornerRadius(itemModel.getModel(['select', 'itemStyle']), layout)\r\n });\r\n extend(sector.ensureState('blur'), {\r\n shape: getSectorCornerRadius(itemModel.getModel(['blur', 'itemStyle']), layout)\r\n });\r\n var labelLine = sector.getTextGuideLine();\r\n var labelText = sector.getTextContent();\r\n extend(labelLine.ensureState('select'), {\r\n x: dx,\r\n y: dy\r\n });\r\n extend(labelText.ensureState('select'), {\r\n x: dx,\r\n y: dy\r\n });\r\n enableHoverEmphasis(this, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\r\n };\r\n PiePiece.prototype._updateLabel = function (seriesModel, data, idx) {\r\n var sector = this;\r\n var itemModel = data.getItemModel(idx);\r\n var labelLineModel = itemModel.getModel('labelLine');\r\n var style = data.getItemVisual(idx, 'style');\r\n var visualColor = style && style.fill;\r\n var visualOpacity = style && style.opacity;\r\n setLabelStyle(sector, getLabelStatesModels(itemModel), {\r\n labelFetcher: data.hostModel,\r\n labelDataIndex: idx,\r\n inheritColor: visualColor,\r\n defaultOpacity: visualOpacity,\r\n defaultText: seriesModel.getFormattedLabel(idx, 'normal')\r\n || data.getName(idx)\r\n });\r\n var labelText = sector.getTextContent();\r\n sector.setTextConfig({\r\n position: null,\r\n rotation: null\r\n });\r\n labelText.attr({\r\n z2: 10\r\n });\r\n setLabelLineStyle(this, getLabelLineStatesModels(itemModel), {\r\n stroke: visualColor,\r\n opacity: retrieve3(labelLineModel.get(['lineStyle', 'opacity']), visualOpacity, 1)\r\n });\r\n };\r\n return PiePiece;\r\n }(Sector));\r\n var PieView = (function (_super) {\r\n __extends(PieView, _super);\r\n function PieView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.ignoreLabelLineUpdate = true;\r\n return _this;\r\n }\r\n PieView.prototype.init = function () {\r\n var sectorGroup = new Group();\r\n this._sectorGroup = sectorGroup;\r\n };\r\n PieView.prototype.render = function (seriesModel, ecModel, api, payload) {\r\n var data = seriesModel.getData();\r\n var oldData = this._data;\r\n var group = this.group;\r\n var startAngle;\r\n if (!oldData && data.count() > 0) {\r\n var shape = data.getItemLayout(0);\r\n for (var s = 1; isNaN(shape && shape.startAngle) && s < data.count(); ++s) {\r\n shape = data.getItemLayout(s);\r\n }\r\n if (shape) {\r\n startAngle = shape.startAngle;\r\n }\r\n }\r\n data.diff(oldData)\r\n .add(function (idx) {\r\n var piePiece = new PiePiece(data, idx, startAngle);\r\n data.setItemGraphicEl(idx, piePiece);\r\n group.add(piePiece);\r\n })\r\n .update(function (newIdx, oldIdx) {\r\n var piePiece = oldData.getItemGraphicEl(oldIdx);\r\n piePiece.updateData(data, newIdx, startAngle);\r\n piePiece.off('click');\r\n group.add(piePiece);\r\n data.setItemGraphicEl(newIdx, piePiece);\r\n })\r\n .remove(function (idx) {\r\n var piePiece = oldData.getItemGraphicEl(idx);\r\n removeElementWithFadeOut(piePiece, seriesModel, idx);\r\n })\r\n .execute();\r\n pieLabelLayout(seriesModel);\r\n if (seriesModel.get('animationTypeUpdate') !== 'expansion') {\r\n this._data = data;\r\n }\r\n };\r\n PieView.prototype.dispose = function () { };\r\n PieView.prototype.containPoint = function (point, seriesModel) {\r\n var data = seriesModel.getData();\r\n var itemLayout = data.getItemLayout(0);\r\n if (itemLayout) {\r\n var dx = point[0] - itemLayout.cx;\r\n var dy = point[1] - itemLayout.cy;\r\n var radius = Math.sqrt(dx * dx + dy * dy);\r\n return radius <= itemLayout.r && radius >= itemLayout.r0;\r\n }\r\n };\r\n PieView.type = 'pie';\r\n return PieView;\r\n }(ChartView));\r\n ChartView.registerClass(PieView);\n\n var PI2$8 = 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$8;\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$8 / 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$8 && validDataCount) {\r\n if (restAngle <= 1e-3) {\r\n var angle_1 = PI2$8 / validDataCount;\r\n data.each(valueDim, function (value, idx) {\r\n if (!isNaN(value)) {\r\n var layout_1 = data.getItemLayout(idx);\r\n layout_1.angle = angle_1;\r\n layout_1.startAngle = startAngle + dir * idx * angle_1;\r\n layout_1.endAngle = startAngle + dir * (idx + 1) * angle_1;\r\n }\r\n });\r\n }\r\n else {\r\n unitRadian = restAngle / valueSumLargerThanMinAngle;\r\n currentAngle = startAngle;\r\n data.each(valueDim, function (value, idx) {\r\n if (!isNaN(value)) {\r\n var layout_2 = data.getItemLayout(idx);\r\n var angle = layout_2.angle === minAngle\r\n ? minAngle : value * unitRadian;\r\n layout_2.startAngle = currentAngle;\r\n layout_2.endAngle = currentAngle + dir * angle;\r\n currentAngle += dir * angle;\r\n }\r\n });\r\n }\r\n }\r\n });\r\n }\n\n function dataFilter(seriesType) {\r\n return {\r\n seriesType: seriesType,\r\n reset: function (seriesModel, ecModel) {\r\n var legendModels = ecModel.findComponents({\r\n mainType: 'legend'\r\n });\r\n if (!legendModels || !legendModels.length) {\r\n return;\r\n }\r\n var data = seriesModel.getData();\r\n data.filterSelf(function (idx) {\r\n var name = data.getName(idx);\r\n for (var i = 0; i < legendModels.length; i++) {\r\n if (!legendModels[i].isSelected(name)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n });\r\n }\r\n };\r\n }\n\n createLegacyDataSelectAction('pie', registerAction);\r\n registerLayout(curry(pieLayout, 'pie'));\r\n registerProcessor(dataFilter('pie'));\n\n var ScatterSeriesModel = (function (_super) {\r\n __extends(ScatterSeriesModel, _super);\r\n function ScatterSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = ScatterSeriesModel.type;\r\n _this.hasSymbolVisual = true;\r\n return _this;\r\n }\r\n ScatterSeriesModel.prototype.getInitialData = function (option, ecModel) {\r\n return createListFromArray(this.getSource(), this, {\r\n useEncodeDefaulter: true\r\n });\r\n };\r\n ScatterSeriesModel.prototype.getProgressive = function () {\r\n var progressive = this.option.progressive;\r\n if (progressive == null) {\r\n return this.option.large ? 5e3 : this.get('progressive');\r\n }\r\n return progressive;\r\n };\r\n ScatterSeriesModel.prototype.getProgressiveThreshold = function () {\r\n var progressiveThreshold = this.option.progressiveThreshold;\r\n if (progressiveThreshold == null) {\r\n return this.option.large ? 1e4 : this.get('progressiveThreshold');\r\n }\r\n return progressiveThreshold;\r\n };\r\n ScatterSeriesModel.prototype.brushSelector = function (dataIndex, data, selectors) {\r\n return selectors.point(data.getItemLayout(dataIndex));\r\n };\r\n ScatterSeriesModel.type = 'series.scatter';\r\n ScatterSeriesModel.dependencies = ['grid', 'polar', 'geo', 'singleAxis', 'calendar'];\r\n ScatterSeriesModel.defaultOption = {\r\n coordinateSystem: 'cartesian2d',\r\n zlevel: 0,\r\n z: 2,\r\n legendHoverLink: true,\r\n symbolSize: 10,\r\n large: false,\r\n largeThreshold: 2000,\r\n itemStyle: {\r\n opacity: 0.8\r\n },\r\n emphasis: {\r\n scale: true\r\n },\r\n clip: true,\r\n select: {\r\n itemStyle: {\r\n borderColor: '#212121'\r\n }\r\n }\r\n };\r\n return ScatterSeriesModel;\r\n }(SeriesModel));\r\n SeriesModel.registerClass(ScatterSeriesModel);\n\n var BOOST_SIZE_THRESHOLD = 4;\r\n var LargeSymbolPathShape = (function () {\r\n function LargeSymbolPathShape() {\r\n }\r\n return LargeSymbolPathShape;\r\n }());\r\n var LargeSymbolPath = (function (_super) {\r\n __extends(LargeSymbolPath, _super);\r\n function LargeSymbolPath(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n LargeSymbolPath.prototype.getDefaultShape = function () {\r\n return new LargeSymbolPathShape();\r\n };\r\n LargeSymbolPath.prototype.buildPath = function (path, shape) {\r\n var points = shape.points;\r\n var size = shape.size;\r\n var symbolProxy = this.symbolProxy;\r\n var symbolProxyShape = symbolProxy.shape;\r\n var ctx = path.getContext\r\n ? path.getContext()\r\n : path;\r\n var canBoost = ctx && size[0] < BOOST_SIZE_THRESHOLD;\r\n if (canBoost) {\r\n this._ctx = ctx;\r\n return;\r\n }\r\n this._ctx = null;\r\n for (var i = 0; i < points.length;) {\r\n var x = points[i++];\r\n var y = points[i++];\r\n if (isNaN(x) || isNaN(y)) {\r\n continue;\r\n }\r\n if (this.softClipShape && !this.softClipShape.contain(x, y)) {\r\n continue;\r\n }\r\n symbolProxyShape.x = x - size[0] / 2;\r\n symbolProxyShape.y = y - size[1] / 2;\r\n symbolProxyShape.width = size[0];\r\n symbolProxyShape.height = size[1];\r\n symbolProxy.buildPath(path, symbolProxyShape, true);\r\n }\r\n };\r\n LargeSymbolPath.prototype.afterBrush = function () {\r\n var shape = this.shape;\r\n var points = shape.points;\r\n var size = shape.size;\r\n var ctx = this._ctx;\r\n if (!ctx) {\r\n return;\r\n }\r\n for (var i = 0; i < points.length;) {\r\n var x = points[i++];\r\n var y = points[i++];\r\n if (isNaN(x) || isNaN(y)) {\r\n continue;\r\n }\r\n if (this.softClipShape && !this.softClipShape.contain(x, y)) {\r\n continue;\r\n }\r\n ctx.fillRect(x - size[0] / 2, y - size[1] / 2, size[0], size[1]);\r\n }\r\n };\r\n LargeSymbolPath.prototype.findDataIndex = function (x, y) {\r\n var shape = this.shape;\r\n var points = shape.points;\r\n var size = shape.size;\r\n var w = Math.max(size[0], 4);\r\n var h = Math.max(size[1], 4);\r\n for (var idx = points.length / 2 - 1; idx >= 0; idx--) {\r\n var i = idx * 2;\r\n var x0 = points[i] - w / 2;\r\n var y0 = points[i + 1] - h / 2;\r\n if (x >= x0 && y >= y0 && x <= x0 + w && y <= y0 + h) {\r\n return idx;\r\n }\r\n }\r\n return -1;\r\n };\r\n return LargeSymbolPath;\r\n }(Path));\r\n var LargeSymbolDraw = (function () {\r\n function LargeSymbolDraw() {\r\n this.group = new Group();\r\n }\r\n LargeSymbolDraw.prototype.isPersistent = function () {\r\n return !this._incremental;\r\n };\r\n LargeSymbolDraw.prototype.updateData = function (data, opt) {\r\n this.group.removeAll();\r\n var symbolEl = new LargeSymbolPath({\r\n rectHover: true,\r\n cursor: 'default'\r\n });\r\n symbolEl.setShape({\r\n points: data.getLayout('points')\r\n });\r\n this._setCommon(symbolEl, data, false, opt);\r\n this.group.add(symbolEl);\r\n this._incremental = null;\r\n };\r\n LargeSymbolDraw.prototype.updateLayout = function (data) {\r\n if (this._incremental) {\r\n return;\r\n }\r\n var points = data.getLayout('points');\r\n this.group.eachChild(function (child) {\r\n if (child.startIndex != null) {\r\n var len = (child.endIndex - child.startIndex) * 2;\r\n var byteOffset = child.startIndex * 4 * 2;\r\n points = new Float32Array(points.buffer, byteOffset, len);\r\n }\r\n child.setShape('points', points);\r\n });\r\n };\r\n LargeSymbolDraw.prototype.incrementalPrepareUpdate = function (data) {\r\n this.group.removeAll();\r\n this._clearIncremental();\r\n if (data.count() > 2e6) {\r\n if (!this._incremental) {\r\n this._incremental = new IncrementalDisplayble({\r\n silent: true\r\n });\r\n }\r\n this.group.add(this._incremental);\r\n }\r\n else {\r\n this._incremental = null;\r\n }\r\n };\r\n LargeSymbolDraw.prototype.incrementalUpdate = function (taskParams, data, opt) {\r\n var symbolEl;\r\n if (this._incremental) {\r\n symbolEl = new LargeSymbolPath();\r\n this._incremental.addDisplayable(symbolEl, true);\r\n }\r\n else {\r\n symbolEl = new LargeSymbolPath({\r\n rectHover: true,\r\n cursor: 'default',\r\n startIndex: taskParams.start,\r\n endIndex: taskParams.end\r\n });\r\n symbolEl.incremental = true;\r\n this.group.add(symbolEl);\r\n }\r\n symbolEl.setShape({\r\n points: data.getLayout('points')\r\n });\r\n this._setCommon(symbolEl, data, !!this._incremental, opt);\r\n };\r\n LargeSymbolDraw.prototype._setCommon = function (symbolEl, data, isIncremental, opt) {\r\n var hostModel = data.hostModel;\r\n opt = opt || {};\r\n var size = data.getVisual('symbolSize');\r\n symbolEl.setShape('size', (size instanceof Array) ? size : [size, size]);\r\n symbolEl.softClipShape = opt.clipShape || null;\r\n symbolEl.symbolProxy = createSymbol(data.getVisual('symbol'), 0, 0, 0, 0);\r\n symbolEl.setColor = symbolEl.symbolProxy.setColor;\r\n var extrudeShadow = symbolEl.shape.size[0] < BOOST_SIZE_THRESHOLD;\r\n symbolEl.useStyle(hostModel.getModel('itemStyle').getItemStyle(extrudeShadow ? ['color', 'shadowBlur', 'shadowColor'] : ['color']));\r\n var globalStyle = data.getVisual('style');\r\n var visualColor = globalStyle && globalStyle.fill;\r\n if (visualColor) {\r\n symbolEl.setColor(visualColor);\r\n }\r\n if (!isIncremental) {\r\n var ecData_1 = getECData(symbolEl);\r\n ecData_1.seriesIndex = hostModel.seriesIndex;\r\n symbolEl.on('mousemove', function (e) {\r\n ecData_1.dataIndex = null;\r\n var dataIndex = symbolEl.findDataIndex(e.offsetX, e.offsetY);\r\n if (dataIndex >= 0) {\r\n ecData_1.dataIndex = dataIndex + (symbolEl.startIndex || 0);\r\n }\r\n });\r\n }\r\n };\r\n LargeSymbolDraw.prototype.remove = function () {\r\n this._clearIncremental();\r\n this._incremental = null;\r\n this.group.removeAll();\r\n };\r\n LargeSymbolDraw.prototype._clearIncremental = function () {\r\n var incremental = this._incremental;\r\n if (incremental) {\r\n incremental.clearDisplaybles();\r\n }\r\n };\r\n return LargeSymbolDraw;\r\n }());\n\n var ScatterView = (function (_super) {\r\n __extends(ScatterView, _super);\r\n function ScatterView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = ScatterView.type;\r\n return _this;\r\n }\r\n ScatterView.prototype.render = function (seriesModel, ecModel, api) {\r\n var data = seriesModel.getData();\r\n var symbolDraw = this._updateSymbolDraw(data, seriesModel);\r\n symbolDraw.updateData(data, {\r\n clipShape: this._getClipShape(seriesModel)\r\n });\r\n this._finished = true;\r\n };\r\n ScatterView.prototype.incrementalPrepareRender = function (seriesModel, ecModel, api) {\r\n var data = seriesModel.getData();\r\n var symbolDraw = this._updateSymbolDraw(data, seriesModel);\r\n symbolDraw.incrementalPrepareUpdate(data);\r\n this._finished = false;\r\n };\r\n ScatterView.prototype.incrementalRender = function (taskParams, seriesModel, ecModel) {\r\n this._symbolDraw.incrementalUpdate(taskParams, seriesModel.getData(), {\r\n clipShape: this._getClipShape(seriesModel)\r\n });\r\n this._finished = taskParams.end === seriesModel.getData().count();\r\n };\r\n ScatterView.prototype.updateTransform = function (seriesModel, ecModel, api) {\r\n var data = seriesModel.getData();\r\n this.group.dirty();\r\n if (!this._finished || data.count() > 1e4 || !this._symbolDraw.isPersistent()) {\r\n return {\r\n update: true\r\n };\r\n }\r\n else {\r\n var res = pointsLayout('').reset(seriesModel, ecModel, api);\r\n if (res.progress) {\r\n res.progress({ start: 0, end: data.count(), count: data.count() }, data);\r\n }\r\n this._symbolDraw.updateLayout(data);\r\n }\r\n };\r\n ScatterView.prototype._getClipShape = function (seriesModel) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n var clipArea = coordSys && coordSys.getArea && coordSys.getArea();\r\n return seriesModel.get('clip', true) ? clipArea : null;\r\n };\r\n ScatterView.prototype._updateSymbolDraw = function (data, seriesModel) {\r\n var symbolDraw = this._symbolDraw;\r\n var pipelineContext = seriesModel.pipelineContext;\r\n var isLargeDraw = pipelineContext.large;\r\n if (!symbolDraw || isLargeDraw !== this._isLargeDraw) {\r\n symbolDraw && symbolDraw.remove();\r\n symbolDraw = this._symbolDraw = isLargeDraw\r\n ? new LargeSymbolDraw()\r\n : new SymbolDraw();\r\n this._isLargeDraw = isLargeDraw;\r\n this.group.removeAll();\r\n }\r\n this.group.add(symbolDraw.group);\r\n return symbolDraw;\r\n };\r\n ScatterView.prototype.remove = function (ecModel, api) {\r\n this._symbolDraw && this._symbolDraw.remove(true);\r\n this._symbolDraw = null;\r\n };\r\n ScatterView.prototype.dispose = function () { };\r\n ScatterView.type = 'scatter';\r\n return ScatterView;\r\n }(ChartView));\r\n ChartView.registerClass(ScatterView);\n\n registerLayout(pointsLayout('scatter'));\n\n var IndicatorAxis = (function (_super) {\r\n __extends(IndicatorAxis, _super);\r\n function IndicatorAxis(dim, scale, radiusExtent) {\r\n var _this = _super.call(this, dim, scale, radiusExtent) || this;\r\n _this.type = 'value';\r\n _this.angle = 0;\r\n _this.name = '';\r\n return _this;\r\n }\r\n return IndicatorAxis;\r\n }(Axis));\n\n var Radar = (function () {\r\n function Radar(radarModel, ecModel, api) {\r\n this.dimensions = [];\r\n this._model = radarModel;\r\n this._indicatorAxes = map(radarModel.getIndicatorModels(), function (indicatorModel, idx) {\r\n var dim = 'indicator_' + idx;\r\n var indicatorAxis = new IndicatorAxis(dim, new IntervalScale());\r\n indicatorAxis.name = indicatorModel.get('name');\r\n indicatorAxis.model = indicatorModel;\r\n indicatorModel.axis = indicatorAxis;\r\n this.dimensions.push(dim);\r\n return indicatorAxis;\r\n }, this);\r\n this.resize(radarModel, api);\r\n }\r\n Radar.prototype.getIndicatorAxes = function () {\r\n return this._indicatorAxes;\r\n };\r\n Radar.prototype.dataToPoint = function (value, indicatorIndex) {\r\n var indicatorAxis = this._indicatorAxes[indicatorIndex];\r\n return this.coordToPoint(indicatorAxis.dataToCoord(value), indicatorIndex);\r\n };\r\n Radar.prototype.coordToPoint = function (coord, indicatorIndex) {\r\n var indicatorAxis = this._indicatorAxes[indicatorIndex];\r\n var angle = indicatorAxis.angle;\r\n var x = this.cx + coord * Math.cos(angle);\r\n var y = this.cy - coord * Math.sin(angle);\r\n return [x, y];\r\n };\r\n Radar.prototype.pointToData = function (pt) {\r\n var dx = pt[0] - this.cx;\r\n var dy = pt[1] - this.cy;\r\n var radius = Math.sqrt(dx * dx + dy * dy);\r\n dx /= radius;\r\n dy /= radius;\r\n var radian = Math.atan2(-dy, dx);\r\n var minRadianDiff = Infinity;\r\n var closestAxis;\r\n var closestAxisIdx = -1;\r\n for (var i = 0; i < this._indicatorAxes.length; i++) {\r\n var indicatorAxis = this._indicatorAxes[i];\r\n var diff = Math.abs(radian - indicatorAxis.angle);\r\n if (diff < minRadianDiff) {\r\n closestAxis = indicatorAxis;\r\n closestAxisIdx = i;\r\n minRadianDiff = diff;\r\n }\r\n }\r\n return [closestAxisIdx, +(closestAxis && closestAxis.coordToData(radius))];\r\n };\r\n Radar.prototype.resize = function (radarModel, api) {\r\n var center = radarModel.get('center');\r\n var viewWidth = api.getWidth();\r\n var viewHeight = api.getHeight();\r\n var viewSize = Math.min(viewWidth, viewHeight) / 2;\r\n this.cx = parsePercent$2(center[0], viewWidth);\r\n this.cy = parsePercent$2(center[1], viewHeight);\r\n this.startAngle = radarModel.get('startAngle') * Math.PI / 180;\r\n var radius = radarModel.get('radius');\r\n if (typeof radius === 'string' || typeof radius === 'number') {\r\n radius = [0, radius];\r\n }\r\n this.r0 = parsePercent$2(radius[0], viewSize);\r\n this.r = parsePercent$2(radius[1], viewSize);\r\n each(this._indicatorAxes, function (indicatorAxis, idx) {\r\n indicatorAxis.setExtent(this.r0, this.r);\r\n var angle = (this.startAngle + idx * Math.PI * 2 / this._indicatorAxes.length);\r\n angle = Math.atan2(Math.sin(angle), Math.cos(angle));\r\n indicatorAxis.angle = angle;\r\n }, this);\r\n };\r\n Radar.prototype.update = function (ecModel, api) {\r\n var indicatorAxes = this._indicatorAxes;\r\n var radarModel = this._model;\r\n each(indicatorAxes, function (indicatorAxis) {\r\n indicatorAxis.scale.setExtent(Infinity, -Infinity);\r\n });\r\n ecModel.eachSeriesByType('radar', function (radarSeries, idx) {\r\n if (radarSeries.get('coordinateSystem') !== 'radar'\r\n || ecModel.getComponent('radar', radarSeries.get('radarIndex')) !== radarModel) {\r\n return;\r\n }\r\n var data = radarSeries.getData();\r\n each(indicatorAxes, function (indicatorAxis) {\r\n indicatorAxis.scale.unionExtentFromData(data, data.mapDimension(indicatorAxis.dim));\r\n });\r\n }, this);\r\n var splitNumber = radarModel.get('splitNumber');\r\n function increaseInterval(interval) {\r\n var exp10 = Math.pow(10, Math.floor(Math.log(interval) / Math.LN10));\r\n var f = interval / exp10;\r\n if (f === 2) {\r\n f = 5;\r\n }\r\n else {\r\n f *= 2;\r\n }\r\n return f * exp10;\r\n }\r\n each(indicatorAxes, function (indicatorAxis, idx) {\r\n var rawExtent = getScaleExtent(indicatorAxis.scale, indicatorAxis.model).extent;\r\n niceScaleExtent(indicatorAxis.scale, indicatorAxis.model);\r\n var axisModel = indicatorAxis.model;\r\n var scale = indicatorAxis.scale;\r\n var fixedMin = parseAxisModelMinMax(scale, axisModel.get('min', true));\r\n var fixedMax = parseAxisModelMinMax(scale, axisModel.get('max', true));\r\n var interval = scale.getInterval();\r\n if (fixedMin != null && fixedMax != null) {\r\n scale.setExtent(+fixedMin, +fixedMax);\r\n scale.setInterval((fixedMax - fixedMin) / splitNumber);\r\n }\r\n else if (fixedMin != null) {\r\n var max = void 0;\r\n do {\r\n max = fixedMin + interval * splitNumber;\r\n scale.setExtent(+fixedMin, max);\r\n scale.setInterval(interval);\r\n interval = increaseInterval(interval);\r\n } while (max < rawExtent[1] && isFinite(max) && isFinite(rawExtent[1]));\r\n }\r\n else if (fixedMax != null) {\r\n var min = void 0;\r\n do {\r\n min = fixedMax - interval * splitNumber;\r\n scale.setExtent(min, +fixedMax);\r\n scale.setInterval(interval);\r\n interval = increaseInterval(interval);\r\n } while (min > rawExtent[0] && isFinite(min) && isFinite(rawExtent[0]));\r\n }\r\n else {\r\n var nicedSplitNumber = scale.getTicks().length - 1;\r\n if (nicedSplitNumber > splitNumber) {\r\n interval = increaseInterval(interval);\r\n }\r\n var max = Math.ceil(rawExtent[1] / interval) * interval;\r\n var min = round$1(max - interval * splitNumber);\r\n scale.setExtent(min, max);\r\n scale.setInterval(interval);\r\n }\r\n });\r\n };\r\n Radar.prototype.convertToPixel = function (ecModel, finder, value) {\r\n console.warn('Not implemented.');\r\n return null;\r\n };\r\n Radar.prototype.convertFromPixel = function (ecModel, finder, pixel) {\r\n console.warn('Not implemented.');\r\n return null;\r\n };\r\n Radar.prototype.containPoint = function (point) {\r\n console.warn('Not implemented.');\r\n return false;\r\n };\r\n Radar.create = function (ecModel, api) {\r\n var radarList = [];\r\n ecModel.eachComponent('radar', function (radarModel) {\r\n var radar = new Radar(radarModel, ecModel, api);\r\n radarList.push(radar);\r\n radarModel.coordinateSystem = radar;\r\n });\r\n ecModel.eachSeriesByType('radar', function (radarSeries) {\r\n if (radarSeries.get('coordinateSystem') === 'radar') {\r\n radarSeries.coordinateSystem = radarList[radarSeries.get('radarIndex') || 0];\r\n }\r\n });\r\n return radarList;\r\n };\r\n Radar.dimensions = [];\r\n return Radar;\r\n }());\r\n CoordinateSystemManager.register('radar', Radar);\n\n var valueAxisDefault = axisDefault.value;\r\n function defaultsShow(opt, show) {\r\n return defaults({\r\n show: show\r\n }, opt);\r\n }\r\n var RadarModel = (function (_super) {\r\n __extends(RadarModel, _super);\r\n function RadarModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = RadarModel.type;\r\n return _this;\r\n }\r\n RadarModel.prototype.optionUpdated = function () {\r\n var boundaryGap = this.get('boundaryGap');\r\n var splitNumber = this.get('splitNumber');\r\n var scale = this.get('scale');\r\n var axisLine = this.get('axisLine');\r\n var axisTick = this.get('axisTick');\r\n var axisLabel = this.get('axisLabel');\r\n var nameTextStyle = this.get('axisName');\r\n var showName = this.get(['axisName', 'show']);\r\n var nameFormatter = this.get(['axisName', 'formatter']);\r\n var nameGap = this.get('axisNameGap');\r\n var triggerEvent = this.get('triggerEvent');\r\n var indicatorModels = map(this.get('indicator') || [], function (indicatorOpt) {\r\n if (indicatorOpt.max != null && indicatorOpt.max > 0 && !indicatorOpt.min) {\r\n indicatorOpt.min = 0;\r\n }\r\n else if (indicatorOpt.min != null && indicatorOpt.min < 0 && !indicatorOpt.max) {\r\n indicatorOpt.max = 0;\r\n }\r\n var iNameTextStyle = nameTextStyle;\r\n if (indicatorOpt.color != null) {\r\n iNameTextStyle = defaults({\r\n color: indicatorOpt.color\r\n }, nameTextStyle);\r\n }\r\n var innerIndicatorOpt = merge(clone(indicatorOpt), {\r\n boundaryGap: boundaryGap,\r\n splitNumber: splitNumber,\r\n scale: scale,\r\n axisLine: axisLine,\r\n axisTick: axisTick,\r\n axisLabel: axisLabel,\r\n name: indicatorOpt.text,\r\n nameLocation: 'end',\r\n nameGap: nameGap,\r\n nameTextStyle: iNameTextStyle,\r\n triggerEvent: triggerEvent\r\n }, false);\r\n if (!showName) {\r\n innerIndicatorOpt.name = '';\r\n }\r\n if (typeof nameFormatter === 'string') {\r\n var indName = innerIndicatorOpt.name;\r\n innerIndicatorOpt.name = nameFormatter.replace('{value}', indName != null ? indName : '');\r\n }\r\n else if (typeof nameFormatter === 'function') {\r\n innerIndicatorOpt.name = nameFormatter(innerIndicatorOpt.name, innerIndicatorOpt);\r\n }\r\n var model = new Model(innerIndicatorOpt, null, this.ecModel);\r\n mixin(model, AxisModelCommonMixin.prototype);\r\n model.mainType = 'radar';\r\n model.componentIndex = this.componentIndex;\r\n return model;\r\n }, this);\r\n this._indicatorModels = indicatorModels;\r\n };\r\n RadarModel.prototype.getIndicatorModels = function () {\r\n return this._indicatorModels;\r\n };\r\n RadarModel.type = 'radar';\r\n RadarModel.defaultOption = {\r\n zlevel: 0,\r\n z: 0,\r\n center: ['50%', '50%'],\r\n radius: '75%',\r\n startAngle: 90,\r\n axisName: {\r\n show: true\r\n },\r\n boundaryGap: [0, 0],\r\n splitNumber: 5,\r\n axisNameGap: 15,\r\n scale: false,\r\n shape: 'polygon',\r\n axisLine: merge({\r\n lineStyle: {\r\n color: '#bbb'\r\n }\r\n }, valueAxisDefault.axisLine),\r\n axisLabel: defaultsShow(valueAxisDefault.axisLabel, false),\r\n axisTick: defaultsShow(valueAxisDefault.axisTick, false),\r\n splitLine: defaultsShow(valueAxisDefault.splitLine, true),\r\n splitArea: defaultsShow(valueAxisDefault.splitArea, true),\r\n indicator: []\r\n };\r\n return RadarModel;\r\n }(ComponentModel));\r\n ComponentModel.registerClass(RadarModel);\n\n var axisBuilderAttrs$1 = [\r\n 'axisLine', 'axisTickLabel', 'axisName'\r\n ];\r\n var RadarView = (function (_super) {\r\n __extends(RadarView, _super);\r\n function RadarView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = RadarView.type;\r\n return _this;\r\n }\r\n RadarView.prototype.render = function (radarModel, ecModel, api) {\r\n var group = this.group;\r\n group.removeAll();\r\n this._buildAxes(radarModel);\r\n this._buildSplitLineAndArea(radarModel);\r\n };\r\n RadarView.prototype._buildAxes = function (radarModel) {\r\n var radar = radarModel.coordinateSystem;\r\n var indicatorAxes = radar.getIndicatorAxes();\r\n var axisBuilders = map(indicatorAxes, function (indicatorAxis) {\r\n var axisBuilder = new AxisBuilder(indicatorAxis.model, {\r\n position: [radar.cx, radar.cy],\r\n rotation: indicatorAxis.angle,\r\n labelDirection: -1,\r\n tickDirection: -1,\r\n nameDirection: 1\r\n });\r\n return axisBuilder;\r\n });\r\n each(axisBuilders, function (axisBuilder) {\r\n each(axisBuilderAttrs$1, axisBuilder.add, axisBuilder);\r\n this.group.add(axisBuilder.getGroup());\r\n }, this);\r\n };\r\n RadarView.prototype._buildSplitLineAndArea = function (radarModel) {\r\n var radar = radarModel.coordinateSystem;\r\n var indicatorAxes = radar.getIndicatorAxes();\r\n if (!indicatorAxes.length) {\r\n return;\r\n }\r\n var shape = radarModel.get('shape');\r\n var splitLineModel = radarModel.getModel('splitLine');\r\n var splitAreaModel = radarModel.getModel('splitArea');\r\n var lineStyleModel = splitLineModel.getModel('lineStyle');\r\n var areaStyleModel = splitAreaModel.getModel('areaStyle');\r\n var showSplitLine = splitLineModel.get('show');\r\n var showSplitArea = splitAreaModel.get('show');\r\n var splitLineColors = lineStyleModel.get('color');\r\n var splitAreaColors = areaStyleModel.get('color');\r\n var splitLineColorsArr = isArray(splitLineColors) ? splitLineColors : [splitLineColors];\r\n var splitAreaColorsArr = isArray(splitAreaColors) ? splitAreaColors : [splitAreaColors];\r\n var splitLines = [];\r\n var splitAreas = [];\r\n function getColorIndex(areaOrLine, areaOrLineColorList, idx) {\r\n var colorIndex = idx % areaOrLineColorList.length;\r\n areaOrLine[colorIndex] = areaOrLine[colorIndex] || [];\r\n return colorIndex;\r\n }\r\n if (shape === 'circle') {\r\n var ticksRadius = indicatorAxes[0].getTicksCoords();\r\n var cx = radar.cx;\r\n var cy = radar.cy;\r\n for (var i = 0; i < ticksRadius.length; i++) {\r\n if (showSplitLine) {\r\n var colorIndex = getColorIndex(splitLines, splitLineColorsArr, i);\r\n splitLines[colorIndex].push(new Circle({\r\n shape: {\r\n cx: cx,\r\n cy: cy,\r\n r: ticksRadius[i].coord\r\n }\r\n }));\r\n }\r\n if (showSplitArea && i < ticksRadius.length - 1) {\r\n var colorIndex = getColorIndex(splitAreas, splitAreaColorsArr, i);\r\n splitAreas[colorIndex].push(new Ring({\r\n shape: {\r\n cx: cx,\r\n cy: cy,\r\n r0: ticksRadius[i].coord,\r\n r: ticksRadius[i + 1].coord\r\n }\r\n }));\r\n }\r\n }\r\n }\r\n else {\r\n var realSplitNumber_1;\r\n var axesTicksPoints = map(indicatorAxes, function (indicatorAxis, idx) {\r\n var ticksCoords = indicatorAxis.getTicksCoords();\r\n realSplitNumber_1 = realSplitNumber_1 == null\r\n ? ticksCoords.length - 1\r\n : Math.min(ticksCoords.length - 1, realSplitNumber_1);\r\n return map(ticksCoords, function (tickCoord) {\r\n return radar.coordToPoint(tickCoord.coord, idx);\r\n });\r\n });\r\n var prevPoints = [];\r\n for (var i = 0; i <= realSplitNumber_1; i++) {\r\n var points = [];\r\n for (var j = 0; j < indicatorAxes.length; j++) {\r\n points.push(axesTicksPoints[j][i]);\r\n }\r\n if (points[0]) {\r\n points.push(points[0].slice());\r\n }\r\n else {\r\n if (__DEV__) {\r\n console.error('Can\\'t draw value axis ' + i);\r\n }\r\n }\r\n if (showSplitLine) {\r\n var colorIndex = getColorIndex(splitLines, splitLineColorsArr, i);\r\n splitLines[colorIndex].push(new Polyline({\r\n shape: {\r\n points: points\r\n }\r\n }));\r\n }\r\n if (showSplitArea && prevPoints) {\r\n var colorIndex = getColorIndex(splitAreas, splitAreaColorsArr, i - 1);\r\n splitAreas[colorIndex].push(new Polygon({\r\n shape: {\r\n points: points.concat(prevPoints)\r\n }\r\n }));\r\n }\r\n prevPoints = points.slice().reverse();\r\n }\r\n }\r\n var lineStyle = lineStyleModel.getLineStyle();\r\n var areaStyle = areaStyleModel.getAreaStyle();\r\n each(splitAreas, function (splitAreas, idx) {\r\n this.group.add(mergePath$1(splitAreas, {\r\n style: defaults({\r\n stroke: 'none',\r\n fill: splitAreaColorsArr[idx % splitAreaColorsArr.length]\r\n }, areaStyle),\r\n silent: true\r\n }));\r\n }, this);\r\n each(splitLines, function (splitLines, idx) {\r\n this.group.add(mergePath$1(splitLines, {\r\n style: defaults({\r\n fill: 'none',\r\n stroke: splitLineColorsArr[idx % splitLineColorsArr.length]\r\n }, lineStyle),\r\n silent: true\r\n }));\r\n }, this);\r\n };\r\n RadarView.type = 'radar';\r\n return RadarView;\r\n }(ComponentView));\r\n ComponentView.registerClass(RadarView);\n\n var RadarSeriesModel = (function (_super) {\r\n __extends(RadarSeriesModel, _super);\r\n function RadarSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = RadarSeriesModel.type;\r\n _this.useColorPaletteOnData = true;\r\n _this.hasSymbolVisual = true;\r\n return _this;\r\n }\r\n RadarSeriesModel.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 };\r\n RadarSeriesModel.prototype.getInitialData = function (option, ecModel) {\r\n return createListSimply(this, {\r\n generateCoord: 'indicator_',\r\n generateCoordCount: Infinity\r\n });\r\n };\r\n RadarSeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\r\n var data = this.getData();\r\n var coordSys = this.coordinateSystem;\r\n var indicatorAxes = coordSys.getIndicatorAxes();\r\n var name = this.getData().getName(dataIndex);\r\n var nameToDisplay = name === '' ? this.name : name;\r\n var markerColor = retrieveVisualColorForTooltipMarker(this, dataIndex);\r\n return createTooltipMarkup('section', {\r\n header: nameToDisplay,\r\n sortBlocks: true,\r\n blocks: map(indicatorAxes, function (axis) {\r\n var val = data.get(data.mapDimension(axis.dim), dataIndex);\r\n return createTooltipMarkup('nameValue', {\r\n markerType: 'subItem',\r\n markerColor: markerColor,\r\n name: axis.name,\r\n value: val,\r\n sortParam: val\r\n });\r\n })\r\n });\r\n };\r\n RadarSeriesModel.prototype.getTooltipPosition = function (dataIndex) {\r\n if (dataIndex != null) {\r\n var data_1 = this.getData();\r\n var coordSys = this.coordinateSystem;\r\n var values = data_1.getValues(map(coordSys.dimensions, function (dim) {\r\n return data_1.mapDimension(dim);\r\n }), dataIndex);\r\n for (var i = 0, len = values.length; i < len; i++) {\r\n if (!isNaN(values[i])) {\r\n var indicatorAxes = coordSys.getIndicatorAxes();\r\n return coordSys.coordToPoint(indicatorAxes[i].dataToCoord(values[i]), i);\r\n }\r\n }\r\n }\r\n };\r\n RadarSeriesModel.type = 'series.radar';\r\n RadarSeriesModel.dependencies = ['radar'];\r\n RadarSeriesModel.defaultOption = {\r\n zlevel: 0,\r\n z: 2,\r\n coordinateSystem: 'radar',\r\n legendHoverLink: true,\r\n radarIndex: 0,\r\n lineStyle: {\r\n width: 2,\r\n type: 'solid'\r\n },\r\n label: {\r\n position: 'top'\r\n },\r\n symbol: 'emptyCircle',\r\n symbolSize: 4\r\n };\r\n return RadarSeriesModel;\r\n }(SeriesModel));\r\n SeriesModel.registerClass(RadarSeriesModel);\n\n function normalizeSymbolSize(symbolSize) {\r\n if (!isArray(symbolSize)) {\r\n symbolSize = [+symbolSize, +symbolSize];\r\n }\r\n return symbolSize;\r\n }\r\n var RadarView$1 = (function (_super) {\r\n __extends(RadarView, _super);\r\n function RadarView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = RadarView.type;\r\n return _this;\r\n }\r\n RadarView.prototype.render = function (seriesModel, ecModel, api) {\r\n var polar = seriesModel.coordinateSystem;\r\n var group = this.group;\r\n var data = seriesModel.getData();\r\n var oldData = this._data;\r\n function createSymbol$1(data, idx) {\r\n var symbolType = data.getItemVisual(idx, 'symbol') || 'circle';\r\n if (symbolType === 'none') {\r\n return;\r\n }\r\n var symbolSize = normalizeSymbolSize(data.getItemVisual(idx, 'symbolSize'));\r\n var symbolPath = createSymbol(symbolType, -1, -1, 2, 2);\r\n var symbolRotate = data.getItemVisual(idx, 'symbolRotate') || 0;\r\n symbolPath.attr({\r\n style: {\r\n strokeNoScale: true\r\n },\r\n z2: 100,\r\n scaleX: symbolSize[0] / 2,\r\n scaleY: symbolSize[1] / 2,\r\n rotation: symbolRotate * Math.PI / 180 || 0\r\n });\r\n return symbolPath;\r\n }\r\n function updateSymbols(oldPoints, newPoints, symbolGroup, data, idx, isInit) {\r\n symbolGroup.removeAll();\r\n for (var i = 0; i < newPoints.length - 1; i++) {\r\n var symbolPath = createSymbol$1(data, idx);\r\n if (symbolPath) {\r\n symbolPath.__dimIdx = i;\r\n if (oldPoints[i]) {\r\n symbolPath.setPosition(oldPoints[i]);\r\n graphic[isInit ? 'initProps' : 'updateProps'](symbolPath, {\r\n x: newPoints[i][0],\r\n y: newPoints[i][1]\r\n }, seriesModel, idx);\r\n }\r\n else {\r\n symbolPath.setPosition(newPoints[i]);\r\n }\r\n symbolGroup.add(symbolPath);\r\n }\r\n }\r\n }\r\n function getInitialPoints(points) {\r\n return map(points, function (pt) {\r\n return [polar.cx, polar.cy];\r\n });\r\n }\r\n data.diff(oldData)\r\n .add(function (idx) {\r\n var points = data.getItemLayout(idx);\r\n if (!points) {\r\n return;\r\n }\r\n var polygon = new Polygon();\r\n var polyline = new Polyline();\r\n var target = {\r\n shape: {\r\n points: points\r\n }\r\n };\r\n polygon.shape.points = getInitialPoints(points);\r\n polyline.shape.points = getInitialPoints(points);\r\n initProps(polygon, target, seriesModel, idx);\r\n initProps(polyline, target, seriesModel, idx);\r\n var itemGroup = new Group();\r\n var symbolGroup = new Group();\r\n itemGroup.add(polyline);\r\n itemGroup.add(polygon);\r\n itemGroup.add(symbolGroup);\r\n updateSymbols(polyline.shape.points, points, symbolGroup, data, idx, true);\r\n data.setItemGraphicEl(idx, itemGroup);\r\n })\r\n .update(function (newIdx, oldIdx) {\r\n var itemGroup = oldData.getItemGraphicEl(oldIdx);\r\n var polyline = itemGroup.childAt(0);\r\n var polygon = itemGroup.childAt(1);\r\n var symbolGroup = itemGroup.childAt(2);\r\n var target = {\r\n shape: {\r\n points: data.getItemLayout(newIdx)\r\n }\r\n };\r\n if (!target.shape.points) {\r\n return;\r\n }\r\n updateSymbols(polyline.shape.points, target.shape.points, symbolGroup, data, newIdx, false);\r\n updateProps(polyline, target, seriesModel);\r\n updateProps(polygon, target, seriesModel);\r\n data.setItemGraphicEl(newIdx, itemGroup);\r\n })\r\n .remove(function (idx) {\r\n group.remove(oldData.getItemGraphicEl(idx));\r\n })\r\n .execute();\r\n data.eachItemGraphicEl(function (itemGroup, idx) {\r\n var itemModel = data.getItemModel(idx);\r\n var polyline = itemGroup.childAt(0);\r\n var polygon = itemGroup.childAt(1);\r\n var symbolGroup = itemGroup.childAt(2);\r\n var itemStyle = data.getItemVisual(idx, 'style');\r\n var color = itemStyle.fill;\r\n group.add(itemGroup);\r\n polyline.useStyle(defaults(itemModel.getModel('lineStyle').getLineStyle(), {\r\n fill: 'none',\r\n stroke: color\r\n }));\r\n setStatesStylesFromModel(polyline, itemModel, 'lineStyle');\r\n setStatesStylesFromModel(polygon, itemModel, 'areaStyle');\r\n var areaStyleModel = itemModel.getModel('areaStyle');\r\n var polygonIgnore = areaStyleModel.isEmpty() && areaStyleModel.parentModel.isEmpty();\r\n polygon.ignore = polygonIgnore;\r\n each(['emphasis', 'select', 'blur'], function (stateName) {\r\n var stateModel = itemModel.getModel([stateName, 'areaStyle']);\r\n var stateIgnore = stateModel.isEmpty() && stateModel.parentModel.isEmpty();\r\n polygon.ensureState(stateName).ignore = stateIgnore && polygonIgnore;\r\n });\r\n polygon.useStyle(defaults(areaStyleModel.getAreaStyle(), {\r\n fill: color,\r\n opacity: 0.7,\r\n decal: itemStyle.decal\r\n }));\r\n var emphasisModel = itemModel.getModel('emphasis');\r\n var itemHoverStyle = emphasisModel.getModel('itemStyle').getItemStyle();\r\n symbolGroup.eachChild(function (symbolPath) {\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 }, itemStyle));\r\n }\r\n else {\r\n symbolPath.useStyle(itemStyle);\r\n symbolPath.setColor(color);\r\n }\r\n var pathEmphasisState = symbolPath.ensureState('emphasis');\r\n pathEmphasisState.style = clone(itemHoverStyle);\r\n var defaultText = data.get(data.dimensions[symbolPath.__dimIdx], idx);\r\n (defaultText == null || isNaN(defaultText)) && (defaultText = '');\r\n setLabelStyle(symbolPath, getLabelStatesModels(itemModel), {\r\n labelFetcher: data.hostModel,\r\n labelDataIndex: idx,\r\n labelDimIndex: symbolPath.__dimIdx,\r\n defaultText: defaultText,\r\n inheritColor: color,\r\n defaultOpacity: itemStyle.opacity\r\n });\r\n });\r\n enableHoverEmphasis(itemGroup, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\r\n });\r\n this._data = data;\r\n };\r\n RadarView.prototype.remove = function () {\r\n this.group.removeAll();\r\n this._data = null;\r\n };\r\n RadarView.type = 'radar';\r\n return RadarView;\r\n }(ChartView));\r\n ChartView.registerClass(RadarView$1);\n\n function radarLayout(ecModel) {\r\n ecModel.eachSeriesByType('radar', function (seriesModel) {\r\n var data = seriesModel.getData();\r\n var points = [];\r\n var coordSys = seriesModel.coordinateSystem;\r\n if (!coordSys) {\r\n return;\r\n }\r\n var axes = coordSys.getIndicatorAxes();\r\n each(axes, function (axis, axisIndex) {\r\n data.each(data.mapDimension(axes[axisIndex].dim), function (val, dataIndex) {\r\n points[dataIndex] = points[dataIndex] || [];\r\n var point = coordSys.dataToPoint(val, axisIndex);\r\n points[dataIndex][axisIndex] = isValidPoint(point)\r\n ? point : getValueMissingPoint(coordSys);\r\n });\r\n });\r\n data.each(function (idx) {\r\n var firstPoint = find(points[idx], function (point) {\r\n return isValidPoint(point);\r\n }) || getValueMissingPoint(coordSys);\r\n points[idx].push(firstPoint.slice());\r\n data.setItemLayout(idx, points[idx]);\r\n });\r\n });\r\n }\r\n function isValidPoint(point) {\r\n return !isNaN(point[0]) && !isNaN(point[1]);\r\n }\r\n function getValueMissingPoint(coordSys) {\r\n return [coordSys.cx, coordSys.cy];\r\n }\n\n function radarBackwardCompat(option) {\r\n var polarOptArr = option.polar;\r\n if (polarOptArr) {\r\n if (!isArray(polarOptArr)) {\r\n polarOptArr = [polarOptArr];\r\n }\r\n var polarNotRadar_1 = [];\r\n each(polarOptArr, function (polarOpt, idx) {\r\n if (polarOpt.indicator) {\r\n if (polarOpt.type && !polarOpt.shape) {\r\n polarOpt.shape = polarOpt.type;\r\n }\r\n option.radar = option.radar || [];\r\n if (!isArray(option.radar)) {\r\n option.radar = [option.radar];\r\n }\r\n option.radar.push(polarOpt);\r\n }\r\n else {\r\n polarNotRadar_1.push(polarOpt);\r\n }\r\n });\r\n option.polar = polarNotRadar_1;\r\n }\r\n each(option.series, function (seriesOpt) {\r\n if (seriesOpt && seriesOpt.type === 'radar' && seriesOpt.polarIndex) {\r\n seriesOpt.radarIndex = seriesOpt.polarIndex;\r\n }\r\n });\r\n }\n\n registerLayout(radarLayout);\r\n registerProcessor(dataFilter('radar'));\r\n registerPreprocessor(radarBackwardCompat);\n\n var geoCoord = [126, 25];\r\n var points$1 = [\r\n [[0, 3.5], [7, 11.2], [15, 11.9], [30, 7], [42, 0.7], [52, 0.7],\r\n [56, 7.7], [59, 0.7], [64, 0.7], [64, 0], [5, 0], [0, 3.5]],\r\n [[13, 16.1], [19, 14.7], [16, 21.7], [11, 23.1], [13, 16.1]],\r\n [[12, 32.2], [14, 38.5], [15, 38.5], [13, 32.2], [12, 32.2]],\r\n [[16, 47.6], [12, 53.2], [13, 53.2], [18, 47.6], [16, 47.6]],\r\n [[6, 64.4], [8, 70], [9, 70], [8, 64.4], [6, 64.4]],\r\n [[23, 82.6], [29, 79.8], [30, 79.8], [25, 82.6], [23, 82.6]],\r\n [[37, 70.7], [43, 62.3], [44, 62.3], [39, 70.7], [37, 70.7]],\r\n [[48, 51.1], [51, 45.5], [53, 45.5], [50, 51.1], [48, 51.1]],\r\n [[51, 35], [51, 28.7], [53, 28.7], [53, 35], [51, 35]],\r\n [[52, 22.4], [55, 17.5], [56, 17.5], [53, 22.4], [52, 22.4]],\r\n [[58, 12.6], [62, 7], [63, 7], [60, 12.6], [58, 12.6]],\r\n [[0, 3.5], [0, 93.1], [64, 93.1], [64, 0], [63, 0], [63, 92.4],\r\n [1, 92.4], [1, 3.5], [0, 3.5]]\r\n ];\r\n for (var i = 0; i < points$1.length; i++) {\r\n for (var k = 0; k < points$1[i].length; k++) {\r\n points$1[i][k][0] /= 10.5;\r\n points$1[i][k][1] /= -10.5 / 0.75;\r\n points$1[i][k][0] += geoCoord[0];\r\n points$1[i][k][1] += geoCoord[1];\r\n }\r\n }\r\n function fixNanhai(mapType, regions) {\r\n if (mapType === 'china') {\r\n regions.push(new Region('南海诸岛', map(points$1, function (exterior) {\r\n return {\r\n type: 'polygon',\r\n exterior: exterior\r\n };\r\n }), geoCoord));\r\n }\r\n }\n\n var coordsOffsetMap = {\r\n '南海诸岛': [32, 80],\r\n '广东': [0, -10],\r\n '香港': [10, 5],\r\n '澳门': [-10, 10],\r\n '天津': [5, 5]\r\n };\r\n function fixTextCoords(mapType, region) {\r\n if (mapType === 'china') {\r\n var coordFix = coordsOffsetMap[region.name];\r\n if (coordFix) {\r\n var cp = region.center;\r\n cp[0] += coordFix[0] / 10.5;\r\n cp[1] += -coordFix[1] / (10.5 / 0.75);\r\n }\r\n }\r\n }\n\n var geoCoordMap = {\r\n 'Russia': [100, 60],\r\n 'United States': [-99, 38],\r\n 'United States of America': [-99, 38]\r\n };\r\n function fixGeoCoords(mapType, region) {\r\n if (mapType === 'world') {\r\n var geoCoord = geoCoordMap[region.name];\r\n if (geoCoord) {\r\n var cp = region.center;\r\n cp[0] = geoCoord[0];\r\n cp[1] = geoCoord[1];\r\n }\r\n }\r\n }\n\n var points$2 = [\r\n [\r\n [123.45165252685547, 25.73527164402261],\r\n [123.49731445312499, 25.73527164402261],\r\n [123.49731445312499, 25.750734064600884],\r\n [123.45165252685547, 25.750734064600884],\r\n [123.45165252685547, 25.73527164402261]\r\n ]\r\n ];\r\n function fixDiaoyuIsland(mapType, region) {\r\n if (mapType === 'china' && region.name === '台湾') {\r\n region.geometries.push({\r\n type: 'polygon',\r\n exterior: points$2[0]\r\n });\r\n }\r\n }\n\n var inner$6 = makeInner();\r\n var geoJSONLoader = {\r\n load: function (mapName, mapRecord, nameProperty) {\r\n var parsed = inner$6(mapRecord).parsed;\r\n if (parsed) {\r\n return parsed;\r\n }\r\n var specialAreas = mapRecord.specialAreas || {};\r\n var geoJSON = mapRecord.geoJSON;\r\n var regions;\r\n try {\r\n regions = geoJSON ? parseGeoJSON(geoJSON, nameProperty) : [];\r\n }\r\n catch (e) {\r\n throw new Error('Invalid geoJson format\\n' + e.message);\r\n }\r\n fixNanhai(mapName, regions);\r\n each(regions, function (region) {\r\n var regionName = region.name;\r\n fixTextCoords(mapName, region);\r\n fixGeoCoords(mapName, region);\r\n fixDiaoyuIsland(mapName, region);\r\n var specialArea = specialAreas[regionName];\r\n if (specialArea) {\r\n region.transformTo(specialArea.left, specialArea.top, specialArea.width, specialArea.height);\r\n }\r\n });\r\n return (inner$6(mapRecord).parsed = {\r\n regions: regions,\r\n boundingRect: getBoundingRect$1(regions)\r\n });\r\n }\r\n };\r\n function getBoundingRect$1(regions) {\r\n var rect;\r\n for (var i = 0; i < regions.length; i++) {\r\n var regionRect = regions[i].getBoundingRect();\r\n rect = rect || regionRect.clone();\r\n rect.union(regionRect);\r\n }\r\n return rect;\r\n }\n\n var inner$7 = makeInner();\r\n var geoSVGLoader = {\r\n load: function (mapName, mapRecord) {\r\n var originRoot = inner$7(mapRecord).originRoot;\r\n if (originRoot) {\r\n return {\r\n root: originRoot,\r\n boundingRect: inner$7(mapRecord).boundingRect\r\n };\r\n }\r\n var graphic = buildGraphic(mapRecord);\r\n inner$7(mapRecord).originRoot = graphic.root;\r\n inner$7(mapRecord).boundingRect = graphic.boundingRect;\r\n return graphic;\r\n },\r\n makeGraphic: function (mapName, mapRecord, hostKey) {\r\n var field = inner$7(mapRecord);\r\n var rootMap = field.rootMap || (field.rootMap = createHashMap());\r\n var root = rootMap.get(hostKey);\r\n if (root) {\r\n return root;\r\n }\r\n var originRoot = field.originRoot;\r\n var boundingRect = field.boundingRect;\r\n if (!field.originRootHostKey) {\r\n field.originRootHostKey = hostKey;\r\n root = originRoot;\r\n }\r\n else {\r\n root = buildGraphic(mapRecord, boundingRect).root;\r\n }\r\n return rootMap.set(hostKey, root);\r\n },\r\n removeGraphic: function (mapName, mapRecord, hostKey) {\r\n var field = inner$7(mapRecord);\r\n var rootMap = field.rootMap;\r\n rootMap && rootMap.removeKey(hostKey);\r\n if (hostKey === field.originRootHostKey) {\r\n field.originRootHostKey = null;\r\n }\r\n }\r\n };\r\n function buildGraphic(mapRecord, boundingRect) {\r\n var svgXML = mapRecord.svgXML;\r\n var result;\r\n var root;\r\n try {\r\n result = svgXML && parseSVG(svgXML, {\r\n ignoreViewBox: true,\r\n ignoreRootClip: true\r\n }) || {};\r\n root = result.root;\r\n assert(root != null);\r\n }\r\n catch (e) {\r\n throw new Error('Invalid svg format\\n' + e.message);\r\n }\r\n var svgWidth = result.width;\r\n var svgHeight = result.height;\r\n var viewBoxRect = result.viewBoxRect;\r\n if (!boundingRect) {\r\n boundingRect = (svgWidth == null || svgHeight == null)\r\n ? root.getBoundingRect()\r\n : new BoundingRect(0, 0, 0, 0);\r\n if (svgWidth != null) {\r\n boundingRect.width = svgWidth;\r\n }\r\n if (svgHeight != null) {\r\n boundingRect.height = svgHeight;\r\n }\r\n }\r\n if (viewBoxRect) {\r\n var viewBoxTransform = makeViewBoxTransform(viewBoxRect, boundingRect.width, boundingRect.height);\r\n var elRoot = root;\r\n root = new Group();\r\n root.add(elRoot);\r\n elRoot.scaleX = elRoot.scaleY = viewBoxTransform.scale;\r\n elRoot.x = viewBoxTransform.x;\r\n elRoot.y = viewBoxTransform.y;\r\n }\r\n root.setClipPath(new Rect({\r\n shape: boundingRect.plain()\r\n }));\r\n return {\r\n root: root,\r\n boundingRect: boundingRect\r\n };\r\n }\n\n var loaders = {\r\n geoJSON: geoJSONLoader,\r\n svg: geoSVGLoader\r\n };\r\n var geoSourceManager = {\r\n load: function (mapName, nameMap, nameProperty) {\r\n var regions = [];\r\n var regionsMap = createHashMap();\r\n var nameCoordMap = createHashMap();\r\n var boundingRect;\r\n var mapRecords = retrieveMap(mapName);\r\n each(mapRecords, function (record) {\r\n var singleSource = loaders[record.type].load(mapName, record, nameProperty);\r\n each(singleSource.regions, function (region) {\r\n var regionName = region.name;\r\n if (nameMap && nameMap.hasOwnProperty(regionName)) {\r\n region = region.cloneShallow(regionName = nameMap[regionName]);\r\n }\r\n regions.push(region);\r\n regionsMap.set(regionName, region);\r\n nameCoordMap.set(regionName, region.center);\r\n });\r\n var rect = singleSource.boundingRect;\r\n if (rect) {\r\n boundingRect\r\n ? boundingRect.union(rect)\r\n : (boundingRect = rect.clone());\r\n }\r\n });\r\n return {\r\n regions: regions,\r\n regionsMap: regionsMap,\r\n nameCoordMap: nameCoordMap,\r\n boundingRect: boundingRect || new BoundingRect(0, 0, 0, 0)\r\n };\r\n },\r\n makeGraphic: function (mapName, hostKey) {\r\n var mapRecords = retrieveMap(mapName);\r\n var results = [];\r\n each(mapRecords, function (record) {\r\n var method = loaders[record.type].makeGraphic;\r\n method && results.push(method(mapName, record, hostKey));\r\n });\r\n return results;\r\n },\r\n removeGraphic: function (mapName, hostKey) {\r\n var mapRecords = retrieveMap(mapName);\r\n each(mapRecords, function (record) {\r\n var method = loaders[record.type].makeGraphic;\r\n method && method(mapName, record, hostKey);\r\n });\r\n }\r\n };\r\n function mapNotExistsError(mapName) {\r\n if (__DEV__) {\r\n console.error('Map ' + mapName + ' not exists. The GeoJSON of the map must be provided.');\r\n }\r\n }\r\n function retrieveMap(mapName) {\r\n var mapRecords = mapDataStorage.retrieveMap(mapName) || [];\r\n if (__DEV__) {\r\n if (!mapRecords.length) {\r\n mapNotExistsError(mapName);\r\n }\r\n }\r\n return mapRecords;\r\n }\n\n var MapSeries = (function (_super) {\r\n __extends(MapSeries, _super);\r\n function MapSeries() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = MapSeries.type;\r\n _this.needsDrawMap = false;\r\n _this.seriesGroup = [];\r\n _this.getTooltipPosition = function (dataIndex) {\r\n if (dataIndex != null) {\r\n var name_1 = this.getData().getName(dataIndex);\r\n var geo = this.coordinateSystem;\r\n var region = geo.getRegion(name_1);\r\n return region && geo.dataToPoint(region.center);\r\n }\r\n };\r\n return _this;\r\n }\r\n MapSeries.prototype.getInitialData = function (option) {\r\n var data = createListSimply(this, {\r\n coordDimensions: ['value'],\r\n encodeDefaulter: curry(makeSeriesEncodeForNameBased, this)\r\n });\r\n var dataNameMap = createHashMap();\r\n var toAppendNames = [];\r\n for (var i = 0, len = data.count(); i < len; i++) {\r\n var name_2 = data.getName(i);\r\n dataNameMap.set(name_2, true);\r\n }\r\n var geoSource = geoSourceManager.load(this.getMapType(), this.option.nameMap, this.option.nameProperty);\r\n each(geoSource.regions, function (region) {\r\n var name = region.name;\r\n if (!dataNameMap.get(name)) {\r\n toAppendNames.push(name);\r\n }\r\n });\r\n data.appendValues([], toAppendNames);\r\n return data;\r\n };\r\n MapSeries.prototype.getHostGeoModel = function () {\r\n var geoIndex = this.option.geoIndex;\r\n return geoIndex != null\r\n ? this.ecModel.getComponent('geo', geoIndex)\r\n : null;\r\n };\r\n MapSeries.prototype.getMapType = function () {\r\n return (this.getHostGeoModel() || this).option.map;\r\n };\r\n MapSeries.prototype.getRawValue = function (dataIndex) {\r\n var data = this.getData();\r\n return data.get(data.mapDimension('value'), dataIndex);\r\n };\r\n MapSeries.prototype.getRegionModel = function (regionName) {\r\n var data = this.getData();\r\n return data.getItemModel(data.indexOfName(regionName));\r\n };\r\n MapSeries.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\r\n var data = this.getData();\r\n var value = this.getRawValue(dataIndex);\r\n var name = data.getName(dataIndex);\r\n var seriesGroup = this.seriesGroup;\r\n var seriesNames = [];\r\n for (var i = 0; i < seriesGroup.length; i++) {\r\n var otherIndex = seriesGroup[i].originalData.indexOfName(name);\r\n var valueDim = data.mapDimension('value');\r\n if (!isNaN(seriesGroup[i].originalData.get(valueDim, otherIndex))) {\r\n seriesNames.push(seriesGroup[i].name);\r\n }\r\n }\r\n return createTooltipMarkup('section', {\r\n header: seriesNames.join(', '),\r\n noHeader: !seriesNames.length,\r\n blocks: [createTooltipMarkup('nameValue', {\r\n name: name, value: value\r\n })]\r\n });\r\n };\r\n MapSeries.prototype.setZoom = function (zoom) {\r\n this.option.zoom = zoom;\r\n };\r\n MapSeries.prototype.setCenter = function (center) {\r\n this.option.center = center;\r\n };\r\n MapSeries.type = 'series.map';\r\n MapSeries.dependencies = ['geo'];\r\n MapSeries.layoutMode = 'box';\r\n MapSeries.defaultOption = {\r\n zlevel: 0,\r\n z: 2,\r\n coordinateSystem: 'geo',\r\n map: '',\r\n left: 'center',\r\n top: 'center',\r\n aspectScale: 0.75,\r\n showLegendSymbol: true,\r\n boundingCoords: null,\r\n center: null,\r\n zoom: 1,\r\n scaleLimit: null,\r\n selectedMode: true,\r\n label: {\r\n show: false,\r\n color: '#000'\r\n },\r\n itemStyle: {\r\n borderWidth: 0.5,\r\n borderColor: '#444',\r\n areaColor: '#eee'\r\n },\r\n emphasis: {\r\n label: {\r\n show: true,\r\n color: 'rgb(100,0,0)'\r\n },\r\n itemStyle: {\r\n areaColor: 'rgba(255,215,0,0.8)'\r\n }\r\n },\r\n select: {\r\n label: {\r\n show: true,\r\n color: 'rgb(100,0,0)'\r\n },\r\n itemStyle: {\r\n color: 'rgba(255,215,0,0.8)'\r\n }\r\n },\r\n nameProperty: 'name'\r\n };\r\n return MapSeries;\r\n }(SeriesModel));\r\n SeriesModel.registerClass(MapSeries);\n\n var ATTR = '\\0_ec_interaction_mutex';\r\n function take(zr, resourceKey, userKey) {\r\n var store = getStore(zr);\r\n store[resourceKey] = userKey;\r\n }\r\n function release(zr, resourceKey, userKey) {\r\n var store = getStore(zr);\r\n var uKey = store[resourceKey];\r\n if (uKey === userKey) {\r\n store[resourceKey] = null;\r\n }\r\n }\r\n function isTaken(zr, resourceKey) {\r\n return !!getStore(zr)[resourceKey];\r\n }\r\n function getStore(zr) {\r\n return zr[ATTR] || (zr[ATTR] = {});\r\n }\r\n registerAction({ type: 'takeGlobalCursor', event: 'globalCursorTaken', update: 'update' }, function () { });\n\n var RoamController = (function (_super) {\r\n __extends(RoamController, _super);\r\n function RoamController(zr) {\r\n var _this = _super.call(this) || this;\r\n _this._zr = zr;\r\n var mousedownHandler = bind(_this._mousedownHandler, _this);\r\n var mousemoveHandler = bind(_this._mousemoveHandler, _this);\r\n var mouseupHandler = bind(_this._mouseupHandler, _this);\r\n var mousewheelHandler = bind(_this._mousewheelHandler, _this);\r\n var pinchHandler = bind(_this._pinchHandler, _this);\r\n _this.enable = function (controlType, opt) {\r\n this.disable();\r\n this._opt = defaults(clone(opt) || {}, {\r\n zoomOnMouseWheel: true,\r\n moveOnMouseMove: true,\r\n moveOnMouseWheel: false,\r\n preventDefaultMouseMove: true\r\n });\r\n if (controlType == null) {\r\n controlType = true;\r\n }\r\n if (controlType === true || (controlType === 'move' || controlType === 'pan')) {\r\n zr.on('mousedown', mousedownHandler);\r\n zr.on('mousemove', mousemoveHandler);\r\n zr.on('mouseup', mouseupHandler);\r\n }\r\n if (controlType === true || (controlType === 'scale' || controlType === 'zoom')) {\r\n zr.on('mousewheel', mousewheelHandler);\r\n zr.on('pinch', pinchHandler);\r\n }\r\n };\r\n _this.disable = function () {\r\n zr.off('mousedown', mousedownHandler);\r\n zr.off('mousemove', mousemoveHandler);\r\n zr.off('mouseup', mouseupHandler);\r\n zr.off('mousewheel', mousewheelHandler);\r\n zr.off('pinch', pinchHandler);\r\n };\r\n return _this;\r\n }\r\n RoamController.prototype.isDragging = function () {\r\n return this._dragging;\r\n };\r\n RoamController.prototype.isPinching = function () {\r\n return this._pinching;\r\n };\r\n RoamController.prototype.setPointerChecker = function (pointerChecker) {\r\n this.pointerChecker = pointerChecker;\r\n };\r\n RoamController.prototype.dispose = function () {\r\n this.disable();\r\n };\r\n RoamController.prototype._mousedownHandler = function (e) {\r\n if (isMiddleOrRightButtonOnMouseUpDown(e)\r\n || (e.target && e.target.draggable)) {\r\n return;\r\n }\r\n var x = e.offsetX;\r\n var y = e.offsetY;\r\n if (this.pointerChecker && this.pointerChecker(e, x, y)) {\r\n this._x = x;\r\n this._y = y;\r\n this._dragging = true;\r\n }\r\n };\r\n RoamController.prototype._mousemoveHandler = function (e) {\r\n if (!this._dragging\r\n || !isAvailableBehavior('moveOnMouseMove', e, this._opt)\r\n || e.gestureEvent === 'pinch'\r\n || isTaken(this._zr, 'globalPan')) {\r\n return;\r\n }\r\n var x = e.offsetX;\r\n var y = e.offsetY;\r\n var oldX = this._x;\r\n var oldY = this._y;\r\n var dx = x - oldX;\r\n var dy = y - oldY;\r\n this._x = x;\r\n this._y = y;\r\n this._opt.preventDefaultMouseMove && stop(e.event);\r\n trigger(this, 'pan', 'moveOnMouseMove', e, {\r\n dx: dx, dy: dy, oldX: oldX, oldY: oldY, newX: x, newY: y, isAvailableBehavior: null\r\n });\r\n };\r\n RoamController.prototype._mouseupHandler = function (e) {\r\n if (!isMiddleOrRightButtonOnMouseUpDown(e)) {\r\n this._dragging = false;\r\n }\r\n };\r\n RoamController.prototype._mousewheelHandler = function (e) {\r\n var shouldZoom = isAvailableBehavior('zoomOnMouseWheel', e, this._opt);\r\n var shouldMove = isAvailableBehavior('moveOnMouseWheel', e, this._opt);\r\n var wheelDelta = e.wheelDelta;\r\n var absWheelDeltaDelta = Math.abs(wheelDelta);\r\n var originX = e.offsetX;\r\n var originY = e.offsetY;\r\n if (wheelDelta === 0 || (!shouldZoom && !shouldMove)) {\r\n return;\r\n }\r\n if (shouldZoom) {\r\n var factor = absWheelDeltaDelta > 3 ? 1.4 : absWheelDeltaDelta > 1 ? 1.2 : 1.1;\r\n var scale = wheelDelta > 0 ? factor : 1 / factor;\r\n checkPointerAndTrigger(this, 'zoom', 'zoomOnMouseWheel', e, {\r\n scale: scale, originX: originX, originY: originY, isAvailableBehavior: null\r\n });\r\n }\r\n if (shouldMove) {\r\n var absDelta = Math.abs(wheelDelta);\r\n var scrollDelta = (wheelDelta > 0 ? 1 : -1) * (absDelta > 3 ? 0.4 : absDelta > 1 ? 0.15 : 0.05);\r\n checkPointerAndTrigger(this, 'scrollMove', 'moveOnMouseWheel', e, {\r\n scrollDelta: scrollDelta, originX: originX, originY: originY, isAvailableBehavior: null\r\n });\r\n }\r\n };\r\n RoamController.prototype._pinchHandler = function (e) {\r\n if (isTaken(this._zr, 'globalPan')) {\r\n return;\r\n }\r\n var scale = e.pinchScale > 1 ? 1.1 : 1 / 1.1;\r\n checkPointerAndTrigger(this, 'zoom', null, e, {\r\n scale: scale, originX: e.pinchX, originY: e.pinchY, isAvailableBehavior: null\r\n });\r\n };\r\n return RoamController;\r\n }(Eventful));\r\n function checkPointerAndTrigger(controller, eventName, behaviorToCheck, e, contollerEvent) {\r\n if (controller.pointerChecker\r\n && controller.pointerChecker(e, contollerEvent.originX, contollerEvent.originY)) {\r\n stop(e.event);\r\n trigger(controller, eventName, behaviorToCheck, e, contollerEvent);\r\n }\r\n }\r\n function trigger(controller, eventName, behaviorToCheck, e, contollerEvent) {\r\n contollerEvent.isAvailableBehavior = bind(isAvailableBehavior, null, behaviorToCheck, e);\r\n controller.trigger(eventName, contollerEvent);\r\n }\r\n function isAvailableBehavior(behaviorToCheck, e, settings) {\r\n var setting = settings[behaviorToCheck];\r\n return !behaviorToCheck || (setting && (!isString(setting) || e.event[setting + 'Key']));\r\n }\n\n function updateViewOnPan(controllerHost, dx, dy) {\r\n var target = controllerHost.target;\r\n target.x += dx;\r\n target.y += dy;\r\n target.dirty();\r\n }\r\n function updateViewOnZoom(controllerHost, zoomDelta, zoomX, zoomY) {\r\n var target = controllerHost.target;\r\n var zoomLimit = controllerHost.zoomLimit;\r\n var newZoom = controllerHost.zoom = controllerHost.zoom || 1;\r\n newZoom *= zoomDelta;\r\n if (zoomLimit) {\r\n var zoomMin = zoomLimit.min || 0;\r\n var zoomMax = zoomLimit.max || Infinity;\r\n newZoom = Math.max(Math.min(zoomMax, newZoom), zoomMin);\r\n }\r\n var zoomScale = newZoom / controllerHost.zoom;\r\n controllerHost.zoom = newZoom;\r\n target.x -= (zoomX - target.x) * (zoomScale - 1);\r\n target.y -= (zoomY - target.y) * (zoomScale - 1);\r\n target.scaleX *= zoomScale;\r\n target.scaleY *= zoomScale;\r\n target.dirty();\r\n }\n\n var IRRELEVANT_EXCLUDES = { 'axisPointer': 1, 'tooltip': 1, 'brush': 1 };\r\n function onIrrelevantElement(e, api, targetCoordSysModel) {\r\n var model = api.getComponentByElement(e.topTarget);\r\n var coordSys = model && model.coordinateSystem;\r\n return model\r\n && model !== targetCoordSysModel\r\n && !IRRELEVANT_EXCLUDES.hasOwnProperty(model.mainType)\r\n && (coordSys && coordSys.model !== targetCoordSysModel);\r\n }\n\n function getFixedItemStyle(model) {\r\n var itemStyle = model.getItemStyle();\r\n var areaColor = model.get('areaColor');\r\n if (areaColor != null) {\r\n itemStyle.fill = areaColor;\r\n }\r\n return itemStyle;\r\n }\r\n var MapDraw = (function () {\r\n function MapDraw(api) {\r\n var group = new Group();\r\n this.uid = getUID('ec_map_draw');\r\n this._controller = new RoamController(api.getZr());\r\n this._controllerHost = { target: group };\r\n this.group = group;\r\n group.add(this._regionsGroup = new Group());\r\n group.add(this._backgroundGroup = new Group());\r\n }\r\n MapDraw.prototype.draw = function (mapOrGeoModel, ecModel, api, fromView, payload) {\r\n var isGeo = mapOrGeoModel.mainType === 'geo';\r\n var data = mapOrGeoModel.getData && mapOrGeoModel.getData();\r\n isGeo && ecModel.eachComponent({ mainType: 'series', subType: 'map' }, function (mapSeries) {\r\n if (!data && mapSeries.getHostGeoModel() === mapOrGeoModel) {\r\n data = mapSeries.getData();\r\n }\r\n });\r\n var geo = mapOrGeoModel.coordinateSystem;\r\n this._updateBackground(geo);\r\n var regionsGroup = this._regionsGroup;\r\n var group = this.group;\r\n var transformInfo = geo.getTransformInfo();\r\n var isFirstDraw = !regionsGroup.childAt(0) || payload;\r\n var targetScaleX;\r\n var targetScaleY;\r\n if (isFirstDraw) {\r\n group.transform = transformInfo.roamTransform;\r\n group.decomposeTransform();\r\n group.dirty();\r\n }\r\n else {\r\n var target = new Transformable();\r\n target.transform = transformInfo.roamTransform;\r\n target.decomposeTransform();\r\n var props = {\r\n scaleX: target.scaleX,\r\n scaleY: target.scaleY,\r\n x: target.x,\r\n y: target.y\r\n };\r\n targetScaleX = target.scaleX;\r\n targetScaleY = target.scaleY;\r\n updateProps(group, props, mapOrGeoModel);\r\n }\r\n regionsGroup.removeAll();\r\n var nameMap = createHashMap();\r\n var isVisualEncodedByVisualMap = data\r\n && data.getVisual('visualMeta')\r\n && data.getVisual('visualMeta').length > 0;\r\n each(geo.regions, function (region) {\r\n var regionGroup = nameMap.get(region.name)\r\n || nameMap.set(region.name, new Group());\r\n var compoundPath = new CompoundPath({\r\n segmentIgnoreThreshold: 1,\r\n shape: {\r\n paths: []\r\n }\r\n });\r\n regionGroup.add(compoundPath);\r\n var regionModel = mapOrGeoModel.getRegionModel(region.name) || mapOrGeoModel;\r\n var itemStyleModel = regionModel.getModel('itemStyle');\r\n var emphasisModel = regionModel.getModel('emphasis');\r\n var emphasisItemStyleModel = emphasisModel.getModel('itemStyle');\r\n var blurItemStyleModel = regionModel.getModel(['blur', 'itemStyle']);\r\n var selectItemStyleModel = regionModel.getModel(['select', 'itemStyle']);\r\n var itemStyle = getFixedItemStyle(itemStyleModel);\r\n var emphasisItemStyle = getFixedItemStyle(emphasisItemStyleModel);\r\n var blurItemStyle = getFixedItemStyle(blurItemStyleModel);\r\n var selectItemStyle = getFixedItemStyle(selectItemStyleModel);\r\n var dataIdx;\r\n if (data) {\r\n dataIdx = data.indexOfName(region.name);\r\n var style = data.getItemVisual(dataIdx, 'style');\r\n var decal = data.getItemVisual(dataIdx, 'decal');\r\n if (isVisualEncodedByVisualMap && style.fill) {\r\n itemStyle.fill = style.fill;\r\n }\r\n if (decal) {\r\n itemStyle.decal = createOrUpdatePatternFromDecal(decal, api);\r\n }\r\n }\r\n var sx = transformInfo.rawScaleX;\r\n var sy = transformInfo.rawScaleY;\r\n var offsetX = transformInfo.rawX;\r\n var offsetY = transformInfo.rawY;\r\n var transformPoint = function (point) {\r\n return [\r\n point[0] * sx + offsetX,\r\n point[1] * sy + offsetY\r\n ];\r\n };\r\n each(region.geometries, function (geometry) {\r\n if (geometry.type !== 'polygon') {\r\n return;\r\n }\r\n var points = [];\r\n for (var i = 0; i < geometry.exterior.length; ++i) {\r\n points.push(transformPoint(geometry.exterior[i]));\r\n }\r\n compoundPath.shape.paths.push(new Polygon({\r\n segmentIgnoreThreshold: 1,\r\n shape: {\r\n points: points\r\n }\r\n }));\r\n for (var i = 0; i < (geometry.interiors ? geometry.interiors.length : 0); ++i) {\r\n var interior = geometry.interiors[i];\r\n var points_1 = [];\r\n for (var j = 0; j < interior.length; ++j) {\r\n points_1.push(transformPoint(interior[j]));\r\n }\r\n compoundPath.shape.paths.push(new Polygon({\r\n segmentIgnoreThreshold: 1,\r\n shape: {\r\n points: points_1\r\n }\r\n }));\r\n }\r\n });\r\n compoundPath.setStyle(itemStyle);\r\n compoundPath.style.strokeNoScale = true;\r\n compoundPath.culling = true;\r\n compoundPath.ensureState('emphasis').style = emphasisItemStyle;\r\n compoundPath.ensureState('blur').style = blurItemStyle;\r\n compoundPath.ensureState('select').style = selectItemStyle;\r\n var showLabel = false;\r\n for (var i = 0; i < DISPLAY_STATES.length; i++) {\r\n var stateName = DISPLAY_STATES[i];\r\n if (regionModel.get(stateName === 'normal' ? ['label', 'show'] : [stateName, 'label', 'show'])) {\r\n showLabel = true;\r\n break;\r\n }\r\n }\r\n var isDataNaN = data && isNaN(data.get(data.mapDimension('value'), dataIdx));\r\n var itemLayout = data && data.getItemLayout(dataIdx);\r\n if ((isGeo || isDataNaN && (showLabel))\r\n || (itemLayout && itemLayout.showLabel)) {\r\n var query = !isGeo ? dataIdx : region.name;\r\n var labelFetcher = void 0;\r\n if (!data || dataIdx >= 0) {\r\n labelFetcher = mapOrGeoModel;\r\n }\r\n var centerPt = transformPoint(region.center);\r\n var textEl = new ZRText({\r\n x: centerPt[0],\r\n y: centerPt[1],\r\n scaleX: 1 / group.scaleX,\r\n scaleY: 1 / group.scaleY,\r\n z2: 10,\r\n silent: true\r\n });\r\n setLabelStyle(textEl, getLabelStatesModels(regionModel), {\r\n labelFetcher: labelFetcher,\r\n labelDataIndex: query,\r\n defaultText: region.name\r\n }, { normal: {\r\n align: 'center',\r\n verticalAlign: 'middle'\r\n } });\r\n compoundPath.setTextContent(textEl);\r\n compoundPath.setTextConfig({\r\n local: true\r\n });\r\n compoundPath.disableLabelAnimation = true;\r\n if (!isFirstDraw) {\r\n updateProps(textEl, {\r\n scaleX: 1 / targetScaleX,\r\n scaleY: 1 / targetScaleY\r\n }, mapOrGeoModel);\r\n }\r\n }\r\n if (data) {\r\n data.setItemGraphicEl(dataIdx, regionGroup);\r\n }\r\n else {\r\n var regionModel_1 = mapOrGeoModel.getRegionModel(region.name);\r\n getECData(compoundPath).eventData = {\r\n componentType: 'geo',\r\n componentIndex: mapOrGeoModel.componentIndex,\r\n geoIndex: mapOrGeoModel.componentIndex,\r\n name: region.name,\r\n region: (regionModel_1 && regionModel_1.option) || {}\r\n };\r\n }\r\n var groupRegions = regionGroup.__regions || (regionGroup.__regions = []);\r\n groupRegions.push(region);\r\n regionGroup.highDownSilentOnTouch = !!mapOrGeoModel.get('selectedMode');\r\n enableHoverEmphasis(regionGroup, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\r\n regionsGroup.add(regionGroup);\r\n });\r\n this._updateController(mapOrGeoModel, ecModel, api);\r\n this._updateMapSelectHandler(mapOrGeoModel, regionsGroup, api, fromView);\r\n };\r\n MapDraw.prototype.remove = function () {\r\n this._regionsGroup.removeAll();\r\n this._backgroundGroup.removeAll();\r\n this._controller.dispose();\r\n this._mapName && geoSourceManager.removeGraphic(this._mapName, this.uid);\r\n this._mapName = null;\r\n this._controllerHost = null;\r\n };\r\n MapDraw.prototype._updateBackground = function (geo) {\r\n var mapName = geo.map;\r\n if (this._mapName !== mapName) {\r\n each(geoSourceManager.makeGraphic(mapName, this.uid), function (root) {\r\n this._backgroundGroup.add(root);\r\n }, this);\r\n }\r\n this._mapName = mapName;\r\n };\r\n MapDraw.prototype._updateController = function (mapOrGeoModel, ecModel, api) {\r\n var geo = mapOrGeoModel.coordinateSystem;\r\n var controller = this._controller;\r\n var controllerHost = this._controllerHost;\r\n controllerHost.zoomLimit = mapOrGeoModel.get('scaleLimit');\r\n controllerHost.zoom = geo.getZoom();\r\n controller.enable(mapOrGeoModel.get('roam') || false);\r\n var mainType = mapOrGeoModel.mainType;\r\n function makeActionBase() {\r\n var action = {\r\n type: 'geoRoam',\r\n componentType: mainType\r\n };\r\n action[mainType + 'Id'] = mapOrGeoModel.id;\r\n return action;\r\n }\r\n controller.off('pan').on('pan', function (e) {\r\n this._mouseDownFlag = false;\r\n updateViewOnPan(controllerHost, e.dx, e.dy);\r\n api.dispatchAction(extend(makeActionBase(), {\r\n dx: e.dx,\r\n dy: e.dy\r\n }));\r\n }, this);\r\n controller.off('zoom').on('zoom', function (e) {\r\n this._mouseDownFlag = false;\r\n updateViewOnZoom(controllerHost, e.scale, e.originX, e.originY);\r\n api.dispatchAction(extend(makeActionBase(), {\r\n zoom: e.scale,\r\n originX: e.originX,\r\n originY: e.originY\r\n }));\r\n var group = this.group;\r\n this._regionsGroup.traverse(function (el) {\r\n var textContent = el.getTextContent();\r\n if (textContent) {\r\n textContent.scaleX = 1 / group.scaleX;\r\n textContent.scaleY = 1 / group.scaleY;\r\n textContent.markRedraw();\r\n }\r\n });\r\n }, this);\r\n controller.setPointerChecker(function (e, x, y) {\r\n return geo.getViewRectAfterRoam().contain(x, y)\r\n && !onIrrelevantElement(e, api, mapOrGeoModel);\r\n });\r\n };\r\n MapDraw.prototype._updateMapSelectHandler = function (mapOrGeoModel, regionsGroup, api, fromView) {\r\n var mapDraw = this;\r\n regionsGroup.off('mousedown');\r\n if (mapOrGeoModel.get('selectedMode')) {\r\n regionsGroup.on('mousedown', function () {\r\n mapDraw._mouseDownFlag = true;\r\n });\r\n regionsGroup.on('click', function (e) {\r\n if (!mapDraw._mouseDownFlag) {\r\n return;\r\n }\r\n mapDraw._mouseDownFlag = false;\r\n });\r\n }\r\n };\r\n return MapDraw;\r\n }());\n\n var MapView = (function (_super) {\r\n __extends(MapView, _super);\r\n function MapView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = MapView.type;\r\n return _this;\r\n }\r\n MapView.prototype.render = function (mapModel, ecModel, api, payload) {\r\n if (payload && payload.type === 'mapToggleSelect'\r\n && payload.from === this.uid) {\r\n return;\r\n }\r\n var group = this.group;\r\n group.removeAll();\r\n if (mapModel.getHostGeoModel()) {\r\n return;\r\n }\r\n if (!(payload && payload.type === 'geoRoam'\r\n && payload.componentType === 'series'\r\n && payload.seriesId === mapModel.id)) {\r\n if (mapModel.needsDrawMap) {\r\n var mapDraw = this._mapDraw || new MapDraw(api);\r\n group.add(mapDraw.group);\r\n mapDraw.draw(mapModel, ecModel, api, this, payload);\r\n this._mapDraw = mapDraw;\r\n }\r\n else {\r\n this._mapDraw && this._mapDraw.remove();\r\n this._mapDraw = null;\r\n }\r\n }\r\n else {\r\n var mapDraw = this._mapDraw;\r\n mapDraw && group.add(mapDraw.group);\r\n }\r\n mapModel.get('showLegendSymbol') && ecModel.getComponent('legend')\r\n && this._renderSymbols(mapModel, ecModel, api);\r\n };\r\n MapView.prototype.remove = function () {\r\n this._mapDraw && this._mapDraw.remove();\r\n this._mapDraw = null;\r\n this.group.removeAll();\r\n };\r\n MapView.prototype.dispose = function () {\r\n this._mapDraw && this._mapDraw.remove();\r\n this._mapDraw = null;\r\n };\r\n MapView.prototype._renderSymbols = function (mapModel, ecModel, api) {\r\n var originalData = mapModel.originalData;\r\n var group = this.group;\r\n originalData.each(originalData.mapDimension('value'), function (value, originalDataIndex) {\r\n if (isNaN(value)) {\r\n return;\r\n }\r\n var layout = originalData.getItemLayout(originalDataIndex);\r\n if (!layout || !layout.point) {\r\n return;\r\n }\r\n var point = layout.point;\r\n var offset = layout.offset;\r\n var circle = new Circle({\r\n style: {\r\n fill: mapModel.getData().getVisual('style').fill\r\n },\r\n shape: {\r\n cx: point[0] + offset * 9,\r\n cy: point[1],\r\n r: 3\r\n },\r\n silent: true,\r\n z2: 8 + (!offset ? Z2_EMPHASIS_LIFT + 1 : 0)\r\n });\r\n if (!offset) {\r\n var fullData = mapModel.mainSeries.getData();\r\n var name_1 = originalData.getName(originalDataIndex);\r\n var fullIndex_1 = fullData.indexOfName(name_1);\r\n var itemModel = originalData.getItemModel(originalDataIndex);\r\n var labelModel = itemModel.getModel('label');\r\n var regionGroup = fullData.getItemGraphicEl(fullIndex_1);\r\n setLabelStyle(circle, getLabelStatesModels(itemModel), {\r\n labelFetcher: {\r\n getFormattedLabel: function (idx, state) {\r\n return mapModel.getFormattedLabel(fullIndex_1, state);\r\n }\r\n }\r\n });\r\n circle.disableLabelAnimation = true;\r\n if (!labelModel.get('position')) {\r\n circle.setTextConfig({\r\n position: 'bottom'\r\n });\r\n }\r\n regionGroup.onHoverStateChange = function (toState) {\r\n circle.useState(toState);\r\n };\r\n }\r\n group.add(circle);\r\n });\r\n };\r\n MapView.type = 'map';\r\n return MapView;\r\n }(ChartView));\r\n ChartView.registerClass(MapView);\n\n function updateCenterAndZoom(view, payload, zoomLimit) {\r\n var previousZoom = view.getZoom();\r\n var center = view.getCenter();\r\n var zoom = payload.zoom;\r\n var point = view.dataToPoint(center);\r\n if (payload.dx != null && payload.dy != null) {\r\n point[0] -= payload.dx;\r\n point[1] -= payload.dy;\r\n view.setCenter(view.pointToData(point));\r\n }\r\n if (zoom != null) {\r\n if (zoomLimit) {\r\n var zoomMin = zoomLimit.min || 0;\r\n var zoomMax = zoomLimit.max || Infinity;\r\n zoom = Math.max(Math.min(previousZoom * zoom, zoomMax), zoomMin) / previousZoom;\r\n }\r\n view.scaleX *= zoom;\r\n view.scaleY *= zoom;\r\n var fixX = (payload.originX - view.x) * (zoom - 1);\r\n var fixY = (payload.originY - view.y) * (zoom - 1);\r\n view.x -= fixX;\r\n view.y -= fixY;\r\n view.updateTransform();\r\n view.setCenter(view.pointToData(point));\r\n view.setZoom(zoom * previousZoom);\r\n }\r\n return {\r\n center: view.getCenter(),\r\n zoom: view.getZoom()\r\n };\r\n }\n\n registerAction({\r\n type: 'geoRoam',\r\n event: 'geoRoam',\r\n update: 'updateTransform'\r\n }, function (payload, ecModel) {\r\n var componentType = payload.componentType || 'series';\r\n ecModel.eachComponent({ mainType: componentType, query: payload }, function (componentModel) {\r\n var geo = componentModel.coordinateSystem;\r\n if (geo.type !== 'geo') {\r\n return;\r\n }\r\n var res = updateCenterAndZoom(geo, payload, componentModel.get('scaleLimit'));\r\n componentModel.setCenter\r\n && componentModel.setCenter(res.center);\r\n componentModel.setZoom\r\n && componentModel.setZoom(res.zoom);\r\n if (componentType === 'series') {\r\n each(componentModel.seriesGroup, function (seriesModel) {\r\n seriesModel.setCenter(res.center);\r\n seriesModel.setZoom(res.zoom);\r\n });\r\n }\r\n });\r\n });\n\n var v2ApplyTransform = applyTransform;\r\n var View = (function (_super) {\r\n __extends(View, _super);\r\n function View(name) {\r\n var _this = _super.call(this) || this;\r\n _this.type = 'view';\r\n _this.dimensions = ['x', 'y'];\r\n _this._roamTransformable = new Transformable();\r\n _this._rawTransformable = new Transformable();\r\n _this.name = name;\r\n return _this;\r\n }\r\n View.prototype.setBoundingRect = function (x, y, width, height) {\r\n this._rect = new BoundingRect(x, y, width, height);\r\n return this._rect;\r\n };\r\n View.prototype.getBoundingRect = function () {\r\n return this._rect;\r\n };\r\n View.prototype.setViewRect = function (x, y, width, height) {\r\n this.transformTo(x, y, width, height);\r\n this._viewRect = new BoundingRect(x, y, width, height);\r\n };\r\n View.prototype.transformTo = function (x, y, width, height) {\r\n var rect = this.getBoundingRect();\r\n var rawTransform = this._rawTransformable;\r\n rawTransform.transform = rect.calculateTransform(new BoundingRect(x, y, width, height));\r\n rawTransform.decomposeTransform();\r\n this._updateTransform();\r\n };\r\n View.prototype.setCenter = function (centerCoord) {\r\n if (!centerCoord) {\r\n return;\r\n }\r\n this._center = centerCoord;\r\n this._updateCenterAndZoom();\r\n };\r\n View.prototype.setZoom = function (zoom) {\r\n zoom = zoom || 1;\r\n var zoomLimit = this.zoomLimit;\r\n if (zoomLimit) {\r\n if (zoomLimit.max != null) {\r\n zoom = Math.min(zoomLimit.max, zoom);\r\n }\r\n if (zoomLimit.min != null) {\r\n zoom = Math.max(zoomLimit.min, zoom);\r\n }\r\n }\r\n this._zoom = zoom;\r\n this._updateCenterAndZoom();\r\n };\r\n View.prototype.getDefaultCenter = function () {\r\n var rawRect = this.getBoundingRect();\r\n var cx = rawRect.x + rawRect.width / 2;\r\n var cy = rawRect.y + rawRect.height / 2;\r\n return [cx, cy];\r\n };\r\n View.prototype.getCenter = function () {\r\n return this._center || this.getDefaultCenter();\r\n };\r\n View.prototype.getZoom = function () {\r\n return this._zoom || 1;\r\n };\r\n View.prototype.getRoamTransform = function () {\r\n return this._roamTransformable.getLocalTransform();\r\n };\r\n View.prototype._updateCenterAndZoom = function () {\r\n var rawTransformMatrix = this._rawTransformable.getLocalTransform();\r\n var roamTransform = this._roamTransformable;\r\n var defaultCenter = this.getDefaultCenter();\r\n var center = this.getCenter();\r\n var zoom = this.getZoom();\r\n center = applyTransform([], center, rawTransformMatrix);\r\n defaultCenter = applyTransform([], defaultCenter, rawTransformMatrix);\r\n roamTransform.originX = center[0];\r\n roamTransform.originY = center[1];\r\n roamTransform.x = defaultCenter[0] - center[0];\r\n roamTransform.y = defaultCenter[1] - center[1];\r\n roamTransform.scaleX = roamTransform.scaleY = zoom;\r\n this._updateTransform();\r\n };\r\n View.prototype._updateTransform = function () {\r\n var roamTransformable = this._roamTransformable;\r\n var rawTransformable = this._rawTransformable;\r\n rawTransformable.parent = roamTransformable;\r\n roamTransformable.updateTransform();\r\n rawTransformable.updateTransform();\r\n copy$1(this.transform || (this.transform = []), rawTransformable.transform || create$1());\r\n this._rawTransform = rawTransformable.getLocalTransform();\r\n this.invTransform = this.invTransform || [];\r\n invert(this.invTransform, this.transform);\r\n this.decomposeTransform();\r\n };\r\n View.prototype.getTransformInfo = function () {\r\n var roamTransform = this._roamTransformable.transform;\r\n var rawTransformable = this._rawTransformable;\r\n return {\r\n roamTransform: roamTransform ? slice(roamTransform) : create$1(),\r\n rawScaleX: rawTransformable.scaleX,\r\n rawScaleY: rawTransformable.scaleY,\r\n rawX: rawTransformable.x,\r\n rawY: rawTransformable.y\r\n };\r\n };\r\n View.prototype.getViewRect = function () {\r\n return this._viewRect;\r\n };\r\n View.prototype.getViewRectAfterRoam = function () {\r\n var rect = this.getBoundingRect().clone();\r\n rect.applyTransform(this.transform);\r\n return rect;\r\n };\r\n View.prototype.dataToPoint = function (data, noRoam, out) {\r\n var transform = noRoam ? this._rawTransform : this.transform;\r\n out = out || [];\r\n return transform\r\n ? v2ApplyTransform(out, data, transform)\r\n : copy(out, data);\r\n };\r\n View.prototype.pointToData = function (point) {\r\n var invTransform = this.invTransform;\r\n return invTransform\r\n ? v2ApplyTransform([], point, invTransform)\r\n : [point[0], point[1]];\r\n };\r\n View.prototype.convertToPixel = function (ecModel, finder, value) {\r\n var coordSys = getCoordSys(finder);\r\n return coordSys === this ? coordSys.dataToPoint(value) : null;\r\n };\r\n View.prototype.convertFromPixel = function (ecModel, finder, pixel) {\r\n var coordSys = getCoordSys(finder);\r\n return coordSys === this ? coordSys.pointToData(pixel) : null;\r\n };\r\n View.prototype.containPoint = function (point) {\r\n return this.getViewRectAfterRoam().contain(point[0], point[1]);\r\n };\r\n View.dimensions = ['x', 'y'];\r\n return View;\r\n }(Transformable));\r\n function getCoordSys(finder) {\r\n var seriesModel = finder.seriesModel;\r\n return seriesModel ? seriesModel.coordinateSystem : null;\r\n }\n\n var Geo = (function (_super) {\r\n __extends(Geo, _super);\r\n function Geo(name, map, nameMap, invertLongitute) {\r\n var _this = _super.call(this, name) || this;\r\n _this.dimensions = ['lng', 'lat'];\r\n _this.type = 'geo';\r\n _this.map = map;\r\n var source = geoSourceManager.load(map, nameMap);\r\n _this._nameCoordMap = source.nameCoordMap;\r\n _this._regionsMap = source.regionsMap;\r\n _this._invertLongitute = invertLongitute == null ? true : invertLongitute;\r\n _this.regions = source.regions;\r\n _this._rect = source.boundingRect;\r\n return _this;\r\n }\r\n Geo.prototype.containCoord = function (coord) {\r\n var regions = this.regions;\r\n for (var i = 0; i < regions.length; i++) {\r\n if (regions[i].contain(coord)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n Geo.prototype.transformTo = function (x, y, width, height) {\r\n var rect = this.getBoundingRect();\r\n var invertLongitute = this._invertLongitute;\r\n rect = rect.clone();\r\n if (invertLongitute) {\r\n rect.y = -rect.y - rect.height;\r\n }\r\n var rawTransformable = this._rawTransformable;\r\n rawTransformable.transform = rect.calculateTransform(new BoundingRect(x, y, width, height));\r\n rawTransformable.decomposeTransform();\r\n if (invertLongitute) {\r\n rawTransformable.scaleY = -rawTransformable.scaleY;\r\n }\r\n rawTransformable.updateTransform();\r\n this._updateTransform();\r\n };\r\n Geo.prototype.getRegion = function (name) {\r\n return this._regionsMap.get(name);\r\n };\r\n Geo.prototype.getRegionByCoord = function (coord) {\r\n var regions = this.regions;\r\n for (var i = 0; i < regions.length; i++) {\r\n if (regions[i].contain(coord)) {\r\n return regions[i];\r\n }\r\n }\r\n };\r\n Geo.prototype.addGeoCoord = function (name, geoCoord) {\r\n this._nameCoordMap.set(name, geoCoord);\r\n };\r\n Geo.prototype.getGeoCoord = function (name) {\r\n return this._nameCoordMap.get(name);\r\n };\r\n Geo.prototype.getBoundingRect = function () {\r\n return this._rect;\r\n };\r\n Geo.prototype.dataToPoint = function (data, noRoam, out) {\r\n if (typeof data === 'string') {\r\n data = this.getGeoCoord(data);\r\n }\r\n if (data) {\r\n return View.prototype.dataToPoint.call(this, data, noRoam, out);\r\n }\r\n };\r\n Geo.prototype.convertToPixel = function (ecModel, finder, value) {\r\n var coordSys = getCoordSys$1(finder);\r\n return coordSys === this ? coordSys.dataToPoint(value) : null;\r\n };\r\n Geo.prototype.convertFromPixel = function (ecModel, finder, pixel) {\r\n var coordSys = getCoordSys$1(finder);\r\n return coordSys === this ? coordSys.pointToData(pixel) : null;\r\n };\r\n return Geo;\r\n }(View));\r\n mixin(Geo, View);\r\n function getCoordSys$1(finder) {\r\n var geoModel = finder.geoModel;\r\n var seriesModel = finder.seriesModel;\r\n return geoModel\r\n ? geoModel.coordinateSystem\r\n : seriesModel\r\n ? (seriesModel.coordinateSystem\r\n || (seriesModel.getReferringComponents('geo', SINGLE_REFERRING).models[0] || {}).coordinateSystem)\r\n : null;\r\n }\n\n function resizeGeo(geoModel, api) {\r\n var boundingCoords = geoModel.get('boundingCoords');\r\n if (boundingCoords != null) {\r\n var leftTop = boundingCoords[0];\r\n var rightBottom = boundingCoords[1];\r\n if (isNaN(leftTop[0]) || isNaN(leftTop[1]) || isNaN(rightBottom[0]) || isNaN(rightBottom[1])) {\r\n if (__DEV__) {\r\n console.error('Invalid boundingCoords');\r\n }\r\n }\r\n else {\r\n this.setBoundingRect(leftTop[0], leftTop[1], rightBottom[0] - leftTop[0], rightBottom[1] - leftTop[1]);\r\n }\r\n }\r\n var rect = this.getBoundingRect();\r\n var centerOption = geoModel.get('layoutCenter');\r\n var sizeOption = geoModel.get('layoutSize');\r\n var viewWidth = api.getWidth();\r\n var viewHeight = api.getHeight();\r\n var aspect = rect.width / rect.height * this.aspectScale;\r\n var useCenterAndSize = false;\r\n var center;\r\n var size;\r\n if (centerOption && sizeOption) {\r\n center = [\r\n parsePercent$2(centerOption[0], viewWidth),\r\n parsePercent$2(centerOption[1], viewHeight)\r\n ];\r\n size = parsePercent$2(sizeOption, Math.min(viewWidth, viewHeight));\r\n if (!isNaN(center[0]) && !isNaN(center[1]) && !isNaN(size)) {\r\n useCenterAndSize = true;\r\n }\r\n else {\r\n if (__DEV__) {\r\n console.warn('Given layoutCenter or layoutSize data are invalid. Use left/top/width/height instead.');\r\n }\r\n }\r\n }\r\n var viewRect;\r\n if (useCenterAndSize) {\r\n viewRect = {};\r\n if (aspect > 1) {\r\n viewRect.width = size;\r\n viewRect.height = size / aspect;\r\n }\r\n else {\r\n viewRect.height = size;\r\n viewRect.width = size * aspect;\r\n }\r\n viewRect.y = center[1] - viewRect.height / 2;\r\n viewRect.x = center[0] - viewRect.width / 2;\r\n }\r\n else {\r\n var boxLayoutOption = geoModel.getBoxLayoutParams();\r\n boxLayoutOption.aspect = aspect;\r\n viewRect = getLayoutRect(boxLayoutOption, {\r\n width: viewWidth,\r\n height: viewHeight\r\n });\r\n }\r\n this.setViewRect(viewRect.x, viewRect.y, viewRect.width, viewRect.height);\r\n this.setCenter(geoModel.get('center'));\r\n this.setZoom(geoModel.get('zoom'));\r\n }\r\n function setGeoCoords(geo, model) {\r\n each(model.get('geoCoord'), function (geoCoord, name) {\r\n geo.addGeoCoord(name, geoCoord);\r\n });\r\n }\r\n var GeoCreator = (function () {\r\n function GeoCreator() {\r\n this.dimensions = Geo.prototype.dimensions;\r\n }\r\n GeoCreator.prototype.create = function (ecModel, api) {\r\n var geoList = [];\r\n ecModel.eachComponent('geo', function (geoModel, idx) {\r\n var name = geoModel.get('map');\r\n var aspectScale = geoModel.get('aspectScale');\r\n var invertLongitute = true;\r\n var mapRecords = mapDataStorage.retrieveMap(name);\r\n if (mapRecords && mapRecords[0] && mapRecords[0].type === 'svg') {\r\n aspectScale == null && (aspectScale = 1);\r\n invertLongitute = false;\r\n }\r\n else {\r\n aspectScale == null && (aspectScale = 0.75);\r\n }\r\n var geo = new Geo(name + idx, name, geoModel.get('nameMap'), invertLongitute);\r\n geo.aspectScale = aspectScale;\r\n geo.zoomLimit = geoModel.get('scaleLimit');\r\n geoList.push(geo);\r\n geoModel.coordinateSystem = geo;\r\n geo.model = geoModel;\r\n geo.resize = resizeGeo;\r\n geo.resize(geoModel, api);\r\n });\r\n ecModel.eachSeries(function (seriesModel) {\r\n var coordSys = seriesModel.get('coordinateSystem');\r\n if (coordSys === 'geo') {\r\n var geoIndex = seriesModel.get('geoIndex') || 0;\r\n seriesModel.coordinateSystem = geoList[geoIndex];\r\n }\r\n });\r\n var mapModelGroupBySeries = {};\r\n ecModel.eachSeriesByType('map', function (seriesModel) {\r\n if (!seriesModel.getHostGeoModel()) {\r\n var mapType = seriesModel.getMapType();\r\n mapModelGroupBySeries[mapType] = mapModelGroupBySeries[mapType] || [];\r\n mapModelGroupBySeries[mapType].push(seriesModel);\r\n }\r\n });\r\n each(mapModelGroupBySeries, function (mapSeries, mapType) {\r\n var nameMapList = map(mapSeries, function (singleMapSeries) {\r\n return singleMapSeries.get('nameMap');\r\n });\r\n var geo = new Geo(mapType, mapType, mergeAll(nameMapList));\r\n geo.zoomLimit = retrieve.apply(null, map(mapSeries, function (singleMapSeries) {\r\n return singleMapSeries.get('scaleLimit');\r\n }));\r\n geoList.push(geo);\r\n geo.resize = resizeGeo;\r\n geo.aspectScale = mapSeries[0].get('aspectScale');\r\n geo.resize(mapSeries[0], api);\r\n each(mapSeries, function (singleMapSeries) {\r\n singleMapSeries.coordinateSystem = geo;\r\n setGeoCoords(geo, singleMapSeries);\r\n });\r\n });\r\n return geoList;\r\n };\r\n GeoCreator.prototype.getFilledRegions = function (originRegionArr, mapName, nameMap) {\r\n var regionsArr = (originRegionArr || []).slice();\r\n var dataNameMap = createHashMap();\r\n for (var i = 0; i < regionsArr.length; i++) {\r\n dataNameMap.set(regionsArr[i].name, regionsArr[i]);\r\n }\r\n var source = geoSourceManager.load(mapName, nameMap);\r\n each(source.regions, function (region) {\r\n var name = region.name;\r\n !dataNameMap.get(name) && regionsArr.push({ name: name });\r\n });\r\n return regionsArr;\r\n };\r\n return GeoCreator;\r\n }());\r\n var geoCreator = new GeoCreator();\r\n registerCoordinateSystem('geo', geoCreator);\n\n function mapSymbolLayout(ecModel) {\r\n var processedMapType = {};\r\n ecModel.eachSeriesByType('map', function (mapSeries) {\r\n var mapType = mapSeries.getMapType();\r\n if (mapSeries.getHostGeoModel() || processedMapType[mapType]) {\r\n return;\r\n }\r\n var mapSymbolOffsets = {};\r\n each(mapSeries.seriesGroup, function (subMapSeries) {\r\n var geo = subMapSeries.coordinateSystem;\r\n var data = subMapSeries.originalData;\r\n if (subMapSeries.get('showLegendSymbol') && ecModel.getComponent('legend')) {\r\n data.each(data.mapDimension('value'), function (value, idx) {\r\n var name = data.getName(idx);\r\n var region = geo.getRegion(name);\r\n if (!region || isNaN(value)) {\r\n return;\r\n }\r\n var offset = mapSymbolOffsets[name] || 0;\r\n var point = geo.dataToPoint(region.center);\r\n mapSymbolOffsets[name] = offset + 1;\r\n data.setItemLayout(idx, {\r\n point: point,\r\n offset: offset\r\n });\r\n });\r\n }\r\n });\r\n var data = mapSeries.getData();\r\n data.each(function (idx) {\r\n var name = data.getName(idx);\r\n var layout = data.getItemLayout(idx) || {};\r\n layout.showLabel = !mapSymbolOffsets[name];\r\n data.setItemLayout(idx, layout);\r\n });\r\n processedMapType[mapType] = true;\r\n });\r\n }\n\n function dataStatistics(datas, statisticType) {\r\n var dataNameMap = {};\r\n each(datas, function (data) {\r\n data.each(data.mapDimension('value'), function (value, idx) {\r\n var mapKey = 'ec-' + data.getName(idx);\r\n dataNameMap[mapKey] = dataNameMap[mapKey] || [];\r\n if (!isNaN(value)) {\r\n dataNameMap[mapKey].push(value);\r\n }\r\n });\r\n });\r\n return datas[0].map(datas[0].mapDimension('value'), function (value, idx) {\r\n var mapKey = 'ec-' + datas[0].getName(idx);\r\n var sum = 0;\r\n var min = Infinity;\r\n var max = -Infinity;\r\n var len = dataNameMap[mapKey].length;\r\n for (var i = 0; i < len; i++) {\r\n min = Math.min(min, dataNameMap[mapKey][i]);\r\n max = Math.max(max, dataNameMap[mapKey][i]);\r\n sum += dataNameMap[mapKey][i];\r\n }\r\n var result;\r\n if (statisticType === 'min') {\r\n result = min;\r\n }\r\n else if (statisticType === 'max') {\r\n result = max;\r\n }\r\n else if (statisticType === 'average') {\r\n result = sum / len;\r\n }\r\n else {\r\n result = sum;\r\n }\r\n return len === 0 ? NaN : result;\r\n });\r\n }\r\n function mapDataStatistic(ecModel) {\r\n var seriesGroups = {};\r\n ecModel.eachSeriesByType('map', function (seriesModel) {\r\n var hostGeoModel = seriesModel.getHostGeoModel();\r\n var key = hostGeoModel ? 'o' + hostGeoModel.id : 'i' + seriesModel.getMapType();\r\n (seriesGroups[key] = seriesGroups[key] || []).push(seriesModel);\r\n });\r\n each(seriesGroups, function (seriesList, key) {\r\n var data = dataStatistics(map(seriesList, function (seriesModel) {\r\n return seriesModel.getData();\r\n }), seriesList[0].get('mapValueCalculation'));\r\n for (var i = 0; i < seriesList.length; i++) {\r\n seriesList[i].originalData = seriesList[i].getData();\r\n }\r\n for (var i = 0; i < seriesList.length; i++) {\r\n seriesList[i].seriesGroup = seriesList;\r\n seriesList[i].needsDrawMap = i === 0 && !seriesList[i].getHostGeoModel();\r\n seriesList[i].setData(data.cloneShallow());\r\n seriesList[i].mainSeries = seriesList[0];\r\n }\r\n });\r\n }\n\n registerLayout(mapSymbolLayout);\r\n registerProcessor(PRIORITY.PROCESSOR.STATISTIC, mapDataStatistic);\r\n createLegacyDataSelectAction('map', registerAction);\n\n var inner$8 = makeInner();\r\n function linkList(opt) {\r\n var mainData = opt.mainData;\r\n var datas = opt.datas;\r\n if (!datas) {\r\n datas = { main: mainData };\r\n opt.datasAttr = { main: 'data' };\r\n }\r\n opt.datas = opt.mainData = null;\r\n linkAll(mainData, datas, opt);\r\n each(datas, function (data) {\r\n each(mainData.TRANSFERABLE_METHODS, function (methodName) {\r\n data.wrapMethod(methodName, curry(transferInjection, opt));\r\n });\r\n });\r\n mainData.wrapMethod('cloneShallow', curry(cloneShallowInjection, opt));\r\n each(mainData.CHANGABLE_METHODS, function (methodName) {\r\n mainData.wrapMethod(methodName, curry(changeInjection, opt));\r\n });\r\n assert(datas[mainData.dataType] === mainData);\r\n }\r\n function transferInjection(opt, res) {\r\n if (isMainData(this)) {\r\n var datas = extend({}, inner$8(this).datas);\r\n datas[this.dataType] = res;\r\n linkAll(res, datas, opt);\r\n }\r\n else {\r\n linkSingle(res, this.dataType, inner$8(this).mainData, opt);\r\n }\r\n return res;\r\n }\r\n function changeInjection(opt, res) {\r\n opt.struct && opt.struct.update();\r\n return res;\r\n }\r\n function cloneShallowInjection(opt, res) {\r\n each(inner$8(res).datas, function (data, dataType) {\r\n data !== res && linkSingle(data.cloneShallow(), dataType, res, opt);\r\n });\r\n return res;\r\n }\r\n function getLinkedData(dataType) {\r\n var mainData = inner$8(this).mainData;\r\n return (dataType == null || mainData == null)\r\n ? mainData\r\n : inner$8(mainData).datas[dataType];\r\n }\r\n function getLinkedDataAll() {\r\n var mainData = inner$8(this).mainData;\r\n return (mainData == null)\r\n ? [{ data: mainData }]\r\n : map(keys(inner$8(mainData).datas), function (type) {\r\n return {\r\n type: type,\r\n data: inner$8(mainData).datas[type]\r\n };\r\n });\r\n }\r\n function isMainData(data) {\r\n return inner$8(data).mainData === data;\r\n }\r\n function linkAll(mainData, datas, opt) {\r\n inner$8(mainData).datas = {};\r\n each(datas, function (data, dataType) {\r\n linkSingle(data, dataType, mainData, opt);\r\n });\r\n }\r\n function linkSingle(data, dataType, mainData, opt) {\r\n inner$8(mainData).datas[dataType] = data;\r\n inner$8(data).mainData = mainData;\r\n data.dataType = dataType;\r\n if (opt.struct) {\r\n data[opt.structAttr] = opt.struct;\r\n opt.struct[opt.datasAttr[dataType]] = data;\r\n }\r\n data.getLinkedData = getLinkedData;\r\n data.getLinkedDataAll = getLinkedDataAll;\r\n }\n\n var TreeNode = (function () {\r\n function TreeNode(name, hostTree) {\r\n this.depth = 0;\r\n this.height = 0;\r\n this.dataIndex = -1;\r\n this.children = [];\r\n this.viewChildren = [];\r\n this.isExpand = false;\r\n this.name = name || '';\r\n this.hostTree = hostTree;\r\n }\r\n TreeNode.prototype.isRemoved = function () {\r\n return this.dataIndex < 0;\r\n };\r\n TreeNode.prototype.eachNode = function (options, cb, context) {\r\n if (typeof options === 'function') {\r\n context = cb;\r\n cb = options;\r\n options = null;\r\n }\r\n options = options || {};\r\n if (isString(options)) {\r\n options = { order: options };\r\n }\r\n var order = options.order || 'preorder';\r\n var children = this[options.attr || 'children'];\r\n var suppressVisitSub;\r\n order === 'preorder' && (suppressVisitSub = cb.call(context, this));\r\n for (var i = 0; !suppressVisitSub && i < children.length; i++) {\r\n children[i].eachNode(options, cb, context);\r\n }\r\n order === 'postorder' && cb.call(context, this);\r\n };\r\n TreeNode.prototype.updateDepthAndHeight = function (depth) {\r\n var height = 0;\r\n this.depth = depth;\r\n for (var i = 0; i < this.children.length; i++) {\r\n var child = this.children[i];\r\n child.updateDepthAndHeight(depth + 1);\r\n if (child.height > height) {\r\n height = child.height;\r\n }\r\n }\r\n this.height = height + 1;\r\n };\r\n TreeNode.prototype.getNodeById = function (id) {\r\n if (this.getId() === id) {\r\n return this;\r\n }\r\n for (var i = 0, children = this.children, len = children.length; i < len; i++) {\r\n var res = children[i].getNodeById(id);\r\n if (res) {\r\n return res;\r\n }\r\n }\r\n };\r\n TreeNode.prototype.contains = function (node) {\r\n if (node === this) {\r\n return true;\r\n }\r\n for (var i = 0, children = this.children, len = children.length; i < len; i++) {\r\n var res = children[i].contains(node);\r\n if (res) {\r\n return res;\r\n }\r\n }\r\n };\r\n TreeNode.prototype.getAncestors = function (includeSelf) {\r\n var ancestors = [];\r\n var node = includeSelf ? this : this.parentNode;\r\n while (node) {\r\n ancestors.push(node);\r\n node = node.parentNode;\r\n }\r\n ancestors.reverse();\r\n return ancestors;\r\n };\r\n TreeNode.prototype.getAncestorsIndices = function () {\r\n var indices = [];\r\n var currNode = this;\r\n while (currNode) {\r\n indices.push(currNode.dataIndex);\r\n currNode = currNode.parentNode;\r\n }\r\n indices.reverse();\r\n return indices;\r\n };\r\n TreeNode.prototype.getDescendantIndices = function () {\r\n var indices = [];\r\n this.eachNode(function (childNode) {\r\n indices.push(childNode.dataIndex);\r\n });\r\n return indices;\r\n };\r\n TreeNode.prototype.getValue = function (dimension) {\r\n var data = this.hostTree.data;\r\n return data.get(data.getDimension(dimension || 'value'), this.dataIndex);\r\n };\r\n TreeNode.prototype.setLayout = function (layout, merge) {\r\n this.dataIndex >= 0\r\n && this.hostTree.data.setItemLayout(this.dataIndex, layout, merge);\r\n };\r\n TreeNode.prototype.getLayout = function () {\r\n return this.hostTree.data.getItemLayout(this.dataIndex);\r\n };\r\n TreeNode.prototype.getModel = function (path) {\r\n if (this.dataIndex < 0) {\r\n return;\r\n }\r\n var hostTree = this.hostTree;\r\n var itemModel = hostTree.data.getItemModel(this.dataIndex);\r\n return itemModel.getModel(path);\r\n };\r\n TreeNode.prototype.getLevelModel = function () {\r\n return (this.hostTree.levelModels || [])[this.depth];\r\n };\r\n TreeNode.prototype.setVisual = function (key, value) {\r\n this.dataIndex >= 0\r\n && this.hostTree.data.setItemVisual(this.dataIndex, key, value);\r\n };\r\n TreeNode.prototype.getVisual = function (key) {\r\n return this.hostTree.data.getItemVisual(this.dataIndex, key);\r\n };\r\n TreeNode.prototype.getRawIndex = function () {\r\n return this.hostTree.data.getRawIndex(this.dataIndex);\r\n };\r\n TreeNode.prototype.getId = function () {\r\n return this.hostTree.data.getId(this.dataIndex);\r\n };\r\n TreeNode.prototype.isAncestorOf = function (node) {\r\n var parent = node.parentNode;\r\n while (parent) {\r\n if (parent === this) {\r\n return true;\r\n }\r\n parent = parent.parentNode;\r\n }\r\n return false;\r\n };\r\n TreeNode.prototype.isDescendantOf = function (node) {\r\n return node !== this && node.isAncestorOf(this);\r\n };\r\n return TreeNode;\r\n }());\r\n var Tree = (function () {\r\n function Tree(hostModel) {\r\n this.type = 'tree';\r\n this._nodes = [];\r\n this.hostModel = hostModel;\r\n }\r\n Tree.prototype.eachNode = function (options, cb, context) {\r\n this.root.eachNode(options, cb, context);\r\n };\r\n Tree.prototype.getNodeByDataIndex = function (dataIndex) {\r\n var rawIndex = this.data.getRawIndex(dataIndex);\r\n return this._nodes[rawIndex];\r\n };\r\n Tree.prototype.getNodeById = function (name) {\r\n return this.root.getNodeById(name);\r\n };\r\n Tree.prototype.update = function () {\r\n var data = this.data;\r\n var nodes = this._nodes;\r\n for (var i = 0, len = nodes.length; i < len; i++) {\r\n nodes[i].dataIndex = -1;\r\n }\r\n for (var i = 0, len = data.count(); i < len; i++) {\r\n nodes[data.getRawIndex(i)].dataIndex = i;\r\n }\r\n };\r\n Tree.prototype.clearLayouts = function () {\r\n this.data.clearItemLayouts();\r\n };\r\n Tree.createTree = function (dataRoot, hostModel, beforeLink) {\r\n var tree = new Tree(hostModel);\r\n var listData = [];\r\n var dimMax = 1;\r\n buildHierarchy(dataRoot);\r\n function buildHierarchy(dataNode, parentNode) {\r\n var value = dataNode.value;\r\n dimMax = Math.max(dimMax, isArray(value) ? value.length : 1);\r\n listData.push(dataNode);\r\n var node = new TreeNode(convertOptionIdName(dataNode.name, ''), tree);\r\n parentNode\r\n ? addChild(node, parentNode)\r\n : (tree.root = node);\r\n tree._nodes.push(node);\r\n var children = dataNode.children;\r\n if (children) {\r\n for (var i = 0; i < children.length; i++) {\r\n buildHierarchy(children[i], node);\r\n }\r\n }\r\n }\r\n tree.root.updateDepthAndHeight(0);\r\n var dimensionsInfo = createDimensions(listData, {\r\n coordDimensions: ['value'],\r\n dimensionsCount: dimMax\r\n });\r\n var list = new List(dimensionsInfo, hostModel);\r\n list.initData(listData);\r\n beforeLink && beforeLink(list);\r\n linkList({\r\n mainData: list,\r\n struct: tree,\r\n structAttr: 'tree'\r\n });\r\n tree.update();\r\n return tree;\r\n };\r\n return Tree;\r\n }());\r\n function addChild(child, node) {\r\n var children = node.children;\r\n if (child.parentNode === node) {\r\n return;\r\n }\r\n children.push(child);\r\n child.parentNode = node;\r\n }\n\n var TreeSeriesModel = (function (_super) {\r\n __extends(TreeSeriesModel, _super);\r\n function TreeSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.hasSymbolVisual = true;\r\n _this.ignoreStyleOnData = true;\r\n return _this;\r\n }\r\n TreeSeriesModel.prototype.getInitialData = function (option) {\r\n var root = {\r\n name: option.name,\r\n children: option.data\r\n };\r\n var leaves = option.leaves || {};\r\n var leavesModel = new Model(leaves, this, this.ecModel);\r\n var tree = Tree.createTree(root, this, beforeLink);\r\n function beforeLink(nodeData) {\r\n nodeData.wrapMethod('getItemModel', function (model, idx) {\r\n var node = tree.getNodeByDataIndex(idx);\r\n if (!node.children.length || !node.isExpand) {\r\n model.parentModel = leavesModel;\r\n }\r\n return model;\r\n });\r\n }\r\n var treeDepth = 0;\r\n tree.eachNode('preorder', function (node) {\r\n if (node.depth > treeDepth) {\r\n treeDepth = node.depth;\r\n }\r\n });\r\n var expandAndCollapse = option.expandAndCollapse;\r\n var expandTreeDepth = (expandAndCollapse && option.initialTreeDepth >= 0)\r\n ? option.initialTreeDepth : treeDepth;\r\n tree.root.eachNode('preorder', function (node) {\r\n var item = node.hostTree.data.getRawDataItem(node.dataIndex);\r\n node.isExpand = (item && item.collapsed != null)\r\n ? !item.collapsed\r\n : node.depth <= expandTreeDepth;\r\n });\r\n return tree.data;\r\n };\r\n TreeSeriesModel.prototype.getOrient = function () {\r\n var orient = this.get('orient');\r\n if (orient === 'horizontal') {\r\n orient = 'LR';\r\n }\r\n else if (orient === 'vertical') {\r\n orient = 'TB';\r\n }\r\n return orient;\r\n };\r\n TreeSeriesModel.prototype.setZoom = function (zoom) {\r\n this.option.zoom = zoom;\r\n };\r\n TreeSeriesModel.prototype.setCenter = function (center) {\r\n this.option.center = center;\r\n };\r\n TreeSeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\r\n var tree = this.getData().tree;\r\n var realRoot = tree.root.children[0];\r\n var node = tree.getNodeByDataIndex(dataIndex);\r\n var value = node.getValue();\r\n var name = node.name;\r\n while (node && (node !== realRoot)) {\r\n name = node.parentNode.name + '.' + name;\r\n node = node.parentNode;\r\n }\r\n return createTooltipMarkup('nameValue', {\r\n name: name,\r\n value: value,\r\n noValue: isNaN(value) || value == null\r\n });\r\n };\r\n TreeSeriesModel.type = 'series.tree';\r\n TreeSeriesModel.layoutMode = 'box';\r\n TreeSeriesModel.defaultOption = {\r\n zlevel: 0,\r\n z: 2,\r\n coordinateSystem: 'view',\r\n left: '12%',\r\n top: '12%',\r\n right: '12%',\r\n bottom: '12%',\r\n layout: 'orthogonal',\r\n edgeShape: 'curve',\r\n edgeForkPosition: '50%',\r\n roam: false,\r\n nodeScaleRatio: 0.4,\r\n center: null,\r\n zoom: 1,\r\n orient: 'LR',\r\n symbol: 'emptyCircle',\r\n symbolSize: 7,\r\n expandAndCollapse: true,\r\n initialTreeDepth: 2,\r\n lineStyle: {\r\n color: '#ccc',\r\n width: 1.5,\r\n curveness: 0.5\r\n },\r\n itemStyle: {\r\n color: 'lightsteelblue',\r\n borderColor: '#c23531',\r\n borderWidth: 1.5\r\n },\r\n label: {\r\n show: true\r\n },\r\n animationEasing: 'linear',\r\n animationDuration: 700,\r\n animationDurationUpdate: 500\r\n };\r\n return TreeSeriesModel;\r\n }(SeriesModel));\r\n SeriesModel.registerClass(TreeSeriesModel);\n\n function init$2(inRoot) {\r\n var root = inRoot;\r\n root.hierNode = {\r\n defaultAncestor: null,\r\n ancestor: root,\r\n prelim: 0,\r\n modifier: 0,\r\n change: 0,\r\n shift: 0,\r\n i: 0,\r\n thread: null\r\n };\r\n var nodes = [root];\r\n var node;\r\n var children;\r\n while (node = nodes.pop()) {\r\n children = node.children;\r\n if (node.isExpand && children.length) {\r\n var n = children.length;\r\n for (var i = n - 1; i >= 0; i--) {\r\n var child = children[i];\r\n child.hierNode = {\r\n defaultAncestor: null,\r\n ancestor: child,\r\n prelim: 0,\r\n modifier: 0,\r\n change: 0,\r\n shift: 0,\r\n i: i,\r\n thread: null\r\n };\r\n nodes.push(child);\r\n }\r\n }\r\n }\r\n }\r\n function firstWalk(node, separation) {\r\n var children = node.isExpand ? node.children : [];\r\n var siblings = node.parentNode.children;\r\n var subtreeW = node.hierNode.i ? siblings[node.hierNode.i - 1] : null;\r\n if (children.length) {\r\n executeShifts(node);\r\n var midPoint = (children[0].hierNode.prelim + children[children.length - 1].hierNode.prelim) / 2;\r\n if (subtreeW) {\r\n node.hierNode.prelim = subtreeW.hierNode.prelim + separation(node, subtreeW);\r\n node.hierNode.modifier = node.hierNode.prelim - midPoint;\r\n }\r\n else {\r\n node.hierNode.prelim = midPoint;\r\n }\r\n }\r\n else if (subtreeW) {\r\n node.hierNode.prelim = subtreeW.hierNode.prelim + separation(node, subtreeW);\r\n }\r\n node.parentNode.hierNode.defaultAncestor = apportion(node, subtreeW, node.parentNode.hierNode.defaultAncestor || siblings[0], separation);\r\n }\r\n function secondWalk(node) {\r\n var nodeX = node.hierNode.prelim + node.parentNode.hierNode.modifier;\r\n node.setLayout({ x: nodeX }, true);\r\n node.hierNode.modifier += node.parentNode.hierNode.modifier;\r\n }\r\n function separation(cb) {\r\n return arguments.length ? cb : defaultSeparation;\r\n }\r\n function radialCoordinate(rad, r) {\r\n rad -= Math.PI / 2;\r\n return {\r\n x: r * Math.cos(rad),\r\n y: r * Math.sin(rad)\r\n };\r\n }\r\n function getViewRect$1(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 executeShifts(node) {\r\n var children = node.children;\r\n var n = children.length;\r\n var shift = 0;\r\n var change = 0;\r\n while (--n >= 0) {\r\n var child = children[n];\r\n child.hierNode.prelim += shift;\r\n child.hierNode.modifier += shift;\r\n change += child.hierNode.change;\r\n shift += child.hierNode.shift + change;\r\n }\r\n }\r\n function apportion(subtreeV, subtreeW, ancestor, separation) {\r\n if (subtreeW) {\r\n var nodeOutRight = subtreeV;\r\n var nodeInRight = subtreeV;\r\n var nodeOutLeft = nodeInRight.parentNode.children[0];\r\n var nodeInLeft = subtreeW;\r\n var sumOutRight = nodeOutRight.hierNode.modifier;\r\n var sumInRight = nodeInRight.hierNode.modifier;\r\n var sumOutLeft = nodeOutLeft.hierNode.modifier;\r\n var sumInLeft = nodeInLeft.hierNode.modifier;\r\n while (nodeInLeft = nextRight(nodeInLeft), nodeInRight = nextLeft(nodeInRight), nodeInLeft && nodeInRight) {\r\n nodeOutRight = nextRight(nodeOutRight);\r\n nodeOutLeft = nextLeft(nodeOutLeft);\r\n nodeOutRight.hierNode.ancestor = subtreeV;\r\n var shift = nodeInLeft.hierNode.prelim + sumInLeft - nodeInRight.hierNode.prelim\r\n - sumInRight + separation(nodeInLeft, nodeInRight);\r\n if (shift > 0) {\r\n moveSubtree(nextAncestor(nodeInLeft, subtreeV, ancestor), subtreeV, shift);\r\n sumInRight += shift;\r\n sumOutRight += shift;\r\n }\r\n sumInLeft += nodeInLeft.hierNode.modifier;\r\n sumInRight += nodeInRight.hierNode.modifier;\r\n sumOutRight += nodeOutRight.hierNode.modifier;\r\n sumOutLeft += nodeOutLeft.hierNode.modifier;\r\n }\r\n if (nodeInLeft && !nextRight(nodeOutRight)) {\r\n nodeOutRight.hierNode.thread = nodeInLeft;\r\n nodeOutRight.hierNode.modifier += sumInLeft - sumOutRight;\r\n }\r\n if (nodeInRight && !nextLeft(nodeOutLeft)) {\r\n nodeOutLeft.hierNode.thread = nodeInRight;\r\n nodeOutLeft.hierNode.modifier += sumInRight - sumOutLeft;\r\n ancestor = subtreeV;\r\n }\r\n }\r\n return ancestor;\r\n }\r\n function nextRight(node) {\r\n var children = node.children;\r\n return children.length && node.isExpand ? children[children.length - 1] : node.hierNode.thread;\r\n }\r\n function nextLeft(node) {\r\n var children = node.children;\r\n return children.length && node.isExpand ? children[0] : node.hierNode.thread;\r\n }\r\n function nextAncestor(nodeInLeft, node, ancestor) {\r\n return nodeInLeft.hierNode.ancestor.parentNode === node.parentNode\r\n ? nodeInLeft.hierNode.ancestor : ancestor;\r\n }\r\n function moveSubtree(wl, wr, shift) {\r\n var change = shift / (wr.hierNode.i - wl.hierNode.i);\r\n wr.hierNode.change -= change;\r\n wr.hierNode.shift += shift;\r\n wr.hierNode.modifier += shift;\r\n wr.hierNode.prelim += shift;\r\n wl.hierNode.change += change;\r\n }\r\n function defaultSeparation(node1, node2) {\r\n return node1.parentNode === node2.parentNode ? 1 : 2;\r\n }\n\n var TreeEdgeShape = (function () {\r\n function TreeEdgeShape() {\r\n this.parentPoint = [];\r\n this.childPoints = [];\r\n }\r\n return TreeEdgeShape;\r\n }());\r\n var TreePath = (function (_super) {\r\n __extends(TreePath, _super);\r\n function TreePath(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n TreePath.prototype.getDefaultStyle = function () {\r\n return {\r\n stroke: '#000',\r\n fill: null\r\n };\r\n };\r\n TreePath.prototype.getDefaultShape = function () {\r\n return new TreeEdgeShape();\r\n };\r\n TreePath.prototype.buildPath = function (ctx, shape) {\r\n var childPoints = shape.childPoints;\r\n var childLen = childPoints.length;\r\n var parentPoint = shape.parentPoint;\r\n var firstChildPos = childPoints[0];\r\n var lastChildPos = childPoints[childLen - 1];\r\n if (childLen === 1) {\r\n ctx.moveTo(parentPoint[0], parentPoint[1]);\r\n ctx.lineTo(firstChildPos[0], firstChildPos[1]);\r\n return;\r\n }\r\n var orient = shape.orient;\r\n var forkDim = (orient === 'TB' || orient === 'BT') ? 0 : 1;\r\n var otherDim = 1 - forkDim;\r\n var forkPosition = parsePercent$2(shape.forkPosition, 1);\r\n var tmpPoint = [];\r\n tmpPoint[forkDim] = parentPoint[forkDim];\r\n tmpPoint[otherDim] = parentPoint[otherDim] + (lastChildPos[otherDim] - parentPoint[otherDim]) * forkPosition;\r\n ctx.moveTo(parentPoint[0], parentPoint[1]);\r\n ctx.lineTo(tmpPoint[0], tmpPoint[1]);\r\n ctx.moveTo(firstChildPos[0], firstChildPos[1]);\r\n tmpPoint[forkDim] = firstChildPos[forkDim];\r\n ctx.lineTo(tmpPoint[0], tmpPoint[1]);\r\n tmpPoint[forkDim] = lastChildPos[forkDim];\r\n ctx.lineTo(tmpPoint[0], tmpPoint[1]);\r\n ctx.lineTo(lastChildPos[0], lastChildPos[1]);\r\n for (var i = 1; i < childLen - 1; i++) {\r\n var point = childPoints[i];\r\n ctx.moveTo(point[0], point[1]);\r\n tmpPoint[forkDim] = point[forkDim];\r\n ctx.lineTo(tmpPoint[0], tmpPoint[1]);\r\n }\r\n };\r\n return TreePath;\r\n }(Path));\r\n var TreeView = (function (_super) {\r\n __extends(TreeView, _super);\r\n function TreeView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = TreeView.type;\r\n _this._mainGroup = new Group();\r\n return _this;\r\n }\r\n TreeView.prototype.init = function (ecModel, api) {\r\n this._controller = new RoamController(api.getZr());\r\n this._controllerHost = {\r\n target: this.group\r\n };\r\n this.group.add(this._mainGroup);\r\n };\r\n TreeView.prototype.render = function (seriesModel, ecModel, api) {\r\n var data = seriesModel.getData();\r\n var layoutInfo = seriesModel.layoutInfo;\r\n var group = this._mainGroup;\r\n var layout = seriesModel.get('layout');\r\n if (layout === 'radial') {\r\n group.x = layoutInfo.x + layoutInfo.width / 2;\r\n group.y = layoutInfo.y + layoutInfo.height / 2;\r\n }\r\n else {\r\n group.x = layoutInfo.x;\r\n group.y = layoutInfo.y;\r\n }\r\n this._updateViewCoordSys(seriesModel);\r\n this._updateController(seriesModel, ecModel, api);\r\n var oldData = this._data;\r\n data.diff(oldData)\r\n .add(function (newIdx) {\r\n if (symbolNeedsDraw$1(data, newIdx)) {\r\n updateNode(data, newIdx, null, group, seriesModel);\r\n }\r\n })\r\n .update(function (newIdx, oldIdx) {\r\n var symbolEl = oldData.getItemGraphicEl(oldIdx);\r\n if (!symbolNeedsDraw$1(data, newIdx)) {\r\n symbolEl && removeNode(oldData, oldIdx, symbolEl, group, seriesModel);\r\n return;\r\n }\r\n updateNode(data, newIdx, symbolEl, group, seriesModel);\r\n })\r\n .remove(function (oldIdx) {\r\n var symbolEl = oldData.getItemGraphicEl(oldIdx);\r\n if (symbolEl) {\r\n removeNode(oldData, oldIdx, symbolEl, group, seriesModel);\r\n }\r\n })\r\n .execute();\r\n this._nodeScaleRatio = seriesModel.get('nodeScaleRatio');\r\n this._updateNodeAndLinkScale(seriesModel);\r\n if (seriesModel.get('expandAndCollapse') === true) {\r\n data.eachItemGraphicEl(function (el, dataIndex) {\r\n el.off('click').on('click', function () {\r\n api.dispatchAction({\r\n type: 'treeExpandAndCollapse',\r\n seriesId: seriesModel.id,\r\n dataIndex: dataIndex\r\n });\r\n });\r\n });\r\n }\r\n this._data = data;\r\n };\r\n TreeView.prototype._updateViewCoordSys = function (seriesModel) {\r\n var data = seriesModel.getData();\r\n var points = [];\r\n data.each(function (idx) {\r\n var layout = data.getItemLayout(idx);\r\n if (layout && !isNaN(layout.x) && !isNaN(layout.y)) {\r\n points.push([+layout.x, +layout.y]);\r\n }\r\n });\r\n var min = [];\r\n var max = [];\r\n fromPoints(points, min, max);\r\n var oldMin = this._min;\r\n var oldMax = this._max;\r\n if (max[0] - min[0] === 0) {\r\n min[0] = oldMin ? oldMin[0] : min[0] - 1;\r\n max[0] = oldMax ? oldMax[0] : max[0] + 1;\r\n }\r\n if (max[1] - min[1] === 0) {\r\n min[1] = oldMin ? oldMin[1] : min[1] - 1;\r\n max[1] = oldMax ? oldMax[1] : max[1] + 1;\r\n }\r\n var viewCoordSys = seriesModel.coordinateSystem = new View();\r\n viewCoordSys.zoomLimit = seriesModel.get('scaleLimit');\r\n viewCoordSys.setBoundingRect(min[0], min[1], max[0] - min[0], max[1] - min[1]);\r\n viewCoordSys.setCenter(seriesModel.get('center'));\r\n viewCoordSys.setZoom(seriesModel.get('zoom'));\r\n this.group.attr({\r\n x: viewCoordSys.x,\r\n y: viewCoordSys.y,\r\n scaleX: viewCoordSys.scaleX,\r\n scaleY: viewCoordSys.scaleY\r\n });\r\n this._min = min;\r\n this._max = max;\r\n };\r\n TreeView.prototype._updateController = function (seriesModel, ecModel, api) {\r\n var _this = this;\r\n var controller = this._controller;\r\n var controllerHost = this._controllerHost;\r\n var group = this.group;\r\n controller.setPointerChecker(function (e, x, y) {\r\n var rect = group.getBoundingRect();\r\n rect.applyTransform(group.transform);\r\n return rect.contain(x, y)\r\n && !onIrrelevantElement(e, api, seriesModel);\r\n });\r\n controller.enable(seriesModel.get('roam'));\r\n controllerHost.zoomLimit = seriesModel.get('scaleLimit');\r\n controllerHost.zoom = seriesModel.coordinateSystem.getZoom();\r\n controller\r\n .off('pan')\r\n .off('zoom')\r\n .on('pan', function (e) {\r\n updateViewOnPan(controllerHost, e.dx, e.dy);\r\n api.dispatchAction({\r\n seriesId: seriesModel.id,\r\n type: 'treeRoam',\r\n dx: e.dx,\r\n dy: e.dy\r\n });\r\n })\r\n .on('zoom', function (e) {\r\n updateViewOnZoom(controllerHost, e.scale, e.originX, e.originY);\r\n api.dispatchAction({\r\n seriesId: seriesModel.id,\r\n type: 'treeRoam',\r\n zoom: e.scale,\r\n originX: e.originX,\r\n originY: e.originY\r\n });\r\n _this._updateNodeAndLinkScale(seriesModel);\r\n api.updateLabelLayout();\r\n });\r\n };\r\n TreeView.prototype._updateNodeAndLinkScale = function (seriesModel) {\r\n var data = seriesModel.getData();\r\n var nodeScale = this._getNodeGlobalScale(seriesModel);\r\n data.eachItemGraphicEl(function (el, idx) {\r\n el.setSymbolScale(nodeScale);\r\n });\r\n };\r\n TreeView.prototype._getNodeGlobalScale = function (seriesModel) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n if (coordSys.type !== 'view') {\r\n return 1;\r\n }\r\n var nodeScaleRatio = this._nodeScaleRatio;\r\n var groupZoom = coordSys.scaleX || 1;\r\n var roamZoom = coordSys.getZoom();\r\n var nodeScale = (roamZoom - 1) * nodeScaleRatio + 1;\r\n return nodeScale / groupZoom;\r\n };\r\n TreeView.prototype.dispose = function () {\r\n this._controller && this._controller.dispose();\r\n this._controllerHost = null;\r\n };\r\n TreeView.prototype.remove = function () {\r\n this._mainGroup.removeAll();\r\n this._data = null;\r\n };\r\n TreeView.type = 'tree';\r\n return TreeView;\r\n }(ChartView));\r\n function symbolNeedsDraw$1(data, dataIndex) {\r\n var layout = data.getItemLayout(dataIndex);\r\n return layout\r\n && !isNaN(layout.x) && !isNaN(layout.y);\r\n }\r\n function updateNode(data, dataIndex, symbolEl, group, seriesModel) {\r\n var isInit = !symbolEl;\r\n var node = data.tree.getNodeByDataIndex(dataIndex);\r\n var itemModel = node.getModel();\r\n var visualColor = node.getVisual('style').fill;\r\n var symbolInnerColor = node.isExpand === false && node.children.length !== 0\r\n ? visualColor : '#fff';\r\n var virtualRoot = data.tree.root;\r\n var source = node.parentNode === virtualRoot ? node : node.parentNode || node;\r\n var sourceSymbolEl = data.getItemGraphicEl(source.dataIndex);\r\n var sourceLayout = source.getLayout();\r\n var sourceOldLayout = sourceSymbolEl\r\n ? {\r\n x: sourceSymbolEl.__oldX,\r\n y: sourceSymbolEl.__oldY,\r\n rawX: sourceSymbolEl.__radialOldRawX,\r\n rawY: sourceSymbolEl.__radialOldRawY\r\n }\r\n : sourceLayout;\r\n var targetLayout = node.getLayout();\r\n if (isInit) {\r\n symbolEl = new Symbol(data, dataIndex, null, {\r\n symbolInnerColor: symbolInnerColor,\r\n useNameLabel: true\r\n });\r\n symbolEl.x = sourceOldLayout.x;\r\n symbolEl.y = sourceOldLayout.y;\r\n }\r\n else {\r\n symbolEl.updateData(data, dataIndex, null, {\r\n symbolInnerColor: symbolInnerColor,\r\n useNameLabel: true\r\n });\r\n }\r\n symbolEl.__radialOldRawX = symbolEl.__radialRawX;\r\n symbolEl.__radialOldRawY = symbolEl.__radialRawY;\r\n symbolEl.__radialRawX = targetLayout.rawX;\r\n symbolEl.__radialRawY = targetLayout.rawY;\r\n group.add(symbolEl);\r\n data.setItemGraphicEl(dataIndex, symbolEl);\r\n symbolEl.__oldX = symbolEl.x;\r\n symbolEl.__oldY = symbolEl.y;\r\n updateProps(symbolEl, {\r\n x: targetLayout.x,\r\n y: targetLayout.y\r\n }, seriesModel);\r\n var symbolPath = symbolEl.getSymbolPath();\r\n if (seriesModel.get('layout') === 'radial') {\r\n var realRoot = virtualRoot.children[0];\r\n var rootLayout = realRoot.getLayout();\r\n var length_1 = realRoot.children.length;\r\n var rad = void 0;\r\n var isLeft = void 0;\r\n if (targetLayout.x === rootLayout.x && node.isExpand === true) {\r\n var center = {\r\n x: (realRoot.children[0].getLayout().x + realRoot.children[length_1 - 1].getLayout().x) / 2,\r\n y: (realRoot.children[0].getLayout().y + realRoot.children[length_1 - 1].getLayout().y) / 2\r\n };\r\n rad = Math.atan2(center.y - rootLayout.y, center.x - rootLayout.x);\r\n if (rad < 0) {\r\n rad = Math.PI * 2 + rad;\r\n }\r\n isLeft = center.x < rootLayout.x;\r\n if (isLeft) {\r\n rad = rad - Math.PI;\r\n }\r\n }\r\n else {\r\n rad = Math.atan2(targetLayout.y - rootLayout.y, targetLayout.x - rootLayout.x);\r\n if (rad < 0) {\r\n rad = Math.PI * 2 + rad;\r\n }\r\n if (node.children.length === 0 || (node.children.length !== 0 && node.isExpand === false)) {\r\n isLeft = targetLayout.x < rootLayout.x;\r\n if (isLeft) {\r\n rad = rad - Math.PI;\r\n }\r\n }\r\n else {\r\n isLeft = targetLayout.x > rootLayout.x;\r\n if (!isLeft) {\r\n rad = rad - Math.PI;\r\n }\r\n }\r\n }\r\n var textPosition = isLeft ? 'left' : 'right';\r\n var normalLabelModel = itemModel.getModel('label');\r\n var rotate = normalLabelModel.get('rotate');\r\n var labelRotateRadian = rotate * (Math.PI / 180);\r\n var textContent = symbolPath.getTextContent();\r\n if (textContent) {\r\n symbolPath.setTextConfig({\r\n position: normalLabelModel.get('position') || textPosition,\r\n rotation: rotate == null ? -rad : labelRotateRadian,\r\n origin: 'center'\r\n });\r\n textContent.setStyle('verticalAlign', 'middle');\r\n }\r\n }\r\n var focus = itemModel.get(['emphasis', 'focus']);\r\n var focusDataIndices = focus === 'ancestor'\r\n ? node.getAncestorsIndices()\r\n : focus === 'descendant' ? node.getDescendantIndices() : null;\r\n if (focusDataIndices) {\r\n getECData(symbolEl).focus = focusDataIndices;\r\n }\r\n drawEdge(seriesModel, node, virtualRoot, symbolEl, sourceOldLayout, sourceLayout, targetLayout, group);\r\n if (symbolEl.__edge) {\r\n symbolEl.onHoverStateChange = function (toState) {\r\n if (toState !== 'blur') {\r\n var parentEl = node.parentNode\r\n && data.getItemGraphicEl(node.parentNode.dataIndex);\r\n if (!(parentEl && parentEl.hoverState === HOVER_STATE_BLUR)) {\r\n setStatesFlag(symbolEl.__edge, toState);\r\n }\r\n }\r\n };\r\n }\r\n }\r\n function drawEdge(seriesModel, node, virtualRoot, symbolEl, sourceOldLayout, sourceLayout, targetLayout, group) {\r\n var itemModel = node.getModel();\r\n var edgeShape = seriesModel.get('edgeShape');\r\n var layout = seriesModel.get('layout');\r\n var orient = seriesModel.getOrient();\r\n var curvature = seriesModel.get(['lineStyle', 'curveness']);\r\n var edgeForkPosition = seriesModel.get('edgeForkPosition');\r\n var lineStyle = itemModel.getModel('lineStyle').getLineStyle();\r\n var edge = symbolEl.__edge;\r\n if (edgeShape === 'curve') {\r\n if (node.parentNode && node.parentNode !== virtualRoot) {\r\n if (!edge) {\r\n edge = symbolEl.__edge = new BezierCurve({\r\n shape: getEdgeShape(layout, orient, curvature, sourceOldLayout, sourceOldLayout)\r\n });\r\n }\r\n updateProps(edge, {\r\n shape: getEdgeShape(layout, orient, curvature, sourceLayout, targetLayout)\r\n }, seriesModel);\r\n }\r\n }\r\n else if (edgeShape === 'polyline') {\r\n if (layout === 'orthogonal') {\r\n if (node !== virtualRoot && node.children && (node.children.length !== 0) && (node.isExpand === true)) {\r\n var children = node.children;\r\n var childPoints = [];\r\n for (var i = 0; i < children.length; i++) {\r\n var childLayout = children[i].getLayout();\r\n childPoints.push([childLayout.x, childLayout.y]);\r\n }\r\n if (!edge) {\r\n edge = symbolEl.__edge = new TreePath({\r\n shape: {\r\n parentPoint: [targetLayout.x, targetLayout.y],\r\n childPoints: [[targetLayout.x, targetLayout.y]],\r\n orient: orient,\r\n forkPosition: edgeForkPosition\r\n }\r\n });\r\n }\r\n updateProps(edge, {\r\n shape: {\r\n parentPoint: [targetLayout.x, targetLayout.y],\r\n childPoints: childPoints\r\n }\r\n }, seriesModel);\r\n }\r\n }\r\n else {\r\n if (__DEV__) {\r\n throw new Error('The polyline edgeShape can only be used in orthogonal layout');\r\n }\r\n }\r\n }\r\n if (edge) {\r\n edge.useStyle(defaults({\r\n strokeNoScale: true, fill: null\r\n }, lineStyle));\r\n setStatesStylesFromModel(edge, itemModel, 'lineStyle');\r\n setDefaultStateProxy(edge);\r\n group.add(edge);\r\n }\r\n }\r\n function removeNode(data, dataIndex, symbolEl, group, seriesModel) {\r\n var node = data.tree.getNodeByDataIndex(dataIndex);\r\n var virtualRoot = data.tree.root;\r\n var source = node.parentNode === virtualRoot ? node : node.parentNode || node;\r\n var sourceLayout;\r\n while (sourceLayout = source.getLayout(), sourceLayout == null) {\r\n source = source.parentNode === virtualRoot ? source : source.parentNode || source;\r\n }\r\n var removeAnimationOpt = {\r\n duration: seriesModel.get('animationDurationUpdate'),\r\n easing: seriesModel.get('animationEasingUpdate')\r\n };\r\n removeElement(symbolEl, {\r\n x: sourceLayout.x + 1,\r\n y: sourceLayout.y + 1\r\n }, seriesModel, {\r\n cb: function () {\r\n group.remove(symbolEl);\r\n data.setItemGraphicEl(dataIndex, null);\r\n },\r\n removeOpt: removeAnimationOpt\r\n });\r\n symbolEl.fadeOut(null, {\r\n fadeLabel: true,\r\n animation: removeAnimationOpt\r\n });\r\n var sourceSymbolEl = data.getItemGraphicEl(source.dataIndex);\r\n var sourceEdge = sourceSymbolEl.__edge;\r\n var edge = symbolEl.__edge\r\n || ((source.isExpand === false || source.children.length === 1) ? sourceEdge : undefined);\r\n var edgeShape = seriesModel.get('edgeShape');\r\n var layoutOpt = seriesModel.get('layout');\r\n var orient = seriesModel.get('orient');\r\n var curvature = seriesModel.get(['lineStyle', 'curveness']);\r\n if (edge) {\r\n if (edgeShape === 'curve') {\r\n removeElement(edge, {\r\n shape: getEdgeShape(layoutOpt, orient, curvature, sourceLayout, sourceLayout),\r\n style: {\r\n opacity: 0\r\n }\r\n }, seriesModel, {\r\n cb: function () {\r\n group.remove(edge);\r\n },\r\n removeOpt: removeAnimationOpt\r\n });\r\n }\r\n else if (edgeShape === 'polyline' && seriesModel.get('layout') === 'orthogonal') {\r\n removeElement(edge, {\r\n shape: {\r\n parentPoint: [sourceLayout.x, sourceLayout.y],\r\n childPoints: [[sourceLayout.x, sourceLayout.y]]\r\n },\r\n style: {\r\n opacity: 0\r\n }\r\n }, seriesModel, {\r\n cb: function () {\r\n group.remove(edge);\r\n },\r\n removeOpt: removeAnimationOpt\r\n });\r\n }\r\n }\r\n }\r\n function getEdgeShape(layoutOpt, orient, curvature, sourceLayout, targetLayout) {\r\n var cpx1;\r\n var cpy1;\r\n var cpx2;\r\n var cpy2;\r\n var x1;\r\n var x2;\r\n var y1;\r\n var y2;\r\n if (layoutOpt === 'radial') {\r\n x1 = sourceLayout.rawX;\r\n y1 = sourceLayout.rawY;\r\n x2 = targetLayout.rawX;\r\n y2 = targetLayout.rawY;\r\n var radialCoor1 = radialCoordinate(x1, y1);\r\n var radialCoor2 = radialCoordinate(x1, y1 + (y2 - y1) * curvature);\r\n var radialCoor3 = radialCoordinate(x2, y2 + (y1 - y2) * curvature);\r\n var radialCoor4 = radialCoordinate(x2, y2);\r\n return {\r\n x1: radialCoor1.x || 0,\r\n y1: radialCoor1.y || 0,\r\n x2: radialCoor4.x || 0,\r\n y2: radialCoor4.y || 0,\r\n cpx1: radialCoor2.x || 0,\r\n cpy1: radialCoor2.y || 0,\r\n cpx2: radialCoor3.x || 0,\r\n cpy2: radialCoor3.y || 0\r\n };\r\n }\r\n else {\r\n x1 = sourceLayout.x;\r\n y1 = sourceLayout.y;\r\n x2 = targetLayout.x;\r\n y2 = targetLayout.y;\r\n if (orient === 'LR' || orient === 'RL') {\r\n cpx1 = x1 + (x2 - x1) * curvature;\r\n cpy1 = y1;\r\n cpx2 = x2 + (x1 - x2) * curvature;\r\n cpy2 = y2;\r\n }\r\n if (orient === 'TB' || orient === 'BT') {\r\n cpx1 = x1;\r\n cpy1 = y1 + (y2 - y1) * curvature;\r\n cpx2 = x2;\r\n cpy2 = y2 + (y1 - y2) * curvature;\r\n }\r\n }\r\n return {\r\n x1: x1,\r\n y1: y1,\r\n x2: x2,\r\n y2: y2,\r\n cpx1: cpx1,\r\n cpy1: cpy1,\r\n cpx2: cpx2,\r\n cpy2: cpy2\r\n };\r\n }\r\n ChartView.registerClass(TreeView);\n\n registerAction({\r\n type: 'treeExpandAndCollapse',\r\n event: 'treeExpandAndCollapse',\r\n update: 'update'\r\n }, function (payload, ecModel) {\r\n ecModel.eachComponent({\r\n mainType: 'series', subType: 'tree', query: payload\r\n }, function (seriesModel) {\r\n var dataIndex = payload.dataIndex;\r\n var tree = seriesModel.getData().tree;\r\n var node = tree.getNodeByDataIndex(dataIndex);\r\n node.isExpand = !node.isExpand;\r\n });\r\n });\r\n registerAction({\r\n type: 'treeRoam',\r\n event: 'treeRoam',\r\n update: 'none'\r\n }, function (payload, ecModel) {\r\n ecModel.eachComponent({\r\n mainType: 'series', subType: 'tree', query: payload\r\n }, function (seriesModel) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n var res = updateCenterAndZoom(coordSys, payload);\r\n seriesModel.setCenter\r\n && seriesModel.setCenter(res.center);\r\n seriesModel.setZoom\r\n && seriesModel.setZoom(res.zoom);\r\n });\r\n });\n\n function eachAfter(root, callback, separation) {\r\n var nodes = [root];\r\n var next = [];\r\n var node;\r\n while (node = nodes.pop()) {\r\n next.push(node);\r\n if (node.isExpand) {\r\n var children = node.children;\r\n if (children.length) {\r\n for (var i = 0; i < children.length; i++) {\r\n nodes.push(children[i]);\r\n }\r\n }\r\n }\r\n }\r\n while (node = next.pop()) {\r\n callback(node, separation);\r\n }\r\n }\r\n function eachBefore(root, callback) {\r\n var nodes = [root];\r\n var node;\r\n while (node = nodes.pop()) {\r\n callback(node);\r\n if (node.isExpand) {\r\n var children = node.children;\r\n if (children.length) {\r\n for (var i = children.length - 1; i >= 0; i--) {\r\n nodes.push(children[i]);\r\n }\r\n }\r\n }\r\n }\r\n }\n\n function treeLayout(ecModel, api) {\r\n ecModel.eachSeriesByType('tree', function (seriesModel) {\r\n commonLayout(seriesModel, api);\r\n });\r\n }\r\n function commonLayout(seriesModel, api) {\r\n var layoutInfo = getViewRect$1(seriesModel, api);\r\n seriesModel.layoutInfo = layoutInfo;\r\n var layout = seriesModel.get('layout');\r\n var width = 0;\r\n var height = 0;\r\n var separation$1 = null;\r\n if (layout === 'radial') {\r\n width = 2 * Math.PI;\r\n height = Math.min(layoutInfo.height, layoutInfo.width) / 2;\r\n separation$1 = separation(function (node1, node2) {\r\n return (node1.parentNode === node2.parentNode ? 1 : 2) / node1.depth;\r\n });\r\n }\r\n else {\r\n width = layoutInfo.width;\r\n height = layoutInfo.height;\r\n separation$1 = separation();\r\n }\r\n var virtualRoot = seriesModel.getData().tree.root;\r\n var realRoot = virtualRoot.children[0];\r\n if (realRoot) {\r\n init$2(virtualRoot);\r\n eachAfter(realRoot, firstWalk, separation$1);\r\n virtualRoot.hierNode.modifier = -realRoot.hierNode.prelim;\r\n eachBefore(realRoot, secondWalk);\r\n var left_1 = realRoot;\r\n var right_1 = realRoot;\r\n var bottom_1 = realRoot;\r\n eachBefore(realRoot, function (node) {\r\n var x = node.getLayout().x;\r\n if (x < left_1.getLayout().x) {\r\n left_1 = node;\r\n }\r\n if (x > right_1.getLayout().x) {\r\n right_1 = node;\r\n }\r\n if (node.depth > bottom_1.depth) {\r\n bottom_1 = node;\r\n }\r\n });\r\n var delta = left_1 === right_1 ? 1 : separation$1(left_1, right_1) / 2;\r\n var tx_1 = delta - left_1.getLayout().x;\r\n var kx_1 = 0;\r\n var ky_1 = 0;\r\n var coorX_1 = 0;\r\n var coorY_1 = 0;\r\n if (layout === 'radial') {\r\n kx_1 = width / (right_1.getLayout().x + delta + tx_1);\r\n ky_1 = height / ((bottom_1.depth - 1) || 1);\r\n eachBefore(realRoot, function (node) {\r\n coorX_1 = (node.getLayout().x + tx_1) * kx_1;\r\n coorY_1 = (node.depth - 1) * ky_1;\r\n var finalCoor = radialCoordinate(coorX_1, coorY_1);\r\n node.setLayout({ x: finalCoor.x, y: finalCoor.y, rawX: coorX_1, rawY: coorY_1 }, true);\r\n });\r\n }\r\n else {\r\n var orient_1 = seriesModel.getOrient();\r\n if (orient_1 === 'RL' || orient_1 === 'LR') {\r\n ky_1 = height / (right_1.getLayout().x + delta + tx_1);\r\n kx_1 = width / ((bottom_1.depth - 1) || 1);\r\n eachBefore(realRoot, function (node) {\r\n coorY_1 = (node.getLayout().x + tx_1) * ky_1;\r\n coorX_1 = orient_1 === 'LR'\r\n ? (node.depth - 1) * kx_1\r\n : width - (node.depth - 1) * kx_1;\r\n node.setLayout({ x: coorX_1, y: coorY_1 }, true);\r\n });\r\n }\r\n else if (orient_1 === 'TB' || orient_1 === 'BT') {\r\n kx_1 = width / (right_1.getLayout().x + delta + tx_1);\r\n ky_1 = height / ((bottom_1.depth - 1) || 1);\r\n eachBefore(realRoot, function (node) {\r\n coorX_1 = (node.getLayout().x + tx_1) * kx_1;\r\n coorY_1 = orient_1 === 'TB'\r\n ? (node.depth - 1) * ky_1\r\n : height - (node.depth - 1) * ky_1;\r\n node.setLayout({ x: coorX_1, y: coorY_1 }, true);\r\n });\r\n }\r\n }\r\n }\r\n }\n\n function treeVisual(ecModel) {\r\n ecModel.eachSeriesByType('tree', function (seriesModel) {\r\n var data = seriesModel.getData();\r\n var tree = data.tree;\r\n tree.eachNode(function (node) {\r\n var model = node.getModel();\r\n var style = model.getModel('itemStyle').getItemStyle();\r\n var existsStyle = data.ensureUniqueItemVisual(node.dataIndex, 'style');\r\n extend(existsStyle, style);\r\n });\r\n });\r\n }\n\n registerLayout(treeLayout);\r\n registerVisual(treeVisual);\n\n function retrieveTargetInfo(payload, validPayloadTypes, seriesModel) {\r\n if (payload && indexOf(validPayloadTypes, payload.type) >= 0) {\r\n var root = seriesModel.getData().tree.root;\r\n var targetNode = payload.targetNode;\r\n if (typeof targetNode === 'string') {\r\n targetNode = root.getNodeById(targetNode);\r\n }\r\n if (targetNode && root.contains(targetNode)) {\r\n return {\r\n node: targetNode\r\n };\r\n }\r\n var targetNodeId = payload.targetNodeId;\r\n if (targetNodeId != null && (targetNode = root.getNodeById(targetNodeId))) {\r\n return {\r\n node: targetNode\r\n };\r\n }\r\n }\r\n }\r\n function getPathToRoot(node) {\r\n var path = [];\r\n while (node) {\r\n node = node.parentNode;\r\n node && path.push(node);\r\n }\r\n return path.reverse();\r\n }\r\n function aboveViewRoot(viewRoot, node) {\r\n var viewPath = getPathToRoot(viewRoot);\r\n return indexOf(viewPath, node) >= 0;\r\n }\r\n function wrapTreePathInfo(node, seriesModel) {\r\n var treePathInfo = [];\r\n while (node) {\r\n var nodeDataIndex = node.dataIndex;\r\n treePathInfo.push({\r\n name: node.name,\r\n dataIndex: nodeDataIndex,\r\n value: seriesModel.getRawValue(nodeDataIndex)\r\n });\r\n node = node.parentNode;\r\n }\r\n treePathInfo.reverse();\r\n return treePathInfo;\r\n }\n\n function enableAriaDecalForTree(seriesModel) {\r\n var data = seriesModel.getData();\r\n var tree = data.tree;\r\n var decalPaletteScope = {};\r\n tree.eachNode(function (node) {\r\n var current = node;\r\n while (current && current.depth > 1) {\r\n current = current.parentNode;\r\n }\r\n var decal = getDecalFromPalette(seriesModel.ecModel, current.name || current.dataIndex + '', decalPaletteScope);\r\n node.setVisual('decal', decal);\r\n });\r\n }\n\n var TreemapSeriesModel = (function (_super) {\r\n __extends(TreemapSeriesModel, _super);\r\n function TreemapSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = TreemapSeriesModel.type;\r\n _this.preventUsingHoverLayer = true;\r\n return _this;\r\n }\r\n TreemapSeriesModel.prototype.getInitialData = function (option, ecModel) {\r\n var root = {\r\n name: option.name,\r\n children: option.data\r\n };\r\n completeTreeValue(root);\r\n var levels = option.levels || [];\r\n var designatedVisualItemStyle = this.designatedVisualItemStyle = {};\r\n var designatedVisualModel = new Model({ itemStyle: designatedVisualItemStyle }, this, ecModel);\r\n levels = option.levels = setDefault(levels, ecModel);\r\n var levelModels = map(levels || [], function (levelDefine) {\r\n return new Model(levelDefine, designatedVisualModel, ecModel);\r\n }, this);\r\n var tree = Tree.createTree(root, this, beforeLink);\r\n function beforeLink(nodeData) {\r\n nodeData.wrapMethod('getItemModel', function (model, idx) {\r\n var node = tree.getNodeByDataIndex(idx);\r\n var levelModel = levelModels[node.depth];\r\n model.parentModel = levelModel || designatedVisualModel;\r\n return model;\r\n });\r\n }\r\n return tree.data;\r\n };\r\n TreemapSeriesModel.prototype.optionUpdated = function () {\r\n this.resetViewRoot();\r\n };\r\n TreemapSeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\r\n var data = this.getData();\r\n var value = this.getRawValue(dataIndex);\r\n var name = data.getName(dataIndex);\r\n return createTooltipMarkup('nameValue', { name: name, value: value });\r\n };\r\n TreemapSeriesModel.prototype.getDataParams = function (dataIndex) {\r\n var params = _super.prototype.getDataParams.apply(this, arguments);\r\n var node = this.getData().tree.getNodeByDataIndex(dataIndex);\r\n params.treePathInfo = wrapTreePathInfo(node, this);\r\n return params;\r\n };\r\n TreemapSeriesModel.prototype.setLayoutInfo = function (layoutInfo) {\r\n this.layoutInfo = this.layoutInfo || {};\r\n extend(this.layoutInfo, layoutInfo);\r\n };\r\n TreemapSeriesModel.prototype.mapIdToIndex = function (id) {\r\n var idIndexMap = this._idIndexMap;\r\n if (!idIndexMap) {\r\n idIndexMap = this._idIndexMap = createHashMap();\r\n this._idIndexMapCount = 0;\r\n }\r\n var index = idIndexMap.get(id);\r\n if (index == null) {\r\n idIndexMap.set(id, index = this._idIndexMapCount++);\r\n }\r\n return index;\r\n };\r\n TreemapSeriesModel.prototype.getViewRoot = function () {\r\n return this._viewRoot;\r\n };\r\n TreemapSeriesModel.prototype.resetViewRoot = function (viewRoot) {\r\n viewRoot\r\n ? (this._viewRoot = viewRoot)\r\n : (viewRoot = this._viewRoot);\r\n var root = this.getRawData().tree.root;\r\n if (!viewRoot\r\n || (viewRoot !== root && !root.contains(viewRoot))) {\r\n this._viewRoot = root;\r\n }\r\n };\r\n TreemapSeriesModel.prototype.enableAriaDecal = function () {\r\n enableAriaDecalForTree(this);\r\n };\r\n TreemapSeriesModel.type = 'series.treemap';\r\n TreemapSeriesModel.layoutMode = 'box';\r\n TreemapSeriesModel.defaultOption = {\r\n progressive: 0,\r\n left: 'center',\r\n top: 'middle',\r\n width: '80%',\r\n height: '80%',\r\n sort: true,\r\n clipWindow: 'origin',\r\n squareRatio: 0.5 * (1 + Math.sqrt(5)),\r\n leafDepth: null,\r\n drillDownIcon: '▶',\r\n zoomToNodeRatio: 0.32 * 0.32,\r\n roam: true,\r\n nodeClick: 'zoomToNode',\r\n animation: true,\r\n animationDurationUpdate: 900,\r\n animationEasing: 'quinticInOut',\r\n breadcrumb: {\r\n show: true,\r\n height: 22,\r\n left: 'center',\r\n top: 'bottom',\r\n emptyItemWidth: 25,\r\n itemStyle: {\r\n color: 'rgba(0,0,0,0.7)',\r\n textStyle: {\r\n color: '#fff'\r\n }\r\n }\r\n },\r\n label: {\r\n show: true,\r\n distance: 0,\r\n padding: 5,\r\n position: 'inside',\r\n color: '#fff',\r\n overflow: 'truncate'\r\n },\r\n upperLabel: {\r\n show: false,\r\n position: [0, '50%'],\r\n height: 20,\r\n overflow: 'truncate',\r\n verticalAlign: 'middle'\r\n },\r\n itemStyle: {\r\n color: null,\r\n colorAlpha: null,\r\n colorSaturation: null,\r\n borderWidth: 0,\r\n gapWidth: 0,\r\n borderColor: '#fff',\r\n borderColorSaturation: null\r\n },\r\n emphasis: {\r\n upperLabel: {\r\n show: true,\r\n position: [0, '50%'],\r\n ellipsis: true,\r\n verticalAlign: 'middle'\r\n }\r\n },\r\n visualDimension: 0,\r\n visualMin: null,\r\n visualMax: null,\r\n color: [],\r\n colorAlpha: null,\r\n colorSaturation: null,\r\n colorMappingBy: 'index',\r\n visibleMin: 10,\r\n childrenVisibleMin: null,\r\n levels: []\r\n };\r\n return TreemapSeriesModel;\r\n }(SeriesModel));\r\n function completeTreeValue(dataNode) {\r\n var sum = 0;\r\n each(dataNode.children, function (child) {\r\n completeTreeValue(child);\r\n var childValue = child.value;\r\n isArray(childValue) && (childValue = childValue[0]);\r\n sum += childValue;\r\n });\r\n var thisValue = dataNode.value;\r\n if (isArray(thisValue)) {\r\n thisValue = thisValue[0];\r\n }\r\n if (thisValue == null || isNaN(thisValue)) {\r\n thisValue = sum;\r\n }\r\n if (thisValue < 0) {\r\n thisValue = 0;\r\n }\r\n isArray(dataNode.value)\r\n ? (dataNode.value[0] = thisValue)\r\n : (dataNode.value = thisValue);\r\n }\r\n function setDefault(levels, ecModel) {\r\n var globalColorList = normalizeToArray(ecModel.get('color'));\r\n var globalDecalList = normalizeToArray(ecModel.get('decals'));\r\n if (!globalColorList) {\r\n return;\r\n }\r\n levels = levels || [];\r\n var hasColorDefine;\r\n var hasDecalDefine;\r\n each(levels, function (levelDefine) {\r\n var model = new Model(levelDefine);\r\n var modelColor = model.get('color');\r\n var modelDecal = model.get('decal');\r\n if (model.get(['itemStyle', 'color'])\r\n || (modelColor && modelColor !== 'none')) {\r\n hasColorDefine = true;\r\n }\r\n if (model.get(['itemStyle', 'decal'])\r\n || (modelDecal && modelDecal !== 'none')) {\r\n hasDecalDefine = true;\r\n }\r\n });\r\n var level0 = levels[0] || (levels[0] = {});\r\n if (!hasColorDefine) {\r\n level0.color = globalColorList.slice();\r\n }\r\n if (!hasDecalDefine && globalDecalList) {\r\n level0.decal = globalDecalList.slice();\r\n }\r\n return levels;\r\n }\r\n SeriesModel.registerClass(TreemapSeriesModel);\n\n var TEXT_PADDING = 8;\r\n var ITEM_GAP = 8;\r\n var ARRAY_LENGTH = 5;\r\n var Breadcrumb = (function () {\r\n function Breadcrumb(containerGroup) {\r\n this.group = new Group();\r\n containerGroup.add(this.group);\r\n }\r\n Breadcrumb.prototype.render = function (seriesModel, api, targetNode, onSelect) {\r\n var model = seriesModel.getModel('breadcrumb');\r\n var thisGroup = this.group;\r\n thisGroup.removeAll();\r\n if (!model.get('show') || !targetNode) {\r\n return;\r\n }\r\n var normalStyleModel = model.getModel('itemStyle');\r\n var textStyleModel = normalStyleModel.getModel('textStyle');\r\n var layoutParam = {\r\n pos: {\r\n left: model.get('left'),\r\n right: model.get('right'),\r\n top: model.get('top'),\r\n bottom: model.get('bottom')\r\n },\r\n box: {\r\n width: api.getWidth(),\r\n height: api.getHeight()\r\n },\r\n emptyItemWidth: model.get('emptyItemWidth'),\r\n totalWidth: 0,\r\n renderList: []\r\n };\r\n this._prepare(targetNode, layoutParam, textStyleModel);\r\n this._renderContent(seriesModel, layoutParam, normalStyleModel, textStyleModel, onSelect);\r\n positionElement(thisGroup, layoutParam.pos, layoutParam.box);\r\n };\r\n Breadcrumb.prototype._prepare = function (targetNode, layoutParam, textStyleModel) {\r\n for (var node = targetNode; node; node = node.parentNode) {\r\n var text = convertOptionIdName(node.getModel().get('name'), '');\r\n var textRect = textStyleModel.getTextRect(text);\r\n var itemWidth = Math.max(textRect.width + TEXT_PADDING * 2, layoutParam.emptyItemWidth);\r\n layoutParam.totalWidth += itemWidth + ITEM_GAP;\r\n layoutParam.renderList.push({\r\n node: node,\r\n text: text,\r\n width: itemWidth\r\n });\r\n }\r\n };\r\n Breadcrumb.prototype._renderContent = function (seriesModel, layoutParam, normalStyleModel, textStyleModel, onSelect) {\r\n var lastX = 0;\r\n var emptyItemWidth = layoutParam.emptyItemWidth;\r\n var height = seriesModel.get(['breadcrumb', 'height']);\r\n var availableSize = getAvailableSize(layoutParam.pos, layoutParam.box);\r\n var totalWidth = layoutParam.totalWidth;\r\n var renderList = layoutParam.renderList;\r\n for (var i = renderList.length - 1; i >= 0; i--) {\r\n var item = renderList[i];\r\n var itemNode = item.node;\r\n var itemWidth = item.width;\r\n var text = item.text;\r\n if (totalWidth > availableSize.width) {\r\n totalWidth -= itemWidth - emptyItemWidth;\r\n itemWidth = emptyItemWidth;\r\n text = null;\r\n }\r\n var el = new Polygon({\r\n shape: {\r\n points: makeItemPoints(lastX, 0, itemWidth, height, i === renderList.length - 1, i === 0)\r\n },\r\n style: defaults(normalStyleModel.getItemStyle(), {\r\n lineJoin: 'bevel'\r\n }),\r\n textContent: new ZRText({\r\n style: {\r\n text: text,\r\n fill: textStyleModel.getTextColor(),\r\n font: textStyleModel.getFont()\r\n }\r\n }),\r\n textConfig: {\r\n position: 'inside'\r\n },\r\n z: 10,\r\n onclick: curry(onSelect, itemNode)\r\n });\r\n el.disableLabelAnimation = true;\r\n this.group.add(el);\r\n packEventData(el, seriesModel, itemNode);\r\n lastX += itemWidth + ITEM_GAP;\r\n }\r\n };\r\n Breadcrumb.prototype.remove = function () {\r\n this.group.removeAll();\r\n };\r\n return Breadcrumb;\r\n }());\r\n function makeItemPoints(x, y, itemWidth, itemHeight, head, tail) {\r\n var points = [\r\n [head ? x : x - ARRAY_LENGTH, y],\r\n [x + itemWidth, y],\r\n [x + itemWidth, y + itemHeight],\r\n [head ? x : x - ARRAY_LENGTH, y + itemHeight]\r\n ];\r\n !tail && points.splice(2, 0, [x + itemWidth + ARRAY_LENGTH, y + itemHeight / 2]);\r\n !head && points.push([x, y + itemHeight / 2]);\r\n return points;\r\n }\r\n function packEventData(el, seriesModel, itemNode) {\r\n getECData(el).eventData = {\r\n componentType: 'series',\r\n componentSubType: 'treemap',\r\n componentIndex: seriesModel.componentIndex,\r\n seriesIndex: seriesModel.componentIndex,\r\n seriesName: seriesModel.name,\r\n seriesType: 'treemap',\r\n selfType: 'breadcrumb',\r\n nodeData: {\r\n dataIndex: itemNode && itemNode.dataIndex,\r\n name: itemNode && itemNode.name\r\n },\r\n treePathInfo: itemNode && wrapTreePathInfo(itemNode, seriesModel)\r\n };\r\n }\n\n var AnimationWrap = (function () {\r\n function AnimationWrap() {\r\n this._storage = [];\r\n this._elExistsMap = {};\r\n }\r\n AnimationWrap.prototype.add = function (el, target, duration, delay, easing) {\r\n if (this._elExistsMap[el.id]) {\r\n return false;\r\n }\r\n this._elExistsMap[el.id] = true;\r\n this._storage.push({\r\n el: el,\r\n target: target,\r\n duration: duration,\r\n delay: delay,\r\n easing: easing\r\n });\r\n return true;\r\n };\r\n AnimationWrap.prototype.finished = function (callback) {\r\n this._finishedCallback = callback;\r\n return this;\r\n };\r\n AnimationWrap.prototype.start = function () {\r\n var _this = this;\r\n var count = this._storage.length;\r\n var checkTerminate = function () {\r\n count--;\r\n if (count <= 0) {\r\n _this._storage.length = 0;\r\n _this._elExistsMap = {};\r\n _this._finishedCallback && _this._finishedCallback();\r\n }\r\n };\r\n for (var i = 0, len = this._storage.length; i < len; i++) {\r\n var item = this._storage[i];\r\n item.el.animateTo(item.target, {\r\n duration: item.duration,\r\n delay: item.delay,\r\n easing: item.easing,\r\n setToFinal: true,\r\n done: checkTerminate,\r\n aborted: checkTerminate\r\n });\r\n }\r\n return this;\r\n };\r\n return AnimationWrap;\r\n }());\r\n function createWrap() {\r\n return new AnimationWrap();\r\n }\n\n var Group$1 = Group;\r\n var Rect$1 = Rect;\r\n var DRAG_THRESHOLD = 3;\r\n var PATH_LABEL_NOAMAL = 'label';\r\n var PATH_UPPERLABEL_NORMAL = 'upperLabel';\r\n var Z_BASE = 10;\r\n var Z_BG = 1;\r\n var Z_CONTENT = 2;\r\n var getStateItemStyle = makeStyleMapper([\r\n ['fill', 'color'],\r\n ['stroke', 'strokeColor'],\r\n ['lineWidth', 'strokeWidth'],\r\n ['shadowBlur'],\r\n ['shadowOffsetX'],\r\n ['shadowOffsetY'],\r\n ['shadowColor']\r\n ]);\r\n var getItemStyleNormal = function (model) {\r\n var itemStyle = getStateItemStyle(model);\r\n itemStyle.stroke = itemStyle.fill = itemStyle.lineWidth = null;\r\n return itemStyle;\r\n };\r\n var inner$9 = makeInner();\r\n var TreemapView = (function (_super) {\r\n __extends(TreemapView, _super);\r\n function TreemapView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = TreemapView.type;\r\n _this._state = 'ready';\r\n _this._storage = createStorage();\r\n return _this;\r\n }\r\n TreemapView.prototype.render = function (seriesModel, ecModel, api, payload) {\r\n var models = ecModel.findComponents({\r\n mainType: 'series', subType: 'treemap', query: payload\r\n });\r\n if (indexOf(models, seriesModel) < 0) {\r\n return;\r\n }\r\n this.seriesModel = seriesModel;\r\n this.api = api;\r\n this.ecModel = ecModel;\r\n var types = ['treemapZoomToNode', 'treemapRootToNode'];\r\n var targetInfo = retrieveTargetInfo(payload, types, seriesModel);\r\n var payloadType = payload && payload.type;\r\n var layoutInfo = seriesModel.layoutInfo;\r\n var isInit = !this._oldTree;\r\n var thisStorage = this._storage;\r\n var reRoot = (payloadType === 'treemapRootToNode' && targetInfo && thisStorage)\r\n ? {\r\n rootNodeGroup: thisStorage.nodeGroup[targetInfo.node.getRawIndex()],\r\n direction: payload.direction\r\n }\r\n : null;\r\n var containerGroup = this._giveContainerGroup(layoutInfo);\r\n var renderResult = this._doRender(containerGroup, seriesModel, reRoot);\r\n (!isInit && (!payloadType\r\n || payloadType === 'treemapZoomToNode'\r\n || payloadType === 'treemapRootToNode'))\r\n ? this._doAnimation(containerGroup, renderResult, seriesModel, reRoot)\r\n : renderResult.renderFinally();\r\n this._resetController(api);\r\n this._renderBreadcrumb(seriesModel, api, targetInfo);\r\n };\r\n TreemapView.prototype._giveContainerGroup = function (layoutInfo) {\r\n var containerGroup = this._containerGroup;\r\n if (!containerGroup) {\r\n containerGroup = this._containerGroup = new Group$1();\r\n this._initEvents(containerGroup);\r\n this.group.add(containerGroup);\r\n }\r\n containerGroup.x = layoutInfo.x;\r\n containerGroup.y = layoutInfo.y;\r\n return containerGroup;\r\n };\r\n TreemapView.prototype._doRender = function (containerGroup, seriesModel, reRoot) {\r\n var thisTree = seriesModel.getData().tree;\r\n var oldTree = this._oldTree;\r\n var lastsForAnimation = createStorage();\r\n var thisStorage = createStorage();\r\n var oldStorage = this._storage;\r\n var willInvisibleEls = [];\r\n function doRenderNode(thisNode, oldNode, parentGroup, depth) {\r\n return renderNode(seriesModel, thisStorage, oldStorage, reRoot, lastsForAnimation, willInvisibleEls, thisNode, oldNode, parentGroup, depth);\r\n }\r\n dualTravel(thisTree.root ? [thisTree.root] : [], (oldTree && oldTree.root) ? [oldTree.root] : [], containerGroup, thisTree === oldTree || !oldTree, 0);\r\n var willDeleteEls = clearStorage(oldStorage);\r\n this._oldTree = thisTree;\r\n this._storage = thisStorage;\r\n return {\r\n lastsForAnimation: lastsForAnimation,\r\n willDeleteEls: willDeleteEls,\r\n renderFinally: renderFinally\r\n };\r\n function dualTravel(thisViewChildren, oldViewChildren, parentGroup, sameTree, depth) {\r\n if (sameTree) {\r\n oldViewChildren = thisViewChildren;\r\n each(thisViewChildren, function (child, index) {\r\n !child.isRemoved() && processNode(index, index);\r\n });\r\n }\r\n else {\r\n (new DataDiffer(oldViewChildren, thisViewChildren, getKey, getKey))\r\n .add(processNode)\r\n .update(processNode)\r\n .remove(curry(processNode, null))\r\n .execute();\r\n }\r\n function getKey(node) {\r\n return node.getId();\r\n }\r\n function processNode(newIndex, oldIndex) {\r\n var thisNode = newIndex != null ? thisViewChildren[newIndex] : null;\r\n var oldNode = oldIndex != null ? oldViewChildren[oldIndex] : null;\r\n var group = doRenderNode(thisNode, oldNode, parentGroup, depth);\r\n group && dualTravel(thisNode && thisNode.viewChildren || [], oldNode && oldNode.viewChildren || [], group, sameTree, depth + 1);\r\n }\r\n }\r\n function clearStorage(storage) {\r\n var willDeleteEls = createStorage();\r\n storage && each(storage, function (store, storageName) {\r\n var delEls = willDeleteEls[storageName];\r\n each(store, function (el) {\r\n el && (delEls.push(el), inner$9(el).willDelete = true);\r\n });\r\n });\r\n return willDeleteEls;\r\n }\r\n function renderFinally() {\r\n each(willDeleteEls, function (els) {\r\n each(els, function (el) {\r\n el.parent && el.parent.remove(el);\r\n });\r\n });\r\n each(willInvisibleEls, function (el) {\r\n el.invisible = true;\r\n el.dirty();\r\n });\r\n }\r\n };\r\n TreemapView.prototype._doAnimation = function (containerGroup, renderResult, seriesModel, reRoot) {\r\n if (!seriesModel.get('animation')) {\r\n return;\r\n }\r\n var durationOption = seriesModel.get('animationDurationUpdate');\r\n var easingOption = seriesModel.get('animationEasing');\r\n var duration = (isFunction(durationOption) ? 0 : durationOption) || 0;\r\n var easing = (isFunction(easingOption) ? null : easingOption) || 'cubicOut';\r\n var animationWrap = createWrap();\r\n each(renderResult.willDeleteEls, function (store, storageName) {\r\n each(store, function (el, rawIndex) {\r\n if (el.invisible) {\r\n return;\r\n }\r\n var parent = el.parent;\r\n var target;\r\n var innerStore = inner$9(parent);\r\n if (reRoot && reRoot.direction === 'drillDown') {\r\n target = parent === reRoot.rootNodeGroup\r\n ? {\r\n shape: {\r\n x: 0,\r\n y: 0,\r\n width: innerStore.nodeWidth,\r\n height: innerStore.nodeHeight\r\n },\r\n style: {\r\n opacity: 0\r\n }\r\n }\r\n : { style: { opacity: 0 } };\r\n }\r\n else {\r\n var targetX = 0;\r\n var targetY = 0;\r\n if (!innerStore.willDelete) {\r\n targetX = innerStore.nodeWidth / 2;\r\n targetY = innerStore.nodeHeight / 2;\r\n }\r\n target = storageName === 'nodeGroup'\r\n ? { x: targetX, y: targetY, style: { opacity: 0 } }\r\n : {\r\n shape: { x: targetX, y: targetY, width: 0, height: 0 },\r\n style: { opacity: 0 }\r\n };\r\n }\r\n target && animationWrap.add(el, target, duration, 0, easing);\r\n });\r\n });\r\n each(this._storage, function (store, storageName) {\r\n each(store, function (el, rawIndex) {\r\n var last = renderResult.lastsForAnimation[storageName][rawIndex];\r\n var target = {};\r\n if (!last) {\r\n return;\r\n }\r\n if (el instanceof Group) {\r\n if (last.oldX != null) {\r\n target.x = el.x;\r\n target.y = el.y;\r\n el.x = last.oldX;\r\n el.y = last.oldY;\r\n }\r\n }\r\n else {\r\n if (last.oldShape) {\r\n target.shape = extend({}, el.shape);\r\n el.setShape(last.oldShape);\r\n }\r\n if (last.fadein) {\r\n el.setStyle('opacity', 0);\r\n target.style = { opacity: 1 };\r\n }\r\n else if (el.style.opacity !== 1) {\r\n target.style = { opacity: 1 };\r\n }\r\n }\r\n animationWrap.add(el, target, duration, 0, easing);\r\n });\r\n }, this);\r\n this._state = 'animating';\r\n animationWrap\r\n .finished(bind(function () {\r\n this._state = 'ready';\r\n renderResult.renderFinally();\r\n }, this))\r\n .start();\r\n };\r\n TreemapView.prototype._resetController = function (api) {\r\n var controller = this._controller;\r\n if (!controller) {\r\n controller = this._controller = new RoamController(api.getZr());\r\n controller.enable(this.seriesModel.get('roam'));\r\n controller.on('pan', bind(this._onPan, this));\r\n controller.on('zoom', bind(this._onZoom, this));\r\n }\r\n var rect = new BoundingRect(0, 0, api.getWidth(), api.getHeight());\r\n controller.setPointerChecker(function (e, x, y) {\r\n return rect.contain(x, y);\r\n });\r\n };\r\n TreemapView.prototype._clearController = function () {\r\n var controller = this._controller;\r\n if (controller) {\r\n controller.dispose();\r\n controller = null;\r\n }\r\n };\r\n TreemapView.prototype._onPan = function (e) {\r\n if (this._state !== 'animating'\r\n && (Math.abs(e.dx) > DRAG_THRESHOLD || Math.abs(e.dy) > DRAG_THRESHOLD)) {\r\n var root = this.seriesModel.getData().tree.root;\r\n if (!root) {\r\n return;\r\n }\r\n var rootLayout = root.getLayout();\r\n if (!rootLayout) {\r\n return;\r\n }\r\n this.api.dispatchAction({\r\n type: 'treemapMove',\r\n from: this.uid,\r\n seriesId: this.seriesModel.id,\r\n rootRect: {\r\n x: rootLayout.x + e.dx, y: rootLayout.y + e.dy,\r\n width: rootLayout.width, height: rootLayout.height\r\n }\r\n });\r\n }\r\n };\r\n TreemapView.prototype._onZoom = function (e) {\r\n var mouseX = e.originX;\r\n var mouseY = e.originY;\r\n if (this._state !== 'animating') {\r\n var root = this.seriesModel.getData().tree.root;\r\n if (!root) {\r\n return;\r\n }\r\n var rootLayout = root.getLayout();\r\n if (!rootLayout) {\r\n return;\r\n }\r\n var rect = new BoundingRect(rootLayout.x, rootLayout.y, rootLayout.width, rootLayout.height);\r\n var layoutInfo = this.seriesModel.layoutInfo;\r\n mouseX -= layoutInfo.x;\r\n mouseY -= layoutInfo.y;\r\n var m = create$1();\r\n translate(m, m, [-mouseX, -mouseY]);\r\n scale$1(m, m, [e.scale, e.scale]);\r\n translate(m, m, [mouseX, mouseY]);\r\n rect.applyTransform(m);\r\n this.api.dispatchAction({\r\n type: 'treemapRender',\r\n from: this.uid,\r\n seriesId: this.seriesModel.id,\r\n rootRect: {\r\n x: rect.x, y: rect.y,\r\n width: rect.width, height: rect.height\r\n }\r\n });\r\n }\r\n };\r\n TreemapView.prototype._initEvents = function (containerGroup) {\r\n var _this = this;\r\n containerGroup.on('click', function (e) {\r\n if (_this._state !== 'ready') {\r\n return;\r\n }\r\n var nodeClick = _this.seriesModel.get('nodeClick', true);\r\n if (!nodeClick) {\r\n return;\r\n }\r\n var targetInfo = _this.findTarget(e.offsetX, e.offsetY);\r\n if (!targetInfo) {\r\n return;\r\n }\r\n var node = targetInfo.node;\r\n if (node.getLayout().isLeafRoot) {\r\n _this._rootToNode(targetInfo);\r\n }\r\n else {\r\n if (nodeClick === 'zoomToNode') {\r\n _this._zoomToNode(targetInfo);\r\n }\r\n else if (nodeClick === 'link') {\r\n var itemModel = node.hostTree.data.getItemModel(node.dataIndex);\r\n var link = itemModel.get('link', true);\r\n var linkTarget = itemModel.get('target', true) || 'blank';\r\n link && windowOpen(link, linkTarget);\r\n }\r\n }\r\n }, this);\r\n };\r\n TreemapView.prototype._renderBreadcrumb = function (seriesModel, api, targetInfo) {\r\n var _this = this;\r\n if (!targetInfo) {\r\n targetInfo = seriesModel.get('leafDepth', true) != null\r\n ? { node: seriesModel.getViewRoot() }\r\n : this.findTarget(api.getWidth() / 2, api.getHeight() / 2);\r\n if (!targetInfo) {\r\n targetInfo = { node: seriesModel.getData().tree.root };\r\n }\r\n }\r\n (this._breadcrumb || (this._breadcrumb = new Breadcrumb(this.group)))\r\n .render(seriesModel, api, targetInfo.node, function (node) {\r\n if (_this._state !== 'animating') {\r\n aboveViewRoot(seriesModel.getViewRoot(), node)\r\n ? _this._rootToNode({ node: node })\r\n : _this._zoomToNode({ node: node });\r\n }\r\n });\r\n };\r\n TreemapView.prototype.remove = function () {\r\n this._clearController();\r\n this._containerGroup && this._containerGroup.removeAll();\r\n this._storage = createStorage();\r\n this._state = 'ready';\r\n this._breadcrumb && this._breadcrumb.remove();\r\n };\r\n TreemapView.prototype.dispose = function () {\r\n this._clearController();\r\n };\r\n TreemapView.prototype._zoomToNode = function (targetInfo) {\r\n this.api.dispatchAction({\r\n type: 'treemapZoomToNode',\r\n from: this.uid,\r\n seriesId: this.seriesModel.id,\r\n targetNode: targetInfo.node\r\n });\r\n };\r\n TreemapView.prototype._rootToNode = function (targetInfo) {\r\n this.api.dispatchAction({\r\n type: 'treemapRootToNode',\r\n from: this.uid,\r\n seriesId: this.seriesModel.id,\r\n targetNode: targetInfo.node\r\n });\r\n };\r\n TreemapView.prototype.findTarget = function (x, y) {\r\n var targetInfo;\r\n var viewRoot = this.seriesModel.getViewRoot();\r\n viewRoot.eachNode({ attr: 'viewChildren', order: 'preorder' }, function (node) {\r\n var bgEl = this._storage.background[node.getRawIndex()];\r\n if (bgEl) {\r\n var point = bgEl.transformCoordToLocal(x, y);\r\n var shape = bgEl.shape;\r\n if (shape.x <= point[0]\r\n && point[0] <= shape.x + shape.width\r\n && shape.y <= point[1]\r\n && point[1] <= shape.y + shape.height) {\r\n targetInfo = {\r\n node: node,\r\n offsetX: point[0],\r\n offsetY: point[1]\r\n };\r\n }\r\n else {\r\n return false;\r\n }\r\n }\r\n }, this);\r\n return targetInfo;\r\n };\r\n TreemapView.type = 'treemap';\r\n return TreemapView;\r\n }(ChartView));\r\n function createStorage() {\r\n return {\r\n nodeGroup: [],\r\n background: [],\r\n content: []\r\n };\r\n }\r\n function renderNode(seriesModel, thisStorage, oldStorage, reRoot, lastsForAnimation, willInvisibleEls, thisNode, oldNode, parentGroup, depth) {\r\n if (!thisNode) {\r\n return;\r\n }\r\n var thisLayout = thisNode.getLayout();\r\n var data = seriesModel.getData();\r\n var nodeModel = thisNode.getModel();\r\n data.setItemGraphicEl(thisNode.dataIndex, null);\r\n if (!thisLayout || !thisLayout.isInView) {\r\n return;\r\n }\r\n var thisWidth = thisLayout.width;\r\n var thisHeight = thisLayout.height;\r\n var borderWidth = thisLayout.borderWidth;\r\n var thisInvisible = thisLayout.invisible;\r\n var thisRawIndex = thisNode.getRawIndex();\r\n var oldRawIndex = oldNode && oldNode.getRawIndex();\r\n var thisViewChildren = thisNode.viewChildren;\r\n var upperHeight = thisLayout.upperHeight;\r\n var isParent = thisViewChildren && thisViewChildren.length;\r\n var itemStyleNormalModel = nodeModel.getModel('itemStyle');\r\n var itemStyleEmphasisModel = nodeModel.getModel(['emphasis', 'itemStyle']);\r\n var itemStyleBlurModel = nodeModel.getModel(['blur', 'itemStyle']);\r\n var itemStyleSelectModel = nodeModel.getModel(['select', 'itemStyle']);\r\n var borderRadius = itemStyleNormalModel.get('borderRadius') || 0;\r\n var group = giveGraphic('nodeGroup', Group$1);\r\n if (!group) {\r\n return;\r\n }\r\n parentGroup.add(group);\r\n group.x = thisLayout.x || 0;\r\n group.y = thisLayout.y || 0;\r\n group.markRedraw();\r\n inner$9(group).nodeWidth = thisWidth;\r\n inner$9(group).nodeHeight = thisHeight;\r\n if (thisLayout.isAboveViewRoot) {\r\n return group;\r\n }\r\n var bg = giveGraphic('background', Rect$1, depth, Z_BG);\r\n bg && renderBackground(group, bg, isParent && thisLayout.upperLabelHeight);\r\n var focus = nodeModel.get(['emphasis', 'focus']);\r\n var blurScope = nodeModel.get(['emphasis', 'blurScope']);\r\n var focusDataIndices = focus === 'ancestor'\r\n ? thisNode.getAncestorsIndices()\r\n : focus === 'descendant' ? thisNode.getDescendantIndices() : null;\r\n if (isParent) {\r\n if (isHighDownDispatcher(group)) {\r\n setAsHighDownDispatcher(group, false);\r\n }\r\n if (bg) {\r\n setAsHighDownDispatcher(bg, true);\r\n data.setItemGraphicEl(thisNode.dataIndex, bg);\r\n enableHoverFocus(bg, focusDataIndices || focus, blurScope);\r\n }\r\n }\r\n else {\r\n var content = giveGraphic('content', Rect$1, depth, Z_CONTENT);\r\n content && renderContent(group, content);\r\n if (bg && isHighDownDispatcher(bg)) {\r\n setAsHighDownDispatcher(bg, false);\r\n }\r\n setAsHighDownDispatcher(group, true);\r\n data.setItemGraphicEl(thisNode.dataIndex, group);\r\n enableHoverFocus(group, focusDataIndices || focus, blurScope);\r\n }\r\n return group;\r\n function renderBackground(group, bg, useUpperLabel) {\r\n var ecData = getECData(bg);\r\n ecData.dataIndex = thisNode.dataIndex;\r\n ecData.seriesIndex = seriesModel.seriesIndex;\r\n bg.setShape({ x: 0, y: 0, width: thisWidth, height: thisHeight, r: borderRadius });\r\n if (thisInvisible) {\r\n processInvisible(bg);\r\n }\r\n else {\r\n bg.invisible = false;\r\n var style = thisNode.getVisual('style');\r\n var visualBorderColor = style.stroke;\r\n var normalStyle = getItemStyleNormal(itemStyleNormalModel);\r\n normalStyle.fill = visualBorderColor;\r\n var emphasisStyle = getStateItemStyle(itemStyleEmphasisModel);\r\n emphasisStyle.fill = itemStyleEmphasisModel.get('borderColor');\r\n var blurStyle = getStateItemStyle(itemStyleBlurModel);\r\n blurStyle.fill = itemStyleBlurModel.get('borderColor');\r\n var selectStyle = getStateItemStyle(itemStyleSelectModel);\r\n selectStyle.fill = itemStyleSelectModel.get('borderColor');\r\n if (useUpperLabel) {\r\n var upperLabelWidth = thisWidth - 2 * borderWidth;\r\n prepareText(bg, visualBorderColor, upperLabelWidth, upperHeight, style.opacity, { x: borderWidth, y: 0, width: upperLabelWidth, height: upperHeight });\r\n }\r\n else {\r\n bg.removeTextContent();\r\n }\r\n bg.setStyle(normalStyle);\r\n bg.ensureState('emphasis').style = emphasisStyle;\r\n bg.ensureState('blur').style = blurStyle;\r\n bg.ensureState('select').style = selectStyle;\r\n setDefaultStateProxy(bg);\r\n }\r\n group.add(bg);\r\n }\r\n function renderContent(group, content) {\r\n var ecData = getECData(content);\r\n ecData.dataIndex = thisNode.dataIndex;\r\n ecData.seriesIndex = seriesModel.seriesIndex;\r\n var contentWidth = Math.max(thisWidth - 2 * borderWidth, 0);\r\n var contentHeight = Math.max(thisHeight - 2 * borderWidth, 0);\r\n content.culling = true;\r\n content.setShape({\r\n x: borderWidth,\r\n y: borderWidth,\r\n width: contentWidth,\r\n height: contentHeight,\r\n r: borderRadius\r\n });\r\n if (thisInvisible) {\r\n processInvisible(content);\r\n }\r\n else {\r\n content.invisible = false;\r\n var nodeStyle = thisNode.getVisual('style');\r\n var visualColor = nodeStyle.fill;\r\n var normalStyle = getItemStyleNormal(itemStyleNormalModel);\r\n normalStyle.fill = visualColor;\r\n normalStyle.decal = nodeStyle.decal;\r\n var emphasisStyle = getStateItemStyle(itemStyleEmphasisModel);\r\n var blurStyle = getStateItemStyle(itemStyleBlurModel);\r\n var selectStyle = getStateItemStyle(itemStyleSelectModel);\r\n prepareText(content, visualColor, contentWidth, nodeStyle.opacity);\r\n content.setStyle(normalStyle);\r\n content.ensureState('emphasis').style = emphasisStyle;\r\n content.ensureState('blur').style = blurStyle;\r\n content.ensureState('select').style = selectStyle;\r\n setDefaultStateProxy(content);\r\n }\r\n group.add(content);\r\n }\r\n function processInvisible(element) {\r\n !element.invisible && willInvisibleEls.push(element);\r\n }\r\n function prepareText(rectEl, visualColor, visualOpacity, width, height, upperLabelRect) {\r\n var normalLabelModel = nodeModel.getModel(upperLabelRect ? PATH_UPPERLABEL_NORMAL : PATH_LABEL_NOAMAL);\r\n var text = retrieve(seriesModel.getFormattedLabel(thisNode.dataIndex, 'normal', null, null, normalLabelModel.get('formatter')), convertOptionIdName(nodeModel.get('name'), null));\r\n if (!upperLabelRect && thisLayout.isLeafRoot) {\r\n var iconChar = seriesModel.get('drillDownIcon', true);\r\n text = iconChar ? iconChar + ' ' + text : text;\r\n }\r\n var isShow = normalLabelModel.getShallow('show');\r\n setLabelStyle(rectEl, getLabelStatesModels(nodeModel, upperLabelRect ? PATH_UPPERLABEL_NORMAL : PATH_LABEL_NOAMAL), {\r\n defaultText: isShow ? text : null,\r\n inheritColor: visualColor,\r\n defaultOpacity: visualOpacity,\r\n labelFetcher: seriesModel,\r\n labelDataIndex: thisNode.dataIndex\r\n });\r\n var textEl = rectEl.getTextContent();\r\n var textStyle = textEl.style;\r\n var textPadding = normalizeCssArray(textStyle.padding || 0);\r\n if (upperLabelRect) {\r\n rectEl.setTextConfig({\r\n layoutRect: upperLabelRect\r\n });\r\n textEl.disableLabelLayout = true;\r\n }\r\n textEl.beforeUpdate = function () {\r\n var width = Math.max((upperLabelRect ? upperLabelRect.width : rectEl.shape.width) - textPadding[1] - textPadding[3], 0);\r\n var height = Math.max((upperLabelRect ? upperLabelRect.height : rectEl.shape.height) - textPadding[0] - textPadding[2], 0);\r\n if (textStyle.width !== width || textStyle.height !== height) {\r\n textEl.setStyle({\r\n width: width,\r\n height: height\r\n });\r\n }\r\n };\r\n textStyle.truncateMinChar = 2;\r\n textStyle.lineOverflow = 'truncate';\r\n addDrillDownIcon(textStyle, upperLabelRect, thisLayout);\r\n var textEmphasisState = textEl.getState('emphasis');\r\n addDrillDownIcon(textEmphasisState ? textEmphasisState.style : null, upperLabelRect, thisLayout);\r\n }\r\n function addDrillDownIcon(style, upperLabelRect, thisLayout) {\r\n var text = style ? style.text : null;\r\n if (!upperLabelRect && thisLayout.isLeafRoot && text != null) {\r\n var iconChar = seriesModel.get('drillDownIcon', true);\r\n style.text = iconChar ? iconChar + ' ' + text : text;\r\n }\r\n }\r\n function giveGraphic(storageName, Ctor, depth, z) {\r\n var element = oldRawIndex != null && oldStorage[storageName][oldRawIndex];\r\n var lasts = lastsForAnimation[storageName];\r\n if (element) {\r\n oldStorage[storageName][oldRawIndex] = null;\r\n prepareAnimationWhenHasOld(lasts, element);\r\n }\r\n else if (!thisInvisible) {\r\n element = new Ctor();\r\n if (element instanceof Displayable) {\r\n element.z = calculateZ(depth, z);\r\n }\r\n prepareAnimationWhenNoOld(lasts, element);\r\n }\r\n return (thisStorage[storageName][thisRawIndex] = element);\r\n }\r\n function prepareAnimationWhenHasOld(lasts, element) {\r\n var lastCfg = lasts[thisRawIndex] = {};\r\n if (element instanceof Group$1) {\r\n lastCfg.oldX = element.x;\r\n lastCfg.oldY = element.y;\r\n }\r\n else {\r\n lastCfg.oldShape = extend({}, element.shape);\r\n }\r\n }\r\n function prepareAnimationWhenNoOld(lasts, element) {\r\n var lastCfg = lasts[thisRawIndex] = {};\r\n var parentNode = thisNode.parentNode;\r\n var isGroup = element instanceof Group;\r\n if (parentNode && (!reRoot || reRoot.direction === 'drillDown')) {\r\n var parentOldX = 0;\r\n var parentOldY = 0;\r\n var parentOldBg = lastsForAnimation.background[parentNode.getRawIndex()];\r\n if (!reRoot && parentOldBg && parentOldBg.oldShape) {\r\n parentOldX = parentOldBg.oldShape.width;\r\n parentOldY = parentOldBg.oldShape.height;\r\n }\r\n if (isGroup) {\r\n lastCfg.oldX = 0;\r\n lastCfg.oldY = parentOldY;\r\n }\r\n else {\r\n lastCfg.oldShape = { x: parentOldX, y: parentOldY, width: 0, height: 0 };\r\n }\r\n }\r\n lastCfg.fadein = !isGroup;\r\n }\r\n }\r\n function calculateZ(depth, zInLevel) {\r\n var zb = depth * Z_BASE + zInLevel;\r\n return (zb - 1) / zb;\r\n }\r\n ChartView.registerClass(TreemapView);\n\n var noop$1 = function () { };\r\n var actionTypes = [\r\n 'treemapZoomToNode',\r\n 'treemapRender',\r\n 'treemapMove'\r\n ];\r\n for (var i$1 = 0; i$1 < actionTypes.length; i$1++) {\r\n registerAction({\r\n type: actionTypes[i$1],\r\n update: 'updateView'\r\n }, noop$1);\r\n }\r\n registerAction({ type: 'treemapRootToNode', update: 'updateView' }, function (payload, ecModel) {\r\n ecModel.eachComponent({ mainType: 'series', subType: 'treemap', query: payload }, handleRootToNode);\r\n function handleRootToNode(model, index) {\r\n var types = ['treemapZoomToNode', 'treemapRootToNode'];\r\n var targetInfo = retrieveTargetInfo(payload, types, model);\r\n if (targetInfo) {\r\n var originViewRoot = model.getViewRoot();\r\n if (originViewRoot) {\r\n payload.direction = aboveViewRoot(originViewRoot, targetInfo.node)\r\n ? 'rollUp' : 'drillDown';\r\n }\r\n model.resetViewRoot(targetInfo.node);\r\n }\r\n }\r\n });\n\n var each$4 = each;\r\n var isObject$4 = isObject;\r\n var CATEGORY_DEFAULT_VISUAL_INDEX = -1;\r\n var VisualMapping = (function () {\r\n function VisualMapping(option) {\r\n var mappingMethod = option.mappingMethod;\r\n var visualType = option.type;\r\n var thisOption = this.option = clone(option);\r\n this.type = visualType;\r\n this.mappingMethod = mappingMethod;\r\n this._normalizeData = normalizers[mappingMethod];\r\n var visualHandler = VisualMapping.visualHandlers[visualType];\r\n this.applyVisual = visualHandler.applyVisual;\r\n this.getColorMapper = visualHandler.getColorMapper;\r\n this._normalizedToVisual = visualHandler._normalizedToVisual[mappingMethod];\r\n if (mappingMethod === 'piecewise') {\r\n normalizeVisualRange(thisOption);\r\n preprocessForPiecewise(thisOption);\r\n }\r\n else if (mappingMethod === 'category') {\r\n thisOption.categories\r\n ? preprocessForSpecifiedCategory(thisOption)\r\n : normalizeVisualRange(thisOption, true);\r\n }\r\n else {\r\n assert(mappingMethod !== 'linear' || thisOption.dataExtent);\r\n normalizeVisualRange(thisOption);\r\n }\r\n }\r\n VisualMapping.prototype.mapValueToVisual = function (value) {\r\n var normalized = this._normalizeData(value);\r\n return this._normalizedToVisual(normalized, value);\r\n };\r\n VisualMapping.prototype.getNormalizer = function () {\r\n return bind(this._normalizeData, this);\r\n };\r\n VisualMapping.listVisualTypes = function () {\r\n return keys(VisualMapping.visualHandlers);\r\n };\r\n VisualMapping.isValidType = function (visualType) {\r\n return VisualMapping.visualHandlers.hasOwnProperty(visualType);\r\n };\r\n VisualMapping.eachVisual = function (visual, callback, context) {\r\n if (isObject(visual)) {\r\n each(visual, callback, context);\r\n }\r\n else {\r\n callback.call(context, visual);\r\n }\r\n };\r\n VisualMapping.mapVisual = function (visual, callback, context) {\r\n var isPrimary;\r\n var newVisual = isArray(visual)\r\n ? []\r\n : isObject(visual)\r\n ? {}\r\n : (isPrimary = true, null);\r\n VisualMapping.eachVisual(visual, function (v, key) {\r\n var newVal = callback.call(context, v, key);\r\n isPrimary ? (newVisual = newVal) : (newVisual[key] = newVal);\r\n });\r\n return newVisual;\r\n };\r\n VisualMapping.retrieveVisuals = function (obj) {\r\n var ret = {};\r\n var hasVisual;\r\n obj && each$4(VisualMapping.visualHandlers, function (h, visualType) {\r\n if (obj.hasOwnProperty(visualType)) {\r\n ret[visualType] = obj[visualType];\r\n hasVisual = true;\r\n }\r\n });\r\n return hasVisual ? ret : null;\r\n };\r\n VisualMapping.prepareVisualTypes = function (visualTypes) {\r\n if (isArray(visualTypes)) {\r\n visualTypes = visualTypes.slice();\r\n }\r\n else if (isObject$4(visualTypes)) {\r\n var types_1 = [];\r\n each$4(visualTypes, function (item, type) {\r\n types_1.push(type);\r\n });\r\n visualTypes = types_1;\r\n }\r\n else {\r\n return [];\r\n }\r\n visualTypes.sort(function (type1, type2) {\r\n return (type2 === 'color' && type1 !== 'color' && type1.indexOf('color') === 0)\r\n ? 1 : -1;\r\n });\r\n return visualTypes;\r\n };\r\n VisualMapping.dependsOn = function (visualType1, visualType2) {\r\n return visualType2 === 'color'\r\n ? !!(visualType1 && visualType1.indexOf(visualType2) === 0)\r\n : visualType1 === visualType2;\r\n };\r\n VisualMapping.findPieceIndex = function (value, pieceList, findClosestWhenOutside) {\r\n var possibleI;\r\n var abs = Infinity;\r\n for (var i = 0, len = pieceList.length; i < len; i++) {\r\n var pieceValue = pieceList[i].value;\r\n if (pieceValue != null) {\r\n if (pieceValue === value\r\n || (typeof pieceValue === 'string' && pieceValue === value + '')) {\r\n return i;\r\n }\r\n findClosestWhenOutside && updatePossible(pieceValue, i);\r\n }\r\n }\r\n for (var i = 0, len = pieceList.length; i < len; i++) {\r\n var piece = pieceList[i];\r\n var interval = piece.interval;\r\n var close_1 = piece.close;\r\n if (interval) {\r\n if (interval[0] === -Infinity) {\r\n if (littleThan(close_1[1], value, interval[1])) {\r\n return i;\r\n }\r\n }\r\n else if (interval[1] === Infinity) {\r\n if (littleThan(close_1[0], interval[0], value)) {\r\n return i;\r\n }\r\n }\r\n else if (littleThan(close_1[0], interval[0], value)\r\n && littleThan(close_1[1], value, interval[1])) {\r\n return i;\r\n }\r\n findClosestWhenOutside && updatePossible(interval[0], i);\r\n findClosestWhenOutside && updatePossible(interval[1], i);\r\n }\r\n }\r\n if (findClosestWhenOutside) {\r\n return value === Infinity\r\n ? pieceList.length - 1\r\n : value === -Infinity\r\n ? 0\r\n : possibleI;\r\n }\r\n function updatePossible(val, index) {\r\n var newAbs = Math.abs(val - value);\r\n if (newAbs < abs) {\r\n abs = newAbs;\r\n possibleI = index;\r\n }\r\n }\r\n };\r\n VisualMapping.visualHandlers = {\r\n color: {\r\n applyVisual: makeApplyVisual('color'),\r\n getColorMapper: function () {\r\n var thisOption = this.option;\r\n return bind(thisOption.mappingMethod === 'category'\r\n ? function (value, isNormalized) {\r\n !isNormalized && (value = this._normalizeData(value));\r\n return doMapCategory.call(this, value);\r\n }\r\n : function (value, isNormalized, out) {\r\n var returnRGBArray = !!out;\r\n !isNormalized && (value = this._normalizeData(value));\r\n out = fastLerp(value, thisOption.parsedVisual, out);\r\n return returnRGBArray ? out : stringify(out, 'rgba');\r\n }, this);\r\n },\r\n _normalizedToVisual: {\r\n linear: function (normalized) {\r\n return stringify(fastLerp(normalized, this.option.parsedVisual), 'rgba');\r\n },\r\n category: doMapCategory,\r\n piecewise: function (normalized, value) {\r\n var result = getSpecifiedVisual.call(this, value);\r\n if (result == null) {\r\n result = stringify(fastLerp(normalized, this.option.parsedVisual), 'rgba');\r\n }\r\n return result;\r\n },\r\n fixed: doMapFixed\r\n }\r\n },\r\n colorHue: makePartialColorVisualHandler(function (color$1, value) {\r\n return modifyHSL(color$1, value);\r\n }),\r\n colorSaturation: makePartialColorVisualHandler(function (color$1, value) {\r\n return modifyHSL(color$1, null, value);\r\n }),\r\n colorLightness: makePartialColorVisualHandler(function (color$1, value) {\r\n return modifyHSL(color$1, null, null, value);\r\n }),\r\n colorAlpha: makePartialColorVisualHandler(function (color$1, value) {\r\n return modifyAlpha(color$1, value);\r\n }),\r\n decal: {\r\n applyVisual: makeApplyVisual('decal'),\r\n _normalizedToVisual: {\r\n linear: null,\r\n category: doMapCategory,\r\n piecewise: null,\r\n fixed: null\r\n }\r\n },\r\n opacity: {\r\n applyVisual: makeApplyVisual('opacity'),\r\n _normalizedToVisual: createNormalizedToNumericVisual([0, 1])\r\n },\r\n liftZ: {\r\n applyVisual: makeApplyVisual('liftZ'),\r\n _normalizedToVisual: {\r\n linear: doMapFixed,\r\n category: doMapFixed,\r\n piecewise: doMapFixed,\r\n fixed: doMapFixed\r\n }\r\n },\r\n symbol: {\r\n applyVisual: function (value, getter, setter) {\r\n var symbolCfg = this.mapValueToVisual(value);\r\n setter('symbol', symbolCfg);\r\n },\r\n _normalizedToVisual: {\r\n linear: doMapToArray,\r\n category: doMapCategory,\r\n piecewise: function (normalized, value) {\r\n var result = getSpecifiedVisual.call(this, value);\r\n if (result == null) {\r\n result = doMapToArray.call(this, normalized);\r\n }\r\n return result;\r\n },\r\n fixed: doMapFixed\r\n }\r\n },\r\n symbolSize: {\r\n applyVisual: makeApplyVisual('symbolSize'),\r\n _normalizedToVisual: createNormalizedToNumericVisual([0, 1])\r\n }\r\n };\r\n return VisualMapping;\r\n }());\r\n function preprocessForPiecewise(thisOption) {\r\n var pieceList = thisOption.pieceList;\r\n thisOption.hasSpecialVisual = false;\r\n each(pieceList, function (piece, index) {\r\n piece.originIndex = index;\r\n if (piece.visual != null) {\r\n thisOption.hasSpecialVisual = true;\r\n }\r\n });\r\n }\r\n function preprocessForSpecifiedCategory(thisOption) {\r\n var categories = thisOption.categories;\r\n var categoryMap = thisOption.categoryMap = {};\r\n var visual = thisOption.visual;\r\n each$4(categories, function (cate, index) {\r\n categoryMap[cate] = index;\r\n });\r\n if (!isArray(visual)) {\r\n var visualArr_1 = [];\r\n if (isObject(visual)) {\r\n each$4(visual, function (v, cate) {\r\n var index = categoryMap[cate];\r\n visualArr_1[index != null ? index : CATEGORY_DEFAULT_VISUAL_INDEX] = v;\r\n });\r\n }\r\n else {\r\n visualArr_1[CATEGORY_DEFAULT_VISUAL_INDEX] = visual;\r\n }\r\n visual = setVisualToOption(thisOption, visualArr_1);\r\n }\r\n for (var i = categories.length - 1; i >= 0; i--) {\r\n if (visual[i] == null) {\r\n delete categoryMap[categories[i]];\r\n categories.pop();\r\n }\r\n }\r\n }\r\n function normalizeVisualRange(thisOption, isCategory) {\r\n var visual = thisOption.visual;\r\n var visualArr = [];\r\n if (isObject(visual)) {\r\n each$4(visual, function (v) {\r\n visualArr.push(v);\r\n });\r\n }\r\n else if (visual != null) {\r\n visualArr.push(visual);\r\n }\r\n var doNotNeedPair = { color: 1, symbol: 1 };\r\n if (!isCategory\r\n && visualArr.length === 1\r\n && !doNotNeedPair.hasOwnProperty(thisOption.type)) {\r\n visualArr[1] = visualArr[0];\r\n }\r\n setVisualToOption(thisOption, visualArr);\r\n }\r\n function makePartialColorVisualHandler(applyValue) {\r\n return {\r\n applyVisual: function (value, getter, setter) {\r\n var colorChannel = this.mapValueToVisual(value);\r\n setter('color', applyValue(getter('color'), colorChannel));\r\n },\r\n _normalizedToVisual: createNormalizedToNumericVisual([0, 1])\r\n };\r\n }\r\n function doMapToArray(normalized) {\r\n var visual = this.option.visual;\r\n return visual[Math.round(linearMap(normalized, [0, 1], [0, visual.length - 1], true))] || {};\r\n }\r\n function makeApplyVisual(visualType) {\r\n return function (value, getter, setter) {\r\n setter(visualType, this.mapValueToVisual(value));\r\n };\r\n }\r\n function doMapCategory(normalized) {\r\n var visual = this.option.visual;\r\n return visual[(this.option.loop && normalized !== CATEGORY_DEFAULT_VISUAL_INDEX)\r\n ? normalized % visual.length\r\n : normalized];\r\n }\r\n function doMapFixed() {\r\n return this.option.visual[0];\r\n }\r\n function createNormalizedToNumericVisual(sourceExtent) {\r\n return {\r\n linear: function (normalized) {\r\n return linearMap(normalized, sourceExtent, this.option.visual, true);\r\n },\r\n category: doMapCategory,\r\n piecewise: function (normalized, value) {\r\n var result = getSpecifiedVisual.call(this, value);\r\n if (result == null) {\r\n result = linearMap(normalized, sourceExtent, this.option.visual, true);\r\n }\r\n return result;\r\n },\r\n fixed: doMapFixed\r\n };\r\n }\r\n function getSpecifiedVisual(value) {\r\n var thisOption = this.option;\r\n var pieceList = thisOption.pieceList;\r\n if (thisOption.hasSpecialVisual) {\r\n var pieceIndex = VisualMapping.findPieceIndex(value, pieceList);\r\n var piece = pieceList[pieceIndex];\r\n if (piece && piece.visual) {\r\n return piece.visual[this.type];\r\n }\r\n }\r\n }\r\n function setVisualToOption(thisOption, visualArr) {\r\n thisOption.visual = visualArr;\r\n if (thisOption.type === 'color') {\r\n thisOption.parsedVisual = map(visualArr, function (item) {\r\n return parse(item);\r\n });\r\n }\r\n return visualArr;\r\n }\r\n var normalizers = {\r\n linear: function (value) {\r\n return linearMap(value, this.option.dataExtent, [0, 1], true);\r\n },\r\n piecewise: function (value) {\r\n var pieceList = this.option.pieceList;\r\n var pieceIndex = VisualMapping.findPieceIndex(value, pieceList, true);\r\n if (pieceIndex != null) {\r\n return linearMap(pieceIndex, [0, pieceList.length - 1], [0, 1], true);\r\n }\r\n },\r\n category: function (value) {\r\n var index = this.option.categories\r\n ? this.option.categoryMap[value]\r\n : value;\r\n return index == null ? CATEGORY_DEFAULT_VISUAL_INDEX : index;\r\n },\r\n fixed: noop\r\n };\r\n function littleThan(close, a, b) {\r\n return close ? a <= b : a < b;\r\n }\n\n var ITEM_STYLE_NORMAL = 'itemStyle';\r\n var inner$a = makeInner();\r\n var treemapVisual = {\r\n seriesType: 'treemap',\r\n reset: function (seriesModel) {\r\n var tree = seriesModel.getData().tree;\r\n var root = tree.root;\r\n if (root.isRemoved()) {\r\n return;\r\n }\r\n travelTree(root, {}, seriesModel.getViewRoot().getAncestors(), seriesModel);\r\n }\r\n };\r\n function travelTree(node, designatedVisual, viewRootAncestors, seriesModel) {\r\n var nodeModel = node.getModel();\r\n var nodeLayout = node.getLayout();\r\n var data = node.hostTree.data;\r\n if (!nodeLayout || nodeLayout.invisible || !nodeLayout.isInView) {\r\n return;\r\n }\r\n var nodeItemStyleModel = nodeModel.getModel(ITEM_STYLE_NORMAL);\r\n var visuals = buildVisuals(nodeItemStyleModel, designatedVisual, seriesModel);\r\n var existsStyle = data.ensureUniqueItemVisual(node.dataIndex, 'style');\r\n var borderColor = nodeItemStyleModel.get('borderColor');\r\n var borderColorSaturation = nodeItemStyleModel.get('borderColorSaturation');\r\n var thisNodeColor;\r\n if (borderColorSaturation != null) {\r\n thisNodeColor = calculateColor(visuals);\r\n borderColor = calculateBorderColor(borderColorSaturation, thisNodeColor);\r\n }\r\n existsStyle.stroke = borderColor;\r\n var viewChildren = node.viewChildren;\r\n if (!viewChildren || !viewChildren.length) {\r\n thisNodeColor = calculateColor(visuals);\r\n existsStyle.fill = thisNodeColor;\r\n }\r\n else {\r\n var mapping_1 = buildVisualMapping(node, nodeModel, nodeLayout, nodeItemStyleModel, visuals, viewChildren);\r\n each(viewChildren, function (child, index) {\r\n if (child.depth >= viewRootAncestors.length\r\n || child === viewRootAncestors[child.depth]) {\r\n var childVisual = mapVisual(nodeModel, visuals, child, index, mapping_1, seriesModel);\r\n travelTree(child, childVisual, viewRootAncestors, seriesModel);\r\n }\r\n });\r\n }\r\n }\r\n function buildVisuals(nodeItemStyleModel, designatedVisual, seriesModel) {\r\n var visuals = extend({}, designatedVisual);\r\n var designatedVisualItemStyle = seriesModel.designatedVisualItemStyle;\r\n each(['color', 'colorAlpha', 'colorSaturation'], function (visualName) {\r\n designatedVisualItemStyle[visualName] = designatedVisual[visualName];\r\n var val = nodeItemStyleModel.get(visualName);\r\n designatedVisualItemStyle[visualName] = null;\r\n val != null && (visuals[visualName] = val);\r\n });\r\n return visuals;\r\n }\r\n function calculateColor(visuals) {\r\n var color = getValueVisualDefine(visuals, 'color');\r\n if (color) {\r\n var colorAlpha = getValueVisualDefine(visuals, 'colorAlpha');\r\n var colorSaturation = getValueVisualDefine(visuals, 'colorSaturation');\r\n if (colorSaturation) {\r\n color = modifyHSL(color, null, null, colorSaturation);\r\n }\r\n if (colorAlpha) {\r\n color = modifyAlpha(color, colorAlpha);\r\n }\r\n return color;\r\n }\r\n }\r\n function calculateBorderColor(borderColorSaturation, thisNodeColor) {\r\n return thisNodeColor != null\r\n ? modifyHSL(thisNodeColor, null, null, borderColorSaturation)\r\n : null;\r\n }\r\n function getValueVisualDefine(visuals, name) {\r\n var value = visuals[name];\r\n if (value != null && value !== 'none') {\r\n return value;\r\n }\r\n }\r\n function buildVisualMapping(node, nodeModel, nodeLayout, nodeItemStyleModel, visuals, viewChildren) {\r\n if (!viewChildren || !viewChildren.length) {\r\n return;\r\n }\r\n var rangeVisual = getRangeVisual(nodeModel, 'color')\r\n || (visuals.color != null\r\n && visuals.color !== 'none'\r\n && (getRangeVisual(nodeModel, 'colorAlpha')\r\n || getRangeVisual(nodeModel, 'colorSaturation')));\r\n if (!rangeVisual) {\r\n return;\r\n }\r\n var visualMin = nodeModel.get('visualMin');\r\n var visualMax = nodeModel.get('visualMax');\r\n var dataExtent = nodeLayout.dataExtent.slice();\r\n visualMin != null && visualMin < dataExtent[0] && (dataExtent[0] = visualMin);\r\n visualMax != null && visualMax > dataExtent[1] && (dataExtent[1] = visualMax);\r\n var colorMappingBy = nodeModel.get('colorMappingBy');\r\n var opt = {\r\n type: rangeVisual.name,\r\n dataExtent: dataExtent,\r\n visual: rangeVisual.range\r\n };\r\n if (opt.type === 'color'\r\n && (colorMappingBy === 'index' || colorMappingBy === 'id')) {\r\n opt.mappingMethod = 'category';\r\n opt.loop = true;\r\n }\r\n else {\r\n opt.mappingMethod = 'linear';\r\n }\r\n var mapping = new VisualMapping(opt);\r\n inner$a(mapping).drColorMappingBy = colorMappingBy;\r\n return mapping;\r\n }\r\n function getRangeVisual(nodeModel, name) {\r\n var range = nodeModel.get(name);\r\n return (isArray(range) && range.length) ? {\r\n name: name,\r\n range: range\r\n } : null;\r\n }\r\n function mapVisual(nodeModel, visuals, child, index, mapping, seriesModel) {\r\n var childVisuals = extend({}, visuals);\r\n if (mapping) {\r\n var mappingType = mapping.type;\r\n var colorMappingBy = mappingType === 'color' && inner$a(mapping).drColorMappingBy;\r\n var value = colorMappingBy === 'index'\r\n ? index\r\n : colorMappingBy === 'id'\r\n ? seriesModel.mapIdToIndex(child.getId())\r\n : child.getValue(nodeModel.get('visualDimension'));\r\n childVisuals[mappingType] = mapping.mapValueToVisual(value);\r\n }\r\n return childVisuals;\r\n }\n\n var mathMax$7 = Math.max;\r\n var mathMin$7 = Math.min;\r\n var retrieveValue = retrieve;\r\n var each$5 = each;\r\n var PATH_BORDER_WIDTH = ['itemStyle', 'borderWidth'];\r\n var PATH_GAP_WIDTH = ['itemStyle', 'gapWidth'];\r\n var PATH_UPPER_LABEL_SHOW = ['upperLabel', 'show'];\r\n var PATH_UPPER_LABEL_HEIGHT = ['upperLabel', 'height'];\r\n var treemapLayout = {\r\n seriesType: 'treemap',\r\n reset: function (seriesModel, ecModel, api, payload) {\r\n var ecWidth = api.getWidth();\r\n var ecHeight = api.getHeight();\r\n var seriesOption = seriesModel.option;\r\n var layoutInfo = getLayoutRect(seriesModel.getBoxLayoutParams(), {\r\n width: api.getWidth(),\r\n height: api.getHeight()\r\n });\r\n var size = seriesOption.size || [];\r\n var containerWidth = parsePercent$2(retrieveValue(layoutInfo.width, size[0]), ecWidth);\r\n var containerHeight = parsePercent$2(retrieveValue(layoutInfo.height, size[1]), ecHeight);\r\n var payloadType = payload && payload.type;\r\n var types = ['treemapZoomToNode', 'treemapRootToNode'];\r\n var targetInfo = retrieveTargetInfo(payload, types, seriesModel);\r\n var rootRect = (payloadType === 'treemapRender' || payloadType === 'treemapMove')\r\n ? payload.rootRect : null;\r\n var viewRoot = seriesModel.getViewRoot();\r\n var viewAbovePath = getPathToRoot(viewRoot);\r\n if (payloadType !== 'treemapMove') {\r\n var rootSize = payloadType === 'treemapZoomToNode'\r\n ? estimateRootSize(seriesModel, targetInfo, viewRoot, containerWidth, containerHeight)\r\n : rootRect\r\n ? [rootRect.width, rootRect.height]\r\n : [containerWidth, containerHeight];\r\n var sort_1 = seriesOption.sort;\r\n if (sort_1 && sort_1 !== 'asc' && sort_1 !== 'desc') {\r\n sort_1 = 'desc';\r\n }\r\n var options = {\r\n squareRatio: seriesOption.squareRatio,\r\n sort: sort_1,\r\n leafDepth: seriesOption.leafDepth\r\n };\r\n viewRoot.hostTree.clearLayouts();\r\n var viewRootLayout_1 = {\r\n x: 0,\r\n y: 0,\r\n width: rootSize[0],\r\n height: rootSize[1],\r\n area: rootSize[0] * rootSize[1]\r\n };\r\n viewRoot.setLayout(viewRootLayout_1);\r\n squarify(viewRoot, options, false, 0);\r\n viewRootLayout_1 = viewRoot.getLayout();\r\n each$5(viewAbovePath, function (node, index) {\r\n var childValue = (viewAbovePath[index + 1] || viewRoot).getValue();\r\n node.setLayout(extend({\r\n dataExtent: [childValue, childValue],\r\n borderWidth: 0,\r\n upperHeight: 0\r\n }, viewRootLayout_1));\r\n });\r\n }\r\n var treeRoot = seriesModel.getData().tree.root;\r\n treeRoot.setLayout(calculateRootPosition(layoutInfo, rootRect, targetInfo), true);\r\n seriesModel.setLayoutInfo(layoutInfo);\r\n prunning(treeRoot, new BoundingRect(-layoutInfo.x, -layoutInfo.y, ecWidth, ecHeight), viewAbovePath, viewRoot, 0);\r\n }\r\n };\r\n function squarify(node, options, hideChildren, depth) {\r\n var width;\r\n var height;\r\n if (node.isRemoved()) {\r\n return;\r\n }\r\n var thisLayout = node.getLayout();\r\n width = thisLayout.width;\r\n height = thisLayout.height;\r\n var nodeModel = node.getModel();\r\n var borderWidth = nodeModel.get(PATH_BORDER_WIDTH);\r\n var halfGapWidth = nodeModel.get(PATH_GAP_WIDTH) / 2;\r\n var upperLabelHeight = getUpperLabelHeight(nodeModel);\r\n var upperHeight = Math.max(borderWidth, upperLabelHeight);\r\n var layoutOffset = borderWidth - halfGapWidth;\r\n var layoutOffsetUpper = upperHeight - halfGapWidth;\r\n node.setLayout({\r\n borderWidth: borderWidth,\r\n upperHeight: upperHeight,\r\n upperLabelHeight: upperLabelHeight\r\n }, true);\r\n width = mathMax$7(width - 2 * layoutOffset, 0);\r\n height = mathMax$7(height - layoutOffset - layoutOffsetUpper, 0);\r\n var totalArea = width * height;\r\n var viewChildren = initChildren(node, nodeModel, totalArea, options, hideChildren, depth);\r\n if (!viewChildren.length) {\r\n return;\r\n }\r\n var rect = { x: layoutOffset, y: layoutOffsetUpper, width: width, height: height };\r\n var rowFixedLength = mathMin$7(width, height);\r\n var best = Infinity;\r\n var row = [];\r\n row.area = 0;\r\n for (var i = 0, len = viewChildren.length; i < len;) {\r\n var child = viewChildren[i];\r\n row.push(child);\r\n row.area += child.getLayout().area;\r\n var score = worst(row, rowFixedLength, options.squareRatio);\r\n if (score <= best) {\r\n i++;\r\n best = score;\r\n }\r\n else {\r\n row.area -= row.pop().getLayout().area;\r\n position(row, rowFixedLength, rect, halfGapWidth, false);\r\n rowFixedLength = mathMin$7(rect.width, rect.height);\r\n row.length = row.area = 0;\r\n best = Infinity;\r\n }\r\n }\r\n if (row.length) {\r\n position(row, rowFixedLength, rect, halfGapWidth, true);\r\n }\r\n if (!hideChildren) {\r\n var childrenVisibleMin = nodeModel.get('childrenVisibleMin');\r\n if (childrenVisibleMin != null && totalArea < childrenVisibleMin) {\r\n hideChildren = true;\r\n }\r\n }\r\n for (var i = 0, len = viewChildren.length; i < len; i++) {\r\n squarify(viewChildren[i], options, hideChildren, depth + 1);\r\n }\r\n }\r\n function initChildren(node, nodeModel, totalArea, options, hideChildren, depth) {\r\n var viewChildren = node.children || [];\r\n var orderBy = options.sort;\r\n orderBy !== 'asc' && orderBy !== 'desc' && (orderBy = null);\r\n var overLeafDepth = options.leafDepth != null && options.leafDepth <= depth;\r\n if (hideChildren && !overLeafDepth) {\r\n return (node.viewChildren = []);\r\n }\r\n viewChildren = filter(viewChildren, function (child) {\r\n return !child.isRemoved();\r\n });\r\n sort$1(viewChildren, orderBy);\r\n var info = statistic(nodeModel, viewChildren, orderBy);\r\n if (info.sum === 0) {\r\n return (node.viewChildren = []);\r\n }\r\n info.sum = filterByThreshold(nodeModel, totalArea, info.sum, orderBy, viewChildren);\r\n if (info.sum === 0) {\r\n return (node.viewChildren = []);\r\n }\r\n for (var i = 0, len = viewChildren.length; i < len; i++) {\r\n var area = viewChildren[i].getValue() / info.sum * totalArea;\r\n viewChildren[i].setLayout({\r\n area: area\r\n });\r\n }\r\n if (overLeafDepth) {\r\n viewChildren.length && node.setLayout({\r\n isLeafRoot: true\r\n }, true);\r\n viewChildren.length = 0;\r\n }\r\n node.viewChildren = viewChildren;\r\n node.setLayout({\r\n dataExtent: info.dataExtent\r\n }, true);\r\n return viewChildren;\r\n }\r\n function filterByThreshold(nodeModel, totalArea, sum, orderBy, orderedChildren) {\r\n if (!orderBy) {\r\n return sum;\r\n }\r\n var visibleMin = nodeModel.get('visibleMin');\r\n var len = orderedChildren.length;\r\n var deletePoint = len;\r\n for (var i = len - 1; i >= 0; i--) {\r\n var value = orderedChildren[orderBy === 'asc' ? len - i - 1 : i].getValue();\r\n if (value / sum * totalArea < visibleMin) {\r\n deletePoint = i;\r\n sum -= value;\r\n }\r\n }\r\n orderBy === 'asc'\r\n ? orderedChildren.splice(0, len - deletePoint)\r\n : orderedChildren.splice(deletePoint, len - deletePoint);\r\n return sum;\r\n }\r\n function sort$1(viewChildren, orderBy) {\r\n if (orderBy) {\r\n viewChildren.sort(function (a, b) {\r\n var diff = orderBy === 'asc'\r\n ? a.getValue() - b.getValue()\r\n : b.getValue() - a.getValue();\r\n return diff === 0\r\n ? (orderBy === 'asc'\r\n ? a.dataIndex - b.dataIndex : b.dataIndex - a.dataIndex)\r\n : diff;\r\n });\r\n }\r\n return viewChildren;\r\n }\r\n function statistic(nodeModel, children, orderBy) {\r\n var sum = 0;\r\n for (var i = 0, len = children.length; i < len; i++) {\r\n sum += children[i].getValue();\r\n }\r\n var dimension = nodeModel.get('visualDimension');\r\n var dataExtent;\r\n if (!children || !children.length) {\r\n dataExtent = [NaN, NaN];\r\n }\r\n else if (dimension === 'value' && orderBy) {\r\n dataExtent = [\r\n children[children.length - 1].getValue(),\r\n children[0].getValue()\r\n ];\r\n orderBy === 'asc' && dataExtent.reverse();\r\n }\r\n else {\r\n dataExtent = [Infinity, -Infinity];\r\n each$5(children, function (child) {\r\n var value = child.getValue(dimension);\r\n value < dataExtent[0] && (dataExtent[0] = value);\r\n value > dataExtent[1] && (dataExtent[1] = value);\r\n });\r\n }\r\n return { sum: sum, dataExtent: dataExtent };\r\n }\r\n function worst(row, rowFixedLength, ratio) {\r\n var areaMax = 0;\r\n var areaMin = Infinity;\r\n for (var i = 0, area = void 0, len = row.length; i < len; i++) {\r\n area = row[i].getLayout().area;\r\n if (area) {\r\n area < areaMin && (areaMin = area);\r\n area > areaMax && (areaMax = area);\r\n }\r\n }\r\n var squareArea = row.area * row.area;\r\n var f = rowFixedLength * rowFixedLength * ratio;\r\n return squareArea\r\n ? mathMax$7((f * areaMax) / squareArea, squareArea / (f * areaMin))\r\n : Infinity;\r\n }\r\n function position(row, rowFixedLength, rect, halfGapWidth, flush) {\r\n var idx0WhenH = rowFixedLength === rect.width ? 0 : 1;\r\n var idx1WhenH = 1 - idx0WhenH;\r\n var xy = ['x', 'y'];\r\n var wh = ['width', 'height'];\r\n var last = rect[xy[idx0WhenH]];\r\n var rowOtherLength = rowFixedLength\r\n ? row.area / rowFixedLength : 0;\r\n if (flush || rowOtherLength > rect[wh[idx1WhenH]]) {\r\n rowOtherLength = rect[wh[idx1WhenH]];\r\n }\r\n for (var i = 0, rowLen = row.length; i < rowLen; i++) {\r\n var node = row[i];\r\n var nodeLayout = {};\r\n var step = rowOtherLength\r\n ? node.getLayout().area / rowOtherLength : 0;\r\n var wh1 = nodeLayout[wh[idx1WhenH]] = mathMax$7(rowOtherLength - 2 * halfGapWidth, 0);\r\n var remain = rect[xy[idx0WhenH]] + rect[wh[idx0WhenH]] - last;\r\n var modWH = (i === rowLen - 1 || remain < step) ? remain : step;\r\n var wh0 = nodeLayout[wh[idx0WhenH]] = mathMax$7(modWH - 2 * halfGapWidth, 0);\r\n nodeLayout[xy[idx1WhenH]] = rect[xy[idx1WhenH]] + mathMin$7(halfGapWidth, wh1 / 2);\r\n nodeLayout[xy[idx0WhenH]] = last + mathMin$7(halfGapWidth, wh0 / 2);\r\n last += modWH;\r\n node.setLayout(nodeLayout, true);\r\n }\r\n rect[xy[idx1WhenH]] += rowOtherLength;\r\n rect[wh[idx1WhenH]] -= rowOtherLength;\r\n }\r\n function estimateRootSize(seriesModel, targetInfo, viewRoot, containerWidth, containerHeight) {\r\n var currNode = (targetInfo || {}).node;\r\n var defaultSize = [containerWidth, containerHeight];\r\n if (!currNode || currNode === viewRoot) {\r\n return defaultSize;\r\n }\r\n var parent;\r\n var viewArea = containerWidth * containerHeight;\r\n var area = viewArea * seriesModel.option.zoomToNodeRatio;\r\n while (parent = currNode.parentNode) {\r\n var sum = 0;\r\n var siblings = parent.children;\r\n for (var i = 0, len = siblings.length; i < len; i++) {\r\n sum += siblings[i].getValue();\r\n }\r\n var currNodeValue = currNode.getValue();\r\n if (currNodeValue === 0) {\r\n return defaultSize;\r\n }\r\n area *= sum / currNodeValue;\r\n var parentModel = parent.getModel();\r\n var borderWidth = parentModel.get(PATH_BORDER_WIDTH);\r\n var upperHeight = Math.max(borderWidth, getUpperLabelHeight(parentModel));\r\n area += 4 * borderWidth * borderWidth\r\n + (3 * borderWidth + upperHeight) * Math.pow(area, 0.5);\r\n area > MAX_SAFE_INTEGER && (area = MAX_SAFE_INTEGER);\r\n currNode = parent;\r\n }\r\n area < viewArea && (area = viewArea);\r\n var scale = Math.pow(area / viewArea, 0.5);\r\n return [containerWidth * scale, containerHeight * scale];\r\n }\r\n function calculateRootPosition(layoutInfo, rootRect, targetInfo) {\r\n if (rootRect) {\r\n return { x: rootRect.x, y: rootRect.y };\r\n }\r\n var defaultPosition = { x: 0, y: 0 };\r\n if (!targetInfo) {\r\n return defaultPosition;\r\n }\r\n var targetNode = targetInfo.node;\r\n var layout = targetNode.getLayout();\r\n if (!layout) {\r\n return defaultPosition;\r\n }\r\n var targetCenter = [layout.width / 2, layout.height / 2];\r\n var node = targetNode;\r\n while (node) {\r\n var nodeLayout = node.getLayout();\r\n targetCenter[0] += nodeLayout.x;\r\n targetCenter[1] += nodeLayout.y;\r\n node = node.parentNode;\r\n }\r\n return {\r\n x: layoutInfo.width / 2 - targetCenter[0],\r\n y: layoutInfo.height / 2 - targetCenter[1]\r\n };\r\n }\r\n function prunning(node, clipRect, viewAbovePath, viewRoot, depth) {\r\n var nodeLayout = node.getLayout();\r\n var nodeInViewAbovePath = viewAbovePath[depth];\r\n var isAboveViewRoot = nodeInViewAbovePath && nodeInViewAbovePath === node;\r\n if ((nodeInViewAbovePath && !isAboveViewRoot)\r\n || (depth === viewAbovePath.length && node !== viewRoot)) {\r\n return;\r\n }\r\n node.setLayout({\r\n isInView: true,\r\n invisible: !isAboveViewRoot && !clipRect.intersect(nodeLayout),\r\n isAboveViewRoot: isAboveViewRoot\r\n }, true);\r\n var childClipRect = new BoundingRect(clipRect.x - nodeLayout.x, clipRect.y - nodeLayout.y, clipRect.width, clipRect.height);\r\n each$5(node.viewChildren || [], function (child) {\r\n prunning(child, childClipRect, viewAbovePath, viewRoot, depth + 1);\r\n });\r\n }\r\n function getUpperLabelHeight(model) {\r\n return model.get(PATH_UPPER_LABEL_SHOW) ? model.get(PATH_UPPER_LABEL_HEIGHT) : 0;\r\n }\n\n registerVisual(treemapVisual);\r\n registerLayout(treemapLayout);\n\n function generateNodeKey(id) {\r\n return '_EC_' + id;\r\n }\r\n var Graph = (function () {\r\n function Graph(directed) {\r\n this.type = 'graph';\r\n this.nodes = [];\r\n this.edges = [];\r\n this._nodesMap = {};\r\n this._edgesMap = {};\r\n this._directed = directed || false;\r\n }\r\n Graph.prototype.isDirected = function () {\r\n return this._directed;\r\n };\r\n Graph.prototype.addNode = function (id, dataIndex) {\r\n id = id == null ? ('' + dataIndex) : ('' + id);\r\n var nodesMap = this._nodesMap;\r\n if (nodesMap[generateNodeKey(id)]) {\r\n if (__DEV__) {\r\n console.error('Graph nodes have duplicate name or id');\r\n }\r\n return;\r\n }\r\n var node = new GraphNode(id, dataIndex);\r\n node.hostGraph = this;\r\n this.nodes.push(node);\r\n nodesMap[generateNodeKey(id)] = node;\r\n return node;\r\n };\r\n Graph.prototype.getNodeByIndex = function (dataIndex) {\r\n var rawIdx = this.data.getRawIndex(dataIndex);\r\n return this.nodes[rawIdx];\r\n };\r\n Graph.prototype.getNodeById = function (id) {\r\n return this._nodesMap[generateNodeKey(id)];\r\n };\r\n Graph.prototype.addEdge = function (n1, n2, dataIndex) {\r\n var nodesMap = this._nodesMap;\r\n var edgesMap = this._edgesMap;\r\n if (typeof n1 === 'number') {\r\n n1 = this.nodes[n1];\r\n }\r\n if (typeof n2 === 'number') {\r\n n2 = this.nodes[n2];\r\n }\r\n if (!(n1 instanceof GraphNode)) {\r\n n1 = nodesMap[generateNodeKey(n1)];\r\n }\r\n if (!(n2 instanceof GraphNode)) {\r\n n2 = nodesMap[generateNodeKey(n2)];\r\n }\r\n if (!n1 || !n2) {\r\n return;\r\n }\r\n var key = n1.id + '-' + n2.id;\r\n var edge = new GraphEdge(n1, n2, dataIndex);\r\n edge.hostGraph = this;\r\n if (this._directed) {\r\n n1.outEdges.push(edge);\r\n n2.inEdges.push(edge);\r\n }\r\n n1.edges.push(edge);\r\n if (n1 !== n2) {\r\n n2.edges.push(edge);\r\n }\r\n this.edges.push(edge);\r\n edgesMap[key] = edge;\r\n return edge;\r\n };\r\n Graph.prototype.getEdgeByIndex = function (dataIndex) {\r\n var rawIdx = this.edgeData.getRawIndex(dataIndex);\r\n return this.edges[rawIdx];\r\n };\r\n Graph.prototype.getEdge = function (n1, n2) {\r\n if (n1 instanceof GraphNode) {\r\n n1 = n1.id;\r\n }\r\n if (n2 instanceof GraphNode) {\r\n n2 = n2.id;\r\n }\r\n var edgesMap = this._edgesMap;\r\n if (this._directed) {\r\n return edgesMap[n1 + '-' + n2];\r\n }\r\n else {\r\n return edgesMap[n1 + '-' + n2]\r\n || edgesMap[n2 + '-' + n1];\r\n }\r\n };\r\n Graph.prototype.eachNode = function (cb, context) {\r\n var nodes = this.nodes;\r\n var len = nodes.length;\r\n for (var i = 0; i < len; i++) {\r\n if (nodes[i].dataIndex >= 0) {\r\n cb.call(context, nodes[i], i);\r\n }\r\n }\r\n };\r\n Graph.prototype.eachEdge = function (cb, context) {\r\n var edges = this.edges;\r\n var len = edges.length;\r\n for (var i = 0; i < len; i++) {\r\n if (edges[i].dataIndex >= 0\r\n && edges[i].node1.dataIndex >= 0\r\n && edges[i].node2.dataIndex >= 0) {\r\n cb.call(context, edges[i], i);\r\n }\r\n }\r\n };\r\n Graph.prototype.breadthFirstTraverse = function (cb, startNode, direction, context) {\r\n if (!(startNode instanceof GraphNode)) {\r\n startNode = this._nodesMap[generateNodeKey(startNode)];\r\n }\r\n if (!startNode) {\r\n return;\r\n }\r\n var edgeType = direction === 'out'\r\n ? 'outEdges' : (direction === 'in' ? 'inEdges' : 'edges');\r\n for (var i = 0; i < this.nodes.length; i++) {\r\n this.nodes[i].__visited = false;\r\n }\r\n if (cb.call(context, startNode, null)) {\r\n return;\r\n }\r\n var queue = [startNode];\r\n while (queue.length) {\r\n var currentNode = queue.shift();\r\n var edges = currentNode[edgeType];\r\n for (var i = 0; i < edges.length; i++) {\r\n var e = edges[i];\r\n var otherNode = e.node1 === currentNode\r\n ? e.node2 : e.node1;\r\n if (!otherNode.__visited) {\r\n if (cb.call(context, otherNode, currentNode)) {\r\n return;\r\n }\r\n queue.push(otherNode);\r\n otherNode.__visited = true;\r\n }\r\n }\r\n }\r\n };\r\n Graph.prototype.update = function () {\r\n var data = this.data;\r\n var edgeData = this.edgeData;\r\n var nodes = this.nodes;\r\n var edges = this.edges;\r\n for (var i = 0, len = nodes.length; i < len; i++) {\r\n nodes[i].dataIndex = -1;\r\n }\r\n for (var i = 0, len = data.count(); i < len; i++) {\r\n nodes[data.getRawIndex(i)].dataIndex = i;\r\n }\r\n edgeData.filterSelf(function (idx) {\r\n var edge = edges[edgeData.getRawIndex(idx)];\r\n return edge.node1.dataIndex >= 0 && edge.node2.dataIndex >= 0;\r\n });\r\n for (var i = 0, len = edges.length; i < len; i++) {\r\n edges[i].dataIndex = -1;\r\n }\r\n for (var i = 0, len = edgeData.count(); i < len; i++) {\r\n edges[edgeData.getRawIndex(i)].dataIndex = i;\r\n }\r\n };\r\n Graph.prototype.clone = function () {\r\n var graph = new Graph(this._directed);\r\n var nodes = this.nodes;\r\n var edges = this.edges;\r\n for (var i = 0; i < nodes.length; i++) {\r\n graph.addNode(nodes[i].id, nodes[i].dataIndex);\r\n }\r\n for (var i = 0; i < edges.length; i++) {\r\n var e = edges[i];\r\n graph.addEdge(e.node1.id, e.node2.id, e.dataIndex);\r\n }\r\n return graph;\r\n };\r\n return Graph;\r\n }());\r\n var GraphNode = (function () {\r\n function GraphNode(id, dataIndex) {\r\n this.inEdges = [];\r\n this.outEdges = [];\r\n this.edges = [];\r\n this.dataIndex = -1;\r\n this.id = id == null ? '' : id;\r\n this.dataIndex = dataIndex == null ? -1 : dataIndex;\r\n }\r\n GraphNode.prototype.degree = function () {\r\n return this.edges.length;\r\n };\r\n GraphNode.prototype.inDegree = function () {\r\n return this.inEdges.length;\r\n };\r\n GraphNode.prototype.outDegree = function () {\r\n return this.outEdges.length;\r\n };\r\n GraphNode.prototype.getModel = function (path) {\r\n if (this.dataIndex < 0) {\r\n return;\r\n }\r\n var graph = this.hostGraph;\r\n var itemModel = graph.data.getItemModel(this.dataIndex);\r\n return itemModel.getModel(path);\r\n };\r\n GraphNode.prototype.getAdjacentDataIndices = function () {\r\n var dataIndices = {\r\n edge: [],\r\n node: []\r\n };\r\n for (var i = 0; i < this.edges.length; i++) {\r\n var adjacentEdge = this.edges[i];\r\n if (adjacentEdge.dataIndex < 0) {\r\n continue;\r\n }\r\n dataIndices.edge.push(adjacentEdge.dataIndex);\r\n dataIndices.node.push(adjacentEdge.node1.dataIndex, adjacentEdge.node2.dataIndex);\r\n }\r\n return dataIndices;\r\n };\r\n return GraphNode;\r\n }());\r\n var GraphEdge = (function () {\r\n function GraphEdge(n1, n2, dataIndex) {\r\n this.dataIndex = -1;\r\n this.node1 = n1;\r\n this.node2 = n2;\r\n this.dataIndex = dataIndex == null ? -1 : dataIndex;\r\n }\r\n GraphEdge.prototype.getModel = function (path) {\r\n if (this.dataIndex < 0) {\r\n return;\r\n }\r\n var graph = this.hostGraph;\r\n var itemModel = graph.edgeData.getItemModel(this.dataIndex);\r\n return itemModel.getModel(path);\r\n };\r\n GraphEdge.prototype.getAdjacentDataIndices = function () {\r\n return {\r\n edge: [this.dataIndex],\r\n node: [this.node1.dataIndex, this.node2.dataIndex]\r\n };\r\n };\r\n return GraphEdge;\r\n }());\r\n function createGraphDataProxyMixin(hostName, dataName) {\r\n return {\r\n getValue: function (dimension) {\r\n var data = this[hostName][dataName];\r\n return data.get(data.getDimension(dimension || 'value'), this.dataIndex);\r\n },\r\n setVisual: function (key, value) {\r\n this.dataIndex >= 0\r\n && this[hostName][dataName].setItemVisual(this.dataIndex, key, value);\r\n },\r\n getVisual: function (key) {\r\n return this[hostName][dataName].getItemVisual(this.dataIndex, key);\r\n },\r\n setLayout: function (layout, merge) {\r\n this.dataIndex >= 0\r\n && this[hostName][dataName].setItemLayout(this.dataIndex, layout, merge);\r\n },\r\n getLayout: function () {\r\n return this[hostName][dataName].getItemLayout(this.dataIndex);\r\n },\r\n getGraphicEl: function () {\r\n return this[hostName][dataName].getItemGraphicEl(this.dataIndex);\r\n },\r\n getRawIndex: function () {\r\n return this[hostName][dataName].getRawIndex(this.dataIndex);\r\n }\r\n };\r\n }\r\n mixin(GraphNode, createGraphDataProxyMixin('hostGraph', 'data'));\r\n mixin(GraphEdge, createGraphDataProxyMixin('hostGraph', 'edgeData'));\n\n function createGraphFromNodeEdge(nodes, edges, seriesModel, directed, beforeLink) {\r\n var graph = new Graph(directed);\r\n for (var i = 0; i < nodes.length; i++) {\r\n graph.addNode(retrieve(nodes[i].id, nodes[i].name, i), i);\r\n }\r\n var linkNameList = [];\r\n var validEdges = [];\r\n var linkCount = 0;\r\n for (var i = 0; i < edges.length; i++) {\r\n var link = edges[i];\r\n var source = link.source;\r\n var target = link.target;\r\n if (graph.addEdge(source, target, linkCount)) {\r\n validEdges.push(link);\r\n linkNameList.push(retrieve(convertOptionIdName(link.id, null), source + ' > ' + target));\r\n linkCount++;\r\n }\r\n }\r\n var coordSys = seriesModel.get('coordinateSystem');\r\n var nodeData;\r\n if (coordSys === 'cartesian2d' || coordSys === 'polar') {\r\n nodeData = createListFromArray(nodes, seriesModel);\r\n }\r\n else {\r\n var coordSysCtor = CoordinateSystemManager.get(coordSys);\r\n var coordDimensions = coordSysCtor\r\n ? (coordSysCtor.dimensions || []) : [];\r\n if (indexOf(coordDimensions, 'value') < 0) {\r\n coordDimensions.concat(['value']);\r\n }\r\n var dimensionNames = createDimensions(nodes, {\r\n coordDimensions: coordDimensions\r\n });\r\n nodeData = new List(dimensionNames, seriesModel);\r\n nodeData.initData(nodes);\r\n }\r\n var edgeData = new List(['value'], seriesModel);\r\n edgeData.initData(validEdges, linkNameList);\r\n beforeLink && beforeLink(nodeData, edgeData);\r\n linkList({\r\n mainData: nodeData,\r\n struct: graph,\r\n structAttr: 'graph',\r\n datas: { node: nodeData, edge: edgeData },\r\n datasAttr: { node: 'data', edge: 'edgeData' }\r\n });\r\n graph.update();\r\n return graph;\r\n }\n\n var KEY_DELIMITER = '-->';\r\n var getAutoCurvenessParams = function (seriesModel) {\r\n return seriesModel.get('autoCurveness') || null;\r\n };\r\n var createCurveness = function (seriesModel, appendLength) {\r\n var autoCurvenessParmas = getAutoCurvenessParams(seriesModel);\r\n var length = 20;\r\n var curvenessList = [];\r\n if (typeof autoCurvenessParmas === 'number') {\r\n length = autoCurvenessParmas;\r\n }\r\n else if (isArray(autoCurvenessParmas)) {\r\n seriesModel.__curvenessList = autoCurvenessParmas;\r\n return;\r\n }\r\n if (appendLength > length) {\r\n length = appendLength;\r\n }\r\n var len = length % 2 ? length + 2 : length + 3;\r\n curvenessList = [];\r\n for (var i = 0; i < len; i++) {\r\n curvenessList.push((i % 2 ? i + 1 : i) / 10 * (i % 2 ? -1 : 1));\r\n }\r\n seriesModel.__curvenessList = curvenessList;\r\n };\r\n var getKeyOfEdges = function (n1, n2, seriesModel) {\r\n var source = [n1.id, n1.dataIndex].join('.');\r\n var target = [n2.id, n2.dataIndex].join('.');\r\n return [seriesModel.uid, source, target].join(KEY_DELIMITER);\r\n };\r\n var getOppositeKey = function (key) {\r\n var keys = key.split(KEY_DELIMITER);\r\n return [keys[0], keys[2], keys[1]].join(KEY_DELIMITER);\r\n };\r\n var getEdgeFromMap = function (edge, seriesModel) {\r\n var key = getKeyOfEdges(edge.node1, edge.node2, seriesModel);\r\n return seriesModel.__edgeMap[key];\r\n };\r\n var getTotalLengthBetweenNodes = function (edge, seriesModel) {\r\n var len = getEdgeMapLengthWithKey(getKeyOfEdges(edge.node1, edge.node2, seriesModel), seriesModel);\r\n var lenV = getEdgeMapLengthWithKey(getKeyOfEdges(edge.node2, edge.node1, seriesModel), seriesModel);\r\n return len + lenV;\r\n };\r\n var getEdgeMapLengthWithKey = function (key, seriesModel) {\r\n var edgeMap = seriesModel.__edgeMap;\r\n return edgeMap[key] ? edgeMap[key].length : 0;\r\n };\r\n function initCurvenessList(seriesModel) {\r\n if (!getAutoCurvenessParams(seriesModel)) {\r\n return;\r\n }\r\n seriesModel.__curvenessList = [];\r\n seriesModel.__edgeMap = {};\r\n createCurveness(seriesModel);\r\n }\r\n function createEdgeMapForCurveness(n1, n2, seriesModel, index) {\r\n if (!getAutoCurvenessParams(seriesModel)) {\r\n return;\r\n }\r\n var key = getKeyOfEdges(n1, n2, seriesModel);\r\n var edgeMap = seriesModel.__edgeMap;\r\n var oppositeEdges = edgeMap[getOppositeKey(key)];\r\n if (edgeMap[key] && !oppositeEdges) {\r\n edgeMap[key].isForward = true;\r\n }\r\n else if (oppositeEdges && edgeMap[key]) {\r\n oppositeEdges.isForward = true;\r\n edgeMap[key].isForward = false;\r\n }\r\n edgeMap[key] = edgeMap[key] || [];\r\n edgeMap[key].push(index);\r\n }\r\n function getCurvenessForEdge(edge, seriesModel, index, needReverse) {\r\n var autoCurvenessParams = getAutoCurvenessParams(seriesModel);\r\n var isArrayParam = isArray(autoCurvenessParams);\r\n if (!autoCurvenessParams) {\r\n return null;\r\n }\r\n var edgeArray = getEdgeFromMap(edge, seriesModel);\r\n if (!edgeArray) {\r\n return null;\r\n }\r\n var edgeIndex = -1;\r\n for (var i = 0; i < edgeArray.length; i++) {\r\n if (edgeArray[i] === index) {\r\n edgeIndex = i;\r\n break;\r\n }\r\n }\r\n var totalLen = getTotalLengthBetweenNodes(edge, seriesModel);\r\n createCurveness(seriesModel, totalLen);\r\n edge.lineStyle = edge.lineStyle || {};\r\n var curKey = getKeyOfEdges(edge.node1, edge.node2, seriesModel);\r\n var curvenessList = seriesModel.__curvenessList;\r\n var parityCorrection = isArrayParam ? 0 : totalLen % 2 ? 0 : 1;\r\n if (!edgeArray.isForward) {\r\n var oppositeKey = getOppositeKey(curKey);\r\n var len = getEdgeMapLengthWithKey(oppositeKey, seriesModel);\r\n var resValue = curvenessList[edgeIndex + len + parityCorrection];\r\n if (needReverse) {\r\n if (isArrayParam) {\r\n if (autoCurvenessParams && autoCurvenessParams[0] === 0) {\r\n return (len + parityCorrection) % 2 ? resValue : -resValue;\r\n }\r\n else {\r\n return ((len % 2 ? 0 : 1) + parityCorrection) % 2 ? resValue : -resValue;\r\n }\r\n }\r\n else {\r\n return (len + parityCorrection) % 2 ? resValue : -resValue;\r\n }\r\n }\r\n else {\r\n return curvenessList[edgeIndex + len + parityCorrection];\r\n }\r\n }\r\n else {\r\n return curvenessList[parityCorrection + edgeIndex];\r\n }\r\n }\n\n var GraphSeriesModel = (function (_super) {\r\n __extends(GraphSeriesModel, _super);\r\n function GraphSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = GraphSeriesModel.type;\r\n _this.hasSymbolVisual = true;\r\n return _this;\r\n }\r\n GraphSeriesModel.prototype.init = function (option) {\r\n _super.prototype.init.apply(this, arguments);\r\n var self = this;\r\n function getCategoriesData() {\r\n return self._categoriesData;\r\n }\r\n this.legendVisualProvider = new LegendVisualProvider(getCategoriesData, getCategoriesData);\r\n this.fillDataTextStyle(option.edges || option.links);\r\n this._updateCategoriesData();\r\n };\r\n GraphSeriesModel.prototype.mergeOption = function (option) {\r\n _super.prototype.mergeOption.apply(this, arguments);\r\n this.fillDataTextStyle(option.edges || option.links);\r\n this._updateCategoriesData();\r\n };\r\n GraphSeriesModel.prototype.mergeDefaultAndTheme = function (option) {\r\n _super.prototype.mergeDefaultAndTheme.apply(this, arguments);\r\n defaultEmphasis(option, 'edgeLabel', ['show']);\r\n };\r\n GraphSeriesModel.prototype.getInitialData = function (option, ecModel) {\r\n var edges = option.edges || option.links || [];\r\n var nodes = option.data || option.nodes || [];\r\n var self = this;\r\n if (nodes && edges) {\r\n initCurvenessList(this);\r\n var graph = createGraphFromNodeEdge(nodes, edges, this, true, beforeLink);\r\n each(graph.edges, function (edge) {\r\n createEdgeMapForCurveness(edge.node1, edge.node2, this, edge.dataIndex);\r\n }, this);\r\n return graph.data;\r\n }\r\n function beforeLink(nodeData, edgeData) {\r\n nodeData.wrapMethod('getItemModel', function (model) {\r\n var categoriesModels = self._categoriesModels;\r\n var categoryIdx = model.getShallow('category');\r\n var categoryModel = categoriesModels[categoryIdx];\r\n if (categoryModel) {\r\n categoryModel.parentModel = model.parentModel;\r\n model.parentModel = categoryModel;\r\n }\r\n return model;\r\n });\r\n var oldGetModel = Model.prototype.getModel;\r\n function newGetModel(path, parentModel) {\r\n var model = oldGetModel.call(this, path, parentModel);\r\n model.resolveParentPath = resolveParentPath;\r\n return model;\r\n }\r\n edgeData.wrapMethod('getItemModel', function (model) {\r\n model.resolveParentPath = resolveParentPath;\r\n model.getModel = newGetModel;\r\n return model;\r\n });\r\n function resolveParentPath(pathArr) {\r\n if (pathArr && (pathArr[0] === 'label' || pathArr[1] === 'label')) {\r\n var newPathArr = pathArr.slice();\r\n if (pathArr[0] === 'label') {\r\n newPathArr[0] = 'edgeLabel';\r\n }\r\n else if (pathArr[1] === 'label') {\r\n newPathArr[1] = 'edgeLabel';\r\n }\r\n return newPathArr;\r\n }\r\n return pathArr;\r\n }\r\n }\r\n };\r\n GraphSeriesModel.prototype.getGraph = function () {\r\n return this.getData().graph;\r\n };\r\n GraphSeriesModel.prototype.getEdgeData = function () {\r\n return this.getGraph().edgeData;\r\n };\r\n GraphSeriesModel.prototype.getCategoriesData = function () {\r\n return this._categoriesData;\r\n };\r\n GraphSeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\r\n if (dataType === 'edge') {\r\n var nodeData = this.getData();\r\n var params = this.getDataParams(dataIndex, dataType);\r\n var edge = nodeData.graph.getEdgeByIndex(dataIndex);\r\n var sourceName = nodeData.getName(edge.node1.dataIndex);\r\n var targetName = nodeData.getName(edge.node2.dataIndex);\r\n var nameArr = [];\r\n sourceName != null && nameArr.push(sourceName);\r\n targetName != null && nameArr.push(targetName);\r\n return createTooltipMarkup('nameValue', {\r\n name: nameArr.join(' > '),\r\n value: params.value,\r\n noValue: params.value == null\r\n });\r\n }\r\n var nodeMarkup = defaultSeriesFormatTooltip({\r\n series: this,\r\n dataIndex: dataIndex,\r\n multipleSeries: multipleSeries\r\n });\r\n return nodeMarkup;\r\n };\r\n GraphSeriesModel.prototype._updateCategoriesData = function () {\r\n var categories = map(this.option.categories || [], function (category) {\r\n return category.value != null ? category : extend({\r\n value: 0\r\n }, category);\r\n });\r\n var categoriesData = new List(['value'], this);\r\n categoriesData.initData(categories);\r\n this._categoriesData = categoriesData;\r\n this._categoriesModels = categoriesData.mapArray(function (idx) {\r\n return categoriesData.getItemModel(idx);\r\n });\r\n };\r\n GraphSeriesModel.prototype.setZoom = function (zoom) {\r\n this.option.zoom = zoom;\r\n };\r\n GraphSeriesModel.prototype.setCenter = function (center) {\r\n this.option.center = center;\r\n };\r\n GraphSeriesModel.prototype.isAnimationEnabled = function () {\r\n return _super.prototype.isAnimationEnabled.call(this)\r\n && !(this.get('layout') === 'force' && this.get(['force', 'layoutAnimation']));\r\n };\r\n GraphSeriesModel.type = 'series.graph';\r\n GraphSeriesModel.defaultOption = {\r\n zlevel: 0,\r\n z: 2,\r\n coordinateSystem: 'view',\r\n legendHoverLink: true,\r\n layout: null,\r\n focusNodeAdjacency: false,\r\n circular: {\r\n rotateLabel: false\r\n },\r\n force: {\r\n initLayout: null,\r\n repulsion: [0, 50],\r\n gravity: 0.1,\r\n friction: 0.6,\r\n edgeLength: 30,\r\n layoutAnimation: true\r\n },\r\n left: 'center',\r\n top: 'center',\r\n symbol: 'circle',\r\n symbolSize: 10,\r\n edgeSymbol: ['none', 'none'],\r\n edgeSymbolSize: 10,\r\n edgeLabel: {\r\n position: 'middle',\r\n distance: 5\r\n },\r\n draggable: false,\r\n roam: false,\r\n center: null,\r\n zoom: 1,\r\n nodeScaleRatio: 0.6,\r\n label: {\r\n show: false,\r\n formatter: '{b}'\r\n },\r\n itemStyle: {},\r\n lineStyle: {\r\n color: '#aaa',\r\n width: 1,\r\n opacity: 0.5\r\n },\r\n emphasis: {\r\n scale: true,\r\n label: {\r\n show: true\r\n }\r\n },\r\n select: {\r\n itemStyle: {\r\n borderColor: '#212121'\r\n }\r\n }\r\n };\r\n return GraphSeriesModel;\r\n }(SeriesModel));\r\n SeriesModel.registerClass(GraphSeriesModel);\n\n var straightLineProto = Line.prototype;\r\n var bezierCurveProto = BezierCurve.prototype;\r\n var StraightLineShape = (function () {\r\n function StraightLineShape() {\r\n this.x1 = 0;\r\n this.y1 = 0;\r\n this.x2 = 0;\r\n this.y2 = 0;\r\n this.percent = 1;\r\n }\r\n return StraightLineShape;\r\n }());\r\n var CurveShape = (function (_super) {\r\n __extends(CurveShape, _super);\r\n function CurveShape() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n return CurveShape;\r\n }(StraightLineShape));\r\n function isStraightLine(shape) {\r\n return isNaN(+shape.cpx1) || isNaN(+shape.cpy1);\r\n }\r\n var ECLinePath = (function (_super) {\r\n __extends(ECLinePath, _super);\r\n function ECLinePath(opts) {\r\n var _this = _super.call(this, opts) || this;\r\n _this.type = 'ec-line';\r\n return _this;\r\n }\r\n ECLinePath.prototype.getDefaultStyle = function () {\r\n return {\r\n stroke: '#000',\r\n fill: null\r\n };\r\n };\r\n ECLinePath.prototype.getDefaultShape = function () {\r\n return new StraightLineShape();\r\n };\r\n ECLinePath.prototype.buildPath = function (ctx, shape) {\r\n if (isStraightLine(shape)) {\r\n straightLineProto.buildPath.call(this, ctx, shape);\r\n }\r\n else {\r\n bezierCurveProto.buildPath.call(this, ctx, shape);\r\n }\r\n };\r\n ECLinePath.prototype.pointAt = function (t) {\r\n if (isStraightLine(this.shape)) {\r\n return straightLineProto.pointAt.call(this, t);\r\n }\r\n else {\r\n return bezierCurveProto.pointAt.call(this, t);\r\n }\r\n };\r\n ECLinePath.prototype.tangentAt = function (t) {\r\n var shape = this.shape;\r\n var p = isStraightLine(shape)\r\n ? [shape.x2 - shape.x1, shape.y2 - shape.y1]\r\n : bezierCurveProto.tangentAt.call(this, t);\r\n return normalize(p, p);\r\n };\r\n return ECLinePath;\r\n }(Path));\n\n var SYMBOL_CATEGORIES = ['fromSymbol', 'toSymbol'];\r\n function makeSymbolTypeKey(symbolCategory) {\r\n return '_' + symbolCategory + 'Type';\r\n }\r\n function createSymbol$1(name, lineData, idx) {\r\n var symbolType = lineData.getItemVisual(idx, name);\r\n if (!symbolType || symbolType === 'none') {\r\n return;\r\n }\r\n var symbolSize = lineData.getItemVisual(idx, name + 'Size');\r\n var symbolRotate = lineData.getItemVisual(idx, name + 'Rotate');\r\n var symbolSizeArr = isArray(symbolSize)\r\n ? symbolSize : [symbolSize, symbolSize];\r\n var symbolPath = createSymbol(symbolType, -symbolSizeArr[0] / 2, -symbolSizeArr[1] / 2, symbolSizeArr[0], symbolSizeArr[1]);\r\n symbolPath.__specifiedRotation = symbolRotate == null || isNaN(symbolRotate)\r\n ? void 0\r\n : +symbolRotate * Math.PI / 180 || 0;\r\n symbolPath.name = name;\r\n return symbolPath;\r\n }\r\n function createLine(points) {\r\n var line = new ECLinePath({\r\n name: 'line',\r\n subPixelOptimize: true\r\n });\r\n setLinePoints(line.shape, points);\r\n return line;\r\n }\r\n function setLinePoints(targetShape, points) {\r\n targetShape.x1 = points[0][0];\r\n targetShape.y1 = points[0][1];\r\n targetShape.x2 = points[1][0];\r\n targetShape.y2 = points[1][1];\r\n targetShape.percent = 1;\r\n var cp1 = points[2];\r\n if (cp1) {\r\n targetShape.cpx1 = cp1[0];\r\n targetShape.cpy1 = cp1[1];\r\n }\r\n else {\r\n targetShape.cpx1 = NaN;\r\n targetShape.cpy1 = NaN;\r\n }\r\n }\r\n var Line$1 = (function (_super) {\r\n __extends(Line, _super);\r\n function Line(lineData, idx, seriesScope) {\r\n var _this = _super.call(this) || this;\r\n _this._createLine(lineData, idx, seriesScope);\r\n return _this;\r\n }\r\n Line.prototype._createLine = function (lineData, idx, seriesScope) {\r\n var seriesModel = lineData.hostModel;\r\n var linePoints = lineData.getItemLayout(idx);\r\n var line = createLine(linePoints);\r\n line.shape.percent = 0;\r\n initProps(line, {\r\n shape: {\r\n percent: 1\r\n }\r\n }, seriesModel, idx);\r\n this.add(line);\r\n each(SYMBOL_CATEGORIES, function (symbolCategory) {\r\n var symbol = createSymbol$1(symbolCategory, lineData, idx);\r\n this.add(symbol);\r\n this[makeSymbolTypeKey(symbolCategory)] = lineData.getItemVisual(idx, symbolCategory);\r\n }, this);\r\n this._updateCommonStl(lineData, idx, seriesScope);\r\n };\r\n Line.prototype.updateData = function (lineData, idx, seriesScope) {\r\n var seriesModel = lineData.hostModel;\r\n var line = this.childOfName('line');\r\n var linePoints = lineData.getItemLayout(idx);\r\n var target = {\r\n shape: {}\r\n };\r\n setLinePoints(target.shape, linePoints);\r\n updateProps(line, target, seriesModel, idx);\r\n each(SYMBOL_CATEGORIES, function (symbolCategory) {\r\n var symbolType = lineData.getItemVisual(idx, symbolCategory);\r\n var key = makeSymbolTypeKey(symbolCategory);\r\n if (this[key] !== symbolType) {\r\n this.remove(this.childOfName(symbolCategory));\r\n var symbol = createSymbol$1(symbolCategory, lineData, idx);\r\n this.add(symbol);\r\n }\r\n this[key] = symbolType;\r\n }, this);\r\n this._updateCommonStl(lineData, idx, seriesScope);\r\n };\r\n Line.prototype.getLinePath = function () {\r\n return this.childAt(0);\r\n };\r\n Line.prototype._updateCommonStl = function (lineData, idx, seriesScope) {\r\n var seriesModel = lineData.hostModel;\r\n var line = this.childOfName('line');\r\n var emphasisLineStyle = seriesScope && seriesScope.emphasisLineStyle;\r\n var blurLineStyle = seriesScope && seriesScope.blurLineStyle;\r\n var selectLineStyle = seriesScope && seriesScope.selectLineStyle;\r\n var labelStatesModels = seriesScope && seriesScope.labelStatesModels;\r\n if (!seriesScope || lineData.hasItemOption) {\r\n var itemModel = lineData.getItemModel(idx);\r\n emphasisLineStyle = itemModel.getModel(['emphasis', 'lineStyle']).getLineStyle();\r\n blurLineStyle = itemModel.getModel(['blur', 'lineStyle']).getLineStyle();\r\n selectLineStyle = itemModel.getModel(['select', 'lineStyle']).getLineStyle();\r\n labelStatesModels = getLabelStatesModels(itemModel);\r\n }\r\n var lineStyle = lineData.getItemVisual(idx, 'style');\r\n var visualColor = lineStyle.stroke;\r\n line.useStyle(lineStyle);\r\n line.style.fill = null;\r\n line.style.strokeNoScale = true;\r\n line.ensureState('emphasis').style = emphasisLineStyle;\r\n line.ensureState('blur').style = blurLineStyle;\r\n line.ensureState('select').style = selectLineStyle;\r\n each(SYMBOL_CATEGORIES, function (symbolCategory) {\r\n var symbol = this.childOfName(symbolCategory);\r\n if (symbol) {\r\n symbol.setColor(visualColor);\r\n symbol.style.opacity = lineStyle.opacity;\r\n for (var i = 0; i < SPECIAL_STATES.length; i++) {\r\n var stateName = SPECIAL_STATES[i];\r\n var lineState = line.getState(stateName);\r\n if (lineState) {\r\n var lineStateStyle = lineState.style || {};\r\n var state = symbol.ensureState(stateName);\r\n var stateStyle = state.style || (state.style = {});\r\n if (lineStateStyle.stroke != null) {\r\n stateStyle[symbol.__isEmptyBrush ? 'stroke' : 'fill'] = lineStateStyle.stroke;\r\n }\r\n if (lineStateStyle.opacity != null) {\r\n stateStyle.opacity = lineStateStyle.opacity;\r\n }\r\n }\r\n }\r\n symbol.markRedraw();\r\n }\r\n }, this);\r\n var rawVal = seriesModel.getRawValue(idx);\r\n setLabelStyle(this, labelStatesModels, {\r\n labelDataIndex: idx,\r\n labelFetcher: {\r\n getFormattedLabel: function (dataIndex, stateName) {\r\n return seriesModel.getFormattedLabel(dataIndex, stateName, lineData.dataType);\r\n }\r\n },\r\n inheritColor: visualColor || '#000',\r\n defaultOpacity: lineStyle.opacity,\r\n defaultText: (rawVal == null\r\n ? lineData.getName(idx)\r\n : isFinite(rawVal)\r\n ? round$1(rawVal)\r\n : rawVal) + ''\r\n });\r\n var label = this.getTextContent();\r\n if (label) {\r\n var labelNormalModel = labelStatesModels.normal;\r\n label.__align = label.style.align;\r\n label.__verticalAlign = label.style.verticalAlign;\r\n label.__position = labelNormalModel.get('position') || 'middle';\r\n var distance = labelNormalModel.get('distance');\r\n if (!isArray(distance)) {\r\n distance = [distance, distance];\r\n }\r\n label.__labelDistance = distance;\r\n }\r\n this.setTextConfig({\r\n position: null,\r\n local: true,\r\n inside: false\r\n });\r\n enableHoverEmphasis(this);\r\n };\r\n Line.prototype.highlight = function () {\r\n enterEmphasis(this);\r\n };\r\n Line.prototype.downplay = function () {\r\n leaveEmphasis(this);\r\n };\r\n Line.prototype.updateLayout = function (lineData, idx) {\r\n this.setLinePoints(lineData.getItemLayout(idx));\r\n };\r\n Line.prototype.setLinePoints = function (points) {\r\n var linePath = this.childOfName('line');\r\n setLinePoints(linePath.shape, points);\r\n linePath.dirty();\r\n };\r\n Line.prototype.beforeUpdate = function () {\r\n var lineGroup = this;\r\n var symbolFrom = lineGroup.childOfName('fromSymbol');\r\n var symbolTo = lineGroup.childOfName('toSymbol');\r\n var label = lineGroup.getTextContent();\r\n if (!symbolFrom && !symbolTo && (!label || label.ignore)) {\r\n return;\r\n }\r\n var invScale = 1;\r\n var parentNode = this.parent;\r\n while (parentNode) {\r\n if (parentNode.scaleX) {\r\n invScale /= parentNode.scaleX;\r\n }\r\n parentNode = parentNode.parent;\r\n }\r\n var line = lineGroup.childOfName('line');\r\n if (!this.__dirty && !line.__dirty) {\r\n return;\r\n }\r\n var percent = line.shape.percent;\r\n var fromPos = line.pointAt(0);\r\n var toPos = line.pointAt(percent);\r\n var d = sub([], toPos, fromPos);\r\n normalize(d, d);\r\n function setSymbolRotation(symbol, percent) {\r\n var specifiedRotation = symbol.__specifiedRotation;\r\n if (specifiedRotation == null) {\r\n var tangent = line.tangentAt(percent);\r\n symbol.attr('rotation', (percent === 1 ? -1 : 1) * Math.PI / 2 - Math.atan2(tangent[1], tangent[0]));\r\n }\r\n else {\r\n symbol.attr('rotation', specifiedRotation);\r\n }\r\n }\r\n if (symbolFrom) {\r\n symbolFrom.setPosition(fromPos);\r\n setSymbolRotation(symbolFrom, 0);\r\n symbolFrom.scaleX = symbolFrom.scaleY = invScale * percent;\r\n symbolFrom.markRedraw();\r\n }\r\n if (symbolTo) {\r\n symbolTo.setPosition(toPos);\r\n setSymbolRotation(symbolTo, 1);\r\n symbolTo.scaleX = symbolTo.scaleY = invScale * percent;\r\n symbolTo.markRedraw();\r\n }\r\n if (label && !label.ignore) {\r\n label.x = label.y = 0;\r\n label.originX = label.originY = 0;\r\n var textAlign = void 0;\r\n var textVerticalAlign = void 0;\r\n var distance = label.__labelDistance;\r\n var distanceX = distance[0] * invScale;\r\n var distanceY = distance[1] * invScale;\r\n var halfPercent = percent / 2;\r\n var tangent = line.tangentAt(halfPercent);\r\n var n = [tangent[1], -tangent[0]];\r\n var cp = line.pointAt(halfPercent);\r\n if (n[1] > 0) {\r\n n[0] = -n[0];\r\n n[1] = -n[1];\r\n }\r\n var dir = tangent[0] < 0 ? -1 : 1;\r\n if (label.__position !== 'start' && label.__position !== 'end') {\r\n var rotation = -Math.atan2(tangent[1], tangent[0]);\r\n if (toPos[0] < fromPos[0]) {\r\n rotation = Math.PI + rotation;\r\n }\r\n label.rotation = rotation;\r\n }\r\n var dy = void 0;\r\n switch (label.__position) {\r\n case 'insideStartTop':\r\n case 'insideMiddleTop':\r\n case 'insideEndTop':\r\n case 'middle':\r\n dy = -distanceY;\r\n textVerticalAlign = 'bottom';\r\n break;\r\n case 'insideStartBottom':\r\n case 'insideMiddleBottom':\r\n case 'insideEndBottom':\r\n dy = distanceY;\r\n textVerticalAlign = 'top';\r\n break;\r\n default:\r\n dy = 0;\r\n textVerticalAlign = 'middle';\r\n }\r\n switch (label.__position) {\r\n case 'end':\r\n label.x = d[0] * distanceX + toPos[0];\r\n label.y = d[1] * distanceY + toPos[1];\r\n textAlign = d[0] > 0.8 ? 'left' : (d[0] < -0.8 ? 'right' : 'center');\r\n textVerticalAlign = d[1] > 0.8 ? 'top' : (d[1] < -0.8 ? 'bottom' : 'middle');\r\n break;\r\n case 'start':\r\n label.x = -d[0] * distanceX + fromPos[0];\r\n label.y = -d[1] * distanceY + fromPos[1];\r\n textAlign = d[0] > 0.8 ? 'right' : (d[0] < -0.8 ? 'left' : 'center');\r\n textVerticalAlign = d[1] > 0.8 ? 'bottom' : (d[1] < -0.8 ? 'top' : 'middle');\r\n break;\r\n case 'insideStartTop':\r\n case 'insideStart':\r\n case 'insideStartBottom':\r\n label.x = distanceX * dir + fromPos[0];\r\n label.y = fromPos[1] + dy;\r\n textAlign = tangent[0] < 0 ? 'right' : 'left';\r\n label.originX = -distanceX * dir;\r\n label.originY = -dy;\r\n break;\r\n case 'insideMiddleTop':\r\n case 'insideMiddle':\r\n case 'insideMiddleBottom':\r\n case 'middle':\r\n label.x = cp[0];\r\n label.y = cp[1] + dy;\r\n textAlign = 'center';\r\n label.originY = -dy;\r\n break;\r\n case 'insideEndTop':\r\n case 'insideEnd':\r\n case 'insideEndBottom':\r\n label.x = -distanceX * dir + toPos[0];\r\n label.y = toPos[1] + dy;\r\n textAlign = tangent[0] >= 0 ? 'right' : 'left';\r\n label.originX = distanceX * dir;\r\n label.originY = -dy;\r\n break;\r\n }\r\n label.scaleX = label.scaleY = invScale;\r\n label.setStyle({\r\n verticalAlign: label.__verticalAlign || textVerticalAlign,\r\n align: label.__align || textAlign\r\n });\r\n }\r\n };\r\n return Line;\r\n }(Group));\n\n var LineDraw = (function () {\r\n function LineDraw(LineCtor) {\r\n this.group = new Group();\r\n this._LineCtor = LineCtor || Line$1;\r\n }\r\n LineDraw.prototype.isPersistent = function () {\r\n return true;\r\n };\r\n LineDraw.prototype.updateData = function (lineData) {\r\n var _this = this;\r\n var lineDraw = this;\r\n var group = lineDraw.group;\r\n var oldLineData = lineDraw._lineData;\r\n lineDraw._lineData = lineData;\r\n if (!oldLineData) {\r\n group.removeAll();\r\n }\r\n var seriesScope = makeSeriesScope$1(lineData);\r\n lineData.diff(oldLineData)\r\n .add(function (idx) {\r\n _this._doAdd(lineData, idx, seriesScope);\r\n })\r\n .update(function (newIdx, oldIdx) {\r\n _this._doUpdate(oldLineData, lineData, oldIdx, newIdx, seriesScope);\r\n })\r\n .remove(function (idx) {\r\n group.remove(oldLineData.getItemGraphicEl(idx));\r\n })\r\n .execute();\r\n };\r\n LineDraw.prototype.updateLayout = function () {\r\n var lineData = this._lineData;\r\n if (!lineData) {\r\n return;\r\n }\r\n lineData.eachItemGraphicEl(function (el, idx) {\r\n el.updateLayout(lineData, idx);\r\n }, this);\r\n };\r\n LineDraw.prototype.incrementalPrepareUpdate = function (lineData) {\r\n this._seriesScope = makeSeriesScope$1(lineData);\r\n this._lineData = null;\r\n this.group.removeAll();\r\n };\r\n LineDraw.prototype.incrementalUpdate = function (taskParams, lineData) {\r\n function updateIncrementalAndHover(el) {\r\n if (!el.isGroup && !isEffectObject(el)) {\r\n el.incremental = true;\r\n el.ensureState('emphasis').hoverLayer = true;\r\n }\r\n }\r\n for (var idx = taskParams.start; idx < taskParams.end; idx++) {\r\n var itemLayout = lineData.getItemLayout(idx);\r\n if (lineNeedsDraw(itemLayout)) {\r\n var el = new this._LineCtor(lineData, idx, this._seriesScope);\r\n el.traverse(updateIncrementalAndHover);\r\n this.group.add(el);\r\n lineData.setItemGraphicEl(idx, el);\r\n }\r\n }\r\n };\r\n LineDraw.prototype.remove = function () {\r\n this.group.removeAll();\r\n };\r\n LineDraw.prototype._doAdd = function (lineData, idx, seriesScope) {\r\n var itemLayout = lineData.getItemLayout(idx);\r\n if (!lineNeedsDraw(itemLayout)) {\r\n return;\r\n }\r\n var el = new this._LineCtor(lineData, idx, seriesScope);\r\n lineData.setItemGraphicEl(idx, el);\r\n this.group.add(el);\r\n };\r\n LineDraw.prototype._doUpdate = function (oldLineData, newLineData, oldIdx, newIdx, seriesScope) {\r\n var itemEl = oldLineData.getItemGraphicEl(oldIdx);\r\n if (!lineNeedsDraw(newLineData.getItemLayout(newIdx))) {\r\n this.group.remove(itemEl);\r\n return;\r\n }\r\n if (!itemEl) {\r\n itemEl = new this._LineCtor(newLineData, newIdx, seriesScope);\r\n }\r\n else {\r\n itemEl.updateData(newLineData, newIdx, seriesScope);\r\n }\r\n newLineData.setItemGraphicEl(newIdx, itemEl);\r\n this.group.add(itemEl);\r\n };\r\n return LineDraw;\r\n }());\r\n function isEffectObject(el) {\r\n return el.animators && el.animators.length > 0;\r\n }\r\n function makeSeriesScope$1(lineData) {\r\n var hostModel = lineData.hostModel;\r\n return {\r\n lineStyle: hostModel.getModel('lineStyle').getLineStyle(),\r\n emphasisLineStyle: hostModel.getModel(['emphasis', 'lineStyle']).getLineStyle(),\r\n blurLineStyle: hostModel.getModel(['blur', 'lineStyle']).getLineStyle(),\r\n selectLineStyle: hostModel.getModel(['select', 'lineStyle']).getLineStyle(),\r\n labelStatesModels: getLabelStatesModels(hostModel)\r\n };\r\n }\r\n function isPointNaN(pt) {\r\n return isNaN(pt[0]) || isNaN(pt[1]);\r\n }\r\n function lineNeedsDraw(pts) {\r\n return !isPointNaN(pts[0]) && !isPointNaN(pts[1]);\r\n }\n\n function getNodeGlobalScale(seriesModel) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n if (coordSys.type !== 'view') {\r\n return 1;\r\n }\r\n var nodeScaleRatio = seriesModel.option.nodeScaleRatio;\r\n var groupZoom = coordSys.scaleX;\r\n var roamZoom = coordSys.getZoom();\r\n var nodeScale = (roamZoom - 1) * nodeScaleRatio + 1;\r\n return nodeScale / groupZoom;\r\n }\r\n function getSymbolSize(node) {\r\n var symbolSize = node.getVisual('symbolSize');\r\n if (symbolSize instanceof Array) {\r\n symbolSize = (symbolSize[0] + symbolSize[1]) / 2;\r\n }\r\n return +symbolSize;\r\n }\n\n var v1 = [];\r\n var v2 = [];\r\n var v3 = [];\r\n var quadraticAt$1 = quadraticAt;\r\n var v2DistSquare = distSquare;\r\n var mathAbs$2 = Math.abs;\r\n function intersectCurveCircle(curvePoints, center, radius) {\r\n var p0 = curvePoints[0];\r\n var p1 = curvePoints[1];\r\n var p2 = curvePoints[2];\r\n var d = Infinity;\r\n var t;\r\n var radiusSquare = radius * radius;\r\n var interval = 0.1;\r\n for (var _t = 0.1; _t <= 0.9; _t += 0.1) {\r\n v1[0] = quadraticAt$1(p0[0], p1[0], p2[0], _t);\r\n v1[1] = quadraticAt$1(p0[1], p1[1], p2[1], _t);\r\n var diff = mathAbs$2(v2DistSquare(v1, center) - radiusSquare);\r\n if (diff < d) {\r\n d = diff;\r\n t = _t;\r\n }\r\n }\r\n for (var i = 0; i < 32; i++) {\r\n var next = t + interval;\r\n v2[0] = quadraticAt$1(p0[0], p1[0], p2[0], t);\r\n v2[1] = quadraticAt$1(p0[1], p1[1], p2[1], t);\r\n v3[0] = quadraticAt$1(p0[0], p1[0], p2[0], next);\r\n v3[1] = quadraticAt$1(p0[1], p1[1], p2[1], next);\r\n var diff = v2DistSquare(v2, center) - radiusSquare;\r\n if (mathAbs$2(diff) < 1e-2) {\r\n break;\r\n }\r\n var nextDiff = v2DistSquare(v3, center) - radiusSquare;\r\n interval /= 2;\r\n if (diff < 0) {\r\n if (nextDiff >= 0) {\r\n t = t + interval;\r\n }\r\n else {\r\n t = t - interval;\r\n }\r\n }\r\n else {\r\n if (nextDiff >= 0) {\r\n t = t - interval;\r\n }\r\n else {\r\n t = t + interval;\r\n }\r\n }\r\n }\r\n return t;\r\n }\r\n function adjustEdge(graph, scale) {\r\n var tmp0 = [];\r\n var quadraticSubdivide$1 = quadraticSubdivide;\r\n var pts = [[], [], []];\r\n var pts2 = [[], []];\r\n var v = [];\r\n scale /= 2;\r\n graph.eachEdge(function (edge, idx) {\r\n var linePoints = edge.getLayout();\r\n var fromSymbol = edge.getVisual('fromSymbol');\r\n var toSymbol = edge.getVisual('toSymbol');\r\n if (!linePoints.__original) {\r\n linePoints.__original = [\r\n clone$1(linePoints[0]),\r\n clone$1(linePoints[1])\r\n ];\r\n if (linePoints[2]) {\r\n linePoints.__original.push(clone$1(linePoints[2]));\r\n }\r\n }\r\n var originalPoints = linePoints.__original;\r\n if (linePoints[2] != null) {\r\n copy(pts[0], originalPoints[0]);\r\n copy(pts[1], originalPoints[2]);\r\n copy(pts[2], originalPoints[1]);\r\n if (fromSymbol && fromSymbol !== 'none') {\r\n var symbolSize = getSymbolSize(edge.node1);\r\n var t = intersectCurveCircle(pts, originalPoints[0], symbolSize * scale);\r\n quadraticSubdivide$1(pts[0][0], pts[1][0], pts[2][0], t, tmp0);\r\n pts[0][0] = tmp0[3];\r\n pts[1][0] = tmp0[4];\r\n quadraticSubdivide$1(pts[0][1], pts[1][1], pts[2][1], t, tmp0);\r\n pts[0][1] = tmp0[3];\r\n pts[1][1] = tmp0[4];\r\n }\r\n if (toSymbol && toSymbol !== 'none') {\r\n var symbolSize = getSymbolSize(edge.node2);\r\n var t = intersectCurveCircle(pts, originalPoints[1], symbolSize * scale);\r\n quadraticSubdivide$1(pts[0][0], pts[1][0], pts[2][0], t, tmp0);\r\n pts[1][0] = tmp0[1];\r\n pts[2][0] = tmp0[2];\r\n quadraticSubdivide$1(pts[0][1], pts[1][1], pts[2][1], t, tmp0);\r\n pts[1][1] = tmp0[1];\r\n pts[2][1] = tmp0[2];\r\n }\r\n copy(linePoints[0], pts[0]);\r\n copy(linePoints[1], pts[2]);\r\n copy(linePoints[2], pts[1]);\r\n }\r\n else {\r\n copy(pts2[0], originalPoints[0]);\r\n copy(pts2[1], originalPoints[1]);\r\n sub(v, pts2[1], pts2[0]);\r\n normalize(v, v);\r\n if (fromSymbol && fromSymbol !== 'none') {\r\n var symbolSize = getSymbolSize(edge.node1);\r\n scaleAndAdd(pts2[0], pts2[0], v, symbolSize * scale);\r\n }\r\n if (toSymbol && toSymbol !== 'none') {\r\n var symbolSize = getSymbolSize(edge.node2);\r\n scaleAndAdd(pts2[1], pts2[1], v, -symbolSize * scale);\r\n }\r\n copy(linePoints[0], pts2[0]);\r\n copy(linePoints[1], pts2[1]);\r\n }\r\n });\r\n }\n\n function isViewCoordSys(coordSys) {\r\n return coordSys.type === 'view';\r\n }\r\n var GraphView = (function (_super) {\r\n __extends(GraphView, _super);\r\n function GraphView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = GraphView.type;\r\n return _this;\r\n }\r\n GraphView.prototype.init = function (ecModel, api) {\r\n var symbolDraw = new SymbolDraw();\r\n var lineDraw = new LineDraw();\r\n var group = this.group;\r\n this._controller = new RoamController(api.getZr());\r\n this._controllerHost = {\r\n target: group\r\n };\r\n group.add(symbolDraw.group);\r\n group.add(lineDraw.group);\r\n this._symbolDraw = symbolDraw;\r\n this._lineDraw = lineDraw;\r\n this._firstRender = true;\r\n };\r\n GraphView.prototype.render = function (seriesModel, ecModel, api) {\r\n var _this = this;\r\n var coordSys = seriesModel.coordinateSystem;\r\n this._model = seriesModel;\r\n var symbolDraw = this._symbolDraw;\r\n var lineDraw = this._lineDraw;\r\n var group = this.group;\r\n if (isViewCoordSys(coordSys)) {\r\n var groupNewProp = {\r\n x: coordSys.x, y: coordSys.y,\r\n scaleX: coordSys.scaleX, scaleY: coordSys.scaleY\r\n };\r\n if (this._firstRender) {\r\n group.attr(groupNewProp);\r\n }\r\n else {\r\n updateProps(group, groupNewProp, seriesModel);\r\n }\r\n }\r\n adjustEdge(seriesModel.getGraph(), getNodeGlobalScale(seriesModel));\r\n var data = seriesModel.getData();\r\n symbolDraw.updateData(data);\r\n var edgeData = seriesModel.getEdgeData();\r\n lineDraw.updateData(edgeData);\r\n this._updateNodeAndLinkScale();\r\n this._updateController(seriesModel, ecModel, api);\r\n clearTimeout(this._layoutTimeout);\r\n var forceLayout = seriesModel.forceLayout;\r\n var layoutAnimation = seriesModel.get(['force', 'layoutAnimation']);\r\n if (forceLayout) {\r\n this._startForceLayoutIteration(forceLayout, layoutAnimation);\r\n }\r\n data.graph.eachNode(function (node) {\r\n var idx = node.dataIndex;\r\n var el = node.getGraphicEl();\r\n var itemModel = node.getModel();\r\n el.off('drag').off('dragend');\r\n var draggable = itemModel.get('draggable');\r\n if (draggable) {\r\n el.on('drag', function () {\r\n if (forceLayout) {\r\n forceLayout.warmUp();\r\n !_this._layouting\r\n && _this._startForceLayoutIteration(forceLayout, layoutAnimation);\r\n forceLayout.setFixed(idx);\r\n data.setItemLayout(idx, [el.x, el.y]);\r\n }\r\n }).on('dragend', function () {\r\n if (forceLayout) {\r\n forceLayout.setUnfixed(idx);\r\n }\r\n });\r\n }\r\n el.setDraggable(draggable && !!forceLayout);\r\n var focus = itemModel.get(['emphasis', 'focus']);\r\n if (focus === 'adjacency') {\r\n getECData(el).focus = node.getAdjacentDataIndices();\r\n }\r\n });\r\n data.graph.eachEdge(function (edge) {\r\n var el = edge.getGraphicEl();\r\n var focus = edge.getModel().get(['emphasis', 'focus']);\r\n if (focus === 'adjacency') {\r\n getECData(el).focus = {\r\n edge: [edge.dataIndex],\r\n node: [edge.node1.dataIndex, edge.node2.dataIndex]\r\n };\r\n }\r\n });\r\n var circularRotateLabel = seriesModel.get('layout') === 'circular'\r\n && seriesModel.get(['circular', 'rotateLabel']);\r\n var cx = data.getLayout('cx');\r\n var cy = data.getLayout('cy');\r\n data.eachItemGraphicEl(function (el, idx) {\r\n var itemModel = data.getItemModel(idx);\r\n var labelRotate = itemModel.get(['label', 'rotate']) || 0;\r\n var symbolPath = el.getSymbolPath();\r\n if (circularRotateLabel) {\r\n var pos = data.getItemLayout(idx);\r\n var rad = Math.atan2(pos[1] - cy, pos[0] - cx);\r\n if (rad < 0) {\r\n rad = Math.PI * 2 + rad;\r\n }\r\n var isLeft = pos[0] < cx;\r\n if (isLeft) {\r\n rad = rad - Math.PI;\r\n }\r\n var textPosition = isLeft ? 'left' : 'right';\r\n symbolPath.setTextConfig({\r\n rotation: -rad,\r\n position: textPosition,\r\n origin: 'center'\r\n });\r\n var emphasisState = symbolPath.ensureState('emphasis');\r\n extend(emphasisState.textConfig || (emphasisState.textConfig = {}), {\r\n position: textPosition\r\n });\r\n }\r\n else {\r\n symbolPath.setTextConfig({\r\n rotation: labelRotate *= Math.PI / 180\r\n });\r\n }\r\n });\r\n this._firstRender = false;\r\n };\r\n GraphView.prototype.dispose = function () {\r\n this._controller && this._controller.dispose();\r\n this._controllerHost = null;\r\n };\r\n GraphView.prototype._startForceLayoutIteration = function (forceLayout, layoutAnimation) {\r\n var self = this;\r\n (function step() {\r\n forceLayout.step(function (stopped) {\r\n self.updateLayout(self._model);\r\n (self._layouting = !stopped) && (layoutAnimation\r\n ? (self._layoutTimeout = setTimeout(step, 16))\r\n : step());\r\n });\r\n })();\r\n };\r\n GraphView.prototype._updateController = function (seriesModel, ecModel, api) {\r\n var _this = this;\r\n var controller = this._controller;\r\n var controllerHost = this._controllerHost;\r\n var group = this.group;\r\n controller.setPointerChecker(function (e, x, y) {\r\n var rect = group.getBoundingRect();\r\n rect.applyTransform(group.transform);\r\n return rect.contain(x, y)\r\n && !onIrrelevantElement(e, api, seriesModel);\r\n });\r\n if (!isViewCoordSys(seriesModel.coordinateSystem)) {\r\n controller.disable();\r\n return;\r\n }\r\n controller.enable(seriesModel.get('roam'));\r\n controllerHost.zoomLimit = seriesModel.get('scaleLimit');\r\n controllerHost.zoom = seriesModel.coordinateSystem.getZoom();\r\n controller\r\n .off('pan')\r\n .off('zoom')\r\n .on('pan', function (e) {\r\n updateViewOnPan(controllerHost, e.dx, e.dy);\r\n api.dispatchAction({\r\n seriesId: seriesModel.id,\r\n type: 'graphRoam',\r\n dx: e.dx,\r\n dy: e.dy\r\n });\r\n })\r\n .on('zoom', function (e) {\r\n updateViewOnZoom(controllerHost, e.scale, e.originX, e.originY);\r\n api.dispatchAction({\r\n seriesId: seriesModel.id,\r\n type: 'graphRoam',\r\n zoom: e.scale,\r\n originX: e.originX,\r\n originY: e.originY\r\n });\r\n _this._updateNodeAndLinkScale();\r\n adjustEdge(seriesModel.getGraph(), getNodeGlobalScale(seriesModel));\r\n _this._lineDraw.updateLayout();\r\n api.updateLabelLayout();\r\n });\r\n };\r\n GraphView.prototype._updateNodeAndLinkScale = function () {\r\n var seriesModel = this._model;\r\n var data = seriesModel.getData();\r\n var nodeScale = getNodeGlobalScale(seriesModel);\r\n data.eachItemGraphicEl(function (el, idx) {\r\n el.setSymbolScale(nodeScale);\r\n });\r\n };\r\n GraphView.prototype.updateLayout = function (seriesModel) {\r\n adjustEdge(seriesModel.getGraph(), getNodeGlobalScale(seriesModel));\r\n this._symbolDraw.updateLayout();\r\n this._lineDraw.updateLayout();\r\n };\r\n GraphView.prototype.remove = function (ecModel, api) {\r\n this._symbolDraw && this._symbolDraw.remove();\r\n this._lineDraw && this._lineDraw.remove();\r\n };\r\n GraphView.type = 'graph';\r\n return GraphView;\r\n }(ChartView));\r\n ChartView.registerClass(GraphView);\n\n registerAction({\r\n type: 'focusNodeAdjacency',\r\n event: 'focusNodeAdjacency',\r\n update: 'series:focusNodeAdjacency'\r\n }, function () { });\r\n registerAction({\r\n type: 'unfocusNodeAdjacency',\r\n event: 'unfocusNodeAdjacency',\r\n update: 'series:unfocusNodeAdjacency'\r\n }, function () { });\n\n var actionInfo = {\r\n type: 'graphRoam',\r\n event: 'graphRoam',\r\n update: 'none'\r\n };\r\n registerAction(actionInfo, function (payload, ecModel) {\r\n ecModel.eachComponent({\r\n mainType: 'series', query: payload\r\n }, function (seriesModel) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n var res = updateCenterAndZoom(coordSys, payload);\r\n seriesModel.setCenter\r\n && seriesModel.setCenter(res.center);\r\n seriesModel.setZoom\r\n && seriesModel.setZoom(res.zoom);\r\n });\r\n });\n\n function categoryFilter(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 ecModel.eachSeriesByType('graph', function (graphSeries) {\r\n var categoriesData = graphSeries.getCategoriesData();\r\n var graph = graphSeries.getGraph();\r\n var data = graph.data;\r\n var categoryNames = categoriesData.mapArray(categoriesData.getName);\r\n data.filterSelf(function (idx) {\r\n var model = data.getItemModel(idx);\r\n var category = model.getShallow('category');\r\n if (category != null) {\r\n if (typeof category === 'number') {\r\n category = categoryNames[category];\r\n }\r\n for (var i = 0; i < legendModels.length; i++) {\r\n if (!legendModels[i].isSelected(category)) {\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n });\r\n });\r\n }\n\n function categoryVisual(ecModel) {\r\n var paletteScope = {};\r\n ecModel.eachSeriesByType('graph', function (seriesModel) {\r\n var categoriesData = seriesModel.getCategoriesData();\r\n var data = seriesModel.getData();\r\n var categoryNameIdxMap = {};\r\n categoriesData.each(function (idx) {\r\n var name = categoriesData.getName(idx);\r\n categoryNameIdxMap['ec-' + name] = idx;\r\n var itemModel = categoriesData.getItemModel(idx);\r\n var style = itemModel.getModel('itemStyle').getItemStyle();\r\n if (!style.fill) {\r\n style.fill = seriesModel.getColorFromPalette(name, paletteScope);\r\n }\r\n categoriesData.setItemVisual(idx, 'style', style);\r\n var symbolVisualList = ['symbol', 'symbolSize', 'symbolKeepAspect'];\r\n for (var i = 0; i < symbolVisualList.length; i++) {\r\n var symbolVisual = itemModel.getShallow(symbolVisualList[i], true);\r\n if (symbolVisual != null) {\r\n categoriesData.setItemVisual(idx, symbolVisualList[i], symbolVisual);\r\n }\r\n }\r\n });\r\n if (categoriesData.count()) {\r\n data.each(function (idx) {\r\n var model = data.getItemModel(idx);\r\n var categoryIdx = model.getShallow('category');\r\n if (categoryIdx != null) {\r\n if (typeof categoryIdx === 'string') {\r\n categoryIdx = categoryNameIdxMap['ec-' + categoryIdx];\r\n }\r\n var categoryStyle = categoriesData.getItemVisual(categoryIdx, 'style');\r\n var style = data.ensureUniqueItemVisual(idx, 'style');\r\n extend(style, categoryStyle);\r\n var visualList = ['symbol', 'symbolSize', 'symbolKeepAspect'];\r\n for (var i = 0; i < visualList.length; i++) {\r\n data.setItemVisual(idx, visualList[i], categoriesData.getItemVisual(categoryIdx, visualList[i]));\r\n }\r\n }\r\n });\r\n }\r\n });\r\n }\n\n function normalize$2(a) {\r\n if (!(a instanceof Array)) {\r\n a = [a, a];\r\n }\r\n return a;\r\n }\r\n function graphEdgeVisual(ecModel) {\r\n ecModel.eachSeriesByType('graph', function (seriesModel) {\r\n var graph = seriesModel.getGraph();\r\n var edgeData = seriesModel.getEdgeData();\r\n var symbolType = normalize$2(seriesModel.get('edgeSymbol'));\r\n var symbolSize = normalize$2(seriesModel.get('edgeSymbolSize'));\r\n edgeData.setVisual('fromSymbol', symbolType && symbolType[0]);\r\n edgeData.setVisual('toSymbol', symbolType && symbolType[1]);\r\n edgeData.setVisual('fromSymbolSize', symbolSize && symbolSize[0]);\r\n edgeData.setVisual('toSymbolSize', symbolSize && symbolSize[1]);\r\n edgeData.setVisual('style', seriesModel.getModel('lineStyle').getLineStyle());\r\n edgeData.each(function (idx) {\r\n var itemModel = edgeData.getItemModel(idx);\r\n var edge = graph.getEdgeByIndex(idx);\r\n var symbolType = normalize$2(itemModel.getShallow('symbol', true));\r\n var symbolSize = normalize$2(itemModel.getShallow('symbolSize', true));\r\n var style = itemModel.getModel('lineStyle').getLineStyle();\r\n var existsStyle = edgeData.ensureUniqueItemVisual(idx, 'style');\r\n extend(existsStyle, style);\r\n switch (existsStyle.stroke) {\r\n case 'source': {\r\n var nodeStyle = edge.node1.getVisual('style');\r\n existsStyle.stroke = nodeStyle && nodeStyle.fill;\r\n break;\r\n }\r\n case 'target': {\r\n var nodeStyle = edge.node2.getVisual('style');\r\n existsStyle.stroke = nodeStyle && nodeStyle.fill;\r\n break;\r\n }\r\n }\r\n symbolType[0] && edge.setVisual('fromSymbol', symbolType[0]);\r\n symbolType[1] && edge.setVisual('toSymbol', symbolType[1]);\r\n symbolSize[0] && edge.setVisual('fromSymbolSize', symbolSize[0]);\r\n symbolSize[1] && edge.setVisual('toSymbolSize', symbolSize[1]);\r\n });\r\n });\r\n }\n\n function simpleLayout(seriesModel) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n if (coordSys && coordSys.type !== 'view') {\r\n return;\r\n }\r\n var graph = seriesModel.getGraph();\r\n graph.eachNode(function (node) {\r\n var model = node.getModel();\r\n node.setLayout([+model.get('x'), +model.get('y')]);\r\n });\r\n simpleLayoutEdge(graph, seriesModel);\r\n }\r\n function simpleLayoutEdge(graph, seriesModel) {\r\n graph.eachEdge(function (edge, index) {\r\n var curveness = retrieve3(edge.getModel().get(['lineStyle', 'curveness']), -getCurvenessForEdge(edge, seriesModel, index, true), 0);\r\n var p1 = clone$1(edge.node1.getLayout());\r\n var p2 = clone$1(edge.node2.getLayout());\r\n var points = [p1, p2];\r\n if (+curveness) {\r\n points.push([\r\n (p1[0] + p2[0]) / 2 - (p1[1] - p2[1]) * curveness,\r\n (p1[1] + p2[1]) / 2 - (p2[0] - p1[0]) * curveness\r\n ]);\r\n }\r\n edge.setLayout(points);\r\n });\r\n }\n\n function graphSimpleLayout(ecModel, api) {\r\n ecModel.eachSeriesByType('graph', function (seriesModel) {\r\n var layout = seriesModel.get('layout');\r\n var coordSys = seriesModel.coordinateSystem;\r\n if (coordSys && coordSys.type !== 'view') {\r\n var data_1 = seriesModel.getData();\r\n var dimensions_1 = [];\r\n each(coordSys.dimensions, function (coordDim) {\r\n dimensions_1 = dimensions_1.concat(data_1.mapDimensionsAll(coordDim));\r\n });\r\n for (var dataIndex = 0; dataIndex < data_1.count(); dataIndex++) {\r\n var value = [];\r\n var hasValue = false;\r\n for (var i = 0; i < dimensions_1.length; i++) {\r\n var val = data_1.get(dimensions_1[i], dataIndex);\r\n if (!isNaN(val)) {\r\n hasValue = true;\r\n }\r\n value.push(val);\r\n }\r\n if (hasValue) {\r\n data_1.setItemLayout(dataIndex, coordSys.dataToPoint(value));\r\n }\r\n else {\r\n data_1.setItemLayout(dataIndex, [NaN, NaN]);\r\n }\r\n }\r\n simpleLayoutEdge(data_1.graph, seriesModel);\r\n }\r\n else if (!layout || layout === 'none') {\r\n simpleLayout(seriesModel);\r\n }\r\n });\r\n }\n\n var PI$7 = Math.PI;\r\n var _symbolRadiansHalf = [];\r\n function circularLayout(seriesModel, basedOn) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n if (coordSys && coordSys.type !== 'view') {\r\n return;\r\n }\r\n var rect = coordSys.getBoundingRect();\r\n var nodeData = seriesModel.getData();\r\n var graph = nodeData.graph;\r\n var cx = rect.width / 2 + rect.x;\r\n var cy = rect.height / 2 + rect.y;\r\n var r = Math.min(rect.width, rect.height) / 2;\r\n var count = nodeData.count();\r\n nodeData.setLayout({\r\n cx: cx,\r\n cy: cy\r\n });\r\n if (!count) {\r\n return;\r\n }\r\n _layoutNodesBasedOn[basedOn](seriesModel, graph, nodeData, r, cx, cy, count);\r\n graph.eachEdge(function (edge, index) {\r\n var curveness = retrieve3(edge.getModel().get(['lineStyle', 'curveness']), getCurvenessForEdge(edge, seriesModel, index), 0);\r\n var p1 = clone$1(edge.node1.getLayout());\r\n var p2 = clone$1(edge.node2.getLayout());\r\n var cp1;\r\n var x12 = (p1[0] + p2[0]) / 2;\r\n var y12 = (p1[1] + p2[1]) / 2;\r\n if (+curveness) {\r\n curveness *= 3;\r\n cp1 = [\r\n cx * curveness + x12 * (1 - curveness),\r\n cy * curveness + y12 * (1 - curveness)\r\n ];\r\n }\r\n edge.setLayout([p1, p2, cp1]);\r\n });\r\n }\r\n var _layoutNodesBasedOn = {\r\n value: function (seriesModel, graph, nodeData, r, cx, cy, count) {\r\n var angle = 0;\r\n var sum = nodeData.getSum('value');\r\n var unitAngle = Math.PI * 2 / (sum || count);\r\n graph.eachNode(function (node) {\r\n var value = node.getValue('value');\r\n var radianHalf = unitAngle * (sum ? value : 1) / 2;\r\n angle += radianHalf;\r\n node.setLayout([\r\n r * Math.cos(angle) + cx,\r\n r * Math.sin(angle) + cy\r\n ]);\r\n angle += radianHalf;\r\n });\r\n },\r\n symbolSize: function (seriesModel, graph, nodeData, r, cx, cy, count) {\r\n var sumRadian = 0;\r\n _symbolRadiansHalf.length = count;\r\n var nodeScale = getNodeGlobalScale(seriesModel);\r\n graph.eachNode(function (node) {\r\n var symbolSize = getSymbolSize(node);\r\n isNaN(symbolSize) && (symbolSize = 2);\r\n symbolSize < 0 && (symbolSize = 0);\r\n symbolSize *= nodeScale;\r\n var symbolRadianHalf = Math.asin(symbolSize / 2 / r);\r\n isNaN(symbolRadianHalf) && (symbolRadianHalf = PI$7 / 2);\r\n _symbolRadiansHalf[node.dataIndex] = symbolRadianHalf;\r\n sumRadian += symbolRadianHalf * 2;\r\n });\r\n var halfRemainRadian = (2 * PI$7 - sumRadian) / count / 2;\r\n var angle = 0;\r\n graph.eachNode(function (node) {\r\n var radianHalf = halfRemainRadian + _symbolRadiansHalf[node.dataIndex];\r\n angle += radianHalf;\r\n node.setLayout([\r\n r * Math.cos(angle) + cx,\r\n r * Math.sin(angle) + cy\r\n ]);\r\n angle += radianHalf;\r\n });\r\n }\r\n };\n\n function graphCircularLayout(ecModel) {\r\n ecModel.eachSeriesByType('graph', function (seriesModel) {\r\n if (seriesModel.get('layout') === 'circular') {\r\n circularLayout(seriesModel, 'symbolSize');\r\n }\r\n });\r\n }\n\n var scaleAndAdd$1 = scaleAndAdd;\r\n function forceLayout(inNodes, inEdges, opts) {\r\n var nodes = inNodes;\r\n var edges = inEdges;\r\n var rect = opts.rect;\r\n var width = rect.width;\r\n var height = rect.height;\r\n var center = [rect.x + width / 2, rect.y + height / 2];\r\n var gravity = opts.gravity == null ? 0.1 : opts.gravity;\r\n for (var i = 0; i < nodes.length; i++) {\r\n var n = nodes[i];\r\n if (!n.p) {\r\n n.p = create(width * (Math.random() - 0.5) + center[0], height * (Math.random() - 0.5) + center[1]);\r\n }\r\n n.pp = clone$1(n.p);\r\n n.edges = null;\r\n }\r\n var initialFriction = opts.friction == null ? 0.6 : opts.friction;\r\n var friction = initialFriction;\r\n var beforeStepCallback;\r\n var afterStepCallback;\r\n return {\r\n warmUp: function () {\r\n friction = initialFriction * 0.8;\r\n },\r\n setFixed: function (idx) {\r\n nodes[idx].fixed = true;\r\n },\r\n setUnfixed: function (idx) {\r\n nodes[idx].fixed = false;\r\n },\r\n beforeStep: function (cb) {\r\n beforeStepCallback = cb;\r\n },\r\n afterStep: function (cb) {\r\n afterStepCallback = cb;\r\n },\r\n step: function (cb) {\r\n beforeStepCallback && beforeStepCallback(nodes, edges);\r\n var v12 = [];\r\n var nLen = nodes.length;\r\n for (var i = 0; i < edges.length; i++) {\r\n var e = edges[i];\r\n if (e.ignoreForceLayout) {\r\n continue;\r\n }\r\n var n1 = e.n1;\r\n var n2 = e.n2;\r\n sub(v12, n2.p, n1.p);\r\n var d = len(v12) - e.d;\r\n var w = n2.w / (n1.w + n2.w);\r\n if (isNaN(w)) {\r\n w = 0;\r\n }\r\n normalize(v12, v12);\r\n !n1.fixed && scaleAndAdd$1(n1.p, n1.p, v12, w * d * friction);\r\n !n2.fixed && scaleAndAdd$1(n2.p, n2.p, v12, -(1 - w) * d * friction);\r\n }\r\n for (var i = 0; i < nLen; i++) {\r\n var n = nodes[i];\r\n if (!n.fixed) {\r\n sub(v12, center, n.p);\r\n scaleAndAdd$1(n.p, n.p, v12, gravity * friction);\r\n }\r\n }\r\n for (var i = 0; i < nLen; i++) {\r\n var n1 = nodes[i];\r\n for (var j = i + 1; j < nLen; j++) {\r\n var n2 = nodes[j];\r\n sub(v12, n2.p, n1.p);\r\n var d = len(v12);\r\n if (d === 0) {\r\n set(v12, Math.random() - 0.5, Math.random() - 0.5);\r\n d = 1;\r\n }\r\n var repFact = (n1.rep + n2.rep) / d / d;\r\n !n1.fixed && scaleAndAdd$1(n1.pp, n1.pp, v12, repFact);\r\n !n2.fixed && scaleAndAdd$1(n2.pp, n2.pp, v12, -repFact);\r\n }\r\n }\r\n var v = [];\r\n for (var i = 0; i < nLen; i++) {\r\n var n = nodes[i];\r\n if (!n.fixed) {\r\n sub(v, n.p, n.pp);\r\n scaleAndAdd$1(n.p, n.p, v, friction);\r\n copy(n.pp, n.p);\r\n }\r\n }\r\n friction = friction * 0.992;\r\n var finished = friction < 0.01;\r\n afterStepCallback && afterStepCallback(nodes, edges, finished);\r\n cb && cb(finished);\r\n }\r\n };\r\n }\n\n function graphForceLayout(ecModel) {\r\n ecModel.eachSeriesByType('graph', function (graphSeries) {\r\n var coordSys = graphSeries.coordinateSystem;\r\n if (coordSys && coordSys.type !== 'view') {\r\n return;\r\n }\r\n if (graphSeries.get('layout') === 'force') {\r\n var preservedPoints_1 = graphSeries.preservedPoints || {};\r\n var graph_1 = graphSeries.getGraph();\r\n var nodeData_1 = graph_1.data;\r\n var edgeData = graph_1.edgeData;\r\n var forceModel = graphSeries.getModel('force');\r\n var initLayout = forceModel.get('initLayout');\r\n if (graphSeries.preservedPoints) {\r\n nodeData_1.each(function (idx) {\r\n var id = nodeData_1.getId(idx);\r\n nodeData_1.setItemLayout(idx, preservedPoints_1[id] || [NaN, NaN]);\r\n });\r\n }\r\n else if (!initLayout || initLayout === 'none') {\r\n simpleLayout(graphSeries);\r\n }\r\n else if (initLayout === 'circular') {\r\n circularLayout(graphSeries, 'value');\r\n }\r\n var nodeDataExtent_1 = nodeData_1.getDataExtent('value');\r\n var edgeDataExtent_1 = edgeData.getDataExtent('value');\r\n var repulsion = forceModel.get('repulsion');\r\n var edgeLength = forceModel.get('edgeLength');\r\n var repulsionArr_1 = isArray(repulsion)\r\n ? repulsion : [repulsion, repulsion];\r\n var edgeLengthArr_1 = isArray(edgeLength)\r\n ? edgeLength : [edgeLength, edgeLength];\r\n edgeLengthArr_1 = [edgeLengthArr_1[1], edgeLengthArr_1[0]];\r\n var nodes_1 = nodeData_1.mapArray('value', function (value, idx) {\r\n var point = nodeData_1.getItemLayout(idx);\r\n var rep = linearMap(value, nodeDataExtent_1, repulsionArr_1);\r\n if (isNaN(rep)) {\r\n rep = (repulsionArr_1[0] + repulsionArr_1[1]) / 2;\r\n }\r\n return {\r\n w: rep,\r\n rep: rep,\r\n fixed: nodeData_1.getItemModel(idx).get('fixed'),\r\n p: (!point || isNaN(point[0]) || isNaN(point[1])) ? null : point\r\n };\r\n });\r\n var edges = edgeData.mapArray('value', function (value, idx) {\r\n var edge = graph_1.getEdgeByIndex(idx);\r\n var d = linearMap(value, edgeDataExtent_1, edgeLengthArr_1);\r\n if (isNaN(d)) {\r\n d = (edgeLengthArr_1[0] + edgeLengthArr_1[1]) / 2;\r\n }\r\n var edgeModel = edge.getModel();\r\n var curveness = retrieve3(edge.getModel().get(['lineStyle', 'curveness']), -getCurvenessForEdge(edge, graphSeries, idx, true), 0);\r\n return {\r\n n1: nodes_1[edge.node1.dataIndex],\r\n n2: nodes_1[edge.node2.dataIndex],\r\n d: d,\r\n curveness: curveness,\r\n ignoreForceLayout: edgeModel.get('ignoreForceLayout')\r\n };\r\n });\r\n var rect = coordSys.getBoundingRect();\r\n var forceInstance = forceLayout(nodes_1, edges, {\r\n rect: rect,\r\n gravity: forceModel.get('gravity'),\r\n friction: forceModel.get('friction')\r\n });\r\n forceInstance.beforeStep(function (nodes, edges) {\r\n for (var i = 0, l = nodes.length; i < l; i++) {\r\n if (nodes[i].fixed) {\r\n copy(nodes[i].p, graph_1.getNodeByIndex(i).getLayout());\r\n }\r\n }\r\n });\r\n forceInstance.afterStep(function (nodes, edges, stopped) {\r\n for (var i = 0, l = nodes.length; i < l; i++) {\r\n if (!nodes[i].fixed) {\r\n graph_1.getNodeByIndex(i).setLayout(nodes[i].p);\r\n }\r\n preservedPoints_1[nodeData_1.getId(i)] = nodes[i].p;\r\n }\r\n for (var i = 0, l = edges.length; i < l; i++) {\r\n var e = edges[i];\r\n var edge = graph_1.getEdgeByIndex(i);\r\n var p1 = e.n1.p;\r\n var p2 = e.n2.p;\r\n var points = edge.getLayout();\r\n points = points ? points.slice() : [];\r\n points[0] = points[0] || [];\r\n points[1] = points[1] || [];\r\n copy(points[0], p1);\r\n copy(points[1], p2);\r\n if (+e.curveness) {\r\n points[2] = [\r\n (p1[0] + p2[0]) / 2 - (p1[1] - p2[1]) * e.curveness,\r\n (p1[1] + p2[1]) / 2 - (p2[0] - p1[0]) * e.curveness\r\n ];\r\n }\r\n edge.setLayout(points);\r\n }\r\n });\r\n graphSeries.forceLayout = forceInstance;\r\n graphSeries.preservedPoints = preservedPoints_1;\r\n forceInstance.step();\r\n }\r\n else {\r\n graphSeries.forceLayout = null;\r\n }\r\n });\r\n }\n\n function getViewRect$2(seriesModel, api, aspect) {\r\n var option = extend(seriesModel.getBoxLayoutParams(), {\r\n aspect: aspect\r\n });\r\n return getLayoutRect(option, {\r\n width: api.getWidth(),\r\n height: api.getHeight()\r\n });\r\n }\r\n function createViewCoordSys(ecModel, api) {\r\n var viewList = [];\r\n ecModel.eachSeriesByType('graph', function (seriesModel) {\r\n var coordSysType = seriesModel.get('coordinateSystem');\r\n if (!coordSysType || coordSysType === 'view') {\r\n var data_1 = seriesModel.getData();\r\n var positions = data_1.mapArray(function (idx) {\r\n var itemModel = data_1.getItemModel(idx);\r\n return [+itemModel.get('x'), +itemModel.get('y')];\r\n });\r\n var min = [];\r\n var max = [];\r\n fromPoints(positions, min, max);\r\n if (max[0] - min[0] === 0) {\r\n max[0] += 1;\r\n min[0] -= 1;\r\n }\r\n if (max[1] - min[1] === 0) {\r\n max[1] += 1;\r\n min[1] -= 1;\r\n }\r\n var aspect = (max[0] - min[0]) / (max[1] - min[1]);\r\n var viewRect = getViewRect$2(seriesModel, api, aspect);\r\n if (isNaN(aspect)) {\r\n min = [viewRect.x, viewRect.y];\r\n max = [viewRect.x + viewRect.width, viewRect.y + viewRect.height];\r\n }\r\n var bbWidth = max[0] - min[0];\r\n var bbHeight = max[1] - min[1];\r\n var viewWidth = viewRect.width;\r\n var viewHeight = viewRect.height;\r\n var viewCoordSys = seriesModel.coordinateSystem = new View();\r\n viewCoordSys.zoomLimit = seriesModel.get('scaleLimit');\r\n viewCoordSys.setBoundingRect(min[0], min[1], bbWidth, bbHeight);\r\n viewCoordSys.setViewRect(viewRect.x, viewRect.y, viewWidth, viewHeight);\r\n viewCoordSys.setCenter(seriesModel.get('center'));\r\n viewCoordSys.setZoom(seriesModel.get('zoom'));\r\n viewList.push(viewCoordSys);\r\n }\r\n });\r\n return viewList;\r\n }\n\n registerProcessor(categoryFilter);\r\n registerVisual(categoryVisual);\r\n registerVisual(graphEdgeVisual);\r\n registerLayout(graphSimpleLayout);\r\n registerLayout(PRIORITY.VISUAL.POST_CHART_LAYOUT, graphCircularLayout);\r\n registerLayout(graphForceLayout);\r\n registerCoordinateSystem('graphView', {\r\n dimensions: View.dimensions,\r\n create: createViewCoordSys\r\n });\n\n var GaugeSeriesModel = (function (_super) {\r\n __extends(GaugeSeriesModel, _super);\r\n function GaugeSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = GaugeSeriesModel.type;\r\n _this.visualStyleAccessPath = 'itemStyle';\r\n _this.useColorPaletteOnData = true;\r\n return _this;\r\n }\r\n GaugeSeriesModel.prototype.getInitialData = function (option, ecModel) {\r\n return createListSimply(this, ['value']);\r\n };\r\n GaugeSeriesModel.type = 'series.gauge';\r\n GaugeSeriesModel.defaultOption = {\r\n zlevel: 0,\r\n z: 2,\r\n center: ['50%', '50%'],\r\n legendHoverLink: true,\r\n radius: '75%',\r\n startAngle: 225,\r\n endAngle: -45,\r\n clockwise: true,\r\n min: 0,\r\n max: 100,\r\n splitNumber: 10,\r\n axisLine: {\r\n show: true,\r\n roundCap: false,\r\n lineStyle: {\r\n color: [[1, '#E6EBF8']],\r\n width: 10\r\n }\r\n },\r\n progress: {\r\n show: false,\r\n overlap: true,\r\n width: 10,\r\n roundCap: false,\r\n clip: true\r\n },\r\n splitLine: {\r\n show: true,\r\n length: 10,\r\n distance: 10,\r\n lineStyle: {\r\n color: '#63677A',\r\n width: 3,\r\n type: 'solid'\r\n }\r\n },\r\n axisTick: {\r\n show: true,\r\n splitNumber: 5,\r\n length: 6,\r\n distance: 10,\r\n lineStyle: {\r\n color: '#63677A',\r\n width: 1,\r\n type: 'solid'\r\n }\r\n },\r\n axisLabel: {\r\n show: true,\r\n distance: 15,\r\n color: '#464646',\r\n fontSize: 12\r\n },\r\n pointer: {\r\n icon: null,\r\n offsetCenter: [0, 0],\r\n show: true,\r\n length: '60%',\r\n width: 6,\r\n keepAspect: false\r\n },\r\n anchor: {\r\n show: false,\r\n showAbove: false,\r\n size: 6,\r\n icon: 'circle',\r\n offsetCenter: [0, 0],\r\n keepAspect: false,\r\n itemStyle: {\r\n color: '#fff',\r\n borderWidth: 0,\r\n borderColor: '#5470c6'\r\n }\r\n },\r\n title: {\r\n show: true,\r\n offsetCenter: [0, '20%'],\r\n color: '#464646',\r\n fontSize: 16,\r\n valueAnimation: false\r\n },\r\n detail: {\r\n show: true,\r\n backgroundColor: 'rgba(0,0,0,0)',\r\n borderWidth: 0,\r\n borderColor: '#ccc',\r\n width: 100,\r\n height: null,\r\n padding: [5, 10],\r\n offsetCenter: [0, '40%'],\r\n color: '#464646',\r\n fontSize: 30,\r\n fontWeight: 'bold',\r\n lineHeight: 30,\r\n valueAnimation: false\r\n }\r\n };\r\n return GaugeSeriesModel;\r\n }(SeriesModel));\r\n SeriesModel.registerClass(GaugeSeriesModel);\n\n var PointerShape = (function () {\r\n function PointerShape() {\r\n this.angle = 0;\r\n this.width = 10;\r\n this.r = 10;\r\n this.x = 0;\r\n this.y = 0;\r\n }\r\n return PointerShape;\r\n }());\r\n var PointerPath = (function (_super) {\r\n __extends(PointerPath, _super);\r\n function PointerPath(opts) {\r\n var _this = _super.call(this, opts) || this;\r\n _this.type = 'pointer';\r\n return _this;\r\n }\r\n PointerPath.prototype.getDefaultShape = function () {\r\n return new PointerShape();\r\n };\r\n PointerPath.prototype.buildPath = function (ctx, shape) {\r\n var mathCos = Math.cos;\r\n var mathSin = Math.sin;\r\n var r = shape.r;\r\n var width = shape.width;\r\n var angle = shape.angle;\r\n var x = shape.x - mathCos(angle) * width * (width >= r / 3 ? 1 : 2);\r\n var y = shape.y - mathSin(angle) * width * (width >= r / 3 ? 1 : 2);\r\n angle = shape.angle - Math.PI / 2;\r\n ctx.moveTo(x, y);\r\n ctx.lineTo(shape.x + mathCos(angle) * width, shape.y + mathSin(angle) * width);\r\n ctx.lineTo(shape.x + mathCos(shape.angle) * r, shape.y + mathSin(shape.angle) * r);\r\n ctx.lineTo(shape.x - mathCos(angle) * width, shape.y - mathSin(angle) * width);\r\n ctx.lineTo(x, y);\r\n };\r\n return PointerPath;\r\n }(Path));\n\n function parsePosition(seriesModel, api) {\r\n var center = seriesModel.get('center');\r\n var width = api.getWidth();\r\n var height = api.getHeight();\r\n var size = Math.min(width, height);\r\n var cx = parsePercent$2(center[0], api.getWidth());\r\n var cy = parsePercent$2(center[1], api.getHeight());\r\n var r = parsePercent$2(seriesModel.get('radius'), size / 2);\r\n return {\r\n cx: cx,\r\n cy: cy,\r\n r: r\r\n };\r\n }\r\n function formatLabel(value, labelFormatter) {\r\n var label = value == null ? '' : (value + '');\r\n if (labelFormatter) {\r\n if (typeof labelFormatter === 'string') {\r\n label = labelFormatter.replace('{value}', label);\r\n }\r\n else if (typeof labelFormatter === 'function') {\r\n label = labelFormatter(value);\r\n }\r\n }\r\n return label;\r\n }\r\n var PI2$9 = Math.PI * 2;\r\n var GaugeView = (function (_super) {\r\n __extends(GaugeView, _super);\r\n function GaugeView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = GaugeView.type;\r\n return _this;\r\n }\r\n GaugeView.prototype.render = function (seriesModel, ecModel, api) {\r\n this.group.removeAll();\r\n var colorList = seriesModel.get(['axisLine', 'lineStyle', 'color']);\r\n var posInfo = parsePosition(seriesModel, api);\r\n this._renderMain(seriesModel, ecModel, api, colorList, posInfo);\r\n this._data = seriesModel.getData();\r\n };\r\n GaugeView.prototype.dispose = function () { };\r\n GaugeView.prototype._renderMain = function (seriesModel, ecModel, api, colorList, posInfo) {\r\n var group = this.group;\r\n var clockwise = seriesModel.get('clockwise');\r\n var startAngle = -seriesModel.get('startAngle') / 180 * Math.PI;\r\n var endAngle = -seriesModel.get('endAngle') / 180 * Math.PI;\r\n var axisLineModel = seriesModel.getModel('axisLine');\r\n var roundCap = axisLineModel.get('roundCap');\r\n var MainPath = roundCap ? SausagePath : Sector;\r\n var showAxis = axisLineModel.get('show');\r\n var lineStyleModel = axisLineModel.getModel('lineStyle');\r\n var axisLineWidth = lineStyleModel.get('width');\r\n var angleRangeSpan = !((endAngle - startAngle) % PI2$9) && endAngle !== startAngle\r\n ? PI2$9 : (endAngle - startAngle) % PI2$9;\r\n var prevEndAngle = startAngle;\r\n for (var i = 0; showAxis && i < colorList.length; i++) {\r\n var percent = Math.min(Math.max(colorList[i][0], 0), 1);\r\n endAngle = startAngle + angleRangeSpan * percent;\r\n var sector = new MainPath({\r\n shape: {\r\n startAngle: prevEndAngle,\r\n endAngle: endAngle,\r\n cx: posInfo.cx,\r\n cy: posInfo.cy,\r\n clockwise: clockwise,\r\n r0: posInfo.r - axisLineWidth,\r\n r: posInfo.r\r\n },\r\n silent: true\r\n });\r\n sector.setStyle({\r\n fill: colorList[i][1]\r\n });\r\n sector.setStyle(lineStyleModel.getLineStyle(['color', 'width']));\r\n group.add(sector);\r\n prevEndAngle = endAngle;\r\n }\r\n var getColor = function (percent) {\r\n if (percent <= 0) {\r\n return colorList[0][1];\r\n }\r\n var i;\r\n for (i = 0; i < colorList.length; i++) {\r\n if (colorList[i][0] >= percent\r\n && (i === 0 ? 0 : colorList[i - 1][0]) < percent) {\r\n return colorList[i][1];\r\n }\r\n }\r\n return colorList[i - 1][1];\r\n };\r\n if (!clockwise) {\r\n var tmp = startAngle;\r\n startAngle = endAngle;\r\n endAngle = tmp;\r\n }\r\n this._renderTicks(seriesModel, ecModel, api, getColor, posInfo, startAngle, endAngle, clockwise, axisLineWidth);\r\n this._renderTitleAndDetail(seriesModel, ecModel, api, getColor, posInfo);\r\n this._renderAnchor(seriesModel, posInfo);\r\n this._renderPointer(seriesModel, ecModel, api, getColor, posInfo, startAngle, endAngle, clockwise, axisLineWidth);\r\n };\r\n GaugeView.prototype._renderTicks = function (seriesModel, ecModel, api, getColor, posInfo, startAngle, endAngle, clockwise, axisLineWidth) {\r\n var group = this.group;\r\n var cx = posInfo.cx;\r\n var cy = posInfo.cy;\r\n var r = posInfo.r;\r\n var minVal = +seriesModel.get('min');\r\n var maxVal = +seriesModel.get('max');\r\n var splitLineModel = seriesModel.getModel('splitLine');\r\n var tickModel = seriesModel.getModel('axisTick');\r\n var labelModel = seriesModel.getModel('axisLabel');\r\n var splitNumber = seriesModel.get('splitNumber');\r\n var subSplitNumber = tickModel.get('splitNumber');\r\n var splitLineLen = parsePercent$2(splitLineModel.get('length'), r);\r\n var tickLen = parsePercent$2(tickModel.get('length'), r);\r\n var angle = startAngle;\r\n var step = (endAngle - startAngle) / splitNumber;\r\n var subStep = step / subSplitNumber;\r\n var splitLineStyle = splitLineModel.getModel('lineStyle').getLineStyle();\r\n var tickLineStyle = tickModel.getModel('lineStyle').getLineStyle();\r\n var splitLineDistance = splitLineModel.get('distance');\r\n var unitX;\r\n var unitY;\r\n for (var i = 0; i <= splitNumber; i++) {\r\n unitX = Math.cos(angle);\r\n unitY = Math.sin(angle);\r\n if (splitLineModel.get('show')) {\r\n var distance = splitLineDistance ? splitLineDistance + axisLineWidth : axisLineWidth;\r\n var splitLine = new Line({\r\n shape: {\r\n x1: unitX * (r - distance) + cx,\r\n y1: unitY * (r - distance) + cy,\r\n x2: unitX * (r - splitLineLen - distance) + cx,\r\n y2: unitY * (r - splitLineLen - distance) + cy\r\n },\r\n style: splitLineStyle,\r\n silent: true\r\n });\r\n if (splitLineStyle.stroke === 'auto') {\r\n splitLine.setStyle({\r\n stroke: getColor(i / splitNumber)\r\n });\r\n }\r\n group.add(splitLine);\r\n }\r\n if (labelModel.get('show')) {\r\n var distance = labelModel.get('distance') + splitLineDistance;\r\n var label = formatLabel(round$1(i / splitNumber * (maxVal - minVal) + minVal), labelModel.get('formatter'));\r\n var autoColor = getColor(i / splitNumber);\r\n group.add(new ZRText({\r\n style: createTextStyle(labelModel, {\r\n text: label,\r\n x: unitX * (r - splitLineLen - distance) + cx,\r\n y: unitY * (r - splitLineLen - distance) + cy,\r\n verticalAlign: unitY < -0.8 ? 'top' : (unitY > 0.8 ? 'bottom' : 'middle'),\r\n align: unitX < -0.4 ? 'left' : (unitX > 0.4 ? 'right' : 'center')\r\n }, {\r\n inheritColor: autoColor\r\n }),\r\n silent: true\r\n }));\r\n }\r\n if (tickModel.get('show') && i !== splitNumber) {\r\n var distance = tickModel.get('distance');\r\n distance = distance ? distance + axisLineWidth : axisLineWidth;\r\n for (var j = 0; j <= subSplitNumber; j++) {\r\n unitX = Math.cos(angle);\r\n unitY = Math.sin(angle);\r\n var tickLine = new Line({\r\n shape: {\r\n x1: unitX * (r - distance) + cx,\r\n y1: unitY * (r - distance) + cy,\r\n x2: unitX * (r - tickLen - distance) + cx,\r\n y2: unitY * (r - tickLen - distance) + cy\r\n },\r\n silent: true,\r\n style: tickLineStyle\r\n });\r\n if (tickLineStyle.stroke === 'auto') {\r\n tickLine.setStyle({\r\n stroke: getColor((i + j / subSplitNumber) / splitNumber)\r\n });\r\n }\r\n group.add(tickLine);\r\n angle += subStep;\r\n }\r\n angle -= subStep;\r\n }\r\n else {\r\n angle += step;\r\n }\r\n }\r\n };\r\n GaugeView.prototype._renderPointer = function (seriesModel, ecModel, api, getColor, posInfo, startAngle, endAngle, clockwise, axisLineWidth) {\r\n var group = this.group;\r\n var oldData = this._data;\r\n var oldProgressData = this._progressEls;\r\n var progressList = [];\r\n var showPointer = seriesModel.get(['pointer', 'show']);\r\n var progressModel = seriesModel.getModel('progress');\r\n var showProgress = progressModel.get('show');\r\n var data = seriesModel.getData();\r\n var valueDim = data.mapDimension('value');\r\n var minVal = +seriesModel.get('min');\r\n var maxVal = +seriesModel.get('max');\r\n var valueExtent = [minVal, maxVal];\r\n var angleExtent = [startAngle, endAngle];\r\n function createPointer(idx, angle) {\r\n var itemModel = data.getItemModel(idx);\r\n var pointerModel = itemModel.getModel('pointer');\r\n var pointerWidth = parsePercent$2(pointerModel.get('width'), posInfo.r);\r\n var pointerLength = parsePercent$2(pointerModel.get('length'), posInfo.r);\r\n var pointerStr = seriesModel.get(['pointer', 'icon']);\r\n var pointerOffset = pointerModel.get('offsetCenter');\r\n var pointerKeepAspect = pointerModel.get('keepAspect');\r\n var pointer;\r\n if (pointerStr) {\r\n pointer = createSymbol(pointerStr, parsePercent$2(pointerOffset[0], posInfo.r) - pointerWidth / 2, parsePercent$2(pointerOffset[1], posInfo.r) - pointerLength, pointerWidth, pointerLength, null, pointerKeepAspect);\r\n }\r\n else {\r\n pointer = new PointerPath({\r\n shape: {\r\n angle: -Math.PI / 2,\r\n width: parsePercent$2(pointerModel.get('width'), posInfo.r),\r\n r: parsePercent$2(pointerModel.get('length'), posInfo.r)\r\n }\r\n });\r\n }\r\n pointer.rotation = -(angle + Math.PI / 2);\r\n pointer.x = posInfo.cx;\r\n pointer.y = posInfo.cy;\r\n return pointer;\r\n }\r\n function createProgress(idx, endAngle) {\r\n var roundCap = progressModel.get('roundCap');\r\n var ProgressPath = roundCap ? SausagePath : Sector;\r\n var isOverlap = progressModel.get('overlap');\r\n var progressWidth = isOverlap ? progressModel.get('width') : axisLineWidth / data.count();\r\n var r0 = isOverlap ? posInfo.r - progressWidth : posInfo.r - (idx + 1) * progressWidth;\r\n var r = isOverlap ? posInfo.r : posInfo.r - idx * progressWidth;\r\n var progress = new ProgressPath({\r\n shape: {\r\n startAngle: startAngle,\r\n endAngle: endAngle,\r\n cx: posInfo.cx,\r\n cy: posInfo.cy,\r\n clockwise: clockwise,\r\n r0: r0,\r\n r: r\r\n }\r\n });\r\n isOverlap && (progress.z2 = maxVal - data.get(valueDim, idx) % maxVal);\r\n return progress;\r\n }\r\n if (showProgress || showPointer) {\r\n data.diff(oldData)\r\n .add(function (idx) {\r\n if (showPointer) {\r\n var pointer = createPointer(idx, startAngle);\r\n initProps(pointer, {\r\n rotation: -(linearMap(data.get(valueDim, idx), valueExtent, angleExtent, true)\r\n + Math.PI / 2)\r\n }, seriesModel);\r\n group.add(pointer);\r\n data.setItemGraphicEl(idx, pointer);\r\n }\r\n if (showProgress) {\r\n var progress = createProgress(idx, startAngle);\r\n var isClip = progressModel.get('clip');\r\n initProps(progress, {\r\n shape: {\r\n endAngle: linearMap(data.get(valueDim, idx), valueExtent, angleExtent, isClip)\r\n }\r\n }, seriesModel);\r\n group.add(progress);\r\n progressList[idx] = progress;\r\n }\r\n })\r\n .update(function (newIdx, oldIdx) {\r\n if (showPointer) {\r\n var previousPointer = oldData.getItemGraphicEl(oldIdx);\r\n var previousRotate = previousPointer ? previousPointer.rotation : startAngle;\r\n var pointer = createPointer(newIdx, previousRotate);\r\n pointer.rotation = previousRotate;\r\n updateProps(pointer, {\r\n rotation: -(linearMap(data.get(valueDim, newIdx), valueExtent, angleExtent, true)\r\n + Math.PI / 2)\r\n }, seriesModel);\r\n group.add(pointer);\r\n data.setItemGraphicEl(newIdx, pointer);\r\n }\r\n if (showProgress) {\r\n var previousProgress = oldProgressData[oldIdx];\r\n var previousEndAngle = previousProgress ? previousProgress.shape.endAngle : startAngle;\r\n var progress = createProgress(newIdx, previousEndAngle);\r\n var isClip = progressModel.get('clip');\r\n updateProps(progress, {\r\n shape: {\r\n endAngle: linearMap(data.get(valueDim, newIdx), valueExtent, angleExtent, isClip)\r\n }\r\n }, seriesModel);\r\n group.add(progress);\r\n progressList[newIdx] = progress;\r\n }\r\n })\r\n .execute();\r\n data.each(function (idx) {\r\n var itemModel = data.getItemModel(idx);\r\n var emphasisModel = itemModel.getModel('emphasis');\r\n if (showPointer) {\r\n var pointer = data.getItemGraphicEl(idx);\r\n pointer.useStyle(data.getItemVisual(idx, 'style'));\r\n pointer.setStyle(itemModel.getModel(['pointer', 'itemStyle']).getItemStyle());\r\n if (pointer.style.fill === 'auto') {\r\n pointer.setStyle('fill', getColor(linearMap(data.get(valueDim, idx), valueExtent, [0, 1], true)));\r\n }\r\n pointer.z2EmphasisLift = 0;\r\n setStatesStylesFromModel(pointer, itemModel);\r\n enableHoverEmphasis(pointer, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\r\n }\r\n if (showProgress) {\r\n var progress = progressList[idx];\r\n progress.useStyle(data.getItemVisual(idx, 'style'));\r\n progress.setStyle(itemModel.getModel(['progress', 'itemStyle']).getItemStyle());\r\n progress.z2EmphasisLift = 0;\r\n setStatesStylesFromModel(progress, itemModel);\r\n enableHoverEmphasis(progress, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\r\n }\r\n });\r\n this._progressEls = progressList;\r\n }\r\n };\r\n GaugeView.prototype._renderAnchor = function (seriesModel, posInfo) {\r\n var anchorModel = seriesModel.getModel('anchor');\r\n var showAnchor = anchorModel.get('show');\r\n if (showAnchor) {\r\n var anchorSize = anchorModel.get('size');\r\n var anchorType = anchorModel.get('icon');\r\n var offsetCenter = anchorModel.get('offsetCenter');\r\n var anchorKeepAspect = anchorModel.get('keepAspect');\r\n var anchor = createSymbol(anchorType, posInfo.cx - anchorSize / 2 + parsePercent$2(offsetCenter[0], posInfo.r), posInfo.cy - anchorSize / 2 + parsePercent$2(offsetCenter[1], posInfo.r), anchorSize, anchorSize, null, anchorKeepAspect);\r\n anchor.z2 = anchorModel.get('showAbove') ? 1 : 0;\r\n anchor.setStyle(anchorModel.getModel('itemStyle').getItemStyle());\r\n this.group.add(anchor);\r\n }\r\n };\r\n GaugeView.prototype._renderTitleAndDetail = function (seriesModel, ecModel, api, getColor, posInfo) {\r\n var _this = this;\r\n var data = seriesModel.getData();\r\n var valueDim = data.mapDimension('value');\r\n var minVal = +seriesModel.get('min');\r\n var maxVal = +seriesModel.get('max');\r\n var contentGroup = new Group();\r\n var newTitleEls = [];\r\n var newDetailEls = [];\r\n var hasAnimation = seriesModel.isAnimationEnabled();\r\n data.diff(this._data)\r\n .add(function (idx) {\r\n newTitleEls[idx] = new ZRText({\r\n silent: true\r\n });\r\n newDetailEls[idx] = new ZRText({\r\n silent: true\r\n });\r\n })\r\n .update(function (idx, oldIdx) {\r\n newTitleEls[idx] = _this._titleEls[oldIdx];\r\n newDetailEls[idx] = _this._detailEls[oldIdx];\r\n })\r\n .execute();\r\n data.each(function (idx) {\r\n var itemModel = data.getItemModel(idx);\r\n var value = data.get(valueDim, idx);\r\n var itemGroup = new Group();\r\n var autoColor = getColor(linearMap(value, [minVal, maxVal], [0, 1], true));\r\n var itemTitleModel = itemModel.getModel('title');\r\n if (itemTitleModel.get('show')) {\r\n var titleOffsetCenter = itemTitleModel.get('offsetCenter');\r\n var titleX = posInfo.cx + parsePercent$2(titleOffsetCenter[0], posInfo.r);\r\n var titleY = posInfo.cy + parsePercent$2(titleOffsetCenter[1], posInfo.r);\r\n var labelEl = newTitleEls[idx];\r\n labelEl.attr({\r\n style: createTextStyle(itemTitleModel, {\r\n x: titleX,\r\n y: titleY,\r\n text: data.getName(idx),\r\n align: 'center',\r\n verticalAlign: 'middle'\r\n }, { inheritColor: autoColor })\r\n });\r\n setLabelValueAnimation(labelEl, { normal: itemTitleModel }, seriesModel.getRawValue(idx), function () { return data.getName(idx); });\r\n hasAnimation && animateLabelValue(labelEl, idx, data, seriesModel);\r\n itemGroup.add(labelEl);\r\n }\r\n var itemDetailModel = itemModel.getModel('detail');\r\n if (itemDetailModel.get('show')) {\r\n var detailOffsetCenter = itemDetailModel.get('offsetCenter');\r\n var detailX = posInfo.cx + parsePercent$2(detailOffsetCenter[0], posInfo.r);\r\n var detailY = posInfo.cy + parsePercent$2(detailOffsetCenter[1], posInfo.r);\r\n var width = parsePercent$2(itemDetailModel.get('width'), posInfo.r);\r\n var height = parsePercent$2(itemDetailModel.get('height'), posInfo.r);\r\n var detailColor = (seriesModel.get(['progress', 'show']) ? data.getItemVisual(idx, 'style').fill : autoColor);\r\n var labelEl = newDetailEls[idx];\r\n var formatter_1 = itemDetailModel.get('formatter');\r\n labelEl.attr({\r\n style: createTextStyle(itemDetailModel, {\r\n x: detailX,\r\n y: detailY,\r\n text: formatLabel(value, formatter_1),\r\n width: isNaN(width) ? null : width,\r\n height: isNaN(height) ? null : height,\r\n align: 'center',\r\n verticalAlign: 'middle'\r\n }, { inheritColor: detailColor })\r\n });\r\n setLabelValueAnimation(labelEl, { normal: itemDetailModel }, seriesModel.getRawValue(idx), function (value) { return formatLabel(value, formatter_1); });\r\n hasAnimation && animateLabelValue(labelEl, idx, data, seriesModel);\r\n itemGroup.add(labelEl);\r\n }\r\n contentGroup.add(itemGroup);\r\n });\r\n this.group.add(contentGroup);\r\n this._titleEls = newTitleEls;\r\n this._detailEls = newDetailEls;\r\n };\r\n GaugeView.type = 'gauge';\r\n return GaugeView;\r\n }(ChartView));\r\n ChartView.registerClass(GaugeView);\n\n var FunnelSeriesModel = (function (_super) {\r\n __extends(FunnelSeriesModel, _super);\r\n function FunnelSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = FunnelSeriesModel.type;\r\n _this.useColorPaletteOnData = true;\r\n return _this;\r\n }\r\n FunnelSeriesModel.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 FunnelSeriesModel.prototype.getInitialData = function (option, ecModel) {\r\n return createListSimply(this, {\r\n coordDimensions: ['value'],\r\n encodeDefaulter: curry(makeSeriesEncodeForNameBased, this)\r\n });\r\n };\r\n FunnelSeriesModel.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 FunnelSeriesModel.prototype.getDataParams = function (dataIndex) {\r\n var data = this.getData();\r\n var params = _super.prototype.getDataParams.call(this, dataIndex);\r\n var valueDim = data.mapDimension('value');\r\n var sum = data.getSum(valueDim);\r\n params.percent = !sum ? 0 : +(data.get(valueDim, dataIndex) / sum * 100).toFixed(2);\r\n params.$vars.push('percent');\r\n return params;\r\n };\r\n FunnelSeriesModel.type = 'series.funnel';\r\n FunnelSeriesModel.defaultOption = {\r\n zlevel: 0,\r\n z: 2,\r\n legendHoverLink: true,\r\n left: 80,\r\n top: 60,\r\n right: 80,\r\n bottom: 60,\r\n minSize: '0%',\r\n maxSize: '100%',\r\n sort: 'descending',\r\n orient: 'vertical',\r\n gap: 0,\r\n funnelAlign: 'center',\r\n label: {\r\n show: true,\r\n position: 'outer'\r\n },\r\n labelLine: {\r\n show: true,\r\n length: 20,\r\n lineStyle: {\r\n width: 1\r\n }\r\n },\r\n itemStyle: {\r\n borderColor: '#fff',\r\n borderWidth: 1\r\n },\r\n emphasis: {\r\n label: {\r\n show: true\r\n }\r\n },\r\n select: {\r\n itemStyle: {\r\n borderColor: '#212121'\r\n }\r\n }\r\n };\r\n return FunnelSeriesModel;\r\n }(SeriesModel));\r\n ComponentModel.registerClass(FunnelSeriesModel);\n\n var opacityAccessPath = ['itemStyle', 'opacity'];\r\n var FunnelPiece = (function (_super) {\r\n __extends(FunnelPiece, _super);\r\n function FunnelPiece(data, idx) {\r\n var _this = _super.call(this) || this;\r\n var polygon = _this;\r\n var labelLine = new Polyline();\r\n var text = new ZRText();\r\n polygon.setTextContent(text);\r\n _this.setTextGuideLine(labelLine);\r\n _this.updateData(data, idx, true);\r\n return _this;\r\n }\r\n FunnelPiece.prototype.updateData = function (data, idx, firstCreate) {\r\n var polygon = this;\r\n var seriesModel = data.hostModel;\r\n var itemModel = data.getItemModel(idx);\r\n var layout = data.getItemLayout(idx);\r\n var emphasisModel = itemModel.getModel('emphasis');\r\n var opacity = itemModel.get(opacityAccessPath);\r\n opacity = opacity == null ? 1 : opacity;\r\n polygon.useStyle(data.getItemVisual(idx, 'style'));\r\n polygon.style.lineJoin = 'round';\r\n if (firstCreate) {\r\n polygon.setShape({\r\n points: layout.points\r\n });\r\n polygon.style.opacity = 0;\r\n initProps(polygon, {\r\n style: {\r\n opacity: opacity\r\n }\r\n }, seriesModel, idx);\r\n }\r\n else {\r\n updateProps(polygon, {\r\n style: {\r\n opacity: opacity\r\n },\r\n shape: {\r\n points: layout.points\r\n }\r\n }, seriesModel, idx);\r\n }\r\n setStatesStylesFromModel(polygon, itemModel);\r\n this._updateLabel(data, idx);\r\n enableHoverEmphasis(this, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\r\n };\r\n FunnelPiece.prototype._updateLabel = function (data, idx) {\r\n var polygon = this;\r\n var labelLine = this.getTextGuideLine();\r\n var labelText = polygon.getTextContent();\r\n var seriesModel = data.hostModel;\r\n var itemModel = data.getItemModel(idx);\r\n var layout = data.getItemLayout(idx);\r\n var labelLayout = layout.label;\r\n var style = data.getItemVisual(idx, 'style');\r\n var visualColor = style.fill;\r\n setLabelStyle(labelText, getLabelStatesModels(itemModel), {\r\n labelFetcher: data.hostModel,\r\n labelDataIndex: idx,\r\n defaultOpacity: style.opacity,\r\n defaultText: data.getName(idx)\r\n }, { normal: {\r\n align: labelLayout.textAlign,\r\n verticalAlign: labelLayout.verticalAlign\r\n } });\r\n polygon.setTextConfig({\r\n local: true,\r\n inside: !!labelLayout.inside,\r\n insideStroke: visualColor,\r\n outsideFill: visualColor\r\n });\r\n var linePoints = labelLayout.linePoints;\r\n labelLine.setShape({\r\n points: linePoints\r\n });\r\n polygon.textGuideLineConfig = {\r\n anchor: linePoints ? new Point(linePoints[0][0], linePoints[0][1]) : null\r\n };\r\n updateProps(labelText, {\r\n style: {\r\n x: labelLayout.x,\r\n y: labelLayout.y\r\n }\r\n }, seriesModel, idx);\r\n labelText.attr({\r\n rotation: labelLayout.rotation,\r\n originX: labelLayout.x,\r\n originY: labelLayout.y,\r\n z2: 10\r\n });\r\n setLabelLineStyle(polygon, getLabelLineStatesModels(itemModel), {\r\n stroke: visualColor\r\n });\r\n };\r\n return FunnelPiece;\r\n }(Polygon));\r\n var FunnelView = (function (_super) {\r\n __extends(FunnelView, _super);\r\n function FunnelView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = FunnelView.type;\r\n _this.ignoreLabelLineUpdate = true;\r\n return _this;\r\n }\r\n FunnelView.prototype.render = function (seriesModel, ecModel, api) {\r\n var data = seriesModel.getData();\r\n var oldData = this._data;\r\n var group = this.group;\r\n data.diff(oldData)\r\n .add(function (idx) {\r\n var funnelPiece = new FunnelPiece(data, idx);\r\n data.setItemGraphicEl(idx, funnelPiece);\r\n group.add(funnelPiece);\r\n })\r\n .update(function (newIdx, oldIdx) {\r\n var piece = oldData.getItemGraphicEl(oldIdx);\r\n piece.updateData(data, newIdx);\r\n group.add(piece);\r\n data.setItemGraphicEl(newIdx, piece);\r\n })\r\n .remove(function (idx) {\r\n var piece = oldData.getItemGraphicEl(idx);\r\n removeElementWithFadeOut(piece, seriesModel, idx);\r\n })\r\n .execute();\r\n this._data = data;\r\n };\r\n FunnelView.prototype.remove = function () {\r\n this.group.removeAll();\r\n this._data = null;\r\n };\r\n FunnelView.prototype.dispose = function () { };\r\n FunnelView.type = 'funnel';\r\n return FunnelView;\r\n }(ChartView));\r\n ChartView.registerClass(FunnelView);\n\n function getViewRect$3(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 getSortedIndices(data, sort) {\r\n var valueDim = data.mapDimension('value');\r\n var valueArr = data.mapArray(valueDim, function (val) {\r\n return val;\r\n });\r\n var indices = [];\r\n var isAscending = sort === 'ascending';\r\n for (var i = 0, len = data.count(); i < len; i++) {\r\n indices[i] = i;\r\n }\r\n if (typeof sort === 'function') {\r\n indices.sort(sort);\r\n }\r\n else if (sort !== 'none') {\r\n indices.sort(function (a, b) {\r\n return isAscending\r\n ? valueArr[a] - valueArr[b]\r\n : valueArr[b] - valueArr[a];\r\n });\r\n }\r\n return indices;\r\n }\r\n function labelLayout(data) {\r\n var seriesModel = data.hostModel;\r\n var orient = seriesModel.get('orient');\r\n data.each(function (idx) {\r\n var itemModel = data.getItemModel(idx);\r\n var labelModel = itemModel.getModel('label');\r\n var labelPosition = labelModel.get('position');\r\n var labelLineModel = itemModel.getModel('labelLine');\r\n var layout = data.getItemLayout(idx);\r\n var points = layout.points;\r\n var isLabelInside = labelPosition === 'inner'\r\n || labelPosition === 'inside' || labelPosition === 'center'\r\n || labelPosition === 'insideLeft' || labelPosition === 'insideRight';\r\n var textAlign;\r\n var textX;\r\n var textY;\r\n var linePoints;\r\n if (isLabelInside) {\r\n if (labelPosition === 'insideLeft') {\r\n textX = (points[0][0] + points[3][0]) / 2 + 5;\r\n textY = (points[0][1] + points[3][1]) / 2;\r\n textAlign = 'left';\r\n }\r\n else if (labelPosition === 'insideRight') {\r\n textX = (points[1][0] + points[2][0]) / 2 - 5;\r\n textY = (points[1][1] + points[2][1]) / 2;\r\n textAlign = 'right';\r\n }\r\n else {\r\n textX = (points[0][0] + points[1][0] + points[2][0] + points[3][0]) / 4;\r\n textY = (points[0][1] + points[1][1] + points[2][1] + points[3][1]) / 4;\r\n textAlign = 'center';\r\n }\r\n linePoints = [\r\n [textX, textY], [textX, textY]\r\n ];\r\n }\r\n else {\r\n var x1 = void 0;\r\n var y1 = void 0;\r\n var x2 = void 0;\r\n var y2 = void 0;\r\n var labelLineLen = labelLineModel.get('length');\r\n if (__DEV__) {\r\n if (orient === 'vertical' && ['top', 'bottom'].indexOf(labelPosition) > -1) {\r\n labelPosition = 'left';\r\n console.warn('Position error: Funnel chart on vertical orient dose not support top and bottom.');\r\n }\r\n if (orient === 'horizontal' && ['left', 'right'].indexOf(labelPosition) > -1) {\r\n labelPosition = 'bottom';\r\n console.warn('Position error: Funnel chart on horizontal orient dose not support left and right.');\r\n }\r\n }\r\n if (labelPosition === 'left') {\r\n x1 = (points[3][0] + points[0][0]) / 2;\r\n y1 = (points[3][1] + points[0][1]) / 2;\r\n x2 = x1 - labelLineLen;\r\n textX = x2 - 5;\r\n textAlign = 'right';\r\n }\r\n else if (labelPosition === 'right') {\r\n x1 = (points[1][0] + points[2][0]) / 2;\r\n y1 = (points[1][1] + points[2][1]) / 2;\r\n x2 = x1 + labelLineLen;\r\n textX = x2 + 5;\r\n textAlign = 'left';\r\n }\r\n else if (labelPosition === 'top') {\r\n x1 = (points[3][0] + points[0][0]) / 2;\r\n y1 = (points[3][1] + points[0][1]) / 2;\r\n y2 = y1 - labelLineLen;\r\n textY = y2 - 5;\r\n textAlign = 'center';\r\n }\r\n else if (labelPosition === 'bottom') {\r\n x1 = (points[1][0] + points[2][0]) / 2;\r\n y1 = (points[1][1] + points[2][1]) / 2;\r\n y2 = y1 + labelLineLen;\r\n textY = y2 + 5;\r\n textAlign = 'center';\r\n }\r\n else if (labelPosition === 'rightTop') {\r\n x1 = orient === 'horizontal' ? points[3][0] : points[1][0];\r\n y1 = orient === 'horizontal' ? points[3][1] : points[1][1];\r\n if (orient === 'horizontal') {\r\n y2 = y1 - labelLineLen;\r\n textY = y2 - 5;\r\n textAlign = 'center';\r\n }\r\n else {\r\n x2 = x1 + labelLineLen;\r\n textX = x2 + 5;\r\n textAlign = 'top';\r\n }\r\n }\r\n else if (labelPosition === 'rightBottom') {\r\n x1 = points[2][0];\r\n y1 = points[2][1];\r\n if (orient === 'horizontal') {\r\n y2 = y1 + labelLineLen;\r\n textY = y2 + 5;\r\n textAlign = 'center';\r\n }\r\n else {\r\n x2 = x1 + labelLineLen;\r\n textX = x2 + 5;\r\n textAlign = 'bottom';\r\n }\r\n }\r\n else if (labelPosition === 'leftTop') {\r\n x1 = points[0][0];\r\n y1 = orient === 'horizontal' ? points[0][1] : points[1][1];\r\n if (orient === 'horizontal') {\r\n y2 = y1 - labelLineLen;\r\n textY = y2 - 5;\r\n textAlign = 'center';\r\n }\r\n else {\r\n x2 = x1 - labelLineLen;\r\n textX = x2 - 5;\r\n textAlign = 'right';\r\n }\r\n }\r\n else if (labelPosition === 'leftBottom') {\r\n x1 = orient === 'horizontal' ? points[1][0] : points[3][0];\r\n y1 = orient === 'horizontal' ? points[1][1] : points[2][1];\r\n if (orient === 'horizontal') {\r\n y2 = y1 + labelLineLen;\r\n textY = y2 + 5;\r\n textAlign = 'center';\r\n }\r\n else {\r\n x2 = x1 - labelLineLen;\r\n textX = x2 - 5;\r\n textAlign = 'right';\r\n }\r\n }\r\n else {\r\n x1 = (points[1][0] + points[2][0]) / 2;\r\n y1 = (points[1][1] + points[2][1]) / 2;\r\n if (orient === 'horizontal') {\r\n y2 = y1 + labelLineLen;\r\n textY = y2 + 5;\r\n textAlign = 'center';\r\n }\r\n else {\r\n x2 = x1 + labelLineLen;\r\n textX = x2 + 5;\r\n textAlign = 'left';\r\n }\r\n }\r\n if (orient === 'horizontal') {\r\n x2 = x1;\r\n textX = x2;\r\n }\r\n else {\r\n y2 = y1;\r\n textY = y2;\r\n }\r\n linePoints = [[x1, y1], [x2, y2]];\r\n }\r\n layout.label = {\r\n linePoints: linePoints,\r\n x: textX,\r\n y: textY,\r\n verticalAlign: 'middle',\r\n textAlign: textAlign,\r\n inside: isLabelInside\r\n };\r\n });\r\n }\r\n function funnelLayout(ecModel, api) {\r\n ecModel.eachSeriesByType('funnel', function (seriesModel) {\r\n var data = seriesModel.getData();\r\n var valueDim = data.mapDimension('value');\r\n var sort = seriesModel.get('sort');\r\n var viewRect = getViewRect$3(seriesModel, api);\r\n var orient = seriesModel.get('orient');\r\n var viewWidth = viewRect.width;\r\n var viewHeight = viewRect.height;\r\n var indices = getSortedIndices(data, sort);\r\n var x = viewRect.x;\r\n var y = viewRect.y;\r\n var sizeExtent = orient === 'horizontal' ? [\r\n parsePercent$2(seriesModel.get('minSize'), viewHeight),\r\n parsePercent$2(seriesModel.get('maxSize'), viewHeight)\r\n ] : [\r\n parsePercent$2(seriesModel.get('minSize'), viewWidth),\r\n parsePercent$2(seriesModel.get('maxSize'), viewWidth)\r\n ];\r\n var dataExtent = data.getDataExtent(valueDim);\r\n var min = seriesModel.get('min');\r\n var max = seriesModel.get('max');\r\n if (min == null) {\r\n min = Math.min(dataExtent[0], 0);\r\n }\r\n if (max == null) {\r\n max = dataExtent[1];\r\n }\r\n var funnelAlign = seriesModel.get('funnelAlign');\r\n var gap = seriesModel.get('gap');\r\n var viewSize = orient === 'horizontal' ? viewWidth : viewHeight;\r\n var itemSize = (viewSize - gap * (data.count() - 1)) / data.count();\r\n var getLinePoints = function (idx, offset) {\r\n if (orient === 'horizontal') {\r\n var val_1 = data.get(valueDim, idx) || 0;\r\n var itemHeight = linearMap(val_1, [min, max], sizeExtent, true);\r\n var y0 = void 0;\r\n switch (funnelAlign) {\r\n case 'top':\r\n y0 = y;\r\n break;\r\n case 'center':\r\n y0 = y + (viewHeight - itemHeight) / 2;\r\n break;\r\n case 'bottom':\r\n y0 = y + (viewHeight - itemHeight);\r\n break;\r\n }\r\n return [\r\n [offset, y0],\r\n [offset, y0 + itemHeight]\r\n ];\r\n }\r\n var val = data.get(valueDim, idx) || 0;\r\n var itemWidth = linearMap(val, [min, max], sizeExtent, true);\r\n var x0;\r\n switch (funnelAlign) {\r\n case 'left':\r\n x0 = x;\r\n break;\r\n case 'center':\r\n x0 = x + (viewWidth - itemWidth) / 2;\r\n break;\r\n case 'right':\r\n x0 = x + viewWidth - itemWidth;\r\n break;\r\n }\r\n return [\r\n [x0, offset],\r\n [x0 + itemWidth, offset]\r\n ];\r\n };\r\n if (sort === 'ascending') {\r\n itemSize = -itemSize;\r\n gap = -gap;\r\n if (orient === 'horizontal') {\r\n x += viewWidth;\r\n }\r\n else {\r\n y += viewHeight;\r\n }\r\n indices = indices.reverse();\r\n }\r\n for (var i = 0; i < indices.length; i++) {\r\n var idx = indices[i];\r\n var nextIdx = indices[i + 1];\r\n var itemModel = data.getItemModel(idx);\r\n if (orient === 'horizontal') {\r\n var width = itemModel.get(['itemStyle', 'width']);\r\n if (width == null) {\r\n width = itemSize;\r\n }\r\n else {\r\n width = parsePercent$2(width, viewWidth);\r\n if (sort === 'ascending') {\r\n width = -width;\r\n }\r\n }\r\n var start = getLinePoints(idx, x);\r\n var end = getLinePoints(nextIdx, x + width);\r\n x += width + gap;\r\n data.setItemLayout(idx, {\r\n points: start.concat(end.slice().reverse())\r\n });\r\n }\r\n else {\r\n var height = itemModel.get(['itemStyle', 'height']);\r\n if (height == null) {\r\n height = itemSize;\r\n }\r\n else {\r\n height = parsePercent$2(height, viewHeight);\r\n if (sort === 'ascending') {\r\n height = -height;\r\n }\r\n }\r\n var start = getLinePoints(idx, y);\r\n var end = getLinePoints(nextIdx, y + height);\r\n y += height + gap;\r\n data.setItemLayout(idx, {\r\n points: start.concat(end.slice().reverse())\r\n });\r\n }\r\n }\r\n labelLayout(data);\r\n });\r\n }\n\n registerLayout(funnelLayout);\r\n registerProcessor(dataFilter('funnel'));\n\n function parallelPreprocessor(option) {\r\n createParallelIfNeeded(option);\r\n mergeAxisOptionFromParallel(option);\r\n }\r\n function createParallelIfNeeded(option) {\r\n if (option.parallel) {\r\n return;\r\n }\r\n var hasParallelSeries = false;\r\n each(option.series, function (seriesOpt) {\r\n if (seriesOpt && seriesOpt.type === 'parallel') {\r\n hasParallelSeries = true;\r\n }\r\n });\r\n if (hasParallelSeries) {\r\n option.parallel = [{}];\r\n }\r\n }\r\n function mergeAxisOptionFromParallel(option) {\r\n var axes = normalizeToArray(option.parallelAxis);\r\n each(axes, function (axisOption) {\r\n if (!isObject(axisOption)) {\r\n return;\r\n }\r\n var parallelIndex = axisOption.parallelIndex || 0;\r\n var parallelOption = normalizeToArray(option.parallel)[parallelIndex];\r\n if (parallelOption && parallelOption.parallelAxisDefault) {\r\n merge(axisOption, parallelOption.parallelAxisDefault, false);\r\n }\r\n });\r\n }\n\n var ParallelAxis = (function (_super) {\r\n __extends(ParallelAxis, _super);\r\n function ParallelAxis(dim, scale, coordExtent, axisType, axisIndex) {\r\n var _this = _super.call(this, dim, scale, coordExtent) || this;\r\n _this.type = axisType || 'value';\r\n _this.axisIndex = axisIndex;\r\n return _this;\r\n }\r\n ParallelAxis.prototype.isHorizontal = function () {\r\n return this.coordinateSystem.getModel().get('layout') !== 'horizontal';\r\n };\r\n return ParallelAxis;\r\n }(Axis));\n\n function sliderMove(delta, handleEnds, extent, handleIndex, minSpan, maxSpan) {\r\n delta = delta || 0;\r\n var extentSpan = extent[1] - extent[0];\r\n if (minSpan != null) {\r\n minSpan = restrict(minSpan, [0, extentSpan]);\r\n }\r\n if (maxSpan != null) {\r\n maxSpan = Math.max(maxSpan, minSpan != null ? minSpan : 0);\r\n }\r\n if (handleIndex === 'all') {\r\n var handleSpan = Math.abs(handleEnds[1] - handleEnds[0]);\r\n handleSpan = restrict(handleSpan, [0, extentSpan]);\r\n minSpan = maxSpan = restrict(handleSpan, [minSpan, maxSpan]);\r\n handleIndex = 0;\r\n }\r\n handleEnds[0] = restrict(handleEnds[0], extent);\r\n handleEnds[1] = restrict(handleEnds[1], extent);\r\n var originalDistSign = getSpanSign(handleEnds, handleIndex);\r\n handleEnds[handleIndex] += delta;\r\n var extentMinSpan = minSpan || 0;\r\n var realExtent = extent.slice();\r\n originalDistSign.sign < 0 ? (realExtent[0] += extentMinSpan) : (realExtent[1] -= extentMinSpan);\r\n handleEnds[handleIndex] = restrict(handleEnds[handleIndex], realExtent);\r\n var currDistSign;\r\n currDistSign = getSpanSign(handleEnds, handleIndex);\r\n if (minSpan != null && (currDistSign.sign !== originalDistSign.sign || currDistSign.span < minSpan)) {\r\n handleEnds[1 - handleIndex] = handleEnds[handleIndex] + originalDistSign.sign * minSpan;\r\n }\r\n currDistSign = getSpanSign(handleEnds, handleIndex);\r\n if (maxSpan != null && currDistSign.span > maxSpan) {\r\n handleEnds[1 - handleIndex] = handleEnds[handleIndex] + currDistSign.sign * maxSpan;\r\n }\r\n return handleEnds;\r\n }\r\n function getSpanSign(handleEnds, handleIndex) {\r\n var dist = handleEnds[handleIndex] - handleEnds[1 - handleIndex];\r\n return { span: Math.abs(dist), sign: dist > 0 ? -1 : dist < 0 ? 1 : handleIndex ? -1 : 1 };\r\n }\r\n function restrict(value, extend) {\r\n return Math.min(extend[1] != null ? extend[1] : Infinity, Math.max(extend[0] != null ? extend[0] : -Infinity, value));\r\n }\n\n var each$6 = each;\r\n var mathMin$8 = Math.min;\r\n var mathMax$8 = Math.max;\r\n var mathFloor$2 = Math.floor;\r\n var mathCeil$1 = Math.ceil;\r\n var round$2 = round$1;\r\n var PI$8 = Math.PI;\r\n var Parallel = (function () {\r\n function Parallel(parallelModel, ecModel, api) {\r\n this.type = 'parallel';\r\n this._axesMap = createHashMap();\r\n this._axesLayout = {};\r\n this.dimensions = parallelModel.dimensions;\r\n this._model = parallelModel;\r\n this._init(parallelModel, ecModel, api);\r\n }\r\n Parallel.prototype._init = function (parallelModel, ecModel, api) {\r\n var dimensions = parallelModel.dimensions;\r\n var parallelAxisIndex = parallelModel.parallelAxisIndex;\r\n each$6(dimensions, function (dim, idx) {\r\n var axisIndex = parallelAxisIndex[idx];\r\n var axisModel = ecModel.getComponent('parallelAxis', axisIndex);\r\n var axis = this._axesMap.set(dim, new ParallelAxis(dim, createScaleByModel(axisModel), [0, 0], axisModel.get('type'), axisIndex));\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.coordinateSystem = axisModel.coordinateSystem = this;\r\n }, this);\r\n };\r\n Parallel.prototype.update = function (ecModel, api) {\r\n this._updateAxesFromSeries(this._model, ecModel);\r\n };\r\n Parallel.prototype.containPoint = function (point) {\r\n var layoutInfo = this._makeLayoutInfo();\r\n var axisBase = layoutInfo.axisBase;\r\n var layoutBase = layoutInfo.layoutBase;\r\n var pixelDimIndex = layoutInfo.pixelDimIndex;\r\n var pAxis = point[1 - pixelDimIndex];\r\n var pLayout = point[pixelDimIndex];\r\n return pAxis >= axisBase\r\n && pAxis <= axisBase + layoutInfo.axisLength\r\n && pLayout >= layoutBase\r\n && pLayout <= layoutBase + layoutInfo.layoutLength;\r\n };\r\n Parallel.prototype.getModel = function () {\r\n return this._model;\r\n };\r\n Parallel.prototype._updateAxesFromSeries = function (parallelModel, ecModel) {\r\n ecModel.eachSeries(function (seriesModel) {\r\n if (!parallelModel.contains(seriesModel, ecModel)) {\r\n return;\r\n }\r\n var data = seriesModel.getData();\r\n each$6(this.dimensions, function (dim) {\r\n var axis = this._axesMap.get(dim);\r\n axis.scale.unionExtentFromData(data, data.mapDimension(dim));\r\n niceScaleExtent(axis.scale, axis.model);\r\n }, this);\r\n }, this);\r\n };\r\n Parallel.prototype.resize = function (parallelModel, api) {\r\n this._rect = getLayoutRect(parallelModel.getBoxLayoutParams(), {\r\n width: api.getWidth(),\r\n height: api.getHeight()\r\n });\r\n this._layoutAxes();\r\n };\r\n Parallel.prototype.getRect = function () {\r\n return this._rect;\r\n };\r\n Parallel.prototype._makeLayoutInfo = function () {\r\n var parallelModel = this._model;\r\n var rect = this._rect;\r\n var xy = ['x', 'y'];\r\n var wh = ['width', 'height'];\r\n var layout = parallelModel.get('layout');\r\n var pixelDimIndex = layout === 'horizontal' ? 0 : 1;\r\n var layoutLength = rect[wh[pixelDimIndex]];\r\n var layoutExtent = [0, layoutLength];\r\n var axisCount = this.dimensions.length;\r\n var axisExpandWidth = restrict$1(parallelModel.get('axisExpandWidth'), layoutExtent);\r\n var axisExpandCount = restrict$1(parallelModel.get('axisExpandCount') || 0, [0, axisCount]);\r\n var axisExpandable = parallelModel.get('axisExpandable')\r\n && axisCount > 3\r\n && axisCount > axisExpandCount\r\n && axisExpandCount > 1\r\n && axisExpandWidth > 0\r\n && layoutLength > 0;\r\n var axisExpandWindow = parallelModel.get('axisExpandWindow');\r\n var winSize;\r\n if (!axisExpandWindow) {\r\n winSize = restrict$1(axisExpandWidth * (axisExpandCount - 1), layoutExtent);\r\n var axisExpandCenter = parallelModel.get('axisExpandCenter') || mathFloor$2(axisCount / 2);\r\n axisExpandWindow = [axisExpandWidth * axisExpandCenter - winSize / 2];\r\n axisExpandWindow[1] = axisExpandWindow[0] + winSize;\r\n }\r\n else {\r\n winSize = restrict$1(axisExpandWindow[1] - axisExpandWindow[0], layoutExtent);\r\n axisExpandWindow[1] = axisExpandWindow[0] + winSize;\r\n }\r\n var axisCollapseWidth = (layoutLength - winSize) / (axisCount - axisExpandCount);\r\n axisCollapseWidth < 3 && (axisCollapseWidth = 0);\r\n var winInnerIndices = [\r\n mathFloor$2(round$2(axisExpandWindow[0] / axisExpandWidth, 1)) + 1,\r\n mathCeil$1(round$2(axisExpandWindow[1] / axisExpandWidth, 1)) - 1\r\n ];\r\n var axisExpandWindow0Pos = axisCollapseWidth / axisExpandWidth * axisExpandWindow[0];\r\n return {\r\n layout: layout,\r\n pixelDimIndex: pixelDimIndex,\r\n layoutBase: rect[xy[pixelDimIndex]],\r\n layoutLength: layoutLength,\r\n axisBase: rect[xy[1 - pixelDimIndex]],\r\n axisLength: rect[wh[1 - pixelDimIndex]],\r\n axisExpandable: axisExpandable,\r\n axisExpandWidth: axisExpandWidth,\r\n axisCollapseWidth: axisCollapseWidth,\r\n axisExpandWindow: axisExpandWindow,\r\n axisCount: axisCount,\r\n winInnerIndices: winInnerIndices,\r\n axisExpandWindow0Pos: axisExpandWindow0Pos\r\n };\r\n };\r\n Parallel.prototype._layoutAxes = function () {\r\n var rect = this._rect;\r\n var axes = this._axesMap;\r\n var dimensions = this.dimensions;\r\n var layoutInfo = this._makeLayoutInfo();\r\n var layout = layoutInfo.layout;\r\n axes.each(function (axis) {\r\n var axisExtent = [0, layoutInfo.axisLength];\r\n var idx = axis.inverse ? 1 : 0;\r\n axis.setExtent(axisExtent[idx], axisExtent[1 - idx]);\r\n });\r\n each$6(dimensions, function (dim, idx) {\r\n var posInfo = (layoutInfo.axisExpandable\r\n ? layoutAxisWithExpand : layoutAxisWithoutExpand)(idx, layoutInfo);\r\n var positionTable = {\r\n horizontal: {\r\n x: posInfo.position,\r\n y: layoutInfo.axisLength\r\n },\r\n vertical: {\r\n x: 0,\r\n y: posInfo.position\r\n }\r\n };\r\n var rotationTable = {\r\n horizontal: PI$8 / 2,\r\n vertical: 0\r\n };\r\n var position = [\r\n positionTable[layout].x + rect.x,\r\n positionTable[layout].y + rect.y\r\n ];\r\n var rotation = rotationTable[layout];\r\n var transform = create$1();\r\n rotate(transform, transform, rotation);\r\n translate(transform, transform, position);\r\n this._axesLayout[dim] = {\r\n position: position,\r\n rotation: rotation,\r\n transform: transform,\r\n axisNameAvailableWidth: posInfo.axisNameAvailableWidth,\r\n axisLabelShow: posInfo.axisLabelShow,\r\n nameTruncateMaxWidth: posInfo.nameTruncateMaxWidth,\r\n tickDirection: 1,\r\n labelDirection: 1\r\n };\r\n }, this);\r\n };\r\n Parallel.prototype.getAxis = function (dim) {\r\n return this._axesMap.get(dim);\r\n };\r\n Parallel.prototype.dataToPoint = function (value, dim) {\r\n return this.axisCoordToPoint(this._axesMap.get(dim).dataToCoord(value), dim);\r\n };\r\n Parallel.prototype.eachActiveState = function (data, callback, start, end) {\r\n start == null && (start = 0);\r\n end == null && (end = data.count());\r\n var axesMap = this._axesMap;\r\n var dimensions = this.dimensions;\r\n var dataDimensions = [];\r\n var axisModels = [];\r\n each(dimensions, function (axisDim) {\r\n dataDimensions.push(data.mapDimension(axisDim));\r\n axisModels.push(axesMap.get(axisDim).model);\r\n });\r\n var hasActiveSet = this.hasAxisBrushed();\r\n for (var dataIndex = start; dataIndex < end; dataIndex++) {\r\n var activeState = void 0;\r\n if (!hasActiveSet) {\r\n activeState = 'normal';\r\n }\r\n else {\r\n activeState = 'active';\r\n var values = data.getValues(dataDimensions, dataIndex);\r\n for (var j = 0, lenj = dimensions.length; j < lenj; j++) {\r\n var state = axisModels[j].getActiveState(values[j]);\r\n if (state === 'inactive') {\r\n activeState = 'inactive';\r\n break;\r\n }\r\n }\r\n }\r\n callback(activeState, dataIndex);\r\n }\r\n };\r\n Parallel.prototype.hasAxisBrushed = function () {\r\n var dimensions = this.dimensions;\r\n var axesMap = this._axesMap;\r\n var hasActiveSet = false;\r\n for (var j = 0, lenj = dimensions.length; j < lenj; j++) {\r\n if (axesMap.get(dimensions[j]).model.getActiveState() !== 'normal') {\r\n hasActiveSet = true;\r\n }\r\n }\r\n return hasActiveSet;\r\n };\r\n Parallel.prototype.axisCoordToPoint = function (coord, dim) {\r\n var axisLayout = this._axesLayout[dim];\r\n return applyTransform$1([coord, 0], axisLayout.transform);\r\n };\r\n Parallel.prototype.getAxisLayout = function (dim) {\r\n return clone(this._axesLayout[dim]);\r\n };\r\n Parallel.prototype.getSlidedAxisExpandWindow = function (point) {\r\n var layoutInfo = this._makeLayoutInfo();\r\n var pixelDimIndex = layoutInfo.pixelDimIndex;\r\n var axisExpandWindow = layoutInfo.axisExpandWindow.slice();\r\n var winSize = axisExpandWindow[1] - axisExpandWindow[0];\r\n var extent = [0, layoutInfo.axisExpandWidth * (layoutInfo.axisCount - 1)];\r\n if (!this.containPoint(point)) {\r\n return { behavior: 'none', axisExpandWindow: axisExpandWindow };\r\n }\r\n var pointCoord = point[pixelDimIndex] - layoutInfo.layoutBase - layoutInfo.axisExpandWindow0Pos;\r\n var delta;\r\n var behavior = 'slide';\r\n var axisCollapseWidth = layoutInfo.axisCollapseWidth;\r\n var triggerArea = this._model.get('axisExpandSlideTriggerArea');\r\n var useJump = triggerArea[0] != null;\r\n if (axisCollapseWidth) {\r\n if (useJump && axisCollapseWidth && pointCoord < winSize * triggerArea[0]) {\r\n behavior = 'jump';\r\n delta = pointCoord - winSize * triggerArea[2];\r\n }\r\n else if (useJump && axisCollapseWidth && pointCoord > winSize * (1 - triggerArea[0])) {\r\n behavior = 'jump';\r\n delta = pointCoord - winSize * (1 - triggerArea[2]);\r\n }\r\n else {\r\n (delta = pointCoord - winSize * triggerArea[1]) >= 0\r\n && (delta = pointCoord - winSize * (1 - triggerArea[1])) <= 0\r\n && (delta = 0);\r\n }\r\n delta *= layoutInfo.axisExpandWidth / axisCollapseWidth;\r\n delta\r\n ? sliderMove(delta, axisExpandWindow, extent, 'all')\r\n : (behavior = 'none');\r\n }\r\n else {\r\n var winSize2 = axisExpandWindow[1] - axisExpandWindow[0];\r\n var pos = extent[1] * pointCoord / winSize2;\r\n axisExpandWindow = [mathMax$8(0, pos - winSize2 / 2)];\r\n axisExpandWindow[1] = mathMin$8(extent[1], axisExpandWindow[0] + winSize2);\r\n axisExpandWindow[0] = axisExpandWindow[1] - winSize2;\r\n }\r\n return {\r\n axisExpandWindow: axisExpandWindow,\r\n behavior: behavior\r\n };\r\n };\r\n return Parallel;\r\n }());\r\n function restrict$1(len, extent) {\r\n return mathMin$8(mathMax$8(len, extent[0]), extent[1]);\r\n }\r\n function layoutAxisWithoutExpand(axisIndex, layoutInfo) {\r\n var step = layoutInfo.layoutLength / (layoutInfo.axisCount - 1);\r\n return {\r\n position: step * axisIndex,\r\n axisNameAvailableWidth: step,\r\n axisLabelShow: true\r\n };\r\n }\r\n function layoutAxisWithExpand(axisIndex, layoutInfo) {\r\n var layoutLength = layoutInfo.layoutLength;\r\n var axisExpandWidth = layoutInfo.axisExpandWidth;\r\n var axisCount = layoutInfo.axisCount;\r\n var axisCollapseWidth = layoutInfo.axisCollapseWidth;\r\n var winInnerIndices = layoutInfo.winInnerIndices;\r\n var position;\r\n var axisNameAvailableWidth = axisCollapseWidth;\r\n var axisLabelShow = false;\r\n var nameTruncateMaxWidth;\r\n if (axisIndex < winInnerIndices[0]) {\r\n position = axisIndex * axisCollapseWidth;\r\n nameTruncateMaxWidth = axisCollapseWidth;\r\n }\r\n else if (axisIndex <= winInnerIndices[1]) {\r\n position = layoutInfo.axisExpandWindow0Pos\r\n + axisIndex * axisExpandWidth - layoutInfo.axisExpandWindow[0];\r\n axisNameAvailableWidth = axisExpandWidth;\r\n axisLabelShow = true;\r\n }\r\n else {\r\n position = layoutLength - (axisCount - 1 - axisIndex) * axisCollapseWidth;\r\n nameTruncateMaxWidth = axisCollapseWidth;\r\n }\r\n return {\r\n position: position,\r\n axisNameAvailableWidth: axisNameAvailableWidth,\r\n axisLabelShow: axisLabelShow,\r\n nameTruncateMaxWidth: nameTruncateMaxWidth\r\n };\r\n }\n\n function create$2(ecModel, api) {\r\n var coordSysList = [];\r\n ecModel.eachComponent('parallel', function (parallelModel, idx) {\r\n var coordSys = new Parallel(parallelModel, ecModel, api);\r\n coordSys.name = 'parallel_' + idx;\r\n coordSys.resize(parallelModel, api);\r\n parallelModel.coordinateSystem = coordSys;\r\n coordSys.model = parallelModel;\r\n coordSysList.push(coordSys);\r\n });\r\n ecModel.eachSeries(function (seriesModel) {\r\n if (seriesModel.get('coordinateSystem') === 'parallel') {\r\n var parallelModel = seriesModel.getReferringComponents('parallel', SINGLE_REFERRING).models[0];\r\n seriesModel.coordinateSystem = parallelModel.coordinateSystem;\r\n }\r\n });\r\n return coordSysList;\r\n }\r\n CoordinateSystemManager.register('parallel', { create: create$2 });\n\n var ParallelAxisModel = (function (_super) {\r\n __extends(ParallelAxisModel, _super);\r\n function ParallelAxisModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = ParallelAxisModel.type;\r\n _this.activeIntervals = [];\r\n return _this;\r\n }\r\n ParallelAxisModel.prototype.getAreaSelectStyle = function () {\r\n return makeStyleMapper([\r\n ['fill', 'color'],\r\n ['lineWidth', 'borderWidth'],\r\n ['stroke', 'borderColor'],\r\n ['width', 'width'],\r\n ['opacity', 'opacity']\r\n ])(this.getModel('areaSelectStyle'));\r\n };\r\n ParallelAxisModel.prototype.setActiveIntervals = function (intervals) {\r\n var activeIntervals = this.activeIntervals = clone(intervals);\r\n if (activeIntervals) {\r\n for (var i = activeIntervals.length - 1; i >= 0; i--) {\r\n asc(activeIntervals[i]);\r\n }\r\n }\r\n };\r\n ParallelAxisModel.prototype.getActiveState = function (value) {\r\n var activeIntervals = this.activeIntervals;\r\n if (!activeIntervals.length) {\r\n return 'normal';\r\n }\r\n if (value == null || isNaN(+value)) {\r\n return 'inactive';\r\n }\r\n if (activeIntervals.length === 1) {\r\n var interval = activeIntervals[0];\r\n if (interval[0] <= value && value <= interval[1]) {\r\n return 'active';\r\n }\r\n }\r\n else {\r\n for (var i = 0, len = activeIntervals.length; i < len; i++) {\r\n if (activeIntervals[i][0] <= value && value <= activeIntervals[i][1]) {\r\n return 'active';\r\n }\r\n }\r\n }\r\n return 'inactive';\r\n };\r\n return ParallelAxisModel;\r\n }(ComponentModel));\r\n var defaultOption$1 = {\r\n type: 'value',\r\n areaSelectStyle: {\r\n width: 20,\r\n borderWidth: 1,\r\n borderColor: 'rgba(160,197,232)',\r\n color: 'rgba(160,197,232)',\r\n opacity: 0.3\r\n },\r\n realtime: true,\r\n z: 10\r\n };\r\n ComponentModel.registerClass(ParallelAxisModel);\r\n mixin(ParallelAxisModel, AxisModelCommonMixin);\r\n axisModelCreator('parallel', ParallelAxisModel, defaultOption$1);\n\n var ParallelModel = (function (_super) {\r\n __extends(ParallelModel, _super);\r\n function ParallelModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = ParallelModel.type;\r\n return _this;\r\n }\r\n ParallelModel.prototype.init = function () {\r\n _super.prototype.init.apply(this, arguments);\r\n this.mergeOption({});\r\n };\r\n ParallelModel.prototype.mergeOption = function (newOption) {\r\n var thisOption = this.option;\r\n newOption && merge(thisOption, newOption, true);\r\n this._initDimensions();\r\n };\r\n ParallelModel.prototype.contains = function (model, ecModel) {\r\n var parallelIndex = model.get('parallelIndex');\r\n return parallelIndex != null\r\n && ecModel.getComponent('parallel', parallelIndex) === this;\r\n };\r\n ParallelModel.prototype.setAxisExpand = function (opt) {\r\n each([\r\n 'axisExpandable',\r\n 'axisExpandCenter',\r\n 'axisExpandCount',\r\n 'axisExpandWidth',\r\n 'axisExpandWindow'\r\n ], function (name) {\r\n if (opt.hasOwnProperty(name)) {\r\n this.option[name] = opt[name];\r\n }\r\n }, this);\r\n };\r\n ParallelModel.prototype._initDimensions = function () {\r\n var dimensions = this.dimensions = [];\r\n var parallelAxisIndex = this.parallelAxisIndex = [];\r\n var axisModels = filter(this.ecModel.queryComponents({ mainType: 'parallelAxis' }), function (axisModel) {\r\n return (axisModel.get('parallelIndex') || 0) === this.componentIndex;\r\n }, this);\r\n each(axisModels, function (axisModel) {\r\n dimensions.push('dim' + axisModel.get('dim'));\r\n parallelAxisIndex.push(axisModel.componentIndex);\r\n });\r\n };\r\n ParallelModel.type = 'parallel';\r\n ParallelModel.dependencies = ['parallelAxis'];\r\n ParallelModel.layoutMode = 'box';\r\n ParallelModel.defaultOption = {\r\n zlevel: 0,\r\n z: 0,\r\n left: 80,\r\n top: 60,\r\n right: 80,\r\n bottom: 60,\r\n layout: 'horizontal',\r\n axisExpandable: false,\r\n axisExpandCenter: null,\r\n axisExpandCount: 0,\r\n axisExpandWidth: 50,\r\n axisExpandRate: 17,\r\n axisExpandDebounce: 50,\r\n axisExpandSlideTriggerArea: [-0.15, 0.05, 0.4],\r\n axisExpandTriggerOn: 'click',\r\n parallelAxisDefault: null\r\n };\r\n return ParallelModel;\r\n }(ComponentModel));\r\n ComponentModel.registerClass(ParallelModel);\n\n var actionInfo$1 = {\r\n type: 'axisAreaSelect',\r\n event: 'axisAreaSelected'\r\n };\r\n registerAction(actionInfo$1, function (payload, ecModel) {\r\n ecModel.eachComponent({ mainType: 'parallelAxis', query: payload }, function (parallelAxisModel) {\r\n parallelAxisModel.axis.model.setActiveIntervals(payload.intervals);\r\n });\r\n });\r\n registerAction('parallelAxisExpand', function (payload, ecModel) {\r\n ecModel.eachComponent({ mainType: 'parallel', query: payload }, function (parallelModel) {\r\n parallelModel.setAxisExpand(payload);\r\n });\r\n });\n\n var BRUSH_PANEL_GLOBAL = true;\r\n var mathMin$9 = Math.min;\r\n var mathMax$9 = Math.max;\r\n var mathPow$2 = Math.pow;\r\n var COVER_Z = 10000;\r\n var UNSELECT_THRESHOLD = 6;\r\n var MIN_RESIZE_LINE_WIDTH = 6;\r\n var MUTEX_RESOURCE_KEY = 'globalPan';\r\n var DIRECTION_MAP = {\r\n w: [0, 0],\r\n e: [0, 1],\r\n n: [1, 0],\r\n s: [1, 1]\r\n };\r\n var CURSOR_MAP = {\r\n w: 'ew',\r\n e: 'ew',\r\n n: 'ns',\r\n s: 'ns',\r\n ne: 'nesw',\r\n sw: 'nesw',\r\n nw: 'nwse',\r\n se: 'nwse'\r\n };\r\n var DEFAULT_BRUSH_OPT = {\r\n brushStyle: {\r\n lineWidth: 2,\r\n stroke: 'rgba(210,219,238,0.3)',\r\n fill: '#D2DBEE'\r\n },\r\n transformable: true,\r\n brushMode: 'single',\r\n removeOnClick: false\r\n };\r\n var baseUID = 0;\r\n var BrushController = (function (_super) {\r\n __extends(BrushController, _super);\r\n function BrushController(zr) {\r\n var _this = _super.call(this) || this;\r\n _this._track = [];\r\n _this._covers = [];\r\n _this._handlers = {};\r\n if (__DEV__) {\r\n assert(zr);\r\n }\r\n _this._zr = zr;\r\n _this.group = new Group();\r\n _this._uid = 'brushController_' + baseUID++;\r\n each(pointerHandlers, function (handler, eventName) {\r\n this._handlers[eventName] = bind(handler, this);\r\n }, _this);\r\n return _this;\r\n }\r\n BrushController.prototype.enableBrush = function (brushOption) {\r\n if (__DEV__) {\r\n assert(this._mounted);\r\n }\r\n this._brushType && this._doDisableBrush();\r\n brushOption.brushType && this._doEnableBrush(brushOption);\r\n return this;\r\n };\r\n BrushController.prototype._doEnableBrush = function (brushOption) {\r\n var zr = this._zr;\r\n if (!this._enableGlobalPan) {\r\n take(zr, MUTEX_RESOURCE_KEY, this._uid);\r\n }\r\n each(this._handlers, function (handler, eventName) {\r\n zr.on(eventName, handler);\r\n });\r\n this._brushType = brushOption.brushType;\r\n this._brushOption = merge(clone(DEFAULT_BRUSH_OPT), brushOption, true);\r\n };\r\n BrushController.prototype._doDisableBrush = function () {\r\n var zr = this._zr;\r\n release(zr, MUTEX_RESOURCE_KEY, this._uid);\r\n each(this._handlers, function (handler, eventName) {\r\n zr.off(eventName, handler);\r\n });\r\n this._brushType = this._brushOption = null;\r\n };\r\n BrushController.prototype.setPanels = function (panelOpts) {\r\n if (panelOpts && panelOpts.length) {\r\n var panels_1 = this._panels = {};\r\n each(panelOpts, function (panelOpts) {\r\n panels_1[panelOpts.panelId] = clone(panelOpts);\r\n });\r\n }\r\n else {\r\n this._panels = null;\r\n }\r\n return this;\r\n };\r\n BrushController.prototype.mount = function (opt) {\r\n opt = opt || {};\r\n if (__DEV__) {\r\n this._mounted = true;\r\n }\r\n this._enableGlobalPan = opt.enableGlobalPan;\r\n var thisGroup = this.group;\r\n this._zr.add(thisGroup);\r\n thisGroup.attr({\r\n x: opt.x || 0,\r\n y: opt.y || 0,\r\n rotation: opt.rotation || 0,\r\n scaleX: opt.scaleX || 1,\r\n scaleY: opt.scaleY || 1\r\n });\r\n this._transform = thisGroup.getLocalTransform();\r\n return this;\r\n };\r\n BrushController.prototype.updateCovers = function (coverConfigList) {\r\n if (__DEV__) {\r\n assert(this._mounted);\r\n }\r\n coverConfigList = map(coverConfigList, function (coverConfig) {\r\n return merge(clone(DEFAULT_BRUSH_OPT), coverConfig, true);\r\n });\r\n var tmpIdPrefix = '\\0-brush-index-';\r\n var oldCovers = this._covers;\r\n var newCovers = this._covers = [];\r\n var controller = this;\r\n var creatingCover = this._creatingCover;\r\n (new DataDiffer(oldCovers, coverConfigList, oldGetKey, getKey))\r\n .add(addOrUpdate)\r\n .update(addOrUpdate)\r\n .remove(remove)\r\n .execute();\r\n return this;\r\n function getKey(brushOption, index) {\r\n return (brushOption.id != null ? brushOption.id : tmpIdPrefix + index)\r\n + '-' + brushOption.brushType;\r\n }\r\n function oldGetKey(cover, index) {\r\n return getKey(cover.__brushOption, index);\r\n }\r\n function addOrUpdate(newIndex, oldIndex) {\r\n var newBrushInternal = coverConfigList[newIndex];\r\n if (oldIndex != null && oldCovers[oldIndex] === creatingCover) {\r\n newCovers[newIndex] = oldCovers[oldIndex];\r\n }\r\n else {\r\n var cover = newCovers[newIndex] = oldIndex != null\r\n ? (oldCovers[oldIndex].__brushOption = newBrushInternal,\r\n oldCovers[oldIndex])\r\n : endCreating(controller, createCover(controller, newBrushInternal));\r\n updateCoverAfterCreation(controller, cover);\r\n }\r\n }\r\n function remove(oldIndex) {\r\n if (oldCovers[oldIndex] !== creatingCover) {\r\n controller.group.remove(oldCovers[oldIndex]);\r\n }\r\n }\r\n };\r\n BrushController.prototype.unmount = function () {\r\n if (__DEV__) {\r\n if (!this._mounted) {\r\n return;\r\n }\r\n }\r\n this.enableBrush(false);\r\n clearCovers(this);\r\n this._zr.remove(this.group);\r\n if (__DEV__) {\r\n this._mounted = false;\r\n }\r\n return this;\r\n };\r\n BrushController.prototype.dispose = function () {\r\n this.unmount();\r\n this.off();\r\n };\r\n return BrushController;\r\n }(Eventful));\r\n function createCover(controller, brushOption) {\r\n var cover = coverRenderers[brushOption.brushType].createCover(controller, brushOption);\r\n cover.__brushOption = brushOption;\r\n updateZ(cover, brushOption);\r\n controller.group.add(cover);\r\n return cover;\r\n }\r\n function endCreating(controller, creatingCover) {\r\n var coverRenderer = getCoverRenderer(creatingCover);\r\n if (coverRenderer.endCreating) {\r\n coverRenderer.endCreating(controller, creatingCover);\r\n updateZ(creatingCover, creatingCover.__brushOption);\r\n }\r\n return creatingCover;\r\n }\r\n function updateCoverShape(controller, cover) {\r\n var brushOption = cover.__brushOption;\r\n getCoverRenderer(cover).updateCoverShape(controller, cover, brushOption.range, brushOption);\r\n }\r\n function updateZ(cover, brushOption) {\r\n var z = brushOption.z;\r\n z == null && (z = COVER_Z);\r\n cover.traverse(function (el) {\r\n el.z = z;\r\n el.z2 = z;\r\n });\r\n }\r\n function updateCoverAfterCreation(controller, cover) {\r\n getCoverRenderer(cover).updateCommon(controller, cover);\r\n updateCoverShape(controller, cover);\r\n }\r\n function getCoverRenderer(cover) {\r\n return coverRenderers[cover.__brushOption.brushType];\r\n }\r\n function getPanelByPoint(controller, e, localCursorPoint) {\r\n var panels = controller._panels;\r\n if (!panels) {\r\n return BRUSH_PANEL_GLOBAL;\r\n }\r\n var panel;\r\n var transform = controller._transform;\r\n each(panels, function (pn) {\r\n pn.isTargetByCursor(e, localCursorPoint, transform) && (panel = pn);\r\n });\r\n return panel;\r\n }\r\n function getPanelByCover(controller, cover) {\r\n var panels = controller._panels;\r\n if (!panels) {\r\n return BRUSH_PANEL_GLOBAL;\r\n }\r\n var panelId = cover.__brushOption.panelId;\r\n return panelId != null ? panels[panelId] : BRUSH_PANEL_GLOBAL;\r\n }\r\n function clearCovers(controller) {\r\n var covers = controller._covers;\r\n var originalLength = covers.length;\r\n each(covers, function (cover) {\r\n controller.group.remove(cover);\r\n }, controller);\r\n covers.length = 0;\r\n return !!originalLength;\r\n }\r\n function trigger$1(controller, opt) {\r\n var areas = map(controller._covers, function (cover) {\r\n var brushOption = cover.__brushOption;\r\n var range = clone(brushOption.range);\r\n return {\r\n brushType: brushOption.brushType,\r\n panelId: brushOption.panelId,\r\n range: range\r\n };\r\n });\r\n controller.trigger('brush', {\r\n areas: areas,\r\n isEnd: !!opt.isEnd,\r\n removeOnClick: !!opt.removeOnClick\r\n });\r\n }\r\n function shouldShowCover(controller) {\r\n var track = controller._track;\r\n if (!track.length) {\r\n return false;\r\n }\r\n var p2 = track[track.length - 1];\r\n var p1 = track[0];\r\n var dx = p2[0] - p1[0];\r\n var dy = p2[1] - p1[1];\r\n var dist = mathPow$2(dx * dx + dy * dy, 0.5);\r\n return dist > UNSELECT_THRESHOLD;\r\n }\r\n function getTrackEnds(track) {\r\n var tail = track.length - 1;\r\n tail < 0 && (tail = 0);\r\n return [track[0], track[tail]];\r\n }\r\n function createBaseRectCover(rectRangeConverter, controller, brushOption, edgeNameSequences) {\r\n var cover = new Group();\r\n cover.add(new Rect({\r\n name: 'main',\r\n style: makeStyle(brushOption),\r\n silent: true,\r\n draggable: true,\r\n cursor: 'move',\r\n drift: curry(driftRect, rectRangeConverter, controller, cover, ['n', 's', 'w', 'e']),\r\n ondragend: curry(trigger$1, controller, { isEnd: true })\r\n }));\r\n each(edgeNameSequences, function (nameSequence) {\r\n cover.add(new Rect({\r\n name: nameSequence.join(''),\r\n style: { opacity: 0 },\r\n draggable: true,\r\n silent: true,\r\n invisible: true,\r\n drift: curry(driftRect, rectRangeConverter, controller, cover, nameSequence),\r\n ondragend: curry(trigger$1, controller, { isEnd: true })\r\n }));\r\n });\r\n return cover;\r\n }\r\n function updateBaseRect(controller, cover, localRange, brushOption) {\r\n var lineWidth = brushOption.brushStyle.lineWidth || 0;\r\n var handleSize = mathMax$9(lineWidth, MIN_RESIZE_LINE_WIDTH);\r\n var x = localRange[0][0];\r\n var y = localRange[1][0];\r\n var xa = x - lineWidth / 2;\r\n var ya = y - lineWidth / 2;\r\n var x2 = localRange[0][1];\r\n var y2 = localRange[1][1];\r\n var x2a = x2 - handleSize + lineWidth / 2;\r\n var y2a = y2 - handleSize + lineWidth / 2;\r\n var width = x2 - x;\r\n var height = y2 - y;\r\n var widtha = width + lineWidth;\r\n var heighta = height + lineWidth;\r\n updateRectShape(controller, cover, 'main', x, y, width, height);\r\n if (brushOption.transformable) {\r\n updateRectShape(controller, cover, 'w', xa, ya, handleSize, heighta);\r\n updateRectShape(controller, cover, 'e', x2a, ya, handleSize, heighta);\r\n updateRectShape(controller, cover, 'n', xa, ya, widtha, handleSize);\r\n updateRectShape(controller, cover, 's', xa, y2a, widtha, handleSize);\r\n updateRectShape(controller, cover, 'nw', xa, ya, handleSize, handleSize);\r\n updateRectShape(controller, cover, 'ne', x2a, ya, handleSize, handleSize);\r\n updateRectShape(controller, cover, 'sw', xa, y2a, handleSize, handleSize);\r\n updateRectShape(controller, cover, 'se', x2a, y2a, handleSize, handleSize);\r\n }\r\n }\r\n function updateCommon(controller, cover) {\r\n var brushOption = cover.__brushOption;\r\n var transformable = brushOption.transformable;\r\n var mainEl = cover.childAt(0);\r\n mainEl.useStyle(makeStyle(brushOption));\r\n mainEl.attr({\r\n silent: !transformable,\r\n cursor: transformable ? 'move' : 'default'\r\n });\r\n each([['w'], ['e'], ['n'], ['s'], ['s', 'e'], ['s', 'w'], ['n', 'e'], ['n', 'w']], function (nameSequence) {\r\n var el = cover.childOfName(nameSequence.join(''));\r\n var globalDir = nameSequence.length === 1\r\n ? getGlobalDirection1(controller, nameSequence[0])\r\n : getGlobalDirection2(controller, nameSequence);\r\n el && el.attr({\r\n silent: !transformable,\r\n invisible: !transformable,\r\n cursor: transformable ? CURSOR_MAP[globalDir] + '-resize' : null\r\n });\r\n });\r\n }\r\n function updateRectShape(controller, cover, name, x, y, w, h) {\r\n var el = cover.childOfName(name);\r\n el && el.setShape(pointsToRect(clipByPanel(controller, cover, [[x, y], [x + w, y + h]])));\r\n }\r\n function makeStyle(brushOption) {\r\n return defaults({ strokeNoScale: true }, brushOption.brushStyle);\r\n }\r\n function formatRectRange(x, y, x2, y2) {\r\n var min = [mathMin$9(x, x2), mathMin$9(y, y2)];\r\n var max = [mathMax$9(x, x2), mathMax$9(y, y2)];\r\n return [\r\n [min[0], max[0]],\r\n [min[1], max[1]]\r\n ];\r\n }\r\n function getTransform$1(controller) {\r\n return getTransform(controller.group);\r\n }\r\n function getGlobalDirection1(controller, localDirName) {\r\n var map = { w: 'left', e: 'right', n: 'top', s: 'bottom' };\r\n var inverseMap = { left: 'w', right: 'e', top: 'n', bottom: 's' };\r\n var dir = transformDirection(map[localDirName], getTransform$1(controller));\r\n return inverseMap[dir];\r\n }\r\n function getGlobalDirection2(controller, localDirNameSeq) {\r\n var globalDir = [\r\n getGlobalDirection1(controller, localDirNameSeq[0]),\r\n getGlobalDirection1(controller, localDirNameSeq[1])\r\n ];\r\n (globalDir[0] === 'e' || globalDir[0] === 'w') && globalDir.reverse();\r\n return globalDir.join('');\r\n }\r\n function driftRect(rectRangeConverter, controller, cover, dirNameSequence, dx, dy) {\r\n var brushOption = cover.__brushOption;\r\n var rectRange = rectRangeConverter.toRectRange(brushOption.range);\r\n var localDelta = toLocalDelta(controller, dx, dy);\r\n each(dirNameSequence, function (dirName) {\r\n var ind = DIRECTION_MAP[dirName];\r\n rectRange[ind[0]][ind[1]] += localDelta[ind[0]];\r\n });\r\n brushOption.range = rectRangeConverter.fromRectRange(formatRectRange(rectRange[0][0], rectRange[1][0], rectRange[0][1], rectRange[1][1]));\r\n updateCoverAfterCreation(controller, cover);\r\n trigger$1(controller, { isEnd: false });\r\n }\r\n function driftPolygon(controller, cover, dx, dy) {\r\n var range = cover.__brushOption.range;\r\n var localDelta = toLocalDelta(controller, dx, dy);\r\n each(range, function (point) {\r\n point[0] += localDelta[0];\r\n point[1] += localDelta[1];\r\n });\r\n updateCoverAfterCreation(controller, cover);\r\n trigger$1(controller, { isEnd: false });\r\n }\r\n function toLocalDelta(controller, dx, dy) {\r\n var thisGroup = controller.group;\r\n var localD = thisGroup.transformCoordToLocal(dx, dy);\r\n var localZero = thisGroup.transformCoordToLocal(0, 0);\r\n return [localD[0] - localZero[0], localD[1] - localZero[1]];\r\n }\r\n function clipByPanel(controller, cover, data) {\r\n var panel = getPanelByCover(controller, cover);\r\n return (panel && panel !== BRUSH_PANEL_GLOBAL)\r\n ? panel.clipPath(data, controller._transform)\r\n : clone(data);\r\n }\r\n function pointsToRect(points) {\r\n var xmin = mathMin$9(points[0][0], points[1][0]);\r\n var ymin = mathMin$9(points[0][1], points[1][1]);\r\n var xmax = mathMax$9(points[0][0], points[1][0]);\r\n var ymax = mathMax$9(points[0][1], points[1][1]);\r\n return {\r\n x: xmin,\r\n y: ymin,\r\n width: xmax - xmin,\r\n height: ymax - ymin\r\n };\r\n }\r\n function resetCursor(controller, e, localCursorPoint) {\r\n if (!controller._brushType\r\n || isOutsideZrArea(controller, e.offsetX, e.offsetY)) {\r\n return;\r\n }\r\n var zr = controller._zr;\r\n var covers = controller._covers;\r\n var currPanel = getPanelByPoint(controller, e, localCursorPoint);\r\n if (!controller._dragging) {\r\n for (var i = 0; i < covers.length; i++) {\r\n var brushOption = covers[i].__brushOption;\r\n if (currPanel\r\n && (currPanel === BRUSH_PANEL_GLOBAL || brushOption.panelId === currPanel.panelId)\r\n && coverRenderers[brushOption.brushType].contain(covers[i], localCursorPoint[0], localCursorPoint[1])) {\r\n return;\r\n }\r\n }\r\n }\r\n currPanel && zr.setCursorStyle('crosshair');\r\n }\r\n function preventDefault(e) {\r\n var rawE = e.event;\r\n rawE.preventDefault && rawE.preventDefault();\r\n }\r\n function mainShapeContain(cover, x, y) {\r\n return cover.childOfName('main').contain(x, y);\r\n }\r\n function updateCoverByMouse(controller, e, localCursorPoint, isEnd) {\r\n var creatingCover = controller._creatingCover;\r\n var panel = controller._creatingPanel;\r\n var thisBrushOption = controller._brushOption;\r\n var eventParams;\r\n controller._track.push(localCursorPoint.slice());\r\n if (shouldShowCover(controller) || creatingCover) {\r\n if (panel && !creatingCover) {\r\n thisBrushOption.brushMode === 'single' && clearCovers(controller);\r\n var brushOption = clone(thisBrushOption);\r\n brushOption.brushType = determineBrushType(brushOption.brushType, panel);\r\n brushOption.panelId = panel === BRUSH_PANEL_GLOBAL ? null : panel.panelId;\r\n creatingCover = controller._creatingCover = createCover(controller, brushOption);\r\n controller._covers.push(creatingCover);\r\n }\r\n if (creatingCover) {\r\n var coverRenderer = coverRenderers[determineBrushType(controller._brushType, panel)];\r\n var coverBrushOption = creatingCover.__brushOption;\r\n coverBrushOption.range = coverRenderer.getCreatingRange(clipByPanel(controller, creatingCover, controller._track));\r\n if (isEnd) {\r\n endCreating(controller, creatingCover);\r\n coverRenderer.updateCommon(controller, creatingCover);\r\n }\r\n updateCoverShape(controller, creatingCover);\r\n eventParams = { isEnd: isEnd };\r\n }\r\n }\r\n else if (isEnd\r\n && thisBrushOption.brushMode === 'single'\r\n && thisBrushOption.removeOnClick) {\r\n if (getPanelByPoint(controller, e, localCursorPoint) && clearCovers(controller)) {\r\n eventParams = { isEnd: isEnd, removeOnClick: true };\r\n }\r\n }\r\n return eventParams;\r\n }\r\n function determineBrushType(brushType, panel) {\r\n if (brushType === 'auto') {\r\n if (__DEV__) {\r\n assert(panel && panel.defaultBrushType, 'MUST have defaultBrushType when brushType is \"atuo\"');\r\n }\r\n return panel.defaultBrushType;\r\n }\r\n return brushType;\r\n }\r\n var pointerHandlers = {\r\n mousedown: function (e) {\r\n if (this._dragging) {\r\n handleDragEnd(this, e);\r\n }\r\n else if (!e.target || !e.target.draggable) {\r\n preventDefault(e);\r\n var localCursorPoint = this.group.transformCoordToLocal(e.offsetX, e.offsetY);\r\n this._creatingCover = null;\r\n var panel = this._creatingPanel = getPanelByPoint(this, e, localCursorPoint);\r\n if (panel) {\r\n this._dragging = true;\r\n this._track = [localCursorPoint.slice()];\r\n }\r\n }\r\n },\r\n mousemove: function (e) {\r\n var x = e.offsetX;\r\n var y = e.offsetY;\r\n var localCursorPoint = this.group.transformCoordToLocal(x, y);\r\n resetCursor(this, e, localCursorPoint);\r\n if (this._dragging) {\r\n preventDefault(e);\r\n var eventParams = updateCoverByMouse(this, e, localCursorPoint, false);\r\n eventParams && trigger$1(this, eventParams);\r\n }\r\n },\r\n mouseup: function (e) {\r\n handleDragEnd(this, e);\r\n }\r\n };\r\n function handleDragEnd(controller, e) {\r\n if (controller._dragging) {\r\n preventDefault(e);\r\n var x = e.offsetX;\r\n var y = e.offsetY;\r\n var localCursorPoint = controller.group.transformCoordToLocal(x, y);\r\n var eventParams = updateCoverByMouse(controller, e, localCursorPoint, true);\r\n controller._dragging = false;\r\n controller._track = [];\r\n controller._creatingCover = null;\r\n eventParams && trigger$1(controller, eventParams);\r\n }\r\n }\r\n function isOutsideZrArea(controller, x, y) {\r\n var zr = controller._zr;\r\n return x < 0 || x > zr.getWidth() || y < 0 || y > zr.getHeight();\r\n }\r\n var coverRenderers = {\r\n lineX: getLineRenderer(0),\r\n lineY: getLineRenderer(1),\r\n rect: {\r\n createCover: function (controller, brushOption) {\r\n function returnInput(range) {\r\n return range;\r\n }\r\n return createBaseRectCover({\r\n toRectRange: returnInput,\r\n fromRectRange: returnInput\r\n }, controller, brushOption, [['w'], ['e'], ['n'], ['s'], ['s', 'e'], ['s', 'w'], ['n', 'e'], ['n', 'w']]);\r\n },\r\n getCreatingRange: function (localTrack) {\r\n var ends = getTrackEnds(localTrack);\r\n return formatRectRange(ends[1][0], ends[1][1], ends[0][0], ends[0][1]);\r\n },\r\n updateCoverShape: function (controller, cover, localRange, brushOption) {\r\n updateBaseRect(controller, cover, localRange, brushOption);\r\n },\r\n updateCommon: updateCommon,\r\n contain: mainShapeContain\r\n },\r\n polygon: {\r\n createCover: function (controller, brushOption) {\r\n var cover = new Group();\r\n cover.add(new Polyline({\r\n name: 'main',\r\n style: makeStyle(brushOption),\r\n silent: true\r\n }));\r\n return cover;\r\n },\r\n getCreatingRange: function (localTrack) {\r\n return localTrack;\r\n },\r\n endCreating: function (controller, cover) {\r\n cover.remove(cover.childAt(0));\r\n cover.add(new Polygon({\r\n name: 'main',\r\n draggable: true,\r\n drift: curry(driftPolygon, controller, cover),\r\n ondragend: curry(trigger$1, controller, { isEnd: true })\r\n }));\r\n },\r\n updateCoverShape: function (controller, cover, localRange, brushOption) {\r\n cover.childAt(0).setShape({\r\n points: clipByPanel(controller, cover, localRange)\r\n });\r\n },\r\n updateCommon: updateCommon,\r\n contain: mainShapeContain\r\n }\r\n };\r\n function getLineRenderer(xyIndex) {\r\n return {\r\n createCover: function (controller, brushOption) {\r\n return createBaseRectCover({\r\n toRectRange: function (range) {\r\n var rectRange = [range, [0, 100]];\r\n xyIndex && rectRange.reverse();\r\n return rectRange;\r\n },\r\n fromRectRange: function (rectRange) {\r\n return rectRange[xyIndex];\r\n }\r\n }, controller, brushOption, [[['w'], ['e']], [['n'], ['s']]][xyIndex]);\r\n },\r\n getCreatingRange: function (localTrack) {\r\n var ends = getTrackEnds(localTrack);\r\n var min = mathMin$9(ends[0][xyIndex], ends[1][xyIndex]);\r\n var max = mathMax$9(ends[0][xyIndex], ends[1][xyIndex]);\r\n return [min, max];\r\n },\r\n updateCoverShape: function (controller, cover, localRange, brushOption) {\r\n var otherExtent;\r\n var panel = getPanelByCover(controller, cover);\r\n if (panel !== BRUSH_PANEL_GLOBAL && panel.getLinearBrushOtherExtent) {\r\n otherExtent = panel.getLinearBrushOtherExtent(xyIndex);\r\n }\r\n else {\r\n var zr = controller._zr;\r\n otherExtent = [0, [zr.getWidth(), zr.getHeight()][1 - xyIndex]];\r\n }\r\n var rectRange = [localRange, otherExtent];\r\n xyIndex && rectRange.reverse();\r\n updateBaseRect(controller, cover, rectRange, brushOption);\r\n },\r\n updateCommon: updateCommon,\r\n contain: mainShapeContain\r\n };\r\n }\n\n function makeRectPanelClipPath(rect) {\r\n rect = normalizeRect(rect);\r\n return function (localPoints) {\r\n return clipPointsByRect(localPoints, rect);\r\n };\r\n }\r\n function makeLinearBrushOtherExtent(rect, specifiedXYIndex) {\r\n rect = normalizeRect(rect);\r\n return function (xyIndex) {\r\n var idx = specifiedXYIndex != null ? specifiedXYIndex : xyIndex;\r\n var brushWidth = idx ? rect.width : rect.height;\r\n var base = idx ? rect.x : rect.y;\r\n return [base, base + (brushWidth || 0)];\r\n };\r\n }\r\n function makeRectIsTargetByCursor(rect, api, targetModel) {\r\n var boundingRect = normalizeRect(rect);\r\n return function (e, localCursorPoint) {\r\n return boundingRect.contain(localCursorPoint[0], localCursorPoint[1])\r\n && !onIrrelevantElement(e, api, targetModel);\r\n };\r\n }\r\n function normalizeRect(rect) {\r\n return BoundingRect.create(rect);\r\n }\n\n var elementList = ['axisLine', 'axisTickLabel', 'axisName'];\r\n var ParallelAxisView = (function (_super) {\r\n __extends(ParallelAxisView, _super);\r\n function ParallelAxisView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = ParallelAxisView.type;\r\n return _this;\r\n }\r\n ParallelAxisView.prototype.init = function (ecModel, api) {\r\n _super.prototype.init.apply(this, arguments);\r\n (this._brushController = new BrushController(api.getZr()))\r\n .on('brush', bind(this._onBrush, this));\r\n };\r\n ParallelAxisView.prototype.render = function (axisModel, ecModel, api, payload) {\r\n if (fromAxisAreaSelect(axisModel, ecModel, payload)) {\r\n return;\r\n }\r\n this.axisModel = axisModel;\r\n this.api = api;\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 coordSysModel = getCoordSysModel(axisModel, ecModel);\r\n var coordSys = coordSysModel.coordinateSystem;\r\n var areaSelectStyle = axisModel.getAreaSelectStyle();\r\n var areaWidth = areaSelectStyle.width;\r\n var dim = axisModel.axis.dim;\r\n var axisLayout = coordSys.getAxisLayout(dim);\r\n var builderOpt = extend({ strokeContainThreshold: areaWidth }, axisLayout);\r\n var axisBuilder = new AxisBuilder(axisModel, builderOpt);\r\n each(elementList, axisBuilder.add, axisBuilder);\r\n this._axisGroup.add(axisBuilder.getGroup());\r\n this._refreshBrushController(builderOpt, areaSelectStyle, axisModel, coordSysModel, areaWidth, api);\r\n groupTransition(oldAxisGroup, this._axisGroup, axisModel);\r\n };\r\n ParallelAxisView.prototype._refreshBrushController = function (builderOpt, areaSelectStyle, axisModel, coordSysModel, areaWidth, api) {\r\n var extent = axisModel.axis.getExtent();\r\n var extentLen = extent[1] - extent[0];\r\n var extra = Math.min(30, Math.abs(extentLen) * 0.1);\r\n var rect = BoundingRect.create({\r\n x: extent[0],\r\n y: -areaWidth / 2,\r\n width: extentLen,\r\n height: areaWidth\r\n });\r\n rect.x -= extra;\r\n rect.width += 2 * extra;\r\n this._brushController\r\n .mount({\r\n enableGlobalPan: true,\r\n rotation: builderOpt.rotation,\r\n x: builderOpt.position[0],\r\n y: builderOpt.position[1]\r\n })\r\n .setPanels([{\r\n panelId: 'pl',\r\n clipPath: makeRectPanelClipPath(rect),\r\n isTargetByCursor: makeRectIsTargetByCursor(rect, api, coordSysModel),\r\n getLinearBrushOtherExtent: makeLinearBrushOtherExtent(rect, 0)\r\n }])\r\n .enableBrush({\r\n brushType: 'lineX',\r\n brushStyle: areaSelectStyle,\r\n removeOnClick: true\r\n })\r\n .updateCovers(getCoverInfoList(axisModel));\r\n };\r\n ParallelAxisView.prototype._onBrush = function (eventParam) {\r\n var coverInfoList = eventParam.areas;\r\n var axisModel = this.axisModel;\r\n var axis = axisModel.axis;\r\n var intervals = map(coverInfoList, function (coverInfo) {\r\n return [\r\n axis.coordToData(coverInfo.range[0], true),\r\n axis.coordToData(coverInfo.range[1], true)\r\n ];\r\n });\r\n if (!axisModel.option.realtime === eventParam.isEnd || eventParam.removeOnClick) {\r\n this.api.dispatchAction({\r\n type: 'axisAreaSelect',\r\n parallelAxisId: axisModel.id,\r\n intervals: intervals\r\n });\r\n }\r\n };\r\n ParallelAxisView.prototype.dispose = function () {\r\n this._brushController.dispose();\r\n };\r\n ParallelAxisView.type = 'parallelAxis';\r\n return ParallelAxisView;\r\n }(ComponentView));\r\n ComponentView.registerClass(ParallelAxisView);\r\n function fromAxisAreaSelect(axisModel, ecModel, payload) {\r\n return payload\r\n && payload.type === 'axisAreaSelect'\r\n && ecModel.findComponents({ mainType: 'parallelAxis', query: payload })[0] === axisModel;\r\n }\r\n function getCoverInfoList(axisModel) {\r\n var axis = axisModel.axis;\r\n return map(axisModel.activeIntervals, function (interval) {\r\n return {\r\n brushType: 'lineX',\r\n panelId: 'pl',\r\n range: [\r\n axis.dataToCoord(interval[0], true),\r\n axis.dataToCoord(interval[1], true)\r\n ]\r\n };\r\n });\r\n }\r\n function getCoordSysModel(axisModel, ecModel) {\r\n return ecModel.getComponent('parallel', axisModel.get('parallelIndex'));\r\n }\n\n var CLICK_THRESHOLD = 5;\r\n var ParallelView = (function (_super) {\r\n __extends(ParallelView, _super);\r\n function ParallelView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = ParallelView.type;\r\n return _this;\r\n }\r\n ParallelView.prototype.render = function (parallelModel, ecModel, api) {\r\n this._model = parallelModel;\r\n this._api = api;\r\n if (!this._handlers) {\r\n this._handlers = {};\r\n each(handlers, function (handler, eventName) {\r\n api.getZr().on(eventName, this._handlers[eventName] = bind(handler, this));\r\n }, this);\r\n }\r\n createOrUpdate(this, '_throttledDispatchExpand', parallelModel.get('axisExpandRate'), 'fixRate');\r\n };\r\n ParallelView.prototype.dispose = function (ecModel, api) {\r\n each(this._handlers, function (handler, eventName) {\r\n api.getZr().off(eventName, handler);\r\n });\r\n this._handlers = null;\r\n };\r\n ParallelView.prototype._throttledDispatchExpand = function (opt) {\r\n this._dispatchExpand(opt);\r\n };\r\n ParallelView.prototype._dispatchExpand = function (opt) {\r\n opt && this._api.dispatchAction(extend({ type: 'parallelAxisExpand' }, opt));\r\n };\r\n ParallelView.type = 'parallel';\r\n return ParallelView;\r\n }(ComponentView));\r\n ComponentView.registerClass(ParallelView);\r\n var handlers = {\r\n mousedown: function (e) {\r\n if (checkTrigger(this, 'click')) {\r\n this._mouseDownPoint = [e.offsetX, e.offsetY];\r\n }\r\n },\r\n mouseup: function (e) {\r\n var mouseDownPoint = this._mouseDownPoint;\r\n if (checkTrigger(this, 'click') && mouseDownPoint) {\r\n var point = [e.offsetX, e.offsetY];\r\n var dist = Math.pow(mouseDownPoint[0] - point[0], 2)\r\n + Math.pow(mouseDownPoint[1] - point[1], 2);\r\n if (dist > CLICK_THRESHOLD) {\r\n return;\r\n }\r\n var result = this._model.coordinateSystem.getSlidedAxisExpandWindow([e.offsetX, e.offsetY]);\r\n result.behavior !== 'none' && this._dispatchExpand({\r\n axisExpandWindow: result.axisExpandWindow\r\n });\r\n }\r\n this._mouseDownPoint = null;\r\n },\r\n mousemove: function (e) {\r\n if (this._mouseDownPoint || !checkTrigger(this, 'mousemove')) {\r\n return;\r\n }\r\n var model = this._model;\r\n var result = model.coordinateSystem.getSlidedAxisExpandWindow([e.offsetX, e.offsetY]);\r\n var behavior = result.behavior;\r\n behavior === 'jump' && this._throttledDispatchExpand.debounceNextCall(model.get('axisExpandDebounce'));\r\n this._throttledDispatchExpand(behavior === 'none'\r\n ? null\r\n : {\r\n axisExpandWindow: result.axisExpandWindow,\r\n animation: behavior === 'jump' ? null : {\r\n duration: 0\r\n }\r\n });\r\n }\r\n };\r\n function checkTrigger(view, triggerOn) {\r\n var model = view._model;\r\n return model.get('axisExpandable') && model.get('axisExpandTriggerOn') === triggerOn;\r\n }\r\n registerPreprocessor(parallelPreprocessor);\n\n var ParallelSeriesModel = (function (_super) {\r\n __extends(ParallelSeriesModel, _super);\r\n function ParallelSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = ParallelSeriesModel.type;\r\n _this.visualStyleAccessPath = 'lineStyle';\r\n _this.visualDrawType = 'stroke';\r\n return _this;\r\n }\r\n ParallelSeriesModel.prototype.getInitialData = function (option, ecModel) {\r\n return createListFromArray(this.getSource(), this, {\r\n useEncodeDefaulter: bind(makeDefaultEncode, null, this)\r\n });\r\n };\r\n ParallelSeriesModel.prototype.getRawIndicesByActiveState = function (activeState) {\r\n var coordSys = this.coordinateSystem;\r\n var data = this.getData();\r\n var indices = [];\r\n coordSys.eachActiveState(data, function (theActiveState, dataIndex) {\r\n if (activeState === theActiveState) {\r\n indices.push(data.getRawIndex(dataIndex));\r\n }\r\n });\r\n return indices;\r\n };\r\n ParallelSeriesModel.type = 'series.parallel';\r\n ParallelSeriesModel.dependencies = ['parallel'];\r\n ParallelSeriesModel.defaultOption = {\r\n zlevel: 0,\r\n z: 2,\r\n coordinateSystem: 'parallel',\r\n parallelIndex: 0,\r\n label: {\r\n show: false\r\n },\r\n inactiveOpacity: 0.05,\r\n activeOpacity: 1,\r\n lineStyle: {\r\n width: 1,\r\n opacity: 0.45,\r\n type: 'solid'\r\n },\r\n emphasis: {\r\n label: {\r\n show: false\r\n }\r\n },\r\n progressive: 500,\r\n smooth: false,\r\n animationEasing: 'linear'\r\n };\r\n return ParallelSeriesModel;\r\n }(SeriesModel));\r\n SeriesModel.registerClass(ParallelSeriesModel);\r\n function makeDefaultEncode(seriesModel) {\r\n var parallelModel = seriesModel.ecModel.getComponent('parallel', seriesModel.get('parallelIndex'));\r\n if (!parallelModel) {\r\n return;\r\n }\r\n var encodeDefine = {};\r\n each(parallelModel.dimensions, function (axisDim) {\r\n var dataDimIndex = convertDimNameToNumber(axisDim);\r\n encodeDefine[axisDim] = dataDimIndex;\r\n });\r\n return encodeDefine;\r\n }\r\n function convertDimNameToNumber(dimName) {\r\n return +dimName.replace('dim', '');\r\n }\n\n var DEFAULT_SMOOTH = 0.3;\r\n var ParallelView$1 = (function (_super) {\r\n __extends(ParallelView, _super);\r\n function ParallelView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = ParallelView.type;\r\n _this._dataGroup = new Group();\r\n _this._initialized = false;\r\n return _this;\r\n }\r\n ParallelView.prototype.init = function () {\r\n this.group.add(this._dataGroup);\r\n };\r\n ParallelView.prototype.render = function (seriesModel, ecModel, api, payload) {\r\n var dataGroup = this._dataGroup;\r\n var data = seriesModel.getData();\r\n var oldData = this._data;\r\n var coordSys = seriesModel.coordinateSystem;\r\n var dimensions = coordSys.dimensions;\r\n var seriesScope = makeSeriesScope$2(seriesModel);\r\n data.diff(oldData)\r\n .add(add)\r\n .update(update)\r\n .remove(remove)\r\n .execute();\r\n function add(newDataIndex) {\r\n var line = addEl(data, dataGroup, newDataIndex, dimensions, coordSys);\r\n updateElCommon(line, data, newDataIndex, seriesScope);\r\n }\r\n function update(newDataIndex, oldDataIndex) {\r\n var line = oldData.getItemGraphicEl(oldDataIndex);\r\n var points = createLinePoints(data, newDataIndex, dimensions, coordSys);\r\n data.setItemGraphicEl(newDataIndex, line);\r\n updateProps(line, { shape: { points: points } }, seriesModel, newDataIndex);\r\n updateElCommon(line, data, newDataIndex, seriesScope);\r\n }\r\n function remove(oldDataIndex) {\r\n var line = oldData.getItemGraphicEl(oldDataIndex);\r\n dataGroup.remove(line);\r\n }\r\n if (!this._initialized) {\r\n this._initialized = true;\r\n var clipPath = createGridClipShape(coordSys, seriesModel, function () {\r\n setTimeout(function () {\r\n dataGroup.removeClipPath();\r\n });\r\n });\r\n dataGroup.setClipPath(clipPath);\r\n }\r\n this._data = data;\r\n };\r\n ParallelView.prototype.incrementalPrepareRender = function (seriesModel, ecModel, api) {\r\n this._initialized = true;\r\n this._data = null;\r\n this._dataGroup.removeAll();\r\n };\r\n ParallelView.prototype.incrementalRender = function (taskParams, seriesModel, ecModel) {\r\n var data = seriesModel.getData();\r\n var coordSys = seriesModel.coordinateSystem;\r\n var dimensions = coordSys.dimensions;\r\n var seriesScope = makeSeriesScope$2(seriesModel);\r\n for (var dataIndex = taskParams.start; dataIndex < taskParams.end; dataIndex++) {\r\n var line = addEl(data, this._dataGroup, dataIndex, dimensions, coordSys);\r\n line.incremental = true;\r\n updateElCommon(line, data, dataIndex, seriesScope);\r\n }\r\n };\r\n ParallelView.prototype.remove = function () {\r\n this._dataGroup && this._dataGroup.removeAll();\r\n this._data = null;\r\n };\r\n ParallelView.type = 'parallel';\r\n return ParallelView;\r\n }(ChartView));\r\n function createGridClipShape(coordSys, seriesModel, cb) {\r\n var parallelModel = coordSys.model;\r\n var rect = coordSys.getRect();\r\n var rectEl = new Rect({\r\n shape: {\r\n x: rect.x,\r\n y: rect.y,\r\n width: rect.width,\r\n height: rect.height\r\n }\r\n });\r\n var dim = parallelModel.get('layout') === 'horizontal' ? 'width' : 'height';\r\n rectEl.setShape(dim, 0);\r\n initProps(rectEl, {\r\n shape: {\r\n width: rect.width,\r\n height: rect.height\r\n }\r\n }, seriesModel, cb);\r\n return rectEl;\r\n }\r\n function createLinePoints(data, dataIndex, dimensions, coordSys) {\r\n var points = [];\r\n for (var i = 0; i < dimensions.length; i++) {\r\n var dimName = dimensions[i];\r\n var value = data.get(data.mapDimension(dimName), dataIndex);\r\n if (!isEmptyValue(value, coordSys.getAxis(dimName).type)) {\r\n points.push(coordSys.dataToPoint(value, dimName));\r\n }\r\n }\r\n return points;\r\n }\r\n function addEl(data, dataGroup, dataIndex, dimensions, coordSys) {\r\n var points = createLinePoints(data, dataIndex, dimensions, coordSys);\r\n var line = new Polyline({\r\n shape: { points: points },\r\n z2: 10\r\n });\r\n dataGroup.add(line);\r\n data.setItemGraphicEl(dataIndex, line);\r\n return line;\r\n }\r\n function makeSeriesScope$2(seriesModel) {\r\n var smooth = seriesModel.get('smooth', true);\r\n smooth === true && (smooth = DEFAULT_SMOOTH);\r\n smooth = numericToNumber(smooth);\r\n eqNaN(smooth) && (smooth = 0);\r\n return { smooth: smooth };\r\n }\r\n function updateElCommon(el, data, dataIndex, seriesScope) {\r\n el.useStyle(data.getItemVisual(dataIndex, 'style'));\r\n el.style.fill = null;\r\n el.setShape('smooth', seriesScope.smooth);\r\n var itemModel = data.getItemModel(dataIndex);\r\n var emphasisModel = itemModel.getModel('emphasis');\r\n setStatesStylesFromModel(el, itemModel, 'lineStyle');\r\n enableHoverEmphasis(el, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\r\n }\r\n function isEmptyValue(val, axisType) {\r\n return axisType === 'category'\r\n ? val == null\r\n : (val == null || isNaN(val));\r\n }\r\n ChartView.registerClass(ParallelView$1);\n\n var opacityAccessPath$1 = ['lineStyle', 'opacity'];\r\n var parallelVisual = {\r\n seriesType: 'parallel',\r\n reset: function (seriesModel, ecModel) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n var opacityMap = {\r\n normal: seriesModel.get(['lineStyle', 'opacity']),\r\n active: seriesModel.get('activeOpacity'),\r\n inactive: seriesModel.get('inactiveOpacity')\r\n };\r\n return {\r\n progress: function (params, data) {\r\n coordSys.eachActiveState(data, function (activeState, dataIndex) {\r\n var opacity = opacityMap[activeState];\r\n if (activeState === 'normal' && data.hasItemOption) {\r\n var itemOpacity = data.getItemModel(dataIndex).get(opacityAccessPath$1, true);\r\n itemOpacity != null && (opacity = itemOpacity);\r\n }\r\n var existsStyle = data.ensureUniqueItemVisual(dataIndex, 'style');\r\n existsStyle.opacity = opacity;\r\n }, params.start, params.end);\r\n }\r\n };\r\n }\r\n };\n\n registerVisual(PRIORITY.VISUAL.BRUSH, parallelVisual);\n\n var SankeySeriesModel = (function (_super) {\r\n __extends(SankeySeriesModel, _super);\r\n function SankeySeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = SankeySeriesModel.type;\r\n return _this;\r\n }\r\n SankeySeriesModel.prototype.getInitialData = function (option, ecModel) {\r\n var links = option.edges || option.links;\r\n var nodes = option.data || option.nodes;\r\n var levels = option.levels;\r\n this.levelModels = [];\r\n var levelModels = this.levelModels;\r\n for (var i = 0; i < levels.length; i++) {\r\n if (levels[i].depth != null && levels[i].depth >= 0) {\r\n levelModels[levels[i].depth] = new Model(levels[i], this, ecModel);\r\n }\r\n else {\r\n if (__DEV__) {\r\n throw new Error('levels[i].depth is mandatory and should be natural number');\r\n }\r\n }\r\n }\r\n if (nodes && links) {\r\n var graph = createGraphFromNodeEdge(nodes, links, this, true, beforeLink);\r\n return graph.data;\r\n }\r\n function beforeLink(nodeData, edgeData) {\r\n nodeData.wrapMethod('getItemModel', function (model, idx) {\r\n var seriesModel = model.parentModel;\r\n var layout = seriesModel.getData().getItemLayout(idx);\r\n if (layout) {\r\n var nodeDepth = layout.depth;\r\n var levelModel = seriesModel.levelModels[nodeDepth];\r\n if (levelModel) {\r\n model.parentModel = levelModel;\r\n }\r\n }\r\n return model;\r\n });\r\n edgeData.wrapMethod('getItemModel', function (model, idx) {\r\n var seriesModel = model.parentModel;\r\n var edge = seriesModel.getGraph().getEdgeByIndex(idx);\r\n var layout = edge.node1.getLayout();\r\n if (layout) {\r\n var depth = layout.depth;\r\n var levelModel = seriesModel.levelModels[depth];\r\n if (levelModel) {\r\n model.parentModel = levelModel;\r\n }\r\n }\r\n return model;\r\n });\r\n }\r\n };\r\n SankeySeriesModel.prototype.setNodePosition = function (dataIndex, localPosition) {\r\n var dataItem = this.option.data[dataIndex];\r\n dataItem.localX = localPosition[0];\r\n dataItem.localY = localPosition[1];\r\n };\r\n SankeySeriesModel.prototype.getGraph = function () {\r\n return this.getData().graph;\r\n };\r\n SankeySeriesModel.prototype.getEdgeData = function () {\r\n return this.getGraph().edgeData;\r\n };\r\n SankeySeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\r\n function noValue(val) {\r\n return isNaN(val) || val == null;\r\n }\r\n if (dataType === 'edge') {\r\n var params = this.getDataParams(dataIndex, dataType);\r\n var rawDataOpt = params.data;\r\n var edgeValue = params.value;\r\n var edgeName = rawDataOpt.source + ' -- ' + rawDataOpt.target;\r\n return createTooltipMarkup('nameValue', {\r\n name: edgeName,\r\n value: edgeValue,\r\n noValue: noValue(edgeValue)\r\n });\r\n }\r\n else {\r\n var node = this.getGraph().getNodeByIndex(dataIndex);\r\n var value = node.getLayout().value;\r\n var name_1 = this.getDataParams(dataIndex, dataType).data.name;\r\n return createTooltipMarkup('nameValue', {\r\n name: name_1,\r\n value: value,\r\n noValue: noValue(value)\r\n });\r\n }\r\n };\r\n SankeySeriesModel.prototype.optionUpdated = function () {\r\n var option = this.option;\r\n if (option.focusNodeAdjacency === true) {\r\n option.focusNodeAdjacency = 'allEdges';\r\n }\r\n };\r\n SankeySeriesModel.prototype.getDataParams = function (dataIndex, dataType) {\r\n var params = _super.prototype.getDataParams.call(this, dataIndex, dataType);\r\n if (params.value == null && dataType === 'node') {\r\n var node = this.getGraph().getNodeByIndex(dataIndex);\r\n var nodeValue = node.getLayout().value;\r\n params.value = nodeValue;\r\n }\r\n return params;\r\n };\r\n SankeySeriesModel.type = 'series.sankey';\r\n SankeySeriesModel.defaultOption = {\r\n zlevel: 0,\r\n z: 2,\r\n coordinateSystem: 'view',\r\n left: '5%',\r\n top: '5%',\r\n right: '20%',\r\n bottom: '5%',\r\n orient: 'horizontal',\r\n nodeWidth: 20,\r\n nodeGap: 8,\r\n draggable: true,\r\n focusNodeAdjacency: false,\r\n layoutIterations: 32,\r\n label: {\r\n show: true,\r\n position: 'right',\r\n fontSize: 12\r\n },\r\n levels: [],\r\n nodeAlign: 'justify',\r\n lineStyle: {\r\n color: '#314656',\r\n opacity: 0.2,\r\n curveness: 0.5\r\n },\r\n emphasis: {\r\n label: {\r\n show: true\r\n },\r\n lineStyle: {\r\n opacity: 0.5\r\n }\r\n },\r\n select: {\r\n itemStyle: {\r\n borderColor: '#212121'\r\n }\r\n },\r\n animationEasing: 'linear',\r\n animationDuration: 1000\r\n };\r\n return SankeySeriesModel;\r\n }(SeriesModel));\r\n SeriesModel.registerClass(SankeySeriesModel);\n\n var SankeyPathShape = (function () {\r\n function SankeyPathShape() {\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.cpx2 = 0;\r\n this.cpy2 = 0;\r\n this.extent = 0;\r\n }\r\n return SankeyPathShape;\r\n }());\r\n var SankeyPath = (function (_super) {\r\n __extends(SankeyPath, _super);\r\n function SankeyPath(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n SankeyPath.prototype.getDefaultShape = function () {\r\n return new SankeyPathShape();\r\n };\r\n SankeyPath.prototype.buildPath = function (ctx, shape) {\r\n var extent = shape.extent;\r\n ctx.moveTo(shape.x1, shape.y1);\r\n ctx.bezierCurveTo(shape.cpx1, shape.cpy1, shape.cpx2, shape.cpy2, shape.x2, shape.y2);\r\n if (shape.orient === 'vertical') {\r\n ctx.lineTo(shape.x2 + extent, shape.y2);\r\n ctx.bezierCurveTo(shape.cpx2 + extent, shape.cpy2, shape.cpx1 + extent, shape.cpy1, shape.x1 + extent, shape.y1);\r\n }\r\n else {\r\n ctx.lineTo(shape.x2, shape.y2 + extent);\r\n ctx.bezierCurveTo(shape.cpx2, shape.cpy2 + extent, shape.cpx1, shape.cpy1 + extent, shape.x1, shape.y1 + extent);\r\n }\r\n ctx.closePath();\r\n };\r\n SankeyPath.prototype.highlight = function () {\r\n enterEmphasis(this);\r\n };\r\n SankeyPath.prototype.downplay = function () {\r\n leaveEmphasis(this);\r\n };\r\n return SankeyPath;\r\n }(Path));\r\n var SankeyView = (function (_super) {\r\n __extends(SankeyView, _super);\r\n function SankeyView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = SankeyView.type;\r\n _this._focusAdjacencyDisabled = false;\r\n return _this;\r\n }\r\n SankeyView.prototype.render = function (seriesModel, ecModel, api) {\r\n var sankeyView = this;\r\n var graph = seriesModel.getGraph();\r\n var group = this.group;\r\n var layoutInfo = seriesModel.layoutInfo;\r\n var width = layoutInfo.width;\r\n var height = layoutInfo.height;\r\n var nodeData = seriesModel.getData();\r\n var edgeData = seriesModel.getData('edge');\r\n var orient = seriesModel.get('orient');\r\n this._model = seriesModel;\r\n group.removeAll();\r\n group.x = layoutInfo.x;\r\n group.y = layoutInfo.y;\r\n graph.eachEdge(function (edge) {\r\n var curve = new SankeyPath();\r\n var ecData = getECData(curve);\r\n ecData.dataIndex = edge.dataIndex;\r\n ecData.seriesIndex = seriesModel.seriesIndex;\r\n ecData.dataType = 'edge';\r\n var edgeModel = edge.getModel();\r\n var lineStyleModel = edgeModel.getModel('lineStyle');\r\n var curvature = lineStyleModel.get('curveness');\r\n var n1Layout = edge.node1.getLayout();\r\n var node1Model = edge.node1.getModel();\r\n var dragX1 = node1Model.get('localX');\r\n var dragY1 = node1Model.get('localY');\r\n var n2Layout = edge.node2.getLayout();\r\n var node2Model = edge.node2.getModel();\r\n var dragX2 = node2Model.get('localX');\r\n var dragY2 = node2Model.get('localY');\r\n var edgeLayout = edge.getLayout();\r\n var x1;\r\n var y1;\r\n var x2;\r\n var y2;\r\n var cpx1;\r\n var cpy1;\r\n var cpx2;\r\n var cpy2;\r\n curve.shape.extent = Math.max(1, edgeLayout.dy);\r\n curve.shape.orient = orient;\r\n if (orient === 'vertical') {\r\n x1 = (dragX1 != null ? dragX1 * width : n1Layout.x) + edgeLayout.sy;\r\n y1 = (dragY1 != null ? dragY1 * height : n1Layout.y) + n1Layout.dy;\r\n x2 = (dragX2 != null ? dragX2 * width : n2Layout.x) + edgeLayout.ty;\r\n y2 = dragY2 != null ? dragY2 * height : n2Layout.y;\r\n cpx1 = x1;\r\n cpy1 = y1 * (1 - curvature) + y2 * curvature;\r\n cpx2 = x2;\r\n cpy2 = y1 * curvature + y2 * (1 - curvature);\r\n }\r\n else {\r\n x1 = (dragX1 != null ? dragX1 * width : n1Layout.x) + n1Layout.dx;\r\n y1 = (dragY1 != null ? dragY1 * height : n1Layout.y) + edgeLayout.sy;\r\n x2 = dragX2 != null ? dragX2 * width : n2Layout.x;\r\n y2 = (dragY2 != null ? dragY2 * height : n2Layout.y) + edgeLayout.ty;\r\n cpx1 = x1 * (1 - curvature) + x2 * curvature;\r\n cpy1 = y1;\r\n cpx2 = x1 * curvature + x2 * (1 - curvature);\r\n cpy2 = y2;\r\n }\r\n curve.setShape({\r\n x1: x1,\r\n y1: y1,\r\n x2: x2,\r\n y2: y2,\r\n cpx1: cpx1,\r\n cpy1: cpy1,\r\n cpx2: cpx2,\r\n cpy2: cpy2\r\n });\r\n curve.useStyle(lineStyleModel.getItemStyle());\r\n switch (curve.style.fill) {\r\n case 'source':\r\n curve.style.fill = edge.node1.getVisual('color');\r\n curve.style.decal = edge.node1.getVisual('style').decal;\r\n break;\r\n case 'target':\r\n curve.style.fill = edge.node2.getVisual('color');\r\n curve.style.decal = edge.node2.getVisual('style').decal;\r\n break;\r\n case 'gradient':\r\n var sourceColor = edge.node1.getVisual('color');\r\n var targetColor = edge.node2.getVisual('color');\r\n if (typeof sourceColor === 'string' && typeof targetColor === 'string') {\r\n curve.style.fill = new LinearGradient(0, 0, 1, 0, [{\r\n color: sourceColor,\r\n offset: 0\r\n }, {\r\n color: targetColor,\r\n offset: 1\r\n }]);\r\n }\r\n }\r\n var emphasisModel = edgeModel.getModel('emphasis');\r\n setStatesStylesFromModel(curve, edgeModel, 'lineStyle', function (model) { return model.getItemStyle(); });\r\n group.add(curve);\r\n edgeData.setItemGraphicEl(edge.dataIndex, curve);\r\n var focus = emphasisModel.get('focus');\r\n enableHoverEmphasis(curve, focus === 'adjacency' ? edge.getAdjacentDataIndices() : focus, emphasisModel.get('blurScope'));\r\n getECData(curve).dataType = 'edge';\r\n });\r\n graph.eachNode(function (node) {\r\n var layout = node.getLayout();\r\n var itemModel = node.getModel();\r\n var dragX = itemModel.get('localX');\r\n var dragY = itemModel.get('localY');\r\n var emphasisModel = itemModel.getModel('emphasis');\r\n var rect = new Rect({\r\n shape: {\r\n x: dragX != null ? dragX * width : layout.x,\r\n y: dragY != null ? dragY * height : layout.y,\r\n width: layout.dx,\r\n height: layout.dy\r\n },\r\n style: itemModel.getModel('itemStyle').getItemStyle()\r\n });\r\n setLabelStyle(rect, getLabelStatesModels(itemModel), {\r\n labelFetcher: seriesModel,\r\n labelDataIndex: node.dataIndex,\r\n defaultText: node.id\r\n });\r\n rect.disableLabelAnimation = true;\r\n rect.setStyle('fill', node.getVisual('color'));\r\n rect.setStyle('decal', node.getVisual('style').decal);\r\n setStatesStylesFromModel(rect, itemModel);\r\n group.add(rect);\r\n nodeData.setItemGraphicEl(node.dataIndex, rect);\r\n getECData(rect).dataType = 'node';\r\n var focus = emphasisModel.get('focus');\r\n enableHoverEmphasis(rect, focus === 'adjacency' ? node.getAdjacentDataIndices() : focus, emphasisModel.get('blurScope'));\r\n });\r\n nodeData.eachItemGraphicEl(function (el, dataIndex) {\r\n var itemModel = nodeData.getItemModel(dataIndex);\r\n if (itemModel.get('draggable')) {\r\n el.drift = function (dx, dy) {\r\n sankeyView._focusAdjacencyDisabled = true;\r\n this.shape.x += dx;\r\n this.shape.y += dy;\r\n this.dirty();\r\n api.dispatchAction({\r\n type: 'dragNode',\r\n seriesId: seriesModel.id,\r\n dataIndex: nodeData.getRawIndex(dataIndex),\r\n localX: this.shape.x / width,\r\n localY: this.shape.y / height\r\n });\r\n };\r\n el.ondragend = function () {\r\n sankeyView._focusAdjacencyDisabled = false;\r\n };\r\n el.draggable = true;\r\n el.cursor = 'move';\r\n }\r\n });\r\n if (!this._data && seriesModel.isAnimationEnabled()) {\r\n group.setClipPath(createGridClipShape$1(group.getBoundingRect(), seriesModel, function () {\r\n group.removeClipPath();\r\n }));\r\n }\r\n this._data = seriesModel.getData();\r\n };\r\n SankeyView.prototype.dispose = function () {\r\n };\r\n SankeyView.type = 'sankey';\r\n return SankeyView;\r\n }(ChartView));\r\n function createGridClipShape$1(rect, seriesModel, cb) {\r\n var rectEl = new Rect({\r\n shape: {\r\n x: rect.x - 10,\r\n y: rect.y - 10,\r\n width: 0,\r\n height: rect.height + 20\r\n }\r\n });\r\n initProps(rectEl, {\r\n shape: {\r\n width: rect.width + 20\r\n }\r\n }, seriesModel, cb);\r\n return rectEl;\r\n }\r\n ChartView.registerClass(SankeyView);\n\n registerAction({\r\n type: 'dragNode',\r\n event: 'dragnode',\r\n update: 'update'\r\n }, function (payload, ecModel) {\r\n ecModel.eachComponent({\r\n mainType: 'series',\r\n subType: 'sankey',\r\n query: payload\r\n }, function (seriesModel) {\r\n seriesModel.setNodePosition(payload.dataIndex, [payload.localX, payload.localY]);\r\n });\r\n });\n\n function sankeyLayout(ecModel, api) {\r\n ecModel.eachSeriesByType('sankey', function (seriesModel) {\r\n var nodeWidth = seriesModel.get('nodeWidth');\r\n var nodeGap = seriesModel.get('nodeGap');\r\n var layoutInfo = getViewRect$4(seriesModel, api);\r\n seriesModel.layoutInfo = layoutInfo;\r\n var width = layoutInfo.width;\r\n var height = layoutInfo.height;\r\n var graph = seriesModel.getGraph();\r\n var nodes = graph.nodes;\r\n var edges = graph.edges;\r\n computeNodeValues(nodes);\r\n var filteredNodes = filter(nodes, function (node) {\r\n return node.getLayout().value === 0;\r\n });\r\n var iterations = filteredNodes.length !== 0 ? 0 : seriesModel.get('layoutIterations');\r\n var orient = seriesModel.get('orient');\r\n var nodeAlign = seriesModel.get('nodeAlign');\r\n layoutSankey(nodes, edges, nodeWidth, nodeGap, width, height, iterations, orient, nodeAlign);\r\n });\r\n }\r\n function getViewRect$4(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 layoutSankey(nodes, edges, nodeWidth, nodeGap, width, height, iterations, orient, nodeAlign) {\r\n computeNodeBreadths(nodes, edges, nodeWidth, width, height, orient, nodeAlign);\r\n computeNodeDepths(nodes, edges, height, width, nodeGap, iterations, orient);\r\n computeEdgeDepths(nodes, orient);\r\n }\r\n function computeNodeValues(nodes) {\r\n each(nodes, function (node) {\r\n var value1 = sum(node.outEdges, getEdgeValue);\r\n var value2 = sum(node.inEdges, getEdgeValue);\r\n var nodeRawValue = node.getValue() || 0;\r\n var value = Math.max(value1, value2, nodeRawValue);\r\n node.setLayout({ value: value }, true);\r\n });\r\n }\r\n function computeNodeBreadths(nodes, edges, nodeWidth, width, height, orient, nodeAlign) {\r\n var remainEdges = [];\r\n var indegreeArr = [];\r\n var zeroIndegrees = [];\r\n var nextTargetNode = [];\r\n var x = 0;\r\n for (var i = 0; i < edges.length; i++) {\r\n remainEdges[i] = 1;\r\n }\r\n for (var i = 0; i < nodes.length; i++) {\r\n indegreeArr[i] = nodes[i].inEdges.length;\r\n if (indegreeArr[i] === 0) {\r\n zeroIndegrees.push(nodes[i]);\r\n }\r\n }\r\n var maxNodeDepth = -1;\r\n while (zeroIndegrees.length) {\r\n for (var idx = 0; idx < zeroIndegrees.length; idx++) {\r\n var node = zeroIndegrees[idx];\r\n var item = node.hostGraph.data.getRawDataItem(node.dataIndex);\r\n var isItemDepth = item.depth != null && item.depth >= 0;\r\n if (isItemDepth && item.depth > maxNodeDepth) {\r\n maxNodeDepth = item.depth;\r\n }\r\n node.setLayout({ depth: isItemDepth ? item.depth : x }, true);\r\n orient === 'vertical'\r\n ? node.setLayout({ dy: nodeWidth }, true)\r\n : node.setLayout({ dx: nodeWidth }, true);\r\n for (var edgeIdx = 0; edgeIdx < node.outEdges.length; edgeIdx++) {\r\n var edge = node.outEdges[edgeIdx];\r\n var indexEdge = edges.indexOf(edge);\r\n remainEdges[indexEdge] = 0;\r\n var targetNode = edge.node2;\r\n var nodeIndex = nodes.indexOf(targetNode);\r\n if (--indegreeArr[nodeIndex] === 0 && nextTargetNode.indexOf(targetNode) < 0) {\r\n nextTargetNode.push(targetNode);\r\n }\r\n }\r\n }\r\n ++x;\r\n zeroIndegrees = nextTargetNode;\r\n nextTargetNode = [];\r\n }\r\n for (var i = 0; i < remainEdges.length; i++) {\r\n if (remainEdges[i] === 1) {\r\n throw new Error('Sankey is a DAG, the original data has cycle!');\r\n }\r\n }\r\n var maxDepth = maxNodeDepth > x - 1 ? maxNodeDepth : x - 1;\r\n if (nodeAlign && nodeAlign !== 'left') {\r\n adjustNodeWithNodeAlign(nodes, nodeAlign, orient, maxDepth);\r\n }\r\n var kx = orient === 'vertical'\r\n ? (height - nodeWidth) / maxDepth\r\n : (width - nodeWidth) / maxDepth;\r\n scaleNodeBreadths(nodes, kx, orient);\r\n }\r\n function isNodeDepth(node) {\r\n var item = node.hostGraph.data.getRawDataItem(node.dataIndex);\r\n return item.depth != null && item.depth >= 0;\r\n }\r\n function adjustNodeWithNodeAlign(nodes, nodeAlign, orient, maxDepth) {\r\n if (nodeAlign === 'right') {\r\n var nextSourceNode = [];\r\n var remainNodes = nodes;\r\n var nodeHeight = 0;\r\n while (remainNodes.length) {\r\n for (var i = 0; i < remainNodes.length; i++) {\r\n var node = remainNodes[i];\r\n node.setLayout({ skNodeHeight: nodeHeight }, true);\r\n for (var j = 0; j < node.inEdges.length; j++) {\r\n var edge = node.inEdges[j];\r\n if (nextSourceNode.indexOf(edge.node1) < 0) {\r\n nextSourceNode.push(edge.node1);\r\n }\r\n }\r\n }\r\n remainNodes = nextSourceNode;\r\n nextSourceNode = [];\r\n ++nodeHeight;\r\n }\r\n each(nodes, function (node) {\r\n if (!isNodeDepth(node)) {\r\n node.setLayout({ depth: Math.max(0, maxDepth - node.getLayout().skNodeHeight) }, true);\r\n }\r\n });\r\n }\r\n else if (nodeAlign === 'justify') {\r\n moveSinksRight(nodes, maxDepth);\r\n }\r\n }\r\n function moveSinksRight(nodes, maxDepth) {\r\n each(nodes, function (node) {\r\n if (!isNodeDepth(node) && !node.outEdges.length) {\r\n node.setLayout({ depth: maxDepth }, true);\r\n }\r\n });\r\n }\r\n function scaleNodeBreadths(nodes, kx, orient) {\r\n each(nodes, function (node) {\r\n var nodeDepth = node.getLayout().depth * kx;\r\n orient === 'vertical'\r\n ? node.setLayout({ y: nodeDepth }, true)\r\n : node.setLayout({ x: nodeDepth }, true);\r\n });\r\n }\r\n function computeNodeDepths(nodes, edges, height, width, nodeGap, iterations, orient) {\r\n var nodesByBreadth = prepareNodesByBreadth(nodes, orient);\r\n initializeNodeDepth(nodesByBreadth, edges, height, width, nodeGap, orient);\r\n resolveCollisions(nodesByBreadth, nodeGap, height, width, orient);\r\n for (var alpha = 1; iterations > 0; iterations--) {\r\n alpha *= 0.99;\r\n relaxRightToLeft(nodesByBreadth, alpha, orient);\r\n resolveCollisions(nodesByBreadth, nodeGap, height, width, orient);\r\n relaxLeftToRight(nodesByBreadth, alpha, orient);\r\n resolveCollisions(nodesByBreadth, nodeGap, height, width, orient);\r\n }\r\n }\r\n function prepareNodesByBreadth(nodes, orient) {\r\n var nodesByBreadth = [];\r\n var keyAttr = orient === 'vertical' ? 'y' : 'x';\r\n var groupResult = groupData(nodes, function (node) {\r\n return node.getLayout()[keyAttr];\r\n });\r\n groupResult.keys.sort(function (a, b) {\r\n return a - b;\r\n });\r\n each(groupResult.keys, function (key) {\r\n nodesByBreadth.push(groupResult.buckets.get(key));\r\n });\r\n return nodesByBreadth;\r\n }\r\n function initializeNodeDepth(nodesByBreadth, edges, height, width, nodeGap, orient) {\r\n var minKy = Infinity;\r\n each(nodesByBreadth, function (nodes) {\r\n var n = nodes.length;\r\n var sum = 0;\r\n each(nodes, function (node) {\r\n sum += node.getLayout().value;\r\n });\r\n var ky = orient === 'vertical'\r\n ? (width - (n - 1) * nodeGap) / sum\r\n : (height - (n - 1) * nodeGap) / sum;\r\n if (ky < minKy) {\r\n minKy = ky;\r\n }\r\n });\r\n each(nodesByBreadth, function (nodes) {\r\n each(nodes, function (node, i) {\r\n var nodeDy = node.getLayout().value * minKy;\r\n if (orient === 'vertical') {\r\n node.setLayout({ x: i }, true);\r\n node.setLayout({ dx: nodeDy }, true);\r\n }\r\n else {\r\n node.setLayout({ y: i }, true);\r\n node.setLayout({ dy: nodeDy }, true);\r\n }\r\n });\r\n });\r\n each(edges, function (edge) {\r\n var edgeDy = +edge.getValue() * minKy;\r\n edge.setLayout({ dy: edgeDy }, true);\r\n });\r\n }\r\n function resolveCollisions(nodesByBreadth, nodeGap, height, width, orient) {\r\n var keyAttr = orient === 'vertical' ? 'x' : 'y';\r\n each(nodesByBreadth, function (nodes) {\r\n nodes.sort(function (a, b) {\r\n return a.getLayout()[keyAttr] - b.getLayout()[keyAttr];\r\n });\r\n var nodeX;\r\n var node;\r\n var dy;\r\n var y0 = 0;\r\n var n = nodes.length;\r\n var nodeDyAttr = orient === 'vertical' ? 'dx' : 'dy';\r\n for (var i = 0; i < n; i++) {\r\n node = nodes[i];\r\n dy = y0 - node.getLayout()[keyAttr];\r\n if (dy > 0) {\r\n nodeX = node.getLayout()[keyAttr] + dy;\r\n orient === 'vertical'\r\n ? node.setLayout({ x: nodeX }, true)\r\n : node.setLayout({ y: nodeX }, true);\r\n }\r\n y0 = node.getLayout()[keyAttr] + node.getLayout()[nodeDyAttr] + nodeGap;\r\n }\r\n var viewWidth = orient === 'vertical' ? width : height;\r\n dy = y0 - nodeGap - viewWidth;\r\n if (dy > 0) {\r\n nodeX = node.getLayout()[keyAttr] - dy;\r\n orient === 'vertical'\r\n ? node.setLayout({ x: nodeX }, true)\r\n : node.setLayout({ y: nodeX }, true);\r\n y0 = nodeX;\r\n for (var i = n - 2; i >= 0; --i) {\r\n node = nodes[i];\r\n dy = node.getLayout()[keyAttr] + node.getLayout()[nodeDyAttr] + nodeGap - y0;\r\n if (dy > 0) {\r\n nodeX = node.getLayout()[keyAttr] - dy;\r\n orient === 'vertical'\r\n ? node.setLayout({ x: nodeX }, true)\r\n : node.setLayout({ y: nodeX }, true);\r\n }\r\n y0 = node.getLayout()[keyAttr];\r\n }\r\n }\r\n });\r\n }\r\n function relaxRightToLeft(nodesByBreadth, alpha, orient) {\r\n each(nodesByBreadth.slice().reverse(), function (nodes) {\r\n each(nodes, function (node) {\r\n if (node.outEdges.length) {\r\n var y = sum(node.outEdges, weightedTarget, orient)\r\n / sum(node.outEdges, getEdgeValue);\r\n if (isNaN(y)) {\r\n var len = node.outEdges.length;\r\n y = len ? sum(node.outEdges, centerTarget, orient) / len : 0;\r\n }\r\n if (orient === 'vertical') {\r\n var nodeX = node.getLayout().x + (y - center$1(node, orient)) * alpha;\r\n node.setLayout({ x: nodeX }, true);\r\n }\r\n else {\r\n var nodeY = node.getLayout().y + (y - center$1(node, orient)) * alpha;\r\n node.setLayout({ y: nodeY }, true);\r\n }\r\n }\r\n });\r\n });\r\n }\r\n function weightedTarget(edge, orient) {\r\n return center$1(edge.node2, orient) * edge.getValue();\r\n }\r\n function centerTarget(edge, orient) {\r\n return center$1(edge.node2, orient);\r\n }\r\n function weightedSource(edge, orient) {\r\n return center$1(edge.node1, orient) * edge.getValue();\r\n }\r\n function centerSource(edge, orient) {\r\n return center$1(edge.node1, orient);\r\n }\r\n function center$1(node, orient) {\r\n return orient === 'vertical'\r\n ? node.getLayout().x + node.getLayout().dx / 2\r\n : node.getLayout().y + node.getLayout().dy / 2;\r\n }\r\n function getEdgeValue(edge) {\r\n return edge.getValue();\r\n }\r\n function sum(array, cb, orient) {\r\n var sum = 0;\r\n var len = array.length;\r\n var i = -1;\r\n while (++i < len) {\r\n var value = +cb(array[i], orient);\r\n if (!isNaN(value)) {\r\n sum += value;\r\n }\r\n }\r\n return sum;\r\n }\r\n function relaxLeftToRight(nodesByBreadth, alpha, orient) {\r\n each(nodesByBreadth, function (nodes) {\r\n each(nodes, function (node) {\r\n if (node.inEdges.length) {\r\n var y = sum(node.inEdges, weightedSource, orient)\r\n / sum(node.inEdges, getEdgeValue);\r\n if (isNaN(y)) {\r\n var len = node.inEdges.length;\r\n y = len ? sum(node.inEdges, centerSource, orient) / len : 0;\r\n }\r\n if (orient === 'vertical') {\r\n var nodeX = node.getLayout().x + (y - center$1(node, orient)) * alpha;\r\n node.setLayout({ x: nodeX }, true);\r\n }\r\n else {\r\n var nodeY = node.getLayout().y + (y - center$1(node, orient)) * alpha;\r\n node.setLayout({ y: nodeY }, true);\r\n }\r\n }\r\n });\r\n });\r\n }\r\n function computeEdgeDepths(nodes, orient) {\r\n var keyAttr = orient === 'vertical' ? 'x' : 'y';\r\n each(nodes, function (node) {\r\n node.outEdges.sort(function (a, b) {\r\n return a.node2.getLayout()[keyAttr] - b.node2.getLayout()[keyAttr];\r\n });\r\n node.inEdges.sort(function (a, b) {\r\n return a.node1.getLayout()[keyAttr] - b.node1.getLayout()[keyAttr];\r\n });\r\n });\r\n each(nodes, function (node) {\r\n var sy = 0;\r\n var ty = 0;\r\n each(node.outEdges, function (edge) {\r\n edge.setLayout({ sy: sy }, true);\r\n sy += edge.getLayout().dy;\r\n });\r\n each(node.inEdges, function (edge) {\r\n edge.setLayout({ ty: ty }, true);\r\n ty += edge.getLayout().dy;\r\n });\r\n });\r\n }\n\n function sankeyVisual(ecModel) {\r\n ecModel.eachSeriesByType('sankey', function (seriesModel) {\r\n var graph = seriesModel.getGraph();\r\n var nodes = graph.nodes;\r\n if (nodes.length) {\r\n var minValue_1 = Infinity;\r\n var maxValue_1 = -Infinity;\r\n each(nodes, function (node) {\r\n var nodeValue = node.getLayout().value;\r\n if (nodeValue < minValue_1) {\r\n minValue_1 = nodeValue;\r\n }\r\n if (nodeValue > maxValue_1) {\r\n maxValue_1 = nodeValue;\r\n }\r\n });\r\n each(nodes, function (node) {\r\n var mapping = new VisualMapping({\r\n type: 'color',\r\n mappingMethod: 'linear',\r\n dataExtent: [minValue_1, maxValue_1],\r\n visual: seriesModel.get('color')\r\n });\r\n var mapValueToColor = mapping.mapValueToVisual(node.getLayout().value);\r\n var customColor = node.getModel().get(['itemStyle', 'color']);\r\n if (customColor != null) {\r\n node.setVisual('color', customColor);\r\n node.setVisual('style', { fill: customColor });\r\n }\r\n else {\r\n node.setVisual('color', mapValueToColor);\r\n node.setVisual('style', { fill: mapValueToColor });\r\n }\r\n });\r\n }\r\n });\r\n }\n\n registerLayout(sankeyLayout);\r\n registerVisual(sankeyVisual);\n\n var WhiskerBoxCommonMixin = (function () {\r\n function WhiskerBoxCommonMixin() {\r\n }\r\n WhiskerBoxCommonMixin.prototype.getInitialData = function (option, ecModel) {\r\n var ordinalMeta;\r\n var xAxisModel = ecModel.getComponent('xAxis', this.get('xAxisIndex'));\r\n var yAxisModel = ecModel.getComponent('yAxis', this.get('yAxisIndex'));\r\n var xAxisType = xAxisModel.get('type');\r\n var yAxisType = yAxisModel.get('type');\r\n var addOrdinal;\r\n if (xAxisType === 'category') {\r\n option.layout = 'horizontal';\r\n ordinalMeta = xAxisModel.getOrdinalMeta();\r\n addOrdinal = true;\r\n }\r\n else if (yAxisType === 'category') {\r\n option.layout = 'vertical';\r\n ordinalMeta = yAxisModel.getOrdinalMeta();\r\n addOrdinal = true;\r\n }\r\n else {\r\n option.layout = option.layout || 'horizontal';\r\n }\r\n var coordDims = ['x', 'y'];\r\n var baseAxisDimIndex = option.layout === 'horizontal' ? 0 : 1;\r\n var baseAxisDim = this._baseAxisDim = coordDims[baseAxisDimIndex];\r\n var otherAxisDim = coordDims[1 - baseAxisDimIndex];\r\n var axisModels = [xAxisModel, yAxisModel];\r\n var baseAxisType = axisModels[baseAxisDimIndex].get('type');\r\n var otherAxisType = axisModels[1 - baseAxisDimIndex].get('type');\r\n var data = option.data;\r\n if (data && addOrdinal) {\r\n var newOptionData_1 = [];\r\n each(data, function (item, index) {\r\n var newItem;\r\n if (isArray(item)) {\r\n newItem = item.slice();\r\n item.unshift(index);\r\n }\r\n else if (isArray(item.value)) {\r\n newItem = item.value.slice();\r\n item.value.unshift(index);\r\n }\r\n else {\r\n newItem = item;\r\n }\r\n newOptionData_1.push(newItem);\r\n });\r\n option.data = newOptionData_1;\r\n }\r\n var defaultValueDimensions = this.defaultValueDimensions;\r\n var coordDimensions = [{\r\n name: baseAxisDim,\r\n type: getDimensionTypeByAxis(baseAxisType),\r\n ordinalMeta: ordinalMeta,\r\n otherDims: {\r\n tooltip: false,\r\n itemName: 0\r\n },\r\n dimsDef: ['base']\r\n }, {\r\n name: otherAxisDim,\r\n type: getDimensionTypeByAxis(otherAxisType),\r\n dimsDef: defaultValueDimensions.slice()\r\n }];\r\n return createListSimply(this, {\r\n coordDimensions: coordDimensions,\r\n dimensionsCount: defaultValueDimensions.length + 1,\r\n encodeDefaulter: curry(makeSeriesEncodeForAxisCoordSys, coordDimensions, this)\r\n });\r\n };\r\n WhiskerBoxCommonMixin.prototype.getBaseAxis = function () {\r\n var dim = this._baseAxisDim;\r\n return this.ecModel.getComponent(dim + 'Axis', this.get(dim + 'AxisIndex')).axis;\r\n };\r\n return WhiskerBoxCommonMixin;\r\n }());\n\n var BoxplotSeriesModel = (function (_super) {\r\n __extends(BoxplotSeriesModel, _super);\r\n function BoxplotSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = BoxplotSeriesModel.type;\r\n _this.defaultValueDimensions = [\r\n { name: 'min', defaultTooltip: true },\r\n { name: 'Q1', defaultTooltip: true },\r\n { name: 'median', defaultTooltip: true },\r\n { name: 'Q3', defaultTooltip: true },\r\n { name: 'max', defaultTooltip: true }\r\n ];\r\n _this.visualDrawType = 'stroke';\r\n return _this;\r\n }\r\n BoxplotSeriesModel.type = 'series.boxplot';\r\n BoxplotSeriesModel.dependencies = ['xAxis', 'yAxis', 'grid'];\r\n BoxplotSeriesModel.defaultOption = {\r\n zlevel: 0,\r\n z: 2,\r\n coordinateSystem: 'cartesian2d',\r\n legendHoverLink: true,\r\n layout: null,\r\n boxWidth: [7, 50],\r\n itemStyle: {\r\n color: '#fff',\r\n borderWidth: 1\r\n },\r\n emphasis: {\r\n scale: true,\r\n itemStyle: {\r\n borderWidth: 2,\r\n shadowBlur: 5,\r\n shadowOffsetX: 1,\r\n shadowOffsetY: 1,\r\n shadowColor: 'rgba(0,0,0,0.2)'\r\n }\r\n },\r\n animationDuration: 800\r\n };\r\n return BoxplotSeriesModel;\r\n }(SeriesModel));\r\n mixin(BoxplotSeriesModel, WhiskerBoxCommonMixin, true);\r\n SeriesModel.registerClass(BoxplotSeriesModel);\n\n var BoxplotView = (function (_super) {\r\n __extends(BoxplotView, _super);\r\n function BoxplotView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = BoxplotView.type;\r\n return _this;\r\n }\r\n BoxplotView.prototype.render = function (seriesModel, ecModel, api) {\r\n var data = seriesModel.getData();\r\n var group = this.group;\r\n var oldData = this._data;\r\n if (!this._data) {\r\n group.removeAll();\r\n }\r\n var constDim = seriesModel.get('layout') === 'horizontal' ? 1 : 0;\r\n data.diff(oldData)\r\n .add(function (newIdx) {\r\n if (data.hasValue(newIdx)) {\r\n var itemLayout = data.getItemLayout(newIdx);\r\n var symbolEl = createNormalBox(itemLayout, data, newIdx, constDim, true);\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 if (!data.hasValue(newIdx)) {\r\n group.remove(symbolEl);\r\n return;\r\n }\r\n var itemLayout = data.getItemLayout(newIdx);\r\n if (!symbolEl) {\r\n symbolEl = createNormalBox(itemLayout, data, newIdx, constDim);\r\n }\r\n else {\r\n updateNormalBoxData(itemLayout, symbolEl, data, newIdx);\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 && group.remove(el);\r\n })\r\n .execute();\r\n this._data = data;\r\n };\r\n BoxplotView.prototype.remove = function (ecModel) {\r\n var group = this.group;\r\n var data = this._data;\r\n this._data = null;\r\n data && data.eachItemGraphicEl(function (el) {\r\n el && group.remove(el);\r\n });\r\n };\r\n BoxplotView.type = 'boxplot';\r\n return BoxplotView;\r\n }(ChartView));\r\n var BoxPathShape = (function () {\r\n function BoxPathShape() {\r\n }\r\n return BoxPathShape;\r\n }());\r\n var BoxPath = (function (_super) {\r\n __extends(BoxPath, _super);\r\n function BoxPath(opts) {\r\n var _this = _super.call(this, opts) || this;\r\n _this.type = 'boxplotBoxPath';\r\n return _this;\r\n }\r\n BoxPath.prototype.getDefaultShape = function () {\r\n return new BoxPathShape();\r\n };\r\n BoxPath.prototype.buildPath = function (ctx, shape) {\r\n var ends = shape.points;\r\n var i = 0;\r\n ctx.moveTo(ends[i][0], ends[i][1]);\r\n i++;\r\n for (; i < 4; i++) {\r\n ctx.lineTo(ends[i][0], ends[i][1]);\r\n }\r\n ctx.closePath();\r\n for (; i < ends.length; i++) {\r\n ctx.moveTo(ends[i][0], ends[i][1]);\r\n i++;\r\n ctx.lineTo(ends[i][0], ends[i][1]);\r\n }\r\n };\r\n return BoxPath;\r\n }(Path));\r\n function createNormalBox(itemLayout, data, dataIndex, constDim, isInit) {\r\n var ends = itemLayout.ends;\r\n var el = new BoxPath({\r\n shape: {\r\n points: isInit\r\n ? transInit(ends, constDim, itemLayout)\r\n : ends\r\n }\r\n });\r\n updateNormalBoxData(itemLayout, el, data, dataIndex, isInit);\r\n return el;\r\n }\r\n function updateNormalBoxData(itemLayout, el, data, dataIndex, isInit) {\r\n var seriesModel = data.hostModel;\r\n var updateMethod = graphic[isInit ? 'initProps' : 'updateProps'];\r\n updateMethod(el, { shape: { points: itemLayout.ends } }, seriesModel, dataIndex);\r\n el.useStyle(data.getItemVisual(dataIndex, 'style'));\r\n el.style.strokeNoScale = true;\r\n el.z2 = 100;\r\n var itemModel = data.getItemModel(dataIndex);\r\n setStatesStylesFromModel(el, itemModel);\r\n enableHoverEmphasis(el, itemModel.get(['emphasis', 'focus']), itemModel.get(['emphasis', 'blurScope']));\r\n }\r\n function transInit(points, dim, itemLayout) {\r\n return map(points, function (point) {\r\n point = point.slice();\r\n point[dim] = itemLayout.initBaseline;\r\n return point;\r\n });\r\n }\r\n ChartView.registerClass(BoxplotView);\n\n function boxplotVisual(ecModel, api) {\r\n ecModel.eachRawSeriesByType('boxplot', function (seriesModel) {\r\n seriesModel.getData().setVisual('legendSymbol', 'roundRect');\r\n });\r\n }\n\n var each$7 = each;\r\n function boxplotLayout(ecModel) {\r\n var groupResult = groupSeriesByAxis(ecModel);\r\n each$7(groupResult, function (groupItem) {\r\n var seriesModels = groupItem.seriesModels;\r\n if (!seriesModels.length) {\r\n return;\r\n }\r\n calculateBase(groupItem);\r\n each$7(seriesModels, function (seriesModel, idx) {\r\n layoutSingleSeries(seriesModel, groupItem.boxOffsetList[idx], groupItem.boxWidthList[idx]);\r\n });\r\n });\r\n }\r\n function groupSeriesByAxis(ecModel) {\r\n var result = [];\r\n var axisList = [];\r\n ecModel.eachSeriesByType('boxplot', function (seriesModel) {\r\n var baseAxis = seriesModel.getBaseAxis();\r\n var idx = indexOf(axisList, baseAxis);\r\n if (idx < 0) {\r\n idx = axisList.length;\r\n axisList[idx] = baseAxis;\r\n result[idx] = {\r\n axis: baseAxis,\r\n seriesModels: []\r\n };\r\n }\r\n result[idx].seriesModels.push(seriesModel);\r\n });\r\n return result;\r\n }\r\n function calculateBase(groupItem) {\r\n var extent;\r\n var baseAxis = groupItem.axis;\r\n var seriesModels = groupItem.seriesModels;\r\n var seriesCount = seriesModels.length;\r\n var boxWidthList = groupItem.boxWidthList = [];\r\n var boxOffsetList = groupItem.boxOffsetList = [];\r\n var boundList = [];\r\n var bandWidth;\r\n if (baseAxis.type === 'category') {\r\n bandWidth = baseAxis.getBandWidth();\r\n }\r\n else {\r\n var maxDataCount_1 = 0;\r\n each$7(seriesModels, function (seriesModel) {\r\n maxDataCount_1 = Math.max(maxDataCount_1, seriesModel.getData().count());\r\n });\r\n extent = baseAxis.getExtent(),\r\n Math.abs(extent[1] - extent[0]) / maxDataCount_1;\r\n }\r\n each$7(seriesModels, function (seriesModel) {\r\n var boxWidthBound = seriesModel.get('boxWidth');\r\n if (!isArray(boxWidthBound)) {\r\n boxWidthBound = [boxWidthBound, boxWidthBound];\r\n }\r\n boundList.push([\r\n parsePercent$2(boxWidthBound[0], bandWidth) || 0,\r\n parsePercent$2(boxWidthBound[1], bandWidth) || 0\r\n ]);\r\n });\r\n var availableWidth = bandWidth * 0.8 - 2;\r\n var boxGap = availableWidth / seriesCount * 0.3;\r\n var boxWidth = (availableWidth - boxGap * (seriesCount - 1)) / seriesCount;\r\n var base = boxWidth / 2 - availableWidth / 2;\r\n each$7(seriesModels, function (seriesModel, idx) {\r\n boxOffsetList.push(base);\r\n base += boxGap + boxWidth;\r\n boxWidthList.push(Math.min(Math.max(boxWidth, boundList[idx][0]), boundList[idx][1]));\r\n });\r\n }\r\n function layoutSingleSeries(seriesModel, offset, boxWidth) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n var data = seriesModel.getData();\r\n var halfWidth = boxWidth / 2;\r\n var cDimIdx = seriesModel.get('layout') === 'horizontal' ? 0 : 1;\r\n var vDimIdx = 1 - cDimIdx;\r\n var coordDims = ['x', 'y'];\r\n var cDim = data.mapDimension(coordDims[cDimIdx]);\r\n var vDims = data.mapDimensionsAll(coordDims[vDimIdx]);\r\n if (cDim == null || vDims.length < 5) {\r\n return;\r\n }\r\n for (var dataIndex = 0; dataIndex < data.count(); dataIndex++) {\r\n var axisDimVal = data.get(cDim, dataIndex);\r\n var median = getPoint(axisDimVal, vDims[2], dataIndex);\r\n var end1 = getPoint(axisDimVal, vDims[0], dataIndex);\r\n var end2 = getPoint(axisDimVal, vDims[1], dataIndex);\r\n var end4 = getPoint(axisDimVal, vDims[3], dataIndex);\r\n var end5 = getPoint(axisDimVal, vDims[4], dataIndex);\r\n var ends = [];\r\n addBodyEnd(ends, end2, false);\r\n addBodyEnd(ends, end4, true);\r\n ends.push(end1, end2, end5, end4);\r\n layEndLine(ends, end1);\r\n layEndLine(ends, end5);\r\n layEndLine(ends, median);\r\n data.setItemLayout(dataIndex, {\r\n initBaseline: median[vDimIdx],\r\n ends: ends\r\n });\r\n }\r\n function getPoint(axisDimVal, dim, dataIndex) {\r\n var val = data.get(dim, dataIndex);\r\n var p = [];\r\n p[cDimIdx] = axisDimVal;\r\n p[vDimIdx] = val;\r\n var point;\r\n if (isNaN(axisDimVal) || isNaN(val)) {\r\n point = [NaN, NaN];\r\n }\r\n else {\r\n point = coordSys.dataToPoint(p);\r\n point[cDimIdx] += offset;\r\n }\r\n return point;\r\n }\r\n function addBodyEnd(ends, point, start) {\r\n var point1 = point.slice();\r\n var point2 = point.slice();\r\n point1[cDimIdx] += halfWidth;\r\n point2[cDimIdx] -= halfWidth;\r\n start\r\n ? ends.push(point1, point2)\r\n : ends.push(point2, point1);\r\n }\r\n function layEndLine(ends, endCenter) {\r\n var from = endCenter.slice();\r\n var to = endCenter.slice();\r\n from[cDimIdx] -= halfWidth;\r\n to[cDimIdx] += halfWidth;\r\n ends.push(from, to);\r\n }\r\n }\n\n function prepareBoxplotData(rawData, opt) {\r\n opt = opt || {};\r\n var boxData = [];\r\n var outliers = [];\r\n var boundIQR = opt.boundIQR;\r\n var useExtreme = boundIQR === 'none' || boundIQR === 0;\r\n for (var i = 0; i < rawData.length; i++) {\r\n var ascList = asc(rawData[i].slice());\r\n var Q1 = quantile(ascList, 0.25);\r\n var Q2 = quantile(ascList, 0.5);\r\n var Q3 = quantile(ascList, 0.75);\r\n var min = ascList[0];\r\n var max = ascList[ascList.length - 1];\r\n var bound = (boundIQR == null ? 1.5 : boundIQR) * (Q3 - Q1);\r\n var low = useExtreme\r\n ? min\r\n : Math.max(min, Q1 - bound);\r\n var high = useExtreme\r\n ? max\r\n : Math.min(max, Q3 + bound);\r\n var itemNameFormatter = opt.itemNameFormatter;\r\n var itemName = isFunction(itemNameFormatter)\r\n ? itemNameFormatter({ value: i })\r\n : isString(itemNameFormatter)\r\n ? itemNameFormatter.replace('{value}', i + '')\r\n : i + '';\r\n boxData.push([itemName, low, Q1, Q2, Q3, high]);\r\n for (var j = 0; j < ascList.length; j++) {\r\n var dataItem = ascList[j];\r\n if (dataItem < low || dataItem > high) {\r\n var outlier = [itemName, dataItem];\r\n outliers.push(outlier);\r\n }\r\n }\r\n }\r\n return {\r\n boxData: boxData,\r\n outliers: outliers\r\n };\r\n }\n\n var boxplotTransform = {\r\n type: 'echarts:boxplot',\r\n transform: function transform(params) {\r\n var upstream = params.upstream;\r\n if (upstream.sourceFormat !== SOURCE_FORMAT_ARRAY_ROWS) {\r\n var errMsg = '';\r\n if (__DEV__) {\r\n errMsg = makePrintable('source data is not applicable for this boxplot transform. Expect number[][].');\r\n }\r\n throwError(errMsg);\r\n }\r\n var result = prepareBoxplotData(upstream.getRawData(), params.config);\r\n return [{\r\n dimensions: ['ItemName', 'Low', 'Q1', 'Q2', 'Q3', 'High'],\r\n data: result.boxData\r\n }, {\r\n data: result.outliers\r\n }];\r\n }\r\n };\n\n registerVisual(boxplotVisual);\r\n registerLayout(boxplotLayout);\r\n registerTransform(boxplotTransform);\n\n var CandlestickSeriesModel = (function (_super) {\r\n __extends(CandlestickSeriesModel, _super);\r\n function CandlestickSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = CandlestickSeriesModel.type;\r\n _this.defaultValueDimensions = [\r\n { name: 'open', defaultTooltip: true },\r\n { name: 'close', defaultTooltip: true },\r\n { name: 'lowest', defaultTooltip: true },\r\n { name: 'highest', defaultTooltip: true }\r\n ];\r\n return _this;\r\n }\r\n CandlestickSeriesModel.prototype.getShadowDim = function () {\r\n return 'open';\r\n };\r\n CandlestickSeriesModel.prototype.brushSelector = function (dataIndex, data, selectors) {\r\n var itemLayout = data.getItemLayout(dataIndex);\r\n return itemLayout && selectors.rect(itemLayout.brushRect);\r\n };\r\n CandlestickSeriesModel.type = 'series.candlestick';\r\n CandlestickSeriesModel.dependencies = ['xAxis', 'yAxis', 'grid'];\r\n CandlestickSeriesModel.defaultOption = {\r\n zlevel: 0,\r\n z: 2,\r\n coordinateSystem: 'cartesian2d',\r\n legendHoverLink: true,\r\n layout: null,\r\n clip: true,\r\n itemStyle: {\r\n color: '#c23531',\r\n color0: '#314656',\r\n borderWidth: 1,\r\n borderColor: '#c23531',\r\n borderColor0: '#314656'\r\n },\r\n emphasis: {\r\n scale: true,\r\n itemStyle: {\r\n borderWidth: 2\r\n }\r\n },\r\n barMaxWidth: null,\r\n barMinWidth: null,\r\n barWidth: null,\r\n large: true,\r\n largeThreshold: 600,\r\n progressive: 3e3,\r\n progressiveThreshold: 1e4,\r\n progressiveChunkMode: 'mod',\r\n animationEasing: 'linear',\r\n animationDuration: 300\r\n };\r\n return CandlestickSeriesModel;\r\n }(SeriesModel));\r\n mixin(CandlestickSeriesModel, WhiskerBoxCommonMixin, true);\r\n SeriesModel.registerClass(CandlestickSeriesModel);\n\n var SKIP_PROPS = ['color', 'borderColor'];\r\n var CandlestickView = (function (_super) {\r\n __extends(CandlestickView, _super);\r\n function CandlestickView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = CandlestickView.type;\r\n return _this;\r\n }\r\n CandlestickView.prototype.render = function (seriesModel, ecModel, api) {\r\n this.group.removeClipPath();\r\n this._updateDrawMode(seriesModel);\r\n this._isLargeDraw\r\n ? this._renderLarge(seriesModel)\r\n : this._renderNormal(seriesModel);\r\n };\r\n CandlestickView.prototype.incrementalPrepareRender = function (seriesModel, ecModel, api) {\r\n this._clear();\r\n this._updateDrawMode(seriesModel);\r\n };\r\n CandlestickView.prototype.incrementalRender = function (params, seriesModel, ecModel, api) {\r\n this._isLargeDraw\r\n ? this._incrementalRenderLarge(params, seriesModel)\r\n : this._incrementalRenderNormal(params, seriesModel);\r\n };\r\n CandlestickView.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 CandlestickView.prototype._renderNormal = function (seriesModel) {\r\n var data = seriesModel.getData();\r\n var oldData = this._data;\r\n var group = this.group;\r\n var isSimpleBox = data.getLayout('isSimpleBox');\r\n var needsClip = seriesModel.get('clip', true);\r\n var coord = seriesModel.coordinateSystem;\r\n var clipArea = coord.getArea && coord.getArea();\r\n if (!this._data) {\r\n group.removeAll();\r\n }\r\n data.diff(oldData)\r\n .add(function (newIdx) {\r\n if (data.hasValue(newIdx)) {\r\n var itemLayout = data.getItemLayout(newIdx);\r\n if (needsClip && isNormalBoxClipped(clipArea, itemLayout)) {\r\n return;\r\n }\r\n var el = createNormalBox$1(itemLayout, newIdx, true);\r\n initProps(el, { shape: { points: itemLayout.ends } }, seriesModel, newIdx);\r\n setBoxCommon(el, data, newIdx, isSimpleBox);\r\n group.add(el);\r\n data.setItemGraphicEl(newIdx, el);\r\n }\r\n })\r\n .update(function (newIdx, oldIdx) {\r\n var el = oldData.getItemGraphicEl(oldIdx);\r\n if (!data.hasValue(newIdx)) {\r\n group.remove(el);\r\n return;\r\n }\r\n var itemLayout = data.getItemLayout(newIdx);\r\n if (needsClip && isNormalBoxClipped(clipArea, itemLayout)) {\r\n group.remove(el);\r\n return;\r\n }\r\n if (!el) {\r\n el = createNormalBox$1(itemLayout);\r\n }\r\n else {\r\n updateProps(el, {\r\n shape: {\r\n points: itemLayout.ends\r\n }\r\n }, seriesModel, newIdx);\r\n }\r\n setBoxCommon(el, data, newIdx, isSimpleBox);\r\n group.add(el);\r\n data.setItemGraphicEl(newIdx, el);\r\n })\r\n .remove(function (oldIdx) {\r\n var el = oldData.getItemGraphicEl(oldIdx);\r\n el && group.remove(el);\r\n })\r\n .execute();\r\n this._data = data;\r\n };\r\n CandlestickView.prototype._renderLarge = function (seriesModel) {\r\n this._clear();\r\n createLarge$1(seriesModel, this.group);\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 CandlestickView.prototype._incrementalRenderNormal = function (params, seriesModel) {\r\n var data = seriesModel.getData();\r\n var isSimpleBox = data.getLayout('isSimpleBox');\r\n var dataIndex;\r\n while ((dataIndex = params.next()) != null) {\r\n var itemLayout = data.getItemLayout(dataIndex);\r\n var el = createNormalBox$1(itemLayout);\r\n setBoxCommon(el, data, dataIndex, isSimpleBox);\r\n el.incremental = true;\r\n this.group.add(el);\r\n }\r\n };\r\n CandlestickView.prototype._incrementalRenderLarge = function (params, seriesModel) {\r\n createLarge$1(seriesModel, this.group, true);\r\n };\r\n CandlestickView.prototype.remove = function (ecModel) {\r\n this._clear();\r\n };\r\n CandlestickView.prototype._clear = function () {\r\n this.group.removeAll();\r\n this._data = null;\r\n };\r\n CandlestickView.type = 'candlestick';\r\n return CandlestickView;\r\n }(ChartView));\r\n ChartView.registerClass(CandlestickView);\r\n var NormalBoxPathShape = (function () {\r\n function NormalBoxPathShape() {\r\n }\r\n return NormalBoxPathShape;\r\n }());\r\n var NormalBoxPath = (function (_super) {\r\n __extends(NormalBoxPath, _super);\r\n function NormalBoxPath(opts) {\r\n var _this = _super.call(this, opts) || this;\r\n _this.type = 'normalCandlestickBox';\r\n return _this;\r\n }\r\n NormalBoxPath.prototype.getDefaultShape = function () {\r\n return new NormalBoxPathShape();\r\n };\r\n NormalBoxPath.prototype.buildPath = function (ctx, shape) {\r\n var ends = shape.points;\r\n if (this.__simpleBox) {\r\n ctx.moveTo(ends[4][0], ends[4][1]);\r\n ctx.lineTo(ends[6][0], ends[6][1]);\r\n }\r\n else {\r\n ctx.moveTo(ends[0][0], ends[0][1]);\r\n ctx.lineTo(ends[1][0], ends[1][1]);\r\n ctx.lineTo(ends[2][0], ends[2][1]);\r\n ctx.lineTo(ends[3][0], ends[3][1]);\r\n ctx.closePath();\r\n ctx.moveTo(ends[4][0], ends[4][1]);\r\n ctx.lineTo(ends[5][0], ends[5][1]);\r\n ctx.moveTo(ends[6][0], ends[6][1]);\r\n ctx.lineTo(ends[7][0], ends[7][1]);\r\n }\r\n };\r\n return NormalBoxPath;\r\n }(Path));\r\n function createNormalBox$1(itemLayout, dataIndex, isInit) {\r\n var ends = itemLayout.ends;\r\n return new NormalBoxPath({\r\n shape: {\r\n points: isInit\r\n ? transInit$1(ends, itemLayout)\r\n : ends\r\n },\r\n z2: 100\r\n });\r\n }\r\n function isNormalBoxClipped(clipArea, itemLayout) {\r\n var clipped = true;\r\n for (var i = 0; i < itemLayout.ends.length; i++) {\r\n if (clipArea.contain(itemLayout.ends[i][0], itemLayout.ends[i][1])) {\r\n clipped = false;\r\n break;\r\n }\r\n }\r\n return clipped;\r\n }\r\n function setBoxCommon(el, data, dataIndex, isSimpleBox) {\r\n var itemModel = data.getItemModel(dataIndex);\r\n el.useStyle(data.getItemVisual(dataIndex, 'style'));\r\n el.style.strokeNoScale = true;\r\n el.__simpleBox = isSimpleBox;\r\n setStatesStylesFromModel(el, itemModel);\r\n }\r\n function transInit$1(points, itemLayout) {\r\n return map(points, function (point) {\r\n point = point.slice();\r\n point[1] = itemLayout.initBaseline;\r\n return point;\r\n });\r\n }\r\n var LargeBoxPathShape = (function () {\r\n function LargeBoxPathShape() {\r\n }\r\n return LargeBoxPathShape;\r\n }());\r\n var LargeBoxPath = (function (_super) {\r\n __extends(LargeBoxPath, _super);\r\n function LargeBoxPath(opts) {\r\n var _this = _super.call(this, opts) || this;\r\n _this.type = 'largeCandlestickBox';\r\n return _this;\r\n }\r\n LargeBoxPath.prototype.getDefaultShape = function () {\r\n return new LargeBoxPathShape();\r\n };\r\n LargeBoxPath.prototype.buildPath = function (ctx, shape) {\r\n var points = shape.points;\r\n for (var i = 0; i < points.length;) {\r\n if (this.__sign === points[i++]) {\r\n var x = points[i++];\r\n ctx.moveTo(x, points[i++]);\r\n ctx.lineTo(x, points[i++]);\r\n }\r\n else {\r\n i += 3;\r\n }\r\n }\r\n };\r\n return LargeBoxPath;\r\n }(Path));\r\n function createLarge$1(seriesModel, group, incremental) {\r\n var data = seriesModel.getData();\r\n var largePoints = data.getLayout('largePoints');\r\n var elP = new LargeBoxPath({\r\n shape: { points: largePoints },\r\n __sign: 1\r\n });\r\n group.add(elP);\r\n var elN = new LargeBoxPath({\r\n shape: { points: largePoints },\r\n __sign: -1\r\n });\r\n group.add(elN);\r\n setLargeStyle$1(1, elP, seriesModel);\r\n setLargeStyle$1(-1, elN, seriesModel);\r\n if (incremental) {\r\n elP.incremental = true;\r\n elN.incremental = true;\r\n }\r\n }\r\n function setLargeStyle$1(sign, el, seriesModel, data) {\r\n var borderColor = seriesModel.get(['itemStyle', sign > 0 ? 'borderColor' : 'borderColor0'])\r\n || seriesModel.get(['itemStyle', sign > 0 ? 'color' : 'color0']);\r\n var itemStyle = seriesModel.getModel('itemStyle').getItemStyle(SKIP_PROPS);\r\n el.useStyle(itemStyle);\r\n el.style.fill = null;\r\n el.style.stroke = borderColor;\r\n }\n\n function candlestickPreprocessor(option) {\r\n if (!option || !isArray(option.series)) {\r\n return;\r\n }\r\n each(option.series, function (seriesItem) {\r\n if (isObject(seriesItem) && seriesItem.type === 'k') {\r\n seriesItem.type = 'candlestick';\r\n }\r\n });\r\n }\n\n var positiveBorderColorQuery = ['itemStyle', 'borderColor'];\r\n var negativeBorderColorQuery = ['itemStyle', 'borderColor0'];\r\n var positiveColorQuery = ['itemStyle', 'color'];\r\n var negativeColorQuery = ['itemStyle', 'color0'];\r\n var candlestickVisual = {\r\n seriesType: 'candlestick',\r\n plan: createRenderPlanner(),\r\n performRawSeries: true,\r\n reset: function (seriesModel, ecModel) {\r\n function getColor(sign, model) {\r\n return model.get(sign > 0 ? positiveColorQuery : negativeColorQuery);\r\n }\r\n function getBorderColor(sign, model) {\r\n return model.get(sign > 0 ? positiveBorderColorQuery : negativeBorderColorQuery);\r\n }\r\n var data = seriesModel.getData();\r\n data.setVisual('legendSymbol', 'roundRect');\r\n if (ecModel.isSeriesFiltered(seriesModel)) {\r\n return;\r\n }\r\n var isLargeRender = seriesModel.pipelineContext.large;\r\n return !isLargeRender && {\r\n progress: function (params, data) {\r\n var dataIndex;\r\n while ((dataIndex = params.next()) != null) {\r\n var itemModel = data.getItemModel(dataIndex);\r\n var sign = data.getItemLayout(dataIndex).sign;\r\n var style = itemModel.getItemStyle();\r\n style.fill = getColor(sign, itemModel);\r\n style.stroke = getBorderColor(sign, itemModel) || style.fill;\r\n var existsStyle = data.ensureUniqueItemVisual(dataIndex, 'style');\r\n extend(existsStyle, style);\r\n }\r\n }\r\n };\r\n }\r\n };\n\n var LargeArr$1 = typeof Float32Array !== 'undefined' ? Float32Array : Array;\r\n var candlestickLayout = {\r\n seriesType: 'candlestick',\r\n plan: createRenderPlanner(),\r\n reset: function (seriesModel) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n var data = seriesModel.getData();\r\n var candleWidth = calculateCandleWidth(seriesModel, data);\r\n var cDimIdx = 0;\r\n var vDimIdx = 1;\r\n var coordDims = ['x', 'y'];\r\n var cDim = data.mapDimension(coordDims[cDimIdx]);\r\n var vDims = data.mapDimensionsAll(coordDims[vDimIdx]);\r\n var openDim = vDims[0];\r\n var closeDim = vDims[1];\r\n var lowestDim = vDims[2];\r\n var highestDim = vDims[3];\r\n data.setLayout({\r\n candleWidth: candleWidth,\r\n isSimpleBox: candleWidth <= 1.3\r\n });\r\n if (cDim == null || vDims.length < 4) {\r\n return;\r\n }\r\n return {\r\n progress: seriesModel.pipelineContext.large\r\n ? largeProgress : normalProgress\r\n };\r\n function normalProgress(params, data) {\r\n var dataIndex;\r\n while ((dataIndex = params.next()) != null) {\r\n var axisDimVal = data.get(cDim, dataIndex);\r\n var openVal = data.get(openDim, dataIndex);\r\n var closeVal = data.get(closeDim, dataIndex);\r\n var lowestVal = data.get(lowestDim, dataIndex);\r\n var highestVal = data.get(highestDim, dataIndex);\r\n var ocLow = Math.min(openVal, closeVal);\r\n var ocHigh = Math.max(openVal, closeVal);\r\n var ocLowPoint = getPoint(ocLow, axisDimVal);\r\n var ocHighPoint = getPoint(ocHigh, axisDimVal);\r\n var lowestPoint = getPoint(lowestVal, axisDimVal);\r\n var highestPoint = getPoint(highestVal, axisDimVal);\r\n var ends = [];\r\n addBodyEnd(ends, ocHighPoint, 0);\r\n addBodyEnd(ends, ocLowPoint, 1);\r\n ends.push(subPixelOptimizePoint(highestPoint), subPixelOptimizePoint(ocHighPoint), subPixelOptimizePoint(lowestPoint), subPixelOptimizePoint(ocLowPoint));\r\n data.setItemLayout(dataIndex, {\r\n sign: getSign(data, dataIndex, openVal, closeVal, closeDim),\r\n initBaseline: openVal > closeVal\r\n ? ocHighPoint[vDimIdx] : ocLowPoint[vDimIdx],\r\n ends: ends,\r\n brushRect: makeBrushRect(lowestVal, highestVal, axisDimVal)\r\n });\r\n }\r\n function getPoint(val, axisDimVal) {\r\n var p = [];\r\n p[cDimIdx] = axisDimVal;\r\n p[vDimIdx] = val;\r\n return (isNaN(axisDimVal) || isNaN(val))\r\n ? [NaN, NaN]\r\n : coordSys.dataToPoint(p);\r\n }\r\n function addBodyEnd(ends, point, start) {\r\n var point1 = point.slice();\r\n var point2 = point.slice();\r\n point1[cDimIdx] = subPixelOptimize$1(point1[cDimIdx] + candleWidth / 2, 1, false);\r\n point2[cDimIdx] = subPixelOptimize$1(point2[cDimIdx] - candleWidth / 2, 1, true);\r\n start\r\n ? ends.push(point1, point2)\r\n : ends.push(point2, point1);\r\n }\r\n function makeBrushRect(lowestVal, highestVal, axisDimVal) {\r\n var pmin = getPoint(lowestVal, axisDimVal);\r\n var pmax = getPoint(highestVal, axisDimVal);\r\n pmin[cDimIdx] -= candleWidth / 2;\r\n pmax[cDimIdx] -= candleWidth / 2;\r\n return {\r\n x: pmin[0],\r\n y: pmin[1],\r\n width: candleWidth ,\r\n height: pmax[1] - pmin[1] \r\n };\r\n }\r\n function subPixelOptimizePoint(point) {\r\n point[cDimIdx] = subPixelOptimize$1(point[cDimIdx], 1);\r\n return point;\r\n }\r\n }\r\n function largeProgress(params, data) {\r\n var points = new LargeArr$1(params.count * 4);\r\n var offset = 0;\r\n var point;\r\n var tmpIn = [];\r\n var tmpOut = [];\r\n var dataIndex;\r\n while ((dataIndex = params.next()) != null) {\r\n var axisDimVal = data.get(cDim, dataIndex);\r\n var openVal = data.get(openDim, dataIndex);\r\n var closeVal = data.get(closeDim, dataIndex);\r\n var lowestVal = data.get(lowestDim, dataIndex);\r\n var highestVal = data.get(highestDim, dataIndex);\r\n if (isNaN(axisDimVal) || isNaN(lowestVal) || isNaN(highestVal)) {\r\n points[offset++] = NaN;\r\n offset += 3;\r\n continue;\r\n }\r\n points[offset++] = getSign(data, dataIndex, openVal, closeVal, closeDim);\r\n tmpIn[cDimIdx] = axisDimVal;\r\n tmpIn[vDimIdx] = lowestVal;\r\n point = coordSys.dataToPoint(tmpIn, null, tmpOut);\r\n points[offset++] = point ? point[0] : NaN;\r\n points[offset++] = point ? point[1] : NaN;\r\n tmpIn[vDimIdx] = highestVal;\r\n point = coordSys.dataToPoint(tmpIn, null, tmpOut);\r\n points[offset++] = point ? point[1] : NaN;\r\n }\r\n data.setLayout('largePoints', points);\r\n }\r\n }\r\n };\r\n function getSign(data, dataIndex, openVal, closeVal, closeDim) {\r\n var sign;\r\n if (openVal > closeVal) {\r\n sign = -1;\r\n }\r\n else if (openVal < closeVal) {\r\n sign = 1;\r\n }\r\n else {\r\n sign = dataIndex > 0\r\n ? (data.get(closeDim, dataIndex - 1) <= closeVal ? 1 : -1)\r\n : 1;\r\n }\r\n return sign;\r\n }\r\n function calculateCandleWidth(seriesModel, data) {\r\n var baseAxis = seriesModel.getBaseAxis();\r\n var extent;\r\n var bandWidth = baseAxis.type === 'category'\r\n ? baseAxis.getBandWidth()\r\n : (extent = baseAxis.getExtent(),\r\n Math.abs(extent[1] - extent[0]) / data.count());\r\n var barMaxWidth = parsePercent$2(retrieve2(seriesModel.get('barMaxWidth'), bandWidth), bandWidth);\r\n var barMinWidth = parsePercent$2(retrieve2(seriesModel.get('barMinWidth'), 1), bandWidth);\r\n var barWidth = seriesModel.get('barWidth');\r\n return barWidth != null\r\n ? parsePercent$2(barWidth, bandWidth)\r\n : Math.max(Math.min(bandWidth / 2, barMaxWidth), barMinWidth);\r\n }\n\n registerPreprocessor(candlestickPreprocessor);\r\n registerVisual(candlestickVisual);\r\n registerLayout(candlestickLayout);\n\n var EffectScatterSeriesModel = (function (_super) {\r\n __extends(EffectScatterSeriesModel, _super);\r\n function EffectScatterSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = EffectScatterSeriesModel.type;\r\n _this.hasSymbolVisual = true;\r\n return _this;\r\n }\r\n EffectScatterSeriesModel.prototype.getInitialData = function (option, ecModel) {\r\n return createListFromArray(this.getSource(), this, { useEncodeDefaulter: true });\r\n };\r\n EffectScatterSeriesModel.prototype.brushSelector = function (dataIndex, data, selectors) {\r\n return selectors.point(data.getItemLayout(dataIndex));\r\n };\r\n EffectScatterSeriesModel.type = 'series.effectScatter';\r\n EffectScatterSeriesModel.dependencies = ['grid', 'polar'];\r\n EffectScatterSeriesModel.defaultOption = {\r\n coordinateSystem: 'cartesian2d',\r\n zlevel: 0,\r\n z: 2,\r\n legendHoverLink: true,\r\n effectType: 'ripple',\r\n progressive: 0,\r\n showEffectOn: 'render',\r\n rippleEffect: {\r\n period: 4,\r\n scale: 2.5,\r\n brushType: 'fill'\r\n },\r\n symbolSize: 10\r\n };\r\n return EffectScatterSeriesModel;\r\n }(SeriesModel));\r\n SeriesModel.registerClass(EffectScatterSeriesModel);\n\n var EFFECT_RIPPLE_NUMBER = 3;\r\n function normalizeSymbolSize$1(symbolSize) {\r\n if (!isArray(symbolSize)) {\r\n symbolSize = [+symbolSize, +symbolSize];\r\n }\r\n return symbolSize;\r\n }\r\n function updateRipplePath(rippleGroup, effectCfg) {\r\n var color = effectCfg.rippleEffectColor || effectCfg.color;\r\n rippleGroup.eachChild(function (ripplePath) {\r\n ripplePath.attr({\r\n z: effectCfg.z,\r\n zlevel: effectCfg.zlevel,\r\n style: {\r\n stroke: effectCfg.brushType === 'stroke' ? color : null,\r\n fill: effectCfg.brushType === 'fill' ? color : null\r\n }\r\n });\r\n });\r\n }\r\n var EffectSymbol = (function (_super) {\r\n __extends(EffectSymbol, _super);\r\n function EffectSymbol(data, idx) {\r\n var _this = _super.call(this) || this;\r\n var symbol = new Symbol(data, idx);\r\n var rippleGroup = new Group();\r\n _this.add(symbol);\r\n _this.add(rippleGroup);\r\n _this.updateData(data, idx);\r\n return _this;\r\n }\r\n EffectSymbol.prototype.stopEffectAnimation = function () {\r\n this.childAt(1).removeAll();\r\n };\r\n EffectSymbol.prototype.startEffectAnimation = function (effectCfg) {\r\n var symbolType = effectCfg.symbolType;\r\n var color = effectCfg.color;\r\n var rippleGroup = this.childAt(1);\r\n for (var i = 0; i < EFFECT_RIPPLE_NUMBER; i++) {\r\n var ripplePath = createSymbol(symbolType, -1, -1, 2, 2, color);\r\n ripplePath.attr({\r\n style: {\r\n strokeNoScale: true\r\n },\r\n z2: 99,\r\n silent: true,\r\n scaleX: 0.5,\r\n scaleY: 0.5\r\n });\r\n var delay = -i / EFFECT_RIPPLE_NUMBER * effectCfg.period + effectCfg.effectOffset;\r\n ripplePath.animate('', true)\r\n .when(effectCfg.period, {\r\n scale: [effectCfg.rippleScale / 2, effectCfg.rippleScale / 2]\r\n })\r\n .delay(delay)\r\n .start();\r\n ripplePath.animateStyle(true)\r\n .when(effectCfg.period, {\r\n opacity: 0\r\n })\r\n .delay(delay)\r\n .start();\r\n rippleGroup.add(ripplePath);\r\n }\r\n updateRipplePath(rippleGroup, effectCfg);\r\n };\r\n EffectSymbol.prototype.updateEffectAnimation = function (effectCfg) {\r\n var oldEffectCfg = this._effectCfg;\r\n var rippleGroup = this.childAt(1);\r\n var DIFFICULT_PROPS = ['symbolType', 'period', 'rippleScale'];\r\n for (var i = 0; i < DIFFICULT_PROPS.length; i++) {\r\n var propName = DIFFICULT_PROPS[i];\r\n if (oldEffectCfg[propName] !== effectCfg[propName]) {\r\n this.stopEffectAnimation();\r\n this.startEffectAnimation(effectCfg);\r\n return;\r\n }\r\n }\r\n updateRipplePath(rippleGroup, effectCfg);\r\n };\r\n EffectSymbol.prototype.highlight = function () {\r\n enterEmphasis(this);\r\n };\r\n EffectSymbol.prototype.downplay = function () {\r\n leaveEmphasis(this);\r\n };\r\n EffectSymbol.prototype.updateData = function (data, idx) {\r\n var _this = this;\r\n var seriesModel = data.hostModel;\r\n this.childAt(0).updateData(data, idx);\r\n var rippleGroup = this.childAt(1);\r\n var itemModel = data.getItemModel(idx);\r\n var symbolType = data.getItemVisual(idx, 'symbol');\r\n var symbolSize = normalizeSymbolSize$1(data.getItemVisual(idx, 'symbolSize'));\r\n var symbolStyle = data.getItemVisual(idx, 'style');\r\n var color = symbolStyle && symbolStyle.fill;\r\n rippleGroup.setScale(symbolSize);\r\n rippleGroup.traverse(function (ripplePath) {\r\n ripplePath.setStyle('fill', color);\r\n });\r\n var symbolOffset = itemModel.getShallow('symbolOffset');\r\n if (symbolOffset) {\r\n rippleGroup.x = parsePercent$2(symbolOffset[0], symbolSize[0]);\r\n rippleGroup.y = parsePercent$2(symbolOffset[1], symbolSize[1]);\r\n }\r\n var symbolRotate = data.getItemVisual(idx, 'symbolRotate');\r\n rippleGroup.rotation = (symbolRotate || 0) * Math.PI / 180 || 0;\r\n var effectCfg = {};\r\n effectCfg.showEffectOn = seriesModel.get('showEffectOn');\r\n effectCfg.rippleScale = itemModel.get(['rippleEffect', 'scale']);\r\n effectCfg.brushType = itemModel.get(['rippleEffect', 'brushType']);\r\n effectCfg.period = itemModel.get(['rippleEffect', 'period']) * 1000;\r\n effectCfg.effectOffset = idx / data.count();\r\n effectCfg.z = seriesModel.getShallow('z') || 0;\r\n effectCfg.zlevel = seriesModel.getShallow('zlevel') || 0;\r\n effectCfg.symbolType = symbolType;\r\n effectCfg.color = color;\r\n effectCfg.rippleEffectColor = itemModel.get(['rippleEffect', 'color']);\r\n this.off('mouseover').off('mouseout').off('emphasis').off('normal');\r\n if (effectCfg.showEffectOn === 'render') {\r\n this._effectCfg\r\n ? this.updateEffectAnimation(effectCfg)\r\n : this.startEffectAnimation(effectCfg);\r\n this._effectCfg = effectCfg;\r\n }\r\n else {\r\n this._effectCfg = null;\r\n this.stopEffectAnimation();\r\n this.onHoverStateChange = function (toState) {\r\n if (toState === 'emphasis') {\r\n if (effectCfg.showEffectOn !== 'render') {\r\n _this.startEffectAnimation(effectCfg);\r\n }\r\n }\r\n else if (toState === 'normal') {\r\n if (effectCfg.showEffectOn !== 'render') {\r\n _this.stopEffectAnimation();\r\n }\r\n }\r\n };\r\n }\r\n this._effectCfg = effectCfg;\r\n enableHoverEmphasis(this);\r\n };\r\n EffectSymbol.prototype.fadeOut = function (cb) {\r\n this.off('mouseover').off('mouseout');\r\n cb && cb();\r\n };\r\n return EffectSymbol;\r\n }(Group));\r\n inherits(EffectSymbol, Group);\n\n var EffectScatterView = (function (_super) {\r\n __extends(EffectScatterView, _super);\r\n function EffectScatterView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = EffectScatterView.type;\r\n return _this;\r\n }\r\n EffectScatterView.prototype.init = function () {\r\n this._symbolDraw = new SymbolDraw(EffectSymbol);\r\n };\r\n EffectScatterView.prototype.render = function (seriesModel, ecModel, api) {\r\n var data = seriesModel.getData();\r\n var effectSymbolDraw = this._symbolDraw;\r\n effectSymbolDraw.updateData(data);\r\n this.group.add(effectSymbolDraw.group);\r\n };\r\n EffectScatterView.prototype.updateTransform = function (seriesModel, ecModel, api) {\r\n var data = seriesModel.getData();\r\n this.group.dirty();\r\n var res = pointsLayout('').reset(seriesModel, ecModel, api);\r\n if (res.progress) {\r\n res.progress({\r\n start: 0,\r\n end: data.count(),\r\n count: data.count()\r\n }, data);\r\n }\r\n this._symbolDraw.updateLayout();\r\n };\r\n EffectScatterView.prototype._updateGroupTransform = function (seriesModel) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n if (coordSys && coordSys.getRoamTransform) {\r\n this.group.transform = clone$2(coordSys.getRoamTransform());\r\n this.group.decomposeTransform();\r\n }\r\n };\r\n EffectScatterView.prototype.remove = function (ecModel, api) {\r\n this._symbolDraw && this._symbolDraw.remove(true);\r\n };\r\n EffectScatterView.type = 'effectScatter';\r\n return EffectScatterView;\r\n }(ChartView));\r\n ChartView.registerClass(EffectScatterView);\n\n registerLayout(pointsLayout('effectScatter'));\n\n var Uint32Arr = typeof Uint32Array === 'undefined' ? Array : Uint32Array;\r\n var Float64Arr = typeof Float64Array === 'undefined' ? Array : Float64Array;\r\n function compatEc2(seriesOpt) {\r\n var data = seriesOpt.data;\r\n if (data && data[0] && data[0][0] && data[0][0].coord) {\r\n if (__DEV__) {\r\n console.warn('Lines data configuration has been changed to'\r\n + ' { coords:[[1,2],[2,3]] }');\r\n }\r\n seriesOpt.data = map(data, function (itemOpt) {\r\n var coords = [\r\n itemOpt[0].coord, itemOpt[1].coord\r\n ];\r\n var target = {\r\n coords: coords\r\n };\r\n if (itemOpt[0].name) {\r\n target.fromName = itemOpt[0].name;\r\n }\r\n if (itemOpt[1].name) {\r\n target.toName = itemOpt[1].name;\r\n }\r\n return mergeAll([target, itemOpt[0], itemOpt[1]]);\r\n });\r\n }\r\n }\r\n var LinesSeriesModel = (function (_super) {\r\n __extends(LinesSeriesModel, _super);\r\n function LinesSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = LinesSeriesModel.type;\r\n _this.visualStyleAccessPath = 'lineStyle';\r\n _this.visualDrawType = 'stroke';\r\n return _this;\r\n }\r\n LinesSeriesModel.prototype.init = function (option) {\r\n option.data = option.data || [];\r\n compatEc2(option);\r\n var result = this._processFlatCoordsArray(option.data);\r\n this._flatCoords = result.flatCoords;\r\n this._flatCoordsOffset = result.flatCoordsOffset;\r\n if (result.flatCoords) {\r\n option.data = new Float32Array(result.count);\r\n }\r\n _super.prototype.init.apply(this, arguments);\r\n };\r\n LinesSeriesModel.prototype.mergeOption = function (option) {\r\n compatEc2(option);\r\n if (option.data) {\r\n var result = this._processFlatCoordsArray(option.data);\r\n this._flatCoords = result.flatCoords;\r\n this._flatCoordsOffset = result.flatCoordsOffset;\r\n if (result.flatCoords) {\r\n option.data = new Float32Array(result.count);\r\n }\r\n }\r\n _super.prototype.mergeOption.apply(this, arguments);\r\n };\r\n LinesSeriesModel.prototype.appendData = function (params) {\r\n var result = this._processFlatCoordsArray(params.data);\r\n if (result.flatCoords) {\r\n if (!this._flatCoords) {\r\n this._flatCoords = result.flatCoords;\r\n this._flatCoordsOffset = result.flatCoordsOffset;\r\n }\r\n else {\r\n this._flatCoords = concatArray(this._flatCoords, result.flatCoords);\r\n this._flatCoordsOffset = concatArray(this._flatCoordsOffset, result.flatCoordsOffset);\r\n }\r\n params.data = new Float32Array(result.count);\r\n }\r\n this.getRawData().appendData(params.data);\r\n };\r\n LinesSeriesModel.prototype._getCoordsFromItemModel = function (idx) {\r\n var itemModel = this.getData().getItemModel(idx);\r\n var coords = (itemModel.option instanceof Array)\r\n ? itemModel.option : itemModel.getShallow('coords');\r\n if (__DEV__) {\r\n if (!(coords instanceof Array && coords.length > 0 && coords[0] instanceof Array)) {\r\n throw new Error('Invalid coords ' + JSON.stringify(coords) + '. Lines must have 2d coords array in data item.');\r\n }\r\n }\r\n return coords;\r\n };\r\n LinesSeriesModel.prototype.getLineCoordsCount = function (idx) {\r\n if (this._flatCoordsOffset) {\r\n return this._flatCoordsOffset[idx * 2 + 1];\r\n }\r\n else {\r\n return this._getCoordsFromItemModel(idx).length;\r\n }\r\n };\r\n LinesSeriesModel.prototype.getLineCoords = function (idx, out) {\r\n if (this._flatCoordsOffset) {\r\n var offset = this._flatCoordsOffset[idx * 2];\r\n var len = this._flatCoordsOffset[idx * 2 + 1];\r\n for (var i = 0; i < len; i++) {\r\n out[i] = out[i] || [];\r\n out[i][0] = this._flatCoords[offset + i * 2];\r\n out[i][1] = this._flatCoords[offset + i * 2 + 1];\r\n }\r\n return len;\r\n }\r\n else {\r\n var coords = this._getCoordsFromItemModel(idx);\r\n for (var i = 0; i < coords.length; i++) {\r\n out[i] = out[i] || [];\r\n out[i][0] = coords[i][0];\r\n out[i][1] = coords[i][1];\r\n }\r\n return coords.length;\r\n }\r\n };\r\n LinesSeriesModel.prototype._processFlatCoordsArray = function (data) {\r\n var startOffset = 0;\r\n if (this._flatCoords) {\r\n startOffset = this._flatCoords.length;\r\n }\r\n if (typeof data[0] === 'number') {\r\n var len = data.length;\r\n var coordsOffsetAndLenStorage = new Uint32Arr(len);\r\n var coordsStorage = new Float64Arr(len);\r\n var coordsCursor = 0;\r\n var offsetCursor = 0;\r\n var dataCount = 0;\r\n for (var i = 0; i < len;) {\r\n dataCount++;\r\n var count = data[i++];\r\n coordsOffsetAndLenStorage[offsetCursor++] = coordsCursor + startOffset;\r\n coordsOffsetAndLenStorage[offsetCursor++] = count;\r\n for (var k = 0; k < count; k++) {\r\n var x = data[i++];\r\n var y = data[i++];\r\n coordsStorage[coordsCursor++] = x;\r\n coordsStorage[coordsCursor++] = y;\r\n if (i > len) {\r\n if (__DEV__) {\r\n throw new Error('Invalid data format.');\r\n }\r\n }\r\n }\r\n }\r\n return {\r\n flatCoordsOffset: new Uint32Array(coordsOffsetAndLenStorage.buffer, 0, offsetCursor),\r\n flatCoords: coordsStorage,\r\n count: dataCount\r\n };\r\n }\r\n return {\r\n flatCoordsOffset: null,\r\n flatCoords: null,\r\n count: data.length\r\n };\r\n };\r\n LinesSeriesModel.prototype.getInitialData = function (option, ecModel) {\r\n if (__DEV__) {\r\n var CoordSys = CoordinateSystemManager.get(option.coordinateSystem);\r\n if (!CoordSys) {\r\n throw new Error('Unkown coordinate system ' + option.coordinateSystem);\r\n }\r\n }\r\n var lineData = new List(['value'], this);\r\n lineData.hasItemOption = false;\r\n lineData.initData(option.data, [], function (dataItem, dimName, dataIndex, dimIndex) {\r\n if (dataItem instanceof Array) {\r\n return NaN;\r\n }\r\n else {\r\n lineData.hasItemOption = true;\r\n var value = dataItem.value;\r\n if (value != null) {\r\n return value instanceof Array ? value[dimIndex] : value;\r\n }\r\n }\r\n });\r\n return lineData;\r\n };\r\n LinesSeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\r\n var data = this.getData();\r\n var itemModel = data.getItemModel(dataIndex);\r\n var name = itemModel.get('name');\r\n if (name) {\r\n return name;\r\n }\r\n var fromName = itemModel.get('fromName');\r\n var toName = itemModel.get('toName');\r\n var nameArr = [];\r\n fromName != null && nameArr.push(fromName);\r\n toName != null && nameArr.push(toName);\r\n return createTooltipMarkup('nameValue', {\r\n name: nameArr.join(' > ')\r\n });\r\n };\r\n LinesSeriesModel.prototype.preventIncremental = function () {\r\n return !!this.get(['effect', 'show']);\r\n };\r\n LinesSeriesModel.prototype.getProgressive = function () {\r\n var progressive = this.option.progressive;\r\n if (progressive == null) {\r\n return this.option.large ? 1e4 : this.get('progressive');\r\n }\r\n return progressive;\r\n };\r\n LinesSeriesModel.prototype.getProgressiveThreshold = function () {\r\n var progressiveThreshold = this.option.progressiveThreshold;\r\n if (progressiveThreshold == null) {\r\n return this.option.large ? 2e4 : this.get('progressiveThreshold');\r\n }\r\n return progressiveThreshold;\r\n };\r\n LinesSeriesModel.type = 'series.lines';\r\n LinesSeriesModel.dependencies = ['grid', 'polar', 'geo', 'calendar'];\r\n LinesSeriesModel.defaultOption = {\r\n coordinateSystem: 'geo',\r\n zlevel: 0,\r\n z: 2,\r\n legendHoverLink: true,\r\n xAxisIndex: 0,\r\n yAxisIndex: 0,\r\n symbol: ['none', 'none'],\r\n symbolSize: [10, 10],\r\n geoIndex: 0,\r\n effect: {\r\n show: false,\r\n period: 4,\r\n constantSpeed: 0,\r\n symbol: 'circle',\r\n symbolSize: 3,\r\n loop: true,\r\n trailLength: 0.2\r\n },\r\n large: false,\r\n largeThreshold: 2000,\r\n polyline: false,\r\n clip: true,\r\n label: {\r\n show: false,\r\n position: 'end'\r\n },\r\n lineStyle: {\r\n opacity: 0.5\r\n }\r\n };\r\n return LinesSeriesModel;\r\n }(SeriesModel));\r\n SeriesModel.registerClass(LinesSeriesModel);\n\n var EffectLine = (function (_super) {\r\n __extends(EffectLine, _super);\r\n function EffectLine(lineData, idx, seriesScope) {\r\n var _this = _super.call(this) || this;\r\n _this.add(_this.createLine(lineData, idx, seriesScope));\r\n _this._updateEffectSymbol(lineData, idx);\r\n return _this;\r\n }\r\n EffectLine.prototype.createLine = function (lineData, idx, seriesScope) {\r\n return new Line$1(lineData, idx, seriesScope);\r\n };\r\n EffectLine.prototype._updateEffectSymbol = function (lineData, idx) {\r\n var itemModel = lineData.getItemModel(idx);\r\n var effectModel = itemModel.getModel('effect');\r\n var size = effectModel.get('symbolSize');\r\n var symbolType = effectModel.get('symbol');\r\n if (!isArray(size)) {\r\n size = [size, size];\r\n }\r\n var lineStyle = lineData.getItemVisual(idx, 'style');\r\n var color = effectModel.get('color') || (lineStyle && lineStyle.stroke);\r\n var symbol = this.childAt(1);\r\n if (this._symbolType !== symbolType) {\r\n this.remove(symbol);\r\n symbol = createSymbol(symbolType, -0.5, -0.5, 1, 1, color);\r\n symbol.z2 = 100;\r\n symbol.culling = true;\r\n this.add(symbol);\r\n }\r\n if (!symbol) {\r\n return;\r\n }\r\n symbol.setStyle('shadowColor', color);\r\n symbol.setStyle(effectModel.getItemStyle(['color']));\r\n symbol.scaleX = size[0];\r\n symbol.scaleY = size[1];\r\n symbol.setColor(color);\r\n this._symbolType = symbolType;\r\n this._symbolScale = size;\r\n this._updateEffectAnimation(lineData, effectModel, idx);\r\n };\r\n EffectLine.prototype._updateEffectAnimation = function (lineData, effectModel, idx) {\r\n var symbol = this.childAt(1);\r\n if (!symbol) {\r\n return;\r\n }\r\n var self = this;\r\n var points = lineData.getItemLayout(idx);\r\n var period = effectModel.get('period') * 1000;\r\n var loop = effectModel.get('loop');\r\n var constantSpeed = effectModel.get('constantSpeed');\r\n var delayExpr = retrieve(effectModel.get('delay'), function (idx) {\r\n return idx / lineData.count() * period / 3;\r\n });\r\n symbol.ignore = true;\r\n this._updateAnimationPoints(symbol, points);\r\n if (constantSpeed > 0) {\r\n period = this._getLineLength(symbol) / constantSpeed * 1000;\r\n }\r\n if (period !== this._period || loop !== this._loop) {\r\n symbol.stopAnimation();\r\n if (period > 0) {\r\n var delayNum = void 0;\r\n if (typeof delayExpr === 'function') {\r\n delayNum = delayExpr(idx);\r\n }\r\n else {\r\n delayNum = delayExpr;\r\n }\r\n if (symbol.__t > 0) {\r\n delayNum = -period * symbol.__t;\r\n }\r\n symbol.__t = 0;\r\n var animator = symbol.animate('', loop)\r\n .when(period, {\r\n __t: 1\r\n })\r\n .delay(delayNum)\r\n .during(function () {\r\n self._updateSymbolPosition(symbol);\r\n });\r\n if (!loop) {\r\n animator.done(function () {\r\n self.remove(symbol);\r\n });\r\n }\r\n animator.start();\r\n }\r\n }\r\n this._period = period;\r\n this._loop = loop;\r\n };\r\n EffectLine.prototype._getLineLength = function (symbol) {\r\n return (dist(symbol.__p1, symbol.__cp1)\r\n + dist(symbol.__cp1, symbol.__p2));\r\n };\r\n EffectLine.prototype._updateAnimationPoints = function (symbol, points) {\r\n symbol.__p1 = points[0];\r\n symbol.__p2 = points[1];\r\n symbol.__cp1 = points[2] || [\r\n (points[0][0] + points[1][0]) / 2,\r\n (points[0][1] + points[1][1]) / 2\r\n ];\r\n };\r\n EffectLine.prototype.updateData = function (lineData, idx, seriesScope) {\r\n this.childAt(0).updateData(lineData, idx, seriesScope);\r\n this._updateEffectSymbol(lineData, idx);\r\n };\r\n EffectLine.prototype._updateSymbolPosition = function (symbol) {\r\n var p1 = symbol.__p1;\r\n var p2 = symbol.__p2;\r\n var cp1 = symbol.__cp1;\r\n var t = symbol.__t;\r\n var pos = [symbol.x, symbol.y];\r\n var lastPos = pos.slice();\r\n var quadraticAt$1 = quadraticAt;\r\n var quadraticDerivativeAt$1 = quadraticDerivativeAt;\r\n pos[0] = quadraticAt$1(p1[0], cp1[0], p2[0], t);\r\n pos[1] = quadraticAt$1(p1[1], cp1[1], p2[1], t);\r\n var tx = quadraticDerivativeAt$1(p1[0], cp1[0], p2[0], t);\r\n var ty = quadraticDerivativeAt$1(p1[1], cp1[1], p2[1], t);\r\n symbol.rotation = -Math.atan2(ty, tx) - Math.PI / 2;\r\n if (this._symbolType === 'line' || this._symbolType === 'rect' || this._symbolType === 'roundRect') {\r\n if (symbol.__lastT !== undefined && symbol.__lastT < symbol.__t) {\r\n symbol.scaleY = dist(lastPos, pos) * 1.05;\r\n if (t === 1) {\r\n pos[0] = lastPos[0] + (pos[0] - lastPos[0]) / 2;\r\n pos[1] = lastPos[1] + (pos[1] - lastPos[1]) / 2;\r\n }\r\n }\r\n else if (symbol.__lastT === 1) {\r\n symbol.scaleY = 2 * dist(p1, pos);\r\n }\r\n else {\r\n symbol.scaleY = this._symbolScale[1];\r\n }\r\n }\r\n symbol.__lastT = symbol.__t;\r\n symbol.ignore = false;\r\n symbol.x = pos[0];\r\n symbol.y = pos[1];\r\n };\r\n EffectLine.prototype.updateLayout = function (lineData, idx) {\r\n this.childAt(0).updateLayout(lineData, idx);\r\n var effectModel = lineData.getItemModel(idx).getModel('effect');\r\n this._updateEffectAnimation(lineData, effectModel, idx);\r\n };\r\n return EffectLine;\r\n }(Group));\n\n var Polyline$1 = (function (_super) {\r\n __extends(Polyline$1, _super);\r\n function Polyline$1(lineData, idx, seriesScope) {\r\n var _this = _super.call(this) || this;\r\n _this._createPolyline(lineData, idx, seriesScope);\r\n return _this;\r\n }\r\n Polyline$1.prototype._createPolyline = function (lineData, idx, seriesScope) {\r\n var points = lineData.getItemLayout(idx);\r\n var line = new Polyline({\r\n shape: {\r\n points: points\r\n }\r\n });\r\n this.add(line);\r\n this._updateCommonStl(lineData, idx, seriesScope);\r\n };\r\n Polyline$1.prototype.updateData = function (lineData, idx, seriesScope) {\r\n var seriesModel = lineData.hostModel;\r\n var line = this.childAt(0);\r\n var target = {\r\n shape: {\r\n points: lineData.getItemLayout(idx)\r\n }\r\n };\r\n updateProps(line, target, seriesModel, idx);\r\n this._updateCommonStl(lineData, idx, seriesScope);\r\n };\r\n Polyline$1.prototype._updateCommonStl = function (lineData, idx, seriesScope) {\r\n var line = this.childAt(0);\r\n var itemModel = lineData.getItemModel(idx);\r\n var hoverLineStyle = seriesScope && seriesScope.emphasisLineStyle;\r\n if (!seriesScope || lineData.hasItemOption) {\r\n hoverLineStyle = itemModel.getModel(['emphasis', 'lineStyle']).getLineStyle();\r\n }\r\n line.useStyle(lineData.getItemVisual(idx, 'style'));\r\n line.style.fill = null;\r\n line.style.strokeNoScale = true;\r\n var lineEmphasisState = line.ensureState('emphasis');\r\n lineEmphasisState.style = hoverLineStyle;\r\n enableHoverEmphasis(this);\r\n };\r\n Polyline$1.prototype.updateLayout = function (lineData, idx) {\r\n var polyline = this.childAt(0);\r\n polyline.setShape('points', lineData.getItemLayout(idx));\r\n };\r\n return Polyline$1;\r\n }(Group));\n\n var EffectPolyline = (function (_super) {\r\n __extends(EffectPolyline, _super);\r\n function EffectPolyline() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this._lastFrame = 0;\r\n _this._lastFramePercent = 0;\r\n return _this;\r\n }\r\n EffectPolyline.prototype.createLine = function (lineData, idx, seriesScope) {\r\n return new Polyline$1(lineData, idx, seriesScope);\r\n };\r\n EffectPolyline.prototype._updateAnimationPoints = function (symbol, points) {\r\n this._points = points;\r\n var accLenArr = [0];\r\n var len = 0;\r\n for (var i = 1; i < points.length; i++) {\r\n var p1 = points[i - 1];\r\n var p2 = points[i];\r\n len += dist(p1, p2);\r\n accLenArr.push(len);\r\n }\r\n if (len === 0) {\r\n this._length = 0;\r\n return;\r\n }\r\n for (var i = 0; i < accLenArr.length; i++) {\r\n accLenArr[i] /= len;\r\n }\r\n this._offsets = accLenArr;\r\n this._length = len;\r\n };\r\n EffectPolyline.prototype._getLineLength = function () {\r\n return this._length;\r\n };\r\n EffectPolyline.prototype._updateSymbolPosition = function (symbol) {\r\n var t = symbol.__t;\r\n var points = this._points;\r\n var offsets = this._offsets;\r\n var len = points.length;\r\n if (!offsets) {\r\n return;\r\n }\r\n var lastFrame = this._lastFrame;\r\n var frame;\r\n if (t < this._lastFramePercent) {\r\n var start = Math.min(lastFrame + 1, len - 1);\r\n for (frame = start; frame >= 0; frame--) {\r\n if (offsets[frame] <= t) {\r\n break;\r\n }\r\n }\r\n frame = Math.min(frame, len - 2);\r\n }\r\n else {\r\n for (frame = lastFrame; frame < len; frame++) {\r\n if (offsets[frame] > t) {\r\n break;\r\n }\r\n }\r\n frame = Math.min(frame - 1, len - 2);\r\n }\r\n var p = (t - offsets[frame]) / (offsets[frame + 1] - offsets[frame]);\r\n var p0 = points[frame];\r\n var p1 = points[frame + 1];\r\n symbol.x = p0[0] * (1 - p) + p * p1[0];\r\n symbol.y = p0[1] * (1 - p) + p * p1[1];\r\n var tx = p1[0] - p0[0];\r\n var ty = p1[1] - p0[1];\r\n symbol.rotation = -Math.atan2(ty, tx) - Math.PI / 2;\r\n this._lastFrame = frame;\r\n this._lastFramePercent = t;\r\n symbol.ignore = false;\r\n };\r\n return EffectPolyline;\r\n }(EffectLine));\n\n var LargeLinesPathShape = (function () {\r\n function LargeLinesPathShape() {\r\n this.polyline = false;\r\n this.curveness = 0;\r\n this.segs = [];\r\n }\r\n return LargeLinesPathShape;\r\n }());\r\n var LargeLinesPath = (function (_super) {\r\n __extends(LargeLinesPath, _super);\r\n function LargeLinesPath(opts) {\r\n return _super.call(this, opts) || this;\r\n }\r\n LargeLinesPath.prototype.getDefaultStyle = function () {\r\n return {\r\n stroke: '#000',\r\n fill: null\r\n };\r\n };\r\n LargeLinesPath.prototype.getDefaultShape = function () {\r\n return new LargeLinesPathShape();\r\n };\r\n LargeLinesPath.prototype.buildPath = function (ctx, shape) {\r\n var segs = shape.segs;\r\n var curveness = shape.curveness;\r\n if (shape.polyline) {\r\n for (var i = 0; i < segs.length;) {\r\n var count = segs[i++];\r\n if (count > 0) {\r\n ctx.moveTo(segs[i++], segs[i++]);\r\n for (var k = 1; k < count; k++) {\r\n ctx.lineTo(segs[i++], segs[i++]);\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n for (var i = 0; i < segs.length;) {\r\n var x0 = segs[i++];\r\n var y0 = segs[i++];\r\n var x1 = segs[i++];\r\n var y1 = segs[i++];\r\n ctx.moveTo(x0, y0);\r\n if (curveness > 0) {\r\n var x2 = (x0 + x1) / 2 - (y0 - y1) * curveness;\r\n var y2 = (y0 + y1) / 2 - (x1 - x0) * curveness;\r\n ctx.quadraticCurveTo(x2, y2, x1, y1);\r\n }\r\n else {\r\n ctx.lineTo(x1, y1);\r\n }\r\n }\r\n }\r\n };\r\n LargeLinesPath.prototype.findDataIndex = function (x, y) {\r\n var shape = this.shape;\r\n var segs = shape.segs;\r\n var curveness = shape.curveness;\r\n var lineWidth = this.style.lineWidth;\r\n if (shape.polyline) {\r\n var dataIndex = 0;\r\n for (var i = 0; i < segs.length;) {\r\n var count = segs[i++];\r\n if (count > 0) {\r\n var x0 = segs[i++];\r\n var y0 = segs[i++];\r\n for (var k = 1; k < count; k++) {\r\n var x1 = segs[i++];\r\n var y1 = segs[i++];\r\n if (containStroke(x0, y0, x1, y1, lineWidth, x, y)) {\r\n return dataIndex;\r\n }\r\n }\r\n }\r\n dataIndex++;\r\n }\r\n }\r\n else {\r\n var dataIndex = 0;\r\n for (var i = 0; i < segs.length;) {\r\n var x0 = segs[i++];\r\n var y0 = segs[i++];\r\n var x1 = segs[i++];\r\n var y1 = segs[i++];\r\n if (curveness > 0) {\r\n var x2 = (x0 + x1) / 2 - (y0 - y1) * curveness;\r\n var y2 = (y0 + y1) / 2 - (x1 - x0) * curveness;\r\n if (containStroke$2(x0, y0, x2, y2, x1, y1, lineWidth, x, y)) {\r\n return dataIndex;\r\n }\r\n }\r\n else {\r\n if (containStroke(x0, y0, x1, y1, lineWidth, x, y)) {\r\n return dataIndex;\r\n }\r\n }\r\n dataIndex++;\r\n }\r\n }\r\n return -1;\r\n };\r\n return LargeLinesPath;\r\n }(Path));\r\n var LargeLineDraw = (function () {\r\n function LargeLineDraw() {\r\n this.group = new Group();\r\n }\r\n LargeLineDraw.prototype.isPersistent = function () {\r\n return !this._incremental;\r\n };\r\n LargeLineDraw.prototype.updateData = function (data) {\r\n this.group.removeAll();\r\n var lineEl = new LargeLinesPath({\r\n rectHover: true,\r\n cursor: 'default'\r\n });\r\n lineEl.setShape({\r\n segs: data.getLayout('linesPoints')\r\n });\r\n this._setCommon(lineEl, data);\r\n this.group.add(lineEl);\r\n this._incremental = null;\r\n };\r\n LargeLineDraw.prototype.incrementalPrepareUpdate = function (data) {\r\n this.group.removeAll();\r\n this._clearIncremental();\r\n if (data.count() > 5e5) {\r\n if (!this._incremental) {\r\n this._incremental = new IncrementalDisplayble({\r\n silent: true\r\n });\r\n }\r\n this.group.add(this._incremental);\r\n }\r\n else {\r\n this._incremental = null;\r\n }\r\n };\r\n LargeLineDraw.prototype.incrementalUpdate = function (taskParams, data) {\r\n var lineEl = new LargeLinesPath();\r\n lineEl.setShape({\r\n segs: data.getLayout('linesPoints')\r\n });\r\n this._setCommon(lineEl, data, !!this._incremental);\r\n if (!this._incremental) {\r\n lineEl.rectHover = true;\r\n lineEl.cursor = 'default';\r\n lineEl.__startIndex = taskParams.start;\r\n this.group.add(lineEl);\r\n }\r\n else {\r\n this._incremental.addDisplayable(lineEl, true);\r\n }\r\n };\r\n LargeLineDraw.prototype.remove = function () {\r\n this._clearIncremental();\r\n this._incremental = null;\r\n this.group.removeAll();\r\n };\r\n LargeLineDraw.prototype._setCommon = function (lineEl, data, isIncremental) {\r\n var hostModel = data.hostModel;\r\n lineEl.setShape({\r\n polyline: hostModel.get('polyline'),\r\n curveness: hostModel.get(['lineStyle', 'curveness'])\r\n });\r\n lineEl.useStyle(hostModel.getModel('lineStyle').getLineStyle());\r\n lineEl.style.strokeNoScale = true;\r\n var style = data.getVisual('style');\r\n if (style && style.stroke) {\r\n lineEl.setStyle('stroke', style.stroke);\r\n }\r\n lineEl.setStyle('fill', null);\r\n if (!isIncremental) {\r\n var ecData_1 = getECData(lineEl);\r\n ecData_1.seriesIndex = hostModel.seriesIndex;\r\n lineEl.on('mousemove', function (e) {\r\n ecData_1.dataIndex = null;\r\n var dataIndex = lineEl.findDataIndex(e.offsetX, e.offsetY);\r\n if (dataIndex > 0) {\r\n ecData_1.dataIndex = dataIndex + lineEl.__startIndex;\r\n }\r\n });\r\n }\r\n };\r\n LargeLineDraw.prototype._clearIncremental = function () {\r\n var incremental = this._incremental;\r\n if (incremental) {\r\n incremental.clearDisplaybles();\r\n }\r\n };\r\n return LargeLineDraw;\r\n }());\n\n var linesLayout = {\r\n seriesType: 'lines',\r\n plan: createRenderPlanner(),\r\n reset: function (seriesModel) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n var isPolyline = seriesModel.get('polyline');\r\n var isLarge = seriesModel.pipelineContext.large;\r\n return {\r\n progress: function (params, lineData) {\r\n var lineCoords = [];\r\n if (isLarge) {\r\n var points = void 0;\r\n var segCount = params.end - params.start;\r\n if (isPolyline) {\r\n var totalCoordsCount = 0;\r\n for (var i = params.start; i < params.end; i++) {\r\n totalCoordsCount += seriesModel.getLineCoordsCount(i);\r\n }\r\n points = new Float32Array(segCount + totalCoordsCount * 2);\r\n }\r\n else {\r\n points = new Float32Array(segCount * 4);\r\n }\r\n var offset = 0;\r\n var pt = [];\r\n for (var i = params.start; i < params.end; i++) {\r\n var len = seriesModel.getLineCoords(i, lineCoords);\r\n if (isPolyline) {\r\n points[offset++] = len;\r\n }\r\n for (var k = 0; k < len; k++) {\r\n pt = coordSys.dataToPoint(lineCoords[k], false, pt);\r\n points[offset++] = pt[0];\r\n points[offset++] = pt[1];\r\n }\r\n }\r\n lineData.setLayout('linesPoints', points);\r\n }\r\n else {\r\n for (var i = params.start; i < params.end; i++) {\r\n var itemModel = lineData.getItemModel(i);\r\n var len = seriesModel.getLineCoords(i, lineCoords);\r\n var pts = [];\r\n if (isPolyline) {\r\n for (var j = 0; j < len; j++) {\r\n pts.push(coordSys.dataToPoint(lineCoords[j]));\r\n }\r\n }\r\n else {\r\n pts[0] = coordSys.dataToPoint(lineCoords[0]);\r\n pts[1] = coordSys.dataToPoint(lineCoords[1]);\r\n var curveness = itemModel.get(['lineStyle', 'curveness']);\r\n if (+curveness) {\r\n pts[2] = [\r\n (pts[0][0] + pts[1][0]) / 2 - (pts[0][1] - pts[1][1]) * curveness,\r\n (pts[0][1] + pts[1][1]) / 2 - (pts[1][0] - pts[0][0]) * curveness\r\n ];\r\n }\r\n }\r\n lineData.setItemLayout(i, pts);\r\n }\r\n }\r\n }\r\n };\r\n }\r\n };\n\n var LinesView = (function (_super) {\r\n __extends(LinesView, _super);\r\n function LinesView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = LinesView.type;\r\n return _this;\r\n }\r\n LinesView.prototype.render = function (seriesModel, ecModel, api) {\r\n var data = seriesModel.getData();\r\n var lineDraw = this._updateLineDraw(data, seriesModel);\r\n var zlevel = seriesModel.get('zlevel');\r\n var trailLength = seriesModel.get(['effect', 'trailLength']);\r\n var zr = api.getZr();\r\n var isSvg = zr.painter.getType() === 'svg';\r\n if (!isSvg) {\r\n zr.painter.getLayer(zlevel).clear(true);\r\n }\r\n if (this._lastZlevel != null && !isSvg) {\r\n zr.configLayer(this._lastZlevel, {\r\n motionBlur: false\r\n });\r\n }\r\n if (this._showEffect(seriesModel) && trailLength) {\r\n if (__DEV__) {\r\n var notInIndividual_1 = false;\r\n ecModel.eachSeries(function (otherSeriesModel) {\r\n if (otherSeriesModel !== seriesModel && otherSeriesModel.get('zlevel') === zlevel) {\r\n notInIndividual_1 = true;\r\n }\r\n });\r\n notInIndividual_1 && console.warn('Lines with trail effect should have an individual zlevel');\r\n }\r\n if (!isSvg) {\r\n zr.configLayer(zlevel, {\r\n motionBlur: true,\r\n lastFrameAlpha: Math.max(Math.min(trailLength / 10 + 0.9, 1), 0)\r\n });\r\n }\r\n }\r\n lineDraw.updateData(data);\r\n var clipPath = seriesModel.get('clip', true) && createClipPath(seriesModel.coordinateSystem, false, seriesModel);\r\n if (clipPath) {\r\n this.group.setClipPath(clipPath);\r\n }\r\n else {\r\n this.group.removeClipPath();\r\n }\r\n this._lastZlevel = zlevel;\r\n this._finished = true;\r\n };\r\n LinesView.prototype.incrementalPrepareRender = function (seriesModel, ecModel, api) {\r\n var data = seriesModel.getData();\r\n var lineDraw = this._updateLineDraw(data, seriesModel);\r\n lineDraw.incrementalPrepareUpdate(data);\r\n this._clearLayer(api);\r\n this._finished = false;\r\n };\r\n LinesView.prototype.incrementalRender = function (taskParams, seriesModel, ecModel) {\r\n this._lineDraw.incrementalUpdate(taskParams, seriesModel.getData());\r\n this._finished = taskParams.end === seriesModel.getData().count();\r\n };\r\n LinesView.prototype.updateTransform = function (seriesModel, ecModel, api) {\r\n var data = seriesModel.getData();\r\n var pipelineContext = seriesModel.pipelineContext;\r\n if (!this._finished || pipelineContext.large || pipelineContext.progressiveRender) {\r\n return {\r\n update: true\r\n };\r\n }\r\n else {\r\n var res = linesLayout.reset(seriesModel, ecModel, api);\r\n if (res.progress) {\r\n res.progress({\r\n start: 0,\r\n end: data.count(),\r\n count: data.count()\r\n }, data);\r\n }\r\n this._lineDraw.updateLayout();\r\n this._clearLayer(api);\r\n }\r\n };\r\n LinesView.prototype._updateLineDraw = function (data, seriesModel) {\r\n var lineDraw = this._lineDraw;\r\n var hasEffect = this._showEffect(seriesModel);\r\n var isPolyline = !!seriesModel.get('polyline');\r\n var pipelineContext = seriesModel.pipelineContext;\r\n var isLargeDraw = pipelineContext.large;\r\n if (__DEV__) {\r\n if (hasEffect && isLargeDraw) {\r\n console.warn('Large lines not support effect');\r\n }\r\n }\r\n if (!lineDraw\r\n || hasEffect !== this._hasEffet\r\n || isPolyline !== this._isPolyline\r\n || isLargeDraw !== this._isLargeDraw) {\r\n if (lineDraw) {\r\n lineDraw.remove();\r\n }\r\n lineDraw = this._lineDraw = isLargeDraw\r\n ? new LargeLineDraw()\r\n : new LineDraw(isPolyline\r\n ? (hasEffect ? EffectPolyline : Polyline$1)\r\n : (hasEffect ? EffectLine : Line$1));\r\n this._hasEffet = hasEffect;\r\n this._isPolyline = isPolyline;\r\n this._isLargeDraw = isLargeDraw;\r\n this.group.removeAll();\r\n }\r\n this.group.add(lineDraw.group);\r\n return lineDraw;\r\n };\r\n LinesView.prototype._showEffect = function (seriesModel) {\r\n return !!seriesModel.get(['effect', 'show']);\r\n };\r\n LinesView.prototype._clearLayer = function (api) {\r\n var zr = api.getZr();\r\n var isSvg = zr.painter.getType() === 'svg';\r\n if (!isSvg && this._lastZlevel != null) {\r\n zr.painter.getLayer(this._lastZlevel).clear(true);\r\n }\r\n };\r\n LinesView.prototype.remove = function (ecModel, api) {\r\n this._lineDraw && this._lineDraw.remove();\r\n this._lineDraw = null;\r\n this._clearLayer(api);\r\n };\r\n LinesView.type = 'lines';\r\n return LinesView;\r\n }(ChartView));\r\n ChartView.registerClass(LinesView);\n\n function normalize$3(a) {\r\n if (!(a instanceof Array)) {\r\n a = [a, a];\r\n }\r\n return a;\r\n }\r\n var linesVisual = {\r\n seriesType: 'lines',\r\n reset: function (seriesModel) {\r\n var symbolType = normalize$3(seriesModel.get('symbol'));\r\n var symbolSize = normalize$3(seriesModel.get('symbolSize'));\r\n var data = seriesModel.getData();\r\n data.setVisual('fromSymbol', symbolType && symbolType[0]);\r\n data.setVisual('toSymbol', symbolType && symbolType[1]);\r\n data.setVisual('fromSymbolSize', symbolSize && symbolSize[0]);\r\n data.setVisual('toSymbolSize', symbolSize && symbolSize[1]);\r\n function dataEach(data, idx) {\r\n var itemModel = data.getItemModel(idx);\r\n var symbolType = normalize$3(itemModel.getShallow('symbol', true));\r\n var symbolSize = normalize$3(itemModel.getShallow('symbolSize', true));\r\n symbolType[0] && data.setItemVisual(idx, 'fromSymbol', symbolType[0]);\r\n symbolType[1] && data.setItemVisual(idx, 'toSymbol', symbolType[1]);\r\n symbolSize[0] && data.setItemVisual(idx, 'fromSymbolSize', symbolSize[0]);\r\n symbolSize[1] && data.setItemVisual(idx, 'toSymbolSize', symbolSize[1]);\r\n }\r\n return {\r\n dataEach: data.hasItemOption ? dataEach : null\r\n };\r\n }\r\n };\n\n registerLayout(linesLayout);\r\n registerVisual(linesVisual);\n\n var HeatmapSeriesModel = (function (_super) {\r\n __extends(HeatmapSeriesModel, _super);\r\n function HeatmapSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = HeatmapSeriesModel.type;\r\n return _this;\r\n }\r\n HeatmapSeriesModel.prototype.getInitialData = function (option, ecModel) {\r\n return createListFromArray(this.getSource(), this, {\r\n generateCoord: 'value'\r\n });\r\n };\r\n HeatmapSeriesModel.prototype.preventIncremental = function () {\r\n var coordSysCreator = CoordinateSystemManager.get(this.get('coordinateSystem'));\r\n if (coordSysCreator && coordSysCreator.dimensions) {\r\n return coordSysCreator.dimensions[0] === 'lng' && coordSysCreator.dimensions[1] === 'lat';\r\n }\r\n };\r\n HeatmapSeriesModel.type = 'series.heatmap';\r\n HeatmapSeriesModel.defaultOption = {\r\n coordinateSystem: 'cartesian2d',\r\n zlevel: 0,\r\n z: 2,\r\n geoIndex: 0,\r\n blurSize: 30,\r\n pointSize: 20,\r\n maxOpacity: 1,\r\n minOpacity: 0,\r\n select: {\r\n itemStyle: {\r\n borderColor: '#212121'\r\n }\r\n }\r\n };\r\n return HeatmapSeriesModel;\r\n }(SeriesModel));\r\n SeriesModel.registerClass(HeatmapSeriesModel);\n\n var GRADIENT_LEVELS = 256;\r\n var HeatmapLayer = (function () {\r\n function HeatmapLayer() {\r\n this.blurSize = 30;\r\n this.pointSize = 20;\r\n this.maxOpacity = 1;\r\n this.minOpacity = 0;\r\n this._gradientPixels = {\r\n inRange: null,\r\n outOfRange: null\r\n };\r\n var canvas = createCanvas();\r\n this.canvas = canvas;\r\n }\r\n HeatmapLayer.prototype.update = function (data, width, height, normalize, colorFunc, isInRange) {\r\n var brush = this._getBrush();\r\n var gradientInRange = this._getGradient(colorFunc, 'inRange');\r\n var gradientOutOfRange = this._getGradient(colorFunc, 'outOfRange');\r\n var r = this.pointSize + this.blurSize;\r\n var canvas = this.canvas;\r\n var ctx = canvas.getContext('2d');\r\n var len = data.length;\r\n canvas.width = width;\r\n canvas.height = height;\r\n for (var i = 0; i < len; ++i) {\r\n var p = data[i];\r\n var x = p[0];\r\n var y = p[1];\r\n var value = p[2];\r\n var alpha = normalize(value);\r\n ctx.globalAlpha = alpha;\r\n ctx.drawImage(brush, x - r, y - r);\r\n }\r\n if (!canvas.width || !canvas.height) {\r\n return canvas;\r\n }\r\n var imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);\r\n var pixels = imageData.data;\r\n var offset = 0;\r\n var pixelLen = pixels.length;\r\n var minOpacity = this.minOpacity;\r\n var maxOpacity = this.maxOpacity;\r\n var diffOpacity = maxOpacity - minOpacity;\r\n while (offset < pixelLen) {\r\n var alpha = pixels[offset + 3] / 256;\r\n var gradientOffset = Math.floor(alpha * (GRADIENT_LEVELS - 1)) * 4;\r\n if (alpha > 0) {\r\n var gradient = isInRange(alpha) ? gradientInRange : gradientOutOfRange;\r\n alpha > 0 && (alpha = alpha * diffOpacity + minOpacity);\r\n pixels[offset++] = gradient[gradientOffset];\r\n pixels[offset++] = gradient[gradientOffset + 1];\r\n pixels[offset++] = gradient[gradientOffset + 2];\r\n pixels[offset++] = gradient[gradientOffset + 3] * alpha * 256;\r\n }\r\n else {\r\n offset += 4;\r\n }\r\n }\r\n ctx.putImageData(imageData, 0, 0);\r\n return canvas;\r\n };\r\n HeatmapLayer.prototype._getBrush = function () {\r\n var brushCanvas = this._brushCanvas || (this._brushCanvas = createCanvas());\r\n var r = this.pointSize + this.blurSize;\r\n var d = r * 2;\r\n brushCanvas.width = d;\r\n brushCanvas.height = d;\r\n var ctx = brushCanvas.getContext('2d');\r\n ctx.clearRect(0, 0, d, d);\r\n ctx.shadowOffsetX = d;\r\n ctx.shadowBlur = this.blurSize;\r\n ctx.shadowColor = '#000';\r\n ctx.beginPath();\r\n ctx.arc(-r, r, this.pointSize, 0, Math.PI * 2, true);\r\n ctx.closePath();\r\n ctx.fill();\r\n return brushCanvas;\r\n };\r\n HeatmapLayer.prototype._getGradient = function (colorFunc, state) {\r\n var gradientPixels = this._gradientPixels;\r\n var pixelsSingleState = gradientPixels[state] || (gradientPixels[state] = new Uint8ClampedArray(256 * 4));\r\n var color = [0, 0, 0, 0];\r\n var off = 0;\r\n for (var i = 0; i < 256; i++) {\r\n colorFunc[state](i / 255, true, color);\r\n pixelsSingleState[off++] = color[0];\r\n pixelsSingleState[off++] = color[1];\r\n pixelsSingleState[off++] = color[2];\r\n pixelsSingleState[off++] = color[3];\r\n }\r\n return pixelsSingleState;\r\n };\r\n return HeatmapLayer;\r\n }());\n\n function getIsInPiecewiseRange(dataExtent, pieceList, selected) {\r\n var dataSpan = dataExtent[1] - dataExtent[0];\r\n pieceList = map(pieceList, function (piece) {\r\n return {\r\n interval: [\r\n (piece.interval[0] - dataExtent[0]) / dataSpan,\r\n (piece.interval[1] - dataExtent[0]) / dataSpan\r\n ]\r\n };\r\n });\r\n var len = pieceList.length;\r\n var lastIndex = 0;\r\n return function (val) {\r\n var i;\r\n for (i = lastIndex; i < len; i++) {\r\n var interval = pieceList[i].interval;\r\n if (interval[0] <= val && val <= interval[1]) {\r\n lastIndex = i;\r\n break;\r\n }\r\n }\r\n if (i === len) {\r\n for (i = lastIndex - 1; i >= 0; i--) {\r\n var interval = pieceList[i].interval;\r\n if (interval[0] <= val && val <= interval[1]) {\r\n lastIndex = i;\r\n break;\r\n }\r\n }\r\n }\r\n return i >= 0 && i < len && selected[i];\r\n };\r\n }\r\n function getIsInContinuousRange(dataExtent, range) {\r\n var dataSpan = dataExtent[1] - dataExtent[0];\r\n range = [\r\n (range[0] - dataExtent[0]) / dataSpan,\r\n (range[1] - dataExtent[0]) / dataSpan\r\n ];\r\n return function (val) {\r\n return val >= range[0] && val <= range[1];\r\n };\r\n }\r\n function isGeoCoordSys(coordSys) {\r\n var dimensions = coordSys.dimensions;\r\n return dimensions[0] === 'lng' && dimensions[1] === 'lat';\r\n }\r\n var HeatmapView = (function (_super) {\r\n __extends(HeatmapView, _super);\r\n function HeatmapView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = HeatmapView.type;\r\n return _this;\r\n }\r\n HeatmapView.prototype.render = function (seriesModel, ecModel, api) {\r\n var visualMapOfThisSeries;\r\n ecModel.eachComponent('visualMap', function (visualMap) {\r\n visualMap.eachTargetSeries(function (targetSeries) {\r\n if (targetSeries === seriesModel) {\r\n visualMapOfThisSeries = visualMap;\r\n }\r\n });\r\n });\r\n if (__DEV__) {\r\n if (!visualMapOfThisSeries) {\r\n throw new Error('Heatmap must use with visualMap');\r\n }\r\n }\r\n this.group.removeAll();\r\n this._incrementalDisplayable = null;\r\n var coordSys = seriesModel.coordinateSystem;\r\n if (coordSys.type === 'cartesian2d' || coordSys.type === 'calendar') {\r\n this._renderOnCartesianAndCalendar(seriesModel, api, 0, seriesModel.getData().count());\r\n }\r\n else if (isGeoCoordSys(coordSys)) {\r\n this._renderOnGeo(coordSys, seriesModel, visualMapOfThisSeries, api);\r\n }\r\n };\r\n HeatmapView.prototype.incrementalPrepareRender = function (seriesModel, ecModel, api) {\r\n this.group.removeAll();\r\n };\r\n HeatmapView.prototype.incrementalRender = function (params, seriesModel, ecModel, api) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n if (coordSys) {\r\n this._renderOnCartesianAndCalendar(seriesModel, api, params.start, params.end, true);\r\n }\r\n };\r\n HeatmapView.prototype._renderOnCartesianAndCalendar = function (seriesModel, api, start, end, incremental) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n var width;\r\n var height;\r\n var xAxisExtent;\r\n var yAxisExtent;\r\n if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\r\n var xAxis = coordSys.getAxis('x');\r\n var yAxis = coordSys.getAxis('y');\r\n if (__DEV__) {\r\n if (!(xAxis.type === 'category' && yAxis.type === 'category')) {\r\n throw new Error('Heatmap on cartesian must have two category axes');\r\n }\r\n if (!(xAxis.onBand && yAxis.onBand)) {\r\n throw new Error('Heatmap on cartesian must have two axes with boundaryGap true');\r\n }\r\n }\r\n width = xAxis.getBandWidth();\r\n height = yAxis.getBandWidth();\r\n xAxisExtent = xAxis.scale.getExtent();\r\n yAxisExtent = yAxis.scale.getExtent();\r\n }\r\n var group = this.group;\r\n var data = seriesModel.getData();\r\n var emphasisStyle = seriesModel.getModel(['emphasis', 'itemStyle']).getItemStyle();\r\n var blurStyle = seriesModel.getModel(['blur', 'itemStyle']).getItemStyle();\r\n var selectStyle = seriesModel.getModel(['select', 'itemStyle']).getItemStyle();\r\n var labelStatesModels = getLabelStatesModels(seriesModel);\r\n var focus = seriesModel.get(['emphasis', 'focus']);\r\n var blurScope = seriesModel.get(['emphasis', 'blurScope']);\r\n var dataDims = isCoordinateSystemType(coordSys, 'cartesian2d')\r\n ? [\r\n data.mapDimension('x'),\r\n data.mapDimension('y'),\r\n data.mapDimension('value')\r\n ]\r\n : [\r\n data.mapDimension('time'),\r\n data.mapDimension('value')\r\n ];\r\n for (var idx = start; idx < end; idx++) {\r\n var rect = void 0;\r\n var style = data.getItemVisual(idx, 'style');\r\n if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\r\n var dataDimX = data.get(dataDims[0], idx);\r\n var dataDimY = data.get(dataDims[1], idx);\r\n if (isNaN(data.get(dataDims[2], idx))\r\n || dataDimX < xAxisExtent[0]\r\n || dataDimX > xAxisExtent[1]\r\n || dataDimY < yAxisExtent[0]\r\n || dataDimY > yAxisExtent[1]) {\r\n continue;\r\n }\r\n var point = coordSys.dataToPoint([\r\n dataDimX,\r\n dataDimY\r\n ]);\r\n rect = new Rect({\r\n shape: {\r\n x: Math.floor(Math.round(point[0]) - width / 2),\r\n y: Math.floor(Math.round(point[1]) - height / 2),\r\n width: Math.ceil(width),\r\n height: Math.ceil(height)\r\n },\r\n style: style\r\n });\r\n }\r\n else {\r\n if (isNaN(data.get(dataDims[1], idx))) {\r\n continue;\r\n }\r\n rect = new Rect({\r\n z2: 1,\r\n shape: coordSys.dataToRect([data.get(dataDims[0], idx)]).contentShape,\r\n style: style\r\n });\r\n }\r\n var itemModel = data.getItemModel(idx);\r\n if (data.hasItemOption) {\r\n var emphasisModel = itemModel.getModel('emphasis');\r\n emphasisStyle = emphasisModel.getModel('itemStyle').getItemStyle();\r\n blurStyle = itemModel.getModel(['blur', 'itemStyle']).getItemStyle();\r\n selectStyle = itemModel.getModel(['select', 'itemStyle']).getItemStyle();\r\n focus = emphasisModel.get('focus');\r\n blurScope = emphasisModel.get('blurScope');\r\n labelStatesModels = getLabelStatesModels(itemModel);\r\n }\r\n var rawValue = seriesModel.getRawValue(idx);\r\n var defaultText = '-';\r\n if (rawValue && rawValue[2] != null) {\r\n defaultText = rawValue[2] + '';\r\n }\r\n setLabelStyle(rect, labelStatesModels, {\r\n labelFetcher: seriesModel,\r\n labelDataIndex: idx,\r\n defaultOpacity: style.opacity,\r\n defaultText: defaultText\r\n });\r\n rect.ensureState('emphasis').style = emphasisStyle;\r\n rect.ensureState('blur').style = blurStyle;\r\n rect.ensureState('select').style = selectStyle;\r\n enableHoverEmphasis(rect, focus, blurScope);\r\n rect.incremental = incremental;\r\n if (incremental) {\r\n rect.states.emphasis.hoverLayer = true;\r\n }\r\n group.add(rect);\r\n data.setItemGraphicEl(idx, rect);\r\n }\r\n };\r\n HeatmapView.prototype._renderOnGeo = function (geo, seriesModel, visualMapModel, api) {\r\n var inRangeVisuals = visualMapModel.targetVisuals.inRange;\r\n var outOfRangeVisuals = visualMapModel.targetVisuals.outOfRange;\r\n var data = seriesModel.getData();\r\n var hmLayer = this._hmLayer || (this._hmLayer || new HeatmapLayer());\r\n hmLayer.blurSize = seriesModel.get('blurSize');\r\n hmLayer.pointSize = seriesModel.get('pointSize');\r\n hmLayer.minOpacity = seriesModel.get('minOpacity');\r\n hmLayer.maxOpacity = seriesModel.get('maxOpacity');\r\n var rect = geo.getViewRect().clone();\r\n var roamTransform = geo.getRoamTransform();\r\n rect.applyTransform(roamTransform);\r\n var x = Math.max(rect.x, 0);\r\n var y = Math.max(rect.y, 0);\r\n var x2 = Math.min(rect.width + rect.x, api.getWidth());\r\n var y2 = Math.min(rect.height + rect.y, api.getHeight());\r\n var width = x2 - x;\r\n var height = y2 - y;\r\n var dims = [\r\n data.mapDimension('lng'),\r\n data.mapDimension('lat'),\r\n data.mapDimension('value')\r\n ];\r\n var points = data.mapArray(dims, function (lng, lat, value) {\r\n var pt = geo.dataToPoint([lng, lat]);\r\n pt[0] -= x;\r\n pt[1] -= y;\r\n pt.push(value);\r\n return pt;\r\n });\r\n var dataExtent = visualMapModel.getExtent();\r\n var isInRange = visualMapModel.type === 'visualMap.continuous'\r\n ? getIsInContinuousRange(dataExtent, visualMapModel.option.range)\r\n : getIsInPiecewiseRange(dataExtent, visualMapModel.getPieceList(), visualMapModel.option.selected);\r\n hmLayer.update(points, width, height, inRangeVisuals.color.getNormalizer(), {\r\n inRange: inRangeVisuals.color.getColorMapper(),\r\n outOfRange: outOfRangeVisuals.color.getColorMapper()\r\n }, isInRange);\r\n var img = new ZRImage({\r\n style: {\r\n width: width,\r\n height: height,\r\n x: x,\r\n y: y,\r\n image: hmLayer.canvas\r\n },\r\n silent: true\r\n });\r\n this.group.add(img);\r\n };\r\n HeatmapView.type = 'heatmap';\r\n return HeatmapView;\r\n }(ChartView));\r\n ChartView.registerClass(HeatmapView);\n\n var PictorialBarSeriesModel = (function (_super) {\r\n __extends(PictorialBarSeriesModel, _super);\r\n function PictorialBarSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = PictorialBarSeriesModel.type;\r\n _this.hasSymbolVisual = true;\r\n _this.defaultSymbol = 'roundRect';\r\n return _this;\r\n }\r\n PictorialBarSeriesModel.prototype.getInitialData = function (option) {\r\n option.stack = null;\r\n return _super.prototype.getInitialData.apply(this, arguments);\r\n };\r\n PictorialBarSeriesModel.type = 'series.pictorialBar';\r\n PictorialBarSeriesModel.dependencies = ['grid'];\r\n PictorialBarSeriesModel.defaultOption = inheritDefaultOption(BaseBarSeriesModel.defaultOption, {\r\n symbol: 'circle',\r\n symbolSize: null,\r\n symbolRotate: null,\r\n symbolPosition: null,\r\n symbolOffset: null,\r\n symbolMargin: null,\r\n symbolRepeat: false,\r\n symbolRepeatDirection: 'end',\r\n symbolClip: false,\r\n symbolBoundingData: null,\r\n symbolPatternSize: 400,\r\n barGap: '-100%',\r\n progressive: 0,\r\n emphasis: {\r\n scale: false\r\n },\r\n select: {\r\n itemStyle: {\r\n borderColor: '#212121'\r\n }\r\n }\r\n });\r\n return PictorialBarSeriesModel;\r\n }(BaseBarSeriesModel));\r\n SeriesModel.registerClass(PictorialBarSeriesModel);\n\n var BAR_BORDER_WIDTH_QUERY$1 = ['itemStyle', 'borderWidth'];\r\n var LAYOUT_ATTRS = [\r\n { xy: 'x', wh: 'width', index: 0, posDesc: ['left', 'right'] },\r\n { xy: 'y', wh: 'height', index: 1, posDesc: ['top', 'bottom'] }\r\n ];\r\n var pathForLineWidth = new Circle();\r\n var PictorialBarView = (function (_super) {\r\n __extends(PictorialBarView, _super);\r\n function PictorialBarView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = PictorialBarView.type;\r\n return _this;\r\n }\r\n PictorialBarView.prototype.render = function (seriesModel, ecModel, api) {\r\n var group = this.group;\r\n var data = seriesModel.getData();\r\n var oldData = this._data;\r\n var cartesian = seriesModel.coordinateSystem;\r\n var baseAxis = cartesian.getBaseAxis();\r\n var isHorizontal = baseAxis.isHorizontal();\r\n var coordSysRect = cartesian.master.getRect();\r\n var opt = {\r\n ecSize: { width: api.getWidth(), height: api.getHeight() },\r\n seriesModel: seriesModel,\r\n coordSys: cartesian,\r\n coordSysExtent: [\r\n [coordSysRect.x, coordSysRect.x + coordSysRect.width],\r\n [coordSysRect.y, coordSysRect.y + coordSysRect.height]\r\n ],\r\n isHorizontal: isHorizontal,\r\n valueDim: LAYOUT_ATTRS[+isHorizontal],\r\n categoryDim: LAYOUT_ATTRS[1 - (+isHorizontal)]\r\n };\r\n data.diff(oldData)\r\n .add(function (dataIndex) {\r\n if (!data.hasValue(dataIndex)) {\r\n return;\r\n }\r\n var itemModel = getItemModel(data, dataIndex);\r\n var symbolMeta = getSymbolMeta(data, dataIndex, itemModel, opt);\r\n var bar = createBar(data, opt, symbolMeta);\r\n data.setItemGraphicEl(dataIndex, bar);\r\n group.add(bar);\r\n updateCommon$1(bar, opt, symbolMeta);\r\n })\r\n .update(function (newIndex, oldIndex) {\r\n var bar = oldData.getItemGraphicEl(oldIndex);\r\n if (!data.hasValue(newIndex)) {\r\n group.remove(bar);\r\n return;\r\n }\r\n var itemModel = getItemModel(data, newIndex);\r\n var symbolMeta = getSymbolMeta(data, newIndex, itemModel, opt);\r\n var pictorialShapeStr = getShapeStr(data, symbolMeta);\r\n if (bar && pictorialShapeStr !== bar.__pictorialShapeStr) {\r\n group.remove(bar);\r\n data.setItemGraphicEl(newIndex, null);\r\n bar = null;\r\n }\r\n if (bar) {\r\n updateBar(bar, opt, symbolMeta);\r\n }\r\n else {\r\n bar = createBar(data, opt, symbolMeta, true);\r\n }\r\n data.setItemGraphicEl(newIndex, bar);\r\n bar.__pictorialSymbolMeta = symbolMeta;\r\n group.add(bar);\r\n updateCommon$1(bar, opt, symbolMeta);\r\n })\r\n .remove(function (dataIndex) {\r\n var bar = oldData.getItemGraphicEl(dataIndex);\r\n bar && removeBar(oldData, dataIndex, bar.__pictorialSymbolMeta.animationModel, bar);\r\n })\r\n .execute();\r\n this._data = data;\r\n return this.group;\r\n };\r\n PictorialBarView.prototype.remove = function (ecModel, api) {\r\n var group = this.group;\r\n var data = this._data;\r\n if (ecModel.get('animation')) {\r\n if (data) {\r\n data.eachItemGraphicEl(function (bar) {\r\n removeBar(data, getECData(bar).dataIndex, ecModel, bar);\r\n });\r\n }\r\n }\r\n else {\r\n group.removeAll();\r\n }\r\n };\r\n PictorialBarView.type = 'pictorialBar';\r\n return PictorialBarView;\r\n }(ChartView));\r\n function getSymbolMeta(data, dataIndex, itemModel, opt) {\r\n var layout = data.getItemLayout(dataIndex);\r\n var symbolRepeat = itemModel.get('symbolRepeat');\r\n var symbolClip = itemModel.get('symbolClip');\r\n var symbolPosition = itemModel.get('symbolPosition') || 'start';\r\n var symbolRotate = itemModel.get('symbolRotate');\r\n var rotation = (symbolRotate || 0) * Math.PI / 180 || 0;\r\n var symbolPatternSize = itemModel.get('symbolPatternSize') || 2;\r\n var isAnimationEnabled = itemModel.isAnimationEnabled();\r\n var symbolMeta = {\r\n dataIndex: dataIndex,\r\n layout: layout,\r\n itemModel: itemModel,\r\n symbolType: data.getItemVisual(dataIndex, 'symbol') || 'circle',\r\n style: data.getItemVisual(dataIndex, 'style'),\r\n symbolClip: symbolClip,\r\n symbolRepeat: symbolRepeat,\r\n symbolRepeatDirection: itemModel.get('symbolRepeatDirection'),\r\n symbolPatternSize: symbolPatternSize,\r\n rotation: rotation,\r\n animationModel: isAnimationEnabled ? itemModel : null,\r\n hoverScale: isAnimationEnabled && itemModel.get(['emphasis', 'scale']),\r\n z2: itemModel.getShallow('z', true) || 0\r\n };\r\n prepareBarLength(itemModel, symbolRepeat, layout, opt, symbolMeta);\r\n prepareSymbolSize(data, dataIndex, layout, symbolRepeat, symbolClip, symbolMeta.boundingLength, symbolMeta.pxSign, symbolPatternSize, opt, symbolMeta);\r\n prepareLineWidth(itemModel, symbolMeta.symbolScale, rotation, opt, symbolMeta);\r\n var symbolSize = symbolMeta.symbolSize;\r\n var symbolOffset = itemModel.get('symbolOffset');\r\n if (isArray(symbolOffset)) {\r\n symbolOffset = [\r\n parsePercent$2(symbolOffset[0], symbolSize[0]),\r\n parsePercent$2(symbolOffset[1], symbolSize[1])\r\n ];\r\n }\r\n prepareLayoutInfo(itemModel, symbolSize, layout, symbolRepeat, symbolClip, symbolOffset, symbolPosition, symbolMeta.valueLineWidth, symbolMeta.boundingLength, symbolMeta.repeatCutLength, opt, symbolMeta);\r\n return symbolMeta;\r\n }\r\n function prepareBarLength(itemModel, symbolRepeat, layout, opt, outputSymbolMeta) {\r\n var valueDim = opt.valueDim;\r\n var symbolBoundingData = itemModel.get('symbolBoundingData');\r\n var valueAxis = opt.coordSys.getOtherAxis(opt.coordSys.getBaseAxis());\r\n var zeroPx = valueAxis.toGlobalCoord(valueAxis.dataToCoord(0));\r\n var pxSignIdx = 1 - +(layout[valueDim.wh] <= 0);\r\n var boundingLength;\r\n if (isArray(symbolBoundingData)) {\r\n var symbolBoundingExtent = [\r\n convertToCoordOnAxis(valueAxis, symbolBoundingData[0]) - zeroPx,\r\n convertToCoordOnAxis(valueAxis, symbolBoundingData[1]) - zeroPx\r\n ];\r\n symbolBoundingExtent[1] < symbolBoundingExtent[0] && (symbolBoundingExtent.reverse());\r\n boundingLength = symbolBoundingExtent[pxSignIdx];\r\n }\r\n else if (symbolBoundingData != null) {\r\n boundingLength = convertToCoordOnAxis(valueAxis, symbolBoundingData) - zeroPx;\r\n }\r\n else if (symbolRepeat) {\r\n boundingLength = opt.coordSysExtent[valueDim.index][pxSignIdx] - zeroPx;\r\n }\r\n else {\r\n boundingLength = layout[valueDim.wh];\r\n }\r\n outputSymbolMeta.boundingLength = boundingLength;\r\n if (symbolRepeat) {\r\n outputSymbolMeta.repeatCutLength = layout[valueDim.wh];\r\n }\r\n outputSymbolMeta.pxSign = boundingLength > 0 ? 1 : boundingLength < 0 ? -1 : 0;\r\n }\r\n function convertToCoordOnAxis(axis, value) {\r\n return axis.toGlobalCoord(axis.dataToCoord(axis.scale.parse(value)));\r\n }\r\n function prepareSymbolSize(data, dataIndex, layout, symbolRepeat, symbolClip, boundingLength, pxSign, symbolPatternSize, opt, outputSymbolMeta) {\r\n var valueDim = opt.valueDim;\r\n var categoryDim = opt.categoryDim;\r\n var categorySize = Math.abs(layout[categoryDim.wh]);\r\n var symbolSize = data.getItemVisual(dataIndex, 'symbolSize');\r\n var parsedSymbolSize;\r\n if (isArray(symbolSize)) {\r\n parsedSymbolSize = symbolSize.slice();\r\n }\r\n else {\r\n if (symbolSize == null) {\r\n parsedSymbolSize = ['100%', '100%'];\r\n }\r\n else {\r\n parsedSymbolSize = [symbolSize, symbolSize];\r\n }\r\n }\r\n parsedSymbolSize[categoryDim.index] = parsePercent$2(parsedSymbolSize[categoryDim.index], categorySize);\r\n parsedSymbolSize[valueDim.index] = parsePercent$2(parsedSymbolSize[valueDim.index], symbolRepeat ? categorySize : Math.abs(boundingLength));\r\n outputSymbolMeta.symbolSize = parsedSymbolSize;\r\n var symbolScale = outputSymbolMeta.symbolScale = [\r\n parsedSymbolSize[0] / symbolPatternSize,\r\n parsedSymbolSize[1] / symbolPatternSize\r\n ];\r\n symbolScale[valueDim.index] *= (opt.isHorizontal ? -1 : 1) * pxSign;\r\n }\r\n function prepareLineWidth(itemModel, symbolScale, rotation, opt, outputSymbolMeta) {\r\n var valueLineWidth = itemModel.get(BAR_BORDER_WIDTH_QUERY$1) || 0;\r\n if (valueLineWidth) {\r\n pathForLineWidth.attr({\r\n scaleX: symbolScale[0],\r\n scaleY: symbolScale[1],\r\n rotation: rotation\r\n });\r\n pathForLineWidth.updateTransform();\r\n valueLineWidth /= pathForLineWidth.getLineScale();\r\n valueLineWidth *= symbolScale[opt.valueDim.index];\r\n }\r\n outputSymbolMeta.valueLineWidth = valueLineWidth;\r\n }\r\n function prepareLayoutInfo(itemModel, symbolSize, layout, symbolRepeat, symbolClip, symbolOffset, symbolPosition, valueLineWidth, boundingLength, repeatCutLength, opt, outputSymbolMeta) {\r\n var categoryDim = opt.categoryDim;\r\n var valueDim = opt.valueDim;\r\n var pxSign = outputSymbolMeta.pxSign;\r\n var unitLength = Math.max(symbolSize[valueDim.index] + valueLineWidth, 0);\r\n var pathLen = unitLength;\r\n if (symbolRepeat) {\r\n var absBoundingLength = Math.abs(boundingLength);\r\n var symbolMargin = retrieve(itemModel.get('symbolMargin'), '15%') + '';\r\n var hasEndGap = false;\r\n if (symbolMargin.lastIndexOf('!') === symbolMargin.length - 1) {\r\n hasEndGap = true;\r\n symbolMargin = symbolMargin.slice(0, symbolMargin.length - 1);\r\n }\r\n var symbolMarginNumeric = parsePercent$2(symbolMargin, symbolSize[valueDim.index]);\r\n var uLenWithMargin = Math.max(unitLength + symbolMarginNumeric * 2, 0);\r\n var endFix = hasEndGap ? 0 : symbolMarginNumeric * 2;\r\n var repeatSpecified = isNumeric(symbolRepeat);\r\n var repeatTimes = repeatSpecified\r\n ? symbolRepeat\r\n : toIntTimes((absBoundingLength + endFix) / uLenWithMargin);\r\n var mDiff = absBoundingLength - repeatTimes * unitLength;\r\n symbolMarginNumeric = mDiff / 2 / (hasEndGap ? repeatTimes : repeatTimes - 1);\r\n uLenWithMargin = unitLength + symbolMarginNumeric * 2;\r\n endFix = hasEndGap ? 0 : symbolMarginNumeric * 2;\r\n if (!repeatSpecified && symbolRepeat !== 'fixed') {\r\n repeatTimes = repeatCutLength\r\n ? toIntTimes((Math.abs(repeatCutLength) + endFix) / uLenWithMargin)\r\n : 0;\r\n }\r\n pathLen = repeatTimes * uLenWithMargin - endFix;\r\n outputSymbolMeta.repeatTimes = repeatTimes;\r\n outputSymbolMeta.symbolMargin = symbolMarginNumeric;\r\n }\r\n var sizeFix = pxSign * (pathLen / 2);\r\n var pathPosition = outputSymbolMeta.pathPosition = [];\r\n pathPosition[categoryDim.index] = layout[categoryDim.wh] / 2;\r\n pathPosition[valueDim.index] = symbolPosition === 'start'\r\n ? sizeFix\r\n : symbolPosition === 'end'\r\n ? boundingLength - sizeFix\r\n : boundingLength / 2;\r\n if (symbolOffset) {\r\n pathPosition[0] += symbolOffset[0];\r\n pathPosition[1] += symbolOffset[1];\r\n }\r\n var bundlePosition = outputSymbolMeta.bundlePosition = [];\r\n bundlePosition[categoryDim.index] = layout[categoryDim.xy];\r\n bundlePosition[valueDim.index] = layout[valueDim.xy];\r\n var barRectShape = outputSymbolMeta.barRectShape = extend({}, layout);\r\n barRectShape[valueDim.wh] = pxSign * Math.max(Math.abs(layout[valueDim.wh]), Math.abs(pathPosition[valueDim.index] + sizeFix));\r\n barRectShape[categoryDim.wh] = layout[categoryDim.wh];\r\n var clipShape = outputSymbolMeta.clipShape = {};\r\n clipShape[categoryDim.xy] = -layout[categoryDim.xy];\r\n clipShape[categoryDim.wh] = opt.ecSize[categoryDim.wh];\r\n clipShape[valueDim.xy] = 0;\r\n clipShape[valueDim.wh] = layout[valueDim.wh];\r\n }\r\n function createPath(symbolMeta) {\r\n var symbolPatternSize = symbolMeta.symbolPatternSize;\r\n var path = createSymbol(symbolMeta.symbolType, -symbolPatternSize / 2, -symbolPatternSize / 2, symbolPatternSize, symbolPatternSize);\r\n path.attr({\r\n culling: true\r\n });\r\n path.type !== 'image' && path.setStyle({\r\n strokeNoScale: true\r\n });\r\n return path;\r\n }\r\n function createOrUpdateRepeatSymbols(bar, opt, symbolMeta, isUpdate) {\r\n var bundle = bar.__pictorialBundle;\r\n var symbolSize = symbolMeta.symbolSize;\r\n var valueLineWidth = symbolMeta.valueLineWidth;\r\n var pathPosition = symbolMeta.pathPosition;\r\n var valueDim = opt.valueDim;\r\n var repeatTimes = symbolMeta.repeatTimes || 0;\r\n var index = 0;\r\n var unit = symbolSize[opt.valueDim.index] + valueLineWidth + symbolMeta.symbolMargin * 2;\r\n eachPath(bar, function (path) {\r\n path.__pictorialAnimationIndex = index;\r\n path.__pictorialRepeatTimes = repeatTimes;\r\n if (index < repeatTimes) {\r\n updateAttr(path, null, makeTarget(index), symbolMeta, isUpdate);\r\n }\r\n else {\r\n updateAttr(path, null, { scaleX: 0, scaleY: 0 }, symbolMeta, isUpdate, function () {\r\n bundle.remove(path);\r\n });\r\n }\r\n index++;\r\n });\r\n for (; index < repeatTimes; index++) {\r\n var path = createPath(symbolMeta);\r\n path.__pictorialAnimationIndex = index;\r\n path.__pictorialRepeatTimes = repeatTimes;\r\n bundle.add(path);\r\n var target = makeTarget(index);\r\n updateAttr(path, {\r\n x: target.x,\r\n y: target.y,\r\n scaleX: 0,\r\n scaleY: 0\r\n }, {\r\n scaleX: target.scaleX,\r\n scaleY: target.scaleY,\r\n rotation: target.rotation\r\n }, symbolMeta, isUpdate);\r\n }\r\n function makeTarget(index) {\r\n var position = pathPosition.slice();\r\n var pxSign = symbolMeta.pxSign;\r\n var i = index;\r\n if (symbolMeta.symbolRepeatDirection === 'start' ? pxSign > 0 : pxSign < 0) {\r\n i = repeatTimes - 1 - index;\r\n }\r\n position[valueDim.index] = unit * (i - repeatTimes / 2 + 0.5) + pathPosition[valueDim.index];\r\n return {\r\n x: position[0],\r\n y: position[1],\r\n scaleX: symbolMeta.symbolScale[0],\r\n scaleY: symbolMeta.symbolScale[1],\r\n rotation: symbolMeta.rotation\r\n };\r\n }\r\n }\r\n function createOrUpdateSingleSymbol(bar, opt, symbolMeta, isUpdate) {\r\n var bundle = bar.__pictorialBundle;\r\n var mainPath = bar.__pictorialMainPath;\r\n if (!mainPath) {\r\n mainPath = bar.__pictorialMainPath = createPath(symbolMeta);\r\n bundle.add(mainPath);\r\n updateAttr(mainPath, {\r\n x: symbolMeta.pathPosition[0],\r\n y: symbolMeta.pathPosition[1],\r\n scaleX: 0,\r\n scaleY: 0,\r\n rotation: symbolMeta.rotation\r\n }, {\r\n scaleX: symbolMeta.symbolScale[0],\r\n scaleY: symbolMeta.symbolScale[1]\r\n }, symbolMeta, isUpdate);\r\n }\r\n else {\r\n updateAttr(mainPath, null, {\r\n x: symbolMeta.pathPosition[0],\r\n y: symbolMeta.pathPosition[1],\r\n scaleX: symbolMeta.symbolScale[0],\r\n scaleY: symbolMeta.symbolScale[1],\r\n rotation: symbolMeta.rotation\r\n }, symbolMeta, isUpdate);\r\n }\r\n }\r\n function createOrUpdateBarRect(bar, symbolMeta, isUpdate) {\r\n var rectShape = extend({}, symbolMeta.barRectShape);\r\n var barRect = bar.__pictorialBarRect;\r\n if (!barRect) {\r\n barRect = bar.__pictorialBarRect = new Rect({\r\n z2: 2,\r\n shape: rectShape,\r\n silent: true,\r\n style: {\r\n stroke: 'transparent',\r\n fill: 'transparent',\r\n lineWidth: 0\r\n }\r\n });\r\n bar.add(barRect);\r\n }\r\n else {\r\n updateAttr(barRect, null, { shape: rectShape }, symbolMeta, isUpdate);\r\n }\r\n }\r\n function createOrUpdateClip(bar, opt, symbolMeta, isUpdate) {\r\n if (symbolMeta.symbolClip) {\r\n var clipPath = bar.__pictorialClipPath;\r\n var clipShape = extend({}, symbolMeta.clipShape);\r\n var valueDim = opt.valueDim;\r\n var animationModel = symbolMeta.animationModel;\r\n var dataIndex = symbolMeta.dataIndex;\r\n if (clipPath) {\r\n updateProps(clipPath, { shape: clipShape }, animationModel, dataIndex);\r\n }\r\n else {\r\n clipShape[valueDim.wh] = 0;\r\n clipPath = new Rect({ shape: clipShape });\r\n bar.__pictorialBundle.setClipPath(clipPath);\r\n bar.__pictorialClipPath = clipPath;\r\n var target = {};\r\n target[valueDim.wh] = symbolMeta.clipShape[valueDim.wh];\r\n graphic[isUpdate ? 'updateProps' : 'initProps'](clipPath, { shape: target }, animationModel, dataIndex);\r\n }\r\n }\r\n }\r\n function getItemModel(data, dataIndex) {\r\n var itemModel = data.getItemModel(dataIndex);\r\n itemModel.getAnimationDelayParams = getAnimationDelayParams;\r\n itemModel.isAnimationEnabled = isAnimationEnabled;\r\n return itemModel;\r\n }\r\n function getAnimationDelayParams(path) {\r\n return {\r\n index: path.__pictorialAnimationIndex,\r\n count: path.__pictorialRepeatTimes\r\n };\r\n }\r\n function isAnimationEnabled() {\r\n return this.parentModel.isAnimationEnabled() && !!this.getShallow('animation');\r\n }\r\n function createBar(data, opt, symbolMeta, isUpdate) {\r\n var bar = new Group();\r\n var bundle = new Group();\r\n bar.add(bundle);\r\n bar.__pictorialBundle = bundle;\r\n bundle.x = symbolMeta.bundlePosition[0];\r\n bundle.y = symbolMeta.bundlePosition[1];\r\n if (symbolMeta.symbolRepeat) {\r\n createOrUpdateRepeatSymbols(bar, opt, symbolMeta);\r\n }\r\n else {\r\n createOrUpdateSingleSymbol(bar, opt, symbolMeta);\r\n }\r\n createOrUpdateBarRect(bar, symbolMeta, isUpdate);\r\n createOrUpdateClip(bar, opt, symbolMeta, isUpdate);\r\n bar.__pictorialShapeStr = getShapeStr(data, symbolMeta);\r\n bar.__pictorialSymbolMeta = symbolMeta;\r\n return bar;\r\n }\r\n function updateBar(bar, opt, symbolMeta) {\r\n var animationModel = symbolMeta.animationModel;\r\n var dataIndex = symbolMeta.dataIndex;\r\n var bundle = bar.__pictorialBundle;\r\n updateProps(bundle, {\r\n x: symbolMeta.bundlePosition[0],\r\n y: symbolMeta.bundlePosition[1]\r\n }, animationModel, dataIndex);\r\n if (symbolMeta.symbolRepeat) {\r\n createOrUpdateRepeatSymbols(bar, opt, symbolMeta, true);\r\n }\r\n else {\r\n createOrUpdateSingleSymbol(bar, opt, symbolMeta, true);\r\n }\r\n createOrUpdateBarRect(bar, symbolMeta, true);\r\n createOrUpdateClip(bar, opt, symbolMeta, true);\r\n }\r\n function removeBar(data, dataIndex, animationModel, bar) {\r\n var labelRect = bar.__pictorialBarRect;\r\n labelRect && (labelRect.removeTextContent());\r\n var pathes = [];\r\n eachPath(bar, function (path) {\r\n pathes.push(path);\r\n });\r\n bar.__pictorialMainPath && pathes.push(bar.__pictorialMainPath);\r\n bar.__pictorialClipPath && (animationModel = null);\r\n each(pathes, function (path) {\r\n removeElement(path, { scaleX: 0, scaleY: 0 }, animationModel, dataIndex, function () {\r\n bar.parent && bar.parent.remove(bar);\r\n });\r\n });\r\n data.setItemGraphicEl(dataIndex, null);\r\n }\r\n function getShapeStr(data, symbolMeta) {\r\n return [\r\n data.getItemVisual(symbolMeta.dataIndex, 'symbol') || 'none',\r\n !!symbolMeta.symbolRepeat,\r\n !!symbolMeta.symbolClip\r\n ].join(':');\r\n }\r\n function eachPath(bar, cb, context) {\r\n each(bar.__pictorialBundle.children(), function (el) {\r\n el !== bar.__pictorialBarRect && cb.call(context, el);\r\n });\r\n }\r\n function updateAttr(el, immediateAttrs, animationAttrs, symbolMeta, isUpdate, cb) {\r\n immediateAttrs && el.attr(immediateAttrs);\r\n if (symbolMeta.symbolClip && !isUpdate) {\r\n animationAttrs && el.attr(animationAttrs);\r\n }\r\n else {\r\n animationAttrs && graphic[isUpdate ? 'updateProps' : 'initProps'](el, animationAttrs, symbolMeta.animationModel, symbolMeta.dataIndex, cb);\r\n }\r\n }\r\n function updateCommon$1(bar, opt, symbolMeta) {\r\n var dataIndex = symbolMeta.dataIndex;\r\n var itemModel = symbolMeta.itemModel;\r\n var emphasisModel = itemModel.getModel('emphasis');\r\n var emphasisStyle = emphasisModel.getModel('itemStyle').getItemStyle();\r\n var blurStyle = itemModel.getModel(['blur', 'itemStyle']).getItemStyle();\r\n var selectStyle = itemModel.getModel(['select', 'itemStyle']).getItemStyle();\r\n var cursorStyle = itemModel.getShallow('cursor');\r\n var focus = emphasisModel.get('focus');\r\n var blurScope = emphasisModel.get('blurScope');\r\n var hoverScale = emphasisModel.get('scale');\r\n eachPath(bar, function (path) {\r\n if (path instanceof ZRImage) {\r\n var pathStyle = path.style;\r\n path.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 }, symbolMeta.style));\r\n }\r\n else {\r\n path.useStyle(symbolMeta.style);\r\n }\r\n var emphasisState = path.ensureState('emphasis');\r\n emphasisState.style = emphasisStyle;\r\n if (hoverScale) {\r\n emphasisState.scaleX = path.scaleX * 1.1;\r\n emphasisState.scaleY = path.scaleY * 1.1;\r\n }\r\n path.ensureState('blur').style = blurStyle;\r\n path.ensureState('select').style = selectStyle;\r\n cursorStyle && (path.cursor = cursorStyle);\r\n path.z2 = symbolMeta.z2;\r\n });\r\n var barPositionOutside = opt.valueDim.posDesc[+(symbolMeta.boundingLength > 0)];\r\n var barRect = bar.__pictorialBarRect;\r\n setLabelStyle(barRect, getLabelStatesModels(itemModel), {\r\n labelFetcher: opt.seriesModel,\r\n labelDataIndex: dataIndex,\r\n defaultText: getDefaultLabel(opt.seriesModel.getData(), dataIndex),\r\n inheritColor: symbolMeta.style.fill,\r\n defaultOpacity: symbolMeta.style.opacity,\r\n defaultOutsidePosition: barPositionOutside\r\n });\r\n enableHoverEmphasis(bar, focus, blurScope);\r\n }\r\n function toIntTimes(times) {\r\n var roundedTimes = Math.round(times);\r\n return Math.abs(times - roundedTimes) < 1e-4\r\n ? roundedTimes\r\n : Math.ceil(times);\r\n }\r\n ChartView.registerClass(PictorialBarView);\n\n registerLayout(curry(layout, 'pictorialBar'));\n\n var SingleAxis = (function (_super) {\r\n __extends(SingleAxis, _super);\r\n function SingleAxis(dim, scale, coordExtent, axisType, position) {\r\n var _this = _super.call(this, dim, scale, coordExtent) || this;\r\n _this.type = axisType || 'value';\r\n _this.position = position || 'bottom';\r\n return _this;\r\n }\r\n SingleAxis.prototype.isHorizontal = function () {\r\n var position = this.position;\r\n return position === 'top' || position === 'bottom';\r\n };\r\n SingleAxis.prototype.pointToData = function (point, clamp) {\r\n return this.coordinateSystem.pointToData(point)[0];\r\n };\r\n return SingleAxis;\r\n }(Axis));\n\n var Single = (function () {\r\n function Single(axisModel, ecModel, api) {\r\n this.type = 'single';\r\n this.dimension = 'single';\r\n this.dimensions = ['single'];\r\n this.axisPointerEnabled = true;\r\n this.model = axisModel;\r\n this._init(axisModel, ecModel, api);\r\n }\r\n Single.prototype._init = function (axisModel, ecModel, api) {\r\n var dim = this.dimension;\r\n var axis = new SingleAxis(dim, createScaleByModel(axisModel), [0, 0], axisModel.get('type'), axisModel.get('position'));\r\n var isCategory = axis.type === 'category';\r\n axis.onBand = isCategory && axisModel.get('boundaryGap');\r\n axis.inverse = axisModel.get('inverse');\r\n axis.orient = axisModel.get('orient');\r\n axisModel.axis = axis;\r\n axis.model = axisModel;\r\n axis.coordinateSystem = this;\r\n this._axis = axis;\r\n };\r\n Single.prototype.update = function (ecModel, api) {\r\n ecModel.eachSeries(function (seriesModel) {\r\n if (seriesModel.coordinateSystem === this) {\r\n var data_1 = seriesModel.getData();\r\n each(data_1.mapDimensionsAll(this.dimension), function (dim) {\r\n this._axis.scale.unionExtentFromData(data_1, dim);\r\n }, this);\r\n niceScaleExtent(this._axis.scale, this._axis.model);\r\n }\r\n }, this);\r\n };\r\n Single.prototype.resize = function (axisModel, api) {\r\n this._rect = getLayoutRect({\r\n left: axisModel.get('left'),\r\n top: axisModel.get('top'),\r\n right: axisModel.get('right'),\r\n bottom: axisModel.get('bottom'),\r\n width: axisModel.get('width'),\r\n height: axisModel.get('height')\r\n }, {\r\n width: api.getWidth(),\r\n height: api.getHeight()\r\n });\r\n this._adjustAxis();\r\n };\r\n Single.prototype.getRect = function () {\r\n return this._rect;\r\n };\r\n Single.prototype._adjustAxis = function () {\r\n var rect = this._rect;\r\n var axis = this._axis;\r\n var isHorizontal = axis.isHorizontal();\r\n var extent = isHorizontal ? [0, rect.width] : [0, rect.height];\r\n var idx = axis.reverse ? 1 : 0;\r\n axis.setExtent(extent[idx], extent[1 - idx]);\r\n this._updateAxisTransform(axis, isHorizontal ? rect.x : rect.y);\r\n };\r\n Single.prototype._updateAxisTransform = function (axis, coordBase) {\r\n var axisExtent = axis.getExtent();\r\n var extentSum = axisExtent[0] + axisExtent[1];\r\n var isHorizontal = axis.isHorizontal();\r\n axis.toGlobalCoord = isHorizontal\r\n ? function (coord) {\r\n return coord + coordBase;\r\n }\r\n : function (coord) {\r\n return extentSum - coord + coordBase;\r\n };\r\n axis.toLocalCoord = isHorizontal\r\n ? function (coord) {\r\n return coord - coordBase;\r\n }\r\n : function (coord) {\r\n return extentSum - coord + coordBase;\r\n };\r\n };\r\n Single.prototype.getAxis = function () {\r\n return this._axis;\r\n };\r\n Single.prototype.getBaseAxis = function () {\r\n return this._axis;\r\n };\r\n Single.prototype.getAxes = function () {\r\n return [this._axis];\r\n };\r\n Single.prototype.getTooltipAxes = function () {\r\n return {\r\n baseAxes: [this.getAxis()],\r\n otherAxes: []\r\n };\r\n };\r\n Single.prototype.containPoint = function (point) {\r\n var rect = this.getRect();\r\n var axis = this.getAxis();\r\n var orient = axis.orient;\r\n if (orient === 'horizontal') {\r\n return axis.contain(axis.toLocalCoord(point[0]))\r\n && (point[1] >= rect.y && point[1] <= (rect.y + rect.height));\r\n }\r\n else {\r\n return axis.contain(axis.toLocalCoord(point[1]))\r\n && (point[0] >= rect.y && point[0] <= (rect.y + rect.height));\r\n }\r\n };\r\n Single.prototype.pointToData = function (point) {\r\n var axis = this.getAxis();\r\n return [axis.coordToData(axis.toLocalCoord(point[axis.orient === 'horizontal' ? 0 : 1]))];\r\n };\r\n Single.prototype.dataToPoint = function (val) {\r\n var axis = this.getAxis();\r\n var rect = this.getRect();\r\n var pt = [];\r\n var idx = axis.orient === 'horizontal' ? 0 : 1;\r\n if (val instanceof Array) {\r\n val = val[0];\r\n }\r\n pt[idx] = axis.toGlobalCoord(axis.dataToCoord(+val));\r\n pt[1 - idx] = idx === 0 ? (rect.y + rect.height / 2) : (rect.x + rect.width / 2);\r\n return pt;\r\n };\r\n Single.prototype.convertToPixel = function (ecModel, finder, value) {\r\n var coordSys = getCoordSys$2(finder);\r\n return coordSys === this ? this.dataToPoint(value) : null;\r\n };\r\n Single.prototype.convertFromPixel = function (ecModel, finder, pixel) {\r\n var coordSys = getCoordSys$2(finder);\r\n return coordSys === this ? this.pointToData(pixel) : null;\r\n };\r\n return Single;\r\n }());\r\n function getCoordSys$2(finder) {\r\n var seriesModel = finder.seriesModel;\r\n var singleModel = finder.singleAxisModel;\r\n return singleModel && singleModel.coordinateSystem\r\n || seriesModel && seriesModel.coordinateSystem;\r\n }\n\n function create$3(ecModel, api) {\r\n var singles = [];\r\n ecModel.eachComponent('singleAxis', function (axisModel, idx) {\r\n var single = new Single(axisModel, ecModel, api);\r\n single.name = 'single_' + idx;\r\n single.resize(axisModel, api);\r\n axisModel.coordinateSystem = single;\r\n singles.push(single);\r\n });\r\n ecModel.eachSeries(function (seriesModel) {\r\n if (seriesModel.get('coordinateSystem') === 'singleAxis') {\r\n var singleAxisModel = seriesModel.getReferringComponents('singleAxis', SINGLE_REFERRING).models[0];\r\n seriesModel.coordinateSystem = singleAxisModel && singleAxisModel.coordinateSystem;\r\n }\r\n });\r\n return singles;\r\n }\r\n CoordinateSystemManager.register('single', {\r\n create: create$3,\r\n dimensions: Single.prototype.dimensions\r\n });\n\n function layout$2(axisModel, opt) {\r\n opt = opt || {};\r\n var single = axisModel.coordinateSystem;\r\n var axis = axisModel.axis;\r\n var layout = {};\r\n var axisPosition = axis.position;\r\n var orient = axis.orient;\r\n var rect = single.getRect();\r\n var rectBound = [rect.x, rect.x + rect.width, rect.y, rect.y + rect.height];\r\n var positionMap = {\r\n horizontal: { top: rectBound[2], bottom: rectBound[3] },\r\n vertical: { left: rectBound[0], right: rectBound[1] }\r\n };\r\n layout.position = [\r\n orient === 'vertical'\r\n ? positionMap.vertical[axisPosition]\r\n : rectBound[0],\r\n orient === 'horizontal'\r\n ? positionMap.horizontal[axisPosition]\r\n : rectBound[3]\r\n ];\r\n var r = { horizontal: 0, vertical: 1 };\r\n layout.rotation = Math.PI / 2 * r[orient];\r\n var directionMap = { top: -1, bottom: 1, right: 1, left: -1 };\r\n layout.labelDirection = layout.tickDirection =\r\n layout.nameDirection = directionMap[axisPosition];\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 labelRotation = opt.rotate;\r\n labelRotation == null && (labelRotation = axisModel.get(['axisLabel', 'rotate']));\r\n layout.labelRotation = axisPosition === 'top' ? -labelRotation : labelRotation;\r\n layout.z2 = 1;\r\n return layout;\r\n }\n\n var axisBuilderAttrs$2 = [\r\n 'axisLine', 'axisTickLabel', 'axisName'\r\n ];\r\n var selfBuilderAttrs$1 = ['splitArea', 'splitLine'];\r\n var SingleAxisView = (function (_super) {\r\n __extends(SingleAxisView, _super);\r\n function SingleAxisView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = SingleAxisView.type;\r\n _this.axisPointerClass = 'SingleAxisPointer';\r\n return _this;\r\n }\r\n SingleAxisView.prototype.render = function (axisModel, ecModel, api, payload) {\r\n var group = this.group;\r\n group.removeAll();\r\n var oldAxisGroup = this._axisGroup;\r\n this._axisGroup = new Group();\r\n var layout = layout$2(axisModel);\r\n var axisBuilder = new AxisBuilder(axisModel, layout);\r\n each(axisBuilderAttrs$2, axisBuilder.add, axisBuilder);\r\n group.add(this._axisGroup);\r\n group.add(axisBuilder.getGroup());\r\n each(selfBuilderAttrs$1, function (name) {\r\n if (axisModel.get([name, 'show'])) {\r\n axisElementBuilders$1[name](this, this.group, this._axisGroup, axisModel);\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 SingleAxisView.prototype.remove = function () {\r\n rectCoordAxisHandleRemove(this);\r\n };\r\n SingleAxisView.type = 'singleAxis';\r\n return SingleAxisView;\r\n }(AxisView));\r\n var axisElementBuilders$1 = {\r\n splitLine: function (axisView, group, axisGroup, axisModel) {\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 = lineColors instanceof Array ? lineColors : [lineColors];\r\n var gridRect = axisModel.coordinateSystem.getRect();\r\n var isHorizontal = axis.isHorizontal();\r\n var splitLines = [];\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 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 splitLines[colorIndex] = splitLines[colorIndex] || [];\r\n splitLines[colorIndex].push(new Line({\r\n subPixelOptimize: 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 silent: true\r\n }));\r\n }\r\n var lineStyle = lineStyleModel.getLineStyle(['color']);\r\n for (var i = 0; i < splitLines.length; ++i) {\r\n group.add(mergePath$1(splitLines[i], {\r\n style: defaults({\r\n stroke: lineColors[i % lineColors.length]\r\n }, lineStyle),\r\n silent: true\r\n }));\r\n }\r\n },\r\n splitArea: function (axisView, group, axisGroup, axisModel) {\r\n rectCoordAxisBuildSplitArea(axisView, axisGroup, axisModel, axisModel);\r\n }\r\n };\r\n ComponentView.registerClass(SingleAxisView);\n\n var SingleAxisModel = (function (_super) {\r\n __extends(SingleAxisModel, _super);\r\n function SingleAxisModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = SingleAxisModel.type;\r\n return _this;\r\n }\r\n SingleAxisModel.prototype.getCoordSysModel = function () {\r\n return this;\r\n };\r\n SingleAxisModel.type = 'singleAxis';\r\n SingleAxisModel.layoutMode = 'box';\r\n SingleAxisModel.defaultOption = {\r\n left: '5%',\r\n top: '5%',\r\n right: '5%',\r\n bottom: '5%',\r\n type: 'value',\r\n position: 'bottom',\r\n orient: 'horizontal',\r\n axisLine: {\r\n show: true,\r\n lineStyle: {\r\n width: 1,\r\n type: 'solid'\r\n }\r\n },\r\n tooltip: {\r\n show: true\r\n },\r\n axisTick: {\r\n show: true,\r\n length: 6,\r\n lineStyle: {\r\n width: 1\r\n }\r\n },\r\n axisLabel: {\r\n show: true,\r\n interval: 'auto'\r\n },\r\n splitLine: {\r\n show: true,\r\n lineStyle: {\r\n type: 'dashed',\r\n opacity: 0.2\r\n }\r\n }\r\n };\r\n return SingleAxisModel;\r\n }(ComponentModel));\r\n ComponentModel.registerClass(SingleAxisModel);\r\n mixin(SingleAxisModel, AxisModelCommonMixin.prototype);\r\n axisModelCreator('single', SingleAxisModel, SingleAxisModel.defaultOption);\n\n function findPointFromSeries(finder, ecModel) {\r\n var point = [];\r\n var seriesIndex = finder.seriesIndex;\r\n var seriesModel;\r\n if (seriesIndex == null || !(seriesModel = ecModel.getSeriesByIndex(seriesIndex))) {\r\n return {\r\n point: []\r\n };\r\n }\r\n var data = seriesModel.getData();\r\n var dataIndex = queryDataIndex(data, finder);\r\n if (dataIndex == null || dataIndex < 0 || isArray(dataIndex)) {\r\n return { point: [] };\r\n }\r\n var el = data.getItemGraphicEl(dataIndex);\r\n var coordSys = seriesModel.coordinateSystem;\r\n if (seriesModel.getTooltipPosition) {\r\n point = seriesModel.getTooltipPosition(dataIndex) || [];\r\n }\r\n else if (coordSys && coordSys.dataToPoint) {\r\n if (finder.isStacked) {\r\n var baseAxis = coordSys.getBaseAxis();\r\n var valueAxis = coordSys.getOtherAxis(baseAxis);\r\n var valueAxisDim = valueAxis.dim;\r\n var baseAxisDim = baseAxis.dim;\r\n var baseDataOffset = valueAxisDim === 'x' || valueAxisDim === 'radius' ? 1 : 0;\r\n var baseDim = data.mapDimension(baseAxisDim);\r\n var stackedData = [];\r\n stackedData[baseDataOffset] = data.get(baseDim, dataIndex);\r\n stackedData[1 - baseDataOffset] = data.get(data.getCalculationInfo('stackResultDimension'), dataIndex);\r\n point = coordSys.dataToPoint(stackedData) || [];\r\n }\r\n else {\r\n point = coordSys.dataToPoint(data.getValues(map(coordSys.dimensions, function (dim) {\r\n return data.mapDimension(dim);\r\n }), dataIndex)) || [];\r\n }\r\n }\r\n else if (el) {\r\n var rect = el.getBoundingRect().clone();\r\n rect.applyTransform(el.transform);\r\n point = [\r\n rect.x + rect.width / 2,\r\n rect.y + rect.height / 2\r\n ];\r\n }\r\n return { point: point, el: el };\r\n }\n\n var inner$b = makeInner();\r\n function axisTrigger(payload, ecModel, api) {\r\n var currTrigger = payload.currTrigger;\r\n var point = [payload.x, payload.y];\r\n var finder = payload;\r\n var dispatchAction = payload.dispatchAction || bind(api.dispatchAction, api);\r\n var coordSysAxesInfo = ecModel.getComponent('axisPointer')\r\n .coordSysAxesInfo;\r\n if (!coordSysAxesInfo) {\r\n return;\r\n }\r\n if (illegalPoint(point)) {\r\n point = findPointFromSeries({\r\n seriesIndex: finder.seriesIndex,\r\n dataIndex: finder.dataIndex\r\n }, ecModel).point;\r\n }\r\n var isIllegalPoint = illegalPoint(point);\r\n var inputAxesInfo = finder.axesInfo;\r\n var axesInfo = coordSysAxesInfo.axesInfo;\r\n var shouldHide = currTrigger === 'leave' || illegalPoint(point);\r\n var outputPayload = {};\r\n var showValueMap = {};\r\n var dataByCoordSys = {\r\n list: [],\r\n map: {}\r\n };\r\n var updaters = {\r\n showPointer: curry(showPointer, showValueMap),\r\n showTooltip: curry(showTooltip, dataByCoordSys)\r\n };\r\n each(coordSysAxesInfo.coordSysMap, function (coordSys, coordSysKey) {\r\n var coordSysContainsPoint = isIllegalPoint || coordSys.containPoint(point);\r\n each(coordSysAxesInfo.coordSysAxesInfo[coordSysKey], function (axisInfo, key) {\r\n var axis = axisInfo.axis;\r\n var inputAxisInfo = findInputAxisInfo(inputAxesInfo, axisInfo);\r\n if (!shouldHide && coordSysContainsPoint && (!inputAxesInfo || inputAxisInfo)) {\r\n var val = inputAxisInfo && inputAxisInfo.value;\r\n if (val == null && !isIllegalPoint) {\r\n val = axis.pointToData(point);\r\n }\r\n val != null && processOnAxis(axisInfo, val, updaters, false, outputPayload);\r\n }\r\n });\r\n });\r\n var linkTriggers = {};\r\n each(axesInfo, function (tarAxisInfo, tarKey) {\r\n var linkGroup = tarAxisInfo.linkGroup;\r\n if (linkGroup && !showValueMap[tarKey]) {\r\n each(linkGroup.axesInfo, function (srcAxisInfo, srcKey) {\r\n var srcValItem = showValueMap[srcKey];\r\n if (srcAxisInfo !== tarAxisInfo && srcValItem) {\r\n var val = srcValItem.value;\r\n linkGroup.mapper && (val = tarAxisInfo.axis.scale.parse(linkGroup.mapper(val, makeMapperParam(srcAxisInfo), makeMapperParam(tarAxisInfo))));\r\n linkTriggers[tarAxisInfo.key] = val;\r\n }\r\n });\r\n }\r\n });\r\n each(linkTriggers, function (val, tarKey) {\r\n processOnAxis(axesInfo[tarKey], val, updaters, true, outputPayload);\r\n });\r\n updateModelActually(showValueMap, axesInfo, outputPayload);\r\n dispatchTooltipActually(dataByCoordSys, point, payload, dispatchAction);\r\n dispatchHighDownActually(axesInfo, dispatchAction, api);\r\n return outputPayload;\r\n }\r\n function processOnAxis(axisInfo, newValue, updaters, noSnap, outputFinder) {\r\n var axis = axisInfo.axis;\r\n if (axis.scale.isBlank() || !axis.containData(newValue)) {\r\n return;\r\n }\r\n if (!axisInfo.involveSeries) {\r\n updaters.showPointer(axisInfo, newValue);\r\n return;\r\n }\r\n var payloadInfo = buildPayloadsBySeries(newValue, axisInfo);\r\n var payloadBatch = payloadInfo.payloadBatch;\r\n var snapToValue = payloadInfo.snapToValue;\r\n if (payloadBatch[0] && outputFinder.seriesIndex == null) {\r\n extend(outputFinder, payloadBatch[0]);\r\n }\r\n if (!noSnap && axisInfo.snap) {\r\n if (axis.containData(snapToValue) && snapToValue != null) {\r\n newValue = snapToValue;\r\n }\r\n }\r\n updaters.showPointer(axisInfo, newValue, payloadBatch);\r\n updaters.showTooltip(axisInfo, payloadInfo, snapToValue);\r\n }\r\n function buildPayloadsBySeries(value, axisInfo) {\r\n var axis = axisInfo.axis;\r\n var dim = axis.dim;\r\n var snapToValue = value;\r\n var payloadBatch = [];\r\n var minDist = Number.MAX_VALUE;\r\n var minDiff = -1;\r\n each(axisInfo.seriesModels, function (series, idx) {\r\n var dataDim = series.getData().mapDimensionsAll(dim);\r\n var seriesNestestValue;\r\n var dataIndices;\r\n if (series.getAxisTooltipData) {\r\n var result = series.getAxisTooltipData(dataDim, value, axis);\r\n dataIndices = result.dataIndices;\r\n seriesNestestValue = result.nestestValue;\r\n }\r\n else {\r\n dataIndices = series.getData().indicesOfNearest(dataDim[0], value, axis.type === 'category' ? 0.5 : null);\r\n if (!dataIndices.length) {\r\n return;\r\n }\r\n seriesNestestValue = series.getData().get(dataDim[0], dataIndices[0]);\r\n }\r\n if (seriesNestestValue == null || !isFinite(seriesNestestValue)) {\r\n return;\r\n }\r\n var diff = value - seriesNestestValue;\r\n var dist = Math.abs(diff);\r\n if (dist <= minDist) {\r\n if (dist < minDist || (diff >= 0 && minDiff < 0)) {\r\n minDist = dist;\r\n minDiff = diff;\r\n snapToValue = seriesNestestValue;\r\n payloadBatch.length = 0;\r\n }\r\n each(dataIndices, function (dataIndex) {\r\n payloadBatch.push({\r\n seriesIndex: series.seriesIndex,\r\n dataIndexInside: dataIndex,\r\n dataIndex: series.getData().getRawIndex(dataIndex)\r\n });\r\n });\r\n }\r\n });\r\n return {\r\n payloadBatch: payloadBatch,\r\n snapToValue: snapToValue\r\n };\r\n }\r\n function showPointer(showValueMap, axisInfo, value, payloadBatch) {\r\n showValueMap[axisInfo.key] = {\r\n value: value,\r\n payloadBatch: payloadBatch\r\n };\r\n }\r\n function showTooltip(dataByCoordSys, axisInfo, payloadInfo, value) {\r\n var payloadBatch = payloadInfo.payloadBatch;\r\n var axis = axisInfo.axis;\r\n var axisModel = axis.model;\r\n var axisPointerModel = axisInfo.axisPointerModel;\r\n if (!axisInfo.triggerTooltip || !payloadBatch.length) {\r\n return;\r\n }\r\n var coordSysModel = axisInfo.coordSys.model;\r\n var coordSysKey = makeKey(coordSysModel);\r\n var coordSysItem = dataByCoordSys.map[coordSysKey];\r\n if (!coordSysItem) {\r\n coordSysItem = dataByCoordSys.map[coordSysKey] = {\r\n coordSysId: coordSysModel.id,\r\n coordSysIndex: coordSysModel.componentIndex,\r\n coordSysType: coordSysModel.type,\r\n coordSysMainType: coordSysModel.mainType,\r\n dataByAxis: []\r\n };\r\n dataByCoordSys.list.push(coordSysItem);\r\n }\r\n coordSysItem.dataByAxis.push({\r\n axisDim: axis.dim,\r\n axisIndex: axisModel.componentIndex,\r\n axisType: axisModel.type,\r\n axisId: axisModel.id,\r\n value: value,\r\n valueLabelOpt: {\r\n precision: axisPointerModel.get(['label', 'precision']),\r\n formatter: axisPointerModel.get(['label', 'formatter'])\r\n },\r\n seriesDataIndices: payloadBatch.slice()\r\n });\r\n }\r\n function updateModelActually(showValueMap, axesInfo, outputPayload) {\r\n var outputAxesInfo = outputPayload.axesInfo = [];\r\n each(axesInfo, function (axisInfo, key) {\r\n var option = axisInfo.axisPointerModel.option;\r\n var valItem = showValueMap[key];\r\n if (valItem) {\r\n !axisInfo.useHandle && (option.status = 'show');\r\n option.value = valItem.value;\r\n option.seriesDataIndices = (valItem.payloadBatch || []).slice();\r\n }\r\n else {\r\n !axisInfo.useHandle && (option.status = 'hide');\r\n }\r\n option.status === 'show' && outputAxesInfo.push({\r\n axisDim: axisInfo.axis.dim,\r\n axisIndex: axisInfo.axis.model.componentIndex,\r\n value: option.value\r\n });\r\n });\r\n }\r\n function dispatchTooltipActually(dataByCoordSys, point, payload, dispatchAction) {\r\n if (illegalPoint(point) || !dataByCoordSys.list.length) {\r\n dispatchAction({ type: 'hideTip' });\r\n return;\r\n }\r\n var sampleItem = ((dataByCoordSys.list[0].dataByAxis[0] || {}).seriesDataIndices || [])[0] || {};\r\n dispatchAction({\r\n type: 'showTip',\r\n escapeConnect: true,\r\n x: point[0],\r\n y: point[1],\r\n tooltipOption: payload.tooltipOption,\r\n position: payload.position,\r\n dataIndexInside: sampleItem.dataIndexInside,\r\n dataIndex: sampleItem.dataIndex,\r\n seriesIndex: sampleItem.seriesIndex,\r\n dataByCoordSys: dataByCoordSys.list\r\n });\r\n }\r\n function dispatchHighDownActually(axesInfo, dispatchAction, api) {\r\n var zr = api.getZr();\r\n var highDownKey = 'axisPointerLastHighlights';\r\n var lastHighlights = inner$b(zr)[highDownKey] || {};\r\n var newHighlights = inner$b(zr)[highDownKey] = {};\r\n each(axesInfo, function (axisInfo, key) {\r\n var option = axisInfo.axisPointerModel.option;\r\n option.status === 'show' && each(option.seriesDataIndices, function (batchItem) {\r\n var key = batchItem.seriesIndex + ' | ' + batchItem.dataIndex;\r\n newHighlights[key] = batchItem;\r\n });\r\n });\r\n var toHighlight = [];\r\n var toDownplay = [];\r\n each(lastHighlights, function (batchItem, key) {\r\n !newHighlights[key] && toDownplay.push(batchItem);\r\n });\r\n each(newHighlights, function (batchItem, key) {\r\n !lastHighlights[key] && toHighlight.push(batchItem);\r\n });\r\n toDownplay.length && api.dispatchAction({\r\n type: 'downplay',\r\n escapeConnect: true,\r\n notBlur: true,\r\n batch: toDownplay\r\n });\r\n toHighlight.length && api.dispatchAction({\r\n type: 'highlight',\r\n escapeConnect: true,\r\n notBlur: true,\r\n batch: toHighlight\r\n });\r\n }\r\n function findInputAxisInfo(inputAxesInfo, axisInfo) {\r\n for (var i = 0; i < (inputAxesInfo || []).length; i++) {\r\n var inputAxisInfo = inputAxesInfo[i];\r\n if (axisInfo.axis.dim === inputAxisInfo.axisDim\r\n && axisInfo.axis.model.componentIndex === inputAxisInfo.axisIndex) {\r\n return inputAxisInfo;\r\n }\r\n }\r\n }\r\n function makeMapperParam(axisInfo) {\r\n var axisModel = axisInfo.axis.model;\r\n var item = {};\r\n var dim = item.axisDim = axisInfo.axis.dim;\r\n item.axisIndex = item[dim + 'AxisIndex'] = axisModel.componentIndex;\r\n item.axisName = item[dim + 'AxisName'] = axisModel.name;\r\n item.axisId = item[dim + 'AxisId'] = axisModel.id;\r\n return item;\r\n }\r\n function illegalPoint(point) {\r\n return !point || point[0] == null || isNaN(point[0]) || point[1] == null || isNaN(point[1]);\r\n }\n\n var inner$c = makeInner();\r\n var each$8 = each;\r\n function register(key, api, handler) {\r\n if (env.node) {\r\n return;\r\n }\r\n var zr = api.getZr();\r\n inner$c(zr).records || (inner$c(zr).records = {});\r\n initGlobalListeners(zr, api);\r\n var record = inner$c(zr).records[key] || (inner$c(zr).records[key] = {});\r\n record.handler = handler;\r\n }\r\n function initGlobalListeners(zr, api) {\r\n if (inner$c(zr).initialized) {\r\n return;\r\n }\r\n inner$c(zr).initialized = true;\r\n useHandler('click', curry(doEnter, 'click'));\r\n useHandler('mousemove', curry(doEnter, 'mousemove'));\r\n useHandler('globalout', onLeave);\r\n function useHandler(eventType, cb) {\r\n zr.on(eventType, function (e) {\r\n var dis = makeDispatchAction(api);\r\n each$8(inner$c(zr).records, function (record) {\r\n record && cb(record, e, dis.dispatchAction);\r\n });\r\n dispatchTooltipFinally(dis.pendings, api);\r\n });\r\n }\r\n }\r\n function dispatchTooltipFinally(pendings, api) {\r\n var showLen = pendings.showTip.length;\r\n var hideLen = pendings.hideTip.length;\r\n var actuallyPayload;\r\n if (showLen) {\r\n actuallyPayload = pendings.showTip[showLen - 1];\r\n }\r\n else if (hideLen) {\r\n actuallyPayload = pendings.hideTip[hideLen - 1];\r\n }\r\n if (actuallyPayload) {\r\n actuallyPayload.dispatchAction = null;\r\n api.dispatchAction(actuallyPayload);\r\n }\r\n }\r\n function onLeave(record, e, dispatchAction) {\r\n record.handler('leave', null, dispatchAction);\r\n }\r\n function doEnter(currTrigger, record, e, dispatchAction) {\r\n record.handler(currTrigger, e, dispatchAction);\r\n }\r\n function makeDispatchAction(api) {\r\n var pendings = {\r\n showTip: [],\r\n hideTip: []\r\n };\r\n var dispatchAction = function (payload) {\r\n var pendingList = pendings[payload.type];\r\n if (pendingList) {\r\n pendingList.push(payload);\r\n }\r\n else {\r\n payload.dispatchAction = dispatchAction;\r\n api.dispatchAction(payload);\r\n }\r\n };\r\n return {\r\n dispatchAction: dispatchAction,\r\n pendings: pendings\r\n };\r\n }\r\n function unregister(key, api) {\r\n if (env.node) {\r\n return;\r\n }\r\n var zr = api.getZr();\r\n var record = (inner$c(zr).records || {})[key];\r\n if (record) {\r\n inner$c(zr).records[key] = null;\r\n }\r\n }\n\n var AxisPointerView = (function (_super) {\r\n __extends(AxisPointerView, _super);\r\n function AxisPointerView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = AxisPointerView.type;\r\n return _this;\r\n }\r\n AxisPointerView.prototype.render = function (globalAxisPointerModel, ecModel, api) {\r\n var globalTooltipModel = ecModel.getComponent('tooltip');\r\n var triggerOn = globalAxisPointerModel.get('triggerOn')\r\n || (globalTooltipModel && globalTooltipModel.get('triggerOn') || 'mousemove|click');\r\n register('axisPointer', api, function (currTrigger, e, dispatchAction) {\r\n if (triggerOn !== 'none'\r\n && (currTrigger === 'leave' || triggerOn.indexOf(currTrigger) >= 0)) {\r\n dispatchAction({\r\n type: 'updateAxisPointer',\r\n currTrigger: currTrigger,\r\n x: e && e.offsetX,\r\n y: e && e.offsetY\r\n });\r\n }\r\n });\r\n };\r\n AxisPointerView.prototype.remove = function (ecModel, api) {\r\n unregister('axisPointer', api);\r\n };\r\n AxisPointerView.prototype.dispose = function (ecModel, api) {\r\n unregister('axisPointer', api);\r\n };\r\n AxisPointerView.type = 'axisPointer';\r\n return AxisPointerView;\r\n }(ComponentView));\r\n ComponentView.registerClass(AxisPointerView);\n\n var inner$d = makeInner();\r\n var clone$3 = clone;\r\n var bind$1 = bind;\r\n var BaseAxisPointer = (function () {\r\n function BaseAxisPointer() {\r\n this._dragging = false;\r\n this.animationThreshold = 15;\r\n }\r\n BaseAxisPointer.prototype.render = function (axisModel, axisPointerModel, api, forceRender) {\r\n var value = axisPointerModel.get('value');\r\n var status = axisPointerModel.get('status');\r\n this._axisModel = axisModel;\r\n this._axisPointerModel = axisPointerModel;\r\n this._api = api;\r\n if (!forceRender\r\n && this._lastValue === value\r\n && this._lastStatus === status) {\r\n return;\r\n }\r\n this._lastValue = value;\r\n this._lastStatus = status;\r\n var group = this._group;\r\n var handle = this._handle;\r\n if (!status || status === 'hide') {\r\n group && group.hide();\r\n handle && handle.hide();\r\n return;\r\n }\r\n group && group.show();\r\n handle && handle.show();\r\n var elOption = {};\r\n this.makeElOption(elOption, value, axisModel, axisPointerModel, api);\r\n var graphicKey = elOption.graphicKey;\r\n if (graphicKey !== this._lastGraphicKey) {\r\n this.clear(api);\r\n }\r\n this._lastGraphicKey = graphicKey;\r\n var moveAnimation = this._moveAnimation =\r\n this.determineAnimation(axisModel, axisPointerModel);\r\n if (!group) {\r\n group = this._group = new Group();\r\n this.createPointerEl(group, elOption, axisModel, axisPointerModel);\r\n this.createLabelEl(group, elOption, axisModel, axisPointerModel);\r\n api.getZr().add(group);\r\n }\r\n else {\r\n var doUpdateProps = curry(updateProps$1, axisPointerModel, moveAnimation);\r\n this.updatePointerEl(group, elOption, doUpdateProps);\r\n this.updateLabelEl(group, elOption, doUpdateProps, axisPointerModel);\r\n }\r\n updateMandatoryProps(group, axisPointerModel, true);\r\n this._renderHandle(value);\r\n };\r\n BaseAxisPointer.prototype.remove = function (api) {\r\n this.clear(api);\r\n };\r\n BaseAxisPointer.prototype.dispose = function (api) {\r\n this.clear(api);\r\n };\r\n BaseAxisPointer.prototype.determineAnimation = function (axisModel, axisPointerModel) {\r\n var animation = axisPointerModel.get('animation');\r\n var axis = axisModel.axis;\r\n var isCategoryAxis = axis.type === 'category';\r\n var useSnap = axisPointerModel.get('snap');\r\n if (!useSnap && !isCategoryAxis) {\r\n return false;\r\n }\r\n if (animation === 'auto' || animation == null) {\r\n var animationThreshold = this.animationThreshold;\r\n if (isCategoryAxis && axis.getBandWidth() > animationThreshold) {\r\n return true;\r\n }\r\n if (useSnap) {\r\n var seriesDataCount = getAxisInfo(axisModel).seriesDataCount;\r\n var axisExtent = axis.getExtent();\r\n return Math.abs(axisExtent[0] - axisExtent[1]) / seriesDataCount > animationThreshold;\r\n }\r\n return false;\r\n }\r\n return animation === true;\r\n };\r\n BaseAxisPointer.prototype.makeElOption = function (elOption, value, axisModel, axisPointerModel, api) {\r\n };\r\n BaseAxisPointer.prototype.createPointerEl = function (group, elOption, axisModel, axisPointerModel) {\r\n var pointerOption = elOption.pointer;\r\n if (pointerOption) {\r\n var pointerEl = inner$d(group).pointerEl = new graphic[pointerOption.type](clone$3(elOption.pointer));\r\n group.add(pointerEl);\r\n }\r\n };\r\n BaseAxisPointer.prototype.createLabelEl = function (group, elOption, axisModel, axisPointerModel) {\r\n if (elOption.label) {\r\n var labelEl = inner$d(group).labelEl = new ZRText(clone$3(elOption.label));\r\n group.add(labelEl);\r\n updateLabelShowHide(labelEl, axisPointerModel);\r\n }\r\n };\r\n BaseAxisPointer.prototype.updatePointerEl = function (group, elOption, updateProps) {\r\n var pointerEl = inner$d(group).pointerEl;\r\n if (pointerEl && elOption.pointer) {\r\n pointerEl.setStyle(elOption.pointer.style);\r\n updateProps(pointerEl, { shape: elOption.pointer.shape });\r\n }\r\n };\r\n BaseAxisPointer.prototype.updateLabelEl = function (group, elOption, updateProps, axisPointerModel) {\r\n var labelEl = inner$d(group).labelEl;\r\n if (labelEl) {\r\n labelEl.setStyle(elOption.label.style);\r\n updateProps(labelEl, {\r\n x: elOption.label.x,\r\n y: elOption.label.y\r\n });\r\n updateLabelShowHide(labelEl, axisPointerModel);\r\n }\r\n };\r\n BaseAxisPointer.prototype._renderHandle = function (value) {\r\n if (this._dragging || !this.updateHandleTransform) {\r\n return;\r\n }\r\n var axisPointerModel = this._axisPointerModel;\r\n var zr = this._api.getZr();\r\n var handle = this._handle;\r\n var handleModel = axisPointerModel.getModel('handle');\r\n var status = axisPointerModel.get('status');\r\n if (!handleModel.get('show') || !status || status === 'hide') {\r\n handle && zr.remove(handle);\r\n this._handle = null;\r\n return;\r\n }\r\n var isInit;\r\n if (!this._handle) {\r\n isInit = true;\r\n handle = this._handle = createIcon(handleModel.get('icon'), {\r\n cursor: 'move',\r\n draggable: true,\r\n onmousemove: function (e) {\r\n stop(e.event);\r\n },\r\n onmousedown: bind$1(this._onHandleDragMove, this, 0, 0),\r\n drift: bind$1(this._onHandleDragMove, this),\r\n ondragend: bind$1(this._onHandleDragEnd, this)\r\n });\r\n zr.add(handle);\r\n }\r\n updateMandatoryProps(handle, axisPointerModel, false);\r\n handle.setStyle(handleModel.getItemStyle(null, [\r\n 'color', 'borderColor', 'borderWidth', 'opacity',\r\n 'shadowColor', 'shadowBlur', 'shadowOffsetX', 'shadowOffsetY'\r\n ]));\r\n var handleSize = handleModel.get('size');\r\n if (!isArray(handleSize)) {\r\n handleSize = [handleSize, handleSize];\r\n }\r\n handle.scaleX = handleSize[0] / 2;\r\n handle.scaleY = handleSize[1] / 2;\r\n createOrUpdate(this, '_doDispatchAxisPointer', handleModel.get('throttle') || 0, 'fixRate');\r\n this._moveHandleToValue(value, isInit);\r\n };\r\n BaseAxisPointer.prototype._moveHandleToValue = function (value, isInit) {\r\n updateProps$1(this._axisPointerModel, !isInit && this._moveAnimation, this._handle, getHandleTransProps(this.getHandleTransform(value, this._axisModel, this._axisPointerModel)));\r\n };\r\n BaseAxisPointer.prototype._onHandleDragMove = function (dx, dy) {\r\n var handle = this._handle;\r\n if (!handle) {\r\n return;\r\n }\r\n this._dragging = true;\r\n var trans = this.updateHandleTransform(getHandleTransProps(handle), [dx, dy], this._axisModel, this._axisPointerModel);\r\n this._payloadInfo = trans;\r\n handle.stopAnimation();\r\n handle.attr(getHandleTransProps(trans));\r\n inner$d(handle).lastProp = null;\r\n this._doDispatchAxisPointer();\r\n };\r\n BaseAxisPointer.prototype._doDispatchAxisPointer = function () {\r\n var handle = this._handle;\r\n if (!handle) {\r\n return;\r\n }\r\n var payloadInfo = this._payloadInfo;\r\n var axisModel = this._axisModel;\r\n this._api.dispatchAction({\r\n type: 'updateAxisPointer',\r\n x: payloadInfo.cursorPoint[0],\r\n y: payloadInfo.cursorPoint[1],\r\n tooltipOption: payloadInfo.tooltipOption,\r\n axesInfo: [{\r\n axisDim: axisModel.axis.dim,\r\n axisIndex: axisModel.componentIndex\r\n }]\r\n });\r\n };\r\n BaseAxisPointer.prototype._onHandleDragEnd = function () {\r\n this._dragging = false;\r\n var handle = this._handle;\r\n if (!handle) {\r\n return;\r\n }\r\n var value = this._axisPointerModel.get('value');\r\n this._moveHandleToValue(value);\r\n this._api.dispatchAction({\r\n type: 'hideTip'\r\n });\r\n };\r\n BaseAxisPointer.prototype.clear = function (api) {\r\n this._lastValue = null;\r\n this._lastStatus = null;\r\n var zr = api.getZr();\r\n var group = this._group;\r\n var handle = this._handle;\r\n if (zr && group) {\r\n this._lastGraphicKey = null;\r\n group && zr.remove(group);\r\n handle && zr.remove(handle);\r\n this._group = null;\r\n this._handle = null;\r\n this._payloadInfo = null;\r\n }\r\n };\r\n BaseAxisPointer.prototype.doClear = function () {\r\n };\r\n BaseAxisPointer.prototype.buildLabel = function (xy, wh, xDimIndex) {\r\n xDimIndex = xDimIndex || 0;\r\n return {\r\n x: xy[xDimIndex],\r\n y: xy[1 - xDimIndex],\r\n width: wh[xDimIndex],\r\n height: wh[1 - xDimIndex]\r\n };\r\n };\r\n return BaseAxisPointer;\r\n }());\r\n function updateProps$1(animationModel, moveAnimation, el, props) {\r\n if (!propsEqual(inner$d(el).lastProp, props)) {\r\n inner$d(el).lastProp = props;\r\n moveAnimation\r\n ? updateProps(el, props, animationModel)\r\n : (el.stopAnimation(), el.attr(props));\r\n }\r\n }\r\n function propsEqual(lastProps, newProps) {\r\n if (isObject(lastProps) && isObject(newProps)) {\r\n var equals_1 = true;\r\n each(newProps, function (item, key) {\r\n equals_1 = equals_1 && propsEqual(lastProps[key], item);\r\n });\r\n return !!equals_1;\r\n }\r\n else {\r\n return lastProps === newProps;\r\n }\r\n }\r\n function updateLabelShowHide(labelEl, axisPointerModel) {\r\n labelEl[axisPointerModel.get(['label', 'show']) ? 'show' : 'hide']();\r\n }\r\n function getHandleTransProps(trans) {\r\n return {\r\n x: trans.x || 0,\r\n y: trans.y || 0,\r\n rotation: trans.rotation || 0\r\n };\r\n }\r\n function updateMandatoryProps(group, axisPointerModel, silent) {\r\n var z = axisPointerModel.get('z');\r\n var zlevel = axisPointerModel.get('zlevel');\r\n group && group.traverse(function (el) {\r\n if (el.type !== 'group') {\r\n z != null && (el.z = z);\r\n zlevel != null && (el.zlevel = zlevel);\r\n el.silent = silent;\r\n }\r\n });\r\n }\n\n function buildElStyle(axisPointerModel) {\r\n var axisPointerType = axisPointerModel.get('type');\r\n var styleModel = axisPointerModel.getModel(axisPointerType + 'Style');\r\n var style;\r\n if (axisPointerType === 'line') {\r\n style = styleModel.getLineStyle();\r\n style.fill = null;\r\n }\r\n else if (axisPointerType === 'shadow') {\r\n style = styleModel.getAreaStyle();\r\n style.stroke = null;\r\n }\r\n return style;\r\n }\r\n function buildLabelElOption(elOption, axisModel, axisPointerModel, api, labelPos) {\r\n var value = axisPointerModel.get('value');\r\n var text = getValueLabel(value, axisModel.axis, axisModel.ecModel, axisPointerModel.get('seriesDataIndices'), {\r\n precision: axisPointerModel.get(['label', 'precision']),\r\n formatter: axisPointerModel.get(['label', 'formatter'])\r\n });\r\n var labelModel = axisPointerModel.getModel('label');\r\n var paddings = normalizeCssArray$1(labelModel.get('padding') || 0);\r\n var font = labelModel.getFont();\r\n var textRect = getBoundingRect(text, font);\r\n var position = labelPos.position;\r\n var width = textRect.width + paddings[1] + paddings[3];\r\n var height = textRect.height + paddings[0] + paddings[2];\r\n var align = labelPos.align;\r\n align === 'right' && (position[0] -= width);\r\n align === 'center' && (position[0] -= width / 2);\r\n var verticalAlign = labelPos.verticalAlign;\r\n verticalAlign === 'bottom' && (position[1] -= height);\r\n verticalAlign === 'middle' && (position[1] -= height / 2);\r\n confineInContainer(position, width, height, api);\r\n var bgColor = labelModel.get('backgroundColor');\r\n if (!bgColor || bgColor === 'auto') {\r\n bgColor = axisModel.get(['axisLine', 'lineStyle', 'color']);\r\n }\r\n elOption.label = {\r\n x: position[0],\r\n y: position[1],\r\n style: createTextStyle(labelModel, {\r\n text: text,\r\n font: font,\r\n fill: labelModel.getTextColor(),\r\n padding: paddings,\r\n backgroundColor: bgColor\r\n }),\r\n z2: 10\r\n };\r\n }\r\n function confineInContainer(position, width, height, api) {\r\n var viewWidth = api.getWidth();\r\n var viewHeight = api.getHeight();\r\n position[0] = Math.min(position[0] + width, viewWidth) - width;\r\n position[1] = Math.min(position[1] + height, viewHeight) - height;\r\n position[0] = Math.max(position[0], 0);\r\n position[1] = Math.max(position[1], 0);\r\n }\r\n function getValueLabel(value, axis, ecModel, seriesDataIndices, opt) {\r\n value = axis.scale.parse(value);\r\n var text = axis.scale.getLabel({\r\n value: value\r\n }, {\r\n precision: opt.precision\r\n });\r\n var formatter = opt.formatter;\r\n if (formatter) {\r\n var params_1 = {\r\n value: getAxisRawValue(axis, { value: value }),\r\n axisDimension: axis.dim,\r\n axisIndex: axis.index,\r\n seriesData: []\r\n };\r\n each(seriesDataIndices, function (idxItem) {\r\n var series = ecModel.getSeriesByIndex(idxItem.seriesIndex);\r\n var dataIndex = idxItem.dataIndexInside;\r\n var dataParams = series && series.getDataParams(dataIndex);\r\n dataParams && params_1.seriesData.push(dataParams);\r\n });\r\n if (isString(formatter)) {\r\n text = formatter.replace('{value}', text);\r\n }\r\n else if (isFunction(formatter)) {\r\n text = formatter(params_1);\r\n }\r\n }\r\n return text;\r\n }\r\n function getTransformedPosition(axis, value, layoutInfo) {\r\n var transform = create$1();\r\n rotate(transform, transform, layoutInfo.rotation);\r\n translate(transform, transform, layoutInfo.position);\r\n return applyTransform$1([\r\n axis.dataToCoord(value),\r\n (layoutInfo.labelOffset || 0)\r\n + (layoutInfo.labelDirection || 1) * (layoutInfo.labelMargin || 0)\r\n ], transform);\r\n }\r\n function buildCartesianSingleLabelElOption(value, elOption, layoutInfo, axisModel, axisPointerModel, api) {\r\n var textLayout = AxisBuilder.innerTextLayout(layoutInfo.rotation, 0, layoutInfo.labelDirection);\r\n layoutInfo.labelMargin = axisPointerModel.get(['label', 'margin']);\r\n buildLabelElOption(elOption, axisModel, axisPointerModel, api, {\r\n position: getTransformedPosition(axisModel.axis, value, layoutInfo),\r\n align: textLayout.textAlign,\r\n verticalAlign: textLayout.textVerticalAlign\r\n });\r\n }\r\n function makeLineShape(p1, p2, xDimIndex) {\r\n xDimIndex = xDimIndex || 0;\r\n return {\r\n x1: p1[xDimIndex],\r\n y1: p1[1 - xDimIndex],\r\n x2: p2[xDimIndex],\r\n y2: p2[1 - xDimIndex]\r\n };\r\n }\r\n function makeRectShape(xy, wh, xDimIndex) {\r\n xDimIndex = xDimIndex || 0;\r\n return {\r\n x: xy[xDimIndex],\r\n y: xy[1 - xDimIndex],\r\n width: wh[xDimIndex],\r\n height: wh[1 - xDimIndex]\r\n };\r\n }\r\n function makeSectorShape(cx, cy, r0, r, startAngle, endAngle) {\r\n return {\r\n cx: cx,\r\n cy: cy,\r\n r0: r0,\r\n r: r,\r\n startAngle: startAngle,\r\n endAngle: endAngle,\r\n clockwise: true\r\n };\r\n }\n\n var CartesianAxisPointer = (function (_super) {\r\n __extends(CartesianAxisPointer, _super);\r\n function CartesianAxisPointer() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n CartesianAxisPointer.prototype.makeElOption = function (elOption, value, axisModel, axisPointerModel, api) {\r\n var axis = axisModel.axis;\r\n var grid = axis.grid;\r\n var axisPointerType = axisPointerModel.get('type');\r\n var otherExtent = getCartesian(grid, axis).getOtherAxis(axis).getGlobalExtent();\r\n var pixelValue = axis.toGlobalCoord(axis.dataToCoord(value, true));\r\n if (axisPointerType && axisPointerType !== 'none') {\r\n var elStyle = buildElStyle(axisPointerModel);\r\n var pointerOption = pointerShapeBuilder[axisPointerType](axis, pixelValue, otherExtent);\r\n pointerOption.style = elStyle;\r\n elOption.graphicKey = pointerOption.type;\r\n elOption.pointer = pointerOption;\r\n }\r\n var layoutInfo = layout$1(grid.model, axisModel);\r\n buildCartesianSingleLabelElOption(value, elOption, layoutInfo, axisModel, axisPointerModel, api);\r\n };\r\n CartesianAxisPointer.prototype.getHandleTransform = function (value, axisModel, axisPointerModel) {\r\n var layoutInfo = layout$1(axisModel.axis.grid.model, axisModel, {\r\n labelInside: false\r\n });\r\n layoutInfo.labelMargin = axisPointerModel.get(['handle', 'margin']);\r\n var pos = getTransformedPosition(axisModel.axis, value, layoutInfo);\r\n return {\r\n x: pos[0],\r\n y: pos[1],\r\n rotation: layoutInfo.rotation + (layoutInfo.labelDirection < 0 ? Math.PI : 0)\r\n };\r\n };\r\n CartesianAxisPointer.prototype.updateHandleTransform = function (transform, delta, axisModel, axisPointerModel) {\r\n var axis = axisModel.axis;\r\n var grid = axis.grid;\r\n var axisExtent = axis.getGlobalExtent(true);\r\n var otherExtent = getCartesian(grid, axis).getOtherAxis(axis).getGlobalExtent();\r\n var dimIndex = axis.dim === 'x' ? 0 : 1;\r\n var currPosition = [transform.x, transform.y];\r\n currPosition[dimIndex] += delta[dimIndex];\r\n currPosition[dimIndex] = Math.min(axisExtent[1], currPosition[dimIndex]);\r\n currPosition[dimIndex] = Math.max(axisExtent[0], currPosition[dimIndex]);\r\n var cursorOtherValue = (otherExtent[1] + otherExtent[0]) / 2;\r\n var cursorPoint = [cursorOtherValue, cursorOtherValue];\r\n cursorPoint[dimIndex] = currPosition[dimIndex];\r\n var tooltipOptions = [\r\n { verticalAlign: 'middle' },\r\n { align: 'center' }\r\n ];\r\n return {\r\n x: currPosition[0],\r\n y: currPosition[1],\r\n rotation: transform.rotation,\r\n cursorPoint: cursorPoint,\r\n tooltipOption: tooltipOptions[dimIndex]\r\n };\r\n };\r\n return CartesianAxisPointer;\r\n }(BaseAxisPointer));\r\n function getCartesian(grid, axis) {\r\n var opt = {};\r\n opt[axis.dim + 'AxisIndex'] = axis.index;\r\n return grid.getCartesian(opt);\r\n }\r\n var pointerShapeBuilder = {\r\n line: function (axis, pixelValue, otherExtent) {\r\n var targetShape = makeLineShape([pixelValue, otherExtent[0]], [pixelValue, otherExtent[1]], getAxisDimIndex(axis));\r\n return {\r\n type: 'Line',\r\n subPixelOptimize: true,\r\n shape: targetShape\r\n };\r\n },\r\n shadow: function (axis, pixelValue, otherExtent) {\r\n var bandWidth = Math.max(1, axis.getBandWidth());\r\n var span = otherExtent[1] - otherExtent[0];\r\n return {\r\n type: 'Rect',\r\n shape: makeRectShape([pixelValue - bandWidth / 2, otherExtent[0]], [bandWidth, span], getAxisDimIndex(axis))\r\n };\r\n }\r\n };\r\n function getAxisDimIndex(axis) {\r\n return axis.dim === 'x' ? 0 : 1;\r\n }\r\n AxisView.registerAxisPointerClass('CartesianAxisPointer', CartesianAxisPointer);\n\n var AxisPointerModel = (function (_super) {\r\n __extends(AxisPointerModel, _super);\r\n function AxisPointerModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = AxisPointerModel.type;\r\n return _this;\r\n }\r\n AxisPointerModel.type = 'axisPointer';\r\n AxisPointerModel.defaultOption = {\r\n show: 'auto',\r\n zlevel: 0,\r\n z: 50,\r\n type: 'line',\r\n snap: false,\r\n triggerTooltip: true,\r\n value: null,\r\n status: null,\r\n link: [],\r\n animation: null,\r\n animationDurationUpdate: 200,\r\n lineStyle: {\r\n color: '#B9BEC9',\r\n width: 1,\r\n type: 'dashed'\r\n },\r\n shadowStyle: {\r\n color: 'rgba(210,219,238,0.2)'\r\n },\r\n label: {\r\n show: true,\r\n formatter: null,\r\n precision: 'auto',\r\n margin: 3,\r\n color: '#fff',\r\n padding: [5, 7, 5, 7],\r\n backgroundColor: 'auto',\r\n borderColor: null,\r\n borderWidth: 0,\r\n borderRadius: 3\r\n },\r\n handle: {\r\n show: false,\r\n icon: 'M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4h1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7v-1.2h6.6z M13.3,22H6.7v-1.2h6.6z M13.3,19.6H6.7v-1.2h6.6z',\r\n size: 45,\r\n margin: 50,\r\n color: '#333',\r\n shadowBlur: 3,\r\n shadowColor: '#aaa',\r\n shadowOffsetX: 0,\r\n shadowOffsetY: 2,\r\n throttle: 40\r\n }\r\n };\r\n return AxisPointerModel;\r\n }(ComponentModel));\n\n ComponentModel.registerClass(AxisPointerModel);\r\n registerPreprocessor(function (option) {\r\n if (option) {\r\n (!option.axisPointer || option.axisPointer.length === 0)\r\n && (option.axisPointer = {});\r\n var link = option.axisPointer.link;\r\n if (link && !isArray(link)) {\r\n option.axisPointer.link = [link];\r\n }\r\n }\r\n });\r\n registerProcessor(PRIORITY.PROCESSOR.STATISTIC, function (ecModel, api) {\r\n ecModel.getComponent('axisPointer').coordSysAxesInfo =\r\n collect(ecModel, api);\r\n });\r\n registerAction({\r\n type: 'updateAxisPointer',\r\n event: 'updateAxisPointer',\r\n update: ':updateAxisPointer'\r\n }, axisTrigger);\n\n var XY = ['x', 'y'];\r\n var WH = ['width', 'height'];\r\n var SingleAxisPointer = (function (_super) {\r\n __extends(SingleAxisPointer, _super);\r\n function SingleAxisPointer() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n SingleAxisPointer.prototype.makeElOption = function (elOption, value, axisModel, axisPointerModel, api) {\r\n var axis = axisModel.axis;\r\n var coordSys = axis.coordinateSystem;\r\n var otherExtent = getGlobalExtent(coordSys, 1 - getPointDimIndex(axis));\r\n var pixelValue = coordSys.dataToPoint(value)[0];\r\n var axisPointerType = axisPointerModel.get('type');\r\n if (axisPointerType && axisPointerType !== 'none') {\r\n var elStyle = buildElStyle(axisPointerModel);\r\n var pointerOption = pointerShapeBuilder$1[axisPointerType](axis, pixelValue, otherExtent);\r\n pointerOption.style = elStyle;\r\n elOption.graphicKey = pointerOption.type;\r\n elOption.pointer = pointerOption;\r\n }\r\n var layoutInfo = layout$2(axisModel);\r\n buildCartesianSingleLabelElOption(value, elOption, layoutInfo, axisModel, axisPointerModel, api);\r\n };\r\n SingleAxisPointer.prototype.getHandleTransform = function (value, axisModel, axisPointerModel) {\r\n var layoutInfo = layout$2(axisModel, { labelInside: false });\r\n layoutInfo.labelMargin = axisPointerModel.get(['handle', 'margin']);\r\n var position = getTransformedPosition(axisModel.axis, value, layoutInfo);\r\n return {\r\n x: position[0],\r\n y: position[1],\r\n rotation: layoutInfo.rotation + (layoutInfo.labelDirection < 0 ? Math.PI : 0)\r\n };\r\n };\r\n SingleAxisPointer.prototype.updateHandleTransform = function (transform, delta, axisModel, axisPointerModel) {\r\n var axis = axisModel.axis;\r\n var coordSys = axis.coordinateSystem;\r\n var dimIndex = getPointDimIndex(axis);\r\n var axisExtent = getGlobalExtent(coordSys, dimIndex);\r\n var currPosition = [transform.x, transform.y];\r\n currPosition[dimIndex] += delta[dimIndex];\r\n currPosition[dimIndex] = Math.min(axisExtent[1], currPosition[dimIndex]);\r\n currPosition[dimIndex] = Math.max(axisExtent[0], currPosition[dimIndex]);\r\n var otherExtent = getGlobalExtent(coordSys, 1 - dimIndex);\r\n var cursorOtherValue = (otherExtent[1] + otherExtent[0]) / 2;\r\n var cursorPoint = [cursorOtherValue, cursorOtherValue];\r\n cursorPoint[dimIndex] = currPosition[dimIndex];\r\n return {\r\n x: currPosition[0],\r\n y: currPosition[1],\r\n rotation: transform.rotation,\r\n cursorPoint: cursorPoint,\r\n tooltipOption: {\r\n verticalAlign: 'middle'\r\n }\r\n };\r\n };\r\n return SingleAxisPointer;\r\n }(BaseAxisPointer));\r\n var pointerShapeBuilder$1 = {\r\n line: function (axis, pixelValue, otherExtent) {\r\n var targetShape = makeLineShape([pixelValue, otherExtent[0]], [pixelValue, otherExtent[1]], getPointDimIndex(axis));\r\n return {\r\n type: 'Line',\r\n subPixelOptimize: true,\r\n shape: targetShape\r\n };\r\n },\r\n shadow: function (axis, pixelValue, otherExtent) {\r\n var bandWidth = axis.getBandWidth();\r\n var span = otherExtent[1] - otherExtent[0];\r\n return {\r\n type: 'Rect',\r\n shape: makeRectShape([pixelValue - bandWidth / 2, otherExtent[0]], [bandWidth, span], getPointDimIndex(axis))\r\n };\r\n }\r\n };\r\n function getPointDimIndex(axis) {\r\n return axis.isHorizontal() ? 0 : 1;\r\n }\r\n function getGlobalExtent(coordSys, dimIndex) {\r\n var rect = coordSys.getRect();\r\n return [rect[XY[dimIndex]], rect[XY[dimIndex]] + rect[WH[dimIndex]]];\r\n }\r\n AxisView.registerAxisPointerClass('SingleAxisPointer', SingleAxisPointer);\n\n extendComponentView({\r\n type: 'single'\r\n });\n\n var DATA_NAME_INDEX = 2;\r\n var ThemeRiverSeriesModel = (function (_super) {\r\n __extends(ThemeRiverSeriesModel, _super);\r\n function ThemeRiverSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = ThemeRiverSeriesModel.type;\r\n _this.useColorPaletteOnData = true;\r\n return _this;\r\n }\r\n ThemeRiverSeriesModel.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 };\r\n ThemeRiverSeriesModel.prototype.fixData = function (data) {\r\n var rawDataLength = data.length;\r\n var timeValueKeys = {};\r\n var groupResult = groupData(data, function (item) {\r\n if (!timeValueKeys.hasOwnProperty(item[0] + '')) {\r\n timeValueKeys[item[0] + ''] = -1;\r\n }\r\n return item[2];\r\n });\r\n var layerData = [];\r\n groupResult.buckets.each(function (items, key) {\r\n layerData.push({\r\n name: key, dataList: items\r\n });\r\n });\r\n var layerNum = layerData.length;\r\n for (var k = 0; k < layerNum; ++k) {\r\n var name_1 = layerData[k].name;\r\n for (var j = 0; j < layerData[k].dataList.length; ++j) {\r\n var timeValue = layerData[k].dataList[j][0] + '';\r\n timeValueKeys[timeValue] = k;\r\n }\r\n for (var timeValue in timeValueKeys) {\r\n if (timeValueKeys.hasOwnProperty(timeValue) && timeValueKeys[timeValue] !== k) {\r\n timeValueKeys[timeValue] = k;\r\n data[rawDataLength] = [timeValue, 0, name_1];\r\n rawDataLength++;\r\n }\r\n }\r\n }\r\n return data;\r\n };\r\n ThemeRiverSeriesModel.prototype.getInitialData = function (option, ecModel) {\r\n var singleAxisModel = this.getReferringComponents('singleAxis', SINGLE_REFERRING).models[0];\r\n var axisType = singleAxisModel.get('type');\r\n var filterData = filter(option.data, function (dataItem) {\r\n return dataItem[2] !== undefined;\r\n });\r\n var data = this.fixData(filterData || []);\r\n var nameList = [];\r\n var nameMap = this.nameMap = createHashMap();\r\n var count = 0;\r\n for (var i = 0; i < data.length; ++i) {\r\n nameList.push(data[i][DATA_NAME_INDEX]);\r\n if (!nameMap.get(data[i][DATA_NAME_INDEX])) {\r\n nameMap.set(data[i][DATA_NAME_INDEX], count);\r\n count++;\r\n }\r\n }\r\n var dimensionsInfo = createDimensions(data, {\r\n coordDimensions: ['single'],\r\n dimensionsDefine: [\r\n {\r\n name: 'time',\r\n type: getDimensionTypeByAxis(axisType)\r\n },\r\n {\r\n name: 'value',\r\n type: 'float'\r\n },\r\n {\r\n name: 'name',\r\n type: 'ordinal'\r\n }\r\n ],\r\n encodeDefine: {\r\n single: 0,\r\n value: 1,\r\n itemName: 2\r\n }\r\n });\r\n var list = new List(dimensionsInfo, this);\r\n list.initData(data);\r\n return list;\r\n };\r\n ThemeRiverSeriesModel.prototype.getLayerSeries = function () {\r\n var data = this.getData();\r\n var lenCount = data.count();\r\n var indexArr = [];\r\n for (var i = 0; i < lenCount; ++i) {\r\n indexArr[i] = i;\r\n }\r\n var timeDim = data.mapDimension('single');\r\n var groupResult = groupData(indexArr, function (index) {\r\n return data.get('name', index);\r\n });\r\n var layerSeries = [];\r\n groupResult.buckets.each(function (items, key) {\r\n items.sort(function (index1, index2) {\r\n return data.get(timeDim, index1) - data.get(timeDim, index2);\r\n });\r\n layerSeries.push({\r\n name: key,\r\n indices: items\r\n });\r\n });\r\n return layerSeries;\r\n };\r\n ThemeRiverSeriesModel.prototype.getAxisTooltipData = function (dim, value, baseAxis) {\r\n if (!isArray(dim)) {\r\n dim = dim ? [dim] : [];\r\n }\r\n var data = this.getData();\r\n var layerSeries = this.getLayerSeries();\r\n var indices = [];\r\n var layerNum = layerSeries.length;\r\n var nestestValue;\r\n for (var i = 0; i < layerNum; ++i) {\r\n var minDist = Number.MAX_VALUE;\r\n var nearestIdx = -1;\r\n var pointNum = layerSeries[i].indices.length;\r\n for (var j = 0; j < pointNum; ++j) {\r\n var theValue = data.get(dim[0], layerSeries[i].indices[j]);\r\n var dist = Math.abs(theValue - value);\r\n if (dist <= minDist) {\r\n nestestValue = theValue;\r\n minDist = dist;\r\n nearestIdx = layerSeries[i].indices[j];\r\n }\r\n }\r\n indices.push(nearestIdx);\r\n }\r\n return { dataIndices: indices, nestestValue: nestestValue };\r\n };\r\n ThemeRiverSeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\r\n var data = this.getData();\r\n var name = data.getName(dataIndex);\r\n var value = data.get(data.mapDimension('value'), dataIndex);\r\n return createTooltipMarkup('nameValue', { name: name, value: value });\r\n };\r\n ThemeRiverSeriesModel.type = 'series.themeRiver';\r\n ThemeRiverSeriesModel.dependencies = ['singleAxis'];\r\n ThemeRiverSeriesModel.defaultOption = {\r\n zlevel: 0,\r\n z: 2,\r\n coordinateSystem: 'singleAxis',\r\n boundaryGap: ['10%', '10%'],\r\n singleAxisIndex: 0,\r\n animationEasing: 'linear',\r\n label: {\r\n margin: 4,\r\n show: true,\r\n position: 'left',\r\n fontSize: 11\r\n },\r\n emphasis: {\r\n label: {\r\n show: true\r\n }\r\n }\r\n };\r\n return ThemeRiverSeriesModel;\r\n }(SeriesModel));\r\n SeriesModel.registerClass(ThemeRiverSeriesModel);\n\n var ThemeRiverView = (function (_super) {\r\n __extends(ThemeRiverView, _super);\r\n function ThemeRiverView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = ThemeRiverView.type;\r\n _this._layers = [];\r\n return _this;\r\n }\r\n ThemeRiverView.prototype.render = function (seriesModel, ecModel, api) {\r\n var data = seriesModel.getData();\r\n var self = this;\r\n var group = this.group;\r\n var layersSeries = seriesModel.getLayerSeries();\r\n var layoutInfo = data.getLayout('layoutInfo');\r\n var rect = layoutInfo.rect;\r\n var boundaryGap = layoutInfo.boundaryGap;\r\n group.x = 0;\r\n group.y = rect.y + boundaryGap[0];\r\n function keyGetter(item) {\r\n return item.name;\r\n }\r\n var dataDiffer = new DataDiffer(this._layersSeries || [], layersSeries, keyGetter, keyGetter);\r\n var newLayersGroups = [];\r\n dataDiffer\r\n .add(bind(process, this, 'add'))\r\n .update(bind(process, this, 'update'))\r\n .remove(bind(process, this, 'remove'))\r\n .execute();\r\n function process(status, idx, oldIdx) {\r\n var oldLayersGroups = self._layers;\r\n if (status === 'remove') {\r\n group.remove(oldLayersGroups[idx]);\r\n return;\r\n }\r\n var points0 = [];\r\n var points1 = [];\r\n var style;\r\n var indices = layersSeries[idx].indices;\r\n var j = 0;\r\n for (; j < indices.length; j++) {\r\n var layout = data.getItemLayout(indices[j]);\r\n var x = layout.x;\r\n var y0 = layout.y0;\r\n var y = layout.y;\r\n points0.push(x, y0);\r\n points1.push(x, y0 + y);\r\n style = data.getItemVisual(indices[j], 'style');\r\n }\r\n var polygon;\r\n var textLayout = data.getItemLayout(indices[0]);\r\n var labelModel = seriesModel.getModel('label');\r\n var margin = labelModel.get('margin');\r\n var emphasisModel = seriesModel.getModel('emphasis');\r\n if (status === 'add') {\r\n var layerGroup = newLayersGroups[idx] = new Group();\r\n polygon = new ECPolygon({\r\n shape: {\r\n points: points0,\r\n stackedOnPoints: points1,\r\n smooth: 0.4,\r\n stackedOnSmooth: 0.4,\r\n smoothConstraint: false\r\n },\r\n z2: 0\r\n });\r\n layerGroup.add(polygon);\r\n group.add(layerGroup);\r\n if (seriesModel.isAnimationEnabled()) {\r\n polygon.setClipPath(createGridClipShape$2(polygon.getBoundingRect(), seriesModel, function () {\r\n polygon.removeClipPath();\r\n }));\r\n }\r\n }\r\n else {\r\n var layerGroup = oldLayersGroups[oldIdx];\r\n polygon = layerGroup.childAt(0);\r\n group.add(layerGroup);\r\n newLayersGroups[idx] = layerGroup;\r\n updateProps(polygon, {\r\n shape: {\r\n points: points0,\r\n stackedOnPoints: points1\r\n }\r\n }, seriesModel);\r\n }\r\n setLabelStyle(polygon, getLabelStatesModels(seriesModel), {\r\n labelDataIndex: indices[j - 1],\r\n defaultText: data.getName(indices[j - 1]),\r\n inheritColor: style.fill\r\n }, {\r\n normal: {\r\n verticalAlign: 'middle'\r\n }\r\n });\r\n polygon.setTextConfig({\r\n position: null,\r\n local: true\r\n });\r\n var labelEl = polygon.getTextContent();\r\n if (labelEl) {\r\n labelEl.x = textLayout.x - margin;\r\n labelEl.y = textLayout.y0 + textLayout.y / 2;\r\n }\r\n polygon.useStyle(style);\r\n data.setItemGraphicEl(idx, polygon);\r\n setStatesStylesFromModel(polygon, seriesModel);\r\n enableHoverEmphasis(polygon, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\r\n }\r\n this._layersSeries = layersSeries;\r\n this._layers = newLayersGroups;\r\n };\r\n ThemeRiverView.type = 'themeRiver';\r\n return ThemeRiverView;\r\n }(ChartView));\r\n function createGridClipShape$2(rect, seriesModel, cb) {\r\n var rectEl = new Rect({\r\n shape: {\r\n x: rect.x - 10,\r\n y: rect.y - 10,\r\n width: 0,\r\n height: rect.height + 20\r\n }\r\n });\r\n initProps(rectEl, {\r\n shape: {\r\n x: rect.x - 50,\r\n width: rect.width + 100,\r\n height: rect.height + 20\r\n }\r\n }, seriesModel, cb);\r\n return rectEl;\r\n }\r\n ChartView.registerClass(ThemeRiverView);\n\n function themeRiverLayout(ecModel, api) {\r\n ecModel.eachSeriesByType('themeRiver', function (seriesModel) {\r\n var data = seriesModel.getData();\r\n var single = seriesModel.coordinateSystem;\r\n var layoutInfo = {};\r\n var rect = single.getRect();\r\n layoutInfo.rect = rect;\r\n var boundaryGap = seriesModel.get('boundaryGap');\r\n var axis = single.getAxis();\r\n layoutInfo.boundaryGap = boundaryGap;\r\n if (axis.orient === 'horizontal') {\r\n boundaryGap[0] = parsePercent$2(boundaryGap[0], rect.height);\r\n boundaryGap[1] = parsePercent$2(boundaryGap[1], rect.height);\r\n var height = rect.height - boundaryGap[0] - boundaryGap[1];\r\n doThemeRiverLayout(data, seriesModel, height);\r\n }\r\n else {\r\n boundaryGap[0] = parsePercent$2(boundaryGap[0], rect.width);\r\n boundaryGap[1] = parsePercent$2(boundaryGap[1], rect.width);\r\n var width = rect.width - boundaryGap[0] - boundaryGap[1];\r\n doThemeRiverLayout(data, seriesModel, width);\r\n }\r\n data.setLayout('layoutInfo', layoutInfo);\r\n });\r\n }\r\n function doThemeRiverLayout(data, seriesModel, height) {\r\n if (!data.count()) {\r\n return;\r\n }\r\n var coordSys = seriesModel.coordinateSystem;\r\n var layerSeries = seriesModel.getLayerSeries();\r\n var timeDim = data.mapDimension('single');\r\n var valueDim = data.mapDimension('value');\r\n var layerPoints = map(layerSeries, function (singleLayer) {\r\n return map(singleLayer.indices, function (idx) {\r\n var pt = coordSys.dataToPoint(data.get(timeDim, idx));\r\n pt[1] = data.get(valueDim, idx);\r\n return pt;\r\n });\r\n });\r\n var base = computeBaseline(layerPoints);\r\n var baseLine = base.y0;\r\n var ky = height / base.max;\r\n var n = layerSeries.length;\r\n var m = layerSeries[0].indices.length;\r\n var baseY0;\r\n for (var j = 0; j < m; ++j) {\r\n baseY0 = baseLine[j] * ky;\r\n data.setItemLayout(layerSeries[0].indices[j], {\r\n layerIndex: 0,\r\n x: layerPoints[0][j][0],\r\n y0: baseY0,\r\n y: layerPoints[0][j][1] * ky\r\n });\r\n for (var i = 1; i < n; ++i) {\r\n baseY0 += layerPoints[i - 1][j][1] * ky;\r\n data.setItemLayout(layerSeries[i].indices[j], {\r\n layerIndex: i,\r\n x: layerPoints[i][j][0],\r\n y0: baseY0,\r\n y: layerPoints[i][j][1] * ky\r\n });\r\n }\r\n }\r\n }\r\n function computeBaseline(data) {\r\n var layerNum = data.length;\r\n var pointNum = data[0].length;\r\n var sums = [];\r\n var y0 = [];\r\n var max = 0;\r\n for (var i = 0; i < pointNum; ++i) {\r\n var temp = 0;\r\n for (var j = 0; j < layerNum; ++j) {\r\n temp += data[j][i][1];\r\n }\r\n if (temp > max) {\r\n max = temp;\r\n }\r\n sums.push(temp);\r\n }\r\n for (var k = 0; k < pointNum; ++k) {\r\n y0[k] = (max - sums[k]) / 2;\r\n }\r\n max = 0;\r\n for (var l = 0; l < pointNum; ++l) {\r\n var sum = sums[l] + y0[l];\r\n if (sum > max) {\r\n max = sum;\r\n }\r\n }\r\n return {\r\n y0: y0,\r\n max: max\r\n };\r\n }\n\n registerLayout(themeRiverLayout);\r\n registerProcessor(dataFilter('themeRiver'));\n\n var SunburstSeriesModel = (function (_super) {\r\n __extends(SunburstSeriesModel, _super);\r\n function SunburstSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = SunburstSeriesModel.type;\r\n _this.ignoreStyleOnData = true;\r\n return _this;\r\n }\r\n SunburstSeriesModel.prototype.getInitialData = function (option, ecModel) {\r\n var root = { name: option.name, children: option.data };\r\n completeTreeValue$1(root);\r\n var levelModels = map(option.levels || [], function (levelDefine) {\r\n return new Model(levelDefine, this, ecModel);\r\n }, this);\r\n var tree = Tree.createTree(root, this, beforeLink);\r\n function beforeLink(nodeData) {\r\n nodeData.wrapMethod('getItemModel', function (model, idx) {\r\n var node = tree.getNodeByDataIndex(idx);\r\n var levelModel = levelModels[node.depth];\r\n levelModel && (model.parentModel = levelModel);\r\n return model;\r\n });\r\n }\r\n return tree.data;\r\n };\r\n SunburstSeriesModel.prototype.optionUpdated = function () {\r\n this.resetViewRoot();\r\n };\r\n SunburstSeriesModel.prototype.getDataParams = function (dataIndex) {\r\n var params = _super.prototype.getDataParams.apply(this, arguments);\r\n var node = this.getData().tree.getNodeByDataIndex(dataIndex);\r\n params.treePathInfo = wrapTreePathInfo(node, this);\r\n return params;\r\n };\r\n SunburstSeriesModel.prototype.getViewRoot = function () {\r\n return this._viewRoot;\r\n };\r\n SunburstSeriesModel.prototype.resetViewRoot = function (viewRoot) {\r\n viewRoot\r\n ? (this._viewRoot = viewRoot)\r\n : (viewRoot = this._viewRoot);\r\n var root = this.getRawData().tree.root;\r\n if (!viewRoot\r\n || (viewRoot !== root && !root.contains(viewRoot))) {\r\n this._viewRoot = root;\r\n }\r\n };\r\n SunburstSeriesModel.prototype.enableAriaDecal = function () {\r\n enableAriaDecalForTree(this);\r\n };\r\n SunburstSeriesModel.type = 'series.sunburst';\r\n SunburstSeriesModel.defaultOption = {\r\n zlevel: 0,\r\n z: 2,\r\n center: ['50%', '50%'],\r\n radius: [0, '75%'],\r\n clockwise: true,\r\n startAngle: 90,\r\n minAngle: 0,\r\n stillShowZeroSum: true,\r\n nodeClick: 'rootToNode',\r\n renderLabelForZeroData: false,\r\n label: {\r\n rotate: 'radial',\r\n show: true,\r\n opacity: 1,\r\n align: 'center',\r\n position: 'inside',\r\n distance: 5,\r\n silent: true\r\n },\r\n itemStyle: {\r\n borderWidth: 1,\r\n borderColor: 'white',\r\n borderType: 'solid',\r\n shadowBlur: 0,\r\n shadowColor: 'rgba(0, 0, 0, 0.2)',\r\n shadowOffsetX: 0,\r\n shadowOffsetY: 0,\r\n opacity: 1\r\n },\r\n emphasis: {\r\n focus: 'descendant'\r\n },\r\n blur: {\r\n itemStyle: {\r\n opacity: 0.2\r\n },\r\n label: {\r\n opacity: 0.1\r\n }\r\n },\r\n animationType: 'expansion',\r\n animationDuration: 1000,\r\n animationDurationUpdate: 500,\r\n data: [],\r\n levels: [],\r\n sort: 'desc'\r\n };\r\n return SunburstSeriesModel;\r\n }(SeriesModel));\r\n function completeTreeValue$1(dataNode) {\r\n var sum = 0;\r\n each(dataNode.children, function (child) {\r\n completeTreeValue$1(child);\r\n var childValue = child.value;\r\n isArray(childValue) && (childValue = childValue[0]);\r\n sum += childValue;\r\n });\r\n var thisValue = dataNode.value;\r\n if (isArray(thisValue)) {\r\n thisValue = thisValue[0];\r\n }\r\n if (thisValue == null || isNaN(thisValue)) {\r\n thisValue = sum;\r\n }\r\n if (thisValue < 0) {\r\n thisValue = 0;\r\n }\r\n isArray(dataNode.value)\r\n ? (dataNode.value[0] = thisValue)\r\n : (dataNode.value = thisValue);\r\n }\r\n SeriesModel.registerClass(SunburstSeriesModel);\n\n var DEFAULT_SECTOR_Z = 2;\r\n var DEFAULT_TEXT_Z = 4;\r\n var SunburstPiece = (function (_super) {\r\n __extends(SunburstPiece, _super);\r\n function SunburstPiece(node, seriesModel, ecModel, api) {\r\n var _this = _super.call(this) || this;\r\n _this.z2 = DEFAULT_SECTOR_Z;\r\n _this.textConfig = {\r\n inside: true\r\n };\r\n getECData(_this).seriesIndex = seriesModel.seriesIndex;\r\n var text = new ZRText({\r\n z2: DEFAULT_TEXT_Z,\r\n silent: node.getModel().get(['label', 'silent'])\r\n });\r\n _this.setTextContent(text);\r\n _this.updateData(true, node, seriesModel, ecModel, api);\r\n return _this;\r\n }\r\n SunburstPiece.prototype.updateData = function (firstCreate, node, seriesModel, ecModel, api) {\r\n this.node = node;\r\n node.piece = this;\r\n seriesModel = seriesModel || this._seriesModel;\r\n ecModel = ecModel || this._ecModel;\r\n var sector = this;\r\n getECData(sector).dataIndex = node.dataIndex;\r\n var itemModel = node.getModel();\r\n var emphasisModel = itemModel.getModel('emphasis');\r\n var layout = node.getLayout();\r\n var sectorShape = extend({}, layout);\r\n sectorShape.label = null;\r\n var normalStyle = node.getVisual('style');\r\n normalStyle.lineJoin = 'bevel';\r\n var decal = node.getVisual('decal');\r\n if (decal) {\r\n normalStyle.decal = createOrUpdatePatternFromDecal(decal, api);\r\n }\r\n var cornerRadius = getSectorCornerRadius(itemModel.getModel('itemStyle'), sectorShape);\r\n extend(sectorShape, cornerRadius);\r\n each(SPECIAL_STATES, function (stateName) {\r\n var state = sector.ensureState(stateName);\r\n var itemStyleModel = itemModel.getModel([stateName, 'itemStyle']);\r\n state.style = itemStyleModel.getItemStyle();\r\n var cornerRadius = getSectorCornerRadius(itemStyleModel, sectorShape);\r\n if (cornerRadius) {\r\n state.shape = cornerRadius;\r\n }\r\n });\r\n if (firstCreate) {\r\n sector.setShape(sectorShape);\r\n sector.shape.r = layout.r0;\r\n updateProps(sector, {\r\n shape: {\r\n r: layout.r\r\n }\r\n }, seriesModel, node.dataIndex);\r\n }\r\n else {\r\n updateProps(sector, {\r\n shape: sectorShape\r\n }, seriesModel);\r\n }\r\n sector.useStyle(normalStyle);\r\n this._updateLabel(seriesModel);\r\n var cursorStyle = itemModel.getShallow('cursor');\r\n cursorStyle && sector.attr('cursor', cursorStyle);\r\n this._seriesModel = seriesModel || this._seriesModel;\r\n this._ecModel = ecModel || this._ecModel;\r\n var focus = emphasisModel.get('focus');\r\n var focusDataIndices = focus === 'ancestor'\r\n ? node.getAncestorsIndices()\r\n : focus === 'descendant' ? node.getDescendantIndices() : null;\r\n enableHoverEmphasis(this, focusDataIndices || focus, emphasisModel.get('blurScope'));\r\n };\r\n SunburstPiece.prototype._updateLabel = function (seriesModel) {\r\n var _this = this;\r\n var itemModel = this.node.getModel();\r\n var normalLabelModel = itemModel.getModel('label');\r\n var layout = this.node.getLayout();\r\n var angle = layout.endAngle - layout.startAngle;\r\n var midAngle = (layout.startAngle + layout.endAngle) / 2;\r\n var dx = Math.cos(midAngle);\r\n var dy = Math.sin(midAngle);\r\n var sector = this;\r\n var label = sector.getTextContent();\r\n var dataIndex = this.node.dataIndex;\r\n var labelMinAngle = normalLabelModel.get('minAngle') / 180 * Math.PI;\r\n var isNormalShown = normalLabelModel.get('show')\r\n && !(labelMinAngle != null && Math.abs(angle) < labelMinAngle);\r\n label.ignore = !isNormalShown;\r\n each(DISPLAY_STATES, function (stateName) {\r\n var labelStateModel = stateName === 'normal' ? itemModel.getModel('label')\r\n : itemModel.getModel([stateName, 'label']);\r\n var isNormal = stateName === 'normal';\r\n var state = isNormal ? label : label.ensureState(stateName);\r\n var text = seriesModel.getFormattedLabel(dataIndex, stateName);\r\n if (isNormal) {\r\n text = text || _this.node.name;\r\n }\r\n state.style = createTextStyle(labelStateModel, {}, null, stateName !== 'normal', true);\r\n if (text) {\r\n state.style.text = text;\r\n }\r\n var isShown = labelStateModel.get('show');\r\n if (isShown != null && !isNormal) {\r\n state.ignore = !isShown;\r\n }\r\n var labelPosition = getLabelAttr(labelStateModel, 'position');\r\n var sectorState = isNormal ? sector : sector.states[stateName];\r\n var labelColor = sectorState.style.fill;\r\n sectorState.textConfig = {\r\n outsideFill: labelStateModel.get('color') === 'inherit' ? labelColor : null,\r\n inside: labelPosition !== 'outside'\r\n };\r\n var r;\r\n var labelPadding = getLabelAttr(labelStateModel, 'distance') || 0;\r\n var textAlign = getLabelAttr(labelStateModel, 'align');\r\n if (labelPosition === 'outside') {\r\n r = layout.r + labelPadding;\r\n textAlign = midAngle > Math.PI / 2 ? 'right' : 'left';\r\n }\r\n else {\r\n if (!textAlign || textAlign === 'center') {\r\n r = (layout.r + layout.r0) / 2;\r\n textAlign = 'center';\r\n }\r\n else if (textAlign === 'left') {\r\n r = layout.r0 + labelPadding;\r\n if (midAngle > Math.PI / 2) {\r\n textAlign = 'right';\r\n }\r\n }\r\n else if (textAlign === 'right') {\r\n r = layout.r - labelPadding;\r\n if (midAngle > Math.PI / 2) {\r\n textAlign = 'left';\r\n }\r\n }\r\n }\r\n state.style.align = textAlign;\r\n state.style.verticalAlign = getLabelAttr(labelStateModel, 'verticalAlign') || 'middle';\r\n state.x = r * dx + layout.cx;\r\n state.y = r * dy + layout.cy;\r\n var rotateType = getLabelAttr(labelStateModel, 'rotate');\r\n var rotate = 0;\r\n if (rotateType === 'radial') {\r\n rotate = -midAngle;\r\n if (rotate < -Math.PI / 2) {\r\n rotate += Math.PI;\r\n }\r\n }\r\n else if (rotateType === 'tangential') {\r\n rotate = Math.PI / 2 - midAngle;\r\n if (rotate > Math.PI / 2) {\r\n rotate -= Math.PI;\r\n }\r\n else if (rotate < -Math.PI / 2) {\r\n rotate += Math.PI;\r\n }\r\n }\r\n else if (typeof rotateType === 'number') {\r\n rotate = rotateType * Math.PI / 180;\r\n }\r\n state.rotation = rotate;\r\n });\r\n function getLabelAttr(model, name) {\r\n var stateAttr = model.get(name);\r\n if (stateAttr == null) {\r\n return normalLabelModel.get(name);\r\n }\r\n return stateAttr;\r\n }\r\n label.dirtyStyle();\r\n };\r\n return SunburstPiece;\r\n }(Sector));\n\n var ROOT_TO_NODE_ACTION = 'sunburstRootToNode';\r\n registerAction({ type: ROOT_TO_NODE_ACTION, update: 'updateView' }, function (payload, ecModel) {\r\n ecModel.eachComponent({ mainType: 'series', subType: 'sunburst', query: payload }, handleRootToNode);\r\n function handleRootToNode(model, index) {\r\n var targetInfo = retrieveTargetInfo(payload, [ROOT_TO_NODE_ACTION], model);\r\n if (targetInfo) {\r\n var originViewRoot = model.getViewRoot();\r\n if (originViewRoot) {\r\n payload.direction = aboveViewRoot(originViewRoot, targetInfo.node)\r\n ? 'rollUp' : 'drillDown';\r\n }\r\n model.resetViewRoot(targetInfo.node);\r\n }\r\n }\r\n });\r\n var HIGHLIGHT_ACTION = 'sunburstHighlight';\r\n registerAction({ type: HIGHLIGHT_ACTION, update: 'none' }, function (payload, ecModel, api) {\r\n payload = extend({}, payload);\r\n ecModel.eachComponent({ mainType: 'series', subType: 'sunburst', query: payload }, handleHighlight);\r\n function handleHighlight(model) {\r\n var targetInfo = retrieveTargetInfo(payload, [HIGHLIGHT_ACTION], model);\r\n if (targetInfo) {\r\n payload.dataIndex = targetInfo.node.dataIndex;\r\n }\r\n }\r\n if (__DEV__) {\r\n deprecateReplaceLog('highlight', 'sunburstHighlight');\r\n }\r\n api.dispatchAction(extend(payload, {\r\n type: 'highlight'\r\n }));\r\n });\r\n var UNHIGHLIGHT_ACTION = 'sunburstUnhighlight';\r\n registerAction({ type: UNHIGHLIGHT_ACTION, update: 'updateView' }, function (payload, ecModel, api) {\r\n payload = extend({}, payload);\r\n if (__DEV__) {\r\n deprecateReplaceLog('downplay', 'sunburstUnhighlight');\r\n }\r\n api.dispatchAction(extend(payload, {\r\n type: 'downplay'\r\n }));\r\n });\n\n var SunburstView = (function (_super) {\r\n __extends(SunburstView, _super);\r\n function SunburstView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = SunburstView.type;\r\n return _this;\r\n }\r\n SunburstView.prototype.render = function (seriesModel, ecModel, api, payload) {\r\n var self = this;\r\n this.seriesModel = seriesModel;\r\n this.api = api;\r\n this.ecModel = ecModel;\r\n var data = seriesModel.getData();\r\n var virtualRoot = data.tree.root;\r\n var newRoot = seriesModel.getViewRoot();\r\n var group = this.group;\r\n var renderLabelForZeroData = seriesModel.get('renderLabelForZeroData');\r\n var newChildren = [];\r\n newRoot.eachNode(function (node) {\r\n newChildren.push(node);\r\n });\r\n var oldChildren = this._oldChildren || [];\r\n dualTravel(newChildren, oldChildren);\r\n renderRollUp(virtualRoot, newRoot);\r\n this._initEvents();\r\n this._oldChildren = newChildren;\r\n function dualTravel(newChildren, oldChildren) {\r\n if (newChildren.length === 0 && oldChildren.length === 0) {\r\n return;\r\n }\r\n new DataDiffer(oldChildren, newChildren, getKey, getKey)\r\n .add(processNode)\r\n .update(processNode)\r\n .remove(curry(processNode, null))\r\n .execute();\r\n function getKey(node) {\r\n return node.getId();\r\n }\r\n function processNode(newIdx, oldIdx) {\r\n var newNode = newIdx == null ? null : newChildren[newIdx];\r\n var oldNode = oldIdx == null ? null : oldChildren[oldIdx];\r\n doRenderNode(newNode, oldNode);\r\n }\r\n }\r\n function doRenderNode(newNode, oldNode) {\r\n if (!renderLabelForZeroData && newNode && !newNode.getValue()) {\r\n newNode = null;\r\n }\r\n if (newNode !== virtualRoot && oldNode !== virtualRoot) {\r\n if (oldNode && oldNode.piece) {\r\n if (newNode) {\r\n oldNode.piece.updateData(false, newNode, seriesModel, ecModel, api);\r\n data.setItemGraphicEl(newNode.dataIndex, oldNode.piece);\r\n }\r\n else {\r\n removeNode(oldNode);\r\n }\r\n }\r\n else if (newNode) {\r\n var piece = new SunburstPiece(newNode, seriesModel, ecModel, api);\r\n group.add(piece);\r\n data.setItemGraphicEl(newNode.dataIndex, piece);\r\n }\r\n }\r\n }\r\n function removeNode(node) {\r\n if (!node) {\r\n return;\r\n }\r\n if (node.piece) {\r\n group.remove(node.piece);\r\n node.piece = null;\r\n }\r\n }\r\n function renderRollUp(virtualRoot, viewRoot) {\r\n if (viewRoot.depth > 0) {\r\n if (self.virtualPiece) {\r\n self.virtualPiece.updateData(false, virtualRoot, seriesModel, ecModel, api);\r\n }\r\n else {\r\n self.virtualPiece = new SunburstPiece(virtualRoot, seriesModel, ecModel, api);\r\n group.add(self.virtualPiece);\r\n }\r\n viewRoot.piece.off('click');\r\n self.virtualPiece.on('click', function (e) {\r\n self._rootToNode(viewRoot.parentNode);\r\n });\r\n }\r\n else if (self.virtualPiece) {\r\n group.remove(self.virtualPiece);\r\n self.virtualPiece = null;\r\n }\r\n }\r\n };\r\n SunburstView.prototype._initEvents = function () {\r\n var _this = this;\r\n this.group.off('click');\r\n this.group.on('click', function (e) {\r\n var targetFound = false;\r\n var viewRoot = _this.seriesModel.getViewRoot();\r\n viewRoot.eachNode(function (node) {\r\n if (!targetFound\r\n && node.piece && node.piece === e.target) {\r\n var nodeClick = node.getModel().get('nodeClick');\r\n if (nodeClick === 'rootToNode') {\r\n _this._rootToNode(node);\r\n }\r\n else if (nodeClick === 'link') {\r\n var itemModel = node.getModel();\r\n var link = itemModel.get('link');\r\n if (link) {\r\n var linkTarget = itemModel.get('target', true)\r\n || '_blank';\r\n windowOpen(link, linkTarget);\r\n }\r\n }\r\n targetFound = true;\r\n }\r\n });\r\n });\r\n };\r\n SunburstView.prototype._rootToNode = function (node) {\r\n if (node !== this.seriesModel.getViewRoot()) {\r\n this.api.dispatchAction({\r\n type: ROOT_TO_NODE_ACTION,\r\n from: this.uid,\r\n seriesId: this.seriesModel.id,\r\n targetNode: node\r\n });\r\n }\r\n };\r\n SunburstView.prototype.containPoint = function (point, seriesModel) {\r\n var treeRoot = seriesModel.getData();\r\n var itemLayout = treeRoot.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 SunburstView.type = 'sunburst';\r\n return SunburstView;\r\n }(ChartView));\r\n ChartView.registerClass(SunburstView);\n\n var RADIAN$2 = Math.PI / 180;\r\n function sunburstLayout(seriesType, ecModel, api) {\r\n ecModel.eachSeriesByType(seriesType, function (seriesModel) {\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 = api.getWidth();\r\n var height = api.getHeight();\r\n var size = Math.min(width, height);\r\n var cx = parsePercent$2(center[0], width);\r\n var cy = parsePercent$2(center[1], height);\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$2;\r\n var minAngle = seriesModel.get('minAngle') * RADIAN$2;\r\n var virtualRoot = seriesModel.getData().tree.root;\r\n var treeRoot = seriesModel.getViewRoot();\r\n var rootDepth = treeRoot.depth;\r\n var sort = seriesModel.get('sort');\r\n if (sort != null) {\r\n initChildren$1(treeRoot, sort);\r\n }\r\n var validDataCount = 0;\r\n each(treeRoot.children, function (child) {\r\n !isNaN(child.getValue()) && validDataCount++;\r\n });\r\n var sum = treeRoot.getValue();\r\n var unitRadian = Math.PI / (sum || validDataCount) * 2;\r\n var renderRollupNode = treeRoot.depth > 0;\r\n var levels = treeRoot.height - (renderRollupNode ? -1 : 1);\r\n var rPerLevel = (r - r0) / (levels || 1);\r\n var clockwise = seriesModel.get('clockwise');\r\n var stillShowZeroSum = seriesModel.get('stillShowZeroSum');\r\n var dir = clockwise ? 1 : -1;\r\n var renderNode = function (node, startAngle) {\r\n if (!node) {\r\n return;\r\n }\r\n var endAngle = startAngle;\r\n if (node !== virtualRoot) {\r\n var value = node.getValue();\r\n var angle = (sum === 0 && stillShowZeroSum)\r\n ? unitRadian : (value * unitRadian);\r\n if (angle < minAngle) {\r\n angle = minAngle;\r\n }\r\n endAngle = startAngle + dir * angle;\r\n var depth = node.depth - rootDepth\r\n - (renderRollupNode ? -1 : 1);\r\n var rStart = r0 + rPerLevel * depth;\r\n var rEnd = r0 + rPerLevel * (depth + 1);\r\n var itemModel = node.getModel();\r\n if (itemModel.get('r0') != null) {\r\n rStart = parsePercent$2(itemModel.get('r0'), size / 2);\r\n }\r\n if (itemModel.get('r') != null) {\r\n rEnd = parsePercent$2(itemModel.get('r'), size / 2);\r\n }\r\n node.setLayout({\r\n angle: angle,\r\n startAngle: startAngle,\r\n endAngle: endAngle,\r\n clockwise: clockwise,\r\n cx: cx,\r\n cy: cy,\r\n r0: rStart,\r\n r: rEnd\r\n });\r\n }\r\n if (node.children && node.children.length) {\r\n var siblingAngle_1 = 0;\r\n each(node.children, function (node) {\r\n siblingAngle_1 += renderNode(node, startAngle + siblingAngle_1);\r\n });\r\n }\r\n return endAngle - startAngle;\r\n };\r\n if (renderRollupNode) {\r\n var rStart = r0;\r\n var rEnd = r0 + rPerLevel;\r\n var angle = Math.PI * 2;\r\n virtualRoot.setLayout({\r\n angle: angle,\r\n startAngle: startAngle,\r\n endAngle: startAngle + angle,\r\n clockwise: clockwise,\r\n cx: cx,\r\n cy: cy,\r\n r0: rStart,\r\n r: rEnd\r\n });\r\n }\r\n renderNode(treeRoot, startAngle);\r\n });\r\n }\r\n function initChildren$1(node, sortOrder) {\r\n var children = node.children || [];\r\n node.children = sort$2(children, sortOrder);\r\n if (children.length) {\r\n each(node.children, function (child) {\r\n initChildren$1(child, sortOrder);\r\n });\r\n }\r\n }\r\n function sort$2(children, sortOrder) {\r\n if (typeof sortOrder === 'function') {\r\n var sortTargets = map(children, function (child, idx) {\r\n var value = child.getValue();\r\n return {\r\n params: {\r\n depth: child.depth,\r\n height: child.height,\r\n dataIndex: child.dataIndex,\r\n getValue: function () { return value; }\r\n },\r\n index: idx\r\n };\r\n });\r\n sortTargets.sort(function (a, b) {\r\n return sortOrder(a.params, b.params);\r\n });\r\n return map(sortTargets, function (target) {\r\n return children[target.index];\r\n });\r\n }\r\n else {\r\n var isAsc_1 = sortOrder === 'asc';\r\n return children.sort(function (a, b) {\r\n var diff = (a.getValue() - b.getValue()) * (isAsc_1 ? 1 : -1);\r\n return diff === 0\r\n ? (a.dataIndex - b.dataIndex) * (isAsc_1 ? -1 : 1)\r\n : diff;\r\n });\r\n }\r\n }\n\n function sunburstVisual(ecModel) {\r\n var paletteScope = {};\r\n function pickColor(node, seriesModel, treeHeight) {\r\n var current = node;\r\n while (current && current.depth > 1) {\r\n current = current.parentNode;\r\n }\r\n var color = seriesModel.getColorFromPalette((current.name || current.dataIndex + ''), paletteScope);\r\n if (node.depth > 1 && typeof color === 'string') {\r\n color = lift(color, (node.depth - 1) / (treeHeight - 1) * 0.5);\r\n }\r\n return color;\r\n }\r\n ecModel.eachSeriesByType('sunburst', function (seriesModel) {\r\n var data = seriesModel.getData();\r\n var tree = data.tree;\r\n tree.eachNode(function (node) {\r\n var model = node.getModel();\r\n var style = model.getModel('itemStyle').getItemStyle();\r\n if (!style.fill) {\r\n style.fill = pickColor(node, seriesModel, tree.root.height);\r\n }\r\n var existsStyle = data.ensureUniqueItemVisual(node.dataIndex, 'style');\r\n extend(existsStyle, style);\r\n });\r\n });\r\n }\n\n registerLayout(curry(sunburstLayout, 'sunburst'));\r\n registerProcessor(curry(dataFilter, 'sunburst'));\r\n registerVisual(sunburstVisual);\n\n function dataToCoordSize(dataSize, dataItem) {\r\n dataItem = dataItem || [0, 0];\r\n return map(['x', 'y'], function (dim, dimIdx) {\r\n var axis = this.getAxis(dim);\r\n var val = dataItem[dimIdx];\r\n var halfSize = dataSize[dimIdx] / 2;\r\n return axis.type === 'category'\r\n ? axis.getBandWidth()\r\n : Math.abs(axis.dataToCoord(val - halfSize) - axis.dataToCoord(val + halfSize));\r\n }, this);\r\n }\r\n function cartesianPrepareCustom(coordSys) {\r\n var rect = coordSys.master.getRect();\r\n return {\r\n coordSys: {\r\n type: 'cartesian2d',\r\n x: rect.x,\r\n y: rect.y,\r\n width: rect.width,\r\n height: rect.height\r\n },\r\n api: {\r\n coord: function (data) {\r\n return coordSys.dataToPoint(data);\r\n },\r\n size: bind(dataToCoordSize, coordSys)\r\n }\r\n };\r\n }\n\n function dataToCoordSize$1(dataSize, dataItem) {\r\n dataItem = dataItem || [0, 0];\r\n return map([0, 1], function (dimIdx) {\r\n var val = dataItem[dimIdx];\r\n var halfSize = dataSize[dimIdx] / 2;\r\n var p1 = [];\r\n var p2 = [];\r\n p1[dimIdx] = val - halfSize;\r\n p2[dimIdx] = val + halfSize;\r\n p1[1 - dimIdx] = p2[1 - dimIdx] = dataItem[1 - dimIdx];\r\n return Math.abs(this.dataToPoint(p1)[dimIdx] - this.dataToPoint(p2)[dimIdx]);\r\n }, this);\r\n }\r\n function geoPrepareCustom(coordSys) {\r\n var rect = coordSys.getBoundingRect();\r\n return {\r\n coordSys: {\r\n type: 'geo',\r\n x: rect.x,\r\n y: rect.y,\r\n width: rect.width,\r\n height: rect.height,\r\n zoom: coordSys.getZoom()\r\n },\r\n api: {\r\n coord: function (data) {\r\n return coordSys.dataToPoint(data);\r\n },\r\n size: bind(dataToCoordSize$1, coordSys)\r\n }\r\n };\r\n }\n\n function dataToCoordSize$2(dataSize, dataItem) {\r\n var axis = this.getAxis();\r\n var val = dataItem instanceof Array ? dataItem[0] : dataItem;\r\n var halfSize = (dataSize instanceof Array ? dataSize[0] : dataSize) / 2;\r\n return axis.type === 'category'\r\n ? axis.getBandWidth()\r\n : Math.abs(axis.dataToCoord(val - halfSize) - axis.dataToCoord(val + halfSize));\r\n }\r\n function singlePrepareCustom(coordSys) {\r\n var rect = coordSys.getRect();\r\n return {\r\n coordSys: {\r\n type: 'singleAxis',\r\n x: rect.x,\r\n y: rect.y,\r\n width: rect.width,\r\n height: rect.height\r\n },\r\n api: {\r\n coord: function (val) {\r\n return coordSys.dataToPoint(val);\r\n },\r\n size: bind(dataToCoordSize$2, coordSys)\r\n }\r\n };\r\n }\n\n function dataToCoordSize$3(dataSize, dataItem) {\r\n dataItem = dataItem || [0, 0];\r\n return map(['Radius', 'Angle'], function (dim, dimIdx) {\r\n var getterName = 'get' + dim + 'Axis';\r\n var axis = this[getterName]();\r\n var val = dataItem[dimIdx];\r\n var halfSize = dataSize[dimIdx] / 2;\r\n var result = axis.type === 'category'\r\n ? axis.getBandWidth()\r\n : Math.abs(axis.dataToCoord(val - halfSize) - axis.dataToCoord(val + halfSize));\r\n if (dim === 'Angle') {\r\n result = result * Math.PI / 180;\r\n }\r\n return result;\r\n }, this);\r\n }\r\n function polarPrepareCustom(coordSys) {\r\n var radiusAxis = coordSys.getRadiusAxis();\r\n var angleAxis = coordSys.getAngleAxis();\r\n var radius = radiusAxis.getExtent();\r\n radius[0] > radius[1] && radius.reverse();\r\n return {\r\n coordSys: {\r\n type: 'polar',\r\n cx: coordSys.cx,\r\n cy: coordSys.cy,\r\n r: radius[1],\r\n r0: radius[0]\r\n },\r\n api: {\r\n coord: function (data) {\r\n var radius = radiusAxis.dataToRadius(data[0]);\r\n var angle = angleAxis.dataToAngle(data[1]);\r\n var coord = coordSys.coordToPoint([radius, angle]);\r\n coord.push(radius, angle * Math.PI / 180);\r\n return coord;\r\n },\r\n size: bind(dataToCoordSize$3, coordSys)\r\n }\r\n };\r\n }\n\n function calendarPrepareCustom(coordSys) {\r\n var rect = coordSys.getRect();\r\n var rangeInfo = coordSys.getRangeInfo();\r\n return {\r\n coordSys: {\r\n type: 'calendar',\r\n x: rect.x,\r\n y: rect.y,\r\n width: rect.width,\r\n height: rect.height,\r\n cellWidth: coordSys.getCellWidth(),\r\n cellHeight: coordSys.getCellHeight(),\r\n rangeInfo: {\r\n start: rangeInfo.start,\r\n end: rangeInfo.end,\r\n weeks: rangeInfo.weeks,\r\n dayCount: rangeInfo.allDay\r\n }\r\n },\r\n api: {\r\n coord: function (data, clamp) {\r\n return coordSys.dataToPoint(data, clamp);\r\n }\r\n }\r\n };\r\n }\n\n var deprecatedLogs = {};\r\n function isEC4CompatibleStyle(style, elType, hasOwnTextContentOption, hasOwnTextConfig) {\r\n return style && (style.legacy\r\n || (style.legacy !== false\r\n && !hasOwnTextContentOption\r\n && !hasOwnTextConfig\r\n && elType !== 'tspan'\r\n && (elType === 'text' || hasOwn(style, 'text'))));\r\n }\r\n function convertFromEC4CompatibleStyle(hostStyle, elType, isNormal) {\r\n var srcStyle = hostStyle;\r\n var textConfig;\r\n var textContent;\r\n var textContentStyle;\r\n if (elType === 'text') {\r\n textContentStyle = srcStyle;\r\n }\r\n else {\r\n textContentStyle = {};\r\n hasOwn(srcStyle, 'text') && (textContentStyle.text = srcStyle.text);\r\n hasOwn(srcStyle, 'rich') && (textContentStyle.rich = srcStyle.rich);\r\n hasOwn(srcStyle, 'textFill') && (textContentStyle.fill = srcStyle.textFill);\r\n hasOwn(srcStyle, 'textStroke') && (textContentStyle.stroke = srcStyle.textStroke);\r\n textContent = {\r\n type: 'text',\r\n style: textContentStyle,\r\n silent: true\r\n };\r\n textConfig = {};\r\n var hasOwnPos = hasOwn(srcStyle, 'textPosition');\r\n if (isNormal) {\r\n textConfig.position = hasOwnPos ? srcStyle.textPosition : 'inside';\r\n }\r\n else {\r\n hasOwnPos && (textConfig.position = srcStyle.textPosition);\r\n }\r\n hasOwn(srcStyle, 'textPosition') && (textConfig.position = srcStyle.textPosition);\r\n hasOwn(srcStyle, 'textOffset') && (textConfig.offset = srcStyle.textOffset);\r\n hasOwn(srcStyle, 'textRotation') && (textConfig.rotation = srcStyle.textRotation);\r\n hasOwn(srcStyle, 'textDistance') && (textConfig.distance = srcStyle.textDistance);\r\n }\r\n convertEC4CompatibleRichItem(textContentStyle, hostStyle);\r\n each(textContentStyle.rich, function (richItem) {\r\n convertEC4CompatibleRichItem(richItem, richItem);\r\n });\r\n return {\r\n textConfig: textConfig,\r\n textContent: textContent\r\n };\r\n }\r\n function convertEC4CompatibleRichItem(out, richItem) {\r\n if (!richItem) {\r\n return;\r\n }\r\n richItem.font = richItem.textFont || richItem.font;\r\n hasOwn(richItem, 'textStrokeWidth') && (out.lineWidth = richItem.textStrokeWidth);\r\n hasOwn(richItem, 'textAlign') && (out.align = richItem.textAlign);\r\n hasOwn(richItem, 'textVerticalAlign') && (out.verticalAlign = richItem.textVerticalAlign);\r\n hasOwn(richItem, 'textLineHeight') && (out.lineHeight = richItem.textLineHeight);\r\n hasOwn(richItem, 'textWidth') && (out.width = richItem.textWidth);\r\n hasOwn(richItem, 'textHeight') && (out.height = richItem.textHeight);\r\n hasOwn(richItem, 'textBackgroundColor') && (out.backgroundColor = richItem.textBackgroundColor);\r\n hasOwn(richItem, 'textPadding') && (out.padding = richItem.textPadding);\r\n hasOwn(richItem, 'textBorderColor') && (out.borderColor = richItem.textBorderColor);\r\n hasOwn(richItem, 'textBorderWidth') && (out.borderWidth = richItem.textBorderWidth);\r\n hasOwn(richItem, 'textBorderRadius') && (out.borderRadius = richItem.textBorderRadius);\r\n hasOwn(richItem, 'textBoxShadowColor') && (out.shadowColor = richItem.textBoxShadowColor);\r\n hasOwn(richItem, 'textBoxShadowBlur') && (out.shadowBlur = richItem.textBoxShadowBlur);\r\n hasOwn(richItem, 'textBoxShadowOffsetX') && (out.shadowOffsetX = richItem.textBoxShadowOffsetX);\r\n hasOwn(richItem, 'textBoxShadowOffsetY') && (out.shadowOffsetY = richItem.textBoxShadowOffsetY);\r\n }\r\n function convertToEC4StyleForCustomSerise(itemStl, txStl, txCfg) {\r\n var out = itemStl;\r\n out.textPosition = out.textPosition || txCfg.position || 'inside';\r\n txCfg.offset != null && (out.textOffset = txCfg.offset);\r\n txCfg.rotation != null && (out.textRotation = txCfg.rotation);\r\n txCfg.distance != null && (out.textDistance = txCfg.distance);\r\n var isInside = out.textPosition.indexOf('inside') >= 0;\r\n var hostFill = itemStl.fill || '#000';\r\n convertToEC4RichItem(out, txStl);\r\n var textFillNotSet = out.textFill == null;\r\n if (isInside) {\r\n if (textFillNotSet) {\r\n out.textFill = txCfg.insideFill || '#fff';\r\n !out.textStroke && txCfg.insideStroke && (out.textStroke = txCfg.insideStroke);\r\n !out.textStroke && (out.textStroke = hostFill);\r\n out.textStrokeWidth == null && (out.textStrokeWidth = 2);\r\n }\r\n }\r\n else {\r\n if (textFillNotSet) {\r\n out.textFill = txCfg.outsideFill || hostFill;\r\n }\r\n !out.textStroke && txCfg.outsideStroke && (out.textStroke = txCfg.outsideStroke);\r\n }\r\n out.text = txStl.text;\r\n out.rich = txStl.rich;\r\n each(txStl.rich, function (richItem) {\r\n convertToEC4RichItem(richItem, richItem);\r\n });\r\n return out;\r\n }\r\n function convertToEC4RichItem(out, richItem) {\r\n if (!richItem) {\r\n return;\r\n }\r\n hasOwn(richItem, 'fill') && (out.textFill = richItem.fill);\r\n hasOwn(richItem, 'stroke') && (out.textStroke = richItem.fill);\r\n hasOwn(richItem, 'lineWidth') && (out.textStrokeWidth = richItem.lineWidth);\r\n hasOwn(richItem, 'font') && (out.font = richItem.font);\r\n hasOwn(richItem, 'fontStyle') && (out.fontStyle = richItem.fontStyle);\r\n hasOwn(richItem, 'fontWeight') && (out.fontWeight = richItem.fontWeight);\r\n hasOwn(richItem, 'fontSize') && (out.fontSize = richItem.fontSize);\r\n hasOwn(richItem, 'fontFamily') && (out.fontFamily = richItem.fontFamily);\r\n hasOwn(richItem, 'align') && (out.textAlign = richItem.align);\r\n hasOwn(richItem, 'verticalAlign') && (out.textVerticalAlign = richItem.verticalAlign);\r\n hasOwn(richItem, 'lineHeight') && (out.textLineHeight = richItem.lineHeight);\r\n hasOwn(richItem, 'width') && (out.textWidth = richItem.width);\r\n hasOwn(richItem, 'height') && (out.textHeight = richItem.height);\r\n hasOwn(richItem, 'backgroundColor') && (out.textBackgroundColor = richItem.backgroundColor);\r\n hasOwn(richItem, 'padding') && (out.textPadding = richItem.padding);\r\n hasOwn(richItem, 'borderColor') && (out.textBorderColor = richItem.borderColor);\r\n hasOwn(richItem, 'borderWidth') && (out.textBorderWidth = richItem.borderWidth);\r\n hasOwn(richItem, 'borderRadius') && (out.textBorderRadius = richItem.borderRadius);\r\n hasOwn(richItem, 'shadowColor') && (out.textBoxShadowColor = richItem.shadowColor);\r\n hasOwn(richItem, 'shadowBlur') && (out.textBoxShadowBlur = richItem.shadowBlur);\r\n hasOwn(richItem, 'shadowOffsetX') && (out.textBoxShadowOffsetX = richItem.shadowOffsetX);\r\n hasOwn(richItem, 'shadowOffsetY') && (out.textBoxShadowOffsetY = richItem.shadowOffsetY);\r\n hasOwn(richItem, 'textShadowColor') && (out.textShadowColor = richItem.textShadowColor);\r\n hasOwn(richItem, 'textShadowBlur') && (out.textShadowBlur = richItem.textShadowBlur);\r\n hasOwn(richItem, 'textShadowOffsetX') && (out.textShadowOffsetX = richItem.textShadowOffsetX);\r\n hasOwn(richItem, 'textShadowOffsetY') && (out.textShadowOffsetY = richItem.textShadowOffsetY);\r\n }\r\n function warnDeprecated(deprecated, insteadApproach) {\r\n if (__DEV__) {\r\n var key = deprecated + '^_^' + insteadApproach;\r\n if (!deprecatedLogs[key]) {\r\n console.warn(\"[ECharts] DEPRECATED: \\\"\" + deprecated + \"\\\" has been deprecated. \" + insteadApproach);\r\n deprecatedLogs[key] = true;\r\n }\r\n }\r\n }\n\n var inner$e = makeInner();\r\n var TRANSFORM_PROPS = {\r\n x: 1,\r\n y: 1,\r\n scaleX: 1,\r\n scaleY: 1,\r\n originX: 1,\r\n originY: 1,\r\n rotation: 1\r\n };\r\n var transformPropNamesStr = keys(TRANSFORM_PROPS).join(', ');\r\n var STYLE_VISUAL_TYPE = {\r\n color: 'fill',\r\n borderColor: 'stroke'\r\n };\r\n var NON_STYLE_VISUAL_PROPS = {\r\n symbol: 1,\r\n symbolSize: 1,\r\n symbolKeepAspect: 1,\r\n legendSymbol: 1,\r\n visualMeta: 1,\r\n liftZ: 1,\r\n decal: 1\r\n };\r\n var EMPHASIS = 'emphasis';\r\n var NORMAL = 'normal';\r\n var BLUR = 'blur';\r\n var SELECT = 'select';\r\n var STATES = [NORMAL, EMPHASIS, BLUR, SELECT];\r\n var PATH_ITEM_STYLE = {\r\n normal: ['itemStyle'],\r\n emphasis: [EMPHASIS, 'itemStyle'],\r\n blur: [BLUR, 'itemStyle'],\r\n select: [SELECT, 'itemStyle']\r\n };\r\n var PATH_LABEL = {\r\n normal: ['label'],\r\n emphasis: [EMPHASIS, 'label'],\r\n blur: [BLUR, 'label'],\r\n select: [SELECT, 'label']\r\n };\r\n var GROUP_DIFF_PREFIX = 'e\\0\\0';\r\n var attachedTxInfoTmp = {\r\n normal: {},\r\n emphasis: {},\r\n blur: {},\r\n select: {}\r\n };\r\n var LEGACY_TRANSFORM_PROPS = {\r\n position: ['x', 'y'],\r\n scale: ['scaleX', 'scaleY'],\r\n origin: ['originX', 'originY']\r\n };\r\n var tmpTransformable = new Transformable();\r\n var prepareCustoms = {\r\n cartesian2d: cartesianPrepareCustom,\r\n geo: geoPrepareCustom,\r\n singleAxis: singlePrepareCustom,\r\n polar: polarPrepareCustom,\r\n calendar: calendarPrepareCustom\r\n };\r\n var CustomSeriesModel = (function (_super) {\r\n __extends(CustomSeriesModel, _super);\r\n function CustomSeriesModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = CustomSeriesModel.type;\r\n return _this;\r\n }\r\n CustomSeriesModel.prototype.optionUpdated = function () {\r\n this.currentZLevel = this.get('zlevel', true);\r\n this.currentZ = this.get('z', true);\r\n };\r\n CustomSeriesModel.prototype.getInitialData = function (option, ecModel) {\r\n return createListFromArray(this.getSource(), this);\r\n };\r\n CustomSeriesModel.prototype.getDataParams = function (dataIndex, dataType, el) {\r\n var params = _super.prototype.getDataParams.call(this, dataIndex, dataType);\r\n el && (params.info = inner$e(el).info);\r\n return params;\r\n };\r\n CustomSeriesModel.type = 'series.custom';\r\n CustomSeriesModel.dependencies = ['grid', 'polar', 'geo', 'singleAxis', 'calendar'];\r\n CustomSeriesModel.defaultOption = {\r\n coordinateSystem: 'cartesian2d',\r\n zlevel: 0,\r\n z: 2,\r\n legendHoverLink: true,\r\n clip: false\r\n };\r\n return CustomSeriesModel;\r\n }(SeriesModel));\r\n ComponentModel.registerClass(CustomSeriesModel);\r\n var CustomSeriesView = (function (_super) {\r\n __extends(CustomSeriesView, _super);\r\n function CustomSeriesView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = CustomSeriesView.type;\r\n return _this;\r\n }\r\n CustomSeriesView.prototype.render = function (customSeries, ecModel, api, payload) {\r\n var oldData = this._data;\r\n var data = customSeries.getData();\r\n var group = this.group;\r\n var renderItem = makeRenderItem(customSeries, data, ecModel, api);\r\n var transOpt = customSeries.__transientTransitionOpt;\r\n if (transOpt && (transOpt.from == null || transOpt.to == null)) {\r\n oldData && oldData.each(function (oldIdx) {\r\n doRemoveEl(oldData.getItemGraphicEl(oldIdx), customSeries, group);\r\n });\r\n data.each(function (newIdx) {\r\n createOrUpdateItem(api, null, newIdx, renderItem(newIdx, payload), customSeries, group, data, null);\r\n });\r\n }\r\n else {\r\n var morphPreparation_1 = new MorphPreparation(customSeries, transOpt);\r\n var diffMode = transOpt ? 'multiple' : 'oneToOne';\r\n (new DataDiffer(oldData ? oldData.getIndices() : [], data.getIndices(), createGetKey(oldData, diffMode, transOpt && transOpt.from), createGetKey(data, diffMode, transOpt && transOpt.to), null, diffMode))\r\n .add(function (newIdx) {\r\n createOrUpdateItem(api, null, newIdx, renderItem(newIdx, payload), customSeries, group, data, null);\r\n })\r\n .remove(function (oldIdx) {\r\n doRemoveEl(oldData.getItemGraphicEl(oldIdx), customSeries, group);\r\n })\r\n .update(function (newIdx, oldIdx) {\r\n morphPreparation_1.reset('oneToOne');\r\n var oldEl = oldData.getItemGraphicEl(oldIdx);\r\n morphPreparation_1.findAndAddFrom(oldEl);\r\n if (morphPreparation_1.hasFrom()) {\r\n removeElementDirectly(oldEl, group);\r\n oldEl = null;\r\n }\r\n createOrUpdateItem(api, oldEl, newIdx, renderItem(newIdx, payload), customSeries, group, data, morphPreparation_1);\r\n morphPreparation_1.applyMorphing();\r\n })\r\n .updateManyToOne(function (newIdx, oldIndices) {\r\n morphPreparation_1.reset('manyToOne');\r\n for (var i = 0; i < oldIndices.length; i++) {\r\n var oldEl = oldData.getItemGraphicEl(oldIndices[i]);\r\n morphPreparation_1.findAndAddFrom(oldEl);\r\n removeElementDirectly(oldEl, group);\r\n }\r\n createOrUpdateItem(api, null, newIdx, renderItem(newIdx, payload), customSeries, group, data, morphPreparation_1);\r\n morphPreparation_1.applyMorphing();\r\n })\r\n .updateOneToMany(function (newIndices, oldIdx) {\r\n morphPreparation_1.reset('oneToMany');\r\n var newLen = newIndices.length;\r\n var oldEl = oldData.getItemGraphicEl(oldIdx);\r\n morphPreparation_1.findAndAddFrom(oldEl);\r\n removeElementDirectly(oldEl, group);\r\n for (var i = 0; i < newLen; i++) {\r\n createOrUpdateItem(api, null, newIndices[i], renderItem(newIndices[i], payload), customSeries, group, data, morphPreparation_1);\r\n }\r\n morphPreparation_1.applyMorphing();\r\n })\r\n .execute();\r\n }\r\n var clipPath = customSeries.get('clip', true)\r\n ? createClipPath(customSeries.coordinateSystem, false, customSeries)\r\n : null;\r\n if (clipPath) {\r\n group.setClipPath(clipPath);\r\n }\r\n else {\r\n group.removeClipPath();\r\n }\r\n this._data = data;\r\n };\r\n CustomSeriesView.prototype.incrementalPrepareRender = function (customSeries, ecModel, api) {\r\n this.group.removeAll();\r\n this._data = null;\r\n };\r\n CustomSeriesView.prototype.incrementalRender = function (params, customSeries, ecModel, api, payload) {\r\n var data = customSeries.getData();\r\n var renderItem = makeRenderItem(customSeries, data, ecModel, api);\r\n function setIncrementalAndHoverLayer(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 = params.start; idx < params.end; idx++) {\r\n var el = createOrUpdateItem(null, null, idx, renderItem(idx, payload), customSeries, this.group, data, null);\r\n el.traverse(setIncrementalAndHoverLayer);\r\n }\r\n };\r\n CustomSeriesView.prototype.filterForExposedEvent = function (eventType, query, targetEl, packedEvent) {\r\n var elementName = query.element;\r\n if (elementName == null || targetEl.name === elementName) {\r\n return true;\r\n }\r\n while ((targetEl = (targetEl.__hostTarget || targetEl.parent)) && targetEl !== this.group) {\r\n if (targetEl.name === elementName) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n CustomSeriesView.type = 'custom';\r\n return CustomSeriesView;\r\n }(ChartView));\r\n ChartView.registerClass(CustomSeriesView);\r\n function createGetKey(data, diffMode, dimension) {\r\n if (!data) {\r\n return;\r\n }\r\n if (diffMode === 'oneToOne') {\r\n return function (rawIdx, dataIndex) {\r\n return data.getId(dataIndex);\r\n };\r\n }\r\n var diffByDimName = data.getDimension(dimension);\r\n var dimInfo = data.getDimensionInfo(diffByDimName);\r\n if (!dimInfo) {\r\n var errMsg = '';\r\n if (__DEV__) {\r\n errMsg = dimension + \" is not a valid dimension.\";\r\n }\r\n throwError(errMsg);\r\n }\r\n var ordinalMeta = dimInfo.ordinalMeta;\r\n return function (rawIdx, dataIndex) {\r\n var key = data.get(diffByDimName, dataIndex);\r\n if (ordinalMeta) {\r\n key = ordinalMeta.categories[key];\r\n }\r\n return (key == null || eqNaN(key))\r\n ? rawIdx + ''\r\n : '_ec_' + key;\r\n };\r\n }\r\n function createEl(elOption) {\r\n var graphicType = elOption.type;\r\n var el;\r\n if (graphicType === 'path') {\r\n var shape = elOption.shape;\r\n var pathRect = (shape.width != null && shape.height != null)\r\n ? {\r\n x: shape.x || 0,\r\n y: shape.y || 0,\r\n width: shape.width,\r\n height: shape.height\r\n }\r\n : null;\r\n var pathData = getPathData(shape);\r\n el = makePath(pathData, null, pathRect, shape.layout || 'center');\r\n inner$e(el).customPathData = pathData;\r\n }\r\n else if (graphicType === 'image') {\r\n el = new ZRImage({});\r\n inner$e(el).customImagePath = elOption.style.image;\r\n }\r\n else if (graphicType === 'text') {\r\n el = new ZRText({});\r\n }\r\n else if (graphicType === 'group') {\r\n el = new Group();\r\n }\r\n else if (graphicType === 'compoundPath') {\r\n throw new Error('\"compoundPath\" is not supported yet.');\r\n }\r\n else {\r\n var Clz = getShapeClass(graphicType);\r\n if (!Clz) {\r\n var errMsg = '';\r\n if (__DEV__) {\r\n errMsg = 'graphic type \"' + graphicType + '\" can not be found.';\r\n }\r\n throwError(errMsg);\r\n }\r\n el = new Clz();\r\n }\r\n inner$e(el).customGraphicType = graphicType;\r\n el.name = elOption.name;\r\n el.z2EmphasisLift = 1;\r\n el.z2SelectLift = 1;\r\n return el;\r\n }\r\n function updateElNormal(api, el, isMorphTo, dataIndex, elOption, styleOpt, attachedTxInfo, seriesModel, isInit, isTextContent) {\r\n var transFromProps = {};\r\n var allPropsFinal = {};\r\n var elDisplayable = el.isGroup ? null : el;\r\n !isMorphTo && prepareShapeOrExtraTransitionFrom('shape', el, null, elOption, transFromProps, isInit);\r\n prepareShapeOrExtraAllPropsFinal('shape', elOption, allPropsFinal);\r\n !isMorphTo && prepareShapeOrExtraTransitionFrom('extra', el, null, elOption, transFromProps, isInit);\r\n prepareShapeOrExtraAllPropsFinal('extra', elOption, allPropsFinal);\r\n !isMorphTo && prepareTransformTransitionFrom(el, null, elOption, transFromProps, isInit);\r\n prepareTransformAllPropsFinal(elOption, allPropsFinal);\r\n var txCfgOpt = attachedTxInfo && attachedTxInfo.normal.cfg;\r\n if (txCfgOpt) {\r\n el.setTextConfig(txCfgOpt);\r\n }\r\n if (el.type === 'text' && styleOpt) {\r\n var textOptionStyle = styleOpt;\r\n hasOwn(textOptionStyle, 'textFill') && (textOptionStyle.fill = textOptionStyle.textFill);\r\n hasOwn(textOptionStyle, 'textStroke') && (textOptionStyle.stroke = textOptionStyle.textStroke);\r\n }\r\n if (styleOpt) {\r\n var decalPattern = void 0;\r\n var decalObj = isPath$1(el) ? styleOpt.decal : null;\r\n if (api && decalObj) {\r\n decalObj.dirty = true;\r\n decalPattern = createOrUpdatePatternFromDecal(decalObj, api);\r\n }\r\n styleOpt.__decalPattern = decalPattern;\r\n }\r\n !isMorphTo && prepareStyleTransitionFrom(el, null, elOption, styleOpt, transFromProps, isInit);\r\n if (elDisplayable) {\r\n hasOwn(elOption, 'invisible') && (elDisplayable.invisible = elOption.invisible);\r\n }\r\n if (!isMorphTo) {\r\n applyPropsFinal(el, allPropsFinal, styleOpt);\r\n applyTransitionFrom(el, dataIndex, elOption, seriesModel, transFromProps, isInit);\r\n }\r\n hasOwn(elOption, 'silent') && (el.silent = elOption.silent);\r\n hasOwn(elOption, 'ignore') && (el.ignore = elOption.ignore);\r\n if (!isTextContent) {\r\n hasOwn(elOption, 'info') && (inner$e(el).info = elOption.info);\r\n }\r\n styleOpt ? el.dirty() : el.markRedraw();\r\n return isMorphTo ? allPropsFinal : null;\r\n }\r\n function applyPropsFinal(el, allPropsFinal, styleOpt) {\r\n var elDisplayable = el.isGroup ? null : el;\r\n if (elDisplayable && styleOpt) {\r\n var decalPattern = styleOpt.__decalPattern;\r\n var originalDecalObj = void 0;\r\n if (decalPattern) {\r\n originalDecalObj = styleOpt.decal;\r\n styleOpt.decal = decalPattern;\r\n }\r\n elDisplayable.useStyle(styleOpt);\r\n if (decalPattern) {\r\n styleOpt.decal = originalDecalObj;\r\n }\r\n var animators = elDisplayable.animators;\r\n for (var i = 0; i < animators.length; i++) {\r\n var animator = animators[i];\r\n if (animator.targetName === 'style') {\r\n animator.changeTarget(elDisplayable.style);\r\n }\r\n }\r\n }\r\n allPropsFinal && el.attr(allPropsFinal);\r\n }\r\n function applyTransitionFrom(el, dataIndex, elOption, seriesModel, transFromProps, isInit) {\r\n if (transFromProps) {\r\n var userDuring = elOption.during;\r\n inner$e(el).userDuring = userDuring;\r\n var cfgDuringCall = userDuring ? bind(duringCall, { el: el, userDuring: userDuring }) : null;\r\n var cfg = {\r\n dataIndex: dataIndex,\r\n isFrom: true,\r\n during: cfgDuringCall\r\n };\r\n isInit\r\n ? initProps(el, transFromProps, seriesModel, cfg)\r\n : updateProps(el, transFromProps, seriesModel, cfg);\r\n }\r\n }\r\n function prepareShapeOrExtraTransitionFrom(mainAttr, el, morphFromEl, elOption, transFromProps, isInit) {\r\n var attrOpt = elOption[mainAttr];\r\n if (!attrOpt) {\r\n return;\r\n }\r\n var elPropsInAttr = el[mainAttr];\r\n var transFromPropsInAttr;\r\n var enterFrom = attrOpt.enterFrom;\r\n if (isInit && enterFrom) {\r\n !transFromPropsInAttr && (transFromPropsInAttr = transFromProps[mainAttr] = {});\r\n var enterFromKeys = keys(enterFrom);\r\n for (var i = 0; i < enterFromKeys.length; i++) {\r\n var key = enterFromKeys[i];\r\n transFromPropsInAttr[key] = enterFrom[key];\r\n }\r\n }\r\n if (!isInit\r\n && elPropsInAttr\r\n && !(morphFromEl != null && mainAttr === 'shape')) {\r\n if (attrOpt.transition) {\r\n !transFromPropsInAttr && (transFromPropsInAttr = transFromProps[mainAttr] = {});\r\n var transitionKeys = normalizeToArray(attrOpt.transition);\r\n for (var i = 0; i < transitionKeys.length; i++) {\r\n var key = transitionKeys[i];\r\n var elVal = elPropsInAttr[key];\r\n if (__DEV__) {\r\n checkNonStyleTansitionRefer(key, attrOpt[key], elVal);\r\n }\r\n transFromPropsInAttr[key] = elVal;\r\n }\r\n }\r\n else if (indexOf(elOption.transition, mainAttr) >= 0) {\r\n !transFromPropsInAttr && (transFromPropsInAttr = transFromProps[mainAttr] = {});\r\n var elPropsInAttrKeys = keys(elPropsInAttr);\r\n for (var i = 0; i < elPropsInAttrKeys.length; i++) {\r\n var key = elPropsInAttrKeys[i];\r\n var elVal = elPropsInAttr[key];\r\n if (isNonStyleTransitionEnabled(attrOpt[key], elVal)) {\r\n transFromPropsInAttr[key] = elVal;\r\n }\r\n }\r\n }\r\n }\r\n var leaveTo = attrOpt.leaveTo;\r\n if (leaveTo) {\r\n var leaveToProps = getOrCreateLeaveToPropsFromEl(el);\r\n var leaveToPropsInAttr = leaveToProps[mainAttr] || (leaveToProps[mainAttr] = {});\r\n var leaveToKeys = keys(leaveTo);\r\n for (var i = 0; i < leaveToKeys.length; i++) {\r\n var key = leaveToKeys[i];\r\n leaveToPropsInAttr[key] = leaveTo[key];\r\n }\r\n }\r\n }\r\n function prepareShapeOrExtraAllPropsFinal(mainAttr, elOption, allProps) {\r\n var attrOpt = elOption[mainAttr];\r\n if (!attrOpt) {\r\n return;\r\n }\r\n var allPropsInAttr = allProps[mainAttr] = {};\r\n var keysInAttr = keys(attrOpt);\r\n for (var i = 0; i < keysInAttr.length; i++) {\r\n var key = keysInAttr[i];\r\n allPropsInAttr[key] = cloneValue(attrOpt[key]);\r\n }\r\n }\r\n function prepareTransformTransitionFrom(el, morphFromEl, elOption, transFromProps, isInit) {\r\n var enterFrom = elOption.enterFrom;\r\n if (isInit && enterFrom) {\r\n var enterFromKeys = keys(enterFrom);\r\n for (var i = 0; i < enterFromKeys.length; i++) {\r\n var key = enterFromKeys[i];\r\n if (__DEV__) {\r\n checkTransformPropRefer(key, 'el.enterFrom');\r\n }\r\n transFromProps[key] = enterFrom[key];\r\n }\r\n }\r\n if (!isInit) {\r\n if (morphFromEl) {\r\n var fromTransformable = calcOldElLocalTransformBasedOnNewElParent(morphFromEl, el);\r\n setTransformPropToTransitionFrom(transFromProps, 'x', fromTransformable);\r\n setTransformPropToTransitionFrom(transFromProps, 'y', fromTransformable);\r\n setTransformPropToTransitionFrom(transFromProps, 'scaleX', fromTransformable);\r\n setTransformPropToTransitionFrom(transFromProps, 'scaleY', fromTransformable);\r\n setTransformPropToTransitionFrom(transFromProps, 'originX', fromTransformable);\r\n setTransformPropToTransitionFrom(transFromProps, 'originY', fromTransformable);\r\n setTransformPropToTransitionFrom(transFromProps, 'rotation', fromTransformable);\r\n }\r\n else if (elOption.transition) {\r\n var transitionKeys = normalizeToArray(elOption.transition);\r\n for (var i = 0; i < transitionKeys.length; i++) {\r\n var key = transitionKeys[i];\r\n if (key === 'style' || key === 'shape' || key === 'extra') {\r\n continue;\r\n }\r\n var elVal = el[key];\r\n if (__DEV__) {\r\n checkTransformPropRefer(key, 'el.transition');\r\n checkNonStyleTansitionRefer(key, elOption[key], elVal);\r\n }\r\n transFromProps[key] = elVal;\r\n }\r\n }\r\n else {\r\n setTransformPropToTransitionFrom(transFromProps, 'x', el);\r\n setTransformPropToTransitionFrom(transFromProps, 'y', el);\r\n }\r\n }\r\n var leaveTo = elOption.leaveTo;\r\n if (leaveTo) {\r\n var leaveToProps = getOrCreateLeaveToPropsFromEl(el);\r\n var leaveToKeys = keys(leaveTo);\r\n for (var i = 0; i < leaveToKeys.length; i++) {\r\n var key = leaveToKeys[i];\r\n if (__DEV__) {\r\n checkTransformPropRefer(key, 'el.leaveTo');\r\n }\r\n leaveToProps[key] = leaveTo[key];\r\n }\r\n }\r\n }\r\n function prepareTransformAllPropsFinal(elOption, allProps) {\r\n setLagecyTransformProp(elOption, allProps, 'position');\r\n setLagecyTransformProp(elOption, allProps, 'scale');\r\n setLagecyTransformProp(elOption, allProps, 'origin');\r\n setTransformProp(elOption, allProps, 'x');\r\n setTransformProp(elOption, allProps, 'y');\r\n setTransformProp(elOption, allProps, 'scaleX');\r\n setTransformProp(elOption, allProps, 'scaleY');\r\n setTransformProp(elOption, allProps, 'originX');\r\n setTransformProp(elOption, allProps, 'originY');\r\n setTransformProp(elOption, allProps, 'rotation');\r\n }\r\n function prepareStyleTransitionFrom(el, morphFromEl, elOption, styleOpt, transFromProps, isInit) {\r\n if (!styleOpt) {\r\n return;\r\n }\r\n var fromEl = morphFromEl || el;\r\n var fromElStyle = fromEl.style;\r\n var transFromStyleProps;\r\n var enterFrom = styleOpt.enterFrom;\r\n if (isInit && enterFrom) {\r\n var enterFromKeys = keys(enterFrom);\r\n !transFromStyleProps && (transFromStyleProps = transFromProps.style = {});\r\n for (var i = 0; i < enterFromKeys.length; i++) {\r\n var key = enterFromKeys[i];\r\n transFromStyleProps[key] = enterFrom[key];\r\n }\r\n }\r\n if (!isInit && fromElStyle) {\r\n if (styleOpt.transition) {\r\n var transitionKeys = normalizeToArray(styleOpt.transition);\r\n !transFromStyleProps && (transFromStyleProps = transFromProps.style = {});\r\n for (var i = 0; i < transitionKeys.length; i++) {\r\n var key = transitionKeys[i];\r\n var elVal = fromElStyle[key];\r\n transFromStyleProps[key] = elVal;\r\n }\r\n }\r\n else if (el.getAnimationStyleProps\r\n && indexOf(elOption.transition, 'style') >= 0) {\r\n var animationProps = el.getAnimationStyleProps();\r\n var animationStyleProps = animationProps ? animationProps.style : null;\r\n if (animationStyleProps) {\r\n !transFromStyleProps && (transFromStyleProps = transFromProps.style = {});\r\n var styleKeys = keys(styleOpt);\r\n for (var i = 0; i < styleKeys.length; i++) {\r\n var key = styleKeys[i];\r\n if (animationStyleProps[key]) {\r\n var elVal = fromElStyle[key];\r\n transFromStyleProps[key] = elVal;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n var leaveTo = styleOpt.leaveTo;\r\n if (leaveTo) {\r\n var leaveToKeys = keys(leaveTo);\r\n var leaveToProps = getOrCreateLeaveToPropsFromEl(el);\r\n var leaveToStyleProps = leaveToProps.style || (leaveToProps.style = {});\r\n for (var i = 0; i < leaveToKeys.length; i++) {\r\n var key = leaveToKeys[i];\r\n leaveToStyleProps[key] = leaveTo[key];\r\n }\r\n }\r\n }\r\n function calcOldElLocalTransformBasedOnNewElParent(oldEl, newEl) {\r\n if (!oldEl || oldEl === newEl || oldEl.parent === newEl.parent) {\r\n return oldEl;\r\n }\r\n var tmpM = tmpTransformable.transform\r\n || (tmpTransformable.transform = identity([]));\r\n var oldGlobalTransform = oldEl.getComputedTransform();\r\n oldGlobalTransform\r\n ? copy$1(tmpM, oldGlobalTransform)\r\n : identity(tmpM);\r\n var newParent = newEl.parent;\r\n if (newParent) {\r\n newParent.getComputedTransform();\r\n }\r\n tmpTransformable.originX = oldEl.originX;\r\n tmpTransformable.originY = oldEl.originY;\r\n tmpTransformable.parent = newParent;\r\n tmpTransformable.decomposeTransform();\r\n return tmpTransformable;\r\n }\r\n var checkNonStyleTansitionRefer;\r\n if (__DEV__) {\r\n checkNonStyleTansitionRefer = function (propName, optVal, elVal) {\r\n if (!isArrayLike(optVal)) {\r\n assert(optVal != null && isFinite(optVal), 'Prop `' + propName + '` must refer to a finite number or ArrayLike for transition.');\r\n }\r\n else {\r\n assert(optVal !== elVal, 'Prop `' + propName + '` must use different Array object each time for transition.');\r\n }\r\n };\r\n }\r\n function isNonStyleTransitionEnabled(optVal, elVal) {\r\n return !isArrayLike(optVal)\r\n ? (optVal != null && isFinite(optVal))\r\n : optVal !== elVal;\r\n }\r\n var checkTransformPropRefer;\r\n if (__DEV__) {\r\n checkTransformPropRefer = function (key, usedIn) {\r\n assert(hasOwn(TRANSFORM_PROPS, key), 'Prop `' + key + '` is not a permitted in `' + usedIn + '`. '\r\n + 'Only `' + keys(TRANSFORM_PROPS).join('`, `') + '` are permitted.');\r\n };\r\n }\r\n function getOrCreateLeaveToPropsFromEl(el) {\r\n var innerEl = inner$e(el);\r\n return innerEl.leaveToProps || (innerEl.leaveToProps = {});\r\n }\r\n var tmpDuringScope = {};\r\n var customDuringAPI = {\r\n setTransform: function (key, val) {\r\n if (__DEV__) {\r\n assert(hasOwn(TRANSFORM_PROPS, key), 'Only ' + transformPropNamesStr + ' available in `setTransform`.');\r\n }\r\n tmpDuringScope.el[key] = val;\r\n return this;\r\n },\r\n getTransform: function (key) {\r\n if (__DEV__) {\r\n assert(hasOwn(TRANSFORM_PROPS, key), 'Only ' + transformPropNamesStr + ' available in `getTransform`.');\r\n }\r\n return tmpDuringScope.el[key];\r\n },\r\n setShape: function (key, val) {\r\n if (__DEV__) {\r\n assertNotReserved(key);\r\n }\r\n var shape = tmpDuringScope.el.shape\r\n || (tmpDuringScope.el.shape = {});\r\n shape[key] = val;\r\n tmpDuringScope.isShapeDirty = true;\r\n return this;\r\n },\r\n getShape: function (key) {\r\n if (__DEV__) {\r\n assertNotReserved(key);\r\n }\r\n var shape = tmpDuringScope.el.shape;\r\n if (shape) {\r\n return shape[key];\r\n }\r\n },\r\n setStyle: function (key, val) {\r\n if (__DEV__) {\r\n assertNotReserved(key);\r\n }\r\n var style = tmpDuringScope.el.style;\r\n if (style) {\r\n if (__DEV__) {\r\n if (eqNaN(val)) {\r\n warn('style.' + key + ' must not be assigned with NaN.');\r\n }\r\n }\r\n style[key] = val;\r\n tmpDuringScope.isStyleDirty = true;\r\n }\r\n return this;\r\n },\r\n getStyle: function (key) {\r\n if (__DEV__) {\r\n assertNotReserved(key);\r\n }\r\n var style = tmpDuringScope.el.style;\r\n if (style) {\r\n return style[key];\r\n }\r\n },\r\n setExtra: function (key, val) {\r\n if (__DEV__) {\r\n assertNotReserved(key);\r\n }\r\n var extra = tmpDuringScope.el.extra\r\n || (tmpDuringScope.el.extra = {});\r\n extra[key] = val;\r\n return this;\r\n },\r\n getExtra: function (key) {\r\n if (__DEV__) {\r\n assertNotReserved(key);\r\n }\r\n var extra = tmpDuringScope.el.extra;\r\n if (extra) {\r\n return extra[key];\r\n }\r\n }\r\n };\r\n function assertNotReserved(key) {\r\n if (__DEV__) {\r\n if (key === 'transition' || key === 'enterFrom' || key === 'leaveTo') {\r\n throw new Error('key must not be \"' + key + '\"');\r\n }\r\n }\r\n }\r\n function duringCall() {\r\n var scope = this;\r\n var el = scope.el;\r\n if (!el) {\r\n return;\r\n }\r\n var newstUserDuring = inner$e(el).userDuring;\r\n var scopeUserDuring = scope.userDuring;\r\n if (newstUserDuring !== scopeUserDuring) {\r\n scope.el = scope.userDuring = null;\r\n return;\r\n }\r\n tmpDuringScope.el = el;\r\n tmpDuringScope.isShapeDirty = false;\r\n tmpDuringScope.isStyleDirty = false;\r\n scopeUserDuring(customDuringAPI);\r\n if (tmpDuringScope.isShapeDirty && el.dirtyShape) {\r\n el.dirtyShape();\r\n }\r\n if (tmpDuringScope.isStyleDirty && el.dirtyStyle) {\r\n el.dirtyStyle();\r\n }\r\n }\r\n function updateElOnState(state, el, elStateOpt, styleOpt, attachedTxInfo, isRoot, isTextContent) {\r\n var elDisplayable = el.isGroup ? null : el;\r\n var txCfgOpt = attachedTxInfo && attachedTxInfo[state].cfg;\r\n if (elDisplayable) {\r\n var stateObj = elDisplayable.ensureState(state);\r\n if (styleOpt === false) {\r\n var existingEmphasisState = elDisplayable.getState(state);\r\n if (existingEmphasisState) {\r\n existingEmphasisState.style = null;\r\n }\r\n }\r\n else {\r\n stateObj.style = styleOpt || null;\r\n }\r\n if (txCfgOpt) {\r\n stateObj.textConfig = txCfgOpt;\r\n }\r\n setDefaultStateProxy(elDisplayable);\r\n }\r\n }\r\n function updateZ$1(el, elOption, seriesModel, attachedTxInfo) {\r\n if (el.isGroup) {\r\n return;\r\n }\r\n var elDisplayable = el;\r\n var currentZ = seriesModel.currentZ;\r\n var currentZLevel = seriesModel.currentZLevel;\r\n elDisplayable.z = currentZ;\r\n elDisplayable.zlevel = currentZLevel;\r\n var optZ2 = elOption.z2;\r\n optZ2 != null && (elDisplayable.z2 = optZ2 || 0);\r\n for (var i = 0; i < STATES.length; i++) {\r\n updateZForEachState(elDisplayable, elOption, STATES[i]);\r\n }\r\n }\r\n function updateZForEachState(elDisplayable, elOption, state) {\r\n var isNormal = state === NORMAL;\r\n var elStateOpt = isNormal ? elOption : retrieveStateOption(elOption, state);\r\n var optZ2 = elStateOpt ? elStateOpt.z2 : null;\r\n var stateObj;\r\n if (optZ2 != null) {\r\n stateObj = isNormal ? elDisplayable : elDisplayable.ensureState(state);\r\n stateObj.z2 = optZ2 || 0;\r\n }\r\n }\r\n function setLagecyTransformProp(elOption, targetProps, legacyName, fromTransformable) {\r\n var legacyArr = elOption[legacyName];\r\n var xyName = LEGACY_TRANSFORM_PROPS[legacyName];\r\n if (legacyArr) {\r\n if (fromTransformable) {\r\n targetProps[xyName[0]] = fromTransformable[xyName[0]];\r\n targetProps[xyName[1]] = fromTransformable[xyName[1]];\r\n }\r\n else {\r\n targetProps[xyName[0]] = legacyArr[0];\r\n targetProps[xyName[1]] = legacyArr[1];\r\n }\r\n }\r\n }\r\n function setTransformProp(elOption, allProps, name, fromTransformable) {\r\n if (elOption[name] != null) {\r\n allProps[name] = fromTransformable ? fromTransformable[name] : elOption[name];\r\n }\r\n }\r\n function setTransformPropToTransitionFrom(transitionFrom, name, fromTransformable) {\r\n if (fromTransformable) {\r\n transitionFrom[name] = fromTransformable[name];\r\n }\r\n }\r\n function makeRenderItem(customSeries, data, ecModel, api) {\r\n var renderItem = customSeries.get('renderItem');\r\n var coordSys = customSeries.coordinateSystem;\r\n var prepareResult = {};\r\n if (coordSys) {\r\n if (__DEV__) {\r\n assert(renderItem, 'series.render is required.');\r\n assert(coordSys.prepareCustoms || prepareCustoms[coordSys.type], 'This coordSys does not support custom series.');\r\n }\r\n prepareResult = coordSys.prepareCustoms\r\n ? coordSys.prepareCustoms(coordSys)\r\n : prepareCustoms[coordSys.type](coordSys);\r\n }\r\n var userAPI = defaults({\r\n getWidth: api.getWidth,\r\n getHeight: api.getHeight,\r\n getZr: api.getZr,\r\n getDevicePixelRatio: api.getDevicePixelRatio,\r\n value: value,\r\n style: style,\r\n ordinalRawValue: ordinalRawValue,\r\n styleEmphasis: styleEmphasis,\r\n visual: visual,\r\n barLayout: barLayout,\r\n currentSeriesIndices: currentSeriesIndices,\r\n font: font\r\n }, prepareResult.api || {});\r\n var userParams = {\r\n context: {},\r\n seriesId: customSeries.id,\r\n seriesName: customSeries.name,\r\n seriesIndex: customSeries.seriesIndex,\r\n coordSys: prepareResult.coordSys,\r\n dataInsideLength: data.count(),\r\n encode: wrapEncodeDef(customSeries.getData())\r\n };\r\n var currDataIndexInside;\r\n var currItemModel;\r\n var currItemStyleModels = {};\r\n var currLabelModels = {};\r\n var seriesItemStyleModels = {};\r\n var seriesLabelModels = {};\r\n for (var i = 0; i < STATES.length; i++) {\r\n var stateName = STATES[i];\r\n seriesItemStyleModels[stateName] = customSeries\r\n .getModel(PATH_ITEM_STYLE[stateName]);\r\n seriesLabelModels[stateName] = customSeries\r\n .getModel(PATH_LABEL[stateName]);\r\n }\r\n function getItemModel(dataIndexInside) {\r\n return dataIndexInside === currDataIndexInside\r\n ? (currItemModel || (currItemModel = data.getItemModel(dataIndexInside)))\r\n : data.getItemModel(dataIndexInside);\r\n }\r\n function getItemStyleModel(dataIndexInside, state) {\r\n return !data.hasItemOption\r\n ? seriesItemStyleModels[state]\r\n : dataIndexInside === currDataIndexInside\r\n ? (currItemStyleModels[state] || (currItemStyleModels[state] = getItemModel(dataIndexInside).getModel(PATH_ITEM_STYLE[state])))\r\n : getItemModel(dataIndexInside).getModel(PATH_ITEM_STYLE[state]);\r\n }\r\n function getLabelModel(dataIndexInside, state) {\r\n return !data.hasItemOption\r\n ? seriesLabelModels[state]\r\n : dataIndexInside === currDataIndexInside\r\n ? (currLabelModels[state] || (currLabelModels[state] = getItemModel(dataIndexInside).getModel(PATH_LABEL[state])))\r\n : getItemModel(dataIndexInside).getModel(PATH_LABEL[state]);\r\n }\r\n return function (dataIndexInside, payload) {\r\n currDataIndexInside = dataIndexInside;\r\n currItemModel = null;\r\n currItemStyleModels = {};\r\n currLabelModels = {};\r\n return renderItem && renderItem(defaults({\r\n dataIndexInside: dataIndexInside,\r\n dataIndex: data.getRawIndex(dataIndexInside),\r\n actionType: payload ? payload.type : null\r\n }, userParams), userAPI);\r\n };\r\n function value(dim, dataIndexInside) {\r\n dataIndexInside == null && (dataIndexInside = currDataIndexInside);\r\n return data.get(data.getDimension(dim || 0), dataIndexInside);\r\n }\r\n function ordinalRawValue(dim, dataIndexInside) {\r\n dataIndexInside == null && (dataIndexInside = currDataIndexInside);\r\n var dimInfo = data.getDimensionInfo(dim || 0);\r\n if (!dimInfo) {\r\n return;\r\n }\r\n var val = data.get(dimInfo.name, dataIndexInside);\r\n var ordinalMeta = dimInfo && dimInfo.ordinalMeta;\r\n return ordinalMeta\r\n ? ordinalMeta.categories[val]\r\n : val;\r\n }\r\n function style(userProps, dataIndexInside) {\r\n if (__DEV__) {\r\n warnDeprecated('api.style', 'Please write literal style directly instead.');\r\n }\r\n dataIndexInside == null && (dataIndexInside = currDataIndexInside);\r\n var style = data.getItemVisual(dataIndexInside, 'style');\r\n var visualColor = style && style.fill;\r\n var opacity = style && style.opacity;\r\n var itemStyle = getItemStyleModel(dataIndexInside, NORMAL).getItemStyle();\r\n visualColor != null && (itemStyle.fill = visualColor);\r\n opacity != null && (itemStyle.opacity = opacity);\r\n var opt = { inheritColor: isString(visualColor) ? visualColor : '#000' };\r\n var labelModel = getLabelModel(dataIndexInside, NORMAL);\r\n var textStyle = createTextStyle(labelModel, null, opt, false, true);\r\n textStyle.text = labelModel.getShallow('show')\r\n ? retrieve2(customSeries.getFormattedLabel(dataIndexInside, NORMAL), getDefaultLabel(data, dataIndexInside))\r\n : null;\r\n var textConfig = createTextConfig(labelModel, opt, false);\r\n preFetchFromExtra(userProps, itemStyle);\r\n itemStyle = convertToEC4StyleForCustomSerise(itemStyle, textStyle, textConfig);\r\n userProps && applyUserPropsAfter(itemStyle, userProps);\r\n itemStyle.legacy = true;\r\n return itemStyle;\r\n }\r\n function styleEmphasis(userProps, dataIndexInside) {\r\n if (__DEV__) {\r\n warnDeprecated('api.styleEmphasis', 'Please write literal style directly instead.');\r\n }\r\n dataIndexInside == null && (dataIndexInside = currDataIndexInside);\r\n var itemStyle = getItemStyleModel(dataIndexInside, EMPHASIS).getItemStyle();\r\n var labelModel = getLabelModel(dataIndexInside, EMPHASIS);\r\n var textStyle = createTextStyle(labelModel, null, null, true, true);\r\n textStyle.text = labelModel.getShallow('show')\r\n ? retrieve3(customSeries.getFormattedLabel(dataIndexInside, EMPHASIS), customSeries.getFormattedLabel(dataIndexInside, NORMAL), getDefaultLabel(data, dataIndexInside))\r\n : null;\r\n var textConfig = createTextConfig(labelModel, null, true);\r\n preFetchFromExtra(userProps, itemStyle);\r\n itemStyle = convertToEC4StyleForCustomSerise(itemStyle, textStyle, textConfig);\r\n userProps && applyUserPropsAfter(itemStyle, userProps);\r\n itemStyle.legacy = true;\r\n return itemStyle;\r\n }\r\n function applyUserPropsAfter(itemStyle, extra) {\r\n for (var key in extra) {\r\n if (hasOwn(extra, key)) {\r\n itemStyle[key] = extra[key];\r\n }\r\n }\r\n }\r\n function preFetchFromExtra(extra, itemStyle) {\r\n if (extra) {\r\n extra.textFill && (itemStyle.textFill = extra.textFill);\r\n extra.textPosition && (itemStyle.textPosition = extra.textPosition);\r\n }\r\n }\r\n function visual(visualType, dataIndexInside) {\r\n dataIndexInside == null && (dataIndexInside = currDataIndexInside);\r\n if (hasOwn(STYLE_VISUAL_TYPE, visualType)) {\r\n var style_1 = data.getItemVisual(dataIndexInside, 'style');\r\n return style_1\r\n ? style_1[STYLE_VISUAL_TYPE[visualType]]\r\n : null;\r\n }\r\n if (hasOwn(NON_STYLE_VISUAL_PROPS, visualType)) {\r\n return data.getItemVisual(dataIndexInside, visualType);\r\n }\r\n }\r\n function barLayout(opt) {\r\n if (coordSys.type === 'cartesian2d') {\r\n var baseAxis = coordSys.getBaseAxis();\r\n return getLayoutOnAxis(defaults({ axis: baseAxis }, opt));\r\n }\r\n }\r\n function currentSeriesIndices() {\r\n return ecModel.getCurrentSeriesIndices();\r\n }\r\n function font(opt) {\r\n return getFont(opt, ecModel);\r\n }\r\n }\r\n function wrapEncodeDef(data) {\r\n var encodeDef = {};\r\n each(data.dimensions, function (dimName, dataDimIndex) {\r\n var dimInfo = data.getDimensionInfo(dimName);\r\n if (!dimInfo.isExtraCoord) {\r\n var coordDim = dimInfo.coordDim;\r\n var dataDims = encodeDef[coordDim] = encodeDef[coordDim] || [];\r\n dataDims[dimInfo.coordDimIndex] = dataDimIndex;\r\n }\r\n });\r\n return encodeDef;\r\n }\r\n function createOrUpdateItem(api, el, dataIndex, elOption, seriesModel, group, data, morphPreparation) {\r\n if (!elOption) {\r\n removeElementDirectly(el, group);\r\n return;\r\n }\r\n el = doCreateOrUpdateEl(api, el, dataIndex, elOption, seriesModel, group, true, morphPreparation);\r\n el && data.setItemGraphicEl(dataIndex, el);\r\n enableHoverEmphasis(el, elOption.focus, elOption.blurScope);\r\n return el;\r\n }\r\n function doCreateOrUpdateEl(api, el, dataIndex, elOption, seriesModel, group, isRoot, morphPreparation) {\r\n if (__DEV__) {\r\n assert(elOption, 'should not have an null/undefined element setting');\r\n }\r\n var toBeReplacedIdx = -1;\r\n if (el && (doesElNeedRecreate(el, elOption))) {\r\n toBeReplacedIdx = group.childrenRef().indexOf(el);\r\n el = null;\r\n }\r\n var elIsNewCreated = !el;\r\n if (!el) {\r\n el = createEl(elOption);\r\n }\r\n else {\r\n el.clearStates();\r\n }\r\n var canMorph = inner$e(el).canMorph = elOption.morph && isPath$1(el);\r\n var thisElIsMorphTo = canMorph && morphPreparation && morphPreparation.hasFrom();\r\n var isInit = elIsNewCreated && !thisElIsMorphTo;\r\n attachedTxInfoTmp.normal.cfg = attachedTxInfoTmp.normal.conOpt =\r\n attachedTxInfoTmp.emphasis.cfg = attachedTxInfoTmp.emphasis.conOpt =\r\n attachedTxInfoTmp.blur.cfg = attachedTxInfoTmp.blur.conOpt =\r\n attachedTxInfoTmp.select.cfg = attachedTxInfoTmp.select.conOpt = null;\r\n attachedTxInfoTmp.isLegacy = false;\r\n doCreateOrUpdateAttachedTx(el, dataIndex, elOption, seriesModel, isInit, attachedTxInfoTmp);\r\n doCreateOrUpdateClipPath(el, dataIndex, elOption, seriesModel, isInit);\r\n var pendingAllPropsFinal = updateElNormal(api, el, thisElIsMorphTo, dataIndex, elOption, elOption.style, attachedTxInfoTmp, seriesModel, isInit, false);\r\n if (thisElIsMorphTo) {\r\n morphPreparation.addTo(el, elOption, dataIndex, pendingAllPropsFinal);\r\n }\r\n for (var i = 0; i < STATES.length; i++) {\r\n var stateName = STATES[i];\r\n if (stateName !== NORMAL) {\r\n var otherStateOpt = retrieveStateOption(elOption, stateName);\r\n var otherStyleOpt = retrieveStyleOptionOnState(elOption, otherStateOpt, stateName);\r\n updateElOnState(stateName, el, otherStateOpt, otherStyleOpt, attachedTxInfoTmp);\r\n }\r\n }\r\n updateZ$1(el, elOption, seriesModel);\r\n if (elOption.type === 'group') {\r\n mergeChildren(api, el, dataIndex, elOption, seriesModel, morphPreparation);\r\n }\r\n if (toBeReplacedIdx >= 0) {\r\n group.replaceAt(el, toBeReplacedIdx);\r\n }\r\n else {\r\n group.add(el);\r\n }\r\n return el;\r\n }\r\n function doesElNeedRecreate(el, elOption) {\r\n var elInner = inner$e(el);\r\n var elOptionType = elOption.type;\r\n var elOptionShape = elOption.shape;\r\n var elOptionStyle = elOption.style;\r\n return ((elOptionType != null\r\n && elOptionType !== elInner.customGraphicType)\r\n || (elOptionType === 'path'\r\n && hasOwnPathData(elOptionShape)\r\n && getPathData(elOptionShape) !== elInner.customPathData)\r\n || (elOptionType === 'image'\r\n && hasOwn(elOptionStyle, 'image')\r\n && elOptionStyle.image !== elInner.customImagePath));\r\n }\r\n function doCreateOrUpdateClipPath(el, dataIndex, elOption, seriesModel, isInit) {\r\n var clipPathOpt = elOption.clipPath;\r\n if (clipPathOpt === false) {\r\n if (el && el.getClipPath()) {\r\n el.removeClipPath();\r\n }\r\n }\r\n else if (clipPathOpt) {\r\n var clipPath = el.getClipPath();\r\n if (clipPath && doesElNeedRecreate(clipPath, clipPathOpt)) {\r\n clipPath = null;\r\n }\r\n if (!clipPath) {\r\n clipPath = createEl(clipPathOpt);\r\n if (__DEV__) {\r\n assert(clipPath instanceof Path, 'Only any type of `path` can be used in `clipPath`, rather than ' + clipPath.type + '.');\r\n }\r\n el.setClipPath(clipPath);\r\n }\r\n updateElNormal(null, clipPath, null, dataIndex, clipPathOpt, null, null, seriesModel, isInit, false);\r\n }\r\n }\r\n function doCreateOrUpdateAttachedTx(el, dataIndex, elOption, seriesModel, isInit, attachedTxInfo) {\r\n if (el.isGroup) {\r\n return;\r\n }\r\n processTxInfo(elOption, null, attachedTxInfo);\r\n processTxInfo(elOption, EMPHASIS, attachedTxInfo);\r\n var txConOptNormal = attachedTxInfo.normal.conOpt;\r\n var txConOptEmphasis = attachedTxInfo.emphasis.conOpt;\r\n var txConOptBlur = attachedTxInfo.blur.conOpt;\r\n var txConOptSelect = attachedTxInfo.select.conOpt;\r\n if (txConOptNormal != null || txConOptEmphasis != null || txConOptSelect != null || txConOptBlur != null) {\r\n var textContent = el.getTextContent();\r\n if (txConOptNormal === false) {\r\n textContent && el.removeTextContent();\r\n }\r\n else {\r\n txConOptNormal = attachedTxInfo.normal.conOpt = txConOptNormal || { type: 'text' };\r\n if (!textContent) {\r\n textContent = createEl(txConOptNormal);\r\n el.setTextContent(textContent);\r\n }\r\n else {\r\n textContent.clearStates();\r\n }\r\n var txConStlOptNormal = txConOptNormal && txConOptNormal.style;\r\n updateElNormal(null, textContent, null, dataIndex, txConOptNormal, txConStlOptNormal, null, seriesModel, isInit, true);\r\n for (var i = 0; i < STATES.length; i++) {\r\n var stateName = STATES[i];\r\n if (stateName !== NORMAL) {\r\n var txConOptOtherState = attachedTxInfo[stateName].conOpt;\r\n updateElOnState(stateName, textContent, txConOptOtherState, retrieveStyleOptionOnState(txConOptNormal, txConOptOtherState, stateName), null);\r\n }\r\n }\r\n txConStlOptNormal ? textContent.dirty() : textContent.markRedraw();\r\n }\r\n }\r\n }\r\n function processTxInfo(elOption, state, attachedTxInfo) {\r\n var stateOpt = !state ? elOption : retrieveStateOption(elOption, state);\r\n var styleOpt = !state ? elOption.style : retrieveStyleOptionOnState(elOption, stateOpt, EMPHASIS);\r\n var elType = elOption.type;\r\n var txCfg = stateOpt ? stateOpt.textConfig : null;\r\n var txConOptNormal = elOption.textContent;\r\n var txConOpt = !txConOptNormal ? null : !state ? txConOptNormal : retrieveStateOption(txConOptNormal, state);\r\n if (styleOpt && (attachedTxInfo.isLegacy\r\n || isEC4CompatibleStyle(styleOpt, elType, !!txCfg, !!txConOpt))) {\r\n attachedTxInfo.isLegacy = true;\r\n var convertResult = convertFromEC4CompatibleStyle(styleOpt, elType, !state);\r\n if (!txCfg && convertResult.textConfig) {\r\n txCfg = convertResult.textConfig;\r\n }\r\n if (!txConOpt && convertResult.textContent) {\r\n txConOpt = convertResult.textContent;\r\n }\r\n }\r\n if (!state && txConOpt) {\r\n var txConOptNormal_1 = txConOpt;\r\n !txConOptNormal_1.type && (txConOptNormal_1.type = 'text');\r\n if (__DEV__) {\r\n txConOptNormal_1.type !== 'text' && assert(txConOptNormal_1.type === 'text', 'textContent.type must be \"text\"');\r\n }\r\n }\r\n var info = !state ? attachedTxInfo.normal : attachedTxInfo[state];\r\n info.cfg = txCfg;\r\n info.conOpt = txConOpt;\r\n }\r\n function retrieveStateOption(elOption, state) {\r\n return !state ? elOption : elOption ? elOption[state] : null;\r\n }\r\n function retrieveStyleOptionOnState(stateOptionNormal, stateOption, state) {\r\n var style = stateOption && stateOption.style;\r\n if (style == null && state === EMPHASIS && stateOptionNormal) {\r\n style = stateOptionNormal.styleEmphasis;\r\n }\r\n return style;\r\n }\r\n function mergeChildren(api, el, dataIndex, elOption, seriesModel, morphPreparation) {\r\n var newChildren = elOption.children;\r\n var newLen = newChildren ? newChildren.length : 0;\r\n var mergeChildren = elOption.$mergeChildren;\r\n var byName = mergeChildren === 'byName' || elOption.diffChildrenByName;\r\n var notMerge = mergeChildren === false;\r\n if (!newLen && !byName && !notMerge) {\r\n return;\r\n }\r\n if (byName) {\r\n diffGroupChildren({\r\n api: api,\r\n oldChildren: el.children() || [],\r\n newChildren: newChildren || [],\r\n dataIndex: dataIndex,\r\n seriesModel: seriesModel,\r\n group: el,\r\n morphPreparation: morphPreparation\r\n });\r\n return;\r\n }\r\n notMerge && el.removeAll();\r\n var index = 0;\r\n for (; index < newLen; index++) {\r\n newChildren[index] && doCreateOrUpdateEl(api, el.childAt(index), dataIndex, newChildren[index], seriesModel, el, false, morphPreparation);\r\n }\r\n for (var i = el.childCount() - 1; i >= index; i--) {\r\n doRemoveEl(el.childAt(i), seriesModel, el);\r\n }\r\n }\r\n function diffGroupChildren(context) {\r\n (new DataDiffer(context.oldChildren, context.newChildren, getKey, getKey, context))\r\n .add(processAddUpdate)\r\n .update(processAddUpdate)\r\n .remove(processRemove)\r\n .execute();\r\n }\r\n function getKey(item, idx) {\r\n var name = item && item.name;\r\n return name != null ? name : GROUP_DIFF_PREFIX + idx;\r\n }\r\n function processAddUpdate(newIndex, oldIndex) {\r\n var context = this.context;\r\n var childOption = newIndex != null ? context.newChildren[newIndex] : null;\r\n var child = oldIndex != null ? context.oldChildren[oldIndex] : null;\r\n doCreateOrUpdateEl(context.api, child, context.dataIndex, childOption, context.seriesModel, context.group, false, context.morphPreparation);\r\n }\r\n function processRemove(oldIndex) {\r\n var context = this.context;\r\n var child = context.oldChildren[oldIndex];\r\n doRemoveEl(child, context.seriesModel, context.group);\r\n }\r\n function doRemoveEl(el, seriesModel, group) {\r\n if (el) {\r\n var leaveToProps = inner$e(el).leaveToProps;\r\n leaveToProps\r\n ? updateProps(el, leaveToProps, seriesModel, {\r\n cb: function () {\r\n group.remove(el);\r\n }\r\n })\r\n : group.remove(el);\r\n }\r\n }\r\n function getPathData(shape) {\r\n return shape && (shape.pathData || shape.d);\r\n }\r\n function hasOwnPathData(shape) {\r\n return shape && (hasOwn(shape, 'pathData') || hasOwn(shape, 'd'));\r\n }\r\n function isPath$1(el) {\r\n return el && el instanceof Path;\r\n }\r\n function removeElementDirectly(el, group) {\r\n el && group.remove(el);\r\n }\r\n var MorphPreparation = (function () {\r\n function MorphPreparation(seriesModel, transOpt) {\r\n this._fromList = [];\r\n this._toList = [];\r\n this._toElOptionList = [];\r\n this._allPropsFinalList = [];\r\n this._toDataIndices = [];\r\n this._morphConfigList = [];\r\n this._seriesModel = seriesModel;\r\n this._transOpt = transOpt;\r\n }\r\n MorphPreparation.prototype.hasFrom = function () {\r\n return !!this._fromList.length;\r\n };\r\n MorphPreparation.prototype.findAndAddFrom = function (el) {\r\n if (!el) {\r\n return;\r\n }\r\n if (inner$e(el).canMorph) {\r\n this._fromList.push(el);\r\n }\r\n if (el.isGroup) {\r\n var children = el.childrenRef();\r\n for (var i = 0; i < children.length; i++) {\r\n this.findAndAddFrom(children[i]);\r\n }\r\n }\r\n };\r\n MorphPreparation.prototype.addTo = function (path, elOption, dataIndex, allPropsFinal) {\r\n if (path) {\r\n this._toList.push(path);\r\n this._toElOptionList.push(elOption);\r\n this._toDataIndices.push(dataIndex);\r\n this._allPropsFinalList.push(allPropsFinal);\r\n }\r\n };\r\n MorphPreparation.prototype.applyMorphing = function () {\r\n var type = this._type;\r\n var fromList = this._fromList;\r\n var toList = this._toList;\r\n var toListLen = toList.length;\r\n var fromListLen = fromList.length;\r\n if (!fromListLen || !toListLen) {\r\n return;\r\n }\r\n if (type === 'oneToOne') {\r\n for (var toIdx = 0; toIdx < toListLen; toIdx++) {\r\n this._oneToOneForSingleTo(toIdx, toIdx);\r\n }\r\n }\r\n else if (type === 'manyToOne') {\r\n var fromSingleSegLen = Math.max(1, Math.floor(fromListLen / toListLen));\r\n for (var toIdx = 0, fromIdxStart = 0; toIdx < toListLen; toIdx++, fromIdxStart += fromSingleSegLen) {\r\n var fromCount = toIdx + 1 >= toListLen\r\n ? fromListLen - fromIdxStart\r\n : fromSingleSegLen;\r\n this._manyToOneForSingleTo(toIdx, fromIdxStart >= fromListLen ? null : fromIdxStart, fromCount);\r\n }\r\n }\r\n else if (type === 'oneToMany') {\r\n var toSingleSegLen = Math.max(1, Math.floor(toListLen / fromListLen));\r\n for (var toIdxStart = 0, fromIdx = 0; toIdxStart < toListLen; toIdxStart += toSingleSegLen, fromIdx++) {\r\n var toCount = toIdxStart + toSingleSegLen >= toListLen\r\n ? toListLen - toIdxStart\r\n : toSingleSegLen;\r\n this._oneToManyForSingleFrom(toIdxStart, toCount, fromIdx >= fromListLen ? null : fromIdx);\r\n }\r\n }\r\n };\r\n MorphPreparation.prototype._oneToOneForSingleTo = function (toIdx, fromIdx) {\r\n var to = this._toList[toIdx];\r\n var toElOption = this._toElOptionList[toIdx];\r\n var toDataIndex = this._toDataIndices[toIdx];\r\n var allPropsFinal = this._allPropsFinalList[toIdx];\r\n var from = this._fromList[fromIdx];\r\n var elAnimationConfig = this._getOrCreateMorphConfig(toDataIndex);\r\n var morphDuration = elAnimationConfig.duration;\r\n if (from && isCombiningPath(from)) {\r\n applyPropsFinal(to, allPropsFinal, toElOption.style);\r\n if (morphDuration) {\r\n var combineResult = combine([from], to, elAnimationConfig, copyPropsWhenDivided);\r\n this._processResultIndividuals(combineResult, toIdx, null);\r\n }\r\n }\r\n else {\r\n var morphFrom = (morphDuration\r\n && from\r\n && (from !== to || isInAnyMorphing(from))) ? from : null;\r\n var transFromProps = {};\r\n prepareShapeOrExtraTransitionFrom('shape', to, morphFrom, toElOption, transFromProps, false);\r\n prepareShapeOrExtraTransitionFrom('extra', to, morphFrom, toElOption, transFromProps, false);\r\n prepareTransformTransitionFrom(to, morphFrom, toElOption, transFromProps, false);\r\n prepareStyleTransitionFrom(to, morphFrom, toElOption, toElOption.style, transFromProps, false);\r\n applyPropsFinal(to, allPropsFinal, toElOption.style);\r\n if (morphFrom) {\r\n morphPath(morphFrom, to, elAnimationConfig);\r\n }\r\n applyTransitionFrom(to, toDataIndex, toElOption, this._seriesModel, transFromProps, false);\r\n }\r\n };\r\n MorphPreparation.prototype._manyToOneForSingleTo = function (toIdx, fromIdxStart, fromCount) {\r\n var to = this._toList[toIdx];\r\n var toElOption = this._toElOptionList[toIdx];\r\n var allPropsFinal = this._allPropsFinalList[toIdx];\r\n applyPropsFinal(to, allPropsFinal, toElOption.style);\r\n var elAnimationConfig = this._getOrCreateMorphConfig(this._toDataIndices[toIdx]);\r\n if (elAnimationConfig.duration && fromIdxStart != null) {\r\n var combineFromList = [];\r\n for (var fromIdx = fromIdxStart; fromIdx < fromCount; fromIdx++) {\r\n combineFromList.push(this._fromList[fromIdx]);\r\n }\r\n var combineResult = combine(combineFromList, to, elAnimationConfig, copyPropsWhenDivided);\r\n this._processResultIndividuals(combineResult, toIdx, null);\r\n }\r\n };\r\n MorphPreparation.prototype._oneToManyForSingleFrom = function (toIdxStart, toCount, fromIdx) {\r\n var from = fromIdx == null ? null : this._fromList[fromIdx];\r\n var toList = this._toList;\r\n var separateToList = [];\r\n for (var toIdx = toIdxStart; toIdx < toCount; toIdx++) {\r\n var to = toList[toIdx];\r\n applyPropsFinal(to, this._allPropsFinalList[toIdx], this._toElOptionList[toIdx].style);\r\n separateToList.push(to);\r\n }\r\n var elAnimationConfig = this._getOrCreateMorphConfig(this._toDataIndices[toIdxStart]);\r\n if (elAnimationConfig.duration && from) {\r\n var separateResult = separate(from, separateToList, elAnimationConfig, copyPropsWhenDivided);\r\n this._processResultIndividuals(separateResult, toIdxStart, toCount);\r\n }\r\n };\r\n MorphPreparation.prototype._processResultIndividuals = function (combineSeparateResult, toIdxStart, toCount) {\r\n var isSeparate = toCount != null;\r\n for (var i = 0; i < combineSeparateResult.count; i++) {\r\n var fromIndividual = combineSeparateResult.fromIndividuals[i];\r\n var toIndividual = combineSeparateResult.toIndividuals[i];\r\n var toIdx = toIdxStart + (isSeparate ? i : 0);\r\n var toElOption = this._toElOptionList[toIdx];\r\n var dataIndex = this._toDataIndices[toIdx];\r\n var transFromProps = {};\r\n prepareTransformTransitionFrom(toIndividual, fromIndividual, toElOption, transFromProps, false);\r\n prepareStyleTransitionFrom(toIndividual, fromIndividual, toElOption, toElOption.style, transFromProps, false);\r\n applyTransitionFrom(toIndividual, dataIndex, toElOption, this._seriesModel, transFromProps, false);\r\n }\r\n };\r\n MorphPreparation.prototype._getOrCreateMorphConfig = function (dataIndex) {\r\n var morphConfigList = this._morphConfigList;\r\n var config = morphConfigList[dataIndex];\r\n if (config) {\r\n return config;\r\n }\r\n var duration;\r\n var easing;\r\n var delay;\r\n var seriesModel = this._seriesModel;\r\n var transOpt = this._transOpt;\r\n if (seriesModel.isAnimationEnabled()) {\r\n var animationPayload = void 0;\r\n if (seriesModel && seriesModel.ecModel) {\r\n var updatePayload = seriesModel.ecModel.getUpdatePayload();\r\n animationPayload = (updatePayload && updatePayload.animation);\r\n }\r\n if (animationPayload) {\r\n duration = animationPayload.duration || 0;\r\n easing = animationPayload.easing || 'cubicOut';\r\n delay = animationPayload.delay || 0;\r\n }\r\n else {\r\n easing = seriesModel.get('animationEasingUpdate');\r\n var delayOption = seriesModel.get('animationDelayUpdate');\r\n delay = isFunction(delayOption) ? delayOption(dataIndex) : delayOption;\r\n var durationOption = seriesModel.get('animationDurationUpdate');\r\n duration = isFunction(durationOption) ? durationOption(dataIndex) : durationOption;\r\n }\r\n }\r\n config = {\r\n duration: duration || 0,\r\n delay: delay,\r\n easing: easing,\r\n dividingMethod: transOpt ? transOpt.dividingMethod : null\r\n };\r\n morphConfigList[dataIndex] = config;\r\n return config;\r\n };\r\n MorphPreparation.prototype.reset = function (type) {\r\n this._type = type;\r\n this._fromList.length =\r\n this._toList.length =\r\n this._toElOptionList.length =\r\n this._allPropsFinalList.length =\r\n this._toDataIndices.length = 0;\r\n };\r\n return MorphPreparation;\r\n }());\r\n function copyPropsWhenDivided(srcPath, tarPath, willClone) {\r\n tarPath.style = willClone\r\n ? clone(srcPath.style)\r\n : srcPath.style;\r\n tarPath.zlevel = srcPath.zlevel;\r\n tarPath.z = srcPath.z;\r\n tarPath.z2 = srcPath.z2;\r\n }\n\n function getSeriesStackId$1(seriesModel) {\r\n return seriesModel.get('stack')\r\n || '__ec_stack_' + seriesModel.seriesIndex;\r\n }\r\n function getAxisKey$1(polar, axis) {\r\n return axis.dim + polar.model.componentIndex;\r\n }\r\n function barLayoutPolar(seriesType, ecModel, api) {\r\n var lastStackCoords = {};\r\n var barWidthAndOffset = calRadialBar(filter(ecModel.getSeriesByType(seriesType), function (seriesModel) {\r\n return !ecModel.isSeriesFiltered(seriesModel)\r\n && seriesModel.coordinateSystem\r\n && seriesModel.coordinateSystem.type === 'polar';\r\n }));\r\n ecModel.eachSeriesByType(seriesType, function (seriesModel) {\r\n if (seriesModel.coordinateSystem.type !== 'polar') {\r\n return;\r\n }\r\n var data = seriesModel.getData();\r\n var polar = seriesModel.coordinateSystem;\r\n var baseAxis = polar.getBaseAxis();\r\n var axisKey = getAxisKey$1(polar, baseAxis);\r\n var stackId = getSeriesStackId$1(seriesModel);\r\n var columnLayoutInfo = barWidthAndOffset[axisKey][stackId];\r\n var columnOffset = columnLayoutInfo.offset;\r\n var columnWidth = columnLayoutInfo.width;\r\n var valueAxis = polar.getOtherAxis(baseAxis);\r\n var cx = seriesModel.coordinateSystem.cx;\r\n var cy = seriesModel.coordinateSystem.cy;\r\n var barMinHeight = seriesModel.get('barMinHeight') || 0;\r\n var barMinAngle = seriesModel.get('barMinAngle') || 0;\r\n lastStackCoords[stackId] = lastStackCoords[stackId] || [];\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 clampLayout = baseAxis.dim !== 'radius'\r\n || !seriesModel.get('roundCap', true);\r\n var valueAxisStart = valueAxis.dataToCoord(0);\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 r0 = void 0;\r\n var r = void 0;\r\n var startAngle = void 0;\r\n var endAngle = void 0;\r\n if (valueAxis.dim === 'radius') {\r\n var radiusSpan = valueAxis.dataToCoord(value) - valueAxisStart;\r\n var angle = baseAxis.dataToCoord(baseValue);\r\n if (Math.abs(radiusSpan) < barMinHeight) {\r\n radiusSpan = (radiusSpan < 0 ? -1 : 1) * barMinHeight;\r\n }\r\n r0 = baseCoord;\r\n r = baseCoord + radiusSpan;\r\n startAngle = angle - columnOffset;\r\n endAngle = startAngle - columnWidth;\r\n stacked && (lastStackCoords[stackId][baseValue][sign] = r);\r\n }\r\n else {\r\n var angleSpan = valueAxis.dataToCoord(value, clampLayout) - valueAxisStart;\r\n var radius = baseAxis.dataToCoord(baseValue);\r\n if (Math.abs(angleSpan) < barMinAngle) {\r\n angleSpan = (angleSpan < 0 ? -1 : 1) * barMinAngle;\r\n }\r\n r0 = radius + columnOffset;\r\n r = r0 + columnWidth;\r\n startAngle = baseCoord;\r\n endAngle = baseCoord + angleSpan;\r\n stacked && (lastStackCoords[stackId][baseValue][sign] = endAngle);\r\n }\r\n data.setItemLayout(idx, {\r\n cx: cx,\r\n cy: cy,\r\n r0: r0,\r\n r: r,\r\n startAngle: -startAngle * Math.PI / 180,\r\n endAngle: -endAngle * Math.PI / 180\r\n });\r\n }\r\n });\r\n }\r\n function calRadialBar(barSeries) {\r\n var columnsMap = {};\r\n each(barSeries, function (seriesModel, idx) {\r\n var data = seriesModel.getData();\r\n var polar = seriesModel.coordinateSystem;\r\n var baseAxis = polar.getBaseAxis();\r\n var axisKey = getAxisKey$1(polar, baseAxis);\r\n var axisExtent = baseAxis.getExtent();\r\n var bandWidth = baseAxis.type === 'category'\r\n ? baseAxis.getBandWidth()\r\n : (Math.abs(axisExtent[1] - axisExtent[0]) / data.count());\r\n var columnsOnAxis = columnsMap[axisKey] || {\r\n bandWidth: bandWidth,\r\n remainedWidth: bandWidth,\r\n autoWidthCount: 0,\r\n categoryGap: '20%',\r\n gap: '30%',\r\n stacks: {}\r\n };\r\n var stacks = columnsOnAxis.stacks;\r\n columnsMap[axisKey] = columnsOnAxis;\r\n var stackId = getSeriesStackId$1(seriesModel);\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 = parsePercent$2(seriesModel.get('barWidth'), bandWidth);\r\n var barMaxWidth = parsePercent$2(seriesModel.get('barMaxWidth'), bandWidth);\r\n var barGap = seriesModel.get('barGap');\r\n var barCategoryGap = seriesModel.get('barCategoryGap');\r\n if (barWidth && !stacks[stackId].width) {\r\n barWidth = Math.min(columnsOnAxis.remainedWidth, barWidth);\r\n stacks[stackId].width = barWidth;\r\n columnsOnAxis.remainedWidth -= barWidth;\r\n }\r\n barMaxWidth && (stacks[stackId].maxWidth = barMaxWidth);\r\n (barGap != null) && (columnsOnAxis.gap = barGap);\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 categoryGap = parsePercent$2(columnsOnAxis.categoryGap, 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, stack) {\r\n var maxWidth = column.maxWidth;\r\n if (maxWidth && maxWidth < autoWidth) {\r\n maxWidth = Math.min(maxWidth, remainedWidth);\r\n if (column.width) {\r\n maxWidth = Math.min(maxWidth, column.width);\r\n }\r\n remainedWidth -= maxWidth;\r\n column.width = maxWidth;\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 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 }\n\n var PolarModel = (function (_super) {\r\n __extends(PolarModel, _super);\r\n function PolarModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = PolarModel.type;\r\n return _this;\r\n }\r\n PolarModel.prototype.findAxisModel = function (axisType) {\r\n var foundAxisModel;\r\n var ecModel = this.ecModel;\r\n ecModel.eachComponent(axisType, function (axisModel) {\r\n if (axisModel.getCoordSysModel() === this) {\r\n foundAxisModel = axisModel;\r\n }\r\n }, this);\r\n return foundAxisModel;\r\n };\r\n PolarModel.type = 'polar';\r\n PolarModel.dependencies = ['radiusAxis', 'angleAxis'];\r\n PolarModel.defaultOption = {\r\n zlevel: 0,\r\n z: 0,\r\n center: ['50%', '50%'],\r\n radius: '80%'\r\n };\r\n return PolarModel;\r\n }(ComponentModel));\r\n ComponentModel.registerClass(PolarModel);\n\n var PolarAxisModel = (function (_super) {\r\n __extends(PolarAxisModel, _super);\r\n function PolarAxisModel() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n PolarAxisModel.prototype.getCoordSysModel = function () {\r\n return this.getReferringComponents('polar', SINGLE_REFERRING).models[0];\r\n };\r\n PolarAxisModel.type = 'polarAxis';\r\n return PolarAxisModel;\r\n }(ComponentModel));\r\n mixin(PolarAxisModel, AxisModelCommonMixin);\r\n var AngleAxisModel = (function (_super) {\r\n __extends(AngleAxisModel, _super);\r\n function AngleAxisModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = AngleAxisModel.type;\r\n return _this;\r\n }\r\n AngleAxisModel.type = 'angleAxis';\r\n return AngleAxisModel;\r\n }(PolarAxisModel));\r\n var RadiusAxisModel = (function (_super) {\r\n __extends(RadiusAxisModel, _super);\r\n function RadiusAxisModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = RadiusAxisModel.type;\r\n return _this;\r\n }\r\n RadiusAxisModel.type = 'radiusAxis';\r\n return RadiusAxisModel;\r\n }(PolarAxisModel));\r\n var angleAxisExtraOption = {\r\n startAngle: 90,\r\n clockwise: true,\r\n splitNumber: 12,\r\n axisLabel: {\r\n rotate: 0\r\n }\r\n };\r\n var radiusAxisExtraOption = {\r\n splitNumber: 5\r\n };\r\n axisModelCreator('angle', AngleAxisModel, angleAxisExtraOption);\r\n axisModelCreator('radius', RadiusAxisModel, radiusAxisExtraOption);\n\n var RadiusAxis = (function (_super) {\r\n __extends(RadiusAxis, _super);\r\n function RadiusAxis(scale, radiusExtent) {\r\n return _super.call(this, 'radius', scale, radiusExtent) || this;\r\n }\r\n RadiusAxis.prototype.pointToData = function (point, clamp) {\r\n return this.polar.pointToData(point, clamp)[this.dim === 'radius' ? 0 : 1];\r\n };\r\n return RadiusAxis;\r\n }(Axis));\r\n RadiusAxis.prototype.dataToRadius = Axis.prototype.dataToCoord;\r\n RadiusAxis.prototype.radiusToData = Axis.prototype.coordToData;\n\n var inner$f = makeInner();\r\n var AngleAxis = (function (_super) {\r\n __extends(AngleAxis, _super);\r\n function AngleAxis(scale, angleExtent) {\r\n return _super.call(this, 'angle', scale, angleExtent || [0, 360]) || this;\r\n }\r\n AngleAxis.prototype.pointToData = function (point, clamp) {\r\n return this.polar.pointToData(point, clamp)[this.dim === 'radius' ? 0 : 1];\r\n };\r\n AngleAxis.prototype.calculateCategoryInterval = function () {\r\n var axis = this;\r\n var labelModel = axis.getLabelModel();\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 tickValue = ordinalExtent[0];\r\n var unitSpan = axis.dataToCoord(tickValue + 1) - axis.dataToCoord(tickValue);\r\n var unitH = Math.abs(unitSpan);\r\n var rect = getBoundingRect(tickValue == null ? '' : tickValue + '', labelModel.getFont(), 'center', 'top');\r\n var maxH = Math.max(rect.height, 7);\r\n var dh = maxH / unitH;\r\n isNaN(dh) && (dh = Infinity);\r\n var interval = Math.max(0, Math.floor(dh));\r\n var cache = inner$f(axis.model);\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 interval = lastAutoInterval;\r\n }\r\n else {\r\n cache.lastTickCount = tickCount;\r\n cache.lastAutoInterval = interval;\r\n }\r\n return interval;\r\n };\r\n return AngleAxis;\r\n }(Axis));\r\n AngleAxis.prototype.dataToAngle = Axis.prototype.dataToCoord;\r\n AngleAxis.prototype.angleToData = Axis.prototype.coordToData;\n\n var Polar = (function () {\r\n function Polar(name) {\r\n this.dimensions = ['radius', 'angle'];\r\n this.type = 'polar';\r\n this.cx = 0;\r\n this.cy = 0;\r\n this._radiusAxis = new RadiusAxis();\r\n this._angleAxis = new AngleAxis();\r\n this.axisPointerEnabled = true;\r\n this.name = name || '';\r\n this._radiusAxis.polar = this._angleAxis.polar = this;\r\n }\r\n Polar.prototype.containPoint = function (point) {\r\n var coord = this.pointToCoord(point);\r\n return this._radiusAxis.contain(coord[0])\r\n && this._angleAxis.contain(coord[1]);\r\n };\r\n Polar.prototype.containData = function (data) {\r\n return this._radiusAxis.containData(data[0])\r\n && this._angleAxis.containData(data[1]);\r\n };\r\n Polar.prototype.getAxis = function (dim) {\r\n var key = ('_' + dim + 'Axis');\r\n return this[key];\r\n };\r\n Polar.prototype.getAxes = function () {\r\n return [this._radiusAxis, this._angleAxis];\r\n };\r\n Polar.prototype.getAxesByScale = function (scaleType) {\r\n var axes = [];\r\n var angleAxis = this._angleAxis;\r\n var radiusAxis = this._radiusAxis;\r\n angleAxis.scale.type === scaleType && axes.push(angleAxis);\r\n radiusAxis.scale.type === scaleType && axes.push(radiusAxis);\r\n return axes;\r\n };\r\n Polar.prototype.getAngleAxis = function () {\r\n return this._angleAxis;\r\n };\r\n Polar.prototype.getRadiusAxis = function () {\r\n return this._radiusAxis;\r\n };\r\n Polar.prototype.getOtherAxis = function (axis) {\r\n var angleAxis = this._angleAxis;\r\n return axis === angleAxis ? this._radiusAxis : angleAxis;\r\n };\r\n Polar.prototype.getBaseAxis = function () {\r\n return this.getAxesByScale('ordinal')[0]\r\n || this.getAxesByScale('time')[0]\r\n || this.getAngleAxis();\r\n };\r\n Polar.prototype.getTooltipAxes = function (dim) {\r\n var baseAxis = (dim != null && dim !== 'auto')\r\n ? this.getAxis(dim) : this.getBaseAxis();\r\n return {\r\n baseAxes: [baseAxis],\r\n otherAxes: [this.getOtherAxis(baseAxis)]\r\n };\r\n };\r\n Polar.prototype.dataToPoint = function (data, clamp) {\r\n return this.coordToPoint([\r\n this._radiusAxis.dataToRadius(data[0], clamp),\r\n this._angleAxis.dataToAngle(data[1], clamp)\r\n ]);\r\n };\r\n Polar.prototype.pointToData = function (point, clamp) {\r\n var coord = this.pointToCoord(point);\r\n return [\r\n this._radiusAxis.radiusToData(coord[0], clamp),\r\n this._angleAxis.angleToData(coord[1], clamp)\r\n ];\r\n };\r\n Polar.prototype.pointToCoord = function (point) {\r\n var dx = point[0] - this.cx;\r\n var dy = point[1] - this.cy;\r\n var angleAxis = this.getAngleAxis();\r\n var extent = angleAxis.getExtent();\r\n var minAngle = Math.min(extent[0], extent[1]);\r\n var maxAngle = Math.max(extent[0], extent[1]);\r\n angleAxis.inverse\r\n ? (minAngle = maxAngle - 360)\r\n : (maxAngle = minAngle + 360);\r\n var radius = Math.sqrt(dx * dx + dy * dy);\r\n dx /= radius;\r\n dy /= radius;\r\n var radian = Math.atan2(-dy, dx) / Math.PI * 180;\r\n var dir = radian < minAngle ? 1 : -1;\r\n while (radian < minAngle || radian > maxAngle) {\r\n radian += dir * 360;\r\n }\r\n return [radius, radian];\r\n };\r\n Polar.prototype.coordToPoint = function (coord) {\r\n var radius = coord[0];\r\n var radian = coord[1] / 180 * Math.PI;\r\n var x = Math.cos(radian) * radius + this.cx;\r\n var y = -Math.sin(radian) * radius + this.cy;\r\n return [x, y];\r\n };\r\n Polar.prototype.getArea = function () {\r\n var angleAxis = this.getAngleAxis();\r\n var radiusAxis = this.getRadiusAxis();\r\n var radiusExtent = radiusAxis.getExtent().slice();\r\n radiusExtent[0] > radiusExtent[1] && radiusExtent.reverse();\r\n var angleExtent = angleAxis.getExtent();\r\n var RADIAN = Math.PI / 180;\r\n return {\r\n cx: this.cx,\r\n cy: this.cy,\r\n r0: radiusExtent[0],\r\n r: radiusExtent[1],\r\n startAngle: -angleExtent[0] * RADIAN,\r\n endAngle: -angleExtent[1] * RADIAN,\r\n clockwise: angleAxis.inverse,\r\n contain: function (x, y) {\r\n var dx = x - this.cx;\r\n var dy = y - this.cy;\r\n var d2 = dx * dx + dy * dy;\r\n var r = this.r;\r\n var r0 = this.r0;\r\n return d2 <= r * r && d2 >= r0 * r0;\r\n }\r\n };\r\n };\r\n Polar.prototype.convertToPixel = function (ecModel, finder, value) {\r\n var coordSys = getCoordSys$3(finder);\r\n return coordSys === this ? this.dataToPoint(value) : null;\r\n };\r\n Polar.prototype.convertFromPixel = function (ecModel, finder, pixel) {\r\n var coordSys = getCoordSys$3(finder);\r\n return coordSys === this ? this.pointToData(pixel) : null;\r\n };\r\n return Polar;\r\n }());\r\n function getCoordSys$3(finder) {\r\n var seriesModel = finder.seriesModel;\r\n var polarModel = finder.polarModel;\r\n return polarModel && polarModel.coordinateSystem\r\n || seriesModel && seriesModel.coordinateSystem;\r\n }\n\n function resizePolar(polar, polarModel, api) {\r\n var center = polarModel.get('center');\r\n var width = api.getWidth();\r\n var height = api.getHeight();\r\n polar.cx = parsePercent$2(center[0], width);\r\n polar.cy = parsePercent$2(center[1], height);\r\n var radiusAxis = polar.getRadiusAxis();\r\n var size = Math.min(width, height) / 2;\r\n var radius = polarModel.get('radius');\r\n if (radius == null) {\r\n radius = [0, '100%'];\r\n }\r\n else if (!isArray(radius)) {\r\n radius = [0, radius];\r\n }\r\n var parsedRadius = [\r\n parsePercent$2(radius[0], size),\r\n parsePercent$2(radius[1], size)\r\n ];\r\n radiusAxis.inverse\r\n ? radiusAxis.setExtent(parsedRadius[1], parsedRadius[0])\r\n : radiusAxis.setExtent(parsedRadius[0], parsedRadius[1]);\r\n }\r\n function updatePolarScale(ecModel, api) {\r\n var polar = this;\r\n var angleAxis = polar.getAngleAxis();\r\n var radiusAxis = polar.getRadiusAxis();\r\n angleAxis.scale.setExtent(Infinity, -Infinity);\r\n radiusAxis.scale.setExtent(Infinity, -Infinity);\r\n ecModel.eachSeries(function (seriesModel) {\r\n if (seriesModel.coordinateSystem === polar) {\r\n var data_1 = seriesModel.getData();\r\n each(getDataDimensionsOnAxis(data_1, 'radius'), function (dim) {\r\n radiusAxis.scale.unionExtentFromData(data_1, dim);\r\n });\r\n each(getDataDimensionsOnAxis(data_1, 'angle'), function (dim) {\r\n angleAxis.scale.unionExtentFromData(data_1, dim);\r\n });\r\n }\r\n });\r\n niceScaleExtent(angleAxis.scale, angleAxis.model);\r\n niceScaleExtent(radiusAxis.scale, radiusAxis.model);\r\n if (angleAxis.type === 'category' && !angleAxis.onBand) {\r\n var extent = angleAxis.getExtent();\r\n var diff = 360 / angleAxis.scale.count();\r\n angleAxis.inverse ? (extent[1] += diff) : (extent[1] -= diff);\r\n angleAxis.setExtent(extent[0], extent[1]);\r\n }\r\n }\r\n function isAngleAxisModel(axisModel) {\r\n return axisModel.mainType === 'angleAxis';\r\n }\r\n function setAxis(axis, axisModel) {\r\n axis.type = axisModel.get('type');\r\n axis.scale = createScaleByModel(axisModel);\r\n axis.onBand = axisModel.get('boundaryGap') && axis.type === 'category';\r\n axis.inverse = axisModel.get('inverse');\r\n if (isAngleAxisModel(axisModel)) {\r\n axis.inverse = axis.inverse !== axisModel.get('clockwise');\r\n var startAngle = axisModel.get('startAngle');\r\n axis.setExtent(startAngle, startAngle + (axis.inverse ? -360 : 360));\r\n }\r\n axisModel.axis = axis;\r\n axis.model = axisModel;\r\n }\r\n var polarCreator = {\r\n dimensions: Polar.prototype.dimensions,\r\n create: function (ecModel, api) {\r\n var polarList = [];\r\n ecModel.eachComponent('polar', function (polarModel, idx) {\r\n var polar = new Polar(idx + '');\r\n polar.update = updatePolarScale;\r\n var radiusAxis = polar.getRadiusAxis();\r\n var angleAxis = polar.getAngleAxis();\r\n var radiusAxisModel = polarModel.findAxisModel('radiusAxis');\r\n var angleAxisModel = polarModel.findAxisModel('angleAxis');\r\n setAxis(radiusAxis, radiusAxisModel);\r\n setAxis(angleAxis, angleAxisModel);\r\n resizePolar(polar, polarModel, api);\r\n polarList.push(polar);\r\n polarModel.coordinateSystem = polar;\r\n polar.model = polarModel;\r\n });\r\n ecModel.eachSeries(function (seriesModel) {\r\n if (seriesModel.get('coordinateSystem') === 'polar') {\r\n var polarModel = seriesModel.getReferringComponents('polar', SINGLE_REFERRING).models[0];\r\n if (__DEV__) {\r\n if (!polarModel) {\r\n throw new Error('Polar \"' + retrieve(seriesModel.get('polarIndex'), seriesModel.get('polarId'), 0) + '\" not found');\r\n }\r\n }\r\n seriesModel.coordinateSystem = polarModel.coordinateSystem;\r\n }\r\n });\r\n return polarList;\r\n }\r\n };\r\n CoordinateSystemManager.register('polar', polarCreator);\n\n var elementList$1 = [\r\n 'axisLine',\r\n 'axisLabel',\r\n 'axisTick',\r\n 'minorTick',\r\n 'splitLine',\r\n 'minorSplitLine',\r\n 'splitArea'\r\n ];\r\n function getAxisLineShape(polar, rExtent, angle) {\r\n rExtent[1] > rExtent[0] && (rExtent = rExtent.slice().reverse());\r\n var start = polar.coordToPoint([rExtent[0], angle]);\r\n var end = polar.coordToPoint([rExtent[1], angle]);\r\n return {\r\n x1: start[0],\r\n y1: start[1],\r\n x2: end[0],\r\n y2: end[1]\r\n };\r\n }\r\n function getRadiusIdx(polar) {\r\n var radiusAxis = polar.getRadiusAxis();\r\n return radiusAxis.inverse ? 0 : 1;\r\n }\r\n function fixAngleOverlap(list) {\r\n var firstItem = list[0];\r\n var lastItem = list[list.length - 1];\r\n if (firstItem\r\n && lastItem\r\n && Math.abs(Math.abs(firstItem.coord - lastItem.coord) - 360) < 1e-4) {\r\n list.pop();\r\n }\r\n }\r\n var AngleAxisView = (function (_super) {\r\n __extends(AngleAxisView, _super);\r\n function AngleAxisView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = AngleAxisView.type;\r\n _this.axisPointerClass = 'PolarAxisPointer';\r\n return _this;\r\n }\r\n AngleAxisView.prototype.render = function (angleAxisModel, ecModel) {\r\n this.group.removeAll();\r\n if (!angleAxisModel.get('show')) {\r\n return;\r\n }\r\n var angleAxis = angleAxisModel.axis;\r\n var polar = angleAxis.polar;\r\n var radiusExtent = polar.getRadiusAxis().getExtent();\r\n var ticksAngles = angleAxis.getTicksCoords();\r\n var minorTickAngles = angleAxis.getMinorTicksCoords();\r\n var labels = map(angleAxis.getViewLabels(), function (labelItem) {\r\n labelItem = clone(labelItem);\r\n labelItem.coord = angleAxis.dataToCoord(labelItem.tickValue);\r\n return labelItem;\r\n });\r\n fixAngleOverlap(labels);\r\n fixAngleOverlap(ticksAngles);\r\n each(elementList$1, function (name) {\r\n if (angleAxisModel.get([name, 'show'])\r\n && (!angleAxis.scale.isBlank() || name === 'axisLine')) {\r\n angelAxisElementsBuilders[name](this.group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent, labels);\r\n }\r\n }, this);\r\n };\r\n AngleAxisView.type = 'angleAxis';\r\n return AngleAxisView;\r\n }(AxisView));\r\n var angelAxisElementsBuilders = {\r\n axisLine: function (group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent) {\r\n var lineStyleModel = angleAxisModel.getModel(['axisLine', 'lineStyle']);\r\n var rId = getRadiusIdx(polar);\r\n var r0Id = rId ? 0 : 1;\r\n var shape;\r\n if (radiusExtent[r0Id] === 0) {\r\n shape = new Circle({\r\n shape: {\r\n cx: polar.cx,\r\n cy: polar.cy,\r\n r: radiusExtent[rId]\r\n },\r\n style: lineStyleModel.getLineStyle(),\r\n z2: 1,\r\n silent: true\r\n });\r\n }\r\n else {\r\n shape = new Ring({\r\n shape: {\r\n cx: polar.cx,\r\n cy: polar.cy,\r\n r: radiusExtent[rId],\r\n r0: radiusExtent[r0Id]\r\n },\r\n style: lineStyleModel.getLineStyle(),\r\n z2: 1,\r\n silent: true\r\n });\r\n }\r\n shape.style.fill = null;\r\n group.add(shape);\r\n },\r\n axisTick: function (group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent) {\r\n var tickModel = angleAxisModel.getModel('axisTick');\r\n var tickLen = (tickModel.get('inside') ? -1 : 1) * tickModel.get('length');\r\n var radius = radiusExtent[getRadiusIdx(polar)];\r\n var lines = map(ticksAngles, function (tickAngleItem) {\r\n return new Line({\r\n shape: getAxisLineShape(polar, [radius, radius + tickLen], tickAngleItem.coord)\r\n });\r\n });\r\n group.add(mergePath$1(lines, {\r\n style: defaults(tickModel.getModel('lineStyle').getLineStyle(), {\r\n stroke: angleAxisModel.get(['axisLine', 'lineStyle', 'color'])\r\n })\r\n }));\r\n },\r\n minorTick: function (group, angleAxisModel, polar, tickAngles, minorTickAngles, radiusExtent) {\r\n if (!minorTickAngles.length) {\r\n return;\r\n }\r\n var tickModel = angleAxisModel.getModel('axisTick');\r\n var minorTickModel = angleAxisModel.getModel('minorTick');\r\n var tickLen = (tickModel.get('inside') ? -1 : 1) * minorTickModel.get('length');\r\n var radius = radiusExtent[getRadiusIdx(polar)];\r\n var lines = [];\r\n for (var i = 0; i < minorTickAngles.length; i++) {\r\n for (var k = 0; k < minorTickAngles[i].length; k++) {\r\n lines.push(new Line({\r\n shape: getAxisLineShape(polar, [radius, radius + tickLen], minorTickAngles[i][k].coord)\r\n }));\r\n }\r\n }\r\n group.add(mergePath$1(lines, {\r\n style: defaults(minorTickModel.getModel('lineStyle').getLineStyle(), defaults(tickModel.getLineStyle(), {\r\n stroke: angleAxisModel.get(['axisLine', 'lineStyle', 'color'])\r\n }))\r\n }));\r\n },\r\n axisLabel: function (group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent, labels) {\r\n var rawCategoryData = angleAxisModel.getCategories(true);\r\n var commonLabelModel = angleAxisModel.getModel('axisLabel');\r\n var labelMargin = commonLabelModel.get('margin');\r\n var triggerEvent = angleAxisModel.get('triggerEvent');\r\n each(labels, function (labelItem, idx) {\r\n var labelModel = commonLabelModel;\r\n var tickValue = labelItem.tickValue;\r\n var r = radiusExtent[getRadiusIdx(polar)];\r\n var p = polar.coordToPoint([r + labelMargin, labelItem.coord]);\r\n var cx = polar.cx;\r\n var cy = polar.cy;\r\n var labelTextAlign = Math.abs(p[0] - cx) / r < 0.3\r\n ? 'center' : (p[0] > cx ? 'left' : 'right');\r\n var labelTextVerticalAlign = Math.abs(p[1] - cy) / r < 0.3\r\n ? 'middle' : (p[1] > cy ? 'top' : 'bottom');\r\n if (rawCategoryData && rawCategoryData[tickValue]) {\r\n var rawCategoryItem = rawCategoryData[tickValue];\r\n if (isObject(rawCategoryItem) && rawCategoryItem.textStyle) {\r\n labelModel = new Model(rawCategoryItem.textStyle, commonLabelModel, commonLabelModel.ecModel);\r\n }\r\n }\r\n var textEl = new ZRText({\r\n silent: AxisBuilder.isLabelSilent(angleAxisModel),\r\n style: createTextStyle(labelModel, {\r\n x: p[0],\r\n y: p[1],\r\n fill: labelModel.getTextColor()\r\n || angleAxisModel.get(['axisLine', 'lineStyle', 'color']),\r\n text: labelItem.formattedLabel,\r\n align: labelTextAlign,\r\n verticalAlign: labelTextVerticalAlign\r\n })\r\n });\r\n group.add(textEl);\r\n if (triggerEvent) {\r\n var eventData = AxisBuilder.makeAxisEventDataBase(angleAxisModel);\r\n eventData.targetType = 'axisLabel';\r\n eventData.value = labelItem.rawLabel;\r\n getECData(textEl).eventData = eventData;\r\n }\r\n }, this);\r\n },\r\n splitLine: function (group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent) {\r\n var splitLineModel = angleAxisModel.getModel('splitLine');\r\n var lineStyleModel = splitLineModel.getModel('lineStyle');\r\n var lineColors = lineStyleModel.get('color');\r\n var lineCount = 0;\r\n lineColors = lineColors instanceof Array ? lineColors : [lineColors];\r\n var splitLines = [];\r\n for (var i = 0; i < ticksAngles.length; i++) {\r\n var colorIndex = (lineCount++) % lineColors.length;\r\n splitLines[colorIndex] = splitLines[colorIndex] || [];\r\n splitLines[colorIndex].push(new Line({\r\n shape: getAxisLineShape(polar, radiusExtent, ticksAngles[i].coord)\r\n }));\r\n }\r\n for (var i = 0; i < splitLines.length; i++) {\r\n group.add(mergePath$1(splitLines[i], {\r\n style: defaults({\r\n stroke: lineColors[i % lineColors.length]\r\n }, lineStyleModel.getLineStyle()),\r\n silent: true,\r\n z: angleAxisModel.get('z')\r\n }));\r\n }\r\n },\r\n minorSplitLine: function (group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent) {\r\n if (!minorTickAngles.length) {\r\n return;\r\n }\r\n var minorSplitLineModel = angleAxisModel.getModel('minorSplitLine');\r\n var lineStyleModel = minorSplitLineModel.getModel('lineStyle');\r\n var lines = [];\r\n for (var i = 0; i < minorTickAngles.length; i++) {\r\n for (var k = 0; k < minorTickAngles[i].length; k++) {\r\n lines.push(new Line({\r\n shape: getAxisLineShape(polar, radiusExtent, minorTickAngles[i][k].coord)\r\n }));\r\n }\r\n }\r\n group.add(mergePath$1(lines, {\r\n style: lineStyleModel.getLineStyle(),\r\n silent: true,\r\n z: angleAxisModel.get('z')\r\n }));\r\n },\r\n splitArea: function (group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent) {\r\n if (!ticksAngles.length) {\r\n return;\r\n }\r\n var splitAreaModel = angleAxisModel.getModel('splitArea');\r\n var areaStyleModel = splitAreaModel.getModel('areaStyle');\r\n var areaColors = areaStyleModel.get('color');\r\n var lineCount = 0;\r\n areaColors = areaColors instanceof Array ? areaColors : [areaColors];\r\n var splitAreas = [];\r\n var RADIAN = Math.PI / 180;\r\n var prevAngle = -ticksAngles[0].coord * RADIAN;\r\n var r0 = Math.min(radiusExtent[0], radiusExtent[1]);\r\n var r1 = Math.max(radiusExtent[0], radiusExtent[1]);\r\n var clockwise = angleAxisModel.get('clockwise');\r\n for (var i = 1, len = ticksAngles.length; i <= len; i++) {\r\n var coord = i === len ? ticksAngles[0].coord : ticksAngles[i].coord;\r\n var colorIndex = (lineCount++) % areaColors.length;\r\n splitAreas[colorIndex] = splitAreas[colorIndex] || [];\r\n splitAreas[colorIndex].push(new Sector({\r\n shape: {\r\n cx: polar.cx,\r\n cy: polar.cy,\r\n r0: r0,\r\n r: r1,\r\n startAngle: prevAngle,\r\n endAngle: -coord * RADIAN,\r\n clockwise: clockwise\r\n },\r\n silent: true\r\n }));\r\n prevAngle = -coord * RADIAN;\r\n }\r\n for (var i = 0; i < splitAreas.length; i++) {\r\n group.add(mergePath$1(splitAreas[i], {\r\n style: defaults({\r\n fill: areaColors[i % areaColors.length]\r\n }, areaStyleModel.getAreaStyle()),\r\n silent: true\r\n }));\r\n }\r\n }\r\n };\r\n ComponentView.registerClass(AngleAxisView);\n\n var axisBuilderAttrs$3 = [\r\n 'axisLine', 'axisTickLabel', 'axisName'\r\n ];\r\n var selfBuilderAttrs$2 = [\r\n 'splitLine', 'splitArea', 'minorSplitLine'\r\n ];\r\n var RadiusAxisView = (function (_super) {\r\n __extends(RadiusAxisView, _super);\r\n function RadiusAxisView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = RadiusAxisView.type;\r\n _this.axisPointerClass = 'PolarAxisPointer';\r\n return _this;\r\n }\r\n RadiusAxisView.prototype.render = function (radiusAxisModel, ecModel) {\r\n this.group.removeAll();\r\n if (!radiusAxisModel.get('show')) {\r\n return;\r\n }\r\n var oldAxisGroup = this._axisGroup;\r\n var newAxisGroup = this._axisGroup = new Group();\r\n this.group.add(newAxisGroup);\r\n var radiusAxis = radiusAxisModel.axis;\r\n var polar = radiusAxis.polar;\r\n var angleAxis = polar.getAngleAxis();\r\n var ticksCoords = radiusAxis.getTicksCoords();\r\n var minorTicksCoords = radiusAxis.getMinorTicksCoords();\r\n var axisAngle = angleAxis.getExtent()[0];\r\n var radiusExtent = radiusAxis.getExtent();\r\n var layout = layoutAxis(polar, radiusAxisModel, axisAngle);\r\n var axisBuilder = new AxisBuilder(radiusAxisModel, layout);\r\n each(axisBuilderAttrs$3, axisBuilder.add, axisBuilder);\r\n newAxisGroup.add(axisBuilder.getGroup());\r\n groupTransition(oldAxisGroup, newAxisGroup, radiusAxisModel);\r\n each(selfBuilderAttrs$2, function (name) {\r\n if (radiusAxisModel.get([name, 'show']) && !radiusAxis.scale.isBlank()) {\r\n axisElementBuilders$2[name](this.group, radiusAxisModel, polar, axisAngle, radiusExtent, ticksCoords, minorTicksCoords);\r\n }\r\n }, this);\r\n };\r\n RadiusAxisView.type = 'radiusAxis';\r\n return RadiusAxisView;\r\n }(AxisView));\r\n var axisElementBuilders$2 = {\r\n splitLine: function (group, radiusAxisModel, polar, axisAngle, radiusExtent, ticksCoords) {\r\n var splitLineModel = radiusAxisModel.getModel('splitLine');\r\n var lineStyleModel = splitLineModel.getModel('lineStyle');\r\n var lineColors = lineStyleModel.get('color');\r\n var lineCount = 0;\r\n lineColors = lineColors instanceof Array ? lineColors : [lineColors];\r\n var splitLines = [];\r\n for (var i = 0; i < ticksCoords.length; i++) {\r\n var colorIndex = (lineCount++) % lineColors.length;\r\n splitLines[colorIndex] = splitLines[colorIndex] || [];\r\n splitLines[colorIndex].push(new Circle({\r\n shape: {\r\n cx: polar.cx,\r\n cy: polar.cy,\r\n r: ticksCoords[i].coord\r\n }\r\n }));\r\n }\r\n for (var i = 0; i < splitLines.length; i++) {\r\n group.add(mergePath$1(splitLines[i], {\r\n style: defaults({\r\n stroke: lineColors[i % lineColors.length],\r\n fill: null\r\n }, lineStyleModel.getLineStyle()),\r\n silent: true\r\n }));\r\n }\r\n },\r\n minorSplitLine: function (group, radiusAxisModel, polar, axisAngle, radiusExtent, ticksCoords, minorTicksCoords) {\r\n if (!minorTicksCoords.length) {\r\n return;\r\n }\r\n var minorSplitLineModel = radiusAxisModel.getModel('minorSplitLine');\r\n var lineStyleModel = minorSplitLineModel.getModel('lineStyle');\r\n var lines = [];\r\n for (var i = 0; i < minorTicksCoords.length; i++) {\r\n for (var k = 0; k < minorTicksCoords[i].length; k++) {\r\n lines.push(new Circle({\r\n shape: {\r\n cx: polar.cx,\r\n cy: polar.cy,\r\n r: minorTicksCoords[i][k].coord\r\n }\r\n }));\r\n }\r\n }\r\n group.add(mergePath$1(lines, {\r\n style: defaults({\r\n fill: null\r\n }, lineStyleModel.getLineStyle()),\r\n silent: true\r\n }));\r\n },\r\n splitArea: function (group, radiusAxisModel, polar, axisAngle, radiusExtent, ticksCoords) {\r\n if (!ticksCoords.length) {\r\n return;\r\n }\r\n var splitAreaModel = radiusAxisModel.getModel('splitArea');\r\n var areaStyleModel = splitAreaModel.getModel('areaStyle');\r\n var areaColors = areaStyleModel.get('color');\r\n var lineCount = 0;\r\n areaColors = areaColors instanceof Array ? areaColors : [areaColors];\r\n var splitAreas = [];\r\n var prevRadius = ticksCoords[0].coord;\r\n for (var i = 1; i < ticksCoords.length; i++) {\r\n var colorIndex = (lineCount++) % areaColors.length;\r\n splitAreas[colorIndex] = splitAreas[colorIndex] || [];\r\n splitAreas[colorIndex].push(new Sector({\r\n shape: {\r\n cx: polar.cx,\r\n cy: polar.cy,\r\n r0: prevRadius,\r\n r: ticksCoords[i].coord,\r\n startAngle: 0,\r\n endAngle: Math.PI * 2\r\n },\r\n silent: true\r\n }));\r\n prevRadius = ticksCoords[i].coord;\r\n }\r\n for (var i = 0; i < splitAreas.length; i++) {\r\n group.add(mergePath$1(splitAreas[i], {\r\n style: defaults({\r\n fill: areaColors[i % areaColors.length]\r\n }, areaStyleModel.getAreaStyle()),\r\n silent: true\r\n }));\r\n }\r\n }\r\n };\r\n function layoutAxis(polar, radiusAxisModel, axisAngle) {\r\n return {\r\n position: [polar.cx, polar.cy],\r\n rotation: axisAngle / 180 * Math.PI,\r\n labelDirection: -1,\r\n tickDirection: -1,\r\n nameDirection: 1,\r\n labelRotate: radiusAxisModel.getModel('axisLabel').get('rotate'),\r\n z2: 1\r\n };\r\n }\r\n AxisView.registerClass(RadiusAxisView);\n\n var PolarAxisPointer = (function (_super) {\r\n __extends(PolarAxisPointer, _super);\r\n function PolarAxisPointer() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n PolarAxisPointer.prototype.makeElOption = function (elOption, value, axisModel, axisPointerModel, api) {\r\n var axis = axisModel.axis;\r\n if (axis.dim === 'angle') {\r\n this.animationThreshold = Math.PI / 18;\r\n }\r\n var polar = axis.polar;\r\n var otherAxis = polar.getOtherAxis(axis);\r\n var otherExtent = otherAxis.getExtent();\r\n var coordValue = axis.dataToCoord(value);\r\n var axisPointerType = axisPointerModel.get('type');\r\n if (axisPointerType && axisPointerType !== 'none') {\r\n var elStyle = buildElStyle(axisPointerModel);\r\n var pointerOption = pointerShapeBuilder$2[axisPointerType](axis, polar, coordValue, otherExtent);\r\n pointerOption.style = elStyle;\r\n elOption.graphicKey = pointerOption.type;\r\n elOption.pointer = pointerOption;\r\n }\r\n var labelMargin = axisPointerModel.get(['label', 'margin']);\r\n var labelPos = getLabelPosition(value, axisModel, axisPointerModel, polar, labelMargin);\r\n buildLabelElOption(elOption, axisModel, axisPointerModel, api, labelPos);\r\n };\r\n return PolarAxisPointer;\r\n }(BaseAxisPointer));\r\n function getLabelPosition(value, axisModel, axisPointerModel, polar, labelMargin) {\r\n var axis = axisModel.axis;\r\n var coord = axis.dataToCoord(value);\r\n var axisAngle = polar.getAngleAxis().getExtent()[0];\r\n axisAngle = axisAngle / 180 * Math.PI;\r\n var radiusExtent = polar.getRadiusAxis().getExtent();\r\n var position;\r\n var align;\r\n var verticalAlign;\r\n if (axis.dim === 'radius') {\r\n var transform = create$1();\r\n rotate(transform, transform, axisAngle);\r\n translate(transform, transform, [polar.cx, polar.cy]);\r\n position = applyTransform$1([coord, -labelMargin], transform);\r\n var labelRotation = axisModel.getModel('axisLabel').get('rotate') || 0;\r\n var labelLayout = AxisBuilder.innerTextLayout(axisAngle, labelRotation * Math.PI / 180, -1);\r\n align = labelLayout.textAlign;\r\n verticalAlign = labelLayout.textVerticalAlign;\r\n }\r\n else {\r\n var r = radiusExtent[1];\r\n position = polar.coordToPoint([r + labelMargin, coord]);\r\n var cx = polar.cx;\r\n var cy = polar.cy;\r\n align = Math.abs(position[0] - cx) / r < 0.3\r\n ? 'center' : (position[0] > cx ? 'left' : 'right');\r\n verticalAlign = Math.abs(position[1] - cy) / r < 0.3\r\n ? 'middle' : (position[1] > cy ? 'top' : 'bottom');\r\n }\r\n return {\r\n position: position,\r\n align: align,\r\n verticalAlign: verticalAlign\r\n };\r\n }\r\n var pointerShapeBuilder$2 = {\r\n line: function (axis, polar, coordValue, otherExtent) {\r\n return axis.dim === 'angle'\r\n ? {\r\n type: 'Line',\r\n shape: makeLineShape(polar.coordToPoint([otherExtent[0], coordValue]), polar.coordToPoint([otherExtent[1], coordValue]))\r\n }\r\n : {\r\n type: 'Circle',\r\n shape: {\r\n cx: polar.cx,\r\n cy: polar.cy,\r\n r: coordValue\r\n }\r\n };\r\n },\r\n shadow: function (axis, polar, coordValue, otherExtent) {\r\n var bandWidth = Math.max(1, axis.getBandWidth());\r\n var radian = Math.PI / 180;\r\n return axis.dim === 'angle'\r\n ? {\r\n type: 'Sector',\r\n shape: makeSectorShape(polar.cx, polar.cy, otherExtent[0], otherExtent[1], (-coordValue - bandWidth / 2) * radian, (-coordValue + bandWidth / 2) * radian)\r\n }\r\n : {\r\n type: 'Sector',\r\n shape: makeSectorShape(polar.cx, polar.cy, coordValue - bandWidth / 2, coordValue + bandWidth / 2, 0, Math.PI * 2)\r\n };\r\n }\r\n };\r\n AxisView.registerAxisPointerClass('PolarAxisPointer', PolarAxisPointer);\n\n registerLayout(curry(barLayoutPolar, 'bar'));\r\n extendComponentView({\r\n type: 'polar'\r\n });\n\n var GeoView = (function (_super) {\r\n __extends(GeoView, _super);\r\n function GeoView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = GeoView.type;\r\n return _this;\r\n }\r\n GeoView.prototype.init = function (ecModel, api) {\r\n var mapDraw = new MapDraw(api);\r\n this._mapDraw = mapDraw;\r\n this.group.add(mapDraw.group);\r\n this._api = api;\r\n };\r\n GeoView.prototype.render = function (geoModel, ecModel, api, payload) {\r\n var mapDraw = this._mapDraw;\r\n if (geoModel.get('show')) {\r\n mapDraw.draw(geoModel, ecModel, api, this, payload);\r\n }\r\n else {\r\n this._mapDraw.group.removeAll();\r\n }\r\n mapDraw.group.on('click', this._handleRegionClick, this);\r\n mapDraw.group.silent = geoModel.get('silent');\r\n this._model = geoModel;\r\n this.updateSelectStatus(geoModel, ecModel, api);\r\n };\r\n GeoView.prototype._handleRegionClick = function (e) {\r\n var current = e.target;\r\n var eventData;\r\n while (current && (eventData = getECData(current).eventData) == null) {\r\n current = current.__hostTarget || current.parent;\r\n }\r\n if (eventData) {\r\n this._api.dispatchAction({\r\n type: 'geoToggleSelect',\r\n geoId: this._model.id,\r\n name: eventData.name\r\n });\r\n }\r\n };\r\n GeoView.prototype.updateSelectStatus = function (model, ecModel, api) {\r\n var _this = this;\r\n this._mapDraw.group.traverse(function (node) {\r\n var eventData = getECData(node).eventData;\r\n if (eventData) {\r\n _this._model.isSelected(eventData.name)\r\n ? api.enterSelect(node) : api.leaveSelect(node);\r\n return true;\r\n }\r\n });\r\n };\r\n GeoView.prototype.dispose = function () {\r\n this._mapDraw && this._mapDraw.remove();\r\n };\r\n GeoView.type = 'geo';\r\n return GeoView;\r\n }(ComponentView));\r\n ComponentView.registerClass(GeoView);\n\n var GeoModel = (function (_super) {\r\n __extends(GeoModel, _super);\r\n function GeoModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = GeoModel.type;\r\n return _this;\r\n }\r\n GeoModel.prototype.init = function (option, parentModel, ecModel) {\r\n _super.prototype.init.call(this, option, parentModel, ecModel);\r\n defaultEmphasis(option, 'label', ['show']);\r\n };\r\n GeoModel.prototype.optionUpdated = function () {\r\n var option = this.option;\r\n var self = this;\r\n option.regions = geoCreator.getFilledRegions(option.regions, option.map, option.nameMap);\r\n var selectedMap = {};\r\n this._optionModelMap = reduce(option.regions || [], function (optionModelMap, regionOpt) {\r\n var regionName = regionOpt.name;\r\n if (regionName) {\r\n optionModelMap.set(regionName, new Model(regionOpt, self));\r\n if (regionOpt.selected) {\r\n selectedMap[regionName] = true;\r\n }\r\n }\r\n return optionModelMap;\r\n }, createHashMap());\r\n if (!option.selectedMap) {\r\n option.selectedMap = selectedMap;\r\n }\r\n };\r\n GeoModel.prototype.getRegionModel = function (name) {\r\n return this._optionModelMap.get(name) || new Model(null, this, this.ecModel);\r\n };\r\n GeoModel.prototype.getFormattedLabel = function (name, status) {\r\n var regionModel = this.getRegionModel(name);\r\n var formatter = status === 'normal'\r\n ? regionModel.get(['label', 'formatter'])\r\n : regionModel.get(['emphasis', 'label', 'formatter']);\r\n var params = {\r\n name: name\r\n };\r\n if (typeof formatter === 'function') {\r\n params.status = status;\r\n return formatter(params);\r\n }\r\n else if (typeof formatter === 'string') {\r\n return formatter.replace('{a}', name != null ? name : '');\r\n }\r\n };\r\n GeoModel.prototype.setZoom = function (zoom) {\r\n this.option.zoom = zoom;\r\n };\r\n GeoModel.prototype.setCenter = function (center) {\r\n this.option.center = center;\r\n };\r\n GeoModel.prototype.select = function (name) {\r\n var option = this.option;\r\n var selectedMode = option.selectedMode;\r\n if (!selectedMode) {\r\n return;\r\n }\r\n if (selectedMode !== 'multiple') {\r\n option.selectedMap = null;\r\n }\r\n var selectedMap = option.selectedMap || (option.selectedMap = {});\r\n selectedMap[name] = true;\r\n };\r\n GeoModel.prototype.unSelect = function (name) {\r\n var selectedMap = this.option.selectedMap;\r\n if (selectedMap) {\r\n selectedMap[name] = false;\r\n }\r\n };\r\n GeoModel.prototype.toggleSelected = function (name) {\r\n this[this.isSelected(name) ? 'unSelect' : 'select'](name);\r\n };\r\n GeoModel.prototype.isSelected = function (name) {\r\n var selectedMap = this.option.selectedMap;\r\n return !!(selectedMap && selectedMap[name]);\r\n };\r\n GeoModel.prototype._initSelectedMapFromData = function () {\r\n };\r\n GeoModel.type = 'geo';\r\n GeoModel.layoutMode = 'box';\r\n GeoModel.defaultOption = {\r\n zlevel: 0,\r\n z: 0,\r\n show: true,\r\n left: 'center',\r\n top: 'center',\r\n aspectScale: null,\r\n silent: false,\r\n map: '',\r\n boundingCoords: null,\r\n center: null,\r\n zoom: 1,\r\n scaleLimit: null,\r\n label: {\r\n show: false,\r\n color: '#000'\r\n },\r\n itemStyle: {\r\n borderWidth: 0.5,\r\n borderColor: '#444',\r\n color: '#eee'\r\n },\r\n emphasis: {\r\n label: {\r\n show: true,\r\n color: 'rgb(100,0,0)'\r\n },\r\n itemStyle: {\r\n color: 'rgba(255,215,0,0.8)'\r\n }\r\n },\r\n select: {\r\n label: {\r\n show: true,\r\n color: 'rgb(100,0,0)'\r\n },\r\n itemStyle: {\r\n color: 'rgba(255,215,0,0.8)'\r\n }\r\n },\r\n regions: []\r\n };\r\n return GeoModel;\r\n }(ComponentModel));\r\n ComponentModel.registerClass(GeoModel);\n\n function makeAction(method, actionInfo) {\r\n actionInfo.update = 'geo:updateSelectStatus';\r\n registerAction(actionInfo, function (payload, ecModel) {\r\n var selected = {};\r\n ecModel.eachComponent({ mainType: 'geo', query: payload }, function (geoModel) {\r\n geoModel[method](payload.name);\r\n var geo = geoModel.coordinateSystem;\r\n each(geo.regions, function (region) {\r\n selected[region.name] = geoModel.isSelected(region.name) || false;\r\n });\r\n });\r\n return {\r\n selected: selected,\r\n name: payload.name\r\n };\r\n });\r\n }\r\n makeAction('toggleSelected', {\r\n type: 'geoToggleSelect',\r\n event: 'geoselectchanged'\r\n });\r\n makeAction('select', {\r\n type: 'geoSelect',\r\n event: 'geoselected'\r\n });\r\n makeAction('unSelect', {\r\n type: 'geoUnSelect',\r\n event: 'geounselected'\r\n });\n\n var PROXIMATE_ONE_DAY = 86400000;\r\n var Calendar = (function () {\r\n function Calendar(calendarModel, ecModel, api) {\r\n this.type = 'calendar';\r\n this.dimensions = Calendar.dimensions;\r\n this.getDimensionsInfo = Calendar.getDimensionsInfo;\r\n this._model = calendarModel;\r\n }\r\n Calendar.getDimensionsInfo = function () {\r\n return [{\r\n name: 'time', type: 'time'\r\n }, 'value'];\r\n };\r\n Calendar.prototype.getRangeInfo = function () {\r\n return this._rangeInfo;\r\n };\r\n Calendar.prototype.getModel = function () {\r\n return this._model;\r\n };\r\n Calendar.prototype.getRect = function () {\r\n return this._rect;\r\n };\r\n Calendar.prototype.getCellWidth = function () {\r\n return this._sw;\r\n };\r\n Calendar.prototype.getCellHeight = function () {\r\n return this._sh;\r\n };\r\n Calendar.prototype.getOrient = function () {\r\n return this._orient;\r\n };\r\n Calendar.prototype.getFirstDayOfWeek = function () {\r\n return this._firstDayOfWeek;\r\n };\r\n Calendar.prototype.getDateInfo = function (date) {\r\n date = parseDate(date);\r\n var y = date.getFullYear();\r\n var m = date.getMonth() + 1;\r\n var mStr = m < 10 ? '0' + m : '' + m;\r\n var d = date.getDate();\r\n var dStr = d < 10 ? '0' + d : '' + d;\r\n var day = date.getDay();\r\n day = Math.abs((day + 7 - this.getFirstDayOfWeek()) % 7);\r\n return {\r\n y: y + '',\r\n m: mStr,\r\n d: dStr,\r\n day: day,\r\n time: date.getTime(),\r\n formatedDate: y + '-' + mStr + '-' + dStr,\r\n date: date\r\n };\r\n };\r\n Calendar.prototype.getNextNDay = function (date, n) {\r\n n = n || 0;\r\n if (n === 0) {\r\n return this.getDateInfo(date);\r\n }\r\n date = new Date(this.getDateInfo(date).time);\r\n date.setDate(date.getDate() + n);\r\n return this.getDateInfo(date);\r\n };\r\n Calendar.prototype.update = function (ecModel, api) {\r\n this._firstDayOfWeek = +this._model.getModel('dayLabel').get('firstDay');\r\n this._orient = this._model.get('orient');\r\n this._lineWidth = this._model.getModel('itemStyle').getItemStyle().lineWidth || 0;\r\n this._rangeInfo = this._getRangeInfo(this._initRangeOption());\r\n var weeks = this._rangeInfo.weeks || 1;\r\n var whNames = ['width', 'height'];\r\n var cellSize = this._model.getCellSize().slice();\r\n var layoutParams = this._model.getBoxLayoutParams();\r\n var cellNumbers = this._orient === 'horizontal' ? [weeks, 7] : [7, weeks];\r\n each([0, 1], function (idx) {\r\n if (cellSizeSpecified(cellSize, idx)) {\r\n layoutParams[whNames[idx]] = cellSize[idx] * cellNumbers[idx];\r\n }\r\n });\r\n var whGlobal = {\r\n width: api.getWidth(),\r\n height: api.getHeight()\r\n };\r\n var calendarRect = this._rect = getLayoutRect(layoutParams, whGlobal);\r\n each([0, 1], function (idx) {\r\n if (!cellSizeSpecified(cellSize, idx)) {\r\n cellSize[idx] = calendarRect[whNames[idx]] / cellNumbers[idx];\r\n }\r\n });\r\n function cellSizeSpecified(cellSize, idx) {\r\n return cellSize[idx] != null && cellSize[idx] !== 'auto';\r\n }\r\n this._sw = cellSize[0];\r\n this._sh = cellSize[1];\r\n };\r\n Calendar.prototype.dataToPoint = function (data, clamp) {\r\n isArray(data) && (data = data[0]);\r\n clamp == null && (clamp = true);\r\n var dayInfo = this.getDateInfo(data);\r\n var range = this._rangeInfo;\r\n var date = dayInfo.formatedDate;\r\n if (clamp && !(dayInfo.time >= range.start.time\r\n && dayInfo.time < range.end.time + PROXIMATE_ONE_DAY)) {\r\n return [NaN, NaN];\r\n }\r\n var week = dayInfo.day;\r\n var nthWeek = this._getRangeInfo([range.start.time, date]).nthWeek;\r\n if (this._orient === 'vertical') {\r\n return [\r\n this._rect.x + week * this._sw + this._sw / 2,\r\n this._rect.y + nthWeek * this._sh + this._sh / 2\r\n ];\r\n }\r\n return [\r\n this._rect.x + nthWeek * this._sw + this._sw / 2,\r\n this._rect.y + week * this._sh + this._sh / 2\r\n ];\r\n };\r\n Calendar.prototype.pointToData = function (point) {\r\n var date = this.pointToDate(point);\r\n return date && date.time;\r\n };\r\n Calendar.prototype.dataToRect = function (data, clamp) {\r\n var point = this.dataToPoint(data, clamp);\r\n return {\r\n contentShape: {\r\n x: point[0] - (this._sw - this._lineWidth) / 2,\r\n y: point[1] - (this._sh - this._lineWidth) / 2,\r\n width: this._sw - this._lineWidth,\r\n height: this._sh - this._lineWidth\r\n },\r\n center: point,\r\n tl: [\r\n point[0] - this._sw / 2,\r\n point[1] - this._sh / 2\r\n ],\r\n tr: [\r\n point[0] + this._sw / 2,\r\n point[1] - this._sh / 2\r\n ],\r\n br: [\r\n point[0] + this._sw / 2,\r\n point[1] + this._sh / 2\r\n ],\r\n bl: [\r\n point[0] - this._sw / 2,\r\n point[1] + this._sh / 2\r\n ]\r\n };\r\n };\r\n Calendar.prototype.pointToDate = function (point) {\r\n var nthX = Math.floor((point[0] - this._rect.x) / this._sw) + 1;\r\n var nthY = Math.floor((point[1] - this._rect.y) / this._sh) + 1;\r\n var range = this._rangeInfo.range;\r\n if (this._orient === 'vertical') {\r\n return this._getDateByWeeksAndDay(nthY, nthX - 1, range);\r\n }\r\n return this._getDateByWeeksAndDay(nthX, nthY - 1, range);\r\n };\r\n Calendar.prototype.convertToPixel = function (ecModel, finder, value) {\r\n var coordSys = getCoordSys$4(finder);\r\n return coordSys === this ? coordSys.dataToPoint(value) : null;\r\n };\r\n Calendar.prototype.convertFromPixel = function (ecModel, finder, pixel) {\r\n var coordSys = getCoordSys$4(finder);\r\n return coordSys === this ? coordSys.pointToData(pixel) : null;\r\n };\r\n Calendar.prototype.containPoint = function (point) {\r\n console.warn('Not implemented.');\r\n return false;\r\n };\r\n Calendar.prototype._initRangeOption = function () {\r\n var range = this._model.get('range');\r\n var normalizedRange;\r\n if (isArray(range) && range.length === 1) {\r\n range = range[0];\r\n }\r\n if (!isArray(range)) {\r\n var rangeStr = range.toString();\r\n if (/^\\d{4}$/.test(rangeStr)) {\r\n normalizedRange = [rangeStr + '-01-01', rangeStr + '-12-31'];\r\n }\r\n if (/^\\d{4}[\\/|-]\\d{1,2}$/.test(rangeStr)) {\r\n var start = this.getDateInfo(rangeStr);\r\n var firstDay = start.date;\r\n firstDay.setMonth(firstDay.getMonth() + 1);\r\n var end = this.getNextNDay(firstDay, -1);\r\n normalizedRange = [start.formatedDate, end.formatedDate];\r\n }\r\n if (/^\\d{4}[\\/|-]\\d{1,2}[\\/|-]\\d{1,2}$/.test(rangeStr)) {\r\n normalizedRange = [rangeStr, rangeStr];\r\n }\r\n }\r\n else {\r\n normalizedRange = range;\r\n }\r\n if (!normalizedRange) {\r\n if (__DEV__) {\r\n logError('Invalid date range.');\r\n }\r\n return range;\r\n }\r\n var tmp = this._getRangeInfo(normalizedRange);\r\n if (tmp.start.time > tmp.end.time) {\r\n normalizedRange.reverse();\r\n }\r\n return normalizedRange;\r\n };\r\n Calendar.prototype._getRangeInfo = function (range) {\r\n var parsedRange = [\r\n this.getDateInfo(range[0]),\r\n this.getDateInfo(range[1])\r\n ];\r\n var reversed;\r\n if (parsedRange[0].time > parsedRange[1].time) {\r\n reversed = true;\r\n parsedRange.reverse();\r\n }\r\n var allDay = Math.floor(parsedRange[1].time / PROXIMATE_ONE_DAY)\r\n - Math.floor(parsedRange[0].time / PROXIMATE_ONE_DAY) + 1;\r\n var date = new Date(parsedRange[0].time);\r\n var startDateNum = date.getDate();\r\n var endDateNum = parsedRange[1].date.getDate();\r\n date.setDate(startDateNum + allDay - 1);\r\n var dateNum = date.getDate();\r\n if (dateNum !== endDateNum) {\r\n var sign = date.getTime() - parsedRange[1].time > 0 ? 1 : -1;\r\n while ((dateNum = date.getDate()) !== endDateNum\r\n && (date.getTime() - parsedRange[1].time) * sign > 0) {\r\n allDay -= sign;\r\n date.setDate(dateNum - sign);\r\n }\r\n }\r\n var weeks = Math.floor((allDay + parsedRange[0].day + 6) / 7);\r\n var nthWeek = reversed ? -weeks + 1 : weeks - 1;\r\n reversed && parsedRange.reverse();\r\n return {\r\n range: [parsedRange[0].formatedDate, parsedRange[1].formatedDate],\r\n start: parsedRange[0],\r\n end: parsedRange[1],\r\n allDay: allDay,\r\n weeks: weeks,\r\n nthWeek: nthWeek,\r\n fweek: parsedRange[0].day,\r\n lweek: parsedRange[1].day\r\n };\r\n };\r\n Calendar.prototype._getDateByWeeksAndDay = function (nthWeek, day, range) {\r\n var rangeInfo = this._getRangeInfo(range);\r\n if (nthWeek > rangeInfo.weeks\r\n || (nthWeek === 0 && day < rangeInfo.fweek)\r\n || (nthWeek === rangeInfo.weeks && day > rangeInfo.lweek)) {\r\n return null;\r\n }\r\n var nthDay = (nthWeek - 1) * 7 - rangeInfo.fweek + day;\r\n var date = new Date(rangeInfo.start.time);\r\n date.setDate(+rangeInfo.start.d + nthDay);\r\n return this.getDateInfo(date);\r\n };\r\n Calendar.create = function (ecModel, api) {\r\n var calendarList = [];\r\n ecModel.eachComponent('calendar', function (calendarModel) {\r\n var calendar = new Calendar(calendarModel, ecModel, api);\r\n calendarList.push(calendar);\r\n calendarModel.coordinateSystem = calendar;\r\n });\r\n ecModel.eachSeries(function (calendarSeries) {\r\n if (calendarSeries.get('coordinateSystem') === 'calendar') {\r\n calendarSeries.coordinateSystem = calendarList[calendarSeries.get('calendarIndex') || 0];\r\n }\r\n });\r\n return calendarList;\r\n };\r\n Calendar.dimensions = ['time', 'value'];\r\n return Calendar;\r\n }());\r\n function getCoordSys$4(finder) {\r\n var calendarModel = finder.calendarModel;\r\n var seriesModel = finder.seriesModel;\r\n var coordSys = calendarModel\r\n ? calendarModel.coordinateSystem\r\n : seriesModel\r\n ? seriesModel.coordinateSystem\r\n : null;\r\n return coordSys;\r\n }\r\n CoordinateSystemManager.register('calendar', Calendar);\n\n var CalendarModel = (function (_super) {\r\n __extends(CalendarModel, _super);\r\n function CalendarModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = CalendarModel.type;\r\n return _this;\r\n }\r\n CalendarModel.prototype.init = function (option, parentModel, ecModel) {\r\n var inputPositionParams = getLayoutParams(option);\r\n _super.prototype.init.apply(this, arguments);\r\n mergeAndNormalizeLayoutParams(option, inputPositionParams);\r\n };\r\n CalendarModel.prototype.mergeOption = function (option) {\r\n _super.prototype.mergeOption.apply(this, arguments);\r\n mergeAndNormalizeLayoutParams(this.option, option);\r\n };\r\n CalendarModel.prototype.getCellSize = function () {\r\n return this.option.cellSize;\r\n };\r\n CalendarModel.type = 'calendar';\r\n CalendarModel.defaultOption = {\r\n zlevel: 0,\r\n z: 2,\r\n left: 80,\r\n top: 60,\r\n cellSize: 20,\r\n orient: 'horizontal',\r\n splitLine: {\r\n show: true,\r\n lineStyle: {\r\n color: '#000',\r\n width: 1,\r\n type: 'solid'\r\n }\r\n },\r\n itemStyle: {\r\n color: '#fff',\r\n borderWidth: 1,\r\n borderColor: '#ccc'\r\n },\r\n dayLabel: {\r\n show: true,\r\n firstDay: 0,\r\n position: 'start',\r\n margin: '50%',\r\n nameMap: 'en',\r\n color: '#000'\r\n },\r\n monthLabel: {\r\n show: true,\r\n position: 'start',\r\n margin: 5,\r\n align: 'center',\r\n nameMap: 'en',\r\n formatter: null,\r\n color: '#000'\r\n },\r\n yearLabel: {\r\n show: true,\r\n position: null,\r\n margin: 30,\r\n formatter: null,\r\n color: '#ccc',\r\n fontFamily: 'sans-serif',\r\n fontWeight: 'bolder',\r\n fontSize: 20\r\n }\r\n };\r\n return CalendarModel;\r\n }(ComponentModel));\r\n function mergeAndNormalizeLayoutParams(target, raw) {\r\n var cellSize = target.cellSize;\r\n var cellSizeArr;\r\n if (!isArray(cellSize)) {\r\n cellSizeArr = target.cellSize = [cellSize, cellSize];\r\n }\r\n else {\r\n cellSizeArr = cellSize;\r\n }\r\n if (cellSizeArr.length === 1) {\r\n cellSizeArr[1] = cellSizeArr[0];\r\n }\r\n var ignoreSize = map([0, 1], function (hvIdx) {\r\n if (sizeCalculable(raw, hvIdx)) {\r\n cellSizeArr[hvIdx] = 'auto';\r\n }\r\n return cellSizeArr[hvIdx] != null && cellSizeArr[hvIdx] !== 'auto';\r\n });\r\n mergeLayoutParam(target, raw, {\r\n type: 'box', ignoreSize: ignoreSize\r\n });\r\n }\r\n ComponentModel.registerClass(CalendarModel);\n\n var MONTH_TEXT = {\r\n EN: [\r\n 'Jan', 'Feb', 'Mar',\r\n 'Apr', 'May', 'Jun',\r\n 'Jul', 'Aug', 'Sep',\r\n 'Oct', 'Nov', 'Dec'\r\n ],\r\n CN: [\r\n '一月', '二月', '三月',\r\n '四月', '五月', '六月',\r\n '七月', '八月', '九月',\r\n '十月', '十一月', '十二月'\r\n ]\r\n };\r\n var WEEK_TEXT = {\r\n EN: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\r\n CN: ['日', '一', '二', '三', '四', '五', '六']\r\n };\r\n var CalendarView = (function (_super) {\r\n __extends(CalendarView, _super);\r\n function CalendarView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = CalendarView.type;\r\n return _this;\r\n }\r\n CalendarView.prototype.render = function (calendarModel, ecModel, api) {\r\n var group = this.group;\r\n group.removeAll();\r\n var coordSys = calendarModel.coordinateSystem;\r\n var rangeData = coordSys.getRangeInfo();\r\n var orient = coordSys.getOrient();\r\n this._renderDayRect(calendarModel, rangeData, group);\r\n this._renderLines(calendarModel, rangeData, orient, group);\r\n this._renderYearText(calendarModel, rangeData, orient, group);\r\n this._renderMonthText(calendarModel, orient, group);\r\n this._renderWeekText(calendarModel, rangeData, orient, group);\r\n };\r\n CalendarView.prototype._renderDayRect = function (calendarModel, rangeData, group) {\r\n var coordSys = calendarModel.coordinateSystem;\r\n var itemRectStyleModel = calendarModel.getModel('itemStyle').getItemStyle();\r\n var sw = coordSys.getCellWidth();\r\n var sh = coordSys.getCellHeight();\r\n for (var i = rangeData.start.time; i <= rangeData.end.time; i = coordSys.getNextNDay(i, 1).time) {\r\n var point = coordSys.dataToRect([i], false).tl;\r\n var rect = new Rect({\r\n shape: {\r\n x: point[0],\r\n y: point[1],\r\n width: sw,\r\n height: sh\r\n },\r\n cursor: 'default',\r\n style: itemRectStyleModel\r\n });\r\n group.add(rect);\r\n }\r\n };\r\n CalendarView.prototype._renderLines = function (calendarModel, rangeData, orient, group) {\r\n var self = this;\r\n var coordSys = calendarModel.coordinateSystem;\r\n var lineStyleModel = calendarModel.getModel(['splitLine', 'lineStyle']).getLineStyle();\r\n var show = calendarModel.get(['splitLine', 'show']);\r\n var lineWidth = lineStyleModel.lineWidth;\r\n this._tlpoints = [];\r\n this._blpoints = [];\r\n this._firstDayOfMonth = [];\r\n this._firstDayPoints = [];\r\n var firstDay = rangeData.start;\r\n for (var i = 0; firstDay.time <= rangeData.end.time; i++) {\r\n addPoints(firstDay.formatedDate);\r\n if (i === 0) {\r\n firstDay = coordSys.getDateInfo(rangeData.start.y + '-' + rangeData.start.m);\r\n }\r\n var date = firstDay.date;\r\n date.setMonth(date.getMonth() + 1);\r\n firstDay = coordSys.getDateInfo(date);\r\n }\r\n addPoints(coordSys.getNextNDay(rangeData.end.time, 1).formatedDate);\r\n function addPoints(date) {\r\n self._firstDayOfMonth.push(coordSys.getDateInfo(date));\r\n self._firstDayPoints.push(coordSys.dataToRect([date], false).tl);\r\n var points = self._getLinePointsOfOneWeek(calendarModel, date, orient);\r\n self._tlpoints.push(points[0]);\r\n self._blpoints.push(points[points.length - 1]);\r\n show && self._drawSplitline(points, lineStyleModel, group);\r\n }\r\n show && this._drawSplitline(self._getEdgesPoints(self._tlpoints, lineWidth, orient), lineStyleModel, group);\r\n show && this._drawSplitline(self._getEdgesPoints(self._blpoints, lineWidth, orient), lineStyleModel, group);\r\n };\r\n CalendarView.prototype._getEdgesPoints = function (points, lineWidth, orient) {\r\n var rs = [points[0].slice(), points[points.length - 1].slice()];\r\n var idx = orient === 'horizontal' ? 0 : 1;\r\n rs[0][idx] = rs[0][idx] - lineWidth / 2;\r\n rs[1][idx] = rs[1][idx] + lineWidth / 2;\r\n return rs;\r\n };\r\n CalendarView.prototype._drawSplitline = function (points, lineStyle, group) {\r\n var poyline = new Polyline({\r\n z2: 20,\r\n shape: {\r\n points: points\r\n },\r\n style: lineStyle\r\n });\r\n group.add(poyline);\r\n };\r\n CalendarView.prototype._getLinePointsOfOneWeek = function (calendarModel, date, orient) {\r\n var coordSys = calendarModel.coordinateSystem;\r\n var parsedDate = coordSys.getDateInfo(date);\r\n var points = [];\r\n for (var i = 0; i < 7; i++) {\r\n var tmpD = coordSys.getNextNDay(parsedDate.time, i);\r\n var point = coordSys.dataToRect([tmpD.time], false);\r\n points[2 * tmpD.day] = point.tl;\r\n points[2 * tmpD.day + 1] = point[orient === 'horizontal' ? 'bl' : 'tr'];\r\n }\r\n return points;\r\n };\r\n CalendarView.prototype._formatterLabel = function (formatter, params) {\r\n if (typeof formatter === 'string' && formatter) {\r\n return formatTplSimple(formatter, params);\r\n }\r\n if (typeof formatter === 'function') {\r\n return formatter(params);\r\n }\r\n return params.nameMap;\r\n };\r\n CalendarView.prototype._yearTextPositionControl = function (textEl, point, orient, position, margin) {\r\n var x = point[0];\r\n var y = point[1];\r\n var aligns = ['center', 'bottom'];\r\n if (position === 'bottom') {\r\n y += margin;\r\n aligns = ['center', 'top'];\r\n }\r\n else if (position === 'left') {\r\n x -= margin;\r\n }\r\n else if (position === 'right') {\r\n x += margin;\r\n aligns = ['center', 'top'];\r\n }\r\n else {\r\n y -= margin;\r\n }\r\n var rotate = 0;\r\n if (position === 'left' || position === 'right') {\r\n rotate = Math.PI / 2;\r\n }\r\n return {\r\n rotation: rotate,\r\n x: x,\r\n y: y,\r\n style: {\r\n align: aligns[0],\r\n verticalAlign: aligns[1]\r\n }\r\n };\r\n };\r\n CalendarView.prototype._renderYearText = function (calendarModel, rangeData, orient, group) {\r\n var yearLabel = calendarModel.getModel('yearLabel');\r\n if (!yearLabel.get('show')) {\r\n return;\r\n }\r\n var margin = yearLabel.get('margin');\r\n var pos = yearLabel.get('position');\r\n if (!pos) {\r\n pos = orient !== 'horizontal' ? 'top' : 'left';\r\n }\r\n var points = [this._tlpoints[this._tlpoints.length - 1], this._blpoints[0]];\r\n var xc = (points[0][0] + points[1][0]) / 2;\r\n var yc = (points[0][1] + points[1][1]) / 2;\r\n var idx = orient === 'horizontal' ? 0 : 1;\r\n var posPoints = {\r\n top: [xc, points[idx][1]],\r\n bottom: [xc, points[1 - idx][1]],\r\n left: [points[1 - idx][0], yc],\r\n right: [points[idx][0], yc]\r\n };\r\n var name = rangeData.start.y;\r\n if (+rangeData.end.y > +rangeData.start.y) {\r\n name = name + '-' + rangeData.end.y;\r\n }\r\n var formatter = yearLabel.get('formatter');\r\n var params = {\r\n start: rangeData.start.y,\r\n end: rangeData.end.y,\r\n nameMap: name\r\n };\r\n var content = this._formatterLabel(formatter, params);\r\n var yearText = new ZRText({\r\n z2: 30,\r\n style: createTextStyle(yearLabel, {\r\n text: content\r\n })\r\n });\r\n yearText.attr(this._yearTextPositionControl(yearText, posPoints[pos], orient, pos, margin));\r\n group.add(yearText);\r\n };\r\n CalendarView.prototype._monthTextPositionControl = function (point, isCenter, orient, position, margin) {\r\n var align = 'left';\r\n var vAlign = 'top';\r\n var x = point[0];\r\n var y = point[1];\r\n if (orient === 'horizontal') {\r\n y = y + margin;\r\n if (isCenter) {\r\n align = 'center';\r\n }\r\n if (position === 'start') {\r\n vAlign = 'bottom';\r\n }\r\n }\r\n else {\r\n x = x + margin;\r\n if (isCenter) {\r\n vAlign = 'middle';\r\n }\r\n if (position === 'start') {\r\n align = 'right';\r\n }\r\n }\r\n return {\r\n x: x,\r\n y: y,\r\n align: align,\r\n verticalAlign: vAlign\r\n };\r\n };\r\n CalendarView.prototype._renderMonthText = function (calendarModel, orient, group) {\r\n var monthLabel = calendarModel.getModel('monthLabel');\r\n if (!monthLabel.get('show')) {\r\n return;\r\n }\r\n var nameMap = monthLabel.get('nameMap');\r\n var margin = monthLabel.get('margin');\r\n var pos = monthLabel.get('position');\r\n var align = monthLabel.get('align');\r\n var termPoints = [this._tlpoints, this._blpoints];\r\n if (isString(nameMap)) {\r\n nameMap = MONTH_TEXT[nameMap.toUpperCase()] || [];\r\n }\r\n var idx = pos === 'start' ? 0 : 1;\r\n var axis = orient === 'horizontal' ? 0 : 1;\r\n margin = pos === 'start' ? -margin : margin;\r\n var isCenter = (align === 'center');\r\n for (var i = 0; i < termPoints[idx].length - 1; i++) {\r\n var tmp = termPoints[idx][i].slice();\r\n var firstDay = this._firstDayOfMonth[i];\r\n if (isCenter) {\r\n var firstDayPoints = this._firstDayPoints[i];\r\n tmp[axis] = (firstDayPoints[axis] + termPoints[0][i + 1][axis]) / 2;\r\n }\r\n var formatter = monthLabel.get('formatter');\r\n var name_1 = nameMap[+firstDay.m - 1];\r\n var params = {\r\n yyyy: firstDay.y,\r\n yy: (firstDay.y + '').slice(2),\r\n MM: firstDay.m,\r\n M: +firstDay.m,\r\n nameMap: name_1\r\n };\r\n var content = this._formatterLabel(formatter, params);\r\n var monthText = new ZRText({\r\n z2: 30,\r\n style: extend(createTextStyle(monthLabel, { text: content }), this._monthTextPositionControl(tmp, isCenter, orient, pos, margin))\r\n });\r\n group.add(monthText);\r\n }\r\n };\r\n CalendarView.prototype._weekTextPositionControl = function (point, orient, position, margin, cellSize) {\r\n var align = 'center';\r\n var vAlign = 'middle';\r\n var x = point[0];\r\n var y = point[1];\r\n var isStart = position === 'start';\r\n if (orient === 'horizontal') {\r\n x = x + margin + (isStart ? 1 : -1) * cellSize[0] / 2;\r\n align = isStart ? 'right' : 'left';\r\n }\r\n else {\r\n y = y + margin + (isStart ? 1 : -1) * cellSize[1] / 2;\r\n vAlign = isStart ? 'bottom' : 'top';\r\n }\r\n return {\r\n x: x,\r\n y: y,\r\n align: align,\r\n verticalAlign: vAlign\r\n };\r\n };\r\n CalendarView.prototype._renderWeekText = function (calendarModel, rangeData, orient, group) {\r\n var dayLabel = calendarModel.getModel('dayLabel');\r\n if (!dayLabel.get('show')) {\r\n return;\r\n }\r\n var coordSys = calendarModel.coordinateSystem;\r\n var pos = dayLabel.get('position');\r\n var nameMap = dayLabel.get('nameMap');\r\n var margin = dayLabel.get('margin');\r\n var firstDayOfWeek = coordSys.getFirstDayOfWeek();\r\n if (isString(nameMap)) {\r\n nameMap = WEEK_TEXT[nameMap.toUpperCase()] || [];\r\n }\r\n var start = coordSys.getNextNDay(rangeData.end.time, (7 - rangeData.lweek)).time;\r\n var cellSize = [coordSys.getCellWidth(), coordSys.getCellHeight()];\r\n margin = parsePercent$2(margin, cellSize[orient === 'horizontal' ? 0 : 1]);\r\n if (pos === 'start') {\r\n start = coordSys.getNextNDay(rangeData.start.time, -(7 + rangeData.fweek)).time;\r\n margin = -margin;\r\n }\r\n for (var i = 0; i < 7; i++) {\r\n var tmpD = coordSys.getNextNDay(start, i);\r\n var point = coordSys.dataToRect([tmpD.time], false).center;\r\n var day = i;\r\n day = Math.abs((i + firstDayOfWeek) % 7);\r\n var weekText = new ZRText({\r\n z2: 30,\r\n style: extend(createTextStyle(dayLabel, { text: nameMap[day] }), this._weekTextPositionControl(point, orient, pos, margin, cellSize))\r\n });\r\n group.add(weekText);\r\n }\r\n };\r\n CalendarView.type = 'calendar';\r\n return CalendarView;\r\n }(ComponentView));\r\n ComponentView.registerClass(CalendarView);\n\n var inner$g = makeInner();\r\n var _nonShapeGraphicElements = {\r\n path: null,\r\n compoundPath: null,\r\n group: Group,\r\n image: ZRImage,\r\n text: ZRText\r\n };\r\n registerPreprocessor(function (option) {\r\n var graphicOption = option.graphic;\r\n if (isArray(graphicOption)) {\r\n if (!graphicOption[0] || !graphicOption[0].elements) {\r\n option.graphic = [{ elements: graphicOption }];\r\n }\r\n else {\r\n option.graphic = [option.graphic[0]];\r\n }\r\n }\r\n else if (graphicOption && !graphicOption.elements) {\r\n option.graphic = [{ elements: [graphicOption] }];\r\n }\r\n });\r\n var GraphicComponentModel = (function (_super) {\r\n __extends(GraphicComponentModel, _super);\r\n function GraphicComponentModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = GraphicComponentModel.type;\r\n return _this;\r\n }\r\n GraphicComponentModel.prototype.mergeOption = function (option, ecModel) {\r\n var elements = this.option.elements;\r\n this.option.elements = null;\r\n _super.prototype.mergeOption.call(this, option, ecModel);\r\n this.option.elements = elements;\r\n };\r\n GraphicComponentModel.prototype.optionUpdated = function (newOption, isInit) {\r\n var thisOption = this.option;\r\n var newList = (isInit ? thisOption : newOption).elements;\r\n var existList = thisOption.elements = isInit ? [] : thisOption.elements;\r\n var flattenedList = [];\r\n this._flatten(newList, flattenedList, null);\r\n var mappingResult = mappingToExists(existList, flattenedList, 'normalMerge');\r\n var elOptionsToUpdate = this._elOptionsToUpdate = [];\r\n each(mappingResult, function (resultItem, index) {\r\n var newElOption = resultItem.newOption;\r\n if (__DEV__) {\r\n assert(isObject(newElOption) || resultItem.existing, 'Empty graphic option definition');\r\n }\r\n if (!newElOption) {\r\n return;\r\n }\r\n elOptionsToUpdate.push(newElOption);\r\n setKeyInfoToNewElOption(resultItem, newElOption);\r\n mergeNewElOptionToExist(existList, index, newElOption);\r\n setLayoutInfoToExist(existList[index], newElOption);\r\n }, this);\r\n for (var i = existList.length - 1; i >= 0; i--) {\r\n if (existList[i] == null) {\r\n existList.splice(i, 1);\r\n }\r\n else {\r\n delete existList[i].$action;\r\n }\r\n }\r\n };\r\n GraphicComponentModel.prototype._flatten = function (optionList, result, parentOption) {\r\n each(optionList, function (option) {\r\n if (!option) {\r\n return;\r\n }\r\n if (parentOption) {\r\n option.parentOption = parentOption;\r\n }\r\n result.push(option);\r\n var children = option.children;\r\n if (option.type === 'group' && children) {\r\n this._flatten(children, result, option);\r\n }\r\n delete option.children;\r\n }, this);\r\n };\r\n GraphicComponentModel.prototype.useElOptionsToUpdate = function () {\r\n var els = this._elOptionsToUpdate;\r\n this._elOptionsToUpdate = null;\r\n return els;\r\n };\r\n GraphicComponentModel.type = 'graphic';\r\n GraphicComponentModel.defaultOption = {\r\n elements: []\r\n };\r\n return GraphicComponentModel;\r\n }(ComponentModel));\r\n ComponentModel.registerClass(GraphicComponentModel);\r\n var GraphicComponentView = (function (_super) {\r\n __extends(GraphicComponentView, _super);\r\n function GraphicComponentView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = GraphicComponentView.type;\r\n return _this;\r\n }\r\n GraphicComponentView.prototype.init = function () {\r\n this._elMap = createHashMap();\r\n };\r\n GraphicComponentView.prototype.render = function (graphicModel, ecModel, api) {\r\n if (graphicModel !== this._lastGraphicModel) {\r\n this._clear();\r\n }\r\n this._lastGraphicModel = graphicModel;\r\n this._updateElements(graphicModel);\r\n this._relocate(graphicModel, api);\r\n };\r\n GraphicComponentView.prototype._updateElements = function (graphicModel) {\r\n var elOptionsToUpdate = graphicModel.useElOptionsToUpdate();\r\n if (!elOptionsToUpdate) {\r\n return;\r\n }\r\n var elMap = this._elMap;\r\n var rootGroup = this.group;\r\n each(elOptionsToUpdate, function (elOption) {\r\n var id = convertOptionIdName(elOption.id, null);\r\n var elExisting = id != null ? elMap.get(id) : null;\r\n var parentId = convertOptionIdName(elOption.parentId, null);\r\n var targetElParent = (parentId != null ? elMap.get(parentId) : rootGroup);\r\n var elType = elOption.type;\r\n var elOptionStyle = elOption.style;\r\n if (elType === 'text' && elOptionStyle) {\r\n if (elOption.hv && elOption.hv[1]) {\r\n elOptionStyle.textVerticalAlign =\r\n elOptionStyle.textBaseline =\r\n elOptionStyle.verticalAlign =\r\n elOptionStyle.align = null;\r\n }\r\n }\r\n var textContentOption = elOption.textContent;\r\n var textConfig = elOption.textConfig;\r\n if (elOptionStyle\r\n && isEC4CompatibleStyle(elOptionStyle, elType, !!textConfig, !!textContentOption)) {\r\n var convertResult = convertFromEC4CompatibleStyle(elOptionStyle, elType, true);\r\n if (!textConfig && convertResult.textConfig) {\r\n textConfig = elOption.textConfig = convertResult.textConfig;\r\n }\r\n if (!textContentOption && convertResult.textContent) {\r\n textContentOption = convertResult.textContent;\r\n }\r\n }\r\n var elOptionCleaned = getCleanedElOption(elOption);\r\n if (__DEV__) {\r\n elExisting && assert(targetElParent === elExisting.parent, 'Changing parent is not supported.');\r\n }\r\n var $action = elOption.$action || 'merge';\r\n if ($action === 'merge') {\r\n elExisting\r\n ? elExisting.attr(elOptionCleaned)\r\n : createEl$1(id, targetElParent, elOptionCleaned, elMap);\r\n }\r\n else if ($action === 'replace') {\r\n removeEl(elExisting, elMap);\r\n createEl$1(id, targetElParent, elOptionCleaned, elMap);\r\n }\r\n else if ($action === 'remove') {\r\n removeEl(elExisting, elMap);\r\n }\r\n var el = elMap.get(id);\r\n if (el && textContentOption) {\r\n if ($action === 'merge') {\r\n var textContentExisting = el.getTextContent();\r\n textContentExisting\r\n ? textContentExisting.attr(textContentOption)\r\n : el.setTextContent(new ZRText(textContentOption));\r\n }\r\n else if ($action === 'replace') {\r\n el.setTextContent(new ZRText(textContentOption));\r\n }\r\n }\r\n if (el) {\r\n var elInner = inner$g(el);\r\n elInner.__ecGraphicWidthOption = elOption.width;\r\n elInner.__ecGraphicHeightOption = elOption.height;\r\n setEventData(el, graphicModel, elOption);\r\n }\r\n });\r\n };\r\n GraphicComponentView.prototype._relocate = function (graphicModel, api) {\r\n var elOptions = graphicModel.option.elements;\r\n var rootGroup = this.group;\r\n var elMap = this._elMap;\r\n var apiWidth = api.getWidth();\r\n var apiHeight = api.getHeight();\r\n for (var i = 0; i < elOptions.length; i++) {\r\n var elOption = elOptions[i];\r\n var id = convertOptionIdName(elOption.id, null);\r\n var el = id != null ? elMap.get(id) : null;\r\n if (!el || !el.isGroup) {\r\n continue;\r\n }\r\n var parentEl = el.parent;\r\n var isParentRoot = parentEl === rootGroup;\r\n var elInner = inner$g(el);\r\n var parentElInner = inner$g(parentEl);\r\n elInner.__ecGraphicWidth = parsePercent$2(elInner.__ecGraphicWidthOption, isParentRoot ? apiWidth : parentElInner.__ecGraphicWidth) || 0;\r\n elInner.__ecGraphicHeight = parsePercent$2(elInner.__ecGraphicHeightOption, isParentRoot ? apiHeight : parentElInner.__ecGraphicHeight) || 0;\r\n }\r\n for (var i = elOptions.length - 1; i >= 0; i--) {\r\n var elOption = elOptions[i];\r\n var id = convertOptionIdName(elOption.id, null);\r\n var el = id != null ? elMap.get(id) : null;\r\n if (!el) {\r\n continue;\r\n }\r\n var parentEl = el.parent;\r\n var parentElInner = inner$g(parentEl);\r\n var containerInfo = parentEl === rootGroup\r\n ? {\r\n width: apiWidth,\r\n height: apiHeight\r\n }\r\n : {\r\n width: parentElInner.__ecGraphicWidth,\r\n height: parentElInner.__ecGraphicHeight\r\n };\r\n positionElement(el, elOption, containerInfo, null, { hv: elOption.hv, boundingMode: elOption.bounding });\r\n }\r\n };\r\n GraphicComponentView.prototype._clear = function () {\r\n var elMap = this._elMap;\r\n elMap.each(function (el) {\r\n removeEl(el, elMap);\r\n });\r\n this._elMap = createHashMap();\r\n };\r\n GraphicComponentView.prototype.dispose = function () {\r\n this._clear();\r\n };\r\n GraphicComponentView.type = 'graphic';\r\n return GraphicComponentView;\r\n }(ComponentView));\r\n ComponentView.registerClass(GraphicComponentView);\r\n function createEl$1(id, targetElParent, elOption, elMap) {\r\n var graphicType = elOption.type;\r\n if (__DEV__) {\r\n assert(graphicType, 'graphic type MUST be set');\r\n }\r\n var Clz = (hasOwn(_nonShapeGraphicElements, graphicType)\r\n ? _nonShapeGraphicElements[graphicType]\r\n : getShapeClass(graphicType));\r\n if (__DEV__) {\r\n assert(Clz, 'graphic type can not be found');\r\n }\r\n var el = new Clz(elOption);\r\n targetElParent.add(el);\r\n elMap.set(id, el);\r\n inner$g(el).__ecGraphicId = id;\r\n }\r\n function removeEl(elExisting, elMap) {\r\n var existElParent = elExisting && elExisting.parent;\r\n if (existElParent) {\r\n elExisting.type === 'group' && elExisting.traverse(function (el) {\r\n removeEl(el, elMap);\r\n });\r\n elMap.removeKey(inner$g(elExisting).__ecGraphicId);\r\n existElParent.remove(elExisting);\r\n }\r\n }\r\n function getCleanedElOption(elOption) {\r\n elOption = extend({}, elOption);\r\n each(['id', 'parentId', '$action', 'hv', 'bounding', 'textContent'].concat(LOCATION_PARAMS), function (name) {\r\n delete elOption[name];\r\n });\r\n return elOption;\r\n }\r\n function isSetLoc(obj, props) {\r\n var isSet;\r\n each(props, function (prop) {\r\n obj[prop] != null && obj[prop] !== 'auto' && (isSet = true);\r\n });\r\n return isSet;\r\n }\r\n function setKeyInfoToNewElOption(resultItem, newElOption) {\r\n var existElOption = resultItem.existing;\r\n newElOption.id = resultItem.keyInfo.id;\r\n !newElOption.type && existElOption && (newElOption.type = existElOption.type);\r\n if (newElOption.parentId == null) {\r\n var newElParentOption = newElOption.parentOption;\r\n if (newElParentOption) {\r\n newElOption.parentId = newElParentOption.id;\r\n }\r\n else if (existElOption) {\r\n newElOption.parentId = existElOption.parentId;\r\n }\r\n }\r\n newElOption.parentOption = null;\r\n }\r\n function mergeNewElOptionToExist(existList, index, newElOption) {\r\n var newElOptCopy = extend({}, newElOption);\r\n var existElOption = existList[index];\r\n var $action = newElOption.$action || 'merge';\r\n if ($action === 'merge') {\r\n if (existElOption) {\r\n if (__DEV__) {\r\n var newType = newElOption.type;\r\n assert(!newType || existElOption.type === newType, 'Please set $action: \"replace\" to change `type`');\r\n }\r\n merge(existElOption, newElOptCopy, true);\r\n mergeLayoutParam(existElOption, newElOptCopy, { ignoreSize: true });\r\n copyLayoutParams(newElOption, existElOption);\r\n }\r\n else {\r\n existList[index] = newElOptCopy;\r\n }\r\n }\r\n else if ($action === 'replace') {\r\n existList[index] = newElOptCopy;\r\n }\r\n else if ($action === 'remove') {\r\n existElOption && (existList[index] = null);\r\n }\r\n }\r\n function setLayoutInfoToExist(existItem, newElOption) {\r\n if (!existItem) {\r\n return;\r\n }\r\n existItem.hv = newElOption.hv = [\r\n isSetLoc(newElOption, ['left', 'right']),\r\n isSetLoc(newElOption, ['top', 'bottom'])\r\n ];\r\n if (existItem.type === 'group') {\r\n var existingGroupOpt = existItem;\r\n var newGroupOpt = newElOption;\r\n existingGroupOpt.width == null && (existingGroupOpt.width = newGroupOpt.width = 0);\r\n existingGroupOpt.height == null && (existingGroupOpt.height = newGroupOpt.height = 0);\r\n }\r\n }\r\n function setEventData(el, graphicModel, elOption) {\r\n var eventData = getECData(el).eventData;\r\n if (!el.silent && !el.ignore && !eventData) {\r\n eventData = getECData(el).eventData = {\r\n componentType: 'graphic',\r\n componentIndex: graphicModel.componentIndex,\r\n name: el.name\r\n };\r\n }\r\n if (eventData) {\r\n eventData.info = elOption.info;\r\n }\r\n }\n\n var ToolboxFeature = (function () {\r\n function ToolboxFeature() {\r\n }\r\n return ToolboxFeature;\r\n }());\r\n var features = {};\r\n function registerFeature(name, ctor) {\r\n features[name] = ctor;\r\n }\r\n function getFeature(name) {\r\n return features[name];\r\n }\n\n var ToolboxModel = (function (_super) {\r\n __extends(ToolboxModel, _super);\r\n function ToolboxModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = ToolboxModel.type;\r\n return _this;\r\n }\r\n ToolboxModel.prototype.optionUpdated = function () {\r\n _super.prototype.optionUpdated.apply(this, arguments);\r\n var ecModel = this.ecModel;\r\n each(this.option.feature, function (featureOpt, featureName) {\r\n var Feature = getFeature(featureName);\r\n if (Feature) {\r\n if (Feature.getDefaultOption) {\r\n Feature.defaultOption = Feature.getDefaultOption(ecModel);\r\n }\r\n merge(featureOpt, Feature.defaultOption);\r\n }\r\n });\r\n };\r\n ToolboxModel.type = 'toolbox';\r\n ToolboxModel.layoutMode = {\r\n type: 'box',\r\n ignoreSize: true\r\n };\r\n ToolboxModel.defaultOption = {\r\n show: true,\r\n z: 6,\r\n zlevel: 0,\r\n orient: 'horizontal',\r\n left: 'right',\r\n top: 'top',\r\n backgroundColor: 'transparent',\r\n borderColor: '#ccc',\r\n borderRadius: 0,\r\n borderWidth: 0,\r\n padding: 5,\r\n itemSize: 15,\r\n itemGap: 8,\r\n showTitle: true,\r\n iconStyle: {\r\n borderColor: '#666',\r\n color: 'none'\r\n },\r\n emphasis: {\r\n iconStyle: {\r\n borderColor: '#3E98C5'\r\n }\r\n },\r\n tooltip: {\r\n show: false\r\n }\r\n };\r\n return ToolboxModel;\r\n }(ComponentModel));\r\n ComponentModel.registerClass(ToolboxModel);\n\n function layout$3(group, componentModel, api) {\r\n var boxLayoutParams = componentModel.getBoxLayoutParams();\r\n var padding = componentModel.get('padding');\r\n var viewportSize = { width: api.getWidth(), height: api.getHeight() };\r\n var rect = getLayoutRect(boxLayoutParams, viewportSize, padding);\r\n box(componentModel.get('orient'), group, componentModel.get('itemGap'), rect.width, rect.height);\r\n positionElement(group, boxLayoutParams, viewportSize, padding);\r\n }\r\n function makeBackground(rect, componentModel) {\r\n var padding = normalizeCssArray$1(componentModel.get('padding'));\r\n var style = componentModel.getItemStyle(['color', 'opacity']);\r\n style.fill = componentModel.get('backgroundColor');\r\n rect = new Rect({\r\n shape: {\r\n x: rect.x - padding[3],\r\n y: rect.y - padding[0],\r\n width: rect.width + padding[1] + padding[3],\r\n height: rect.height + padding[0] + padding[2],\r\n r: componentModel.get('borderRadius')\r\n },\r\n style: style,\r\n silent: true,\r\n z2: -1\r\n });\r\n return rect;\r\n }\n\n var ToolboxView = (function (_super) {\r\n __extends(ToolboxView, _super);\r\n function ToolboxView() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n ToolboxView.prototype.render = function (toolboxModel, ecModel, api, payload) {\r\n var group = this.group;\r\n group.removeAll();\r\n if (!toolboxModel.get('show')) {\r\n return;\r\n }\r\n var itemSize = +toolboxModel.get('itemSize');\r\n var featureOpts = toolboxModel.get('feature') || {};\r\n var features = this._features || (this._features = {});\r\n var featureNames = [];\r\n each(featureOpts, function (opt, name) {\r\n featureNames.push(name);\r\n });\r\n (new DataDiffer(this._featureNames || [], featureNames))\r\n .add(processFeature)\r\n .update(processFeature)\r\n .remove(curry(processFeature, null))\r\n .execute();\r\n this._featureNames = featureNames;\r\n function processFeature(newIndex, oldIndex) {\r\n var featureName = featureNames[newIndex];\r\n var oldName = featureNames[oldIndex];\r\n var featureOpt = featureOpts[featureName];\r\n var featureModel = new Model(featureOpt, toolboxModel, toolboxModel.ecModel);\r\n var feature;\r\n if (payload && payload.newTitle != null && payload.featureName === featureName) {\r\n featureOpt.title = payload.newTitle;\r\n }\r\n if (featureName && !oldName) {\r\n if (isUserFeatureName(featureName)) {\r\n feature = {\r\n onclick: featureModel.option.onclick,\r\n featureName: featureName\r\n };\r\n }\r\n else {\r\n var Feature = getFeature(featureName);\r\n if (!Feature) {\r\n return;\r\n }\r\n feature = new Feature();\r\n }\r\n features[featureName] = feature;\r\n }\r\n else {\r\n feature = features[oldName];\r\n if (!feature) {\r\n return;\r\n }\r\n }\r\n feature.uid = getUID('toolbox-feature');\r\n feature.model = featureModel;\r\n feature.ecModel = ecModel;\r\n feature.api = api;\r\n if (feature instanceof ToolboxFeature) {\r\n if (!featureName && oldName) {\r\n feature.dispose && feature.dispose(ecModel, api);\r\n return;\r\n }\r\n if (!featureModel.get('show') || feature.unusable) {\r\n feature.remove && feature.remove(ecModel, api);\r\n return;\r\n }\r\n }\r\n createIconPaths(featureModel, feature, featureName);\r\n featureModel.setIconStatus = function (iconName, status) {\r\n var option = this.option;\r\n var iconPaths = this.iconPaths;\r\n option.iconStatus = option.iconStatus || {};\r\n option.iconStatus[iconName] = status;\r\n if (iconPaths[iconName]) {\r\n (status === 'emphasis' ? enterEmphasis : leaveEmphasis)(iconPaths[iconName]);\r\n }\r\n };\r\n if (feature instanceof ToolboxFeature) {\r\n if (feature.render) {\r\n feature.render(featureModel, ecModel, api, payload);\r\n }\r\n }\r\n }\r\n function createIconPaths(featureModel, feature, featureName) {\r\n var iconStyleModel = featureModel.getModel('iconStyle');\r\n var iconStyleEmphasisModel = featureModel.getModel(['emphasis', 'iconStyle']);\r\n var icons = (feature instanceof ToolboxFeature && feature.getIcons)\r\n ? feature.getIcons() : featureModel.get('icon');\r\n var titles = featureModel.get('title') || {};\r\n var iconsMap;\r\n var titlesMap;\r\n if (typeof icons === 'string') {\r\n iconsMap = {};\r\n iconsMap[featureName] = icons;\r\n }\r\n else {\r\n iconsMap = icons;\r\n }\r\n if (typeof titles === 'string') {\r\n titlesMap = {};\r\n titlesMap[featureName] = titles;\r\n }\r\n else {\r\n titlesMap = titles;\r\n }\r\n var iconPaths = featureModel.iconPaths = {};\r\n each(iconsMap, function (iconStr, iconName) {\r\n var path = createIcon(iconStr, {}, {\r\n x: -itemSize / 2,\r\n y: -itemSize / 2,\r\n width: itemSize,\r\n height: itemSize\r\n });\r\n path.setStyle(iconStyleModel.getItemStyle());\r\n var pathEmphasisState = path.ensureState('emphasis');\r\n pathEmphasisState.style = iconStyleEmphasisModel.getItemStyle();\r\n var textContent = new ZRText({\r\n style: {\r\n text: titlesMap[iconName],\r\n align: iconStyleEmphasisModel.get('textAlign'),\r\n borderRadius: iconStyleEmphasisModel.get('textBorderRadius'),\r\n padding: iconStyleEmphasisModel.get('textPadding'),\r\n fill: null\r\n },\r\n ignore: true\r\n });\r\n path.setTextContent(textContent);\r\n var tooltipModel = toolboxModel.getModel('tooltip');\r\n if (tooltipModel && tooltipModel.get('show')) {\r\n path.tooltip = extend({\r\n content: titlesMap[iconName],\r\n formatter: tooltipModel.get('formatter', true)\r\n || function () {\r\n return titlesMap[iconName];\r\n },\r\n formatterParams: {\r\n componentType: 'toolbox',\r\n name: iconName,\r\n title: titlesMap[iconName],\r\n $vars: ['name', 'title']\r\n },\r\n position: tooltipModel.get('position', true) || 'bottom'\r\n }, tooltipModel.option);\r\n }\r\n path.__title = titlesMap[iconName];\r\n path.on('mouseover', function () {\r\n var hoverStyle = iconStyleEmphasisModel.getItemStyle();\r\n var defaultTextPosition = toolboxModel.get('orient') === 'vertical'\r\n ? (toolboxModel.get('right') == null ? 'right' : 'left')\r\n : (toolboxModel.get('bottom') == null ? 'bottom' : 'top');\r\n textContent.setStyle({\r\n fill: (iconStyleEmphasisModel.get('textFill')\r\n || hoverStyle.fill || hoverStyle.stroke || '#000'),\r\n backgroundColor: iconStyleEmphasisModel.get('textBackgroundColor')\r\n });\r\n path.setTextConfig({\r\n position: iconStyleEmphasisModel.get('textPosition') || defaultTextPosition\r\n });\r\n textContent.ignore = !toolboxModel.get('showTitle');\r\n enterEmphasis(this);\r\n })\r\n .on('mouseout', function () {\r\n if (featureModel.get(['iconStatus', iconName]) !== 'emphasis') {\r\n leaveEmphasis(this);\r\n }\r\n textContent.hide();\r\n });\r\n (featureModel.get(['iconStatus', iconName]) === 'emphasis' ? enterEmphasis : leaveEmphasis)(path);\r\n group.add(path);\r\n path.on('click', bind(feature.onclick, feature, ecModel, api, iconName));\r\n iconPaths[iconName] = path;\r\n });\r\n }\r\n layout$3(group, toolboxModel, api);\r\n group.add(makeBackground(group.getBoundingRect(), toolboxModel));\r\n group.eachChild(function (icon) {\r\n var titleText = icon.__title;\r\n var emphasisState = icon.ensureState('emphasis');\r\n var emphasisTextConfig = emphasisState.textConfig || (emphasisState.textConfig = {});\r\n var textContent = icon.getTextContent();\r\n var emphasisTextState = textContent && textContent.states.emphasis;\r\n if (emphasisTextState && !isFunction(emphasisTextState) && titleText) {\r\n var emphasisTextStyle = emphasisTextState.style || (emphasisTextState.style = {});\r\n var rect = getBoundingRect(titleText, ZRText.makeFont(emphasisTextStyle));\r\n var offsetX = icon.x + group.x;\r\n var offsetY = icon.y + group.y + itemSize;\r\n var needPutOnTop = false;\r\n if (offsetY + rect.height > api.getHeight()) {\r\n emphasisTextConfig.position = 'top';\r\n needPutOnTop = true;\r\n }\r\n var topOffset = needPutOnTop ? (-5 - rect.height) : (itemSize + 8);\r\n if (offsetX + rect.width / 2 > api.getWidth()) {\r\n emphasisTextConfig.position = ['100%', topOffset];\r\n emphasisTextStyle.align = 'right';\r\n }\r\n else if (offsetX - rect.width / 2 < 0) {\r\n emphasisTextConfig.position = [0, topOffset];\r\n emphasisTextStyle.align = 'left';\r\n }\r\n }\r\n });\r\n };\r\n ToolboxView.prototype.updateView = function (toolboxModel, ecModel, api, payload) {\r\n each(this._features, function (feature) {\r\n feature instanceof ToolboxFeature\r\n && feature.updateView && feature.updateView(feature.model, ecModel, api, payload);\r\n });\r\n };\r\n ToolboxView.prototype.remove = function (ecModel, api) {\r\n each(this._features, function (feature) {\r\n feature instanceof ToolboxFeature\r\n && feature.remove && feature.remove(ecModel, api);\r\n });\r\n this.group.removeAll();\r\n };\r\n ToolboxView.prototype.dispose = function (ecModel, api) {\r\n each(this._features, function (feature) {\r\n feature instanceof ToolboxFeature\r\n && feature.dispose && feature.dispose(ecModel, api);\r\n });\r\n };\r\n ToolboxView.type = 'toolbox';\r\n return ToolboxView;\r\n }(ComponentView));\r\n ComponentView.registerClass(ToolboxView);\r\n function isUserFeatureName(featureName) {\r\n return featureName.indexOf('my') === 0;\r\n }\n\n var SaveAsImage = (function (_super) {\r\n __extends(SaveAsImage, _super);\r\n function SaveAsImage() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n SaveAsImage.prototype.onclick = function (ecModel, api) {\r\n var model = this.model;\r\n var title = model.get('name') || ecModel.get('title.0.text') || 'echarts';\r\n var isSvg = api.getZr().painter.getType() === 'svg';\r\n var type = isSvg ? 'svg' : model.get('type', true) || 'png';\r\n var url = api.getConnectedDataURL({\r\n type: type,\r\n backgroundColor: model.get('backgroundColor', true)\r\n || ecModel.get('backgroundColor') || '#fff',\r\n connectedBackgroundColor: model.get('connectedBackgroundColor'),\r\n excludeComponents: model.get('excludeComponents'),\r\n pixelRatio: model.get('pixelRatio')\r\n });\r\n if (typeof MouseEvent === 'function' && !env.browser.ie && !env.browser.edge) {\r\n var $a = document.createElement('a');\r\n $a.download = title + '.' + type;\r\n $a.target = '_blank';\r\n $a.href = url;\r\n var evt = new MouseEvent('click', {\r\n view: document.defaultView,\r\n bubbles: true,\r\n cancelable: false\r\n });\r\n $a.dispatchEvent(evt);\r\n }\r\n else {\r\n if (window.navigator.msSaveOrOpenBlob) {\r\n var bstr = atob(url.split(',')[1]);\r\n var n = bstr.length;\r\n var u8arr = new Uint8Array(n);\r\n while (n--) {\r\n u8arr[n] = bstr.charCodeAt(n);\r\n }\r\n var blob = new Blob([u8arr]);\r\n window.navigator.msSaveOrOpenBlob(blob, title + '.' + type);\r\n }\r\n else {\r\n var lang = model.get('lang');\r\n var html = ''\r\n + '<body style=\"margin:0;\">'\r\n + '<img src=\"' + url + '\" style=\"max-width:100%;\" title=\"' + ((lang && lang[0]) || '') + '\" />'\r\n + '</body>';\r\n var tab = window.open();\r\n tab.document.write(html);\r\n }\r\n }\r\n };\r\n SaveAsImage.getDefaultOption = function (ecModel) {\r\n var defaultOption = {\r\n show: true,\r\n icon: 'M4.7,22.9L29.3,45.5L54.7,23.4M4.6,43.6L4.6,58L53.8,58L53.8,43.6M29.2,45.1L29.2,0',\r\n title: ecModel.getLocale(['toolbox', 'saveAsImage', 'title']),\r\n type: 'png',\r\n connectedBackgroundColor: '#fff',\r\n name: '',\r\n excludeComponents: ['toolbox'],\r\n pixelRatio: 1,\r\n lang: ecModel.getLocale(['toolbox', 'saveAsImage', 'lang'])\r\n };\r\n return defaultOption;\r\n };\r\n return SaveAsImage;\r\n }(ToolboxFeature));\r\n SaveAsImage.prototype.unusable = !env.canvasSupported;\r\n registerFeature('saveAsImage', SaveAsImage);\n\n var INNER_STACK_KEYWORD = '__ec_magicType_stack__';\r\n var radioTypes = [\r\n ['line', 'bar'],\r\n ['stack']\r\n ];\r\n var MagicType = (function (_super) {\r\n __extends(MagicType, _super);\r\n function MagicType() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n MagicType.prototype.getIcons = function () {\r\n var model = this.model;\r\n var availableIcons = model.get('icon');\r\n var icons = {};\r\n each(model.get('type'), function (type) {\r\n if (availableIcons[type]) {\r\n icons[type] = availableIcons[type];\r\n }\r\n });\r\n return icons;\r\n };\r\n MagicType.getDefaultOption = function (ecModel) {\r\n var defaultOption = {\r\n show: true,\r\n type: [],\r\n icon: {\r\n line: 'M4.1,28.9h7.1l9.3-22l7.4,38l9.7-19.7l3,12.8h14.9M4.1,58h51.4',\r\n bar: 'M6.7,22.9h10V48h-10V22.9zM24.9,13h10v35h-10V13zM43.2,2h10v46h-10V2zM3.1,58h53.7',\r\n stack: 'M8.2,38.4l-8.4,4.1l30.6,15.3L60,42.5l-8.1-4.1l-21.5,11L8.2,38.4z M51.9,30l-8.1,4.2l-13.4,6.9l-13.9-6.9L8.2,30l-8.4,4.2l8.4,4.2l22.2,11l21.5-11l8.1-4.2L51.9,30z M51.9,21.7l-8.1,4.2L35.7,30l-5.3,2.8L24.9,30l-8.4-4.1l-8.3-4.2l-8.4,4.2L8.2,30l8.3,4.2l13.9,6.9l13.4-6.9l8.1-4.2l8.1-4.1L51.9,21.7zM30.4,2.2L-0.2,17.5l8.4,4.1l8.3,4.2l8.4,4.2l5.5,2.7l5.3-2.7l8.1-4.2l8.1-4.2l8.1-4.1L30.4,2.2z'\r\n },\r\n title: ecModel.getLocale(['toolbox', 'magicType', 'title']),\r\n option: {},\r\n seriesIndex: {}\r\n };\r\n return defaultOption;\r\n };\r\n MagicType.prototype.onclick = function (ecModel, api, type) {\r\n var model = this.model;\r\n var seriesIndex = model.get(['seriesIndex', type]);\r\n if (!seriesOptGenreator[type]) {\r\n return;\r\n }\r\n var newOption = {\r\n series: []\r\n };\r\n var generateNewSeriesTypes = function (seriesModel) {\r\n var seriesType = seriesModel.subType;\r\n var seriesId = seriesModel.id;\r\n var newSeriesOpt = seriesOptGenreator[type](seriesType, seriesId, seriesModel, model);\r\n if (newSeriesOpt) {\r\n defaults(newSeriesOpt, seriesModel.option);\r\n newOption.series.push(newSeriesOpt);\r\n }\r\n var coordSys = seriesModel.coordinateSystem;\r\n if (coordSys && coordSys.type === 'cartesian2d' && (type === 'line' || type === 'bar')) {\r\n var categoryAxis = coordSys.getAxesByScale('ordinal')[0];\r\n if (categoryAxis) {\r\n var axisDim = categoryAxis.dim;\r\n var axisType = axisDim + 'Axis';\r\n var axisModel = seriesModel.getReferringComponents(axisType, SINGLE_REFERRING).models[0];\r\n var axisIndex = axisModel.componentIndex;\r\n newOption[axisType] = newOption[axisType] || [];\r\n for (var i = 0; i <= axisIndex; i++) {\r\n newOption[axisType][axisIndex] = newOption[axisType][axisIndex] || {};\r\n }\r\n newOption[axisType][axisIndex].boundaryGap = type === 'bar';\r\n }\r\n }\r\n };\r\n each(radioTypes, function (radio) {\r\n if (indexOf(radio, type) >= 0) {\r\n each(radio, function (item) {\r\n model.setIconStatus(item, 'normal');\r\n });\r\n }\r\n });\r\n model.setIconStatus(type, 'emphasis');\r\n ecModel.eachComponent({\r\n mainType: 'series',\r\n query: seriesIndex == null ? null : {\r\n seriesIndex: seriesIndex\r\n }\r\n }, generateNewSeriesTypes);\r\n var newTitle;\r\n if (type === 'stack') {\r\n newTitle = merge({\r\n stack: model.option.title.tiled,\r\n tiled: model.option.title.stack\r\n }, model.option.title);\r\n }\r\n api.dispatchAction({\r\n type: 'changeMagicType',\r\n currentType: type,\r\n newOption: newOption,\r\n newTitle: newTitle,\r\n featureName: 'magicType'\r\n });\r\n };\r\n return MagicType;\r\n }(ToolboxFeature));\r\n var seriesOptGenreator = {\r\n 'line': function (seriesType, seriesId, seriesModel, model) {\r\n if (seriesType === 'bar') {\r\n return merge({\r\n id: seriesId,\r\n type: 'line',\r\n data: seriesModel.get('data'),\r\n stack: seriesModel.get('stack'),\r\n markPoint: seriesModel.get('markPoint'),\r\n markLine: seriesModel.get('markLine')\r\n }, model.get(['option', 'line']) || {}, true);\r\n }\r\n },\r\n 'bar': function (seriesType, seriesId, seriesModel, model) {\r\n if (seriesType === 'line') {\r\n return merge({\r\n id: seriesId,\r\n type: 'bar',\r\n data: seriesModel.get('data'),\r\n stack: seriesModel.get('stack'),\r\n markPoint: seriesModel.get('markPoint'),\r\n markLine: seriesModel.get('markLine')\r\n }, model.get(['option', 'bar']) || {}, true);\r\n }\r\n },\r\n 'stack': function (seriesType, seriesId, seriesModel, model) {\r\n var isStack = seriesModel.get('stack') === INNER_STACK_KEYWORD;\r\n if (seriesType === 'line' || seriesType === 'bar') {\r\n model.setIconStatus('stack', isStack ? 'normal' : 'emphasis');\r\n return merge({\r\n id: seriesId,\r\n stack: isStack ? '' : INNER_STACK_KEYWORD\r\n }, model.get(['option', 'stack']) || {}, true);\r\n }\r\n }\r\n };\r\n registerAction({\r\n type: 'changeMagicType',\r\n event: 'magicTypeChanged',\r\n update: 'prepareAndUpdate'\r\n }, function (payload, ecModel) {\r\n ecModel.mergeOption(payload.newOption);\r\n });\r\n registerFeature('magicType', MagicType);\n\n var BLOCK_SPLITER = new Array(60).join('-');\r\n var ITEM_SPLITER = '\\t';\r\n function groupSeries(ecModel) {\r\n var seriesGroupByCategoryAxis = {};\r\n var otherSeries = [];\r\n var meta = [];\r\n ecModel.eachRawSeries(function (seriesModel) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n if (coordSys && (coordSys.type === 'cartesian2d' || coordSys.type === 'polar')) {\r\n var baseAxis = coordSys.getBaseAxis();\r\n if (baseAxis.type === 'category') {\r\n var key = baseAxis.dim + '_' + baseAxis.index;\r\n if (!seriesGroupByCategoryAxis[key]) {\r\n seriesGroupByCategoryAxis[key] = {\r\n categoryAxis: baseAxis,\r\n valueAxis: coordSys.getOtherAxis(baseAxis),\r\n series: []\r\n };\r\n meta.push({\r\n axisDim: baseAxis.dim,\r\n axisIndex: baseAxis.index\r\n });\r\n }\r\n seriesGroupByCategoryAxis[key].series.push(seriesModel);\r\n }\r\n else {\r\n otherSeries.push(seriesModel);\r\n }\r\n }\r\n else {\r\n otherSeries.push(seriesModel);\r\n }\r\n });\r\n return {\r\n seriesGroupByCategoryAxis: seriesGroupByCategoryAxis,\r\n other: otherSeries,\r\n meta: meta\r\n };\r\n }\r\n function assembleSeriesWithCategoryAxis(groups) {\r\n var tables = [];\r\n each(groups, function (group, key) {\r\n var categoryAxis = group.categoryAxis;\r\n var valueAxis = group.valueAxis;\r\n var valueAxisDim = valueAxis.dim;\r\n var headers = [' '].concat(map(group.series, function (series) {\r\n return series.name;\r\n }));\r\n var columns = [categoryAxis.model.getCategories()];\r\n each(group.series, function (series) {\r\n var rawData = series.getRawData();\r\n columns.push(series.getRawData().mapArray(rawData.mapDimension(valueAxisDim), function (val) {\r\n return val;\r\n }));\r\n });\r\n var lines = [headers.join(ITEM_SPLITER)];\r\n for (var i = 0; i < columns[0].length; i++) {\r\n var items = [];\r\n for (var j = 0; j < columns.length; j++) {\r\n items.push(columns[j][i]);\r\n }\r\n lines.push(items.join(ITEM_SPLITER));\r\n }\r\n tables.push(lines.join('\\n'));\r\n });\r\n return tables.join('\\n\\n' + BLOCK_SPLITER + '\\n\\n');\r\n }\r\n function assembleOtherSeries(series) {\r\n return map(series, function (series) {\r\n var data = series.getRawData();\r\n var lines = [series.name];\r\n var vals = [];\r\n data.each(data.dimensions, function () {\r\n var argLen = arguments.length;\r\n var dataIndex = arguments[argLen - 1];\r\n var name = data.getName(dataIndex);\r\n for (var i = 0; i < argLen - 1; i++) {\r\n vals[i] = arguments[i];\r\n }\r\n lines.push((name ? (name + ITEM_SPLITER) : '') + vals.join(ITEM_SPLITER));\r\n });\r\n return lines.join('\\n');\r\n }).join('\\n\\n' + BLOCK_SPLITER + '\\n\\n');\r\n }\r\n function getContentFromModel(ecModel) {\r\n var result = groupSeries(ecModel);\r\n return {\r\n value: filter([\r\n assembleSeriesWithCategoryAxis(result.seriesGroupByCategoryAxis),\r\n assembleOtherSeries(result.other)\r\n ], function (str) {\r\n return !!str.replace(/[\\n\\t\\s]/g, '');\r\n }).join('\\n\\n' + BLOCK_SPLITER + '\\n\\n'),\r\n meta: result.meta\r\n };\r\n }\r\n function trim$1(str) {\r\n return str.replace(/^\\s\\s*/, '').replace(/\\s\\s*$/, '');\r\n }\r\n function isTSVFormat(block) {\r\n var firstLine = block.slice(0, block.indexOf('\\n'));\r\n if (firstLine.indexOf(ITEM_SPLITER) >= 0) {\r\n return true;\r\n }\r\n }\r\n var itemSplitRegex = new RegExp('[' + ITEM_SPLITER + ']+', 'g');\r\n function parseTSVContents(tsv) {\r\n var tsvLines = tsv.split(/\\n+/g);\r\n var headers = trim$1(tsvLines.shift()).split(itemSplitRegex);\r\n var categories = [];\r\n var series = map(headers, function (header) {\r\n return {\r\n name: header,\r\n data: []\r\n };\r\n });\r\n for (var i = 0; i < tsvLines.length; i++) {\r\n var items = trim$1(tsvLines[i]).split(itemSplitRegex);\r\n categories.push(items.shift());\r\n for (var j = 0; j < items.length; j++) {\r\n series[j] && (series[j].data[i] = items[j]);\r\n }\r\n }\r\n return {\r\n series: series,\r\n categories: categories\r\n };\r\n }\r\n function parseListContents(str) {\r\n var lines = str.split(/\\n+/g);\r\n var seriesName = trim$1(lines.shift());\r\n var data = [];\r\n for (var i = 0; i < lines.length; i++) {\r\n var line = trim$1(lines[i]);\r\n if (!line) {\r\n continue;\r\n }\r\n var items = line.split(itemSplitRegex);\r\n var name_1 = '';\r\n var value = void 0;\r\n var hasName = false;\r\n if (isNaN(items[0])) {\r\n hasName = true;\r\n name_1 = items[0];\r\n items = items.slice(1);\r\n data[i] = {\r\n name: name_1,\r\n value: []\r\n };\r\n value = data[i].value;\r\n }\r\n else {\r\n value = data[i] = [];\r\n }\r\n for (var j = 0; j < items.length; j++) {\r\n value.push(+items[j]);\r\n }\r\n if (value.length === 1) {\r\n hasName ? (data[i].value = value[0]) : (data[i] = value[0]);\r\n }\r\n }\r\n return {\r\n name: seriesName,\r\n data: data\r\n };\r\n }\r\n function parseContents(str, blockMetaList) {\r\n var blocks = str.split(new RegExp('\\n*' + BLOCK_SPLITER + '\\n*', 'g'));\r\n var newOption = {\r\n series: []\r\n };\r\n each(blocks, function (block, idx) {\r\n if (isTSVFormat(block)) {\r\n var result = parseTSVContents(block);\r\n var blockMeta = blockMetaList[idx];\r\n var axisKey = blockMeta.axisDim + 'Axis';\r\n if (blockMeta) {\r\n newOption[axisKey] = newOption[axisKey] || [];\r\n newOption[axisKey][blockMeta.axisIndex] = {\r\n data: result.categories\r\n };\r\n newOption.series = newOption.series.concat(result.series);\r\n }\r\n }\r\n else {\r\n var result = parseListContents(block);\r\n newOption.series.push(result);\r\n }\r\n });\r\n return newOption;\r\n }\r\n var DataView = (function (_super) {\r\n __extends(DataView, _super);\r\n function DataView() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n DataView.prototype.onclick = function (ecModel, api) {\r\n var container = api.getDom();\r\n var model = this.model;\r\n if (this._dom) {\r\n container.removeChild(this._dom);\r\n }\r\n var root = document.createElement('div');\r\n root.style.cssText = 'position:absolute;left:5px;top:5px;bottom:5px;right:5px;';\r\n root.style.backgroundColor = model.get('backgroundColor') || '#fff';\r\n var header = document.createElement('h4');\r\n var lang = model.get('lang') || [];\r\n header.innerHTML = lang[0] || model.get('title');\r\n header.style.cssText = 'margin: 10px 20px;';\r\n header.style.color = model.get('textColor');\r\n var viewMain = document.createElement('div');\r\n var textarea = document.createElement('textarea');\r\n viewMain.style.cssText = 'display:block;width:100%;overflow:auto;';\r\n var optionToContent = model.get('optionToContent');\r\n var contentToOption = model.get('contentToOption');\r\n var result = getContentFromModel(ecModel);\r\n if (typeof optionToContent === 'function') {\r\n var htmlOrDom = optionToContent(api.getOption());\r\n if (typeof htmlOrDom === 'string') {\r\n viewMain.innerHTML = htmlOrDom;\r\n }\r\n else if (isDom(htmlOrDom)) {\r\n viewMain.appendChild(htmlOrDom);\r\n }\r\n }\r\n else {\r\n viewMain.appendChild(textarea);\r\n textarea.readOnly = model.get('readOnly');\r\n textarea.style.cssText = 'width:100%;height:100%;font-family:monospace;font-size:14px;line-height:1.6rem;';\r\n textarea.style.color = model.get('textColor');\r\n textarea.style.borderColor = model.get('textareaBorderColor');\r\n textarea.style.backgroundColor = model.get('textareaColor');\r\n textarea.value = result.value;\r\n }\r\n var blockMetaList = result.meta;\r\n var buttonContainer = document.createElement('div');\r\n buttonContainer.style.cssText = 'position:absolute;bottom:0;left:0;right:0;';\r\n var buttonStyle = 'float:right;margin-right:20px;border:none;'\r\n + 'cursor:pointer;padding:2px 5px;font-size:12px;border-radius:3px';\r\n var closeButton = document.createElement('div');\r\n var refreshButton = document.createElement('div');\r\n buttonStyle += ';background-color:' + model.get('buttonColor');\r\n buttonStyle += ';color:' + model.get('buttonTextColor');\r\n var self = this;\r\n function close() {\r\n container.removeChild(root);\r\n self._dom = null;\r\n }\r\n addEventListener(closeButton, 'click', close);\r\n addEventListener(refreshButton, 'click', function () {\r\n if ((contentToOption == null && optionToContent != null)\r\n || (contentToOption != null && optionToContent == null)) {\r\n if (__DEV__) {\r\n console.warn('It seems you have just provided one of `contentToOption` and `optionToContent` functions but missed the other one. Data change is ignored.');\r\n }\r\n close();\r\n return;\r\n }\r\n var newOption;\r\n try {\r\n if (typeof contentToOption === 'function') {\r\n newOption = contentToOption(viewMain, api.getOption());\r\n }\r\n else {\r\n newOption = parseContents(textarea.value, blockMetaList);\r\n }\r\n }\r\n catch (e) {\r\n close();\r\n throw new Error('Data view format error ' + e);\r\n }\r\n if (newOption) {\r\n api.dispatchAction({\r\n type: 'changeDataView',\r\n newOption: newOption\r\n });\r\n }\r\n close();\r\n });\r\n closeButton.innerHTML = lang[1];\r\n refreshButton.innerHTML = lang[2];\r\n refreshButton.style.cssText = buttonStyle;\r\n closeButton.style.cssText = buttonStyle;\r\n !model.get('readOnly') && buttonContainer.appendChild(refreshButton);\r\n buttonContainer.appendChild(closeButton);\r\n root.appendChild(header);\r\n root.appendChild(viewMain);\r\n root.appendChild(buttonContainer);\r\n viewMain.style.height = (container.clientHeight - 80) + 'px';\r\n container.appendChild(root);\r\n this._dom = root;\r\n };\r\n DataView.prototype.remove = function (ecModel, api) {\r\n this._dom && api.getDom().removeChild(this._dom);\r\n };\r\n DataView.prototype.dispose = function (ecModel, api) {\r\n this.remove(ecModel, api);\r\n };\r\n DataView.getDefaultOption = function (ecModel) {\r\n var defaultOption = {\r\n show: true,\r\n readOnly: false,\r\n optionToContent: null,\r\n contentToOption: null,\r\n icon: 'M17.5,17.3H33 M17.5,17.3H33 M45.4,29.5h-28 M11.5,2v56H51V14.8L38.4,2H11.5z M38.4,2.2v12.7H51 M45.4,41.7h-28',\r\n title: ecModel.getLocale(['toolbox', 'dataView', 'title']),\r\n lang: ecModel.getLocale(['toolbox', 'dataView', 'lang']),\r\n backgroundColor: '#fff',\r\n textColor: '#000',\r\n textareaColor: '#fff',\r\n textareaBorderColor: '#333',\r\n buttonColor: '#c23531',\r\n buttonTextColor: '#fff'\r\n };\r\n return defaultOption;\r\n };\r\n return DataView;\r\n }(ToolboxFeature));\r\n function tryMergeDataOption(newData, originalData) {\r\n return map(newData, function (newVal, idx) {\r\n var original = originalData && originalData[idx];\r\n if (isObject(original) && !isArray(original)) {\r\n var newValIsObject = isObject(newVal) && !isArray(newVal);\r\n if (!newValIsObject) {\r\n newVal = {\r\n value: newVal\r\n };\r\n }\r\n var shouldDeleteName = original.name != null && newVal.name == null;\r\n newVal = defaults(newVal, original);\r\n shouldDeleteName && (delete newVal.name);\r\n return newVal;\r\n }\r\n else {\r\n return newVal;\r\n }\r\n });\r\n }\r\n registerFeature('dataView', DataView);\r\n registerAction({\r\n type: 'changeDataView',\r\n event: 'dataViewChanged',\r\n update: 'prepareAndUpdate'\r\n }, function (payload, ecModel) {\r\n var newSeriesOptList = [];\r\n each(payload.newOption.series, function (seriesOpt) {\r\n var seriesModel = ecModel.getSeriesByName(seriesOpt.name)[0];\r\n if (!seriesModel) {\r\n newSeriesOptList.push(extend({\r\n type: 'scatter'\r\n }, seriesOpt));\r\n }\r\n else {\r\n var originalData = seriesModel.get('data');\r\n newSeriesOptList.push({\r\n name: seriesOpt.name,\r\n data: tryMergeDataOption(seriesOpt.data, originalData)\r\n });\r\n }\r\n });\r\n ecModel.mergeOption(defaults({\r\n series: newSeriesOptList\r\n }, payload.newOption));\r\n });\n\n var COORD_CONVERTS = ['dataToPoint', 'pointToData'];\r\n var INCLUDE_FINDER_MAIN_TYPES = [\r\n 'grid', 'xAxis', 'yAxis', 'geo', 'graph',\r\n 'polar', 'radiusAxis', 'angleAxis', 'bmap'\r\n ];\r\n var BrushTargetManager = (function () {\r\n function BrushTargetManager(finder, ecModel, opt) {\r\n var _this = this;\r\n this._targetInfoList = [];\r\n var foundCpts = parseFinder$1(ecModel, finder);\r\n each(targetInfoBuilders, function (builder, type) {\r\n if (!opt || !opt.include || indexOf(opt.include, type) >= 0) {\r\n builder(foundCpts, _this._targetInfoList);\r\n }\r\n });\r\n }\r\n BrushTargetManager.prototype.setOutputRanges = function (areas, ecModel) {\r\n this.matchOutputRanges(areas, ecModel, function (area, coordRange, coordSys) {\r\n (area.coordRanges || (area.coordRanges = [])).push(coordRange);\r\n if (!area.coordRange) {\r\n area.coordRange = coordRange;\r\n var result = coordConvert[area.brushType](0, coordSys, coordRange);\r\n area.__rangeOffset = {\r\n offset: diffProcessor[area.brushType](result.values, area.range, [1, 1]),\r\n xyMinMax: result.xyMinMax\r\n };\r\n }\r\n });\r\n return areas;\r\n };\r\n BrushTargetManager.prototype.matchOutputRanges = function (areas, ecModel, cb) {\r\n each(areas, function (area) {\r\n var targetInfo = this.findTargetInfo(area, ecModel);\r\n if (targetInfo && targetInfo !== true) {\r\n each(targetInfo.coordSyses, function (coordSys) {\r\n var result = coordConvert[area.brushType](1, coordSys, area.range);\r\n cb(area, result.values, coordSys, ecModel);\r\n });\r\n }\r\n }, this);\r\n };\r\n BrushTargetManager.prototype.setInputRanges = function (areas, ecModel) {\r\n each(areas, function (area) {\r\n var targetInfo = this.findTargetInfo(area, ecModel);\r\n if (__DEV__) {\r\n assert(!targetInfo || targetInfo === true || area.coordRange, 'coordRange must be specified when coord index specified.');\r\n assert(!targetInfo || targetInfo !== true || area.range, 'range must be specified in global brush.');\r\n }\r\n area.range = area.range || [];\r\n if (targetInfo && targetInfo !== true) {\r\n area.panelId = targetInfo.panelId;\r\n var result = coordConvert[area.brushType](0, targetInfo.coordSys, area.coordRange);\r\n var rangeOffset = area.__rangeOffset;\r\n area.range = rangeOffset\r\n ? diffProcessor[area.brushType](result.values, rangeOffset.offset, getScales(result.xyMinMax, rangeOffset.xyMinMax))\r\n : result.values;\r\n }\r\n }, this);\r\n };\r\n BrushTargetManager.prototype.makePanelOpts = function (api, getDefaultBrushType) {\r\n return map(this._targetInfoList, function (targetInfo) {\r\n var rect = targetInfo.getPanelRect();\r\n return {\r\n panelId: targetInfo.panelId,\r\n defaultBrushType: getDefaultBrushType ? getDefaultBrushType(targetInfo) : null,\r\n clipPath: makeRectPanelClipPath(rect),\r\n isTargetByCursor: makeRectIsTargetByCursor(rect, api, targetInfo.coordSysModel),\r\n getLinearBrushOtherExtent: makeLinearBrushOtherExtent(rect)\r\n };\r\n });\r\n };\r\n BrushTargetManager.prototype.controlSeries = function (area, seriesModel, ecModel) {\r\n var targetInfo = this.findTargetInfo(area, ecModel);\r\n return targetInfo === true || (targetInfo && indexOf(targetInfo.coordSyses, seriesModel.coordinateSystem) >= 0);\r\n };\r\n BrushTargetManager.prototype.findTargetInfo = function (area, ecModel) {\r\n var targetInfoList = this._targetInfoList;\r\n var foundCpts = parseFinder$1(ecModel, area);\r\n for (var i = 0; i < targetInfoList.length; i++) {\r\n var targetInfo = targetInfoList[i];\r\n var areaPanelId = area.panelId;\r\n if (areaPanelId) {\r\n if (targetInfo.panelId === areaPanelId) {\r\n return targetInfo;\r\n }\r\n }\r\n else {\r\n for (var j = 0; j < targetInfoMatchers.length; j++) {\r\n if (targetInfoMatchers[j](foundCpts, targetInfo)) {\r\n return targetInfo;\r\n }\r\n }\r\n }\r\n }\r\n return true;\r\n };\r\n return BrushTargetManager;\r\n }());\r\n function formatMinMax(minMax) {\r\n minMax[0] > minMax[1] && minMax.reverse();\r\n return minMax;\r\n }\r\n function parseFinder$1(ecModel, finder) {\r\n return parseFinder(ecModel, finder, { includeMainTypes: INCLUDE_FINDER_MAIN_TYPES });\r\n }\r\n var targetInfoBuilders = {\r\n grid: function (foundCpts, targetInfoList) {\r\n var xAxisModels = foundCpts.xAxisModels;\r\n var yAxisModels = foundCpts.yAxisModels;\r\n var gridModels = foundCpts.gridModels;\r\n var gridModelMap = createHashMap();\r\n var xAxesHas = {};\r\n var yAxesHas = {};\r\n if (!xAxisModels && !yAxisModels && !gridModels) {\r\n return;\r\n }\r\n each(xAxisModels, function (axisModel) {\r\n var gridModel = axisModel.axis.grid.model;\r\n gridModelMap.set(gridModel.id, gridModel);\r\n xAxesHas[gridModel.id] = true;\r\n });\r\n each(yAxisModels, function (axisModel) {\r\n var gridModel = axisModel.axis.grid.model;\r\n gridModelMap.set(gridModel.id, gridModel);\r\n yAxesHas[gridModel.id] = true;\r\n });\r\n each(gridModels, function (gridModel) {\r\n gridModelMap.set(gridModel.id, gridModel);\r\n xAxesHas[gridModel.id] = true;\r\n yAxesHas[gridModel.id] = true;\r\n });\r\n gridModelMap.each(function (gridModel) {\r\n var grid = gridModel.coordinateSystem;\r\n var cartesians = [];\r\n each(grid.getCartesians(), function (cartesian, index) {\r\n if (indexOf(xAxisModels, cartesian.getAxis('x').model) >= 0\r\n || indexOf(yAxisModels, cartesian.getAxis('y').model) >= 0) {\r\n cartesians.push(cartesian);\r\n }\r\n });\r\n targetInfoList.push({\r\n panelId: 'grid--' + gridModel.id,\r\n gridModel: gridModel,\r\n coordSysModel: gridModel,\r\n coordSys: cartesians[0],\r\n coordSyses: cartesians,\r\n getPanelRect: panelRectBuilders.grid,\r\n xAxisDeclared: xAxesHas[gridModel.id],\r\n yAxisDeclared: yAxesHas[gridModel.id]\r\n });\r\n });\r\n },\r\n geo: function (foundCpts, targetInfoList) {\r\n each(foundCpts.geoModels, function (geoModel) {\r\n var coordSys = geoModel.coordinateSystem;\r\n targetInfoList.push({\r\n panelId: 'geo--' + geoModel.id,\r\n geoModel: geoModel,\r\n coordSysModel: geoModel,\r\n coordSys: coordSys,\r\n coordSyses: [coordSys],\r\n getPanelRect: panelRectBuilders.geo\r\n });\r\n });\r\n }\r\n };\r\n var targetInfoMatchers = [\r\n function (foundCpts, targetInfo) {\r\n var xAxisModel = foundCpts.xAxisModel;\r\n var yAxisModel = foundCpts.yAxisModel;\r\n var gridModel = foundCpts.gridModel;\r\n !gridModel && xAxisModel && (gridModel = xAxisModel.axis.grid.model);\r\n !gridModel && yAxisModel && (gridModel = yAxisModel.axis.grid.model);\r\n return gridModel && gridModel === targetInfo.gridModel;\r\n },\r\n function (foundCpts, targetInfo) {\r\n var geoModel = foundCpts.geoModel;\r\n return geoModel && geoModel === targetInfo.geoModel;\r\n }\r\n ];\r\n var panelRectBuilders = {\r\n grid: function () {\r\n return this.coordSys.master.getRect().clone();\r\n },\r\n geo: function () {\r\n var coordSys = this.coordSys;\r\n var rect = coordSys.getBoundingRect().clone();\r\n rect.applyTransform(getTransform(coordSys));\r\n return rect;\r\n }\r\n };\r\n var coordConvert = {\r\n lineX: curry(axisConvert, 0),\r\n lineY: curry(axisConvert, 1),\r\n rect: function (to, coordSys, rangeOrCoordRange) {\r\n var xminymin = coordSys[COORD_CONVERTS[to]]([rangeOrCoordRange[0][0], rangeOrCoordRange[1][0]]);\r\n var xmaxymax = coordSys[COORD_CONVERTS[to]]([rangeOrCoordRange[0][1], rangeOrCoordRange[1][1]]);\r\n var values = [\r\n formatMinMax([xminymin[0], xmaxymax[0]]),\r\n formatMinMax([xminymin[1], xmaxymax[1]])\r\n ];\r\n return { values: values, xyMinMax: values };\r\n },\r\n polygon: function (to, coordSys, rangeOrCoordRange) {\r\n var xyMinMax = [[Infinity, -Infinity], [Infinity, -Infinity]];\r\n var values = map(rangeOrCoordRange, function (item) {\r\n var p = coordSys[COORD_CONVERTS[to]](item);\r\n xyMinMax[0][0] = Math.min(xyMinMax[0][0], p[0]);\r\n xyMinMax[1][0] = Math.min(xyMinMax[1][0], p[1]);\r\n xyMinMax[0][1] = Math.max(xyMinMax[0][1], p[0]);\r\n xyMinMax[1][1] = Math.max(xyMinMax[1][1], p[1]);\r\n return p;\r\n });\r\n return { values: values, xyMinMax: xyMinMax };\r\n }\r\n };\r\n function axisConvert(axisNameIndex, to, coordSys, rangeOrCoordRange) {\r\n if (__DEV__) {\r\n assert(coordSys.type === 'cartesian2d', 'lineX/lineY brush is available only in cartesian2d.');\r\n }\r\n var axis = coordSys.getAxis(['x', 'y'][axisNameIndex]);\r\n var values = formatMinMax(map([0, 1], function (i) {\r\n return to\r\n ? axis.coordToData(axis.toLocalCoord(rangeOrCoordRange[i]))\r\n : axis.toGlobalCoord(axis.dataToCoord(rangeOrCoordRange[i]));\r\n }));\r\n var xyMinMax = [];\r\n xyMinMax[axisNameIndex] = values;\r\n xyMinMax[1 - axisNameIndex] = [NaN, NaN];\r\n return { values: values, xyMinMax: xyMinMax };\r\n }\r\n var diffProcessor = {\r\n lineX: curry(axisDiffProcessor, 0),\r\n lineY: curry(axisDiffProcessor, 1),\r\n rect: function (values, refer, scales) {\r\n return [\r\n [values[0][0] - scales[0] * refer[0][0], values[0][1] - scales[0] * refer[0][1]],\r\n [values[1][0] - scales[1] * refer[1][0], values[1][1] - scales[1] * refer[1][1]]\r\n ];\r\n },\r\n polygon: function (values, refer, scales) {\r\n return map(values, function (item, idx) {\r\n return [item[0] - scales[0] * refer[idx][0], item[1] - scales[1] * refer[idx][1]];\r\n });\r\n }\r\n };\r\n function axisDiffProcessor(axisNameIndex, values, refer, scales) {\r\n return [\r\n values[0] - scales[axisNameIndex] * refer[0],\r\n values[1] - scales[axisNameIndex] * refer[1]\r\n ];\r\n }\r\n function getScales(xyMinMaxCurr, xyMinMaxOrigin) {\r\n var sizeCurr = getSize(xyMinMaxCurr);\r\n var sizeOrigin = getSize(xyMinMaxOrigin);\r\n var scales = [sizeCurr[0] / sizeOrigin[0], sizeCurr[1] / sizeOrigin[1]];\r\n isNaN(scales[0]) && (scales[0] = 1);\r\n isNaN(scales[1]) && (scales[1] = 1);\r\n return scales;\r\n }\r\n function getSize(xyMinMax) {\r\n return xyMinMax\r\n ? [xyMinMax[0][1] - xyMinMax[0][0], xyMinMax[1][1] - xyMinMax[1][0]]\r\n : [NaN, NaN];\r\n }\n\n var each$9 = each;\r\n var inner$h = makeInner();\r\n function push(ecModel, newSnapshot) {\r\n var storedSnapshots = getStoreSnapshots(ecModel);\r\n each$9(newSnapshot, function (batchItem, dataZoomId) {\r\n var i = storedSnapshots.length - 1;\r\n for (; i >= 0; i--) {\r\n var snapshot = storedSnapshots[i];\r\n if (snapshot[dataZoomId]) {\r\n break;\r\n }\r\n }\r\n if (i < 0) {\r\n var dataZoomModel = ecModel.queryComponents({ mainType: 'dataZoom', subType: 'select', id: dataZoomId })[0];\r\n if (dataZoomModel) {\r\n var percentRange = dataZoomModel.getPercentRange();\r\n storedSnapshots[0][dataZoomId] = {\r\n dataZoomId: dataZoomId,\r\n start: percentRange[0],\r\n end: percentRange[1]\r\n };\r\n }\r\n }\r\n });\r\n storedSnapshots.push(newSnapshot);\r\n }\r\n function pop(ecModel) {\r\n var storedSnapshots = getStoreSnapshots(ecModel);\r\n var head = storedSnapshots[storedSnapshots.length - 1];\r\n storedSnapshots.length > 1 && storedSnapshots.pop();\r\n var snapshot = {};\r\n each$9(head, function (batchItem, dataZoomId) {\r\n for (var i = storedSnapshots.length - 1; i >= 0; i--) {\r\n batchItem = storedSnapshots[i][dataZoomId];\r\n if (batchItem) {\r\n snapshot[dataZoomId] = batchItem;\r\n break;\r\n }\r\n }\r\n });\r\n return snapshot;\r\n }\r\n function clear$1(ecModel) {\r\n inner$h(ecModel).snapshots = null;\r\n }\r\n function count(ecModel) {\r\n return getStoreSnapshots(ecModel).length;\r\n }\r\n function getStoreSnapshots(ecModel) {\r\n var store = inner$h(ecModel);\r\n if (!store.snapshots) {\r\n store.snapshots = [{}];\r\n }\r\n return store.snapshots;\r\n }\n\n ComponentModel.registerSubTypeDefaulter('dataZoom', function () {\r\n return 'slider';\r\n });\n\n var DATA_ZOOM_AXIS_DIMENSIONS = [\r\n 'x', 'y', 'radius', 'angle', 'single'\r\n ];\r\n var SERIES_COORDS = ['cartesian2d', 'polar', 'singleAxis'];\r\n function isCoordSupported(seriesModel) {\r\n var coordType = seriesModel.get('coordinateSystem');\r\n return indexOf(SERIES_COORDS, coordType) >= 0;\r\n }\r\n function getAxisMainType(axisDim) {\r\n if (__DEV__) {\r\n assert(axisDim);\r\n }\r\n return axisDim + 'Axis';\r\n }\r\n function findEffectedDataZooms(ecModel, payload) {\r\n var axisRecords = createHashMap();\r\n var effectedModels = [];\r\n var effectedModelMap = createHashMap();\r\n ecModel.eachComponent({ mainType: 'dataZoom', query: payload }, function (dataZoomModel) {\r\n if (!effectedModelMap.get(dataZoomModel.uid)) {\r\n addToEffected(dataZoomModel);\r\n }\r\n });\r\n var foundNewLink;\r\n do {\r\n foundNewLink = false;\r\n ecModel.eachComponent('dataZoom', processSingle);\r\n } while (foundNewLink);\r\n function processSingle(dataZoomModel) {\r\n if (!effectedModelMap.get(dataZoomModel.uid) && isLinked(dataZoomModel)) {\r\n addToEffected(dataZoomModel);\r\n foundNewLink = true;\r\n }\r\n }\r\n function addToEffected(dataZoom) {\r\n effectedModelMap.set(dataZoom.uid, true);\r\n effectedModels.push(dataZoom);\r\n markAxisControlled(dataZoom);\r\n }\r\n function isLinked(dataZoomModel) {\r\n var isLink = false;\r\n dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\r\n var axisIdxArr = axisRecords.get(axisDim);\r\n if (axisIdxArr && axisIdxArr[axisIndex]) {\r\n isLink = true;\r\n }\r\n });\r\n return isLink;\r\n }\r\n function markAxisControlled(dataZoomModel) {\r\n dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\r\n (axisRecords.get(axisDim) || axisRecords.set(axisDim, []))[axisIndex] = true;\r\n });\r\n }\r\n return effectedModels;\r\n }\r\n function collectReferCoordSysModelInfo(dataZoomModel) {\r\n var ecModel = dataZoomModel.ecModel;\r\n var coordSysInfoWrap = {\r\n infoList: [],\r\n infoMap: createHashMap()\r\n };\r\n dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\r\n var axisModel = ecModel.getComponent(getAxisMainType(axisDim), axisIndex);\r\n if (!axisModel) {\r\n return;\r\n }\r\n var coordSysModel = axisModel.getCoordSysModel();\r\n if (!coordSysModel) {\r\n return;\r\n }\r\n var coordSysUid = coordSysModel.uid;\r\n var coordSysInfo = coordSysInfoWrap.infoMap.get(coordSysUid);\r\n if (!coordSysInfo) {\r\n coordSysInfo = { model: coordSysModel, axisModels: [] };\r\n coordSysInfoWrap.infoList.push(coordSysInfo);\r\n coordSysInfoWrap.infoMap.set(coordSysUid, coordSysInfo);\r\n }\r\n coordSysInfo.axisModels.push(axisModel);\r\n });\r\n return coordSysInfoWrap;\r\n }\n\n var DataZoomAxisInfo = (function () {\r\n function DataZoomAxisInfo() {\r\n this.indexList = [];\r\n this.indexMap = [];\r\n }\r\n DataZoomAxisInfo.prototype.add = function (axisCmptIdx) {\r\n if (!this.indexMap[axisCmptIdx]) {\r\n this.indexList.push(axisCmptIdx);\r\n this.indexMap[axisCmptIdx] = true;\r\n }\r\n };\r\n return DataZoomAxisInfo;\r\n }());\r\n var DataZoomModel = (function (_super) {\r\n __extends(DataZoomModel, _super);\r\n function DataZoomModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = DataZoomModel.type;\r\n _this._autoThrottle = true;\r\n _this._noTarget = true;\r\n _this._rangePropMode = ['percent', 'percent'];\r\n return _this;\r\n }\r\n DataZoomModel.prototype.init = function (option, parentModel, ecModel) {\r\n var inputRawOption = retrieveRawOption(option);\r\n this.settledOption = inputRawOption;\r\n this.mergeDefaultAndTheme(option, ecModel);\r\n this._doInit(inputRawOption);\r\n };\r\n DataZoomModel.prototype.mergeOption = function (newOption) {\r\n var inputRawOption = retrieveRawOption(newOption);\r\n merge(this.option, newOption, true);\r\n merge(this.settledOption, inputRawOption, true);\r\n this._doInit(inputRawOption);\r\n };\r\n DataZoomModel.prototype._doInit = function (inputRawOption) {\r\n var thisOption = this.option;\r\n this._setDefaultThrottle(inputRawOption);\r\n this._updateRangeUse(inputRawOption);\r\n var settledOption = this.settledOption;\r\n each([['start', 'startValue'], ['end', 'endValue']], function (names, index) {\r\n if (this._rangePropMode[index] === 'value') {\r\n thisOption[names[0]] = settledOption[names[0]] = null;\r\n }\r\n }, this);\r\n this._resetTarget();\r\n };\r\n DataZoomModel.prototype._resetTarget = function () {\r\n var optionOrient = this.get('orient', true);\r\n var targetAxisIndexMap = this._targetAxisInfoMap = createHashMap();\r\n var hasAxisSpecified = this._fillSpecifiedTargetAxis(targetAxisIndexMap);\r\n if (hasAxisSpecified) {\r\n this._orient = optionOrient || this._makeAutoOrientByTargetAxis();\r\n }\r\n else {\r\n this._orient = optionOrient || 'horizontal';\r\n this._fillAutoTargetAxisByOrient(targetAxisIndexMap, this._orient);\r\n }\r\n this._noTarget = true;\r\n targetAxisIndexMap.each(function (axisInfo) {\r\n if (axisInfo.indexList.length) {\r\n this._noTarget = false;\r\n }\r\n }, this);\r\n };\r\n DataZoomModel.prototype._fillSpecifiedTargetAxis = function (targetAxisIndexMap) {\r\n var hasAxisSpecified = false;\r\n each(DATA_ZOOM_AXIS_DIMENSIONS, function (axisDim) {\r\n var refering = this.getReferringComponents(getAxisMainType(axisDim), MULTIPLE_REFERRING);\r\n if (!refering.specified) {\r\n return;\r\n }\r\n hasAxisSpecified = true;\r\n var axisInfo = new DataZoomAxisInfo();\r\n each(refering.models, function (axisModel) {\r\n axisInfo.add(axisModel.componentIndex);\r\n });\r\n targetAxisIndexMap.set(axisDim, axisInfo);\r\n }, this);\r\n return hasAxisSpecified;\r\n };\r\n DataZoomModel.prototype._fillAutoTargetAxisByOrient = function (targetAxisIndexMap, orient) {\r\n var ecModel = this.ecModel;\r\n var needAuto = true;\r\n if (needAuto) {\r\n var axisDim = orient === 'vertical' ? 'y' : 'x';\r\n var axisModels = ecModel.findComponents({ mainType: axisDim + 'Axis' });\r\n setParallelAxis(axisModels, axisDim);\r\n }\r\n if (needAuto) {\r\n var axisModels = ecModel.findComponents({\r\n mainType: 'singleAxis',\r\n filter: function (axisModel) { return axisModel.get('orient', true) === orient; }\r\n });\r\n setParallelAxis(axisModels, 'single');\r\n }\r\n function setParallelAxis(axisModels, axisDim) {\r\n var axisModel = axisModels[0];\r\n if (!axisModel) {\r\n return;\r\n }\r\n var axisInfo = new DataZoomAxisInfo();\r\n axisInfo.add(axisModel.componentIndex);\r\n targetAxisIndexMap.set(axisDim, axisInfo);\r\n needAuto = false;\r\n if (axisDim === 'x' || axisDim === 'y') {\r\n var gridModel_1 = axisModel.getReferringComponents('grid', SINGLE_REFERRING).models[0];\r\n gridModel_1 && each(axisModels, function (axModel) {\r\n if (axisModel.componentIndex !== axModel.componentIndex\r\n && gridModel_1 === axModel.getReferringComponents('grid', SINGLE_REFERRING).models[0]) {\r\n axisInfo.add(axModel.componentIndex);\r\n }\r\n });\r\n }\r\n }\r\n if (needAuto) {\r\n each(DATA_ZOOM_AXIS_DIMENSIONS, function (axisDim) {\r\n if (!needAuto) {\r\n return;\r\n }\r\n var axisModels = ecModel.findComponents({\r\n mainType: getAxisMainType(axisDim),\r\n filter: function (axisModel) { return axisModel.get('type', true) === 'category'; }\r\n });\r\n if (axisModels[0]) {\r\n var axisInfo = new DataZoomAxisInfo();\r\n axisInfo.add(axisModels[0].componentIndex);\r\n targetAxisIndexMap.set(axisDim, axisInfo);\r\n needAuto = false;\r\n }\r\n }, this);\r\n }\r\n };\r\n DataZoomModel.prototype._makeAutoOrientByTargetAxis = function () {\r\n var dim;\r\n this.eachTargetAxis(function (axisDim) {\r\n !dim && (dim = axisDim);\r\n }, this);\r\n return dim === 'y' ? 'vertical' : 'horizontal';\r\n };\r\n DataZoomModel.prototype._setDefaultThrottle = function (inputRawOption) {\r\n if (inputRawOption.hasOwnProperty('throttle')) {\r\n this._autoThrottle = false;\r\n }\r\n if (this._autoThrottle) {\r\n var globalOption = this.ecModel.option;\r\n this.option.throttle = (globalOption.animation && globalOption.animationDurationUpdate > 0) ? 100 : 20;\r\n }\r\n };\r\n DataZoomModel.prototype._updateRangeUse = function (inputRawOption) {\r\n var rangePropMode = this._rangePropMode;\r\n var rangeModeInOption = this.get('rangeMode');\r\n each([['start', 'startValue'], ['end', 'endValue']], function (names, index) {\r\n var percentSpecified = inputRawOption[names[0]] != null;\r\n var valueSpecified = inputRawOption[names[1]] != null;\r\n if (percentSpecified && !valueSpecified) {\r\n rangePropMode[index] = 'percent';\r\n }\r\n else if (!percentSpecified && valueSpecified) {\r\n rangePropMode[index] = 'value';\r\n }\r\n else if (rangeModeInOption) {\r\n rangePropMode[index] = rangeModeInOption[index];\r\n }\r\n else if (percentSpecified) {\r\n rangePropMode[index] = 'percent';\r\n }\r\n });\r\n };\r\n DataZoomModel.prototype.noTarget = function () {\r\n return this._noTarget;\r\n };\r\n DataZoomModel.prototype.getFirstTargetAxisModel = function () {\r\n var firstAxisModel;\r\n this.eachTargetAxis(function (axisDim, axisIndex) {\r\n if (firstAxisModel == null) {\r\n firstAxisModel = this.ecModel.getComponent(getAxisMainType(axisDim), axisIndex);\r\n }\r\n }, this);\r\n return firstAxisModel;\r\n };\r\n DataZoomModel.prototype.eachTargetAxis = function (callback, context) {\r\n this._targetAxisInfoMap.each(function (axisInfo, axisDim) {\r\n each(axisInfo.indexList, function (axisIndex) {\r\n callback.call(context, axisDim, axisIndex);\r\n });\r\n });\r\n };\r\n DataZoomModel.prototype.getAxisProxy = function (axisDim, axisIndex) {\r\n var axisModel = this.getAxisModel(axisDim, axisIndex);\r\n if (axisModel) {\r\n return axisModel.__dzAxisProxy;\r\n }\r\n };\r\n DataZoomModel.prototype.getAxisModel = function (axisDim, axisIndex) {\r\n if (__DEV__) {\r\n assert(axisDim && axisIndex != null);\r\n }\r\n var axisInfo = this._targetAxisInfoMap.get(axisDim);\r\n if (axisInfo && axisInfo.indexMap[axisIndex]) {\r\n return this.ecModel.getComponent(getAxisMainType(axisDim), axisIndex);\r\n }\r\n };\r\n DataZoomModel.prototype.setRawRange = function (opt) {\r\n var thisOption = this.option;\r\n var settledOption = this.settledOption;\r\n each([['start', 'startValue'], ['end', 'endValue']], function (names) {\r\n if (opt[names[0]] != null || opt[names[1]] != null) {\r\n thisOption[names[0]] = settledOption[names[0]] = opt[names[0]];\r\n thisOption[names[1]] = settledOption[names[1]] = opt[names[1]];\r\n }\r\n }, this);\r\n this._updateRangeUse(opt);\r\n };\r\n DataZoomModel.prototype.setCalculatedRange = function (opt) {\r\n var option = this.option;\r\n each(['start', 'startValue', 'end', 'endValue'], function (name) {\r\n option[name] = opt[name];\r\n });\r\n };\r\n DataZoomModel.prototype.getPercentRange = function () {\r\n var axisProxy = this.findRepresentativeAxisProxy();\r\n if (axisProxy) {\r\n return axisProxy.getDataPercentWindow();\r\n }\r\n };\r\n DataZoomModel.prototype.getValueRange = function (axisDim, axisIndex) {\r\n if (axisDim == null && axisIndex == null) {\r\n var axisProxy = this.findRepresentativeAxisProxy();\r\n if (axisProxy) {\r\n return axisProxy.getDataValueWindow();\r\n }\r\n }\r\n else {\r\n return this.getAxisProxy(axisDim, axisIndex).getDataValueWindow();\r\n }\r\n };\r\n DataZoomModel.prototype.findRepresentativeAxisProxy = function (axisModel) {\r\n if (axisModel) {\r\n return axisModel.__dzAxisProxy;\r\n }\r\n var firstProxy;\r\n var axisDimList = this._targetAxisInfoMap.keys();\r\n for (var i = 0; i < axisDimList.length; i++) {\r\n var axisDim = axisDimList[i];\r\n var axisInfo = this._targetAxisInfoMap.get(axisDim);\r\n for (var j = 0; j < axisInfo.indexList.length; j++) {\r\n var proxy = this.getAxisProxy(axisDim, axisInfo.indexList[j]);\r\n if (proxy.hostedBy(this)) {\r\n return proxy;\r\n }\r\n if (!firstProxy) {\r\n firstProxy = proxy;\r\n }\r\n }\r\n }\r\n return firstProxy;\r\n };\r\n DataZoomModel.prototype.getRangePropMode = function () {\r\n return this._rangePropMode.slice();\r\n };\r\n DataZoomModel.prototype.getOrient = function () {\r\n if (__DEV__) {\r\n assert(this._orient);\r\n }\r\n return this._orient;\r\n };\r\n DataZoomModel.type = 'dataZoom';\r\n DataZoomModel.dependencies = [\r\n 'xAxis', 'yAxis', 'radiusAxis', 'angleAxis', 'singleAxis', 'series', 'toolbox'\r\n ];\r\n DataZoomModel.defaultOption = {\r\n zlevel: 0,\r\n z: 4,\r\n filterMode: 'filter',\r\n start: 0,\r\n end: 100\r\n };\r\n return DataZoomModel;\r\n }(ComponentModel));\r\n function retrieveRawOption(option) {\r\n var ret = {};\r\n each(['start', 'end', 'startValue', 'endValue', 'throttle'], function (name) {\r\n option.hasOwnProperty(name) && (ret[name] = option[name]);\r\n });\r\n return ret;\r\n }\n\n var DataZoomView = (function (_super) {\r\n __extends(DataZoomView, _super);\r\n function DataZoomView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = DataZoomView.type;\r\n return _this;\r\n }\r\n DataZoomView.prototype.render = function (dataZoomModel, ecModel, api, payload) {\r\n this.dataZoomModel = dataZoomModel;\r\n this.ecModel = ecModel;\r\n this.api = api;\r\n };\r\n DataZoomView.type = 'dataZoom';\r\n return DataZoomView;\r\n }(ComponentView));\r\n ComponentView.registerClass(DataZoomView);\n\n var SelectDataZoomModel = (function (_super) {\r\n __extends(SelectDataZoomModel, _super);\r\n function SelectDataZoomModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = SelectDataZoomModel.type;\r\n return _this;\r\n }\r\n SelectDataZoomModel.type = 'dataZoom.select';\r\n return SelectDataZoomModel;\r\n }(DataZoomModel));\r\n ComponentModel.registerClass(SelectDataZoomModel);\n\n var SelectDataZoomView = (function (_super) {\r\n __extends(SelectDataZoomView, _super);\r\n function SelectDataZoomView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = SelectDataZoomView.type;\r\n return _this;\r\n }\r\n SelectDataZoomView.type = 'dataZoom.select';\r\n return SelectDataZoomView;\r\n }(DataZoomView));\r\n ComponentView.registerClass(SelectDataZoomView);\n\n var each$a = each;\r\n var asc$1 = asc;\r\n var AxisProxy = (function () {\r\n function AxisProxy(dimName, axisIndex, dataZoomModel, ecModel) {\r\n this._dimName = dimName;\r\n this._axisIndex = axisIndex;\r\n this.ecModel = ecModel;\r\n this._dataZoomModel = dataZoomModel;\r\n }\r\n AxisProxy.prototype.hostedBy = function (dataZoomModel) {\r\n return this._dataZoomModel === dataZoomModel;\r\n };\r\n AxisProxy.prototype.getDataValueWindow = function () {\r\n return this._valueWindow.slice();\r\n };\r\n AxisProxy.prototype.getDataPercentWindow = function () {\r\n return this._percentWindow.slice();\r\n };\r\n AxisProxy.prototype.getTargetSeriesModels = function () {\r\n var seriesModels = [];\r\n this.ecModel.eachSeries(function (seriesModel) {\r\n if (isCoordSupported(seriesModel)) {\r\n var axisMainType = getAxisMainType(this._dimName);\r\n var axisModel = seriesModel.getReferringComponents(axisMainType, SINGLE_REFERRING).models[0];\r\n if (axisModel && this._axisIndex === axisModel.componentIndex) {\r\n seriesModels.push(seriesModel);\r\n }\r\n }\r\n }, this);\r\n return seriesModels;\r\n };\r\n AxisProxy.prototype.getAxisModel = function () {\r\n return this.ecModel.getComponent(this._dimName + 'Axis', this._axisIndex);\r\n };\r\n AxisProxy.prototype.getMinMaxSpan = function () {\r\n return clone(this._minMaxSpan);\r\n };\r\n AxisProxy.prototype.calculateDataWindow = function (opt) {\r\n var dataExtent = this._dataExtent;\r\n var axisModel = this.getAxisModel();\r\n var scale = axisModel.axis.scale;\r\n var rangePropMode = this._dataZoomModel.getRangePropMode();\r\n var percentExtent = [0, 100];\r\n var percentWindow = [];\r\n var valueWindow = [];\r\n var hasPropModeValue;\r\n each$a(['start', 'end'], function (prop, idx) {\r\n var boundPercent = opt[prop];\r\n var boundValue = opt[prop + 'Value'];\r\n if (rangePropMode[idx] === 'percent') {\r\n boundPercent == null && (boundPercent = percentExtent[idx]);\r\n boundValue = scale.parse(linearMap(boundPercent, percentExtent, dataExtent));\r\n }\r\n else {\r\n hasPropModeValue = true;\r\n boundValue = boundValue == null ? dataExtent[idx] : scale.parse(boundValue);\r\n boundPercent = linearMap(boundValue, dataExtent, percentExtent);\r\n }\r\n valueWindow[idx] = boundValue;\r\n percentWindow[idx] = boundPercent;\r\n });\r\n asc$1(valueWindow);\r\n asc$1(percentWindow);\r\n var spans = this._minMaxSpan;\r\n hasPropModeValue\r\n ? restrictSet(valueWindow, percentWindow, dataExtent, percentExtent, false)\r\n : restrictSet(percentWindow, valueWindow, percentExtent, dataExtent, true);\r\n function restrictSet(fromWindow, toWindow, fromExtent, toExtent, toValue) {\r\n var suffix = toValue ? 'Span' : 'ValueSpan';\r\n sliderMove(0, fromWindow, fromExtent, 'all', spans['min' + suffix], spans['max' + suffix]);\r\n for (var i = 0; i < 2; i++) {\r\n toWindow[i] = linearMap(fromWindow[i], fromExtent, toExtent, true);\r\n toValue && (toWindow[i] = scale.parse(toWindow[i]));\r\n }\r\n }\r\n return {\r\n valueWindow: valueWindow,\r\n percentWindow: percentWindow\r\n };\r\n };\r\n AxisProxy.prototype.reset = function (dataZoomModel) {\r\n if (dataZoomModel !== this._dataZoomModel) {\r\n return;\r\n }\r\n var targetSeries = this.getTargetSeriesModels();\r\n this._dataExtent = calculateDataExtent(this, this._dimName, targetSeries);\r\n this._updateMinMaxSpan();\r\n var dataWindow = this.calculateDataWindow(dataZoomModel.settledOption);\r\n this._valueWindow = dataWindow.valueWindow;\r\n this._percentWindow = dataWindow.percentWindow;\r\n this._setAxisModel();\r\n };\r\n AxisProxy.prototype.filterData = function (dataZoomModel, api) {\r\n if (dataZoomModel !== this._dataZoomModel) {\r\n return;\r\n }\r\n var axisDim = this._dimName;\r\n var seriesModels = this.getTargetSeriesModels();\r\n var filterMode = dataZoomModel.get('filterMode');\r\n var valueWindow = this._valueWindow;\r\n if (filterMode === 'none') {\r\n return;\r\n }\r\n each$a(seriesModels, function (seriesModel) {\r\n var seriesData = seriesModel.getData();\r\n var dataDims = seriesData.mapDimensionsAll(axisDim);\r\n if (!dataDims.length) {\r\n return;\r\n }\r\n if (filterMode === 'weakFilter') {\r\n seriesData.filterSelf(function (dataIndex) {\r\n var leftOut;\r\n var rightOut;\r\n var hasValue;\r\n for (var i = 0; i < dataDims.length; i++) {\r\n var value = seriesData.get(dataDims[i], dataIndex);\r\n var thisHasValue = !isNaN(value);\r\n var thisLeftOut = value < valueWindow[0];\r\n var thisRightOut = value > valueWindow[1];\r\n if (thisHasValue && !thisLeftOut && !thisRightOut) {\r\n return true;\r\n }\r\n thisHasValue && (hasValue = true);\r\n thisLeftOut && (leftOut = true);\r\n thisRightOut && (rightOut = true);\r\n }\r\n return hasValue && leftOut && rightOut;\r\n });\r\n }\r\n else {\r\n each$a(dataDims, function (dim) {\r\n if (filterMode === 'empty') {\r\n seriesModel.setData(seriesData = seriesData.map(dim, function (value) {\r\n return !isInWindow(value) ? NaN : value;\r\n }));\r\n }\r\n else {\r\n var range = {};\r\n range[dim] = valueWindow;\r\n seriesData.selectRange(range);\r\n }\r\n });\r\n }\r\n each$a(dataDims, function (dim) {\r\n seriesData.setApproximateExtent(valueWindow, dim);\r\n });\r\n });\r\n function isInWindow(value) {\r\n return value >= valueWindow[0] && value <= valueWindow[1];\r\n }\r\n };\r\n AxisProxy.prototype._updateMinMaxSpan = function () {\r\n var minMaxSpan = this._minMaxSpan = {};\r\n var dataZoomModel = this._dataZoomModel;\r\n var dataExtent = this._dataExtent;\r\n each$a(['min', 'max'], function (minMax) {\r\n var percentSpan = dataZoomModel.get(minMax + 'Span');\r\n var valueSpan = dataZoomModel.get(minMax + 'ValueSpan');\r\n valueSpan != null && (valueSpan = this.getAxisModel().axis.scale.parse(valueSpan));\r\n if (valueSpan != null) {\r\n percentSpan = linearMap(dataExtent[0] + valueSpan, dataExtent, [0, 100], true);\r\n }\r\n else if (percentSpan != null) {\r\n valueSpan = linearMap(percentSpan, [0, 100], dataExtent, true) - dataExtent[0];\r\n }\r\n minMaxSpan[minMax + 'Span'] = percentSpan;\r\n minMaxSpan[minMax + 'ValueSpan'] = valueSpan;\r\n }, this);\r\n };\r\n AxisProxy.prototype._setAxisModel = function () {\r\n var axisModel = this.getAxisModel();\r\n var percentWindow = this._percentWindow;\r\n var valueWindow = this._valueWindow;\r\n if (!percentWindow) {\r\n return;\r\n }\r\n var precision = getPixelPrecision(valueWindow, [0, 500]);\r\n precision = Math.min(precision, 20);\r\n var rawExtentInfo = axisModel.axis.scale.rawExtentInfo;\r\n if (percentWindow[0] !== 0) {\r\n rawExtentInfo.setDeterminedMinMax('min', +valueWindow[0].toFixed(precision));\r\n }\r\n if (percentWindow[1] !== 100) {\r\n rawExtentInfo.setDeterminedMinMax('max', +valueWindow[1].toFixed(precision));\r\n }\r\n rawExtentInfo.freeze();\r\n };\r\n return AxisProxy;\r\n }());\r\n function calculateDataExtent(axisProxy, axisDim, seriesModels) {\r\n var dataExtent = [Infinity, -Infinity];\r\n each$a(seriesModels, function (seriesModel) {\r\n unionAxisExtentFromData(dataExtent, seriesModel.getData(), axisDim);\r\n });\r\n var axisModel = axisProxy.getAxisModel();\r\n var rawExtentResult = ensureScaleRawExtentInfo(axisModel.axis.scale, axisModel, dataExtent).calculate();\r\n return [rawExtentResult.min, rawExtentResult.max];\r\n }\n\n registerProcessor(PRIORITY.PROCESSOR.FILTER, {\r\n getTargetSeries: function (ecModel) {\r\n function eachAxisModel(cb) {\r\n ecModel.eachComponent('dataZoom', function (dataZoomModel) {\r\n dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\r\n var axisModel = ecModel.getComponent(getAxisMainType(axisDim), axisIndex);\r\n cb(axisDim, axisIndex, axisModel, dataZoomModel);\r\n });\r\n });\r\n }\r\n eachAxisModel(function (axisDim, axisIndex, axisModel, dataZoomModel) {\r\n axisModel.__dzAxisProxy = null;\r\n });\r\n var proxyList = [];\r\n eachAxisModel(function (axisDim, axisIndex, axisModel, dataZoomModel) {\r\n if (!axisModel.__dzAxisProxy) {\r\n axisModel.__dzAxisProxy = new AxisProxy(axisDim, axisIndex, dataZoomModel, ecModel);\r\n proxyList.push(axisModel.__dzAxisProxy);\r\n }\r\n });\r\n var seriesModelMap = createHashMap();\r\n each(proxyList, function (axisProxy) {\r\n each(axisProxy.getTargetSeriesModels(), function (seriesModel) {\r\n seriesModelMap.set(seriesModel.uid, seriesModel);\r\n });\r\n });\r\n return seriesModelMap;\r\n },\r\n overallReset: function (ecModel, api) {\r\n ecModel.eachComponent('dataZoom', function (dataZoomModel) {\r\n dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\r\n dataZoomModel.getAxisProxy(axisDim, axisIndex).reset(dataZoomModel);\r\n });\r\n dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\r\n dataZoomModel.getAxisProxy(axisDim, axisIndex).filterData(dataZoomModel, api);\r\n });\r\n });\r\n ecModel.eachComponent('dataZoom', function (dataZoomModel) {\r\n var axisProxy = dataZoomModel.findRepresentativeAxisProxy();\r\n if (axisProxy) {\r\n var percentRange = axisProxy.getDataPercentWindow();\r\n var valueRange = axisProxy.getDataValueWindow();\r\n dataZoomModel.setCalculatedRange({\r\n start: percentRange[0],\r\n end: percentRange[1],\r\n startValue: valueRange[0],\r\n endValue: valueRange[1]\r\n });\r\n }\r\n });\r\n }\r\n });\n\n registerAction('dataZoom', function (payload, ecModel) {\r\n var effectedModels = findEffectedDataZooms(ecModel, payload);\r\n each(effectedModels, function (dataZoomModel) {\r\n dataZoomModel.setRawRange({\r\n start: payload.start,\r\n end: payload.end,\r\n startValue: payload.startValue,\r\n endValue: payload.endValue\r\n });\r\n });\r\n });\n\n var each$b = each;\r\n var DATA_ZOOM_ID_BASE = makeInternalComponentId('toolbox-dataZoom_');\r\n var DataZoomFeature = (function (_super) {\r\n __extends(DataZoomFeature, _super);\r\n function DataZoomFeature() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n DataZoomFeature.prototype.render = function (featureModel, ecModel, api, payload) {\r\n if (!this.brushController) {\r\n this.brushController = new BrushController(api.getZr());\r\n this.brushController.on('brush', bind(this._onBrush, this))\r\n .mount();\r\n }\r\n updateZoomBtnStatus(featureModel, ecModel, this, payload, api);\r\n updateBackBtnStatus(featureModel, ecModel);\r\n };\r\n DataZoomFeature.prototype.onclick = function (ecModel, api, type) {\r\n handlers$1[type].call(this);\r\n };\r\n DataZoomFeature.prototype.remove = function (ecModel, api) {\r\n this.brushController.unmount();\r\n };\r\n DataZoomFeature.prototype.dispose = function (ecModel, api) {\r\n this.brushController.dispose();\r\n };\r\n DataZoomFeature.prototype._onBrush = function (eventParam) {\r\n var areas = eventParam.areas;\r\n if (!eventParam.isEnd || !areas.length) {\r\n return;\r\n }\r\n var snapshot = {};\r\n var ecModel = this.ecModel;\r\n this.brushController.updateCovers([]);\r\n var brushTargetManager = new BrushTargetManager(makeAxisFinder(this.model), ecModel, { include: ['grid'] });\r\n brushTargetManager.matchOutputRanges(areas, ecModel, function (area, coordRange, coordSys) {\r\n if (coordSys.type !== 'cartesian2d') {\r\n return;\r\n }\r\n var brushType = area.brushType;\r\n if (brushType === 'rect') {\r\n setBatch('x', coordSys, coordRange[0]);\r\n setBatch('y', coordSys, coordRange[1]);\r\n }\r\n else {\r\n setBatch({ lineX: 'x', lineY: 'y' }[brushType], coordSys, coordRange);\r\n }\r\n });\r\n push(ecModel, snapshot);\r\n this._dispatchZoomAction(snapshot);\r\n function setBatch(dimName, coordSys, minMax) {\r\n var axis = coordSys.getAxis(dimName);\r\n var axisModel = axis.model;\r\n var dataZoomModel = findDataZoom(dimName, axisModel, ecModel);\r\n var minMaxSpan = dataZoomModel.findRepresentativeAxisProxy(axisModel).getMinMaxSpan();\r\n if (minMaxSpan.minValueSpan != null || minMaxSpan.maxValueSpan != null) {\r\n minMax = sliderMove(0, minMax.slice(), axis.scale.getExtent(), 0, minMaxSpan.minValueSpan, minMaxSpan.maxValueSpan);\r\n }\r\n dataZoomModel && (snapshot[dataZoomModel.id] = {\r\n dataZoomId: dataZoomModel.id,\r\n startValue: minMax[0],\r\n endValue: minMax[1]\r\n });\r\n }\r\n function findDataZoom(dimName, axisModel, ecModel) {\r\n var found;\r\n ecModel.eachComponent({ mainType: 'dataZoom', subType: 'select' }, function (dzModel) {\r\n var has = dzModel.getAxisModel(dimName, axisModel.componentIndex);\r\n has && (found = dzModel);\r\n });\r\n return found;\r\n }\r\n };\r\n DataZoomFeature.prototype._dispatchZoomAction = function (snapshot) {\r\n var batch = [];\r\n each$b(snapshot, function (batchItem, dataZoomId) {\r\n batch.push(clone(batchItem));\r\n });\r\n batch.length && this.api.dispatchAction({\r\n type: 'dataZoom',\r\n from: this.uid,\r\n batch: batch\r\n });\r\n };\r\n DataZoomFeature.getDefaultOption = function (ecModel) {\r\n var defaultOption = {\r\n show: true,\r\n filterMode: 'filter',\r\n icon: {\r\n zoom: 'M0,13.5h26.9 M13.5,26.9V0 M32.1,13.5H58V58H13.5 V32.1',\r\n back: 'M22,1.4L9.9,13.5l12.3,12.3 M10.3,13.5H54.9v44.6 H10.3v-26'\r\n },\r\n title: ecModel.getLocale(['toolbox', 'dataZoom', 'title']),\r\n brushStyle: {\r\n borderWidth: 0,\r\n color: 'rgba(210,219,238,0.2)'\r\n }\r\n };\r\n return defaultOption;\r\n };\r\n return DataZoomFeature;\r\n }(ToolboxFeature));\r\n var handlers$1 = {\r\n zoom: function () {\r\n var nextActive = !this.isZoomActive;\r\n this.api.dispatchAction({\r\n type: 'takeGlobalCursor',\r\n key: 'dataZoomSelect',\r\n dataZoomSelectActive: nextActive\r\n });\r\n },\r\n back: function () {\r\n this._dispatchZoomAction(pop(this.ecModel));\r\n }\r\n };\r\n function makeAxisFinder(dzFeatureModel) {\r\n var setting = {\r\n xAxisIndex: dzFeatureModel.get('xAxisIndex', true),\r\n yAxisIndex: dzFeatureModel.get('yAxisIndex', true),\r\n xAxisId: dzFeatureModel.get('xAxisId', true),\r\n yAxisId: dzFeatureModel.get('yAxisId', true)\r\n };\r\n if (setting.xAxisIndex == null && setting.xAxisId == null) {\r\n setting.xAxisIndex = 'all';\r\n }\r\n if (setting.yAxisIndex == null && setting.yAxisId == null) {\r\n setting.yAxisIndex = 'all';\r\n }\r\n return setting;\r\n }\r\n function updateBackBtnStatus(featureModel, ecModel) {\r\n featureModel.setIconStatus('back', count(ecModel) > 1 ? 'emphasis' : 'normal');\r\n }\r\n function updateZoomBtnStatus(featureModel, ecModel, view, payload, api) {\r\n var zoomActive = view.isZoomActive;\r\n if (payload && payload.type === 'takeGlobalCursor') {\r\n zoomActive = payload.key === 'dataZoomSelect'\r\n ? payload.dataZoomSelectActive : false;\r\n }\r\n view.isZoomActive = zoomActive;\r\n featureModel.setIconStatus('zoom', zoomActive ? 'emphasis' : 'normal');\r\n var brushTargetManager = new BrushTargetManager(makeAxisFinder(featureModel), ecModel, { include: ['grid'] });\r\n var panels = brushTargetManager.makePanelOpts(api, function (targetInfo) {\r\n return (targetInfo.xAxisDeclared && !targetInfo.yAxisDeclared)\r\n ? 'lineX'\r\n : (!targetInfo.xAxisDeclared && targetInfo.yAxisDeclared)\r\n ? 'lineY'\r\n : 'rect';\r\n });\r\n view.brushController\r\n .setPanels(panels)\r\n .enableBrush((zoomActive && panels.length)\r\n ? {\r\n brushType: 'auto',\r\n brushStyle: featureModel.getModel('brushStyle').getItemStyle()\r\n }\r\n : false);\r\n }\r\n registerFeature('dataZoom', DataZoomFeature);\r\n registerInternalOptionCreator('dataZoom', function (ecModel) {\r\n var toolboxModel = ecModel.getComponent('toolbox', 0);\r\n if (!toolboxModel) {\r\n return;\r\n }\r\n var dzFeatureModel = toolboxModel.getModel(['feature', 'dataZoom']);\r\n var dzOptions = [];\r\n var finder = makeAxisFinder(dzFeatureModel);\r\n var finderResult = parseFinder(ecModel, finder);\r\n each$b(finderResult.xAxisModels, function (axisModel) { return buildInternalOptions(axisModel, 'xAxis', 'xAxisIndex'); });\r\n each$b(finderResult.yAxisModels, function (axisModel) { return buildInternalOptions(axisModel, 'yAxis', 'yAxisIndex'); });\r\n function buildInternalOptions(axisModel, axisMainType, axisIndexPropName) {\r\n var axisIndex = axisModel.componentIndex;\r\n var newOpt = {\r\n type: 'select',\r\n $fromToolbox: true,\r\n filterMode: dzFeatureModel.get('filterMode', true) || 'filter',\r\n id: DATA_ZOOM_ID_BASE + axisMainType + axisIndex\r\n };\r\n newOpt[axisIndexPropName] = axisIndex;\r\n dzOptions.push(newOpt);\r\n }\r\n return dzOptions;\r\n });\n\n var RestoreOption = (function (_super) {\r\n __extends(RestoreOption, _super);\r\n function RestoreOption() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n RestoreOption.prototype.onclick = function (ecModel, api) {\r\n clear$1(ecModel);\r\n api.dispatchAction({\r\n type: 'restore',\r\n from: this.uid\r\n });\r\n };\r\n RestoreOption.getDefaultOption = function (ecModel) {\r\n var defaultOption = {\r\n show: true,\r\n icon: 'M3.8,33.4 M47,18.9h9.8V8.7 M56.3,20.1 C52.1,9,40.5,0.6,26.8,2.1C12.6,3.7,1.6,16.2,2.1,30.6 M13,41.1H3.1v10.2 M3.7,39.9c4.2,11.1,15.8,19.5,29.5,18 c14.2-1.6,25.2-14.1,24.7-28.5',\r\n title: ecModel.getLocale(['toolbox', 'restore', 'title'])\r\n };\r\n return defaultOption;\r\n };\r\n return RestoreOption;\r\n }(ToolboxFeature));\r\n registerFeature('restore', RestoreOption);\r\n registerAction({ type: 'restore', event: 'restore', update: 'prepareAndUpdate' }, function (payload, ecModel) {\r\n ecModel.resetOption('recreate');\r\n });\n\n var TooltipModel = (function (_super) {\r\n __extends(TooltipModel, _super);\r\n function TooltipModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = TooltipModel.type;\r\n return _this;\r\n }\r\n TooltipModel.type = 'tooltip';\r\n TooltipModel.dependencies = ['axisPointer'];\r\n TooltipModel.defaultOption = {\r\n zlevel: 0,\r\n z: 60,\r\n show: true,\r\n showContent: true,\r\n trigger: 'item',\r\n triggerOn: 'mousemove|click',\r\n alwaysShowContent: false,\r\n displayMode: 'single',\r\n renderMode: 'auto',\r\n confine: null,\r\n showDelay: 0,\r\n hideDelay: 100,\r\n transitionDuration: 0.4,\r\n enterable: false,\r\n backgroundColor: '#fff',\r\n shadowBlur: 10,\r\n shadowColor: 'rgba(0, 0, 0, .2)',\r\n shadowOffsetX: 1,\r\n shadowOffsetY: 2,\r\n borderColor: '#333',\r\n borderRadius: 4,\r\n borderWidth: 1,\r\n padding: null,\r\n extraCssText: '',\r\n axisPointer: {\r\n type: 'line',\r\n axis: 'auto',\r\n animation: 'auto',\r\n animationDurationUpdate: 200,\r\n animationEasingUpdate: 'exponentialOut',\r\n crossStyle: {\r\n color: '#999',\r\n width: 1,\r\n type: 'dashed',\r\n textStyle: {}\r\n }\r\n },\r\n textStyle: {\r\n color: '#666',\r\n fontSize: 14\r\n }\r\n };\r\n return TooltipModel;\r\n }(ComponentModel));\r\n ComponentModel.registerClass(TooltipModel);\n\n function shouldTooltipConfine(tooltipModel) {\r\n var confineOption = tooltipModel.get('confine');\r\n return confineOption != null\r\n ? !!confineOption\r\n : tooltipModel.get('renderMode') === 'richText';\r\n }\n\n var vendors = ['-ms-', '-moz-', '-o-', '-webkit-', ''];\r\n var gCssText = 'position:absolute;display:block;border-style:solid;white-space:nowrap;z-index:9999999;';\r\n function mirrorPos(pos) {\r\n pos = pos === 'left'\r\n ? 'right'\r\n : pos === 'right'\r\n ? 'left'\r\n : pos === 'top'\r\n ? 'bottom'\r\n : 'top';\r\n return pos;\r\n }\r\n function assembleArrow(backgroundColor, borderColor, arrowPosition) {\r\n if (!isString(arrowPosition) || arrowPosition === 'inside') {\r\n return '';\r\n }\r\n borderColor = convertToColorString(borderColor);\r\n var arrowPos = mirrorPos(arrowPosition);\r\n var positionStyle = '';\r\n var transformStyle = '';\r\n if (indexOf(['left', 'right'], arrowPos) > -1) {\r\n positionStyle = arrowPos + \":-6px;top:50%;\";\r\n transformStyle = \"translateY(-50%) rotate(\" + (arrowPos === 'left' ? -225 : -45) + \"deg)\";\r\n }\r\n else {\r\n positionStyle = arrowPos + \":-6px;left:50%;\";\r\n transformStyle = \"translateX(-50%) rotate(\" + (arrowPos === 'top' ? 225 : 45) + \"deg)\";\r\n }\r\n transformStyle = map(vendors, function (vendorPrefix) {\r\n return vendorPrefix + 'transform:' + transformStyle;\r\n }).join(';');\r\n var styleCss = [\r\n 'position:absolute;width:10px;height:10px;',\r\n \"\" + positionStyle + transformStyle + \";\",\r\n \"border-bottom: \" + borderColor + \" solid 1px;\",\r\n \"border-right: \" + borderColor + \" solid 1px;\",\r\n \"background-color: \" + backgroundColor + \";\",\r\n 'box-shadow: 8px 8px 16px -3px #000;'\r\n ];\r\n return \"<div style=\\\"\" + styleCss.join('') + \"\\\"></div>\";\r\n }\r\n function assembleTransition(duration, onlyFade) {\r\n var transitionCurve = 'cubic-bezier(0.23, 1, 0.32, 1)';\r\n var transitionText = 'opacity ' + (duration / 2) + 's ' + transitionCurve + ','\r\n + 'visibility ' + (duration / 2) + 's ' + transitionCurve;\r\n if (!onlyFade) {\r\n transitionText += ',left ' + duration + 's ' + transitionCurve\r\n + ',top ' + duration + 's ' + transitionCurve;\r\n }\r\n return map(vendors, function (vendorPrefix) {\r\n return vendorPrefix + 'transition:' + transitionText;\r\n }).join(';');\r\n }\r\n function assembleFont(textStyleModel) {\r\n var cssText = [];\r\n var fontSize = textStyleModel.get('fontSize');\r\n var color = textStyleModel.getTextColor();\r\n color && cssText.push('color:' + color);\r\n cssText.push('font:' + textStyleModel.getFont());\r\n fontSize\r\n && cssText.push('line-height:' + Math.round(fontSize * 3 / 2) + 'px');\r\n var shadowColor = textStyleModel.get('textShadowColor');\r\n var shadowBlur = textStyleModel.get('textShadowBlur') || 0;\r\n var shadowOffsetX = textStyleModel.get('textShadowOffsetX') || 0;\r\n var shadowOffsetY = textStyleModel.get('textShadowOffsetY') || 0;\r\n shadowColor && shadowBlur\r\n && cssText.push('text-shadow:' + shadowOffsetX + 'px ' + shadowOffsetY + 'px '\r\n + shadowBlur + 'px ' + shadowColor);\r\n each(['decoration', 'align'], function (name) {\r\n var val = textStyleModel.get(name);\r\n val && cssText.push('text-' + name + ':' + val);\r\n });\r\n return cssText.join(';');\r\n }\r\n function assembleCssText(tooltipModel, enableTransition, onlyFade) {\r\n var cssText = [];\r\n var transitionDuration = tooltipModel.get('transitionDuration');\r\n var backgroundColor = tooltipModel.get('backgroundColor');\r\n var shadowBlur = tooltipModel.get('shadowBlur');\r\n var shadowColor = tooltipModel.get('shadowColor');\r\n var shadowOffsetX = tooltipModel.get('shadowOffsetX');\r\n var shadowOffsetY = tooltipModel.get('shadowOffsetY');\r\n var textStyleModel = tooltipModel.getModel('textStyle');\r\n var padding = getPaddingFromTooltipModel(tooltipModel, 'html');\r\n var boxShadow = shadowOffsetX + \"px \" + shadowOffsetY + \"px \" + shadowBlur + \"px \" + shadowColor;\r\n cssText.push('box-shadow:' + boxShadow);\r\n enableTransition && transitionDuration && cssText.push(assembleTransition(transitionDuration, onlyFade));\r\n if (backgroundColor) {\r\n if (env.canvasSupported) {\r\n cssText.push('background-Color:' + backgroundColor);\r\n }\r\n else {\r\n cssText.push('background-Color:#' + toHex(backgroundColor));\r\n cssText.push('filter:alpha(opacity=70)');\r\n }\r\n }\r\n each(['width', 'color', 'radius'], function (name) {\r\n var borderName = 'border-' + name;\r\n var camelCase = toCamelCase(borderName);\r\n var val = tooltipModel.get(camelCase);\r\n val != null\r\n && cssText.push(borderName + ':' + val + (name === 'color' ? '' : 'px'));\r\n });\r\n cssText.push(assembleFont(textStyleModel));\r\n if (padding != null) {\r\n cssText.push('padding:' + normalizeCssArray$1(padding).join('px ') + 'px');\r\n }\r\n return cssText.join(';') + ';';\r\n }\r\n function makeStyleCoord(out, zr, appendToBody, zrX, zrY) {\r\n var zrPainter = zr && zr.painter;\r\n if (appendToBody) {\r\n var zrViewportRoot = zrPainter && zrPainter.getViewportRoot();\r\n if (zrViewportRoot) {\r\n transformLocalCoord(out, zrViewportRoot, document.body, zrX, zrY);\r\n }\r\n }\r\n else {\r\n out[0] = zrX;\r\n out[1] = zrY;\r\n var viewportRootOffset = zrPainter && zrPainter.getViewportRootOffset();\r\n if (viewportRootOffset) {\r\n out[0] += viewportRootOffset.offsetLeft;\r\n out[1] += viewportRootOffset.offsetTop;\r\n }\r\n }\r\n out[2] = out[0] / zr.getWidth();\r\n out[3] = out[1] / zr.getHeight();\r\n }\r\n var TooltipHTMLContent = (function () {\r\n function TooltipHTMLContent(container, api, opt) {\r\n this._show = false;\r\n this._styleCoord = [0, 0, 0, 0];\r\n this._enterable = true;\r\n this._firstShow = true;\r\n this._longHide = true;\r\n if (env.wxa) {\r\n return null;\r\n }\r\n var el = document.createElement('div');\r\n el.domBelongToZr = true;\r\n this.el = el;\r\n var zr = this._zr = api.getZr();\r\n var appendToBody = this._appendToBody = opt && opt.appendToBody;\r\n makeStyleCoord(this._styleCoord, zr, appendToBody, api.getWidth() / 2, api.getHeight() / 2);\r\n if (appendToBody) {\r\n document.body.appendChild(el);\r\n }\r\n else {\r\n container.appendChild(el);\r\n }\r\n this._container = container;\r\n var self = this;\r\n el.onmouseenter = function () {\r\n if (self._enterable) {\r\n clearTimeout(self._hideTimeout);\r\n self._show = true;\r\n }\r\n self._inContent = true;\r\n };\r\n el.onmousemove = function (e) {\r\n e = e || window.event;\r\n if (!self._enterable) {\r\n var handler = zr.handler;\r\n var zrViewportRoot = zr.painter.getViewportRoot();\r\n normalizeEvent(zrViewportRoot, e, true);\r\n handler.dispatch('mousemove', e);\r\n }\r\n };\r\n el.onmouseleave = function () {\r\n self._inContent = false;\r\n if (self._enterable) {\r\n if (self._show) {\r\n self.hideLater(self._hideDelay);\r\n }\r\n }\r\n };\r\n }\r\n TooltipHTMLContent.prototype.update = function (tooltipModel) {\r\n var container = this._container;\r\n var stl = container.currentStyle\r\n || document.defaultView.getComputedStyle(container);\r\n var domStyle = container.style;\r\n if (domStyle.position !== 'absolute' && stl.position !== 'absolute') {\r\n domStyle.position = 'relative';\r\n }\r\n var alwaysShowContent = tooltipModel.get('alwaysShowContent');\r\n alwaysShowContent && this._moveIfResized();\r\n this.el.className = tooltipModel.get('className') || '';\r\n };\r\n TooltipHTMLContent.prototype.show = function (tooltipModel, nearPointColor) {\r\n clearTimeout(this._hideTimeout);\r\n clearTimeout(this._longHideTimeout);\r\n var el = this.el;\r\n var styleCoord = this._styleCoord;\r\n var offset = el.offsetHeight / 2;\r\n nearPointColor = convertToColorString(nearPointColor);\r\n el.style.cssText = gCssText + assembleCssText(tooltipModel, !this._firstShow, this._longHide)\r\n + ';left:' + styleCoord[0] + 'px;top:' + (styleCoord[1] - offset) + 'px;'\r\n + (\"border-color: \" + nearPointColor + \";\")\r\n + (tooltipModel.get('extraCssText') || '');\r\n el.style.display = el.innerHTML ? 'block' : 'none';\r\n el.style.pointerEvents = this._enterable ? 'auto' : 'none';\r\n this._show = true;\r\n this._firstShow = false;\r\n this._longHide = false;\r\n };\r\n TooltipHTMLContent.prototype.setContent = function (content, markers, tooltipModel, borderColor, arrowPosition) {\r\n if (content == null) {\r\n return;\r\n }\r\n var el = this.el;\r\n if (isString(arrowPosition) && tooltipModel.get('trigger') === 'item'\r\n && !shouldTooltipConfine(tooltipModel)) {\r\n content += assembleArrow(tooltipModel.get('backgroundColor'), borderColor, arrowPosition);\r\n }\r\n if (isString(content)) {\r\n el.innerHTML = content;\r\n }\r\n else if (content) {\r\n el.innerHTML = '';\r\n if (!isArray(content)) {\r\n content = [content];\r\n }\r\n for (var i = 0; i < content.length; i++) {\r\n if (isDom(content[i]) && content[i].parentNode !== el) {\r\n el.appendChild(content[i]);\r\n }\r\n }\r\n }\r\n };\r\n TooltipHTMLContent.prototype.setEnterable = function (enterable) {\r\n this._enterable = enterable;\r\n };\r\n TooltipHTMLContent.prototype.getSize = function () {\r\n var el = this.el;\r\n return [el.clientWidth, el.clientHeight];\r\n };\r\n TooltipHTMLContent.prototype.moveTo = function (zrX, zrY) {\r\n var styleCoord = this._styleCoord;\r\n makeStyleCoord(styleCoord, this._zr, this._appendToBody, zrX, zrY);\r\n if (styleCoord[0] != null && styleCoord[1] != null) {\r\n var style = this.el.style;\r\n style.left = styleCoord[0].toFixed(0) + 'px';\r\n style.top = styleCoord[1].toFixed(0) + 'px';\r\n }\r\n };\r\n TooltipHTMLContent.prototype._moveIfResized = function () {\r\n var ratioX = this._styleCoord[2];\r\n var ratioY = this._styleCoord[3];\r\n this.moveTo(ratioX * this._zr.getWidth(), ratioY * this._zr.getHeight());\r\n };\r\n TooltipHTMLContent.prototype.hide = function () {\r\n var _this = this;\r\n this.el.style.visibility = 'hidden';\r\n this.el.style.opacity = '0';\r\n this._show = false;\r\n this._longHideTimeout = setTimeout(function () { return _this._longHide = true; }, 500);\r\n };\r\n TooltipHTMLContent.prototype.hideLater = function (time) {\r\n if (this._show && !(this._inContent && this._enterable)) {\r\n if (time) {\r\n this._hideDelay = time;\r\n this._show = false;\r\n this._hideTimeout = setTimeout(bind(this.hide, this), time);\r\n }\r\n else {\r\n this.hide();\r\n }\r\n }\r\n };\r\n TooltipHTMLContent.prototype.isShow = function () {\r\n return this._show;\r\n };\r\n TooltipHTMLContent.prototype.dispose = function () {\r\n this.el.parentNode.removeChild(this.el);\r\n };\r\n TooltipHTMLContent.prototype.getOuterSize = function () {\r\n var width = this.el.clientWidth;\r\n var height = this.el.clientHeight;\r\n if (document.defaultView && document.defaultView.getComputedStyle) {\r\n var stl = document.defaultView.getComputedStyle(this.el);\r\n if (stl) {\r\n width += parseInt(stl.borderLeftWidth, 10) + parseInt(stl.borderRightWidth, 10);\r\n height += parseInt(stl.borderTopWidth, 10) + parseInt(stl.borderBottomWidth, 10);\r\n }\r\n }\r\n return { width: width, height: height };\r\n };\r\n return TooltipHTMLContent;\r\n }());\n\n var TooltipRichContent = (function () {\r\n function TooltipRichContent(api) {\r\n this._show = false;\r\n this._styleCoord = [0, 0, 0, 0];\r\n this._enterable = true;\r\n this._zr = api.getZr();\r\n makeStyleCoord$1(this._styleCoord, this._zr, api.getWidth() / 2, api.getHeight() / 2);\r\n }\r\n TooltipRichContent.prototype.update = function (tooltipModel) {\r\n var alwaysShowContent = tooltipModel.get('alwaysShowContent');\r\n alwaysShowContent && this._moveIfResized();\r\n };\r\n TooltipRichContent.prototype.show = function () {\r\n if (this._hideTimeout) {\r\n clearTimeout(this._hideTimeout);\r\n }\r\n this.el.show();\r\n this._show = true;\r\n };\r\n TooltipRichContent.prototype.setContent = function (content, markupStyleCreator, tooltipModel, borderColor, arrowPosition) {\r\n if (isObject(content)) {\r\n throwError(__DEV__ ? 'Passing DOM nodes as content is not supported in richText tooltip!' : '');\r\n }\r\n if (this.el) {\r\n this._zr.remove(this.el);\r\n }\r\n var textStyleModel = tooltipModel.getModel('textStyle');\r\n this.el = new ZRText({\r\n style: {\r\n rich: markupStyleCreator.richTextStyles,\r\n text: content,\r\n lineHeight: 22,\r\n backgroundColor: tooltipModel.get('backgroundColor'),\r\n borderRadius: tooltipModel.get('borderRadius'),\r\n borderWidth: 1,\r\n borderColor: borderColor,\r\n shadowColor: tooltipModel.get('shadowColor'),\r\n shadowBlur: tooltipModel.get('shadowBlur'),\r\n shadowOffsetX: tooltipModel.get('shadowOffsetX'),\r\n shadowOffsetY: tooltipModel.get('shadowOffsetY'),\r\n textShadowColor: textStyleModel.get('textShadowColor'),\r\n textShadowBlur: textStyleModel.get('textShadowBlur') || 0,\r\n textShadowOffsetX: textStyleModel.get('textShadowOffsetX') || 0,\r\n textShadowOffsetY: textStyleModel.get('textShadowOffsetY') || 0,\r\n fill: tooltipModel.get(['textStyle', 'color']),\r\n padding: getPaddingFromTooltipModel(tooltipModel, 'richText'),\r\n verticalAlign: 'top',\r\n align: 'left'\r\n },\r\n z: tooltipModel.get('z')\r\n });\r\n this._zr.add(this.el);\r\n var self = this;\r\n this.el.on('mouseover', function () {\r\n if (self._enterable) {\r\n clearTimeout(self._hideTimeout);\r\n self._show = true;\r\n }\r\n self._inContent = true;\r\n });\r\n this.el.on('mouseout', function () {\r\n if (self._enterable) {\r\n if (self._show) {\r\n self.hideLater(self._hideDelay);\r\n }\r\n }\r\n self._inContent = false;\r\n });\r\n };\r\n TooltipRichContent.prototype.setEnterable = function (enterable) {\r\n this._enterable = enterable;\r\n };\r\n TooltipRichContent.prototype.getSize = function () {\r\n var el = this.el;\r\n var bounding = this.el.getBoundingRect();\r\n var shadowOuterSize = calcShadowOuterSize(el.style);\r\n return [\r\n bounding.width + shadowOuterSize.left + shadowOuterSize.right,\r\n bounding.height + shadowOuterSize.top + shadowOuterSize.bottom\r\n ];\r\n };\r\n TooltipRichContent.prototype.moveTo = function (x, y) {\r\n var el = this.el;\r\n if (el) {\r\n var styleCoord = this._styleCoord;\r\n makeStyleCoord$1(styleCoord, this._zr, x, y);\r\n x = styleCoord[0];\r\n y = styleCoord[1];\r\n var style = el.style;\r\n var borderWidth = mathMaxWith0(style.borderWidth || 0);\r\n var shadowOuterSize = calcShadowOuterSize(style);\r\n el.x = x + borderWidth + shadowOuterSize.left;\r\n el.y = y + borderWidth + shadowOuterSize.top;\r\n el.markRedraw();\r\n }\r\n };\r\n TooltipRichContent.prototype._moveIfResized = function () {\r\n var ratioX = this._styleCoord[2];\r\n var ratioY = this._styleCoord[3];\r\n this.moveTo(ratioX * this._zr.getWidth(), ratioY * this._zr.getHeight());\r\n };\r\n TooltipRichContent.prototype.hide = function () {\r\n if (this.el) {\r\n this.el.hide();\r\n }\r\n this._show = false;\r\n };\r\n TooltipRichContent.prototype.hideLater = function (time) {\r\n if (this._show && !(this._inContent && this._enterable)) {\r\n if (time) {\r\n this._hideDelay = time;\r\n this._show = false;\r\n this._hideTimeout = setTimeout(bind(this.hide, this), time);\r\n }\r\n else {\r\n this.hide();\r\n }\r\n }\r\n };\r\n TooltipRichContent.prototype.isShow = function () {\r\n return this._show;\r\n };\r\n TooltipRichContent.prototype.getOuterSize = function () {\r\n var size = this.getSize();\r\n return {\r\n width: size[0],\r\n height: size[1]\r\n };\r\n };\r\n TooltipRichContent.prototype.dispose = function () {\r\n this._zr.remove(this.el);\r\n };\r\n return TooltipRichContent;\r\n }());\r\n function mathMaxWith0(val) {\r\n return Math.max(0, val);\r\n }\r\n function calcShadowOuterSize(style) {\r\n var shadowBlur = mathMaxWith0(style.shadowBlur || 0);\r\n var shadowOffsetX = mathMaxWith0(style.shadowOffsetX || 0);\r\n var shadowOffsetY = mathMaxWith0(style.shadowOffsetY || 0);\r\n return {\r\n left: mathMaxWith0(shadowBlur - shadowOffsetX),\r\n right: mathMaxWith0(shadowBlur + shadowOffsetX),\r\n top: mathMaxWith0(shadowBlur - shadowOffsetY),\r\n bottom: mathMaxWith0(shadowBlur + shadowOffsetY)\r\n };\r\n }\r\n function makeStyleCoord$1(out, zr, zrX, zrY) {\r\n out[0] = zrX;\r\n out[1] = zrY;\r\n out[2] = out[0] / zr.getWidth();\r\n out[3] = out[1] / zr.getHeight();\r\n }\n\n var bind$2 = bind;\r\n var each$c = each;\r\n var parsePercent$3 = parsePercent$2;\r\n var proxyRect = new Rect({\r\n shape: { x: -1, y: -1, width: 2, height: 2 }\r\n });\r\n var TooltipView = (function (_super) {\r\n __extends(TooltipView, _super);\r\n function TooltipView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = TooltipView.type;\r\n return _this;\r\n }\r\n TooltipView.prototype.init = function (ecModel, api) {\r\n if (env.node) {\r\n return;\r\n }\r\n var tooltipModel = ecModel.getComponent('tooltip');\r\n var renderMode = tooltipModel.get('renderMode');\r\n this._renderMode = getTooltipRenderMode(renderMode);\r\n this._tooltipContent = this._renderMode === 'richText'\r\n ? new TooltipRichContent(api)\r\n : new TooltipHTMLContent(api.getDom(), api, {\r\n appendToBody: tooltipModel.get('appendToBody', true)\r\n });\r\n };\r\n TooltipView.prototype.render = function (tooltipModel, ecModel, api) {\r\n if (env.node) {\r\n return;\r\n }\r\n this.group.removeAll();\r\n this._tooltipModel = tooltipModel;\r\n this._ecModel = ecModel;\r\n this._api = api;\r\n this._alwaysShowContent = tooltipModel.get('alwaysShowContent');\r\n var tooltipContent = this._tooltipContent;\r\n tooltipContent.update(tooltipModel);\r\n tooltipContent.setEnterable(tooltipModel.get('enterable'));\r\n this._initGlobalListener();\r\n this._keepShow();\r\n };\r\n TooltipView.prototype._initGlobalListener = function () {\r\n var tooltipModel = this._tooltipModel;\r\n var triggerOn = tooltipModel.get('triggerOn');\r\n register('itemTooltip', this._api, bind$2(function (currTrigger, e, dispatchAction) {\r\n if (triggerOn !== 'none') {\r\n if (triggerOn.indexOf(currTrigger) >= 0) {\r\n this._tryShow(e, dispatchAction);\r\n }\r\n else if (currTrigger === 'leave') {\r\n this._hide(dispatchAction);\r\n }\r\n }\r\n }, this));\r\n };\r\n TooltipView.prototype._keepShow = function () {\r\n var tooltipModel = this._tooltipModel;\r\n var ecModel = this._ecModel;\r\n var api = this._api;\r\n if (this._lastX != null\r\n && this._lastY != null\r\n && tooltipModel.get('triggerOn') !== 'none') {\r\n var self_1 = this;\r\n clearTimeout(this._refreshUpdateTimeout);\r\n this._refreshUpdateTimeout = setTimeout(function () {\r\n !api.isDisposed() && self_1.manuallyShowTip(tooltipModel, ecModel, api, {\r\n x: self_1._lastX,\r\n y: self_1._lastY,\r\n dataByCoordSys: self_1._lastDataByCoordSys\r\n });\r\n });\r\n }\r\n };\r\n TooltipView.prototype.manuallyShowTip = function (tooltipModel, ecModel, api, payload) {\r\n if (payload.from === this.uid || env.node) {\r\n return;\r\n }\r\n var dispatchAction = makeDispatchAction$1(payload, api);\r\n this._ticket = '';\r\n var dataByCoordSys = payload.dataByCoordSys;\r\n if (payload.tooltip && payload.x != null && payload.y != null) {\r\n var el = proxyRect;\r\n el.x = payload.x;\r\n el.y = payload.y;\r\n el.update();\r\n el.tooltip = payload.tooltip;\r\n this._tryShow({\r\n offsetX: payload.x,\r\n offsetY: payload.y,\r\n target: el\r\n }, dispatchAction);\r\n }\r\n else if (dataByCoordSys) {\r\n this._tryShow({\r\n offsetX: payload.x,\r\n offsetY: payload.y,\r\n position: payload.position,\r\n dataByCoordSys: dataByCoordSys,\r\n tooltipOption: payload.tooltipOption\r\n }, dispatchAction);\r\n }\r\n else if (payload.seriesIndex != null) {\r\n if (this._manuallyAxisShowTip(tooltipModel, ecModel, api, payload)) {\r\n return;\r\n }\r\n var pointInfo = findPointFromSeries(payload, ecModel);\r\n var cx = pointInfo.point[0];\r\n var cy = pointInfo.point[1];\r\n if (cx != null && cy != null) {\r\n this._tryShow({\r\n offsetX: cx,\r\n offsetY: cy,\r\n position: payload.position,\r\n target: pointInfo.el\r\n }, dispatchAction);\r\n }\r\n }\r\n else if (payload.x != null && payload.y != null) {\r\n api.dispatchAction({\r\n type: 'updateAxisPointer',\r\n x: payload.x,\r\n y: payload.y\r\n });\r\n this._tryShow({\r\n offsetX: payload.x,\r\n offsetY: payload.y,\r\n position: payload.position,\r\n target: api.getZr().findHover(payload.x, payload.y).target\r\n }, dispatchAction);\r\n }\r\n };\r\n TooltipView.prototype.manuallyHideTip = function (tooltipModel, ecModel, api, payload) {\r\n var tooltipContent = this._tooltipContent;\r\n if (!this._alwaysShowContent && this._tooltipModel) {\r\n tooltipContent.hideLater(this._tooltipModel.get('hideDelay'));\r\n }\r\n this._lastX = this._lastY = this._lastDataByCoordSys = null;\r\n if (payload.from !== this.uid) {\r\n this._hide(makeDispatchAction$1(payload, api));\r\n }\r\n };\r\n TooltipView.prototype._manuallyAxisShowTip = function (tooltipModel, ecModel, api, payload) {\r\n var seriesIndex = payload.seriesIndex;\r\n var dataIndex = payload.dataIndex;\r\n var coordSysAxesInfo = ecModel.getComponent('axisPointer').coordSysAxesInfo;\r\n if (seriesIndex == null || dataIndex == null || coordSysAxesInfo == null) {\r\n return;\r\n }\r\n var seriesModel = ecModel.getSeriesByIndex(seriesIndex);\r\n if (!seriesModel) {\r\n return;\r\n }\r\n var data = seriesModel.getData();\r\n var tooltipCascadedModel = buildTooltipModel([\r\n data.getItemModel(dataIndex),\r\n seriesModel,\r\n (seriesModel.coordinateSystem || {}).model,\r\n tooltipModel\r\n ]);\r\n if (tooltipCascadedModel.get('trigger') !== 'axis') {\r\n return;\r\n }\r\n api.dispatchAction({\r\n type: 'updateAxisPointer',\r\n seriesIndex: seriesIndex,\r\n dataIndex: dataIndex,\r\n position: payload.position\r\n });\r\n return true;\r\n };\r\n TooltipView.prototype._tryShow = function (e, dispatchAction) {\r\n var el = e.target;\r\n var tooltipModel = this._tooltipModel;\r\n if (!tooltipModel) {\r\n return;\r\n }\r\n this._lastX = e.offsetX;\r\n this._lastY = e.offsetY;\r\n var dataByCoordSys = e.dataByCoordSys;\r\n if (dataByCoordSys && dataByCoordSys.length) {\r\n this._showAxisTooltip(dataByCoordSys, e);\r\n }\r\n else if (el && findEventDispatcher(el, function (target) { return getECData(target).dataIndex != null; })) {\r\n this._lastDataByCoordSys = null;\r\n this._showSeriesItemTooltip(e, el, dispatchAction);\r\n }\r\n else if (el && el.tooltip) {\r\n this._lastDataByCoordSys = null;\r\n this._showComponentItemTooltip(e, el, dispatchAction);\r\n }\r\n else {\r\n this._lastDataByCoordSys = null;\r\n this._hide(dispatchAction);\r\n }\r\n };\r\n TooltipView.prototype._showOrMove = function (tooltipModel, cb) {\r\n var delay = tooltipModel.get('showDelay');\r\n cb = bind(cb, this);\r\n clearTimeout(this._showTimout);\r\n delay > 0\r\n ? (this._showTimout = setTimeout(cb, delay))\r\n : cb();\r\n };\r\n TooltipView.prototype._showAxisTooltip = function (dataByCoordSys, e) {\r\n var ecModel = this._ecModel;\r\n var globalTooltipModel = this._tooltipModel;\r\n var point = [e.offsetX, e.offsetY];\r\n var singleTooltipModel = buildTooltipModel([\r\n e.tooltipOption,\r\n globalTooltipModel\r\n ]);\r\n var renderMode = this._renderMode;\r\n var cbParamsList = [];\r\n var articleMarkup = createTooltipMarkup('section', {\r\n blocks: [],\r\n noHeader: true\r\n });\r\n var markupTextArrLegacy = [];\r\n var markupStyleCreator = new TooltipMarkupStyleCreator();\r\n each$c(dataByCoordSys, function (itemCoordSys) {\r\n each$c(itemCoordSys.dataByAxis, function (axisItem) {\r\n var axisModel = ecModel.getComponent(axisItem.axisDim + 'Axis', axisItem.axisIndex);\r\n var axisValue = axisItem.value;\r\n if (!axisModel || axisValue == null) {\r\n return;\r\n }\r\n var axisValueLabel = getValueLabel(axisValue, axisModel.axis, ecModel, axisItem.seriesDataIndices, axisItem.valueLabelOpt);\r\n var axisSectionMarkup = createTooltipMarkup('section', {\r\n header: axisValueLabel,\r\n noHeader: !trim(axisValueLabel),\r\n sortBlocks: true,\r\n blocks: []\r\n });\r\n articleMarkup.blocks.push(axisSectionMarkup);\r\n each(axisItem.seriesDataIndices, function (idxItem) {\r\n var series = ecModel.getSeriesByIndex(idxItem.seriesIndex);\r\n var dataIndex = idxItem.dataIndexInside;\r\n var cbParams = series.getDataParams(dataIndex);\r\n cbParams.axisDim = axisItem.axisDim;\r\n cbParams.axisIndex = axisItem.axisIndex;\r\n cbParams.axisType = axisItem.axisType;\r\n cbParams.axisId = axisItem.axisId;\r\n cbParams.axisValue = getAxisRawValue(axisModel.axis, { value: axisValue });\r\n cbParams.axisValueLabel = axisValueLabel;\r\n cbParams.marker = markupStyleCreator.makeTooltipMarker('item', convertToColorString(cbParams.color), renderMode);\r\n var seriesTooltipResult = normalizeTooltipFormatResult(series.formatTooltip(dataIndex, true, null));\r\n if (seriesTooltipResult.markupFragment) {\r\n axisSectionMarkup.blocks.push(seriesTooltipResult.markupFragment);\r\n }\r\n if (seriesTooltipResult.markupText) {\r\n markupTextArrLegacy.push(seriesTooltipResult.markupText);\r\n }\r\n cbParamsList.push(cbParams);\r\n });\r\n });\r\n });\r\n articleMarkup.blocks.reverse();\r\n markupTextArrLegacy.reverse();\r\n var positionExpr = e.position;\r\n var orderMode = singleTooltipModel.get('order');\r\n var builtMarkupText = buildTooltipMarkup(articleMarkup, markupStyleCreator, renderMode, orderMode, ecModel.get('useUTC'));\r\n builtMarkupText && markupTextArrLegacy.unshift(builtMarkupText);\r\n var blockBreak = renderMode === 'richText' ? '\\n\\n' : '<br/>';\r\n var allMarkupText = markupTextArrLegacy.join(blockBreak);\r\n this._showOrMove(singleTooltipModel, function () {\r\n if (this._updateContentNotChangedOnAxis(dataByCoordSys)) {\r\n this._updatePosition(singleTooltipModel, positionExpr, point[0], point[1], this._tooltipContent, cbParamsList);\r\n }\r\n else {\r\n this._showTooltipContent(singleTooltipModel, allMarkupText, cbParamsList, Math.random() + '', point[0], point[1], positionExpr, null, markupStyleCreator);\r\n }\r\n });\r\n };\r\n TooltipView.prototype._showSeriesItemTooltip = function (e, el, dispatchAction) {\r\n var dispatcher = findEventDispatcher(el, function (target) { return getECData(target).dataIndex != null; });\r\n var ecModel = this._ecModel;\r\n var ecData = getECData(dispatcher);\r\n var seriesIndex = ecData.seriesIndex;\r\n var seriesModel = ecModel.getSeriesByIndex(seriesIndex);\r\n var dataModel = ecData.dataModel || seriesModel;\r\n var dataIndex = ecData.dataIndex;\r\n var dataType = ecData.dataType;\r\n var data = dataModel.getData(dataType);\r\n var renderMode = this._renderMode;\r\n var tooltipModel = buildTooltipModel([\r\n data.getItemModel(dataIndex),\r\n dataModel,\r\n seriesModel && (seriesModel.coordinateSystem || {}).model,\r\n this._tooltipModel\r\n ]);\r\n var tooltipTrigger = tooltipModel.get('trigger');\r\n if (tooltipTrigger != null && tooltipTrigger !== 'item') {\r\n return;\r\n }\r\n var params = dataModel.getDataParams(dataIndex, dataType);\r\n var markupStyleCreator = new TooltipMarkupStyleCreator();\r\n params.marker = markupStyleCreator.makeTooltipMarker('item', convertToColorString(params.color), renderMode);\r\n var seriesTooltipResult = normalizeTooltipFormatResult(dataModel.formatTooltip(dataIndex, false, dataType));\r\n var orderMode = tooltipModel.get('order');\r\n var markupText = seriesTooltipResult.markupFragment\r\n ? buildTooltipMarkup(seriesTooltipResult.markupFragment, markupStyleCreator, renderMode, orderMode, ecModel.get('useUTC'))\r\n : seriesTooltipResult.markupText;\r\n var asyncTicket = 'item_' + dataModel.name + '_' + dataIndex;\r\n this._showOrMove(tooltipModel, function () {\r\n this._showTooltipContent(tooltipModel, markupText, params, asyncTicket, e.offsetX, e.offsetY, e.position, e.target, markupStyleCreator);\r\n });\r\n dispatchAction({\r\n type: 'showTip',\r\n dataIndexInside: dataIndex,\r\n dataIndex: data.getRawIndex(dataIndex),\r\n seriesIndex: seriesIndex,\r\n from: this.uid\r\n });\r\n };\r\n TooltipView.prototype._showComponentItemTooltip = function (e, el, dispatchAction) {\r\n var tooltipOpt = el.tooltip;\r\n if (isString(tooltipOpt)) {\r\n var content = tooltipOpt;\r\n tooltipOpt = {\r\n content: content,\r\n formatter: content\r\n };\r\n }\r\n var subTooltipModel = new Model(tooltipOpt, this._tooltipModel, this._ecModel);\r\n var defaultHtml = subTooltipModel.get('content');\r\n var asyncTicket = Math.random() + '';\r\n var markupStyleCreator = new TooltipMarkupStyleCreator();\r\n this._showOrMove(subTooltipModel, function () {\r\n this._showTooltipContent(subTooltipModel, defaultHtml, subTooltipModel.get('formatterParams') || {}, asyncTicket, e.offsetX, e.offsetY, e.position, el, markupStyleCreator);\r\n });\r\n dispatchAction({\r\n type: 'showTip',\r\n from: this.uid\r\n });\r\n };\r\n TooltipView.prototype._showTooltipContent = function (tooltipModel, defaultHtml, params, asyncTicket, x, y, positionExpr, el, markupStyleCreator) {\r\n this._ticket = '';\r\n if (!tooltipModel.get('showContent') || !tooltipModel.get('show')) {\r\n return;\r\n }\r\n var tooltipContent = this._tooltipContent;\r\n var formatter = tooltipModel.get('formatter');\r\n positionExpr = positionExpr || tooltipModel.get('position');\r\n var html = defaultHtml;\r\n var nearPoint = this._getNearestPoint([x, y], params, tooltipModel.get('trigger'));\r\n if (formatter && isString(formatter)) {\r\n var useUTC = tooltipModel.ecModel.get('useUTC');\r\n var params0 = isArray(params) ? params[0] : params;\r\n var isTimeAxis = params0 && params0.axisType && params0.axisType.indexOf('time') >= 0;\r\n html = formatter;\r\n if (isTimeAxis) {\r\n html = format(params0.axisValue, html, useUTC);\r\n }\r\n html = formatTpl(html, params, true);\r\n }\r\n else if (isFunction(formatter)) {\r\n var callback = bind$2(function (cbTicket, html) {\r\n if (cbTicket === this._ticket) {\r\n tooltipContent.setContent(html, markupStyleCreator, tooltipModel, nearPoint.color, positionExpr);\r\n this._updatePosition(tooltipModel, positionExpr, x, y, tooltipContent, params, el);\r\n }\r\n }, this);\r\n this._ticket = asyncTicket;\r\n html = formatter(params, asyncTicket, callback);\r\n }\r\n tooltipContent.setContent(html, markupStyleCreator, tooltipModel, nearPoint.color, positionExpr);\r\n tooltipContent.show(tooltipModel, nearPoint.color);\r\n this._updatePosition(tooltipModel, positionExpr, x, y, tooltipContent, params, el);\r\n };\r\n TooltipView.prototype._getNearestPoint = function (point, tooltipDataParams, trigger) {\r\n if (trigger === 'axis' || isArray(tooltipDataParams)) {\r\n return {\r\n color: this._renderMode === 'html' ? '#fff' : 'none'\r\n };\r\n }\r\n if (!isArray(tooltipDataParams)) {\r\n return {\r\n color: tooltipDataParams.color || tooltipDataParams.borderColor\r\n };\r\n }\r\n };\r\n TooltipView.prototype._updatePosition = function (tooltipModel, positionExpr, x, y, content, params, el) {\r\n var viewWidth = this._api.getWidth();\r\n var viewHeight = this._api.getHeight();\r\n positionExpr = positionExpr || tooltipModel.get('position');\r\n var contentSize = content.getSize();\r\n var align = tooltipModel.get('align');\r\n var vAlign = tooltipModel.get('verticalAlign');\r\n var rect = el && el.getBoundingRect().clone();\r\n el && rect.applyTransform(el.transform);\r\n if (isFunction(positionExpr)) {\r\n positionExpr = positionExpr([x, y], params, content.el, rect, {\r\n viewSize: [viewWidth, viewHeight],\r\n contentSize: contentSize.slice()\r\n });\r\n }\r\n if (isArray(positionExpr)) {\r\n x = parsePercent$3(positionExpr[0], viewWidth);\r\n y = parsePercent$3(positionExpr[1], viewHeight);\r\n }\r\n else if (isObject(positionExpr)) {\r\n var boxLayoutPosition = positionExpr;\r\n boxLayoutPosition.width = contentSize[0];\r\n boxLayoutPosition.height = contentSize[1];\r\n var layoutRect = getLayoutRect(boxLayoutPosition, { width: viewWidth, height: viewHeight });\r\n x = layoutRect.x;\r\n y = layoutRect.y;\r\n align = null;\r\n vAlign = null;\r\n }\r\n else if (isString(positionExpr) && el) {\r\n var pos = calcTooltipPosition(positionExpr, rect, contentSize);\r\n x = pos[0];\r\n y = pos[1];\r\n }\r\n else {\r\n var pos = refixTooltipPosition(x, y, content, viewWidth, viewHeight, align ? null : 20, vAlign ? null : 20);\r\n x = pos[0];\r\n y = pos[1];\r\n }\r\n align && (x -= isCenterAlign(align) ? contentSize[0] / 2 : align === 'right' ? contentSize[0] : 0);\r\n vAlign && (y -= isCenterAlign(vAlign) ? contentSize[1] / 2 : vAlign === 'bottom' ? contentSize[1] : 0);\r\n if (shouldTooltipConfine(tooltipModel)) {\r\n var pos = confineTooltipPosition(x, y, content, viewWidth, viewHeight);\r\n x = pos[0];\r\n y = pos[1];\r\n }\r\n content.moveTo(x, y);\r\n };\r\n TooltipView.prototype._updateContentNotChangedOnAxis = function (dataByCoordSys) {\r\n var lastCoordSys = this._lastDataByCoordSys;\r\n var contentNotChanged = !!lastCoordSys\r\n && lastCoordSys.length === dataByCoordSys.length;\r\n contentNotChanged && each$c(lastCoordSys, function (lastItemCoordSys, indexCoordSys) {\r\n var lastDataByAxis = lastItemCoordSys.dataByAxis || [];\r\n var thisItemCoordSys = dataByCoordSys[indexCoordSys] || {};\r\n var thisDataByAxis = thisItemCoordSys.dataByAxis || [];\r\n contentNotChanged = contentNotChanged && lastDataByAxis.length === thisDataByAxis.length;\r\n contentNotChanged && each$c(lastDataByAxis, function (lastItem, indexAxis) {\r\n var thisItem = thisDataByAxis[indexAxis] || {};\r\n var lastIndices = lastItem.seriesDataIndices || [];\r\n var newIndices = thisItem.seriesDataIndices || [];\r\n contentNotChanged = contentNotChanged\r\n && lastItem.value === thisItem.value\r\n && lastItem.axisType === thisItem.axisType\r\n && lastItem.axisId === thisItem.axisId\r\n && lastIndices.length === newIndices.length;\r\n contentNotChanged && each$c(lastIndices, function (lastIdxItem, j) {\r\n var newIdxItem = newIndices[j];\r\n contentNotChanged = contentNotChanged\r\n && lastIdxItem.seriesIndex === newIdxItem.seriesIndex\r\n && lastIdxItem.dataIndex === newIdxItem.dataIndex;\r\n });\r\n });\r\n });\r\n this._lastDataByCoordSys = dataByCoordSys;\r\n return !!contentNotChanged;\r\n };\r\n TooltipView.prototype._hide = function (dispatchAction) {\r\n this._lastDataByCoordSys = null;\r\n dispatchAction({\r\n type: 'hideTip',\r\n from: this.uid\r\n });\r\n };\r\n TooltipView.prototype.dispose = function (ecModel, api) {\r\n if (env.node) {\r\n return;\r\n }\r\n this._tooltipContent.dispose();\r\n unregister('itemTooltip', api);\r\n };\r\n TooltipView.type = 'tooltip';\r\n return TooltipView;\r\n }(ComponentView));\r\n function buildTooltipModel(modelCascade) {\r\n var resultModel = modelCascade.pop();\r\n while (modelCascade.length) {\r\n var tooltipOpt = modelCascade.pop();\r\n if (tooltipOpt) {\r\n if (tooltipOpt instanceof Model) {\r\n tooltipOpt = tooltipOpt.get('tooltip', true);\r\n }\r\n if (isString(tooltipOpt)) {\r\n tooltipOpt = {\r\n formatter: tooltipOpt\r\n };\r\n }\r\n resultModel = new Model(tooltipOpt, resultModel, resultModel.ecModel);\r\n }\r\n }\r\n return resultModel;\r\n }\r\n function makeDispatchAction$1(payload, api) {\r\n return payload.dispatchAction || bind(api.dispatchAction, api);\r\n }\r\n function refixTooltipPosition(x, y, content, viewWidth, viewHeight, gapH, gapV) {\r\n var size = content.getOuterSize();\r\n var width = size.width;\r\n var height = size.height;\r\n if (gapH != null) {\r\n if (x + width + gapH + 2 > viewWidth) {\r\n x -= width + gapH;\r\n }\r\n else {\r\n x += gapH;\r\n }\r\n }\r\n if (gapV != null) {\r\n if (y + height + gapV > viewHeight) {\r\n y -= height + gapV;\r\n }\r\n else {\r\n y += gapV;\r\n }\r\n }\r\n return [x, y];\r\n }\r\n function confineTooltipPosition(x, y, content, viewWidth, viewHeight) {\r\n var size = content.getOuterSize();\r\n var width = size.width;\r\n var height = size.height;\r\n x = Math.min(x + width, viewWidth) - width;\r\n y = Math.min(y + height, viewHeight) - height;\r\n x = Math.max(x, 0);\r\n y = Math.max(y, 0);\r\n return [x, y];\r\n }\r\n function calcTooltipPosition(position, rect, contentSize) {\r\n var domWidth = contentSize[0];\r\n var domHeight = contentSize[1];\r\n var gap = 10;\r\n var offset = 5;\r\n var x = 0;\r\n var y = 0;\r\n var rectWidth = rect.width;\r\n var rectHeight = rect.height;\r\n switch (position) {\r\n case 'inside':\r\n x = rect.x + rectWidth / 2 - domWidth / 2;\r\n y = rect.y + rectHeight / 2 - domHeight / 2;\r\n break;\r\n case 'top':\r\n x = rect.x + rectWidth / 2 - domWidth / 2;\r\n y = rect.y - domHeight - gap;\r\n break;\r\n case 'bottom':\r\n x = rect.x + rectWidth / 2 - domWidth / 2;\r\n y = rect.y + rectHeight + gap;\r\n break;\r\n case 'left':\r\n x = rect.x - domWidth - gap - offset;\r\n y = rect.y + rectHeight / 2 - domHeight / 2;\r\n break;\r\n case 'right':\r\n x = rect.x + rectWidth + gap + offset;\r\n y = rect.y + rectHeight / 2 - domHeight / 2;\r\n }\r\n return [x, y];\r\n }\r\n function isCenterAlign(align) {\r\n return align === 'center' || align === 'middle';\r\n }\r\n ComponentView.registerClass(TooltipView);\n\n registerAction({\r\n type: 'showTip',\r\n event: 'showTip',\r\n update: 'tooltip:manuallyShowTip'\r\n }, function () { });\r\n registerAction({\r\n type: 'hideTip',\r\n event: 'hideTip',\r\n update: 'tooltip:manuallyHideTip'\r\n }, function () { });\n\n var DEFAULT_TOOLBOX_BTNS = ['rect', 'polygon', 'keep', 'clear'];\r\n function brushPreprocessor(option, isNew) {\r\n var brushComponents = normalizeToArray(option ? option.brush : []);\r\n if (!brushComponents.length) {\r\n return;\r\n }\r\n var brushComponentSpecifiedBtns = [];\r\n each(brushComponents, function (brushOpt) {\r\n var tbs = brushOpt.hasOwnProperty('toolbox')\r\n ? brushOpt.toolbox : [];\r\n if (tbs instanceof Array) {\r\n brushComponentSpecifiedBtns = brushComponentSpecifiedBtns.concat(tbs);\r\n }\r\n });\r\n var toolbox = option && option.toolbox;\r\n if (isArray(toolbox)) {\r\n toolbox = toolbox[0];\r\n }\r\n if (!toolbox) {\r\n toolbox = { feature: {} };\r\n option.toolbox = [toolbox];\r\n }\r\n var toolboxFeature = (toolbox.feature || (toolbox.feature = {}));\r\n var toolboxBrush = (toolboxFeature.brush || (toolboxFeature.brush = {}));\r\n var brushTypes = toolboxBrush.type || (toolboxBrush.type = []);\r\n brushTypes.push.apply(brushTypes, brushComponentSpecifiedBtns);\r\n removeDuplicate(brushTypes);\r\n if (isNew && !brushTypes.length) {\r\n brushTypes.push.apply(brushTypes, DEFAULT_TOOLBOX_BTNS);\r\n }\r\n }\r\n function removeDuplicate(arr) {\r\n var map = {};\r\n each(arr, function (val) {\r\n map[val] = 1;\r\n });\r\n arr.length = 0;\r\n each(map, function (flag, val) {\r\n arr.push(val);\r\n });\r\n }\n\n var each$d = each;\r\n function hasKeys(obj) {\r\n if (obj) {\r\n for (var name_1 in obj) {\r\n if (obj.hasOwnProperty(name_1)) {\r\n return true;\r\n }\r\n }\r\n }\r\n }\r\n function createVisualMappings(option, stateList, supplementVisualOption) {\r\n var visualMappings = {};\r\n each$d(stateList, function (state) {\r\n var mappings = visualMappings[state] = createMappings();\r\n each$d(option[state], function (visualData, visualType) {\r\n if (!VisualMapping.isValidType(visualType)) {\r\n return;\r\n }\r\n var mappingOption = {\r\n type: visualType,\r\n visual: visualData\r\n };\r\n supplementVisualOption && supplementVisualOption(mappingOption, state);\r\n mappings[visualType] = new VisualMapping(mappingOption);\r\n if (visualType === 'opacity') {\r\n mappingOption = clone(mappingOption);\r\n mappingOption.type = 'colorAlpha';\r\n mappings.__hidden.__alphaForOpacity = new VisualMapping(mappingOption);\r\n }\r\n });\r\n });\r\n return visualMappings;\r\n function createMappings() {\r\n var Creater = function () { };\r\n Creater.prototype.__hidden = Creater.prototype;\r\n var obj = new Creater();\r\n return obj;\r\n }\r\n }\r\n function replaceVisualOption(thisOption, newOption, keys) {\r\n var has;\r\n each(keys, function (key) {\r\n if (newOption.hasOwnProperty(key) && hasKeys(newOption[key])) {\r\n has = true;\r\n }\r\n });\r\n has && each(keys, function (key) {\r\n if (newOption.hasOwnProperty(key) && hasKeys(newOption[key])) {\r\n thisOption[key] = clone(newOption[key]);\r\n }\r\n else {\r\n delete thisOption[key];\r\n }\r\n });\r\n }\r\n function applyVisual(stateList, visualMappings, data, getValueState, scope, dimension) {\r\n var visualTypesMap = {};\r\n each(stateList, function (state) {\r\n var visualTypes = VisualMapping.prepareVisualTypes(visualMappings[state]);\r\n visualTypesMap[state] = visualTypes;\r\n });\r\n var dataIndex;\r\n function getVisual(key) {\r\n return getItemVisualFromData(data, dataIndex, key);\r\n }\r\n function setVisual(key, value) {\r\n setItemVisualFromData(data, dataIndex, key, value);\r\n }\r\n if (dimension == null) {\r\n data.each(eachItem);\r\n }\r\n else {\r\n data.each([dimension], eachItem);\r\n }\r\n function eachItem(valueOrIndex, index) {\r\n dataIndex = dimension == null\r\n ? valueOrIndex\r\n : index;\r\n var rawDataItem = data.getRawDataItem(dataIndex);\r\n if (rawDataItem && rawDataItem.visualMap === false) {\r\n return;\r\n }\r\n var valueState = getValueState.call(scope, valueOrIndex);\r\n var mappings = visualMappings[valueState];\r\n var visualTypes = visualTypesMap[valueState];\r\n for (var i = 0, len = visualTypes.length; i < len; i++) {\r\n var type = visualTypes[i];\r\n mappings[type] && mappings[type].applyVisual(valueOrIndex, getVisual, setVisual);\r\n }\r\n }\r\n }\r\n function incrementalApplyVisual(stateList, visualMappings, getValueState, dim) {\r\n var visualTypesMap = {};\r\n each(stateList, function (state) {\r\n var visualTypes = VisualMapping.prepareVisualTypes(visualMappings[state]);\r\n visualTypesMap[state] = visualTypes;\r\n });\r\n return {\r\n progress: function progress(params, data) {\r\n var dimName;\r\n if (dim != null) {\r\n dimName = data.getDimension(dim);\r\n }\r\n function getVisual(key) {\r\n return getItemVisualFromData(data, dataIndex, key);\r\n }\r\n function setVisual(key, value) {\r\n setItemVisualFromData(data, dataIndex, key, value);\r\n }\r\n var dataIndex;\r\n while ((dataIndex = params.next()) != null) {\r\n var rawDataItem = data.getRawDataItem(dataIndex);\r\n if (rawDataItem && rawDataItem.visualMap === false) {\r\n continue;\r\n }\r\n var value = dim != null\r\n ? data.get(dimName, dataIndex)\r\n : dataIndex;\r\n var valueState = getValueState(value);\r\n var mappings = visualMappings[valueState];\r\n var visualTypes = visualTypesMap[valueState];\r\n for (var i = 0, len = visualTypes.length; i < len; i++) {\r\n var type = visualTypes[i];\r\n mappings[type] && mappings[type].applyVisual(value, getVisual, setVisual);\r\n }\r\n }\r\n }\r\n };\r\n }\n\n function makeBrushCommonSelectorForSeries(area) {\r\n var brushType = area.brushType;\r\n var selectors = {\r\n point: function (itemLayout) {\r\n return selector[brushType].point(itemLayout, selectors, area);\r\n },\r\n rect: function (itemLayout) {\r\n return selector[brushType].rect(itemLayout, selectors, area);\r\n }\r\n };\r\n return selectors;\r\n }\r\n var selector = {\r\n lineX: getLineSelectors(0),\r\n lineY: getLineSelectors(1),\r\n rect: {\r\n point: function (itemLayout, selectors, area) {\r\n return itemLayout && area.boundingRect.contain(itemLayout[0], itemLayout[1]);\r\n },\r\n rect: function (itemLayout, selectors, area) {\r\n return itemLayout && area.boundingRect.intersect(itemLayout);\r\n }\r\n },\r\n polygon: {\r\n point: function (itemLayout, selectors, area) {\r\n return itemLayout\r\n && area.boundingRect.contain(itemLayout[0], itemLayout[1])\r\n && contain$2(area.range, itemLayout[0], itemLayout[1]);\r\n },\r\n rect: function (itemLayout, selectors, area) {\r\n var points = area.range;\r\n if (!itemLayout || points.length <= 1) {\r\n return false;\r\n }\r\n var x = itemLayout.x;\r\n var y = itemLayout.y;\r\n var width = itemLayout.width;\r\n var height = itemLayout.height;\r\n var p = points[0];\r\n if (contain$2(points, x, y)\r\n || contain$2(points, x + width, y)\r\n || contain$2(points, x, y + height)\r\n || contain$2(points, x + width, y + height)\r\n || BoundingRect.create(itemLayout).contain(p[0], p[1])\r\n || linePolygonIntersect(x, y, x + width, y, points)\r\n || linePolygonIntersect(x, y, x, y + height, points)\r\n || linePolygonIntersect(x + width, y, x + width, y + height, points)\r\n || linePolygonIntersect(x, y + height, x + width, y + height, points)) {\r\n return true;\r\n }\r\n }\r\n }\r\n };\r\n function getLineSelectors(xyIndex) {\r\n var xy = ['x', 'y'];\r\n var wh = ['width', 'height'];\r\n return {\r\n point: function (itemLayout, selectors, area) {\r\n if (itemLayout) {\r\n var range = area.range;\r\n var p = itemLayout[xyIndex];\r\n return inLineRange(p, range);\r\n }\r\n },\r\n rect: function (itemLayout, selectors, area) {\r\n if (itemLayout) {\r\n var range = area.range;\r\n var layoutRange = [\r\n itemLayout[xy[xyIndex]],\r\n itemLayout[xy[xyIndex]] + itemLayout[wh[xyIndex]]\r\n ];\r\n layoutRange[1] < layoutRange[0] && layoutRange.reverse();\r\n return inLineRange(layoutRange[0], range)\r\n || inLineRange(layoutRange[1], range)\r\n || inLineRange(range[0], layoutRange)\r\n || inLineRange(range[1], layoutRange);\r\n }\r\n }\r\n };\r\n }\r\n function inLineRange(p, range) {\r\n return range[0] <= p && p <= range[1];\r\n }\n\n var STATE_LIST = ['inBrush', 'outOfBrush'];\r\n var DISPATCH_METHOD = '__ecBrushSelect';\r\n var DISPATCH_FLAG = '__ecInBrushSelectEvent';\r\n var PRIORITY_BRUSH = PRIORITY.VISUAL.BRUSH;\r\n function layoutCovers(ecModel) {\r\n ecModel.eachComponent({ mainType: 'brush' }, function (brushModel) {\r\n var brushTargetManager = brushModel.brushTargetManager = new BrushTargetManager(brushModel.option, ecModel);\r\n brushTargetManager.setInputRanges(brushModel.areas, ecModel);\r\n });\r\n }\r\n registerVisual(PRIORITY_BRUSH, function (ecModel, api, payload) {\r\n var brushSelected = [];\r\n var throttleType;\r\n var throttleDelay;\r\n ecModel.eachComponent({ mainType: 'brush' }, function (brushModel) {\r\n payload && payload.type === 'takeGlobalCursor' && brushModel.setBrushOption(payload.key === 'brush' ? payload.brushOption : { brushType: false });\r\n });\r\n layoutCovers(ecModel);\r\n ecModel.eachComponent({ mainType: 'brush' }, function (brushModel, brushIndex) {\r\n var thisBrushSelected = {\r\n brushId: brushModel.id,\r\n brushIndex: brushIndex,\r\n brushName: brushModel.name,\r\n areas: clone(brushModel.areas),\r\n selected: []\r\n };\r\n brushSelected.push(thisBrushSelected);\r\n var brushOption = brushModel.option;\r\n var brushLink = brushOption.brushLink;\r\n var linkedSeriesMap = [];\r\n var selectedDataIndexForLink = [];\r\n var rangeInfoBySeries = [];\r\n var hasBrushExists = false;\r\n if (!brushIndex) {\r\n throttleType = brushOption.throttleType;\r\n throttleDelay = brushOption.throttleDelay;\r\n }\r\n var areas = map(brushModel.areas, function (area) {\r\n var builder = boundingRectBuilders[area.brushType];\r\n var selectableArea = defaults({ boundingRect: builder ? builder(area) : void 0 }, area);\r\n selectableArea.selectors = makeBrushCommonSelectorForSeries(selectableArea);\r\n return selectableArea;\r\n });\r\n var visualMappings = createVisualMappings(brushModel.option, STATE_LIST, function (mappingOption) {\r\n mappingOption.mappingMethod = 'fixed';\r\n });\r\n isArray(brushLink) && each(brushLink, function (seriesIndex) {\r\n linkedSeriesMap[seriesIndex] = 1;\r\n });\r\n function linkOthers(seriesIndex) {\r\n return brushLink === 'all' || !!linkedSeriesMap[seriesIndex];\r\n }\r\n function brushed(rangeInfoList) {\r\n return !!rangeInfoList.length;\r\n }\r\n ecModel.eachSeries(function (seriesModel, seriesIndex) {\r\n var rangeInfoList = rangeInfoBySeries[seriesIndex] = [];\r\n seriesModel.subType === 'parallel'\r\n ? stepAParallel(seriesModel, seriesIndex)\r\n : stepAOthers(seriesModel, seriesIndex, rangeInfoList);\r\n });\r\n function stepAParallel(seriesModel, seriesIndex) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n hasBrushExists = hasBrushExists || coordSys.hasAxisBrushed();\r\n linkOthers(seriesIndex) && coordSys.eachActiveState(seriesModel.getData(), function (activeState, dataIndex) {\r\n activeState === 'active' && (selectedDataIndexForLink[dataIndex] = 1);\r\n });\r\n }\r\n function stepAOthers(seriesModel, seriesIndex, rangeInfoList) {\r\n if (!seriesModel.brushSelector || brushModelNotControll(brushModel, seriesIndex)) {\r\n return;\r\n }\r\n each(areas, function (area) {\r\n if (brushModel.brushTargetManager.controlSeries(area, seriesModel, ecModel)) {\r\n rangeInfoList.push(area);\r\n }\r\n hasBrushExists = hasBrushExists || brushed(rangeInfoList);\r\n });\r\n if (linkOthers(seriesIndex) && brushed(rangeInfoList)) {\r\n var data_1 = seriesModel.getData();\r\n data_1.each(function (dataIndex) {\r\n if (checkInRange(seriesModel, rangeInfoList, data_1, dataIndex)) {\r\n selectedDataIndexForLink[dataIndex] = 1;\r\n }\r\n });\r\n }\r\n }\r\n ecModel.eachSeries(function (seriesModel, seriesIndex) {\r\n var seriesBrushSelected = {\r\n seriesId: seriesModel.id,\r\n seriesIndex: seriesIndex,\r\n seriesName: seriesModel.name,\r\n dataIndex: []\r\n };\r\n thisBrushSelected.selected.push(seriesBrushSelected);\r\n var rangeInfoList = rangeInfoBySeries[seriesIndex];\r\n var data = seriesModel.getData();\r\n var getValueState = linkOthers(seriesIndex)\r\n ? function (dataIndex) {\r\n return selectedDataIndexForLink[dataIndex]\r\n ? (seriesBrushSelected.dataIndex.push(data.getRawIndex(dataIndex)), 'inBrush')\r\n : 'outOfBrush';\r\n }\r\n : function (dataIndex) {\r\n return checkInRange(seriesModel, rangeInfoList, data, dataIndex)\r\n ? (seriesBrushSelected.dataIndex.push(data.getRawIndex(dataIndex)), 'inBrush')\r\n : 'outOfBrush';\r\n };\r\n (linkOthers(seriesIndex) ? hasBrushExists : brushed(rangeInfoList))\r\n && applyVisual(STATE_LIST, visualMappings, data, getValueState);\r\n });\r\n });\r\n dispatchAction(api, throttleType, throttleDelay, brushSelected, payload);\r\n });\r\n function dispatchAction(api, throttleType, throttleDelay, brushSelected, payload) {\r\n if (!payload) {\r\n return;\r\n }\r\n var zr = api.getZr();\r\n if (zr[DISPATCH_FLAG]) {\r\n return;\r\n }\r\n if (!zr[DISPATCH_METHOD]) {\r\n zr[DISPATCH_METHOD] = doDispatch;\r\n }\r\n var fn = createOrUpdate(zr, DISPATCH_METHOD, throttleDelay, throttleType);\r\n fn(api, brushSelected);\r\n }\r\n function doDispatch(api, brushSelected) {\r\n if (!api.isDisposed()) {\r\n var zr = api.getZr();\r\n zr[DISPATCH_FLAG] = true;\r\n api.dispatchAction({\r\n type: 'brushSelect',\r\n batch: brushSelected\r\n });\r\n zr[DISPATCH_FLAG] = false;\r\n }\r\n }\r\n function checkInRange(seriesModel, rangeInfoList, data, dataIndex) {\r\n for (var i = 0, len = rangeInfoList.length; i < len; i++) {\r\n var area = rangeInfoList[i];\r\n if (seriesModel.brushSelector(dataIndex, data, area.selectors, area)) {\r\n return true;\r\n }\r\n }\r\n }\r\n function brushModelNotControll(brushModel, seriesIndex) {\r\n var seriesIndices = brushModel.option.seriesIndex;\r\n return seriesIndices != null\r\n && seriesIndices !== 'all'\r\n && (isArray(seriesIndices)\r\n ? indexOf(seriesIndices, seriesIndex) < 0\r\n : seriesIndex !== seriesIndices);\r\n }\r\n var boundingRectBuilders = {\r\n rect: function (area) {\r\n return getBoundingRectFromMinMax(area.range);\r\n },\r\n polygon: function (area) {\r\n var minMax;\r\n var range = area.range;\r\n for (var i = 0, len = range.length; i < len; i++) {\r\n minMax = minMax || [[Infinity, -Infinity], [Infinity, -Infinity]];\r\n var rg = range[i];\r\n rg[0] < minMax[0][0] && (minMax[0][0] = rg[0]);\r\n rg[0] > minMax[0][1] && (minMax[0][1] = rg[0]);\r\n rg[1] < minMax[1][0] && (minMax[1][0] = rg[1]);\r\n rg[1] > minMax[1][1] && (minMax[1][1] = rg[1]);\r\n }\r\n return minMax && getBoundingRectFromMinMax(minMax);\r\n }\r\n };\r\n function getBoundingRectFromMinMax(minMax) {\r\n return new BoundingRect(minMax[0][0], minMax[1][0], minMax[0][1] - minMax[0][0], minMax[1][1] - minMax[1][0]);\r\n }\n\n var DEFAULT_OUT_OF_BRUSH_COLOR = '#ddd';\r\n var BrushModel = (function (_super) {\r\n __extends(BrushModel, _super);\r\n function BrushModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = BrushModel.type;\r\n _this.areas = [];\r\n _this.brushOption = {};\r\n return _this;\r\n }\r\n BrushModel.prototype.optionUpdated = function (newOption, isInit) {\r\n var thisOption = this.option;\r\n !isInit && replaceVisualOption(thisOption, newOption, ['inBrush', 'outOfBrush']);\r\n var inBrush = thisOption.inBrush = thisOption.inBrush || {};\r\n thisOption.outOfBrush = thisOption.outOfBrush || { color: DEFAULT_OUT_OF_BRUSH_COLOR };\r\n if (!inBrush.hasOwnProperty('liftZ')) {\r\n inBrush.liftZ = 5;\r\n }\r\n };\r\n BrushModel.prototype.setAreas = function (areas) {\r\n if (__DEV__) {\r\n assert(isArray(areas));\r\n each(areas, function (area) {\r\n assert(area.brushType, 'Illegal areas');\r\n });\r\n }\r\n if (!areas) {\r\n return;\r\n }\r\n this.areas = map(areas, function (area) {\r\n return generateBrushOption(this.option, area);\r\n }, this);\r\n };\r\n BrushModel.prototype.setBrushOption = function (brushOption) {\r\n this.brushOption = generateBrushOption(this.option, brushOption);\r\n this.brushType = this.brushOption.brushType;\r\n };\r\n BrushModel.type = 'brush';\r\n BrushModel.dependencies = ['geo', 'grid', 'xAxis', 'yAxis', 'parallel', 'series'];\r\n BrushModel.defaultOption = {\r\n seriesIndex: 'all',\r\n brushType: 'rect',\r\n brushMode: 'single',\r\n transformable: true,\r\n brushStyle: {\r\n borderWidth: 1,\r\n color: 'rgba(210,219,238,0.3)',\r\n borderColor: '#D2DBEE'\r\n },\r\n throttleType: 'fixRate',\r\n throttleDelay: 0,\r\n removeOnClick: true,\r\n z: 10000\r\n };\r\n return BrushModel;\r\n }(ComponentModel));\r\n ComponentModel.registerClass(BrushModel);\r\n function generateBrushOption(option, brushOption) {\r\n return merge({\r\n brushType: option.brushType,\r\n brushMode: option.brushMode,\r\n transformable: option.transformable,\r\n brushStyle: new Model(option.brushStyle).getItemStyle(),\r\n removeOnClick: option.removeOnClick,\r\n z: option.z\r\n }, brushOption, true);\r\n }\n\n var BrushView = (function (_super) {\r\n __extends(BrushView, _super);\r\n function BrushView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = BrushView.type;\r\n return _this;\r\n }\r\n BrushView.prototype.init = function (ecModel, api) {\r\n this.ecModel = ecModel;\r\n this.api = api;\r\n this.model;\r\n (this._brushController = new BrushController(api.getZr()))\r\n .on('brush', bind(this._onBrush, this))\r\n .mount();\r\n };\r\n BrushView.prototype.render = function (brushModel, ecModel, api, payload) {\r\n this.model = brushModel;\r\n this._updateController(brushModel, ecModel, api, payload);\r\n };\r\n BrushView.prototype.updateTransform = function (brushModel, ecModel, api, payload) {\r\n layoutCovers(ecModel);\r\n this._updateController(brushModel, ecModel, api, payload);\r\n };\r\n BrushView.prototype.updateVisual = function (brushModel, ecModel, api, payload) {\r\n this.updateTransform(brushModel, ecModel, api, payload);\r\n };\r\n BrushView.prototype.updateView = function (brushModel, ecModel, api, payload) {\r\n this._updateController(brushModel, ecModel, api, payload);\r\n };\r\n BrushView.prototype._updateController = function (brushModel, ecModel, api, payload) {\r\n (!payload || payload.$from !== brushModel.id) && this._brushController\r\n .setPanels(brushModel.brushTargetManager.makePanelOpts(api))\r\n .enableBrush(brushModel.brushOption)\r\n .updateCovers(brushModel.areas.slice());\r\n };\r\n BrushView.prototype.dispose = function () {\r\n this._brushController.dispose();\r\n };\r\n BrushView.prototype._onBrush = function (eventParam) {\r\n var modelId = this.model.id;\r\n var areas = this.model.brushTargetManager.setOutputRanges(eventParam.areas, this.ecModel);\r\n (!eventParam.isEnd || eventParam.removeOnClick) && this.api.dispatchAction({\r\n type: 'brush',\r\n brushId: modelId,\r\n areas: clone(areas),\r\n $from: modelId\r\n });\r\n eventParam.isEnd && this.api.dispatchAction({\r\n type: 'brushEnd',\r\n brushId: modelId,\r\n areas: clone(areas),\r\n $from: modelId\r\n });\r\n };\r\n BrushView.type = 'brush';\r\n return BrushView;\r\n }(ComponentView));\r\n ComponentView.registerClass(BrushView);\n\n registerAction({ type: 'brush', event: 'brush', update: 'updateVisual' }, function (payload, ecModel) {\r\n ecModel.eachComponent({ mainType: 'brush', query: payload }, function (brushModel) {\r\n brushModel.setAreas(payload.areas);\r\n });\r\n });\r\n registerAction({ type: 'brushSelect', event: 'brushSelected', update: 'none' }, function () { });\r\n registerAction({ type: 'brushEnd', event: 'brushEnd', update: 'none' }, function () { });\n\n var ICON_TYPES = ['rect', 'polygon', 'lineX', 'lineY', 'keep', 'clear'];\r\n var BrushFeature = (function (_super) {\r\n __extends(BrushFeature, _super);\r\n function BrushFeature() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n BrushFeature.prototype.render = function (featureModel, ecModel, api) {\r\n var brushType;\r\n var brushMode;\r\n var isBrushed;\r\n ecModel.eachComponent({ mainType: 'brush' }, function (brushModel) {\r\n brushType = brushModel.brushType;\r\n brushMode = brushModel.brushOption.brushMode || 'single';\r\n isBrushed = isBrushed || !!brushModel.areas.length;\r\n });\r\n this._brushType = brushType;\r\n this._brushMode = brushMode;\r\n each(featureModel.get('type', true), function (type) {\r\n featureModel.setIconStatus(type, (type === 'keep'\r\n ? brushMode === 'multiple'\r\n : type === 'clear'\r\n ? isBrushed\r\n : type === brushType) ? 'emphasis' : 'normal');\r\n });\r\n };\r\n BrushFeature.prototype.updateView = function (featureModel, ecModel, api) {\r\n this.render(featureModel, ecModel, api);\r\n };\r\n BrushFeature.prototype.getIcons = function () {\r\n var model = this.model;\r\n var availableIcons = model.get('icon', true);\r\n var icons = {};\r\n each(model.get('type', true), function (type) {\r\n if (availableIcons[type]) {\r\n icons[type] = availableIcons[type];\r\n }\r\n });\r\n return icons;\r\n };\r\n BrushFeature.prototype.onclick = function (ecModel, api, type) {\r\n var brushType = this._brushType;\r\n var brushMode = this._brushMode;\r\n if (type === 'clear') {\r\n api.dispatchAction({\r\n type: 'axisAreaSelect',\r\n intervals: []\r\n });\r\n api.dispatchAction({\r\n type: 'brush',\r\n command: 'clear',\r\n areas: []\r\n });\r\n }\r\n else {\r\n api.dispatchAction({\r\n type: 'takeGlobalCursor',\r\n key: 'brush',\r\n brushOption: {\r\n brushType: type === 'keep'\r\n ? brushType\r\n : (brushType === type ? false : type),\r\n brushMode: type === 'keep'\r\n ? (brushMode === 'multiple' ? 'single' : 'multiple')\r\n : brushMode\r\n }\r\n });\r\n }\r\n };\r\n BrushFeature.getDefaultOption = function (ecModel) {\r\n var defaultOption = {\r\n show: true,\r\n type: ICON_TYPES.slice(),\r\n icon: {\r\n rect: 'M7.3,34.7 M0.4,10V-0.2h9.8 M89.6,10V-0.2h-9.8 M0.4,60v10.2h9.8 M89.6,60v10.2h-9.8 M12.3,22.4V10.5h13.1 M33.6,10.5h7.8 M49.1,10.5h7.8 M77.5,22.4V10.5h-13 M12.3,31.1v8.2 M77.7,31.1v8.2 M12.3,47.6v11.9h13.1 M33.6,59.5h7.6 M49.1,59.5 h7.7 M77.5,47.6v11.9h-13',\r\n polygon: 'M55.2,34.9c1.7,0,3.1,1.4,3.1,3.1s-1.4,3.1-3.1,3.1 s-3.1-1.4-3.1-3.1S53.5,34.9,55.2,34.9z M50.4,51c1.7,0,3.1,1.4,3.1,3.1c0,1.7-1.4,3.1-3.1,3.1c-1.7,0-3.1-1.4-3.1-3.1 C47.3,52.4,48.7,51,50.4,51z M55.6,37.1l1.5-7.8 M60.1,13.5l1.6-8.7l-7.8,4 M59,19l-1,5.3 M24,16.1l6.4,4.9l6.4-3.3 M48.5,11.6 l-5.9,3.1 M19.1,12.8L9.7,5.1l1.1,7.7 M13.4,29.8l1,7.3l6.6,1.6 M11.6,18.4l1,6.1 M32.8,41.9 M26.6,40.4 M27.3,40.2l6.1,1.6 M49.9,52.1l-5.6-7.6l-4.9-1.2',\r\n lineX: 'M15.2,30 M19.7,15.6V1.9H29 M34.8,1.9H40.4 M55.3,15.6V1.9H45.9 M19.7,44.4V58.1H29 M34.8,58.1H40.4 M55.3,44.4 V58.1H45.9 M12.5,20.3l-9.4,9.6l9.6,9.8 M3.1,29.9h16.5 M62.5,20.3l9.4,9.6L62.3,39.7 M71.9,29.9H55.4',\r\n lineY: 'M38.8,7.7 M52.7,12h13.2v9 M65.9,26.6V32 M52.7,46.3h13.2v-9 M24.9,12H11.8v9 M11.8,26.6V32 M24.9,46.3H11.8v-9 M48.2,5.1l-9.3-9l-9.4,9.2 M38.9-3.9V12 M48.2,53.3l-9.3,9l-9.4-9.2 M38.9,62.3V46.4',\r\n keep: 'M4,10.5V1h10.3 M20.7,1h6.1 M33,1h6.1 M55.4,10.5V1H45.2 M4,17.3v6.6 M55.6,17.3v6.6 M4,30.5V40h10.3 M20.7,40 h6.1 M33,40h6.1 M55.4,30.5V40H45.2 M21,18.9h62.9v48.6H21V18.9z',\r\n clear: 'M22,14.7l30.9,31 M52.9,14.7L22,45.7 M4.7,16.8V4.2h13.1 M26,4.2h7.8 M41.6,4.2h7.8 M70.3,16.8V4.2H57.2 M4.7,25.9v8.6 M70.3,25.9v8.6 M4.7,43.2v12.6h13.1 M26,55.8h7.8 M41.6,55.8h7.8 M70.3,43.2v12.6H57.2'\r\n },\r\n title: ecModel.getLocale(['toolbox', 'brush', 'title'])\r\n };\r\n return defaultOption;\r\n };\r\n return BrushFeature;\r\n }(ToolboxFeature));\r\n registerFeature('brush', BrushFeature);\n\n registerPreprocessor(brushPreprocessor);\n\n var TitleModel = (function (_super) {\r\n __extends(TitleModel, _super);\r\n function TitleModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = TitleModel.type;\r\n _this.layoutMode = { type: 'box', ignoreSize: true };\r\n return _this;\r\n }\r\n TitleModel.type = 'title';\r\n TitleModel.defaultOption = {\r\n zlevel: 0,\r\n z: 6,\r\n show: true,\r\n text: '',\r\n target: 'blank',\r\n subtext: '',\r\n subtarget: 'blank',\r\n left: 0,\r\n top: 0,\r\n backgroundColor: 'rgba(0,0,0,0)',\r\n borderColor: '#ccc',\r\n borderWidth: 0,\r\n padding: 5,\r\n itemGap: 10,\r\n textStyle: {\r\n fontSize: 18,\r\n fontWeight: 'bold',\r\n color: '#464646'\r\n },\r\n subtextStyle: {\r\n fontSize: 12,\r\n color: '#6E7079'\r\n }\r\n };\r\n return TitleModel;\r\n }(ComponentModel));\r\n ComponentModel.registerClass(TitleModel);\r\n var TitleView = (function (_super) {\r\n __extends(TitleView, _super);\r\n function TitleView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = TitleView.type;\r\n return _this;\r\n }\r\n TitleView.prototype.render = function (titleModel, ecModel, api) {\r\n this.group.removeAll();\r\n if (!titleModel.get('show')) {\r\n return;\r\n }\r\n var group = this.group;\r\n var textStyleModel = titleModel.getModel('textStyle');\r\n var subtextStyleModel = titleModel.getModel('subtextStyle');\r\n var textAlign = titleModel.get('textAlign');\r\n var textVerticalAlign = retrieve2(titleModel.get('textBaseline'), titleModel.get('textVerticalAlign'));\r\n var textEl = new ZRText({\r\n style: createTextStyle(textStyleModel, {\r\n text: titleModel.get('text'),\r\n fill: textStyleModel.getTextColor()\r\n }, { disableBox: true }),\r\n z2: 10\r\n });\r\n var textRect = textEl.getBoundingRect();\r\n var subText = titleModel.get('subtext');\r\n var subTextEl = new ZRText({\r\n style: createTextStyle(subtextStyleModel, {\r\n text: subText,\r\n fill: subtextStyleModel.getTextColor(),\r\n y: textRect.height + titleModel.get('itemGap'),\r\n verticalAlign: 'top'\r\n }, { disableBox: true }),\r\n z2: 10\r\n });\r\n var link = titleModel.get('link');\r\n var sublink = titleModel.get('sublink');\r\n var triggerEvent = titleModel.get('triggerEvent', true);\r\n textEl.silent = !link && !triggerEvent;\r\n subTextEl.silent = !sublink && !triggerEvent;\r\n if (link) {\r\n textEl.on('click', function () {\r\n windowOpen(link, '_' + titleModel.get('target'));\r\n });\r\n }\r\n if (sublink) {\r\n subTextEl.on('click', function () {\r\n windowOpen(sublink, '_' + titleModel.get('subtarget'));\r\n });\r\n }\r\n getECData(textEl).eventData = getECData(subTextEl).eventData = triggerEvent\r\n ? {\r\n componentType: 'title',\r\n componentIndex: titleModel.componentIndex\r\n }\r\n : null;\r\n group.add(textEl);\r\n subText && group.add(subTextEl);\r\n var groupRect = group.getBoundingRect();\r\n var layoutOption = titleModel.getBoxLayoutParams();\r\n layoutOption.width = groupRect.width;\r\n layoutOption.height = groupRect.height;\r\n var layoutRect = getLayoutRect(layoutOption, {\r\n width: api.getWidth(),\r\n height: api.getHeight()\r\n }, titleModel.get('padding'));\r\n if (!textAlign) {\r\n textAlign = (titleModel.get('left') || titleModel.get('right'));\r\n if (textAlign === 'middle') {\r\n textAlign = 'center';\r\n }\r\n if (textAlign === 'right') {\r\n layoutRect.x += layoutRect.width;\r\n }\r\n else if (textAlign === 'center') {\r\n layoutRect.x += layoutRect.width / 2;\r\n }\r\n }\r\n if (!textVerticalAlign) {\r\n textVerticalAlign = (titleModel.get('top') || titleModel.get('bottom'));\r\n if (textVerticalAlign === 'center') {\r\n textVerticalAlign = 'middle';\r\n }\r\n if (textVerticalAlign === 'bottom') {\r\n layoutRect.y += layoutRect.height;\r\n }\r\n else if (textVerticalAlign === 'middle') {\r\n layoutRect.y += layoutRect.height / 2;\r\n }\r\n textVerticalAlign = textVerticalAlign || 'top';\r\n }\r\n group.x = layoutRect.x;\r\n group.y = layoutRect.y;\r\n group.markRedraw();\r\n var alignStyle = {\r\n align: textAlign,\r\n verticalAlign: textVerticalAlign\r\n };\r\n textEl.setStyle(alignStyle);\r\n subTextEl.setStyle(alignStyle);\r\n groupRect = group.getBoundingRect();\r\n var padding = layoutRect.margin;\r\n var style = titleModel.getItemStyle(['color', 'opacity']);\r\n style.fill = titleModel.get('backgroundColor');\r\n var rect = new Rect({\r\n shape: {\r\n x: groupRect.x - padding[3],\r\n y: groupRect.y - padding[0],\r\n width: groupRect.width + padding[1] + padding[3],\r\n height: groupRect.height + padding[0] + padding[2],\r\n r: titleModel.get('borderRadius')\r\n },\r\n style: style,\r\n subPixelOptimize: true,\r\n silent: true\r\n });\r\n group.add(rect);\r\n };\r\n TitleView.type = 'title';\r\n return TitleView;\r\n }(ComponentView));\r\n ComponentView.registerClass(TitleView);\n\n function timelinePreprocessor(option) {\r\n var timelineOpt = option && option.timeline;\r\n if (!isArray(timelineOpt)) {\r\n timelineOpt = timelineOpt ? [timelineOpt] : [];\r\n }\r\n each(timelineOpt, function (opt) {\r\n if (!opt) {\r\n return;\r\n }\r\n compatibleEC2(opt);\r\n });\r\n }\r\n function compatibleEC2(opt) {\r\n var type = opt.type;\r\n var ec2Types = { 'number': 'value', 'time': 'time' };\r\n if (ec2Types[type]) {\r\n opt.axisType = ec2Types[type];\r\n delete opt.type;\r\n }\r\n transferItem(opt);\r\n if (has(opt, 'controlPosition')) {\r\n var controlStyle = opt.controlStyle || (opt.controlStyle = {});\r\n if (!has(controlStyle, 'position')) {\r\n controlStyle.position = opt.controlPosition;\r\n }\r\n if (controlStyle.position === 'none' && !has(controlStyle, 'show')) {\r\n controlStyle.show = false;\r\n delete controlStyle.position;\r\n }\r\n delete opt.controlPosition;\r\n }\r\n each(opt.data || [], function (dataItem) {\r\n if (isObject(dataItem) && !isArray(dataItem)) {\r\n if (!has(dataItem, 'value') && has(dataItem, 'name')) {\r\n dataItem.value = dataItem.name;\r\n }\r\n transferItem(dataItem);\r\n }\r\n });\r\n }\r\n function transferItem(opt) {\r\n var itemStyle = opt.itemStyle || (opt.itemStyle = {});\r\n var itemStyleEmphasis = itemStyle.emphasis || (itemStyle.emphasis = {});\r\n var label = opt.label || (opt.label || {});\r\n var labelNormal = label.normal || (label.normal = {});\r\n var excludeLabelAttr = { normal: 1, emphasis: 1 };\r\n each(label, function (value, name) {\r\n if (!excludeLabelAttr[name] && !has(labelNormal, name)) {\r\n labelNormal[name] = value;\r\n }\r\n });\r\n if (itemStyleEmphasis.label && !has(label, 'emphasis')) {\r\n label.emphasis = itemStyleEmphasis.label;\r\n delete itemStyleEmphasis.label;\r\n }\r\n }\r\n function has(obj, attr) {\r\n return obj.hasOwnProperty(attr);\r\n }\n\n ComponentModel.registerSubTypeDefaulter('timeline', function () {\r\n return 'slider';\r\n });\n\n registerAction({ type: 'timelineChange', event: 'timelineChanged', update: 'prepareAndUpdate' }, function (payload, ecModel) {\r\n var timelineModel = ecModel.getComponent('timeline');\r\n if (timelineModel && payload.currentIndex != null) {\r\n timelineModel.setCurrentIndex(payload.currentIndex);\r\n if (!timelineModel.get('loop', true) && timelineModel.isIndexMax()) {\r\n timelineModel.setPlayState(false);\r\n }\r\n }\r\n ecModel.resetOption('timeline', { replaceMerge: timelineModel.get('replaceMerge', true) });\r\n return defaults({\r\n currentIndex: timelineModel.option.currentIndex\r\n }, payload);\r\n });\r\n registerAction({ type: 'timelinePlayChange', event: 'timelinePlayChanged', update: 'update' }, function (payload, ecModel) {\r\n var timelineModel = ecModel.getComponent('timeline');\r\n if (timelineModel && payload.playState != null) {\r\n timelineModel.setPlayState(payload.playState);\r\n }\r\n });\n\n var TimelineModel = (function (_super) {\r\n __extends(TimelineModel, _super);\r\n function TimelineModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = TimelineModel.type;\r\n _this.layoutMode = 'box';\r\n return _this;\r\n }\r\n TimelineModel.prototype.init = function (option, parentModel, ecModel) {\r\n this.mergeDefaultAndTheme(option, ecModel);\r\n this._initData();\r\n };\r\n TimelineModel.prototype.mergeOption = function (option) {\r\n _super.prototype.mergeOption.apply(this, arguments);\r\n this._initData();\r\n };\r\n TimelineModel.prototype.setCurrentIndex = function (currentIndex) {\r\n if (currentIndex == null) {\r\n currentIndex = this.option.currentIndex;\r\n }\r\n var count = this._data.count();\r\n if (this.option.loop) {\r\n currentIndex = (currentIndex % count + count) % count;\r\n }\r\n else {\r\n currentIndex >= count && (currentIndex = count - 1);\r\n currentIndex < 0 && (currentIndex = 0);\r\n }\r\n this.option.currentIndex = currentIndex;\r\n };\r\n TimelineModel.prototype.getCurrentIndex = function () {\r\n return this.option.currentIndex;\r\n };\r\n TimelineModel.prototype.isIndexMax = function () {\r\n return this.getCurrentIndex() >= this._data.count() - 1;\r\n };\r\n TimelineModel.prototype.setPlayState = function (state) {\r\n this.option.autoPlay = !!state;\r\n };\r\n TimelineModel.prototype.getPlayState = function () {\r\n return !!this.option.autoPlay;\r\n };\r\n TimelineModel.prototype._initData = function () {\r\n var thisOption = this.option;\r\n var dataArr = thisOption.data || [];\r\n var axisType = thisOption.axisType;\r\n var names = this._names = [];\r\n var processedDataArr;\r\n if (axisType === 'category') {\r\n processedDataArr = [];\r\n each(dataArr, function (item, index) {\r\n var value = convertOptionIdName(getDataItemValue(item), '');\r\n var newItem;\r\n if (isObject(item)) {\r\n newItem = clone(item);\r\n newItem.value = index;\r\n }\r\n else {\r\n newItem = index;\r\n }\r\n processedDataArr.push(newItem);\r\n names.push(value);\r\n });\r\n }\r\n else {\r\n processedDataArr = dataArr;\r\n }\r\n var dimType = ({\r\n category: 'ordinal',\r\n time: 'time',\r\n value: 'number'\r\n })[axisType] || 'number';\r\n var data = this._data = new List([{\r\n name: 'value', type: dimType\r\n }], this);\r\n data.initData(processedDataArr, names);\r\n };\r\n TimelineModel.prototype.getData = function () {\r\n return this._data;\r\n };\r\n TimelineModel.prototype.getCategories = function () {\r\n if (this.get('axisType') === 'category') {\r\n return this._names.slice();\r\n }\r\n };\r\n TimelineModel.type = 'timeline';\r\n TimelineModel.defaultOption = {\r\n zlevel: 0,\r\n z: 4,\r\n show: true,\r\n axisType: 'time',\r\n realtime: true,\r\n left: '20%',\r\n top: null,\r\n right: '20%',\r\n bottom: 0,\r\n width: null,\r\n height: 40,\r\n padding: 5,\r\n controlPosition: 'left',\r\n autoPlay: false,\r\n rewind: false,\r\n loop: true,\r\n playInterval: 2000,\r\n currentIndex: 0,\r\n itemStyle: {},\r\n label: {\r\n color: '#000'\r\n },\r\n data: []\r\n };\r\n return TimelineModel;\r\n }(ComponentModel));\r\n ComponentModel.registerClass(TimelineModel);\n\n var SliderTimelineModel = (function (_super) {\r\n __extends(SliderTimelineModel, _super);\r\n function SliderTimelineModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = SliderTimelineModel.type;\r\n return _this;\r\n }\r\n SliderTimelineModel.type = 'timeline.slider';\r\n SliderTimelineModel.defaultOption = inheritDefaultOption(TimelineModel.defaultOption, {\r\n backgroundColor: 'rgba(0,0,0,0)',\r\n borderColor: '#ccc',\r\n borderWidth: 0,\r\n orient: 'horizontal',\r\n inverse: false,\r\n tooltip: {\r\n trigger: 'item'\r\n },\r\n symbol: 'circle',\r\n symbolSize: 12,\r\n lineStyle: {\r\n show: true,\r\n width: 2,\r\n color: '#DAE1F5'\r\n },\r\n label: {\r\n position: 'auto',\r\n show: true,\r\n interval: 'auto',\r\n rotate: 0,\r\n color: '#A4B1D7'\r\n },\r\n itemStyle: {\r\n color: '#A4B1D7',\r\n borderWidth: 1\r\n },\r\n checkpointStyle: {\r\n symbol: 'circle',\r\n symbolSize: 15,\r\n color: '#316bf3',\r\n borderColor: '#fff',\r\n borderWidth: 2,\r\n shadowBlur: 2,\r\n shadowOffsetX: 1,\r\n shadowOffsetY: 1,\r\n shadowColor: 'rgba(0, 0, 0, 0.3)',\r\n animation: true,\r\n animationDuration: 300,\r\n animationEasing: 'quinticInOut'\r\n },\r\n controlStyle: {\r\n show: true,\r\n showPlayBtn: true,\r\n showPrevBtn: true,\r\n showNextBtn: true,\r\n itemSize: 24,\r\n itemGap: 12,\r\n position: 'left',\r\n playIcon: 'path://M31.6,53C17.5,53,6,41.5,6,27.4S17.5,1.8,31.6,1.8C45.7,1.8,57.2,13.3,57.2,27.4S45.7,53,31.6,53z M31.6,3.3 C18.4,3.3,7.5,14.1,7.5,27.4c0,13.3,10.8,24.1,24.1,24.1C44.9,51.5,55.7,40.7,55.7,27.4C55.7,14.1,44.9,3.3,31.6,3.3z M24.9,21.3 c0-2.2,1.6-3.1,3.5-2l10.5,6.1c1.899,1.1,1.899,2.9,0,4l-10.5,6.1c-1.9,1.1-3.5,0.2-3.5-2V21.3z',\r\n stopIcon: 'path://M30.9,53.2C16.8,53.2,5.3,41.7,5.3,27.6S16.8,2,30.9,2C45,2,56.4,13.5,56.4,27.6S45,53.2,30.9,53.2z M30.9,3.5C17.6,3.5,6.8,14.4,6.8,27.6c0,13.3,10.8,24.1,24.101,24.1C44.2,51.7,55,40.9,55,27.6C54.9,14.4,44.1,3.5,30.9,3.5z M36.9,35.8c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H36c0.5,0,0.9,0.4,0.9,1V35.8z M27.8,35.8 c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H27c0.5,0,0.9,0.4,0.9,1L27.8,35.8L27.8,35.8z',\r\n nextIcon: 'M2,18.5A1.52,1.52,0,0,1,.92,18a1.49,1.49,0,0,1,0-2.12L7.81,9.36,1,3.11A1.5,1.5,0,1,1,3,.89l8,7.34a1.48,1.48,0,0,1,.49,1.09,1.51,1.51,0,0,1-.46,1.1L3,18.08A1.5,1.5,0,0,1,2,18.5Z',\r\n prevIcon: 'M10,.5A1.52,1.52,0,0,1,11.08,1a1.49,1.49,0,0,1,0,2.12L4.19,9.64,11,15.89a1.5,1.5,0,1,1-2,2.22L1,10.77A1.48,1.48,0,0,1,.5,9.68,1.51,1.51,0,0,1,1,8.58L9,.92A1.5,1.5,0,0,1,10,.5Z',\r\n prevBtnSize: 18,\r\n nextBtnSize: 18,\r\n color: '#A4B1D7',\r\n borderColor: '#A4B1D7',\r\n borderWidth: 1\r\n },\r\n emphasis: {\r\n label: {\r\n show: true,\r\n color: '#6f778d'\r\n },\r\n itemStyle: {\r\n color: '#316BF3'\r\n },\r\n controlStyle: {\r\n color: '#316BF3',\r\n borderColor: '#316BF3',\r\n borderWidth: 2\r\n }\r\n },\r\n progress: {\r\n lineStyle: {\r\n color: '#316BF3'\r\n },\r\n itemStyle: {\r\n color: '#316BF3'\r\n },\r\n label: {\r\n color: '#6f778d'\r\n }\r\n },\r\n data: []\r\n });\r\n return SliderTimelineModel;\r\n }(TimelineModel));\r\n mixin(SliderTimelineModel, DataFormatMixin.prototype);\r\n ComponentModel.registerClass(SliderTimelineModel);\n\n var TimelineView = (function (_super) {\r\n __extends(TimelineView, _super);\r\n function TimelineView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = TimelineView.type;\r\n return _this;\r\n }\r\n TimelineView.type = 'timeline';\r\n return TimelineView;\r\n }(ComponentView));\n\n var TimelineAxis = (function (_super) {\r\n __extends(TimelineAxis, _super);\r\n function TimelineAxis(dim, scale, coordExtent, axisType) {\r\n var _this = _super.call(this, dim, scale, coordExtent) || this;\r\n _this.type = axisType || 'value';\r\n return _this;\r\n }\r\n TimelineAxis.prototype.getLabelModel = function () {\r\n return this.model.getModel('label');\r\n };\r\n TimelineAxis.prototype.isHorizontal = function () {\r\n return this.model.get('orient') === 'horizontal';\r\n };\r\n return TimelineAxis;\r\n }(Axis));\n\n var PI$9 = Math.PI;\r\n var labelDataIndexStore = makeInner();\r\n var SliderTimelineView = (function (_super) {\r\n __extends(SliderTimelineView, _super);\r\n function SliderTimelineView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = SliderTimelineView.type;\r\n return _this;\r\n }\r\n SliderTimelineView.prototype.init = function (ecModel, api) {\r\n this.api = api;\r\n };\r\n SliderTimelineView.prototype.render = function (timelineModel, ecModel, api) {\r\n this.model = timelineModel;\r\n this.api = api;\r\n this.ecModel = ecModel;\r\n this.group.removeAll();\r\n if (timelineModel.get('show', true)) {\r\n var layoutInfo_1 = this._layout(timelineModel, api);\r\n var mainGroup_1 = this._createGroup('_mainGroup');\r\n var labelGroup = this._createGroup('_labelGroup');\r\n var axis_1 = this._axis = this._createAxis(layoutInfo_1, timelineModel);\r\n timelineModel.formatTooltip = function (dataIndex) {\r\n var name = axis_1.scale.getLabel({ value: dataIndex });\r\n return createTooltipMarkup('nameValue', { noName: true, value: name });\r\n };\r\n each(['AxisLine', 'AxisTick', 'Control', 'CurrentPointer'], function (name) {\r\n this['_render' + name](layoutInfo_1, mainGroup_1, axis_1, timelineModel);\r\n }, this);\r\n this._renderAxisLabel(layoutInfo_1, labelGroup, axis_1, timelineModel);\r\n this._position(layoutInfo_1, timelineModel);\r\n }\r\n this._doPlayStop();\r\n this._updateTicksStatus();\r\n };\r\n SliderTimelineView.prototype.remove = function () {\r\n this._clearTimer();\r\n this.group.removeAll();\r\n };\r\n SliderTimelineView.prototype.dispose = function () {\r\n this._clearTimer();\r\n };\r\n SliderTimelineView.prototype._layout = function (timelineModel, api) {\r\n var labelPosOpt = timelineModel.get(['label', 'position']);\r\n var orient = timelineModel.get('orient');\r\n var viewRect = getViewRect$5(timelineModel, api);\r\n var parsedLabelPos;\r\n if (labelPosOpt == null || labelPosOpt === 'auto') {\r\n parsedLabelPos = orient === 'horizontal'\r\n ? ((viewRect.y + viewRect.height / 2) < api.getHeight() / 2 ? '-' : '+')\r\n : ((viewRect.x + viewRect.width / 2) < api.getWidth() / 2 ? '+' : '-');\r\n }\r\n else if (isString(labelPosOpt)) {\r\n parsedLabelPos = {\r\n horizontal: { top: '-', bottom: '+' },\r\n vertical: { left: '-', right: '+' }\r\n }[orient][labelPosOpt];\r\n }\r\n else {\r\n parsedLabelPos = labelPosOpt;\r\n }\r\n var labelAlignMap = {\r\n horizontal: 'center',\r\n vertical: (parsedLabelPos >= 0 || parsedLabelPos === '+') ? 'left' : 'right'\r\n };\r\n var labelBaselineMap = {\r\n horizontal: (parsedLabelPos >= 0 || parsedLabelPos === '+') ? 'top' : 'bottom',\r\n vertical: 'middle'\r\n };\r\n var rotationMap = {\r\n horizontal: 0,\r\n vertical: PI$9 / 2\r\n };\r\n var mainLength = orient === 'vertical' ? viewRect.height : viewRect.width;\r\n var controlModel = timelineModel.getModel('controlStyle');\r\n var showControl = controlModel.get('show', true);\r\n var controlSize = showControl ? controlModel.get('itemSize') : 0;\r\n var controlGap = showControl ? controlModel.get('itemGap') : 0;\r\n var sizePlusGap = controlSize + controlGap;\r\n var labelRotation = timelineModel.get(['label', 'rotate']) || 0;\r\n labelRotation = labelRotation * PI$9 / 180;\r\n var playPosition;\r\n var prevBtnPosition;\r\n var nextBtnPosition;\r\n var controlPosition = controlModel.get('position', true);\r\n var showPlayBtn = showControl && controlModel.get('showPlayBtn', true);\r\n var showPrevBtn = showControl && controlModel.get('showPrevBtn', true);\r\n var showNextBtn = showControl && controlModel.get('showNextBtn', true);\r\n var xLeft = 0;\r\n var xRight = mainLength;\r\n if (controlPosition === 'left' || controlPosition === 'bottom') {\r\n showPlayBtn && (playPosition = [0, 0], xLeft += sizePlusGap);\r\n showPrevBtn && (prevBtnPosition = [xLeft, 0], xLeft += sizePlusGap);\r\n showNextBtn && (nextBtnPosition = [xRight - controlSize, 0], xRight -= sizePlusGap);\r\n }\r\n else {\r\n showPlayBtn && (playPosition = [xRight - controlSize, 0], xRight -= sizePlusGap);\r\n showPrevBtn && (prevBtnPosition = [0, 0], xLeft += sizePlusGap);\r\n showNextBtn && (nextBtnPosition = [xRight - controlSize, 0], xRight -= sizePlusGap);\r\n }\r\n var axisExtent = [xLeft, xRight];\r\n if (timelineModel.get('inverse')) {\r\n axisExtent.reverse();\r\n }\r\n return {\r\n viewRect: viewRect,\r\n mainLength: mainLength,\r\n orient: orient,\r\n rotation: rotationMap[orient],\r\n labelRotation: labelRotation,\r\n labelPosOpt: parsedLabelPos,\r\n labelAlign: timelineModel.get(['label', 'align']) || labelAlignMap[orient],\r\n labelBaseline: timelineModel.get(['label', 'verticalAlign'])\r\n || timelineModel.get(['label', 'baseline'])\r\n || labelBaselineMap[orient],\r\n playPosition: playPosition,\r\n prevBtnPosition: prevBtnPosition,\r\n nextBtnPosition: nextBtnPosition,\r\n axisExtent: axisExtent,\r\n controlSize: controlSize,\r\n controlGap: controlGap\r\n };\r\n };\r\n SliderTimelineView.prototype._position = function (layoutInfo, timelineModel) {\r\n var mainGroup = this._mainGroup;\r\n var labelGroup = this._labelGroup;\r\n var viewRect = layoutInfo.viewRect;\r\n if (layoutInfo.orient === 'vertical') {\r\n var m = create$1();\r\n var rotateOriginX = viewRect.x;\r\n var rotateOriginY = viewRect.y + viewRect.height;\r\n translate(m, m, [-rotateOriginX, -rotateOriginY]);\r\n rotate(m, m, -PI$9 / 2);\r\n translate(m, m, [rotateOriginX, rotateOriginY]);\r\n viewRect = viewRect.clone();\r\n viewRect.applyTransform(m);\r\n }\r\n var viewBound = getBound(viewRect);\r\n var mainBound = getBound(mainGroup.getBoundingRect());\r\n var labelBound = getBound(labelGroup.getBoundingRect());\r\n var mainPosition = [mainGroup.x, mainGroup.y];\r\n var labelsPosition = [labelGroup.x, labelGroup.y];\r\n labelsPosition[0] = mainPosition[0] = viewBound[0][0];\r\n var labelPosOpt = layoutInfo.labelPosOpt;\r\n if (labelPosOpt == null || isString(labelPosOpt)) {\r\n var mainBoundIdx = labelPosOpt === '+' ? 0 : 1;\r\n toBound(mainPosition, mainBound, viewBound, 1, mainBoundIdx);\r\n toBound(labelsPosition, labelBound, viewBound, 1, 1 - mainBoundIdx);\r\n }\r\n else {\r\n var mainBoundIdx = labelPosOpt >= 0 ? 0 : 1;\r\n toBound(mainPosition, mainBound, viewBound, 1, mainBoundIdx);\r\n labelsPosition[1] = mainPosition[1] + labelPosOpt;\r\n }\r\n mainGroup.setPosition(mainPosition);\r\n labelGroup.setPosition(labelsPosition);\r\n mainGroup.rotation = labelGroup.rotation = layoutInfo.rotation;\r\n setOrigin(mainGroup);\r\n setOrigin(labelGroup);\r\n function setOrigin(targetGroup) {\r\n targetGroup.originX = viewBound[0][0] - targetGroup.x;\r\n targetGroup.originY = viewBound[1][0] - targetGroup.y;\r\n }\r\n function getBound(rect) {\r\n return [\r\n [rect.x, rect.x + rect.width],\r\n [rect.y, rect.y + rect.height]\r\n ];\r\n }\r\n function toBound(fromPos, from, to, dimIdx, boundIdx) {\r\n fromPos[dimIdx] += to[dimIdx][boundIdx] - from[dimIdx][boundIdx];\r\n }\r\n };\r\n SliderTimelineView.prototype._createAxis = function (layoutInfo, timelineModel) {\r\n var data = timelineModel.getData();\r\n var axisType = timelineModel.get('axisType');\r\n var scale = createScaleByModel$1(timelineModel, axisType);\r\n scale.getTicks = function () {\r\n return data.mapArray(['value'], function (value) {\r\n return { value: value };\r\n });\r\n };\r\n var dataExtent = data.getDataExtent('value');\r\n scale.setExtent(dataExtent[0], dataExtent[1]);\r\n scale.niceTicks();\r\n var axis = new TimelineAxis('value', scale, layoutInfo.axisExtent, axisType);\r\n axis.model = timelineModel;\r\n return axis;\r\n };\r\n SliderTimelineView.prototype._createGroup = function (key) {\r\n var newGroup = this[key] = new Group();\r\n this.group.add(newGroup);\r\n return newGroup;\r\n };\r\n SliderTimelineView.prototype._renderAxisLine = function (layoutInfo, group, axis, timelineModel) {\r\n var axisExtent = axis.getExtent();\r\n if (!timelineModel.get(['lineStyle', 'show'])) {\r\n return;\r\n }\r\n var line = new Line({\r\n shape: {\r\n x1: axisExtent[0], y1: 0,\r\n x2: axisExtent[1], y2: 0\r\n },\r\n style: extend({ lineCap: 'round' }, timelineModel.getModel('lineStyle').getLineStyle()),\r\n silent: true,\r\n z2: 1\r\n });\r\n group.add(line);\r\n var progressLine = this._progressLine = new Line({\r\n shape: {\r\n x1: axisExtent[0],\r\n x2: this._currentPointer\r\n ? this._currentPointer.x : axisExtent[0],\r\n y1: 0, y2: 0\r\n },\r\n style: defaults({ lineCap: 'round', lineWidth: line.style.lineWidth }, timelineModel.getModel(['progress', 'lineStyle']).getLineStyle()),\r\n silent: true,\r\n z2: 1\r\n });\r\n group.add(progressLine);\r\n };\r\n SliderTimelineView.prototype._renderAxisTick = function (layoutInfo, group, axis, timelineModel) {\r\n var _this = this;\r\n var data = timelineModel.getData();\r\n var ticks = axis.scale.getTicks();\r\n this._tickSymbols = [];\r\n each(ticks, function (tick) {\r\n var tickCoord = axis.dataToCoord(tick.value);\r\n var itemModel = data.getItemModel(tick.value);\r\n var itemStyleModel = itemModel.getModel('itemStyle');\r\n var hoverStyleModel = itemModel.getModel(['emphasis', 'itemStyle']);\r\n var progressStyleModel = itemModel.getModel(['progress', 'itemStyle']);\r\n var symbolOpt = {\r\n x: tickCoord,\r\n y: 0,\r\n onclick: bind(_this._changeTimeline, _this, tick.value)\r\n };\r\n var el = giveSymbol(itemModel, itemStyleModel, group, symbolOpt);\r\n el.ensureState('emphasis').style = hoverStyleModel.getItemStyle();\r\n el.ensureState('progress').style = progressStyleModel.getItemStyle();\r\n enableHoverEmphasis(el);\r\n var ecData = getECData(el);\r\n if (itemModel.get('tooltip')) {\r\n ecData.dataIndex = tick.value;\r\n ecData.dataModel = timelineModel;\r\n }\r\n else {\r\n ecData.dataIndex = ecData.dataModel = null;\r\n }\r\n _this._tickSymbols.push(el);\r\n });\r\n };\r\n SliderTimelineView.prototype._renderAxisLabel = function (layoutInfo, group, axis, timelineModel) {\r\n var _this = this;\r\n var labelModel = axis.getLabelModel();\r\n if (!labelModel.get('show')) {\r\n return;\r\n }\r\n var data = timelineModel.getData();\r\n var labels = axis.getViewLabels();\r\n this._tickLabels = [];\r\n each(labels, function (labelItem) {\r\n var dataIndex = labelItem.tickValue;\r\n var itemModel = data.getItemModel(dataIndex);\r\n var normalLabelModel = itemModel.getModel('label');\r\n var hoverLabelModel = itemModel.getModel(['emphasis', 'label']);\r\n var progressLabelModel = itemModel.getModel(['progress', 'label']);\r\n var tickCoord = axis.dataToCoord(labelItem.tickValue);\r\n var textEl = new ZRText({\r\n x: tickCoord,\r\n y: 0,\r\n rotation: layoutInfo.labelRotation - layoutInfo.rotation,\r\n onclick: bind(_this._changeTimeline, _this, dataIndex),\r\n silent: false,\r\n style: createTextStyle(normalLabelModel, {\r\n text: labelItem.formattedLabel,\r\n align: layoutInfo.labelAlign,\r\n verticalAlign: layoutInfo.labelBaseline\r\n })\r\n });\r\n textEl.ensureState('emphasis').style = createTextStyle(hoverLabelModel);\r\n textEl.ensureState('progress').style = createTextStyle(progressLabelModel);\r\n group.add(textEl);\r\n enableHoverEmphasis(textEl);\r\n labelDataIndexStore(textEl).dataIndex = dataIndex;\r\n _this._tickLabels.push(textEl);\r\n });\r\n };\r\n SliderTimelineView.prototype._renderControl = function (layoutInfo, group, axis, timelineModel) {\r\n var controlSize = layoutInfo.controlSize;\r\n var rotation = layoutInfo.rotation;\r\n var itemStyle = timelineModel.getModel('controlStyle').getItemStyle();\r\n var hoverStyle = timelineModel.getModel(['emphasis', 'controlStyle']).getItemStyle();\r\n var playState = timelineModel.getPlayState();\r\n var inverse = timelineModel.get('inverse', true);\r\n makeBtn(layoutInfo.nextBtnPosition, 'next', bind(this._changeTimeline, this, inverse ? '-' : '+'));\r\n makeBtn(layoutInfo.prevBtnPosition, 'prev', bind(this._changeTimeline, this, inverse ? '+' : '-'));\r\n makeBtn(layoutInfo.playPosition, (playState ? 'stop' : 'play'), bind(this._handlePlayClick, this, !playState), true);\r\n function makeBtn(position, iconName, onclick, willRotate) {\r\n if (!position) {\r\n return;\r\n }\r\n var iconSize = parsePercent(retrieve2(timelineModel.get(['controlStyle', iconName + 'BtnSize']), controlSize), controlSize);\r\n var rect = [0, -iconSize / 2, iconSize, iconSize];\r\n var opt = {\r\n position: position,\r\n origin: [controlSize / 2, 0],\r\n rotation: willRotate ? -rotation : 0,\r\n rectHover: true,\r\n style: itemStyle,\r\n onclick: onclick\r\n };\r\n var btn = makeControlIcon(timelineModel, iconName + 'Icon', rect, opt);\r\n btn.ensureState('emphasis').style = hoverStyle;\r\n group.add(btn);\r\n enableHoverEmphasis(btn);\r\n }\r\n };\r\n SliderTimelineView.prototype._renderCurrentPointer = function (layoutInfo, group, axis, timelineModel) {\r\n var data = timelineModel.getData();\r\n var currentIndex = timelineModel.getCurrentIndex();\r\n var pointerModel = data.getItemModel(currentIndex)\r\n .getModel('checkpointStyle');\r\n var me = this;\r\n var callback = {\r\n onCreate: function (pointer) {\r\n pointer.draggable = true;\r\n pointer.drift = bind(me._handlePointerDrag, me);\r\n pointer.ondragend = bind(me._handlePointerDragend, me);\r\n pointerMoveTo(pointer, me._progressLine, currentIndex, axis, timelineModel, true);\r\n },\r\n onUpdate: function (pointer) {\r\n pointerMoveTo(pointer, me._progressLine, currentIndex, axis, timelineModel);\r\n }\r\n };\r\n this._currentPointer = giveSymbol(pointerModel, pointerModel, this._mainGroup, {}, this._currentPointer, callback);\r\n };\r\n SliderTimelineView.prototype._handlePlayClick = function (nextState) {\r\n this._clearTimer();\r\n this.api.dispatchAction({\r\n type: 'timelinePlayChange',\r\n playState: nextState,\r\n from: this.uid\r\n });\r\n };\r\n SliderTimelineView.prototype._handlePointerDrag = function (dx, dy, e) {\r\n this._clearTimer();\r\n this._pointerChangeTimeline([e.offsetX, e.offsetY]);\r\n };\r\n SliderTimelineView.prototype._handlePointerDragend = function (e) {\r\n this._pointerChangeTimeline([e.offsetX, e.offsetY], true);\r\n };\r\n SliderTimelineView.prototype._pointerChangeTimeline = function (mousePos, trigger) {\r\n var toCoord = this._toAxisCoord(mousePos)[0];\r\n var axis = this._axis;\r\n var axisExtent = asc(axis.getExtent().slice());\r\n toCoord > axisExtent[1] && (toCoord = axisExtent[1]);\r\n toCoord < axisExtent[0] && (toCoord = axisExtent[0]);\r\n this._currentPointer.x = toCoord;\r\n this._currentPointer.markRedraw();\r\n this._progressLine.shape.x2 = toCoord;\r\n this._progressLine.dirty();\r\n var targetDataIndex = this._findNearestTick(toCoord);\r\n var timelineModel = this.model;\r\n if (trigger || (targetDataIndex !== timelineModel.getCurrentIndex()\r\n && timelineModel.get('realtime'))) {\r\n this._changeTimeline(targetDataIndex);\r\n }\r\n };\r\n SliderTimelineView.prototype._doPlayStop = function () {\r\n var _this = this;\r\n this._clearTimer();\r\n if (this.model.getPlayState()) {\r\n this._timer = setTimeout(function () {\r\n var timelineModel = _this.model;\r\n _this._changeTimeline(timelineModel.getCurrentIndex()\r\n + (timelineModel.get('rewind', true) ? -1 : 1));\r\n }, this.model.get('playInterval'));\r\n }\r\n };\r\n SliderTimelineView.prototype._toAxisCoord = function (vertex) {\r\n var trans = this._mainGroup.getLocalTransform();\r\n return applyTransform$1(vertex, trans, true);\r\n };\r\n SliderTimelineView.prototype._findNearestTick = function (axisCoord) {\r\n var data = this.model.getData();\r\n var dist = Infinity;\r\n var targetDataIndex;\r\n var axis = this._axis;\r\n data.each(['value'], function (value, dataIndex) {\r\n var coord = axis.dataToCoord(value);\r\n var d = Math.abs(coord - axisCoord);\r\n if (d < dist) {\r\n dist = d;\r\n targetDataIndex = dataIndex;\r\n }\r\n });\r\n return targetDataIndex;\r\n };\r\n SliderTimelineView.prototype._clearTimer = function () {\r\n if (this._timer) {\r\n clearTimeout(this._timer);\r\n this._timer = null;\r\n }\r\n };\r\n SliderTimelineView.prototype._changeTimeline = function (nextIndex) {\r\n var currentIndex = this.model.getCurrentIndex();\r\n if (nextIndex === '+') {\r\n nextIndex = currentIndex + 1;\r\n }\r\n else if (nextIndex === '-') {\r\n nextIndex = currentIndex - 1;\r\n }\r\n this.api.dispatchAction({\r\n type: 'timelineChange',\r\n currentIndex: nextIndex,\r\n from: this.uid\r\n });\r\n };\r\n SliderTimelineView.prototype._updateTicksStatus = function () {\r\n var currentIndex = this.model.getCurrentIndex();\r\n var tickSymbols = this._tickSymbols;\r\n var tickLabels = this._tickLabels;\r\n if (tickSymbols) {\r\n for (var i = 0; i < tickSymbols.length; i++) {\r\n tickSymbols && tickSymbols[i]\r\n && tickSymbols[i].toggleState('progress', i < currentIndex);\r\n }\r\n }\r\n if (tickLabels) {\r\n for (var i = 0; i < tickLabels.length; i++) {\r\n tickLabels && tickLabels[i]\r\n && tickLabels[i].toggleState('progress', labelDataIndexStore(tickLabels[i]).dataIndex <= currentIndex);\r\n }\r\n }\r\n };\r\n SliderTimelineView.type = 'timeline.slider';\r\n return SliderTimelineView;\r\n }(TimelineView));\r\n function createScaleByModel$1(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.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 IntervalScale();\r\n }\r\n }\r\n }\r\n function getViewRect$5(model, api) {\r\n return getLayoutRect(model.getBoxLayoutParams(), {\r\n width: api.getWidth(),\r\n height: api.getHeight()\r\n }, model.get('padding'));\r\n }\r\n function makeControlIcon(timelineModel, objPath, rect, opts) {\r\n var style = opts.style;\r\n var icon = createIcon(timelineModel.get(['controlStyle', objPath]), opts || {}, new BoundingRect(rect[0], rect[1], rect[2], rect[3]));\r\n if (style) {\r\n icon.setStyle(style);\r\n }\r\n return icon;\r\n }\r\n function giveSymbol(hostModel, itemStyleModel, group, opt, symbol, callback) {\r\n var color = itemStyleModel.get('color');\r\n if (!symbol) {\r\n var symbolType = hostModel.get('symbol');\r\n symbol = createSymbol(symbolType, -1, -1, 2, 2, color);\r\n symbol.setStyle('strokeNoScale', true);\r\n group.add(symbol);\r\n callback && callback.onCreate(symbol);\r\n }\r\n else {\r\n symbol.setColor(color);\r\n group.add(symbol);\r\n callback && callback.onUpdate(symbol);\r\n }\r\n var itemStyle = itemStyleModel.getItemStyle(['color']);\r\n symbol.setStyle(itemStyle);\r\n opt = merge({\r\n rectHover: true,\r\n z2: 100\r\n }, opt, true);\r\n var symbolSize = hostModel.get('symbolSize');\r\n symbolSize = symbolSize instanceof Array\r\n ? symbolSize.slice()\r\n : [+symbolSize, +symbolSize];\r\n opt.scaleX = symbolSize[0] / 2;\r\n opt.scaleY = symbolSize[1] / 2;\r\n var symbolOffset = hostModel.get('symbolOffset');\r\n if (symbolOffset) {\r\n opt.x = opt.x || 0;\r\n opt.y = opt.y || 0;\r\n opt.x += parsePercent$2(symbolOffset[0], symbolSize[0]);\r\n opt.y += parsePercent$2(symbolOffset[1], symbolSize[1]);\r\n }\r\n var symbolRotate = hostModel.get('symbolRotate');\r\n opt.rotation = (symbolRotate || 0) * Math.PI / 180 || 0;\r\n symbol.attr(opt);\r\n symbol.updateTransform();\r\n return symbol;\r\n }\r\n function pointerMoveTo(pointer, progressLine, dataIndex, axis, timelineModel, noAnimation) {\r\n if (pointer.dragging) {\r\n return;\r\n }\r\n var pointerModel = timelineModel.getModel('checkpointStyle');\r\n var toCoord = axis.dataToCoord(timelineModel.getData().get('value', dataIndex));\r\n if (noAnimation || !pointerModel.get('animation', true)) {\r\n pointer.attr({\r\n x: toCoord,\r\n y: 0\r\n });\r\n progressLine && progressLine.attr({\r\n shape: { x2: toCoord }\r\n });\r\n }\r\n else {\r\n var animationCfg = {\r\n duration: pointerModel.get('animationDuration', true),\r\n easing: pointerModel.get('animationEasing', true)\r\n };\r\n pointer.stopAnimation(null, true);\r\n pointer.animateTo({\r\n x: toCoord,\r\n y: 0\r\n }, animationCfg);\r\n progressLine && progressLine.animateTo({\r\n shape: { x2: toCoord }\r\n }, animationCfg);\r\n }\r\n }\r\n ComponentView.registerClass(SliderTimelineView);\n\n registerPreprocessor(timelinePreprocessor);\n\n function fillLabel(opt) {\r\n defaultEmphasis(opt, 'label', ['show']);\r\n }\r\n var inner$i = makeInner();\r\n var MarkerModel = (function (_super) {\r\n __extends(MarkerModel, _super);\r\n function MarkerModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = MarkerModel.type;\r\n _this.createdBySelf = false;\r\n return _this;\r\n }\r\n MarkerModel.prototype.init = function (option, parentModel, ecModel) {\r\n if (__DEV__) {\r\n if (this.type === 'marker') {\r\n throw new Error('Marker component is abstract component. Use markLine, markPoint, markArea instead.');\r\n }\r\n }\r\n this.mergeDefaultAndTheme(option, ecModel);\r\n this._mergeOption(option, ecModel, false, true);\r\n };\r\n MarkerModel.prototype.isAnimationEnabled = function () {\r\n if (env.node) {\r\n return false;\r\n }\r\n var hostSeries = this.__hostSeries;\r\n return this.getShallow('animation') && hostSeries && hostSeries.isAnimationEnabled();\r\n };\r\n MarkerModel.prototype.mergeOption = function (newOpt, ecModel) {\r\n this._mergeOption(newOpt, ecModel, false, false);\r\n };\r\n MarkerModel.prototype._mergeOption = function (newOpt, ecModel, createdBySelf, isInit) {\r\n var componentType = this.mainType;\r\n if (!createdBySelf) {\r\n ecModel.eachSeries(function (seriesModel) {\r\n var markerOpt = seriesModel.get(this.mainType, true);\r\n var markerModel = inner$i(seriesModel)[componentType];\r\n if (!markerOpt || !markerOpt.data) {\r\n inner$i(seriesModel)[componentType] = null;\r\n return;\r\n }\r\n if (!markerModel) {\r\n if (isInit) {\r\n fillLabel(markerOpt);\r\n }\r\n each(markerOpt.data, function (item) {\r\n if (item instanceof Array) {\r\n fillLabel(item[0]);\r\n fillLabel(item[1]);\r\n }\r\n else {\r\n fillLabel(item);\r\n }\r\n });\r\n markerModel = this.createMarkerModelFromSeries(markerOpt, this, ecModel);\r\n extend(markerModel, {\r\n mainType: this.mainType,\r\n seriesIndex: seriesModel.seriesIndex,\r\n name: seriesModel.name,\r\n createdBySelf: true\r\n });\r\n markerModel.__hostSeries = seriesModel;\r\n }\r\n else {\r\n markerModel._mergeOption(markerOpt, ecModel, true);\r\n }\r\n inner$i(seriesModel)[componentType] = markerModel;\r\n }, this);\r\n }\r\n };\r\n MarkerModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\r\n var data = this.getData();\r\n var value = this.getRawValue(dataIndex);\r\n var itemName = data.getName(dataIndex);\r\n return createTooltipMarkup('section', {\r\n header: this.name,\r\n blocks: [createTooltipMarkup('nameValue', {\r\n name: itemName,\r\n value: value,\r\n noName: !itemName,\r\n noValue: value == null\r\n })]\r\n });\r\n };\r\n MarkerModel.prototype.getData = function () {\r\n return this._data;\r\n };\r\n MarkerModel.prototype.setData = function (data) {\r\n this._data = data;\r\n };\r\n MarkerModel.getMarkerModelFromSeries = function (seriesModel, componentType) {\r\n return inner$i(seriesModel)[componentType];\r\n };\r\n MarkerModel.type = 'marker';\r\n MarkerModel.dependencies = ['series', 'grid', 'polar', 'geo'];\r\n return MarkerModel;\r\n }(ComponentModel));\r\n mixin(MarkerModel, DataFormatMixin.prototype);\n\n var MarkPointModel = (function (_super) {\r\n __extends(MarkPointModel, _super);\r\n function MarkPointModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = MarkPointModel.type;\r\n return _this;\r\n }\r\n MarkPointModel.prototype.createMarkerModelFromSeries = function (markerOpt, masterMarkerModel, ecModel) {\r\n return new MarkPointModel(markerOpt, masterMarkerModel, ecModel);\r\n };\r\n MarkPointModel.type = 'markPoint';\r\n MarkPointModel.defaultOption = {\r\n zlevel: 0,\r\n z: 5,\r\n symbol: 'pin',\r\n symbolSize: 50,\r\n tooltip: {\r\n trigger: 'item'\r\n },\r\n label: {\r\n show: true,\r\n position: 'inside'\r\n },\r\n itemStyle: {\r\n borderWidth: 2\r\n },\r\n emphasis: {\r\n label: {\r\n show: true\r\n }\r\n }\r\n };\r\n return MarkPointModel;\r\n }(MarkerModel));\r\n ComponentModel.registerClass(MarkPointModel);\n\n function hasXOrY(item) {\r\n return !(isNaN(parseFloat(item.x)) && isNaN(parseFloat(item.y)));\r\n }\r\n function hasXAndY(item) {\r\n return !isNaN(parseFloat(item.x)) && !isNaN(parseFloat(item.y));\r\n }\r\n function markerTypeCalculatorWithExtent(markerType, data, otherDataDim, targetDataDim, otherCoordIndex, targetCoordIndex) {\r\n var coordArr = [];\r\n var stacked = isDimensionStacked(data, targetDataDim);\r\n var calcDataDim = stacked\r\n ? data.getCalculationInfo('stackResultDimension')\r\n : targetDataDim;\r\n var value = numCalculate(data, calcDataDim, markerType);\r\n var dataIndex = data.indicesOfNearest(calcDataDim, value)[0];\r\n coordArr[otherCoordIndex] = data.get(otherDataDim, dataIndex);\r\n coordArr[targetCoordIndex] = data.get(calcDataDim, dataIndex);\r\n var coordArrValue = data.get(targetDataDim, dataIndex);\r\n var precision = getPrecision(data.get(targetDataDim, dataIndex));\r\n precision = Math.min(precision, 20);\r\n if (precision >= 0) {\r\n coordArr[targetCoordIndex] = +coordArr[targetCoordIndex].toFixed(precision);\r\n }\r\n return [coordArr, coordArrValue];\r\n }\r\n var markerTypeCalculator = {\r\n min: curry(markerTypeCalculatorWithExtent, 'min'),\r\n max: curry(markerTypeCalculatorWithExtent, 'max'),\r\n average: curry(markerTypeCalculatorWithExtent, 'average'),\r\n median: curry(markerTypeCalculatorWithExtent, 'median')\r\n };\r\n function dataTransform(seriesModel, item) {\r\n var data = seriesModel.getData();\r\n var coordSys = seriesModel.coordinateSystem;\r\n if (item && !hasXAndY(item) && !isArray(item.coord) && coordSys) {\r\n var dims = coordSys.dimensions;\r\n var axisInfo = getAxisInfo$1(item, data, coordSys, seriesModel);\r\n item = clone(item);\r\n if (item.type\r\n && markerTypeCalculator[item.type]\r\n && axisInfo.baseAxis && axisInfo.valueAxis) {\r\n var otherCoordIndex = indexOf(dims, axisInfo.baseAxis.dim);\r\n var targetCoordIndex = indexOf(dims, axisInfo.valueAxis.dim);\r\n var coordInfo = markerTypeCalculator[item.type](data, axisInfo.baseDataDim, axisInfo.valueDataDim, otherCoordIndex, targetCoordIndex);\r\n item.coord = coordInfo[0];\r\n item.value = coordInfo[1];\r\n }\r\n else {\r\n var coord = [\r\n item.xAxis != null ? item.xAxis : item.radiusAxis,\r\n item.yAxis != null ? item.yAxis : item.angleAxis\r\n ];\r\n for (var i = 0; i < 2; i++) {\r\n if (markerTypeCalculator[coord[i]]) {\r\n coord[i] = numCalculate(data, data.mapDimension(dims[i]), coord[i]);\r\n }\r\n }\r\n item.coord = coord;\r\n }\r\n }\r\n return item;\r\n }\r\n function getAxisInfo$1(item, data, coordSys, seriesModel) {\r\n var ret = {};\r\n if (item.valueIndex != null || item.valueDim != null) {\r\n ret.valueDataDim = item.valueIndex != null\r\n ? data.getDimension(item.valueIndex) : item.valueDim;\r\n ret.valueAxis = coordSys.getAxis(dataDimToCoordDim(seriesModel, ret.valueDataDim));\r\n ret.baseAxis = coordSys.getOtherAxis(ret.valueAxis);\r\n ret.baseDataDim = data.mapDimension(ret.baseAxis.dim);\r\n }\r\n else {\r\n ret.baseAxis = seriesModel.getBaseAxis();\r\n ret.valueAxis = coordSys.getOtherAxis(ret.baseAxis);\r\n ret.baseDataDim = data.mapDimension(ret.baseAxis.dim);\r\n ret.valueDataDim = data.mapDimension(ret.valueAxis.dim);\r\n }\r\n return ret;\r\n }\r\n function dataDimToCoordDim(seriesModel, dataDim) {\r\n var data = seriesModel.getData();\r\n var dimensions = data.dimensions;\r\n dataDim = data.getDimension(dataDim);\r\n for (var i = 0; i < dimensions.length; i++) {\r\n var dimItem = data.getDimensionInfo(dimensions[i]);\r\n if (dimItem.name === dataDim) {\r\n return dimItem.coordDim;\r\n }\r\n }\r\n }\r\n function dataFilter$1(coordSys, item) {\r\n return (coordSys && coordSys.containData && item.coord && !hasXOrY(item))\r\n ? coordSys.containData(item.coord) : true;\r\n }\r\n function dimValueGetter(item, dimName, dataIndex, dimIndex) {\r\n if (dimIndex < 2) {\r\n return item.coord && item.coord[dimIndex];\r\n }\r\n return item.value;\r\n }\r\n function numCalculate(data, valueDataDim, type) {\r\n if (type === 'average') {\r\n var sum_1 = 0;\r\n var count_1 = 0;\r\n data.each(valueDataDim, function (val, idx) {\r\n if (!isNaN(val)) {\r\n sum_1 += val;\r\n count_1++;\r\n }\r\n });\r\n return sum_1 / count_1;\r\n }\r\n else if (type === 'median') {\r\n return data.getMedian(valueDataDim);\r\n }\r\n else {\r\n return data.getDataExtent(valueDataDim)[type === 'max' ? 1 : 0];\r\n }\r\n }\n\n var inner$j = makeInner();\r\n var MarkerView = (function (_super) {\r\n __extends(MarkerView, _super);\r\n function MarkerView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = MarkerView.type;\r\n return _this;\r\n }\r\n MarkerView.prototype.init = function () {\r\n this.markerGroupMap = createHashMap();\r\n };\r\n MarkerView.prototype.render = function (markerModel, ecModel, api) {\r\n var _this = this;\r\n var markerGroupMap = this.markerGroupMap;\r\n markerGroupMap.each(function (item) {\r\n inner$j(item).keep = false;\r\n });\r\n ecModel.eachSeries(function (seriesModel) {\r\n var markerModel = MarkerModel.getMarkerModelFromSeries(seriesModel, _this.type);\r\n markerModel && _this.renderSeries(seriesModel, markerModel, ecModel, api);\r\n });\r\n markerGroupMap.each(function (item) {\r\n !inner$j(item).keep && _this.group.remove(item.group);\r\n });\r\n };\r\n MarkerView.prototype.markKeep = function (drawGroup) {\r\n inner$j(drawGroup).keep = true;\r\n };\r\n MarkerView.prototype.blurSeries = function (seriesModelList) {\r\n var _this = this;\r\n each(seriesModelList, function (seriesModel) {\r\n var markerModel = MarkerModel.getMarkerModelFromSeries(seriesModel, _this.type);\r\n if (markerModel) {\r\n var data = markerModel.getData();\r\n data.eachItemGraphicEl(function (el) {\r\n if (el) {\r\n enterBlur(el);\r\n }\r\n });\r\n }\r\n });\r\n };\r\n MarkerView.type = 'marker';\r\n return MarkerView;\r\n }(ComponentView));\n\n function updateMarkerLayout(mpData, seriesModel, api) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n mpData.each(function (idx) {\r\n var itemModel = mpData.getItemModel(idx);\r\n var point;\r\n var xPx = parsePercent$2(itemModel.get('x'), api.getWidth());\r\n var yPx = parsePercent$2(itemModel.get('y'), api.getHeight());\r\n if (!isNaN(xPx) && !isNaN(yPx)) {\r\n point = [xPx, yPx];\r\n }\r\n else if (seriesModel.getMarkerPosition) {\r\n point = seriesModel.getMarkerPosition(mpData.getValues(mpData.dimensions, idx));\r\n }\r\n else if (coordSys) {\r\n var x = mpData.get(coordSys.dimensions[0], idx);\r\n var y = mpData.get(coordSys.dimensions[1], idx);\r\n point = coordSys.dataToPoint([x, y]);\r\n }\r\n if (!isNaN(xPx)) {\r\n point[0] = xPx;\r\n }\r\n if (!isNaN(yPx)) {\r\n point[1] = yPx;\r\n }\r\n mpData.setItemLayout(idx, point);\r\n });\r\n }\r\n var MarkPointView = (function (_super) {\r\n __extends(MarkPointView, _super);\r\n function MarkPointView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = MarkPointView.type;\r\n return _this;\r\n }\r\n MarkPointView.prototype.updateTransform = function (markPointModel, ecModel, api) {\r\n ecModel.eachSeries(function (seriesModel) {\r\n var mpModel = MarkerModel.getMarkerModelFromSeries(seriesModel, 'markPoint');\r\n if (mpModel) {\r\n updateMarkerLayout(mpModel.getData(), seriesModel, api);\r\n this.markerGroupMap.get(seriesModel.id).updateLayout();\r\n }\r\n }, this);\r\n };\r\n MarkPointView.prototype.renderSeries = function (seriesModel, mpModel, ecModel, api) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n var seriesId = seriesModel.id;\r\n var seriesData = seriesModel.getData();\r\n var symbolDrawMap = this.markerGroupMap;\r\n var symbolDraw = symbolDrawMap.get(seriesId)\r\n || symbolDrawMap.set(seriesId, new SymbolDraw());\r\n var mpData = createList$1(coordSys, seriesModel, mpModel);\r\n mpModel.setData(mpData);\r\n updateMarkerLayout(mpModel.getData(), seriesModel, api);\r\n mpData.each(function (idx) {\r\n var itemModel = mpData.getItemModel(idx);\r\n var symbol = itemModel.getShallow('symbol');\r\n var symbolSize = itemModel.getShallow('symbolSize');\r\n var symbolRotate = itemModel.getShallow('symbolRotate');\r\n if (isFunction(symbol) || isFunction(symbolSize) || isFunction(symbolRotate)) {\r\n var rawIdx = mpModel.getRawValue(idx);\r\n var dataParams = mpModel.getDataParams(idx);\r\n if (isFunction(symbol)) {\r\n symbol = symbol(rawIdx, dataParams);\r\n }\r\n if (isFunction(symbolSize)) {\r\n symbolSize = symbolSize(rawIdx, dataParams);\r\n }\r\n if (isFunction(symbolRotate)) {\r\n symbolRotate = symbolRotate(rawIdx, dataParams);\r\n }\r\n }\r\n var style = itemModel.getModel('itemStyle').getItemStyle();\r\n var color = getVisualFromData(seriesData, 'color');\r\n if (!style.fill) {\r\n style.fill = color;\r\n }\r\n mpData.setItemVisual(idx, {\r\n symbol: symbol,\r\n symbolSize: symbolSize,\r\n symbolRotate: symbolRotate,\r\n style: style\r\n });\r\n });\r\n symbolDraw.updateData(mpData);\r\n this.group.add(symbolDraw.group);\r\n mpData.eachItemGraphicEl(function (el) {\r\n el.traverse(function (child) {\r\n getECData(child).dataModel = mpModel;\r\n });\r\n });\r\n this.markKeep(symbolDraw);\r\n symbolDraw.group.silent = mpModel.get('silent') || seriesModel.get('silent');\r\n };\r\n MarkPointView.type = 'markPoint';\r\n return MarkPointView;\r\n }(MarkerView));\r\n function createList$1(coordSys, seriesModel, mpModel) {\r\n var coordDimsInfos;\r\n if (coordSys) {\r\n coordDimsInfos = map(coordSys && coordSys.dimensions, function (coordDim) {\r\n var info = seriesModel.getData().getDimensionInfo(seriesModel.getData().mapDimension(coordDim)) || {};\r\n return defaults({ name: coordDim }, info);\r\n });\r\n }\r\n else {\r\n coordDimsInfos = [{\r\n name: 'value',\r\n type: 'float'\r\n }];\r\n }\r\n var mpData = new List(coordDimsInfos, mpModel);\r\n var dataOpt = map(mpModel.get('data'), curry(dataTransform, seriesModel));\r\n if (coordSys) {\r\n dataOpt = filter(dataOpt, curry(dataFilter$1, coordSys));\r\n }\r\n mpData.initData(dataOpt, null, coordSys ? dimValueGetter : function (item) {\r\n return item.value;\r\n });\r\n return mpData;\r\n }\r\n ComponentView.registerClass(MarkPointView);\n\n registerPreprocessor(function (opt) {\r\n opt.markPoint = opt.markPoint || {};\r\n });\n\n var MarkLineModel = (function (_super) {\r\n __extends(MarkLineModel, _super);\r\n function MarkLineModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = MarkLineModel.type;\r\n return _this;\r\n }\r\n MarkLineModel.prototype.createMarkerModelFromSeries = function (markerOpt, masterMarkerModel, ecModel) {\r\n return new MarkLineModel(markerOpt, masterMarkerModel, ecModel);\r\n };\r\n MarkLineModel.type = 'markLine';\r\n MarkLineModel.defaultOption = {\r\n zlevel: 0,\r\n z: 5,\r\n symbol: ['circle', 'arrow'],\r\n symbolSize: [8, 16],\r\n precision: 2,\r\n tooltip: {\r\n trigger: 'item'\r\n },\r\n label: {\r\n show: true,\r\n position: 'end',\r\n distance: 5\r\n },\r\n lineStyle: {\r\n type: 'dashed'\r\n },\r\n emphasis: {\r\n label: {\r\n show: true\r\n },\r\n lineStyle: {\r\n width: 3\r\n }\r\n },\r\n animationEasing: 'linear'\r\n };\r\n return MarkLineModel;\r\n }(MarkerModel));\r\n ComponentModel.registerClass(MarkLineModel);\n\n var inner$k = makeInner();\r\n var markLineTransform = function (seriesModel, coordSys, mlModel, item) {\r\n var data = seriesModel.getData();\r\n var itemArray;\r\n if (!isArray(item)) {\r\n var mlType = item.type;\r\n if (mlType === 'min' || mlType === 'max' || mlType === 'average' || mlType === 'median'\r\n || (item.xAxis != null || item.yAxis != null)) {\r\n var valueAxis = void 0;\r\n var value = void 0;\r\n if (item.yAxis != null || item.xAxis != null) {\r\n valueAxis = coordSys.getAxis(item.yAxis != null ? 'y' : 'x');\r\n value = retrieve(item.yAxis, item.xAxis);\r\n }\r\n else {\r\n var axisInfo = getAxisInfo$1(item, data, coordSys, seriesModel);\r\n valueAxis = axisInfo.valueAxis;\r\n var valueDataDim = getStackedDimension(data, axisInfo.valueDataDim);\r\n value = numCalculate(data, valueDataDim, mlType);\r\n }\r\n var valueIndex = valueAxis.dim === 'x' ? 0 : 1;\r\n var baseIndex = 1 - valueIndex;\r\n var mlFrom = clone(item);\r\n var mlTo = {\r\n coord: []\r\n };\r\n mlFrom.type = null;\r\n mlFrom.coord = [];\r\n mlFrom.coord[baseIndex] = -Infinity;\r\n mlTo.coord[baseIndex] = Infinity;\r\n var precision = mlModel.get('precision');\r\n if (precision >= 0 && typeof value === 'number') {\r\n value = +value.toFixed(Math.min(precision, 20));\r\n }\r\n mlFrom.coord[valueIndex] = mlTo.coord[valueIndex] = value;\r\n itemArray = [mlFrom, mlTo, {\r\n type: mlType,\r\n valueIndex: item.valueIndex,\r\n value: value\r\n }];\r\n }\r\n else {\r\n if (__DEV__) {\r\n logError('Invalid markLine data.');\r\n }\r\n itemArray = [];\r\n }\r\n }\r\n else {\r\n itemArray = item;\r\n }\r\n var normalizedItem = [\r\n dataTransform(seriesModel, itemArray[0]),\r\n dataTransform(seriesModel, itemArray[1]),\r\n extend({}, itemArray[2])\r\n ];\r\n normalizedItem[2].type = normalizedItem[2].type || null;\r\n merge(normalizedItem[2], normalizedItem[0]);\r\n merge(normalizedItem[2], normalizedItem[1]);\r\n return normalizedItem;\r\n };\r\n function isInifinity(val) {\r\n return !isNaN(val) && !isFinite(val);\r\n }\r\n function ifMarkLineHasOnlyDim(dimIndex, fromCoord, toCoord, coordSys) {\r\n var otherDimIndex = 1 - dimIndex;\r\n var dimName = coordSys.dimensions[dimIndex];\r\n return isInifinity(fromCoord[otherDimIndex]) && isInifinity(toCoord[otherDimIndex])\r\n && fromCoord[dimIndex] === toCoord[dimIndex] && coordSys.getAxis(dimName).containData(fromCoord[dimIndex]);\r\n }\r\n function markLineFilter(coordSys, item) {\r\n if (coordSys.type === 'cartesian2d') {\r\n var fromCoord = item[0].coord;\r\n var toCoord = item[1].coord;\r\n if (fromCoord && toCoord\r\n && (ifMarkLineHasOnlyDim(1, fromCoord, toCoord, coordSys)\r\n || ifMarkLineHasOnlyDim(0, fromCoord, toCoord, coordSys))) {\r\n return true;\r\n }\r\n }\r\n return dataFilter$1(coordSys, item[0])\r\n && dataFilter$1(coordSys, item[1]);\r\n }\r\n function updateSingleMarkerEndLayout(data, idx, isFrom, seriesModel, api) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n var itemModel = data.getItemModel(idx);\r\n var point;\r\n var xPx = parsePercent$2(itemModel.get('x'), api.getWidth());\r\n var yPx = parsePercent$2(itemModel.get('y'), api.getHeight());\r\n if (!isNaN(xPx) && !isNaN(yPx)) {\r\n point = [xPx, yPx];\r\n }\r\n else {\r\n if (seriesModel.getMarkerPosition) {\r\n point = seriesModel.getMarkerPosition(data.getValues(data.dimensions, idx));\r\n }\r\n else {\r\n var dims = coordSys.dimensions;\r\n var x = data.get(dims[0], idx);\r\n var y = data.get(dims[1], idx);\r\n point = coordSys.dataToPoint([x, y]);\r\n }\r\n if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\r\n var xAxis = coordSys.getAxis('x');\r\n var yAxis = coordSys.getAxis('y');\r\n var dims = coordSys.dimensions;\r\n if (isInifinity(data.get(dims[0], idx))) {\r\n point[0] = xAxis.toGlobalCoord(xAxis.getExtent()[isFrom ? 0 : 1]);\r\n }\r\n else if (isInifinity(data.get(dims[1], idx))) {\r\n point[1] = yAxis.toGlobalCoord(yAxis.getExtent()[isFrom ? 0 : 1]);\r\n }\r\n }\r\n if (!isNaN(xPx)) {\r\n point[0] = xPx;\r\n }\r\n if (!isNaN(yPx)) {\r\n point[1] = yPx;\r\n }\r\n }\r\n data.setItemLayout(idx, point);\r\n }\r\n var MarkLineView = (function (_super) {\r\n __extends(MarkLineView, _super);\r\n function MarkLineView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = MarkLineView.type;\r\n return _this;\r\n }\r\n MarkLineView.prototype.updateTransform = function (markLineModel, ecModel, api) {\r\n ecModel.eachSeries(function (seriesModel) {\r\n var mlModel = MarkerModel.getMarkerModelFromSeries(seriesModel, 'markLine');\r\n if (mlModel) {\r\n var mlData_1 = mlModel.getData();\r\n var fromData_1 = inner$k(mlModel).from;\r\n var toData_1 = inner$k(mlModel).to;\r\n fromData_1.each(function (idx) {\r\n updateSingleMarkerEndLayout(fromData_1, idx, true, seriesModel, api);\r\n updateSingleMarkerEndLayout(toData_1, idx, false, seriesModel, api);\r\n });\r\n mlData_1.each(function (idx) {\r\n mlData_1.setItemLayout(idx, [\r\n fromData_1.getItemLayout(idx),\r\n toData_1.getItemLayout(idx)\r\n ]);\r\n });\r\n this.markerGroupMap.get(seriesModel.id).updateLayout();\r\n }\r\n }, this);\r\n };\r\n MarkLineView.prototype.renderSeries = function (seriesModel, mlModel, ecModel, api) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n var seriesId = seriesModel.id;\r\n var seriesData = seriesModel.getData();\r\n var lineDrawMap = this.markerGroupMap;\r\n var lineDraw = lineDrawMap.get(seriesId)\r\n || lineDrawMap.set(seriesId, new LineDraw());\r\n this.group.add(lineDraw.group);\r\n var mlData = createList$2(coordSys, seriesModel, mlModel);\r\n var fromData = mlData.from;\r\n var toData = mlData.to;\r\n var lineData = mlData.line;\r\n inner$k(mlModel).from = fromData;\r\n inner$k(mlModel).to = toData;\r\n mlModel.setData(lineData);\r\n var symbolType = mlModel.get('symbol');\r\n var symbolSize = mlModel.get('symbolSize');\r\n if (!isArray(symbolType)) {\r\n symbolType = [symbolType, symbolType];\r\n }\r\n if (!isArray(symbolSize)) {\r\n symbolSize = [symbolSize, symbolSize];\r\n }\r\n mlData.from.each(function (idx) {\r\n updateDataVisualAndLayout(fromData, idx, true);\r\n updateDataVisualAndLayout(toData, idx, false);\r\n });\r\n lineData.each(function (idx) {\r\n var lineStyle = lineData.getItemModel(idx)\r\n .getModel('lineStyle').getLineStyle();\r\n lineData.setItemLayout(idx, [\r\n fromData.getItemLayout(idx),\r\n toData.getItemLayout(idx)\r\n ]);\r\n if (lineStyle.stroke == null) {\r\n lineStyle.stroke = fromData.getItemVisual(idx, 'style').fill;\r\n }\r\n lineData.setItemVisual(idx, {\r\n fromSymbolRotate: fromData.getItemVisual(idx, 'symbolRotate'),\r\n fromSymbolSize: fromData.getItemVisual(idx, 'symbolSize'),\r\n fromSymbol: fromData.getItemVisual(idx, 'symbol'),\r\n toSymbolRotate: toData.getItemVisual(idx, 'symbolRotate'),\r\n toSymbolSize: toData.getItemVisual(idx, 'symbolSize'),\r\n toSymbol: toData.getItemVisual(idx, 'symbol'),\r\n style: lineStyle\r\n });\r\n });\r\n lineDraw.updateData(lineData);\r\n mlData.line.eachItemGraphicEl(function (el, idx) {\r\n el.traverse(function (child) {\r\n getECData(child).dataModel = mlModel;\r\n });\r\n });\r\n function updateDataVisualAndLayout(data, idx, isFrom) {\r\n var itemModel = data.getItemModel(idx);\r\n updateSingleMarkerEndLayout(data, idx, isFrom, seriesModel, api);\r\n var style = itemModel.getModel('itemStyle').getItemStyle();\r\n if (style.fill == null) {\r\n style.fill = getVisualFromData(seriesData, 'color');\r\n }\r\n data.setItemVisual(idx, {\r\n symbolRotate: itemModel.get('symbolRotate'),\r\n symbolSize: itemModel.get('symbolSize') || symbolSize[isFrom ? 0 : 1],\r\n symbol: itemModel.get('symbol', true) || symbolType[isFrom ? 0 : 1],\r\n style: style\r\n });\r\n }\r\n this.markKeep(lineDraw);\r\n lineDraw.group.silent = mlModel.get('silent') || seriesModel.get('silent');\r\n };\r\n MarkLineView.type = 'markLine';\r\n return MarkLineView;\r\n }(MarkerView));\r\n function createList$2(coordSys, seriesModel, mlModel) {\r\n var coordDimsInfos;\r\n if (coordSys) {\r\n coordDimsInfos = map(coordSys && coordSys.dimensions, function (coordDim) {\r\n var info = seriesModel.getData().getDimensionInfo(seriesModel.getData().mapDimension(coordDim)) || {};\r\n return defaults({ name: coordDim }, info);\r\n });\r\n }\r\n else {\r\n coordDimsInfos = [{\r\n name: 'value',\r\n type: 'float'\r\n }];\r\n }\r\n var fromData = new List(coordDimsInfos, mlModel);\r\n var toData = new List(coordDimsInfos, mlModel);\r\n var lineData = new List([], mlModel);\r\n var optData = map(mlModel.get('data'), curry(markLineTransform, seriesModel, coordSys, mlModel));\r\n if (coordSys) {\r\n optData = filter(optData, curry(markLineFilter, coordSys));\r\n }\r\n var dimValueGetter$1 = coordSys ? dimValueGetter : function (item) {\r\n return item.value;\r\n };\r\n fromData.initData(map(optData, function (item) {\r\n return item[0];\r\n }), null, dimValueGetter$1);\r\n toData.initData(map(optData, function (item) {\r\n return item[1];\r\n }), null, dimValueGetter$1);\r\n lineData.initData(map(optData, function (item) {\r\n return item[2];\r\n }));\r\n lineData.hasItemOption = true;\r\n return {\r\n from: fromData,\r\n to: toData,\r\n line: lineData\r\n };\r\n }\r\n ComponentView.registerClass(MarkLineView);\n\n registerPreprocessor(function (opt) {\r\n opt.markLine = opt.markLine || {};\r\n });\n\n var MarkAreaModel = (function (_super) {\r\n __extends(MarkAreaModel, _super);\r\n function MarkAreaModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = MarkAreaModel.type;\r\n return _this;\r\n }\r\n MarkAreaModel.prototype.createMarkerModelFromSeries = function (markerOpt, masterMarkerModel, ecModel) {\r\n return new MarkAreaModel(markerOpt, masterMarkerModel, ecModel);\r\n };\r\n MarkAreaModel.type = 'markArea';\r\n MarkAreaModel.defaultOption = {\r\n zlevel: 0,\r\n z: 1,\r\n tooltip: {\r\n trigger: 'item'\r\n },\r\n animation: false,\r\n label: {\r\n show: true,\r\n position: 'top'\r\n },\r\n itemStyle: {\r\n borderWidth: 0\r\n },\r\n emphasis: {\r\n label: {\r\n show: true,\r\n position: 'top'\r\n }\r\n }\r\n };\r\n return MarkAreaModel;\r\n }(MarkerModel));\r\n ComponentModel.registerClass(MarkAreaModel);\n\n var inner$l = makeInner();\r\n var markAreaTransform = function (seriesModel, coordSys, maModel, item) {\r\n var lt = dataTransform(seriesModel, item[0]);\r\n var rb = dataTransform(seriesModel, item[1]);\r\n var ltCoord = lt.coord;\r\n var rbCoord = rb.coord;\r\n ltCoord[0] = retrieve(ltCoord[0], -Infinity);\r\n ltCoord[1] = retrieve(ltCoord[1], -Infinity);\r\n rbCoord[0] = retrieve(rbCoord[0], Infinity);\r\n rbCoord[1] = retrieve(rbCoord[1], Infinity);\r\n var result = mergeAll([{}, lt, rb]);\r\n result.coord = [\r\n lt.coord, rb.coord\r\n ];\r\n result.x0 = lt.x;\r\n result.y0 = lt.y;\r\n result.x1 = rb.x;\r\n result.y1 = rb.y;\r\n return result;\r\n };\r\n function isInifinity$1(val) {\r\n return !isNaN(val) && !isFinite(val);\r\n }\r\n function ifMarkAreaHasOnlyDim(dimIndex, fromCoord, toCoord, coordSys) {\r\n var otherDimIndex = 1 - dimIndex;\r\n return isInifinity$1(fromCoord[otherDimIndex]) && isInifinity$1(toCoord[otherDimIndex]);\r\n }\r\n function markAreaFilter(coordSys, item) {\r\n var fromCoord = item.coord[0];\r\n var toCoord = item.coord[1];\r\n if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\r\n if (fromCoord && toCoord\r\n && (ifMarkAreaHasOnlyDim(1, fromCoord, toCoord)\r\n || ifMarkAreaHasOnlyDim(0, fromCoord, toCoord))) {\r\n return true;\r\n }\r\n }\r\n return dataFilter$1(coordSys, {\r\n coord: fromCoord,\r\n x: item.x0,\r\n y: item.y0\r\n })\r\n || dataFilter$1(coordSys, {\r\n coord: toCoord,\r\n x: item.x1,\r\n y: item.y1\r\n });\r\n }\r\n function getSingleMarkerEndPoint(data, idx, dims, seriesModel, api) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n var itemModel = data.getItemModel(idx);\r\n var point;\r\n var xPx = parsePercent$2(itemModel.get(dims[0]), api.getWidth());\r\n var yPx = parsePercent$2(itemModel.get(dims[1]), api.getHeight());\r\n if (!isNaN(xPx) && !isNaN(yPx)) {\r\n point = [xPx, yPx];\r\n }\r\n else {\r\n if (seriesModel.getMarkerPosition) {\r\n point = seriesModel.getMarkerPosition(data.getValues(dims, idx));\r\n }\r\n else {\r\n var x = data.get(dims[0], idx);\r\n var y = data.get(dims[1], idx);\r\n var pt = [x, y];\r\n coordSys.clampData && coordSys.clampData(pt, pt);\r\n point = coordSys.dataToPoint(pt, true);\r\n }\r\n if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\r\n var xAxis = coordSys.getAxis('x');\r\n var yAxis = coordSys.getAxis('y');\r\n var x = data.get(dims[0], idx);\r\n var y = data.get(dims[1], idx);\r\n if (isInifinity$1(x)) {\r\n point[0] = xAxis.toGlobalCoord(xAxis.getExtent()[dims[0] === 'x0' ? 0 : 1]);\r\n }\r\n else if (isInifinity$1(y)) {\r\n point[1] = yAxis.toGlobalCoord(yAxis.getExtent()[dims[1] === 'y0' ? 0 : 1]);\r\n }\r\n }\r\n if (!isNaN(xPx)) {\r\n point[0] = xPx;\r\n }\r\n if (!isNaN(yPx)) {\r\n point[1] = yPx;\r\n }\r\n }\r\n return point;\r\n }\r\n var dimPermutations = [['x0', 'y0'], ['x1', 'y0'], ['x1', 'y1'], ['x0', 'y1']];\r\n var MarkAreaView = (function (_super) {\r\n __extends(MarkAreaView, _super);\r\n function MarkAreaView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = MarkAreaView.type;\r\n return _this;\r\n }\r\n MarkAreaView.prototype.updateTransform = function (markAreaModel, ecModel, api) {\r\n ecModel.eachSeries(function (seriesModel) {\r\n var maModel = MarkerModel.getMarkerModelFromSeries(seriesModel, 'markArea');\r\n if (maModel) {\r\n var areaData_1 = maModel.getData();\r\n areaData_1.each(function (idx) {\r\n var points = map(dimPermutations, function (dim) {\r\n return getSingleMarkerEndPoint(areaData_1, idx, dim, seriesModel, api);\r\n });\r\n areaData_1.setItemLayout(idx, points);\r\n var el = areaData_1.getItemGraphicEl(idx);\r\n el.setShape('points', points);\r\n });\r\n }\r\n }, this);\r\n };\r\n MarkAreaView.prototype.renderSeries = function (seriesModel, maModel, ecModel, api) {\r\n var coordSys = seriesModel.coordinateSystem;\r\n var seriesId = seriesModel.id;\r\n var seriesData = seriesModel.getData();\r\n var areaGroupMap = this.markerGroupMap;\r\n var polygonGroup = areaGroupMap.get(seriesId)\r\n || areaGroupMap.set(seriesId, { group: new Group() });\r\n this.group.add(polygonGroup.group);\r\n this.markKeep(polygonGroup);\r\n var areaData = createList$3(coordSys, seriesModel, maModel);\r\n maModel.setData(areaData);\r\n areaData.each(function (idx) {\r\n var points = map(dimPermutations, function (dim) {\r\n return getSingleMarkerEndPoint(areaData, idx, dim, seriesModel, api);\r\n });\r\n var allClipped = true;\r\n each(dimPermutations, function (dim) {\r\n if (!allClipped) {\r\n return;\r\n }\r\n var xValue = areaData.get(dim[0], idx);\r\n var yValue = areaData.get(dim[1], idx);\r\n if ((isInifinity$1(xValue) || coordSys.getAxis('x').containData(xValue))\r\n && (isInifinity$1(yValue) || coordSys.getAxis('y').containData(yValue))) {\r\n allClipped = false;\r\n }\r\n });\r\n areaData.setItemLayout(idx, {\r\n points: points,\r\n allClipped: allClipped\r\n });\r\n var style = areaData.getItemModel(idx).getModel('itemStyle').getItemStyle();\r\n var color$1 = getVisualFromData(seriesData, 'color');\r\n if (!style.fill) {\r\n style.fill = color$1;\r\n if (typeof style.fill === 'string') {\r\n style.fill = modifyAlpha(style.fill, 0.4);\r\n }\r\n }\r\n if (!style.stroke) {\r\n style.stroke = color$1;\r\n }\r\n areaData.setItemVisual(idx, 'style', style);\r\n });\r\n areaData.diff(inner$l(polygonGroup).data)\r\n .add(function (idx) {\r\n var layout = areaData.getItemLayout(idx);\r\n if (!layout.allClipped) {\r\n var polygon = new Polygon({\r\n shape: {\r\n points: layout.points\r\n }\r\n });\r\n areaData.setItemGraphicEl(idx, polygon);\r\n polygonGroup.group.add(polygon);\r\n }\r\n })\r\n .update(function (newIdx, oldIdx) {\r\n var polygon = inner$l(polygonGroup).data.getItemGraphicEl(oldIdx);\r\n var layout = areaData.getItemLayout(newIdx);\r\n if (!layout.allClipped) {\r\n if (polygon) {\r\n updateProps(polygon, {\r\n shape: {\r\n points: layout.points\r\n }\r\n }, maModel, newIdx);\r\n }\r\n else {\r\n polygon = new Polygon({\r\n shape: {\r\n points: layout.points\r\n }\r\n });\r\n }\r\n areaData.setItemGraphicEl(newIdx, polygon);\r\n polygonGroup.group.add(polygon);\r\n }\r\n else if (polygon) {\r\n polygonGroup.group.remove(polygon);\r\n }\r\n })\r\n .remove(function (idx) {\r\n var polygon = inner$l(polygonGroup).data.getItemGraphicEl(idx);\r\n polygonGroup.group.remove(polygon);\r\n })\r\n .execute();\r\n areaData.eachItemGraphicEl(function (polygon, idx) {\r\n var itemModel = areaData.getItemModel(idx);\r\n var style = areaData.getItemVisual(idx, 'style');\r\n polygon.useStyle(areaData.getItemVisual(idx, 'style'));\r\n setLabelStyle(polygon, getLabelStatesModels(itemModel), {\r\n labelFetcher: maModel,\r\n labelDataIndex: idx,\r\n defaultText: areaData.getName(idx) || '',\r\n inheritColor: typeof style.fill === 'string'\r\n ? modifyAlpha(style.fill, 1) : '#000'\r\n });\r\n setStatesStylesFromModel(polygon, itemModel);\r\n enableHoverEmphasis(polygon);\r\n getECData(polygon).dataModel = maModel;\r\n });\r\n inner$l(polygonGroup).data = areaData;\r\n polygonGroup.group.silent = maModel.get('silent') || seriesModel.get('silent');\r\n };\r\n MarkAreaView.type = 'markArea';\r\n return MarkAreaView;\r\n }(MarkerView));\r\n function createList$3(coordSys, seriesModel, maModel) {\r\n var coordDimsInfos;\r\n var areaData;\r\n var dims = ['x0', 'y0', 'x1', 'y1'];\r\n if (coordSys) {\r\n coordDimsInfos = map(coordSys && coordSys.dimensions, function (coordDim) {\r\n var data = seriesModel.getData();\r\n var info = data.getDimensionInfo(data.mapDimension(coordDim)) || {};\r\n return defaults({\r\n name: coordDim\r\n }, info);\r\n });\r\n areaData = new List(map(dims, function (dim, idx) {\r\n return {\r\n name: dim,\r\n type: coordDimsInfos[idx % 2].type\r\n };\r\n }), maModel);\r\n }\r\n else {\r\n coordDimsInfos = [{\r\n name: 'value',\r\n type: 'float'\r\n }];\r\n areaData = new List(coordDimsInfos, maModel);\r\n }\r\n var optData = map(maModel.get('data'), curry(markAreaTransform, seriesModel, coordSys, maModel));\r\n if (coordSys) {\r\n optData = filter(optData, curry(markAreaFilter, coordSys));\r\n }\r\n var dimValueGetter = coordSys ? function (item, dimName, dataIndex, dimIndex) {\r\n return item.coord[Math.floor(dimIndex / 2)][dimIndex % 2];\r\n } : function (item) {\r\n return item.value;\r\n };\r\n areaData.initData(optData, null, dimValueGetter);\r\n areaData.hasItemOption = true;\r\n return areaData;\r\n }\r\n ComponentView.registerClass(MarkAreaView);\n\n registerPreprocessor(function (opt) {\r\n opt.markArea = opt.markArea || {};\r\n });\n\n var getDefaultSelectorOptions = function (ecModel, type) {\r\n if (type === 'all') {\r\n return {\r\n type: 'all',\r\n title: ecModel.getLocale(['legend', 'selector', 'all'])\r\n };\r\n }\r\n else if (type === 'inverse') {\r\n return {\r\n type: 'inverse',\r\n title: ecModel.getLocale(['legend', 'selector', 'inverse'])\r\n };\r\n }\r\n };\r\n var LegendModel = (function (_super) {\r\n __extends(LegendModel, _super);\r\n function LegendModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = LegendModel.type;\r\n _this.layoutMode = {\r\n type: 'box',\r\n ignoreSize: true\r\n };\r\n return _this;\r\n }\r\n LegendModel.prototype.init = function (option, parentModel, ecModel) {\r\n this.mergeDefaultAndTheme(option, ecModel);\r\n option.selected = option.selected || {};\r\n this._updateSelector(option);\r\n };\r\n LegendModel.prototype.mergeOption = function (option, ecModel) {\r\n _super.prototype.mergeOption.call(this, option, ecModel);\r\n this._updateSelector(option);\r\n };\r\n LegendModel.prototype._updateSelector = function (option) {\r\n var selector = option.selector;\r\n var ecModel = this.ecModel;\r\n if (selector === true) {\r\n selector = option.selector = ['all', 'inverse'];\r\n }\r\n if (isArray(selector)) {\r\n each(selector, function (item, index) {\r\n isString(item) && (item = { type: item });\r\n selector[index] = merge(item, getDefaultSelectorOptions(ecModel, item.type));\r\n });\r\n }\r\n };\r\n LegendModel.prototype.optionUpdated = function () {\r\n this._updateData(this.ecModel);\r\n var legendData = this._data;\r\n if (legendData[0] && this.get('selectedMode') === 'single') {\r\n var hasSelected = false;\r\n for (var i = 0; i < legendData.length; i++) {\r\n var name_1 = legendData[i].get('name');\r\n if (this.isSelected(name_1)) {\r\n this.select(name_1);\r\n hasSelected = true;\r\n break;\r\n }\r\n }\r\n !hasSelected && this.select(legendData[0].get('name'));\r\n }\r\n };\r\n LegendModel.prototype._updateData = function (ecModel) {\r\n var potentialData = [];\r\n var availableNames = [];\r\n ecModel.eachRawSeries(function (seriesModel) {\r\n var seriesName = seriesModel.name;\r\n availableNames.push(seriesName);\r\n var isPotential;\r\n if (seriesModel.legendVisualProvider) {\r\n var provider = seriesModel.legendVisualProvider;\r\n var names = provider.getAllNames();\r\n if (!ecModel.isSeriesFiltered(seriesModel)) {\r\n availableNames = availableNames.concat(names);\r\n }\r\n if (names.length) {\r\n potentialData = potentialData.concat(names);\r\n }\r\n else {\r\n isPotential = true;\r\n }\r\n }\r\n else {\r\n isPotential = true;\r\n }\r\n if (isPotential && isNameSpecified(seriesModel)) {\r\n potentialData.push(seriesModel.name);\r\n }\r\n });\r\n this._availableNames = availableNames;\r\n var rawData = this.get('data') || potentialData;\r\n var legendData = map(rawData, function (dataItem) {\r\n if (typeof dataItem === 'string' || typeof dataItem === 'number') {\r\n dataItem = {\r\n name: dataItem\r\n };\r\n }\r\n return new Model(dataItem, this, this.ecModel);\r\n }, this);\r\n this._data = legendData;\r\n };\r\n LegendModel.prototype.getData = function () {\r\n return this._data;\r\n };\r\n LegendModel.prototype.select = function (name) {\r\n var selected = this.option.selected;\r\n var selectedMode = this.get('selectedMode');\r\n if (selectedMode === 'single') {\r\n var data = this._data;\r\n each(data, function (dataItem) {\r\n selected[dataItem.get('name')] = false;\r\n });\r\n }\r\n selected[name] = true;\r\n };\r\n LegendModel.prototype.unSelect = function (name) {\r\n if (this.get('selectedMode') !== 'single') {\r\n this.option.selected[name] = false;\r\n }\r\n };\r\n LegendModel.prototype.toggleSelected = function (name) {\r\n var selected = this.option.selected;\r\n if (!selected.hasOwnProperty(name)) {\r\n selected[name] = true;\r\n }\r\n this[selected[name] ? 'unSelect' : 'select'](name);\r\n };\r\n LegendModel.prototype.allSelect = function () {\r\n var data = this._data;\r\n var selected = this.option.selected;\r\n each(data, function (dataItem) {\r\n selected[dataItem.get('name', true)] = true;\r\n });\r\n };\r\n LegendModel.prototype.inverseSelect = function () {\r\n var data = this._data;\r\n var selected = this.option.selected;\r\n each(data, function (dataItem) {\r\n var name = dataItem.get('name', true);\r\n if (!selected.hasOwnProperty(name)) {\r\n selected[name] = true;\r\n }\r\n selected[name] = !selected[name];\r\n });\r\n };\r\n LegendModel.prototype.isSelected = function (name) {\r\n var selected = this.option.selected;\r\n return !(selected.hasOwnProperty(name) && !selected[name])\r\n && indexOf(this._availableNames, name) >= 0;\r\n };\r\n LegendModel.prototype.getOrient = function () {\r\n return this.get('orient') === 'vertical'\r\n ? { index: 1, name: 'vertical' }\r\n : { index: 0, name: 'horizontal' };\r\n };\r\n LegendModel.type = 'legend.plain';\r\n LegendModel.dependencies = ['series'];\r\n LegendModel.defaultOption = {\r\n zlevel: 0,\r\n z: 4,\r\n show: true,\r\n orient: 'horizontal',\r\n left: 'center',\r\n top: 0,\r\n align: 'auto',\r\n backgroundColor: 'rgba(0,0,0,0)',\r\n borderColor: '#ccc',\r\n borderRadius: 0,\r\n borderWidth: 0,\r\n padding: 5,\r\n itemGap: 10,\r\n itemWidth: 25,\r\n itemHeight: 14,\r\n inactiveColor: '#ccc',\r\n inactiveBorderColor: '#ccc',\r\n itemStyle: {\r\n borderWidth: 0\r\n },\r\n textStyle: {\r\n color: '#333'\r\n },\r\n selectedMode: true,\r\n selector: false,\r\n selectorLabel: {\r\n show: true,\r\n borderRadius: 10,\r\n padding: [3, 5, 3, 5],\r\n fontSize: 12,\r\n fontFamily: ' sans-serif',\r\n color: '#666',\r\n borderWidth: 1,\r\n borderColor: '#666'\r\n },\r\n emphasis: {\r\n selectorLabel: {\r\n show: true,\r\n color: '#eee',\r\n backgroundColor: '#666'\r\n }\r\n },\r\n selectorPosition: 'auto',\r\n selectorItemGap: 7,\r\n selectorButtonGap: 10,\r\n tooltip: {\r\n show: false\r\n }\r\n };\r\n return LegendModel;\r\n }(ComponentModel));\r\n ComponentModel.registerClass(LegendModel);\n\n function legendSelectActionHandler(methodName, payload, ecModel) {\r\n var selectedMap = {};\r\n var isToggleSelect = methodName === 'toggleSelected';\r\n var isSelected;\r\n ecModel.eachComponent('legend', function (legendModel) {\r\n if (isToggleSelect && isSelected != null) {\r\n legendModel[isSelected ? 'select' : 'unSelect'](payload.name);\r\n }\r\n else if (methodName === 'allSelect' || methodName === 'inverseSelect') {\r\n legendModel[methodName]();\r\n }\r\n else {\r\n legendModel[methodName](payload.name);\r\n isSelected = legendModel.isSelected(payload.name);\r\n }\r\n var legendData = legendModel.getData();\r\n each(legendData, function (model) {\r\n var name = model.get('name');\r\n if (name === '\\n' || name === '') {\r\n return;\r\n }\r\n var isItemSelected = legendModel.isSelected(name);\r\n if (selectedMap.hasOwnProperty(name)) {\r\n selectedMap[name] = selectedMap[name] && isItemSelected;\r\n }\r\n else {\r\n selectedMap[name] = isItemSelected;\r\n }\r\n });\r\n });\r\n return (methodName === 'allSelect' || methodName === 'inverseSelect')\r\n ? {\r\n selected: selectedMap\r\n }\r\n : {\r\n name: payload.name,\r\n selected: selectedMap\r\n };\r\n }\r\n registerAction('legendToggleSelect', 'legendselectchanged', curry(legendSelectActionHandler, 'toggleSelected'));\r\n registerAction('legendAllSelect', 'legendselectall', curry(legendSelectActionHandler, 'allSelect'));\r\n registerAction('legendInverseSelect', 'legendinverseselect', curry(legendSelectActionHandler, 'inverseSelect'));\r\n registerAction('legendSelect', 'legendselected', curry(legendSelectActionHandler, 'select'));\r\n registerAction('legendUnSelect', 'legendunselected', curry(legendSelectActionHandler, 'unSelect'));\n\n var curry$1 = curry;\r\n var each$e = each;\r\n var Group$2 = Group;\r\n var LegendView = (function (_super) {\r\n __extends(LegendView, _super);\r\n function LegendView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = LegendView.type;\r\n _this.newlineDisabled = false;\r\n return _this;\r\n }\r\n LegendView.prototype.init = function () {\r\n this.group.add(this._contentGroup = new Group$2());\r\n this.group.add(this._selectorGroup = new Group$2());\r\n this._isFirstRender = true;\r\n };\r\n LegendView.prototype.getContentGroup = function () {\r\n return this._contentGroup;\r\n };\r\n LegendView.prototype.getSelectorGroup = function () {\r\n return this._selectorGroup;\r\n };\r\n LegendView.prototype.render = function (legendModel, ecModel, api) {\r\n var isFirstRender = this._isFirstRender;\r\n this._isFirstRender = false;\r\n this.resetInner();\r\n if (!legendModel.get('show', true)) {\r\n return;\r\n }\r\n var itemAlign = legendModel.get('align');\r\n var orient = legendModel.get('orient');\r\n if (!itemAlign || itemAlign === 'auto') {\r\n itemAlign = (legendModel.get('left') === 'right'\r\n && orient === 'vertical') ? 'right' : 'left';\r\n }\r\n var selector = legendModel.get('selector', true);\r\n var selectorPosition = legendModel.get('selectorPosition', true);\r\n if (selector && (!selectorPosition || selectorPosition === 'auto')) {\r\n selectorPosition = orient === 'horizontal' ? 'end' : 'start';\r\n }\r\n this.renderInner(itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition);\r\n var positionInfo = legendModel.getBoxLayoutParams();\r\n var viewportSize = { width: api.getWidth(), height: api.getHeight() };\r\n var padding = legendModel.get('padding');\r\n var maxSize = getLayoutRect(positionInfo, viewportSize, padding);\r\n var mainRect = this.layoutInner(legendModel, itemAlign, maxSize, isFirstRender, selector, selectorPosition);\r\n var layoutRect = getLayoutRect(defaults({\r\n width: mainRect.width,\r\n height: mainRect.height\r\n }, positionInfo), viewportSize, padding);\r\n this.group.x = layoutRect.x - mainRect.x;\r\n this.group.y = layoutRect.y - mainRect.y;\r\n this.group.markRedraw();\r\n this.group.add(this._backgroundEl = makeBackground(mainRect, legendModel));\r\n };\r\n LegendView.prototype.resetInner = function () {\r\n this.getContentGroup().removeAll();\r\n this._backgroundEl && this.group.remove(this._backgroundEl);\r\n this.getSelectorGroup().removeAll();\r\n };\r\n LegendView.prototype.renderInner = function (itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition) {\r\n var contentGroup = this.getContentGroup();\r\n var legendDrawnMap = createHashMap();\r\n var selectMode = legendModel.get('selectedMode');\r\n var excludeSeriesId = [];\r\n ecModel.eachRawSeries(function (seriesModel) {\r\n !seriesModel.get('legendHoverLink') && excludeSeriesId.push(seriesModel.id);\r\n });\r\n each$e(legendModel.getData(), function (itemModel, dataIndex) {\r\n var name = itemModel.get('name');\r\n if (!this.newlineDisabled && (name === '' || name === '\\n')) {\r\n var g = new Group$2();\r\n g.newline = true;\r\n contentGroup.add(g);\r\n return;\r\n }\r\n var seriesModel = ecModel.getSeriesByName(name)[0];\r\n if (legendDrawnMap.get(name)) {\r\n return;\r\n }\r\n if (seriesModel) {\r\n var data = seriesModel.getData();\r\n var style = data.getVisual('style');\r\n var color = style[data.getVisual('drawType')] || style.fill;\r\n var borderColor = style.stroke;\r\n var decal = style.decal;\r\n var legendSymbolType = data.getVisual('legendSymbol') || 'roundRect';\r\n var symbolType = data.getVisual('symbol');\r\n var itemGroup = this._createItem(name, dataIndex, itemModel, legendModel, legendSymbolType, symbolType, itemAlign, color, borderColor, decal, selectMode);\r\n itemGroup.on('click', curry$1(dispatchSelectAction, name, null, api, excludeSeriesId))\r\n .on('mouseover', curry$1(dispatchHighlightAction, seriesModel.name, null, api, excludeSeriesId))\r\n .on('mouseout', curry$1(dispatchDownplayAction, seriesModel.name, null, api, excludeSeriesId));\r\n legendDrawnMap.set(name, true);\r\n }\r\n else {\r\n ecModel.eachRawSeries(function (seriesModel) {\r\n if (legendDrawnMap.get(name)) {\r\n return;\r\n }\r\n if (seriesModel.legendVisualProvider) {\r\n var provider = seriesModel.legendVisualProvider;\r\n if (!provider.containName(name)) {\r\n return;\r\n }\r\n var idx = provider.indexOfName(name);\r\n var style = provider.getItemVisual(idx, 'style');\r\n var borderColor = style.stroke;\r\n var decal = style.decal;\r\n var color = style.fill;\r\n var colorArr = parse(style.fill);\r\n if (colorArr && colorArr[3] === 0) {\r\n colorArr[3] = 0.2;\r\n color = stringify(colorArr, 'rgba');\r\n }\r\n var legendSymbolType = 'roundRect';\r\n var itemGroup = this._createItem(name, dataIndex, itemModel, legendModel, legendSymbolType, null, itemAlign, color, borderColor, decal, selectMode);\r\n itemGroup.on('click', curry$1(dispatchSelectAction, null, name, api, excludeSeriesId))\r\n .on('mouseover', curry$1(dispatchHighlightAction, null, name, api, excludeSeriesId))\r\n .on('mouseout', curry$1(dispatchDownplayAction, null, name, api, excludeSeriesId));\r\n legendDrawnMap.set(name, true);\r\n }\r\n }, this);\r\n }\r\n if (__DEV__) {\r\n if (!legendDrawnMap.get(name)) {\r\n console.warn(name + ' series not exists. Legend data should be same with series name or data name.');\r\n }\r\n }\r\n }, this);\r\n if (selector) {\r\n this._createSelector(selector, legendModel, api, orient, selectorPosition);\r\n }\r\n };\r\n LegendView.prototype._createSelector = function (selector, legendModel, api, orient, selectorPosition) {\r\n var selectorGroup = this.getSelectorGroup();\r\n each$e(selector, function createSelectorButton(selectorItem) {\r\n var type = selectorItem.type;\r\n var labelText = new ZRText({\r\n style: {\r\n x: 0,\r\n y: 0,\r\n align: 'center',\r\n verticalAlign: 'middle'\r\n },\r\n onclick: function () {\r\n api.dispatchAction({\r\n type: type === 'all' ? 'legendAllSelect' : 'legendInverseSelect'\r\n });\r\n }\r\n });\r\n selectorGroup.add(labelText);\r\n var labelModel = legendModel.getModel('selectorLabel');\r\n var emphasisLabelModel = legendModel.getModel(['emphasis', 'selectorLabel']);\r\n setLabelStyle(labelText, { normal: labelModel, emphasis: emphasisLabelModel }, {\r\n defaultText: selectorItem.title\r\n });\r\n enableHoverEmphasis(labelText);\r\n });\r\n };\r\n LegendView.prototype._createItem = function (name, dataIndex, itemModel, legendModel, legendSymbolType, symbolType, itemAlign, color, borderColor, decal, selectMode) {\r\n var itemWidth = legendModel.get('itemWidth');\r\n var itemHeight = legendModel.get('itemHeight');\r\n var inactiveColor = legendModel.get('inactiveColor');\r\n var inactiveBorderColor = legendModel.get('inactiveBorderColor');\r\n var symbolKeepAspect = legendModel.get('symbolKeepAspect');\r\n var legendModelItemStyle = legendModel.getModel('itemStyle');\r\n var isSelected = legendModel.isSelected(name);\r\n var itemGroup = new Group$2();\r\n var textStyleModel = itemModel.getModel('textStyle');\r\n var itemIcon = itemModel.get('icon');\r\n var tooltipModel = itemModel.getModel('tooltip');\r\n var legendGlobalTooltipModel = tooltipModel.parentModel;\r\n legendSymbolType = itemIcon || legendSymbolType;\r\n var legendSymbol = createSymbol(legendSymbolType, 0, 0, itemWidth, itemHeight, isSelected ? color : inactiveColor, symbolKeepAspect == null ? true : symbolKeepAspect);\r\n itemGroup.add(setSymbolStyle(legendSymbol, legendSymbolType, legendModelItemStyle, borderColor, inactiveBorderColor, decal, isSelected));\r\n if (!itemIcon && symbolType\r\n && ((symbolType !== legendSymbolType) || symbolType === 'none')) {\r\n var size = itemHeight * 0.8;\r\n if (symbolType === 'none') {\r\n symbolType = 'circle';\r\n }\r\n var legendSymbolCenter = createSymbol(symbolType, (itemWidth - size) / 2, (itemHeight - size) / 2, size, size, isSelected ? color : inactiveColor, symbolKeepAspect == null ? true : symbolKeepAspect);\r\n itemGroup.add(setSymbolStyle(legendSymbolCenter, symbolType, legendModelItemStyle, borderColor, inactiveBorderColor, decal, isSelected));\r\n }\r\n var textX = itemAlign === 'left' ? itemWidth + 5 : -5;\r\n var textAlign = itemAlign;\r\n var formatter = legendModel.get('formatter');\r\n var content = name;\r\n if (typeof formatter === 'string' && formatter) {\r\n content = formatter.replace('{name}', name != null ? name : '');\r\n }\r\n else if (typeof formatter === 'function') {\r\n content = formatter(name);\r\n }\r\n itemGroup.add(new ZRText({\r\n style: createTextStyle(textStyleModel, {\r\n text: content,\r\n x: textX,\r\n y: itemHeight / 2,\r\n fill: isSelected ? textStyleModel.getTextColor() : inactiveColor,\r\n align: textAlign,\r\n verticalAlign: 'middle'\r\n })\r\n }));\r\n var hitRect = new Rect({\r\n shape: itemGroup.getBoundingRect(),\r\n invisible: true\r\n });\r\n if (tooltipModel.get('show')) {\r\n var formatterParams = {\r\n componentType: 'legend',\r\n legendIndex: legendModel.componentIndex,\r\n name: name,\r\n $vars: ['name']\r\n };\r\n hitRect.tooltip = extend({\r\n content: name,\r\n formatter: legendGlobalTooltipModel.get('formatter', true)\r\n || function (params) {\r\n return params.name;\r\n },\r\n formatterParams: formatterParams\r\n }, tooltipModel.option);\r\n }\r\n itemGroup.add(hitRect);\r\n itemGroup.eachChild(function (child) {\r\n child.silent = true;\r\n });\r\n hitRect.silent = !selectMode;\r\n this.getContentGroup().add(itemGroup);\r\n enableHoverEmphasis(itemGroup);\r\n itemGroup.__legendDataIndex = dataIndex;\r\n return itemGroup;\r\n };\r\n LegendView.prototype.layoutInner = function (legendModel, itemAlign, maxSize, isFirstRender, selector, selectorPosition) {\r\n var contentGroup = this.getContentGroup();\r\n var selectorGroup = this.getSelectorGroup();\r\n box(legendModel.get('orient'), contentGroup, legendModel.get('itemGap'), maxSize.width, maxSize.height);\r\n var contentRect = contentGroup.getBoundingRect();\r\n var contentPos = [-contentRect.x, -contentRect.y];\r\n selectorGroup.markRedraw();\r\n contentGroup.markRedraw();\r\n if (selector) {\r\n box('horizontal', selectorGroup, legendModel.get('selectorItemGap', true));\r\n var selectorRect = selectorGroup.getBoundingRect();\r\n var selectorPos = [-selectorRect.x, -selectorRect.y];\r\n var selectorButtonGap = legendModel.get('selectorButtonGap', true);\r\n var orientIdx = legendModel.getOrient().index;\r\n var wh = orientIdx === 0 ? 'width' : 'height';\r\n var hw = orientIdx === 0 ? 'height' : 'width';\r\n var yx = orientIdx === 0 ? 'y' : 'x';\r\n if (selectorPosition === 'end') {\r\n selectorPos[orientIdx] += contentRect[wh] + selectorButtonGap;\r\n }\r\n else {\r\n contentPos[orientIdx] += selectorRect[wh] + selectorButtonGap;\r\n }\r\n selectorPos[1 - orientIdx] += contentRect[hw] / 2 - selectorRect[hw] / 2;\r\n selectorGroup.x = selectorPos[0];\r\n selectorGroup.y = selectorPos[1];\r\n contentGroup.x = contentPos[0];\r\n contentGroup.y = contentPos[1];\r\n var mainRect = { x: 0, y: 0 };\r\n mainRect[wh] = contentRect[wh] + selectorButtonGap + selectorRect[wh];\r\n mainRect[hw] = Math.max(contentRect[hw], selectorRect[hw]);\r\n mainRect[yx] = Math.min(0, selectorRect[yx] + selectorPos[1 - orientIdx]);\r\n return mainRect;\r\n }\r\n else {\r\n contentGroup.x = contentPos[0];\r\n contentGroup.y = contentPos[1];\r\n return this.group.getBoundingRect();\r\n }\r\n };\r\n LegendView.prototype.remove = function () {\r\n this.getContentGroup().removeAll();\r\n this._isFirstRender = true;\r\n };\r\n LegendView.type = 'legend.plain';\r\n return LegendView;\r\n }(ComponentView));\r\n function setSymbolStyle(symbol, symbolType, legendModelItemStyle, borderColor, inactiveBorderColor, decal, isSelected) {\r\n var itemStyle;\r\n if (symbolType !== 'line' && symbolType.indexOf('empty') < 0) {\r\n itemStyle = legendModelItemStyle.getItemStyle();\r\n symbol.style.stroke = borderColor;\r\n symbol.style.decal = decal;\r\n if (!isSelected) {\r\n itemStyle.stroke = inactiveBorderColor;\r\n }\r\n }\r\n else {\r\n itemStyle = legendModelItemStyle.getItemStyle(['borderWidth', 'borderColor']);\r\n }\r\n symbol.setStyle(itemStyle);\r\n return symbol;\r\n }\r\n function dispatchSelectAction(seriesName, dataName, api, excludeSeriesId) {\r\n dispatchDownplayAction(seriesName, dataName, api, excludeSeriesId);\r\n api.dispatchAction({\r\n type: 'legendToggleSelect',\r\n name: seriesName != null ? seriesName : dataName\r\n });\r\n dispatchHighlightAction(seriesName, dataName, api, excludeSeriesId);\r\n }\r\n function isUseHoverLayer(api) {\r\n var list = api.getZr().storage.getDisplayList();\r\n var emphasisState;\r\n var i = 0;\r\n var len = list.length;\r\n while (i < len && !(emphasisState = list[i].states.emphasis)) {\r\n i++;\r\n }\r\n return emphasisState && emphasisState.hoverLayer;\r\n }\r\n function dispatchHighlightAction(seriesName, dataName, api, excludeSeriesId) {\r\n if (!isUseHoverLayer(api)) {\r\n api.dispatchAction({\r\n type: 'highlight',\r\n seriesName: seriesName,\r\n name: dataName,\r\n excludeSeriesId: excludeSeriesId\r\n });\r\n }\r\n }\r\n function dispatchDownplayAction(seriesName, dataName, api, excludeSeriesId) {\r\n if (!isUseHoverLayer(api)) {\r\n api.dispatchAction({\r\n type: 'downplay',\r\n seriesName: seriesName,\r\n name: dataName,\r\n excludeSeriesId: excludeSeriesId\r\n });\r\n }\r\n }\r\n ComponentView.registerClass(LegendView);\n\n function legendFilter(ecModel) {\r\n var legendModels = ecModel.findComponents({\r\n mainType: 'legend'\r\n });\r\n if (legendModels && legendModels.length) {\r\n ecModel.filterSeries(function (series) {\r\n for (var i = 0; i < legendModels.length; i++) {\r\n if (!legendModels[i].isSelected(series.name)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n });\r\n }\r\n }\n\n registerProcessor(PRIORITY.PROCESSOR.SERIES_FILTER, legendFilter);\r\n ComponentModel.registerSubTypeDefaulter('legend', function () {\r\n return 'plain';\r\n });\n\n var ScrollableLegendModel = (function (_super) {\r\n __extends(ScrollableLegendModel, _super);\r\n function ScrollableLegendModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = ScrollableLegendModel.type;\r\n return _this;\r\n }\r\n ScrollableLegendModel.prototype.setScrollDataIndex = function (scrollDataIndex) {\r\n this.option.scrollDataIndex = scrollDataIndex;\r\n };\r\n ScrollableLegendModel.prototype.init = function (option, parentModel, ecModel) {\r\n var inputPositionParams = getLayoutParams(option);\r\n _super.prototype.init.call(this, option, parentModel, ecModel);\r\n mergeAndNormalizeLayoutParams$1(this, option, inputPositionParams);\r\n };\r\n ScrollableLegendModel.prototype.mergeOption = function (option, ecModel) {\r\n _super.prototype.mergeOption.call(this, option, ecModel);\r\n mergeAndNormalizeLayoutParams$1(this, this.option, option);\r\n };\r\n ScrollableLegendModel.type = 'legend.scroll';\r\n ScrollableLegendModel.defaultOption = inheritDefaultOption(LegendModel.defaultOption, {\r\n scrollDataIndex: 0,\r\n pageButtonItemGap: 5,\r\n pageButtonGap: null,\r\n pageButtonPosition: 'end',\r\n pageFormatter: '{current}/{total}',\r\n pageIcons: {\r\n horizontal: ['M0,0L12,-10L12,10z', 'M0,0L-12,-10L-12,10z'],\r\n vertical: ['M0,0L20,0L10,-20z', 'M0,0L20,0L10,20z']\r\n },\r\n pageIconColor: '#2f4554',\r\n pageIconInactiveColor: '#aaa',\r\n pageIconSize: 15,\r\n pageTextStyle: {\r\n color: '#333'\r\n },\r\n animationDurationUpdate: 800\r\n });\r\n return ScrollableLegendModel;\r\n }(LegendModel));\r\n function mergeAndNormalizeLayoutParams$1(legendModel, target, raw) {\r\n var orient = legendModel.getOrient();\r\n var ignoreSize = [1, 1];\r\n ignoreSize[orient.index] = 0;\r\n mergeLayoutParam(target, raw, {\r\n type: 'box', ignoreSize: !!ignoreSize\r\n });\r\n }\r\n ComponentModel.registerClass(ScrollableLegendModel);\n\n var Group$3 = Group;\r\n var WH$1 = ['width', 'height'];\r\n var XY$1 = ['x', 'y'];\r\n var ScrollableLegendView = (function (_super) {\r\n __extends(ScrollableLegendView, _super);\r\n function ScrollableLegendView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = ScrollableLegendView.type;\r\n _this.newlineDisabled = true;\r\n _this._currentIndex = 0;\r\n return _this;\r\n }\r\n ScrollableLegendView.prototype.init = function () {\r\n _super.prototype.init.call(this);\r\n this.group.add(this._containerGroup = new Group$3());\r\n this._containerGroup.add(this.getContentGroup());\r\n this.group.add(this._controllerGroup = new Group$3());\r\n };\r\n ScrollableLegendView.prototype.resetInner = function () {\r\n _super.prototype.resetInner.call(this);\r\n this._controllerGroup.removeAll();\r\n this._containerGroup.removeClipPath();\r\n this._containerGroup.__rectSize = null;\r\n };\r\n ScrollableLegendView.prototype.renderInner = function (itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition) {\r\n var self = this;\r\n _super.prototype.renderInner.call(this, itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition);\r\n var controllerGroup = this._controllerGroup;\r\n var pageIconSize = legendModel.get('pageIconSize', true);\r\n var pageIconSizeArr = isArray(pageIconSize)\r\n ? pageIconSize : [pageIconSize, pageIconSize];\r\n createPageButton('pagePrev', 0);\r\n var pageTextStyleModel = legendModel.getModel('pageTextStyle');\r\n controllerGroup.add(new ZRText({\r\n name: 'pageText',\r\n style: {\r\n text: 'xx/xx',\r\n fill: pageTextStyleModel.getTextColor(),\r\n font: pageTextStyleModel.getFont(),\r\n verticalAlign: 'middle',\r\n align: 'center'\r\n },\r\n silent: true\r\n }));\r\n createPageButton('pageNext', 1);\r\n function createPageButton(name, iconIdx) {\r\n var pageDataIndexName = (name + 'DataIndex');\r\n var icon = createIcon(legendModel.get('pageIcons', true)[legendModel.getOrient().name][iconIdx], {\r\n onclick: bind(self._pageGo, self, pageDataIndexName, legendModel, api)\r\n }, {\r\n x: -pageIconSizeArr[0] / 2,\r\n y: -pageIconSizeArr[1] / 2,\r\n width: pageIconSizeArr[0],\r\n height: pageIconSizeArr[1]\r\n });\r\n icon.name = name;\r\n controllerGroup.add(icon);\r\n }\r\n };\r\n ScrollableLegendView.prototype.layoutInner = function (legendModel, itemAlign, maxSize, isFirstRender, selector, selectorPosition) {\r\n var selectorGroup = this.getSelectorGroup();\r\n var orientIdx = legendModel.getOrient().index;\r\n var wh = WH$1[orientIdx];\r\n var xy = XY$1[orientIdx];\r\n var hw = WH$1[1 - orientIdx];\r\n var yx = XY$1[1 - orientIdx];\r\n selector && box('horizontal', selectorGroup, legendModel.get('selectorItemGap', true));\r\n var selectorButtonGap = legendModel.get('selectorButtonGap', true);\r\n var selectorRect = selectorGroup.getBoundingRect();\r\n var selectorPos = [-selectorRect.x, -selectorRect.y];\r\n var processMaxSize = clone(maxSize);\r\n selector && (processMaxSize[wh] = maxSize[wh] - selectorRect[wh] - selectorButtonGap);\r\n var mainRect = this._layoutContentAndController(legendModel, isFirstRender, processMaxSize, orientIdx, wh, hw, yx, xy);\r\n if (selector) {\r\n if (selectorPosition === 'end') {\r\n selectorPos[orientIdx] += mainRect[wh] + selectorButtonGap;\r\n }\r\n else {\r\n var offset = selectorRect[wh] + selectorButtonGap;\r\n selectorPos[orientIdx] -= offset;\r\n mainRect[xy] -= offset;\r\n }\r\n mainRect[wh] += selectorRect[wh] + selectorButtonGap;\r\n selectorPos[1 - orientIdx] += mainRect[yx] + mainRect[hw] / 2 - selectorRect[hw] / 2;\r\n mainRect[hw] = Math.max(mainRect[hw], selectorRect[hw]);\r\n mainRect[yx] = Math.min(mainRect[yx], selectorRect[yx] + selectorPos[1 - orientIdx]);\r\n selectorGroup.x = selectorPos[0];\r\n selectorGroup.y = selectorPos[1];\r\n selectorGroup.markRedraw();\r\n }\r\n return mainRect;\r\n };\r\n ScrollableLegendView.prototype._layoutContentAndController = function (legendModel, isFirstRender, maxSize, orientIdx, wh, hw, yx, xy) {\r\n var contentGroup = this.getContentGroup();\r\n var containerGroup = this._containerGroup;\r\n var controllerGroup = this._controllerGroup;\r\n box(legendModel.get('orient'), contentGroup, legendModel.get('itemGap'), !orientIdx ? null : maxSize.width, orientIdx ? null : maxSize.height);\r\n box('horizontal', controllerGroup, legendModel.get('pageButtonItemGap', true));\r\n var contentRect = contentGroup.getBoundingRect();\r\n var controllerRect = controllerGroup.getBoundingRect();\r\n var showController = this._showController = contentRect[wh] > maxSize[wh];\r\n var contentPos = [-contentRect.x, -contentRect.y];\r\n if (!isFirstRender) {\r\n contentPos[orientIdx] = contentGroup[xy];\r\n }\r\n var containerPos = [0, 0];\r\n var controllerPos = [-controllerRect.x, -controllerRect.y];\r\n var pageButtonGap = retrieve2(legendModel.get('pageButtonGap', true), legendModel.get('itemGap', true));\r\n if (showController) {\r\n var pageButtonPosition = legendModel.get('pageButtonPosition', true);\r\n if (pageButtonPosition === 'end') {\r\n controllerPos[orientIdx] += maxSize[wh] - controllerRect[wh];\r\n }\r\n else {\r\n containerPos[orientIdx] += controllerRect[wh] + pageButtonGap;\r\n }\r\n }\r\n controllerPos[1 - orientIdx] += contentRect[hw] / 2 - controllerRect[hw] / 2;\r\n contentGroup.setPosition(contentPos);\r\n containerGroup.setPosition(containerPos);\r\n controllerGroup.setPosition(controllerPos);\r\n var mainRect = { x: 0, y: 0 };\r\n mainRect[wh] = showController ? maxSize[wh] : contentRect[wh];\r\n mainRect[hw] = Math.max(contentRect[hw], controllerRect[hw]);\r\n mainRect[yx] = Math.min(0, controllerRect[yx] + controllerPos[1 - orientIdx]);\r\n containerGroup.__rectSize = maxSize[wh];\r\n if (showController) {\r\n var clipShape = { x: 0, y: 0 };\r\n clipShape[wh] = Math.max(maxSize[wh] - controllerRect[wh] - pageButtonGap, 0);\r\n clipShape[hw] = mainRect[hw];\r\n containerGroup.setClipPath(new Rect({ shape: clipShape }));\r\n containerGroup.__rectSize = clipShape[wh];\r\n }\r\n else {\r\n controllerGroup.eachChild(function (child) {\r\n child.attr({\r\n invisible: true,\r\n silent: true\r\n });\r\n });\r\n }\r\n var pageInfo = this._getPageInfo(legendModel);\r\n pageInfo.pageIndex != null && updateProps(contentGroup, { x: pageInfo.contentPosition[0], y: pageInfo.contentPosition[1] }, showController ? legendModel : null);\r\n this._updatePageInfoView(legendModel, pageInfo);\r\n return mainRect;\r\n };\r\n ScrollableLegendView.prototype._pageGo = function (to, legendModel, api) {\r\n var scrollDataIndex = this._getPageInfo(legendModel)[to];\r\n scrollDataIndex != null && api.dispatchAction({\r\n type: 'legendScroll',\r\n scrollDataIndex: scrollDataIndex,\r\n legendId: legendModel.id\r\n });\r\n };\r\n ScrollableLegendView.prototype._updatePageInfoView = function (legendModel, pageInfo) {\r\n var controllerGroup = this._controllerGroup;\r\n each(['pagePrev', 'pageNext'], function (name) {\r\n var key = (name + 'DataIndex');\r\n var canJump = pageInfo[key] != null;\r\n var icon = controllerGroup.childOfName(name);\r\n if (icon) {\r\n icon.setStyle('fill', canJump\r\n ? legendModel.get('pageIconColor', true)\r\n : legendModel.get('pageIconInactiveColor', true));\r\n icon.cursor = canJump ? 'pointer' : 'default';\r\n }\r\n });\r\n var pageText = controllerGroup.childOfName('pageText');\r\n var pageFormatter = legendModel.get('pageFormatter');\r\n var pageIndex = pageInfo.pageIndex;\r\n var current = pageIndex != null ? pageIndex + 1 : 0;\r\n var total = pageInfo.pageCount;\r\n pageText && pageFormatter && pageText.setStyle('text', isString(pageFormatter)\r\n ? pageFormatter.replace('{current}', current == null ? '' : current + '')\r\n .replace('{total}', total == null ? '' : total + '')\r\n : pageFormatter({ current: current, total: total }));\r\n };\r\n ScrollableLegendView.prototype._getPageInfo = function (legendModel) {\r\n var scrollDataIndex = legendModel.get('scrollDataIndex', true);\r\n var contentGroup = this.getContentGroup();\r\n var containerRectSize = this._containerGroup.__rectSize;\r\n var orientIdx = legendModel.getOrient().index;\r\n var wh = WH$1[orientIdx];\r\n var xy = XY$1[orientIdx];\r\n var targetItemIndex = this._findTargetItemIndex(scrollDataIndex);\r\n var children = contentGroup.children();\r\n var targetItem = children[targetItemIndex];\r\n var itemCount = children.length;\r\n var pCount = !itemCount ? 0 : 1;\r\n var result = {\r\n contentPosition: [contentGroup.x, contentGroup.y],\r\n pageCount: pCount,\r\n pageIndex: pCount - 1,\r\n pagePrevDataIndex: null,\r\n pageNextDataIndex: null\r\n };\r\n if (!targetItem) {\r\n return result;\r\n }\r\n var targetItemInfo = getItemInfo(targetItem);\r\n result.contentPosition[orientIdx] = -targetItemInfo.s;\r\n for (var i = targetItemIndex + 1, winStartItemInfo = targetItemInfo, winEndItemInfo = targetItemInfo, currItemInfo = null; i <= itemCount; ++i) {\r\n currItemInfo = getItemInfo(children[i]);\r\n if ((!currItemInfo && winEndItemInfo.e > winStartItemInfo.s + containerRectSize)\r\n || (currItemInfo && !intersect(currItemInfo, winStartItemInfo.s))) {\r\n if (winEndItemInfo.i > winStartItemInfo.i) {\r\n winStartItemInfo = winEndItemInfo;\r\n }\r\n else {\r\n winStartItemInfo = currItemInfo;\r\n }\r\n if (winStartItemInfo) {\r\n if (result.pageNextDataIndex == null) {\r\n result.pageNextDataIndex = winStartItemInfo.i;\r\n }\r\n ++result.pageCount;\r\n }\r\n }\r\n winEndItemInfo = currItemInfo;\r\n }\r\n for (var i = targetItemIndex - 1, winStartItemInfo = targetItemInfo, winEndItemInfo = targetItemInfo, currItemInfo = null; i >= -1; --i) {\r\n currItemInfo = getItemInfo(children[i]);\r\n if ((!currItemInfo || !intersect(winEndItemInfo, currItemInfo.s))\r\n && winStartItemInfo.i < winEndItemInfo.i) {\r\n winEndItemInfo = winStartItemInfo;\r\n if (result.pagePrevDataIndex == null) {\r\n result.pagePrevDataIndex = winStartItemInfo.i;\r\n }\r\n ++result.pageCount;\r\n ++result.pageIndex;\r\n }\r\n winStartItemInfo = currItemInfo;\r\n }\r\n return result;\r\n function getItemInfo(el) {\r\n if (el) {\r\n var itemRect = el.getBoundingRect();\r\n var start = itemRect[xy] + el[xy];\r\n return {\r\n s: start,\r\n e: start + itemRect[wh],\r\n i: el.__legendDataIndex\r\n };\r\n }\r\n }\r\n function intersect(itemInfo, winStart) {\r\n return itemInfo.e >= winStart && itemInfo.s <= winStart + containerRectSize;\r\n }\r\n };\r\n ScrollableLegendView.prototype._findTargetItemIndex = function (targetDataIndex) {\r\n if (!this._showController) {\r\n return 0;\r\n }\r\n var index;\r\n var contentGroup = this.getContentGroup();\r\n var defaultIndex;\r\n contentGroup.eachChild(function (child, idx) {\r\n var legendDataIdx = child.__legendDataIndex;\r\n if (defaultIndex == null && legendDataIdx != null) {\r\n defaultIndex = idx;\r\n }\r\n if (legendDataIdx === targetDataIndex) {\r\n index = idx;\r\n }\r\n });\r\n return index != null ? index : defaultIndex;\r\n };\r\n ScrollableLegendView.type = 'legend.scroll';\r\n return ScrollableLegendView;\r\n }(LegendView));\r\n ComponentView.registerClass(ScrollableLegendView);\n\n registerAction('legendScroll', 'legendscroll', function (payload, ecModel) {\r\n var scrollDataIndex = payload.scrollDataIndex;\r\n scrollDataIndex != null && ecModel.eachComponent({ mainType: 'legend', subType: 'scroll', query: payload }, function (legendModel) {\r\n legendModel.setScrollDataIndex(scrollDataIndex);\r\n });\r\n });\n\n var SliderZoomModel = (function (_super) {\r\n __extends(SliderZoomModel, _super);\r\n function SliderZoomModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = SliderZoomModel.type;\r\n return _this;\r\n }\r\n SliderZoomModel.type = 'dataZoom.slider';\r\n SliderZoomModel.layoutMode = 'box';\r\n SliderZoomModel.defaultOption = inheritDefaultOption(DataZoomModel.defaultOption, {\r\n show: true,\r\n right: 'ph',\r\n top: 'ph',\r\n width: 'ph',\r\n height: 'ph',\r\n left: null,\r\n bottom: null,\r\n borderColor: '#d2dbee',\r\n borderRadius: 3,\r\n backgroundColor: 'rgba(47,69,84,0)',\r\n dataBackground: {\r\n lineStyle: {\r\n color: '#d2dbee',\r\n width: 0.5\r\n },\r\n areaStyle: {\r\n color: '#d2dbee',\r\n opacity: 0.2\r\n }\r\n },\r\n selectedDataBackground: {\r\n lineStyle: {\r\n color: '#8fb0f7',\r\n width: 0.5\r\n },\r\n areaStyle: {\r\n color: '#8fb0f7',\r\n opacity: 0.2\r\n }\r\n },\r\n fillerColor: 'rgba(135,175,274,0.2)',\r\n handleIcon: 'path://M-9.35,34.56V42m0-40V9.5m-2,0h4a2,2,0,0,1,2,2v21a2,2,0,0,1-2,2h-4a2,2,0,0,1-2-2v-21A2,2,0,0,1-11.35,9.5Z',\r\n handleSize: '100%',\r\n handleStyle: {\r\n color: '#fff',\r\n borderColor: '#ACB8D1'\r\n },\r\n moveHandleSize: 7,\r\n moveHandleIcon: 'path://M-320.9-50L-320.9-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-348-41-339-50-320.9-50z M-212.3-50L-212.3-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-239.4-41-230.4-50-212.3-50z M-103.7-50L-103.7-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-130.9-41-121.8-50-103.7-50z',\r\n moveHandleStyle: {\r\n color: '#D2DBEE',\r\n opacity: 0.7\r\n },\r\n showDetail: true,\r\n showDataShadow: 'auto',\r\n realtime: true,\r\n zoomLock: false,\r\n textStyle: {\r\n color: '#6E7079'\r\n },\r\n brushSelect: true,\r\n brushStyle: {\r\n color: 'rgba(135,175,274,0.15)'\r\n },\r\n emphasis: {\r\n handleStyle: {\r\n borderColor: '#8FB0F7'\r\n },\r\n moveHandleStyle: {\r\n color: '#8FB0F7'\r\n }\r\n }\r\n });\r\n return SliderZoomModel;\r\n }(DataZoomModel));\r\n ComponentModel.registerClass(SliderZoomModel);\n\n var Rect$2 = Rect;\r\n var DEFAULT_LOCATION_EDGE_GAP = 7;\r\n var DEFAULT_FRAME_BORDER_WIDTH = 1;\r\n var DEFAULT_FILLER_SIZE = 30;\r\n var DEFAULT_MOVE_HANDLE_SIZE = 7;\r\n var HORIZONTAL = 'horizontal';\r\n var VERTICAL = 'vertical';\r\n var LABEL_GAP = 5;\r\n var SHOW_DATA_SHADOW_SERIES_TYPE = ['line', 'bar', 'candlestick', 'scatter'];\r\n var REALTIME_ANIMATION_CONFIG = {\r\n easing: 'cubicOut',\r\n duration: 100\r\n };\r\n var SliderZoomView = (function (_super) {\r\n __extends(SliderZoomView, _super);\r\n function SliderZoomView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = SliderZoomView.type;\r\n _this._displayables = {};\r\n return _this;\r\n }\r\n SliderZoomView.prototype.init = function (ecModel, api) {\r\n this.api = api;\r\n this._onBrush = bind(this._onBrush, this);\r\n this._onBrushEnd = bind(this._onBrushEnd, this);\r\n };\r\n SliderZoomView.prototype.render = function (dataZoomModel, ecModel, api, payload) {\r\n _super.prototype.render.apply(this, arguments);\r\n createOrUpdate(this, '_dispatchZoomAction', dataZoomModel.get('throttle'), 'fixRate');\r\n this._orient = dataZoomModel.getOrient();\r\n if (dataZoomModel.get('show') === false) {\r\n this.group.removeAll();\r\n return;\r\n }\r\n if (dataZoomModel.noTarget()) {\r\n this._clear();\r\n this.group.removeAll();\r\n return;\r\n }\r\n if (!payload || payload.type !== 'dataZoom' || payload.from !== this.uid) {\r\n this._buildView();\r\n }\r\n this._updateView();\r\n };\r\n SliderZoomView.prototype.dispose = function () {\r\n this._clear();\r\n _super.prototype.dispose.apply(this, arguments);\r\n };\r\n SliderZoomView.prototype._clear = function () {\r\n clear(this, '_dispatchZoomAction');\r\n var zr = this.api.getZr();\r\n zr.off('mousemove', this._onBrush);\r\n zr.off('mouseup', this._onBrushEnd);\r\n };\r\n SliderZoomView.prototype._buildView = function () {\r\n var thisGroup = this.group;\r\n thisGroup.removeAll();\r\n this._brushing = false;\r\n this._displayables.brushRect = null;\r\n this._resetLocation();\r\n this._resetInterval();\r\n var barGroup = this._displayables.sliderGroup = new Group();\r\n this._renderBackground();\r\n this._renderHandle();\r\n this._renderDataShadow();\r\n thisGroup.add(barGroup);\r\n this._positionGroup();\r\n };\r\n SliderZoomView.prototype._resetLocation = function () {\r\n var dataZoomModel = this.dataZoomModel;\r\n var api = this.api;\r\n var showMoveHandle = dataZoomModel.get('brushSelect');\r\n var moveHandleSize = showMoveHandle ? DEFAULT_MOVE_HANDLE_SIZE : 0;\r\n var coordRect = this._findCoordRect();\r\n var ecSize = { width: api.getWidth(), height: api.getHeight() };\r\n var positionInfo = this._orient === HORIZONTAL\r\n ? {\r\n right: ecSize.width - coordRect.x - coordRect.width,\r\n top: (ecSize.height - DEFAULT_FILLER_SIZE - DEFAULT_LOCATION_EDGE_GAP - moveHandleSize),\r\n width: coordRect.width,\r\n height: DEFAULT_FILLER_SIZE\r\n }\r\n : {\r\n right: DEFAULT_LOCATION_EDGE_GAP,\r\n top: coordRect.y,\r\n width: DEFAULT_FILLER_SIZE,\r\n height: coordRect.height\r\n };\r\n var layoutParams = getLayoutParams(dataZoomModel.option);\r\n each(['right', 'top', 'width', 'height'], function (name) {\r\n if (layoutParams[name] === 'ph') {\r\n layoutParams[name] = positionInfo[name];\r\n }\r\n });\r\n var layoutRect = getLayoutRect(layoutParams, ecSize);\r\n this._location = { x: layoutRect.x, y: layoutRect.y };\r\n this._size = [layoutRect.width, layoutRect.height];\r\n this._orient === VERTICAL && this._size.reverse();\r\n };\r\n SliderZoomView.prototype._positionGroup = function () {\r\n var thisGroup = this.group;\r\n var location = this._location;\r\n var orient = this._orient;\r\n var targetAxisModel = this.dataZoomModel.getFirstTargetAxisModel();\r\n var inverse = targetAxisModel && targetAxisModel.get('inverse');\r\n var sliderGroup = this._displayables.sliderGroup;\r\n var otherAxisInverse = (this._dataShadowInfo || {}).otherAxisInverse;\r\n sliderGroup.attr((orient === HORIZONTAL && !inverse)\r\n ? { scaleY: otherAxisInverse ? 1 : -1, scaleX: 1 }\r\n : (orient === HORIZONTAL && inverse)\r\n ? { scaleY: otherAxisInverse ? 1 : -1, scaleX: -1 }\r\n : (orient === VERTICAL && !inverse)\r\n ? { scaleY: otherAxisInverse ? -1 : 1, scaleX: 1, rotation: Math.PI / 2 }\r\n : { scaleY: otherAxisInverse ? -1 : 1, scaleX: -1, rotation: Math.PI / 2 });\r\n var rect = thisGroup.getBoundingRect([sliderGroup]);\r\n thisGroup.x = location.x - rect.x;\r\n thisGroup.y = location.y - rect.y;\r\n thisGroup.markRedraw();\r\n };\r\n SliderZoomView.prototype._getViewExtent = function () {\r\n return [0, this._size[0]];\r\n };\r\n SliderZoomView.prototype._renderBackground = function () {\r\n var dataZoomModel = this.dataZoomModel;\r\n var size = this._size;\r\n var barGroup = this._displayables.sliderGroup;\r\n var brushSelect = dataZoomModel.get('brushSelect');\r\n barGroup.add(new Rect$2({\r\n silent: true,\r\n shape: {\r\n x: 0, y: 0, width: size[0], height: size[1]\r\n },\r\n style: {\r\n fill: dataZoomModel.get('backgroundColor')\r\n },\r\n z2: -40\r\n }));\r\n var clickPanel = new Rect$2({\r\n shape: {\r\n x: 0, y: 0, width: size[0], height: size[1]\r\n },\r\n style: {\r\n fill: 'transparent'\r\n },\r\n z2: 0,\r\n onclick: bind(this._onClickPanel, this)\r\n });\r\n var zr = this.api.getZr();\r\n if (brushSelect) {\r\n clickPanel.on('mousedown', this._onBrushStart, this);\r\n clickPanel.cursor = 'crosshair';\r\n zr.on('mousemove', this._onBrush);\r\n zr.on('mouseup', this._onBrushEnd);\r\n }\r\n else {\r\n zr.off('mousemove', this._onBrush);\r\n zr.off('mouseup', this._onBrushEnd);\r\n }\r\n barGroup.add(clickPanel);\r\n };\r\n SliderZoomView.prototype._renderDataShadow = function () {\r\n var info = this._dataShadowInfo = this._prepareDataShadowInfo();\r\n this._displayables.dataShadowSegs = [];\r\n if (!info) {\r\n return;\r\n }\r\n var size = this._size;\r\n var seriesModel = info.series;\r\n var data = seriesModel.getRawData();\r\n var otherDim = seriesModel.getShadowDim\r\n ? seriesModel.getShadowDim()\r\n : info.otherDim;\r\n if (otherDim == null) {\r\n return;\r\n }\r\n var otherDataExtent = data.getDataExtent(otherDim);\r\n var otherOffset = (otherDataExtent[1] - otherDataExtent[0]) * 0.3;\r\n otherDataExtent = [\r\n otherDataExtent[0] - otherOffset,\r\n otherDataExtent[1] + otherOffset\r\n ];\r\n var otherShadowExtent = [0, size[1]];\r\n var thisShadowExtent = [0, size[0]];\r\n var areaPoints = [[size[0], 0], [0, 0]];\r\n var linePoints = [];\r\n var step = thisShadowExtent[1] / (data.count() - 1);\r\n var thisCoord = 0;\r\n var stride = Math.round(data.count() / size[0]);\r\n var lastIsEmpty;\r\n data.each([otherDim], function (value, index) {\r\n if (stride > 0 && (index % stride)) {\r\n thisCoord += step;\r\n return;\r\n }\r\n var isEmpty = value == null || isNaN(value) || value === '';\r\n var otherCoord = isEmpty\r\n ? 0 : linearMap(value, otherDataExtent, otherShadowExtent, true);\r\n if (isEmpty && !lastIsEmpty && index) {\r\n areaPoints.push([areaPoints[areaPoints.length - 1][0], 0]);\r\n linePoints.push([linePoints[linePoints.length - 1][0], 0]);\r\n }\r\n else if (!isEmpty && lastIsEmpty) {\r\n areaPoints.push([thisCoord, 0]);\r\n linePoints.push([thisCoord, 0]);\r\n }\r\n areaPoints.push([thisCoord, otherCoord]);\r\n linePoints.push([thisCoord, otherCoord]);\r\n thisCoord += step;\r\n lastIsEmpty = isEmpty;\r\n });\r\n var dataZoomModel = this.dataZoomModel;\r\n function createDataShadowGroup(isSelectedArea) {\r\n var model = dataZoomModel.getModel(isSelectedArea ? 'selectedDataBackground' : 'dataBackground');\r\n var group = new Group();\r\n var polygon = new Polygon({\r\n shape: { points: areaPoints },\r\n segmentIgnoreThreshold: 1,\r\n style: model.getModel('areaStyle').getAreaStyle(),\r\n silent: true,\r\n z2: -20\r\n });\r\n var polyline = new Polyline({\r\n shape: { points: linePoints },\r\n segmentIgnoreThreshold: 1,\r\n style: model.getModel('lineStyle').getLineStyle(),\r\n silent: true,\r\n z2: -19\r\n });\r\n group.add(polygon);\r\n group.add(polyline);\r\n return group;\r\n }\r\n for (var i = 0; i < 3; i++) {\r\n var group = createDataShadowGroup(i === 1);\r\n this._displayables.sliderGroup.add(group);\r\n this._displayables.dataShadowSegs.push(group);\r\n }\r\n };\r\n SliderZoomView.prototype._prepareDataShadowInfo = function () {\r\n var dataZoomModel = this.dataZoomModel;\r\n var showDataShadow = dataZoomModel.get('showDataShadow');\r\n if (showDataShadow === false) {\r\n return;\r\n }\r\n var result;\r\n var ecModel = this.ecModel;\r\n dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\r\n var seriesModels = dataZoomModel\r\n .getAxisProxy(axisDim, axisIndex)\r\n .getTargetSeriesModels();\r\n each(seriesModels, function (seriesModel) {\r\n if (result) {\r\n return;\r\n }\r\n if (showDataShadow !== true && indexOf(SHOW_DATA_SHADOW_SERIES_TYPE, seriesModel.get('type')) < 0) {\r\n return;\r\n }\r\n var thisAxis = ecModel.getComponent(getAxisMainType(axisDim), axisIndex).axis;\r\n var otherDim = getOtherDim(axisDim);\r\n var otherAxisInverse;\r\n var coordSys = seriesModel.coordinateSystem;\r\n if (otherDim != null && coordSys.getOtherAxis) {\r\n otherAxisInverse = coordSys.getOtherAxis(thisAxis).inverse;\r\n }\r\n otherDim = seriesModel.getData().mapDimension(otherDim);\r\n result = {\r\n thisAxis: thisAxis,\r\n series: seriesModel,\r\n thisDim: axisDim,\r\n otherDim: otherDim,\r\n otherAxisInverse: otherAxisInverse\r\n };\r\n }, this);\r\n }, this);\r\n return result;\r\n };\r\n SliderZoomView.prototype._renderHandle = function () {\r\n var thisGroup = this.group;\r\n var displayables = this._displayables;\r\n var handles = displayables.handles = [null, null];\r\n var handleLabels = displayables.handleLabels = [null, null];\r\n var sliderGroup = this._displayables.sliderGroup;\r\n var size = this._size;\r\n var dataZoomModel = this.dataZoomModel;\r\n var api = this.api;\r\n var borderRadius = dataZoomModel.get('borderRadius') || 0;\r\n var brushSelect = dataZoomModel.get('brushSelect');\r\n var filler = displayables.filler = new Rect$2({\r\n silent: brushSelect,\r\n style: {\r\n fill: dataZoomModel.get('fillerColor')\r\n },\r\n textConfig: {\r\n position: 'inside'\r\n }\r\n });\r\n sliderGroup.add(filler);\r\n sliderGroup.add(new Rect$2({\r\n silent: true,\r\n subPixelOptimize: true,\r\n shape: {\r\n x: 0,\r\n y: 0,\r\n width: size[0],\r\n height: size[1],\r\n r: borderRadius\r\n },\r\n style: {\r\n stroke: dataZoomModel.get('dataBackgroundColor')\r\n || dataZoomModel.get('borderColor'),\r\n lineWidth: DEFAULT_FRAME_BORDER_WIDTH,\r\n fill: 'rgba(0,0,0,0)'\r\n }\r\n }));\r\n each([0, 1], function (handleIndex) {\r\n var iconStr = dataZoomModel.get('handleIcon');\r\n if (!symbolBuildProxies[iconStr] && iconStr.indexOf('path://') < 0) {\r\n iconStr = 'path://' + iconStr;\r\n if (__DEV__) {\r\n deprecateLog('handleIcon now needs \\'path://\\' prefix when using a path string');\r\n }\r\n }\r\n var path = createSymbol(iconStr, -1, 0, 2, 2, null, true);\r\n path.attr({\r\n cursor: getCursor(this._orient),\r\n draggable: true,\r\n drift: bind(this._onDragMove, this, handleIndex),\r\n ondragend: bind(this._onDragEnd, this),\r\n onmouseover: bind(this._showDataInfo, this, true),\r\n onmouseout: bind(this._showDataInfo, this, false),\r\n z2: 5\r\n });\r\n var bRect = path.getBoundingRect();\r\n var handleSize = dataZoomModel.get('handleSize');\r\n this._handleHeight = parsePercent$2(handleSize, this._size[1]);\r\n this._handleWidth = bRect.width / bRect.height * this._handleHeight;\r\n path.setStyle(dataZoomModel.getModel('handleStyle').getItemStyle());\r\n path.style.strokeNoScale = true;\r\n path.rectHover = true;\r\n path.ensureState('emphasis').style = dataZoomModel.getModel(['emphasis', 'handleStyle']).getItemStyle();\r\n enableHoverEmphasis(path);\r\n var handleColor = dataZoomModel.get('handleColor');\r\n if (handleColor != null) {\r\n path.style.fill = handleColor;\r\n }\r\n sliderGroup.add(handles[handleIndex] = path);\r\n var textStyleModel = dataZoomModel.getModel('textStyle');\r\n thisGroup.add(handleLabels[handleIndex] = new ZRText({\r\n silent: true,\r\n invisible: true,\r\n style: {\r\n x: 0, y: 0, text: '',\r\n verticalAlign: 'middle',\r\n align: 'center',\r\n fill: textStyleModel.getTextColor(),\r\n font: textStyleModel.getFont()\r\n },\r\n z2: 10\r\n }));\r\n }, this);\r\n var actualMoveZone = filler;\r\n if (brushSelect) {\r\n var moveHandleHeight = parsePercent$2(dataZoomModel.get('moveHandleSize'), size[1]);\r\n var moveHandle_1 = displayables.moveHandle = new Rect({\r\n style: dataZoomModel.getModel('moveHandleStyle').getItemStyle(),\r\n silent: true,\r\n shape: {\r\n r: [0, 0, 2, 2],\r\n y: size[1] - 0.5,\r\n height: moveHandleHeight\r\n }\r\n });\r\n var iconSize = moveHandleHeight * 0.8;\r\n var moveHandleIcon = displayables.moveHandleIcon = createSymbol(dataZoomModel.get('moveHandleIcon'), -iconSize / 2, -iconSize / 2, iconSize, iconSize, '#fff', true);\r\n moveHandleIcon.silent = true;\r\n moveHandleIcon.y = size[1] + moveHandleHeight / 2 - 0.5;\r\n moveHandle_1.ensureState('emphasis').style = dataZoomModel.getModel(['emphasis', 'moveHandleStyle']).getItemStyle();\r\n var moveZoneExpandSize = Math.min(size[1] / 2, Math.max(moveHandleHeight, 10));\r\n actualMoveZone = displayables.moveZone = new Rect({\r\n invisible: true,\r\n shape: {\r\n y: size[1] - moveZoneExpandSize,\r\n height: moveHandleHeight + moveZoneExpandSize\r\n }\r\n });\r\n actualMoveZone.on('mouseover', function () {\r\n api.enterEmphasis(moveHandle_1);\r\n })\r\n .on('mouseout', function () {\r\n api.leaveEmphasis(moveHandle_1);\r\n });\r\n sliderGroup.add(moveHandle_1);\r\n sliderGroup.add(moveHandleIcon);\r\n sliderGroup.add(actualMoveZone);\r\n }\r\n actualMoveZone.attr({\r\n draggable: true,\r\n cursor: getCursor(this._orient),\r\n drift: bind(this._onDragMove, this, 'all'),\r\n ondragstart: bind(this._showDataInfo, this, true),\r\n ondragend: bind(this._onDragEnd, this),\r\n onmouseover: bind(this._showDataInfo, this, true),\r\n onmouseout: bind(this._showDataInfo, this, false)\r\n });\r\n };\r\n SliderZoomView.prototype._resetInterval = function () {\r\n var range = this._range = this.dataZoomModel.getPercentRange();\r\n var viewExtent = this._getViewExtent();\r\n this._handleEnds = [\r\n linearMap(range[0], [0, 100], viewExtent, true),\r\n linearMap(range[1], [0, 100], viewExtent, true)\r\n ];\r\n };\r\n SliderZoomView.prototype._updateInterval = function (handleIndex, delta) {\r\n var dataZoomModel = this.dataZoomModel;\r\n var handleEnds = this._handleEnds;\r\n var viewExtend = this._getViewExtent();\r\n var minMaxSpan = dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan();\r\n var percentExtent = [0, 100];\r\n sliderMove(delta, handleEnds, viewExtend, dataZoomModel.get('zoomLock') ? 'all' : handleIndex, minMaxSpan.minSpan != null\r\n ? linearMap(minMaxSpan.minSpan, percentExtent, viewExtend, true) : null, minMaxSpan.maxSpan != null\r\n ? linearMap(minMaxSpan.maxSpan, percentExtent, viewExtend, true) : null);\r\n var lastRange = this._range;\r\n var range = this._range = asc([\r\n linearMap(handleEnds[0], viewExtend, percentExtent, true),\r\n linearMap(handleEnds[1], viewExtend, percentExtent, true)\r\n ]);\r\n return !lastRange || lastRange[0] !== range[0] || lastRange[1] !== range[1];\r\n };\r\n SliderZoomView.prototype._updateView = function (nonRealtime) {\r\n var displaybles = this._displayables;\r\n var handleEnds = this._handleEnds;\r\n var handleInterval = asc(handleEnds.slice());\r\n var size = this._size;\r\n each([0, 1], function (handleIndex) {\r\n var handle = displaybles.handles[handleIndex];\r\n var handleHeight = this._handleHeight;\r\n handle.attr({\r\n scaleX: handleHeight / 2,\r\n scaleY: handleHeight / 2,\r\n x: handleEnds[handleIndex] + (handleIndex ? -1 : 1),\r\n y: size[1] / 2 - handleHeight / 2\r\n });\r\n }, this);\r\n displaybles.filler.setShape({\r\n x: handleInterval[0],\r\n y: 0,\r\n width: handleInterval[1] - handleInterval[0],\r\n height: size[1]\r\n });\r\n var viewExtent = {\r\n x: handleInterval[0],\r\n width: handleInterval[1] - handleInterval[0]\r\n };\r\n if (displaybles.moveHandle) {\r\n displaybles.moveHandle.setShape(viewExtent);\r\n displaybles.moveZone.setShape(viewExtent);\r\n displaybles.moveZone.getBoundingRect();\r\n displaybles.moveHandleIcon && displaybles.moveHandleIcon.attr('x', viewExtent.x + viewExtent.width / 2);\r\n }\r\n var dataShadowSegs = displaybles.dataShadowSegs;\r\n var segIntervals = [0, handleInterval[0], handleInterval[1], size[0]];\r\n for (var i = 0; i < dataShadowSegs.length; i++) {\r\n var segGroup = dataShadowSegs[i];\r\n var clipPath = segGroup.getClipPath();\r\n if (!clipPath) {\r\n clipPath = new Rect();\r\n segGroup.setClipPath(clipPath);\r\n }\r\n clipPath.setShape({\r\n x: segIntervals[i],\r\n y: 0,\r\n width: segIntervals[i + 1] - segIntervals[i],\r\n height: size[1]\r\n });\r\n }\r\n this._updateDataInfo(nonRealtime);\r\n };\r\n SliderZoomView.prototype._updateDataInfo = function (nonRealtime) {\r\n var dataZoomModel = this.dataZoomModel;\r\n var displaybles = this._displayables;\r\n var handleLabels = displaybles.handleLabels;\r\n var orient = this._orient;\r\n var labelTexts = ['', ''];\r\n if (dataZoomModel.get('showDetail')) {\r\n var axisProxy = dataZoomModel.findRepresentativeAxisProxy();\r\n if (axisProxy) {\r\n var axis = axisProxy.getAxisModel().axis;\r\n var range = this._range;\r\n var dataInterval = nonRealtime\r\n ? axisProxy.calculateDataWindow({\r\n start: range[0], end: range[1]\r\n }).valueWindow\r\n : axisProxy.getDataValueWindow();\r\n labelTexts = [\r\n this._formatLabel(dataInterval[0], axis),\r\n this._formatLabel(dataInterval[1], axis)\r\n ];\r\n }\r\n }\r\n var orderedHandleEnds = asc(this._handleEnds.slice());\r\n setLabel.call(this, 0);\r\n setLabel.call(this, 1);\r\n function setLabel(handleIndex) {\r\n var barTransform = getTransform(displaybles.handles[handleIndex].parent, this.group);\r\n var direction = transformDirection(handleIndex === 0 ? 'right' : 'left', barTransform);\r\n var offset = this._handleWidth / 2 + LABEL_GAP;\r\n var textPoint = applyTransform$1([\r\n orderedHandleEnds[handleIndex] + (handleIndex === 0 ? -offset : offset),\r\n this._size[1] / 2\r\n ], barTransform);\r\n handleLabels[handleIndex].setStyle({\r\n x: textPoint[0],\r\n y: textPoint[1],\r\n verticalAlign: orient === HORIZONTAL ? 'middle' : direction,\r\n align: orient === HORIZONTAL ? direction : 'center',\r\n text: labelTexts[handleIndex]\r\n });\r\n }\r\n };\r\n SliderZoomView.prototype._formatLabel = function (value, axis) {\r\n var dataZoomModel = this.dataZoomModel;\r\n var labelFormatter = dataZoomModel.get('labelFormatter');\r\n var labelPrecision = dataZoomModel.get('labelPrecision');\r\n if (labelPrecision == null || labelPrecision === 'auto') {\r\n labelPrecision = axis.getPixelPrecision();\r\n }\r\n var valueStr = (value == null || isNaN(value))\r\n ? ''\r\n : (axis.type === 'category' || axis.type === 'time')\r\n ? axis.scale.getLabel({\r\n value: Math.round(value)\r\n })\r\n : value.toFixed(Math.min(labelPrecision, 20));\r\n return isFunction(labelFormatter)\r\n ? labelFormatter(value, valueStr)\r\n : isString(labelFormatter)\r\n ? labelFormatter.replace('{value}', valueStr)\r\n : valueStr;\r\n };\r\n SliderZoomView.prototype._showDataInfo = function (showOrHide) {\r\n showOrHide = this._dragging || showOrHide;\r\n var displayables = this._displayables;\r\n var handleLabels = displayables.handleLabels;\r\n handleLabels[0].attr('invisible', !showOrHide);\r\n handleLabels[1].attr('invisible', !showOrHide);\r\n displayables.moveHandle\r\n && this.api[showOrHide ? 'enterEmphasis' : 'leaveEmphasis'](displayables.moveHandle, 1);\r\n };\r\n SliderZoomView.prototype._onDragMove = function (handleIndex, dx, dy, event) {\r\n this._dragging = true;\r\n stop(event.event);\r\n var barTransform = this._displayables.sliderGroup.getLocalTransform();\r\n var vertex = applyTransform$1([dx, dy], barTransform, true);\r\n var changed = this._updateInterval(handleIndex, vertex[0]);\r\n var realtime = this.dataZoomModel.get('realtime');\r\n this._updateView(!realtime);\r\n changed && realtime && this._dispatchZoomAction(true);\r\n };\r\n SliderZoomView.prototype._onDragEnd = function () {\r\n this._dragging = false;\r\n this._showDataInfo(false);\r\n var realtime = this.dataZoomModel.get('realtime');\r\n !realtime && this._dispatchZoomAction(false);\r\n };\r\n SliderZoomView.prototype._onClickPanel = function (e) {\r\n var size = this._size;\r\n var localPoint = this._displayables.sliderGroup.transformCoordToLocal(e.offsetX, e.offsetY);\r\n if (localPoint[0] < 0 || localPoint[0] > size[0]\r\n || localPoint[1] < 0 || localPoint[1] > size[1]) {\r\n return;\r\n }\r\n var handleEnds = this._handleEnds;\r\n var center = (handleEnds[0] + handleEnds[1]) / 2;\r\n var changed = this._updateInterval('all', localPoint[0] - center);\r\n this._updateView();\r\n changed && this._dispatchZoomAction(false);\r\n };\r\n SliderZoomView.prototype._onBrushStart = function (e) {\r\n var x = e.offsetX;\r\n var y = e.offsetY;\r\n this._brushStart = new Point(x, y);\r\n this._brushing = true;\r\n this._brushStartTime = +new Date();\r\n };\r\n SliderZoomView.prototype._onBrushEnd = function (e) {\r\n if (!this._brushing) {\r\n return;\r\n }\r\n var brushRect = this._displayables.brushRect;\r\n this._brushing = false;\r\n if (!brushRect) {\r\n return;\r\n }\r\n brushRect.attr('ignore', true);\r\n var brushShape = brushRect.shape;\r\n var brushEndTime = +new Date();\r\n if (brushEndTime - this._brushStartTime < 200 && Math.abs(brushShape.width) < 5) {\r\n return;\r\n }\r\n var viewExtend = this._getViewExtent();\r\n var percentExtent = [0, 100];\r\n this._range = asc([\r\n linearMap(brushShape.x, viewExtend, percentExtent, true),\r\n linearMap(brushShape.x + brushShape.width, viewExtend, percentExtent, true)\r\n ]);\r\n this._handleEnds = [brushShape.x, brushShape.x + brushShape.width];\r\n this._updateView();\r\n this._dispatchZoomAction(false);\r\n };\r\n SliderZoomView.prototype._onBrush = function (e) {\r\n if (this._brushing) {\r\n stop(e.event);\r\n this._updateBrushRect(e.offsetX, e.offsetY);\r\n }\r\n };\r\n SliderZoomView.prototype._updateBrushRect = function (mouseX, mouseY) {\r\n var displayables = this._displayables;\r\n var dataZoomModel = this.dataZoomModel;\r\n var brushRect = displayables.brushRect;\r\n if (!brushRect) {\r\n brushRect = displayables.brushRect = new Rect$2({\r\n silent: true,\r\n style: dataZoomModel.getModel('brushStyle').getItemStyle()\r\n });\r\n displayables.sliderGroup.add(brushRect);\r\n }\r\n brushRect.attr('ignore', false);\r\n var brushStart = this._brushStart;\r\n var sliderGroup = this._displayables.sliderGroup;\r\n var endPoint = sliderGroup.transformCoordToLocal(mouseX, mouseY);\r\n var startPoint = sliderGroup.transformCoordToLocal(brushStart.x, brushStart.y);\r\n var size = this._size;\r\n endPoint[0] = Math.max(Math.min(size[0], endPoint[0]), 0);\r\n brushRect.setShape({\r\n x: startPoint[0], y: 0,\r\n width: endPoint[0] - startPoint[0], height: size[1]\r\n });\r\n };\r\n SliderZoomView.prototype._dispatchZoomAction = function (realtime) {\r\n var range = this._range;\r\n this.api.dispatchAction({\r\n type: 'dataZoom',\r\n from: this.uid,\r\n dataZoomId: this.dataZoomModel.id,\r\n animation: realtime ? REALTIME_ANIMATION_CONFIG : null,\r\n start: range[0],\r\n end: range[1]\r\n });\r\n };\r\n SliderZoomView.prototype._findCoordRect = function () {\r\n var rect;\r\n var coordSysInfoList = collectReferCoordSysModelInfo(this.dataZoomModel).infoList;\r\n if (!rect && coordSysInfoList.length) {\r\n var coordSys = coordSysInfoList[0].model.coordinateSystem;\r\n rect = coordSys.getRect && coordSys.getRect();\r\n }\r\n if (!rect) {\r\n var width = this.api.getWidth();\r\n var height = this.api.getHeight();\r\n rect = {\r\n x: width * 0.2,\r\n y: height * 0.2,\r\n width: width * 0.6,\r\n height: height * 0.6\r\n };\r\n }\r\n return rect;\r\n };\r\n SliderZoomView.type = 'dataZoom.slider';\r\n return SliderZoomView;\r\n }(DataZoomView));\r\n function getOtherDim(thisDim) {\r\n var map = { x: 'y', y: 'x', radius: 'angle', angle: 'radius' };\r\n return map[thisDim];\r\n }\r\n function getCursor(orient) {\r\n return orient === 'vertical' ? 'ns-resize' : 'ew-resize';\r\n }\r\n ComponentView.registerClass(SliderZoomView);\n\n var InsideZoomModel = (function (_super) {\r\n __extends(InsideZoomModel, _super);\r\n function InsideZoomModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = InsideZoomModel.type;\r\n return _this;\r\n }\r\n InsideZoomModel.type = 'dataZoom.inside';\r\n InsideZoomModel.defaultOption = inheritDefaultOption(DataZoomModel.defaultOption, {\r\n disabled: false,\r\n zoomLock: false,\r\n zoomOnMouseWheel: true,\r\n moveOnMouseMove: true,\r\n moveOnMouseWheel: false,\r\n preventDefaultMouseMove: true\r\n });\r\n return InsideZoomModel;\r\n }(DataZoomModel));\r\n ComponentModel.registerClass(InsideZoomModel);\n\n var inner$m = makeInner();\r\n registerProcessor(PRIORITY.PROCESSOR.FILTER, function (ecModel, api) {\r\n var apiInner = inner$m(api);\r\n var coordSysRecordMap = apiInner.coordSysRecordMap\r\n || (apiInner.coordSysRecordMap = createHashMap());\r\n coordSysRecordMap.each(function (coordSysRecord) {\r\n coordSysRecord.dataZoomInfoMap = null;\r\n });\r\n ecModel.eachComponent({ mainType: 'dataZoom', subType: 'inside' }, function (dataZoomModel) {\r\n var dzReferCoordSysWrap = collectReferCoordSysModelInfo(dataZoomModel);\r\n each(dzReferCoordSysWrap.infoList, function (dzCoordSysInfo) {\r\n var coordSysUid = dzCoordSysInfo.model.uid;\r\n var coordSysRecord = coordSysRecordMap.get(coordSysUid)\r\n || coordSysRecordMap.set(coordSysUid, createCoordSysRecord(api, dzCoordSysInfo.model));\r\n var dataZoomInfoMap = coordSysRecord.dataZoomInfoMap\r\n || (coordSysRecord.dataZoomInfoMap = createHashMap());\r\n dataZoomInfoMap.set(dataZoomModel.uid, {\r\n dzReferCoordSysInfo: dzCoordSysInfo,\r\n model: dataZoomModel,\r\n getRange: null\r\n });\r\n });\r\n });\r\n coordSysRecordMap.each(function (coordSysRecord) {\r\n var controller = coordSysRecord.controller;\r\n var firstDzInfo;\r\n var dataZoomInfoMap = coordSysRecord.dataZoomInfoMap;\r\n if (dataZoomInfoMap) {\r\n var firstDzKey = dataZoomInfoMap.keys()[0];\r\n if (firstDzKey != null) {\r\n firstDzInfo = dataZoomInfoMap.get(firstDzKey);\r\n }\r\n }\r\n if (!firstDzInfo) {\r\n disposeCoordSysRecord(coordSysRecordMap, coordSysRecord);\r\n return;\r\n }\r\n var controllerParams = mergeControllerParams(dataZoomInfoMap);\r\n controller.enable(controllerParams.controlType, controllerParams.opt);\r\n controller.setPointerChecker(coordSysRecord.containsPoint);\r\n createOrUpdate(coordSysRecord, 'dispatchAction', firstDzInfo.model.get('throttle', true), 'fixRate');\r\n });\r\n });\r\n function setViewInfoToCoordSysRecord(api, dataZoomModel, getRange) {\r\n inner$m(api).coordSysRecordMap.each(function (coordSysRecord) {\r\n var dzInfo = coordSysRecord.dataZoomInfoMap.get(dataZoomModel.uid);\r\n if (dzInfo) {\r\n dzInfo.getRange = getRange;\r\n }\r\n });\r\n }\r\n function disposeCoordSysRecordIfNeeded(api, dataZoomModel) {\r\n var coordSysRecordMap = inner$m(api).coordSysRecordMap;\r\n var coordSysKeyArr = coordSysRecordMap.keys();\r\n for (var i = 0; i < coordSysKeyArr.length; i++) {\r\n var coordSysKey = coordSysKeyArr[i];\r\n var coordSysRecord = coordSysRecordMap.get(coordSysKey);\r\n var dataZoomInfoMap = coordSysRecord.dataZoomInfoMap;\r\n if (dataZoomInfoMap) {\r\n var dzUid = dataZoomModel.uid;\r\n var dzInfo = dataZoomInfoMap.get(dzUid);\r\n if (dzInfo) {\r\n dataZoomInfoMap.removeKey(dzUid);\r\n if (!dataZoomInfoMap.keys().length) {\r\n disposeCoordSysRecord(coordSysRecordMap, coordSysRecord);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n function disposeCoordSysRecord(coordSysRecordMap, coordSysRecord) {\r\n if (coordSysRecord) {\r\n coordSysRecordMap.removeKey(coordSysRecord.model.uid);\r\n var controller = coordSysRecord.controller;\r\n controller && controller.dispose();\r\n }\r\n }\r\n function createCoordSysRecord(api, coordSysModel) {\r\n var coordSysRecord = {\r\n model: coordSysModel,\r\n containsPoint: curry(containsPoint, coordSysModel),\r\n dispatchAction: curry(dispatchAction$1, api),\r\n dataZoomInfoMap: null,\r\n controller: null\r\n };\r\n var controller = coordSysRecord.controller = new RoamController(api.getZr());\r\n each(['pan', 'zoom', 'scrollMove'], function (eventName) {\r\n controller.on(eventName, function (event) {\r\n var batch = [];\r\n coordSysRecord.dataZoomInfoMap.each(function (dzInfo) {\r\n if (!event.isAvailableBehavior(dzInfo.model.option)) {\r\n return;\r\n }\r\n var method = (dzInfo.getRange || {})[eventName];\r\n var range = method && method(dzInfo.dzReferCoordSysInfo, coordSysRecord.model.mainType, coordSysRecord.controller, event);\r\n !dzInfo.model.get('disabled', true) && range && batch.push({\r\n dataZoomId: dzInfo.model.id,\r\n start: range[0],\r\n end: range[1]\r\n });\r\n });\r\n batch.length && coordSysRecord.dispatchAction(batch);\r\n });\r\n });\r\n return coordSysRecord;\r\n }\r\n function dispatchAction$1(api, batch) {\r\n api.dispatchAction({\r\n type: 'dataZoom',\r\n animation: {\r\n easing: 'cubicOut',\r\n duration: 100\r\n },\r\n batch: batch\r\n });\r\n }\r\n function containsPoint(coordSysModel, e, x, y) {\r\n return coordSysModel.coordinateSystem.containPoint([x, y]);\r\n }\r\n function mergeControllerParams(dataZoomInfoMap) {\r\n var controlType;\r\n var prefix = 'type_';\r\n var typePriority = {\r\n 'type_true': 2,\r\n 'type_move': 1,\r\n 'type_false': 0,\r\n 'type_undefined': -1\r\n };\r\n var preventDefaultMouseMove = true;\r\n dataZoomInfoMap.each(function (dataZoomInfo) {\r\n var dataZoomModel = dataZoomInfo.model;\r\n var oneType = dataZoomModel.get('disabled', true)\r\n ? false\r\n : dataZoomModel.get('zoomLock', true)\r\n ? 'move'\r\n : true;\r\n if (typePriority[prefix + oneType] > typePriority[prefix + controlType]) {\r\n controlType = oneType;\r\n }\r\n preventDefaultMouseMove = preventDefaultMouseMove\r\n && dataZoomModel.get('preventDefaultMouseMove', true);\r\n });\r\n return {\r\n controlType: controlType,\r\n opt: {\r\n zoomOnMouseWheel: true,\r\n moveOnMouseMove: true,\r\n moveOnMouseWheel: true,\r\n preventDefaultMouseMove: !!preventDefaultMouseMove\r\n }\r\n };\r\n }\n\n var InsideZoomView = (function (_super) {\r\n __extends(InsideZoomView, _super);\r\n function InsideZoomView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = 'dataZoom.inside';\r\n return _this;\r\n }\r\n InsideZoomView.prototype.render = function (dataZoomModel, ecModel, api) {\r\n _super.prototype.render.apply(this, arguments);\r\n if (dataZoomModel.noTarget()) {\r\n this._clear();\r\n return;\r\n }\r\n this.range = dataZoomModel.getPercentRange();\r\n setViewInfoToCoordSysRecord(api, dataZoomModel, {\r\n pan: bind(getRangeHandlers.pan, this),\r\n zoom: bind(getRangeHandlers.zoom, this),\r\n scrollMove: bind(getRangeHandlers.scrollMove, this)\r\n });\r\n };\r\n InsideZoomView.prototype.dispose = function () {\r\n this._clear();\r\n _super.prototype.dispose.apply(this, arguments);\r\n };\r\n InsideZoomView.prototype._clear = function () {\r\n disposeCoordSysRecordIfNeeded(this.api, this.dataZoomModel);\r\n this.range = null;\r\n };\r\n InsideZoomView.type = 'dataZoom.inside';\r\n return InsideZoomView;\r\n }(DataZoomView));\r\n var getRangeHandlers = {\r\n zoom: function (coordSysInfo, coordSysMainType, controller, e) {\r\n var lastRange = this.range;\r\n var range = lastRange.slice();\r\n var axisModel = coordSysInfo.axisModels[0];\r\n if (!axisModel) {\r\n return;\r\n }\r\n var directionInfo = getDirectionInfo[coordSysMainType](null, [e.originX, e.originY], axisModel, controller, coordSysInfo);\r\n var percentPoint = (directionInfo.signal > 0\r\n ? (directionInfo.pixelStart + directionInfo.pixelLength - directionInfo.pixel)\r\n : (directionInfo.pixel - directionInfo.pixelStart)) / directionInfo.pixelLength * (range[1] - range[0]) + range[0];\r\n var scale = Math.max(1 / e.scale, 0);\r\n range[0] = (range[0] - percentPoint) * scale + percentPoint;\r\n range[1] = (range[1] - percentPoint) * scale + percentPoint;\r\n var minMaxSpan = this.dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan();\r\n sliderMove(0, range, [0, 100], 0, minMaxSpan.minSpan, minMaxSpan.maxSpan);\r\n this.range = range;\r\n if (lastRange[0] !== range[0] || lastRange[1] !== range[1]) {\r\n return range;\r\n }\r\n },\r\n pan: makeMover(function (range, axisModel, coordSysInfo, coordSysMainType, controller, e) {\r\n var directionInfo = getDirectionInfo[coordSysMainType]([e.oldX, e.oldY], [e.newX, e.newY], axisModel, controller, coordSysInfo);\r\n return directionInfo.signal\r\n * (range[1] - range[0])\r\n * directionInfo.pixel / directionInfo.pixelLength;\r\n }),\r\n scrollMove: makeMover(function (range, axisModel, coordSysInfo, coordSysMainType, controller, e) {\r\n var directionInfo = getDirectionInfo[coordSysMainType]([0, 0], [e.scrollDelta, e.scrollDelta], axisModel, controller, coordSysInfo);\r\n return directionInfo.signal * (range[1] - range[0]) * e.scrollDelta;\r\n })\r\n };\r\n function makeMover(getPercentDelta) {\r\n return function (coordSysInfo, coordSysMainType, controller, e) {\r\n var lastRange = this.range;\r\n var range = lastRange.slice();\r\n var axisModel = coordSysInfo.axisModels[0];\r\n if (!axisModel) {\r\n return;\r\n }\r\n var percentDelta = getPercentDelta(range, axisModel, coordSysInfo, coordSysMainType, controller, e);\r\n sliderMove(percentDelta, range, [0, 100], 'all');\r\n this.range = range;\r\n if (lastRange[0] !== range[0] || lastRange[1] !== range[1]) {\r\n return range;\r\n }\r\n };\r\n }\r\n var getDirectionInfo = {\r\n grid: function (oldPoint, newPoint, axisModel, controller, coordSysInfo) {\r\n var axis = axisModel.axis;\r\n var ret = {};\r\n var rect = coordSysInfo.model.coordinateSystem.getRect();\r\n oldPoint = oldPoint || [0, 0];\r\n if (axis.dim === 'x') {\r\n ret.pixel = newPoint[0] - oldPoint[0];\r\n ret.pixelLength = rect.width;\r\n ret.pixelStart = rect.x;\r\n ret.signal = axis.inverse ? 1 : -1;\r\n }\r\n else {\r\n ret.pixel = newPoint[1] - oldPoint[1];\r\n ret.pixelLength = rect.height;\r\n ret.pixelStart = rect.y;\r\n ret.signal = axis.inverse ? -1 : 1;\r\n }\r\n return ret;\r\n },\r\n polar: function (oldPoint, newPoint, axisModel, controller, coordSysInfo) {\r\n var axis = axisModel.axis;\r\n var ret = {};\r\n var polar = coordSysInfo.model.coordinateSystem;\r\n var radiusExtent = polar.getRadiusAxis().getExtent();\r\n var angleExtent = polar.getAngleAxis().getExtent();\r\n oldPoint = oldPoint ? polar.pointToCoord(oldPoint) : [0, 0];\r\n newPoint = polar.pointToCoord(newPoint);\r\n if (axisModel.mainType === 'radiusAxis') {\r\n ret.pixel = newPoint[0] - oldPoint[0];\r\n ret.pixelLength = radiusExtent[1] - radiusExtent[0];\r\n ret.pixelStart = radiusExtent[0];\r\n ret.signal = axis.inverse ? 1 : -1;\r\n }\r\n else {\r\n ret.pixel = newPoint[1] - oldPoint[1];\r\n ret.pixelLength = angleExtent[1] - angleExtent[0];\r\n ret.pixelStart = angleExtent[0];\r\n ret.signal = axis.inverse ? -1 : 1;\r\n }\r\n return ret;\r\n },\r\n singleAxis: function (oldPoint, newPoint, axisModel, controller, coordSysInfo) {\r\n var axis = axisModel.axis;\r\n var rect = coordSysInfo.model.coordinateSystem.getRect();\r\n var ret = {};\r\n oldPoint = oldPoint || [0, 0];\r\n if (axis.orient === 'horizontal') {\r\n ret.pixel = newPoint[0] - oldPoint[0];\r\n ret.pixelLength = rect.width;\r\n ret.pixelStart = rect.x;\r\n ret.signal = axis.inverse ? 1 : -1;\r\n }\r\n else {\r\n ret.pixel = newPoint[1] - oldPoint[1];\r\n ret.pixelLength = rect.height;\r\n ret.pixelStart = rect.y;\r\n ret.signal = axis.inverse ? -1 : 1;\r\n }\r\n return ret;\r\n }\r\n };\r\n ComponentView.registerClass(InsideZoomView);\n\n var each$f = each;\r\n function visualMapPreprocessor(option) {\r\n var visualMap = option && option.visualMap;\r\n if (!isArray(visualMap)) {\r\n visualMap = visualMap ? [visualMap] : [];\r\n }\r\n each$f(visualMap, function (opt) {\r\n if (!opt) {\r\n return;\r\n }\r\n if (has$1(opt, 'splitList') && !has$1(opt, 'pieces')) {\r\n opt.pieces = opt.splitList;\r\n delete opt.splitList;\r\n }\r\n var pieces = opt.pieces;\r\n if (pieces && isArray(pieces)) {\r\n each$f(pieces, function (piece) {\r\n if (isObject(piece)) {\r\n if (has$1(piece, 'start') && !has$1(piece, 'min')) {\r\n piece.min = piece.start;\r\n }\r\n if (has$1(piece, 'end') && !has$1(piece, 'max')) {\r\n piece.max = piece.end;\r\n }\r\n }\r\n });\r\n }\r\n });\r\n }\r\n function has$1(obj, name) {\r\n return obj && obj.hasOwnProperty && obj.hasOwnProperty(name);\r\n }\n\n ComponentModel.registerSubTypeDefaulter('visualMap', function (option) {\r\n return (!option.categories\r\n && (!(option.pieces\r\n ? option.pieces.length > 0\r\n : option.splitNumber > 0)\r\n || option.calculable))\r\n ? 'continuous' : 'piecewise';\r\n });\n\n var VISUAL_PRIORITY = PRIORITY.VISUAL.COMPONENT;\r\n registerVisual(VISUAL_PRIORITY, {\r\n createOnAllSeries: true,\r\n reset: function (seriesModel, ecModel) {\r\n var resetDefines = [];\r\n ecModel.eachComponent('visualMap', function (visualMapModel) {\r\n var pipelineContext = seriesModel.pipelineContext;\r\n if (!visualMapModel.isTargetSeries(seriesModel)\r\n || (pipelineContext && pipelineContext.large)) {\r\n return;\r\n }\r\n resetDefines.push(incrementalApplyVisual(visualMapModel.stateList, visualMapModel.targetVisuals, bind(visualMapModel.getValueState, visualMapModel), visualMapModel.getDataDimension(seriesModel.getData())));\r\n });\r\n return resetDefines;\r\n }\r\n });\r\n registerVisual(VISUAL_PRIORITY, {\r\n createOnAllSeries: true,\r\n reset: function (seriesModel, ecModel) {\r\n var data = seriesModel.getData();\r\n var visualMetaList = [];\r\n ecModel.eachComponent('visualMap', function (visualMapModel) {\r\n if (visualMapModel.isTargetSeries(seriesModel)) {\r\n var visualMeta = visualMapModel.getVisualMeta(bind(getColorVisual, null, seriesModel, visualMapModel)) || {\r\n stops: [],\r\n outerColors: []\r\n };\r\n var concreteDim = visualMapModel.getDataDimension(data);\r\n var dimInfo = data.getDimensionInfo(concreteDim);\r\n if (dimInfo != null) {\r\n visualMeta.dimension = dimInfo.index;\r\n visualMetaList.push(visualMeta);\r\n }\r\n }\r\n });\r\n seriesModel.getData().setVisual('visualMeta', visualMetaList);\r\n }\r\n });\r\n function getColorVisual(seriesModel, visualMapModel, value, valueState) {\r\n var mappings = visualMapModel.targetVisuals[valueState];\r\n var visualTypes = VisualMapping.prepareVisualTypes(mappings);\r\n var resultVisual = {\r\n color: getVisualFromData(seriesModel.getData(), 'color')\r\n };\r\n for (var i = 0, len = visualTypes.length; i < len; i++) {\r\n var type = visualTypes[i];\r\n var mapping = mappings[(type === 'opacity' ? '__alphaForOpacity' : type)];\r\n mapping && mapping.applyVisual(value, getVisual, setVisual);\r\n }\r\n return resultVisual.color;\r\n function getVisual(key) {\r\n return resultVisual[key];\r\n }\r\n function setVisual(key, value) {\r\n resultVisual[key] = value;\r\n }\r\n }\n\n var visualDefault = {\r\n get: function (visualType, key, isCategory) {\r\n var value = clone((defaultOption$2[visualType] || {})[key]);\r\n return isCategory\r\n ? (isArray(value) ? value[value.length - 1] : value)\r\n : value;\r\n }\r\n };\r\n var defaultOption$2 = {\r\n color: {\r\n active: ['#006edd', '#e0ffff'],\r\n inactive: ['rgba(0,0,0,0)']\r\n },\r\n colorHue: {\r\n active: [0, 360],\r\n inactive: [0, 0]\r\n },\r\n colorSaturation: {\r\n active: [0.3, 1],\r\n inactive: [0, 0]\r\n },\r\n colorLightness: {\r\n active: [0.9, 0.5],\r\n inactive: [0, 0]\r\n },\r\n colorAlpha: {\r\n active: [0.3, 1],\r\n inactive: [0, 0]\r\n },\r\n opacity: {\r\n active: [0.3, 1],\r\n inactive: [0, 0]\r\n },\r\n symbol: {\r\n active: ['circle', 'roundRect', 'diamond'],\r\n inactive: ['none']\r\n },\r\n symbolSize: {\r\n active: [10, 50],\r\n inactive: [0, 0]\r\n }\r\n };\n\n var mapVisual$1 = VisualMapping.mapVisual;\r\n var eachVisual = VisualMapping.eachVisual;\r\n var isArray$1 = isArray;\r\n var each$g = each;\r\n var asc$2 = asc;\r\n var linearMap$1 = linearMap;\r\n var VisualMapModel = (function (_super) {\r\n __extends(VisualMapModel, _super);\r\n function VisualMapModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = VisualMapModel.type;\r\n _this.stateList = ['inRange', 'outOfRange'];\r\n _this.replacableOptionKeys = [\r\n 'inRange', 'outOfRange', 'target', 'controller', 'color'\r\n ];\r\n _this.layoutMode = {\r\n type: 'box', ignoreSize: true\r\n };\r\n _this.dataBound = [-Infinity, Infinity];\r\n _this.targetVisuals = {};\r\n _this.controllerVisuals = {};\r\n return _this;\r\n }\r\n VisualMapModel.prototype.init = function (option, parentModel, ecModel) {\r\n this.mergeDefaultAndTheme(option, ecModel);\r\n };\r\n VisualMapModel.prototype.optionUpdated = function (newOption, isInit) {\r\n var thisOption = this.option;\r\n if (!env.canvasSupported) {\r\n thisOption.realtime = false;\r\n }\r\n !isInit && replaceVisualOption(thisOption, newOption, this.replacableOptionKeys);\r\n this.textStyleModel = this.getModel('textStyle');\r\n this.resetItemSize();\r\n this.completeVisualOption();\r\n };\r\n VisualMapModel.prototype.resetVisual = function (supplementVisualOption) {\r\n var stateList = this.stateList;\r\n supplementVisualOption = bind(supplementVisualOption, this);\r\n this.controllerVisuals = createVisualMappings(this.option.controller, stateList, supplementVisualOption);\r\n this.targetVisuals = createVisualMappings(this.option.target, stateList, supplementVisualOption);\r\n };\r\n VisualMapModel.prototype.getTargetSeriesIndices = function () {\r\n var optionSeriesIndex = this.option.seriesIndex;\r\n var seriesIndices = [];\r\n if (optionSeriesIndex == null || optionSeriesIndex === 'all') {\r\n this.ecModel.eachSeries(function (seriesModel, index) {\r\n seriesIndices.push(index);\r\n });\r\n }\r\n else {\r\n seriesIndices = normalizeToArray(optionSeriesIndex);\r\n }\r\n return seriesIndices;\r\n };\r\n VisualMapModel.prototype.eachTargetSeries = function (callback, context) {\r\n each(this.getTargetSeriesIndices(), function (seriesIndex) {\r\n var seriesModel = this.ecModel.getSeriesByIndex(seriesIndex);\r\n if (seriesModel) {\r\n callback.call(context, seriesModel);\r\n }\r\n }, this);\r\n };\r\n VisualMapModel.prototype.isTargetSeries = function (seriesModel) {\r\n var is = false;\r\n this.eachTargetSeries(function (model) {\r\n model === seriesModel && (is = true);\r\n });\r\n return is;\r\n };\r\n VisualMapModel.prototype.formatValueText = function (value, isCategory, edgeSymbols) {\r\n var option = this.option;\r\n var precision = option.precision;\r\n var dataBound = this.dataBound;\r\n var formatter = option.formatter;\r\n var isMinMax;\r\n edgeSymbols = edgeSymbols || ['<', '>'];\r\n if (isArray(value)) {\r\n value = value.slice();\r\n isMinMax = true;\r\n }\r\n var textValue = isCategory\r\n ? value\r\n : (isMinMax\r\n ? [toFixed(value[0]), toFixed(value[1])]\r\n : toFixed(value));\r\n if (isString(formatter)) {\r\n return formatter\r\n .replace('{value}', isMinMax ? textValue[0] : textValue)\r\n .replace('{value2}', isMinMax ? textValue[1] : textValue);\r\n }\r\n else if (isFunction(formatter)) {\r\n return isMinMax\r\n ? formatter(value[0], value[1])\r\n : formatter(value);\r\n }\r\n if (isMinMax) {\r\n if (value[0] === dataBound[0]) {\r\n return edgeSymbols[0] + ' ' + textValue[1];\r\n }\r\n else if (value[1] === dataBound[1]) {\r\n return edgeSymbols[1] + ' ' + textValue[0];\r\n }\r\n else {\r\n return textValue[0] + ' - ' + textValue[1];\r\n }\r\n }\r\n else {\r\n return textValue;\r\n }\r\n function toFixed(val) {\r\n return val === dataBound[0]\r\n ? 'min'\r\n : val === dataBound[1]\r\n ? 'max'\r\n : (+val).toFixed(Math.min(precision, 20));\r\n }\r\n };\r\n VisualMapModel.prototype.resetExtent = function () {\r\n var thisOption = this.option;\r\n var extent = asc$2([thisOption.min, thisOption.max]);\r\n this._dataExtent = extent;\r\n };\r\n VisualMapModel.prototype.getDataDimension = function (list) {\r\n var optDim = this.option.dimension;\r\n var listDimensions = list.dimensions;\r\n if (optDim == null && !listDimensions.length) {\r\n return;\r\n }\r\n if (optDim != null) {\r\n return list.getDimension(optDim);\r\n }\r\n var dimNames = list.dimensions;\r\n for (var i = dimNames.length - 1; i >= 0; i--) {\r\n var dimName = dimNames[i];\r\n var dimInfo = list.getDimensionInfo(dimName);\r\n if (!dimInfo.isCalculationCoord) {\r\n return dimName;\r\n }\r\n }\r\n };\r\n VisualMapModel.prototype.getExtent = function () {\r\n return this._dataExtent.slice();\r\n };\r\n VisualMapModel.prototype.completeVisualOption = function () {\r\n var ecModel = this.ecModel;\r\n var thisOption = this.option;\r\n var base = {\r\n inRange: thisOption.inRange,\r\n outOfRange: thisOption.outOfRange\r\n };\r\n var target = thisOption.target || (thisOption.target = {});\r\n var controller = thisOption.controller || (thisOption.controller = {});\r\n merge(target, base);\r\n merge(controller, base);\r\n var isCategory = this.isCategory();\r\n completeSingle.call(this, target);\r\n completeSingle.call(this, controller);\r\n completeInactive.call(this, target, 'inRange', 'outOfRange');\r\n completeController.call(this, controller);\r\n function completeSingle(base) {\r\n if (isArray$1(thisOption.color)\r\n && !base.inRange) {\r\n base.inRange = { color: thisOption.color.slice().reverse() };\r\n }\r\n base.inRange = base.inRange || { color: ecModel.get('gradientColor') };\r\n }\r\n function completeInactive(base, stateExist, stateAbsent) {\r\n var optExist = base[stateExist];\r\n var optAbsent = base[stateAbsent];\r\n if (optExist && !optAbsent) {\r\n optAbsent = base[stateAbsent] = {};\r\n each$g(optExist, function (visualData, visualType) {\r\n if (!VisualMapping.isValidType(visualType)) {\r\n return;\r\n }\r\n var defa = visualDefault.get(visualType, 'inactive', isCategory);\r\n if (defa != null) {\r\n optAbsent[visualType] = defa;\r\n if (visualType === 'color'\r\n && !optAbsent.hasOwnProperty('opacity')\r\n && !optAbsent.hasOwnProperty('colorAlpha')) {\r\n optAbsent.opacity = [0, 0];\r\n }\r\n }\r\n });\r\n }\r\n }\r\n function completeController(controller) {\r\n var symbolExists = (controller.inRange || {}).symbol\r\n || (controller.outOfRange || {}).symbol;\r\n var symbolSizeExists = (controller.inRange || {}).symbolSize\r\n || (controller.outOfRange || {}).symbolSize;\r\n var inactiveColor = this.get('inactiveColor');\r\n each$g(this.stateList, function (state) {\r\n var itemSize = this.itemSize;\r\n var visuals = controller[state];\r\n if (!visuals) {\r\n visuals = controller[state] = {\r\n color: isCategory ? inactiveColor : [inactiveColor]\r\n };\r\n }\r\n if (visuals.symbol == null) {\r\n visuals.symbol = symbolExists\r\n && clone(symbolExists)\r\n || (isCategory ? 'roundRect' : ['roundRect']);\r\n }\r\n if (visuals.symbolSize == null) {\r\n visuals.symbolSize = symbolSizeExists\r\n && clone(symbolSizeExists)\r\n || (isCategory ? itemSize[0] : [itemSize[0], itemSize[0]]);\r\n }\r\n visuals.symbol = mapVisual$1(visuals.symbol, function (symbol) {\r\n return (symbol === 'none' || symbol === 'square') ? 'roundRect' : symbol;\r\n });\r\n var symbolSize = visuals.symbolSize;\r\n if (symbolSize != null) {\r\n var max_1 = -Infinity;\r\n eachVisual(symbolSize, function (value) {\r\n value > max_1 && (max_1 = value);\r\n });\r\n visuals.symbolSize = mapVisual$1(symbolSize, function (value) {\r\n return linearMap$1(value, [0, max_1], [0, itemSize[0]], true);\r\n });\r\n }\r\n }, this);\r\n }\r\n };\r\n VisualMapModel.prototype.resetItemSize = function () {\r\n this.itemSize = [\r\n parseFloat(this.get('itemWidth')),\r\n parseFloat(this.get('itemHeight'))\r\n ];\r\n };\r\n VisualMapModel.prototype.isCategory = function () {\r\n return !!this.option.categories;\r\n };\r\n VisualMapModel.prototype.setSelected = function (selected) { };\r\n VisualMapModel.prototype.getSelected = function () {\r\n return null;\r\n };\r\n VisualMapModel.prototype.getValueState = function (value) {\r\n return null;\r\n };\r\n VisualMapModel.prototype.getVisualMeta = function (getColorVisual) {\r\n return null;\r\n };\r\n VisualMapModel.type = 'visualMap';\r\n VisualMapModel.dependencies = ['series'];\r\n VisualMapModel.defaultOption = {\r\n show: true,\r\n zlevel: 0,\r\n z: 4,\r\n seriesIndex: 'all',\r\n min: 0,\r\n max: 200,\r\n left: 0,\r\n right: null,\r\n top: null,\r\n bottom: 0,\r\n itemWidth: null,\r\n itemHeight: null,\r\n inverse: false,\r\n orient: 'vertical',\r\n backgroundColor: 'rgba(0,0,0,0)',\r\n borderColor: '#ccc',\r\n contentColor: '#5793f3',\r\n inactiveColor: '#aaa',\r\n borderWidth: 0,\r\n padding: 5,\r\n textGap: 10,\r\n precision: 0,\r\n textStyle: {\r\n color: '#333'\r\n }\r\n };\r\n return VisualMapModel;\r\n }(ComponentModel));\n\n var DEFAULT_BAR_BOUND = [20, 140];\r\n var ContinuousModel = (function (_super) {\r\n __extends(ContinuousModel, _super);\r\n function ContinuousModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = ContinuousModel.type;\r\n return _this;\r\n }\r\n ContinuousModel.prototype.optionUpdated = function (newOption, isInit) {\r\n _super.prototype.optionUpdated.apply(this, arguments);\r\n this.resetExtent();\r\n this.resetVisual(function (mappingOption) {\r\n mappingOption.mappingMethod = 'linear';\r\n mappingOption.dataExtent = this.getExtent();\r\n });\r\n this._resetRange();\r\n };\r\n ContinuousModel.prototype.resetItemSize = function () {\r\n _super.prototype.resetItemSize.apply(this, arguments);\r\n var itemSize = this.itemSize;\r\n (itemSize[0] == null || isNaN(itemSize[0])) && (itemSize[0] = DEFAULT_BAR_BOUND[0]);\r\n (itemSize[1] == null || isNaN(itemSize[1])) && (itemSize[1] = DEFAULT_BAR_BOUND[1]);\r\n };\r\n ContinuousModel.prototype._resetRange = function () {\r\n var dataExtent = this.getExtent();\r\n var range = this.option.range;\r\n if (!range || range.auto) {\r\n dataExtent.auto = 1;\r\n this.option.range = dataExtent;\r\n }\r\n else if (isArray(range)) {\r\n if (range[0] > range[1]) {\r\n range.reverse();\r\n }\r\n range[0] = Math.max(range[0], dataExtent[0]);\r\n range[1] = Math.min(range[1], dataExtent[1]);\r\n }\r\n };\r\n ContinuousModel.prototype.completeVisualOption = function () {\r\n _super.prototype.completeVisualOption.apply(this, arguments);\r\n each(this.stateList, function (state) {\r\n var symbolSize = this.option.controller[state].symbolSize;\r\n if (symbolSize && symbolSize[0] !== symbolSize[1]) {\r\n symbolSize[0] = symbolSize[1] / 3;\r\n }\r\n }, this);\r\n };\r\n ContinuousModel.prototype.setSelected = function (selected) {\r\n this.option.range = selected.slice();\r\n this._resetRange();\r\n };\r\n ContinuousModel.prototype.getSelected = function () {\r\n var dataExtent = this.getExtent();\r\n var dataInterval = asc((this.get('range') || []).slice());\r\n dataInterval[0] > dataExtent[1] && (dataInterval[0] = dataExtent[1]);\r\n dataInterval[1] > dataExtent[1] && (dataInterval[1] = dataExtent[1]);\r\n dataInterval[0] < dataExtent[0] && (dataInterval[0] = dataExtent[0]);\r\n dataInterval[1] < dataExtent[0] && (dataInterval[1] = dataExtent[0]);\r\n return dataInterval;\r\n };\r\n ContinuousModel.prototype.getValueState = function (value) {\r\n var range = this.option.range;\r\n var dataExtent = this.getExtent();\r\n return ((range[0] <= dataExtent[0] || range[0] <= value)\r\n && (range[1] >= dataExtent[1] || value <= range[1])) ? 'inRange' : 'outOfRange';\r\n };\r\n ContinuousModel.prototype.findTargetDataIndices = function (range) {\r\n var result = [];\r\n this.eachTargetSeries(function (seriesModel) {\r\n var dataIndices = [];\r\n var data = seriesModel.getData();\r\n data.each(this.getDataDimension(data), function (value, dataIndex) {\r\n range[0] <= value && value <= range[1] && dataIndices.push(dataIndex);\r\n }, this);\r\n result.push({\r\n seriesId: seriesModel.id,\r\n dataIndex: dataIndices\r\n });\r\n }, this);\r\n return result;\r\n };\r\n ContinuousModel.prototype.getVisualMeta = function (getColorVisual) {\r\n var oVals = getColorStopValues(this, 'outOfRange', this.getExtent());\r\n var iVals = getColorStopValues(this, 'inRange', this.option.range.slice());\r\n var stops = [];\r\n function setStop(value, valueState) {\r\n stops.push({\r\n value: value,\r\n color: getColorVisual(value, valueState)\r\n });\r\n }\r\n var iIdx = 0;\r\n var oIdx = 0;\r\n var iLen = iVals.length;\r\n var oLen = oVals.length;\r\n for (; oIdx < oLen && (!iVals.length || oVals[oIdx] <= iVals[0]); oIdx++) {\r\n if (oVals[oIdx] < iVals[iIdx]) {\r\n setStop(oVals[oIdx], 'outOfRange');\r\n }\r\n }\r\n for (var first = 1; iIdx < iLen; iIdx++, first = 0) {\r\n first && stops.length && setStop(iVals[iIdx], 'outOfRange');\r\n setStop(iVals[iIdx], 'inRange');\r\n }\r\n for (var first = 1; oIdx < oLen; oIdx++) {\r\n if (!iVals.length || iVals[iVals.length - 1] < oVals[oIdx]) {\r\n if (first) {\r\n stops.length && setStop(stops[stops.length - 1].value, 'outOfRange');\r\n first = 0;\r\n }\r\n setStop(oVals[oIdx], 'outOfRange');\r\n }\r\n }\r\n var stopsLen = stops.length;\r\n return {\r\n stops: stops,\r\n outerColors: [\r\n stopsLen ? stops[0].color : 'transparent',\r\n stopsLen ? stops[stopsLen - 1].color : 'transparent'\r\n ]\r\n };\r\n };\r\n ContinuousModel.type = 'visualMap.continuous';\r\n ContinuousModel.defaultOption = inheritDefaultOption(VisualMapModel.defaultOption, {\r\n align: 'auto',\r\n calculable: false,\r\n hoverLink: true,\r\n realtime: true,\r\n handleIcon: 'path://M-11.39,9.77h0a3.5,3.5,0,0,1-3.5,3.5h-22a3.5,3.5,0,0,1-3.5-3.5h0a3.5,3.5,0,0,1,3.5-3.5h22A3.5,3.5,0,0,1-11.39,9.77Z',\r\n handleSize: '120%',\r\n handleStyle: {\r\n borderColor: '#fff',\r\n borderWidth: 1\r\n },\r\n indicatorIcon: 'circle',\r\n indicatorSize: '50%',\r\n indicatorStyle: {\r\n borderColor: '#fff',\r\n borderWidth: 2,\r\n shadowBlur: 2,\r\n shadowOffsetX: 1,\r\n shadowOffsetY: 1,\r\n shadowColor: 'rgba(0,0,0,0.2)'\r\n }\r\n });\r\n return ContinuousModel;\r\n }(VisualMapModel));\r\n function getColorStopValues(visualMapModel, valueState, dataExtent) {\r\n if (dataExtent[0] === dataExtent[1]) {\r\n return dataExtent.slice();\r\n }\r\n var count = 200;\r\n var step = (dataExtent[1] - dataExtent[0]) / count;\r\n var value = dataExtent[0];\r\n var stopValues = [];\r\n for (var i = 0; i <= count && value < dataExtent[1]; i++) {\r\n stopValues.push(value);\r\n value += step;\r\n }\r\n stopValues.push(dataExtent[1]);\r\n return stopValues;\r\n }\r\n ComponentModel.registerClass(ContinuousModel);\n\n var VisualMapView = (function (_super) {\r\n __extends(VisualMapView, _super);\r\n function VisualMapView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = VisualMapView.type;\r\n _this.autoPositionValues = { left: 1, right: 1, top: 1, bottom: 1 };\r\n return _this;\r\n }\r\n VisualMapView.prototype.init = function (ecModel, api) {\r\n this.ecModel = ecModel;\r\n this.api = api;\r\n };\r\n VisualMapView.prototype.render = function (visualMapModel, ecModel, api, payload) {\r\n this.visualMapModel = visualMapModel;\r\n if (visualMapModel.get('show') === false) {\r\n this.group.removeAll();\r\n return;\r\n }\r\n this.doRender(visualMapModel, ecModel, api, payload);\r\n };\r\n VisualMapView.prototype.renderBackground = function (group) {\r\n var visualMapModel = this.visualMapModel;\r\n var padding = normalizeCssArray$1(visualMapModel.get('padding') || 0);\r\n var rect = group.getBoundingRect();\r\n group.add(new Rect({\r\n z2: -1,\r\n silent: true,\r\n shape: {\r\n x: rect.x - padding[3],\r\n y: rect.y - padding[0],\r\n width: rect.width + padding[3] + padding[1],\r\n height: rect.height + padding[0] + padding[2]\r\n },\r\n style: {\r\n fill: visualMapModel.get('backgroundColor'),\r\n stroke: visualMapModel.get('borderColor'),\r\n lineWidth: visualMapModel.get('borderWidth')\r\n }\r\n }));\r\n };\r\n VisualMapView.prototype.getControllerVisual = function (targetValue, visualCluster, opts) {\r\n opts = opts || {};\r\n var forceState = opts.forceState;\r\n var visualMapModel = this.visualMapModel;\r\n var visualObj = {};\r\n if (visualCluster === 'symbol') {\r\n visualObj.symbol = visualMapModel.get('itemSymbol');\r\n }\r\n if (visualCluster === 'color') {\r\n var defaultColor = visualMapModel.get('contentColor');\r\n visualObj.color = defaultColor;\r\n }\r\n function getter(key) {\r\n return visualObj[key];\r\n }\r\n function setter(key, value) {\r\n visualObj[key] = value;\r\n }\r\n var mappings = visualMapModel.controllerVisuals[forceState || visualMapModel.getValueState(targetValue)];\r\n var visualTypes = VisualMapping.prepareVisualTypes(mappings);\r\n each(visualTypes, function (type) {\r\n var visualMapping = mappings[type];\r\n if (opts.convertOpacityToAlpha && type === 'opacity') {\r\n type = 'colorAlpha';\r\n visualMapping = mappings.__alphaForOpacity;\r\n }\r\n if (VisualMapping.dependsOn(type, visualCluster)) {\r\n visualMapping && visualMapping.applyVisual(targetValue, getter, setter);\r\n }\r\n });\r\n return visualObj[visualCluster];\r\n };\r\n VisualMapView.prototype.positionGroup = function (group) {\r\n var model = this.visualMapModel;\r\n var api = this.api;\r\n positionElement(group, model.getBoxLayoutParams(), { width: api.getWidth(), height: api.getHeight() });\r\n };\r\n VisualMapView.prototype.doRender = function (visualMapModel, ecModel, api, payload) { };\r\n VisualMapView.type = 'visualMap';\r\n return VisualMapView;\r\n }(ComponentView));\r\n ComponentView.registerClass(VisualMapView);\n\n var paramsSet = [\r\n ['left', 'right', 'width'],\r\n ['top', 'bottom', 'height']\r\n ];\r\n function getItemAlign(visualMapModel, api, itemSize) {\r\n var modelOption = visualMapModel.option;\r\n var itemAlign = modelOption.align;\r\n if (itemAlign != null && itemAlign !== 'auto') {\r\n return itemAlign;\r\n }\r\n var ecSize = { width: api.getWidth(), height: api.getHeight() };\r\n var realIndex = modelOption.orient === 'horizontal' ? 1 : 0;\r\n var reals = paramsSet[realIndex];\r\n var fakeValue = [0, null, 10];\r\n var layoutInput = {};\r\n for (var i = 0; i < 3; i++) {\r\n layoutInput[paramsSet[1 - realIndex][i]] = fakeValue[i];\r\n layoutInput[reals[i]] = i === 2 ? itemSize[0] : modelOption[reals[i]];\r\n }\r\n var rParam = [['x', 'width', 3], ['y', 'height', 0]][realIndex];\r\n var rect = getLayoutRect(layoutInput, ecSize, modelOption.padding);\r\n return reals[(rect.margin[rParam[2]] || 0) + rect[rParam[0]] + rect[rParam[1]] * 0.5\r\n < ecSize[rParam[1]] * 0.5 ? 0 : 1];\r\n }\r\n function makeHighDownBatch(batch, visualMapModel) {\r\n each(batch || [], function (batchItem) {\r\n if (batchItem.dataIndex != null) {\r\n batchItem.dataIndexInside = batchItem.dataIndex;\r\n batchItem.dataIndex = null;\r\n }\r\n batchItem.highlightKey = 'visualMap' + (visualMapModel ? visualMapModel.componentIndex : '');\r\n });\r\n return batch;\r\n }\n\n var linearMap$2 = linearMap;\r\n var each$h = each;\r\n var mathMin$a = Math.min;\r\n var mathMax$a = Math.max;\r\n var HOVER_LINK_SIZE = 12;\r\n var HOVER_LINK_OUT = 6;\r\n var ContinuousView = (function (_super) {\r\n __extends(ContinuousView, _super);\r\n function ContinuousView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = ContinuousView.type;\r\n _this._shapes = {};\r\n _this._dataInterval = [];\r\n _this._handleEnds = [];\r\n _this._hoverLinkDataIndices = [];\r\n return _this;\r\n }\r\n ContinuousView.prototype.doRender = function (visualMapModel, ecModel, api, payload) {\r\n this._api = api;\r\n if (!payload || payload.type !== 'selectDataRange' || payload.from !== this.uid) {\r\n this._buildView();\r\n }\r\n };\r\n ContinuousView.prototype._buildView = function () {\r\n this.group.removeAll();\r\n var visualMapModel = this.visualMapModel;\r\n var thisGroup = this.group;\r\n this._orient = visualMapModel.get('orient');\r\n this._useHandle = visualMapModel.get('calculable');\r\n this._resetInterval();\r\n this._renderBar(thisGroup);\r\n var dataRangeText = visualMapModel.get('text');\r\n this._renderEndsText(thisGroup, dataRangeText, 0);\r\n this._renderEndsText(thisGroup, dataRangeText, 1);\r\n this._updateView(true);\r\n this.renderBackground(thisGroup);\r\n this._updateView();\r\n this._enableHoverLinkToSeries();\r\n this._enableHoverLinkFromSeries();\r\n this.positionGroup(thisGroup);\r\n };\r\n ContinuousView.prototype._renderEndsText = function (group, dataRangeText, endsIndex) {\r\n if (!dataRangeText) {\r\n return;\r\n }\r\n var text = dataRangeText[1 - endsIndex];\r\n text = text != null ? text + '' : '';\r\n var visualMapModel = this.visualMapModel;\r\n var textGap = visualMapModel.get('textGap');\r\n var itemSize = visualMapModel.itemSize;\r\n var barGroup = this._shapes.mainGroup;\r\n var position = this._applyTransform([\r\n itemSize[0] / 2,\r\n endsIndex === 0 ? -textGap : itemSize[1] + textGap\r\n ], barGroup);\r\n var align = this._applyTransform(endsIndex === 0 ? 'bottom' : 'top', barGroup);\r\n var orient = this._orient;\r\n var textStyleModel = this.visualMapModel.textStyleModel;\r\n this.group.add(new ZRText({\r\n style: {\r\n x: position[0],\r\n y: position[1],\r\n verticalAlign: orient === 'horizontal' ? 'middle' : align,\r\n align: orient === 'horizontal' ? align : 'center',\r\n text: text,\r\n font: textStyleModel.getFont(),\r\n fill: textStyleModel.getTextColor()\r\n }\r\n }));\r\n };\r\n ContinuousView.prototype._renderBar = function (targetGroup) {\r\n var visualMapModel = this.visualMapModel;\r\n var shapes = this._shapes;\r\n var itemSize = visualMapModel.itemSize;\r\n var orient = this._orient;\r\n var useHandle = this._useHandle;\r\n var itemAlign = getItemAlign(visualMapModel, this.api, itemSize);\r\n var mainGroup = shapes.mainGroup = this._createBarGroup(itemAlign);\r\n var gradientBarGroup = new Group();\r\n mainGroup.add(gradientBarGroup);\r\n gradientBarGroup.add(shapes.outOfRange = createPolygon());\r\n gradientBarGroup.add(shapes.inRange = createPolygon(null, useHandle ? getCursor$1(this._orient) : null, bind(this._dragHandle, this, 'all', false), bind(this._dragHandle, this, 'all', true)));\r\n gradientBarGroup.setClipPath(new Rect({\r\n shape: {\r\n x: 0,\r\n y: 0,\r\n width: itemSize[0],\r\n height: itemSize[1],\r\n r: 3\r\n }\r\n }));\r\n var textRect = visualMapModel.textStyleModel.getTextRect('国');\r\n var textSize = mathMax$a(textRect.width, textRect.height);\r\n if (useHandle) {\r\n shapes.handleThumbs = [];\r\n shapes.handleLabels = [];\r\n shapes.handleLabelPoints = [];\r\n this._createHandle(visualMapModel, mainGroup, 0, itemSize, textSize, orient);\r\n this._createHandle(visualMapModel, mainGroup, 1, itemSize, textSize, orient);\r\n }\r\n this._createIndicator(visualMapModel, mainGroup, itemSize, textSize, orient);\r\n targetGroup.add(mainGroup);\r\n };\r\n ContinuousView.prototype._createHandle = function (visualMapModel, mainGroup, handleIndex, itemSize, textSize, orient) {\r\n var onDrift = bind(this._dragHandle, this, handleIndex, false);\r\n var onDragEnd = bind(this._dragHandle, this, handleIndex, true);\r\n var handleSize = parsePercent(visualMapModel.get('handleSize'), itemSize[0]);\r\n var handleThumb = createSymbol(visualMapModel.get('handleIcon'), -handleSize / 2, -handleSize / 2, handleSize, handleSize, null, true);\r\n var cursor = getCursor$1(this._orient);\r\n handleThumb.attr({\r\n cursor: cursor,\r\n draggable: true,\r\n drift: onDrift,\r\n ondragend: onDragEnd,\r\n onmousemove: function (e) {\r\n stop(e.event);\r\n }\r\n });\r\n handleThumb.x = itemSize[0] / 2;\r\n handleThumb.useStyle(visualMapModel.getModel('handleStyle').getItemStyle());\r\n handleThumb.setStyle({\r\n strokeNoScale: true,\r\n strokeFirst: true\r\n });\r\n handleThumb.style.lineWidth *= 2;\r\n handleThumb.ensureState('emphasis').style = visualMapModel.getModel(['emphasis', 'handleStyle']).getItemStyle();\r\n setAsHighDownDispatcher(handleThumb, true);\r\n mainGroup.add(handleThumb);\r\n var textStyleModel = this.visualMapModel.textStyleModel;\r\n var handleLabel = new ZRText({\r\n cursor: cursor,\r\n draggable: true,\r\n drift: onDrift,\r\n onmousemove: function (e) {\r\n stop(e.event);\r\n },\r\n ondragend: onDragEnd,\r\n style: {\r\n x: 0, y: 0, text: '',\r\n font: textStyleModel.getFont(),\r\n fill: textStyleModel.getTextColor()\r\n }\r\n });\r\n handleLabel.ensureState('blur').style = {\r\n opacity: 0.1\r\n };\r\n handleLabel.stateTransition = { duration: 200 };\r\n this.group.add(handleLabel);\r\n var handleLabelPoint = [handleSize, 0];\r\n var shapes = this._shapes;\r\n shapes.handleThumbs[handleIndex] = handleThumb;\r\n shapes.handleLabelPoints[handleIndex] = handleLabelPoint;\r\n shapes.handleLabels[handleIndex] = handleLabel;\r\n };\r\n ContinuousView.prototype._createIndicator = function (visualMapModel, mainGroup, itemSize, textSize, orient) {\r\n var scale = parsePercent(visualMapModel.get('indicatorSize'), itemSize[0]);\r\n var indicator = createSymbol(visualMapModel.get('indicatorIcon'), -scale / 2, -scale / 2, scale, scale, null, true);\r\n indicator.attr({\r\n cursor: 'move',\r\n invisible: true,\r\n silent: true,\r\n x: itemSize[0] / 2\r\n });\r\n var indicatorStyle = visualMapModel.getModel('indicatorStyle').getItemStyle();\r\n if (indicator instanceof ZRImage) {\r\n var pathStyle = indicator.style;\r\n indicator.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 }, indicatorStyle));\r\n }\r\n else {\r\n indicator.useStyle(indicatorStyle);\r\n }\r\n mainGroup.add(indicator);\r\n var textStyleModel = this.visualMapModel.textStyleModel;\r\n var indicatorLabel = new ZRText({\r\n silent: true,\r\n invisible: true,\r\n style: {\r\n x: 0, y: 0, text: '',\r\n font: textStyleModel.getFont(),\r\n fill: textStyleModel.getTextColor()\r\n }\r\n });\r\n this.group.add(indicatorLabel);\r\n var indicatorLabelPoint = [\r\n (orient === 'horizontal' ? textSize / 2 : HOVER_LINK_OUT) + itemSize[0] / 2,\r\n 0\r\n ];\r\n var shapes = this._shapes;\r\n shapes.indicator = indicator;\r\n shapes.indicatorLabel = indicatorLabel;\r\n shapes.indicatorLabelPoint = indicatorLabelPoint;\r\n this._firstShowIndicator = true;\r\n };\r\n ContinuousView.prototype._dragHandle = function (handleIndex, isEnd, dx, dy) {\r\n if (!this._useHandle) {\r\n return;\r\n }\r\n this._dragging = !isEnd;\r\n if (!isEnd) {\r\n var vertex = this._applyTransform([dx, dy], this._shapes.mainGroup, true);\r\n this._updateInterval(handleIndex, vertex[1]);\r\n this._hideIndicator();\r\n this._updateView();\r\n }\r\n if (isEnd === !this.visualMapModel.get('realtime')) {\r\n this.api.dispatchAction({\r\n type: 'selectDataRange',\r\n from: this.uid,\r\n visualMapId: this.visualMapModel.id,\r\n selected: this._dataInterval.slice()\r\n });\r\n }\r\n if (isEnd) {\r\n !this._hovering && this._clearHoverLinkToSeries();\r\n }\r\n else if (useHoverLinkOnHandle(this.visualMapModel)) {\r\n this._doHoverLinkToSeries(this._handleEnds[handleIndex], false);\r\n }\r\n };\r\n ContinuousView.prototype._resetInterval = function () {\r\n var visualMapModel = this.visualMapModel;\r\n var dataInterval = this._dataInterval = visualMapModel.getSelected();\r\n var dataExtent = visualMapModel.getExtent();\r\n var sizeExtent = [0, visualMapModel.itemSize[1]];\r\n this._handleEnds = [\r\n linearMap$2(dataInterval[0], dataExtent, sizeExtent, true),\r\n linearMap$2(dataInterval[1], dataExtent, sizeExtent, true)\r\n ];\r\n };\r\n ContinuousView.prototype._updateInterval = function (handleIndex, delta) {\r\n delta = delta || 0;\r\n var visualMapModel = this.visualMapModel;\r\n var handleEnds = this._handleEnds;\r\n var sizeExtent = [0, visualMapModel.itemSize[1]];\r\n sliderMove(delta, handleEnds, sizeExtent, handleIndex, 0);\r\n var dataExtent = visualMapModel.getExtent();\r\n this._dataInterval = [\r\n linearMap$2(handleEnds[0], sizeExtent, dataExtent, true),\r\n linearMap$2(handleEnds[1], sizeExtent, dataExtent, true)\r\n ];\r\n };\r\n ContinuousView.prototype._updateView = function (forSketch) {\r\n var visualMapModel = this.visualMapModel;\r\n var dataExtent = visualMapModel.getExtent();\r\n var shapes = this._shapes;\r\n var outOfRangeHandleEnds = [0, visualMapModel.itemSize[1]];\r\n var inRangeHandleEnds = forSketch ? outOfRangeHandleEnds : this._handleEnds;\r\n var visualInRange = this._createBarVisual(this._dataInterval, dataExtent, inRangeHandleEnds, 'inRange');\r\n var visualOutOfRange = this._createBarVisual(dataExtent, dataExtent, outOfRangeHandleEnds, 'outOfRange');\r\n shapes.inRange\r\n .setStyle({\r\n fill: visualInRange.barColor\r\n })\r\n .setShape('points', visualInRange.barPoints);\r\n shapes.outOfRange\r\n .setStyle({\r\n fill: visualOutOfRange.barColor\r\n })\r\n .setShape('points', visualOutOfRange.barPoints);\r\n this._updateHandle(inRangeHandleEnds, visualInRange);\r\n };\r\n ContinuousView.prototype._createBarVisual = function (dataInterval, dataExtent, handleEnds, forceState) {\r\n var opts = {\r\n forceState: forceState,\r\n convertOpacityToAlpha: true\r\n };\r\n var colorStops = this._makeColorGradient(dataInterval, opts);\r\n var symbolSizes = [\r\n this.getControllerVisual(dataInterval[0], 'symbolSize', opts),\r\n this.getControllerVisual(dataInterval[1], 'symbolSize', opts)\r\n ];\r\n var barPoints = this._createBarPoints(handleEnds, symbolSizes);\r\n return {\r\n barColor: new LinearGradient(0, 0, 0, 1, colorStops),\r\n barPoints: barPoints,\r\n handlesColor: [\r\n colorStops[0].color,\r\n colorStops[colorStops.length - 1].color\r\n ]\r\n };\r\n };\r\n ContinuousView.prototype._makeColorGradient = function (dataInterval, opts) {\r\n var sampleNumber = 100;\r\n var colorStops = [];\r\n var step = (dataInterval[1] - dataInterval[0]) / sampleNumber;\r\n colorStops.push({\r\n color: this.getControllerVisual(dataInterval[0], 'color', opts),\r\n offset: 0\r\n });\r\n for (var i = 1; i < sampleNumber; i++) {\r\n var currValue = dataInterval[0] + step * i;\r\n if (currValue > dataInterval[1]) {\r\n break;\r\n }\r\n colorStops.push({\r\n color: this.getControllerVisual(currValue, 'color', opts),\r\n offset: i / sampleNumber\r\n });\r\n }\r\n colorStops.push({\r\n color: this.getControllerVisual(dataInterval[1], 'color', opts),\r\n offset: 1\r\n });\r\n return colorStops;\r\n };\r\n ContinuousView.prototype._createBarPoints = function (handleEnds, symbolSizes) {\r\n var itemSize = this.visualMapModel.itemSize;\r\n return [\r\n [itemSize[0] - symbolSizes[0], handleEnds[0]],\r\n [itemSize[0], handleEnds[0]],\r\n [itemSize[0], handleEnds[1]],\r\n [itemSize[0] - symbolSizes[1], handleEnds[1]]\r\n ];\r\n };\r\n ContinuousView.prototype._createBarGroup = function (itemAlign) {\r\n var orient = this._orient;\r\n var inverse = this.visualMapModel.get('inverse');\r\n return new Group((orient === 'horizontal' && !inverse)\r\n ? { scaleX: itemAlign === 'bottom' ? 1 : -1, rotation: Math.PI / 2 }\r\n : (orient === 'horizontal' && inverse)\r\n ? { scaleX: itemAlign === 'bottom' ? -1 : 1, rotation: -Math.PI / 2 }\r\n : (orient === 'vertical' && !inverse)\r\n ? { scaleX: itemAlign === 'left' ? 1 : -1, scaleY: -1 }\r\n : { scaleX: itemAlign === 'left' ? 1 : -1 });\r\n };\r\n ContinuousView.prototype._updateHandle = function (handleEnds, visualInRange) {\r\n if (!this._useHandle) {\r\n return;\r\n }\r\n var shapes = this._shapes;\r\n var visualMapModel = this.visualMapModel;\r\n var handleThumbs = shapes.handleThumbs;\r\n var handleLabels = shapes.handleLabels;\r\n var itemSize = visualMapModel.itemSize;\r\n var dataExtent = visualMapModel.getExtent();\r\n each$h([0, 1], function (handleIndex) {\r\n var handleThumb = handleThumbs[handleIndex];\r\n handleThumb.setStyle('fill', visualInRange.handlesColor[handleIndex]);\r\n handleThumb.y = handleEnds[handleIndex];\r\n var val = linearMap$2(handleEnds[handleIndex], [0, itemSize[1]], dataExtent, true);\r\n var symbolSize = this.getControllerVisual(val, 'symbolSize');\r\n handleThumb.scaleX = handleThumb.scaleY = symbolSize / itemSize[0];\r\n handleThumb.x = itemSize[0] - symbolSize / 2;\r\n var textPoint = applyTransform$1(shapes.handleLabelPoints[handleIndex], getTransform(handleThumb, this.group));\r\n handleLabels[handleIndex].setStyle({\r\n x: textPoint[0],\r\n y: textPoint[1],\r\n text: visualMapModel.formatValueText(this._dataInterval[handleIndex]),\r\n verticalAlign: 'middle',\r\n align: this._orient === 'vertical' ? this._applyTransform('left', shapes.mainGroup) : 'center'\r\n });\r\n }, this);\r\n };\r\n ContinuousView.prototype._showIndicator = function (cursorValue, textValue, rangeSymbol, halfHoverLinkSize) {\r\n var visualMapModel = this.visualMapModel;\r\n var dataExtent = visualMapModel.getExtent();\r\n var itemSize = visualMapModel.itemSize;\r\n var sizeExtent = [0, itemSize[1]];\r\n var shapes = this._shapes;\r\n var indicator = shapes.indicator;\r\n if (!indicator) {\r\n return;\r\n }\r\n indicator.attr('invisible', false);\r\n var opts = { convertOpacityToAlpha: true };\r\n var color = this.getControllerVisual(cursorValue, 'color', opts);\r\n var symbolSize = this.getControllerVisual(cursorValue, 'symbolSize');\r\n var y = linearMap$2(cursorValue, dataExtent, sizeExtent, true);\r\n var x = itemSize[0] - symbolSize / 2;\r\n var oldIndicatorPos = { x: indicator.x, y: indicator.y };\r\n indicator.y = y;\r\n indicator.x = x;\r\n var textPoint = applyTransform$1(shapes.indicatorLabelPoint, getTransform(indicator, this.group));\r\n var indicatorLabel = shapes.indicatorLabel;\r\n indicatorLabel.attr('invisible', false);\r\n var align = this._applyTransform('left', shapes.mainGroup);\r\n var orient = this._orient;\r\n var isHorizontal = orient === 'horizontal';\r\n indicatorLabel.setStyle({\r\n text: (rangeSymbol ? rangeSymbol : '') + visualMapModel.formatValueText(textValue),\r\n verticalAlign: isHorizontal ? align : 'middle',\r\n align: isHorizontal ? 'center' : align\r\n });\r\n var indicatorNewProps = {\r\n x: x,\r\n y: y,\r\n style: {\r\n fill: color\r\n }\r\n };\r\n var labelNewProps = {\r\n style: {\r\n x: textPoint[0],\r\n y: textPoint[1]\r\n }\r\n };\r\n if (visualMapModel.ecModel.isAnimationEnabled() && !this._firstShowIndicator) {\r\n var animationCfg = {\r\n duration: 100,\r\n easing: 'cubicInOut',\r\n additive: true\r\n };\r\n indicator.x = oldIndicatorPos.x;\r\n indicator.y = oldIndicatorPos.y;\r\n indicator.animateTo(indicatorNewProps, animationCfg);\r\n indicatorLabel.animateTo(labelNewProps, animationCfg);\r\n }\r\n else {\r\n indicator.attr(indicatorNewProps);\r\n indicatorLabel.attr(labelNewProps);\r\n }\r\n this._firstShowIndicator = false;\r\n var handleLabels = this._shapes.handleLabels;\r\n if (handleLabels) {\r\n for (var i = 0; i < handleLabels.length; i++) {\r\n this._api.enterBlur(handleLabels[i]);\r\n }\r\n }\r\n };\r\n ContinuousView.prototype._enableHoverLinkToSeries = function () {\r\n var self = this;\r\n this._shapes.mainGroup\r\n .on('mousemove', function (e) {\r\n self._hovering = true;\r\n if (!self._dragging) {\r\n var itemSize = self.visualMapModel.itemSize;\r\n var pos = self._applyTransform([e.offsetX, e.offsetY], self._shapes.mainGroup, true, true);\r\n pos[1] = mathMin$a(mathMax$a(0, pos[1]), itemSize[1]);\r\n self._doHoverLinkToSeries(pos[1], 0 <= pos[0] && pos[0] <= itemSize[0]);\r\n }\r\n })\r\n .on('mouseout', function () {\r\n self._hovering = false;\r\n !self._dragging && self._clearHoverLinkToSeries();\r\n });\r\n };\r\n ContinuousView.prototype._enableHoverLinkFromSeries = function () {\r\n var zr = this.api.getZr();\r\n if (this.visualMapModel.option.hoverLink) {\r\n zr.on('mouseover', this._hoverLinkFromSeriesMouseOver, this);\r\n zr.on('mouseout', this._hideIndicator, this);\r\n }\r\n else {\r\n this._clearHoverLinkFromSeries();\r\n }\r\n };\r\n ContinuousView.prototype._doHoverLinkToSeries = function (cursorPos, hoverOnBar) {\r\n var visualMapModel = this.visualMapModel;\r\n var itemSize = visualMapModel.itemSize;\r\n if (!visualMapModel.option.hoverLink) {\r\n return;\r\n }\r\n var sizeExtent = [0, itemSize[1]];\r\n var dataExtent = visualMapModel.getExtent();\r\n cursorPos = mathMin$a(mathMax$a(sizeExtent[0], cursorPos), sizeExtent[1]);\r\n var halfHoverLinkSize = getHalfHoverLinkSize(visualMapModel, dataExtent, sizeExtent);\r\n var hoverRange = [cursorPos - halfHoverLinkSize, cursorPos + halfHoverLinkSize];\r\n var cursorValue = linearMap$2(cursorPos, sizeExtent, dataExtent, true);\r\n var valueRange = [\r\n linearMap$2(hoverRange[0], sizeExtent, dataExtent, true),\r\n linearMap$2(hoverRange[1], sizeExtent, dataExtent, true)\r\n ];\r\n hoverRange[0] < sizeExtent[0] && (valueRange[0] = -Infinity);\r\n hoverRange[1] > sizeExtent[1] && (valueRange[1] = Infinity);\r\n if (hoverOnBar) {\r\n if (valueRange[0] === -Infinity) {\r\n this._showIndicator(cursorValue, valueRange[1], '< ', halfHoverLinkSize);\r\n }\r\n else if (valueRange[1] === Infinity) {\r\n this._showIndicator(cursorValue, valueRange[0], '> ', halfHoverLinkSize);\r\n }\r\n else {\r\n this._showIndicator(cursorValue, cursorValue, '≈ ', halfHoverLinkSize);\r\n }\r\n }\r\n var oldBatch = this._hoverLinkDataIndices;\r\n var newBatch = [];\r\n if (hoverOnBar || useHoverLinkOnHandle(visualMapModel)) {\r\n newBatch = this._hoverLinkDataIndices = visualMapModel.findTargetDataIndices(valueRange);\r\n }\r\n var resultBatches = compressBatches(oldBatch, newBatch);\r\n this._dispatchHighDown('downplay', makeHighDownBatch(resultBatches[0], visualMapModel));\r\n this._dispatchHighDown('highlight', makeHighDownBatch(resultBatches[1], visualMapModel));\r\n };\r\n ContinuousView.prototype._hoverLinkFromSeriesMouseOver = function (e) {\r\n var el = e.target;\r\n var visualMapModel = this.visualMapModel;\r\n if (!el || getECData(el).dataIndex == null) {\r\n return;\r\n }\r\n var ecData = getECData(el);\r\n var dataModel = this.ecModel.getSeriesByIndex(ecData.seriesIndex);\r\n if (!visualMapModel.isTargetSeries(dataModel)) {\r\n return;\r\n }\r\n var data = dataModel.getData(ecData.dataType);\r\n var value = data.get(visualMapModel.getDataDimension(data), ecData.dataIndex);\r\n if (!isNaN(value)) {\r\n this._showIndicator(value, value);\r\n }\r\n };\r\n ContinuousView.prototype._hideIndicator = function () {\r\n var shapes = this._shapes;\r\n shapes.indicator && shapes.indicator.attr('invisible', true);\r\n shapes.indicatorLabel && shapes.indicatorLabel.attr('invisible', true);\r\n var handleLabels = this._shapes.handleLabels;\r\n if (handleLabels) {\r\n for (var i = 0; i < handleLabels.length; i++) {\r\n this._api.leaveBlur(handleLabels[i]);\r\n }\r\n }\r\n };\r\n ContinuousView.prototype._clearHoverLinkToSeries = function () {\r\n this._hideIndicator();\r\n var indices = this._hoverLinkDataIndices;\r\n this._dispatchHighDown('downplay', makeHighDownBatch(indices, this.visualMapModel));\r\n indices.length = 0;\r\n };\r\n ContinuousView.prototype._clearHoverLinkFromSeries = function () {\r\n this._hideIndicator();\r\n var zr = this.api.getZr();\r\n zr.off('mouseover', this._hoverLinkFromSeriesMouseOver);\r\n zr.off('mouseout', this._hideIndicator);\r\n };\r\n ContinuousView.prototype._applyTransform = function (vertex, element, inverse, global) {\r\n var transform = getTransform(element, global ? null : this.group);\r\n return isArray(vertex)\r\n ? applyTransform$1(vertex, transform, inverse)\r\n : transformDirection(vertex, transform, inverse);\r\n };\r\n ContinuousView.prototype._dispatchHighDown = function (type, batch) {\r\n batch && batch.length && this.api.dispatchAction({\r\n type: type,\r\n batch: batch\r\n });\r\n };\r\n ContinuousView.prototype.dispose = function () {\r\n this._clearHoverLinkFromSeries();\r\n this._clearHoverLinkToSeries();\r\n };\r\n ContinuousView.prototype.remove = function () {\r\n this._clearHoverLinkFromSeries();\r\n this._clearHoverLinkToSeries();\r\n };\r\n ContinuousView.type = 'visualMap.continuous';\r\n return ContinuousView;\r\n }(VisualMapView));\r\n function createPolygon(points, cursor, onDrift, onDragEnd) {\r\n return new Polygon({\r\n shape: { points: points },\r\n draggable: !!onDrift,\r\n cursor: cursor,\r\n drift: onDrift,\r\n onmousemove: function (e) {\r\n stop(e.event);\r\n },\r\n ondragend: onDragEnd\r\n });\r\n }\r\n function getHalfHoverLinkSize(visualMapModel, dataExtent, sizeExtent) {\r\n var halfHoverLinkSize = HOVER_LINK_SIZE / 2;\r\n var hoverLinkDataSize = visualMapModel.get('hoverLinkDataSize');\r\n if (hoverLinkDataSize) {\r\n halfHoverLinkSize = linearMap$2(hoverLinkDataSize, dataExtent, sizeExtent, true) / 2;\r\n }\r\n return halfHoverLinkSize;\r\n }\r\n function useHoverLinkOnHandle(visualMapModel) {\r\n var hoverLinkOnHandle = visualMapModel.get('hoverLinkOnHandle');\r\n return !!(hoverLinkOnHandle == null ? visualMapModel.get('realtime') : hoverLinkOnHandle);\r\n }\r\n function getCursor$1(orient) {\r\n return orient === 'vertical' ? 'ns-resize' : 'ew-resize';\r\n }\r\n ComponentView.registerClass(ContinuousView);\n\n var actionInfo$2 = {\r\n type: 'selectDataRange',\r\n event: 'dataRangeSelected',\r\n update: 'update'\r\n };\r\n registerAction(actionInfo$2, function (payload, ecModel) {\r\n ecModel.eachComponent({ mainType: 'visualMap', query: payload }, function (model) {\r\n model.setSelected(payload.selected);\r\n });\r\n });\n\n registerPreprocessor(visualMapPreprocessor);\n\n var PiecewiseModel = (function (_super) {\r\n __extends(PiecewiseModel, _super);\r\n function PiecewiseModel() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = PiecewiseModel.type;\r\n _this._pieceList = [];\r\n return _this;\r\n }\r\n PiecewiseModel.prototype.optionUpdated = function (newOption, isInit) {\r\n _super.prototype.optionUpdated.apply(this, arguments);\r\n this.resetExtent();\r\n var mode = this._mode = this._determineMode();\r\n this._pieceList = [];\r\n resetMethods[this._mode].call(this, this._pieceList);\r\n this._resetSelected(newOption, isInit);\r\n var categories = this.option.categories;\r\n this.resetVisual(function (mappingOption, state) {\r\n if (mode === 'categories') {\r\n mappingOption.mappingMethod = 'category';\r\n mappingOption.categories = clone(categories);\r\n }\r\n else {\r\n mappingOption.dataExtent = this.getExtent();\r\n mappingOption.mappingMethod = 'piecewise';\r\n mappingOption.pieceList = map(this._pieceList, function (piece) {\r\n piece = clone(piece);\r\n if (state !== 'inRange') {\r\n piece.visual = null;\r\n }\r\n return piece;\r\n });\r\n }\r\n });\r\n };\r\n PiecewiseModel.prototype.completeVisualOption = function () {\r\n var option = this.option;\r\n var visualTypesInPieces = {};\r\n var visualTypes = VisualMapping.listVisualTypes();\r\n var isCategory = this.isCategory();\r\n each(option.pieces, function (piece) {\r\n each(visualTypes, function (visualType) {\r\n if (piece.hasOwnProperty(visualType)) {\r\n visualTypesInPieces[visualType] = 1;\r\n }\r\n });\r\n });\r\n each(visualTypesInPieces, function (v, visualType) {\r\n var exists = false;\r\n each(this.stateList, function (state) {\r\n exists = exists || has(option, state, visualType)\r\n || has(option.target, state, visualType);\r\n }, this);\r\n !exists && each(this.stateList, function (state) {\r\n (option[state] || (option[state] = {}))[visualType] = visualDefault.get(visualType, state === 'inRange' ? 'active' : 'inactive', isCategory);\r\n });\r\n }, this);\r\n function has(obj, state, visualType) {\r\n return obj && obj[state] && obj[state].hasOwnProperty(visualType);\r\n }\r\n _super.prototype.completeVisualOption.apply(this, arguments);\r\n };\r\n PiecewiseModel.prototype._resetSelected = function (newOption, isInit) {\r\n var thisOption = this.option;\r\n var pieceList = this._pieceList;\r\n var selected = (isInit ? thisOption : newOption).selected || {};\r\n thisOption.selected = selected;\r\n each(pieceList, function (piece, index) {\r\n var key = this.getSelectedMapKey(piece);\r\n if (!selected.hasOwnProperty(key)) {\r\n selected[key] = true;\r\n }\r\n }, this);\r\n if (thisOption.selectedMode === 'single') {\r\n var hasSel_1 = false;\r\n each(pieceList, function (piece, index) {\r\n var key = this.getSelectedMapKey(piece);\r\n if (selected[key]) {\r\n hasSel_1\r\n ? (selected[key] = false)\r\n : (hasSel_1 = true);\r\n }\r\n }, this);\r\n }\r\n };\r\n PiecewiseModel.prototype.getSelectedMapKey = function (piece) {\r\n return this._mode === 'categories'\r\n ? piece.value + '' : piece.index + '';\r\n };\r\n PiecewiseModel.prototype.getPieceList = function () {\r\n return this._pieceList;\r\n };\r\n PiecewiseModel.prototype._determineMode = function () {\r\n var option = this.option;\r\n return option.pieces && option.pieces.length > 0\r\n ? 'pieces'\r\n : this.option.categories\r\n ? 'categories'\r\n : 'splitNumber';\r\n };\r\n PiecewiseModel.prototype.setSelected = function (selected) {\r\n this.option.selected = clone(selected);\r\n };\r\n PiecewiseModel.prototype.getValueState = function (value) {\r\n var index = VisualMapping.findPieceIndex(value, this._pieceList);\r\n return index != null\r\n ? (this.option.selected[this.getSelectedMapKey(this._pieceList[index])]\r\n ? 'inRange' : 'outOfRange')\r\n : 'outOfRange';\r\n };\r\n PiecewiseModel.prototype.findTargetDataIndices = function (pieceIndex) {\r\n var result = [];\r\n var pieceList = this._pieceList;\r\n this.eachTargetSeries(function (seriesModel) {\r\n var dataIndices = [];\r\n var data = seriesModel.getData();\r\n data.each(this.getDataDimension(data), function (value, dataIndex) {\r\n var pIdx = VisualMapping.findPieceIndex(value, pieceList);\r\n pIdx === pieceIndex && dataIndices.push(dataIndex);\r\n }, this);\r\n result.push({ seriesId: seriesModel.id, dataIndex: dataIndices });\r\n }, this);\r\n return result;\r\n };\r\n PiecewiseModel.prototype.getRepresentValue = function (piece) {\r\n var representValue;\r\n if (this.isCategory()) {\r\n representValue = piece.value;\r\n }\r\n else {\r\n if (piece.value != null) {\r\n representValue = piece.value;\r\n }\r\n else {\r\n var pieceInterval = piece.interval || [];\r\n representValue = (pieceInterval[0] === -Infinity && pieceInterval[1] === Infinity)\r\n ? 0\r\n : (pieceInterval[0] + pieceInterval[1]) / 2;\r\n }\r\n }\r\n return representValue;\r\n };\r\n PiecewiseModel.prototype.getVisualMeta = function (getColorVisual) {\r\n if (this.isCategory()) {\r\n return;\r\n }\r\n var stops = [];\r\n var outerColors = ['', ''];\r\n var visualMapModel = this;\r\n function setStop(interval, valueState) {\r\n var representValue = visualMapModel.getRepresentValue({\r\n interval: interval\r\n });\r\n if (!valueState) {\r\n valueState = visualMapModel.getValueState(representValue);\r\n }\r\n var color = getColorVisual(representValue, valueState);\r\n if (interval[0] === -Infinity) {\r\n outerColors[0] = color;\r\n }\r\n else if (interval[1] === Infinity) {\r\n outerColors[1] = color;\r\n }\r\n else {\r\n stops.push({ value: interval[0], color: color }, { value: interval[1], color: color });\r\n }\r\n }\r\n var pieceList = this._pieceList.slice();\r\n if (!pieceList.length) {\r\n pieceList.push({ interval: [-Infinity, Infinity] });\r\n }\r\n else {\r\n var edge = pieceList[0].interval[0];\r\n edge !== -Infinity && pieceList.unshift({ interval: [-Infinity, edge] });\r\n edge = pieceList[pieceList.length - 1].interval[1];\r\n edge !== Infinity && pieceList.push({ interval: [edge, Infinity] });\r\n }\r\n var curr = -Infinity;\r\n each(pieceList, function (piece) {\r\n var interval = piece.interval;\r\n if (interval) {\r\n interval[0] > curr && setStop([curr, interval[0]], 'outOfRange');\r\n setStop(interval.slice());\r\n curr = interval[1];\r\n }\r\n }, this);\r\n return { stops: stops, outerColors: outerColors };\r\n };\r\n PiecewiseModel.type = 'visualMap.piecewise';\r\n PiecewiseModel.defaultOption = inheritDefaultOption(VisualMapModel.defaultOption, {\r\n selected: null,\r\n minOpen: false,\r\n maxOpen: false,\r\n align: 'auto',\r\n itemWidth: 20,\r\n itemHeight: 14,\r\n itemSymbol: 'roundRect',\r\n pieces: null,\r\n categories: null,\r\n splitNumber: 5,\r\n selectedMode: 'multiple',\r\n itemGap: 10,\r\n hoverLink: true\r\n });\r\n return PiecewiseModel;\r\n }(VisualMapModel));\r\n var resetMethods = {\r\n splitNumber: function (outPieceList) {\r\n var thisOption = this.option;\r\n var precision = Math.min(thisOption.precision, 20);\r\n var dataExtent = this.getExtent();\r\n var splitNumber = thisOption.splitNumber;\r\n splitNumber = Math.max(parseInt(splitNumber, 10), 1);\r\n thisOption.splitNumber = splitNumber;\r\n var splitStep = (dataExtent[1] - dataExtent[0]) / splitNumber;\r\n while (+splitStep.toFixed(precision) !== splitStep && precision < 5) {\r\n precision++;\r\n }\r\n thisOption.precision = precision;\r\n splitStep = +splitStep.toFixed(precision);\r\n if (thisOption.minOpen) {\r\n outPieceList.push({\r\n interval: [-Infinity, dataExtent[0]],\r\n close: [0, 0]\r\n });\r\n }\r\n for (var index = 0, curr = dataExtent[0]; index < splitNumber; curr += splitStep, index++) {\r\n var max = index === splitNumber - 1 ? dataExtent[1] : (curr + splitStep);\r\n outPieceList.push({\r\n interval: [curr, max],\r\n close: [1, 1]\r\n });\r\n }\r\n if (thisOption.maxOpen) {\r\n outPieceList.push({\r\n interval: [dataExtent[1], Infinity],\r\n close: [0, 0]\r\n });\r\n }\r\n reformIntervals(outPieceList);\r\n each(outPieceList, function (piece, index) {\r\n piece.index = index;\r\n piece.text = this.formatValueText(piece.interval);\r\n }, this);\r\n },\r\n categories: function (outPieceList) {\r\n var thisOption = this.option;\r\n each(thisOption.categories, function (cate) {\r\n outPieceList.push({\r\n text: this.formatValueText(cate, true),\r\n value: cate\r\n });\r\n }, this);\r\n normalizeReverse(thisOption, outPieceList);\r\n },\r\n pieces: function (outPieceList) {\r\n var thisOption = this.option;\r\n each(thisOption.pieces, function (pieceListItem, index) {\r\n if (!isObject(pieceListItem)) {\r\n pieceListItem = { value: pieceListItem };\r\n }\r\n var item = { text: '', index: index };\r\n if (pieceListItem.label != null) {\r\n item.text = pieceListItem.label;\r\n }\r\n if (pieceListItem.hasOwnProperty('value')) {\r\n var value = item.value = pieceListItem.value;\r\n item.interval = [value, value];\r\n item.close = [1, 1];\r\n }\r\n else {\r\n var interval = item.interval = [];\r\n var close_1 = item.close = [0, 0];\r\n var closeList = [1, 0, 1];\r\n var infinityList = [-Infinity, Infinity];\r\n var useMinMax = [];\r\n for (var lg = 0; lg < 2; lg++) {\r\n var names = [['gte', 'gt', 'min'], ['lte', 'lt', 'max']][lg];\r\n for (var i = 0; i < 3 && interval[lg] == null; i++) {\r\n interval[lg] = pieceListItem[names[i]];\r\n close_1[lg] = closeList[i];\r\n useMinMax[lg] = i === 2;\r\n }\r\n interval[lg] == null && (interval[lg] = infinityList[lg]);\r\n }\r\n useMinMax[0] && interval[1] === Infinity && (close_1[0] = 0);\r\n useMinMax[1] && interval[0] === -Infinity && (close_1[1] = 0);\r\n if (__DEV__) {\r\n if (interval[0] > interval[1]) {\r\n console.warn('Piece ' + index + 'is illegal: ' + interval\r\n + ' lower bound should not greater then uppper bound.');\r\n }\r\n }\r\n if (interval[0] === interval[1] && close_1[0] && close_1[1]) {\r\n item.value = interval[0];\r\n }\r\n }\r\n item.visual = VisualMapping.retrieveVisuals(pieceListItem);\r\n outPieceList.push(item);\r\n }, this);\r\n normalizeReverse(thisOption, outPieceList);\r\n reformIntervals(outPieceList);\r\n each(outPieceList, function (piece) {\r\n var close = piece.close;\r\n var edgeSymbols = [['<', '≤'][close[1]], ['>', '≥'][close[0]]];\r\n piece.text = piece.text || this.formatValueText(piece.value != null ? piece.value : piece.interval, false, edgeSymbols);\r\n }, this);\r\n }\r\n };\r\n function normalizeReverse(thisOption, pieceList) {\r\n var inverse = thisOption.inverse;\r\n if (thisOption.orient === 'vertical' ? !inverse : inverse) {\r\n pieceList.reverse();\r\n }\r\n }\r\n ComponentModel.registerClass(PiecewiseModel);\n\n var PiecewiseVisualMapView = (function (_super) {\r\n __extends(PiecewiseVisualMapView, _super);\r\n function PiecewiseVisualMapView() {\r\n var _this = _super !== null && _super.apply(this, arguments) || this;\r\n _this.type = PiecewiseVisualMapView.type;\r\n return _this;\r\n }\r\n PiecewiseVisualMapView.prototype.doRender = function () {\r\n var thisGroup = this.group;\r\n thisGroup.removeAll();\r\n var visualMapModel = this.visualMapModel;\r\n var textGap = visualMapModel.get('textGap');\r\n var textStyleModel = visualMapModel.textStyleModel;\r\n var textFont = textStyleModel.getFont();\r\n var textFill = textStyleModel.getTextColor();\r\n var itemAlign = this._getItemAlign();\r\n var itemSize = visualMapModel.itemSize;\r\n var viewData = this._getViewData();\r\n var endsText = viewData.endsText;\r\n var showLabel = retrieve(visualMapModel.get('showLabel', true), !endsText);\r\n endsText && this._renderEndsText(thisGroup, endsText[0], itemSize, showLabel, itemAlign);\r\n each(viewData.viewPieceList, function (item) {\r\n var piece = item.piece;\r\n var itemGroup = new Group();\r\n itemGroup.onclick = bind(this._onItemClick, this, piece);\r\n this._enableHoverLink(itemGroup, item.indexInModelPieceList);\r\n var representValue = visualMapModel.getRepresentValue(piece);\r\n this._createItemSymbol(itemGroup, representValue, [0, 0, itemSize[0], itemSize[1]]);\r\n if (showLabel) {\r\n var visualState = this.visualMapModel.getValueState(representValue);\r\n itemGroup.add(new ZRText({\r\n style: {\r\n x: itemAlign === 'right' ? -textGap : itemSize[0] + textGap,\r\n y: itemSize[1] / 2,\r\n text: piece.text,\r\n verticalAlign: 'middle',\r\n align: itemAlign,\r\n font: textFont,\r\n fill: textFill,\r\n opacity: visualState === 'outOfRange' ? 0.5 : 1\r\n }\r\n }));\r\n }\r\n thisGroup.add(itemGroup);\r\n }, this);\r\n endsText && this._renderEndsText(thisGroup, endsText[1], itemSize, showLabel, itemAlign);\r\n box(visualMapModel.get('orient'), thisGroup, visualMapModel.get('itemGap'));\r\n this.renderBackground(thisGroup);\r\n this.positionGroup(thisGroup);\r\n };\r\n PiecewiseVisualMapView.prototype._enableHoverLink = function (itemGroup, pieceIndex) {\r\n var _this = this;\r\n itemGroup\r\n .on('mouseover', function () { return onHoverLink('highlight'); })\r\n .on('mouseout', function () { return onHoverLink('downplay'); });\r\n var onHoverLink = function (method) {\r\n var visualMapModel = _this.visualMapModel;\r\n visualMapModel.option.hoverLink && _this.api.dispatchAction({\r\n type: method,\r\n batch: makeHighDownBatch(visualMapModel.findTargetDataIndices(pieceIndex), visualMapModel)\r\n });\r\n };\r\n };\r\n PiecewiseVisualMapView.prototype._getItemAlign = function () {\r\n var visualMapModel = this.visualMapModel;\r\n var modelOption = visualMapModel.option;\r\n if (modelOption.orient === 'vertical') {\r\n return getItemAlign(visualMapModel, this.api, visualMapModel.itemSize);\r\n }\r\n else {\r\n var align = modelOption.align;\r\n if (!align || align === 'auto') {\r\n align = 'left';\r\n }\r\n return align;\r\n }\r\n };\r\n PiecewiseVisualMapView.prototype._renderEndsText = function (group, text, itemSize, showLabel, itemAlign) {\r\n if (!text) {\r\n return;\r\n }\r\n var itemGroup = new Group();\r\n var textStyleModel = this.visualMapModel.textStyleModel;\r\n itemGroup.add(new ZRText({\r\n style: {\r\n x: showLabel ? (itemAlign === 'right' ? itemSize[0] : 0) : itemSize[0] / 2,\r\n y: itemSize[1] / 2,\r\n verticalAlign: 'middle',\r\n align: showLabel ? itemAlign : 'center',\r\n text: text,\r\n font: textStyleModel.getFont(),\r\n fill: textStyleModel.getTextColor()\r\n }\r\n }));\r\n group.add(itemGroup);\r\n };\r\n PiecewiseVisualMapView.prototype._getViewData = function () {\r\n var visualMapModel = this.visualMapModel;\r\n var viewPieceList = map(visualMapModel.getPieceList(), function (piece, index) {\r\n return { piece: piece, indexInModelPieceList: index };\r\n });\r\n var endsText = visualMapModel.get('text');\r\n var orient = visualMapModel.get('orient');\r\n var inverse = visualMapModel.get('inverse');\r\n if (orient === 'horizontal' ? inverse : !inverse) {\r\n viewPieceList.reverse();\r\n }\r\n else if (endsText) {\r\n endsText = endsText.slice().reverse();\r\n }\r\n return { viewPieceList: viewPieceList, endsText: endsText };\r\n };\r\n PiecewiseVisualMapView.prototype._createItemSymbol = function (group, representValue, shapeParam) {\r\n group.add(createSymbol(this.getControllerVisual(representValue, 'symbol'), shapeParam[0], shapeParam[1], shapeParam[2], shapeParam[3], this.getControllerVisual(representValue, 'color')));\r\n };\r\n PiecewiseVisualMapView.prototype._onItemClick = function (piece) {\r\n var visualMapModel = this.visualMapModel;\r\n var option = visualMapModel.option;\r\n var selected = clone(option.selected);\r\n var newKey = visualMapModel.getSelectedMapKey(piece);\r\n if (option.selectedMode === 'single') {\r\n selected[newKey] = true;\r\n each(selected, function (o, key) {\r\n selected[key] = key === newKey;\r\n });\r\n }\r\n else {\r\n selected[newKey] = !selected[newKey];\r\n }\r\n this.api.dispatchAction({\r\n type: 'selectDataRange',\r\n from: this.uid,\r\n visualMapId: this.visualMapModel.id,\r\n selected: selected\r\n });\r\n };\r\n PiecewiseVisualMapView.type = 'visualMap.piecewise';\r\n return PiecewiseVisualMapView;\r\n }(VisualMapView));\r\n ComponentView.registerClass(PiecewiseVisualMapView);\n\n registerPreprocessor(visualMapPreprocessor);\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$n = 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$n(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$n(seriesModel).scope;\r\n data.each(function (idx) {\r\n var rawIdx = data.getRawIndex(idx);\r\n idxMap_1[rawIdx] = idx;\r\n });\r\n var dataCount_1 = dataAll_1.count();\r\n dataAll_1.each(function (rawIdx) {\r\n var idx = idxMap_1[rawIdx];\r\n var name = dataAll_1.getName(rawIdx) || (rawIdx + '');\r\n var paletteDecal = getDecalFromPalette(seriesModel.ecModel, name, decalScope_1, dataCount_1);\r\n var specifiedDecal = data.getItemVisual(idx, 'decal');\r\n data.setItemVisual(idx, 'decal', mergeDecal(specifiedDecal, paletteDecal));\r\n });\r\n }\r\n else {\r\n var paletteDecal = getDecalFromPalette(seriesModel.ecModel, seriesModel.name, decalPaletteScope, ecModel.getSeriesCount());\r\n var specifiedDecal = data.getVisual('decal');\r\n data.setVisual('decal', mergeDecal(specifiedDecal, paletteDecal));\r\n }\r\n function mergeDecal(specifiedDecal, paletteDecal) {\r\n var resultDecal = specifiedDecal\r\n ? extend(extend({}, paletteDecal), specifiedDecal)\r\n : paletteDecal;\r\n resultDecal.dirty = true;\r\n return resultDecal;\r\n }\r\n });\r\n }\r\n }\r\n function setLabel() {\r\n var labelLocale = ecModel.getLocaleModel().get('aria');\r\n var labelModel = ariaModel.getModel('label');\r\n labelModel.option = defaults(labelModel.option, labelLocale);\r\n if (!labelModel.get('enabled')) {\r\n return;\r\n }\r\n var dom = api.getZr().dom;\r\n if (labelModel.get('description')) {\r\n dom.setAttribute('aria-label', labelModel.get('description'));\r\n return;\r\n }\r\n var seriesCnt = ecModel.getSeriesCount();\r\n var maxDataCnt = labelModel.get(['data', 'maxCount']) || 10;\r\n var maxSeriesCnt = labelModel.get(['series', 'maxCount']) || 10;\r\n var displaySeriesCnt = Math.min(seriesCnt, maxSeriesCnt);\r\n var ariaLabel;\r\n if (seriesCnt < 1) {\r\n return;\r\n }\r\n else {\r\n var title = getTitle();\r\n if (title) {\r\n var withTitle = labelModel.get(['general', 'withTitle']);\r\n ariaLabel = replace(withTitle, {\r\n title: title\r\n });\r\n }\r\n else {\r\n ariaLabel = labelModel.get(['general', 'withoutTitle']);\r\n }\r\n var seriesLabels_1 = [];\r\n var prefix = seriesCnt > 1\r\n ? labelModel.get(['series', 'multiple', 'prefix'])\r\n : labelModel.get(['series', 'single', 'prefix']);\r\n ariaLabel += replace(prefix, { seriesCount: seriesCnt });\r\n ecModel.eachSeries(function (seriesModel, idx) {\r\n if (idx < displaySeriesCnt) {\r\n var seriesLabel = void 0;\r\n var seriesName = seriesModel.get('name');\r\n var withName = seriesName ? 'withName' : 'withoutName';\r\n seriesLabel = seriesCnt > 1\r\n ? labelModel.get(['series', 'multiple', withName])\r\n : labelModel.get(['series', 'single', withName]);\r\n seriesLabel = replace(seriesLabel, {\r\n seriesId: seriesModel.seriesIndex,\r\n seriesName: seriesModel.get('name'),\r\n seriesType: getSeriesTypeName(seriesModel.subType)\r\n });\r\n var data = seriesModel.getData();\r\n if (data.count() > maxDataCnt) {\r\n var partialLabel = labelModel.get(['data', 'partialData']);\r\n seriesLabel += replace(partialLabel, {\r\n displayCnt: maxDataCnt\r\n });\r\n }\r\n else {\r\n seriesLabel += labelModel.get(['data', 'allData']);\r\n }\r\n var dataLabels = [];\r\n for (var i = 0; i < data.count(); i++) {\r\n if (i < maxDataCnt) {\r\n var name_1 = data.getName(i);\r\n var value = retrieveRawValue(data, i);\r\n var dataLabel = labelModel.get(['data', name_1 ? 'withName' : 'withoutName']);\r\n dataLabels.push(replace(dataLabel, {\r\n name: name_1,\r\n value: value\r\n }));\r\n }\r\n }\r\n var middleSeparator_1 = labelModel.get(['data', 'separator', 'middle']);\r\n var endSeparator_1 = labelModel.get(['data', 'separator', 'end']);\r\n seriesLabel += dataLabels.join(middleSeparator_1) + endSeparator_1;\r\n seriesLabels_1.push(seriesLabel);\r\n }\r\n });\r\n var separatorModel = labelModel.getModel(['series', 'multiple', 'separator']);\r\n var middleSeparator = separatorModel.get('middle');\r\n var endSeparator = separatorModel.get('end');\r\n ariaLabel += seriesLabels_1.join(middleSeparator) + endSeparator;\r\n dom.setAttribute('aria-label', ariaLabel);\r\n }\r\n }\r\n function replace(str, keyValues) {\r\n if (typeof str !== 'string') {\r\n return str;\r\n }\r\n var result = str;\r\n each(keyValues, function (value, key) {\r\n result = result.replace(new RegExp('\\\\{\\\\s*' + key + '\\\\s*\\\\}', 'g'), value);\r\n });\r\n return result;\r\n }\r\n function getTitle() {\r\n var title = ecModel.get('title');\r\n if (title && title.length) {\r\n title = title[0];\r\n }\r\n return title && title.text;\r\n }\r\n function getSeriesTypeName(type) {\r\n return ecModel.getLocaleModel().get(['series', 'typeNames'])[type] || '自定义图';\r\n }\r\n }\n\n function ariaPreprocessor(option) {\r\n if (!option || !option.aria) {\r\n return;\r\n }\r\n var aria = option.aria;\r\n if (aria.show != null) {\r\n aria.enabled = aria.show;\r\n }\r\n aria.label = aria.label || {};\r\n each(['description', 'general', 'series', 'data'], function (name) {\r\n if (aria[name] != null) {\r\n aria.label[name] = aria[name];\r\n }\r\n });\r\n }\n\n var PRIORITY_VISUAL_ARIA$1 = PRIORITY.VISUAL.ARIA;\r\n registerPreprocessor(ariaPreprocessor);\r\n registerVisual(PRIORITY_VISUAL_ARIA$1, ariaVisual);\n\n function createElement(name) {\r\n return document.createElementNS('http://www.w3.org/2000/svg', name);\r\n }\n\n var NONE = 'none';\r\n var mathRound = Math.round;\r\n var mathSin$4 = Math.sin;\r\n var mathCos$4 = Math.cos;\r\n var PI$a = Math.PI;\r\n var PI2$a = Math.PI * 2;\r\n var degree = 180 / PI$a;\r\n var EPSILON$4 = 1e-4;\r\n function round3(val) {\r\n return mathRound(val * 1e3) / 1e3;\r\n }\r\n function round4(val) {\r\n return mathRound(val * 1e4) / 1e4;\r\n }\r\n function isAroundZero$1(val) {\r\n return val < EPSILON$4 && val > -EPSILON$4;\r\n }\r\n function pathHasFill(style) {\r\n var fill = style.fill;\r\n return fill != null && fill !== NONE;\r\n }\r\n function pathHasStroke(style) {\r\n var stroke = style.stroke;\r\n return stroke != null && stroke !== NONE;\r\n }\r\n function setTransform(svgEl, m) {\r\n if (m) {\r\n attr(svgEl, 'transform', 'matrix('\r\n + round3(m[0]) + ','\r\n + round3(m[1]) + ','\r\n + round3(m[2]) + ','\r\n + round3(m[3]) + ','\r\n + round4(m[4]) + ','\r\n + round4(m[5])\r\n + ')');\r\n }\r\n }\r\n function attr(el, key, val) {\r\n if (!val || val.type !== 'linear' && val.type !== 'radial') {\r\n el.setAttribute(key, val);\r\n }\r\n }\r\n function attrXLink(el, key, val) {\r\n el.setAttributeNS('http://www.w3.org/1999/xlink', key, val);\r\n }\r\n function attrXML(el, key, val) {\r\n el.setAttributeNS('http://www.w3.org/XML/1998/namespace', key, val);\r\n }\r\n function bindStyle(svgEl, style, el) {\r\n var opacity = style.opacity == null ? 1 : style.opacity;\r\n if (pathHasFill(style)) {\r\n var fill = style.fill;\r\n fill = fill === 'transparent' ? NONE : fill;\r\n attr(svgEl, 'fill', fill);\r\n attr(svgEl, 'fill-opacity', (style.fillOpacity != null ? style.fillOpacity * opacity : opacity) + '');\r\n }\r\n else {\r\n attr(svgEl, 'fill', NONE);\r\n }\r\n if (pathHasStroke(style)) {\r\n var stroke = style.stroke;\r\n stroke = stroke === 'transparent' ? NONE : stroke;\r\n attr(svgEl, 'stroke', stroke);\r\n var strokeWidth = style.lineWidth;\r\n var strokeScale_1 = style.strokeNoScale\r\n ? el.getLineScale()\r\n : 1;\r\n attr(svgEl, 'stroke-width', (strokeScale_1 ? strokeWidth / strokeScale_1 : 0) + '');\r\n attr(svgEl, 'paint-order', style.strokeFirst ? 'stroke' : 'fill');\r\n attr(svgEl, 'stroke-opacity', (style.strokeOpacity != null ? style.strokeOpacity * opacity : opacity) + '');\r\n var lineDash = style.lineDash && strokeWidth > 0 && normalizeLineDash(style.lineDash, strokeWidth);\r\n if (lineDash) {\r\n var lineDashOffset = style.lineDashOffset;\r\n if (strokeScale_1 && strokeScale_1 !== 1) {\r\n lineDash = map(lineDash, function (rawVal) {\r\n return rawVal / strokeScale_1;\r\n });\r\n if (lineDashOffset) {\r\n lineDashOffset /= strokeScale_1;\r\n lineDashOffset = mathRound(lineDashOffset);\r\n }\r\n }\r\n attr(svgEl, 'stroke-dasharray', lineDash.join(','));\r\n attr(svgEl, 'stroke-dashoffset', (lineDashOffset || 0) + '');\r\n }\r\n else {\r\n attr(svgEl, 'stroke-dasharray', '');\r\n }\r\n style.lineCap && attr(svgEl, 'stroke-linecap', style.lineCap);\r\n style.lineJoin && attr(svgEl, 'stroke-linejoin', style.lineJoin);\r\n style.miterLimit && attr(svgEl, 'stroke-miterlimit', style.miterLimit + '');\r\n }\r\n else {\r\n attr(svgEl, 'stroke', NONE);\r\n }\r\n }\r\n var SVGPathRebuilder = (function () {\r\n function SVGPathRebuilder() {\r\n }\r\n SVGPathRebuilder.prototype.reset = function () {\r\n this._d = [];\r\n this._str = '';\r\n };\r\n SVGPathRebuilder.prototype.moveTo = function (x, y) {\r\n this._add('M', x, y);\r\n };\r\n SVGPathRebuilder.prototype.lineTo = function (x, y) {\r\n this._add('L', x, y);\r\n };\r\n SVGPathRebuilder.prototype.bezierCurveTo = function (x, y, x2, y2, x3, y3) {\r\n this._add('C', x, y, x2, y2, x3, y3);\r\n };\r\n SVGPathRebuilder.prototype.quadraticCurveTo = function (x, y, x2, y2) {\r\n this._add('Q', x, y, x2, y2);\r\n };\r\n SVGPathRebuilder.prototype.arc = function (cx, cy, r, startAngle, endAngle, anticlockwise) {\r\n this.ellipse(cx, cy, r, r, 0, startAngle, endAngle, anticlockwise);\r\n };\r\n SVGPathRebuilder.prototype.ellipse = function (cx, cy, rx, ry, psi, startAngle, endAngle, anticlockwise) {\r\n var firstCmd = this._d.length === 0;\r\n var dTheta = endAngle - startAngle;\r\n var clockwise = !anticlockwise;\r\n var dThetaPositive = Math.abs(dTheta);\r\n var isCircle = isAroundZero$1(dThetaPositive - PI2$a)\r\n || (clockwise ? dTheta >= PI2$a : -dTheta >= PI2$a);\r\n var unifiedTheta = dTheta > 0 ? dTheta % PI2$a : (dTheta % PI2$a + PI2$a);\r\n var large = false;\r\n if (isCircle) {\r\n large = true;\r\n }\r\n else if (isAroundZero$1(dThetaPositive)) {\r\n large = false;\r\n }\r\n else {\r\n large = (unifiedTheta >= PI$a) === !!clockwise;\r\n }\r\n var x0 = round4(cx + rx * mathCos$4(startAngle));\r\n var y0 = round4(cy + ry * mathSin$4(startAngle));\r\n if (isCircle) {\r\n if (clockwise) {\r\n dTheta = PI2$a - 1e-4;\r\n }\r\n else {\r\n dTheta = -PI2$a + 1e-4;\r\n }\r\n large = true;\r\n if (firstCmd) {\r\n this._d.push('M', x0, y0);\r\n }\r\n }\r\n var x = round4(cx + rx * mathCos$4(startAngle + dTheta));\r\n var y = round4(cy + ry * mathSin$4(startAngle + dTheta));\r\n if (isNaN(x0) || isNaN(y0) || isNaN(rx) || isNaN(ry) || isNaN(psi) || isNaN(degree) || isNaN(x) || isNaN(y)) {\r\n return '';\r\n }\r\n this._d.push('A', round4(rx), round4(ry), mathRound(psi * degree), +large, +clockwise, x, y);\r\n };\r\n SVGPathRebuilder.prototype.rect = function (x, y, w, h) {\r\n this._add('M', x, y);\r\n this._add('L', x + w, y);\r\n this._add('L', x + w, y + h);\r\n this._add('L', x, y + h);\r\n this._add('L', x, y);\r\n };\r\n SVGPathRebuilder.prototype.closePath = function () {\r\n if (this._d.length > 0) {\r\n this._add('Z');\r\n }\r\n };\r\n SVGPathRebuilder.prototype._add = function (cmd, a, b, c, d, e, f, g, h) {\r\n this._d.push(cmd);\r\n for (var i = 1; i < arguments.length; i++) {\r\n var val = arguments[i];\r\n if (isNaN(val)) {\r\n this._invalid = true;\r\n return;\r\n }\r\n this._d.push(round4(val));\r\n }\r\n };\r\n SVGPathRebuilder.prototype.generateStr = function () {\r\n this._str = this._invalid ? '' : this._d.join(' ');\r\n this._d = [];\r\n };\r\n SVGPathRebuilder.prototype.getStr = function () {\r\n return this._str;\r\n };\r\n return SVGPathRebuilder;\r\n }());\r\n var svgPath = {\r\n brush: function (el) {\r\n var style = el.style;\r\n var svgEl = el.__svgEl;\r\n if (!svgEl) {\r\n svgEl = createElement('path');\r\n el.__svgEl = svgEl;\r\n }\r\n if (!el.path) {\r\n el.createPathProxy();\r\n }\r\n var path = el.path;\r\n if (el.shapeChanged()) {\r\n path.beginPath();\r\n el.buildPath(path, el.shape);\r\n el.pathUpdated();\r\n }\r\n var pathVersion = path.getVersion();\r\n var elExt = el;\r\n var svgPathBuilder = elExt.__svgPathBuilder;\r\n if (elExt.__svgPathVersion !== pathVersion || !svgPathBuilder || el.style.strokePercent < 1) {\r\n if (!svgPathBuilder) {\r\n svgPathBuilder = elExt.__svgPathBuilder = new SVGPathRebuilder();\r\n }\r\n svgPathBuilder.reset();\r\n path.rebuildPath(svgPathBuilder, el.style.strokePercent);\r\n svgPathBuilder.generateStr();\r\n elExt.__svgPathVersion = pathVersion;\r\n }\r\n attr(svgEl, 'd', svgPathBuilder.getStr());\r\n bindStyle(svgEl, style, el);\r\n setTransform(svgEl, el.transform);\r\n }\r\n };\r\n var svgImage = {\r\n brush: function (el) {\r\n var style = el.style;\r\n var image = style.image;\r\n if (image instanceof HTMLImageElement) {\r\n var src = image.src;\r\n image = src;\r\n }\r\n if (!image) {\r\n return;\r\n }\r\n var x = style.x || 0;\r\n var y = style.y || 0;\r\n var dw = style.width;\r\n var dh = style.height;\r\n var svgEl = el.__svgEl;\r\n if (!svgEl) {\r\n svgEl = createElement('image');\r\n el.__svgEl = svgEl;\r\n }\r\n if (image !== el.__imageSrc) {\r\n attrXLink(svgEl, 'href', image);\r\n el.__imageSrc = image;\r\n }\r\n attr(svgEl, 'width', dw + '');\r\n attr(svgEl, 'height', dh + '');\r\n attr(svgEl, 'x', x + '');\r\n attr(svgEl, 'y', y + '');\r\n setTransform(svgEl, el.transform);\r\n }\r\n };\r\n var TEXT_ALIGN_TO_ANCHOR = {\r\n left: 'start',\r\n right: 'end',\r\n center: 'middle',\r\n middle: 'middle'\r\n };\r\n function adjustTextY$1(y, lineHeight, textBaseline) {\r\n if (textBaseline === 'top') {\r\n y += lineHeight / 2;\r\n }\r\n else if (textBaseline === 'bottom') {\r\n y -= lineHeight / 2;\r\n }\r\n return y;\r\n }\r\n var svgText = {\r\n brush: function (el) {\r\n var style = el.style;\r\n var text = style.text;\r\n text != null && (text += '');\r\n if (!text || isNaN(style.x) || isNaN(style.y)) {\r\n return;\r\n }\r\n var textSvgEl = el.__svgEl;\r\n if (!textSvgEl) {\r\n textSvgEl = createElement('text');\r\n attrXML(textSvgEl, 'xml:space', 'preserve');\r\n el.__svgEl = textSvgEl;\r\n }\r\n var font = style.font || DEFAULT_FONT;\r\n var textSvgElStyle = textSvgEl.style;\r\n textSvgElStyle.font = font;\r\n textSvgEl.textContent = text;\r\n bindStyle(textSvgEl, style, el);\r\n setTransform(textSvgEl, el.transform);\r\n var x = style.x || 0;\r\n var y = adjustTextY$1(style.y || 0, getLineHeight(font), style.textBaseline);\r\n var textAlign = TEXT_ALIGN_TO_ANCHOR[style.textAlign]\r\n || style.textAlign;\r\n attr(textSvgEl, 'dominant-baseline', 'central');\r\n attr(textSvgEl, 'text-anchor', textAlign);\r\n attr(textSvgEl, 'x', x + '');\r\n attr(textSvgEl, 'y', y + '');\r\n }\r\n };\n\n function diff(oldArr, newArr, equals) {\r\n if (!equals) {\r\n equals = function (a, b) {\r\n return a === b;\r\n };\r\n }\r\n oldArr = oldArr.slice();\r\n newArr = newArr.slice();\r\n var newLen = newArr.length;\r\n var oldLen = oldArr.length;\r\n var editLength = 1;\r\n var maxEditLength = newLen + oldLen;\r\n var bestPath = [{ newPos: -1, components: [] }];\r\n var oldPos = extractCommon(bestPath[0], newArr, oldArr, 0, equals);\r\n if (bestPath[0].newPos + 1 >= newLen && oldPos + 1 >= oldLen) {\r\n var indices = [];\r\n for (var i = 0; i < newArr.length; i++) {\r\n indices.push(i);\r\n }\r\n return [{\r\n indices: indices,\r\n count: newArr.length,\r\n added: false,\r\n removed: false\r\n }];\r\n }\r\n function execEditLength() {\r\n for (var diagonalPath = -1 * editLength; diagonalPath <= editLength; diagonalPath += 2) {\r\n var basePath;\r\n var addPath = bestPath[diagonalPath - 1];\r\n var removePath = bestPath[diagonalPath + 1];\r\n var oldPos = (removePath ? removePath.newPos : 0) - diagonalPath;\r\n if (addPath) {\r\n bestPath[diagonalPath - 1] = undefined;\r\n }\r\n var canAdd = addPath && addPath.newPos + 1 < newLen;\r\n var canRemove = removePath && 0 <= oldPos && oldPos < oldLen;\r\n if (!canAdd && !canRemove) {\r\n bestPath[diagonalPath] = undefined;\r\n continue;\r\n }\r\n if (!canAdd || (canRemove && addPath.newPos < removePath.newPos)) {\r\n basePath = clonePath(removePath);\r\n pushComponent(basePath.components, false, true);\r\n }\r\n else {\r\n basePath = addPath;\r\n basePath.newPos++;\r\n pushComponent(basePath.components, true, false);\r\n }\r\n oldPos = extractCommon(basePath, newArr, oldArr, diagonalPath, equals);\r\n if (basePath.newPos + 1 >= newLen && oldPos + 1 >= oldLen) {\r\n return buildValues(basePath.components);\r\n }\r\n else {\r\n bestPath[diagonalPath] = basePath;\r\n }\r\n }\r\n editLength++;\r\n }\r\n while (editLength <= maxEditLength) {\r\n var ret = execEditLength();\r\n if (ret) {\r\n return ret;\r\n }\r\n }\r\n }\r\n function extractCommon(basePath, newArr, oldArr, diagonalPath, equals) {\r\n var newLen = newArr.length;\r\n var oldLen = oldArr.length;\r\n var newPos = basePath.newPos;\r\n var oldPos = newPos - diagonalPath;\r\n var commonCount = 0;\r\n while (newPos + 1 < newLen && oldPos + 1 < oldLen && equals(newArr[newPos + 1], oldArr[oldPos + 1])) {\r\n newPos++;\r\n oldPos++;\r\n commonCount++;\r\n }\r\n if (commonCount) {\r\n basePath.components.push({\r\n count: commonCount,\r\n added: false,\r\n removed: false,\r\n indices: []\r\n });\r\n }\r\n basePath.newPos = newPos;\r\n return oldPos;\r\n }\r\n function pushComponent(components, added, removed) {\r\n var last = components[components.length - 1];\r\n if (last && last.added === added && last.removed === removed) {\r\n components[components.length - 1] = {\r\n count: last.count + 1,\r\n added: added,\r\n removed: removed,\r\n indices: []\r\n };\r\n }\r\n else {\r\n components.push({\r\n count: 1,\r\n added: added,\r\n removed: removed,\r\n indices: []\r\n });\r\n }\r\n }\r\n function buildValues(components) {\r\n var componentPos = 0;\r\n var componentLen = components.length;\r\n var newPos = 0;\r\n var oldPos = 0;\r\n for (; componentPos < componentLen; componentPos++) {\r\n var component = components[componentPos];\r\n if (!component.removed) {\r\n var indices = [];\r\n for (var i = newPos; i < newPos + component.count; i++) {\r\n indices.push(i);\r\n }\r\n component.indices = indices;\r\n newPos += component.count;\r\n if (!component.added) {\r\n oldPos += component.count;\r\n }\r\n }\r\n else {\r\n for (var i = oldPos; i < oldPos + component.count; i++) {\r\n component.indices.push(i);\r\n }\r\n oldPos += component.count;\r\n }\r\n }\r\n return components;\r\n }\r\n function clonePath(path) {\r\n return { newPos: path.newPos, components: path.components.slice(0) };\r\n }\r\n function arrayDiff(oldArr, newArr, equal) {\r\n return diff(oldArr, newArr, equal);\r\n }\n\n var MARK_UNUSED = '0';\r\n var MARK_USED = '1';\r\n var Definable = (function () {\r\n function Definable(zrId, svgRoot, tagNames, markLabel, domName) {\r\n this.nextId = 0;\r\n this._domName = '_dom';\r\n this.createElement = createElement;\r\n this._zrId = zrId;\r\n this._svgRoot = svgRoot;\r\n this._tagNames = typeof tagNames === 'string' ? [tagNames] : tagNames;\r\n this._markLabel = markLabel;\r\n if (domName) {\r\n this._domName = domName;\r\n }\r\n }\r\n Definable.prototype.getDefs = function (isForceCreating) {\r\n var svgRoot = this._svgRoot;\r\n var defs = this._svgRoot.getElementsByTagName('defs');\r\n if (defs.length === 0) {\r\n if (isForceCreating) {\r\n var defs_1 = svgRoot.insertBefore(this.createElement('defs'), svgRoot.firstChild);\r\n if (!defs_1.contains) {\r\n defs_1.contains = function (el) {\r\n var children = defs_1.children;\r\n if (!children) {\r\n return false;\r\n }\r\n for (var i = children.length - 1; i >= 0; --i) {\r\n if (children[i] === el) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n }\r\n return defs_1;\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n else {\r\n return defs[0];\r\n }\r\n };\r\n Definable.prototype.doUpdate = function (target, onUpdate) {\r\n if (!target) {\r\n return;\r\n }\r\n var defs = this.getDefs(false);\r\n if (target[this._domName] && defs.contains(target[this._domName])) {\r\n if (typeof onUpdate === 'function') {\r\n onUpdate(target);\r\n }\r\n }\r\n else {\r\n var dom = this.add(target);\r\n if (dom) {\r\n target[this._domName] = dom;\r\n }\r\n }\r\n };\r\n Definable.prototype.add = function (target) {\r\n return null;\r\n };\r\n Definable.prototype.addDom = function (dom) {\r\n var defs = this.getDefs(true);\r\n if (dom.parentNode !== defs) {\r\n defs.appendChild(dom);\r\n }\r\n };\r\n Definable.prototype.removeDom = function (target) {\r\n var defs = this.getDefs(false);\r\n if (defs && target[this._domName]) {\r\n defs.removeChild(target[this._domName]);\r\n target[this._domName] = null;\r\n }\r\n };\r\n Definable.prototype.getDoms = function () {\r\n var defs = this.getDefs(false);\r\n if (!defs) {\r\n return [];\r\n }\r\n var doms = [];\r\n each(this._tagNames, function (tagName) {\r\n var tags = defs.getElementsByTagName(tagName);\r\n for (var i = 0; i < tags.length; i++) {\r\n doms.push(tags[i]);\r\n }\r\n });\r\n return doms;\r\n };\r\n Definable.prototype.markAllUnused = function () {\r\n var doms = this.getDoms();\r\n var that = this;\r\n each(doms, function (dom) {\r\n dom[that._markLabel] = MARK_UNUSED;\r\n });\r\n };\r\n Definable.prototype.markDomUsed = function (dom) {\r\n dom && (dom[this._markLabel] = MARK_USED);\r\n };\r\n Definable.prototype.markDomUnused = function (dom) {\r\n dom && (dom[this._markLabel] = MARK_UNUSED);\r\n };\r\n Definable.prototype.isDomUnused = function (dom) {\r\n return dom && dom[this._markLabel] !== MARK_USED;\r\n };\r\n Definable.prototype.removeUnused = function () {\r\n var _this = this;\r\n var defs = this.getDefs(false);\r\n if (!defs) {\r\n return;\r\n }\r\n var doms = this.getDoms();\r\n each(doms, function (dom) {\r\n if (_this.isDomUnused(dom)) {\r\n defs.removeChild(dom);\r\n }\r\n });\r\n };\r\n Definable.prototype.getSvgProxy = function (displayable) {\r\n if (displayable instanceof Path) {\r\n return svgPath;\r\n }\r\n else if (displayable instanceof ZRImage) {\r\n return svgImage;\r\n }\r\n else if (displayable instanceof TSpan) {\r\n return svgText;\r\n }\r\n else {\r\n return svgPath;\r\n }\r\n };\r\n Definable.prototype.getSvgElement = function (displayable) {\r\n return displayable.__svgEl;\r\n };\r\n return Definable;\r\n }());\n\n function isLinearGradient(value) {\r\n return value.type === 'linear';\r\n }\r\n function isRadialGradient(value) {\r\n return value.type === 'radial';\r\n }\r\n function isGradient(value) {\r\n return value && (value.type === 'linear'\r\n || value.type === 'radial');\r\n }\r\n var GradientManager = (function (_super) {\r\n __extends(GradientManager, _super);\r\n function GradientManager(zrId, svgRoot) {\r\n return _super.call(this, zrId, svgRoot, ['linearGradient', 'radialGradient'], '__gradient_in_use__') || this;\r\n }\r\n GradientManager.prototype.addWithoutUpdate = function (svgElement, displayable) {\r\n if (displayable && displayable.style) {\r\n var that_1 = this;\r\n each(['fill', 'stroke'], function (fillOrStroke) {\r\n var value = displayable.style[fillOrStroke];\r\n if (isGradient(value)) {\r\n var gradient = value;\r\n var defs = that_1.getDefs(true);\r\n var dom = void 0;\r\n if (gradient.__dom) {\r\n dom = gradient.__dom;\r\n if (!defs.contains(gradient.__dom)) {\r\n that_1.addDom(dom);\r\n }\r\n }\r\n else {\r\n dom = that_1.add(gradient);\r\n }\r\n that_1.markUsed(displayable);\r\n var id = dom.getAttribute('id');\r\n svgElement.setAttribute(fillOrStroke, 'url(#' + id + ')');\r\n }\r\n });\r\n }\r\n };\r\n GradientManager.prototype.add = function (gradient) {\r\n var dom;\r\n if (isLinearGradient(gradient)) {\r\n dom = this.createElement('linearGradient');\r\n }\r\n else if (isRadialGradient(gradient)) {\r\n dom = this.createElement('radialGradient');\r\n }\r\n else {\r\n logError('Illegal gradient type.');\r\n return null;\r\n }\r\n gradient.id = gradient.id || this.nextId++;\r\n dom.setAttribute('id', 'zr' + this._zrId\r\n + '-gradient-' + gradient.id);\r\n this.updateDom(gradient, dom);\r\n this.addDom(dom);\r\n return dom;\r\n };\r\n GradientManager.prototype.update = function (gradient) {\r\n if (!isGradient(gradient)) {\r\n return;\r\n }\r\n var that = this;\r\n this.doUpdate(gradient, function () {\r\n var dom = gradient.__dom;\r\n if (!dom) {\r\n return;\r\n }\r\n var tagName = dom.tagName;\r\n var type = gradient.type;\r\n if (type === 'linear' && tagName === 'linearGradient'\r\n || type === 'radial' && tagName === 'radialGradient') {\r\n that.updateDom(gradient, gradient.__dom);\r\n }\r\n else {\r\n that.removeDom(gradient);\r\n that.add(gradient);\r\n }\r\n });\r\n };\r\n GradientManager.prototype.updateDom = function (gradient, dom) {\r\n if (isLinearGradient(gradient)) {\r\n dom.setAttribute('x1', gradient.x + '');\r\n dom.setAttribute('y1', gradient.y + '');\r\n dom.setAttribute('x2', gradient.x2 + '');\r\n dom.setAttribute('y2', gradient.y2 + '');\r\n }\r\n else if (isRadialGradient(gradient)) {\r\n dom.setAttribute('cx', gradient.x + '');\r\n dom.setAttribute('cy', gradient.y + '');\r\n dom.setAttribute('r', gradient.r + '');\r\n }\r\n else {\r\n logError('Illegal gradient type.');\r\n return;\r\n }\r\n if (gradient.global) {\r\n dom.setAttribute('gradientUnits', 'userSpaceOnUse');\r\n }\r\n else {\r\n dom.setAttribute('gradientUnits', 'objectBoundingBox');\r\n }\r\n dom.innerHTML = '';\r\n var colors = gradient.colorStops;\r\n for (var i = 0, len = colors.length; i < len; ++i) {\r\n var stop_1 = this.createElement('stop');\r\n stop_1.setAttribute('offset', colors[i].offset * 100 + '%');\r\n var color$1 = colors[i].color;\r\n if (color$1.indexOf('rgba') > -1) {\r\n var opacity = parse(color$1)[3];\r\n var hex = toHex(color$1);\r\n stop_1.setAttribute('stop-color', '#' + hex);\r\n stop_1.setAttribute('stop-opacity', opacity + '');\r\n }\r\n else {\r\n stop_1.setAttribute('stop-color', colors[i].color);\r\n }\r\n dom.appendChild(stop_1);\r\n }\r\n gradient.__dom = dom;\r\n };\r\n GradientManager.prototype.markUsed = function (displayable) {\r\n if (displayable.style) {\r\n var gradient = displayable.style.fill;\r\n if (gradient && gradient.__dom) {\r\n _super.prototype.markDomUsed.call(this, gradient.__dom);\r\n }\r\n gradient = displayable.style.stroke;\r\n if (gradient && gradient.__dom) {\r\n _super.prototype.markDomUsed.call(this, gradient.__dom);\r\n }\r\n }\r\n };\r\n return GradientManager;\r\n }(Definable));\n\n function isPattern(value) {\r\n return value && (!!value.image || !!value.svgElement);\r\n }\r\n var patternDomMap = new WeakMap();\r\n var PatternManager = (function (_super) {\r\n __extends(PatternManager, _super);\r\n function PatternManager(zrId, svgRoot) {\r\n return _super.call(this, zrId, svgRoot, ['pattern'], '__pattern_in_use__') || this;\r\n }\r\n PatternManager.prototype.addWithoutUpdate = function (svgElement, displayable) {\r\n if (displayable && displayable.style) {\r\n var that_1 = this;\r\n each(['fill', 'stroke'], function (fillOrStroke) {\r\n var pattern = displayable.style[fillOrStroke];\r\n if (isPattern(pattern)) {\r\n var defs = that_1.getDefs(true);\r\n var dom = patternDomMap.get(pattern);\r\n if (dom) {\r\n if (!defs.contains(dom)) {\r\n that_1.addDom(dom);\r\n }\r\n }\r\n else {\r\n dom = that_1.add(pattern);\r\n }\r\n that_1.markUsed(displayable);\r\n var id = dom.getAttribute('id');\r\n svgElement.setAttribute(fillOrStroke, 'url(#' + id + ')');\r\n }\r\n });\r\n }\r\n };\r\n PatternManager.prototype.add = function (pattern) {\r\n if (!isPattern(pattern)) {\r\n return;\r\n }\r\n var dom = this.createElement('pattern');\r\n pattern.id = pattern.id == null ? this.nextId++ : pattern.id;\r\n dom.setAttribute('id', 'zr' + this._zrId\r\n + '-pattern-' + pattern.id);\r\n dom.setAttribute('x', '0');\r\n dom.setAttribute('y', '0');\r\n dom.setAttribute('patternUnits', 'userSpaceOnUse');\r\n this.updateDom(pattern, dom);\r\n this.addDom(dom);\r\n return dom;\r\n };\r\n PatternManager.prototype.update = function (pattern) {\r\n if (!isPattern(pattern)) {\r\n return;\r\n }\r\n var that = this;\r\n this.doUpdate(pattern, function () {\r\n var dom = patternDomMap.get(pattern);\r\n that.updateDom(pattern, dom);\r\n });\r\n };\r\n PatternManager.prototype.updateDom = function (pattern, patternDom) {\r\n var svgElement = pattern.svgElement;\r\n if (svgElement instanceof SVGElement) {\r\n if (svgElement.parentNode !== patternDom) {\r\n patternDom.innerHTML = '';\r\n patternDom.appendChild(svgElement);\r\n patternDom.setAttribute('width', pattern.svgWidth + '');\r\n patternDom.setAttribute('height', pattern.svgHeight + '');\r\n }\r\n }\r\n else {\r\n var img = void 0;\r\n var prevImage = patternDom.getElementsByTagName('image');\r\n if (prevImage.length) {\r\n if (pattern.image) {\r\n img = prevImage[0];\r\n }\r\n else {\r\n patternDom.removeChild(prevImage[0]);\r\n return;\r\n }\r\n }\r\n else if (pattern.image) {\r\n img = this.createElement('image');\r\n }\r\n if (img) {\r\n var imageSrc = void 0;\r\n if (typeof pattern.image === 'string') {\r\n imageSrc = pattern.image;\r\n }\r\n else if (pattern.image instanceof HTMLImageElement) {\r\n imageSrc = pattern.image.src;\r\n }\r\n else if (pattern.image instanceof HTMLCanvasElement) {\r\n imageSrc = pattern.image.toDataURL();\r\n }\r\n if (imageSrc) {\r\n img.setAttribute('href', imageSrc);\r\n img.setAttribute('x', '0');\r\n img.setAttribute('y', '0');\r\n var hostEl = {\r\n dirty: function () { }\r\n };\r\n var createdImage = createOrUpdateImage(imageSrc, img, hostEl, function (img) {\r\n patternDom.setAttribute('width', img.width + '');\r\n patternDom.setAttribute('height', img.height + '');\r\n });\r\n if (createdImage && createdImage.width && createdImage.height) {\r\n patternDom.setAttribute('width', createdImage.width + '');\r\n patternDom.setAttribute('height', createdImage.height + '');\r\n }\r\n patternDom.appendChild(img);\r\n }\r\n }\r\n }\r\n var x = pattern.x || 0;\r\n var y = pattern.y || 0;\r\n var rotation = (pattern.rotation || 0) / Math.PI * 180;\r\n var scaleX = pattern.scaleX || 1;\r\n var scaleY = pattern.scaleY || 1;\r\n var transform = \"translate(\" + x + \", \" + y + \") rotate(\" + rotation + \") scale(\" + scaleX + \", \" + scaleY + \")\";\r\n patternDom.setAttribute('patternTransform', transform);\r\n patternDomMap.set(pattern, patternDom);\r\n };\r\n PatternManager.prototype.markUsed = function (displayable) {\r\n if (displayable.style) {\r\n if (isPattern(displayable.style.fill)) {\r\n _super.prototype.markDomUsed.call(this, patternDomMap.get(displayable.style.fill));\r\n }\r\n if (isPattern(displayable.style.stroke)) {\r\n _super.prototype.markDomUsed.call(this, patternDomMap.get(displayable.style.stroke));\r\n }\r\n }\r\n };\r\n return PatternManager;\r\n }(Definable));\n\n function generateClipPathsKey(clipPaths) {\r\n var key = [];\r\n if (clipPaths) {\r\n for (var i = 0; i < clipPaths.length; i++) {\r\n var clipPath = clipPaths[i];\r\n key.push(clipPath.id);\r\n }\r\n }\r\n return key.join(',');\r\n }\r\n function hasClipPath(displayable) {\r\n var clipPaths = displayable.__clipPaths;\r\n return clipPaths && clipPaths.length > 0;\r\n }\r\n var ClippathManager = (function (_super) {\r\n __extends(ClippathManager, _super);\r\n function ClippathManager(zrId, svgRoot) {\r\n var _this = _super.call(this, zrId, svgRoot, 'clipPath', '__clippath_in_use__') || this;\r\n _this._refGroups = {};\r\n _this._keyDuplicateCount = {};\r\n return _this;\r\n }\r\n ClippathManager.prototype.markAllUnused = function () {\r\n _super.prototype.markAllUnused.call(this);\r\n for (var key in this._refGroups) {\r\n this.markDomUnused(this._refGroups[key]);\r\n }\r\n this._keyDuplicateCount = {};\r\n };\r\n ClippathManager.prototype._getClipPathGroup = function (displayable, prevDisplayable) {\r\n if (!hasClipPath(displayable)) {\r\n return;\r\n }\r\n var clipPaths = displayable.__clipPaths;\r\n var keyDuplicateCount = this._keyDuplicateCount;\r\n var clipPathKey = generateClipPathsKey(clipPaths);\r\n if (isClipPathChanged(clipPaths, prevDisplayable && prevDisplayable.__clipPaths)) {\r\n keyDuplicateCount[clipPathKey] = keyDuplicateCount[clipPathKey] || 0;\r\n keyDuplicateCount[clipPathKey] && (clipPathKey += '-' + keyDuplicateCount[clipPathKey]);\r\n keyDuplicateCount[clipPathKey]++;\r\n }\r\n return this._refGroups[clipPathKey]\r\n || (this._refGroups[clipPathKey] = this.createElement('g'));\r\n };\r\n ClippathManager.prototype.update = function (displayable, prevDisplayable) {\r\n var clipGroup = this._getClipPathGroup(displayable, prevDisplayable);\r\n if (clipGroup) {\r\n this.markDomUsed(clipGroup);\r\n this.updateDom(clipGroup, displayable.__clipPaths);\r\n }\r\n return clipGroup;\r\n };\r\n ClippathManager.prototype.updateDom = function (parentEl, clipPaths) {\r\n if (clipPaths && clipPaths.length > 0) {\r\n var defs = this.getDefs(true);\r\n var clipPath = clipPaths[0];\r\n var clipPathEl = void 0;\r\n var id = void 0;\r\n if (clipPath._dom) {\r\n id = clipPath._dom.getAttribute('id');\r\n clipPathEl = clipPath._dom;\r\n if (!defs.contains(clipPathEl)) {\r\n defs.appendChild(clipPathEl);\r\n }\r\n }\r\n else {\r\n id = 'zr' + this._zrId + '-clip-' + this.nextId;\r\n ++this.nextId;\r\n clipPathEl = this.createElement('clipPath');\r\n clipPathEl.setAttribute('id', id);\r\n defs.appendChild(clipPathEl);\r\n clipPath._dom = clipPathEl;\r\n }\r\n var svgProxy = this.getSvgProxy(clipPath);\r\n svgProxy.brush(clipPath);\r\n var pathEl = this.getSvgElement(clipPath);\r\n clipPathEl.innerHTML = '';\r\n clipPathEl.appendChild(pathEl);\r\n parentEl.setAttribute('clip-path', 'url(#' + id + ')');\r\n if (clipPaths.length > 1) {\r\n this.updateDom(clipPathEl, clipPaths.slice(1));\r\n }\r\n }\r\n else {\r\n if (parentEl) {\r\n parentEl.setAttribute('clip-path', 'none');\r\n }\r\n }\r\n };\r\n ClippathManager.prototype.markUsed = function (displayable) {\r\n var _this = this;\r\n if (displayable.__clipPaths) {\r\n each(displayable.__clipPaths, function (clipPath) {\r\n if (clipPath._dom) {\r\n _super.prototype.markDomUsed.call(_this, clipPath._dom);\r\n }\r\n });\r\n }\r\n };\r\n ClippathManager.prototype.removeUnused = function () {\r\n _super.prototype.removeUnused.call(this);\r\n var newRefGroupsMap = {};\r\n for (var key in this._refGroups) {\r\n var group = this._refGroups[key];\r\n if (!this.isDomUnused(group)) {\r\n newRefGroupsMap[key] = group;\r\n }\r\n else if (group.parentNode) {\r\n group.parentNode.removeChild(group);\r\n }\r\n }\r\n this._refGroups = newRefGroupsMap;\r\n };\r\n return ClippathManager;\r\n }(Definable));\n\n var ShadowManager = (function (_super) {\r\n __extends(ShadowManager, _super);\r\n function ShadowManager(zrId, svgRoot) {\r\n var _this = _super.call(this, zrId, svgRoot, ['filter'], '__filter_in_use__', '_shadowDom') || this;\r\n _this._shadowDomMap = {};\r\n _this._shadowDomPool = [];\r\n return _this;\r\n }\r\n ShadowManager.prototype._getFromPool = function () {\r\n var shadowDom = this._shadowDomPool.pop();\r\n if (!shadowDom) {\r\n shadowDom = this.createElement('filter');\r\n shadowDom.setAttribute('id', 'zr' + this._zrId + '-shadow-' + this.nextId++);\r\n var domChild = this.createElement('feDropShadow');\r\n shadowDom.appendChild(domChild);\r\n this.addDom(shadowDom);\r\n }\r\n return shadowDom;\r\n };\r\n ShadowManager.prototype.update = function (svgElement, displayable) {\r\n var style = displayable.style;\r\n if (hasShadow(style)) {\r\n var shadowKey = getShadowKey(displayable);\r\n var shadowDom = displayable._shadowDom = this._shadowDomMap[shadowKey];\r\n if (!shadowDom) {\r\n shadowDom = this._getFromPool();\r\n this._shadowDomMap[shadowKey] = shadowDom;\r\n }\r\n this.updateDom(svgElement, displayable, shadowDom);\r\n }\r\n else {\r\n this.remove(svgElement, displayable);\r\n }\r\n };\r\n ShadowManager.prototype.remove = function (svgElement, displayable) {\r\n if (displayable._shadowDom != null) {\r\n displayable._shadowDom = null;\r\n svgElement.style.filter = '';\r\n }\r\n };\r\n ShadowManager.prototype.updateDom = function (svgElement, displayable, shadowDom) {\r\n var domChild = shadowDom.children[0];\r\n var style = displayable.style;\r\n var globalScale = displayable.getGlobalScale();\r\n var scaleX = globalScale[0];\r\n var scaleY = globalScale[1];\r\n if (!scaleX || !scaleY) {\r\n return;\r\n }\r\n var offsetX = style.shadowOffsetX || 0;\r\n var offsetY = style.shadowOffsetY || 0;\r\n var blur = style.shadowBlur;\r\n var color = style.shadowColor;\r\n domChild.setAttribute('dx', offsetX / scaleX + '');\r\n domChild.setAttribute('dy', offsetY / scaleY + '');\r\n domChild.setAttribute('flood-color', color);\r\n var stdDx = blur / 2 / scaleX;\r\n var stdDy = blur / 2 / scaleY;\r\n var stdDeviation = stdDx + ' ' + stdDy;\r\n domChild.setAttribute('stdDeviation', stdDeviation);\r\n shadowDom.setAttribute('x', '-100%');\r\n shadowDom.setAttribute('y', '-100%');\r\n shadowDom.setAttribute('width', '300%');\r\n shadowDom.setAttribute('height', '300%');\r\n displayable._shadowDom = shadowDom;\r\n var id = shadowDom.getAttribute('id');\r\n svgElement.style.filter = 'url(#' + id + ')';\r\n };\r\n ShadowManager.prototype.removeUnused = function () {\r\n var defs = this.getDefs(false);\r\n if (!defs) {\r\n return;\r\n }\r\n var shadowDomsPool = this._shadowDomPool;\r\n for (var key in this._shadowDomMap) {\r\n var dom = this._shadowDomMap[key];\r\n shadowDomsPool.push(dom);\r\n }\r\n this._shadowDomMap = {};\r\n };\r\n return ShadowManager;\r\n }(Definable));\r\n function hasShadow(style) {\r\n return style\r\n && (style.shadowBlur || style.shadowOffsetX || style.shadowOffsetY);\r\n }\r\n function getShadowKey(displayable) {\r\n var style = displayable.style;\r\n var globalScale = displayable.getGlobalScale();\r\n return [\r\n style.shadowColor,\r\n (style.shadowBlur || 0).toFixed(2),\r\n (style.shadowOffsetX || 0).toFixed(2),\r\n (style.shadowOffsetY || 0).toFixed(2),\r\n globalScale[0],\r\n globalScale[1]\r\n ].join(',');\r\n }\n\n function parseInt10$1(val) {\r\n return parseInt(val, 10);\r\n }\r\n function getSvgProxy(el) {\r\n if (el instanceof Path) {\r\n return svgPath;\r\n }\r\n else if (el instanceof ZRImage) {\r\n return svgImage;\r\n }\r\n else if (el instanceof TSpan) {\r\n return svgText;\r\n }\r\n else {\r\n return svgPath;\r\n }\r\n }\r\n function checkParentAvailable(parent, child) {\r\n return child && parent && child.parentNode !== parent;\r\n }\r\n function insertAfter(parent, child, prevSibling) {\r\n if (checkParentAvailable(parent, child) && prevSibling) {\r\n var nextSibling = prevSibling.nextSibling;\r\n nextSibling ? parent.insertBefore(child, nextSibling)\r\n : parent.appendChild(child);\r\n }\r\n }\r\n function prepend(parent, child) {\r\n if (checkParentAvailable(parent, child)) {\r\n var firstChild = parent.firstChild;\r\n firstChild ? parent.insertBefore(child, firstChild)\r\n : parent.appendChild(child);\r\n }\r\n }\r\n function remove(parent, child) {\r\n if (child && parent && child.parentNode === parent) {\r\n parent.removeChild(child);\r\n }\r\n }\r\n function removeFromMyParent(child) {\r\n if (child && child.parentNode) {\r\n child.parentNode.removeChild(child);\r\n }\r\n }\r\n function getSvgElement(displayable) {\r\n return displayable.__svgEl;\r\n }\r\n var SVGPainter = (function () {\r\n function SVGPainter(root, storage, opts, zrId) {\r\n this.type = 'svg';\r\n this.refreshHover = createMethodNotSupport('refreshHover');\r\n this.pathToImage = createMethodNotSupport('pathToImage');\r\n this.configLayer = createMethodNotSupport('configLayer');\r\n this.root = root;\r\n this.storage = storage;\r\n this._opts = opts = extend({}, opts || {});\r\n var svgDom = createElement('svg');\r\n svgDom.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\r\n svgDom.setAttribute('version', '1.1');\r\n svgDom.setAttribute('baseProfile', 'full');\r\n svgDom.style.cssText = 'user-select:none;position:absolute;left:0;top:0;';\r\n var bgRoot = createElement('g');\r\n svgDom.appendChild(bgRoot);\r\n var svgRoot = createElement('g');\r\n svgDom.appendChild(svgRoot);\r\n this._gradientManager = new GradientManager(zrId, svgRoot);\r\n this._patternManager = new PatternManager(zrId, svgRoot);\r\n this._clipPathManager = new ClippathManager(zrId, svgRoot);\r\n this._shadowManager = new ShadowManager(zrId, svgRoot);\r\n var viewport = document.createElement('div');\r\n viewport.style.cssText = 'overflow:hidden;position:relative';\r\n this._svgDom = svgDom;\r\n this._svgRoot = svgRoot;\r\n this._backgroundRoot = bgRoot;\r\n this._viewport = viewport;\r\n root.appendChild(viewport);\r\n viewport.appendChild(svgDom);\r\n this.resize(opts.width, opts.height);\r\n this._visibleList = [];\r\n }\r\n SVGPainter.prototype.getType = function () {\r\n return 'svg';\r\n };\r\n SVGPainter.prototype.getViewportRoot = function () {\r\n return this._viewport;\r\n };\r\n SVGPainter.prototype.getSvgDom = function () {\r\n return this._svgDom;\r\n };\r\n SVGPainter.prototype.getSvgRoot = function () {\r\n return this._svgRoot;\r\n };\r\n SVGPainter.prototype.getViewportRootOffset = function () {\r\n var viewportRoot = this.getViewportRoot();\r\n if (viewportRoot) {\r\n return {\r\n offsetLeft: viewportRoot.offsetLeft || 0,\r\n offsetTop: viewportRoot.offsetTop || 0\r\n };\r\n }\r\n };\r\n SVGPainter.prototype.refresh = function () {\r\n var list = this.storage.getDisplayList(true);\r\n this._paintList(list);\r\n };\r\n SVGPainter.prototype.setBackgroundColor = function (backgroundColor) {\r\n if (this._backgroundRoot && this._backgroundNode) {\r\n this._backgroundRoot.removeChild(this._backgroundNode);\r\n }\r\n var bgNode = createElement('rect');\r\n bgNode.setAttribute('width', this.getWidth());\r\n bgNode.setAttribute('height', this.getHeight());\r\n bgNode.setAttribute('x', 0);\r\n bgNode.setAttribute('y', 0);\r\n bgNode.setAttribute('id', 0);\r\n bgNode.style.fill = backgroundColor;\r\n this._backgroundRoot.appendChild(bgNode);\r\n this._backgroundNode = bgNode;\r\n };\r\n SVGPainter.prototype.createSVGElement = function (tag) {\r\n return createElement(tag);\r\n };\r\n SVGPainter.prototype.paintOne = function (el) {\r\n var svgProxy = getSvgProxy(el);\r\n svgProxy && svgProxy.brush(el);\r\n return getSvgElement(el);\r\n };\r\n SVGPainter.prototype._paintList = function (list) {\r\n var gradientManager = this._gradientManager;\r\n var patternManager = this._patternManager;\r\n var clipPathManager = this._clipPathManager;\r\n var shadowManager = this._shadowManager;\r\n gradientManager.markAllUnused();\r\n patternManager.markAllUnused();\r\n clipPathManager.markAllUnused();\r\n shadowManager.markAllUnused();\r\n var svgRoot = this._svgRoot;\r\n var visibleList = this._visibleList;\r\n var listLen = list.length;\r\n var newVisibleList = [];\r\n for (var i = 0; i < listLen; i++) {\r\n var displayable = list[i];\r\n var svgProxy = getSvgProxy(displayable);\r\n var svgElement = getSvgElement(displayable);\r\n if (!displayable.invisible) {\r\n if (displayable.__dirty || !svgElement) {\r\n svgProxy && svgProxy.brush(displayable);\r\n svgElement = getSvgElement(displayable);\r\n if (svgElement && displayable.style) {\r\n gradientManager.update(displayable.style.fill);\r\n gradientManager.update(displayable.style.stroke);\r\n patternManager.update(displayable.style.fill);\r\n patternManager.update(displayable.style.stroke);\r\n shadowManager.update(svgElement, displayable);\r\n }\r\n displayable.__dirty = 0;\r\n }\r\n if (svgElement) {\r\n newVisibleList.push(displayable);\r\n }\r\n }\r\n }\r\n var diff = arrayDiff(visibleList, newVisibleList);\r\n var prevSvgElement;\r\n var topPrevSvgElement;\r\n for (var i = 0; i < diff.length; i++) {\r\n var item = diff[i];\r\n if (item.removed) {\r\n for (var k = 0; k < item.count; k++) {\r\n var displayable = visibleList[item.indices[k]];\r\n var svgElement = getSvgElement(displayable);\r\n hasClipPath(displayable) ? removeFromMyParent(svgElement)\r\n : remove(svgRoot, svgElement);\r\n }\r\n }\r\n }\r\n var prevDisplayable;\r\n var currentClipGroup;\r\n for (var i = 0; i < diff.length; i++) {\r\n var item = diff[i];\r\n var isAdd = item.added;\r\n if (item.removed) {\r\n continue;\r\n }\r\n for (var k = 0; k < item.count; k++) {\r\n var displayable = newVisibleList[item.indices[k]];\r\n var clipGroup = clipPathManager.update(displayable, prevDisplayable);\r\n if (clipGroup !== currentClipGroup) {\r\n prevSvgElement = topPrevSvgElement;\r\n if (clipGroup) {\r\n prevSvgElement ? insertAfter(svgRoot, clipGroup, prevSvgElement)\r\n : prepend(svgRoot, clipGroup);\r\n topPrevSvgElement = clipGroup;\r\n prevSvgElement = null;\r\n }\r\n currentClipGroup = clipGroup;\r\n }\r\n var svgElement = getSvgElement(displayable);\r\n prevSvgElement\r\n ? insertAfter(currentClipGroup || svgRoot, svgElement, prevSvgElement)\r\n : prepend(currentClipGroup || svgRoot, svgElement);\r\n prevSvgElement = svgElement || prevSvgElement;\r\n if (!currentClipGroup) {\r\n topPrevSvgElement = prevSvgElement;\r\n }\r\n gradientManager.markUsed(displayable);\r\n gradientManager.addWithoutUpdate(svgElement, displayable);\r\n patternManager.markUsed(displayable);\r\n patternManager.addWithoutUpdate(svgElement, displayable);\r\n clipPathManager.markUsed(displayable);\r\n prevDisplayable = displayable;\r\n }\r\n }\r\n gradientManager.removeUnused();\r\n patternManager.removeUnused();\r\n clipPathManager.removeUnused();\r\n shadowManager.removeUnused();\r\n this._visibleList = newVisibleList;\r\n };\r\n SVGPainter.prototype._getDefs = function (isForceCreating) {\r\n var svgRoot = this._svgDom;\r\n var defs = svgRoot.getElementsByTagName('defs');\r\n if (defs.length === 0) {\r\n if (isForceCreating) {\r\n var defs_1 = svgRoot.insertBefore(createElement('defs'), svgRoot.firstChild);\r\n if (!defs_1.contains) {\r\n defs_1.contains = function (el) {\r\n var children = defs_1.children;\r\n if (!children) {\r\n return false;\r\n }\r\n for (var i = children.length - 1; i >= 0; --i) {\r\n if (children[i] === el) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n }\r\n return defs_1;\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n else {\r\n return defs[0];\r\n }\r\n };\r\n SVGPainter.prototype.resize = function (width, height) {\r\n var viewport = this._viewport;\r\n viewport.style.display = 'none';\r\n var opts = this._opts;\r\n width != null && (opts.width = width);\r\n height != null && (opts.height = height);\r\n width = this._getSize(0);\r\n height = this._getSize(1);\r\n viewport.style.display = '';\r\n if (this._width !== width || this._height !== height) {\r\n this._width = width;\r\n this._height = height;\r\n var viewportStyle = viewport.style;\r\n viewportStyle.width = width + 'px';\r\n viewportStyle.height = height + 'px';\r\n var svgRoot = this._svgDom;\r\n svgRoot.setAttribute('width', width + '');\r\n svgRoot.setAttribute('height', height + '');\r\n }\r\n if (this._backgroundNode) {\r\n this._backgroundNode.setAttribute('width', width);\r\n this._backgroundNode.setAttribute('height', height);\r\n }\r\n };\r\n SVGPainter.prototype.getWidth = function () {\r\n return this._width;\r\n };\r\n SVGPainter.prototype.getHeight = function () {\r\n return this._height;\r\n };\r\n SVGPainter.prototype._getSize = function (whIdx) {\r\n var opts = this._opts;\r\n var wh = ['width', 'height'][whIdx];\r\n var cwh = ['clientWidth', 'clientHeight'][whIdx];\r\n var plt = ['paddingLeft', 'paddingTop'][whIdx];\r\n var prb = ['paddingRight', 'paddingBottom'][whIdx];\r\n if (opts[wh] != null && opts[wh] !== 'auto') {\r\n return parseFloat(opts[wh]);\r\n }\r\n var root = this.root;\r\n var stl = document.defaultView.getComputedStyle(root);\r\n return ((root[cwh] || parseInt10$1(stl[wh]) || parseInt10$1(root.style[wh]))\r\n - (parseInt10$1(stl[plt]) || 0)\r\n - (parseInt10$1(stl[prb]) || 0)) | 0;\r\n };\r\n SVGPainter.prototype.dispose = function () {\r\n this.root.innerHTML = '';\r\n this._svgRoot\r\n = this._backgroundRoot\r\n = this._svgDom\r\n = this._backgroundNode\r\n = this._viewport\r\n = this.storage\r\n = null;\r\n };\r\n SVGPainter.prototype.clear = function () {\r\n var viewportNode = this._viewport;\r\n if (viewportNode && viewportNode.parentNode) {\r\n viewportNode.parentNode.removeChild(viewportNode);\r\n }\r\n };\r\n SVGPainter.prototype.toDataURL = function () {\r\n this.refresh();\r\n var html = encodeURIComponent(this._svgDom.outerHTML.replace(/></g, '>\\n\\r<'));\r\n return 'data:image/svg+xml;charset=UTF-8,' + html;\r\n };\r\n return SVGPainter;\r\n }());\r\n function createMethodNotSupport(method) {\r\n return function () {\r\n logError('In SVG mode painter not support method \"' + method + '\"');\r\n };\r\n }\n\n registerPainter('svg', SVGPainter);\n\n exports.Axis = Axis;\n exports.List = List;\n exports.Model = Model;\n exports.PRIORITY = PRIORITY;\n exports.color = color;\n exports.connect = connect;\n exports.dataTool = dataTool;\n exports.dependencies = dependencies;\n exports.disConnect = disConnect;\n exports.disconnect = disconnect;\n exports.dispose = dispose$1;\n exports.env = env;\n exports.extendChartView = extendChartView;\n exports.extendComponentModel = extendComponentModel;\n exports.extendComponentView = extendComponentView;\n exports.extendSeriesModel = extendSeriesModel;\n exports.format = format$1;\n exports.getCoordinateSystemDimensions = getCoordinateSystemDimensions;\n exports.getInstanceByDom = getInstanceByDom;\n exports.getInstanceById = getInstanceById;\n exports.getMap = getMap;\n exports.graphic = graphic$1;\n exports.helper = helper;\n exports.init = init$1;\n exports.innerDrawElementOnCanvas = brushSingle;\n exports.matrix = matrix;\n exports.number = number;\n exports.parseGeoJSON = parseGeoJSON;\n exports.parseGeoJson = parseGeoJson;\n exports.registerAction = registerAction;\n exports.registerCoordinateSystem = registerCoordinateSystem;\n exports.registerLayout = registerLayout;\n exports.registerLoading = registerLoading;\n exports.registerLocale = registerLocale;\n exports.registerMap = registerMap;\n exports.registerPostInit = registerPostInit;\n exports.registerPostUpdate = registerPostUpdate;\n exports.registerPreprocessor = registerPreprocessor;\n exports.registerProcessor = registerProcessor;\n exports.registerTheme = registerTheme;\n exports.registerTransform = registerTransform;\n exports.registerVisual = registerVisual;\n exports.setCanvasCreator = setCanvasCreator;\n exports.throttle = throttle;\n exports.time = time;\n exports.util = ecUtil;\n exports.vector = vector;\n exports.version = version$1;\n exports.zrender = zrender;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n\n"]}