Преглед изворни кода

Merge branch 'master' of http://182.92.126.35:3000/msx/Vent-App

bobo04052021@163.com пре 3 недеља
родитељ
комит
b082d1db37
100 измењених фајлова са 12 додато и 19096 уклоњено
  1. 11 0
      api/api.js
  2. 1 1
      common/service/config.service.js
  3. 0 108
      node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/core/fourPointsTransform.ts
  4. 0 155
      node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/core/matrix.ts
  5. 0 111
      node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/core/platform.ts
  6. 0 671
      node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/core/timsort.ts
  7. 0 98
      node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/core/types.ts
  8. 0 822
      node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/core/util.ts
  9. 0 210
      node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/core/vector.ts
  10. 0 123
      node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/debug/showDebugDirtyRect.ts
  11. 0 634
      node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/dom/HandlerProxy.ts
  12. 0 76
      node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/export.ts
  13. 0 5
      node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/global.d.ts
  14. 0 59
      node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/graphic/CompoundPath.ts
  15. 0 624
      node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/graphic/Displayable.ts
  16. 0 44
      node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/graphic/Gradient.ts
  17. 0 300
      node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/graphic/Group.ts
  18. 0 126
      node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/graphic/Image.ts
  19. 0 148
      node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/graphic/IncrementalDisplayable.ts
  20. 0 49
      node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/graphic/LinearGradient.ts
  21. 0 677
      node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/graphic/Path.ts
  22. 0 83
      node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/graphic/Pattern.ts
  23. 0 43
      node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/graphic/RadialGradient.ts
  24. 0 123
      node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/graphic/TSpan.ts
  25. 0 1039
      node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/graphic/Text.ts
  26. 0 4
      node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/graphic/constants.ts
  27. 0 106
      node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/graphic/helper/image.ts
  28. 0 764
      node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/graphic/helper/parseText.ts
  29. 0 43
      node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/graphic/helper/poly.ts
  30. 0 87
      node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/graphic/helper/roundRect.ts
  31. 0 321
      node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/graphic/helper/roundSector.ts
  32. 0 104
      node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/graphic/helper/smoothBezier.ts
  33. 0 58
      node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/graphic/helper/smoothSpline.ts
  34. 0 134
      node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/graphic/helper/subPixelOptimize.ts
  35. 0 58
      node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/graphic/shape/Arc.ts
  36. 0 138
      node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/graphic/shape/BezierCurve.ts
  37. 0 38
      node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/graphic/shape/Circle.ts
  38. 0 58
      node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/graphic/shape/Droplet.ts
  39. 0 49
      node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/graphic/shape/Ellipse.ts
  40. 0 51
      node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/graphic/shape/Heart.ts
  41. 0 60
      node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/graphic/shape/Isogon.ts
  42. 0 96
      node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/graphic/shape/Line.ts
  43. 0 38
      node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/graphic/shape/Polygon.ts
  44. 0 45
      node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/graphic/shape/Polyline.ts
  45. 0 79
      node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/graphic/shape/Rect.ts
  46. 0 41
      node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/graphic/shape/Ring.ts
  47. 0 76
      node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/graphic/shape/Rose.ts
  48. 0 56
      node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/graphic/shape/Sector.ts
  49. 0 76
      node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/graphic/shape/Star.ts
  50. 0 92
      node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/graphic/shape/Trochoid.ts
  51. 0 118
      node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/mixin/Draggable.ts
  52. 0 421
      node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/svg-legacy/Painter.ts
  53. 0 194
      node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/svg-legacy/graphic.ts
  54. 0 173
      node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/svg-legacy/helper/ClippathManager.ts
  55. 0 235
      node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/svg-legacy/helper/Definable.ts
  56. 0 225
      node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/svg-legacy/helper/GradientManager.ts
  57. 0 221
      node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/svg-legacy/helper/PatternManager.ts
  58. 0 149
      node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/svg-legacy/helper/ShadowManager.ts
  59. 0 4
      node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/svg-legacy/svg-legacy.ts
  60. 0 409
      node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/svg/Painter.ts
  61. 0 151
      node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/svg/SVGPathRebuilder.ts
  62. 0 206
      node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/svg/core.ts
  63. 0 366
      node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/svg/cssAnimation.ts
  64. 0 5
      node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/svg/cssClassId.ts
  65. 0 73
      node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/svg/cssEmphasis.ts
  66. 0 55
      node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/svg/domapi.ts
  67. 0 659
      node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/svg/graphic.ts
  68. 0 192
      node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/svg/helper.ts
  69. 0 110
      node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/svg/mapStyleToAttrs.ts
  70. 0 321
      node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/svg/patch.ts
  71. 0 4
      node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/svg/svg.ts
  72. 0 595
      node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/tool/color.ts
  73. 0 295
      node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/tool/convertPath.ts
  74. 0 406
      node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/tool/dividePath.ts
  75. 0 894
      node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/tool/morphPath.ts
  76. 0 954
      node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/tool/parseSVG.ts
  77. 0 22
      node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/tool/parseXML.ts
  78. 0 514
      node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/tool/path.ts
  79. 0 103
      node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/tool/transformPath.ts
  80. 0 562
      node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/zrender.ts
  81. 0 29
      node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/tsconfig.json
  82. 0 15
      node_modules/.store/echarts@5.5.1/node_modules/zrender/node_modules/tslib/CopyrightNotice.txt
  83. 0 12
      node_modules/.store/echarts@5.5.1/node_modules/zrender/node_modules/tslib/LICENSE.txt
  84. 0 164
      node_modules/.store/echarts@5.5.1/node_modules/zrender/node_modules/tslib/README.md
  85. 0 53
      node_modules/.store/echarts@5.5.1/node_modules/zrender/node_modules/tslib/modules/index.js
  86. 0 3
      node_modules/.store/echarts@5.5.1/node_modules/zrender/node_modules/tslib/modules/package.json
  87. 0 64
      node_modules/.store/echarts@5.5.1/node_modules/zrender/node_modules/tslib/package.json
  88. 0 130
      node_modules/.store/echarts@5.5.1/node_modules/zrender/node_modules/tslib/tslib.d.ts
  89. 0 1
      node_modules/.store/echarts@5.5.1/node_modules/zrender/node_modules/tslib/tslib.es6.html
  90. 0 239
      node_modules/.store/echarts@5.5.1/node_modules/zrender/node_modules/tslib/tslib.es6.js
  91. 0 1
      node_modules/.store/echarts@5.5.1/node_modules/zrender/node_modules/tslib/tslib.html
  92. 0 306
      node_modules/.store/echarts@5.5.1/node_modules/zrender/node_modules/tslib/tslib.js
  93. 0 15
      node_modules/.store/node_modules/zrender/node_modules/tslib/CopyrightNotice.txt
  94. 0 12
      node_modules/.store/node_modules/zrender/node_modules/tslib/LICENSE.txt
  95. 0 164
      node_modules/.store/node_modules/zrender/node_modules/tslib/README.md
  96. 0 53
      node_modules/.store/node_modules/zrender/node_modules/tslib/modules/index.js
  97. 0 3
      node_modules/.store/node_modules/zrender/node_modules/tslib/modules/package.json
  98. 0 64
      node_modules/.store/node_modules/zrender/node_modules/tslib/package.json
  99. 0 130
      node_modules/.store/node_modules/zrender/node_modules/tslib/tslib.d.ts
  100. 0 1
      node_modules/.store/node_modules/zrender/node_modules/tslib/tslib.es6.html

+ 11 - 0
api/api.js

@@ -14,6 +14,17 @@ const apiService = {
   getPermission(params) {
     return http.get("/sys/permissionNew/getUserPermissionByToken", params);
   },
+  //获取任务管理列表-瓦斯巡检
+  teamList(params) {
+    const url = buildURL("/safety/disTeamInfo/list", params);
+    return http.get(url);
+  },
+  //获取任务管理巡检地点列表-瓦斯巡检
+  taskDetailsList(params) {
+    const url = buildURL("/safety/gasDayReport/taskDetailsList", params);
+    return http.get(url);
+  },
+  
   /**
    * 单点登录
    */

+ 1 - 1
common/service/config.service.js

@@ -14,7 +14,7 @@ if (process.env.NODE_ENV == "development") {
   // BASE_URL = "http://172.16.53.16:9999"; // 
   // BASE_URL = "http://10.246.167.205:9999"; //上湾
   // BASE_URL = "http://172.30.157.9:9999"; //元子沟
-// BASE_URL = "http://10.246.167.205:9999"; //上湾
+  // BASE_URL = "http://10.246.167.205:9999"; //上湾
 }
 let staticDomainURL = BASE_URL + "/sys/common/static";
 

+ 0 - 108
node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/core/fourPointsTransform.ts

@@ -1,108 +0,0 @@
-/**
- * The algoritm is learnt from
- * https://franklinta.com/2014/09/08/computing-css-matrix3d-transforms/
- * And we made some optimization for matrix inversion.
- * Other similar approaches:
- * "cv::getPerspectiveTransform", "Direct Linear Transformation".
- */
-
-const LN2 = Math.log(2);
-
-function determinant(
-    rows: number[][],
-    rank: number,
-    rowStart: number,
-    rowMask: number,
-    colMask: number,
-    detCache: {[key: string]: number}
-) {
-    const cacheKey = rowMask + '-' + colMask;
-    const fullRank = rows.length;
-
-    if (detCache.hasOwnProperty(cacheKey)) {
-        return detCache[cacheKey];
-    }
-
-    if (rank === 1) {
-        // In this case the colMask must be like: `11101111`. We can find the place of `0`.
-        const colStart = Math.round(Math.log(((1 << fullRank) - 1) & ~colMask) / LN2);
-        return rows[rowStart][colStart];
-    }
-
-    const subRowMask = rowMask | (1 << rowStart);
-    let subRowStart = rowStart + 1;
-    while (rowMask & (1 << subRowStart)) {
-        subRowStart++;
-    }
-
-    let sum = 0;
-    for (let j = 0, colLocalIdx = 0; j < fullRank; j++) {
-        const colTag = 1 << j;
-        if (!(colTag & colMask)) {
-            sum += (colLocalIdx % 2 ? -1 : 1) * rows[rowStart][j]
-                // det(subMatrix(0, j))
-                * determinant(rows, rank - 1, subRowStart, subRowMask, colMask | colTag, detCache);
-            colLocalIdx++;
-        }
-    }
-
-    detCache[cacheKey] = sum;
-
-    return sum;
-}
-
-/**
- * Usage:
- * ```js
- * const transformer = buildTransformer(
- *     [10, 44, 100, 44, 100, 300, 10, 300],
- *     [50, 54, 130, 14, 140, 330, 14, 220]
- * );
- * const out = [];
- * transformer && transformer([11, 33], out);
- * ```
- *
- * Notice: `buildTransformer` may take more than 10ms in some Android device.
- *
- * @param src source four points, [x0, y0, x1, y1, x2, y2, x3, y3]
- * @param dest destination four points, [x0, y0, x1, y1, x2, y2, x3, y3]
- * @return transformer If fail, return null/undefined.
- */
-export function buildTransformer(src: number[], dest: number[]) {
-    const mA = [
-        [src[0], src[1], 1, 0, 0, 0, -dest[0] * src[0], -dest[0] * src[1]],
-        [0, 0, 0, src[0], src[1], 1, -dest[1] * src[0], -dest[1] * src[1]],
-        [src[2], src[3], 1, 0, 0, 0, -dest[2] * src[2], -dest[2] * src[3]],
-        [0, 0, 0, src[2], src[3], 1, -dest[3] * src[2], -dest[3] * src[3]],
-        [src[4], src[5], 1, 0, 0, 0, -dest[4] * src[4], -dest[4] * src[5]],
-        [0, 0, 0, src[4], src[5], 1, -dest[5] * src[4], -dest[5] * src[5]],
-        [src[6], src[7], 1, 0, 0, 0, -dest[6] * src[6], -dest[6] * src[7]],
-        [0, 0, 0, src[6], src[7], 1, -dest[7] * src[6], -dest[7] * src[7]]
-    ];
-
-    const detCache = {};
-    const det = determinant(mA, 8, 0, 0, 0, detCache);
-    if (det === 0) {
-        // can not make transformer when and only when
-        // any three of the markers are collinear.
-        return;
-    }
-
-    // `invert(mA) * dest`, that is, `adj(mA) / det * dest`.
-    const vh: number[] = [];
-    for (let i = 0; i < 8; i++) {
-        for (let j = 0; j < 8; j++) {
-            vh[j] == null && (vh[j] = 0);
-            vh[j] += ((i + j) % 2 ? -1 : 1)
-                // det(subMatrix(i, j))
-                * determinant(mA, 7, i === 0 ? 1 : 0, 1 << i, 1 << j, detCache)
-                / det * dest[i];
-        }
-    }
-
-    return function (out: number[], srcPointX: number, srcPointY: number) {
-        const pk = srcPointX * vh[6] + srcPointY * vh[7] + 1;
-        out[0] = (srcPointX * vh[0] + srcPointY * vh[1] + vh[2]) / pk;
-        out[1] = (srcPointX * vh[3] + srcPointY * vh[4] + vh[5]) / pk;
-    };
-}

+ 0 - 155
node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/core/matrix.ts

@@ -1,155 +0,0 @@
-/**
- * 3x2矩阵操作类
- * @exports zrender/tool/matrix
- */
-
-/* global Float32Array */
-
-import {VectorArray} from './vector';
-
-export type MatrixArray = number[]
-/**
- * Create a identity matrix.
- */
-export function create(): MatrixArray {
-    return [1, 0, 0, 1, 0, 0];
-}
-
-/**
- * 设置矩阵为单位矩阵
- */
-export function identity(out: MatrixArray): MatrixArray {
-    out[0] = 1;
-    out[1] = 0;
-    out[2] = 0;
-    out[3] = 1;
-    out[4] = 0;
-    out[5] = 0;
-    return out;
-}
-
-/**
- * 复制矩阵
- */
-export function copy(out: MatrixArray, m: MatrixArray): MatrixArray {
-    out[0] = m[0];
-    out[1] = m[1];
-    out[2] = m[2];
-    out[3] = m[3];
-    out[4] = m[4];
-    out[5] = m[5];
-    return out;
-}
-
-/**
- * 矩阵相乘
- */
-export function mul(out: MatrixArray, m1: MatrixArray, m2: MatrixArray): MatrixArray {
-    // Consider matrix.mul(m, m2, m);
-    // where out is the same as m2.
-    // So use temp constiable to escape error.
-    const out0 = m1[0] * m2[0] + m1[2] * m2[1];
-    const out1 = m1[1] * m2[0] + m1[3] * m2[1];
-    const out2 = m1[0] * m2[2] + m1[2] * m2[3];
-    const out3 = m1[1] * m2[2] + m1[3] * m2[3];
-    const out4 = m1[0] * m2[4] + m1[2] * m2[5] + m1[4];
-    const out5 = m1[1] * m2[4] + m1[3] * m2[5] + m1[5];
-    out[0] = out0;
-    out[1] = out1;
-    out[2] = out2;
-    out[3] = out3;
-    out[4] = out4;
-    out[5] = out5;
-    return out;
-}
-
-/**
- * 平移变换
- */
-export function translate(out: MatrixArray, a: MatrixArray, v: VectorArray): MatrixArray {
-    out[0] = a[0];
-    out[1] = a[1];
-    out[2] = a[2];
-    out[3] = a[3];
-    out[4] = a[4] + v[0];
-    out[5] = a[5] + v[1];
-    return out;
-}
-
-/**
- * 旋转变换
- */
-export function rotate(
-    out: MatrixArray,
-    a: MatrixArray,
-    rad: number,
-    pivot: VectorArray = [0, 0]
-): MatrixArray {
-    const aa = a[0];
-    const ac = a[2];
-    const atx = a[4];
-    const ab = a[1];
-    const ad = a[3];
-    const aty = a[5];
-    const st = Math.sin(rad);
-    const ct = Math.cos(rad);
-
-    out[0] = aa * ct + ab * st;
-    out[1] = -aa * st + ab * ct;
-    out[2] = ac * ct + ad * st;
-    out[3] = -ac * st + ct * ad;
-    out[4] = ct * (atx - pivot[0]) + st * (aty - pivot[1]) + pivot[0];
-    out[5] = ct * (aty - pivot[1]) - st * (atx - pivot[0]) + pivot[1];
-    return out;
-}
-
-/**
- * 缩放变换
- */
-export function scale(out: MatrixArray, a: MatrixArray, v: VectorArray): MatrixArray {
-    const vx = v[0];
-    const vy = v[1];
-    out[0] = a[0] * vx;
-    out[1] = a[1] * vy;
-    out[2] = a[2] * vx;
-    out[3] = a[3] * vy;
-    out[4] = a[4] * vx;
-    out[5] = a[5] * vy;
-    return out;
-}
-
-/**
- * 求逆矩阵
- */
-export function invert(out: MatrixArray, a: MatrixArray): MatrixArray | null {
-
-    const aa = a[0];
-    const ac = a[2];
-    const atx = a[4];
-    const ab = a[1];
-    const ad = a[3];
-    const aty = a[5];
-
-    let det = aa * ad - ab * ac;
-    if (!det) {
-        return null;
-    }
-    det = 1.0 / det;
-
-    out[0] = ad * det;
-    out[1] = -ab * det;
-    out[2] = -ac * det;
-    out[3] = aa * det;
-    out[4] = (ac * aty - ad * atx) * det;
-    out[5] = (ab * atx - aa * aty) * det;
-    return out;
-}
-
-/**
- * Clone a new matrix.
- */
-export function clone(a: MatrixArray): MatrixArray {
-    const b = create();
-    copy(b, a);
-    return b;
-}

+ 0 - 111
node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/core/platform.ts

@@ -1,111 +0,0 @@
-export const DEFAULT_FONT_SIZE = 12;
-export const DEFAULT_FONT_FAMILY = 'sans-serif';
-export const DEFAULT_FONT = `${DEFAULT_FONT_SIZE}px ${DEFAULT_FONT_FAMILY}`;
-
-interface Platform {
-    // TODO CanvasLike?
-    createCanvas(): HTMLCanvasElement
-    measureText(text: string, font?: string): { width: number }
-    loadImage(
-        src: string,
-        onload: () => void | HTMLImageElement['onload'],
-        onerror: () => void | HTMLImageElement['onerror']
-    ): HTMLImageElement
-}
-
-// Text width map used for environment there is no canvas
-// Only common ascii is used for size concern.
-
-// Generated from following code
-//
-// ctx.font = '12px sans-serif';
-// const asciiRange = [32, 126];
-// let mapStr = '';
-// for (let i = asciiRange[0]; i <= asciiRange[1]; i++) {
-//     const char = String.fromCharCode(i);
-//     const width = ctx.measureText(char).width;
-//     const ratio = Math.round(width / 12 * 100);
-//     mapStr += String.fromCharCode(ratio + 20))
-// }
-// mapStr.replace(/\\/g, '\\\\');
-const OFFSET = 20;
-const SCALE = 100;
-// TODO other basic fonts?
-// eslint-disable-next-line
-const defaultWidthMapStr = `007LLmW'55;N0500LLLLLLLLLL00NNNLzWW\\\\WQb\\0FWLg\\bWb\\WQ\\WrWWQ000CL5LLFLL0LL**F*gLLLL5F0LF\\FFF5.5N`;
-
-function getTextWidthMap(mapStr: string): Record<string, number> {
-    const map: Record<string, number> = {};
-    if (typeof JSON === 'undefined') {
-        return map;
-    }
-    for (let i = 0; i < mapStr.length; i++) {
-        const char = String.fromCharCode(i + 32);
-        const size = (mapStr.charCodeAt(i) - OFFSET) / SCALE;
-        map[char] = size;
-    }
-    return map;
-}
-
-export const DEFAULT_TEXT_WIDTH_MAP = getTextWidthMap(defaultWidthMapStr);
-
-export const platformApi: Platform = {
-    // Export methods
-    createCanvas() {
-        return typeof document !== 'undefined'
-            && document.createElement('canvas');
-    },
-
-    measureText: (function () {
-
-        let _ctx: CanvasRenderingContext2D;
-        let _cachedFont: string;
-        return (text: string, font?: string) => {
-            if (!_ctx) {
-                const canvas = platformApi.createCanvas();
-                _ctx = canvas && canvas.getContext('2d');
-            }
-            if (_ctx) {
-                if (_cachedFont !== font) {
-                    _cachedFont = _ctx.font = font || DEFAULT_FONT;
-                }
-                return _ctx.measureText(text);
-            }
-            else {
-                text = text || '';
-                font = font || DEFAULT_FONT;
-                // Use font size if there is no other method can be used.
-                const res = /((?:\d+)?\.?\d*)px/.exec(font);
-                const fontSize = res && +res[1] || DEFAULT_FONT_SIZE;
-                let width = 0;
-                if (font.indexOf('mono') >= 0) {   // is monospace
-                    width = fontSize * text.length;
-                }
-                else {
-                    for (let i = 0; i < text.length; i++) {
-                        const preCalcWidth = DEFAULT_TEXT_WIDTH_MAP[text[i]];
-                        width += preCalcWidth == null ? fontSize : (preCalcWidth * fontSize);
-                    }
-                }
-                return { width };
-            }
-        };
-    })(),
-
-    loadImage(src, onload, onerror) {
-        const image = new Image();
-        image.onload = onload;
-        image.onerror = onerror;
-        image.src = src;
-        return image;
-    }
-};
-
-export function setPlatformAPI(newPlatformApis: Partial<Platform>) {
-    for (let key in platformApi) {
-        // Don't assign unknown methods.
-        if ((newPlatformApis as any)[key]) {
-            (platformApi as any)[key] = (newPlatformApis as any)[key];
-        }
-    }
-}

+ 0 - 671
node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/core/timsort.ts

@@ -1,671 +0,0 @@
-// https://github.com/mziccard/node-timsort
-const DEFAULT_MIN_MERGE = 32;
-
-const DEFAULT_MIN_GALLOPING = 7;
-
-type CompareFunc<T> =(a: T, b: T) => number
-
-function minRunLength(n: number): number {
-    var r = 0;
-
-    while (n >= DEFAULT_MIN_MERGE) {
-        r |= n & 1;
-        n >>= 1;
-    }
-
-    return n + r;
-}
-
-function makeAscendingRun<T>(array: T[], lo: number, hi: number, compare: CompareFunc<T>) {
-    var runHi = lo + 1;
-
-    if (runHi === hi) {
-        return 1;
-    }
-
-    if (compare(array[runHi++], array[lo]) < 0) {
-        while (runHi < hi && compare(array[runHi], array[runHi - 1]) < 0) {
-            runHi++;
-        }
-
-        reverseRun<T>(array, lo, runHi);
-    }
-    else {
-        while (runHi < hi && compare(array[runHi], array[runHi - 1]) >= 0) {
-            runHi++;
-        }
-    }
-
-    return runHi - lo;
-}
-
-function reverseRun<T>(array: T[], lo: number, hi: number) {
-    hi--;
-
-    while (lo < hi) {
-        var t = array[lo];
-        array[lo++] = array[hi];
-        array[hi--] = t;
-    }
-}
-
-function binaryInsertionSort<T>(array: T[], lo: number, hi: number, start: number, compare: CompareFunc<T>) {
-    if (start === lo) {
-        start++;
-    }
-
-    for (; start < hi; start++) {
-        var pivot = array[start];
-
-        var left = lo;
-        var right = start;
-        var mid;
-
-        while (left < right) {
-            mid = left + right >>> 1;
-
-            if (compare(pivot, array[mid]) < 0) {
-                right = mid;
-            }
-            else {
-                left = mid + 1;
-            }
-        }
-
-        var n = start - left;
-
-        switch (n) {
-            case 3:
-                array[left + 3] = array[left + 2];
-
-            case 2:
-                array[left + 2] = array[left + 1];
-
-            case 1:
-                array[left + 1] = array[left];
-                break;
-            default:
-                while (n > 0) {
-                    array[left + n] = array[left + n - 1];
-                    n--;
-                }
-        }
-
-        array[left] = pivot;
-    }
-}
-
-function gallopLeft<T>(value: T, array: T[], start: number, length: number, hint: number, compare: CompareFunc<T>) {
-    var lastOffset = 0;
-    var maxOffset = 0;
-    var offset = 1;
-
-    if (compare(value, array[start + hint]) > 0) {
-        maxOffset = length - hint;
-
-        while (offset < maxOffset && compare(value, array[start + hint + offset]) > 0) {
-            lastOffset = offset;
-            offset = (offset << 1) + 1;
-
-            if (offset <= 0) {
-                offset = maxOffset;
-            }
-        }
-
-        if (offset > maxOffset) {
-            offset = maxOffset;
-        }
-
-        lastOffset += hint;
-        offset += hint;
-    }
-    else {
-        maxOffset = hint + 1;
-        while (offset < maxOffset && compare(value, array[start + hint - offset]) <= 0) {
-            lastOffset = offset;
-            offset = (offset << 1) + 1;
-
-            if (offset <= 0) {
-                offset = maxOffset;
-            }
-        }
-        if (offset > maxOffset) {
-            offset = maxOffset;
-        }
-
-        var tmp = lastOffset;
-        lastOffset = hint - offset;
-        offset = hint - tmp;
-    }
-
-    lastOffset++;
-    while (lastOffset < offset) {
-        var m = lastOffset + (offset - lastOffset >>> 1);
-
-        if (compare(value, array[start + m]) > 0) {
-            lastOffset = m + 1;
-        }
-        else {
-            offset = m;
-        }
-    }
-    return offset;
-}
-
-function gallopRight<T>(value: T, array: T[], start: number, length: number, hint: number, compare: CompareFunc<T>) {
-    var lastOffset = 0;
-    var maxOffset = 0;
-    var offset = 1;
-
-    if (compare(value, array[start + hint]) < 0) {
-        maxOffset = hint + 1;
-
-        while (offset < maxOffset && compare(value, array[start + hint - offset]) < 0) {
-            lastOffset = offset;
-            offset = (offset << 1) + 1;
-
-            if (offset <= 0) {
-                offset = maxOffset;
-            }
-        }
-
-        if (offset > maxOffset) {
-            offset = maxOffset;
-        }
-
-        var tmp = lastOffset;
-        lastOffset = hint - offset;
-        offset = hint - tmp;
-    }
-    else {
-        maxOffset = length - hint;
-
-        while (offset < maxOffset && compare(value, array[start + hint + offset]) >= 0) {
-            lastOffset = offset;
-            offset = (offset << 1) + 1;
-
-            if (offset <= 0) {
-                offset = maxOffset;
-            }
-        }
-
-        if (offset > maxOffset) {
-            offset = maxOffset;
-        }
-
-        lastOffset += hint;
-        offset += hint;
-    }
-
-    lastOffset++;
-
-    while (lastOffset < offset) {
-        var m = lastOffset + (offset - lastOffset >>> 1);
-
-        if (compare(value, array[start + m]) < 0) {
-            offset = m;
-        }
-        else {
-            lastOffset = m + 1;
-        }
-    }
-
-    return offset;
-}
-
-function TimSort<T>(array: T[], compare: CompareFunc<T>) {
-    let minGallop = DEFAULT_MIN_GALLOPING;
-    let runStart: number[];
-    let runLength: number[];
-    let stackSize = 0;
-
-    var tmp: T[] = [];
-
-    runStart = [];
-    runLength = [];
-
-    function pushRun(_runStart: number, _runLength: number) {
-        runStart[stackSize] = _runStart;
-        runLength[stackSize] = _runLength;
-        stackSize += 1;
-    }
-
-    function mergeRuns() {
-        while (stackSize > 1) {
-            var n = stackSize - 2;
-
-            if (
-                (n >= 1 && runLength[n - 1] <= runLength[n] + runLength[n + 1])
-                || (n >= 2 && runLength[n - 2] <= runLength[n] + runLength[n - 1])
-            ) {
-                if (runLength[n - 1] < runLength[n + 1]) {
-                    n--;
-                }
-            }
-            else if (runLength[n] > runLength[n + 1]) {
-                break;
-            }
-            mergeAt(n);
-        }
-    }
-
-    function forceMergeRuns() {
-        while (stackSize > 1) {
-            var n = stackSize - 2;
-
-            if (n > 0 && runLength[n - 1] < runLength[n + 1]) {
-                n--;
-            }
-
-            mergeAt(n);
-        }
-    }
-
-    function mergeAt(i: number) {
-        var start1 = runStart[i];
-        var length1 = runLength[i];
-        var start2 = runStart[i + 1];
-        var length2 = runLength[i + 1];
-
-        runLength[i] = length1 + length2;
-
-        if (i === stackSize - 3) {
-            runStart[i + 1] = runStart[i + 2];
-            runLength[i + 1] = runLength[i + 2];
-        }
-
-        stackSize--;
-
-        var k = gallopRight<T>(array[start2], array, start1, length1, 0, compare);
-        start1 += k;
-        length1 -= k;
-
-        if (length1 === 0) {
-            return;
-        }
-
-        length2 = gallopLeft<T>(array[start1 + length1 - 1], array, start2, length2, length2 - 1, compare);
-
-        if (length2 === 0) {
-            return;
-        }
-
-        if (length1 <= length2) {
-            mergeLow(start1, length1, start2, length2);
-        }
-        else {
-            mergeHigh(start1, length1, start2, length2);
-        }
-    }
-
-    function mergeLow(start1: number, length1: number, start2: number, length2: number) {
-        var i = 0;
-
-        for (i = 0; i < length1; i++) {
-            tmp[i] = array[start1 + i];
-        }
-
-        var cursor1 = 0;
-        var cursor2 = start2;
-        var dest = start1;
-
-        array[dest++] = array[cursor2++];
-
-        if (--length2 === 0) {
-            for (i = 0; i < length1; i++) {
-                array[dest + i] = tmp[cursor1 + i];
-            }
-            return;
-        }
-
-        if (length1 === 1) {
-            for (i = 0; i < length2; i++) {
-                array[dest + i] = array[cursor2 + i];
-            }
-            array[dest + length2] = tmp[cursor1];
-            return;
-        }
-
-        var _minGallop = minGallop;
-        var count1;
-        var count2;
-        var exit;
-
-        while (1) {
-            count1 = 0;
-            count2 = 0;
-            exit = false;
-
-            do {
-                if (compare(array[cursor2], tmp[cursor1]) < 0) {
-                    array[dest++] = array[cursor2++];
-                    count2++;
-                    count1 = 0;
-
-                    if (--length2 === 0) {
-                        exit = true;
-                        break;
-                    }
-                }
-                else {
-                    array[dest++] = tmp[cursor1++];
-                    count1++;
-                    count2 = 0;
-                    if (--length1 === 1) {
-                        exit = true;
-                        break;
-                    }
-                }
-            } while ((count1 | count2) < _minGallop);
-
-            if (exit) {
-                break;
-            }
-
-            do {
-                count1 = gallopRight<T>(array[cursor2], tmp, cursor1, length1, 0, compare);
-
-                if (count1 !== 0) {
-                    for (i = 0; i < count1; i++) {
-                        array[dest + i] = tmp[cursor1 + i];
-                    }
-
-                    dest += count1;
-                    cursor1 += count1;
-                    length1 -= count1;
-                    if (length1 <= 1) {
-                        exit = true;
-                        break;
-                    }
-                }
-
-                array[dest++] = array[cursor2++];
-
-                if (--length2 === 0) {
-                    exit = true;
-                    break;
-                }
-
-                count2 = gallopLeft<T>(tmp[cursor1], array, cursor2, length2, 0, compare);
-
-                if (count2 !== 0) {
-                    for (i = 0; i < count2; i++) {
-                        array[dest + i] = array[cursor2 + i];
-                    }
-
-                    dest += count2;
-                    cursor2 += count2;
-                    length2 -= count2;
-
-                    if (length2 === 0) {
-                        exit = true;
-                        break;
-                    }
-                }
-                array[dest++] = tmp[cursor1++];
-
-                if (--length1 === 1) {
-                    exit = true;
-                    break;
-                }
-
-                _minGallop--;
-            } while (count1 >= DEFAULT_MIN_GALLOPING || count2 >= DEFAULT_MIN_GALLOPING);
-
-            if (exit) {
-                break;
-            }
-
-            if (_minGallop < 0) {
-                _minGallop = 0;
-            }
-
-            _minGallop += 2;
-        }
-
-        minGallop = _minGallop;
-
-        minGallop < 1 && (minGallop = 1);
-
-        if (length1 === 1) {
-            for (i = 0; i < length2; i++) {
-                array[dest + i] = array[cursor2 + i];
-            }
-            array[dest + length2] = tmp[cursor1];
-        }
-        else if (length1 === 0) {
-            throw new Error();
-        }
-        else {
-            for (i = 0; i < length1; i++) {
-                array[dest + i] = tmp[cursor1 + i];
-            }
-        }
-    }
-
-    function mergeHigh(start1: number, length1: number, start2: number, length2: number) {
-        var i = 0;
-
-        for (i = 0; i < length2; i++) {
-            tmp[i] = array[start2 + i];
-        }
-
-        var cursor1 = start1 + length1 - 1;
-        var cursor2 = length2 - 1;
-        var dest = start2 + length2 - 1;
-        var customCursor = 0;
-        var customDest = 0;
-
-        array[dest--] = array[cursor1--];
-
-        if (--length1 === 0) {
-            customCursor = dest - (length2 - 1);
-
-            for (i = 0; i < length2; i++) {
-                array[customCursor + i] = tmp[i];
-            }
-
-            return;
-        }
-
-        if (length2 === 1) {
-            dest -= length1;
-            cursor1 -= length1;
-            customDest = dest + 1;
-            customCursor = cursor1 + 1;
-
-            for (i = length1 - 1; i >= 0; i--) {
-                array[customDest + i] = array[customCursor + i];
-            }
-
-            array[dest] = tmp[cursor2];
-            return;
-        }
-
-        var _minGallop = minGallop;
-
-        while (true) {
-            var count1 = 0;
-            var count2 = 0;
-            var exit = false;
-
-            do {
-                if (compare(tmp[cursor2], array[cursor1]) < 0) {
-                    array[dest--] = array[cursor1--];
-                    count1++;
-                    count2 = 0;
-                    if (--length1 === 0) {
-                        exit = true;
-                        break;
-                    }
-                }
-                else {
-                    array[dest--] = tmp[cursor2--];
-                    count2++;
-                    count1 = 0;
-                    if (--length2 === 1) {
-                        exit = true;
-                        break;
-                    }
-                }
-            } while ((count1 | count2) < _minGallop);
-
-            if (exit) {
-                break;
-            }
-
-            do {
-                count1 = length1 - gallopRight<T>(tmp[cursor2], array, start1, length1, length1 - 1, compare);
-
-                if (count1 !== 0) {
-                    dest -= count1;
-                    cursor1 -= count1;
-                    length1 -= count1;
-                    customDest = dest + 1;
-                    customCursor = cursor1 + 1;
-
-                    for (i = count1 - 1; i >= 0; i--) {
-                        array[customDest + i] = array[customCursor + i];
-                    }
-
-                    if (length1 === 0) {
-                        exit = true;
-                        break;
-                    }
-                }
-
-                array[dest--] = tmp[cursor2--];
-
-                if (--length2 === 1) {
-                    exit = true;
-                    break;
-                }
-
-                count2 = length2 - gallopLeft<T>(array[cursor1], tmp, 0, length2, length2 - 1, compare);
-
-                if (count2 !== 0) {
-                    dest -= count2;
-                    cursor2 -= count2;
-                    length2 -= count2;
-                    customDest = dest + 1;
-                    customCursor = cursor2 + 1;
-
-                    for (i = 0; i < count2; i++) {
-                        array[customDest + i] = tmp[customCursor + i];
-                    }
-
-                    if (length2 <= 1) {
-                        exit = true;
-                        break;
-                    }
-                }
-
-                array[dest--] = array[cursor1--];
-
-                if (--length1 === 0) {
-                    exit = true;
-                    break;
-                }
-
-                _minGallop--;
-            } while (count1 >= DEFAULT_MIN_GALLOPING || count2 >= DEFAULT_MIN_GALLOPING);
-
-            if (exit) {
-                break;
-            }
-
-            if (_minGallop < 0) {
-                _minGallop = 0;
-            }
-
-            _minGallop += 2;
-        }
-
-        minGallop = _minGallop;
-
-        if (minGallop < 1) {
-            minGallop = 1;
-        }
-
-        if (length2 === 1) {
-            dest -= length1;
-            cursor1 -= length1;
-            customDest = dest + 1;
-            customCursor = cursor1 + 1;
-
-            for (i = length1 - 1; i >= 0; i--) {
-                array[customDest + i] = array[customCursor + i];
-            }
-
-            array[dest] = tmp[cursor2];
-        }
-        else if (length2 === 0) {
-            throw new Error();
-            // throw new Error('mergeHigh preconditions were not respected');
-        }
-        else {
-            customCursor = dest - (length2 - 1);
-            for (i = 0; i < length2; i++) {
-                array[customCursor + i] = tmp[i];
-            }
-        }
-    }
-
-    return {
-        mergeRuns,
-        forceMergeRuns,
-        pushRun
-    };
-}
-
-export default function sort<T>(
-    array: T[],
-    compare: CompareFunc<T>,
-    lo?: number, hi?: number
-) {
-    if (!lo) {
-        lo = 0;
-    }
-    if (!hi) {
-        hi = array.length;
-    }
-
-    var remaining = hi - lo;
-
-    if (remaining < 2) {
-        return;
-    }
-
-    var runLength = 0;
-
-    if (remaining < DEFAULT_MIN_MERGE) {
-        runLength = makeAscendingRun<T>(array, lo, hi, compare);
-        binaryInsertionSort<T>(array, lo, hi, lo + runLength, compare);
-        return;
-    }
-
-    var ts = TimSort<T>(array, compare);
-
-    var minRun = minRunLength(remaining);
-
-    do {
-        runLength = makeAscendingRun<T>(array, lo, hi, compare);
-        if (runLength < minRun) {
-            var force = remaining;
-            if (force > minRun) {
-                force = minRun;
-            }
-
-            binaryInsertionSort<T>(array, lo, lo + force, lo + runLength, compare);
-            runLength = force;
-        }
-
-        ts.pushRun(lo, runLength);
-        ts.mergeRuns();
-
-        remaining -= runLength;
-        lo += runLength;
-    } while (remaining !== 0);
-
-    ts.forceMergeRuns();
-}

+ 0 - 98
node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/core/types.ts

@@ -1,98 +0,0 @@
-export type Dictionary<T> = {
-    [key: string]: T
-}
-
-/**
- * Not readonly ArrayLike
- * Include Array, TypedArray
- */
-export type ArrayLike<T> = {
-    [key: number]: T
-    length: number
-}
-
-export type ImageLike = HTMLImageElement | HTMLCanvasElement | HTMLVideoElement
-
-// subset of CanvasTextBaseline
-export type TextVerticalAlign = 'top' | 'middle' | 'bottom'
-    // | 'center' // DEPRECATED
-
-// TODO: Have not support 'start', 'end' yet.
-// subset of CanvasTextAlign
-export type TextAlign = 'left' | 'center' | 'right'
-    // | 'middle' // DEPRECATED
-
-export type FontWeight = 'normal' | 'bold' | 'bolder' | 'lighter' | number;
-export type FontStyle = 'normal' | 'italic' | 'oblique';
-
-export type BuiltinTextPosition = 'left' | 'right' | 'top' | 'bottom' | 'inside'
-    | 'insideLeft' | 'insideRight' | 'insideTop' | 'insideBottom'
-    | 'insideTopLeft' | 'insideTopRight'| 'insideBottomLeft' | 'insideBottomRight';
-
-export type WXCanvasRenderingContext = CanvasRenderingContext2D & {
-    draw: () => void
-};
-
-export type ZRCanvasRenderingContext = CanvasRenderingContext2D & {
-    dpr: number
-    __attrCachedBy: boolean | number
-}
-
-// Properties zrender will extended to the raw event
-type ZREventProperties = {
-    zrX: number
-    zrY: number
-    zrDelta: number
-
-    // 'no_globalout' means: do not trigger "globalout" event to zr user.
-    // 'only_globalout" means: only trigger "globalout" event, but do not
-    //     trigger other event to zr user.
-    zrEventControl: 'no_globalout' | 'only_globalout'
-
-    zrByTouch: boolean
-}
-
-export type ZRRawMouseEvent = MouseEvent & ZREventProperties
-export type ZRRawTouchEvent = TouchEvent & ZREventProperties
-export type ZRRawPointerEvent = TouchEvent & ZREventProperties
-
-export type ZRRawEvent = ZRRawMouseEvent | ZRRawTouchEvent | ZRRawPointerEvent
-
-export type ZRPinchEvent = ZRRawEvent & {
-    pinchScale: number
-    pinchX: number
-    pinchY: number
-    gestureEvent: string
-}
-
-export type ElementEventName = 'click' | 'dblclick' | 'mousewheel' | 'mouseout' |
-    'mouseover' | 'mouseup' | 'mousedown' | 'mousemove' | 'contextmenu' |
-    'drag' | 'dragstart' | 'dragend' | 'dragenter' | 'dragleave' | 'dragover' | 'drop' | 'globalout';
-
-export type ElementEventNameWithOn = 'onclick' | 'ondblclick' | 'onmousewheel' | 'onmouseout' |
-    'onmouseup' | 'onmousedown' | 'onmousemove' | 'oncontextmenu' |
-    'ondrag' | 'ondragstart' | 'ondragend' | 'ondragenter' | 'ondragleave' | 'ondragover' | 'ondrop';
-
-export type RenderedEvent = {
-    elapsedTime: number
-};
-
-// Useful type methods
-export type PropType<TObj, TProp extends keyof TObj> = TObj[TProp];
-
-export type AllPropTypes<T> = PropType<T, keyof T>
-
-export type FunctionPropertyNames<T> = {[K in keyof T]: T[K] extends Function ? K : never}[keyof T];
-
-export type MapToType<T extends Dictionary<any>, S> = {
-    [P in keyof T]: T[P] extends Dictionary<any> ? MapToType<T[P], S> : S
-}
-
-// See https://www.staging-typescript.org/docs/handbook/advanced-types.html#distributive-conditional-types
-// For the case:
-// `keyof A | B` does not equals to `Keyof A | Keyof B`
-// KeyOfDistributive<A | B> equals to `KeyOfDistributive<A> | KeyOfDistributive<B>`
-export type KeyOfDistributive<T> = T extends unknown ? keyof T : never;
-
-export type WithThisType<Func extends (...args: any) => any, This> =
-    (this: This, ...args: Parameters<Func>) => ReturnType<Func>;

+ 0 - 822
node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/core/util.ts

@@ -1,822 +0,0 @@
-/* global: defineProperty */
-import { Dictionary, ArrayLike, KeyOfDistributive } from './types';
-import { GradientObject } from '../graphic/Gradient';
-import { ImagePatternObject } from '../graphic/Pattern';
-import { platformApi } from './platform';
-
-// 用于处理merge时无法遍历Date等对象的问题
-const BUILTIN_OBJECT: Record<string, boolean> = reduce([
-    'Function',
-    'RegExp',
-    'Date',
-    'Error',
-    'CanvasGradient',
-    'CanvasPattern',
-    // For node-canvas
-    'Image',
-    'Canvas'
-], (obj, val) => {
-    obj['[object ' + val + ']'] = true;
-    return obj;
-}, {} as Record<string, boolean>);
-
-const TYPED_ARRAY: Record<string, boolean> = reduce([
-    'Int8',
-    'Uint8',
-    'Uint8Clamped',
-    'Int16',
-    'Uint16',
-    'Int32',
-    'Uint32',
-    'Float32',
-    'Float64'
-], (obj, val) => {
-    obj['[object ' + val + 'Array]'] = true;
-    return obj;
-}, {} as Record<string, boolean>);
-
-const objToString = Object.prototype.toString;
-
-const arrayProto = Array.prototype;
-const nativeForEach = arrayProto.forEach;
-const nativeFilter = arrayProto.filter;
-const nativeSlice = arrayProto.slice;
-const nativeMap = arrayProto.map;
-// In case some env may redefine the global variable `Function`.
-const ctorFunction = function () {}.constructor;
-const protoFunction = ctorFunction ? ctorFunction.prototype : null;
-const protoKey = '__proto__';
-
-
-let idStart = 0x0907;
-
-/**
- * Generate unique id
- */
-export function guid(): number {
-    return idStart++;
-}
-
-export function logError(...args: any[]) {
-    if (typeof console !== 'undefined') {
-        console.error.apply(console, args);
-    }
-}
-/**
- * Those data types can be cloned:
- *     Plain object, Array, TypedArray, number, string, null, undefined.
- * Those data types will be assigned using the original data:
- *     BUILTIN_OBJECT
- * Instance of user defined class will be cloned to a plain object, without
- * properties in prototype.
- * Other data types is not supported (not sure what will happen).
- *
- * Caution: do not support clone Date, for performance consideration.
- * (There might be a large number of date in `series.data`).
- * So date should not be modified in and out of echarts.
- */
-export function clone<T extends any>(source: T): T {
-    if (source == null || typeof source !== 'object') {
-        return source;
-    }
-
-    let result = source as any;
-    const typeStr = <string>objToString.call(source);
-
-    if (typeStr === '[object Array]') {
-        if (!isPrimitive(source)) {
-            result = [] as any;
-            for (let i = 0, len = (source as any[]).length; i < len; i++) {
-                result[i] = clone((source as any[])[i]);
-            }
-        }
-    }
-    else if (TYPED_ARRAY[typeStr]) {
-        if (!isPrimitive(source)) {
-            /* eslint-disable-next-line */
-            const Ctor = source.constructor as typeof Float32Array;
-            if (Ctor.from) {
-                result = Ctor.from(source as Float32Array);
-            }
-            else {
-                result = new Ctor((source as Float32Array).length);
-                for (let i = 0, len = (source as Float32Array).length; i < len; i++) {
-                    result[i] = (source as Float32Array)[i];
-                }
-            }
-        }
-    }
-    else if (!BUILTIN_OBJECT[typeStr] && !isPrimitive(source) && !isDom(source)) {
-        result = {} as any;
-        for (let key in source) {
-            // Check if key is __proto__ to avoid prototype pollution
-            if (source.hasOwnProperty(key) && key !== protoKey) {
-                result[key] = clone(source[key]);
-            }
-        }
-    }
-
-    return result;
-}
-
-export function merge<
-    T extends Dictionary<any>,
-    S extends Dictionary<any>
->(target: T, source: S, overwrite?: boolean): T & S;
-export function merge<
-    T extends any,
-    S extends any
->(target: T, source: S, overwrite?: boolean): T | S;
-export function merge(target: any, source: any, overwrite?: boolean): any {
-    // We should escapse that source is string
-    // and enter for ... in ...
-    if (!isObject(source) || !isObject(target)) {
-        return overwrite ? clone(source) : target;
-    }
-
-    for (let key in source) {
-        // Check if key is __proto__ to avoid prototype pollution
-        if (source.hasOwnProperty(key) && key !== protoKey) {
-            const targetProp = target[key];
-            const sourceProp = source[key];
-
-            if (isObject(sourceProp)
-                && isObject(targetProp)
-                && !isArray(sourceProp)
-                && !isArray(targetProp)
-                && !isDom(sourceProp)
-                && !isDom(targetProp)
-                && !isBuiltInObject(sourceProp)
-                && !isBuiltInObject(targetProp)
-                && !isPrimitive(sourceProp)
-                && !isPrimitive(targetProp)
-            ) {
-                // 如果需要递归覆盖,就递归调用merge
-                merge(targetProp, sourceProp, overwrite);
-            }
-            else if (overwrite || !(key in target)) {
-                // 否则只处理overwrite为true,或者在目标对象中没有此属性的情况
-                // NOTE,在 target[key] 不存在的时候也是直接覆盖
-                target[key] = clone(source[key]);
-            }
-        }
-    }
-
-    return target;
-}
-
-/**
- * @param targetAndSources The first item is target, and the rests are source.
- * @param overwrite
- * @return Merged result
- */
-export function mergeAll(targetAndSources: any[], overwrite?: boolean): any {
-    let result = targetAndSources[0];
-    for (let i = 1, len = targetAndSources.length; i < len; i++) {
-        result = merge(result, targetAndSources[i], overwrite);
-    }
-    return result;
-}
-
-export function extend<
-    T extends Dictionary<any>,
-    S extends Dictionary<any>
->(target: T, source: S): T & S {
-    // @ts-ignore
-    if (Object.assign) {
-        // @ts-ignore
-        Object.assign(target, source);
-    }
-    else {
-        for (let key in source) {
-            // Check if key is __proto__ to avoid prototype pollution
-            if (source.hasOwnProperty(key) && key !== protoKey) {
-                (target as S & T)[key] = (source as T & S)[key];
-            }
-        }
-    }
-    return target as T & S;
-}
-
-export function defaults<
-    T extends Dictionary<any>,
-    S extends Dictionary<any>
->(target: T, source: S, overlay?: boolean): T & S {
-    const keysArr = keys(source);
-    for (let i = 0; i < keysArr.length; i++) {
-        let key = keysArr[i];
-        if ((overlay ? source[key] != null : (target as T & S)[key] == null)) {
-            (target as S & T)[key] = (source as T & S)[key];
-        }
-    }
-    return target as T & S;
-}
-
-// Expose createCanvas in util for compatibility
-export const createCanvas = platformApi.createCanvas;
-
-/**
- * 查询数组中元素的index
- */
-export function indexOf<T>(array: T[] | readonly T[] | ArrayLike<T>, value: T): number {
-    if (array) {
-        if ((array as T[]).indexOf) {
-            return (array as T[]).indexOf(value);
-        }
-        for (let i = 0, len = array.length; i < len; i++) {
-            if (array[i] === value) {
-                return i;
-            }
-        }
-    }
-    return -1;
-}
-
-/**
- * 构造类继承关系
- *
- * @param clazz 源类
- * @param baseClazz 基类
- */
-export function inherits(clazz: Function, baseClazz: Function) {
-    const clazzPrototype = clazz.prototype;
-    function F() {}
-    F.prototype = baseClazz.prototype;
-    clazz.prototype = new (F as any)();
-
-    for (let prop in clazzPrototype) {
-        if (clazzPrototype.hasOwnProperty(prop)) {
-            clazz.prototype[prop] = clazzPrototype[prop];
-        }
-    }
-    clazz.prototype.constructor = clazz;
-    (clazz as any).superClass = baseClazz;
-}
-
-export function mixin<T, S>(target: T | Function, source: S | Function, override?: boolean) {
-    target = 'prototype' in target ? target.prototype : target;
-    source = 'prototype' in source ? source.prototype : source;
-    // If build target is ES6 class. prototype methods is not enumerable. Use getOwnPropertyNames instead
-    // TODO: Determine if source is ES6 class?
-    if (Object.getOwnPropertyNames) {
-        const keyList = Object.getOwnPropertyNames(source);
-        for (let i = 0; i < keyList.length; i++) {
-            const key = keyList[i];
-            if (key !== 'constructor') {
-                if ((override ? (source as any)[key] != null : (target as any)[key] == null)) {
-                    (target as any)[key] = (source as any)[key];
-                }
-            }
-        }
-    }
-    else {
-        defaults(target, source, override);
-    }
-}
-
-/**
- * Consider typed array.
- * @param data
- */
-export function isArrayLike(data: any): data is ArrayLike<any> {
-    if (!data) {
-        return false;
-    }
-    if (typeof data === 'string') {
-        return false;
-    }
-    return typeof data.length === 'number';
-}
-
-/**
- * 数组或对象遍历
- */
-export function each<I extends Dictionary<any> | any[] | readonly any[] | ArrayLike<any>, Context>(
-    arr: I,
-    cb: (
-        this: Context,
-        // Use unknown to avoid to infer to "any", which may disable typo check.
-        value: I extends (infer T)[] | readonly (infer T)[] | ArrayLike<infer T> ? T
-            // Use Dictionary<infer T> may cause infer fail when I is an interface.
-            // So here use a Record to infer type.
-            : I extends Dictionary<any> ? I extends Record<infer K, infer T> ? T : unknown : unknown,
-        index?: I extends any[] | readonly any[] | ArrayLike<any> ? number : keyof I & string,  // keyof Dictionary will return number | string
-        arr?: I
-    ) => void,
-    context?: Context
-) {
-    if (!(arr && cb)) {
-        return;
-    }
-    if ((arr as any).forEach && (arr as any).forEach === nativeForEach) {
-        (arr as any).forEach(cb, context);
-    }
-    else if (arr.length === +arr.length) {
-        for (let i = 0, len = arr.length; i < len; i++) {
-            // FIXME: should the elided item be travelled? like `[33,,55]`.
-            cb.call(context, (arr as any[])[i], i as any, arr);
-        }
-    }
-    else {
-        for (let key in arr) {
-            if (arr.hasOwnProperty(key)) {
-                cb.call(context, (arr as Dictionary<any>)[key], key as any, arr);
-            }
-        }
-    }
-}
-
-/**
- * Array mapping.
- * @typeparam T Type in Array
- * @typeparam R Type Returned
- * @return Must be an array.
- */
-export function map<T, R, Context>(
-    arr: readonly T[],
-    cb: (this: Context, val: T, index?: number, arr?: readonly T[]) => R,
-    context?: Context
-): R[] {
-    // Take the same behavior with lodash when !arr and !cb,
-    // which might be some common sense.
-    if (!arr) {
-        return [];
-    }
-    if (!cb) {
-        return slice(arr) as unknown[] as R[];
-    }
-    if (arr.map && arr.map === nativeMap) {
-        return arr.map(cb, context);
-    }
-    else {
-        const result = [];
-        for (let i = 0, len = arr.length; i < len; i++) {
-            // FIXME: should the elided item be travelled, like `[33,,55]`.
-            result.push(cb.call(context, arr[i], i, arr));
-        }
-        return result;
-    }
-}
-
-export function reduce<T, S, Context>(
-    arr: readonly T[],
-    cb: (this: Context, previousValue: S, currentValue: T, currentIndex?: number, arr?: readonly T[]) => S,
-    memo?: S,
-    context?: Context
-): S {
-    if (!(arr && cb)) {
-        return;
-    }
-    for (let i = 0, len = arr.length; i < len; i++) {
-        memo = cb.call(context, memo, arr[i], i, arr);
-    }
-    return memo;
-}
-
-/**
- * Array filtering.
- * @return Must be an array.
- */
-export function filter<T, Context>(
-    arr: readonly T[],
-    cb: (this: Context, value: T, index: number, arr: readonly T[]) => boolean,
-    context?: Context
-): T[] {
-    // Take the same behavior with lodash when !arr and !cb,
-    // which might be some common sense.
-    if (!arr) {
-        return [];
-    }
-    if (!cb) {
-        return slice(arr);
-    }
-    if (arr.filter && arr.filter === nativeFilter) {
-        return arr.filter(cb, context);
-    }
-    else {
-        const result = [];
-        for (let i = 0, len = arr.length; i < len; i++) {
-            // FIXME: should the elided items be travelled? like `[33,,55]`.
-            if (cb.call(context, arr[i], i, arr)) {
-                result.push(arr[i]);
-            }
-        }
-        return result;
-    }
-}
-
-/**
- * 数组项查找
- */
-export function find<T, Context>(
-    arr: readonly T[],
-    cb: (this: Context, value: T, index?: number, arr?: readonly T[]) => boolean,
-    context?: Context
-): T {
-    if (!(arr && cb)) {
-        return;
-    }
-    for (let i = 0, len = arr.length; i < len; i++) {
-        if (cb.call(context, arr[i], i, arr)) {
-            return arr[i];
-        }
-    }
-}
-
-/**
- * Get all object keys
- *
- * Will return an empty array if obj is null/undefined
- */
-export function keys<T extends object>(obj: T): (KeyOfDistributive<T> & string)[] {
-    if (!obj) {
-        return [];
-    }
-    // Return type should be `keyof T` but exclude `number`, becuase
-    // `Object.keys` only return string rather than `number | string`.
-    type TKeys = KeyOfDistributive<T> & string;
-    if (Object.keys) {
-        return Object.keys(obj) as TKeys[];
-    }
-    let keyList: TKeys[] = [];
-    for (let key in obj) {
-        if (obj.hasOwnProperty(key)) {
-            keyList.push(key as any);
-        }
-    }
-    return keyList;
-}
-
-// Remove this type in returned function. Or it will conflicts wicth callback with given context. Like Eventful.
-// According to lib.es5.d.ts
-/* eslint-disable max-len*/
-export type Bind1<F, Ctx> = F extends (this: Ctx, ...args: infer A) => infer R ? (...args: A) => R : unknown;
-export type Bind2<F, Ctx, T1> = F extends (this: Ctx, a: T1, ...args: infer A) => infer R ? (...args: A) => R : unknown;
-export type Bind3<F, Ctx, T1, T2> = F extends (this: Ctx, a: T1, b: T2, ...args: infer A) => infer R ? (...args: A) => R : unknown;
-export type Bind4<F, Ctx, T1, T2, T3> = F extends (this: Ctx, a: T1, b: T2, c: T3, ...args: infer A) => infer R ? (...args: A) => R : unknown;
-export type Bind5<F, Ctx, T1, T2, T3, T4> = F extends (this: Ctx, a: T1, b: T2, c: T3, d: T4, ...args: infer A) => infer R ? (...args: A) => R : unknown;
-type BindFunc<Ctx> = (this: Ctx, ...arg: any[]) => any
-
-interface FunctionBind {
-    <F extends BindFunc<Ctx>, Ctx>(func: F, ctx: Ctx): Bind1<F, Ctx>
-    <F extends BindFunc<Ctx>, Ctx, T1 extends Parameters<F>[0]>(func: F, ctx: Ctx, a: T1): Bind2<F, Ctx, T1>
-    <F extends BindFunc<Ctx>, Ctx, T1 extends Parameters<F>[0], T2 extends Parameters<F>[1]>(func: F, ctx: Ctx, a: T1, b: T2): Bind3<F, Ctx, T1, T2>
-    <F extends BindFunc<Ctx>, Ctx, T1 extends Parameters<F>[0], T2 extends Parameters<F>[1], T3 extends Parameters<F>[2]>(func: F, ctx: Ctx, a: T1, b: T2, c: T3): Bind4<F, Ctx, T1, T2, T3>
-    <F extends BindFunc<Ctx>, Ctx, T1 extends Parameters<F>[0], T2 extends Parameters<F>[1], T3 extends Parameters<F>[2], T4 extends Parameters<F>[3]>(func: F, ctx: Ctx, a: T1, b: T2, c: T3, d: T4): Bind5<F, Ctx, T1, T2, T3, T4>
-}
-function bindPolyfill<Ctx, Fn extends(...args: any) => any>(
-    func: Fn, context: Ctx, ...args: any[]
-): (...args: Parameters<Fn>) => ReturnType<Fn> {
-    return function (this: Ctx) {
-        return func.apply(context, args.concat(nativeSlice.call(arguments)));
-    };
-}
-export const bind: FunctionBind = (protoFunction && isFunction(protoFunction.bind))
-    ? protoFunction.call.bind(protoFunction.bind)
-    : bindPolyfill;
-
-export type Curry1<F, T1> = F extends (a: T1, ...args: infer A) => infer R ? (...args: A) => R : unknown;
-export type Curry2<F, T1, T2> = F extends (a: T1, b: T2, ...args: infer A) => infer R ? (...args: A) => R : unknown;
-export type Curry3<F, T1, T2, T3> = F extends (a: T1, b: T2, c: T3, ...args: infer A) => infer R ? (...args: A) => R : unknown;
-export type Curry4<F, T1, T2, T3, T4> = F extends (a: T1, b: T2, c: T3, d: T4, ...args: infer A) => infer R ? (...args: A) => R : unknown;
-type CurryFunc = (...arg: any[]) => any
-
-function curry<F extends CurryFunc, T1 extends Parameters<F>[0]>(func: F, a: T1): Curry1<F, T1>
-function curry<F extends CurryFunc, T1 extends Parameters<F>[0], T2 extends Parameters<F>[1]>(func: F, a: T1, b: T2): Curry2<F, T1, T2>
-function curry<F extends CurryFunc, T1 extends Parameters<F>[0], T2 extends Parameters<F>[1], T3 extends Parameters<F>[2]>(func: F, a: T1, b: T2, c: T3): Curry3<F, T1, T2, T3>
-function curry<F extends CurryFunc, T1 extends Parameters<F>[0], T2 extends Parameters<F>[1], T3 extends Parameters<F>[2], T4 extends Parameters<F>[3]>(func: F, a: T1, b: T2, c: T3, d: T4): Curry4<F, T1, T2, T3, T4>
-function curry(func: Function, ...args: any[]): Function {
-    return function (this: any) {
-        return func.apply(this, args.concat(nativeSlice.call(arguments)));
-    };
-}
-export {curry};
-/* eslint-enable max-len*/
-
-export function isArray(value: any): value is any[] {
-    if (Array.isArray) {
-        return Array.isArray(value);
-    }
-    return objToString.call(value) === '[object Array]';
-}
-
-export function isFunction(value: any): value is Function {
-    return typeof value === 'function';
-}
-
-export function isString(value: any): value is string {
-    // Faster than `objToString.call` several times in chromium and webkit.
-    // And `new String()` is rarely used.
-    return typeof value === 'string';
-}
-
-export function isStringSafe(value: any): value is string {
-    return objToString.call(value) === '[object String]';
-}
-
-export function isNumber(value: any): value is number {
-    // Faster than `objToString.call` several times in chromium and webkit.
-    // And `new Number()` is rarely used.
-    return typeof value === 'number';
-}
-
-// Usage: `isObject(xxx)` or `isObject(SomeType)(xxx)`
-// Generic T can be used to avoid "ts type gruards" casting the `value` from its original
-// type `Object` implicitly so that loose its original type info in the subsequent code.
-export function isObject<T = unknown>(value: T): value is (object & T) {
-    // Avoid a V8 JIT bug in Chrome 19-20.
-    // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.
-    const type = typeof value;
-    return type === 'function' || (!!value && type === 'object');
-}
-
-export function isBuiltInObject(value: any): boolean {
-    return !!BUILTIN_OBJECT[objToString.call(value)];
-}
-
-export function isTypedArray(value: any): boolean {
-    return !!TYPED_ARRAY[objToString.call(value)];
-}
-
-export function isDom(value: any): value is HTMLElement {
-    return typeof value === 'object'
-        && typeof value.nodeType === 'number'
-        && typeof value.ownerDocument === 'object';
-}
-
-export function isGradientObject(value: any): value is GradientObject {
-    return (value as GradientObject).colorStops != null;
-}
-
-export function isImagePatternObject(value: any): value is ImagePatternObject {
-    return (value as ImagePatternObject).image != null;
-}
-
-export function isRegExp(value: unknown): value is RegExp {
-    return objToString.call(value) === '[object RegExp]';
-}
-
-/**
- * Whether is exactly NaN. Notice isNaN('a') returns true.
- */
-export function eqNaN(value: any): boolean {
-    /* eslint-disable-next-line no-self-compare */
-    return value !== value;
-}
-
-/**
- * If value1 is not null, then return value1, otherwise judget rest of values.
- * Low performance.
- * @return Final value
- */
-export function retrieve<T>(...args: T[]): T {
-    for (let i = 0, len = args.length; i < len; i++) {
-        if (args[i] != null) {
-            return args[i];
-        }
-    }
-}
-
-export function retrieve2<T, R>(value0: T, value1: R): T | R {
-    return value0 != null
-        ? value0
-        : value1;
-}
-
-export function retrieve3<T, R, W>(value0: T, value1: R, value2: W): T | R | W {
-    return value0 != null
-        ? value0
-        : value1 != null
-        ? value1
-        : value2;
-}
-
-type SliceParams = Parameters<typeof nativeSlice>;
-export function slice<T>(arr: ArrayLike<T>, ...args: SliceParams): T[] {
-    return nativeSlice.apply(arr, args as any[]);
-}
-
-/**
- * Normalize css liked array configuration
- * e.g.
- *  3 => [3, 3, 3, 3]
- *  [4, 2] => [4, 2, 4, 2]
- *  [4, 3, 2] => [4, 3, 2, 3]
- */
-export function normalizeCssArray(val: number | number[]) {
-    if (typeof (val) === 'number') {
-        return [val, val, val, val];
-    }
-    const len = val.length;
-    if (len === 2) {
-        // vertical | horizontal
-        return [val[0], val[1], val[0], val[1]];
-    }
-    else if (len === 3) {
-        // top | horizontal | bottom
-        return [val[0], val[1], val[2], val[1]];
-    }
-    return val;
-}
-
-export function assert(condition: any, message?: string) {
-    if (!condition) {
-        throw new Error(message);
-    }
-}
-
-/**
- * @param str string to be trimmed
- * @return trimmed string
- */
-export function trim(str: string): string {
-    if (str == null) {
-        return null;
-    }
-    else if (typeof str.trim === 'function') {
-        return str.trim();
-    }
-    else {
-        return str.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, '');
-    }
-}
-
-const primitiveKey = '__ec_primitive__';
-/**
- * Set an object as primitive to be ignored traversing children in clone or merge
- */
-export function setAsPrimitive(obj: any) {
-    obj[primitiveKey] = true;
-}
-
-export function isPrimitive(obj: any): boolean {
-    return obj[primitiveKey];
-}
-
-interface MapInterface<T, KEY extends string | number = string | number> {
-    delete(key: KEY): boolean;
-    has(key: KEY): boolean;
-    get(key: KEY): T | undefined;
-    set(key: KEY, value: T): this;
-    keys(): KEY[];
-    forEach(callback: (value: T, key: KEY) => void): void;
-}
-
-class MapPolyfill<T, KEY extends string | number = string | number> implements MapInterface<T, KEY> {
-    private data: Record<KEY, T> = {} as Record<KEY, T>;
-
-    delete(key: KEY): boolean {
-        const existed = this.has(key);
-        if (existed) {
-            delete this.data[key];
-        }
-        return existed;
-    }
-    has(key: KEY): boolean {
-        return this.data.hasOwnProperty(key);
-    }
-    get(key: KEY): T | undefined {
-        return this.data[key];
-    }
-    set(key: KEY, value: T): this {
-        this.data[key] = value;
-        return this;
-    }
-    keys(): KEY[] {
-        return keys(this.data);
-    }
-    forEach(callback: (value: T, key: KEY) => void): void {
-        // This is a potential performance bottleneck, see details in
-        // https://github.com/ecomfe/zrender/issues/965, however it is now
-        // less likely to occur as we default to native maps when possible.
-        const data = this.data;
-        for (const key in data) {
-            if (data.hasOwnProperty(key)) {
-                callback(data[key], key);
-            }
-        }
-    }
-}
-
-// We want to use native Map if it is available, but we do not want to polyfill the global scope
-// in case users ship their own polyfills or patch the native map object in any way.
-const isNativeMapSupported = typeof Map === 'function';
-function maybeNativeMap<T, KEY extends string | number = string | number>(): MapInterface<T, KEY> {
-    // Map may be a native class if we are running in an ES6 compatible environment.
-    // eslint-disable-next-line
-    return (isNativeMapSupported ? new Map<KEY, T>() : new MapPolyfill<T, KEY>()) as MapInterface<T, KEY>;
-}
-
-/**
- * @constructor
- * @param {Object} obj
- */
-export class HashMap<T, KEY extends string | number = string | number> {
-    data: MapInterface<T, KEY>
-
-    constructor(obj?: HashMap<T, KEY> | { [key in KEY]?: T } | KEY[]) {
-        const isArr = isArray(obj);
-        // Key should not be set on this, otherwise
-        // methods get/set/... may be overridden.
-        this.data = maybeNativeMap<T, KEY>();
-        const thisMap = this;
-
-        (obj instanceof HashMap)
-            ? obj.each(visit)
-            : (obj && each(obj, visit));
-
-        function visit(value: any, key: any) {
-            isArr ? thisMap.set(value, key) : thisMap.set(key, value);
-        }
-    }
-
-    // `hasKey` instead of `has` for potential misleading.
-    hasKey(key: KEY): boolean {
-        return this.data.has(key);
-    }
-    get(key: KEY): T {
-        return this.data.get(key);
-    }
-    set(key: KEY, value: T): T {
-        // Comparing with invocation chaining, `return value` is more commonly
-        // used in this case: `const someVal = map.set('a', genVal());`
-        this.data.set(key, value);
-        return value;
-    }
-    // Although util.each can be performed on this hashMap directly, user
-    // should not use the exposed keys, who are prefixed.
-    each<Context>(
-        cb: (this: Context, value?: T, key?: KEY) => void,
-        context?: Context
-    ) {
-        this.data.forEach((value, key) => {
-            cb.call(context, value, key);
-        });
-    }
-    keys(): KEY[] {
-        const keys = this.data.keys();
-        return isNativeMapSupported
-            // Native map returns an iterator so we need to convert it to an array
-            ? Array.from(keys)
-            : keys;
-    }
-    // Do not use this method if performance sensitive.
-    removeKey(key: KEY): void {
-        this.data.delete(key);
-    }
-}
-
-export function createHashMap<T, KEY extends string | number = string | number>(
-    obj?: HashMap<T, KEY> | { [key in KEY]?: T } | KEY[]
-) {
-    return new HashMap<T, KEY>(obj);
-}
-
-export function concatArray<T, R>(a: ArrayLike<T>, b: ArrayLike<R>): ArrayLike<T | R> {
-    const newArray = new (a as any).constructor(a.length + b.length);
-    for (let i = 0; i < a.length; i++) {
-        newArray[i] = a[i];
-    }
-    const offset = a.length;
-    for (let i = 0; i < b.length; i++) {
-        newArray[i + offset] = b[i];
-    }
-    return newArray;
-}
-
-export function createObject<T>(proto?: object, properties?: T): T {
-    // Performance of Object.create
-    // https://jsperf.com/style-strategy-proto-or-others
-    let obj: T;
-    if (Object.create) {
-        obj = Object.create(proto);
-    }
-    else {
-        const StyleCtor = function () {};
-        StyleCtor.prototype = proto;
-        obj = new (StyleCtor as any)();
-    }
-    if (properties) {
-        extend(obj, properties);
-    }
-
-    return obj;
-}
-
-
-export function disableUserSelect(dom: HTMLElement) {
-    const domStyle = dom.style;
-    domStyle.webkitUserSelect = 'none';
-    domStyle.userSelect = 'none';
-    // @ts-ignore
-    domStyle.webkitTapHighlightColor = 'rgba(0,0,0,0)';
-    (domStyle as any)['-webkit-touch-callout'] = 'none';
-}
-
-export function hasOwn(own: object, prop: string): boolean {
-    return own.hasOwnProperty(prop);
-}
-
-export function noop() {}
-
-export const RADIAN_TO_DEGREE = 180 / Math.PI;

+ 0 - 210
node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/core/vector.ts

@@ -1,210 +0,0 @@
-/**
- * @deprecated
- * Use zrender.Point class instead
- */
-import { MatrixArray } from './matrix';
-
-/* global Float32Array */
-
-// const ArrayCtor = typeof Float32Array === 'undefined'
-//     ? Array
-//     : Float32Array;
-
-export type VectorArray = number[]
-/**
- * 创建一个向量
- */
-export function create(x?: number, y?: number): VectorArray {
-    if (x == null) {
-        x = 0;
-    }
-    if (y == null) {
-        y = 0;
-    }
-    return [x, y];
-}
-
-/**
- * 复制向量数据
- */
-export function copy<T extends VectorArray>(out: T, v: VectorArray): T {
-    out[0] = v[0];
-    out[1] = v[1];
-    return out;
-}
-
-/**
- * 克隆一个向量
- */
-export function clone(v: VectorArray): VectorArray {
-    return [v[0], v[1]];
-}
-
-/**
- * 设置向量的两个项
- */
-export function set<T extends VectorArray>(out: T, a: number, b: number): T {
-    out[0] = a;
-    out[1] = b;
-    return out;
-}
-
-/**
- * 向量相加
- */
-export function add<T extends VectorArray>(out: T, v1: VectorArray, v2: VectorArray): T {
-    out[0] = v1[0] + v2[0];
-    out[1] = v1[1] + v2[1];
-    return out;
-}
-
-/**
- * 向量缩放后相加
- */
-export function scaleAndAdd<T extends VectorArray>(out: T, v1: VectorArray, v2: VectorArray, a: number): T {
-    out[0] = v1[0] + v2[0] * a;
-    out[1] = v1[1] + v2[1] * a;
-    return out;
-}
-
-/**
- * 向量相减
- */
-export function sub<T extends VectorArray>(out: T, v1: VectorArray, v2: VectorArray): T {
-    out[0] = v1[0] - v2[0];
-    out[1] = v1[1] - v2[1];
-    return out;
-}
-
-/**
- * 向量长度
- */
-export function len(v: VectorArray): number {
-    return Math.sqrt(lenSquare(v));
-}
-export const length = len;
-
-/**
- * 向量长度平方
- */
-export function lenSquare(v: VectorArray): number {
-    return v[0] * v[0] + v[1] * v[1];
-}
-export const lengthSquare = lenSquare;
-
-/**
- * 向量乘法
- */
-export function mul<T extends VectorArray>(out: T, v1: VectorArray, v2: VectorArray): T {
-    out[0] = v1[0] * v2[0];
-    out[1] = v1[1] * v2[1];
-    return out;
-}
-
-/**
- * 向量除法
- */
-export function div<T extends VectorArray>(out: T, v1: VectorArray, v2: VectorArray): T {
-    out[0] = v1[0] / v2[0];
-    out[1] = v1[1] / v2[1];
-    return out;
-}
-
-/**
- * 向量点乘
- */
-export function dot(v1: VectorArray, v2: VectorArray) {
-    return v1[0] * v2[0] + v1[1] * v2[1];
-}
-
-/**
- * 向量缩放
- */
-export function scale<T extends VectorArray>(out: T, v: VectorArray, s: number): T {
-    out[0] = v[0] * s;
-    out[1] = v[1] * s;
-    return out;
-}
-
-/**
- * 向量归一化
- */
-export function normalize<T extends VectorArray>(out: T, v: VectorArray): T {
-    const d = len(v);
-    if (d === 0) {
-        out[0] = 0;
-        out[1] = 0;
-    }
-    else {
-        out[0] = v[0] / d;
-        out[1] = v[1] / d;
-    }
-    return out;
-}
-
-/**
- * 计算向量间距离
- */
-export function distance(v1: VectorArray, v2: VectorArray): number {
-    return Math.sqrt(
-        (v1[0] - v2[0]) * (v1[0] - v2[0])
-        + (v1[1] - v2[1]) * (v1[1] - v2[1])
-    );
-}
-export const dist = distance;
-
-/**
- * 向量距离平方
- */
-export function distanceSquare(v1: VectorArray, v2: VectorArray): number {
-    return (v1[0] - v2[0]) * (v1[0] - v2[0])
-        + (v1[1] - v2[1]) * (v1[1] - v2[1]);
-}
-export const distSquare = distanceSquare;
-
-/**
- * 求负向量
- */
-export function negate<T extends VectorArray>(out: T, v: VectorArray): T {
-    out[0] = -v[0];
-    out[1] = -v[1];
-    return out;
-}
-
-/**
- * 插值两个点
- */
-export function lerp<T extends VectorArray>(out: T, v1: VectorArray, v2: VectorArray, t: number): T {
-    out[0] = v1[0] + t * (v2[0] - v1[0]);
-    out[1] = v1[1] + t * (v2[1] - v1[1]);
-    return out;
-}
-
-/**
- * 矩阵左乘向量
- */
-export function applyTransform<T extends VectorArray>(out: T, v: VectorArray, m: MatrixArray): T {
-    const x = v[0];
-    const y = v[1];
-    out[0] = m[0] * x + m[2] * y + m[4];
-    out[1] = m[1] * x + m[3] * y + m[5];
-    return out;
-}
-
-/**
- * 求两个向量最小值
- */
-export function min<T extends VectorArray>(out: T, v1: VectorArray, v2: VectorArray): T {
-    out[0] = Math.min(v1[0], v2[0]);
-    out[1] = Math.min(v1[1], v2[1]);
-    return out;
-}
-
-/**
- * 求两个向量最大值
- */
-export function max<T extends VectorArray>(out: T, v1: VectorArray, v2: VectorArray): T {
-    out[0] = Math.max(v1[0], v2[0]);
-    out[1] = Math.max(v1[1], v2[1]);
-    return out;
-}

+ 0 - 123
node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/debug/showDebugDirtyRect.ts

@@ -1,123 +0,0 @@
-import type { ZRenderType } from '../zrender';
-import type CanvasPainter from '../canvas/Painter';
-import type BoundingRect from '../core/BoundingRect';
-import { extend } from '../core/util';
-
-class DebugRect {
-
-    dom: HTMLDivElement
-
-    private _hideTimeout: number
-
-    constructor(style: Opts['style']) {
-        const dom = this.dom = document.createElement('div');
-        dom.className = 'ec-debug-dirty-rect';
-
-        style = extend({}, style);
-        extend(style, {
-            backgroundColor: 'rgba(0, 0, 255, 0.2)',
-            border: '1px solid #00f'
-        });
-        dom.style.cssText = `
-position: absolute;
-opacity: 0;
-transition: opacity 0.5s linear;
-pointer-events: none;
-`;
-
-        for (let key in style) {
-            if (style.hasOwnProperty(key)) {
-                (dom.style as any)[key] = (style as any)[key];
-            }
-        }
-    }
-
-    update(rect: BoundingRect) {
-        const domStyle = this.dom.style;
-        domStyle.width = rect.width + 'px';
-        domStyle.height = rect.height + 'px';
-        domStyle.left = rect.x + 'px';
-        domStyle.top = rect.y + 'px';
-    }
-
-    hide() {
-        this.dom.style.opacity = '0';
-    }
-    show(autoHideDelay?: number) {
-        clearTimeout(this._hideTimeout);
-
-        this.dom.style.opacity = '1';
-
-        // Auto hide after 2 second
-        this._hideTimeout = setTimeout(() => {
-            this.hide();
-        }, autoHideDelay || 1000) as unknown as number;
-    }
-
-}
-
-interface Opts {
-    style?: {
-        backgroundColor?: string
-        color?: string
-    }
-
-    autoHideDelay?: number
-}
-
-export default function showDebugDirtyRect(zr: ZRenderType, opts?: Opts) {
-    opts = opts || {};
-    const painter = zr.painter as CanvasPainter;
-    if (!painter.getLayers) {
-        throw new Error('Debug dirty rect can only been used on canvas renderer.');
-    }
-    if (painter.isSingleCanvas()) {
-        throw new Error('Debug dirty rect can only been used on zrender inited with container.');
-    }
-    const debugViewRoot = document.createElement('div');
-    debugViewRoot.style.cssText = `
-position:absolute;
-left:0;
-top:0;
-right:0;
-bottom:0;
-pointer-events:none;
-`;
-    debugViewRoot.className = 'ec-debug-dirty-rect-container';
-
-    const debugRects: DebugRect[] = [];
-    const dom = zr.dom;
-    dom.appendChild(debugViewRoot);
-    const computedStyle = getComputedStyle(dom);
-    if (computedStyle.position === 'static') {
-        dom.style.position = 'relative';
-    }
-
-    zr.on('rendered', function () {
-        if (painter.getLayers) {
-            let idx = 0;
-            painter.eachBuiltinLayer((layer) => {
-                if (!layer.debugGetPaintRects) {
-                    return;
-                }
-                const paintRects = layer.debugGetPaintRects();
-                for (let i = 0; i < paintRects.length; i++) {
-                    if (!paintRects[i].width || !paintRects[i].height) {
-                        continue;
-                    }
-
-                    if (!debugRects[idx]) {
-                        debugRects[idx] = new DebugRect(opts.style);
-                        debugViewRoot.appendChild(debugRects[idx].dom);
-                    }
-                    debugRects[idx].show(opts.autoHideDelay);
-                    debugRects[idx].update(paintRects[i]);
-                    idx++;
-                }
-            });
-            for (let i = idx; i < debugRects.length; i++) {
-                debugRects[i].hide();
-            }
-        }
-    });
-}

+ 0 - 634
node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/dom/HandlerProxy.ts

@@ -1,634 +0,0 @@
-
-/* global document */
-
-import {
-    addEventListener,
-    removeEventListener,
-    normalizeEvent,
-    getNativeEvent
-} from '../core/event';
-import * as zrUtil from '../core/util';
-import Eventful from '../core/Eventful';
-import env from '../core/env';
-import { Dictionary, ZRRawEvent, ZRRawMouseEvent } from '../core/types';
-import { VectorArray } from '../core/vector';
-import Handler from '../Handler';
-
-type DomHandlersMap = Dictionary<(this: HandlerDomProxy, event: ZRRawEvent) => void>
-
-type DomExtended = Node & {
-    domBelongToZr: boolean
-}
-
-const TOUCH_CLICK_DELAY = 300;
-
-const globalEventSupported = env.domSupported;
-
-
-const localNativeListenerNames = (function () {
-    const mouseHandlerNames = [
-        'click', 'dblclick', 'mousewheel', 'wheel', 'mouseout',
-        'mouseup', 'mousedown', 'mousemove', 'contextmenu'
-    ];
-    const touchHandlerNames = [
-        'touchstart', 'touchend', 'touchmove'
-    ];
-    const pointerEventNameMap = {
-        pointerdown: 1, pointerup: 1, pointermove: 1, pointerout: 1
-    };
-    const pointerHandlerNames = zrUtil.map(mouseHandlerNames, function (name) {
-        const nm = name.replace('mouse', 'pointer');
-        return pointerEventNameMap.hasOwnProperty(nm) ? nm : name;
-    });
-
-    return {
-        mouse: mouseHandlerNames,
-        touch: touchHandlerNames,
-        pointer: pointerHandlerNames
-    };
-})();
-
-const globalNativeListenerNames = {
-    mouse: ['mousemove', 'mouseup'],
-    pointer: ['pointermove', 'pointerup']
-};
-
-let wheelEventSupported = false;
-
-
-// Although firfox has 'DOMMouseScroll' event and do not has 'mousewheel' event,
-// the 'DOMMouseScroll' event do not performe the same behavior on touch pad device
-// (like on Mac) ('DOMMouseScroll' will be triggered only if a big wheel delta).
-// So we should not use it.
-// function eventNameFix(name: string) {
-//     return (name === 'mousewheel' && env.browser.firefox) ? 'DOMMouseScroll' : name;
-// }
-
-function isPointerFromTouch(event: ZRRawEvent) {
-    const pointerType = (event as any).pointerType;
-    return pointerType === 'pen' || pointerType === 'touch';
-}
-
-// function useMSGuesture(handlerProxy, event) {
-//     return isPointerFromTouch(event) && !!handlerProxy._msGesture;
-// }
-
-// function onMSGestureChange(proxy, event) {
-//     if (event.translationX || event.translationY) {
-//         // mousemove is carried by MSGesture to reduce the sensitivity.
-//         proxy.handler.dispatchToElement(event.target, 'mousemove', event);
-//     }
-//     if (event.scale !== 1) {
-//         event.pinchX = event.offsetX;
-//         event.pinchY = event.offsetY;
-//         event.pinchScale = event.scale;
-//         proxy.handler.dispatchToElement(event.target, 'pinch', event);
-//     }
-// }
-
-/**
- * Prevent mouse event from being dispatched after Touch Events action
- * @see <https://github.com/deltakosh/handjs/blob/master/src/hand.base.js>
- * 1. Mobile browsers dispatch mouse events 300ms after touchend.
- * 2. Chrome for Android dispatch mousedown for long-touch about 650ms
- * Result: Blocking Mouse Events for 700ms.
- *
- * @param {DOMHandlerScope} scope
- */
-function setTouchTimer(scope: DOMHandlerScope) {
-    scope.touching = true;
-    if (scope.touchTimer != null) {
-        clearTimeout(scope.touchTimer);
-        scope.touchTimer = null;
-    }
-    scope.touchTimer = setTimeout(function () {
-        scope.touching = false;
-        scope.touchTimer = null;
-    }, 700);
-}
-
-// Mark touch, which is useful in distinguish touch and
-// mouse event in upper applicatoin.
-function markTouch(event: ZRRawEvent) {
-    event && (event.zrByTouch = true);
-}
-
-
-// function markTriggeredFromLocal(event) {
-//     event && (event.__zrIsFromLocal = true);
-// }
-
-// function isTriggeredFromLocal(instance, event) {
-//     return !!(event && event.__zrIsFromLocal);
-// }
-
-function normalizeGlobalEvent(instance: HandlerDomProxy, event: ZRRawEvent) {
-    // offsetX, offsetY still need to be calculated. They are necessary in the event
-    // handlers of the upper applications. Set `true` to force calculate them.
-    return normalizeEvent(
-        instance.dom,
-        // TODO ANY TYPE
-        new FakeGlobalEvent(instance, event) as any as ZRRawEvent,
-        true
-    );
-}
-
-/**
- * Detect whether the given el is in `painterRoot`.
- */
-function isLocalEl(instance: HandlerDomProxy, el: Node) {
-    let elTmp = el;
-    let isLocal = false;
-    while (elTmp && elTmp.nodeType !== 9
-        && !(
-            isLocal = (elTmp as DomExtended).domBelongToZr
-                || (elTmp !== el && elTmp === instance.painterRoot)
-        )
-    ) {
-        elTmp = elTmp.parentNode;
-    }
-    return isLocal;
-}
-
-/**
- * Make a fake event but not change the original event,
- * because the global event probably be used by other
- * listeners not belonging to zrender.
- * @class
- */
-class FakeGlobalEvent {
-    type: string
-    target: HTMLElement
-    currentTarget: HTMLElement
-
-    pointerType: string
-    clientX: number
-    clientY: number
-
-    constructor(instance: HandlerDomProxy, event: ZRRawEvent) {
-        this.type = event.type;
-        this.target = this.currentTarget = instance.dom;
-        this.pointerType = (event as any).pointerType;
-        // Necessray for the force calculation of zrX, zrY
-        this.clientX = (event as ZRRawMouseEvent).clientX;
-        this.clientY = (event as ZRRawMouseEvent).clientY;
-        // Because we do not mount global listeners to touch events,
-        // we do not copy `targetTouches` and `changedTouches` here.
-    }
-
-    // we make the default methods on the event do nothing,
-    // otherwise it is dangerous. See more details in
-    // [DRAG_OUTSIDE] in `Handler.js`.
-    stopPropagation = zrUtil.noop
-    stopImmediatePropagation = zrUtil.noop
-    preventDefault = zrUtil.noop
-}
-
-
-/**
- * Local DOM Handlers
- * @this {HandlerProxy}
- */
-const localDOMHandlers: DomHandlersMap = {
-
-    mousedown(event: ZRRawEvent) {
-        event = normalizeEvent(this.dom, event);
-
-        this.__mayPointerCapture = [event.zrX, event.zrY];
-
-        this.trigger('mousedown', event);
-    },
-
-    mousemove(event: ZRRawEvent) {
-        event = normalizeEvent(this.dom, event);
-
-        const downPoint = this.__mayPointerCapture;
-        if (downPoint && (event.zrX !== downPoint[0] || event.zrY !== downPoint[1])) {
-            this.__togglePointerCapture(true);
-        }
-
-        this.trigger('mousemove', event);
-    },
-
-    mouseup(event: ZRRawEvent) {
-        event = normalizeEvent(this.dom, event);
-
-        this.__togglePointerCapture(false);
-
-        this.trigger('mouseup', event);
-    },
-
-    mouseout(event: ZRRawEvent) {
-        event = normalizeEvent(this.dom, event);
-
-        // There might be some doms created by upper layer application
-        // at the same level of painter.getViewportRoot() (e.g., tooltip
-        // dom created by echarts), where 'globalout' event should not
-        // be triggered when mouse enters these doms. (But 'mouseout'
-        // should be triggered at the original hovered element as usual).
-        const element = (event as any).toElement || (event as ZRRawMouseEvent).relatedTarget;
-
-        // For SVG rendering, there are SVG elements inside `this.dom`.
-        // (especially in decal case). Should not to handle those "mouseout"..
-        if (!isLocalEl(this, element)) {
-            // Similarly to the browser did on `document` and touch event,
-            // `globalout` will be delayed to final pointer cature release.
-            if (this.__pointerCapturing) {
-                event.zrEventControl = 'no_globalout';
-            }
-
-            this.trigger('mouseout', event);
-        }
-    },
-
-    wheel(event: ZRRawEvent) {
-        // Morden agent has supported event `wheel` instead of `mousewheel`.
-        // About the polyfill of the props "delta", see "arc/core/event.ts".
-
-        // Firefox only support `wheel` rather than `mousewheel`. Although firfox has been supporting
-        // event `DOMMouseScroll`, it do not act the same behavior as `wheel` on touch pad device
-        // like on Mac, where `DOMMouseScroll` will be triggered only if a big wheel delta occurs,
-        // and it results in no chance to "preventDefault". So we should not use `DOMMouseScroll`.
-
-        wheelEventSupported = true;
-        event = normalizeEvent(this.dom, event);
-        // Follow the definition of the previous version, the zrender event name is still 'mousewheel'.
-        this.trigger('mousewheel', event);
-    },
-
-    mousewheel(event: ZRRawEvent) {
-        // IE8- and some other lagacy agent do not support event `wheel`, so we still listen
-        // to the legacy event `mouseevent`.
-        // Typically if event `wheel` is supported and the handler has been mounted on a
-        // DOM element, the legacy `mousewheel` event will not be triggered (Chrome and Safari).
-        // But we still do this guard to avoid to duplicated handle.
-        if (wheelEventSupported) {
-            return;
-        }
-        event = normalizeEvent(this.dom, event);
-        this.trigger('mousewheel', event);
-    },
-
-    touchstart(event: ZRRawEvent) {
-        // Default mouse behaviour should not be disabled here.
-        // For example, page may needs to be slided.
-        event = normalizeEvent(this.dom, event);
-
-        markTouch(event);
-
-        this.__lastTouchMoment = new Date();
-
-        this.handler.processGesture(event, 'start');
-
-        // For consistent event listener for both touch device and mouse device,
-        // we simulate "mouseover-->mousedown" in touch device. So we trigger
-        // `mousemove` here (to trigger `mouseover` inside), and then trigger
-        // `mousedown`.
-        localDOMHandlers.mousemove.call(this, event);
-        localDOMHandlers.mousedown.call(this, event);
-    },
-
-    touchmove(event: ZRRawEvent) {
-        event = normalizeEvent(this.dom, event);
-
-        markTouch(event);
-
-        this.handler.processGesture(event, 'change');
-
-        // Mouse move should always be triggered no matter whether
-        // there is gestrue event, because mouse move and pinch may
-        // be used at the same time.
-        localDOMHandlers.mousemove.call(this, event);
-    },
-
-    touchend(event: ZRRawEvent) {
-        event = normalizeEvent(this.dom, event);
-
-        markTouch(event);
-
-        this.handler.processGesture(event, 'end');
-
-        localDOMHandlers.mouseup.call(this, event);
-
-        // Do not trigger `mouseout` here, in spite of `mousemove`(`mouseover`) is
-        // triggered in `touchstart`. This seems to be illogical, but by this mechanism,
-        // we can conveniently implement "hover style" in both PC and touch device just
-        // by listening to `mouseover` to add "hover style" and listening to `mouseout`
-        // to remove "hover style" on an element, without any additional code for
-        // compatibility. (`mouseout` will not be triggered in `touchend`, so "hover
-        // style" will remain for user view)
-
-        // click event should always be triggered no matter whether
-        // there is gestrue event. System click can not be prevented.
-        if (+new Date() - (+this.__lastTouchMoment) < TOUCH_CLICK_DELAY) {
-            localDOMHandlers.click.call(this, event);
-        }
-    },
-
-    pointerdown(event: ZRRawEvent) {
-        localDOMHandlers.mousedown.call(this, event);
-
-        // if (useMSGuesture(this, event)) {
-        //     this._msGesture.addPointer(event.pointerId);
-        // }
-    },
-
-    pointermove(event: ZRRawEvent) {
-        // FIXME
-        // pointermove is so sensitive that it always triggered when
-        // tap(click) on touch screen, which affect some judgement in
-        // upper application. So, we don't support mousemove on MS touch
-        // device yet.
-        if (!isPointerFromTouch(event)) {
-            localDOMHandlers.mousemove.call(this, event);
-        }
-    },
-
-    pointerup(event: ZRRawEvent) {
-        localDOMHandlers.mouseup.call(this, event);
-    },
-
-    pointerout(event: ZRRawEvent) {
-        // pointerout will be triggered when tap on touch screen
-        // (IE11+/Edge on MS Surface) after click event triggered,
-        // which is inconsistent with the mousout behavior we defined
-        // in touchend. So we unify them.
-        // (check localDOMHandlers.touchend for detailed explanation)
-        if (!isPointerFromTouch(event)) {
-            localDOMHandlers.mouseout.call(this, event);
-        }
-    }
-
-};
-
-/**
- * Othere DOM UI Event handlers for zr dom.
- * @this {HandlerProxy}
- */
-zrUtil.each(['click', 'dblclick', 'contextmenu'], function (name) {
-    localDOMHandlers[name] = function (event) {
-        event = normalizeEvent(this.dom, event);
-        this.trigger(name, event);
-    };
-});
-
-
-/**
- * DOM UI Event handlers for global page.
- *
- * [Caution]:
- * those handlers should both support in capture phase and bubble phase!
- */
-const globalDOMHandlers: DomHandlersMap = {
-
-    pointermove: function (event: ZRRawEvent) {
-        // FIXME
-        // pointermove is so sensitive that it always triggered when
-        // tap(click) on touch screen, which affect some judgement in
-        // upper application. So, we don't support mousemove on MS touch
-        // device yet.
-        if (!isPointerFromTouch(event)) {
-            globalDOMHandlers.mousemove.call(this, event);
-        }
-    },
-
-    pointerup: function (event: ZRRawEvent) {
-        globalDOMHandlers.mouseup.call(this, event);
-    },
-
-    mousemove: function (event: ZRRawEvent) {
-        this.trigger('mousemove', event);
-    },
-
-    mouseup: function (event: ZRRawEvent) {
-        const pointerCaptureReleasing = this.__pointerCapturing;
-
-        this.__togglePointerCapture(false);
-
-        this.trigger('mouseup', event);
-
-        if (pointerCaptureReleasing) {
-            event.zrEventControl = 'only_globalout';
-            this.trigger('mouseout', event);
-        }
-    }
-
-};
-
-
-function mountLocalDOMEventListeners(instance: HandlerDomProxy, scope: DOMHandlerScope) {
-    const domHandlers = scope.domHandlers;
-
-    if (env.pointerEventsSupported) { // Only IE11+/Edge
-        // 1. On devices that both enable touch and mouse (e.g., MS Surface and lenovo X240),
-        // IE11+/Edge do not trigger touch event, but trigger pointer event and mouse event
-        // at the same time.
-        // 2. On MS Surface, it probablely only trigger mousedown but no mouseup when tap on
-        // screen, which do not occurs in pointer event.
-        // So we use pointer event to both detect touch gesture and mouse behavior.
-        zrUtil.each(localNativeListenerNames.pointer, function (nativeEventName) {
-            mountSingleDOMEventListener(scope, nativeEventName, function (event) {
-                // markTriggeredFromLocal(event);
-                domHandlers[nativeEventName].call(instance, event);
-            });
-        });
-
-        // FIXME
-        // Note: MS Gesture require CSS touch-action set. But touch-action is not reliable,
-        // which does not prevent defuault behavior occasionally (which may cause view port
-        // zoomed in but use can not zoom it back). And event.preventDefault() does not work.
-        // So we have to not to use MSGesture and not to support touchmove and pinch on MS
-        // touch screen. And we only support click behavior on MS touch screen now.
-
-        // MS Gesture Event is only supported on IE11+/Edge and on Windows 8+.
-        // We don't support touch on IE on win7.
-        // See <https://msdn.microsoft.com/en-us/library/dn433243(v=vs.85).aspx>
-        // if (typeof MSGesture === 'function') {
-        //     (this._msGesture = new MSGesture()).target = dom; // jshint ignore:line
-        //     dom.addEventListener('MSGestureChange', onMSGestureChange);
-        // }
-    }
-    else {
-        if (env.touchEventsSupported) {
-            zrUtil.each(localNativeListenerNames.touch, function (nativeEventName) {
-                mountSingleDOMEventListener(scope, nativeEventName, function (event) {
-                    // markTriggeredFromLocal(event);
-                    domHandlers[nativeEventName].call(instance, event);
-                    setTouchTimer(scope);
-                });
-            });
-            // Handler of 'mouseout' event is needed in touch mode, which will be mounted below.
-            // addEventListener(root, 'mouseout', this._mouseoutHandler);
-        }
-
-        // 1. Considering some devices that both enable touch and mouse event (like on MS Surface
-        // and lenovo X240, @see #2350), we make mouse event be always listened, otherwise
-        // mouse event can not be handle in those devices.
-        // 2. On MS Surface, Chrome will trigger both touch event and mouse event. How to prevent
-        // mouseevent after touch event triggered, see `setTouchTimer`.
-        zrUtil.each(localNativeListenerNames.mouse, function (nativeEventName) {
-            mountSingleDOMEventListener(scope, nativeEventName, function (event: ZRRawEvent) {
-                event = getNativeEvent(event);
-                if (!scope.touching) {
-                    // markTriggeredFromLocal(event);
-                    domHandlers[nativeEventName].call(instance, event);
-                }
-            });
-        });
-    }
-}
-
-function mountGlobalDOMEventListeners(instance: HandlerDomProxy, scope: DOMHandlerScope) {
-    // Only IE11+/Edge. See the comment in `mountLocalDOMEventListeners`.
-    if (env.pointerEventsSupported) {
-        zrUtil.each(globalNativeListenerNames.pointer, mount);
-    }
-    // Touch event has implemented "drag outside" so we do not mount global listener for touch event.
-    // (see https://www.w3.org/TR/touch-events/#the-touchmove-event) (see also `DRAG_OUTSIDE`).
-    // We do not consider "both-support-touch-and-mouse device" for this feature (see the comment of
-    // `mountLocalDOMEventListeners`) to avoid bugs util some requirements come.
-    else if (!env.touchEventsSupported) {
-        zrUtil.each(globalNativeListenerNames.mouse, mount);
-    }
-
-    function mount(nativeEventName: string) {
-        function nativeEventListener(event: ZRRawEvent) {
-            event = getNativeEvent(event);
-            // See the reason in [DRAG_OUTSIDE] in `Handler.js`
-            // This checking supports both `useCapture` or not.
-            // PENDING: if there is performance issue in some devices,
-            // we probably can not use `useCapture` and change a easier
-            // to judes whether local (mark).
-            if (!isLocalEl(instance, event.target as Node)) {
-                event = normalizeGlobalEvent(instance, event);
-                scope.domHandlers[nativeEventName].call(instance, event);
-            }
-        }
-        mountSingleDOMEventListener(
-            scope, nativeEventName, nativeEventListener,
-            {capture: true} // See [DRAG_OUTSIDE] in `Handler.js`
-        );
-    }
-}
-
-function mountSingleDOMEventListener(
-    scope: DOMHandlerScope,
-    nativeEventName: string,
-    listener: EventListener,
-    opt?: boolean | AddEventListenerOptions
-) {
-    scope.mounted[nativeEventName] = listener;
-    scope.listenerOpts[nativeEventName] = opt;
-    addEventListener(scope.domTarget, nativeEventName, listener, opt);
-}
-
-function unmountDOMEventListeners(scope: DOMHandlerScope) {
-    const mounted = scope.mounted;
-    for (let nativeEventName in mounted) {
-        if (mounted.hasOwnProperty(nativeEventName)) {
-            removeEventListener(
-                scope.domTarget, nativeEventName, mounted[nativeEventName],
-                scope.listenerOpts[nativeEventName]
-            );
-        }
-    }
-    scope.mounted = {};
-}
-
-
-class DOMHandlerScope {
-    domTarget: HTMLElement | HTMLDocument
-    domHandlers: DomHandlersMap
-
-    // Key: eventName, value: mounted handler functions.
-    // Used for unmount.
-    mounted: Dictionary<EventListener> = {};
-
-    listenerOpts: Dictionary<boolean | AddEventListenerOptions> = {};
-
-    touchTimer: ReturnType<typeof setTimeout>;
-    touching = false;
-
-    constructor(
-        domTarget: HTMLElement | HTMLDocument,
-        domHandlers: DomHandlersMap
-    ) {
-        this.domTarget = domTarget;
-        this.domHandlers = domHandlers;
-
-    }
-}
-
-
-export default class HandlerDomProxy extends Eventful {
-
-    dom: HTMLElement
-    painterRoot: HTMLElement
-
-    handler: Handler
-
-    private _localHandlerScope: DOMHandlerScope
-    private _globalHandlerScope: DOMHandlerScope
-
-    __lastTouchMoment: Date
-
-    // See [DRAG_OUTSIDE] in `Handler.ts`.
-    __pointerCapturing = false
-    // [x, y]
-    __mayPointerCapture: VectorArray
-
-
-    constructor(dom: HTMLElement, painterRoot: HTMLElement) {
-        super();
-
-        this.dom = dom;
-        this.painterRoot = painterRoot;
-
-        this._localHandlerScope = new DOMHandlerScope(dom, localDOMHandlers);
-
-        if (globalEventSupported) {
-            this._globalHandlerScope = new DOMHandlerScope(document, globalDOMHandlers);
-        }
-
-        mountLocalDOMEventListeners(this, this._localHandlerScope);
-    }
-
-    dispose() {
-        unmountDOMEventListeners(this._localHandlerScope);
-        if (globalEventSupported) {
-            unmountDOMEventListeners(this._globalHandlerScope);
-        }
-    }
-
-    setCursor(cursorStyle: string) {
-        this.dom.style && (this.dom.style.cursor = cursorStyle || 'default');
-    }
-
-    /**
-     * See [DRAG_OUTSIDE] in `Handler.js`.
-     * @implement
-     * @param isPointerCapturing Should never be `null`/`undefined`.
-     *        `true`: start to capture pointer if it is not capturing.
-     *        `false`: end the capture if it is capturing.
-     */
-    __togglePointerCapture(isPointerCapturing?: boolean) {
-        this.__mayPointerCapture = null;
-
-        if (globalEventSupported
-            && ((+this.__pointerCapturing) ^ (+isPointerCapturing))
-        ) {
-            this.__pointerCapturing = isPointerCapturing;
-
-            const globalHandlerScope = this._globalHandlerScope;
-            isPointerCapturing
-                ? mountGlobalDOMEventListeners(this, globalHandlerScope)
-                : unmountDOMEventListeners(globalHandlerScope);
-        }
-    }
-}
-
-export interface HandlerProxyInterface extends Eventful {
-    handler: Handler
-    dispose: () => void
-    setCursor: (cursorStyle?: string) => void
-}

+ 0 - 76
node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/export.ts

@@ -1,76 +0,0 @@
-/**
- * Do not mount those modules on 'src/zrender' for better tree shaking.
- */
-
-import * as zrUtil from './core/util';
-import * as matrix from './core/matrix';
-import * as vector from './core/vector';
-import * as colorTool from './tool/color';
-import * as pathTool from './tool/path';
-import {parseSVG} from './tool/parseSVG';
-
-import * as morphPathTool from './tool/morphPath';
-
-export {default as Point, PointLike} from './core/Point';
-
-export {
-    default as Element,
-    ElementAnimateConfig,
-    ElementTextConfig,
-    ElementTextGuideLineConfig,
-    ElementEvent,
-    ElementEventCallback,
-    ElementProps
-} from './Element';
-
-export {default as Displayable, DisplayableProps} from './graphic/Displayable';
-export {default as Group, GroupProps} from './graphic/Group';
-export {default as Path, PathStyleProps, PathProps, PathStatePropNames, PathState} from './graphic/Path';
-export {default as Image, ImageStyleProps, ImageProps, ImageState} from './graphic/Image';
-export {default as CompoundPath, CompoundPathShape} from './graphic/CompoundPath';
-export {default as TSpan, TSpanStyleProps, TSpanProps, TSpanState} from './graphic/TSpan';
-export {default as IncrementalDisplayable} from './graphic/IncrementalDisplayable';
-export {default as Text, TextStylePropsPart, TextStyleProps, TextProps, TextState} from './graphic/Text';
-
-export {default as Arc, ArcProps, ArcShape} from './graphic/shape/Arc';
-export {default as BezierCurve, BezierCurveProps, BezierCurveShape} from './graphic/shape/BezierCurve';
-export {default as Circle, CircleProps, CircleShape} from './graphic/shape/Circle';
-export {default as Droplet, DropletProps, DropletShape} from './graphic/shape/Droplet';
-export {default as Ellipse, EllipseProps, EllipseShape} from './graphic/shape/Ellipse';
-export {default as Heart, HeartProps, HeartShape} from './graphic/shape/Heart';
-export {default as Isogon, IsogonProps, IsogonShape} from './graphic/shape/Isogon';
-export {default as Line, LineProps, LineShape} from './graphic/shape/Line';
-export {default as Polygon, PolygonProps, PolygonShape} from './graphic/shape/Polygon';
-export {default as Polyline, PolylineProps, PolylineShape} from './graphic/shape/Polyline';
-export {default as Rect, RectProps, RectShape} from './graphic/shape/Rect';
-export {default as Ring, RingProps, RingShape} from './graphic/shape/Ring';
-export {default as Rose, RoseProps, RoseShape} from './graphic/shape/Rose';
-export {default as Sector, SectorProps, SectorShape} from './graphic/shape/Sector';
-export {default as Star, StarProps, StarShape} from './graphic/shape/Star';
-export {default as Trochoid, TrochoidProps, TrochoidShape} from './graphic/shape/Trochoid';
-
-export {default as LinearGradient, LinearGradientObject} from './graphic/LinearGradient';
-export {default as RadialGradient, RadialGradientObject} from './graphic/RadialGradient';
-export {
-    default as Pattern,
-    PatternObjectBase,
-    PatternObject,
-    ImagePatternObject,
-    SVGPatternObject
-} from './graphic/Pattern';
-export {default as BoundingRect, RectLike} from './core/BoundingRect';
-export {default as OrientedBoundingRect} from './core/OrientedBoundingRect';
-
-export {matrix};
-export {vector};
-export {colorTool as color};
-export {pathTool as path};
-export {zrUtil as util};
-
-export {morphPathTool as morph};
-
-export {parseSVG};
-
-export {default as showDebugDirtyRect} from './debug/showDebugDirtyRect';
-
-export {setPlatformAPI} from './core/platform';

+ 0 - 5
node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/global.d.ts

@@ -1,5 +0,0 @@
-declare namespace NodeJS {
-    interface ProcessEnv {
-        NODE_ENV: 'production' | 'development'
-    }
-}

+ 0 - 59
node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/graphic/CompoundPath.ts

@@ -1,59 +0,0 @@
-// CompoundPath to improve performance
-
-import Path from './Path';
-import PathProxy from '../core/PathProxy';
-
-export interface CompoundPathShape {
-    paths: Path[]
-}
-
-export default class CompoundPath extends Path {
-
-    type = 'compound'
-
-    shape: CompoundPathShape
-
-    private _updatePathDirty() {
-        const paths = this.shape.paths;
-        let dirtyPath = this.shapeChanged();
-        for (let i = 0; i < paths.length; i++) {
-            // Mark as dirty if any subpath is dirty
-            dirtyPath = dirtyPath || paths[i].shapeChanged();
-        }
-        if (dirtyPath) {
-            this.dirtyShape();
-        }
-    }
-
-    beforeBrush() {
-        this._updatePathDirty();
-        const paths = this.shape.paths || [];
-        const scale = this.getGlobalScale();
-        // Update path scale
-        for (let i = 0; i < paths.length; i++) {
-            if (!paths[i].path) {
-                paths[i].createPathProxy();
-            }
-            paths[i].path.setScale(scale[0], scale[1], paths[i].segmentIgnoreThreshold);
-        }
-    }
-
-    buildPath(ctx: PathProxy | CanvasRenderingContext2D, shape: CompoundPathShape) {
-        const paths = shape.paths || [];
-        for (let i = 0; i < paths.length; i++) {
-            paths[i].buildPath(ctx, paths[i].shape, true);
-        }
-    }
-
-    afterBrush() {
-        const paths = this.shape.paths || [];
-        for (let i = 0; i < paths.length; i++) {
-            paths[i].pathUpdated();
-        }
-    }
-
-    getBoundingRect() {
-        this._updatePathDirty.call(this);
-        return Path.prototype.getBoundingRect.call(this);
-    }
-}

+ 0 - 624
node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/graphic/Displayable.ts

@@ -1,624 +0,0 @@
-/**
- * Base class of all displayable graphic objects
- */
-
-import Element, {ElementProps, ElementStatePropNames, ElementAnimateConfig, ElementCommonState} from '../Element';
-import BoundingRect from '../core/BoundingRect';
-import { PropType, Dictionary, MapToType } from '../core/types';
-import Path from './Path';
-import { keys, extend, createObject } from '../core/util';
-import Animator from '../animation/Animator';
-import { REDRAW_BIT, STYLE_CHANGED_BIT } from './constants';
-
-// type CalculateTextPositionResult = ReturnType<typeof calculateTextPosition>
-
-const STYLE_MAGIC_KEY = '__zr_style_' + Math.round((Math.random() * 10));
-
-export interface CommonStyleProps {
-    shadowBlur?: number
-    shadowOffsetX?: number
-    shadowOffsetY?: number
-    shadowColor?: string
-
-    opacity?: number
-    /**
-     * https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/globalCompositeOperation
-     */
-    blend?: string
-}
-
-export const DEFAULT_COMMON_STYLE: CommonStyleProps = {
-    shadowBlur: 0,
-    shadowOffsetX: 0,
-    shadowOffsetY: 0,
-    shadowColor: '#000',
-    opacity: 1,
-    blend: 'source-over'
-};
-
-export const DEFAULT_COMMON_ANIMATION_PROPS: MapToType<DisplayableProps, boolean> = {
-    style: {
-        shadowBlur: true,
-        shadowOffsetX: true,
-        shadowOffsetY: true,
-        shadowColor: true,
-        opacity: true
-    }
- };
-
-(DEFAULT_COMMON_STYLE as any)[STYLE_MAGIC_KEY] = true;
-
-export interface DisplayableProps extends ElementProps {
-    style?: Dictionary<any>
-
-    zlevel?: number
-    z?: number
-    z2?: number
-
-    culling?: boolean
-
-    // TODO list all cursors
-    cursor?: string
-
-    rectHover?: boolean
-
-    progressive?: boolean
-
-    incremental?: boolean
-
-    ignoreCoarsePointer?: boolean
-
-    batch?: boolean
-    invisible?: boolean
-}
-
-type DisplayableKey = keyof DisplayableProps
-type DisplayablePropertyType = PropType<DisplayableProps, DisplayableKey>
-
-export type DisplayableStatePropNames = ElementStatePropNames | 'style' | 'z' | 'z2' | 'invisible';
-export type DisplayableState = Pick<DisplayableProps, DisplayableStatePropNames> & ElementCommonState;
-
-const PRIMARY_STATES_KEYS = ['z', 'z2', 'invisible'] as const;
-const PRIMARY_STATES_KEYS_IN_HOVER_LAYER = ['invisible'] as const;
-
-// eslint-disable-next-line @typescript-eslint/no-unused-vars
-interface Displayable<Props extends DisplayableProps = DisplayableProps> {
-    animate(key?: '', loop?: boolean): Animator<this>
-    animate(key: 'style', loop?: boolean): Animator<this['style']>
-
-    getState(stateName: string): DisplayableState
-    ensureState(stateName: string): DisplayableState
-
-    states: Dictionary<DisplayableState>
-    stateProxy: (stateName: string) => DisplayableState
-}
-
-class Displayable<Props extends DisplayableProps = DisplayableProps> extends Element<Props> {
-
-    /**
-     * Whether the displayable object is visible. when it is true, the displayable object
-     * is not drawn, but the mouse event can still trigger the object.
-     */
-    invisible: boolean
-
-    z: number
-
-    z2: number
-
-    /**
-     * The z level determines the displayable object can be drawn in which layer canvas.
-     */
-    zlevel: number
-
-    /**
-     * If enable culling
-     */
-    culling: boolean
-
-    /**
-     * Mouse cursor when hovered
-     */
-    cursor: string
-
-    /**
-     * If hover area is bounding rect
-     */
-    rectHover: boolean
-    /**
-     * For increamental rendering
-     */
-    incremental: boolean
-
-    /**
-     * Never increase to target size
-     */
-    ignoreCoarsePointer?: boolean
-
-    style: Dictionary<any>
-
-    protected _normalState: DisplayableState
-
-    protected _rect: BoundingRect
-    protected _paintRect: BoundingRect
-    protected _prevPaintRect: BoundingRect
-
-    dirtyRectTolerance: number
-
-    /************* Properties will be inejected in other modules. *******************/
-
-    // @deprecated.
-    useHoverLayer?: boolean
-
-    __hoverStyle?: CommonStyleProps
-
-    // TODO use WeakMap?
-
-    // Shapes for cascade clipping.
-    // Can only be `null`/`undefined` or an non-empty array, MUST NOT be an empty array.
-    // because it is easy to only using null to check whether clipPaths changed.
-    __clipPaths?: Path[]
-
-    // FOR CANVAS PAINTER
-    __canvasFillGradient: CanvasGradient
-    __canvasStrokeGradient: CanvasGradient
-    __canvasFillPattern: CanvasPattern
-    __canvasStrokePattern: CanvasPattern
-
-    // FOR SVG PAINTER
-    __svgEl: SVGElement
-
-    constructor(props?: Props) {
-        super(props);
-    }
-
-    protected _init(props?: Props) {
-        // Init default properties
-        const keysArr = keys(props);
-        for (let i = 0; i < keysArr.length; i++) {
-            const key = keysArr[i];
-            if (key === 'style') {
-                this.useStyle(props[key] as Props['style']);
-            }
-            else {
-                super.attrKV(key as any, props[key]);
-            }
-        }
-        // Give a empty style
-        if (!this.style) {
-            this.useStyle({});
-        }
-    }
-
-    // Hook provided to developers.
-    beforeBrush() {}
-    afterBrush() {}
-
-    // Hook provided to inherited classes.
-    // Executed between beforeBrush / afterBrush
-    innerBeforeBrush() {}
-    innerAfterBrush() {}
-
-    shouldBePainted(
-        viewWidth: number,
-        viewHeight: number,
-        considerClipPath: boolean,
-        considerAncestors: boolean
-    ) {
-        const m = this.transform;
-        if (
-            this.ignore
-            // Ignore invisible element
-            || this.invisible
-            // Ignore transparent element
-            || this.style.opacity === 0
-            // Ignore culled element
-            || (this.culling
-                && isDisplayableCulled(this, viewWidth, viewHeight)
-            )
-            // Ignore scale 0 element, in some environment like node-canvas
-            // Draw a scale 0 element can cause all following draw wrong
-            // And setTransform with scale 0 will cause set back transform failed.
-            || (m && !m[0] && !m[3])
-        ) {
-            return false;
-        }
-
-        if (considerClipPath && this.__clipPaths) {
-            for (let i = 0; i < this.__clipPaths.length; ++i) {
-                if (this.__clipPaths[i].isZeroArea()) {
-                    return false;
-                }
-            }
-        }
-
-        if (considerAncestors && this.parent) {
-            let parent = this.parent;
-            while (parent) {
-                if (parent.ignore) {
-                    return false;
-                }
-                parent = parent.parent;
-            }
-        }
-
-        return true;
-    }
-
-    /**
-     * If displayable element contain coord x, y
-     */
-    contain(x: number, y: number) {
-        return this.rectContain(x, y);
-    }
-
-    traverse<Context>(
-        cb: (this: Context, el: this) => void,
-        context?: Context
-    ) {
-        cb.call(context, this);
-    }
-
-    /**
-     * If bounding rect of element contain coord x, y
-     */
-    rectContain(x: number, y: number) {
-        const coord = this.transformCoordToLocal(x, y);
-        const rect = this.getBoundingRect();
-        return rect.contain(coord[0], coord[1]);
-    }
-
-    getPaintRect(): BoundingRect {
-        let rect = this._paintRect;
-        if (!this._paintRect || this.__dirty) {
-            const transform = this.transform;
-            const elRect = this.getBoundingRect();
-
-            const style = this.style;
-            const shadowSize = style.shadowBlur || 0;
-            const shadowOffsetX = style.shadowOffsetX || 0;
-            const shadowOffsetY = style.shadowOffsetY || 0;
-
-            rect = this._paintRect || (this._paintRect = new BoundingRect(0, 0, 0, 0));
-            if (transform) {
-                BoundingRect.applyTransform(rect, elRect, transform);
-            }
-            else {
-                rect.copy(elRect);
-            }
-
-            if (shadowSize || shadowOffsetX || shadowOffsetY) {
-                rect.width += shadowSize * 2 + Math.abs(shadowOffsetX);
-                rect.height += shadowSize * 2 + Math.abs(shadowOffsetY);
-                rect.x = Math.min(rect.x, rect.x + shadowOffsetX - shadowSize);
-                rect.y = Math.min(rect.y, rect.y + shadowOffsetY - shadowSize);
-
-            }
-
-            // For the accuracy tolerance of text height or line joint point
-            const tolerance = this.dirtyRectTolerance;
-            if (!rect.isZero()) {
-                rect.x = Math.floor(rect.x - tolerance);
-                rect.y = Math.floor(rect.y - tolerance);
-                rect.width = Math.ceil(rect.width + 1 + tolerance * 2);
-                rect.height = Math.ceil(rect.height + 1 + tolerance * 2);
-            }
-        }
-        return rect;
-    }
-
-    setPrevPaintRect(paintRect: BoundingRect) {
-        if (paintRect) {
-            this._prevPaintRect = this._prevPaintRect || new BoundingRect(0, 0, 0, 0);
-            this._prevPaintRect.copy(paintRect);
-        }
-        else {
-            this._prevPaintRect = null;
-        }
-    }
-
-    getPrevPaintRect(): BoundingRect {
-        return this._prevPaintRect;
-    }
-
-    /**
-     * Alias for animate('style')
-     * @param loop
-     */
-    animateStyle(loop: boolean) {
-        return this.animate('style', loop);
-    }
-
-    // Override updateDuringAnimation
-    updateDuringAnimation(targetKey: string) {
-        if (targetKey === 'style') {
-            this.dirtyStyle();
-        }
-        else {
-            this.markRedraw();
-        }
-    }
-
-    attrKV(key: DisplayableKey, value: DisplayablePropertyType) {
-        if (key !== 'style') {
-            super.attrKV(key as keyof DisplayableProps, value);
-        }
-        else {
-            if (!this.style) {
-                this.useStyle(value as Dictionary<any>);
-            }
-            else {
-                this.setStyle(value as Dictionary<any>);
-            }
-        }
-    }
-
-    setStyle(obj: Props['style']): this
-    setStyle<T extends keyof Props['style']>(obj: T, value: Props['style'][T]): this
-    setStyle(keyOrObj: keyof Props['style'] | Props['style'], value?: unknown): this {
-        if (typeof keyOrObj === 'string') {
-            this.style[keyOrObj] = value;
-        }
-        else {
-            extend(this.style, keyOrObj as Props['style']);
-        }
-        this.dirtyStyle();
-        return this;
-    }
-
-    // getDefaultStyleValue<T extends keyof Props['style']>(key: T): Props['style'][T] {
-    //     // Default value is on the prototype.
-    //     return this.style.prototype[key];
-    // }
-
-    dirtyStyle(notRedraw?: boolean) {
-        if (!notRedraw) {
-            this.markRedraw();
-        }
-        this.__dirty |= STYLE_CHANGED_BIT;
-        // Clear bounding rect.
-        if (this._rect) {
-            this._rect = null;
-        }
-    }
-
-    dirty() {
-        this.dirtyStyle();
-    }
-
-    /**
-     * Is style changed. Used with dirtyStyle.
-     */
-    styleChanged() {
-        return !!(this.__dirty & STYLE_CHANGED_BIT);
-    }
-
-    /**
-     * Mark style updated. Only useful when style is used for caching. Like in the text.
-     */
-    styleUpdated() {
-        this.__dirty &= ~STYLE_CHANGED_BIT;
-    }
-
-    /**
-     * Create a style object with default values in it's prototype.
-     */
-    createStyle(obj?: Props['style']) {
-        return createObject(DEFAULT_COMMON_STYLE, obj);
-    }
-
-    /**
-     * Replace style property.
-     * It will create a new style if given obj is not a valid style object.
-     */
-     // PENDING should not createStyle if it's an style object.
-    useStyle(obj: Props['style']) {
-        if (!obj[STYLE_MAGIC_KEY]) {
-            obj = this.createStyle(obj);
-        }
-        if (this.__inHover) {
-            this.__hoverStyle = obj;    // Not affect exists style.
-        }
-        else {
-            this.style = obj;
-        }
-        this.dirtyStyle();
-    }
-
-    /**
-     * Determine if an object is a valid style object.
-     * Which means it is created by `createStyle.`
-     *
-     * A valid style object will have all default values in it's prototype.
-     * To avoid get null/undefined values.
-     */
-    isStyleObject(obj: Props['style']) {
-        return obj[STYLE_MAGIC_KEY];
-    }
-
-    protected _innerSaveToNormal(toState: DisplayableState) {
-        super._innerSaveToNormal(toState);
-
-        const normalState = this._normalState;
-        if (toState.style && !normalState.style) {
-            // Clone style object.
-            // TODO: Only save changed style.
-            normalState.style = this._mergeStyle(this.createStyle(), this.style);
-        }
-
-        this._savePrimaryToNormal(toState, normalState, PRIMARY_STATES_KEYS);
-    }
-
-    protected _applyStateObj(
-        stateName: string,
-        state: DisplayableState,
-        normalState: DisplayableState,
-        keepCurrentStates: boolean,
-        transition: boolean,
-        animationCfg: ElementAnimateConfig
-    ) {
-        super._applyStateObj(stateName, state, normalState, keepCurrentStates, transition, animationCfg);
-
-        const needsRestoreToNormal = !(state && keepCurrentStates);
-        let targetStyle: Props['style'];
-        if (state && state.style) {
-            // Only animate changed properties.
-            if (transition) {
-                if (keepCurrentStates) {
-                    targetStyle = state.style;
-                }
-                else {
-                    targetStyle = this._mergeStyle(this.createStyle(), normalState.style);
-                    this._mergeStyle(targetStyle, state.style);
-                }
-            }
-            else {
-                targetStyle = this._mergeStyle(
-                    this.createStyle(),
-                    keepCurrentStates ? this.style : normalState.style
-                );
-                this._mergeStyle(targetStyle, state.style);
-            }
-        }
-        else if (needsRestoreToNormal) {
-            targetStyle = normalState.style;
-        }
-
-        if (targetStyle) {
-            if (transition) {
-                // Clone a new style. Not affect the original one.
-                const sourceStyle = this.style;
-
-                this.style = this.createStyle(needsRestoreToNormal ? {} : sourceStyle);
-                // const sourceStyle = this.style = this.createStyle(this.style);
-
-                if (needsRestoreToNormal) {
-                    const changedKeys = keys(sourceStyle);
-                    for (let i = 0; i < changedKeys.length; i++) {
-                        const key = changedKeys[i];
-                        if (key in targetStyle) {   // Not use `key == null` because == null may means no stroke/fill.
-                            // Pick out from prototype. Or the property won't be animated.
-                            (targetStyle as any)[key] = targetStyle[key];
-                            // Omit the property has no default value.
-                            (this.style as any)[key] = sourceStyle[key];
-                        }
-                    }
-                }
-
-                // If states is switched twice in ONE FRAME, for example:
-                // one property(for example shadowBlur) changed from default value to a specifed value,
-                // then switched back in immediately. this.style may don't set this property yet when switching back.
-                // It won't treat it as an changed property when switching back. And it won't be animated.
-                // So here we make sure the properties will be animated from default value to a specifed value are set.
-                const targetKeys = keys(targetStyle);
-                for (let i = 0; i < targetKeys.length; i++) {
-                    const key = targetKeys[i];
-                    this.style[key] = this.style[key];
-                }
-
-                this._transitionState(stateName, {
-                    style: targetStyle
-                } as Props, animationCfg, this.getAnimationStyleProps() as MapToType<Props, boolean>);
-            }
-            else {
-                this.useStyle(targetStyle);
-            }
-        }
-
-        // Don't change z, z2 for element moved into hover layer.
-        // It's not necessary and will cause paint list order changed.
-        const statesKeys = this.__inHover ? PRIMARY_STATES_KEYS_IN_HOVER_LAYER : PRIMARY_STATES_KEYS;
-        for (let i = 0; i < statesKeys.length; i++) {
-            let key = statesKeys[i];
-            if (state && state[key] != null) {
-                // Replace if it exist in target state
-                (this as any)[key] = state[key];
-            }
-            else if (needsRestoreToNormal) {
-                // Restore to normal state
-                if (normalState[key] != null) {
-                    (this as any)[key] = normalState[key];
-                }
-            }
-        }
-    }
-
-    protected _mergeStates(states: DisplayableState[]) {
-        const mergedState = super._mergeStates(states) as DisplayableState;
-        let mergedStyle: Props['style'];
-        for (let i = 0; i < states.length; i++) {
-            const state = states[i];
-            if (state.style) {
-                mergedStyle = mergedStyle || {};
-                this._mergeStyle(mergedStyle, state.style);
-            }
-        }
-        if (mergedStyle) {
-            mergedState.style = mergedStyle;
-        }
-        return mergedState;
-    }
-
-    protected _mergeStyle(
-        targetStyle: CommonStyleProps,
-        sourceStyle: CommonStyleProps
-    ) {
-        extend(targetStyle, sourceStyle);
-        return targetStyle;
-    }
-
-    getAnimationStyleProps() {
-        return DEFAULT_COMMON_ANIMATION_PROPS;
-    }
-
-    /**
-     * The string value of `textPosition` needs to be calculated to a real postion.
-     * For example, `'inside'` is calculated to `[rect.width/2, rect.height/2]`
-     * by default. See `contain/text.js#calculateTextPosition` for more details.
-     * But some coutom shapes like "pin", "flag" have center that is not exactly
-     * `[width/2, height/2]`. So we provide this hook to customize the calculation
-     * for those shapes. It will be called if the `style.textPosition` is a string.
-     * @param out Prepared out object. If not provided, this method should
-     *        be responsible for creating one.
-     * @param style
-     * @param rect {x, y, width, height}
-     * @return out The same as the input out.
-     *         {
-     *             x: number. mandatory.
-     *             y: number. mandatory.
-     *             textAlign: string. optional. use style.textAlign by default.
-     *             textVerticalAlign: string. optional. use style.textVerticalAlign by default.
-     *         }
-     */
-    // calculateTextPosition: (out: CalculateTextPositionResult, style: Dictionary<any>, rect: RectLike) => CalculateTextPositionResult
-
-    protected static initDefaultProps = (function () {
-        const dispProto = Displayable.prototype;
-        dispProto.type = 'displayable';
-        dispProto.invisible = false;
-        dispProto.z = 0;
-        dispProto.z2 = 0;
-        dispProto.zlevel = 0;
-        dispProto.culling = false;
-        dispProto.cursor = 'pointer';
-        dispProto.rectHover = false;
-        dispProto.incremental = false;
-        dispProto._rect = null;
-        dispProto.dirtyRectTolerance = 0;
-
-        dispProto.__dirty = REDRAW_BIT | STYLE_CHANGED_BIT;
-    })()
-}
-
-const tmpRect = new BoundingRect(0, 0, 0, 0);
-const viewRect = new BoundingRect(0, 0, 0, 0);
-function isDisplayableCulled(el: Displayable, width: number, height: number) {
-    tmpRect.copy(el.getBoundingRect());
-    if (el.transform) {
-        tmpRect.applyTransform(el.transform);
-    }
-    viewRect.width = width;
-    viewRect.height = height;
-    return !tmpRect.intersect(viewRect);
-}
-
-export default Displayable;

+ 0 - 44
node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/graphic/Gradient.ts

@@ -1,44 +0,0 @@
-// TODO Should GradientObject been LinearGradientObject | RadialGradientObject
-export interface GradientObject {
-
-    id?: number
-
-    type: string
-
-    colorStops: GradientColorStop[]
-
-    global?: boolean
-}
-
-export interface InnerGradientObject extends GradientObject {
-    __canvasGradient: CanvasGradient
-    __width: number
-    __height: number
-}
-
-export interface GradientColorStop {
-    offset: number
-    color: string
-}
-
-export default class Gradient {
-
-    id?: number
-
-    type: string
-
-    colorStops: GradientColorStop[]
-
-    global: boolean
-
-    constructor(colorStops: GradientColorStop[]) {
-        this.colorStops = colorStops || [];
-    }
-
-    addColorStop(offset: number, color: string) {
-        this.colorStops.push({
-            offset,
-            color
-        });
-    }
-}

+ 0 - 300
node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/graphic/Group.ts

@@ -1,300 +0,0 @@
-/**
- * Group是一个容器,可以插入子节点,Group的变换也会被应用到子节点上
- * @module zrender/graphic/Group
- * @example
- *     const Group = require('zrender/graphic/Group');
- *     const Circle = require('zrender/graphic/shape/Circle');
- *     const g = new Group();
- *     g.position[0] = 100;
- *     g.position[1] = 100;
- *     g.add(new Circle({
- *         style: {
- *             x: 100,
- *             y: 100,
- *             r: 20,
- *         }
- *     }));
- *     zr.add(g);
- */
-
-import * as zrUtil from '../core/util';
-import Element, { ElementProps } from '../Element';
-import BoundingRect from '../core/BoundingRect';
-import { MatrixArray } from '../core/matrix';
-import Displayable from './Displayable';
-import { ZRenderType } from '../zrender';
-
-export interface GroupProps extends ElementProps {
-}
-
-class Group extends Element<GroupProps> {
-
-    readonly isGroup = true
-
-    private _children: Element[] = []
-
-
-    constructor(opts?: GroupProps) {
-        super();
-
-        this.attr(opts);
-    }
-
-    /**
-     * Get children reference.
-     */
-    childrenRef() {
-        return this._children;
-    }
-
-    /**
-     * Get children copy.
-     */
-    children() {
-        return this._children.slice();
-    }
-
-    /**
-     * 获取指定 index 的儿子节点
-     */
-    childAt(idx: number): Element {
-        return this._children[idx];
-    }
-
-    /**
-     * 获取指定名字的儿子节点
-     */
-    childOfName(name: string): Element {
-        const children = this._children;
-        for (let i = 0; i < children.length; i++) {
-            if (children[i].name === name) {
-                return children[i];
-            }
-        }
-    }
-
-    childCount(): number {
-        return this._children.length;
-    }
-
-    /**
-     * 添加子节点到最后
-     */
-    add(child: Element): Group {
-        if (child) {
-            if (child !== this && child.parent !== this) {
-                this._children.push(child);
-                this._doAdd(child);
-            }
-            if (process.env.NODE_ENV !== 'production') {
-                if (child.__hostTarget) {
-                    throw 'This elemenet has been used as an attachment';
-                }
-            }
-        }
-
-        return this;
-    }
-
-    /**
-     * 添加子节点在 nextSibling 之前
-     */
-    addBefore(child: Element, nextSibling: Element) {
-        if (child && child !== this && child.parent !== this
-            && nextSibling && nextSibling.parent === this) {
-
-            const children = this._children;
-            const idx = children.indexOf(nextSibling);
-
-            if (idx >= 0) {
-                children.splice(idx, 0, child);
-                this._doAdd(child);
-            }
-        }
-
-        return this;
-    }
-
-    replace(oldChild: Element, newChild: Element) {
-        const idx = zrUtil.indexOf(this._children, oldChild);
-        if (idx >= 0) {
-            this.replaceAt(newChild, idx);
-        }
-        return this;
-    }
-
-    replaceAt(child: Element, index: number) {
-        const children = this._children;
-        const old = children[index];
-
-        if (child && child !== this && child.parent !== this && child !== old) {
-            children[index] = child;
-
-            old.parent = null;
-            const zr = this.__zr;
-            if (zr) {
-                old.removeSelfFromZr(zr);
-            }
-
-            this._doAdd(child);
-        }
-
-        return this;
-    }
-
-    _doAdd(child: Element) {
-        if (child.parent) {
-            // Parent must be a group
-            (child.parent as Group).remove(child);
-        }
-
-        child.parent = this;
-
-        const zr = this.__zr;
-        if (zr && zr !== (child as Group).__zr) {    // Only group has __storage
-
-            child.addSelfToZr(zr);
-        }
-
-        zr && zr.refresh();
-    }
-
-    /**
-     * Remove child
-     * @param child
-     */
-    remove(child: Element) {
-        const zr = this.__zr;
-        const children = this._children;
-
-        const idx = zrUtil.indexOf(children, child);
-        if (idx < 0) {
-            return this;
-        }
-        children.splice(idx, 1);
-
-        child.parent = null;
-
-        if (zr) {
-
-            child.removeSelfFromZr(zr);
-        }
-
-        zr && zr.refresh();
-
-        return this;
-    }
-
-    /**
-     * Remove all children
-     */
-    removeAll() {
-        const children = this._children;
-        const zr = this.__zr;
-        for (let i = 0; i < children.length; i++) {
-            const child = children[i];
-            if (zr) {
-                child.removeSelfFromZr(zr);
-            }
-            child.parent = null;
-        }
-        children.length = 0;
-
-        return this;
-    }
-
-    /**
-     * 遍历所有子节点
-     */
-    eachChild<Context>(
-        cb: (this: Context, el: Element, index?: number) => void,
-        context?: Context
-    ) {
-        const children = this._children;
-        for (let i = 0; i < children.length; i++) {
-            const child = children[i];
-            cb.call(context, child, i);
-        }
-        return this;
-    }
-
-    /**
-     * Visit all descendants.
-     * Return false in callback to stop visit descendants of current node
-     */
-    // TODO Group itself should also invoke the callback.
-    traverse<T>(
-        cb: (this: T, el: Element) => boolean | void,
-        context?: T
-    ) {
-        for (let i = 0; i < this._children.length; i++) {
-            const child = this._children[i];
-            const stopped = cb.call(context, child);
-
-            if (child.isGroup && !stopped) {
-                child.traverse(cb, context);
-            }
-        }
-        return this;
-    }
-
-    addSelfToZr(zr: ZRenderType) {
-        super.addSelfToZr(zr);
-        for (let i = 0; i < this._children.length; i++) {
-            const child = this._children[i];
-            child.addSelfToZr(zr);
-        }
-    }
-
-    removeSelfFromZr(zr: ZRenderType) {
-        super.removeSelfFromZr(zr);
-        for (let i = 0; i < this._children.length; i++) {
-            const child = this._children[i];
-            child.removeSelfFromZr(zr);
-        }
-    }
-
-    getBoundingRect(includeChildren?: Element[]): BoundingRect {
-        // TODO Caching
-        const tmpRect = new BoundingRect(0, 0, 0, 0);
-        const children = includeChildren || this._children;
-        const tmpMat: MatrixArray = [];
-        let rect = null;
-
-        for (let i = 0; i < children.length; i++) {
-            const child = children[i];
-            // TODO invisible?
-            if (child.ignore || (child as Displayable).invisible) {
-                continue;
-            }
-
-            const childRect = child.getBoundingRect();
-            const transform = child.getLocalTransform(tmpMat);
-            // TODO
-            // The boundingRect cacluated by transforming original
-            // rect may be bigger than the actual bundingRect when rotation
-            // is used. (Consider a circle rotated aginst its center, where
-            // the actual boundingRect should be the same as that not be
-            // rotated.) But we can not find better approach to calculate
-            // actual boundingRect yet, considering performance.
-            if (transform) {
-                BoundingRect.applyTransform(tmpRect, childRect, transform);
-                rect = rect || tmpRect.clone();
-                rect.union(tmpRect);
-            }
-            else {
-                rect = rect || childRect.clone();
-                rect.union(childRect);
-            }
-        }
-        return rect || tmpRect;
-    }
-}
-
-Group.prototype.type = 'group';
-// Storage will use childrenRef to get children to render.
-export interface GroupLike extends Element {
-    childrenRef(): Element[]
-}
-
-export default Group;

+ 0 - 126
node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/graphic/Image.ts

@@ -1,126 +0,0 @@
-import Displayable, { DisplayableProps,
-    CommonStyleProps,
-    DEFAULT_COMMON_STYLE,
-    DisplayableStatePropNames,
-    DEFAULT_COMMON_ANIMATION_PROPS
-} from './Displayable';
-import BoundingRect from '../core/BoundingRect';
-import { ImageLike, MapToType } from '../core/types';
-import { defaults, createObject } from '../core/util';
-import { ElementCommonState } from '../Element';
-
-export interface ImageStyleProps extends CommonStyleProps {
-    image?: string | ImageLike
-    x?: number
-    y?: number
-    width?: number
-    height?: number
-    sx?: number
-    sy?: number
-    sWidth?: number
-    sHeight?: number
-}
-
-export const DEFAULT_IMAGE_STYLE: CommonStyleProps = defaults({
-    x: 0,
-    y: 0
-}, DEFAULT_COMMON_STYLE);
-
-export const DEFAULT_IMAGE_ANIMATION_PROPS: MapToType<ImageProps, boolean> = {
-    style: defaults<MapToType<ImageStyleProps, boolean>, MapToType<ImageStyleProps, boolean>>({
-        x: true,
-        y: true,
-        width: true,
-        height: true,
-        sx: true,
-        sy: true,
-        sWidth: true,
-        sHeight: true
-    }, DEFAULT_COMMON_ANIMATION_PROPS.style)
- };
-
-export interface ImageProps extends DisplayableProps {
-    style?: ImageStyleProps
-
-    onload?: (image: ImageLike) => void
-}
-
-export type ImageState = Pick<ImageProps, DisplayableStatePropNames> & ElementCommonState
-
-function isImageLike(source: unknown): source is HTMLImageElement {
-    return !!(source
-        && typeof source !== 'string'
-        // Image source is an image, canvas, video.
-        && (source as HTMLImageElement).width && (source as HTMLImageElement).height);
-}
-
-class ZRImage extends Displayable<ImageProps> {
-
-    style: ImageStyleProps
-
-    // FOR CANVAS RENDERER
-    __image: ImageLike
-    // FOR SVG RENDERER
-    __imageSrc: string
-
-    onload: (image: ImageLike) => void
-
-    /**
-     * Create an image style object with default values in it's prototype.
-     * @override
-     */
-    createStyle(obj?: ImageStyleProps) {
-        return createObject(DEFAULT_IMAGE_STYLE, obj);
-    }
-
-    private _getSize(dim: 'width' | 'height') {
-        const style = this.style;
-
-        let size = style[dim];
-        if (size != null) {
-            return size;
-        }
-
-        const imageSource = isImageLike(style.image)
-            ? style.image : this.__image;
-
-        if (!imageSource) {
-            return 0;
-        }
-
-        const otherDim = dim === 'width' ? 'height' : 'width';
-        let otherDimSize = style[otherDim];
-        if (otherDimSize == null) {
-            return imageSource[dim];
-        }
-        else {
-            return imageSource[dim] / imageSource[otherDim] * otherDimSize;
-        }
-    }
-
-    getWidth(): number {
-        return this._getSize('width');
-    }
-
-    getHeight(): number {
-        return this._getSize('height');
-    }
-
-    getAnimationStyleProps() {
-        return DEFAULT_IMAGE_ANIMATION_PROPS;
-    }
-
-    getBoundingRect(): BoundingRect {
-        const style = this.style;
-        if (!this._rect) {
-            this._rect = new BoundingRect(
-                style.x || 0, style.y || 0, this.getWidth(), this.getHeight()
-            );
-        }
-        return this._rect;
-    }
-}
-
-ZRImage.prototype.type = 'image';
-
-export default ZRImage;

+ 0 - 148
node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/graphic/IncrementalDisplayable.ts

@@ -1,148 +0,0 @@
-/**
- * Displayable for incremental rendering. It will be rendered in a separate layer
- * IncrementalDisplay have two main methods. `clearDisplayables` and `addDisplayables`
- * addDisplayables will render the added displayables incremetally.
- *
- * It use a notClear flag to tell the painter don't clear the layer if it's the first element.
- *
- * It's not available for SVG rendering.
- */
-import Displayble from './Displayable';
-import BoundingRect from '../core/BoundingRect';
-import { MatrixArray } from '../core/matrix';
-import Group from './Group';
-
-const m: MatrixArray = [];
-// TODO Style override ?
-
-export default class IncrementalDisplayable extends Displayble {
-
-    notClear: boolean = true
-
-    incremental = true
-
-    private _displayables: Displayble[] = []
-    private _temporaryDisplayables: Displayble[] = []
-
-    private _cursor = 0
-
-    traverse<T>(
-        cb: (this: T, el: this) => void,
-        context: T
-    ) {
-        cb.call(context, this);
-    }
-
-    useStyle() {
-        // Use an empty style
-        // PENDING
-        this.style = {};
-    }
-
-    // getCurrentCursor / updateCursorAfterBrush
-    // is used in graphic.ts. It's not provided for developers
-    getCursor() {
-        return this._cursor;
-    }
-    // Update cursor after brush.
-    innerAfterBrush() {
-        this._cursor = this._displayables.length;
-    }
-
-    clearDisplaybles() {
-        this._displayables = [];
-        this._temporaryDisplayables = [];
-        this._cursor = 0;
-        this.markRedraw();
-
-        this.notClear = false;
-    }
-
-    clearTemporalDisplayables() {
-        this._temporaryDisplayables = [];
-    }
-
-    addDisplayable(displayable: Displayble, notPersistent?: boolean) {
-        if (notPersistent) {
-            this._temporaryDisplayables.push(displayable);
-        }
-        else {
-            this._displayables.push(displayable);
-        }
-        this.markRedraw();
-    }
-
-    addDisplayables(displayables: Displayble[], notPersistent?: boolean) {
-        notPersistent = notPersistent || false;
-        for (let i = 0; i < displayables.length; i++) {
-            this.addDisplayable(displayables[i], notPersistent);
-        }
-    }
-
-    getDisplayables(): Displayble[] {
-        return this._displayables;
-    }
-
-    getTemporalDisplayables(): Displayble[] {
-        return this._temporaryDisplayables;
-    }
-
-    eachPendingDisplayable(cb: (displayable: Displayble) => void) {
-        for (let i = this._cursor; i < this._displayables.length; i++) {
-            cb && cb(this._displayables[i]);
-        }
-        for (let i = 0; i < this._temporaryDisplayables.length; i++) {
-            cb && cb(this._temporaryDisplayables[i]);
-        }
-    }
-
-    update() {
-        this.updateTransform();
-        for (let i = this._cursor; i < this._displayables.length; i++) {
-            const displayable = this._displayables[i];
-            // PENDING
-            displayable.parent = this as unknown as Group;
-            displayable.update();
-            displayable.parent = null;
-        }
-        for (let i = 0; i < this._temporaryDisplayables.length; i++) {
-            const displayable = this._temporaryDisplayables[i];
-            // PENDING
-            displayable.parent = this as unknown as Group;
-            displayable.update();
-            displayable.parent = null;
-        }
-    }
-
-    getBoundingRect() {
-        if (!this._rect) {
-            const rect = new BoundingRect(Infinity, Infinity, -Infinity, -Infinity);
-            for (let i = 0; i < this._displayables.length; i++) {
-                const displayable = this._displayables[i];
-                const childRect = displayable.getBoundingRect().clone();
-                if (displayable.needLocalTransform()) {
-                    childRect.applyTransform(displayable.getLocalTransform(m));
-                }
-                rect.union(childRect);
-            }
-            this._rect = rect;
-        }
-        return this._rect;
-    }
-
-    contain(x: number, y: number): boolean {
-        const localPos = this.transformCoordToLocal(x, y);
-        const rect = this.getBoundingRect();
-
-        if (rect.contain(localPos[0], localPos[1])) {
-            for (let i = 0; i < this._displayables.length; i++) {
-                const displayable = this._displayables[i];
-                if (displayable.contain(x, y)) {
-                    return true;
-                }
-            }
-        }
-        return false;
-    }
-
-}

+ 0 - 49
node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/graphic/LinearGradient.ts

@@ -1,49 +0,0 @@
-import Gradient, {GradientObject, GradientColorStop} from './Gradient';
-
-export interface LinearGradientObject extends GradientObject {
-    type: 'linear'
-
-    x: number
-    y: number
-    x2: number
-    y2: number
-}
-/**
- * x, y, x2, y2 are all percent from 0 to 1 when globalCoord is false
- */
-
-export default class LinearGradient extends Gradient {
-
-    type: 'linear'
-
-    x: number
-    y: number
-    x2: number
-    y2: number
-
-    constructor(
-        x: number, y: number, x2: number, y2: number,
-        colorStops?: GradientColorStop[], globalCoord?: boolean
-    ) {
-
-        super(colorStops);
-
-        // Should do nothing more in this constructor. Because gradient can be
-        // declard by `color: {type: 'linear', colorStops: ...}`, where
-        // this constructor will not be called.
-
-        this.x = x == null ? 0 : x;
-
-        this.y = y == null ? 0 : y;
-
-        this.x2 = x2 == null ? 1 : x2;
-
-        this.y2 = y2 == null ? 0 : y2;
-
-        // Can be cloned
-        this.type = 'linear';
-
-        // If use global coord
-        this.global = globalCoord || false;
-    }
-};

+ 0 - 677
node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/graphic/Path.ts

@@ -1,677 +0,0 @@
-import Displayable, { DisplayableProps,
-    CommonStyleProps,
-    DEFAULT_COMMON_STYLE,
-    DisplayableStatePropNames,
-    DEFAULT_COMMON_ANIMATION_PROPS
-} from './Displayable';
-import Element, { ElementAnimateConfig } from '../Element';
-import PathProxy from '../core/PathProxy';
-import * as pathContain from '../contain/path';
-import { PatternObject } from './Pattern';
-import { Dictionary, PropType, MapToType } from '../core/types';
-import BoundingRect from '../core/BoundingRect';
-import { LinearGradientObject } from './LinearGradient';
-import { RadialGradientObject } from './RadialGradient';
-import { defaults, keys, extend, clone, isString, createObject } from '../core/util';
-import Animator from '../animation/Animator';
-import { lum } from '../tool/color';
-import { DARK_LABEL_COLOR, LIGHT_LABEL_COLOR, DARK_MODE_THRESHOLD, LIGHTER_LABEL_COLOR } from '../config';
-import { REDRAW_BIT, SHAPE_CHANGED_BIT, STYLE_CHANGED_BIT } from './constants';
-import { TRANSFORMABLE_PROPS } from '../core/Transformable';
-
-
-export interface PathStyleProps extends CommonStyleProps {
-    fill?: string | PatternObject | LinearGradientObject | RadialGradientObject
-    stroke?: string | PatternObject | LinearGradientObject | RadialGradientObject
-    decal?: PatternObject
-
-    /**
-     * Still experimental, not works weel on arc with edge cases(large angle).
-     */
-    strokePercent?: number
-    strokeNoScale?: boolean
-    fillOpacity?: number
-    strokeOpacity?: number
-
-    /**
-     * `true` is not supported.
-     * `false`/`null`/`undefined` are the same.
-     * `false` is used to remove lineDash in some
-     * case that `null`/`undefined` can not be set.
-     * (e.g., emphasis.lineStyle in echarts)
-     */
-    lineDash?: false | number[] | 'solid' | 'dashed' | 'dotted'
-    lineDashOffset?: number
-
-    lineWidth?: number
-    lineCap?: CanvasLineCap
-    lineJoin?: CanvasLineJoin
-
-    miterLimit?: number
-    /**
-     * Paint order, if do stroke first. Similar to SVG paint-order
-     * https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/paint-order
-     */
-    strokeFirst?: boolean
-}
-
-export const DEFAULT_PATH_STYLE: PathStyleProps = defaults({
-    fill: '#000',
-    stroke: null,
-    strokePercent: 1,
-    fillOpacity: 1,
-    strokeOpacity: 1,
-
-    lineDashOffset: 0,
-    lineWidth: 1,
-    lineCap: 'butt',
-    miterLimit: 10,
-
-    strokeNoScale: false,
-    strokeFirst: false
-} as PathStyleProps, DEFAULT_COMMON_STYLE);
-
-
-export const DEFAULT_PATH_ANIMATION_PROPS: MapToType<PathProps, boolean> = {
-    style: defaults<MapToType<PathStyleProps, boolean>, MapToType<PathStyleProps, boolean>>({
-        fill: true,
-        stroke: true,
-        strokePercent: true,
-        fillOpacity: true,
-        strokeOpacity: true,
-        lineDashOffset: true,
-        lineWidth: true,
-        miterLimit: true
-    } as MapToType<PathStyleProps, boolean>, DEFAULT_COMMON_ANIMATION_PROPS.style)
- };
-
-export interface PathProps extends DisplayableProps {
-    strokeContainThreshold?: number
-    segmentIgnoreThreshold?: number
-    subPixelOptimize?: boolean
-
-    style?: PathStyleProps
-    shape?: Dictionary<any>
-
-    autoBatch?: boolean
-
-    __value?: (string | number)[] | (string | number)
-
-    buildPath?: (
-        ctx: PathProxy | CanvasRenderingContext2D,
-        shapeCfg: Dictionary<any>,
-        inBatch?: boolean
-    ) => void
-}
-
-
-type PathKey = keyof PathProps
-type PathPropertyType = PropType<PathProps, PathKey>
-
-// eslint-disable-next-line @typescript-eslint/no-unused-vars
-interface Path<Props extends PathProps = PathProps> {
-    animate(key?: '', loop?: boolean): Animator<this>
-    animate(key: 'style', loop?: boolean): Animator<this['style']>
-    animate(key: 'shape', loop?: boolean): Animator<this['shape']>
-
-    getState(stateName: string): PathState
-    ensureState(stateName: string): PathState
-
-    states: Dictionary<PathState>
-    stateProxy: (stateName: string) => PathState
-}
-
-export type PathStatePropNames = DisplayableStatePropNames | 'shape';
-export type PathState = Pick<PathProps, PathStatePropNames> & {
-    hoverLayer?: boolean
-}
-
-const pathCopyParams = (TRANSFORMABLE_PROPS as readonly string[]).concat(['invisible',
-    'culling', 'z', 'z2', 'zlevel', 'parent'
-]) as (keyof Path)[];
-
-class Path<Props extends PathProps = PathProps> extends Displayable<Props> {
-
-    path: PathProxy
-
-    strokeContainThreshold: number
-
-    // This item default to be false. But in map series in echarts,
-    // in order to improve performance, it should be set to true,
-    // so the shorty segment won't draw.
-    segmentIgnoreThreshold: number
-
-    subPixelOptimize: boolean
-
-    style: PathStyleProps
-    /**
-     * If element can be batched automatically
-     */
-    autoBatch: boolean
-
-    private _rectStroke: BoundingRect
-
-    protected _normalState: PathState
-
-    protected _decalEl: Path
-
-    // Must have an initial value on shape.
-    // It will be assigned by default value.
-    shape: Dictionary<any>
-
-    constructor(opts?: Props) {
-        super(opts);
-    }
-
-    update() {
-        super.update();
-
-        const style = this.style;
-        if (style.decal) {
-            const decalEl: Path = this._decalEl = this._decalEl || new Path();
-            if (decalEl.buildPath === Path.prototype.buildPath) {
-                decalEl.buildPath = ctx => {
-                    this.buildPath(ctx, this.shape);
-                };
-            }
-
-            decalEl.silent = true;
-
-            const decalElStyle = decalEl.style;
-
-            for (let key in style) {
-                if ((decalElStyle as any)[key] !== (style as any)[key]) {
-                    (decalElStyle as any)[key] = (style as any)[key];
-                }
-            }
-            decalElStyle.fill = style.fill ? style.decal : null;
-            decalElStyle.decal = null;
-            decalElStyle.shadowColor = null;
-            style.strokeFirst && (decalElStyle.stroke = null);
-
-            for (let i = 0; i < pathCopyParams.length; ++i) {
-                (decalEl as any)[pathCopyParams[i]] = this[pathCopyParams[i]];
-            }
-
-            decalEl.__dirty |= REDRAW_BIT;
-        }
-        else if (this._decalEl) {
-            this._decalEl = null;
-        }
-    }
-
-    getDecalElement() {
-        return this._decalEl;
-    }
-
-    protected _init(props?: Props) {
-        // Init default properties
-        const keysArr = keys(props);
-
-        this.shape = this.getDefaultShape();
-        const defaultStyle = this.getDefaultStyle();
-        if (defaultStyle) {
-            this.useStyle(defaultStyle);
-        }
-
-        for (let i = 0; i < keysArr.length; i++) {
-            const key = keysArr[i];
-            const value = props[key];
-            if (key === 'style') {
-                if (!this.style) {
-                    // PENDING Reuse style object if possible?
-                    this.useStyle(value as Props['style']);
-                }
-                else {
-                    extend(this.style, value as Props['style']);
-                }
-            }
-            else if (key === 'shape') {
-                // this.shape = value;
-                extend(this.shape, value as Props['shape']);
-            }
-            else {
-                super.attrKV(key as any, value);
-            }
-        }
-
-        // Create an empty one if no style object exists.
-        if (!this.style) {
-            this.useStyle({});
-        }
-        // const defaultShape = this.getDefaultShape();
-        // if (!this.shape) {
-        //     this.shape = defaultShape;
-        // }
-        // else {
-        //     defaults(this.shape, defaultShape);
-        // }
-    }
-
-    protected getDefaultStyle(): Props['style'] {
-        return null;
-    }
-
-    // Needs to override
-    protected getDefaultShape() {
-        return {};
-    }
-
-    protected canBeInsideText() {
-        return this.hasFill();
-    }
-
-    protected getInsideTextFill() {
-        const pathFill = this.style.fill;
-        if (pathFill !== 'none') {
-            if (isString(pathFill)) {
-                const fillLum = lum(pathFill, 0);
-                // Determin text color based on the lum of path fill.
-                // TODO use (1 - DARK_MODE_THRESHOLD)?
-                if (fillLum > 0.5) {   // TODO Consider background lum?
-                    return DARK_LABEL_COLOR;
-                }
-                else if (fillLum > 0.2) {
-                    return LIGHTER_LABEL_COLOR;
-                }
-                return LIGHT_LABEL_COLOR;
-            }
-            else if (pathFill) {
-                return LIGHT_LABEL_COLOR;
-            }
-
-        }
-        return DARK_LABEL_COLOR;
-    }
-
-    protected getInsideTextStroke(textFill?: string) {
-        const pathFill = this.style.fill;
-        // Not stroke on none fill object or gradient object
-        if (isString(pathFill)) {
-            const zr = this.__zr;
-            const isDarkMode = !!(zr && zr.isDarkMode());
-            const isDarkLabel = lum(textFill, 0) < DARK_MODE_THRESHOLD;
-            // All dark or all light.
-            if (isDarkMode === isDarkLabel) {
-                return pathFill;
-            }
-        }
-    }
-
-    // When bundling path, some shape may decide if use moveTo to begin a new subpath or closePath
-    // Like in circle
-    buildPath(
-        ctx: PathProxy | CanvasRenderingContext2D,
-        shapeCfg: Dictionary<any>,
-        inBatch?: boolean
-    ) {}
-
-    pathUpdated() {
-        this.__dirty &= ~SHAPE_CHANGED_BIT;
-    }
-
-    getUpdatedPathProxy(inBatch?: boolean) {
-        // Update path proxy data to latest.
-        !this.path && this.createPathProxy();
-        this.path.beginPath();
-        this.buildPath(this.path, this.shape, inBatch);
-        return this.path;
-    }
-
-    createPathProxy() {
-        this.path = new PathProxy(false);
-    }
-
-    hasStroke() {
-        const style = this.style;
-        const stroke = style.stroke;
-        return !(stroke == null || stroke === 'none' || !(style.lineWidth > 0));
-    }
-
-    hasFill() {
-        const style = this.style;
-        const fill = style.fill;
-        return fill != null && fill !== 'none';
-    }
-
-    getBoundingRect(): BoundingRect {
-        let rect = this._rect;
-        const style = this.style;
-        const needsUpdateRect = !rect;
-        if (needsUpdateRect) {
-            let firstInvoke = false;
-            if (!this.path) {
-                firstInvoke = true;
-                // Create path on demand.
-                this.createPathProxy();
-            }
-            let path = this.path;
-            if (firstInvoke || (this.__dirty & SHAPE_CHANGED_BIT)) {
-                path.beginPath();
-                this.buildPath(path, this.shape, false);
-                this.pathUpdated();
-            }
-            rect = path.getBoundingRect();
-        }
-        this._rect = rect;
-
-        if (this.hasStroke() && this.path && this.path.len() > 0) {
-            // Needs update rect with stroke lineWidth when
-            // 1. Element changes scale or lineWidth
-            // 2. Shape is changed
-            const rectStroke = this._rectStroke || (this._rectStroke = rect.clone());
-            if (this.__dirty || needsUpdateRect) {
-                rectStroke.copy(rect);
-                // PENDING, Min line width is needed when line is horizontal or vertical
-                const lineScale = style.strokeNoScale ? this.getLineScale() : 1;
-                // FIXME Must after updateTransform
-                let w = style.lineWidth;
-
-                // Only add extra hover lineWidth when there are no fill
-                if (!this.hasFill()) {
-                    const strokeContainThreshold = this.strokeContainThreshold;
-                    w = Math.max(w, strokeContainThreshold == null ? 4 : strokeContainThreshold);
-                }
-                // Consider line width
-                // Line scale can't be 0;
-                if (lineScale > 1e-10) {
-                    rectStroke.width += w / lineScale;
-                    rectStroke.height += w / lineScale;
-                    rectStroke.x -= w / lineScale / 2;
-                    rectStroke.y -= w / lineScale / 2;
-                }
-            }
-
-            // Return rect with stroke
-            return rectStroke;
-        }
-
-        return rect;
-    }
-
-    contain(x: number, y: number): boolean {
-        const localPos = this.transformCoordToLocal(x, y);
-        const rect = this.getBoundingRect();
-        const style = this.style;
-        x = localPos[0];
-        y = localPos[1];
-
-        if (rect.contain(x, y)) {
-            const pathProxy = this.path;
-            if (this.hasStroke()) {
-                let lineWidth = style.lineWidth;
-                let lineScale = style.strokeNoScale ? this.getLineScale() : 1;
-                // Line scale can't be 0;
-                if (lineScale > 1e-10) {
-                    // Only add extra hover lineWidth when there are no fill
-                    if (!this.hasFill()) {
-                        lineWidth = Math.max(lineWidth, this.strokeContainThreshold);
-                    }
-                    if (pathContain.containStroke(
-                        pathProxy, lineWidth / lineScale, x, y
-                    )) {
-                        return true;
-                    }
-                }
-            }
-            if (this.hasFill()) {
-                return pathContain.contain(pathProxy, x, y);
-            }
-        }
-        return false;
-    }
-
-    /**
-     * Shape changed
-     */
-    dirtyShape() {
-        this.__dirty |= SHAPE_CHANGED_BIT;
-        if (this._rect) {
-            this._rect = null;
-        }
-        if (this._decalEl) {
-            this._decalEl.dirtyShape();
-        }
-        this.markRedraw();
-    }
-
-    dirty() {
-        this.dirtyStyle();
-        this.dirtyShape();
-    }
-
-    /**
-     * Alias for animate('shape')
-     * @param {boolean} loop
-     */
-    animateShape(loop: boolean) {
-        return this.animate('shape', loop);
-    }
-
-    // Override updateDuringAnimation
-    updateDuringAnimation(targetKey: string) {
-        if (targetKey === 'style') {
-            this.dirtyStyle();
-        }
-        else if (targetKey === 'shape') {
-            this.dirtyShape();
-        }
-        else {
-            this.markRedraw();
-        }
-    }
-
-    // Overwrite attrKV
-    attrKV(key: PathKey, value: PathPropertyType) {
-        // FIXME
-        if (key === 'shape') {
-            this.setShape(value as Props['shape']);
-        }
-        else {
-            super.attrKV(key as keyof DisplayableProps, value);
-        }
-    }
-
-    setShape(obj: Props['shape']): this
-    setShape<T extends keyof Props['shape']>(obj: T, value: Props['shape'][T]): this
-    setShape(keyOrObj: keyof Props['shape'] | Props['shape'], value?: unknown): this {
-        let shape = this.shape;
-        if (!shape) {
-            shape = this.shape = {};
-        }
-        // Path from string may not have shape
-        if (typeof keyOrObj === 'string') {
-            shape[keyOrObj] = value;
-        }
-        else {
-            extend(shape, keyOrObj as Props['shape']);
-        }
-        this.dirtyShape();
-
-        return this;
-    }
-
-    /**
-     * If shape changed. used with dirtyShape
-     */
-    shapeChanged() {
-        return !!(this.__dirty & SHAPE_CHANGED_BIT);
-    }
-
-    /**
-     * Create a path style object with default values in it's prototype.
-     * @override
-     */
-    createStyle(obj?: Props['style']) {
-        return createObject(DEFAULT_PATH_STYLE, obj);
-    }
-
-    protected _innerSaveToNormal(toState: PathState) {
-        super._innerSaveToNormal(toState);
-
-        const normalState = this._normalState;
-        // Clone a new one. DON'T share object reference between states and current using.
-        // TODO: Clone array in shape?.
-        // TODO: Only save changed shape.
-        if (toState.shape && !normalState.shape) {
-            normalState.shape = extend({}, this.shape);
-        }
-    }
-
-    protected _applyStateObj(
-        stateName: string,
-        state: PathState,
-        normalState: PathState,
-        keepCurrentStates: boolean,
-        transition: boolean,
-        animationCfg: ElementAnimateConfig
-    ) {
-        super._applyStateObj(stateName, state, normalState, keepCurrentStates, transition, animationCfg);
-        const needsRestoreToNormal = !(state && keepCurrentStates);
-        let targetShape: Props['shape'];
-        if (state && state.shape) {
-            // Only animate changed properties.
-            if (transition) {
-                if (keepCurrentStates) {
-                    targetShape = state.shape;
-                }
-                else {
-                    // Inherits from normal state.
-                    targetShape = extend({}, normalState.shape);
-                    extend(targetShape, state.shape);
-                }
-            }
-            else {
-                // Because the shape will be replaced. So inherits from current shape.
-                targetShape = extend({}, keepCurrentStates ? this.shape : normalState.shape);
-                extend(targetShape, state.shape);
-            }
-        }
-        else if (needsRestoreToNormal) {
-            targetShape = normalState.shape;
-        }
-
-        if (targetShape) {
-            if (transition) {
-                // Clone a new shape.
-                this.shape = extend({}, this.shape);
-                // Only supports transition on primary props. Because shape is not deep cloned.
-                const targetShapePrimaryProps: Props['shape'] = {};
-                const shapeKeys = keys(targetShape);
-                for (let i = 0; i < shapeKeys.length; i++) {
-                    const key = shapeKeys[i];
-                    if (typeof targetShape[key] === 'object') {
-                        (this.shape as Props['shape'])[key] = targetShape[key];
-                    }
-                    else {
-                        targetShapePrimaryProps[key] = targetShape[key];
-                    }
-                }
-                this._transitionState(stateName, {
-                    shape: targetShapePrimaryProps
-                } as Props, animationCfg);
-            }
-            else {
-                this.shape = targetShape;
-                this.dirtyShape();
-            }
-        }
-    }
-
-    protected _mergeStates(states: PathState[]) {
-        const mergedState = super._mergeStates(states) as PathState;
-        let mergedShape: Props['shape'];
-        for (let i = 0; i < states.length; i++) {
-            const state = states[i];
-            if (state.shape) {
-                mergedShape = mergedShape || {};
-                this._mergeStyle(mergedShape, state.shape);
-            }
-        }
-        if (mergedShape) {
-            mergedState.shape = mergedShape;
-        }
-        return mergedState;
-    }
-
-    getAnimationStyleProps() {
-        return DEFAULT_PATH_ANIMATION_PROPS;
-    }
-    /**
-     * If path shape is zero area
-     */
-    isZeroArea(): boolean {
-        return false;
-    }
-    /**
-     * 扩展一个 Path element, 比如星形,圆等。
-     * Extend a path element
-     * @DEPRECATED Use class extends
-     * @param props
-     * @param props.type Path type
-     * @param props.init Initialize
-     * @param props.buildPath Overwrite buildPath method
-     * @param props.style Extended default style config
-     * @param props.shape Extended default shape config
-     */
-    static extend<Shape extends Dictionary<any>>(defaultProps: {
-        type?: string
-        shape?: Shape
-        style?: PathStyleProps
-        beforeBrush?: Displayable['beforeBrush']
-        afterBrush?: Displayable['afterBrush']
-        getBoundingRect?: Displayable['getBoundingRect']
-
-        calculateTextPosition?: Element['calculateTextPosition']
-        buildPath(this: Path, ctx: CanvasRenderingContext2D | PathProxy, shape: Shape, inBatch?: boolean): void
-        init?(this: Path, opts: PathProps): void // TODO Should be SubPathOption
-    }): {
-        new(opts?: PathProps & {shape: Shape}): Path
-    } {
-        interface SubPathOption extends PathProps {
-            shape: Shape
-        }
-
-        class Sub extends Path {
-
-            shape: Shape
-
-            getDefaultStyle() {
-                return clone(defaultProps.style);
-            }
-
-            getDefaultShape() {
-                return clone(defaultProps.shape);
-            }
-
-            constructor(opts?: SubPathOption) {
-                super(opts);
-                defaultProps.init && defaultProps.init.call(this as any, opts);
-            }
-        }
-
-        // TODO Legacy usage. Extend functions
-        for (let key in defaultProps) {
-            if (typeof (defaultProps as any)[key] === 'function') {
-                (Sub.prototype as any)[key] = (defaultProps as any)[key];
-            }
-        }
-        // Sub.prototype.buildPath = defaultProps.buildPath;
-        // Sub.prototype.beforeBrush = defaultProps.beforeBrush;
-        // Sub.prototype.afterBrush = defaultProps.afterBrush;
-
-        return Sub as any;
-    }
-
-    protected static initDefaultProps = (function () {
-        const pathProto = Path.prototype;
-        pathProto.type = 'path';
-        pathProto.strokeContainThreshold = 5;
-        pathProto.segmentIgnoreThreshold = 0;
-        pathProto.subPixelOptimize = false;
-        pathProto.autoBatch = false;
-        pathProto.__dirty = REDRAW_BIT | STYLE_CHANGED_BIT | SHAPE_CHANGED_BIT;
-    })()
-}
-
-export default Path;

+ 0 - 83
node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/graphic/Pattern.ts

@@ -1,83 +0,0 @@
-import { ImageLike } from '../core/types';
-import { SVGVNode } from '../svg/core';
-
-type ImagePatternRepeat = 'repeat' | 'repeat-x' | 'repeat-y' | 'no-repeat'
-
-export interface PatternObjectBase {
-    id?: number
-    // type is now unused, so make it optional
-    type?: 'pattern'
-
-    x?: number
-    y?: number
-    rotation?: number
-    scaleX?: number
-    scaleY?: number
-}
-
-export interface ImagePatternObject extends PatternObjectBase {
-    image: ImageLike | string
-    repeat?: ImagePatternRepeat
-
-    /**
-     * Width and height of image.
-     * `imageWidth` and `imageHeight` are only used in svg-ssr renderer.
-     * Because we can't get the size of image in svg-ssr renderer.
-     * They need to be give explictly.
-     */
-    imageWidth?: number
-    imageHeight?: number
-}
-
-export interface InnerImagePatternObject extends ImagePatternObject {
-    // Cached image. Which is created in the canvas painter.
-    __image?: ImageLike
-}
-
-export interface SVGPatternObject extends PatternObjectBase {
-    /**
-     * svg vnode can only be used in svg renderer currently.
-     * svgWidth, svgHeight defines width and height used for pattern.
-     */
-    svgElement?: SVGVNode
-    svgWidth?: number
-    svgHeight?: number
-}
-
-export type PatternObject = ImagePatternObject | SVGPatternObject
-
-class Pattern {
-
-    type: 'pattern'
-
-    image: ImageLike | string
-    /**
-     * svg element can only be used in svg renderer currently.
-     *
-     * Will be string if using SSR rendering.
-     */
-    svgElement: SVGElement | string
-
-    repeat: ImagePatternRepeat
-
-    x: number
-    y: number
-    rotation: number
-    scaleX: number
-    scaleY: number
-
-    constructor(image: ImageLike | string, repeat: ImagePatternRepeat) {
-        // Should do nothing more in this constructor. Because gradient can be
-        // declard by `color: {image: ...}`, where this constructor will not be called.
-        this.image = image;
-        this.repeat = repeat;
-
-        this.x = 0;
-        this.y = 0;
-        this.rotation = 0;
-        this.scaleX = 1;
-        this.scaleY = 1;
-    }
-}
-
-export default Pattern;

+ 0 - 43
node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/graphic/RadialGradient.ts

@@ -1,43 +0,0 @@
-import Gradient, {GradientColorStop, GradientObject} from './Gradient';
-
-export interface RadialGradientObject extends GradientObject {
-    type: 'radial'
-
-    x: number
-    y: number
-    r: number
-}
-/**
- * x, y, r are all percent from 0 to 1 when globalCoord is false
- */
-class RadialGradient extends Gradient {
-
-    type: 'radial'
-
-    x: number
-    y: number
-    r: number
-
-    constructor(
-        x: number, y: number, r: number,
-        colorStops?: GradientColorStop[], globalCoord?: boolean
-    ) {
-        super(colorStops);
-        // Should do nothing more in this constructor. Because gradient can be
-        // declard by `color: {type: 'radial', colorStops: ...}`, where
-        // this constructor will not be called.
-        this.x = x == null ? 0.5 : x;
-
-        this.y = y == null ? 0.5 : y;
-
-        this.r = r == null ? 0.5 : r;
-
-        // Can be cloned
-        this.type = 'radial';
-
-        // If use global coord
-        this.global = globalCoord || false;
-    }
-}
-
-export default RadialGradient;

+ 0 - 123
node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/graphic/TSpan.ts

@@ -1,123 +0,0 @@
-import Displayable, { DisplayableProps, DisplayableStatePropNames } from './Displayable';
-import { getBoundingRect } from '../contain/text';
-import BoundingRect from '../core/BoundingRect';
-import { PathStyleProps, DEFAULT_PATH_STYLE } from './Path';
-import { createObject, defaults } from '../core/util';
-import { FontStyle, FontWeight, TextAlign, TextVerticalAlign } from '../core/types';
-import { DEFAULT_FONT } from '../core/platform';
-
-export interface TSpanStyleProps extends PathStyleProps {
-
-    x?: number
-    y?: number
-
-    // TODO Text is assigned inside zrender
-    text?: string
-
-    // Final generated font string
-    // Used in canvas, and when developers specified it.
-    font?: string
-
-    // Value for each part of font
-    // Used in svg.
-    // NOTE: font should always been sync with these 4 properties.
-    fontSize?: number
-    fontWeight?: FontWeight
-    fontStyle?: FontStyle
-    fontFamily?: string
-
-    textAlign?: CanvasTextAlign
-
-    textBaseline?: CanvasTextBaseline
-}
-
-export const DEFAULT_TSPAN_STYLE: TSpanStyleProps = defaults({
-    strokeFirst: true,
-    font: DEFAULT_FONT,
-    x: 0,
-    y: 0,
-    textAlign: 'left',
-    textBaseline: 'top',
-    miterLimit: 2
-} as TSpanStyleProps, DEFAULT_PATH_STYLE);
-
-
-export interface TSpanProps extends DisplayableProps {
-    style?: TSpanStyleProps
-}
-
-export type TSpanState = Pick<TSpanProps, DisplayableStatePropNames>
-
-class TSpan extends Displayable<TSpanProps> {
-
-    style: TSpanStyleProps
-
-    hasStroke() {
-        const style = this.style;
-        const stroke = style.stroke;
-        return stroke != null && stroke !== 'none' && style.lineWidth > 0;
-    }
-
-    hasFill() {
-        const style = this.style;
-        const fill = style.fill;
-        return fill != null && fill !== 'none';
-    }
-
-    /**
-     * Create an image style object with default values in it's prototype.
-     * @override
-     */
-    createStyle(obj?: TSpanStyleProps) {
-        return createObject(DEFAULT_TSPAN_STYLE, obj);
-    }
-
-    /**
-     * Set bounding rect calculated from Text
-     * For reducing time of calculating bounding rect.
-     */
-    setBoundingRect(rect: BoundingRect) {
-        this._rect = rect;
-    }
-
-    getBoundingRect(): BoundingRect {
-        const style = this.style;
-
-        if (!this._rect) {
-            let text = style.text;
-            text != null ? (text += '') : (text = '');
-
-            const rect = getBoundingRect(
-                text,
-                style.font,
-                style.textAlign as TextAlign,
-                style.textBaseline as TextVerticalAlign
-            );
-
-            rect.x += style.x || 0;
-            rect.y += style.y || 0;
-
-            if (this.hasStroke()) {
-                const w = style.lineWidth;
-                rect.x -= w / 2;
-                rect.y -= w / 2;
-                rect.width += w;
-                rect.height += w;
-            }
-
-            this._rect = rect;
-        }
-
-        return this._rect;
-    }
-
-    protected static initDefaultProps = (function () {
-        const tspanProto = TSpan.prototype;
-        // TODO Calculate tolerance smarter
-        tspanProto.dirtyRectTolerance = 10;
-    })()
-}
-
-TSpan.prototype.type = 'tspan';
-
-export default TSpan;

+ 0 - 1039
node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/graphic/Text.ts

@@ -1,1039 +0,0 @@
-/**
- * RichText is a container that manages complex text label.
- * It will parse text string and create sub displayble elements respectively.
- */
-import { TextAlign, TextVerticalAlign, ImageLike, Dictionary, MapToType, FontWeight, FontStyle } from '../core/types';
-import { parseRichText, parsePlainText } from './helper/parseText';
-import TSpan, { TSpanStyleProps } from './TSpan';
-import { retrieve2, each, normalizeCssArray, trim, retrieve3, extend, keys, defaults } from '../core/util';
-import { adjustTextX, adjustTextY } from '../contain/text';
-import ZRImage from './Image';
-import Rect from './shape/Rect';
-import BoundingRect from '../core/BoundingRect';
-import { MatrixArray } from '../core/matrix';
-import Displayable, {
-    DisplayableStatePropNames,
-    DisplayableProps,
-    DEFAULT_COMMON_ANIMATION_PROPS
-} from './Displayable';
-import { ZRenderType } from '../zrender';
-import Animator from '../animation/Animator';
-import Transformable from '../core/Transformable';
-import { ElementCommonState } from '../Element';
-import { GroupLike } from './Group';
-import { DEFAULT_FONT, DEFAULT_FONT_SIZE } from '../core/platform';
-
-type TextContentBlock = ReturnType<typeof parseRichText>
-type TextLine = TextContentBlock['lines'][0]
-type TextToken = TextLine['tokens'][0]
-
-// TODO Default value?
-export interface TextStylePropsPart {
-    // TODO Text is assigned inside zrender
-    text?: string
-
-    fill?: string
-    stroke?: string
-    strokeNoScale?: boolean
-
-    opacity?: number
-    fillOpacity?: number
-    strokeOpacity?: number
-    /**
-     * textStroke may be set as some color as a default
-     * value in upper applicaion, where the default value
-     * of lineWidth should be 0 to make sure that
-     * user can choose to do not use text stroke.
-     */
-    lineWidth?: number
-    lineDash?: false | number[]
-    lineDashOffset?: number
-    borderDash?: false | number[]
-    borderDashOffset?: number
-
-    /**
-     * If `fontSize` or `fontFamily` exists, `font` will be reset by
-     * `fontSize`, `fontStyle`, `fontWeight`, `fontFamily`.
-     * So do not visit it directly in upper application (like echarts),
-     * but use `contain/text#makeFont` instead.
-     */
-    font?: string
-    /**
-     * The same as font. Use font please.
-     * @deprecated
-     */
-    textFont?: string
-
-    /**
-     * It helps merging respectively, rather than parsing an entire font string.
-     */
-    fontStyle?: FontStyle
-    /**
-     * It helps merging respectively, rather than parsing an entire font string.
-     */
-    fontWeight?: FontWeight
-    /**
-     * It helps merging respectively, rather than parsing an entire font string.
-     */
-    fontFamily?: string
-    /**
-     * It helps merging respectively, rather than parsing an entire font string.
-     * Should be 12 but not '12px'.
-     */
-    fontSize?: number | string
-
-    align?: TextAlign
-    verticalAlign?: TextVerticalAlign
-
-    /**
-     * Line height. Default to be text height of '国'
-     */
-    lineHeight?: number
-    /**
-     * Width of text block. Not include padding
-     * Used for background, truncate, wrap
-     */
-    width?: number | string
-    /**
-     * Height of text block. Not include padding
-     * Used for background, truncate
-     */
-    height?: number
-    /**
-     * Reserved for special functinality, like 'hr'.
-     */
-    tag?: string
-
-    textShadowColor?: string
-    textShadowBlur?: number
-    textShadowOffsetX?: number
-    textShadowOffsetY?: number
-
-    // Shadow, background, border of text box.
-    backgroundColor?: string | {
-        image: ImageLike | string
-    }
-
-    /**
-     * Can be `2` or `[2, 4]` or `[2, 3, 4, 5]`
-     */
-    padding?: number | number[]
-    /**
-     * Margin of label. Used when layouting the label.
-     */
-    margin?: number
-
-    borderColor?: string
-    borderWidth?: number
-    borderRadius?: number | number[]
-
-    /**
-     * Shadow color for background box.
-     */
-    shadowColor?: string
-    /**
-     * Shadow blur for background box.
-     */
-    shadowBlur?: number
-    /**
-     * Shadow offset x for background box.
-     */
-    shadowOffsetX?: number
-    /**
-     * Shadow offset y for background box.
-     */
-    shadowOffsetY?: number
-}
-export interface TextStyleProps extends TextStylePropsPart {
-
-    text?: string
-
-    x?: number
-    y?: number
-
-    /**
-     * Only support number in the top block.
-     */
-    width?: number
-    /**
-     * Text styles for rich text.
-     */
-    rich?: Dictionary<TextStylePropsPart>
-
-    /**
-     * Strategy when calculated text width exceeds textWidth.
-     * break: break by word
-     * break: will break inside the word
-     * truncate: truncate the text and show ellipsis
-     * Do nothing if not set
-     */
-    overflow?: 'break' | 'breakAll' | 'truncate' | 'none'
-
-    /**
-     * Strategy when text lines exceeds textHeight.
-     * Do nothing if not set
-     */
-    lineOverflow?: 'truncate'
-
-    /**
-     * Epllipsis used if text is truncated
-     */
-    ellipsis?: string
-    /**
-     * Placeholder used if text is truncated to empty
-     */
-    placeholder?: string
-    /**
-     * Min characters for truncating
-     */
-    truncateMinChar?: number
-}
-
-export interface TextProps extends DisplayableProps {
-    style?: TextStyleProps
-
-    zlevel?: number
-    z?: number
-    z2?: number
-
-    culling?: boolean
-    cursor?: string
-}
-
-export type TextState = Pick<TextProps, DisplayableStatePropNames> & ElementCommonState
-
-export type DefaultTextStyle = Pick<TextStyleProps, 'fill' | 'stroke' | 'align' | 'verticalAlign'> & {
-    autoStroke?: boolean
-};
-
-const DEFAULT_RICH_TEXT_COLOR = {
-    fill: '#000'
-};
-const DEFAULT_STROKE_LINE_WIDTH = 2;
-
-// const DEFAULT_TEXT_STYLE: TextStyleProps = {
-//     x: 0,
-//     y: 0,
-//     fill: '#000',
-//     stroke: null,
-//     opacity: 0,
-//     fillOpacity:
-// }
-
-export const DEFAULT_TEXT_ANIMATION_PROPS: MapToType<TextProps, boolean> = {
-    style: defaults<MapToType<TextStyleProps, boolean>, MapToType<TextStyleProps, boolean>>({
-        fill: true,
-        stroke: true,
-        fillOpacity: true,
-        strokeOpacity: true,
-        lineWidth: true,
-        fontSize: true,
-        lineHeight: true,
-        width: true,
-        height: true,
-        textShadowColor: true,
-        textShadowBlur: true,
-        textShadowOffsetX: true,
-        textShadowOffsetY: true,
-        backgroundColor: true,
-        padding: true,  // TODO needs normalize padding before animate
-        borderColor: true,
-        borderWidth: true,
-        borderRadius: true  // TODO needs normalize radius before animate
-    }, DEFAULT_COMMON_ANIMATION_PROPS.style)
- };
-
-
-interface ZRText {
-    animate(key?: '', loop?: boolean): Animator<this>
-    animate(key: 'style', loop?: boolean): Animator<this['style']>
-
-    getState(stateName: string): TextState
-    ensureState(stateName: string): TextState
-
-    states: Dictionary<TextState>
-    stateProxy: (stateName: string) => TextState
-}
-
-class ZRText extends Displayable<TextProps> implements GroupLike {
-
-    type = 'text'
-
-    style: TextStyleProps
-
-    /**
-     * How to handling label overlap
-     *
-     * hidden:
-     */
-    overlap: 'hidden' | 'show' | 'blur'
-
-    /**
-     * Will use this to calculate transform matrix
-     * instead of Element itseelf if it's give.
-     * Not exposed to developers
-     */
-    innerTransformable: Transformable
-
-    private _children: (ZRImage | Rect | TSpan)[] = []
-
-    private _childCursor: 0
-
-    private _defaultStyle: DefaultTextStyle = DEFAULT_RICH_TEXT_COLOR
-
-    constructor(opts?: TextProps) {
-        super();
-        this.attr(opts);
-    }
-
-    childrenRef() {
-        return this._children;
-    }
-
-    update() {
-
-        super.update();
-
-        // Update children
-        if (this.styleChanged()) {
-            this._updateSubTexts();
-        }
-
-        for (let i = 0; i < this._children.length; i++) {
-            const child = this._children[i];
-            // Set common properties.
-            child.zlevel = this.zlevel;
-            child.z = this.z;
-            child.z2 = this.z2;
-            child.culling = this.culling;
-            child.cursor = this.cursor;
-            child.invisible = this.invisible;
-        }
-    }
-
-     updateTransform() {
-        const innerTransformable = this.innerTransformable;
-        if (innerTransformable) {
-            innerTransformable.updateTransform();
-            if (innerTransformable.transform) {
-                this.transform = innerTransformable.transform;
-            }
-        }
-        else {
-            super.updateTransform();
-        }
-    }
-
-    getLocalTransform(m?: MatrixArray): MatrixArray {
-        const innerTransformable = this.innerTransformable;
-        return innerTransformable
-            ? innerTransformable.getLocalTransform(m)
-            : super.getLocalTransform(m);
-    }
-
-    // TODO override setLocalTransform?
-    getComputedTransform() {
-        if (this.__hostTarget) {
-            // Update host target transform
-            this.__hostTarget.getComputedTransform();
-            // Update text position.
-            this.__hostTarget.updateInnerText(true);
-        }
-
-        return super.getComputedTransform();
-    }
-
-    private _updateSubTexts() {
-        // Reset child visit cursor
-        this._childCursor = 0;
-
-        normalizeTextStyle(this.style);
-        this.style.rich
-            ? this._updateRichTexts()
-            : this._updatePlainTexts();
-
-        this._children.length = this._childCursor;
-
-        this.styleUpdated();
-    }
-
-    addSelfToZr(zr: ZRenderType) {
-        super.addSelfToZr(zr);
-        for (let i = 0; i < this._children.length; i++) {
-            // Also need mount __zr for case like hover detection.
-            // The case: hover on a label (position: 'top') causes host el
-            // scaled and label Y position lifts a bit so that out of the
-            // pointer, then mouse move should be able to trigger "mouseout".
-            this._children[i].__zr = zr;
-        }
-    }
-
-    removeSelfFromZr(zr: ZRenderType) {
-        super.removeSelfFromZr(zr);
-        for (let i = 0; i < this._children.length; i++) {
-            this._children[i].__zr = null;
-        }
-    }
-
-    getBoundingRect(): BoundingRect {
-        if (this.styleChanged()) {
-            this._updateSubTexts();
-        }
-        if (!this._rect) {
-            // TODO: Optimize when using width and overflow: wrap/truncate
-            const tmpRect = new BoundingRect(0, 0, 0, 0);
-            const children = this._children;
-            const tmpMat: MatrixArray = [];
-            let rect = null;
-
-            for (let i = 0; i < children.length; i++) {
-                const child = children[i];
-                const childRect = child.getBoundingRect();
-                const transform = child.getLocalTransform(tmpMat);
-
-                if (transform) {
-                    tmpRect.copy(childRect);
-                    tmpRect.applyTransform(transform);
-                    rect = rect || tmpRect.clone();
-                    rect.union(tmpRect);
-                }
-                else {
-                    rect = rect || childRect.clone();
-                    rect.union(childRect);
-                }
-            }
-            this._rect = rect || tmpRect;
-        }
-        return this._rect;
-    }
-
-    // Can be set in Element. To calculate text fill automatically when textContent is inside element
-    setDefaultTextStyle(defaultTextStyle: DefaultTextStyle) {
-        // Use builtin if defaultTextStyle is not given.
-        this._defaultStyle = defaultTextStyle || DEFAULT_RICH_TEXT_COLOR;
-    }
-
-    setTextContent(textContent: never) {
-        if (process.env.NODE_ENV !== 'production') {
-            throw new Error('Can\'t attach text on another text');
-        }
-    }
-
-    // getDefaultStyleValue<T extends keyof TextStyleProps>(key: T): TextStyleProps[T] {
-    //     // Default value is on the prototype.
-    //     return this.style.prototype[key];
-    // }
-
-    protected _mergeStyle(targetStyle: TextStyleProps, sourceStyle: TextStyleProps) {
-        if (!sourceStyle) {
-            return targetStyle;
-        }
-
-        // DO deep merge on rich configurations.
-        const sourceRich = sourceStyle.rich;
-        const targetRich = targetStyle.rich || (sourceRich && {});  // Create a new one if source have rich but target don't
-
-        extend(targetStyle, sourceStyle);
-
-        if (sourceRich && targetRich) {
-            // merge rich and assign rich again.
-            this._mergeRich(targetRich, sourceRich);
-            targetStyle.rich = targetRich;
-        }
-        else if (targetRich) {
-            // If source rich not exists. DON'T override the target rich
-            targetStyle.rich = targetRich;
-        }
-
-        return targetStyle;
-    }
-
-    private _mergeRich(targetRich: TextStyleProps['rich'], sourceRich: TextStyleProps['rich']) {
-        const richNames = keys(sourceRich);
-        // Merge by rich names.
-        for (let i = 0; i < richNames.length; i++) {
-            const richName = richNames[i];
-            targetRich[richName] = targetRich[richName] || {};
-            extend(targetRich[richName], sourceRich[richName]);
-        }
-    }
-
-    getAnimationStyleProps() {
-        return DEFAULT_TEXT_ANIMATION_PROPS;
-    }
-
-
-    private _getOrCreateChild(Ctor: {new(): TSpan}): TSpan
-    private _getOrCreateChild(Ctor: {new(): ZRImage}): ZRImage
-    private _getOrCreateChild(Ctor: {new(): Rect}): Rect
-    private _getOrCreateChild(Ctor: {new(): TSpan | Rect | ZRImage}): TSpan | Rect | ZRImage {
-        let child = this._children[this._childCursor];
-        if (!child || !(child instanceof Ctor)) {
-            child = new Ctor();
-        }
-        this._children[this._childCursor++] = child;
-        child.__zr = this.__zr;
-        // TODO to users parent can only be group.
-        child.parent = this as any;
-        return child;
-    }
-
-    private _updatePlainTexts() {
-        const style = this.style;
-        const textFont = style.font || DEFAULT_FONT;
-        const textPadding = style.padding as number[];
-
-        const text = getStyleText(style);
-        const contentBlock = parsePlainText(text, style);
-        const needDrawBg = needDrawBackground(style);
-        const bgColorDrawn = !!(style.backgroundColor);
-
-        const outerHeight = contentBlock.outerHeight;
-        const outerWidth = contentBlock.outerWidth;
-        const contentWidth = contentBlock.contentWidth;
-
-        const textLines = contentBlock.lines;
-        const lineHeight = contentBlock.lineHeight;
-
-        const defaultStyle = this._defaultStyle;
-
-        const baseX = style.x || 0;
-        const baseY = style.y || 0;
-        const textAlign = style.align || defaultStyle.align || 'left';
-        const verticalAlign = style.verticalAlign || defaultStyle.verticalAlign || 'top';
-
-        let textX = baseX;
-        let textY = adjustTextY(baseY, contentBlock.contentHeight, verticalAlign);
-
-        if (needDrawBg || textPadding) {
-            // Consider performance, do not call getTextWidth util necessary.
-            const boxX = adjustTextX(baseX, outerWidth, textAlign);
-            const boxY = adjustTextY(baseY, outerHeight, verticalAlign);
-            needDrawBg && this._renderBackground(style, style, boxX, boxY, outerWidth, outerHeight);
-        }
-
-        // `textBaseline` is set as 'middle'.
-        textY += lineHeight / 2;
-
-        if (textPadding) {
-            textX = getTextXForPadding(baseX, textAlign, textPadding);
-            if (verticalAlign === 'top') {
-                textY += textPadding[0];
-            }
-            else if (verticalAlign === 'bottom') {
-                textY -= textPadding[2];
-            }
-        }
-
-        let defaultLineWidth = 0;
-        let useDefaultFill = false;
-        const textFill = getFill(
-            'fill' in style
-                ? style.fill
-                : (useDefaultFill = true, defaultStyle.fill)
-        );
-        const textStroke = getStroke(
-            'stroke' in style
-                ? style.stroke
-                : (!bgColorDrawn
-                    // If we use "auto lineWidth" widely, it probably bring about some bad case.
-                    // So the current strategy is:
-                    // If `style.fill` is specified (i.e., `useDefaultFill` is `false`)
-                    // (A) And if `textConfig.insideStroke/outsideStroke` is not specified as a color
-                    //   (i.e., `defaultStyle.autoStroke` is `true`), we do not actually display
-                    //   the auto stroke because we can not make sure wether the stoke is approperiate to
-                    //   the given `fill`.
-                    // (B) But if `textConfig.insideStroke/outsideStroke` is specified as a color,
-                    // we give the auto lineWidth to display the given stoke color.
-                    && (!defaultStyle.autoStroke || useDefaultFill)
-                )
-                ? (defaultLineWidth = DEFAULT_STROKE_LINE_WIDTH, defaultStyle.stroke)
-                : null
-        );
-
-        const hasShadow = style.textShadowBlur > 0;
-
-        const fixedBoundingRect = style.width != null
-            && (style.overflow === 'truncate' || style.overflow === 'break' || style.overflow === 'breakAll');
-        const calculatedLineHeight = contentBlock.calculatedLineHeight;
-
-        for (let i = 0; i < textLines.length; i++) {
-            const el = this._getOrCreateChild(TSpan);
-            // Always create new style.
-            const subElStyle: TSpanStyleProps = el.createStyle();
-            el.useStyle(subElStyle);
-            subElStyle.text = textLines[i];
-            subElStyle.x = textX;
-            subElStyle.y = textY;
-            // Always set textAlign and textBase line, because it is difficute to calculate
-            // textAlign from prevEl, and we dont sure whether textAlign will be reset if
-            // font set happened.
-            if (textAlign) {
-                subElStyle.textAlign = textAlign;
-            }
-            // Force baseline to be "middle". Otherwise, if using "top", the
-            // text will offset downward a little bit in font "Microsoft YaHei".
-            subElStyle.textBaseline = 'middle';
-            subElStyle.opacity = style.opacity;
-            // Fill after stroke so the outline will not cover the main part.
-            subElStyle.strokeFirst = true;
-
-            if (hasShadow) {
-                subElStyle.shadowBlur = style.textShadowBlur || 0;
-                subElStyle.shadowColor = style.textShadowColor || 'transparent';
-                subElStyle.shadowOffsetX = style.textShadowOffsetX || 0;
-                subElStyle.shadowOffsetY = style.textShadowOffsetY || 0;
-            }
-
-            // Always override default fill and stroke value.
-            subElStyle.stroke = textStroke as string;
-            subElStyle.fill = textFill as string;
-
-            if (textStroke) {
-                subElStyle.lineWidth = style.lineWidth || defaultLineWidth;
-                subElStyle.lineDash = style.lineDash;
-                subElStyle.lineDashOffset = style.lineDashOffset || 0;
-            }
-
-            subElStyle.font = textFont;
-            setSeparateFont(subElStyle, style);
-
-            textY += lineHeight;
-
-            if (fixedBoundingRect) {
-                el.setBoundingRect(new BoundingRect(
-                    adjustTextX(subElStyle.x, style.width, subElStyle.textAlign as TextAlign),
-                    adjustTextY(subElStyle.y, calculatedLineHeight, subElStyle.textBaseline as TextVerticalAlign),
-                    /**
-                     * Text boundary should be the real text width.
-                     * Otherwise, there will be extra space in the
-                     * bounding rect calculated.
-                     */
-                    contentWidth,
-                    calculatedLineHeight
-                ));
-            }
-        }
-    }
-
-
-    private _updateRichTexts() {
-        const style = this.style;
-
-        // TODO Only parse when text changed?
-        const text = getStyleText(style);
-        const contentBlock = parseRichText(text, style);
-
-        const contentWidth = contentBlock.width;
-        const outerWidth = contentBlock.outerWidth;
-        const outerHeight = contentBlock.outerHeight;
-        const textPadding = style.padding as number[];
-
-        const baseX = style.x || 0;
-        const baseY = style.y || 0;
-        const defaultStyle = this._defaultStyle;
-        const textAlign = style.align || defaultStyle.align;
-        const verticalAlign = style.verticalAlign || defaultStyle.verticalAlign;
-
-        const boxX = adjustTextX(baseX, outerWidth, textAlign);
-        const boxY = adjustTextY(baseY, outerHeight, verticalAlign);
-        let xLeft = boxX;
-        let lineTop = boxY;
-
-        if (textPadding) {
-            xLeft += textPadding[3];
-            lineTop += textPadding[0];
-        }
-
-        let xRight = xLeft + contentWidth;
-
-        if (needDrawBackground(style)) {
-            this._renderBackground(style, style, boxX, boxY, outerWidth, outerHeight);
-        }
-        const bgColorDrawn = !!(style.backgroundColor);
-
-        for (let i = 0; i < contentBlock.lines.length; i++) {
-            const line = contentBlock.lines[i];
-            const tokens = line.tokens;
-            const tokenCount = tokens.length;
-            const lineHeight = line.lineHeight;
-
-            let remainedWidth = line.width;
-            let leftIndex = 0;
-            let lineXLeft = xLeft;
-            let lineXRight = xRight;
-            let rightIndex = tokenCount - 1;
-            let token;
-
-            while (
-                leftIndex < tokenCount
-                && (token = tokens[leftIndex], !token.align || token.align === 'left')
-            ) {
-                this._placeToken(token, style, lineHeight, lineTop, lineXLeft, 'left', bgColorDrawn);
-                remainedWidth -= token.width;
-                lineXLeft += token.width;
-                leftIndex++;
-            }
-
-            while (
-                rightIndex >= 0
-                && (token = tokens[rightIndex], token.align === 'right')
-            ) {
-                this._placeToken(token, style, lineHeight, lineTop, lineXRight, 'right', bgColorDrawn);
-                remainedWidth -= token.width;
-                lineXRight -= token.width;
-                rightIndex--;
-            }
-
-            // The other tokens are placed as textAlign 'center' if there is enough space.
-            lineXLeft += (contentWidth - (lineXLeft - xLeft) - (xRight - lineXRight) - remainedWidth) / 2;
-            while (leftIndex <= rightIndex) {
-                token = tokens[leftIndex];
-                // Consider width specified by user, use 'center' rather than 'left'.
-                this._placeToken(
-                    token, style, lineHeight, lineTop,
-                    lineXLeft + token.width / 2, 'center', bgColorDrawn
-                );
-                lineXLeft += token.width;
-                leftIndex++;
-            }
-
-            lineTop += lineHeight;
-        }
-    }
-
-    private _placeToken(
-        token: TextToken,
-        style: TextStyleProps,
-        lineHeight: number,
-        lineTop: number,
-        x: number,
-        textAlign: string,
-        parentBgColorDrawn: boolean
-    ) {
-        const tokenStyle = style.rich[token.styleName] || {};
-        tokenStyle.text = token.text;
-
-        // 'ctx.textBaseline' is always set as 'middle', for sake of
-        // the bias of "Microsoft YaHei".
-        const verticalAlign = token.verticalAlign;
-        let y = lineTop + lineHeight / 2;
-        if (verticalAlign === 'top') {
-            y = lineTop + token.height / 2;
-        }
-        else if (verticalAlign === 'bottom') {
-            y = lineTop + lineHeight - token.height / 2;
-        }
-
-        const needDrawBg = !token.isLineHolder && needDrawBackground(tokenStyle);
-        needDrawBg && this._renderBackground(
-            tokenStyle,
-            style,
-            textAlign === 'right'
-                ? x - token.width
-                : textAlign === 'center'
-                ? x - token.width / 2
-                : x,
-            y - token.height / 2,
-            token.width,
-            token.height
-        );
-        const bgColorDrawn = !!tokenStyle.backgroundColor;
-
-        const textPadding = token.textPadding;
-        if (textPadding) {
-            x = getTextXForPadding(x, textAlign, textPadding);
-            y -= token.height / 2 - textPadding[0] - token.innerHeight / 2;
-        }
-
-        const el = this._getOrCreateChild(TSpan);
-        const subElStyle: TSpanStyleProps = el.createStyle();
-        // Always create new style.
-        el.useStyle(subElStyle);
-
-        const defaultStyle = this._defaultStyle;
-        let useDefaultFill = false;
-        let defaultLineWidth = 0;
-        const textFill = getFill(
-            'fill' in tokenStyle ? tokenStyle.fill
-                : 'fill' in style ? style.fill
-                : (useDefaultFill = true, defaultStyle.fill)
-        );
-        const textStroke = getStroke(
-            'stroke' in tokenStyle ? tokenStyle.stroke
-                : 'stroke' in style ? style.stroke
-                : (
-                    !bgColorDrawn
-                    && !parentBgColorDrawn
-                    // See the strategy explained above.
-                    && (!defaultStyle.autoStroke || useDefaultFill)
-                ) ? (defaultLineWidth = DEFAULT_STROKE_LINE_WIDTH, defaultStyle.stroke)
-                : null
-        );
-
-        const hasShadow = tokenStyle.textShadowBlur > 0
-            || style.textShadowBlur > 0;
-
-        subElStyle.text = token.text;
-        subElStyle.x = x;
-        subElStyle.y = y;
-        if (hasShadow) {
-            subElStyle.shadowBlur = tokenStyle.textShadowBlur || style.textShadowBlur || 0;
-            subElStyle.shadowColor = tokenStyle.textShadowColor || style.textShadowColor || 'transparent';
-            subElStyle.shadowOffsetX = tokenStyle.textShadowOffsetX || style.textShadowOffsetX || 0;
-            subElStyle.shadowOffsetY = tokenStyle.textShadowOffsetY || style.textShadowOffsetY || 0;
-        }
-
-        subElStyle.textAlign = textAlign as CanvasTextAlign;
-        // Force baseline to be "middle". Otherwise, if using "top", the
-        // text will offset downward a little bit in font "Microsoft YaHei".
-        subElStyle.textBaseline = 'middle';
-        subElStyle.font = token.font || DEFAULT_FONT;
-        subElStyle.opacity = retrieve3(tokenStyle.opacity, style.opacity, 1);
-
-
-        // TODO inherit each item from top style in token style?
-        setSeparateFont(subElStyle, tokenStyle);
-
-        if (textStroke) {
-            subElStyle.lineWidth = retrieve3(tokenStyle.lineWidth, style.lineWidth, defaultLineWidth);
-            subElStyle.lineDash = retrieve2(tokenStyle.lineDash, style.lineDash);
-            subElStyle.lineDashOffset = style.lineDashOffset || 0;
-            subElStyle.stroke = textStroke;
-        }
-        if (textFill) {
-            subElStyle.fill = textFill;
-        }
-
-        const textWidth = token.contentWidth;
-        const textHeight = token.contentHeight;
-        // NOTE: Should not call dirtyStyle after setBoundingRect. Or it will be cleared.
-        el.setBoundingRect(new BoundingRect(
-            adjustTextX(subElStyle.x, textWidth, subElStyle.textAlign as TextAlign),
-            adjustTextY(subElStyle.y, textHeight, subElStyle.textBaseline as TextVerticalAlign),
-            textWidth,
-            textHeight
-        ));
-    }
-
-    private _renderBackground(
-        style: TextStylePropsPart,
-        topStyle: TextStylePropsPart,
-        x: number,
-        y: number,
-        width: number,
-        height: number
-    ) {
-        const textBackgroundColor = style.backgroundColor;
-        const textBorderWidth = style.borderWidth;
-        const textBorderColor = style.borderColor;
-        const isImageBg = textBackgroundColor && (textBackgroundColor as {image: ImageLike}).image;
-        const isPlainOrGradientBg = textBackgroundColor && !isImageBg;
-        const textBorderRadius = style.borderRadius;
-        const self = this;
-
-        let rectEl: Rect;
-        let imgEl: ZRImage;
-        if (isPlainOrGradientBg || style.lineHeight || (textBorderWidth && textBorderColor)) {
-            // Background is color
-            rectEl = this._getOrCreateChild(Rect);
-            rectEl.useStyle(rectEl.createStyle());    // Create an empty style.
-            rectEl.style.fill = null;
-            const rectShape = rectEl.shape;
-            rectShape.x = x;
-            rectShape.y = y;
-            rectShape.width = width;
-            rectShape.height = height;
-            rectShape.r = textBorderRadius;
-            rectEl.dirtyShape();
-        }
-
-        if (isPlainOrGradientBg) {
-            const rectStyle = rectEl.style;
-            rectStyle.fill = textBackgroundColor as string || null;
-            rectStyle.fillOpacity = retrieve2(style.fillOpacity, 1);
-        }
-        else if (isImageBg) {
-            imgEl = this._getOrCreateChild(ZRImage);
-            imgEl.onload = function () {
-                // Refresh and relayout after image loaded.
-                self.dirtyStyle();
-            };
-            const imgStyle = imgEl.style;
-            imgStyle.image = (textBackgroundColor as {image: ImageLike}).image;
-            imgStyle.x = x;
-            imgStyle.y = y;
-            imgStyle.width = width;
-            imgStyle.height = height;
-        }
-
-        if (textBorderWidth && textBorderColor) {
-            const rectStyle = rectEl.style;
-            rectStyle.lineWidth = textBorderWidth;
-            rectStyle.stroke = textBorderColor;
-            rectStyle.strokeOpacity = retrieve2(style.strokeOpacity, 1);
-            rectStyle.lineDash = style.borderDash;
-            rectStyle.lineDashOffset = style.borderDashOffset || 0;
-            rectEl.strokeContainThreshold = 0;
-
-            // Making shadow looks better.
-            if (rectEl.hasFill() && rectEl.hasStroke()) {
-                rectStyle.strokeFirst = true;
-                rectStyle.lineWidth *= 2;
-            }
-        }
-
-        const commonStyle = (rectEl || imgEl).style;
-        commonStyle.shadowBlur = style.shadowBlur || 0;
-        commonStyle.shadowColor = style.shadowColor || 'transparent';
-        commonStyle.shadowOffsetX = style.shadowOffsetX || 0;
-        commonStyle.shadowOffsetY = style.shadowOffsetY || 0;
-        commonStyle.opacity = retrieve3(style.opacity, topStyle.opacity, 1);
-    }
-
-    static makeFont(style: TextStylePropsPart): string {
-        // FIXME in node-canvas fontWeight is before fontStyle
-        // Use `fontSize` `fontFamily` to check whether font properties are defined.
-        let font = '';
-        if (hasSeparateFont(style)) {
-            font = [
-                style.fontStyle,
-                style.fontWeight,
-                parseFontSize(style.fontSize),
-                // If font properties are defined, `fontFamily` should not be ignored.
-                style.fontFamily || 'sans-serif'
-            ].join(' ');
-        }
-        return font && trim(font) || style.textFont || style.font;
-    }
-}
-
-
-const VALID_TEXT_ALIGN = {left: true, right: 1, center: 1};
-const VALID_TEXT_VERTICAL_ALIGN = {top: 1, bottom: 1, middle: 1};
-
-const FONT_PARTS = ['fontStyle', 'fontWeight', 'fontSize', 'fontFamily'] as const;
-
-export function parseFontSize(fontSize: number | string) {
-    if (
-        typeof fontSize === 'string'
-        && (
-            fontSize.indexOf('px') !== -1
-            || fontSize.indexOf('rem') !== -1
-            || fontSize.indexOf('em') !== -1
-        )
-    ) {
-        return fontSize;
-    }
-    else if (!isNaN(+fontSize)) {
-        return fontSize + 'px';
-    }
-    else {
-        return DEFAULT_FONT_SIZE + 'px';
-    }
-}
-
-function setSeparateFont(
-    targetStyle: TSpanStyleProps,
-    sourceStyle: TextStylePropsPart
-) {
-    for (let i = 0; i < FONT_PARTS.length; i++) {
-        const fontProp = FONT_PARTS[i];
-        const val = sourceStyle[fontProp];
-        if (val != null) {
-            (targetStyle as any)[fontProp] = val;
-        }
-    }
-}
-
-export function hasSeparateFont(style: Pick<TextStylePropsPart, 'fontSize' | 'fontFamily' | 'fontWeight'>) {
-    return style.fontSize != null || style.fontFamily || style.fontWeight;
-}
-
-export function normalizeTextStyle(style: TextStyleProps): TextStyleProps {
-    normalizeStyle(style);
-    // TODO inherit each item from top style in token style?
-    each(style.rich, normalizeStyle);
-    return style;
-}
-
-function normalizeStyle(style: TextStylePropsPart) {
-    if (style) {
-        style.font = ZRText.makeFont(style);
-        let textAlign = style.align;
-        // 'middle' is invalid, convert it to 'center'
-        (textAlign as string) === 'middle' && (textAlign = 'center');
-        style.align = (
-            textAlign == null || VALID_TEXT_ALIGN[textAlign]
-        ) ? textAlign : 'left';
-
-        // Compatible with textBaseline.
-        let verticalAlign = style.verticalAlign;
-        (verticalAlign as string) === 'center' && (verticalAlign = 'middle');
-        style.verticalAlign = (
-            verticalAlign == null || VALID_TEXT_VERTICAL_ALIGN[verticalAlign]
-        ) ? verticalAlign : 'top';
-
-        // TODO Should not change the orignal value.
-        const textPadding = style.padding;
-        if (textPadding) {
-            style.padding = normalizeCssArray(style.padding);
-        }
-    }
-}
-
-/**
- * @param stroke If specified, do not check style.textStroke.
- * @param lineWidth If specified, do not check style.textStroke.
- */
-function getStroke(
-    stroke?: TextStylePropsPart['stroke'],
-    lineWidth?: number
-) {
-    return (stroke == null || lineWidth <= 0 || stroke === 'transparent' || stroke === 'none')
-        ? null
-        : ((stroke as any).image || (stroke as any).colorStops)
-        ? '#000'
-        : stroke;
-}
-
-function getFill(
-    fill?: TextStylePropsPart['fill']
-) {
-    return (fill == null || fill === 'none')
-        ? null
-        // TODO pattern and gradient?
-        : ((fill as any).image || (fill as any).colorStops)
-        ? '#000'
-        : fill;
-}
-
-function getTextXForPadding(x: number, textAlign: string, textPadding: number[]): number {
-    return textAlign === 'right'
-        ? (x - textPadding[1])
-        : textAlign === 'center'
-        ? (x + textPadding[3] / 2 - textPadding[1] / 2)
-        : (x + textPadding[3]);
-}
-
-function getStyleText(style: TextStylePropsPart): string {
-    // Compat: set number to text is supported.
-    // set null/undefined to text is supported.
-    let text = style.text;
-    text != null && (text += '');
-    return text;
-}
-
-/**
- * If needs draw background
- * @param style Style of element
- */
-function needDrawBackground(style: TextStylePropsPart): boolean {
-    return !!(
-        style.backgroundColor
-        || style.lineHeight
-        || (style.borderWidth && style.borderColor)
-    );
-}
-
-export default ZRText;

+ 0 - 4
node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/graphic/constants.ts

@@ -1,4 +0,0 @@
-// Bit masks to check which parts of element needs to be updated.
-export const REDRAW_BIT = 1;
-export const STYLE_CHANGED_BIT = 2;
-export const SHAPE_CHANGED_BIT = 4;

+ 0 - 106
node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/graphic/helper/image.ts

@@ -1,106 +0,0 @@
-
-import LRU from '../../core/LRU';
-import { platformApi } from '../../core/platform';
-import { ImageLike } from '../../core/types';
-
-const globalImageCache = new LRU<CachedImageObj>(50);
-
-type PendingWrap = {
-    hostEl: {dirty: () => void}
-    cb: (image: ImageLike, payload: any) => void
-    cbPayload: any
-}
-
-type CachedImageObj = {
-    image: ImageLike
-    pending: PendingWrap[]
-}
-
-export function findExistImage(newImageOrSrc: string | ImageLike): ImageLike {
-    if (typeof newImageOrSrc === 'string') {
-        const cachedImgObj = globalImageCache.get(newImageOrSrc);
-        return cachedImgObj && cachedImgObj.image;
-    }
-    else {
-        return newImageOrSrc;
-    }
-}
-
-/**
- * Caution: User should cache loaded images, but not just count on LRU.
- * Consider if required images more than LRU size, will dead loop occur?
- *
- * @param newImageOrSrc
- * @param image Existent image.
- * @param hostEl For calling `dirty`.
- * @param onload params: (image, cbPayload)
- * @param cbPayload Payload on cb calling.
- * @return image
- */
-export function createOrUpdateImage<T>(
-    newImageOrSrc: string | ImageLike,
-    image: ImageLike,
-    hostEl: { dirty: () => void },
-    onload?: (image: ImageLike, payload: T) => void,
-    cbPayload?: T
-) {
-    if (!newImageOrSrc) {
-        return image;
-    }
-    else if (typeof newImageOrSrc === 'string') {
-
-        // Image should not be loaded repeatly.
-        if ((image && (image as any).__zrImageSrc === newImageOrSrc) || !hostEl) {
-            return image;
-        }
-
-        // Only when there is no existent image or existent image src
-        // is different, this method is responsible for load.
-        const cachedImgObj = globalImageCache.get(newImageOrSrc);
-
-        const pendingWrap = {hostEl: hostEl, cb: onload, cbPayload: cbPayload};
-
-        if (cachedImgObj) {
-            image = cachedImgObj.image;
-            !isImageReady(image) && cachedImgObj.pending.push(pendingWrap);
-        }
-        else {
-            image = platformApi.loadImage(
-                newImageOrSrc, imageOnLoad, imageOnLoad
-            );
-            (image as any).__zrImageSrc = newImageOrSrc;
-
-            globalImageCache.put(
-                newImageOrSrc,
-                (image as any).__cachedImgObj = {
-                    image: image,
-                    pending: [pendingWrap]
-                }
-            );
-        }
-
-        return image;
-    }
-    // newImageOrSrc is an HTMLImageElement or HTMLCanvasElement or Canvas
-    else {
-        return newImageOrSrc;
-    }
-}
-
-function imageOnLoad(this: any) {
-    const cachedImgObj = this.__cachedImgObj;
-    this.onload = this.onerror = this.__cachedImgObj = null;
-
-    for (let i = 0; i < cachedImgObj.pending.length; i++) {
-        const pendingWrap = cachedImgObj.pending[i];
-        const cb = pendingWrap.cb;
-        cb && cb(this, pendingWrap.cbPayload);
-        pendingWrap.hostEl.dirty();
-    }
-    cachedImgObj.pending.length = 0;
-}
-
-export function isImageReady(image: ImageLike) {
-    return image && image.width && image.height;
-}
-

+ 0 - 764
node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/graphic/helper/parseText.ts

@@ -1,764 +0,0 @@
-import * as imageHelper from '../helper/image';
-import {
-    extend,
-    retrieve2,
-    retrieve3,
-    reduce
-} from '../../core/util';
-import { TextAlign, TextVerticalAlign, ImageLike, Dictionary } from '../../core/types';
-import { TextStyleProps } from '../Text';
-import { getLineHeight, getWidth, parsePercent } from '../../contain/text';
-
-const STYLE_REG = /\{([a-zA-Z0-9_]+)\|([^}]*)\}/g;
-
-interface InnerTruncateOption {
-    maxIteration?: number
-    // If truncate result are less than minChar, ellipsis will not show
-    // which is better for user hint in some cases
-    minChar?: number
-    // When all truncated, use the placeholder
-    placeholder?: string
-
-    maxIterations?: number
-}
-
-interface InnerPreparedTruncateOption extends Required<InnerTruncateOption> {
-    font: string
-
-    ellipsis: string
-    ellipsisWidth: number
-    contentWidth: number
-
-    containerWidth: number
-    cnCharWidth: number
-    ascCharWidth: number
-}
-
-/**
- * Show ellipsis if overflow.
- */
-export function truncateText(
-    text: string,
-    containerWidth: number,
-    font: string,
-    ellipsis?: string,
-    options?: InnerTruncateOption
-): string {
-    if (!containerWidth) {
-        return '';
-    }
-
-    const textLines = (text + '').split('\n');
-    options = prepareTruncateOptions(containerWidth, font, ellipsis, options);
-
-    // FIXME
-    // It is not appropriate that every line has '...' when truncate multiple lines.
-    for (let i = 0, len = textLines.length; i < len; i++) {
-        textLines[i] = truncateSingleLine(textLines[i], options as InnerPreparedTruncateOption);
-    }
-
-    return textLines.join('\n');
-}
-
-function prepareTruncateOptions(
-    containerWidth: number,
-    font: string,
-    ellipsis?: string,
-    options?: InnerTruncateOption
-): InnerPreparedTruncateOption {
-    options = options || {};
-    let preparedOpts = extend({}, options) as InnerPreparedTruncateOption;
-
-    preparedOpts.font = font;
-    ellipsis = retrieve2(ellipsis, '...');
-    preparedOpts.maxIterations = retrieve2(options.maxIterations, 2);
-    const minChar = preparedOpts.minChar = retrieve2(options.minChar, 0);
-    // FIXME
-    // Other languages?
-    preparedOpts.cnCharWidth = getWidth('国', font);
-    // FIXME
-    // Consider proportional font?
-    const ascCharWidth = preparedOpts.ascCharWidth = getWidth('a', font);
-    preparedOpts.placeholder = retrieve2(options.placeholder, '');
-
-    // Example 1: minChar: 3, text: 'asdfzxcv', truncate result: 'asdf', but not: 'a...'.
-    // Example 2: minChar: 3, text: '维度', truncate result: '维', but not: '...'.
-    let contentWidth = containerWidth = Math.max(0, containerWidth - 1); // Reserve some gap.
-    for (let i = 0; i < minChar && contentWidth >= ascCharWidth; i++) {
-        contentWidth -= ascCharWidth;
-    }
-
-    let ellipsisWidth = getWidth(ellipsis, font);
-    if (ellipsisWidth > contentWidth) {
-        ellipsis = '';
-        ellipsisWidth = 0;
-    }
-
-    contentWidth = containerWidth - ellipsisWidth;
-
-    preparedOpts.ellipsis = ellipsis;
-    preparedOpts.ellipsisWidth = ellipsisWidth;
-    preparedOpts.contentWidth = contentWidth;
-    preparedOpts.containerWidth = containerWidth;
-
-    return preparedOpts;
-}
-
-function truncateSingleLine(textLine: string, options: InnerPreparedTruncateOption): string {
-    const containerWidth = options.containerWidth;
-    const font = options.font;
-    const contentWidth = options.contentWidth;
-
-    if (!containerWidth) {
-        return '';
-    }
-
-    let lineWidth = getWidth(textLine, font);
-
-    if (lineWidth <= containerWidth) {
-        return textLine;
-    }
-
-    for (let j = 0; ; j++) {
-        if (lineWidth <= contentWidth || j >= options.maxIterations) {
-            textLine += options.ellipsis;
-            break;
-        }
-
-        const subLength = j === 0
-            ? estimateLength(textLine, contentWidth, options.ascCharWidth, options.cnCharWidth)
-            : lineWidth > 0
-            ? Math.floor(textLine.length * contentWidth / lineWidth)
-            : 0;
-
-        textLine = textLine.substr(0, subLength);
-        lineWidth = getWidth(textLine, font);
-    }
-
-    if (textLine === '') {
-        textLine = options.placeholder;
-    }
-
-    return textLine;
-}
-
-function estimateLength(
-    text: string, contentWidth: number, ascCharWidth: number, cnCharWidth: number
-): number {
-    let width = 0;
-    let i = 0;
-    for (let len = text.length; i < len && width < contentWidth; i++) {
-        const charCode = text.charCodeAt(i);
-        width += (0 <= charCode && charCode <= 127) ? ascCharWidth : cnCharWidth;
-    }
-    return i;
-}
-
-export interface PlainTextContentBlock {
-    lineHeight: number
-    // Line height of actual content.
-    calculatedLineHeight: number
-
-    contentWidth: number
-    contentHeight: number
-
-    width: number
-    height: number
-
-    /**
-     * Real text width containing padding.
-     * It should be the same as `width` if background is rendered
-     * and `width` is set by user.
-     */
-    outerWidth: number
-    outerHeight: number
-
-    lines: string[]
-}
-
-export function parsePlainText(
-    text: string,
-    style?: TextStyleProps
-): PlainTextContentBlock {
-    text != null && (text += '');
-
-    // textPadding has been normalized
-    const overflow = style.overflow;
-    const padding = style.padding as number[];
-    const font = style.font;
-    const truncate = overflow === 'truncate';
-    const calculatedLineHeight = getLineHeight(font);
-    const lineHeight = retrieve2(style.lineHeight, calculatedLineHeight);
-    const bgColorDrawn = !!(style.backgroundColor);
-
-    const truncateLineOverflow = style.lineOverflow === 'truncate';
-
-    let width = style.width;
-    let lines: string[];
-
-    if (width != null && (overflow === 'break' || overflow === 'breakAll')) {
-        lines = text ? wrapText(text, style.font, width, overflow === 'breakAll', 0).lines : [];
-    }
-    else {
-        lines = text ? text.split('\n') : [];
-    }
-
-    const contentHeight = lines.length * lineHeight;
-    const height = retrieve2(style.height, contentHeight);
-
-    // Truncate lines.
-    if (contentHeight > height && truncateLineOverflow) {
-        const lineCount = Math.floor(height / lineHeight);
-
-        lines = lines.slice(0, lineCount);
-
-        // TODO If show ellipse for line truncate
-        // if (style.ellipsis) {
-        //     const options = prepareTruncateOptions(width, font, style.ellipsis, {
-        //         minChar: style.truncateMinChar,
-        //         placeholder: style.placeholder
-        //     });
-        //     lines[lineCount - 1] = truncateSingleLine(lastLine, options);
-        // }
-    }
-
-    if (text && truncate && width != null) {
-        const options = prepareTruncateOptions(width, font, style.ellipsis, {
-            minChar: style.truncateMinChar,
-            placeholder: style.placeholder
-        });
-        // Having every line has '...' when truncate multiple lines.
-        for (let i = 0; i < lines.length; i++) {
-            lines[i] = truncateSingleLine(lines[i], options);
-        }
-    }
-
-    // Calculate real text width and height
-    let outerHeight = height;
-    let contentWidth = 0;
-    for (let i = 0; i < lines.length; i++) {
-        contentWidth = Math.max(getWidth(lines[i], font), contentWidth);
-    }
-    if (width == null) {
-        // When width is not explicitly set, use outerWidth as width.
-        width = contentWidth;
-    }
-
-    let outerWidth = contentWidth;
-    if (padding) {
-        outerHeight += padding[0] + padding[2];
-        outerWidth += padding[1] + padding[3];
-        width += padding[1] + padding[3];
-    }
-
-    if (bgColorDrawn) {
-        // When render background, outerWidth should be the same as width.
-        outerWidth = width;
-    }
-
-    return {
-        lines: lines,
-        height: height,
-        outerWidth: outerWidth,
-        outerHeight: outerHeight,
-        lineHeight: lineHeight,
-        calculatedLineHeight: calculatedLineHeight,
-        contentWidth: contentWidth,
-        contentHeight: contentHeight,
-        width: width
-    };
-}
-
-class RichTextToken {
-    styleName: string
-    text: string
-    width: number
-    height: number
-
-    // Inner height exclude padding
-    innerHeight: number
-
-    // Width and height of actual text content.
-    contentHeight: number
-    contentWidth: number
-
-    lineHeight: number
-    font: string
-    align: TextAlign
-    verticalAlign: TextVerticalAlign
-
-    textPadding: number[]
-    percentWidth?: string
-
-    isLineHolder: boolean
-}
-class RichTextLine {
-    lineHeight: number
-    width: number
-    tokens: RichTextToken[] = []
-
-    constructor(tokens?: RichTextToken[]) {
-        if (tokens) {
-            this.tokens = tokens;
-        }
-    }
-}
-export class RichTextContentBlock {
-    // width/height of content
-    width: number = 0
-    height: number = 0
-    // Calculated text height
-    contentWidth: number = 0
-    contentHeight: number = 0
-    // outerWidth/outerHeight with padding
-    outerWidth: number = 0
-    outerHeight: number = 0
-    lines: RichTextLine[] = []
-}
-
-type WrapInfo = {
-    width: number,
-    accumWidth: number,
-    breakAll: boolean
-}
-/**
- * For example: 'some text {a|some text}other text{b|some text}xxx{c|}xxx'
- * Also consider 'bbbb{a|xxx\nzzz}xxxx\naaaa'.
- * If styleName is undefined, it is plain text.
- */
-export function parseRichText(text: string, style: TextStyleProps) {
-    const contentBlock = new RichTextContentBlock();
-
-    text != null && (text += '');
-    if (!text) {
-        return contentBlock;
-    }
-
-    const topWidth = style.width;
-    const topHeight = style.height;
-    const overflow = style.overflow;
-    let wrapInfo: WrapInfo = (overflow === 'break' || overflow === 'breakAll') && topWidth != null
-        ? {width: topWidth, accumWidth: 0, breakAll: overflow === 'breakAll'}
-        : null;
-
-    let lastIndex = STYLE_REG.lastIndex = 0;
-    let result;
-    while ((result = STYLE_REG.exec(text)) != null) {
-        const matchedIndex = result.index;
-        if (matchedIndex > lastIndex) {
-            pushTokens(contentBlock, text.substring(lastIndex, matchedIndex), style, wrapInfo);
-        }
-        pushTokens(contentBlock, result[2], style, wrapInfo, result[1]);
-        lastIndex = STYLE_REG.lastIndex;
-    }
-
-    if (lastIndex < text.length) {
-        pushTokens(contentBlock, text.substring(lastIndex, text.length), style, wrapInfo);
-    }
-
-    // For `textWidth: xx%`
-    let pendingList = [];
-
-    let calculatedHeight = 0;
-    let calculatedWidth = 0;
-
-    const stlPadding = style.padding as number[];
-
-    const truncate = overflow === 'truncate';
-    const truncateLine = style.lineOverflow === 'truncate';
-
-    // let prevToken: RichTextToken;
-
-    function finishLine(line: RichTextLine, lineWidth: number, lineHeight: number) {
-        line.width = lineWidth;
-        line.lineHeight = lineHeight;
-        calculatedHeight += lineHeight;
-        calculatedWidth = Math.max(calculatedWidth, lineWidth);
-    }
-    // Calculate layout info of tokens.
-    outer: for (let i = 0; i < contentBlock.lines.length; i++) {
-        const line = contentBlock.lines[i];
-        let lineHeight = 0;
-        let lineWidth = 0;
-
-        for (let j = 0; j < line.tokens.length; j++) {
-            const token = line.tokens[j];
-            const tokenStyle = token.styleName && style.rich[token.styleName] || {};
-            // textPadding should not inherit from style.
-            const textPadding = token.textPadding = tokenStyle.padding as number[];
-            const paddingH = textPadding ? textPadding[1] + textPadding[3] : 0;
-
-            const font = token.font = tokenStyle.font || style.font;
-
-            token.contentHeight = getLineHeight(font);
-            // textHeight can be used when textVerticalAlign is specified in token.
-            let tokenHeight = retrieve2(
-                // textHeight should not be inherited, consider it can be specified
-                // as box height of the block.
-                tokenStyle.height, token.contentHeight
-            );
-            token.innerHeight = tokenHeight;
-
-            textPadding && (tokenHeight += textPadding[0] + textPadding[2]);
-            token.height = tokenHeight;
-            // Inlcude padding in lineHeight.
-            token.lineHeight = retrieve3(
-                tokenStyle.lineHeight, style.lineHeight, tokenHeight
-            );
-
-            token.align = tokenStyle && tokenStyle.align || style.align;
-            token.verticalAlign = tokenStyle && tokenStyle.verticalAlign || 'middle';
-
-            if (truncateLine && topHeight != null && calculatedHeight + token.lineHeight > topHeight) {
-                // TODO Add ellipsis on the previous token.
-                // prevToken.text =
-                if (j > 0) {
-                    line.tokens = line.tokens.slice(0, j);
-                    finishLine(line, lineWidth, lineHeight);
-                    contentBlock.lines = contentBlock.lines.slice(0, i + 1);
-                }
-                else {
-                    contentBlock.lines = contentBlock.lines.slice(0, i);
-                }
-                break outer;
-            }
-
-            let styleTokenWidth = tokenStyle.width;
-            let tokenWidthNotSpecified = styleTokenWidth == null || styleTokenWidth === 'auto';
-
-            // Percent width, can be `100%`, can be used in drawing separate
-            // line when box width is needed to be auto.
-            if (typeof styleTokenWidth === 'string' && styleTokenWidth.charAt(styleTokenWidth.length - 1) === '%') {
-                token.percentWidth = styleTokenWidth;
-                pendingList.push(token);
-
-                token.contentWidth = getWidth(token.text, font);
-                // Do not truncate in this case, because there is no user case
-                // and it is too complicated.
-            }
-            else {
-                if (tokenWidthNotSpecified) {
-                    // FIXME: If image is not loaded and textWidth is not specified, calling
-                    // `getBoundingRect()` will not get correct result.
-                    const textBackgroundColor = tokenStyle.backgroundColor;
-                    let bgImg = textBackgroundColor && (textBackgroundColor as { image: ImageLike }).image;
-
-                    if (bgImg) {
-                        bgImg = imageHelper.findExistImage(bgImg);
-                        if (imageHelper.isImageReady(bgImg)) {
-                            // Update token width from image size.
-                            token.width = Math.max(token.width, bgImg.width * tokenHeight / bgImg.height);
-                        }
-                    }
-                }
-
-                const remainTruncWidth = truncate && topWidth != null
-                    ? topWidth - lineWidth : null;
-
-                if (remainTruncWidth != null && remainTruncWidth < token.width) {
-                    if (!tokenWidthNotSpecified || remainTruncWidth < paddingH) {
-                        token.text = '';
-                        token.width = token.contentWidth = 0;
-                    }
-                    else {
-                        token.text = truncateText(
-                            token.text, remainTruncWidth - paddingH, font, style.ellipsis,
-                            {minChar: style.truncateMinChar}
-                        );
-                        token.width = token.contentWidth = getWidth(token.text, font);
-                    }
-                }
-                else {
-                    token.contentWidth = getWidth(token.text, font);
-                }
-            }
-
-            token.width += paddingH;
-
-            lineWidth += token.width;
-            tokenStyle && (lineHeight = Math.max(lineHeight, token.lineHeight));
-
-            // prevToken = token;
-        }
-
-        finishLine(line, lineWidth, lineHeight);
-    }
-
-    contentBlock.outerWidth = contentBlock.width = retrieve2(topWidth, calculatedWidth);
-    contentBlock.outerHeight = contentBlock.height = retrieve2(topHeight, calculatedHeight);
-    contentBlock.contentHeight = calculatedHeight;
-    contentBlock.contentWidth = calculatedWidth;
-
-    if (stlPadding) {
-        contentBlock.outerWidth += stlPadding[1] + stlPadding[3];
-        contentBlock.outerHeight += stlPadding[0] + stlPadding[2];
-    }
-
-    for (let i = 0; i < pendingList.length; i++) {
-        const token = pendingList[i];
-        const percentWidth = token.percentWidth;
-        // Should not base on outerWidth, because token can not be placed out of padding.
-        token.width = parseInt(percentWidth, 10) / 100 * contentBlock.width;
-    }
-
-    return contentBlock;
-}
-
-type TokenStyle = TextStyleProps['rich'][string];
-
-function pushTokens(
-    block: RichTextContentBlock,
-    str: string,
-    style: TextStyleProps,
-    wrapInfo: WrapInfo,
-    styleName?: string
-) {
-    const isEmptyStr = str === '';
-    const tokenStyle: TokenStyle = styleName && style.rich[styleName] || {};
-    const lines = block.lines;
-    const font = tokenStyle.font || style.font;
-    let newLine = false;
-    let strLines;
-    let linesWidths;
-
-    if (wrapInfo) {
-        const tokenPadding = tokenStyle.padding as number[];
-        let tokenPaddingH = tokenPadding ? tokenPadding[1] + tokenPadding[3] : 0;
-        if (tokenStyle.width != null && tokenStyle.width !== 'auto') {
-            // Wrap the whole token if tokenWidth if fixed.
-            const outerWidth = parsePercent(tokenStyle.width, wrapInfo.width) + tokenPaddingH;
-            if (lines.length > 0) { // Not first line
-                if (outerWidth + wrapInfo.accumWidth > wrapInfo.width) {
-                    // TODO Support wrap text in token.
-                    strLines = str.split('\n');
-                    newLine = true;
-                }
-            }
-
-            wrapInfo.accumWidth = outerWidth;
-        }
-        else {
-            const res = wrapText(str, font, wrapInfo.width, wrapInfo.breakAll, wrapInfo.accumWidth);
-            wrapInfo.accumWidth = res.accumWidth + tokenPaddingH;
-            linesWidths = res.linesWidths;
-            strLines = res.lines;
-        }
-    }
-    else {
-        strLines = str.split('\n');
-    }
-
-    for (let i = 0; i < strLines.length; i++) {
-        const text = strLines[i];
-        const token = new RichTextToken();
-        token.styleName = styleName;
-        token.text = text;
-        token.isLineHolder = !text && !isEmptyStr;
-
-        if (typeof tokenStyle.width === 'number') {
-            token.width = tokenStyle.width;
-        }
-        else {
-            token.width = linesWidths
-                ? linesWidths[i] // Caculated width in the wrap
-                : getWidth(text, font);
-        }
-
-        // The first token should be appended to the last line if not new line.
-        if (!i && !newLine) {
-            const tokens = (lines[lines.length - 1] || (lines[0] = new RichTextLine())).tokens;
-
-            // Consider cases:
-            // (1) ''.split('\n') => ['', '\n', ''], the '' at the first item
-            // (which is a placeholder) should be replaced by new token.
-            // (2) A image backage, where token likes {a|}.
-            // (3) A redundant '' will affect textAlign in line.
-            // (4) tokens with the same tplName should not be merged, because
-            // they should be displayed in different box (with border and padding).
-            const tokensLen = tokens.length;
-            (tokensLen === 1 && tokens[0].isLineHolder)
-                ? (tokens[0] = token)
-                // Consider text is '', only insert when it is the "lineHolder" or
-                // "emptyStr". Otherwise a redundant '' will affect textAlign in line.
-                : ((text || !tokensLen || isEmptyStr) && tokens.push(token));
-        }
-        // Other tokens always start a new line.
-        else {
-            // If there is '', insert it as a placeholder.
-            lines.push(new RichTextLine([token]));
-        }
-    }
-}
-
-
-function isAlphabeticLetter(ch: string) {
-    // Unicode Character Ranges
-    // https://jrgraphix.net/research/unicode_blocks.php
-    // The following ranges may not cover all letter ranges but only the more
-    // popular ones. Developers could make pull requests when they find those
-    // not covered.
-    let code = ch.charCodeAt(0);
-    return code >= 0x20 && code <= 0x24F // Latin
-        || code >= 0x370 && code <= 0x10FF // Greek, Coptic, Cyrilic, and etc.
-        || code >= 0x1200 && code <= 0x13FF // Ethiopic and Cherokee
-        || code >= 0x1E00 && code <= 0x206F; // Latin and Greek extended
-}
-
-const breakCharMap = reduce(',&?/;] '.split(''), function (obj, ch) {
-    obj[ch] = true;
-    return obj;
-}, {} as Dictionary<boolean>);
-/**
- * If break by word. For latin languages.
- */
-function isWordBreakChar(ch: string) {
-    if (isAlphabeticLetter(ch)) {
-        if (breakCharMap[ch]) {
-            return true;
-        }
-        return false;
-    }
-    return true;
-}
-
-function wrapText(
-    text: string,
-    font: string,
-    lineWidth: number,
-    isBreakAll: boolean,
-    lastAccumWidth: number
-) {
-    let lines: string[] = [];
-    let linesWidths: number[] = [];
-    let line = '';
-    let currentWord = '';
-    let currentWordWidth = 0;
-    let accumWidth = 0;
-
-    for (let i = 0; i < text.length; i++) {
-
-        const ch = text.charAt(i);
-        if (ch === '\n') {
-            if (currentWord) {
-                line += currentWord;
-                accumWidth += currentWordWidth;
-            }
-            lines.push(line);
-            linesWidths.push(accumWidth);
-            // Reset
-            line = '';
-            currentWord = '';
-            currentWordWidth = 0;
-            accumWidth = 0;
-            continue;
-        }
-
-        const chWidth = getWidth(ch, font);
-        const inWord = isBreakAll ? false : !isWordBreakChar(ch);
-
-        if (!lines.length
-            ? lastAccumWidth + accumWidth + chWidth > lineWidth
-            : accumWidth + chWidth > lineWidth
-        ) {
-            if (!accumWidth) {  // If nothing appended yet.
-                if (inWord) {
-                    // The word length is still too long for one line
-                    // Force break the word
-                    lines.push(currentWord);
-                    linesWidths.push(currentWordWidth);
-
-                    currentWord = ch;
-                    currentWordWidth = chWidth;
-                }
-                else {
-                    // lineWidth is too small for ch
-                    lines.push(ch);
-                    linesWidths.push(chWidth);
-                }
-            }
-            else if (line || currentWord) {
-                if (inWord) {
-                    if (!line) {
-                        // The one word is still too long for one line
-                        // Force break the word
-                        // TODO Keep the word?
-                        line = currentWord;
-                        currentWord = '';
-                        currentWordWidth = 0;
-                        accumWidth = currentWordWidth;
-                    }
-
-                    lines.push(line);
-                    linesWidths.push(accumWidth - currentWordWidth);
-
-                    // Break the whole word
-                    currentWord += ch;
-                    currentWordWidth += chWidth;
-                    line = '';
-                    accumWidth = currentWordWidth;
-                }
-                else {
-                    // Append lastWord if have
-                    if (currentWord) {
-                        line += currentWord;
-                        currentWord = '';
-                        currentWordWidth = 0;
-                    }
-                    lines.push(line);
-                    linesWidths.push(accumWidth);
-
-                    line = ch;
-                    accumWidth = chWidth;
-                }
-            }
-
-            continue;
-        }
-
-        accumWidth += chWidth;
-
-        if (inWord) {
-            currentWord += ch;
-            currentWordWidth += chWidth;
-        }
-        else {
-            // Append whole word
-            if (currentWord) {
-                line += currentWord;
-                // Reset
-                currentWord = '';
-                currentWordWidth = 0;
-            }
-
-            // Append character
-            line += ch;
-        }
-    }
-
-    if (!lines.length && !line) {
-        line = text;
-        currentWord = '';
-        currentWordWidth = 0;
-    }
-
-    // Append last line.
-    if (currentWord) {
-        line += currentWord;
-    }
-    if (line) {
-        lines.push(line);
-        linesWidths.push(accumWidth);
-    }
-
-    if (lines.length === 1) {
-        // No new line.
-        accumWidth += lastAccumWidth;
-    }
-
-    return {
-        // Accum width of last line
-        accumWidth,
-        lines: lines,
-        linesWidths
-    };
-}

+ 0 - 43
node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/graphic/helper/poly.ts

@@ -1,43 +0,0 @@
-
-import smoothBezier from './smoothBezier';
-import { VectorArray } from '../../core/vector';
-import PathProxy from '../../core/PathProxy';
-
-export function buildPath(
-    ctx: CanvasRenderingContext2D | PathProxy,
-    shape: {
-        points: VectorArray[],
-        smooth?: number
-        smoothConstraint?: VectorArray[]
-    },
-    closePath: boolean
-) {
-    const smooth = shape.smooth;
-    let points = shape.points;
-    if (points && points.length >= 2) {
-        if (smooth) {
-            const controlPoints = smoothBezier(
-                points, smooth, closePath, shape.smoothConstraint
-            );
-
-            ctx.moveTo(points[0][0], points[0][1]);
-            const len = points.length;
-            for (let i = 0; i < (closePath ? len : len - 1); i++) {
-                const cp1 = controlPoints[i * 2];
-                const cp2 = controlPoints[i * 2 + 1];
-                const p = points[(i + 1) % len];
-                ctx.bezierCurveTo(
-                    cp1[0], cp1[1], cp2[0], cp2[1], p[0], p[1]
-                );
-            }
-        }
-        else {
-            ctx.moveTo(points[0][0], points[0][1]);
-            for (let i = 1, l = points.length; i < l; i++) {
-                ctx.lineTo(points[i][0], points[i][1]);
-            }
-        }
-
-        closePath && ctx.closePath();
-    }
-}

+ 0 - 87
node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/graphic/helper/roundRect.ts

@@ -1,87 +0,0 @@
-import PathProxy from '../../core/PathProxy';
-
-export function buildPath(ctx: CanvasRenderingContext2D | PathProxy, shape: {
-    x: number
-    y: number
-    width: number
-    height: number
-    r?: number | number[]
-}) {
-    let x = shape.x;
-    let y = shape.y;
-    let width = shape.width;
-    let height = shape.height;
-    let r = shape.r;
-    let r1;
-    let r2;
-    let r3;
-    let r4;
-
-    // Convert width and height to positive for better borderRadius
-    if (width < 0) {
-        x = x + width;
-        width = -width;
-    }
-    if (height < 0) {
-        y = y + height;
-        height = -height;
-    }
-
-    if (typeof r === 'number') {
-        r1 = r2 = r3 = r4 = r;
-    }
-    else if (r instanceof Array) {
-        if (r.length === 1) {
-            r1 = r2 = r3 = r4 = r[0];
-        }
-        else if (r.length === 2) {
-            r1 = r3 = r[0];
-            r2 = r4 = r[1];
-        }
-        else if (r.length === 3) {
-            r1 = r[0];
-            r2 = r4 = r[1];
-            r3 = r[2];
-        }
-        else {
-            r1 = r[0];
-            r2 = r[1];
-            r3 = r[2];
-            r4 = r[3];
-        }
-    }
-    else {
-        r1 = r2 = r3 = r4 = 0;
-    }
-
-    let total;
-    if (r1 + r2 > width) {
-        total = r1 + r2;
-        r1 *= width / total;
-        r2 *= width / total;
-    }
-    if (r3 + r4 > width) {
-        total = r3 + r4;
-        r3 *= width / total;
-        r4 *= width / total;
-    }
-    if (r2 + r3 > height) {
-        total = r2 + r3;
-        r2 *= height / total;
-        r3 *= height / total;
-    }
-    if (r1 + r4 > height) {
-        total = r1 + r4;
-        r1 *= height / total;
-        r4 *= height / total;
-    }
-    ctx.moveTo(x + r1, y);
-    ctx.lineTo(x + width - r2, y);
-    r2 !== 0 && ctx.arc(x + width - r2, y + r2, r2, -Math.PI / 2, 0);
-    ctx.lineTo(x + width, y + height - r3);
-    r3 !== 0 && ctx.arc(x + width - r3, y + height - r3, r3, 0, Math.PI / 2);
-    ctx.lineTo(x + r4, y + height);
-    r4 !== 0 && ctx.arc(x + r4, y + height - r4, r4, Math.PI / 2, Math.PI);
-    ctx.lineTo(x, y + r1);
-    r1 !== 0 && ctx.arc(x + r1, y + r1, r1, Math.PI, Math.PI * 1.5);
-}

+ 0 - 321
node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/graphic/helper/roundSector.ts

@@ -1,321 +0,0 @@
-import PathProxy from '../../core/PathProxy';
-import { isArray } from '../../core/util';
-
-const PI = Math.PI;
-const PI2 = PI * 2;
-const mathSin = Math.sin;
-const mathCos = Math.cos;
-const mathACos = Math.acos;
-const mathATan2 = Math.atan2;
-const mathAbs = Math.abs;
-const mathSqrt = Math.sqrt;
-const mathMax = Math.max;
-const mathMin = Math.min;
-const e = 1e-4;
-
-function intersect(
-    x0: number, y0: number,
-    x1: number, y1: number,
-    x2: number, y2: number,
-    x3: number, y3: number
-): [number, number] {
-    const dx10 = x1 - x0;
-    const dy10 = y1 - y0;
-    const dx32 = x3 - x2;
-    const dy32 = y3 - y2;
-    let t = dy32 * dx10 - dx32 * dy10;
-    if (t * t < e) {
-        return;
-    }
-    t = (dx32 * (y0 - y2) - dy32 * (x0 - x2)) / t;
-    return [x0 + t * dx10, y0 + t * dy10];
-}
-
-// Compute perpendicular offset line of length rc.
-function computeCornerTangents(
-    x0: number, y0: number,
-    x1: number, y1: number,
-    radius: number, cr: number,
-    clockwise: boolean
-) {
-    const x01 = x0 - x1;
-    const y01 = y0 - y1;
-    const lo = (clockwise ? cr : -cr) / mathSqrt(x01 * x01 + y01 * y01);
-    const ox = lo * y01;
-    const oy = -lo * x01;
-    const x11 = x0 + ox;
-    const y11 = y0 + oy;
-    const x10 = x1 + ox;
-    const y10 = y1 + oy;
-    const x00 = (x11 + x10) / 2;
-    const y00 = (y11 + y10) / 2;
-    const dx = x10 - x11;
-    const dy = y10 - y11;
-    const d2 = dx * dx + dy * dy;
-    const r = radius - cr;
-    const s = x11 * y10 - x10 * y11;
-    const d = (dy < 0 ? -1 : 1) * mathSqrt(mathMax(0, r * r * d2 - s * s));
-    let cx0 = (s * dy - dx * d) / d2;
-    let cy0 = (-s * dx - dy * d) / d2;
-    const cx1 = (s * dy + dx * d) / d2;
-    const cy1 = (-s * dx + dy * d) / d2;
-    const dx0 = cx0 - x00;
-    const dy0 = cy0 - y00;
-    const dx1 = cx1 - x00;
-    const dy1 = cy1 - y00;
-
-    // Pick the closer of the two intersection points
-    // TODO: Is there a faster way to determine which intersection to use?
-    if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) {
-        cx0 = cx1;
-        cy0 = cy1;
-    }
-
-    return {
-        cx: cx0,
-        cy: cy0,
-        x0: -ox,
-        y0: -oy,
-        x1: cx0 * (radius / r - 1),
-        y1: cy0 * (radius / r - 1)
-    };
-}
-
-// For compatibility, don't use normalizeCssArray
-// 5 represents [5, 5, 5, 5]
-// [5] represents [5, 5, 0, 0]
-// [5, 10] represents [5, 5, 10, 10]
-// [5, 10, 15] represents [5, 10, 15, 15]
-// [5, 10, 15, 20] represents [5, 10, 15, 20]
-function normalizeCornerRadius(cr: number | number[]): number[] {
-    let arr: number[];
-    if (isArray(cr)) {
-        const len = cr.length;
-        if (!len) {
-            return cr as number[];
-        }
-        if (len === 1) {
-            arr = [cr[0], cr[0], 0, 0];
-        }
-        else if (len === 2) {
-            arr = [cr[0], cr[0], cr[1], cr[1]];
-        }
-        else if (len === 3) {
-            arr = cr.concat(cr[2]);
-        }
-        else {
-            arr = cr;
-        }
-    }
-    else {
-        arr = [cr, cr, cr, cr];
-    }
-    return arr;
-}
-
-export function buildPath(ctx: CanvasRenderingContext2D | PathProxy, shape: {
-    cx: number
-    cy: number
-    startAngle: number
-    endAngle: number
-    clockwise?: boolean,
-    r?: number,
-    r0?: number,
-    cornerRadius?: number | number[]
-}) {
-    let radius = mathMax(shape.r, 0);
-    let innerRadius = mathMax(shape.r0 || 0, 0);
-    const hasRadius = radius > 0;
-    const hasInnerRadius = innerRadius > 0;
-
-    if (!hasRadius && !hasInnerRadius) {
-        return;
-    }
-
-    if (!hasRadius) {
-        // use innerRadius as radius if no radius
-        radius = innerRadius;
-        innerRadius = 0;
-    }
-
-    if (innerRadius > radius) {
-        // swap, ensure that radius is always larger than innerRadius
-        const tmp = radius;
-        radius = innerRadius;
-        innerRadius = tmp;
-    }
-
-    const { startAngle, endAngle } = shape;
-    if (isNaN(startAngle) || isNaN(endAngle)) {
-        return;
-    }
-
-    const { cx, cy } = shape;
-    const clockwise = !!shape.clockwise;
-
-    let arc = mathAbs(endAngle - startAngle);
-    const mod = arc > PI2 && arc % PI2;
-    mod > e && (arc = mod);
-
-    // is a point
-    if (!(radius > e)) {
-        ctx.moveTo(cx, cy);
-    }
-    // is a circle or annulus
-    else if (arc > PI2 - e) {
-        ctx.moveTo(
-            cx + radius * mathCos(startAngle),
-            cy + radius * mathSin(startAngle)
-        );
-        ctx.arc(cx, cy, radius, startAngle, endAngle, !clockwise);
-
-        if (innerRadius > e) {
-            ctx.moveTo(
-                cx + innerRadius * mathCos(endAngle),
-                cy + innerRadius * mathSin(endAngle)
-            );
-            ctx.arc(cx, cy, innerRadius, endAngle, startAngle, clockwise);
-        }
-    }
-    // is a circular or annular sector
-    else {
-        let icrStart;
-        let icrEnd;
-        let ocrStart;
-        let ocrEnd;
-
-        let ocrs;
-        let ocre;
-        let icrs;
-        let icre;
-
-        let ocrMax;
-        let icrMax;
-        let limitedOcrMax;
-        let limitedIcrMax;
-
-        let xre;
-        let yre;
-        let xirs;
-        let yirs;
-
-        const xrs = radius * mathCos(startAngle);
-        const yrs = radius * mathSin(startAngle);
-        const xire = innerRadius * mathCos(endAngle);
-        const yire = innerRadius * mathSin(endAngle);
-
-        const hasArc = arc > e;
-        if (hasArc) {
-            const cornerRadius = shape.cornerRadius;
-            if (cornerRadius) {
-                [icrStart, icrEnd, ocrStart, ocrEnd] = normalizeCornerRadius(cornerRadius);
-            }
-
-            const halfRd = mathAbs(radius - innerRadius) / 2;
-            ocrs = mathMin(halfRd, ocrStart);
-            ocre = mathMin(halfRd, ocrEnd);
-            icrs = mathMin(halfRd, icrStart);
-            icre = mathMin(halfRd, icrEnd);
-
-            limitedOcrMax = ocrMax = mathMax(ocrs, ocre);
-            limitedIcrMax = icrMax = mathMax(icrs, icre);
-
-            // draw corner radius
-            if (ocrMax > e || icrMax > e) {
-                xre = radius * mathCos(endAngle);
-                yre = radius * mathSin(endAngle);
-                xirs = innerRadius * mathCos(startAngle);
-                yirs = innerRadius * mathSin(startAngle);
-
-                // restrict the max value of corner radius
-                if (arc < PI) {
-                    const it = intersect(xrs, yrs, xirs, yirs, xre, yre, xire, yire);
-                    if (it) {
-                        const x0 = xrs - it[0];
-                        const y0 = yrs - it[1];
-                        const x1 = xre - it[0];
-                        const y1 = yre - it[1];
-                        const a = 1 / mathSin(
-                            // eslint-disable-next-line max-len
-                            mathACos((x0 * x1 + y0 * y1) / (mathSqrt(x0 * x0 + y0 * y0) * mathSqrt(x1 * x1 + y1 * y1))) / 2
-                        );
-                        const b = mathSqrt(it[0] * it[0] + it[1] * it[1]);
-                        limitedOcrMax = mathMin(ocrMax, (radius - b) / (a + 1));
-                        limitedIcrMax = mathMin(icrMax, (innerRadius - b) / (a - 1));
-                    }
-                }
-            }
-        }
-
-        // the sector is collapsed to a line
-        if (!hasArc) {
-            ctx.moveTo(cx + xrs, cy + yrs);
-        }
-        // the outer ring has corners
-        else if (limitedOcrMax > e) {
-            const crStart = mathMin(ocrStart, limitedOcrMax);
-            const crEnd = mathMin(ocrEnd, limitedOcrMax);
-            const ct0 = computeCornerTangents(xirs, yirs, xrs, yrs, radius, crStart, clockwise);
-            const ct1 = computeCornerTangents(xre, yre, xire, yire, radius, crEnd, clockwise);
-
-            ctx.moveTo(cx + ct0.cx + ct0.x0, cy + ct0.cy + ct0.y0);
-
-            // Have the corners merged?
-            if (limitedOcrMax < ocrMax && crStart === crEnd) {
-                // eslint-disable-next-line max-len
-                ctx.arc(cx + ct0.cx, cy + ct0.cy, limitedOcrMax, mathATan2(ct0.y0, ct0.x0), mathATan2(ct1.y0, ct1.x0), !clockwise);
-            }
-            else {
-                // draw the two corners and the ring
-                // eslint-disable-next-line max-len
-                crStart > 0 && ctx.arc(cx + ct0.cx, cy + ct0.cy, crStart, mathATan2(ct0.y0, ct0.x0), mathATan2(ct0.y1, ct0.x1), !clockwise);
-                // eslint-disable-next-line max-len
-                ctx.arc(cx, cy, radius, mathATan2(ct0.cy + ct0.y1, ct0.cx + ct0.x1), mathATan2(ct1.cy + ct1.y1, ct1.cx + ct1.x1), !clockwise);
-                // eslint-disable-next-line max-len
-                crEnd > 0 && ctx.arc(cx + ct1.cx, cy + ct1.cy, crEnd, mathATan2(ct1.y1, ct1.x1), mathATan2(ct1.y0, ct1.x0), !clockwise);
-            }
-        }
-        // the outer ring is a circular arc
-        else {
-            ctx.moveTo(cx + xrs, cy + yrs);
-            ctx.arc(cx, cy, radius, startAngle, endAngle, !clockwise);
-        }
-
-        // no inner ring, is a circular sector
-        if (!(innerRadius > e) || !hasArc) {
-            ctx.lineTo(cx + xire, cy + yire);
-        }
-        // the inner ring has corners
-        else if (limitedIcrMax > e) {
-            const crStart = mathMin(icrStart, limitedIcrMax);
-            const crEnd = mathMin(icrEnd, limitedIcrMax);
-            const ct0 = computeCornerTangents(xire, yire, xre, yre, innerRadius, -crEnd, clockwise);
-            const ct1 = computeCornerTangents(xrs, yrs, xirs, yirs, innerRadius, -crStart, clockwise);
-            ctx.lineTo(cx + ct0.cx + ct0.x0, cy + ct0.cy + ct0.y0);
-
-            // Have the corners merged?
-            if (limitedIcrMax < icrMax && crStart === crEnd) {
-                // eslint-disable-next-line max-len
-                ctx.arc(cx + ct0.cx, cy + ct0.cy, limitedIcrMax, mathATan2(ct0.y0, ct0.x0), mathATan2(ct1.y0, ct1.x0), !clockwise);
-            }
-            // draw the two corners and the ring
-            else {
-                // eslint-disable-next-line max-len
-                crEnd > 0 && ctx.arc(cx + ct0.cx, cy + ct0.cy, crEnd, mathATan2(ct0.y0, ct0.x0), mathATan2(ct0.y1, ct0.x1), !clockwise);
-                // eslint-disable-next-line max-len
-                ctx.arc(cx, cy, innerRadius, mathATan2(ct0.cy + ct0.y1, ct0.cx + ct0.x1), mathATan2(ct1.cy + ct1.y1, ct1.cx + ct1.x1), clockwise);
-                // eslint-disable-next-line max-len
-                crStart > 0 && ctx.arc(cx + ct1.cx, cy + ct1.cy, crStart, mathATan2(ct1.y1, ct1.x1), mathATan2(ct1.y0, ct1.x0), !clockwise);
-            }
-        }
-        // the inner ring is just a circular arc
-        else {
-            // FIXME: if no lineTo, svg renderer will perform an abnormal drawing behavior.
-            ctx.lineTo(cx + xire, cy + yire);
-
-            ctx.arc(cx, cy, innerRadius, endAngle, startAngle, clockwise);
-        }
-    }
-
-    ctx.closePath();
-}

+ 0 - 104
node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/graphic/helper/smoothBezier.ts

@@ -1,104 +0,0 @@
-/**
- * 贝塞尔平滑曲线
- */
-
-import {
-    min as v2Min,
-    max as v2Max,
-    scale as v2Scale,
-    distance as v2Distance,
-    add as v2Add,
-    clone as v2Clone,
-    sub as v2Sub,
-    VectorArray
-} from '../../core/vector';
-
-/**
- * 贝塞尔平滑曲线
- * @param points 线段顶点数组
- * @param smooth 平滑等级, 0-1
- * @param isLoop
- * @param constraint 将计算出来的控制点约束在一个包围盒内
- *                           比如 [[0, 0], [100, 100]], 这个包围盒会与
- *                           整个折线的包围盒做一个并集用来约束控制点。
- * @param 计算出来的控制点数组
- */
-export default function smoothBezier(
-    points: VectorArray[],
-    smooth?: number,
-    isLoop?: boolean,
-    constraint?: VectorArray[]
-) {
-    const cps = [];
-
-    const v: VectorArray = [];
-    const v1: VectorArray = [];
-    const v2: VectorArray = [];
-    let prevPoint;
-    let nextPoint;
-
-    let min;
-    let max;
-    if (constraint) {
-        min = [Infinity, Infinity];
-        max = [-Infinity, -Infinity];
-        for (let i = 0, len = points.length; i < len; i++) {
-            v2Min(min, min, points[i]);
-            v2Max(max, max, points[i]);
-        }
-        // 与指定的包围盒做并集
-        v2Min(min, min, constraint[0]);
-        v2Max(max, max, constraint[1]);
-    }
-
-    for (let i = 0, len = points.length; i < len; i++) {
-        const point = points[i];
-
-        if (isLoop) {
-            prevPoint = points[i ? i - 1 : len - 1];
-            nextPoint = points[(i + 1) % len];
-        }
-        else {
-            if (i === 0 || i === len - 1) {
-                cps.push(v2Clone(points[i]));
-                continue;
-            }
-            else {
-                prevPoint = points[i - 1];
-                nextPoint = points[i + 1];
-            }
-        }
-
-        v2Sub(v, nextPoint, prevPoint);
-
-        // use degree to scale the handle length
-        v2Scale(v, v, smooth);
-
-        let d0 = v2Distance(point, prevPoint);
-        let d1 = v2Distance(point, nextPoint);
-        const sum = d0 + d1;
-        if (sum !== 0) {
-            d0 /= sum;
-            d1 /= sum;
-        }
-
-        v2Scale(v1, v, -d0);
-        v2Scale(v2, v, d1);
-        const cp0 = v2Add([], point, v1);
-        const cp1 = v2Add([], point, v2);
-        if (constraint) {
-            v2Max(cp0, cp0, min);
-            v2Min(cp0, cp0, max);
-            v2Max(cp1, cp1, min);
-            v2Min(cp1, cp1, max);
-        }
-        cps.push(cp0);
-        cps.push(cp1);
-    }
-
-    if (isLoop) {
-        cps.push(cps.shift());
-    }
-
-    return cps;
-}

+ 0 - 58
node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/graphic/helper/smoothSpline.ts

@@ -1,58 +0,0 @@
-/**
- * Catmull-Rom spline 插值折线
- */
-
-import {distance as v2Distance, VectorArray} from '../../core/vector';
-
-function interpolate(
-    p0: number, p1: number, p2: number, p3: number, t: number, t2: number, t3: number
-) {
-    const v0 = (p2 - p0) * 0.5;
-    const v1 = (p3 - p1) * 0.5;
-    return (2 * (p1 - p2) + v0 + v1) * t3
-            + (-3 * (p1 - p2) - 2 * v0 - v1) * t2
-            + v0 * t + p1;
-}
-
-export default function smoothSpline(points: VectorArray[], isLoop?: boolean): VectorArray[] {
-    const len = points.length;
-    const ret = [];
-
-    let distance = 0;
-    for (let i = 1; i < len; i++) {
-        distance += v2Distance(points[i - 1], points[i]);
-    }
-
-    let segs = distance / 2;
-    segs = segs < len ? len : segs;
-    for (let i = 0; i < segs; i++) {
-        const pos = i / (segs - 1) * (isLoop ? len : len - 1);
-        const idx = Math.floor(pos);
-
-        const w = pos - idx;
-
-        let p0;
-        let p1 = points[idx % len];
-        let p2;
-        let p3;
-        if (!isLoop) {
-            p0 = points[idx === 0 ? idx : idx - 1];
-            p2 = points[idx > len - 2 ? len - 1 : idx + 1];
-            p3 = points[idx > len - 3 ? len - 1 : idx + 2];
-        }
-        else {
-            p0 = points[(idx - 1 + len) % len];
-            p2 = points[(idx + 1) % len];
-            p3 = points[(idx + 2) % len];
-        }
-
-        const w2 = w * w;
-        const w3 = w * w2;
-
-        ret.push([
-            interpolate(p0[0], p1[0], p2[0], p3[0], w, w2, w3),
-            interpolate(p0[1], p1[1], p2[1], p3[1], w, w2, w3)
-        ]);
-    }
-    return ret;
-}

+ 0 - 134
node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/graphic/helper/subPixelOptimize.ts

@@ -1,134 +0,0 @@
-import { PathStyleProps } from '../Path';
-
-/**
- * Sub-pixel optimize for canvas rendering, prevent from blur
- * when rendering a thin vertical/horizontal line.
- */
-
-const round = Math.round;
-
-type LineShape = {
-    x1: number
-    y1: number
-    x2: number
-    y2: number
-}
-
-type RectShape = {
-    x: number
-    y: number
-    width: number
-    height: number
-    r?: number | number[]
-}
-/**
- * Sub pixel optimize line for canvas
- *
- * @param outputShape The modification will be performed on `outputShape`.
- *                 `outputShape` and `inputShape` can be the same object.
- *                 `outputShape` object can be used repeatly, because all of
- *                 the `x1`, `x2`, `y1`, `y2` will be assigned in this method.
- */
-export function subPixelOptimizeLine(
-    outputShape: Partial<LineShape>,
-    inputShape: LineShape,
-    style: Pick<PathStyleProps, 'lineWidth'>   // DO not optimize when lineWidth is 0
-): LineShape {
-    if (!inputShape) {
-        return;
-    }
-
-    const x1 = inputShape.x1;
-    const x2 = inputShape.x2;
-    const y1 = inputShape.y1;
-    const y2 = inputShape.y2;
-
-    outputShape.x1 = x1;
-    outputShape.x2 = x2;
-    outputShape.y1 = y1;
-    outputShape.y2 = y2;
-
-    const lineWidth = style && style.lineWidth;
-    if (!lineWidth) {
-        return outputShape as LineShape;
-    }
-
-    if (round(x1 * 2) === round(x2 * 2)) {
-        outputShape.x1 = outputShape.x2 = subPixelOptimize(x1, lineWidth, true);
-    }
-    if (round(y1 * 2) === round(y2 * 2)) {
-        outputShape.y1 = outputShape.y2 = subPixelOptimize(y1, lineWidth, true);
-    }
-
-    return outputShape as LineShape;
-}
-
-/**
- * Sub pixel optimize rect for canvas
- *
- * @param outputShape The modification will be performed on `outputShape`.
- *                 `outputShape` and `inputShape` can be the same object.
- *                 `outputShape` object can be used repeatly, because all of
- *                 the `x`, `y`, `width`, `height` will be assigned in this method.
- */
-export function subPixelOptimizeRect(
-    outputShape: Partial<RectShape>,
-    inputShape: RectShape,
-    style: Pick<PathStyleProps, 'lineWidth'>   // DO not optimize when lineWidth is 0
-): RectShape {
-    if (!inputShape) {
-        return;
-    }
-
-    const originX = inputShape.x;
-    const originY = inputShape.y;
-    const originWidth = inputShape.width;
-    const originHeight = inputShape.height;
-
-    outputShape.x = originX;
-    outputShape.y = originY;
-    outputShape.width = originWidth;
-    outputShape.height = originHeight;
-
-    const lineWidth = style && style.lineWidth;
-    if (!lineWidth) {
-        return outputShape as RectShape;
-    }
-
-    outputShape.x = subPixelOptimize(originX, lineWidth, true);
-    outputShape.y = subPixelOptimize(originY, lineWidth, true);
-    outputShape.width = Math.max(
-        subPixelOptimize(originX + originWidth, lineWidth, false) - outputShape.x,
-        originWidth === 0 ? 0 : 1
-    );
-    outputShape.height = Math.max(
-        subPixelOptimize(originY + originHeight, lineWidth, false) - outputShape.y,
-        originHeight === 0 ? 0 : 1
-    );
-
-    return outputShape as RectShape;
-}
-
-/**
- * Sub pixel optimize for canvas
- *
- * @param position Coordinate, such as x, y
- * @param lineWidth If `null`/`undefined`/`0`, do not optimize.
- * @param positiveOrNegative Default false (negative).
- * @return Optimized position.
- */
-export function subPixelOptimize(
-    position: number,
-    lineWidth?: number,
-    positiveOrNegative?: boolean
-) {
-    if (!lineWidth) {
-        return position;
-    }
-    // Assure that (position + lineWidth / 2) is near integer edge,
-    // otherwise line will be fuzzy in canvas.
-    const doubledPosition = round(position * 2);
-    return (doubledPosition + round(lineWidth)) % 2 === 0
-        ? doubledPosition / 2
-        : (doubledPosition + (positiveOrNegative ? 1 : -1)) / 2;
-}

+ 0 - 58
node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/graphic/shape/Arc.ts

@@ -1,58 +0,0 @@
-/**
- * 圆弧
- */
-
-import Path, { PathProps } from '../Path';
-
-export class ArcShape {
-    cx = 0;
-    cy = 0;
-    r = 0;
-    startAngle = 0;
-    endAngle = Math.PI * 2
-    clockwise? = true
-}
-
-export interface ArcProps extends PathProps {
-    shape?: Partial<ArcShape>
-}
-
-class Arc extends Path<ArcProps> {
-
-    shape: ArcShape
-
-    constructor(opts?: ArcProps) {
-        super(opts);
-    }
-
-    getDefaultStyle() {
-        return {
-            stroke: '#000',
-            fill: null as string
-        };
-    }
-
-    getDefaultShape() {
-        return new ArcShape();
-    }
-
-    buildPath(ctx: CanvasRenderingContext2D, shape: ArcShape) {
-
-        const x = shape.cx;
-        const y = shape.cy;
-        const r = Math.max(shape.r, 0);
-        const startAngle = shape.startAngle;
-        const endAngle = shape.endAngle;
-        const clockwise = shape.clockwise;
-
-        const unitX = Math.cos(startAngle);
-        const unitY = Math.sin(startAngle);
-
-        ctx.moveTo(unitX * r + x, unitY * r + y);
-        ctx.arc(x, y, r, startAngle, endAngle, !clockwise);
-    }
-}
-
-Arc.prototype.type = 'arc';
-
-export default Arc;

+ 0 - 138
node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/graphic/shape/BezierCurve.ts

@@ -1,138 +0,0 @@
-/**
- * 贝塞尔曲线
- */
-
-import Path, { PathProps } from '../Path';
-import * as vec2 from '../../core/vector';
-import {
-    quadraticSubdivide,
-    cubicSubdivide,
-    quadraticAt,
-    cubicAt,
-    quadraticDerivativeAt,
-    cubicDerivativeAt
-} from '../../core/curve';
-
-const out: number[] = [];
-
-export class BezierCurveShape {
-    x1 = 0
-    y1 = 0
-    x2 = 0
-    y2 = 0
-    cpx1 = 0
-    cpy1 = 0
-    cpx2?: number
-    cpy2?: number
-    // Curve show percent, for animating
-    percent = 1
-}
-
-function someVectorAt(shape: BezierCurveShape, t: number, isTangent: boolean) {
-    const cpx2 = shape.cpx2;
-    const cpy2 = shape.cpy2;
-    if (cpx2 != null || cpy2 != null) {
-        return [
-            (isTangent ? cubicDerivativeAt : cubicAt)(shape.x1, shape.cpx1, shape.cpx2, shape.x2, t),
-            (isTangent ? cubicDerivativeAt : cubicAt)(shape.y1, shape.cpy1, shape.cpy2, shape.y2, t)
-        ];
-    }
-    else {
-        return [
-            (isTangent ? quadraticDerivativeAt : quadraticAt)(shape.x1, shape.cpx1, shape.x2, t),
-            (isTangent ? quadraticDerivativeAt : quadraticAt)(shape.y1, shape.cpy1, shape.y2, t)
-        ];
-    }
-}
-
-export interface BezierCurveProps extends PathProps {
-    shape?: Partial<BezierCurveShape>
-}
-class BezierCurve extends Path<BezierCurveProps> {
-
-    shape: BezierCurveShape
-
-    constructor(opts?: BezierCurveProps) {
-        super(opts);
-    }
-
-    getDefaultStyle() {
-        return {
-            stroke: '#000',
-            fill: null as string
-        };
-    }
-
-    getDefaultShape() {
-        return new BezierCurveShape();
-    }
-
-    buildPath(ctx: CanvasRenderingContext2D, shape: BezierCurveShape) {
-        let x1 = shape.x1;
-        let y1 = shape.y1;
-        let x2 = shape.x2;
-        let y2 = shape.y2;
-        let cpx1 = shape.cpx1;
-        let cpy1 = shape.cpy1;
-        let cpx2 = shape.cpx2;
-        let cpy2 = shape.cpy2;
-        let percent = shape.percent;
-        if (percent === 0) {
-            return;
-        }
-
-        ctx.moveTo(x1, y1);
-
-        if (cpx2 == null || cpy2 == null) {
-            if (percent < 1) {
-                quadraticSubdivide(x1, cpx1, x2, percent, out);
-                cpx1 = out[1];
-                x2 = out[2];
-                quadraticSubdivide(y1, cpy1, y2, percent, out);
-                cpy1 = out[1];
-                y2 = out[2];
-            }
-
-            ctx.quadraticCurveTo(
-                cpx1, cpy1,
-                x2, y2
-            );
-        }
-        else {
-            if (percent < 1) {
-                cubicSubdivide(x1, cpx1, cpx2, x2, percent, out);
-                cpx1 = out[1];
-                cpx2 = out[2];
-                x2 = out[3];
-                cubicSubdivide(y1, cpy1, cpy2, y2, percent, out);
-                cpy1 = out[1];
-                cpy2 = out[2];
-                y2 = out[3];
-            }
-            ctx.bezierCurveTo(
-                cpx1, cpy1,
-                cpx2, cpy2,
-                x2, y2
-            );
-        }
-    }
-
-    /**
-     * Get point at percent
-     */
-    pointAt(t: number) {
-        return someVectorAt(this.shape, t, false);
-    }
-
-    /**
-     * Get tangent at percent
-     */
-    tangentAt(t: number) {
-        const p = someVectorAt(this.shape, t, true);
-        return vec2.normalize(p, p);
-    }
-};
-
-BezierCurve.prototype.type = 'bezier-curve';
-
-export default BezierCurve;

+ 0 - 38
node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/graphic/shape/Circle.ts

@@ -1,38 +0,0 @@
-/**
- * 圆形
- */
-
-import Path, { PathProps } from '../Path';
-
-export class CircleShape {
-    cx = 0
-    cy = 0
-    r = 0
-}
-
-export interface CircleProps extends PathProps {
-    shape?: Partial<CircleShape>
-}
-class Circle extends Path<CircleProps> {
-
-    shape: CircleShape
-
-    constructor(opts?: CircleProps) {
-        super(opts);
-    }
-
-    getDefaultShape() {
-        return new CircleShape();
-    }
-
-    buildPath(ctx: CanvasRenderingContext2D, shape: CircleShape) {
-        // Use moveTo to start a new sub path.
-        // Or it will be connected to other subpaths when in CompoundPath
-        ctx.moveTo(shape.cx + shape.r, shape.cy);
-        ctx.arc(shape.cx, shape.cy, shape.r, 0, Math.PI * 2);
-    }
-};
-
-Circle.prototype.type = 'circle';
-
-export default Circle;

+ 0 - 58
node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/graphic/shape/Droplet.ts

@@ -1,58 +0,0 @@
-/**
- * 水滴形状
- */
-
-import Path, { PathProps } from '../Path';
-
-export class DropletShape {
-    cx = 0
-    cy = 0
-    width = 0
-    height = 0
-}
-
-export interface DropletProps extends PathProps {
-    shape?: Partial<DropletShape>
-}
-class Droplet extends Path<DropletProps> {
-
-    shape: DropletShape
-
-    constructor(opts?: DropletProps) {
-        super(opts);
-    }
-
-    getDefaultShape() {
-        return new DropletShape();
-    }
-
-    buildPath(ctx: CanvasRenderingContext2D, shape: DropletShape) {
-        const x = shape.cx;
-        const y = shape.cy;
-        const a = shape.width;
-        const b = shape.height;
-
-        ctx.moveTo(x, y + a);
-        ctx.bezierCurveTo(
-            x + a,
-            y + a,
-            x + a * 3 / 2,
-            y - a / 3,
-            x,
-            y - b
-        );
-        ctx.bezierCurveTo(
-            x - a * 3 / 2,
-            y - a / 3,
-            x - a,
-            y + a,
-            x,
-            y + a
-        );
-        ctx.closePath();
-    }
-}
-
-Droplet.prototype.type = 'droplet';
-
-export default Droplet;

+ 0 - 49
node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/graphic/shape/Ellipse.ts

@@ -1,49 +0,0 @@
-/**
- * 椭圆形状
- */
-
-import Path, { PathProps } from '../Path';
-
-export class EllipseShape {
-    cx = 0
-    cy = 0
-    rx = 0
-    ry = 0
-}
-
-export interface EllipseProps extends PathProps {
-    shape?: Partial<EllipseShape>
-}
-class Ellipse extends Path<EllipseProps> {
-
-    shape: EllipseShape
-
-    constructor(opts?: EllipseProps) {
-        super(opts);
-    }
-
-    getDefaultShape() {
-        return new EllipseShape();
-    }
-
-    buildPath(ctx: CanvasRenderingContext2D, shape: EllipseShape) {
-        const k = 0.5522848;
-        const x = shape.cx;
-        const y = shape.cy;
-        const a = shape.rx;
-        const b = shape.ry;
-        const ox = a * k; // 水平控制点偏移量
-        const oy = b * k; // 垂直控制点偏移量
-        // 从椭圆的左端点开始顺时针绘制四条三次贝塞尔曲线
-        ctx.moveTo(x - a, y);
-        ctx.bezierCurveTo(x - a, y - oy, x - ox, y - b, x, y - b);
-        ctx.bezierCurveTo(x + ox, y - b, x + a, y - oy, x + a, y);
-        ctx.bezierCurveTo(x + a, y + oy, x + ox, y + b, x, y + b);
-        ctx.bezierCurveTo(x - ox, y + b, x - a, y + oy, x - a, y);
-        ctx.closePath();
-    }
-}
-
-Ellipse.prototype.type = 'ellipse';
-
-export default Ellipse;

+ 0 - 51
node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/graphic/shape/Heart.ts

@@ -1,51 +0,0 @@
-/**
- * 心形
- */
-
-import Path, { PathProps } from '../Path';
-
-export class HeartShape {
-    cx = 0
-    cy = 0
-    width = 0
-    height = 0
-}
-
-export interface HeartProps extends PathProps {
-    shape?: Partial<HeartShape>
-}
-class Heart extends Path<HeartProps> {
-
-    shape: HeartShape
-
-    constructor(opts?: HeartProps) {
-        super(opts);
-    }
-
-    getDefaultShape() {
-        return new HeartShape();
-    }
-
-    buildPath(ctx: CanvasRenderingContext2D, shape: HeartShape) {
-        const x = shape.cx;
-        const y = shape.cy;
-        const a = shape.width;
-        const b = shape.height;
-        ctx.moveTo(x, y);
-        ctx.bezierCurveTo(
-            x + a / 2, y - b * 2 / 3,
-            x + a * 2, y + b / 3,
-            x, y + b
-        );
-        ctx.bezierCurveTo(
-            x - a * 2, y + b / 3,
-            x - a / 2, y - b * 2 / 3,
-            x, y
-        );
-    }
-}
-
-
-Heart.prototype.type = 'heart';
-
-export default Heart;

+ 0 - 60
node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/graphic/shape/Isogon.ts

@@ -1,60 +0,0 @@
-/**
- * 正多边形
- */
-
-import Path, { PathProps } from '../Path';
-
-const PI = Math.PI;
-const sin = Math.sin;
-const cos = Math.cos;
-
-export class IsogonShape {
-    x = 0
-    y = 0
-    r = 0
-    n = 0
-}
-
-export interface IsogonProps extends PathProps {
-    shape?: Partial<IsogonShape>
-}
-class Isogon extends Path<IsogonProps> {
-
-    shape: IsogonShape
-
-    constructor(opts?: IsogonProps) {
-        super(opts);
-    }
-
-    getDefaultShape() {
-        return new IsogonShape();
-    }
-
-    buildPath(ctx: CanvasRenderingContext2D, shape: IsogonShape) {
-        const n = shape.n;
-        if (!n || n < 2) {
-            return;
-        }
-
-        const x = shape.x;
-        const y = shape.y;
-        const r = shape.r;
-
-        const dStep = 2 * PI / n;
-        let deg = -PI / 2;
-
-        ctx.moveTo(x + r * cos(deg), y + r * sin(deg));
-        for (let i = 0, end = n - 1; i < end; i++) {
-            deg += dStep;
-            ctx.lineTo(x + r * cos(deg), y + r * sin(deg));
-        }
-
-        ctx.closePath();
-
-        return;
-    }
-}
-
-Isogon.prototype.type = 'isogon';
-
-export default Isogon;

+ 0 - 96
node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/graphic/shape/Line.ts

@@ -1,96 +0,0 @@
-/**
- * 直线
- * @module zrender/graphic/shape/Line
- */
-
-import Path, { PathProps } from '../Path';
-import {subPixelOptimizeLine} from '../helper/subPixelOptimize';
-import { VectorArray } from '../../core/vector';
-
-// Avoid create repeatly.
-const subPixelOptimizeOutputShape = {};
-
-export class LineShape {
-    // Start point
-    x1 = 0
-    y1 = 0
-    // End point
-    x2 = 0
-    y2 = 0
-
-    percent = 1
-}
-
-export interface LineProps extends PathProps {
-    shape?: Partial<LineShape>
-}
-class Line extends Path<LineProps> {
-
-    shape: LineShape
-
-    constructor(opts?: LineProps) {
-        super(opts);
-    }
-
-    getDefaultStyle() {
-        return {
-            stroke: '#000',
-            fill: null as string
-        };
-    }
-
-    getDefaultShape() {
-        return new LineShape();
-    }
-
-    buildPath(ctx: CanvasRenderingContext2D, shape: LineShape) {
-        let x1;
-        let y1;
-        let x2;
-        let y2;
-
-        if (this.subPixelOptimize) {
-            const optimizedShape = subPixelOptimizeLine(
-                subPixelOptimizeOutputShape, shape, this.style
-            );
-            x1 = optimizedShape.x1;
-            y1 = optimizedShape.y1;
-            x2 = optimizedShape.x2;
-            y2 = optimizedShape.y2;
-        }
-        else {
-            x1 = shape.x1;
-            y1 = shape.y1;
-            x2 = shape.x2;
-            y2 = shape.y2;
-        }
-
-        const percent = shape.percent;
-
-        if (percent === 0) {
-            return;
-        }
-
-        ctx.moveTo(x1, y1);
-
-        if (percent < 1) {
-            x2 = x1 * (1 - percent) + x2 * percent;
-            y2 = y1 * (1 - percent) + y2 * percent;
-        }
-        ctx.lineTo(x2, y2);
-    }
-
-    /**
-     * Get point at percent
-     */
-    pointAt(p: number): VectorArray {
-        const shape = this.shape;
-        return [
-            shape.x1 * (1 - p) + shape.x2 * p,
-            shape.y1 * (1 - p) + shape.y2 * p
-        ];
-    }
-}
-
-Line.prototype.type = 'line';
-export default Line;

+ 0 - 38
node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/graphic/shape/Polygon.ts

@@ -1,38 +0,0 @@
-/**
- * 多边形
- * @module zrender/shape/Polygon
- */
-
-import Path, { PathProps } from '../Path';
-import * as polyHelper from '../helper/poly';
-import { VectorArray } from '../../core/vector';
-
-export class PolygonShape {
-    points: VectorArray[] = null
-    smooth?: number = 0
-    smoothConstraint?: VectorArray[] = null
-}
-
-export interface PolygonProps extends PathProps {
-    shape?: Partial<PolygonShape>
-}
-class Polygon extends Path<PolygonProps> {
-
-    shape: PolygonShape
-
-    constructor(opts?: PolygonProps) {
-        super(opts);
-    }
-
-    getDefaultShape() {
-        return new PolygonShape();
-    }
-
-    buildPath(ctx: CanvasRenderingContext2D, shape: PolygonShape) {
-        polyHelper.buildPath(ctx, shape, true);
-    }
-};
-
-Polygon.prototype.type = 'polygon';
-
-export default Polygon;

+ 0 - 45
node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/graphic/shape/Polyline.ts

@@ -1,45 +0,0 @@
-/**
- * @module zrender/graphic/shape/Polyline
- */
-
-import Path, { PathProps } from '../Path';
-import * as polyHelper from '../helper/poly';
-import { VectorArray } from '../../core/vector';
-
-export class PolylineShape {
-    points: VectorArray[] = null
-    // Percent of displayed polyline. For animating purpose
-    percent?: number = 1
-    smooth?: number = 0
-    smoothConstraint?: VectorArray[] = null
-}
-
-export interface PolylineProps extends PathProps {
-    shape?: Partial<PolylineShape>
-}
-class Polyline extends Path<PolylineProps> {
-
-    shape: PolylineShape
-
-    constructor(opts?: PolylineProps) {
-        super(opts);
-    }
-
-    getDefaultStyle() {
-        return {
-            stroke: '#000',
-            fill: null as string
-        };
-    }
-
-    getDefaultShape() {
-        return new PolylineShape();
-    }
-
-    buildPath(ctx: CanvasRenderingContext2D, shape: PolylineShape) {
-        polyHelper.buildPath(ctx, shape, false);
-    }
-}
-
-Polyline.prototype.type = 'polyline';
-export default Polyline;

+ 0 - 79
node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/graphic/shape/Rect.ts

@@ -1,79 +0,0 @@
-/**
- * 矩形
- * @module zrender/graphic/shape/Rect
- */
-
-import Path, { PathProps } from '../Path';
-import * as roundRectHelper from '../helper/roundRect';
-import {subPixelOptimizeRect} from '../helper/subPixelOptimize';
-
-export class RectShape {
-    // 左上、右上、右下、左下角的半径依次为r1、r2、r3、r4
-    // r缩写为1         相当于 [1, 1, 1, 1]
-    // r缩写为[1]       相当于 [1, 1, 1, 1]
-    // r缩写为[1, 2]    相当于 [1, 2, 1, 2]
-    // r缩写为[1, 2, 3] 相当于 [1, 2, 3, 2]
-    r?: number | number[]
-
-    x = 0
-    y = 0
-    width = 0
-    height = 0
-}
-
-export interface RectProps extends PathProps {
-    shape?: Partial<RectShape>
-}
-// Avoid create repeatly.
-const subPixelOptimizeOutputShape = {};
-
-class Rect extends Path<RectProps> {
-
-    shape: RectShape
-
-    constructor(opts?: RectProps) {
-        super(opts);
-    }
-
-    getDefaultShape() {
-        return new RectShape();
-    }
-
-    buildPath(ctx: CanvasRenderingContext2D, shape: RectShape) {
-        let x: number;
-        let y: number;
-        let width: number;
-        let height: number;
-
-        if (this.subPixelOptimize) {
-            const optimizedShape = subPixelOptimizeRect(subPixelOptimizeOutputShape, shape, this.style);
-            x = optimizedShape.x;
-            y = optimizedShape.y;
-            width = optimizedShape.width;
-            height = optimizedShape.height;
-            optimizedShape.r = shape.r;
-            shape = optimizedShape;
-        }
-        else {
-            x = shape.x;
-            y = shape.y;
-            width = shape.width;
-            height = shape.height;
-        }
-
-        if (!shape.r) {
-            ctx.rect(x, y, width, height);
-        }
-        else {
-            roundRectHelper.buildPath(ctx, shape);
-        }
-    }
-
-    isZeroArea() {
-        return !this.shape.width || !this.shape.height;
-    }
-}
-
-Rect.prototype.type = 'rect';
-
-export default Rect;

+ 0 - 41
node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/graphic/shape/Ring.ts

@@ -1,41 +0,0 @@
-/**
- * 圆环
- */
-
-import Path, { PathProps } from '../Path';
-
-export class RingShape {
-    cx = 0
-    cy = 0
-    r = 0
-    r0 = 0
-}
-
-export interface RingProps extends PathProps {
-    shape?: Partial<RingShape>
-}
-class Ring extends Path<RingProps> {
-
-    shape: RingShape
-
-    constructor(opts?: RingProps) {
-        super(opts);
-    }
-
-    getDefaultShape() {
-        return new RingShape();
-    }
-
-    buildPath(ctx: CanvasRenderingContext2D, shape: RingShape) {
-        const x = shape.cx;
-        const y = shape.cy;
-        const PI2 = Math.PI * 2;
-        ctx.moveTo(x + shape.r, y);
-        ctx.arc(x, y, shape.r, 0, PI2, false);
-        ctx.moveTo(x + shape.r0, y);
-        ctx.arc(x, y, shape.r0, 0, PI2, true);
-    }
-}
-
-Ring.prototype.type = 'ring';
-export default Ring;

+ 0 - 76
node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/graphic/shape/Rose.ts

@@ -1,76 +0,0 @@
-/**
- * 玫瑰线
- * @module zrender/graphic/shape/Rose
- */
-
-import Path, { PathProps } from '../Path';
-
-const sin = Math.sin;
-const cos = Math.cos;
-const radian = Math.PI / 180;
-
-export class RoseShape {
-    cx = 0
-    cy = 0
-    r: number[] = []
-    k = 0
-    n = 1
-}
-
-export interface RoseProps extends PathProps {
-    shape?: Partial<RoseShape>
-}
-class Rose extends Path<RoseProps> {
-
-    shape: RoseShape
-
-    constructor(opts?: RoseProps) {
-        super(opts);
-    }
-
-    getDefaultStyle() {
-        return {
-            stroke: '#000',
-            fill: null as string
-        };
-    }
-
-    getDefaultShape() {
-        return new RoseShape();
-    }
-
-
-    buildPath(ctx: CanvasRenderingContext2D, shape: RoseShape) {
-        const R = shape.r;
-        const k = shape.k;
-        const n = shape.n;
-        const x0 = shape.cx;
-        const y0 = shape.cy;
-        let x;
-        let y;
-        let r;
-
-
-        ctx.moveTo(x0, y0);
-
-        for (let i = 0, len = R.length; i < len; i++) {
-            r = R[i];
-
-            for (let j = 0; j <= 360 * n; j++) {
-                x = r
-                        * sin(k / n * j % 360 * radian)
-                        * cos(j * radian)
-                        + x0;
-                y = r
-                        * sin(k / n * j % 360 * radian)
-                        * sin(j * radian)
-                        + y0;
-                ctx.lineTo(x, y);
-            }
-        }
-    }
-}
-
-Rose.prototype.type = 'rose';
-
-export default Rose;

+ 0 - 56
node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/graphic/shape/Sector.ts

@@ -1,56 +0,0 @@
-import Path, { PathProps } from '../Path';
-import * as roundSectorHelper from '../helper/roundSector';
-
-export class SectorShape {
-    cx = 0
-    cy = 0
-    r0 = 0
-    r = 0
-    startAngle = 0
-    endAngle = Math.PI * 2
-    clockwise = true
-    /**
-     * Corner radius of sector
-     *
-     * clockwise, from inside to outside, four corners are
-     * inner start -> inner end
-     * outer start -> outer end
-     *
-     * 5               => [5, 5, 5, 5]
-     * [5]             => [5, 5, 0, 0]
-     * [5, 10]         => [5, 5, 10, 10]
-     * [5, 10, 15]     => [5, 10, 15, 15]
-     * [5, 10, 15, 20] => [5, 10, 15, 20]
-     */
-    cornerRadius: number | number[] = 0
-}
-
-export interface SectorProps extends PathProps {
-    shape?: Partial<SectorShape>
-}
-
-class Sector extends Path<SectorProps> {
-
-    shape: SectorShape
-
-    constructor(opts?: SectorProps) {
-        super(opts);
-    }
-
-    getDefaultShape() {
-        return new SectorShape();
-    }
-
-    buildPath(ctx: CanvasRenderingContext2D, shape: SectorShape) {
-        roundSectorHelper.buildPath(ctx, shape);
-    }
-
-    isZeroArea() {
-        return this.shape.startAngle === this.shape.endAngle
-            || this.shape.r === this.shape.r0;
-    }
-}
-
-Sector.prototype.type = 'sector';
-
-export default Sector;

+ 0 - 76
node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/graphic/shape/Star.ts

@@ -1,76 +0,0 @@
-/**
- * n角星(n>3)
- * @module zrender/graphic/shape/Star
- */
-
-import Path, { PathProps } from '../Path';
-
-const PI = Math.PI;
-const cos = Math.cos;
-const sin = Math.sin;
-
-export class StarShape {
-    cx = 0
-    cy = 0
-    n = 3
-    r0: number
-    r = 0
-}
-
-export interface StarProps extends PathProps {
-    shape?: Partial<StarShape>
-}
-class Star extends Path<StarProps> {
-
-    shape: StarShape
-
-    constructor(opts?: StarProps) {
-        super(opts);
-    }
-
-    getDefaultShape() {
-        return new StarShape();
-    }
-
-    buildPath(ctx: CanvasRenderingContext2D, shape: StarShape) {
-
-        const n = shape.n;
-        if (!n || n < 2) {
-            return;
-        }
-
-        const x = shape.cx;
-        const y = shape.cy;
-        const r = shape.r;
-        let r0 = shape.r0;
-
-        // 如果未指定内部顶点外接圆半径,则自动计算
-        if (r0 == null) {
-            r0 = n > 4
-                // 相隔的外部顶点的连线的交点,
-                // 被取为内部交点,以此计算r0
-                ? r * cos(2 * PI / n) / cos(PI / n)
-                // 二三四角星的特殊处理
-                : r / 3;
-        }
-
-        const dStep = PI / n;
-        let deg = -PI / 2;
-        const xStart = x + r * cos(deg);
-        const yStart = y + r * sin(deg);
-        deg += dStep;
-
-        // 记录边界点,用于判断inside
-        ctx.moveTo(xStart, yStart);
-        for (let i = 0, end = n * 2 - 1, ri; i < end; i++) {
-            ri = i % 2 === 0 ? r0 : r;
-            ctx.lineTo(x + ri * cos(deg), y + ri * sin(deg));
-            deg += dStep;
-        }
-
-        ctx.closePath();
-    }
-}
-
-Star.prototype.type = 'star';
-export default Star;

+ 0 - 92
node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/graphic/shape/Trochoid.ts

@@ -1,92 +0,0 @@
-/**
- * 内外旋轮曲线
- * @module zrender/graphic/shape/Trochold
- */
-
-import Path, { PathProps } from '../Path';
-
-const cos = Math.cos;
-const sin = Math.sin;
-
-export class TrochoidShape {
-    cx = 0
-    cy = 0
-    r = 0
-    r0 = 0
-    d = 0
-    location = 'out'
-}
-
-export interface TrochoidProps extends PathProps {
-    shape?: Partial<TrochoidShape>
-}
-class Trochoid extends Path<TrochoidProps> {
-
-    shape: TrochoidShape
-
-    constructor(opts?: TrochoidProps) {
-        super(opts);
-    }
-
-    getDefaultStyle() {
-        return {
-            stroke: '#000',
-            fill: null as string
-        };
-    }
-
-    getDefaultShape() {
-        return new TrochoidShape();
-    }
-
-    buildPath(ctx: CanvasRenderingContext2D, shape: TrochoidShape) {
-        const R = shape.r;
-        const r = shape.r0;
-        const d = shape.d;
-        const offsetX = shape.cx;
-        const offsetY = shape.cy;
-        const delta = shape.location === 'out' ? 1 : -1;
-        let x1;
-        let y1;
-        let x2;
-        let y2;
-
-        if (shape.location && R <= r) {
-            return;
-        }
-
-        let num = 0;
-        let i = 1;
-        let theta;
-
-        x1 = (R + delta * r) * cos(0)
-            - delta * d * cos(0) + offsetX;
-        y1 = (R + delta * r) * sin(0)
-            - d * sin(0) + offsetY;
-
-        ctx.moveTo(x1, y1);
-
-        // 计算结束时的i
-        do {
-            num++;
-        }
-        while ((r * num) % (R + delta * r) !== 0);
-
-        do {
-            theta = Math.PI / 180 * i;
-            x2 = (R + delta * r) * cos(theta)
-                    - delta * d * cos((R / r + delta) * theta)
-                    + offsetX;
-            y2 = (R + delta * r) * sin(theta)
-                    - d * sin((R / r + delta) * theta)
-                    + offsetY;
-            ctx.lineTo(x2, y2);
-            i++;
-        }
-        while (i <= (r * num) / (R + delta * r) * 360);
-
-    }
-}
-
-Trochoid.prototype.type = 'trochoid';
-export default Trochoid;

+ 0 - 118
node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/mixin/Draggable.ts

@@ -1,118 +0,0 @@
-import Handler from '../Handler';
-import Element, { ElementEvent } from '../Element';
-import Displayable from '../graphic/Displayable';
-
-class Param {
-
-    target: Element
-    topTarget: Element
-
-    constructor(target: Element, e?: ElementEvent) {
-        this.target = target;
-        this.topTarget = e && e.topTarget;
-    }
-}
-
-// FIXME Draggable on element which has parent rotation or scale
-export default class Draggable {
-
-    handler: Handler
-
-    _draggingTarget: Element
-    _dropTarget: Element
-
-    _x: number
-    _y: number
-
-    constructor(handler: Handler) {
-        this.handler = handler;
-
-        handler.on('mousedown', this._dragStart, this);
-        handler.on('mousemove', this._drag, this);
-        handler.on('mouseup', this._dragEnd, this);
-        // `mosuemove` and `mouseup` can be continue to fire when dragging.
-        // See [DRAG_OUTSIDE] in `Handler.js`. So we do not need to trigger
-        // `_dragEnd` when globalout. That would brings better user experience.
-        // this.on('globalout', this._dragEnd, this);
-
-        // this._dropTarget = null;
-        // this._draggingTarget = null;
-
-        // this._x = 0;
-        // this._y = 0;
-    }
-
-    _dragStart(e: ElementEvent) {
-        let draggingTarget = e.target;
-        // Find if there is draggable in the ancestor
-        while (draggingTarget && !draggingTarget.draggable) {
-            draggingTarget = draggingTarget.parent || draggingTarget.__hostTarget;
-        }
-        if (draggingTarget) {
-            this._draggingTarget = draggingTarget;
-            draggingTarget.dragging = true;
-            this._x = e.offsetX;
-            this._y = e.offsetY;
-
-            this.handler.dispatchToElement(
-                new Param(draggingTarget, e), 'dragstart', e.event
-            );
-        }
-    }
-
-    _drag(e: ElementEvent) {
-        const draggingTarget = this._draggingTarget;
-        if (draggingTarget) {
-
-            const x = e.offsetX;
-            const y = e.offsetY;
-
-            const dx = x - this._x;
-            const dy = y - this._y;
-            this._x = x;
-            this._y = y;
-
-            draggingTarget.drift(dx, dy, e);
-            this.handler.dispatchToElement(
-                new Param(draggingTarget, e), 'drag', e.event
-            );
-
-            const dropTarget = this.handler.findHover(
-                x, y, draggingTarget as Displayable // PENDING
-            ).target;
-            const lastDropTarget = this._dropTarget;
-            this._dropTarget = dropTarget;
-
-            if (draggingTarget !== dropTarget) {
-                if (lastDropTarget && dropTarget !== lastDropTarget) {
-                    this.handler.dispatchToElement(
-                        new Param(lastDropTarget, e), 'dragleave', e.event
-                    );
-                }
-                if (dropTarget && dropTarget !== lastDropTarget) {
-                    this.handler.dispatchToElement(
-                        new Param(dropTarget, e), 'dragenter', e.event
-                    );
-                }
-            }
-        }
-    }
-
-    _dragEnd(e: ElementEvent) {
-        const draggingTarget = this._draggingTarget;
-
-        if (draggingTarget) {
-            draggingTarget.dragging = false;
-        }
-
-        this.handler.dispatchToElement(new Param(draggingTarget, e), 'dragend', e.event);
-
-        if (this._dropTarget) {
-            this.handler.dispatchToElement(new Param(this._dropTarget, e), 'drop', e.event);
-        }
-
-        this._draggingTarget = null;
-        this._dropTarget = null;
-    }
-
-}

+ 0 - 421
node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/svg-legacy/Painter.ts

@@ -1,421 +0,0 @@
-/**
- * SVG Painter
- */
-
-import {createElement, SVGNS, XLINKNS, XMLNS} from '../svg/core';
-import { normalizeColor } from '../svg/helper';
-import * as util from '../core/util';
-import Path from '../graphic/Path';
-import ZRImage from '../graphic/Image';
-import TSpan from '../graphic/TSpan';
-import arrayDiff from '../core/arrayDiff';
-import GradientManager from './helper/GradientManager';
-import PatternManager from './helper/PatternManager';
-import ClippathManager, {hasClipPath} from './helper/ClippathManager';
-import ShadowManager from './helper/ShadowManager';
-import {
-    path as svgPath,
-    image as svgImage,
-    text as svgText,
-    SVGProxy
-} from './graphic';
-import Displayable from '../graphic/Displayable';
-import Storage from '../Storage';
-import { PainterBase } from '../PainterBase';
-import { getSize } from '../canvas/helper';
-
-function getSvgProxy(el: Displayable) {
-    if (el instanceof Path) {
-        return svgPath;
-    }
-    else if (el instanceof ZRImage) {
-        return svgImage;
-    }
-    else if (el instanceof TSpan) {
-        return svgText;
-    }
-    else {
-        return svgPath;
-    }
-}
-
-function checkParentAvailable(parent: SVGElement, child: SVGElement) {
-    return child && parent && child.parentNode !== parent;
-}
-
-function insertAfter(parent: SVGElement, child: SVGElement, prevSibling: SVGElement) {
-    if (checkParentAvailable(parent, child) && prevSibling) {
-        const nextSibling = prevSibling.nextSibling;
-        nextSibling ? parent.insertBefore(child, nextSibling)
-            : parent.appendChild(child);
-    }
-}
-
-function prepend(parent: SVGElement, child: SVGElement) {
-    if (checkParentAvailable(parent, child)) {
-        const firstChild = parent.firstChild;
-        firstChild ? parent.insertBefore(child, firstChild)
-            : parent.appendChild(child);
-    }
-}
-
-function remove(parent: SVGElement, child: SVGElement) {
-    if (child && parent && child.parentNode === parent) {
-        parent.removeChild(child);
-    }
-}
-function removeFromMyParent(child: SVGElement) {
-    if (child && child.parentNode) {
-        child.parentNode.removeChild(child);
-    }
-}
-
-function getSvgElement(displayable: Displayable) {
-    return displayable.__svgEl;
-}
-
-interface SVGPainterOption {
-    width?: number | string
-    height?: number | string
-}
-
-class SVGPainter implements PainterBase {
-
-    type = 'svg'
-
-    root: HTMLElement
-
-    storage: Storage
-
-    private _opts: SVGPainterOption
-
-    private _svgDom: SVGElement
-    private _svgRoot: SVGGElement
-    private _backgroundRoot: SVGGElement
-    private _backgroundNode: SVGRectElement
-
-    private _gradientManager: GradientManager
-    private _patternManager: PatternManager
-    private _clipPathManager: ClippathManager
-    private _shadowManager: ShadowManager
-
-    private _viewport: HTMLDivElement
-    private _visibleList: Displayable[]
-
-    private _width: number
-    private _height: number
-
-    constructor(root: HTMLElement, storage: Storage, opts: SVGPainterOption, zrId: number) {
-        this.root = root;
-        this.storage = storage;
-        this._opts = opts = util.extend({}, opts || {});
-
-        const svgDom = createElement('svg');
-        svgDom.setAttributeNS(XMLNS, 'xmlns', SVGNS);
-        svgDom.setAttributeNS(XMLNS, 'xmlns:xlink', XLINKNS);
-
-        svgDom.setAttribute('version', '1.1');
-        svgDom.setAttribute('baseProfile', 'full');
-        svgDom.style.cssText = 'user-select:none;position:absolute;left:0;top:0;';
-
-        const bgRoot = createElement('g') as SVGGElement;
-        svgDom.appendChild(bgRoot);
-        const svgRoot = createElement('g') as SVGGElement;
-        svgDom.appendChild(svgRoot);
-
-        this._gradientManager = new GradientManager(zrId, svgRoot);
-        this._patternManager = new PatternManager(zrId, svgRoot);
-        this._clipPathManager = new ClippathManager(zrId, svgRoot);
-        this._shadowManager = new ShadowManager(zrId, svgRoot);
-
-        const viewport = document.createElement('div');
-        viewport.style.cssText = 'overflow:hidden;position:relative';
-
-        this._svgDom = svgDom;
-        this._svgRoot = svgRoot;
-        this._backgroundRoot = bgRoot;
-        this._viewport = viewport;
-
-        root.appendChild(viewport);
-        viewport.appendChild(svgDom);
-
-        this.resize(opts.width, opts.height);
-
-        this._visibleList = [];
-    }
-
-    getType() {
-        return 'svg';
-    }
-
-    getViewportRoot() {
-        return this._viewport;
-    }
-
-    getSvgDom() {
-        return this._svgDom;
-    }
-
-    getSvgRoot() {
-        return this._svgRoot;
-    }
-
-    getViewportRootOffset() {
-        const viewportRoot = this.getViewportRoot();
-        if (viewportRoot) {
-            return {
-                offsetLeft: viewportRoot.offsetLeft || 0,
-                offsetTop: viewportRoot.offsetTop || 0
-            };
-        }
-    }
-
-    refresh() {
-        const list = this.storage.getDisplayList(true);
-        this._paintList(list);
-    }
-
-    setBackgroundColor(backgroundColor: string) {
-        // TODO gradient
-        // Insert a bg rect instead of setting background to viewport.
-        // Otherwise, the exported SVG don't have background.
-        if (this._backgroundRoot && this._backgroundNode) {
-            this._backgroundRoot.removeChild(this._backgroundNode);
-        }
-
-        const bgNode = createElement('rect') as SVGRectElement;
-        bgNode.setAttribute('width', this.getWidth() as any);
-        bgNode.setAttribute('height', this.getHeight() as any);
-        bgNode.setAttribute('x', 0 as any);
-        bgNode.setAttribute('y', 0 as any);
-        bgNode.setAttribute('id', 0 as any);
-        const { color, opacity } = normalizeColor(backgroundColor);
-        bgNode.setAttribute('fill', color);
-        bgNode.setAttribute('fill-opacity', opacity as any);
-
-        this._backgroundRoot.appendChild(bgNode);
-        this._backgroundNode = bgNode;
-    }
-
-    createSVGElement(tag: string): SVGElement {
-        return createElement(tag);
-    }
-
-    paintOne(el: Displayable): SVGElement {
-        const svgProxy = getSvgProxy(el);
-        svgProxy && (svgProxy as SVGProxy<Displayable>).brush(el);
-        return getSvgElement(el);
-    }
-
-    _paintList(list: Displayable[]) {
-        const gradientManager = this._gradientManager;
-        const patternManager = this._patternManager;
-        const clipPathManager = this._clipPathManager;
-        const shadowManager = this._shadowManager;
-
-        gradientManager.markAllUnused();
-        patternManager.markAllUnused();
-        clipPathManager.markAllUnused();
-        shadowManager.markAllUnused();
-
-        const svgRoot = this._svgRoot;
-        const visibleList = this._visibleList;
-        const listLen = list.length;
-
-        const newVisibleList = [];
-
-        for (let i = 0; i < listLen; i++) {
-            const displayable = list[i];
-            const svgProxy = getSvgProxy(displayable);
-            let svgElement = getSvgElement(displayable);
-            if (!displayable.invisible) {
-                if (displayable.__dirty || !svgElement) {
-                    svgProxy && (svgProxy as SVGProxy<Displayable>).brush(displayable);
-                    svgElement = getSvgElement(displayable);
-                    // Update gradient and shadow
-                    if (svgElement && displayable.style) {
-                        gradientManager.update(displayable.style.fill);
-                        gradientManager.update(displayable.style.stroke);
-                        patternManager.update(displayable.style.fill);
-                        patternManager.update(displayable.style.stroke);
-                        shadowManager.update(svgElement, displayable);
-                    }
-
-                    displayable.__dirty = 0;
-                }
-
-                // May have optimizations and ignore brush(like empty string in TSpan)
-                if (svgElement) {
-                    newVisibleList.push(displayable);
-                }
-            }
-        }
-
-        const diff = arrayDiff(visibleList, newVisibleList);
-        let prevSvgElement;
-        let topPrevSvgElement;
-
-        // NOTE: First do remove, in case element moved to the head and do remove
-        // after add
-        for (let i = 0; i < diff.length; i++) {
-            const item = diff[i];
-            if (item.removed) {
-                for (let k = 0; k < item.count; k++) {
-                    const displayable = visibleList[item.indices[k]];
-                    const svgElement = getSvgElement(displayable);
-                    hasClipPath(displayable) ? removeFromMyParent(svgElement)
-                        : remove(svgRoot, svgElement);
-                }
-            }
-        }
-
-        let prevDisplayable;
-        let currentClipGroup;
-        for (let i = 0; i < diff.length; i++) {
-            const item = diff[i];
-            // const isAdd = item.added;
-            if (item.removed) {
-                continue;
-            }
-            for (let k = 0; k < item.count; k++) {
-                const displayable = newVisibleList[item.indices[k]];
-                // Update clipPath
-                const clipGroup = clipPathManager.update(displayable, prevDisplayable);
-                if (clipGroup !== currentClipGroup) {
-                    // First pop to top level.
-                    prevSvgElement = topPrevSvgElement;
-                    if (clipGroup) {
-                        // Enter second level of clipping group.
-                        prevSvgElement ? insertAfter(svgRoot, clipGroup, prevSvgElement)
-                            : prepend(svgRoot, clipGroup);
-                        topPrevSvgElement = clipGroup;
-                        // Reset prevSvgElement in second level.
-                        prevSvgElement = null;
-                    }
-                    currentClipGroup = clipGroup;
-                }
-
-                const svgElement = getSvgElement(displayable);
-                // if (isAdd) {
-                prevSvgElement
-                    ? insertAfter(currentClipGroup || svgRoot, svgElement, prevSvgElement)
-                    : prepend(currentClipGroup || svgRoot, svgElement);
-                // }
-
-                prevSvgElement = svgElement || prevSvgElement;
-                if (!currentClipGroup) {
-                    topPrevSvgElement = prevSvgElement;
-                }
-
-                gradientManager.markUsed(displayable);
-                gradientManager.addWithoutUpdate(svgElement, displayable);
-
-                patternManager.markUsed(displayable);
-                patternManager.addWithoutUpdate(svgElement, displayable);
-
-                clipPathManager.markUsed(displayable);
-
-                prevDisplayable = displayable;
-            }
-        }
-
-        gradientManager.removeUnused();
-        patternManager.removeUnused();
-        clipPathManager.removeUnused();
-        shadowManager.removeUnused();
-
-        this._visibleList = newVisibleList;
-    }
-
-    resize(width: number | string, height: number | string) {
-        const viewport = this._viewport;
-        // FIXME Why ?
-        viewport.style.display = 'none';
-
-        // Save input w/h
-        const opts = this._opts;
-        width != null && (opts.width = width);
-        height != null && (opts.height = height);
-
-        width = getSize(this.root, 0, opts);
-        height = getSize(this.root, 1, opts);
-
-        viewport.style.display = '';
-
-        if (this._width !== width || this._height !== height) {
-            this._width = width;
-            this._height = height;
-
-            const viewportStyle = viewport.style;
-            viewportStyle.width = width + 'px';
-            viewportStyle.height = height + 'px';
-
-            const svgRoot = this._svgDom;
-            // Set width by 'svgRoot.width = width' is invalid
-            svgRoot.setAttribute('width', width + '');
-            svgRoot.setAttribute('height', height + '');
-        }
-
-        if (this._backgroundNode) {
-            this._backgroundNode.setAttribute('width', width as any);
-            this._backgroundNode.setAttribute('height', height as any);
-        }
-    }
-
-    /**
-     * 获取绘图区域宽度
-     */
-    getWidth() {
-        return this._width;
-    }
-
-    /**
-     * 获取绘图区域高度
-     */
-    getHeight() {
-        return this._height;
-    }
-
-    dispose() {
-        this.root.innerHTML = '';
-
-        this._svgRoot =
-            this._backgroundRoot =
-            this._svgDom =
-            this._backgroundNode =
-            this._viewport = this.storage = null;
-    }
-
-    clear() {
-        const viewportNode = this._viewport;
-        if (viewportNode && viewportNode.parentNode) {
-            viewportNode.parentNode.removeChild(viewportNode);
-        }
-    }
-
-    toDataURL() {
-        this.refresh();
-        const svgDom = this._svgDom;
-        const outerHTML = svgDom.outerHTML
-            // outerHTML of `svg` tag is not supported in IE, use `parentNode.innerHTML` instead
-            // PENDING: Or use `new XMLSerializer().serializeToString(svg)`?
-            || (svgDom.parentNode && (svgDom.parentNode as HTMLElement).innerHTML);
-        const html = encodeURIComponent(outerHTML.replace(/></g, '>\n\r<'));
-        return 'data:image/svg+xml;charset=UTF-8,' + html;
-    }
-    refreshHover = createMethodNotSupport('refreshHover') as PainterBase['refreshHover'];
-    configLayer = createMethodNotSupport('configLayer') as PainterBase['configLayer'];
-}
-
-
-// Not supported methods
-function createMethodNotSupport(method: string): any {
-    return function () {
-        if (process.env.NODE_ENV !== 'production') {
-            util.logError('In SVG mode painter not support method "' + method + '"');
-        }
-    };
-}
-
-
-export default SVGPainter;

+ 0 - 194
node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/svg-legacy/graphic.ts

@@ -1,194 +0,0 @@
-// TODO
-// 1. shadow
-// 2. Image: sx, sy, sw, sh
-
-import {createElement, XLINKNS } from '../svg/core';
-import { getMatrixStr, TEXT_ALIGN_TO_ANCHOR, adjustTextY } from '../svg/helper';
-import * as matrix from '../core/matrix';
-import Path, { PathStyleProps } from '../graphic/Path';
-import ZRImage, { ImageStyleProps } from '../graphic/Image';
-import { getLineHeight } from '../contain/text';
-import TSpan, { TSpanStyleProps } from '../graphic/TSpan';
-import SVGPathRebuilder from '../svg/SVGPathRebuilder';
-import mapStyleToAttrs from '../svg/mapStyleToAttrs';
-import { DEFAULT_FONT } from '../core/platform';
-
-export interface SVGProxy<T> {
-    brush(el: T): void
-}
-
-type AllStyleOption = PathStyleProps | TSpanStyleProps | ImageStyleProps;
-
-function setTransform(svgEl: SVGElement, m: matrix.MatrixArray) {
-    if (m) {
-        attr(svgEl, 'transform', getMatrixStr(m));
-    }
-}
-
-function attr(el: SVGElement, key: string, val: string | number) {
-    if (!val || (val as any).type !== 'linear' && (val as any).type !== 'radial') {
-        // Don't set attribute for gradient, since it need new dom nodes
-        el.setAttribute(key, val as any);
-    }
-}
-
-function attrXLink(el: SVGElement, key: string, val: string) {
-    el.setAttributeNS(XLINKNS, key, val);
-}
-
-function attrXML(el: SVGElement, key: string, val: string) {
-    el.setAttributeNS('http://www.w3.org/XML/1998/namespace', key, val);
-}
-
-function bindStyle(svgEl: SVGElement, style: PathStyleProps, el?: Path): void
-function bindStyle(svgEl: SVGElement, style: TSpanStyleProps, el?: TSpan): void
-function bindStyle(svgEl: SVGElement, style: ImageStyleProps, el?: ZRImage): void
-function bindStyle(svgEl: SVGElement, style: AllStyleOption, el?: Path | TSpan | ZRImage) {
-    mapStyleToAttrs((key, val) => attr(svgEl, key, val), style, el, true);
-}
-
-interface PathWithSVGBuildPath extends Path {
-    __svgPathVersion: number
-    __svgPathBuilder: SVGPathRebuilder
-}
-
-const svgPath: SVGProxy<Path> = {
-    brush(el: Path) {
-        const style = el.style;
-
-        let svgEl = el.__svgEl;
-        if (!svgEl) {
-            svgEl = createElement('path');
-            el.__svgEl = svgEl;
-        }
-
-        if (!el.path) {
-            el.createPathProxy();
-        }
-        const path = el.path;
-
-        if (el.shapeChanged()) {
-            path.beginPath();
-            el.buildPath(path, el.shape);
-            el.pathUpdated();
-        }
-
-        const pathVersion = path.getVersion();
-        const elExt = el as PathWithSVGBuildPath;
-        let svgPathBuilder = elExt.__svgPathBuilder;
-        if (elExt.__svgPathVersion !== pathVersion || !svgPathBuilder || el.style.strokePercent < 1) {
-            if (!svgPathBuilder) {
-                svgPathBuilder = elExt.__svgPathBuilder = new SVGPathRebuilder();
-            }
-            svgPathBuilder.reset();
-            path.rebuildPath(svgPathBuilder, el.style.strokePercent);
-            svgPathBuilder.generateStr();
-            elExt.__svgPathVersion = pathVersion;
-        }
-
-        attr(svgEl, 'd', svgPathBuilder.getStr());
-
-        bindStyle(svgEl, style, el);
-        setTransform(svgEl, el.transform);
-    }
-};
-
-export {svgPath as path};
-
-/***************************************************
- * IMAGE
- **************************************************/
-const svgImage: SVGProxy<ZRImage> = {
-    brush(el: ZRImage) {
-        const style = el.style;
-        let image = style.image;
-
-        if (image instanceof HTMLImageElement) {
-            image = image.src;
-        }
-        // heatmap layer in geo may be a canvas
-        else if (image instanceof HTMLCanvasElement) {
-            image = image.toDataURL();
-        }
-        if (!image) {
-            return;
-        }
-
-        const x = style.x || 0;
-        const y = style.y || 0;
-
-        const dw = style.width;
-        const dh = style.height;
-
-        let svgEl = el.__svgEl;
-        if (!svgEl) {
-            svgEl = createElement('image');
-            el.__svgEl = svgEl;
-        }
-
-        if (image !== el.__imageSrc) {
-            attrXLink(svgEl, 'href', image as string);
-            // Caching image src
-            el.__imageSrc = image as string;
-        }
-
-        attr(svgEl, 'width', dw + '');
-        attr(svgEl, 'height', dh + '');
-
-        attr(svgEl, 'x', x + '');
-        attr(svgEl, 'y', y + '');
-
-        bindStyle(svgEl, style, el);
-        setTransform(svgEl, el.transform);
-    }
-};
-export {svgImage as image};
-
-/***************************************************
- * TEXT
- **************************************************/
-
-
-const svgText: SVGProxy<TSpan> = {
-    brush(el: TSpan) {
-        const style = el.style;
-
-        let text = style.text;
-        // Convert to string
-        text != null && (text += '');
-        if (!text || isNaN(style.x) || isNaN(style.y)) {
-            return;
-        }
-
-        let textSvgEl = el.__svgEl as SVGTextElement;
-        if (!textSvgEl) {
-            textSvgEl = createElement('text') as SVGTextElement;
-            attrXML(textSvgEl, 'xml:space', 'preserve');
-            el.__svgEl = textSvgEl;
-        }
-
-        const font = style.font || DEFAULT_FONT;
-
-        // style.font has been normalized by `normalizeTextStyle`.
-        const textSvgElStyle = textSvgEl.style;
-        textSvgElStyle.font = font;
-
-        textSvgEl.textContent = text;
-
-        bindStyle(textSvgEl, style, el);
-        setTransform(textSvgEl, el.transform);
-
-        // Consider different font display differently in vertial align, we always
-        // set vertialAlign as 'middle', and use 'y' to locate text vertically.
-        const x = style.x || 0;
-        const y = adjustTextY(style.y || 0, getLineHeight(font), style.textBaseline);
-        const textAlign = TEXT_ALIGN_TO_ANCHOR[style.textAlign as keyof typeof TEXT_ALIGN_TO_ANCHOR]
-            || style.textAlign;
-
-        attr(textSvgEl, 'dominant-baseline', 'central');
-        attr(textSvgEl, 'text-anchor', textAlign);
-        attr(textSvgEl, 'x', x + '');
-        attr(textSvgEl, 'y', y + '');
-    }
-};
-export {svgText as text};

+ 0 - 173
node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/svg-legacy/helper/ClippathManager.ts

@@ -1,173 +0,0 @@
-/**
- * @file Manages SVG clipPath elements.
- * @author Zhang Wenli
- */
-
-import Definable from './Definable';
-import * as zrUtil from '../../core/util';
-import Displayable from '../../graphic/Displayable';
-import Path from '../../graphic/Path';
-import {path} from '../graphic';
-import { Dictionary } from '../../core/types';
-import { isClipPathChanged } from '../../canvas/helper';
-import { getClipPathsKey, getIdURL } from '../../svg/helper';
-import { createElement } from '../../svg/core';
-
-type PathExtended = Path & {
-    _dom: SVGElement
-}
-
-export function hasClipPath(displayable: Displayable) {
-    const clipPaths = displayable.__clipPaths;
-    return clipPaths && clipPaths.length > 0;
-}
-/**
- * Manages SVG clipPath elements.
- */
-export default class ClippathManager extends Definable {
-
-    private _refGroups: Dictionary<SVGElement> = {};
-    private _keyDuplicateCount: Dictionary<number> = {};
-
-    constructor(zrId: number, svgRoot: SVGElement) {
-        super(zrId, svgRoot, 'clipPath', '__clippath_in_use__');
-    }
-
-    markAllUnused() {
-        super.markAllUnused();
-        const refGroups = this._refGroups;
-        for (let key in refGroups) {
-            if (refGroups.hasOwnProperty(key)) {
-                this.markDomUnused(refGroups[key]);
-            }
-        }
-        this._keyDuplicateCount = {};
-    }
-
-
-    private _getClipPathGroup(displayable: Displayable, prevDisplayable: Displayable) {
-        if (!hasClipPath(displayable)) {
-            return;
-        }
-        const clipPaths = displayable.__clipPaths;
-
-        const keyDuplicateCount = this._keyDuplicateCount;
-        let clipPathKey = getClipPathsKey(clipPaths);
-        if (isClipPathChanged(clipPaths, prevDisplayable && prevDisplayable.__clipPaths)) {
-            keyDuplicateCount[clipPathKey] = keyDuplicateCount[clipPathKey] || 0;
-            keyDuplicateCount[clipPathKey] && (clipPathKey += '-' + keyDuplicateCount[clipPathKey]);
-            keyDuplicateCount[clipPathKey]++;
-        }
-
-        return this._refGroups[clipPathKey]
-            || (this._refGroups[clipPathKey] = createElement('g'));
-    }
-
-    /**
-     * Update clipPath.
-     *
-     * @param displayable displayable element
-     */
-    update(displayable: Displayable, prevDisplayable: Displayable) {
-        const clipGroup = this._getClipPathGroup(displayable, prevDisplayable);
-        if (clipGroup) {
-            this.markDomUsed(clipGroup);
-            this.updateDom(clipGroup, displayable.__clipPaths);
-        }
-        return clipGroup;
-    };
-
-
-    /**
-     * Create an SVGElement of displayable and create a <clipPath> of its
-     * clipPath
-     */
-    updateDom(parentEl: SVGElement, clipPaths: Path[]) {
-        if (clipPaths && clipPaths.length > 0) {
-            // Has clipPath, create <clipPath> with the first clipPath
-            const defs = this.getDefs(true);
-            const clipPath = clipPaths[0] as PathExtended;
-            let clipPathEl;
-            let id;
-
-            if (clipPath._dom) {
-                // Use a dom that is already in <defs>
-                id = clipPath._dom.getAttribute('id');
-                clipPathEl = clipPath._dom;
-
-                // Use a dom that is already in <defs>
-                if (!defs.contains(clipPathEl)) {
-                    // This happens when set old clipPath that has
-                    // been previously removed
-                    defs.appendChild(clipPathEl);
-                }
-            }
-            else {
-                // New <clipPath>
-                id = 'zr' + this._zrId + '-clip-' + this.nextId;
-                ++this.nextId;
-                clipPathEl = createElement('clipPath');
-                clipPathEl.setAttribute('id', id);
-                defs.appendChild(clipPathEl);
-
-                clipPath._dom = clipPathEl;
-            }
-
-            // Build path and add to <clipPath>
-            path.brush(clipPath);
-
-            const pathEl = this.getSvgElement(clipPath);
-
-            clipPathEl.innerHTML = '';
-            clipPathEl.appendChild(pathEl);
-
-            parentEl.setAttribute('clip-path', getIdURL(id));
-
-            if (clipPaths.length > 1) {
-                // Make the other clipPaths recursively
-                this.updateDom(clipPathEl, clipPaths.slice(1));
-            }
-        }
-        else {
-            // No clipPath
-            if (parentEl) {
-                parentEl.setAttribute('clip-path', 'none');
-            }
-        }
-    };
-
-    /**
-     * Mark a single clipPath to be used
-     *
-     * @param displayable displayable element
-     */
-    markUsed(displayable: Displayable) {
-        // displayable.__clipPaths can only be `null`/`undefined` or an non-empty array.
-        if (displayable.__clipPaths) {
-            zrUtil.each(displayable.__clipPaths, (clipPath: PathExtended) => {
-                if (clipPath._dom) {
-                    super.markDomUsed(clipPath._dom);
-                }
-            });
-        }
-    };
-
-    removeUnused() {
-        super.removeUnused();
-
-        const newRefGroupsMap: Dictionary<SVGElement> = {};
-        const refGroups = this._refGroups;
-        for (let key in refGroups) {
-            if (refGroups.hasOwnProperty(key)) {
-                const group = refGroups[key];
-                if (!this.isDomUnused(group)) {
-                    newRefGroupsMap[key] = group;
-                }
-                else if (group.parentNode) {
-                    group.parentNode.removeChild(group);
-                }
-            }
-        }
-        this._refGroups = newRefGroupsMap;
-    }
-}

+ 0 - 235
node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/svg-legacy/helper/Definable.ts

@@ -1,235 +0,0 @@
-/**
- * @file Manages elements that can be defined in <defs> in SVG,
- *       e.g., gradients, clip path, etc.
- * @author Zhang Wenli
- */
-
-import {createElement} from '../../svg/core';
-import * as zrUtil from '../../core/util';
-import Displayable from '../../graphic/Displayable';
-
-
-const MARK_UNUSED = '0';
-const MARK_USED = '1';
-
-/**
- * Manages elements that can be defined in <defs> in SVG,
- * e.g., gradients, clip path, etc.
- */
-export default class Definable {
-
-    nextId = 0
-
-    protected _zrId: number
-    protected _svgRoot: SVGElement
-    protected _tagNames: string[]
-    protected _markLabel: string
-    protected _domName: string = '_dom'
-
-    constructor(
-        zrId: number,   // zrender instance id
-        svgRoot: SVGElement,        // root of SVG document
-        tagNames: string | string[],    // possible tag names
-        markLabel: string,  // label name to make if the element
-        domName?: string
-    ) {
-        this._zrId = zrId;
-        this._svgRoot = svgRoot;
-        this._tagNames = typeof tagNames === 'string' ? [tagNames] : tagNames;
-        this._markLabel = markLabel;
-
-        if (domName) {
-            this._domName = domName;
-        }
-    }
-
-    /**
-     * Get the <defs> tag for svgRoot; optionally creates one if not exists.
-     *
-     * @param isForceCreating if need to create when not exists
-     * @return SVG <defs> element, null if it doesn't
-     * exist and isForceCreating is false
-     */
-    getDefs(isForceCreating?: boolean): SVGDefsElement {
-        let svgRoot = this._svgRoot;
-        let defs = this._svgRoot.getElementsByTagName('defs');
-        if (defs.length === 0) {
-            // Not exist
-            if (isForceCreating) {
-                let defs = svgRoot.insertBefore(
-                    createElement('defs'), // Create new tag
-                    svgRoot.firstChild // Insert in the front of svg
-                ) as SVGDefsElement;
-                if (!defs.contains) {
-                    // IE doesn't support contains method
-                    defs.contains = function (el) {
-                        const children = defs.children;
-                        if (!children) {
-                            return false;
-                        }
-                        for (let i = children.length - 1; i >= 0; --i) {
-                            if (children[i] === el) {
-                                return true;
-                            }
-                        }
-                        return false;
-                    };
-                }
-                return defs;
-            }
-            else {
-                return null;
-            }
-        }
-        else {
-            return defs[0];
-        }
-    }
-
-
-    /**
-     * Update DOM element if necessary.
-     *
-     * @param element style element. e.g., for gradient,
-     *                                it may be '#ccc' or {type: 'linear', ...}
-     * @param onUpdate update callback
-     */
-    doUpdate<T>(target: T, onUpdate?: (target: T) => void) {
-        if (!target) {
-            return;
-        }
-
-        const defs = this.getDefs(false);
-        if ((target as any)[this._domName] && defs.contains((target as any)[this._domName])) {
-            // Update DOM
-            if (typeof onUpdate === 'function') {
-                onUpdate(target);
-            }
-        }
-        else {
-            // No previous dom, create new
-            const dom = this.add(target);
-            if (dom) {
-                (target as any)[this._domName] = dom;
-            }
-        }
-    }
-
-    add(target: any): SVGElement {
-        return null;
-    }
-
-    /**
-     * Add gradient dom to defs
-     *
-     * @param dom DOM to be added to <defs>
-     */
-    addDom(dom: SVGElement) {
-        const defs = this.getDefs(true);
-        if (dom.parentNode !== defs) {
-            defs.appendChild(dom);
-        }
-    }
-
-
-    /**
-     * Remove DOM of a given element.
-     *
-     * @param target Target where to attach the dom
-     */
-    removeDom<T>(target: T) {
-        const defs = this.getDefs(false);
-        if (defs && (target as any)[this._domName]) {
-            defs.removeChild((target as any)[this._domName]);
-            (target as any)[this._domName] = null;
-        }
-    }
-
-
-    /**
-     * Get DOMs of this element.
-     *
-     * @return doms of this defineable elements in <defs>
-     */
-    getDoms() {
-        const defs = this.getDefs(false);
-        if (!defs) {
-            // No dom when defs is not defined
-            return [];
-        }
-
-        let doms: SVGElement[] = [];
-        zrUtil.each(this._tagNames, function (tagName) {
-            const tags = defs.getElementsByTagName(tagName) as HTMLCollectionOf<SVGElement>;
-            // Note that tags is HTMLCollection, which is array-like
-            // rather than real array.
-            // So `doms.concat(tags)` add tags as one object.
-            for (let i = 0; i < tags.length; i++) {
-                doms.push(tags[i]);
-            }
-        });
-
-        return doms;
-    }
-
-
-    /**
-     * Mark DOMs to be unused before painting, and clear unused ones at the end
-     * of the painting.
-     */
-    markAllUnused() {
-        const doms = this.getDoms();
-        const that = this;
-        zrUtil.each(doms, function (dom) {
-            (dom as any)[that._markLabel] = MARK_UNUSED;
-        });
-    }
-
-
-    /**
-     * Mark a single DOM to be used.
-     *
-     * @param dom DOM to mark
-     */
-    markDomUsed(dom: SVGElement) {
-        dom && ((dom as any)[this._markLabel] = MARK_USED);
-    };
-
-    markDomUnused(dom: SVGElement) {
-        dom && ((dom as any)[this._markLabel] = MARK_UNUSED);
-    };
-
-    isDomUnused(dom: SVGElement) {
-        return dom && (dom as any)[this._markLabel] !== MARK_USED;
-    }
-
-    /**
-     * Remove unused DOMs defined in <defs>
-     */
-    removeUnused() {
-        const defs = this.getDefs(false);
-        if (!defs) {
-            // Nothing to remove
-            return;
-        }
-
-        const doms = this.getDoms();
-        zrUtil.each(doms, (dom) => {
-            if (this.isDomUnused(dom)) {
-                // Remove gradient
-                defs.removeChild(dom);
-            }
-        });
-    }
-
-    /**
-     * Get SVG element.
-     *
-     * @param displayable displayable element
-     * @return SVG element
-     */
-    getSvgElement(displayable: Displayable): SVGElement {
-        return displayable.__svgEl;
-    }
-
-}

+ 0 - 225
node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/svg-legacy/helper/GradientManager.ts

@@ -1,225 +0,0 @@
-/**
- * @file Manages SVG gradient elements.
- * @author Zhang Wenli
- */
-
-import Definable from './Definable';
-import * as zrUtil from '../../core/util';
-import Displayable from '../../graphic/Displayable';
-import { GradientObject } from '../../graphic/Gradient';
-import { getIdURL, isGradient, isLinearGradient, isRadialGradient, normalizeColor, round4 } from '../../svg/helper';
-import { createElement } from '../../svg/core';
-
-
-type GradientObjectExtended = GradientObject & {
-    __dom: SVGElement
-}
-
-/**
- * Manages SVG gradient elements.
- *
- * @param   zrId    zrender instance id
- * @param   svgRoot root of SVG document
- */
-export default class GradientManager extends Definable {
-
-    constructor(zrId: number, svgRoot: SVGElement) {
-        super(zrId, svgRoot, ['linearGradient', 'radialGradient'], '__gradient_in_use__');
-    }
-
-
-    /**
-     * Create new gradient DOM for fill or stroke if not exist,
-     * but will not update gradient if exists.
-     *
-     * @param svgElement   SVG element to paint
-     * @param displayable  zrender displayable element
-     */
-    addWithoutUpdate(
-        svgElement: SVGElement,
-        displayable: Displayable
-    ) {
-        if (displayable && displayable.style) {
-            const that = this;
-            zrUtil.each(['fill', 'stroke'], function (fillOrStroke: 'fill' | 'stroke') {
-                let value = displayable.style[fillOrStroke] as GradientObject;
-                if (isGradient(value)) {
-                    const gradient = value as GradientObjectExtended;
-                    const defs = that.getDefs(true);
-
-                    // Create dom in <defs> if not exists
-                    let dom;
-                    if (gradient.__dom) {
-                        // Gradient exists
-                        dom = gradient.__dom;
-                        if (!defs.contains(gradient.__dom)) {
-                            // __dom is no longer in defs, recreate
-                            that.addDom(dom);
-                        }
-                    }
-                    else {
-                        // New dom
-                        dom = that.add(gradient);
-                    }
-
-                    that.markUsed(displayable);
-
-                    svgElement.setAttribute(fillOrStroke, getIdURL(dom.getAttribute('id')));
-                }
-            });
-        }
-    }
-
-
-    /**
-     * Add a new gradient tag in <defs>
-     *
-     * @param   gradient zr gradient instance
-     */
-    add(gradient: GradientObject): SVGElement {
-        let dom;
-        if (isLinearGradient(gradient)) {
-            dom = createElement('linearGradient');
-        }
-        else if (isRadialGradient(gradient)) {
-            dom = createElement('radialGradient');
-        }
-        else {
-            if (process.env.NODE_ENV !== 'production') {
-                zrUtil.logError('Illegal gradient type.');
-            }
-            return null;
-        }
-
-        // Set dom id with gradient id, since each gradient instance
-        // will have no more than one dom element.
-        // id may exists before for those dirty elements, in which case
-        // id should remain the same, and other attributes should be
-        // updated.
-        gradient.id = gradient.id || this.nextId++;
-        dom.setAttribute('id', 'zr' + this._zrId
-            + '-gradient-' + gradient.id);
-
-        this.updateDom(gradient, dom);
-        this.addDom(dom);
-
-        return dom;
-    }
-
-
-    /**
-     * Update gradient.
-     *
-     * @param gradient zr gradient instance or color string
-     */
-    update(gradient: GradientObject | string) {
-        if (!isGradient(gradient)) {
-            return;
-        }
-
-        const that = this;
-        this.doUpdate(gradient, function () {
-            const dom = (gradient as GradientObjectExtended).__dom;
-            if (!dom) {
-                return;
-            }
-
-            const tagName = dom.tagName;
-            const type = gradient.type;
-            if (type === 'linear' && tagName === 'linearGradient'
-                || type === 'radial' && tagName === 'radialGradient'
-            ) {
-                // Gradient type is not changed, update gradient
-                that.updateDom(gradient, (gradient as GradientObjectExtended).__dom);
-            }
-            else {
-                // Remove and re-create if type is changed
-                that.removeDom(gradient);
-                that.add(gradient);
-            }
-        });
-    }
-
-
-    /**
-     * Update gradient dom
-     *
-     * @param gradient zr gradient instance
-     * @param dom DOM to update
-     */
-    updateDom(gradient: GradientObject, dom: SVGElement) {
-        if (isLinearGradient(gradient)) {
-            dom.setAttribute('x1', gradient.x as any);
-            dom.setAttribute('y1', gradient.y as any);
-            dom.setAttribute('x2', gradient.x2 as any);
-            dom.setAttribute('y2', gradient.y2 as any);
-        }
-        else if (isRadialGradient(gradient)) {
-            dom.setAttribute('cx', gradient.x as any);
-            dom.setAttribute('cy', gradient.y as any);
-            dom.setAttribute('r', gradient.r as any);
-        }
-        else {
-            if (process.env.NODE_ENV !== 'production') {
-                zrUtil.logError('Illegal gradient type.');
-            }
-            return;
-        }
-
-        dom.setAttribute('gradientUnits',
-            gradient.global
-                ? 'userSpaceOnUse' // x1, x2, y1, y2 in range of 0 to canvas width or height
-                : 'objectBoundingBox' // x1, x2, y1, y2 in range of 0 to 1
-        );
-
-        // Remove color stops if exists
-        dom.innerHTML = '';
-
-        // Add color stops
-        const colors = gradient.colorStops;
-        for (let i = 0, len = colors.length; i < len; ++i) {
-            const stop = createElement('stop');
-            stop.setAttribute('offset', round4(colors[i].offset) * 100 + '%');
-
-            const stopColor = colors[i].color;
-            // Fix Safari bug that stop-color not recognizing alpha #9014
-            const {color, opacity} = normalizeColor(stopColor);
-            // stop-color cannot be color, since:
-            // The opacity value used for the gradient calculation is the
-            // *product* of the value of stop-opacity and the opacity of the
-            // value of stop-color.
-            // See https://www.w3.org/TR/SVG2/pservers.html#StopOpacityProperty
-            stop.setAttribute('stop-color', color);
-            if (opacity < 1) {
-                stop.setAttribute('stop-opacity', opacity as any);
-            }
-
-            dom.appendChild(stop);
-        }
-
-        // Store dom element in gradient, to avoid creating multiple
-        // dom instances for the same gradient element
-        (gradient as GradientObject as GradientObjectExtended).__dom = dom;
-    }
-
-    /**
-     * Mark a single gradient to be used
-     *
-     * @param displayable displayable element
-     */
-    markUsed(displayable: Displayable) {
-        if (displayable.style) {
-            let gradient = displayable.style.fill as GradientObject as GradientObjectExtended;
-            if (gradient && gradient.__dom) {
-                super.markDomUsed(gradient.__dom);
-            }
-
-            gradient = displayable.style.stroke as GradientObject as GradientObjectExtended;
-            if (gradient && gradient.__dom) {
-                super.markDomUsed(gradient.__dom);
-            }
-        }
-    }
-
-
-}

+ 0 - 221
node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/svg-legacy/helper/PatternManager.ts

@@ -1,221 +0,0 @@
-/**
- * @file Manages SVG pattern elements.
- * @author Zhang Wenli
- */
-
-import Definable from './Definable';
-import * as zrUtil from '../../core/util';
-import Displayable from '../../graphic/Displayable';
-import {PatternObject} from '../../graphic/Pattern';
-import {createOrUpdateImage} from '../../graphic/helper/image';
-import WeakMap from '../../core/WeakMap';
-import { getIdURL, isPattern, isSVGPattern } from '../../svg/helper';
-import { createElement } from '../../svg/core';
-
-const patternDomMap = new WeakMap<PatternObject, SVGElement>();
-
-/**
- * Manages SVG pattern elements.
- *
- * @param   zrId    zrender instance id
- * @param   svgRoot root of SVG document
- */
-export default class PatternManager extends Definable {
-
-    constructor(zrId: number, svgRoot: SVGElement) {
-        super(zrId, svgRoot, ['pattern'], '__pattern_in_use__');
-    }
-
-
-    /**
-     * Create new pattern DOM for fill or stroke if not exist,
-     * but will not update pattern if exists.
-     *
-     * @param svgElement   SVG element to paint
-     * @param displayable  zrender displayable element
-     */
-    addWithoutUpdate(
-        svgElement: SVGElement,
-        displayable: Displayable
-    ) {
-        if (displayable && displayable.style) {
-            const that = this;
-            zrUtil.each(['fill', 'stroke'], function (fillOrStroke: 'fill' | 'stroke') {
-                const pattern = displayable.style[fillOrStroke] as PatternObject;
-                if (isPattern(pattern)) {
-                    const defs = that.getDefs(true);
-
-                    // Create dom in <defs> if not exists
-                    let dom = patternDomMap.get(pattern);
-                    if (dom) {
-                        // Pattern exists
-                        if (!defs.contains(dom)) {
-                            // __dom is no longer in defs, recreate
-                            that.addDom(dom);
-                        }
-                    }
-                    else {
-                        // New dom
-                        dom = that.add(pattern);
-                    }
-
-                    that.markUsed(displayable);
-
-                    svgElement.setAttribute(fillOrStroke, getIdURL(dom.getAttribute('id')));
-                }
-            });
-        }
-    }
-
-
-    /**
-     * Add a new pattern tag in <defs>
-     *
-     * @param   pattern zr pattern instance
-     */
-    add(pattern: PatternObject): SVGElement {
-        if (!isPattern(pattern)) {
-            return;
-        }
-
-        let dom = createElement('pattern');
-
-        pattern.id = pattern.id == null ? this.nextId++ : pattern.id;
-        dom.setAttribute('id', 'zr' + this._zrId
-            + '-pattern-' + pattern.id);
-
-        dom.setAttribute('patternUnits', 'userSpaceOnUse');
-
-        this.updateDom(pattern, dom);
-        this.addDom(dom);
-
-        return dom;
-    }
-
-
-    /**
-     * Update pattern.
-     *
-     * @param pattern zr pattern instance or color string
-     */
-    update(pattern: PatternObject | string) {
-        if (!isPattern(pattern)) {
-            return;
-        }
-
-        const that = this;
-        this.doUpdate(pattern, function () {
-            const dom = patternDomMap.get(pattern);
-            that.updateDom(pattern, dom);
-        });
-    }
-
-
-    /**
-     * Update pattern dom
-     *
-     * @param pattern zr pattern instance
-     * @param patternDom DOM to update
-     */
-    updateDom(pattern: PatternObject, patternDom: SVGElement) {
-        if (isSVGPattern(pattern)) {
-            // New SVGPattern will not been supported in the legacy SVG renderer.
-            // svg-legacy will been removed soon.
-
-            // const svgElement = pattern.svgElement;
-            // const isStringSVG = typeof svgElement === 'string';
-            // if (isStringSVG || svgElement.parentNode !== patternDom) {
-            //     if (isStringSVG) {
-            //         patternDom.innerHTML = svgElement;
-            //     }
-            //     else {
-            //         patternDom.innerHTML = '';
-            //         patternDom.appendChild(svgElement);
-            //     }
-
-            //     patternDom.setAttribute('width', pattern.svgWidth as any);
-            //     patternDom.setAttribute('height', pattern.svgHeight as any);
-            // }
-        }
-        else {
-            let img: SVGElement;
-            const prevImage = patternDom.getElementsByTagName('image');
-            if (prevImage.length) {
-                if (pattern.image) {
-                    // Update
-                    img = prevImage[0];
-                }
-                else {
-                    // Remove
-                    patternDom.removeChild(prevImage[0]);
-                    return;
-                }
-            }
-            else if (pattern.image) {
-                // Create
-                img = createElement('image');
-            }
-
-            if (img) {
-                let imageSrc;
-                const patternImage = pattern.image;
-                if (typeof patternImage === 'string') {
-                    imageSrc = patternImage;
-                }
-                else if (patternImage instanceof HTMLImageElement) {
-                    imageSrc = patternImage.src;
-                }
-                else if (patternImage instanceof HTMLCanvasElement) {
-                    imageSrc = patternImage.toDataURL();
-                }
-
-                if (imageSrc) {
-                    img.setAttribute('href', imageSrc);
-
-                    // No need to re-render so dirty is empty
-                    const hostEl = {
-                        dirty: () => {}
-                    };
-                    const updateSize = (img: HTMLImageElement) => {
-                        patternDom.setAttribute('width', img.width as any);
-                        patternDom.setAttribute('height', img.height as any);
-                    };
-
-                    const createdImage = createOrUpdateImage(imageSrc, img as any, hostEl, updateSize);
-                    if (createdImage && createdImage.width && createdImage.height) {
-                        // Loaded before
-                        updateSize(createdImage as HTMLImageElement);
-                    }
-
-                    patternDom.appendChild(img);
-                }
-            }
-        }
-
-        const x = pattern.x || 0;
-        const y = pattern.y || 0;
-        const rotation = (pattern.rotation || 0) / Math.PI * 180;
-        const scaleX = pattern.scaleX || 1;
-        const scaleY = pattern.scaleY || 1;
-        const transform = `translate(${x}, ${y}) rotate(${rotation}) scale(${scaleX}, ${scaleY})`;
-        patternDom.setAttribute('patternTransform', transform);
-        patternDomMap.set(pattern, patternDom);
-    }
-
-    /**
-     * Mark a single pattern to be used
-     *
-     * @param displayable displayable element
-     */
-    markUsed(displayable: Displayable) {
-        if (displayable.style) {
-            if (isPattern(displayable.style.fill)) {
-                super.markDomUsed(patternDomMap.get(displayable.style.fill));
-            }
-            if (isPattern(displayable.style.stroke)) {
-                super.markDomUsed(patternDomMap.get(displayable.style.stroke));
-            }
-        }
-    }
-
-}

+ 0 - 149
node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/svg-legacy/helper/ShadowManager.ts

@@ -1,149 +0,0 @@
-/**
- * @file Manages SVG shadow elements.
- * @author Zhang Wenli
- */
-
-import Definable from './Definable';
-import Displayable from '../../graphic/Displayable';
-import { Dictionary } from '../../core/types';
-import { getIdURL, getShadowKey, hasShadow, normalizeColor } from '../../svg/helper';
-import { createElement } from '../../svg/core';
-
-type DisplayableExtended = Displayable & {
-    _shadowDom: SVGElement
-}
-/**
- * Manages SVG shadow elements.
- *
- */
-export default class ShadowManager extends Definable {
-
-    private _shadowDomMap: Dictionary<SVGFilterElement> = {}
-    private _shadowDomPool: SVGFilterElement[] = []
-
-    constructor(zrId: number, svgRoot: SVGElement) {
-        super(zrId, svgRoot, ['filter'], '__filter_in_use__', '_shadowDom');
-    }
-
-    /**
-     * Add a new shadow tag in <defs>
-     *
-     * @param displayable  zrender displayable element
-     * @return created DOM
-     */
-    private _getFromPool(): SVGFilterElement {
-        let shadowDom = this._shadowDomPool.pop();    // Try to get one from trash.
-        if (!shadowDom) {
-            shadowDom = createElement('filter') as SVGFilterElement;
-            shadowDom.setAttribute('id', 'zr' + this._zrId + '-shadow-' + this.nextId++);
-            const domChild = createElement('feDropShadow');
-            shadowDom.appendChild(domChild);
-            this.addDom(shadowDom);
-        }
-
-        return shadowDom;
-    }
-
-
-    /**
-     * Update shadow.
-     */
-    update(svgElement: SVGElement, displayable: Displayable) {
-        const style = displayable.style;
-        if (hasShadow(style)) {
-            // Try getting shadow from cache.
-            const shadowKey = getShadowKey(displayable);
-            let shadowDom = (displayable as DisplayableExtended)._shadowDom = this._shadowDomMap[shadowKey];
-            if (!shadowDom) {
-                shadowDom = this._getFromPool();
-                this._shadowDomMap[shadowKey] = shadowDom;
-            }
-            this.updateDom(svgElement, displayable, shadowDom);
-        }
-        else {
-            // Remove shadow
-            this.remove(svgElement, displayable);
-        }
-    }
-
-
-    /**
-     * Remove DOM and clear parent filter
-     */
-    remove(svgElement: SVGElement, displayable: Displayable) {
-        if ((displayable as DisplayableExtended)._shadowDom != null) {
-            (displayable as DisplayableExtended)._shadowDom = null;
-            svgElement.removeAttribute('filter');
-        }
-    }
-
-
-    /**
-     * Update shadow dom
-     *
-     * @param displayable  zrender displayable element
-     * @param shadowDom DOM to update
-     */
-    updateDom(svgElement: SVGElement, displayable: Displayable, shadowDom: SVGElement) {
-        let domChild = shadowDom.children[0];
-
-        const style = displayable.style;
-        const globalScale = displayable.getGlobalScale();
-        const scaleX = globalScale[0];
-        const scaleY = globalScale[1];
-        if (!scaleX || !scaleY) {
-            return;
-        }
-
-        // TODO: textBoxShadowBlur is not supported yet
-        const offsetX = style.shadowOffsetX || 0;
-        const offsetY = style.shadowOffsetY || 0;
-        const blur = style.shadowBlur;
-        const normalizedColor = normalizeColor(style.shadowColor);
-
-        domChild.setAttribute('dx', offsetX / scaleX + '');
-        domChild.setAttribute('dy', offsetY / scaleY + '');
-        domChild.setAttribute('flood-color', normalizedColor.color);
-        domChild.setAttribute('flood-opacity', normalizedColor.opacity + '');
-
-        // Divide by two here so that it looks the same as in canvas
-        // See: https://html.spec.whatwg.org/multipage/canvas.html#dom-context-2d-shadowblur
-        const stdDx = blur / 2 / scaleX;
-        const stdDy = blur / 2 / scaleY;
-        const stdDeviation = stdDx + ' ' + stdDy;
-        domChild.setAttribute('stdDeviation', stdDeviation);
-
-        // Fix filter clipping problem
-        shadowDom.setAttribute('x', '-100%');
-        shadowDom.setAttribute('y', '-100%');
-        shadowDom.setAttribute('width', '300%');
-        shadowDom.setAttribute('height', '300%');
-
-        // Store dom element in shadow, to avoid creating multiple
-        // dom instances for the same shadow element
-        (displayable as DisplayableExtended)._shadowDom = shadowDom;
-
-        svgElement.setAttribute('filter', getIdURL(shadowDom.getAttribute('id')));
-    }
-
-    removeUnused() {
-        const defs = this.getDefs(false);
-        if (!defs) {
-            // Nothing to remove
-            return;
-        }
-        let shadowDomsPool = this._shadowDomPool;
-
-        // let currentUsedShadow = 0;
-        const shadowDomMap = this._shadowDomMap;
-        for (let key in shadowDomMap) {
-            if (shadowDomMap.hasOwnProperty(key)) {
-                shadowDomsPool.push(shadowDomMap[key]);
-            }
-            // currentUsedShadow++;
-        }
-
-        // Reset the map.
-        this._shadowDomMap = {};
-    }
-}

+ 0 - 4
node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/svg-legacy/svg-legacy.ts

@@ -1,4 +0,0 @@
-import {registerPainter} from '../zrender';
-import Painter from './Painter';
-
-registerPainter('svg-legacy', Painter);

+ 0 - 409
node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/svg/Painter.ts

@@ -1,409 +0,0 @@
-/**
- * SVG Painter
- */
-
-import {
-    brush,
-    setClipPath,
-    setGradient,
-    setPattern
-} from './graphic';
-import Displayable from '../graphic/Displayable';
-import Storage from '../Storage';
-import { PainterBase } from '../PainterBase';
-import {
-    createElement,
-    createVNode,
-    vNodeToString,
-    SVGVNodeAttrs,
-    SVGVNode,
-    getCssString,
-    BrushScope,
-    createBrushScope,
-    createSVGVNode
-} from './core';
-import { normalizeColor, encodeBase64, isGradient, isPattern } from './helper';
-import { extend, keys, logError, map, noop, retrieve2 } from '../core/util';
-import Path from '../graphic/Path';
-import patch, { updateAttrs } from './patch';
-import { getSize } from '../canvas/helper';
-import { GradientObject } from '../graphic/Gradient';
-import { PatternObject } from '../graphic/Pattern';
-
-let svgId = 0;
-
-interface SVGPainterOption {
-    width?: number
-    height?: number
-    ssr?: boolean
-}
-
-type SVGPainterBackgroundColor = string | GradientObject | PatternObject;
-
-class SVGPainter implements PainterBase {
-
-    type = 'svg'
-
-    storage: Storage
-
-    root: HTMLElement
-
-    private _svgDom: SVGElement
-    private _viewport: HTMLElement
-
-    private _opts: SVGPainterOption
-
-    private _oldVNode: SVGVNode
-    private _bgVNode: SVGVNode
-    private _mainVNode: SVGVNode
-
-    private _width: number
-    private _height: number
-
-    private _backgroundColor: SVGPainterBackgroundColor
-
-    private _id: string
-
-    constructor(root: HTMLElement, storage: Storage, opts: SVGPainterOption) {
-        this.storage = storage;
-        this._opts = opts = extend({}, opts);
-
-        this.root = root;
-        // A unique id for generating svg ids.
-        this._id = 'zr' + svgId++;
-
-        this._oldVNode = createSVGVNode(opts.width, opts.height);
-
-        if (root && !opts.ssr) {
-            const viewport = this._viewport = document.createElement('div');
-            viewport.style.cssText = 'position:relative;overflow:hidden';
-            const svgDom = this._svgDom = this._oldVNode.elm = createElement('svg');
-            updateAttrs(null, this._oldVNode);
-            viewport.appendChild(svgDom);
-            root.appendChild(viewport);
-        }
-
-        this.resize(opts.width, opts.height);
-    }
-
-    getType() {
-        return this.type;
-    }
-
-    getViewportRoot() {
-        return this._viewport;
-    }
-    getViewportRootOffset() {
-        const viewportRoot = this.getViewportRoot();
-        if (viewportRoot) {
-            return {
-                offsetLeft: viewportRoot.offsetLeft || 0,
-                offsetTop: viewportRoot.offsetTop || 0
-            };
-        }
-    }
-
-    getSvgDom() {
-        return this._svgDom;
-    }
-
-    refresh() {
-        if (this.root) {
-            const vnode = this.renderToVNode({
-                willUpdate: true
-            });
-            // Disable user selection.
-            vnode.attrs.style = 'position:absolute;left:0;top:0;user-select:none';
-            patch(this._oldVNode, vnode);
-            this._oldVNode = vnode;
-        }
-    }
-
-    renderOneToVNode(el: Displayable) {
-        return brush(el, createBrushScope(this._id));
-    }
-
-    renderToVNode(opts?: {
-        animation?: boolean,
-        willUpdate?: boolean,
-        compress?: boolean,
-        useViewBox?: boolean,
-        emphasis?: boolean
-    }) {
-
-        opts = opts || {};
-
-        const list = this.storage.getDisplayList(true);
-        const width = this._width;
-        const height = this._height;
-
-        const scope = createBrushScope(this._id);
-        scope.animation = opts.animation;
-        scope.willUpdate = opts.willUpdate;
-        scope.compress = opts.compress;
-        scope.emphasis = opts.emphasis;
-
-        const children: SVGVNode[] = [];
-
-        const bgVNode = this._bgVNode = createBackgroundVNode(width, height, this._backgroundColor, scope);
-        bgVNode && children.push(bgVNode);
-
-        // Ignore the root g if wan't the output to be more tight.
-        const mainVNode = !opts.compress
-            ? (this._mainVNode = createVNode('g', 'main', {}, [])) : null;
-        this._paintList(list, scope, mainVNode ? mainVNode.children : children);
-        mainVNode && children.push(mainVNode);
-
-        const defs = map(keys(scope.defs), (id) => scope.defs[id]);
-        if (defs.length) {
-            children.push(createVNode('defs', 'defs', {}, defs));
-        }
-
-        if (opts.animation) {
-            const animationCssStr = getCssString(scope.cssNodes, scope.cssAnims, { newline: true });
-            if (animationCssStr) {
-                const styleNode = createVNode('style', 'stl', {}, [], animationCssStr);
-                children.push(styleNode);
-            }
-        }
-
-        return createSVGVNode(width, height, children, opts.useViewBox);
-    }
-
-    renderToString(opts?: {
-        /**
-         * If add css animation.
-         * @default true
-         */
-        cssAnimation?: boolean,
-        /**
-         * If add css emphasis.
-         * @default true
-         */
-        cssEmphasis?: boolean,
-        /**
-         * If use viewBox
-         * @default true
-         */
-        useViewBox?: boolean
-    }) {
-        opts = opts || {};
-        return vNodeToString(this.renderToVNode({
-            animation: retrieve2(opts.cssAnimation, true),
-            emphasis: retrieve2(opts.cssEmphasis, true),
-            willUpdate: false,
-            compress: true,
-            useViewBox: retrieve2(opts.useViewBox, true)
-        }), { newline: true });
-    }
-
-    setBackgroundColor(backgroundColor: SVGPainterBackgroundColor) {
-        this._backgroundColor = backgroundColor;
-    }
-
-    getSvgRoot() {
-        return this._mainVNode && this._mainVNode.elm as SVGElement;
-    }
-
-    _paintList(list: Displayable[], scope: BrushScope, out?: SVGVNode[]) {
-        const listLen = list.length;
-
-        const clipPathsGroupsStack: SVGVNode[] = [];
-        let clipPathsGroupsStackDepth = 0;
-        let currentClipPathGroup;
-        let prevClipPaths: Path[];
-        let clipGroupNodeIdx = 0;
-        for (let i = 0; i < listLen; i++) {
-            const displayable = list[i];
-            if (!displayable.invisible) {
-                const clipPaths = displayable.__clipPaths;
-                const len = clipPaths && clipPaths.length || 0;
-                const prevLen = prevClipPaths && prevClipPaths.length || 0;
-                let lca;
-                // Find the lowest common ancestor
-                for (lca = Math.max(len - 1, prevLen - 1); lca >= 0; lca--) {
-                    if (clipPaths && prevClipPaths
-                        && clipPaths[lca] === prevClipPaths[lca]
-                    ) {
-                        break;
-                    }
-                }
-                // pop the stack
-                for (let i = prevLen - 1; i > lca; i--) {
-                    clipPathsGroupsStackDepth--;
-                    // svgEls.push(closeGroup);
-                    currentClipPathGroup = clipPathsGroupsStack[clipPathsGroupsStackDepth - 1];
-                }
-                // Pop clip path group for clipPaths not match the previous.
-                for (let i = lca + 1; i < len; i++) {
-                    const groupAttrs: SVGVNodeAttrs = {};
-                    setClipPath(
-                        clipPaths[i],
-                        groupAttrs,
-                        scope
-                    );
-                    const g = createVNode(
-                        'g',
-                        'clip-g-' + clipGroupNodeIdx++,
-                        groupAttrs,
-                        []
-                    );
-                    (currentClipPathGroup ? currentClipPathGroup.children : out).push(g);
-                    clipPathsGroupsStack[clipPathsGroupsStackDepth++] = g;
-                    currentClipPathGroup = g;
-                }
-                prevClipPaths = clipPaths;
-
-                const ret = brush(displayable, scope);
-                if (ret) {
-                    (currentClipPathGroup ? currentClipPathGroup.children : out).push(ret);
-                }
-            }
-        }
-    }
-
-    resize(width: number, height: number) {
-        // Save input w/h
-        const opts = this._opts;
-        const root = this.root;
-        const viewport = this._viewport;
-        width != null && (opts.width = width);
-        height != null && (opts.height = height);
-
-        if (root && viewport) {
-            // FIXME Why ?
-            viewport.style.display = 'none';
-
-            width = getSize(root, 0, opts);
-            height = getSize(root, 1, opts);
-
-            viewport.style.display = '';
-        }
-
-        if (this._width !== width || this._height !== height) {
-            this._width = width;
-            this._height = height;
-
-            if (viewport) {
-                const viewportStyle = viewport.style;
-                viewportStyle.width = width + 'px';
-                viewportStyle.height = height + 'px';
-            }
-
-            if (!isPattern(this._backgroundColor)) {
-                const svgDom = this._svgDom;
-                if (svgDom) {
-                    // Set width by 'svgRoot.width = width' is invalid
-                    svgDom.setAttribute('width', width as any);
-                    svgDom.setAttribute('height', height as any);
-                }
-
-                const bgEl = this._bgVNode && this._bgVNode.elm as SVGElement;
-                if (bgEl) {
-                    bgEl.setAttribute('width', width as any);
-                    bgEl.setAttribute('height', height as any);
-                }
-            }
-            else {
-                // pattern backgroundColor requires a full refresh
-                this.refresh();
-            }
-        }
-    }
-
-    /**
-     * 获取绘图区域宽度
-     */
-    getWidth() {
-        return this._width;
-    }
-
-    /**
-     * 获取绘图区域高度
-     */
-    getHeight() {
-        return this._height;
-    }
-
-    dispose() {
-        if (this.root) {
-            this.root.innerHTML = '';
-        }
-
-        this._svgDom =
-        this._viewport =
-        this.storage =
-        this._oldVNode =
-        this._bgVNode =
-        this._mainVNode = null;
-    }
-    clear() {
-        if (this._svgDom) {
-            this._svgDom.innerHTML = null;
-        }
-        this._oldVNode = null;
-    }
-    toDataURL(base64?: boolean) {
-        let str = this.renderToString();
-        const prefix = 'data:image/svg+xml;';
-        if (base64) {
-            str = encodeBase64(str);
-            return str && prefix + 'base64,' + str;
-        }
-        return prefix + 'charset=UTF-8,' + encodeURIComponent(str);
-    }
-
-    refreshHover = createMethodNotSupport('refreshHover') as PainterBase['refreshHover'];
-    configLayer = createMethodNotSupport('configLayer') as PainterBase['configLayer'];
-}
-
-
-// Not supported methods
-function createMethodNotSupport(method: string): any {
-    return function () {
-        if (process.env.NODE_ENV !== 'production') {
-            logError('In SVG mode painter not support method "' + method + '"');
-        }
-    };
-}
-
-function createBackgroundVNode(
-    width: number,
-    height: number,
-    backgroundColor: SVGPainterBackgroundColor,
-    scope: BrushScope
-) {
-    let bgVNode;
-    if (backgroundColor && backgroundColor !== 'none') {
-        bgVNode = createVNode(
-            'rect',
-            'bg',
-            {
-                width,
-                height,
-                x: '0',
-                y: '0'
-            }
-        );
-        if (isGradient(backgroundColor)) {
-            setGradient({ fill: backgroundColor as any }, bgVNode.attrs, 'fill', scope);
-        }
-        else if (isPattern(backgroundColor)) {
-            setPattern({
-                style: {
-                    fill: backgroundColor
-                },
-                dirty: noop,
-                getBoundingRect: () => ({ width, height })
-            } as any, bgVNode.attrs, 'fill', scope);
-        }
-        else {
-            const { color, opacity } = normalizeColor(backgroundColor);
-            bgVNode.attrs.fill = color;
-            opacity < 1 && (bgVNode.attrs['fill-opacity'] = opacity);
-        }
-    }
-    return bgVNode;
-}
-
-export default SVGPainter;

+ 0 - 151
node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/svg/SVGPathRebuilder.ts

@@ -1,151 +0,0 @@
-import { PathRebuilder } from '../core/PathProxy';
-import { isAroundZero } from './helper';
-
-const mathSin = Math.sin;
-const mathCos = Math.cos;
-const PI = Math.PI;
-const PI2 = Math.PI * 2;
-const degree = 180 / PI;
-
-
-export default class SVGPathRebuilder implements PathRebuilder {
-    private _d: (string | number)[]
-    private _str: string
-    private _invalid: boolean
-
-    // If is start of subpath
-    private _start: boolean
-    private _p: number
-
-    reset(precision?: number) {
-        this._start = true;
-        this._d = [];
-        this._str = '';
-
-        this._p = Math.pow(10, precision || 4);
-    }
-    moveTo(x: number, y: number) {
-        this._add('M', x, y);
-    }
-    lineTo(x: number, y: number) {
-        this._add('L', x, y);
-    }
-    bezierCurveTo(x: number, y: number, x2: number, y2: number, x3: number, y3: number) {
-        this._add('C', x, y, x2, y2, x3, y3);
-    }
-    quadraticCurveTo(x: number, y: number, x2: number, y2: number) {
-        this._add('Q', x, y, x2, y2);
-    }
-    arc(cx: number, cy: number, r: number, startAngle: number, endAngle: number, anticlockwise: boolean) {
-        this.ellipse(cx, cy, r, r, 0, startAngle, endAngle, anticlockwise);
-    }
-    ellipse(
-        cx: number, cy: number,
-        rx: number, ry: number,
-        psi: number,
-        startAngle: number,
-        endAngle: number,
-        anticlockwise: boolean
-    ) {
-        let dTheta = endAngle - startAngle;
-        const clockwise = !anticlockwise;
-
-        const dThetaPositive = Math.abs(dTheta);
-        const isCircle = isAroundZero(dThetaPositive - PI2)
-            || (clockwise ? dTheta >= PI2 : -dTheta >= PI2);
-
-        // Mapping to 0~2PI
-        const unifiedTheta = dTheta > 0 ? dTheta % PI2 : (dTheta % PI2 + PI2);
-
-        let large = false;
-        if (isCircle) {
-            large = true;
-        }
-        else if (isAroundZero(dThetaPositive)) {
-            large = false;
-        }
-        else {
-            large = (unifiedTheta >= PI) === !!clockwise;
-        }
-
-        const x0 = cx + rx * mathCos(startAngle);
-        const y0 = cy + ry * mathSin(startAngle);
-
-        if (this._start) {
-            // Move to (x0, y0) only when CMD.A comes at the
-            // first position of a shape.
-            // For instance, when drawing a ring, CMD.A comes
-            // after CMD.M, so it's unnecessary to move to
-            // (x0, y0).
-            this._add('M', x0, y0);
-        }
-
-        const xRot = Math.round(psi * degree);
-        // It will not draw if start point and end point are exactly the same
-        // We need to add two arcs
-        if (isCircle) {
-            const p = 1 / this._p;
-            const dTheta = (clockwise ? 1 : -1) * (PI2 - p);
-            this._add(
-                'A', rx, ry, xRot, 1, +clockwise,
-                cx + rx * mathCos(startAngle + dTheta),
-                cy + ry * mathSin(startAngle + dTheta)
-            );
-            // TODO.
-            // Usually we can simply divide the circle into two halfs arcs.
-            // But it will cause slightly diff with previous screenshot.
-            // We can't tell it but visual regression test can. To avoid too much breaks.
-            // We keep the logic on the browser as before.
-            // But in SSR mode wich has lower precision. We close the circle by adding another arc.
-            if (p > 1e-2) {
-                this._add('A', rx, ry, xRot, 0, +clockwise, x0, y0);
-            }
-        }
-        else {
-            const x = cx + rx * mathCos(endAngle);
-            const y = cy + ry * mathSin(endAngle);
-
-            // FIXME Ellipse
-            this._add('A', rx, ry, xRot, +large, +clockwise, x, y);
-        }
-
-    }
-    rect(x: number, y: number, w: number, h: number) {
-        this._add('M', x, y);
-        // Use relative coordinates to reduce the size.
-        this._add('l', w, 0);
-        this._add('l', 0, h);
-        this._add('l', -w, 0);
-        // this._add('L', x, y);
-        this._add('Z');
-    }
-    closePath() {
-        // Not use Z as first command
-        if (this._d.length > 0) {
-            this._add('Z');
-        }
-    }
-
-    _add(cmd: string, a?: number, b?: number, c?: number, d?: number, e?: number, f?: number, g?: number, h?: number) {
-        const vals = [];
-        const p = this._p;
-        for (let i = 1; i < arguments.length; i++) {
-            const val = arguments[i];
-            if (isNaN(val)) {
-                this._invalid = true;
-                return;
-            }
-            vals.push(Math.round(val * p) / p);
-        }
-        this._d.push(cmd + vals.join(' '));
-        this._start = cmd === 'Z';
-    }
-
-    generateStr() {
-        this._str = this._invalid ? '' : this._d.join('');
-        this._d = [];
-    }
-    getStr() {
-        return this._str;
-    }
-}

+ 0 - 206
node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/svg/core.ts

@@ -1,206 +0,0 @@
-import { keys, map } from '../core/util';
-import { encodeHTML } from '../core/dom';
-
-export type CSSSelectorVNode = Record<string, string>
-export type CSSAnimationVNode = Record<string, Record<string, string>>
-
-export const SVGNS = 'http://www.w3.org/2000/svg';
-export const XLINKNS = 'http://www.w3.org/1999/xlink';
-export const XMLNS = 'http://www.w3.org/2000/xmlns/';
-export const XML_NAMESPACE = 'http://www.w3.org/XML/1998/namespace';
-export const META_DATA_PREFIX = 'ecmeta_';
-
-export function createElement(name: string) {
-    return document.createElementNS(SVGNS, name);
-}
-
-export type SVGVNodeAttrs = Record<string, string | number | undefined | boolean>
-export interface SVGVNode {
-    tag: string,
-    attrs: SVGVNodeAttrs,
-    children?: SVGVNode[],
-    text?: string
-
-    // For patching
-    elm?: Node
-    key: string
-};
-export function createVNode(
-    tag: string,
-    key: string,
-    attrs?: SVGVNodeAttrs,
-    children?: SVGVNode[],
-    text?: string
-): SVGVNode {
-    return {
-        tag,
-        attrs: attrs || {},
-        children,
-        text,
-        key
-    };
-}
-
-function createElementOpen(name: string, attrs?: SVGVNodeAttrs) {
-    const attrsStr: string[] = [];
-    if (attrs) {
-        // eslint-disable-next-line
-        for (let key in attrs) {
-            const val = attrs[key];
-            let part = key;
-            // Same with the logic in patch.
-            if (val === false) {
-                continue;
-            }
-            else if (val !== true && val != null) {
-                part += `="${val}"`;
-            }
-            attrsStr.push(part);
-        }
-    }
-    return `<${name} ${attrsStr.join(' ')}>`;
-}
-
-function createElementClose(name: string) {
-    return `</${name}>`;
-}
-
-export function vNodeToString(el: SVGVNode, opts?: {
-    newline?: boolean
-}) {
-    opts = opts || {};
-    const S = opts.newline ? '\n' : '';
-    function convertElToString(el: SVGVNode): string {
-        const {children, tag, attrs, text} = el;
-        return createElementOpen(tag, attrs)
-            + (tag !== 'style' ? encodeHTML(text) : text || '')
-            + (children ? `${S}${map(children, child => convertElToString(child)).join(S)}${S}` : '')
-            + createElementClose(tag);
-    }
-    return convertElToString(el);
-}
-
-export function getCssString(
-    selectorNodes: Record<string, CSSSelectorVNode>,
-    animationNodes: Record<string, CSSAnimationVNode>,
-    opts?: {
-        newline?: boolean
-    }
-) {
-    opts = opts || {};
-    const S = opts.newline ? '\n' : '';
-    const bracketBegin = ` {${S}`;
-    const bracketEnd = `${S}}`;
-    const selectors = map(keys(selectorNodes), className => {
-        return className + bracketBegin + map(keys(selectorNodes[className]), attrName => {
-            return `${attrName}:${selectorNodes[className][attrName]};`;
-        }).join(S) + bracketEnd;
-    }).join(S);
-    const animations = map(keys(animationNodes), (animationName) => {
-        return `@keyframes ${animationName}${bracketBegin}` + map(keys(animationNodes[animationName]), percent => {
-            return percent + bracketBegin + map(keys(animationNodes[animationName][percent]), attrName => {
-                let val = animationNodes[animationName][percent][attrName];
-                // postprocess
-                if (attrName === 'd') {
-                    val = `path("${val}")`;
-                }
-                return `${attrName}:${val};`;
-            }).join(S) + bracketEnd;
-        }).join(S) + bracketEnd;
-    }).join(S);
-
-    if (!selectors && !animations) {
-        return '';
-    }
-
-    return ['<![CDATA[', selectors, animations, ']]>'].join(S);
-}
-
-
-export interface BrushScope {
-    zrId: string
-
-    shadowCache: Record<string, string>
-    gradientCache: Record<string, string>
-    patternCache: Record<string, string>
-    clipPathCache: Record<string, string>
-
-    defs: Record<string, SVGVNode>
-
-    cssNodes: Record<string, CSSSelectorVNode>
-    cssAnims: Record<string, Record<string, Record<string, string>>>
-    /**
-     * Cache for css style string, mapping from style string to class name.
-     */
-    cssStyleCache: Record<string, string>
-
-    cssAnimIdx: number
-
-    shadowIdx: number
-    gradientIdx: number
-    patternIdx: number
-    clipPathIdx: number
-    // configs
-    /**
-     * If create animates nodes.
-     */
-    animation?: boolean,
-    /**
-     * If create emphasis styles.
-     */
-    emphasis?: boolean,
-
-    /**
-     * If will update. Some optimization for string generation can't be applied.
-     */
-    willUpdate?: boolean
-
-    /**
-     * If compress the output string.
-     */
-    compress?: boolean
-}
-
-export function createBrushScope(zrId: string): BrushScope {
-    return {
-        zrId,
-        shadowCache: {},
-        patternCache: {},
-        gradientCache: {},
-        clipPathCache: {},
-        defs: {},
-
-        cssNodes: {},
-        cssAnims: {},
-        cssStyleCache: {},
-
-        cssAnimIdx: 0,
-
-        shadowIdx: 0,
-        gradientIdx: 0,
-        patternIdx: 0,
-        clipPathIdx: 0
-    };
-}
-
-export function createSVGVNode(
-    width: number | string,
-    height: number | string,
-    children?: SVGVNode[],
-    useViewBox?: boolean
-) {
-    return createVNode(
-        'svg',
-        'root',
-        {
-            'width': width,
-            'height': height,
-            'xmlns': SVGNS,
-            'xmlns:xlink': XLINKNS,
-            'version': '1.1',
-            'baseProfile': 'full',
-            'viewBox': useViewBox ? `0 0 ${width} ${height}` : false
-        },
-        children
-    );
-}

+ 0 - 366
node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/svg/cssAnimation.ts

@@ -1,366 +0,0 @@
-import Transformable, { copyTransform } from '../core/Transformable';
-import Displayable from '../graphic/Displayable';
-import { SVGVNodeAttrs, BrushScope, createBrushScope} from './core';
-import Path from '../graphic/Path';
-import SVGPathRebuilder from './SVGPathRebuilder';
-import PathProxy from '../core/PathProxy';
-import { getPathPrecision, getSRTTransformString } from './helper';
-import { each, extend, filter, isNumber, isString, keys } from '../core/util';
-import Animator from '../animation/Animator';
-import CompoundPath from '../graphic/CompoundPath';
-import { AnimationEasing } from '../animation/easing';
-import { createCubicEasingFunc } from '../animation/cubicEasing';
-import { getClassId } from './cssClassId';
-
-export const EASING_MAP: Record<string, string> = {
-    // From https://easings.net/
-    cubicIn: '0.32,0,0.67,0',
-    cubicOut: '0.33,1,0.68,1',
-    cubicInOut: '0.65,0,0.35,1',
-    quadraticIn: '0.11,0,0.5,0',
-    quadraticOut: '0.5,1,0.89,1',
-    quadraticInOut: '0.45,0,0.55,1',
-    quarticIn: '0.5,0,0.75,0',
-    quarticOut: '0.25,1,0.5,1',
-    quarticInOut: '0.76,0,0.24,1',
-    quinticIn: '0.64,0,0.78,0',
-    quinticOut: '0.22,1,0.36,1',
-    quinticInOut: '0.83,0,0.17,1',
-    sinusoidalIn: '0.12,0,0.39,0',
-    sinusoidalOut: '0.61,1,0.88,1',
-    sinusoidalInOut: '0.37,0,0.63,1',
-    exponentialIn: '0.7,0,0.84,0',
-    exponentialOut: '0.16,1,0.3,1',
-    exponentialInOut: '0.87,0,0.13,1',
-    circularIn: '0.55,0,1,0.45',
-    circularOut: '0,0.55,0.45,1',
-    circularInOut: '0.85,0,0.15,1'
-    // TODO elastic, bounce
-};
-
-const transformOriginKey = 'transform-origin';
-
-function buildPathString(el: Path, kfShape: Path['shape'], path: PathProxy) {
-    const shape = extend({}, el.shape);
-    extend(shape, kfShape);
-
-    el.buildPath(path, shape);
-    const svgPathBuilder = new SVGPathRebuilder();
-    svgPathBuilder.reset(getPathPrecision(el));
-    path.rebuildPath(svgPathBuilder, 1);
-    svgPathBuilder.generateStr();
-    // will add path("") when generated to css string in the final step.
-    return svgPathBuilder.getStr();
-}
-
-function setTransformOrigin(target: Record<string, string>, transform: Transformable) {
-    const {originX, originY} = transform;
-    if (originX || originY) {
-        target[transformOriginKey] = `${originX}px ${originY}px`;
-    }
-}
-
-export const ANIMATE_STYLE_MAP: Record<string, string> = {
-    fill: 'fill',
-    opacity: 'opacity',
-    lineWidth: 'stroke-width',
-    lineDashOffset: 'stroke-dashoffset'
-    // TODO shadow is not supported.
-};
-
-type CssKF = Record<string, any>;
-
-function addAnimation(cssAnim: Record<string, CssKF>, scope: BrushScope) {
-    const animationName = scope.zrId + '-ani-' + scope.cssAnimIdx++;
-    scope.cssAnims[animationName] = cssAnim;
-    return animationName;
-}
-
-function createCompoundPathCSSAnimation(
-    el: CompoundPath,
-    attrs: SVGVNodeAttrs,
-    scope: BrushScope
-) {
-    const paths = el.shape.paths;
-    const composedAnim: Record<string, CssKF> = {};
-    let cssAnimationCfg: string;
-    let cssAnimationName: string;
-    each(paths, path => {
-        const subScope = createBrushScope(scope.zrId);
-        subScope.animation = true;
-        createCSSAnimation(path, {}, subScope, true);
-        const cssAnims = subScope.cssAnims;
-        const cssNodes = subScope.cssNodes;
-        const animNames = keys(cssAnims);
-        const len = animNames.length;
-        if (!len) {
-            return;
-        }
-        cssAnimationName = animNames[len - 1];
-        // Only use last animation because they are conflicted.
-        const lastAnim = cssAnims[cssAnimationName];
-        // eslint-disable-next-line
-        for (let percent in lastAnim) {
-            const kf = lastAnim[percent];
-            composedAnim[percent] = composedAnim[percent] || { d: '' };
-            composedAnim[percent].d += kf.d || '';
-        }
-        // eslint-disable-next-line
-        for (let className in cssNodes) {
-            const val = cssNodes[className].animation;
-            if (val.indexOf(cssAnimationName) >= 0) {
-                // Only pick the animation configuration of last subpath.
-                cssAnimationCfg = val;
-            }
-        }
-    });
-
-    if (!cssAnimationCfg) {
-        return;
-    }
-
-    // Remove the attrs in the element because it will be set by animation.
-    // Reduce the size.
-    attrs.d = false;
-    const animationName = addAnimation(composedAnim, scope);
-    return cssAnimationCfg.replace(cssAnimationName, animationName);
-}
-
-function getEasingFunc(easing: AnimationEasing) {
-    return isString(easing)
-        ? EASING_MAP[easing]
-            ? `cubic-bezier(${EASING_MAP[easing]})`
-            : createCubicEasingFunc(easing) ? easing : ''
-        : '';
-}
-
-export function createCSSAnimation(
-    el: Displayable,
-    attrs: SVGVNodeAttrs,
-    scope: BrushScope,
-    onlyShape?: boolean
-) {
-    const animators = el.animators;
-    const len = animators.length;
-
-    const cssAnimations: string[] = [];
-
-    if (el instanceof CompoundPath) {
-        const animationCfg = createCompoundPathCSSAnimation(el, attrs, scope);
-        if (animationCfg) {
-            cssAnimations.push(animationCfg);
-        }
-        else if (!len) {
-            return;
-        }
-    }
-    else if (!len) {
-        return;
-    }
-    // Group animators by it's configuration
-    const groupAnimators: Record<string, [string, Animator<any>[]]> = {};
-    for (let i = 0; i < len; i++) {
-        const animator = animators[i];
-        const cfgArr: (string | number)[] = [animator.getMaxTime() / 1000 + 's'];
-        const easing = getEasingFunc(animator.getClip().easing);
-        const delay = animator.getDelay();
-
-        if (easing) {
-            cfgArr.push(easing);
-        }
-        else {
-            cfgArr.push('linear');
-        }
-        if (delay) {
-            cfgArr.push(delay / 1000 + 's');
-        }
-        if (animator.getLoop()) {
-            cfgArr.push('infinite');
-        }
-        const cfg = cfgArr.join(' ');
-
-        // TODO fill mode
-        groupAnimators[cfg] = groupAnimators[cfg] || [cfg, [] as Animator<any>[]];
-        groupAnimators[cfg][1].push(animator);
-    }
-
-    function createSingleCSSAnimation(groupAnimator: [string, Animator<any>[]]) {
-        const animators = groupAnimator[1];
-        const len = animators.length;
-        const transformKfs: Record<string, CssKF> = {};
-        const shapeKfs: Record<string, CssKF> = {};
-
-        const finalKfs: Record<string, CssKF> = {};
-
-        const animationTimingFunctionAttrName = 'animation-timing-function';
-
-        function saveAnimatorTrackToCssKfs(
-            animator: Animator<any>,
-            cssKfs: Record<string, CssKF>,
-            toCssAttrName?: (propName: string) => string
-        ) {
-            const tracks = animator.getTracks();
-            const maxTime = animator.getMaxTime();
-            for (let k = 0; k < tracks.length; k++) {
-                const track = tracks[k];
-                if (track.needsAnimate()) {
-                    const kfs = track.keyframes;
-                    let attrName = track.propName;
-                    toCssAttrName && (attrName = toCssAttrName(attrName));
-                    if (attrName) {
-                        for (let i = 0; i < kfs.length; i++) {
-                            const kf = kfs[i];
-                            const percent = Math.round(kf.time / maxTime * 100) + '%';
-                            const kfEasing = getEasingFunc(kf.easing);
-                            const rawValue = kf.rawValue;
-
-                            // TODO gradient
-                            if (isString(rawValue) || isNumber(rawValue)) {
-                                cssKfs[percent] = cssKfs[percent] || {};
-                                cssKfs[percent][attrName] = kf.rawValue;
-
-                                if (kfEasing) {
-                                    // TODO. If different property have different easings.
-                                    cssKfs[percent][animationTimingFunctionAttrName] = kfEasing;
-                                }
-                            }
-                        }
-                    }
-                }
-            }
-        }
-
-        // Find all transform animations.
-        // TODO origin, parent
-        for (let i = 0; i < len; i++) {
-            const animator = animators[i];
-            const targetProp = animator.targetName;
-            if (!targetProp) {
-                !onlyShape && saveAnimatorTrackToCssKfs(animator, transformKfs);
-            }
-            else if (targetProp === 'shape') {
-                saveAnimatorTrackToCssKfs(animator, shapeKfs);
-            }
-        }
-
-        // eslint-disable-next-line
-        for (let percent in transformKfs) {
-            const transform = {} as Transformable;
-            copyTransform(transform, el);
-            extend(transform, transformKfs[percent]);
-            const str = getSRTTransformString(transform);
-            const timingFunction = transformKfs[percent][animationTimingFunctionAttrName];
-            finalKfs[percent] = str ? {
-                transform: str
-            } : {};
-            // TODO set transform origin in element?
-            setTransformOrigin(finalKfs[percent], transform);
-
-            // Save timing function
-            if (timingFunction) {
-                finalKfs[percent][animationTimingFunctionAttrName] = timingFunction;
-            }
-        };
-
-
-        let path: PathProxy;
-        let canAnimateShape = true;
-        // eslint-disable-next-line
-        for (let percent in shapeKfs) {
-            finalKfs[percent] = finalKfs[percent] || {};
-
-            const isFirst = !path;
-            const timingFunction = shapeKfs[percent][animationTimingFunctionAttrName];
-
-            if (isFirst) {
-                path = new PathProxy();
-            }
-            let len = path.len();
-            path.reset();
-            finalKfs[percent].d = buildPathString(el as Path, shapeKfs[percent], path);
-            let newLen = path.len();
-            // Path data don't match.
-            if (!isFirst && len !== newLen) {
-                canAnimateShape = false;
-                break;
-            }
-
-            // Save timing function
-            if (timingFunction) {
-                finalKfs[percent][animationTimingFunctionAttrName] = timingFunction;
-            }
-        };
-        if (!canAnimateShape) {
-            // eslint-disable-next-line
-            for (let percent in finalKfs) {
-                delete finalKfs[percent].d;
-            }
-        }
-
-        if (!onlyShape) {
-            for (let i = 0; i < len; i++) {
-                const animator = animators[i];
-                const targetProp = animator.targetName;
-                if (targetProp === 'style') {
-                    saveAnimatorTrackToCssKfs(
-                        animator, finalKfs, (propName) => ANIMATE_STYLE_MAP[propName]
-                    );
-                }
-            }
-        }
-
-        const percents = keys(finalKfs);
-
-        // Set transform origin in attribute to reduce the size.
-        let allTransformOriginSame = true;
-        let transformOrigin;
-        for (let i = 1; i < percents.length; i++) {
-            const p0 = percents[i - 1];
-            const p1 = percents[i];
-            if (finalKfs[p0][transformOriginKey] !== finalKfs[p1][transformOriginKey]) {
-                allTransformOriginSame = false;
-                break;
-            }
-            transformOrigin = finalKfs[p0][transformOriginKey];
-        }
-        if (allTransformOriginSame && transformOrigin) {
-            for (const percent in finalKfs) {
-                if (finalKfs[percent][transformOriginKey]) {
-                    delete finalKfs[percent][transformOriginKey];
-                }
-            }
-            attrs[transformOriginKey] = transformOrigin;
-        }
-
-        if (filter(
-            percents, (percent) => keys(finalKfs[percent]).length > 0
-        ).length) {
-            const animationName = addAnimation(finalKfs, scope);
-            // eslint-disable-next-line
-            // for (const attrName in finalKfs[percents[0]]) {
-            //     // Remove the attrs in the element because it will be set by animation.
-            //     // Reduce the size.
-            //     attrs[attrName] = false;
-            // }
-            // animationName {duration easing delay loop} fillMode
-            return `${animationName} ${groupAnimator[0]} both`;
-        }
-    }
-
-    // eslint-disable-next-line
-    for (let key in groupAnimators) {
-        const animationCfg = createSingleCSSAnimation(groupAnimators[key]);
-        if (animationCfg) {
-            cssAnimations.push(animationCfg);
-        }
-    }
-
-    if (cssAnimations.length) {
-        const className = scope.zrId + '-cls-' + getClassId();
-        scope.cssNodes['.' + className] = {
-            animation: cssAnimations.join(',')
-        };
-        // TODO exists class?
-        attrs.class = className;
-    }
-}

+ 0 - 5
node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/svg/cssClassId.ts

@@ -1,5 +0,0 @@
-let cssClassIdx = 0;
-
-export function getClassId() {
-    return cssClassIdx++;
-}

+ 0 - 73
node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/svg/cssEmphasis.ts

@@ -1,73 +0,0 @@
-import Displayable from '../graphic/Displayable';
-import { liftColor } from '../tool/color';
-import { BrushScope, SVGVNodeAttrs } from './core';
-import { getClassId } from './cssClassId';
-
-export function createCSSEmphasis(
-    el: Displayable,
-    attrs: SVGVNodeAttrs,
-    scope: BrushScope
-) {
-    if (!el.ignore) {
-        if (el.isSilent()) {
-            // If el is silent, it can not be hovered nor selected.
-            // So set pointer-events to pass through.
-            const style = {
-                'pointer-events': 'none'
-            };
-            setClassAttribute(style, attrs, scope, true);
-        }
-        else {
-            const emphasisStyle = el.states.emphasis && el.states.emphasis.style
-                ? el.states.emphasis.style
-                : {};
-            let fill = emphasisStyle.fill;
-            if (!fill) {
-                // No empahsis fill, lift color
-                const normalFill = el.style && el.style.fill;
-                const selectFill = el.states.select
-                    && el.states.select.style
-                    && el.states.select.style.fill;
-                const fromFill = el.currentStates.indexOf('select') >= 0
-                    ? (selectFill || normalFill)
-                    : normalFill;
-                if (fromFill) {
-                    fill = liftColor(fromFill);
-                }
-            }
-            let lineWidth = emphasisStyle.lineWidth;
-            if (lineWidth) {
-                // Symbols use transform to set size, so lineWidth
-                // should be divided by scaleX
-                const scaleX = (!emphasisStyle.strokeNoScale && el.transform)
-                    ? el.transform[0]
-                    : 1;
-                lineWidth = lineWidth / scaleX;
-            }
-            const style = {
-                cursor: 'pointer', // TODO: Should this be customized?
-            } as any;
-            if (fill) {
-                style.fill = fill;
-            }
-            if (emphasisStyle.stroke) {
-                style.stroke = emphasisStyle.stroke;
-            }
-            if (lineWidth) {
-                style['stroke-width'] = lineWidth;
-            }
-            setClassAttribute(style, attrs, scope, true);
-        }
-    }
-}
-
-function setClassAttribute(style: object, attrs: SVGVNodeAttrs, scope: BrushScope, withHover: boolean) {
-    const styleKey = JSON.stringify(style);
-    let className = scope.cssStyleCache[styleKey];
-    if (!className) {
-        className = scope.zrId + '-cls-' + getClassId();
-        scope.cssStyleCache[styleKey] = className;
-        scope.cssNodes['.' + className + (withHover ? ':hover' : '')] = style as any;
-    }
-    attrs.class = attrs.class ? (attrs.class + ' ' + className) : className;
-}

+ 0 - 55
node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/svg/domapi.ts

@@ -1,55 +0,0 @@
-export function createTextNode(text: string): Text {
-    return document.createTextNode(text);
-}
-
-export function createComment(text: string): Comment {
-    return document.createComment(text);
-}
-
-export function insertBefore(
-    parentNode: Node,
-    newNode: Node,
-    referenceNode: Node | null
-): void {
-    parentNode.insertBefore(newNode, referenceNode);
-}
-
-export function removeChild(node: Node, child: Node): void {
-    node.removeChild(child);
-}
-
-export function appendChild(node: Node, child: Node): void {
-    node.appendChild(child);
-}
-
-export function parentNode(node: Node): Node | null {
-    return node.parentNode;
-}
-
-export function nextSibling(node: Node): Node | null {
-    return node.nextSibling;
-}
-
-export function tagName(elm: Element): string {
-    return elm.tagName;
-}
-
-export function setTextContent(node: Node, text: string | null): void {
-    node.textContent = text;
-}
-
-export function getTextContent(node: Node): string | null {
-    return node.textContent;
-}
-
-export function isElement(node: Node): node is Element {
-    return node.nodeType === 1;
-}
-
-export function isText(node: Node): node is Text {
-    return node.nodeType === 3;
-}
-
-export function isComment(node: Node): node is Comment {
-    return node.nodeType === 8;
-}

+ 0 - 659
node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/svg/graphic.ts

@@ -1,659 +0,0 @@
-// TODO
-// 1. shadow
-// 2. Image: sx, sy, sw, sh
-
-import {
-    adjustTextY,
-    getIdURL,
-    getMatrixStr,
-    getPathPrecision,
-    getShadowKey,
-    getSRTTransformString,
-    hasShadow,
-    isAroundZero,
-    isGradient,
-    isImagePattern,
-    isLinearGradient,
-    isPattern,
-    isRadialGradient,
-    normalizeColor,
-    round4,
-    TEXT_ALIGN_TO_ANCHOR
-} from './helper';
-import Path, { PathStyleProps } from '../graphic/Path';
-import ZRImage, { ImageStyleProps } from '../graphic/Image';
-import { getLineHeight } from '../contain/text';
-import TSpan, { TSpanStyleProps } from '../graphic/TSpan';
-import SVGPathRebuilder from './SVGPathRebuilder';
-import mapStyleToAttrs from './mapStyleToAttrs';
-import { SVGVNodeAttrs, createVNode, SVGVNode, vNodeToString, BrushScope, META_DATA_PREFIX } from './core';
-import { MatrixArray } from '../core/matrix';
-import Displayable from '../graphic/Displayable';
-import { assert, clone, isFunction, isString, logError, map, retrieve2 } from '../core/util';
-import Polyline from '../graphic/shape/Polyline';
-import Polygon from '../graphic/shape/Polygon';
-import { GradientObject } from '../graphic/Gradient';
-import { ImagePatternObject, SVGPatternObject } from '../graphic/Pattern';
-import { createOrUpdateImage } from '../graphic/helper/image';
-import { ImageLike } from '../core/types';
-import { createCSSAnimation } from './cssAnimation';
-import { hasSeparateFont, parseFontSize } from '../graphic/Text';
-import { DEFAULT_FONT, DEFAULT_FONT_FAMILY } from '../core/platform';
-import { createCSSEmphasis } from './cssEmphasis';
-import { getElementSSRData } from '../zrender';
-
-const round = Math.round;
-
-function isImageLike(val: any): val is HTMLImageElement {
-    return val && isString(val.src);
-}
-function isCanvasLike(val: any): val is HTMLCanvasElement {
-    return val && isFunction(val.toDataURL);
-}
-
-
-type AllStyleOption = PathStyleProps | TSpanStyleProps | ImageStyleProps;
-
-function setStyleAttrs(attrs: SVGVNodeAttrs, style: AllStyleOption, el: Path | TSpan | ZRImage, scope: BrushScope) {
-    mapStyleToAttrs((key, val) => {
-        const isFillStroke = key === 'fill' || key === 'stroke';
-        if (isFillStroke && isGradient(val)) {
-            setGradient(style, attrs, key, scope);
-        }
-        else if (isFillStroke && isPattern(val)) {
-            setPattern(el, attrs, key, scope);
-        }
-        else if (isFillStroke && val === 'none') {
-            // When is none, it cannot be interacted when ssr
-            attrs[key] = 'transparent';
-        }
-        else {
-            attrs[key] = val;
-        }
-    }, style, el, false);
-
-    setShadow(el, attrs, scope);
-}
-
-function setMetaData(attrs: SVGVNodeAttrs, el: Path | TSpan | ZRImage) {
-    const metaData = getElementSSRData(el);
-    if (metaData) {
-        metaData.each((val, key) => {
-            val != null && (attrs[(META_DATA_PREFIX + key).toLowerCase()] = val + '');
-        });
-        if (el.isSilent()) {
-            attrs[META_DATA_PREFIX + 'silent'] = 'true';
-        }
-    }
-}
-
-function noRotateScale(m: MatrixArray) {
-    return isAroundZero(m[0] - 1)
-        && isAroundZero(m[1])
-        && isAroundZero(m[2])
-        && isAroundZero(m[3] - 1);
-}
-
-function noTranslate(m: MatrixArray) {
-    return isAroundZero(m[4]) && isAroundZero(m[5]);
-}
-
-function setTransform(attrs: SVGVNodeAttrs, m: MatrixArray, compress?: boolean) {
-    if (m && !(noTranslate(m) && noRotateScale(m))) {
-        const mul = compress ? 10 : 1e4;
-        // Use translate possible to reduce the size a bit.
-        attrs.transform = noRotateScale(m)
-            ? `translate(${round(m[4] * mul) / mul} ${round(m[5] * mul) / mul})` : getMatrixStr(m);
-    }
-}
-
-type ShapeMapDesc = (string | [string, string])[];
-type ConvertShapeToAttr = (shape: any, attrs: SVGVNodeAttrs, mul?: number) => void;
-type ShapeValidator = (shape: any) => boolean;
-
-function convertPolyShape(shape: Polygon['shape'], attrs: SVGVNodeAttrs, mul: number) {
-    const points = shape.points;
-    const strArr = [];
-    for (let i = 0; i < points.length; i++) {
-        strArr.push(round(points[i][0] * mul) / mul);
-        strArr.push(round(points[i][1] * mul) / mul);
-    }
-    attrs.points = strArr.join(' ');
-}
-
-function validatePolyShape(shape: Polyline['shape']) {
-    return !shape.smooth;
-}
-
-function createAttrsConvert(desc: ShapeMapDesc): ConvertShapeToAttr {
-    const normalizedDesc: [string, string][] = map(desc, (item) =>
-        (typeof item === 'string' ? [item, item] : item)
-    );
-
-    return function (shape, attrs, mul) {
-        for (let i = 0; i < normalizedDesc.length; i++) {
-            const item = normalizedDesc[i];
-            const val = shape[item[0]];
-            if (val != null) {
-                attrs[item[1]] = round(val * mul) / mul;
-            }
-        }
-    };
-}
-
-const builtinShapesDef: Record<string, [ConvertShapeToAttr, ShapeValidator?]> = {
-    circle: [createAttrsConvert(['cx', 'cy', 'r'])],
-    polyline: [convertPolyShape, validatePolyShape],
-    polygon: [convertPolyShape, validatePolyShape]
-    // Ignore line because it will be larger.
-};
-
-interface PathWithSVGBuildPath extends Path {
-    __svgPathVersion: number
-    __svgPathBuilder: SVGPathRebuilder
-    __svgPathStrokePercent: number
-}
-
-function hasShapeAnimation(el: Displayable) {
-    const animators = el.animators;
-    for (let i = 0; i < animators.length; i++) {
-        if (animators[i].targetName === 'shape') {
-            return true;
-        }
-    }
-    return false;
-}
-
-export function brushSVGPath(el: Path, scope: BrushScope) {
-    const style = el.style;
-    const shape = el.shape;
-    const builtinShpDef = builtinShapesDef[el.type];
-    const attrs: SVGVNodeAttrs = {};
-    const needsAnimate = scope.animation;
-    let svgElType = 'path';
-    const strokePercent = el.style.strokePercent;
-    const precision = (scope.compress && getPathPrecision(el)) || 4;
-    // Using SVG builtin shapes if possible
-    if (builtinShpDef
-        // Force to use path if it will update later.
-        // To avoid some animation(like morph) fail
-        && !scope.willUpdate
-        && !(builtinShpDef[1] && !builtinShpDef[1](shape))
-        // use `path` to simplify the animate element creation logic.
-        && !(needsAnimate && hasShapeAnimation(el))
-        && !(strokePercent < 1)
-    ) {
-        svgElType = el.type;
-        const mul = Math.pow(10, precision);
-        builtinShpDef[0](shape, attrs, mul);
-    }
-    else {
-        const needBuildPath = !el.path || el.shapeChanged();
-        if (!el.path) {
-            el.createPathProxy();
-        }
-        const path = el.path;
-
-        if (needBuildPath) {
-            path.beginPath();
-            el.buildPath(path, el.shape);
-            el.pathUpdated();
-        }
-        const pathVersion = path.getVersion();
-        const elExt = el as PathWithSVGBuildPath;
-
-        let svgPathBuilder = elExt.__svgPathBuilder;
-        if (elExt.__svgPathVersion !== pathVersion
-            || !svgPathBuilder
-            || strokePercent !== elExt.__svgPathStrokePercent
-        ) {
-            if (!svgPathBuilder) {
-                svgPathBuilder = elExt.__svgPathBuilder = new SVGPathRebuilder();
-            }
-            svgPathBuilder.reset(precision);
-            path.rebuildPath(svgPathBuilder, strokePercent);
-            svgPathBuilder.generateStr();
-            elExt.__svgPathVersion = pathVersion;
-            elExt.__svgPathStrokePercent = strokePercent;
-        }
-
-        attrs.d = svgPathBuilder.getStr();
-    }
-
-    setTransform(attrs, el.transform);
-    setStyleAttrs(attrs, style, el, scope);
-    setMetaData(attrs, el);
-
-    scope.animation && createCSSAnimation(el, attrs, scope);
-    scope.emphasis && createCSSEmphasis(el, attrs, scope);
-
-    return createVNode(svgElType, el.id + '', attrs);
-}
-
-export function brushSVGImage(el: ZRImage, scope: BrushScope) {
-    const style = el.style;
-    let image = style.image;
-
-    if (image && !isString(image)) {
-        if (isImageLike(image)) {
-            image = image.src;
-        }
-        // heatmap layer in geo may be a canvas
-        else if (isCanvasLike(image)) {
-            image = image.toDataURL();
-        }
-    }
-
-    if (!image) {
-        return;
-    }
-
-    const x = style.x || 0;
-    const y = style.y || 0;
-
-    const dw = style.width;
-    const dh = style.height;
-
-    const attrs: SVGVNodeAttrs = {
-        href: image as string,
-        width: dw,
-        height: dh
-    };
-    if (x) {
-        attrs.x = x;
-    }
-    if (y) {
-        attrs.y = y;
-    }
-
-    setTransform(attrs, el.transform);
-    setStyleAttrs(attrs, style, el, scope);
-    setMetaData(attrs, el);
-
-    scope.animation && createCSSAnimation(el, attrs, scope);
-
-    return createVNode('image', el.id + '', attrs);
-};
-
-export function brushSVGTSpan(el: TSpan, scope: BrushScope) {
-    const style = el.style;
-
-    let text = style.text;
-    // Convert to string
-    text != null && (text += '');
-    if (!text || isNaN(style.x) || isNaN(style.y)) {
-        return;
-    }
-
-    // style.font has been normalized by `normalizeTextStyle`.
-    const font = style.font || DEFAULT_FONT;
-
-    // Consider different font display differently in vertical align, we always
-    // set verticalAlign as 'middle', and use 'y' to locate text vertically.
-    const x = style.x || 0;
-    const y = adjustTextY(style.y || 0, getLineHeight(font), style.textBaseline);
-    const textAlign = TEXT_ALIGN_TO_ANCHOR[style.textAlign as keyof typeof TEXT_ALIGN_TO_ANCHOR]
-        || style.textAlign;
-
-    const attrs: SVGVNodeAttrs = {
-        'dominant-baseline': 'central',
-        'text-anchor': textAlign
-    };
-
-    if (hasSeparateFont(style)) {
-        // Set separate font attributes if possible. Or some platform like PowerPoint may not support it.
-        let separatedFontStr = '';
-        const fontStyle = style.fontStyle;
-        const fontSize = parseFontSize(style.fontSize);
-        if (!parseFloat(fontSize)) {    // is 0px
-            return;
-        }
-
-        const fontFamily = style.fontFamily || DEFAULT_FONT_FAMILY;
-        const fontWeight = style.fontWeight;
-        separatedFontStr += `font-size:${fontSize};font-family:${fontFamily};`;
-
-        // TODO reduce the attribute to set. But should it inherit from the container element?
-        if (fontStyle && fontStyle !== 'normal') {
-            separatedFontStr += `font-style:${fontStyle};`;
-        }
-        if (fontWeight && fontWeight !== 'normal') {
-            separatedFontStr += `font-weight:${fontWeight};`;
-        }
-        attrs.style = separatedFontStr;
-    }
-    else {
-        // Use set font manually
-        attrs.style = `font: ${font}`;
-    }
-
-
-    if (text.match(/\s/)) {
-        // only enabled when have space in text.
-        attrs['xml:space'] = 'preserve';
-    }
-    if (x) {
-        attrs.x = x;
-    }
-    if (y) {
-        attrs.y = y;
-    }
-    setTransform(attrs, el.transform);
-    setStyleAttrs(attrs, style, el, scope);
-    setMetaData(attrs, el);
-
-    scope.animation && createCSSAnimation(el, attrs, scope);
-
-    return createVNode('text', el.id + '', attrs, undefined, text);
-}
-
-export function brush(el: Displayable, scope: BrushScope): SVGVNode {
-    if (el instanceof Path) {
-        return brushSVGPath(el, scope);
-    }
-    else if (el instanceof ZRImage) {
-        return brushSVGImage(el, scope);
-    }
-    else if (el instanceof TSpan) {
-        return brushSVGTSpan(el, scope);
-    }
-}
-
-function setShadow(
-    el: Displayable,
-    attrs: SVGVNodeAttrs,
-    scope: BrushScope
-) {
-    const style = el.style;
-    if (hasShadow(style)) {
-        const shadowKey = getShadowKey(el);
-        const shadowCache = scope.shadowCache;
-        let shadowId = shadowCache[shadowKey];
-        if (!shadowId) {
-            const globalScale = el.getGlobalScale();
-            const scaleX = globalScale[0];
-            const scaleY = globalScale[1];
-            if (!scaleX || !scaleY) {
-                return;
-            }
-
-            const offsetX = style.shadowOffsetX || 0;
-            const offsetY = style.shadowOffsetY || 0;
-            const blur = style.shadowBlur;
-            const {opacity, color} = normalizeColor(style.shadowColor);
-            const stdDx = blur / 2 / scaleX;
-            const stdDy = blur / 2 / scaleY;
-            const stdDeviation = stdDx + ' ' + stdDy;
-            // Use a simple prefix to reduce the size
-            shadowId = scope.zrId + '-s' + scope.shadowIdx++;
-            scope.defs[shadowId] = createVNode(
-                'filter', shadowId,
-                {
-                    'id': shadowId,
-                    'x': '-100%',
-                    'y': '-100%',
-                    'width': '300%',
-                    'height': '300%'
-                },
-                [
-                    createVNode('feDropShadow', '', {
-                        'dx': offsetX / scaleX,
-                        'dy': offsetY / scaleY,
-                        'stdDeviation': stdDeviation,
-                        'flood-color': color,
-                        'flood-opacity': opacity
-                    })
-                ]
-            );
-            shadowCache[shadowKey] = shadowId;
-        }
-        attrs.filter = getIdURL(shadowId);
-    }
-}
-
-export function setGradient(
-    style: PathStyleProps,
-    attrs: SVGVNodeAttrs,
-    target: 'fill' | 'stroke',
-    scope: BrushScope
-) {
-    const val = style[target] as GradientObject;
-    let gradientTag;
-    let gradientAttrs: SVGVNodeAttrs = {
-        'gradientUnits': val.global
-            ? 'userSpaceOnUse' // x1, x2, y1, y2 in range of 0 to canvas width or height
-            : 'objectBoundingBox' // x1, x2, y1, y2 in range of 0 to 1]
-    };
-    if (isLinearGradient(val)) {
-        gradientTag = 'linearGradient';
-        gradientAttrs.x1 = val.x;
-        gradientAttrs.y1 = val.y;
-        gradientAttrs.x2 = val.x2;
-        gradientAttrs.y2 = val.y2;
-    }
-    else if (isRadialGradient(val)) {
-        gradientTag = 'radialGradient';
-        gradientAttrs.cx = retrieve2(val.x, 0.5);
-        gradientAttrs.cy = retrieve2(val.y, 0.5);
-        gradientAttrs.r = retrieve2(val.r, 0.5);
-    }
-    else {
-        if (process.env.NODE_ENV !== 'production') {
-            logError('Illegal gradient type.');
-        }
-        return;
-    }
-
-    const colors = val.colorStops;
-
-    const colorStops = [];
-    for (let i = 0, len = colors.length; i < len; ++i) {
-        const offset = round4(colors[i].offset) * 100 + '%';
-
-        const stopColor = colors[i].color;
-        // Fix Safari bug that stop-color not recognizing alpha #9014
-        const {color, opacity} = normalizeColor(stopColor);
-
-        const stopsAttrs: SVGVNodeAttrs = {
-            'offset': offset
-        };
-        // stop-color cannot be color, since:
-        // The opacity value used for the gradient calculation is the
-        // *product* of the value of stop-opacity and the opacity of the
-        // value of stop-color.
-        // See https://www.w3.org/TR/SVG2/pservers.html#StopOpacityProperty
-
-        stopsAttrs['stop-color'] = color;
-        if (opacity < 1) {
-            stopsAttrs['stop-opacity'] = opacity;
-        }
-        colorStops.push(
-            createVNode('stop', i + '', stopsAttrs)
-        );
-    }
-
-    // Use the whole html as cache key.
-    const gradientVNode = createVNode(gradientTag, '', gradientAttrs, colorStops);
-    const gradientKey = vNodeToString(gradientVNode);
-    const gradientCache = scope.gradientCache;
-    let gradientId = gradientCache[gradientKey];
-    if (!gradientId) {
-        gradientId = scope.zrId + '-g' + scope.gradientIdx++;
-        gradientCache[gradientKey] = gradientId;
-
-        gradientAttrs.id = gradientId;
-        scope.defs[gradientId] = createVNode(
-            gradientTag, gradientId, gradientAttrs, colorStops
-        );
-    }
-
-    attrs[target] = getIdURL(gradientId);
-}
-
-export function setPattern(
-    el: Displayable,
-    attrs: SVGVNodeAttrs,
-    target: 'fill' | 'stroke',
-    scope: BrushScope
-) {
-    const val = el.style[target] as ImagePatternObject | SVGPatternObject;
-    const boundingRect = el.getBoundingRect();
-    const patternAttrs: SVGVNodeAttrs = {};
-    const repeat = (val as ImagePatternObject).repeat;
-    const noRepeat = repeat === 'no-repeat';
-    const repeatX = repeat === 'repeat-x';
-    const repeatY = repeat === 'repeat-y';
-    let child: SVGVNode;
-    if (isImagePattern(val)) {
-        let imageWidth = val.imageWidth;
-        let imageHeight = val.imageHeight;
-        let imageSrc;
-        const patternImage = val.image;
-        if (isString(patternImage)) {
-            imageSrc = patternImage;
-        }
-        else if (isImageLike(patternImage)) {
-            imageSrc = patternImage.src;
-        }
-        else if (isCanvasLike(patternImage)) {
-            imageSrc = patternImage.toDataURL();
-        }
-
-        if (typeof Image === 'undefined') {
-            const errMsg = 'Image width/height must been given explictly in svg-ssr renderer.';
-            assert(imageWidth, errMsg);
-            assert(imageHeight, errMsg);
-        }
-        else if (imageWidth == null || imageHeight == null) {
-            // TODO
-            const setSizeToVNode = (vNode: SVGVNode, img: ImageLike) => {
-                if (vNode) {
-                    const svgEl = vNode.elm as SVGElement;
-                    let width = imageWidth || img.width;
-                    let height = imageHeight || img.height;
-                    if (vNode.tag === 'pattern') {
-                        if (repeatX) {
-                            height = 1;
-                            width /= boundingRect.width;
-                        }
-                        else if (repeatY) {
-                            width = 1;
-                            height /= boundingRect.height;
-                        }
-                    }
-                    vNode.attrs.width = width;
-                    vNode.attrs.height = height;
-                    if (svgEl) {
-                        svgEl.setAttribute('width', width as any);
-                        svgEl.setAttribute('height', height as any);
-                    }
-                }
-            };
-            const createdImage = createOrUpdateImage(
-                imageSrc, null, el, (img) => {
-                    noRepeat || setSizeToVNode(patternVNode, img);
-                    setSizeToVNode(child, img);
-                }
-            );
-            if (createdImage && createdImage.width && createdImage.height) {
-                // Loaded before
-                imageWidth = imageWidth || createdImage.width;
-                imageHeight = imageHeight || createdImage.height;
-            }
-        }
-
-        child = createVNode(
-            'image',
-            'img',
-            {
-                href: imageSrc,
-                width: imageWidth,
-                height: imageHeight
-            }
-        );
-        patternAttrs.width = imageWidth;
-        patternAttrs.height = imageHeight;
-    }
-    else if (val.svgElement) {  // Only string supported in SSR.
-        // TODO it's not so good to use textContent as innerHTML
-        child = clone(val.svgElement);
-        patternAttrs.width = val.svgWidth;
-        patternAttrs.height = val.svgHeight;
-    }
-    if (!child) {
-        return;
-    }
-
-    let patternWidth;
-    let patternHeight;
-    if (noRepeat) {
-        patternWidth = patternHeight = 1;
-    }
-    else if (repeatX) {
-        patternHeight = 1;
-        patternWidth = (patternAttrs.width as number) / boundingRect.width;
-    }
-    else if (repeatY) {
-        patternWidth = 1;
-        patternHeight = (patternAttrs.height as number) / boundingRect.height;
-    }
-    else {
-        patternAttrs.patternUnits = 'userSpaceOnUse';
-    }
-
-    if (patternWidth != null && !isNaN(patternWidth)) {
-        patternAttrs.width = patternWidth;
-    }
-    if (patternHeight != null && !isNaN(patternHeight)) {
-        patternAttrs.height = patternHeight;
-    }
-
-    const patternTransform = getSRTTransformString(val);
-    patternTransform && (patternAttrs.patternTransform = patternTransform);
-
-    // Use the whole html as cache key.
-    let patternVNode = createVNode(
-        'pattern',
-        '',
-        patternAttrs,
-        [child]
-    );
-    const patternKey = vNodeToString(patternVNode);
-    const patternCache = scope.patternCache;
-    let patternId = patternCache[patternKey];
-    if (!patternId) {
-        patternId = scope.zrId + '-p' + scope.patternIdx++;
-        patternCache[patternKey] = patternId;
-        patternAttrs.id = patternId;
-        patternVNode = scope.defs[patternId] = createVNode(
-            'pattern',
-            patternId,
-            patternAttrs,
-            [child]
-        );
-    }
-
-    attrs[target] = getIdURL(patternId);
-}
-
-export function setClipPath(
-    clipPath: Path,
-    attrs: SVGVNodeAttrs,
-    scope: BrushScope
-) {
-    const {clipPathCache, defs} = scope;
-    let clipPathId = clipPathCache[clipPath.id];
-    if (!clipPathId) {
-        clipPathId = scope.zrId + '-c' + scope.clipPathIdx++;
-        const clipPathAttrs: SVGVNodeAttrs = {
-            id: clipPathId
-        };
-
-        clipPathCache[clipPath.id] = clipPathId;
-        defs[clipPathId] = createVNode(
-            'clipPath', clipPathId, clipPathAttrs,
-            [brushSVGPath(clipPath, scope)]
-        );
-    }
-    attrs['clip-path'] = getIdURL(clipPathId);
-}

+ 0 - 192
node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/svg/helper.ts

@@ -1,192 +0,0 @@
-// Shared methods of svg and svg-ssr
-
-import { MatrixArray } from '../core/matrix';
-import Transformable, { TransformProp } from '../core/Transformable';
-import { RADIAN_TO_DEGREE, retrieve2, logError, isFunction } from '../core/util';
-import Displayable from '../graphic/Displayable';
-import { GradientObject } from '../graphic/Gradient';
-import { LinearGradientObject } from '../graphic/LinearGradient';
-import Path from '../graphic/Path';
-import { ImagePatternObject, PatternObject, SVGPatternObject } from '../graphic/Pattern';
-import { RadialGradientObject } from '../graphic/RadialGradient';
-import { parse } from '../tool/color';
-import env from '../core/env';
-
-const mathRound = Math.round;
-
-export function normalizeColor(color: string): { color: string; opacity: number; } {
-    let opacity;
-    if (!color || color === 'transparent') {
-        color = 'none';
-    }
-    else if (typeof color === 'string' && color.indexOf('rgba') > -1) {
-        const arr = parse(color);
-        if (arr) {
-            // TODO use hex?
-            color = 'rgb(' + arr[0] + ',' + arr[1] + ',' + arr[2] + ')';
-            opacity = arr[3];
-        }
-    }
-    return {
-        color,
-        opacity: opacity == null ? 1 : opacity
-    };
-}
-const EPSILON = 1e-4;
-export function isAroundZero(transform: number) {
-    return transform < EPSILON && transform > -EPSILON;
-}
-
-export function round3(transform: number) {
-    return mathRound(transform * 1e3) / 1e3;
-}
-export function round4(transform: number) {
-    return mathRound(transform * 1e4) / 1e4;
-}
-export function round1(transform: number) {
-    return mathRound(transform * 10) / 10;
-}
-
-export function getMatrixStr(m: MatrixArray) {
-    return 'matrix('
-        // Avoid large string of matrix
-        // PENDING If have precision issue when scaled
-        + round3(m[0]) + ','
-        + round3(m[1]) + ','
-        + round3(m[2]) + ','
-        + round3(m[3]) + ','
-        + round4(m[4]) + ','
-        + round4(m[5])
-        + ')';
-}
-
-export const TEXT_ALIGN_TO_ANCHOR = {
-    left: 'start',
-    right: 'end',
-    center: 'middle',
-    middle: 'middle'
-};
-
-export function adjustTextY(y: number, lineHeight: number, textBaseline: CanvasTextBaseline): number {
-    // TODO Other baselines.
-    if (textBaseline === 'top') {
-        y += lineHeight / 2;
-    }
-    else if (textBaseline === 'bottom') {
-        y -= lineHeight / 2;
-    }
-    return y;
-}
-
-
-export function hasShadow(style: Displayable['style']) {
-    // TODO: textBoxShadowBlur is not supported yet
-    return style
-        && (style.shadowBlur || style.shadowOffsetX || style.shadowOffsetY);
-}
-
-export function getShadowKey(displayable: Displayable) {
-    const style = displayable.style;
-    const globalScale = displayable.getGlobalScale();
-    return [
-        style.shadowColor,
-        (style.shadowBlur || 0).toFixed(2), // Reduce the precision
-        (style.shadowOffsetX || 0).toFixed(2),
-        (style.shadowOffsetY || 0).toFixed(2),
-        globalScale[0],
-        globalScale[1]
-    ].join(',');
-}
-
-export function getClipPathsKey(clipPaths: Path[]) {
-    let key: number[] = [];
-    if (clipPaths) {
-        for (let i = 0; i < clipPaths.length; i++) {
-            const clipPath = clipPaths[i];
-            key.push(clipPath.id);
-        }
-    }
-    return key.join(',');
-}
-
-export function isImagePattern(val: any): val is ImagePatternObject {
-    return val && (!!(val as ImagePatternObject).image);
-}
-export function isSVGPattern(val: any): val is SVGPatternObject {
-    return val && (!!(val as SVGPatternObject).svgElement);
-}
-export function isPattern(val: any): val is PatternObject {
-    return isImagePattern(val) || isSVGPattern(val);
-}
-
-export function isLinearGradient(val: GradientObject): val is LinearGradientObject {
-    return val.type === 'linear';
-}
-
-export function isRadialGradient(val: GradientObject): val is RadialGradientObject {
-    return val.type === 'radial';
-}
-
-export function isGradient(val: any): val is GradientObject {
-    return val && (
-        (val as GradientObject).type === 'linear'
-        || (val as GradientObject).type === 'radial'
-    );
-}
-
-export function getIdURL(id: string) {
-    return `url(#${id})`;
-}
-
-export function getPathPrecision(el: Path) {
-    const scale = el.getGlobalScale();
-    const size = Math.max(scale[0], scale[1]);
-    return Math.max(Math.ceil(Math.log(size) / Math.log(10)), 1);
-}
-
-export function getSRTTransformString(
-    transform: Partial<Pick<Transformable, TransformProp>>
-) {
-    const x = transform.x || 0;
-    const y = transform.y || 0;
-    const rotation = (transform.rotation || 0) * RADIAN_TO_DEGREE;
-    const scaleX = retrieve2(transform.scaleX, 1);
-    const scaleY = retrieve2(transform.scaleY, 1);
-    const skewX = transform.skewX || 0;
-    const skewY = transform.skewY || 0;
-    const res = [];
-    if (x || y) {
-        // TODO not using px unit?
-        res.push(`translate(${x}px,${y}px)`);
-    }
-    if (rotation) {
-        res.push(`rotate(${rotation})`);
-    }
-    if (scaleX !== 1 || scaleY !== 1) {
-        res.push(`scale(${scaleX},${scaleY})`);
-    }
-    if (skewX || skewY) {
-        res.push(`skew(${mathRound(skewX * RADIAN_TO_DEGREE)}deg, ${mathRound(skewY * RADIAN_TO_DEGREE)}deg)`);
-    }
-
-    return res.join(' ');
-}
-
-export const encodeBase64 = (function () {
-    if (env.hasGlobalWindow && isFunction(window.btoa)) {
-        return function (str: string) {
-            return window.btoa(unescape(encodeURIComponent(str)));
-        };
-    }
-    if (typeof Buffer !== 'undefined') {
-        return function (str: string) {
-            return Buffer.from(str).toString('base64');
-        };
-    }
-    return function (str: string): string {
-        if (process.env.NODE_ENV !== 'production') {
-            logError('Base64 isn\'t natively supported in the current environment.');
-        }
-        return null;
-    };
-})();

+ 0 - 110
node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/svg/mapStyleToAttrs.ts

@@ -1,110 +0,0 @@
-
-import Path, { DEFAULT_PATH_STYLE, PathStyleProps } from '../graphic/Path';
-import ZRImage, { ImageStyleProps } from '../graphic/Image';
-import TSpan, { TSpanStyleProps } from '../graphic/TSpan';
-import { getLineDash } from '../canvas/dashStyle';
-import { map } from '../core/util';
-import { normalizeColor } from './helper';
-
-type AllStyleOption = PathStyleProps | TSpanStyleProps | ImageStyleProps;
-
-const NONE = 'none';
-const mathRound = Math.round;
-
-function pathHasFill(style: AllStyleOption): style is PathStyleProps {
-    const fill = (style as PathStyleProps).fill;
-    return fill != null && fill !== NONE;
-}
-
-function pathHasStroke(style: AllStyleOption): style is PathStyleProps {
-    const stroke = (style as PathStyleProps).stroke;
-    return stroke != null && stroke !== NONE;
-}
-
-const strokeProps = ['lineCap', 'miterLimit', 'lineJoin'] as const;
-const svgStrokeProps = map(strokeProps, prop => `stroke-${prop.toLowerCase()}`);
-
-export default function mapStyleToAttrs(
-    updateAttr: (key: string, val: string | number) => void,
-    style: AllStyleOption,
-    el: Path | TSpan | ZRImage,
-    /**
-     * Will try not to set the attribute if it's using default value if not using forceUpdate.
-     * Mainly for reduce the generated size in svg-ssr mode.
-     */
-    forceUpdate: boolean
-): void {
-    const opacity = style.opacity == null ? 1 : style.opacity;
-
-    // only set opacity. stroke and fill cannot be applied to svg image
-    if (el instanceof ZRImage) {
-        updateAttr('opacity', opacity);
-        return;
-    }
-
-    if (pathHasFill(style)) {
-        const fill = normalizeColor(style.fill as string);
-        updateAttr('fill', fill.color);
-        const fillOpacity = style.fillOpacity != null
-            ? style.fillOpacity * fill.opacity * opacity
-            : fill.opacity * opacity;
-        if (forceUpdate || fillOpacity < 1) {
-            updateAttr('fill-opacity', fillOpacity);
-        }
-    }
-    else {
-        updateAttr('fill', NONE);
-    }
-
-    if (pathHasStroke(style)) {
-        const stroke = normalizeColor(style.stroke as string);
-        updateAttr('stroke', stroke.color);
-        const strokeScale = style.strokeNoScale
-            ? (el as Path).getLineScale()
-            : 1;
-        const strokeWidth = (strokeScale ? (style.lineWidth || 0) / strokeScale : 0);
-        const strokeOpacity = style.strokeOpacity != null
-            ? style.strokeOpacity * stroke.opacity * opacity
-            : stroke.opacity * opacity;
-        const strokeFirst = style.strokeFirst;
-
-        if (forceUpdate || strokeWidth !== 1) {
-            updateAttr('stroke-width', strokeWidth);
-        }
-        // stroke then fill for text; fill then stroke for others
-        if (forceUpdate || strokeFirst) {
-            updateAttr('paint-order', strokeFirst ? 'stroke' : 'fill');
-        }
-        if (forceUpdate || strokeOpacity < 1) {
-            updateAttr('stroke-opacity', strokeOpacity);
-        }
-
-        if (style.lineDash) {
-            let [lineDash, lineDashOffset] = getLineDash(el);
-            if (lineDash) {
-                lineDashOffset = mathRound(lineDashOffset || 0);
-                updateAttr('stroke-dasharray', lineDash.join(','));
-                if (lineDashOffset || forceUpdate) {
-                    updateAttr('stroke-dashoffset', lineDashOffset);
-                }
-            }
-        }
-        else if (forceUpdate) {
-            // Reset if force update.
-            updateAttr('stroke-dasharray', NONE);
-        }
-
-        // PENDING reset
-        for (let i = 0; i < strokeProps.length; i++) {
-            const propName = strokeProps[i];
-            if (forceUpdate || style[propName] !== DEFAULT_PATH_STYLE[propName]) {
-                const val = style[propName] || DEFAULT_PATH_STYLE[propName];
-                // TODO reset
-                val && updateAttr(svgStrokeProps[i], val);
-            }
-        }
-    }
-    else if (forceUpdate) {
-        updateAttr('stroke', NONE);
-    }
-}

+ 0 - 321
node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/svg/patch.ts

@@ -1,321 +0,0 @@
-/**
- * Virtual DOM patching
- * Modified from snabbdom https://github.com/snabbdom/snabbdom/blob/master/src/init.ts
- *
- * The design has been simplified to focus on the purpose in SVG rendering in SVG.
- *
- * Licensed under the MIT License
- * https://github.com/paldepind/snabbdom/blob/master/LICENSE
- */
-
-import { isArray, isObject } from '../core/util';
-import { createElement, createVNode, SVGVNode, XMLNS, XML_NAMESPACE, XLINKNS } from './core';
-import * as api from './domapi';
-
-const colonChar = 58;
-const xChar = 120;
-const emptyNode = createVNode('', '');
-
-type NonUndefined<T> = T extends undefined ? never : T;
-
-function isUndef(s: any): boolean {
-    return s === undefined;
-}
-
-function isDef<A>(s: A): s is NonUndefined<A> {
-    return s !== undefined;
-}
-
-function createKeyToOldIdx(
-    children: SVGVNode[],
-    beginIdx: number,
-    endIdx: number
-): KeyToIndexMap {
-    const map: KeyToIndexMap = {};
-    for (let i = beginIdx; i <= endIdx; ++i) {
-        const key = children[i].key;
-        if (key !== undefined) {
-            if (process.env.NODE_ENV !== 'production') {
-                if (map[key] != null) {
-                    console.error(`Duplicate key ${key}`);
-                }
-            }
-            map[key] = i;
-        }
-    }
-    return map;
-}
-
-function sameVnode(vnode1: SVGVNode, vnode2: SVGVNode): boolean {
-    const isSameKey = vnode1.key === vnode2.key;
-    const isSameTag = vnode1.tag === vnode2.tag;
-
-    return isSameTag && isSameKey;
-}
-
-type KeyToIndexMap = { [key: string]: number };
-
-function createElm(vnode: SVGVNode): Node {
-    let i: any;
-    const children = vnode.children;
-    const tag = vnode.tag;
-    // if (tag === '!') {
-    //     if (isUndef(vnode.text)) {
-    //         vnode.text = '';
-    //     }
-    //     vnode.elm = api.createComment(vnode.text!);
-    // }
-    // else
-    if (isDef(tag)) {
-        const elm = (vnode.elm = createElement(tag));
-
-        updateAttrs(emptyNode, vnode);
-
-        if (isArray(children)) {
-            for (i = 0; i < children.length; ++i) {
-                const ch = children[i];
-                if (ch != null) {
-                    api.appendChild(elm, createElm(ch));
-                }
-            }
-        }
-        else if (isDef(vnode.text) && !isObject(vnode.text)) {
-            api.appendChild(elm, api.createTextNode(vnode.text));
-        }
-    }
-    else {
-        vnode.elm = api.createTextNode(vnode.text!);
-    }
-    return vnode.elm;
-}
-
-function addVnodes(
-    parentElm: Node,
-    before: Node | null,
-    vnodes: SVGVNode[],
-    startIdx: number,
-    endIdx: number
-) {
-    for (; startIdx <= endIdx; ++startIdx) {
-        const ch = vnodes[startIdx];
-        if (ch != null) {
-            api.insertBefore(parentElm, createElm(ch), before);
-        }
-    }
-}
-
-function removeVnodes(parentElm: Node, vnodes: SVGVNode[], startIdx: number, endIdx: number): void {
-    for (; startIdx <= endIdx; ++startIdx) {
-        const ch = vnodes[startIdx];
-        if (ch != null) {
-            if (isDef(ch.tag)) {
-                const parent = api.parentNode(ch.elm);
-                api.removeChild(parent, ch.elm);
-            }
-            else {
-                // Text node
-                api.removeChild(parentElm, ch.elm!);
-            }
-        }
-    }
-}
-
-export function updateAttrs(oldVnode: SVGVNode, vnode: SVGVNode): void {
-    let key: string;
-    const elm = vnode.elm as SVGElement;
-    const oldAttrs = oldVnode && oldVnode.attrs || {};
-    const attrs = vnode.attrs || {};
-
-    if (oldAttrs === attrs) {
-        return;
-    }
-
-    // update modified attributes, add new attributes
-    // eslint-disable-next-line
-    for (key in attrs) {
-        const cur = attrs[key];
-        const old = oldAttrs[key];
-        if (old !== cur) {
-            if (cur === true) {
-                elm.setAttribute(key, '');
-            }
-            else if (cur === false) {
-                elm.removeAttribute(key);
-            }
-            else {
-                if (key === 'style') {
-                    elm.style.cssText = cur as string;
-                }
-                else if (key.charCodeAt(0) !== xChar) {
-                    elm.setAttribute(key, cur as any);
-                }
-                // TODO
-                else if (key === 'xmlns:xlink' || key === 'xmlns') {
-                    elm.setAttributeNS(XMLNS, key, cur as any);
-                }
-                else if (key.charCodeAt(3) === colonChar) {
-                    // Assume xml namespace
-                    elm.setAttributeNS(XML_NAMESPACE, key, cur as any);
-                }
-                else if (key.charCodeAt(5) === colonChar) {
-                    // Assume xlink namespace
-                    elm.setAttributeNS(XLINKNS, key, cur as any);
-                }
-                else {
-                    elm.setAttribute(key, cur as any);
-                }
-            }
-        }
-    }
-
-    // remove removed attributes
-    // use `in` operator since the previous `for` iteration uses it (.i.e. add even attributes with undefined value)
-    // the other option is to remove all attributes with value == undefined
-    for (key in oldAttrs) {
-        if (!(key in attrs)) {
-            elm.removeAttribute(key);
-        }
-    }
-}
-
-
-function updateChildren(parentElm: Node, oldCh: SVGVNode[], newCh: SVGVNode[]) {
-    let oldStartIdx = 0;
-    let newStartIdx = 0;
-    let oldEndIdx = oldCh.length - 1;
-    let oldStartVnode = oldCh[0];
-    let oldEndVnode = oldCh[oldEndIdx];
-    let newEndIdx = newCh.length - 1;
-    let newStartVnode = newCh[0];
-    let newEndVnode = newCh[newEndIdx];
-    let oldKeyToIdx: KeyToIndexMap | undefined;
-    let idxInOld: number;
-    let elmToMove: SVGVNode;
-    let before: any;
-
-    while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {
-        if (oldStartVnode == null) {
-            oldStartVnode = oldCh[++oldStartIdx]; // Vnode might have been moved left
-        }
-        else if (oldEndVnode == null) {
-            oldEndVnode = oldCh[--oldEndIdx];
-        }
-        else if (newStartVnode == null) {
-            newStartVnode = newCh[++newStartIdx];
-        }
-        else if (newEndVnode == null) {
-            newEndVnode = newCh[--newEndIdx];
-        }
-        else if (sameVnode(oldStartVnode, newStartVnode)) {
-            patchVnode(oldStartVnode, newStartVnode);
-            oldStartVnode = oldCh[++oldStartIdx];
-            newStartVnode = newCh[++newStartIdx];
-        }
-        else if (sameVnode(oldEndVnode, newEndVnode)) {
-            patchVnode(oldEndVnode, newEndVnode);
-            oldEndVnode = oldCh[--oldEndIdx];
-            newEndVnode = newCh[--newEndIdx];
-        }
-        else if (sameVnode(oldStartVnode, newEndVnode)) {
-            // Vnode moved right
-            patchVnode(oldStartVnode, newEndVnode);
-            api.insertBefore(parentElm, oldStartVnode.elm!, api.nextSibling(oldEndVnode.elm!));
-            oldStartVnode = oldCh[++oldStartIdx];
-            newEndVnode = newCh[--newEndIdx];
-        }
-        else if (sameVnode(oldEndVnode, newStartVnode)) {
-            // Vnode moved left
-            patchVnode(oldEndVnode, newStartVnode);
-            api.insertBefore(parentElm, oldEndVnode.elm!, oldStartVnode.elm!);
-            oldEndVnode = oldCh[--oldEndIdx];
-            newStartVnode = newCh[++newStartIdx];
-        }
-        else {
-            if (isUndef(oldKeyToIdx)) {
-                oldKeyToIdx = createKeyToOldIdx(oldCh, oldStartIdx, oldEndIdx);
-            }
-            idxInOld = oldKeyToIdx[newStartVnode.key];
-            if (isUndef(idxInOld)) {
-                // New element
-                api.insertBefore(parentElm, createElm(newStartVnode), oldStartVnode.elm!);
-            }
-            else {
-                elmToMove = oldCh[idxInOld];
-                if (elmToMove.tag !== newStartVnode.tag) {
-                    api.insertBefore(parentElm, createElm(newStartVnode), oldStartVnode.elm!);
-                }
-                else {
-                    patchVnode(elmToMove, newStartVnode);
-                    oldCh[idxInOld] = undefined;
-                    api.insertBefore(parentElm, elmToMove.elm!, oldStartVnode.elm!);
-                }
-            }
-            newStartVnode = newCh[++newStartIdx];
-        }
-    }
-    if (oldStartIdx <= oldEndIdx || newStartIdx <= newEndIdx) {
-        if (oldStartIdx > oldEndIdx) {
-            before = newCh[newEndIdx + 1] == null ? null : newCh[newEndIdx + 1].elm;
-            addVnodes(parentElm, before, newCh, newStartIdx, newEndIdx);
-        }
-        else {
-            removeVnodes(parentElm, oldCh, oldStartIdx, oldEndIdx);
-        }
-    }
-}
-
-function patchVnode(oldVnode: SVGVNode, vnode: SVGVNode) {
-    const elm = (vnode.elm = oldVnode.elm)!;
-    const oldCh = oldVnode.children;
-    const ch = vnode.children;
-    if (oldVnode === vnode) {
-        return;
-    }
-
-    updateAttrs(oldVnode, vnode);
-
-    if (isUndef(vnode.text)) {
-        if (isDef(oldCh) && isDef(ch)) {
-            if (oldCh !== ch) {
-                updateChildren(elm, oldCh, ch);
-            }
-        }
-        else if (isDef(ch)) {
-            if (isDef(oldVnode.text)) {
-                api.setTextContent(elm, '');
-            }
-            addVnodes(elm, null, ch, 0, ch.length - 1);
-        }
-        else if (isDef(oldCh)) {
-            removeVnodes(elm, oldCh, 0, oldCh.length - 1);
-        }
-        else if (isDef(oldVnode.text)) {
-            api.setTextContent(elm, '');
-        }
-    }
-    else if (oldVnode.text !== vnode.text) {
-        if (isDef(oldCh)) {
-            removeVnodes(elm, oldCh, 0, oldCh.length - 1);
-        }
-        api.setTextContent(elm, vnode.text!);
-    }
-}
-
-export default function patch(oldVnode: SVGVNode, vnode: SVGVNode): SVGVNode {
-    if (sameVnode(oldVnode, vnode)) {
-        patchVnode(oldVnode, vnode);
-    }
-    else {
-        const elm = oldVnode.elm!;
-        const parent = api.parentNode(elm);
-
-        createElm(vnode);
-
-        if (parent !== null) {
-            api.insertBefore(parent, vnode.elm!, api.nextSibling(elm));
-            removeVnodes(parent, [oldVnode], 0, 0);
-        }
-    }
-
-    return vnode;
-}

+ 0 - 4
node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/svg/svg.ts

@@ -1,4 +0,0 @@
-import {registerPainter} from '../zrender';
-import Painter from './Painter';
-
-registerPainter('svg', Painter);

+ 0 - 595
node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/tool/color.ts

@@ -1,595 +0,0 @@
-import LRU from '../core/LRU';
-import { extend, isGradientObject, isString, map } from '../core/util';
-import { GradientObject } from '../graphic/Gradient';
-
-const kCSSColorTable = {
-    'transparent': [0, 0, 0, 0], 'aliceblue': [240, 248, 255, 1],
-    'antiquewhite': [250, 235, 215, 1], 'aqua': [0, 255, 255, 1],
-    'aquamarine': [127, 255, 212, 1], 'azure': [240, 255, 255, 1],
-    'beige': [245, 245, 220, 1], 'bisque': [255, 228, 196, 1],
-    'black': [0, 0, 0, 1], 'blanchedalmond': [255, 235, 205, 1],
-    'blue': [0, 0, 255, 1], 'blueviolet': [138, 43, 226, 1],
-    'brown': [165, 42, 42, 1], 'burlywood': [222, 184, 135, 1],
-    'cadetblue': [95, 158, 160, 1], 'chartreuse': [127, 255, 0, 1],
-    'chocolate': [210, 105, 30, 1], 'coral': [255, 127, 80, 1],
-    'cornflowerblue': [100, 149, 237, 1], 'cornsilk': [255, 248, 220, 1],
-    'crimson': [220, 20, 60, 1], 'cyan': [0, 255, 255, 1],
-    'darkblue': [0, 0, 139, 1], 'darkcyan': [0, 139, 139, 1],
-    'darkgoldenrod': [184, 134, 11, 1], 'darkgray': [169, 169, 169, 1],
-    'darkgreen': [0, 100, 0, 1], 'darkgrey': [169, 169, 169, 1],
-    'darkkhaki': [189, 183, 107, 1], 'darkmagenta': [139, 0, 139, 1],
-    'darkolivegreen': [85, 107, 47, 1], 'darkorange': [255, 140, 0, 1],
-    'darkorchid': [153, 50, 204, 1], 'darkred': [139, 0, 0, 1],
-    'darksalmon': [233, 150, 122, 1], 'darkseagreen': [143, 188, 143, 1],
-    'darkslateblue': [72, 61, 139, 1], 'darkslategray': [47, 79, 79, 1],
-    'darkslategrey': [47, 79, 79, 1], 'darkturquoise': [0, 206, 209, 1],
-    'darkviolet': [148, 0, 211, 1], 'deeppink': [255, 20, 147, 1],
-    'deepskyblue': [0, 191, 255, 1], 'dimgray': [105, 105, 105, 1],
-    'dimgrey': [105, 105, 105, 1], 'dodgerblue': [30, 144, 255, 1],
-    'firebrick': [178, 34, 34, 1], 'floralwhite': [255, 250, 240, 1],
-    'forestgreen': [34, 139, 34, 1], 'fuchsia': [255, 0, 255, 1],
-    'gainsboro': [220, 220, 220, 1], 'ghostwhite': [248, 248, 255, 1],
-    'gold': [255, 215, 0, 1], 'goldenrod': [218, 165, 32, 1],
-    'gray': [128, 128, 128, 1], 'green': [0, 128, 0, 1],
-    'greenyellow': [173, 255, 47, 1], 'grey': [128, 128, 128, 1],
-    'honeydew': [240, 255, 240, 1], 'hotpink': [255, 105, 180, 1],
-    'indianred': [205, 92, 92, 1], 'indigo': [75, 0, 130, 1],
-    'ivory': [255, 255, 240, 1], 'khaki': [240, 230, 140, 1],
-    'lavender': [230, 230, 250, 1], 'lavenderblush': [255, 240, 245, 1],
-    'lawngreen': [124, 252, 0, 1], 'lemonchiffon': [255, 250, 205, 1],
-    'lightblue': [173, 216, 230, 1], 'lightcoral': [240, 128, 128, 1],
-    'lightcyan': [224, 255, 255, 1], 'lightgoldenrodyellow': [250, 250, 210, 1],
-    'lightgray': [211, 211, 211, 1], 'lightgreen': [144, 238, 144, 1],
-    'lightgrey': [211, 211, 211, 1], 'lightpink': [255, 182, 193, 1],
-    'lightsalmon': [255, 160, 122, 1], 'lightseagreen': [32, 178, 170, 1],
-    'lightskyblue': [135, 206, 250, 1], 'lightslategray': [119, 136, 153, 1],
-    'lightslategrey': [119, 136, 153, 1], 'lightsteelblue': [176, 196, 222, 1],
-    'lightyellow': [255, 255, 224, 1], 'lime': [0, 255, 0, 1],
-    'limegreen': [50, 205, 50, 1], 'linen': [250, 240, 230, 1],
-    'magenta': [255, 0, 255, 1], 'maroon': [128, 0, 0, 1],
-    'mediumaquamarine': [102, 205, 170, 1], 'mediumblue': [0, 0, 205, 1],
-    'mediumorchid': [186, 85, 211, 1], 'mediumpurple': [147, 112, 219, 1],
-    'mediumseagreen': [60, 179, 113, 1], 'mediumslateblue': [123, 104, 238, 1],
-    'mediumspringgreen': [0, 250, 154, 1], 'mediumturquoise': [72, 209, 204, 1],
-    'mediumvioletred': [199, 21, 133, 1], 'midnightblue': [25, 25, 112, 1],
-    'mintcream': [245, 255, 250, 1], 'mistyrose': [255, 228, 225, 1],
-    'moccasin': [255, 228, 181, 1], 'navajowhite': [255, 222, 173, 1],
-    'navy': [0, 0, 128, 1], 'oldlace': [253, 245, 230, 1],
-    'olive': [128, 128, 0, 1], 'olivedrab': [107, 142, 35, 1],
-    'orange': [255, 165, 0, 1], 'orangered': [255, 69, 0, 1],
-    'orchid': [218, 112, 214, 1], 'palegoldenrod': [238, 232, 170, 1],
-    'palegreen': [152, 251, 152, 1], 'paleturquoise': [175, 238, 238, 1],
-    'palevioletred': [219, 112, 147, 1], 'papayawhip': [255, 239, 213, 1],
-    'peachpuff': [255, 218, 185, 1], 'peru': [205, 133, 63, 1],
-    'pink': [255, 192, 203, 1], 'plum': [221, 160, 221, 1],
-    'powderblue': [176, 224, 230, 1], 'purple': [128, 0, 128, 1],
-    'red': [255, 0, 0, 1], 'rosybrown': [188, 143, 143, 1],
-    'royalblue': [65, 105, 225, 1], 'saddlebrown': [139, 69, 19, 1],
-    'salmon': [250, 128, 114, 1], 'sandybrown': [244, 164, 96, 1],
-    'seagreen': [46, 139, 87, 1], 'seashell': [255, 245, 238, 1],
-    'sienna': [160, 82, 45, 1], 'silver': [192, 192, 192, 1],
-    'skyblue': [135, 206, 235, 1], 'slateblue': [106, 90, 205, 1],
-    'slategray': [112, 128, 144, 1], 'slategrey': [112, 128, 144, 1],
-    'snow': [255, 250, 250, 1], 'springgreen': [0, 255, 127, 1],
-    'steelblue': [70, 130, 180, 1], 'tan': [210, 180, 140, 1],
-    'teal': [0, 128, 128, 1], 'thistle': [216, 191, 216, 1],
-    'tomato': [255, 99, 71, 1], 'turquoise': [64, 224, 208, 1],
-    'violet': [238, 130, 238, 1], 'wheat': [245, 222, 179, 1],
-    'white': [255, 255, 255, 1], 'whitesmoke': [245, 245, 245, 1],
-    'yellow': [255, 255, 0, 1], 'yellowgreen': [154, 205, 50, 1]
-};
-
-function clampCssByte(i: number): number {  // Clamp to integer 0 .. 255.
-    i = Math.round(i);  // Seems to be what Chrome does (vs truncation).
-    return i < 0 ? 0 : i > 255 ? 255 : i;
-}
-
-function clampCssAngle(i: number): number {  // Clamp to integer 0 .. 360.
-    i = Math.round(i);  // Seems to be what Chrome does (vs truncation).
-    return i < 0 ? 0 : i > 360 ? 360 : i;
-}
-
-function clampCssFloat(f: number): number {  // Clamp to float 0.0 .. 1.0.
-    return f < 0 ? 0 : f > 1 ? 1 : f;
-}
-
-function parseCssInt(val: string | number): number {  // int or percentage.
-    let str = val as string;
-    if (str.length && str.charAt(str.length - 1) === '%') {
-        return clampCssByte(parseFloat(str) / 100 * 255);
-    }
-    return clampCssByte(parseInt(str, 10));
-}
-
-function parseCssFloat(val: string | number): number {  // float or percentage.
-    let str = val as string;
-    if (str.length && str.charAt(str.length - 1) === '%') {
-        return clampCssFloat(parseFloat(str) / 100);
-    }
-    return clampCssFloat(parseFloat(str));
-}
-
-function cssHueToRgb(m1: number, m2: number, h: number): number {
-    if (h < 0) {
-        h += 1;
-    }
-    else if (h > 1) {
-        h -= 1;
-    }
-
-    if (h * 6 < 1) {
-        return m1 + (m2 - m1) * h * 6;
-    }
-    if (h * 2 < 1) {
-        return m2;
-    }
-    if (h * 3 < 2) {
-        return m1 + (m2 - m1) * (2 / 3 - h) * 6;
-    }
-    return m1;
-}
-
-function lerpNumber(a: number, b: number, p: number): number {
-    return a + (b - a) * p;
-}
-
-function setRgba(out: number[], r: number, g: number, b: number, a: number): number[] {
-    out[0] = r;
-    out[1] = g;
-    out[2] = b;
-    out[3] = a;
-    return out;
-}
-function copyRgba(out: number[], a: number[]) {
-    out[0] = a[0];
-    out[1] = a[1];
-    out[2] = a[2];
-    out[3] = a[3];
-    return out;
-}
-
-const colorCache = new LRU<number[]>(20);
-let lastRemovedArr: number[] = null;
-
-function putToCache(colorStr: string, rgbaArr: number[]) {
-    // Reuse removed array
-    if (lastRemovedArr) {
-        copyRgba(lastRemovedArr, rgbaArr);
-    }
-    lastRemovedArr = colorCache.put(colorStr, lastRemovedArr || (rgbaArr.slice()));
-}
-
-export function parse(colorStr: string, rgbaArr?: number[]): number[] {
-    if (!colorStr) {
-        return;
-    }
-    rgbaArr = rgbaArr || [];
-
-    let cached = colorCache.get(colorStr);
-    if (cached) {
-        return copyRgba(rgbaArr, cached);
-    }
-
-    // colorStr may be not string
-    colorStr = colorStr + '';
-    // Remove all whitespace, not compliant, but should just be more accepting.
-    let str = colorStr.replace(/ /g, '').toLowerCase();
-
-    // Color keywords (and transparent) lookup.
-    if (str in kCSSColorTable) {
-        copyRgba(rgbaArr, kCSSColorTable[str as keyof typeof kCSSColorTable]);
-        putToCache(colorStr, rgbaArr);
-        return rgbaArr;
-    }
-
-    // supports the forms #rgb, #rrggbb, #rgba, #rrggbbaa
-    // #rrggbbaa(use the last pair of digits as alpha)
-    // see https://drafts.csswg.org/css-color/#hex-notation
-    const strLen = str.length;
-    if (str.charAt(0) === '#') {
-        if (strLen === 4 || strLen === 5) {
-            const iv = parseInt(str.slice(1, 4), 16);  // TODO(deanm): Stricter parsing.
-            if (!(iv >= 0 && iv <= 0xfff)) {
-                setRgba(rgbaArr, 0, 0, 0, 1);
-                return;  // Covers NaN.
-            }
-            // interpret values of the form #rgb as #rrggbb and #rgba as #rrggbbaa
-            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
-            );
-            putToCache(colorStr, rgbaArr);
-            return rgbaArr;
-        }
-        else if (strLen === 7 || strLen === 9) {
-            const iv = parseInt(str.slice(1, 7), 16);  // TODO(deanm): Stricter parsing.
-            if (!(iv >= 0 && iv <= 0xffffff)) {
-                setRgba(rgbaArr, 0, 0, 0, 1);
-                return;  // Covers NaN.
-            }
-            setRgba(rgbaArr,
-                (iv & 0xff0000) >> 16,
-                (iv & 0xff00) >> 8,
-                iv & 0xff,
-                strLen === 9 ? parseInt(str.slice(7), 16) / 0xff : 1
-            );
-            putToCache(colorStr, rgbaArr);
-            return rgbaArr;
-        }
-
-        return;
-    }
-    let op = str.indexOf('(');
-    let ep = str.indexOf(')');
-    if (op !== -1 && ep + 1 === strLen) {
-        let fname = str.substr(0, op);
-        let params: (number | string)[] = str.substr(op + 1, ep - (op + 1)).split(',');
-        let alpha = 1;  // To allow case fallthrough.
-        switch (fname) {
-            case 'rgba':
-                if (params.length !== 4) {
-                    return params.length === 3
-                        // to be compatible with rgb
-                        ? setRgba(rgbaArr, +params[0], +params[1], +params[2], 1)
-                        : setRgba(rgbaArr, 0, 0, 0, 1);
-                }
-                alpha = parseCssFloat(params.pop()); // jshint ignore:line
-            // Fall through.
-            case 'rgb':
-                if (params.length >= 3) {
-                    setRgba(rgbaArr,
-                        parseCssInt(params[0]),
-                        parseCssInt(params[1]),
-                        parseCssInt(params[2]),
-                        params.length === 3 ? alpha : parseCssFloat(params[3])
-                    );
-                    putToCache(colorStr, rgbaArr);
-                    return rgbaArr;
-                }
-                else {
-                    setRgba(rgbaArr, 0, 0, 0, 1);
-                    return;
-                }
-            case 'hsla':
-                if (params.length !== 4) {
-                    setRgba(rgbaArr, 0, 0, 0, 1);
-                    return;
-                }
-                params[3] = parseCssFloat(params[3]);
-                hsla2rgba(params, rgbaArr);
-                putToCache(colorStr, rgbaArr);
-                return rgbaArr;
-            case 'hsl':
-                if (params.length !== 3) {
-                    setRgba(rgbaArr, 0, 0, 0, 1);
-                    return;
-                }
-                hsla2rgba(params, rgbaArr);
-                putToCache(colorStr, rgbaArr);
-                return rgbaArr;
-            default:
-                return;
-        }
-    }
-
-    setRgba(rgbaArr, 0, 0, 0, 1);
-    return;
-}
-
-function hsla2rgba(hsla: (number | string) [], rgba?: number[]): number[] {
-    const h = (((parseFloat(hsla[0] as string) % 360) + 360) % 360) / 360;  // 0 .. 1
-    // NOTE(deanm): According to the CSS spec s/l should only be
-    // percentages, but we don't bother and let float or percentage.
-    const s = parseCssFloat(hsla[1]);
-    const l = parseCssFloat(hsla[2]);
-    const m2 = l <= 0.5 ? l * (s + 1) : l + s - l * s;
-    const m1 = l * 2 - m2;
-
-    rgba = rgba || [];
-    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
-    );
-
-    if (hsla.length === 4) {
-        rgba[3] = hsla[3] as number;
-    }
-
-    return rgba;
-}
-
-function rgba2hsla(rgba: number[]): number[] {
-    if (!rgba) {
-        return;
-    }
-
-    // RGB from 0 to 255
-    const R = rgba[0] / 255;
-    const G = rgba[1] / 255;
-    const B = rgba[2] / 255;
-
-    const vMin = Math.min(R, G, B); // Min. value of RGB
-    const vMax = Math.max(R, G, B); // Max. value of RGB
-    const delta = vMax - vMin; // Delta RGB value
-
-    const L = (vMax + vMin) / 2;
-    let H;
-    let S;
-    // HSL results from 0 to 1
-    if (delta === 0) {
-        H = 0;
-        S = 0;
-    }
-    else {
-        if (L < 0.5) {
-            S = delta / (vMax + vMin);
-        }
-        else {
-            S = delta / (2 - vMax - vMin);
-        }
-
-        const deltaR = (((vMax - R) / 6) + (delta / 2)) / delta;
-        const deltaG = (((vMax - G) / 6) + (delta / 2)) / delta;
-        const deltaB = (((vMax - B) / 6) + (delta / 2)) / delta;
-
-        if (R === vMax) {
-            H = deltaB - deltaG;
-        }
-        else if (G === vMax) {
-            H = (1 / 3) + deltaR - deltaB;
-        }
-        else if (B === vMax) {
-            H = (2 / 3) + deltaG - deltaR;
-        }
-
-        if (H < 0) {
-            H += 1;
-        }
-
-        if (H > 1) {
-            H -= 1;
-        }
-    }
-
-    const hsla = [H * 360, S, L];
-
-    if (rgba[3] != null) {
-        hsla.push(rgba[3]);
-    }
-
-    return hsla;
-}
-
-export function lift(color: string, level: number) {
-    const colorArr = parse(color);
-    if (colorArr) {
-        for (let i = 0; i < 3; i++) {
-            if (level < 0) {
-                colorArr[i] = colorArr[i] * (1 - level) | 0;
-            }
-            else {
-                colorArr[i] = ((255 - colorArr[i]) * level + colorArr[i]) | 0;
-            }
-            if (colorArr[i] > 255) {
-                colorArr[i] = 255;
-            }
-            else if (colorArr[i] < 0) {
-                colorArr[i] = 0;
-            }
-        }
-        return stringify(colorArr, colorArr.length === 4 ? 'rgba' : 'rgb');
-    }
-}
-
-export function toHex(color: string): string {
-    const colorArr = parse(color);
-    if (colorArr) {
-        return ((1 << 24) + (colorArr[0] << 16) + (colorArr[1] << 8) + (+colorArr[2])).toString(16).slice(1);
-    }
-}
-
-/**
- * Map value to color. Faster than lerp methods because color is represented by rgba array.
- * @param normalizedValue A float between 0 and 1.
- * @param colors List of rgba color array
- * @param out Mapped gba color array
- * @return will be null/undefined if input illegal.
- */
-export function fastLerp(
-    normalizedValue: number,
-    colors: number[][],
-    out?: number[]
-): number[] {
-    if (!(colors && colors.length)
-        || !(normalizedValue >= 0 && normalizedValue <= 1)
-    ) {
-        return;
-    }
-
-    out = out || [];
-
-    const value = normalizedValue * (colors.length - 1);
-    const leftIndex = Math.floor(value);
-    const rightIndex = Math.ceil(value);
-    const leftColor = colors[leftIndex];
-    const rightColor = colors[rightIndex];
-    const dv = value - leftIndex;
-    out[0] = clampCssByte(lerpNumber(leftColor[0], rightColor[0], dv));
-    out[1] = clampCssByte(lerpNumber(leftColor[1], rightColor[1], dv));
-    out[2] = clampCssByte(lerpNumber(leftColor[2], rightColor[2], dv));
-    out[3] = clampCssFloat(lerpNumber(leftColor[3], rightColor[3], dv));
-
-    return out;
-}
-
-/**
- * @deprecated
- */
-export const fastMapToColor = fastLerp;
-
-type LerpFullOutput = {
-    color: string
-    leftIndex: number
-    rightIndex: number
-    value: number
-}
-/**
- * @param normalizedValue A float between 0 and 1.
- * @param colors Color list.
- * @param fullOutput Default false.
- * @return Result color. If fullOutput,
-            return {color: ..., leftIndex: ..., rightIndex: ..., value: ...},
- */
-export function lerp(
-    normalizedValue: number,
-    colors: string[],
-    fullOutput: boolean
-): LerpFullOutput
-export function lerp(
-    normalizedValue: number,
-    colors: string[]
-): string
-export function lerp(
-    normalizedValue: number,
-    colors: string[],
-    fullOutput?: boolean
-): string | LerpFullOutput {
-    if (!(colors && colors.length)
-        || !(normalizedValue >= 0 && normalizedValue <= 1)
-    ) {
-        return;
-    }
-
-    const value = normalizedValue * (colors.length - 1);
-    const leftIndex = Math.floor(value);
-    const rightIndex = Math.ceil(value);
-    const leftColor = parse(colors[leftIndex]);
-    const rightColor = parse(colors[rightIndex]);
-    const dv = value - leftIndex;
-
-    const color = stringify(
-        [
-            clampCssByte(lerpNumber(leftColor[0], rightColor[0], dv)),
-            clampCssByte(lerpNumber(leftColor[1], rightColor[1], dv)),
-            clampCssByte(lerpNumber(leftColor[2], rightColor[2], dv)),
-            clampCssFloat(lerpNumber(leftColor[3], rightColor[3], dv))
-        ],
-        'rgba'
-    );
-
-    return fullOutput
-        ? {
-            color: color,
-            leftIndex: leftIndex,
-            rightIndex: rightIndex,
-            value: value
-        }
-        : color;
-}
-
-/**
- * @deprecated
- */
-export const mapToColor = lerp;
-
-/**
- * @param color
- * @param h 0 ~ 360, ignore when null.
- * @param s 0 ~ 1, ignore when null.
- * @param l 0 ~ 1, ignore when null.
- * @return Color string in rgba format.
- * @memberOf module:zrender/util/color
- */
-export function modifyHSL(color: string, h?: number, s?: number, l?: number): string {
-    let colorArr = parse(color);
-
-    if (color) {
-        colorArr = rgba2hsla(colorArr);
-        h != null && (colorArr[0] = clampCssAngle(h));
-        s != null && (colorArr[1] = parseCssFloat(s));
-        l != null && (colorArr[2] = parseCssFloat(l));
-
-        return stringify(hsla2rgba(colorArr), 'rgba');
-    }
-}
-
-/**
- * @param color
- * @param alpha 0 ~ 1
- * @return Color string in rgba format.
- * @memberOf module:zrender/util/color
- */
-export function modifyAlpha(color: string, alpha?: number): string {
-    const colorArr = parse(color);
-
-    if (colorArr && alpha != null) {
-        colorArr[3] = clampCssFloat(alpha);
-        return stringify(colorArr, 'rgba');
-    }
-}
-
-/**
- * @param arrColor like [12,33,44,0.4]
- * @param type 'rgba', 'hsva', ...
- * @return Result color. (If input illegal, return undefined).
- */
-export function stringify(arrColor: number[], type: string): string {
-    if (!arrColor || !arrColor.length) {
-        return;
-    }
-    let colorStr = arrColor[0] + ',' + arrColor[1] + ',' + arrColor[2];
-    if (type === 'rgba' || type === 'hsva' || type === 'hsla') {
-        colorStr += ',' + arrColor[3];
-    }
-    return type + '(' + colorStr + ')';
-}
-
-/**
- * Calculate luminance. It will include alpha.
- */
-export function lum(color: string, backgroundLum: number) {
-    const arr = parse(color);
-    return arr
-        ? (0.299 * arr[0] + 0.587 * arr[1] + 0.114 * arr[2]) * arr[3] / 255
-            + (1 - arr[3]) * backgroundLum  // Blending with assumed white background.
-        : 0;
-}
-
-/**
- * Generate a random color
- */
-export function random(): string {
-    return stringify([
-        Math.round(Math.random() * 255),
-        Math.round(Math.random() * 255),
-        Math.round(Math.random() * 255)
-    ], 'rgb');
-}
-
-const liftedColorCache = new LRU<string>(100);
-export function liftColor(color: GradientObject): GradientObject;
-export function liftColor(color: string): string;
-export function liftColor(color: string | GradientObject): string | GradientObject {
-    if (isString(color)) {
-        let liftedColor = liftedColorCache.get(color);
-        if (!liftedColor) {
-            liftedColor = lift(color, -0.1);
-            liftedColorCache.put(color, liftedColor);
-        }
-        return liftedColor;
-    }
-    else if (isGradientObject(color)) {
-        const ret = extend({}, color) as GradientObject;
-        ret.colorStops = map(color.colorStops, stop => ({
-            offset: stop.offset,
-            color: lift(stop.color, -0.1)
-        }));
-        return ret;
-    }
-    // Change nothing.
-    return color;
-}

+ 0 - 295
node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/tool/convertPath.ts

@@ -1,295 +0,0 @@
-import { cubicSubdivide } from '../core/curve';
-import PathProxy from '../core/PathProxy';
-
-const CMD = PathProxy.CMD;
-
-function aroundEqual(a: number, b: number) {
-    return Math.abs(a - b) < 1e-5;
-}
-
-export function pathToBezierCurves(path: PathProxy) {
-
-    const data = path.data;
-    const len = path.len();
-
-    const bezierArrayGroups: number[][] = [];
-    let currentSubpath: number[];
-
-    let xi = 0;
-    let yi = 0;
-    let x0 = 0;
-    let y0 = 0;
-
-    function createNewSubpath(x: number, y: number) {
-        // More than one M command
-        if (currentSubpath && currentSubpath.length > 2) {
-            bezierArrayGroups.push(currentSubpath);
-        }
-        currentSubpath = [x, y];
-    }
-
-    function addLine(x0: number, y0: number, x1: number, y1: number) {
-        if (!(aroundEqual(x0, x1) && aroundEqual(y0, y1))) {
-            currentSubpath.push(x0, y0, x1, y1, x1, y1);
-        }
-    }
-
-    function addArc(startAngle: number, endAngle: number, cx: number, cy: number, rx: number, ry: number) {
-        // https://stackoverflow.com/questions/1734745/how-to-create-circle-with-b%C3%A9zier-curves
-        const delta = Math.abs(endAngle - startAngle);
-        const len = Math.tan(delta / 4) * 4 / 3;
-        const dir = endAngle < startAngle ? -1 : 1;
-
-        const c1 = Math.cos(startAngle);
-        const s1 = Math.sin(startAngle);
-        const c2 = Math.cos(endAngle);
-        const s2 = Math.sin(endAngle);
-
-        const x1 = c1 * rx + cx;
-        const y1 = s1 * ry + cy;
-
-        const x4 = c2 * rx + cx;
-        const y4 = s2 * ry + cy;
-
-        const hx = rx * len * dir;
-        const hy = ry * len * dir;
-        currentSubpath.push(
-            // Move control points on tangent.
-            x1 - hx * s1, y1 + hy * c1,
-            x4 + hx * s2, y4 - hy * c2,
-            x4, y4
-        );
-    }
-
-    let x1;
-    let y1;
-    let x2;
-    let y2;
-
-    for (let i = 0; i < len;) {
-        const cmd = data[i++];
-        const isFirst = i === 1;
-
-        if (isFirst) {
-            // 如果第一个命令是 L, C, Q
-            // 则 previous point 同绘制命令的第一个 point
-            // 第一个命令为 Arc 的情况下会在后面特殊处理
-            xi = data[i];
-            yi = data[i + 1];
-
-            x0 = xi;
-            y0 = yi;
-
-            if (cmd === CMD.L || cmd === CMD.C || cmd === CMD.Q) {
-                // Start point
-                currentSubpath = [x0, y0];
-            }
-        }
-
-        switch (cmd) {
-            case CMD.M:
-                // moveTo 命令重新创建一个新的 subpath, 并且更新新的起点
-                // 在 closePath 的时候使用
-                xi = x0 = data[i++];
-                yi = y0 = data[i++];
-
-                createNewSubpath(x0, y0);
-                break;
-            case CMD.L:
-                x1 = data[i++];
-                y1 = data[i++];
-                addLine(xi, yi, x1, y1);
-                xi = x1;
-                yi = y1;
-                break;
-            case CMD.C:
-                currentSubpath.push(
-                    data[i++], data[i++], data[i++], data[i++],
-                    xi = data[i++], yi = data[i++]
-                );
-                break;
-            case CMD.Q:
-                x1 = data[i++];
-                y1 = data[i++];
-                x2 = data[i++];
-                y2 = data[i++];
-                currentSubpath.push(
-                    // Convert quadratic to cubic
-                    xi + 2 / 3 * (x1 - xi), yi + 2 / 3 * (y1 - yi),
-                    x2 + 2 / 3 * (x1 - x2), y2 + 2 / 3 * (y1 - y2),
-                    x2, y2
-                );
-                xi = x2;
-                yi = y2;
-                break;
-            case CMD.A:
-                const cx = data[i++];
-                const cy = data[i++];
-                const rx = data[i++];
-                const ry = data[i++];
-                const startAngle = data[i++];
-                const endAngle = data[i++] + startAngle;
-
-                // TODO Arc rotation
-                i += 1;
-                const anticlockwise = !data[i++];
-
-                x1 = Math.cos(startAngle) * rx + cx;
-                y1 = Math.sin(startAngle) * ry + cy;
-                if (isFirst) {
-                    // 直接使用 arc 命令
-                    // 第一个命令起点还未定义
-                    x0 = x1;
-                    y0 = y1;
-                    createNewSubpath(x0, y0);
-                }
-                else {
-                    // Connect a line between current point to arc start point.
-                    addLine(xi, yi, x1, y1);
-                }
-
-                xi = Math.cos(endAngle) * rx + cx;
-                yi = Math.sin(endAngle) * ry + cy;
-
-                const step = (anticlockwise ? -1 : 1) * Math.PI / 2;
-
-                for (let angle = startAngle; anticlockwise ? angle > endAngle : angle < endAngle; angle += step) {
-                    const nextAngle = anticlockwise ? Math.max(angle + step, endAngle)
-                        : Math.min(angle + step, endAngle);
-                    addArc(angle, nextAngle, cx, cy, rx, ry);
-                }
-
-                break;
-            case CMD.R:
-                x0 = xi = data[i++];
-                y0 = yi = data[i++];
-                x1 = x0 + data[i++];
-                y1 = y0 + data[i++];
-
-                // rect is an individual path.
-                createNewSubpath(x1, y0);
-                addLine(x1, y0, x1, y1);
-                addLine(x1, y1, x0, y1);
-                addLine(x0, y1, x0, y0);
-                addLine(x0, y0, x1, y0);
-                break;
-            case CMD.Z:
-                currentSubpath && addLine(xi, yi, x0, y0);
-                xi = x0;
-                yi = y0;
-                break;
-        }
-    }
-
-    if (currentSubpath && currentSubpath.length > 2) {
-        bezierArrayGroups.push(currentSubpath);
-    }
-
-    return bezierArrayGroups;
-}
-
-function adpativeBezier(
-    x0: number, y0: number, x1: number, y1: number, x2: number, y2: number, x3: number, y3: number,
-    out: number[], scale: number
-) {
-    // This bezier is used to simulates a line when converting path to beziers.
-    if (aroundEqual(x0, x1) && aroundEqual(y0, y1) && aroundEqual(x2, x3) && aroundEqual(y2, y3)) {
-        out.push(x3, y3);
-        return;
-    }
-
-    const PIXEL_DISTANCE = 2 / scale;
-    const PIXEL_DISTANCE_SQR = PIXEL_DISTANCE * PIXEL_DISTANCE;
-
-    // Determine if curve is straight enough
-    let dx = x3 - x0;
-    let dy = y3 - y0;
-    const d = Math.sqrt(dx * dx + dy * dy);
-    dx /= d;
-    dy /= d;
-
-    const dx1 = x1 - x0;
-    const dy1 = y1 - y0;
-    const dx2 = x2 - x3;
-    const dy2 = y2 - y3;
-
-    const cp1LenSqr = dx1 * dx1 + dy1 * dy1;
-    const cp2LenSqr = dx2 * dx2 + dy2 * dy2;
-
-    if (cp1LenSqr < PIXEL_DISTANCE_SQR && cp2LenSqr < PIXEL_DISTANCE_SQR) {
-        // Add small segment
-        out.push(x3, y3);
-        return;
-    }
-
-    // Project length of cp1
-    const projLen1 = dx * dx1 + dy * dy1;
-    // Project length of cp2
-    const projLen2 = -dx * dx2 - dy * dy2;
-
-    // Distance from cp1 to start-end line.
-    const d1Sqr = cp1LenSqr - projLen1 * projLen1;
-    // Distance from cp2 to start-end line.
-    const d2Sqr = cp2LenSqr - projLen2 * projLen2;
-
-    // IF the cp1 and cp2 is near to the start-line enough
-    // We treat it straight enough
-    if (d1Sqr < PIXEL_DISTANCE_SQR && projLen1 >= 0
-        && d2Sqr < PIXEL_DISTANCE_SQR && projLen2 >= 0
-    ) {
-        out.push(x3, y3);
-        return;
-    }
-
-
-    const tmpSegX: number[] = [];
-    const tmpSegY: number[] = [];
-    // Subdivide
-    cubicSubdivide(x0, x1, x2, x3, 0.5, tmpSegX);
-    cubicSubdivide(y0, y1, y2, y3, 0.5, tmpSegY);
-
-    adpativeBezier(
-        tmpSegX[0], tmpSegY[0], tmpSegX[1], tmpSegY[1], tmpSegX[2], tmpSegY[2], tmpSegX[3], tmpSegY[3],
-        out, scale
-    );
-    adpativeBezier(
-        tmpSegX[4], tmpSegY[4], tmpSegX[5], tmpSegY[5], tmpSegX[6], tmpSegY[6], tmpSegX[7], tmpSegY[7],
-        out, scale
-    );
-}
-
-export function pathToPolygons(path: PathProxy, scale?: number) {
-    // TODO Optimize simple case like path is polygon and rect?
-    const bezierArrayGroups = pathToBezierCurves(path);
-
-    const polygons: number[][] = [];
-
-    scale = scale || 1;
-
-    for (let i = 0; i < bezierArrayGroups.length; i++) {
-        const beziers = bezierArrayGroups[i];
-        const polygon: number[] = [];
-        let x0 = beziers[0];
-        let y0 = beziers[1];
-
-        polygon.push(x0, y0);
-
-        for (let k = 2; k < beziers.length;) {
-
-            const x1 = beziers[k++];
-            const y1 = beziers[k++];
-            const x2 = beziers[k++];
-            const y2 = beziers[k++];
-            const x3 = beziers[k++];
-            const y3 = beziers[k++];
-
-            adpativeBezier(x0, y0, x1, y1, x2, y2, x3, y3, polygon, scale);
-
-            x0 = x3;
-            y0 = y3;
-        }
-
-        polygons.push(polygon);
-    }
-    return polygons;
-}

+ 0 - 406
node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/tool/dividePath.ts

@@ -1,406 +0,0 @@
-import { fromPoints } from '../core/bbox';
-import BoundingRect from '../core/BoundingRect';
-import Point from '../core/Point';
-import { map } from '../core/util';
-import Path from '../graphic/Path';
-import Polygon from '../graphic/shape/Polygon';
-import Rect from '../graphic/shape/Rect';
-import Sector from '../graphic/shape/Sector';
-import { pathToPolygons } from './convertPath';
-import { clonePath } from './path';
-
-// Default shape dividers
-// TODO divide polygon by grids.
-interface BinaryDivide {
-    (shape: Path['shape']): Path['shape'][]
-}
-
-/**
- * Calculating a grid to divide the shape.
- */
-function getDividingGrids(dimSize: number[], rowDim: number, count: number) {
-    const rowSize = dimSize[rowDim];
-    const columnSize = dimSize[1 - rowDim];
-
-    const ratio = Math.abs(rowSize / columnSize);
-    let rowCount = Math.ceil(Math.sqrt(ratio * count));
-    let columnCount = Math.floor(count / rowCount);
-    if (columnCount === 0) {
-        columnCount = 1;
-        rowCount = count;
-    }
-
-    const grids: number[] = [];
-    for (let i = 0; i < rowCount; i++) {
-        grids.push(columnCount);
-    }
-    const currentCount = rowCount * columnCount;
-    // Distribute the remaind grid evenly on each row.
-    const remained = count - currentCount;
-    if (remained > 0) {
-        // const stride = Math.max(Math.floor(rowCount / remained), 1);
-        for (let i = 0; i < remained; i++) {
-            grids[i % rowCount] += 1;
-        }
-    }
-    return grids;
-}
-
-
-// TODO cornerRadius
-function divideSector(sectorShape: Sector['shape'], count: number, outShapes: Sector['shape'][]) {
-    const r0 = sectorShape.r0;
-    const r = sectorShape.r;
-    const startAngle = sectorShape.startAngle;
-    const endAngle = sectorShape.endAngle;
-    const angle = Math.abs(endAngle - startAngle);
-    const arcLen = angle * r;
-    const deltaR = r - r0;
-
-    const isAngleRow = arcLen > Math.abs(deltaR);
-    const grids = getDividingGrids([arcLen, deltaR], isAngleRow ? 0 : 1, count);
-
-    const rowSize = (isAngleRow ? angle : deltaR) / grids.length;
-
-    for (let row = 0; row < grids.length; row++) {
-        const columnSize = (isAngleRow ? deltaR : angle) / grids[row];
-        for (let column = 0; column < grids[row]; column++) {
-            const newShape = {} as Sector['shape'];
-
-            if (isAngleRow) {
-                newShape.startAngle = startAngle + rowSize * row;
-                newShape.endAngle = startAngle + rowSize * (row + 1);
-                newShape.r0 = r0 + columnSize * column;
-                newShape.r = r0 + columnSize * (column + 1);
-            }
-            else {
-                newShape.startAngle = startAngle + columnSize * column;
-                newShape.endAngle = startAngle + columnSize * (column + 1);
-                newShape.r0 = r0 + rowSize * row;
-                newShape.r = r0 + rowSize * (row + 1);
-            }
-
-            newShape.clockwise = sectorShape.clockwise;
-            newShape.cx = sectorShape.cx;
-            newShape.cy = sectorShape.cy;
-
-            outShapes.push(newShape);
-        }
-    }
-}
-
-function divideRect(rectShape: Rect['shape'], count: number, outShapes: Rect['shape'][]) {
-    const width = rectShape.width;
-    const height = rectShape.height;
-
-    const isHorizontalRow = width > height;
-    const grids = getDividingGrids([width, height], isHorizontalRow ? 0 : 1, count);
-    const rowSizeDim = isHorizontalRow ? 'width' : 'height';
-    const columnSizeDim = isHorizontalRow ? 'height' : 'width';
-    const rowDim = isHorizontalRow ? 'x' : 'y';
-    const columnDim = isHorizontalRow ? 'y' : 'x';
-    const rowSize = rectShape[rowSizeDim] / grids.length;
-
-    for (let row = 0; row < grids.length; row++) {
-        const columnSize = rectShape[columnSizeDim] / grids[row];
-        for (let column = 0; column < grids[row]; column++) {
-            const newShape = {} as Rect['shape'];
-            newShape[rowDim] = row * rowSize;
-            newShape[columnDim] = column * columnSize;
-            newShape[rowSizeDim] = rowSize;
-            newShape[columnSizeDim] = columnSize;
-
-            newShape.x += rectShape.x;
-            newShape.y += rectShape.y;
-
-            outShapes.push(newShape);
-        }
-    }
-}
-
-function crossProduct2d(x1: number, y1: number, x2: number, y2: number) {
-    return x1 * y2 - x2 * y1;
-}
-
-function lineLineIntersect(
-    a1x: number, a1y: number, a2x: number, a2y: number, // p1
-    b1x: number, b1y: number, b2x: number, b2y: number // p2
-): Point {
-    const mx = a2x - a1x;
-    const my = a2y - a1y;
-    const nx = b2x - b1x;
-    const ny = b2y - b1y;
-
-    const nmCrossProduct = crossProduct2d(nx, ny, mx, my);
-    if (Math.abs(nmCrossProduct) < 1e-6) {
-        return null;
-    }
-
-    const b1a1x = a1x - b1x;
-    const b1a1y = a1y - b1y;
-
-    const p = crossProduct2d(b1a1x, b1a1y, nx, ny) / nmCrossProduct;
-    if (p < 0 || p > 1) {
-        return null;
-    }
-    // p2 is an infinite line
-    return new Point(
-        p * mx + a1x,
-        p * my + a1y
-    );
-}
-
-function projPtOnLine(pt: Point, lineA: Point, lineB: Point): number {
-    const dir = new Point();
-    Point.sub(dir, lineB, lineA);
-    dir.normalize();
-    const dir2 = new Point();
-    Point.sub(dir2, pt, lineA);
-    const len = dir2.dot(dir);
-    return len;
-}
-
-function addToPoly(poly: number[][], pt: number[]) {
-    const last = poly[poly.length - 1];
-    if (last && last[0] === pt[0] && last[1] === pt[1]) {
-        return;
-    }
-    poly.push(pt);
-}
-
-function splitPolygonByLine(points: number[][], lineA: Point, lineB: Point) {
-    const len = points.length;
-    const intersections: {
-        projPt: number,
-        pt: Point
-        idx: number
-    }[] = [];
-    for (let i = 0; i < len; i++) {
-        const p0 = points[i];
-        const p1 = points[(i + 1) % len];
-        const intersectionPt = lineLineIntersect(
-            p0[0], p0[1], p1[0], p1[1],
-            lineA.x, lineA.y, lineB.x, lineB.y
-        );
-        if (intersectionPt) {
-            intersections.push({
-                projPt: projPtOnLine(intersectionPt, lineA, lineB),
-                pt: intersectionPt,
-                idx: i
-            });
-        }
-    }
-
-    // TODO No intersection?
-    if (intersections.length < 2) {
-        // Do clone
-        return [ { points}, {points} ];
-    }
-
-    // Find two farthest points.
-    intersections.sort((a, b) => {
-        return a.projPt - b.projPt;
-    });
-    let splitPt0 = intersections[0];
-    let splitPt1 = intersections[intersections.length - 1];
-    if (splitPt1.idx < splitPt0.idx) {
-        const tmp = splitPt0;
-        splitPt0 = splitPt1;
-        splitPt1 = tmp;
-    }
-
-    const splitPt0Arr = [splitPt0.pt.x, splitPt0.pt.y];
-    const splitPt1Arr = [splitPt1.pt.x, splitPt1.pt.y];
-
-    const newPolyA: number[][] = [splitPt0Arr];
-    const newPolyB: number[][] = [splitPt1Arr];
-
-    for (let i = splitPt0.idx + 1; i <= splitPt1.idx; i++) {
-        addToPoly(newPolyA, points[i].slice());
-    }
-    addToPoly(newPolyA, splitPt1Arr);
-    // Close the path
-    addToPoly(newPolyA, splitPt0Arr);
-
-    for (let i = splitPt1.idx + 1; i <= splitPt0.idx + len; i++) {
-        addToPoly(newPolyB, points[i % len].slice());
-    }
-    addToPoly(newPolyB, splitPt0Arr);
-    // Close the path
-    addToPoly(newPolyB, splitPt1Arr);
-
-    return [{
-        points: newPolyA
-    }, {
-        points: newPolyB
-    }];
-}
-
-function binaryDividePolygon(
-    polygonShape: Pick<Polygon['shape'], 'points'>
-) {
-    const points = polygonShape.points;
-    const min: number[] = [];
-    const max: number[] = [];
-    fromPoints(points, min, max);
-    const boundingRect = new BoundingRect(
-        min[0], min[1], max[0] - min[0], max[1] - min[1]
-    );
-
-    const width = boundingRect.width;
-    const height = boundingRect.height;
-    const x = boundingRect.x;
-    const y = boundingRect.y;
-
-    const pt0 = new Point();
-    const pt1 = new Point();
-    if (width > height) {
-        pt0.x = pt1.x = x + width / 2;
-        pt0.y = y;
-        pt1.y = y + height;
-    }
-    else {
-        pt0.y = pt1.y = y + height / 2;
-        pt0.x = x;
-        pt1.x = x + width;
-    }
-    return splitPolygonByLine(points, pt0, pt1);
-}
-
-
-function binaryDivideRecursive<T extends Path['shape']>(
-    divider: BinaryDivide, shape: T, count: number, out: T[]
-): T[] {
-    if (count === 1) {
-        out.push(shape);
-    }
-    else {
-        const mid = Math.floor(count / 2);
-        const sub = divider(shape);
-        binaryDivideRecursive(divider, sub[0], mid, out);
-        binaryDivideRecursive(divider, sub[1], count - mid, out);
-    }
-
-    return out;
-}
-
-export function clone(path: Path, count: number) {
-    const paths = [];
-    for (let i = 0; i < count; i++) {
-        paths.push(clonePath(path));
-    }
-    return paths;
-}
-
-function copyPathProps(source: Path, target: Path) {
-    target.setStyle(source.style);
-    target.z = source.z;
-    target.z2 = source.z2;
-    target.zlevel = source.zlevel;
-}
-
-function polygonConvert(points: number[]): number[][] {
-    const out = [];
-    for (let i = 0; i < points.length;) {
-        out.push([points[i++], points[i++]]);
-    }
-    return out;
-}
-
-export function split(
-    path: Path, count: number
-) {
-    const outShapes: Path['shape'][] = [];
-    const shape = path.shape;
-    let OutShapeCtor: new() => Path;
-    // TODO Use clone when shape size is small
-    switch (path.type) {
-        case 'rect':
-            divideRect(shape as Rect['shape'], count, outShapes as Rect['shape'][]);
-            OutShapeCtor = Rect;
-            break;
-        case 'sector':
-            divideSector(shape as Sector['shape'], count, outShapes as Sector['shape'][]);
-            OutShapeCtor = Sector;
-            break;
-        case 'circle':
-            divideSector({
-                r0: 0, r: shape.r, startAngle: 0, endAngle: Math.PI * 2,
-                cx: shape.cx, cy: shape.cy
-            } as Sector['shape'], count, outShapes as Sector['shape'][]);
-            OutShapeCtor = Sector;
-            break;
-        default:
-            const m = path.getComputedTransform();
-            const scale = m ? Math.sqrt(Math.max(m[0] * m[0] + m[1] * m[1], m[2] * m[2] + m[3] * m[3])) : 1;
-            const polygons = map(
-                pathToPolygons(path.getUpdatedPathProxy(), scale),
-                poly => polygonConvert(poly)
-            );
-            const polygonCount = polygons.length;
-            if (polygonCount === 0) {
-                binaryDivideRecursive(binaryDividePolygon, {
-                    points: polygons[0]
-                }, count, outShapes);
-            }
-            else if (polygonCount === count) {   // In case we only split batched paths to non-batched paths. No need to split.
-                for (let i = 0; i < polygonCount; i++) {
-                    outShapes.push({
-                        points: polygons[i]
-                    } as Polygon['shape']);
-                }
-            }
-            else {
-                // Most complex case. Assign multiple subpath to each polygon based on it's area.
-                let totalArea = 0;
-                const items = map(polygons, poly => {
-                    const min: number[] = [];
-                    const max: number[] = [];
-                    fromPoints(poly, min, max);
-                    // TODO: polygon area?
-                    const area = (max[1] - min[1]) * (max[0] - min[0]);
-                    totalArea += area;
-                    return { poly, area };
-                });
-                items.sort((a, b) => b.area - a.area);
-
-                let left = count;
-                for (let i = 0; i < polygonCount; i++) {
-                    const item = items[i];
-                    if (left <= 0) {
-                        break;
-                    }
-
-                    const selfCount = i === polygonCount - 1
-                        ? left   // Use the last piece directly
-                        : Math.ceil(item.area / totalArea * count);
-
-                    if (selfCount < 0) {
-                        continue;
-                    }
-
-                    binaryDivideRecursive(binaryDividePolygon, {
-                        points: item.poly
-                    }, selfCount, outShapes);
-                    left -= selfCount;
-                };
-            }
-            OutShapeCtor = Polygon;
-            break;
-    }
-
-    if (!OutShapeCtor) {
-        // Unkown split algorithm. Use clone instead
-        return clone(path, count);
-    }
-    const out: Path[] = [];
-
-    for (let i = 0; i < outShapes.length; i++) {
-        const subPath = new OutShapeCtor();
-        subPath.setShape(outShapes[i]);
-        copyPathProps(path, subPath);
-        out.push(subPath);
-    }
-
-    return out;
-}

+ 0 - 894
node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/tool/morphPath.ts

@@ -1,894 +0,0 @@
-import PathProxy from '../core/PathProxy';
-import { cubicSubdivide } from '../core/curve';
-import Path from '../graphic/Path';
-import Element, { ElementAnimateConfig } from '../Element';
-import { defaults, map } from '../core/util';
-import { lerp } from '../core/vector';
-import Group, { GroupLike } from '../graphic/Group';
-import { clonePath } from './path';
-import { MatrixArray } from '../core/matrix';
-import Transformable from '../core/Transformable';
-import { ZRenderType } from '../zrender';
-import { split } from './dividePath';
-import { pathToBezierCurves } from './convertPath';
-
-function alignSubpath(subpath1: number[], subpath2: number[]): [number[], number[]] {
-    const len1 = subpath1.length;
-    const len2 = subpath2.length;
-    if (len1 === len2) {
-        return [subpath1, subpath2];
-    }
-    const tmpSegX: number[] = [];
-    const tmpSegY: number[] = [];
-
-    const shorterPath = len1 < len2 ? subpath1 : subpath2;
-    const shorterLen = Math.min(len1, len2);
-    // Should divide excatly
-    const diff = Math.abs(len2 - len1) / 6;
-    const shorterBezierCount = (shorterLen - 2) / 6;
-    // Add `diff` number of beziers
-    const eachCurveSubDivCount = Math.ceil(diff / shorterBezierCount) + 1;
-
-    const newSubpath = [shorterPath[0], shorterPath[1]];
-    let remained = diff;
-
-    for (let i = 2; i < shorterLen;) {
-        let x0 = shorterPath[i - 2];
-        let y0 = shorterPath[i - 1];
-        let x1 = shorterPath[i++];
-        let y1 = shorterPath[i++];
-        let x2 = shorterPath[i++];
-        let y2 = shorterPath[i++];
-        let x3 = shorterPath[i++];
-        let y3 = shorterPath[i++];
-
-        if (remained <= 0) {
-            newSubpath.push(x1, y1, x2, y2, x3, y3);
-            continue;
-        }
-
-        let actualSubDivCount = Math.min(remained, eachCurveSubDivCount - 1) + 1;
-        for (let k = 1; k <= actualSubDivCount; k++) {
-            const p = k / actualSubDivCount;
-
-            cubicSubdivide(x0, x1, x2, x3, p, tmpSegX);
-            cubicSubdivide(y0, y1, y2, y3, p, tmpSegY);
-
-            // tmpSegX[3] === tmpSegX[4]
-            x0 = tmpSegX[3];
-            y0 = tmpSegY[3];
-
-            newSubpath.push(tmpSegX[1], tmpSegY[1], tmpSegX[2], tmpSegY[2], x0, y0);
-            x1 = tmpSegX[5];
-            y1 = tmpSegY[5];
-            x2 = tmpSegX[6];
-            y2 = tmpSegY[6];
-            // The last point (x3, y3) is still the same.
-        }
-        remained -= actualSubDivCount - 1;
-    }
-
-    return shorterPath === subpath1 ? [newSubpath, subpath2] : [subpath1, newSubpath];
-}
-
-function createSubpath(lastSubpathSubpath: number[], otherSubpath: number[]) {
-    const len = lastSubpathSubpath.length;
-    const lastX = lastSubpathSubpath[len - 2];
-    const lastY = lastSubpathSubpath[len - 1];
-
-    const newSubpath: number[] = [];
-    for (let i = 0; i < otherSubpath.length;) {
-        newSubpath[i++] = lastX;
-        newSubpath[i++] = lastY;
-    }
-    return newSubpath;
-}
-
-/**
- * Make two bezier arrays aligns on structure. To have better animation.
- *
- * It will:
- * Make two bezier arrays have same number of subpaths.
- * Make each subpath has equal number of bezier curves.
- *
- * array is the convert result of pathToBezierCurves.
- */
-export function alignBezierCurves(array1: number[][], array2: number[][]) {
-
-    let lastSubpath1;
-    let lastSubpath2;
-
-    let newArray1 = [];
-    let newArray2 = [];
-
-    for (let i = 0; i < Math.max(array1.length, array2.length); i++) {
-        const subpath1 = array1[i];
-        const subpath2 = array2[i];
-
-        let newSubpath1;
-        let newSubpath2;
-
-        if (!subpath1) {
-            newSubpath1 = createSubpath(lastSubpath1 || subpath2, subpath2);
-            newSubpath2 = subpath2;
-        }
-        else if (!subpath2) {
-            newSubpath2 = createSubpath(lastSubpath2 || subpath1, subpath1);
-            newSubpath1 = subpath1;
-        }
-        else {
-            [newSubpath1, newSubpath2] = alignSubpath(subpath1, subpath2);
-            lastSubpath1 = newSubpath1;
-            lastSubpath2 = newSubpath2;
-        }
-
-        newArray1.push(newSubpath1);
-        newArray2.push(newSubpath2);
-    }
-
-    return [newArray1, newArray2];
-}
-
-interface MorphingPath extends Path {
-    __morphT: number;
-}
-
-export interface CombineMorphingPath extends Path {
-    childrenRef(): (CombineMorphingPath | Path)[]
-    __isCombineMorphing: boolean;
-}
-
-export function centroid(array: number[]) {
-    // https://en.wikipedia.org/wiki/Centroid#Of_a_polygon
-    let signedArea = 0;
-    let cx = 0;
-    let cy = 0;
-    const len = array.length;
-    // Polygon should been closed.
-    for (let i = 0, j = len - 2; i < len; j = i, i += 2) {
-        const x0 = array[j];
-        const y0 = array[j + 1];
-        const x1 = array[i];
-        const y1 = array[i + 1];
-        const a = x0 * y1 - x1 * y0;
-        signedArea += a;
-        cx += (x0 + x1) * a;
-        cy += (y0 + y1) * a;
-    }
-
-    if (signedArea === 0) {
-        return [array[0] || 0, array[1] || 0];
-    }
-
-    return [cx / signedArea / 3, cy / signedArea / 3, signedArea];
-}
-
-/**
- * Offset the points to find the nearest morphing distance.
- * Return beziers count needs to be offset.
- */
-function findBestRingOffset(
-    fromSubBeziers: number[],
-    toSubBeziers: number[],
-    fromCp: number[],
-    toCp: number[]
-) {
-    const bezierCount = (fromSubBeziers.length - 2) / 6;
-    let bestScore = Infinity;
-    let bestOffset = 0;
-
-    const len = fromSubBeziers.length;
-    const len2 = len - 2;
-    for (let offset = 0; offset < bezierCount; offset++) {
-        const cursorOffset = offset * 6;
-        let score = 0;
-
-        for (let k = 0; k < len; k += 2) {
-            let idx = k === 0 ? cursorOffset : ((cursorOffset + k - 2) % len2 + 2);
-
-            const x0 = fromSubBeziers[idx] - fromCp[0];
-            const y0 = fromSubBeziers[idx + 1] - fromCp[1];
-            const x1 = toSubBeziers[k] - toCp[0];
-            const y1 = toSubBeziers[k + 1] - toCp[1];
-
-            const dx = x1 - x0;
-            const dy = y1 - y0;
-            score += dx * dx + dy * dy;
-        }
-        if (score < bestScore) {
-            bestScore = score;
-            bestOffset = offset;
-        }
-    }
-
-    return bestOffset;
-}
-
-function reverse(array: number[]) {
-    const newArr: number[] = [];
-    const len = array.length;
-    for (let i = 0; i < len; i += 2) {
-        newArr[i] = array[len - i - 2];
-        newArr[i + 1] = array[len - i - 1];
-    }
-    return newArr;
-}
-
-type MorphingData = {
-    from: number[];
-    to: number[];
-    fromCp: number[];
-    toCp: number[];
-    rotation: number;
-}[];
-
-/**
- * If we interpolating between two bezier curve arrays.
- * It will have many broken effects during the transition.
- * So we try to apply an extra rotation which can make each bezier curve morph as small as possible.
- */
-function findBestMorphingRotation(
-    fromArr: number[][],
-    toArr: number[][],
-    searchAngleIteration: number,
-    searchAngleRange: number
-): MorphingData {
-    const result = [];
-
-    let fromNeedsReverse: boolean;
-
-    for (let i = 0; i < fromArr.length; i++) {
-        let fromSubpathBezier = fromArr[i];
-        const toSubpathBezier = toArr[i];
-
-        const fromCp = centroid(fromSubpathBezier);
-        const toCp = centroid(toSubpathBezier);
-
-        if (fromNeedsReverse == null) {
-            // Reverse from array if two have different directions.
-            // Determine the clockwise based on the first subpath.
-            // Reverse all subpaths or not. Avoid winding rule changed.
-            fromNeedsReverse = fromCp[2] < 0 !== toCp[2] < 0;
-        }
-
-        const newFromSubpathBezier: number[] = [];
-        const newToSubpathBezier: number[] = [];
-        let bestAngle = 0;
-        let bestScore = Infinity;
-        let tmpArr: number[] = [];
-
-        const len = fromSubpathBezier.length;
-        if (fromNeedsReverse) {
-            // Make sure clockwise
-            fromSubpathBezier = reverse(fromSubpathBezier);
-        }
-        const offset = findBestRingOffset(fromSubpathBezier, toSubpathBezier, fromCp, toCp) * 6;
-
-        const len2 = len - 2;
-        for (let k = 0; k < len2; k += 2) {
-            // Not include the start point.
-            const idx = (offset + k) % len2 + 2;
-            newFromSubpathBezier[k + 2] = fromSubpathBezier[idx] - fromCp[0];
-            newFromSubpathBezier[k + 3] = fromSubpathBezier[idx + 1] - fromCp[1];
-        }
-        newFromSubpathBezier[0] = fromSubpathBezier[offset] - fromCp[0];
-        newFromSubpathBezier[1] = fromSubpathBezier[offset + 1] - fromCp[1];
-
-        if (searchAngleIteration > 0) {
-            const step = searchAngleRange / searchAngleIteration;
-            for (let angle = -searchAngleRange / 2; angle <= searchAngleRange / 2; angle += step) {
-                const sa = Math.sin(angle);
-                const ca = Math.cos(angle);
-                let score = 0;
-
-                for (let k = 0; k < fromSubpathBezier.length; k += 2) {
-                    const x0 = newFromSubpathBezier[k];
-                    const y0 = newFromSubpathBezier[k + 1];
-                    const x1 = toSubpathBezier[k] - toCp[0];
-                    const y1 = toSubpathBezier[k + 1] - toCp[1];
-
-                    // Apply rotation on the target point.
-                    const newX1 = x1 * ca - y1 * sa;
-                    const newY1 = x1 * sa + y1 * ca;
-
-                    tmpArr[k] = newX1;
-                    tmpArr[k + 1] = newY1;
-
-                    const dx = newX1 - x0;
-                    const dy = newY1 - y0;
-
-                    // Use dot product to have min direction change.
-                    // const d = Math.sqrt(x0 * x0 + y0 * y0);
-                    // score += x0 * dx / d + y0 * dy / d;
-                    score += dx * dx + dy * dy;
-                }
-
-                if (score < bestScore) {
-                    bestScore = score;
-                    bestAngle = angle;
-                    // Copy.
-                    for (let m = 0; m < tmpArr.length; m++) {
-                        newToSubpathBezier[m] = tmpArr[m];
-                    }
-                }
-            }
-        }
-        else {
-            for (let i = 0; i < len; i += 2) {
-                newToSubpathBezier[i] = toSubpathBezier[i] - toCp[0];
-                newToSubpathBezier[i + 1] = toSubpathBezier[i + 1] - toCp[1];
-            }
-        }
-
-        result.push({
-            from: newFromSubpathBezier,
-            to: newToSubpathBezier,
-            fromCp,
-            toCp,
-            rotation: -bestAngle
-        });
-    }
-    return result;
-}
-
-export function isCombineMorphing(path: Element): path is CombineMorphingPath {
-    return (path as CombineMorphingPath).__isCombineMorphing;
-}
-
-export function isMorphing(el: Element) {
-    return (el as MorphingPath).__morphT >= 0;
-}
-
-const SAVED_METHOD_PREFIX = '__mOriginal_';
-function saveAndModifyMethod<T extends object, M extends keyof T>(
-    obj: T,
-    methodName: M,
-    modifiers: { replace?: T[M], after?: T[M], before?: T[M] }
-) {
-    const savedMethodName = SAVED_METHOD_PREFIX + methodName;
-    const originalMethod = (obj as any)[savedMethodName] || obj[methodName];
-    if (!(obj as any)[savedMethodName]) {
-        (obj as any)[savedMethodName] = obj[methodName];
-    }
-    const replace = modifiers.replace;
-    const after = modifiers.after;
-    const before = modifiers.before;
-
-    (obj as any)[methodName] = function () {
-        const args = arguments;
-        let res;
-        before && (before as unknown as Function).apply(this, args);
-        // Still call the original method if not replacement.
-        if (replace) {
-            res = (replace as unknown as Function).apply(this, args);
-        }
-        else {
-            res = originalMethod.apply(this, args);
-        }
-        after && (after as unknown as Function).apply(this, args);
-        return res;
-    };
-}
-function restoreMethod<T extends object>(
-    obj: T,
-    methodName: keyof T
-) {
-    const savedMethodName = SAVED_METHOD_PREFIX + methodName;
-    if ((obj as any)[savedMethodName]) {
-        obj[methodName] = (obj as any)[savedMethodName];
-        (obj as any)[savedMethodName] = null;
-    }
-}
-
-function applyTransformOnBeziers(bezierCurves: number[][], mm: MatrixArray) {
-    for (let i = 0; i < bezierCurves.length; i++) {
-        const subBeziers = bezierCurves[i];
-        for (let k = 0; k < subBeziers.length;) {
-            const x = subBeziers[k];
-            const y = subBeziers[k + 1];
-
-            subBeziers[k++] = mm[0] * x + mm[2] * y + mm[4];
-            subBeziers[k++] = mm[1] * x + mm[3] * y + mm[5];
-        }
-    }
-}
-
-function prepareMorphPath(
-    fromPath: Path,
-    toPath: Path
-) {
-    const fromPathProxy = fromPath.getUpdatedPathProxy();
-    const toPathProxy = toPath.getUpdatedPathProxy();
-
-    const [fromBezierCurves, toBezierCurves] =
-        alignBezierCurves(pathToBezierCurves(fromPathProxy), pathToBezierCurves(toPathProxy));
-
-    const fromPathTransform = fromPath.getComputedTransform();
-    const toPathTransform = toPath.getComputedTransform();
-    function updateIdentityTransform(this: Transformable) {
-        this.transform = null;
-    }
-    fromPathTransform && applyTransformOnBeziers(fromBezierCurves, fromPathTransform);
-    toPathTransform && applyTransformOnBeziers(toBezierCurves, toPathTransform);
-    // Just ignore transform
-    saveAndModifyMethod(toPath, 'updateTransform', { replace: updateIdentityTransform });
-    toPath.transform = null;
-
-    const morphingData = findBestMorphingRotation(fromBezierCurves, toBezierCurves, 10, Math.PI);
-
-    const tmpArr: number[] = [];
-
-    saveAndModifyMethod(toPath, 'buildPath', { replace(path: PathProxy) {
-        const t = (toPath as MorphingPath).__morphT;
-        const onet = 1 - t;
-
-        const newCp: number[] = [];
-
-        for (let i = 0; i < morphingData.length; i++) {
-            const item = morphingData[i];
-            const from = item.from;
-            const to = item.to;
-            const angle = item.rotation * t;
-            const fromCp = item.fromCp;
-            const toCp = item.toCp;
-            const sa = Math.sin(angle);
-            const ca = Math.cos(angle);
-
-            lerp(newCp, fromCp, toCp, t);
-
-            for (let m = 0; m < from.length; m += 2) {
-                const x0 = from[m];
-                const y0 = from[m + 1];
-                const x1 = to[m];
-                const y1 = to[m + 1];
-
-                const x = x0 * onet + x1 * t;
-                const y = y0 * onet + y1 * t;
-
-                tmpArr[m] = (x * ca - y * sa) + newCp[0];
-                tmpArr[m + 1] = (x * sa + y * ca) + newCp[1];
-            }
-
-            let x0 = tmpArr[0];
-            let y0 = tmpArr[1];
-
-            path.moveTo(x0, y0);
-
-            for (let m = 2; m < from.length;) {
-                const x1 = tmpArr[m++];
-                const y1 = tmpArr[m++];
-                const x2 = tmpArr[m++];
-                const y2 = tmpArr[m++];
-                const x3 = tmpArr[m++];
-                const y3 = tmpArr[m++];
-
-                // Is a line.
-                if (x0 === x1 && y0 === y1 && x2 === x3 && y2 === y3) {
-                    path.lineTo(x3, y3);
-                }
-                else {
-                    path.bezierCurveTo(x1, y1, x2, y2, x3, y3);
-                }
-                x0 = x3;
-                y0 = y3;
-            }
-        }
-    } });
-}
-
-/**
- * Morphing from old path to new path.
- */
-export function morphPath(
-    fromPath: Path,
-    toPath: Path,
-    animationOpts: ElementAnimateConfig
-): Path {
-    if (!fromPath || !toPath) {
-        return toPath;
-    }
-
-    const oldDone = animationOpts.done;
-    // const oldAborted = animationOpts.aborted;
-    const oldDuring = animationOpts.during;
-
-    prepareMorphPath(fromPath, toPath);
-
-    (toPath as MorphingPath).__morphT = 0;
-
-    function restoreToPath() {
-        restoreMethod(toPath, 'buildPath');
-        restoreMethod(toPath, 'updateTransform');
-        // Mark as not in morphing
-        (toPath as MorphingPath).__morphT = -1;
-        // Cleanup.
-        toPath.createPathProxy();
-        toPath.dirtyShape();
-    }
-
-    toPath.animateTo({
-        __morphT: 1
-    } as any, defaults({
-        during(p) {
-            toPath.dirtyShape();
-            oldDuring && oldDuring(p);
-        },
-        done() {
-            restoreToPath();
-            oldDone && oldDone();
-        }
-        // NOTE: Don't do restore if aborted.
-        // Because all status was just set when animation started.
-        // aborted() {
-        //     oldAborted && oldAborted();
-        // }
-    } as ElementAnimateConfig, animationOpts));
-
-    return toPath;
-}
-
-// https://github.com/mapbox/earcut/blob/master/src/earcut.js#L437
-// https://jsfiddle.net/pissang/2jk7x145/
-// function zOrder(x: number, y: number, minX: number, minY: number, maxX: number, maxY: number) {
-//     // Normalize coords to 0 - 1
-//     // The transformed into non-negative 15-bit integer range
-//     x = (maxX === minX) ? 0 : Math.round(32767 * (x - minX) / (maxX - minX));
-//     y = (maxY === minY) ? 0 : Math.round(32767 * (y - minY) / (maxY - minY));
-
-//     x = (x | (x << 8)) & 0x00FF00FF;
-//     x = (x | (x << 4)) & 0x0F0F0F0F;
-//     x = (x | (x << 2)) & 0x33333333;
-//     x = (x | (x << 1)) & 0x55555555;
-
-//     y = (y | (y << 8)) & 0x00FF00FF;
-//     y = (y | (y << 4)) & 0x0F0F0F0F;
-//     y = (y | (y << 2)) & 0x33333333;
-//     y = (y | (y << 1)) & 0x55555555;
-
-//     return x | (y << 1);
-// }
-
-// https://github.com/w8r/hilbert/blob/master/hilbert.js#L30
-// https://jsfiddle.net/pissang/xdnbzg6v/
-function hilbert(x: number, y: number, minX: number, minY: number, maxX: number, maxY: number) {
-    const bits = 16;
-    x = (maxX === minX) ? 0 : Math.round(32767 * (x - minX) / (maxX - minX));
-    y = (maxY === minY) ? 0 : Math.round(32767 * (y - minY) / (maxY - minY));
-
-    let d = 0;
-    let tmp: number;
-    for (let s = (1 << bits) / 2; s > 0; s /= 2) {
-        let rx = 0;
-        let ry = 0;
-
-        if ((x & s) > 0) {
-            rx = 1;
-        }
-        if ((y & s) > 0) {
-            ry = 1;
-        }
-
-        d += s * s * ((3 * rx) ^ ry);
-
-        if (ry === 0) {
-            if (rx === 1) {
-                x = s - 1 - x;
-                y = s - 1 - y;
-            }
-            tmp = x;
-            x = y;
-            y = tmp;
-        }
-    }
-    return d;
-}
-
-// Sort paths on hilbert. Not using z-order because it may still have large cross.
-// So the left most source can animate to the left most target, not right most target.
-// Hope in this way. We can make sure each element is animated to the proper target. Not the farthest.
-function sortPaths(pathList: Path[]): Path[] {
-    let xMin = Infinity;
-    let yMin = Infinity;
-    let xMax = -Infinity;
-    let yMax = -Infinity;
-    const cps = map(pathList, path => {
-        const rect = path.getBoundingRect();
-        const m = path.getComputedTransform();
-        const x = rect.x + rect.width / 2 + (m ? m[4] : 0);
-        const y = rect.y + rect.height / 2 + (m ? m[5] : 0);
-        xMin = Math.min(x, xMin);
-        yMin = Math.min(y, yMin);
-        xMax = Math.max(x, xMax);
-        yMax = Math.max(y, yMax);
-        return [x, y];
-    });
-
-    const items = map(cps, (cp, idx) => {
-        return {
-            cp,
-            z: hilbert(cp[0], cp[1], xMin, yMin, xMax, yMax),
-            path: pathList[idx]
-        };
-    });
-
-    return items.sort((a, b) => a.z - b.z).map(item => item.path);
-}
-
-export interface DividePathParams {
-    path: Path,
-    count: number
-};
-export interface DividePath {
-    (params: DividePathParams): Path[]
-}
-
-export interface IndividualDelay {
-    (index: number, count: number, fromPath: Path, toPath: Path): number
-}
-
-function defaultDividePath(param: DividePathParams) {
-    return split(param.path, param.count);
-}
-export interface CombineConfig extends ElementAnimateConfig {
-    /**
-     * Transform of returned will be ignored.
-     */
-    dividePath?: DividePath
-    /**
-     * delay of each individual.
-     * Because individual are sorted on z-order. The index is also sorted top-left / right-down.
-     */
-    individualDelay?: IndividualDelay
-    /**
-     * If sort splitted paths so the movement between them can be more natural
-     */
-    // sort?: boolean
-}
-
-function createEmptyReturn() {
-    return {
-        fromIndividuals: [] as Path[],
-        toIndividuals: [] as Path[],
-        count: 0
-    };
-}
-/**
- * Make combine morphing from many paths to one.
- * Will return a group to replace the original path.
- */
-export function combineMorph(
-    fromList: (CombineMorphingPath | Path)[],
-    toPath: Path,
-    animationOpts: CombineConfig
-) {
-    let fromPathList: Path[] = [];
-
-    function addFromPath(fromList: Element[]) {
-        for (let i = 0; i < fromList.length; i++) {
-            const from = fromList[i];
-            if (isCombineMorphing(from)) {
-                addFromPath((from as GroupLike).childrenRef());
-            }
-            else if (from instanceof Path) {
-                fromPathList.push(from);
-            }
-        }
-    }
-    addFromPath(fromList);
-
-    const separateCount = fromPathList.length;
-
-    // fromPathList.length is 0.
-    if (!separateCount) {
-        return createEmptyReturn();
-    }
-
-    const dividePath = animationOpts.dividePath || defaultDividePath;
-
-    let toSubPathList = dividePath({
-        path: toPath, count: separateCount
-    });
-    if (toSubPathList.length !== separateCount) {
-        console.error('Invalid morphing: unmatched splitted path');
-        return createEmptyReturn();
-    }
-
-    fromPathList = sortPaths(fromPathList);
-    toSubPathList = sortPaths(toSubPathList);
-
-    const oldDone = animationOpts.done;
-    // const oldAborted = animationOpts.aborted;
-    const oldDuring = animationOpts.during;
-    const individualDelay = animationOpts.individualDelay;
-
-    const identityTransform = new Transformable();
-
-    for (let i = 0; i < separateCount; i++) {
-        const from = fromPathList[i];
-        const to = toSubPathList[i];
-
-        to.parent = toPath as unknown as Group;
-
-        // Ignore transform in each subpath.
-        to.copyTransform(identityTransform);
-
-        // Will do morphPath for each individual if individualDelay is set.
-        if (!individualDelay) {
-            prepareMorphPath(from, to);
-        }
-    }
-
-    (toPath as CombineMorphingPath).__isCombineMorphing = true;
-    (toPath as CombineMorphingPath).childrenRef = function () {
-        return toSubPathList;
-    };
-
-    function addToSubPathListToZr(zr: ZRenderType) {
-        for (let i = 0; i < toSubPathList.length; i++) {
-            toSubPathList[i].addSelfToZr(zr);
-        }
-    }
-    saveAndModifyMethod(toPath, 'addSelfToZr', {
-        after(zr) {
-            addToSubPathListToZr(zr);
-        }
-    });
-    saveAndModifyMethod(toPath, 'removeSelfFromZr', {
-        after(zr) {
-            for (let i = 0; i < toSubPathList.length; i++) {
-                toSubPathList[i].removeSelfFromZr(zr);
-            }
-        }
-    });
-
-    function restoreToPath() {
-        (toPath as CombineMorphingPath).__isCombineMorphing = false;
-        // Mark as not in morphing
-        (toPath as MorphingPath).__morphT = -1;
-        (toPath as CombineMorphingPath).childrenRef = null;
-
-        restoreMethod(toPath, 'addSelfToZr');
-        restoreMethod(toPath, 'removeSelfFromZr');
-    }
-
-    const toLen = toSubPathList.length;
-
-    if (individualDelay) {
-        let animating = toLen;
-        const eachDone = () => {
-            animating--;
-            if (animating === 0) {
-                restoreToPath();
-                oldDone && oldDone();
-            }
-        };
-        // Animate each element individually.
-        for (let i = 0; i < toLen; i++) {
-            // TODO only call during once?
-            const indivdualAnimationOpts = individualDelay ? defaults({
-                delay: (animationOpts.delay || 0) + individualDelay(i, toLen, fromPathList[i], toSubPathList[i]),
-                done: eachDone
-            } as ElementAnimateConfig, animationOpts) : animationOpts;
-            morphPath(fromPathList[i], toSubPathList[i], indivdualAnimationOpts);
-        }
-    }
-    else {
-        (toPath as MorphingPath).__morphT = 0;
-        toPath.animateTo({
-            __morphT: 1
-        } as any, defaults({
-            during(p) {
-                for (let i = 0; i < toLen; i++) {
-                    const child = toSubPathList[i] as MorphingPath;
-                    child.__morphT = (toPath as MorphingPath).__morphT;
-                    child.dirtyShape();
-                }
-                oldDuring && oldDuring(p);
-            },
-            done() {
-                restoreToPath();
-                for (let i = 0; i < fromList.length; i++) {
-                    restoreMethod(fromList[i], 'updateTransform');
-                }
-                oldDone && oldDone();
-            }
-        } as ElementAnimateConfig, animationOpts));
-    }
-
-    if (toPath.__zr) {
-        addToSubPathListToZr(toPath.__zr);
-    }
-
-    return {
-        fromIndividuals: fromPathList,
-        toIndividuals: toSubPathList,
-        count: toLen
-    };
-}
-export interface SeparateConfig extends ElementAnimateConfig {
-    dividePath?: DividePath
-    individualDelay?: IndividualDelay
-    /**
-     * If sort splitted paths so the movement between them can be more natural
-     */
-    // sort?: boolean
-    // // If the from path of separate animation is doing combine animation.
-    // // And the paths number is not same with toPathList. We need to do enter/leave animation
-    // // on the missing/spare paths.
-    // enter?: (el: Path) => void
-    // leave?: (el: Path) => void
-}
-
-/**
- * Make separate morphing from one path to many paths.
- * Make the MorphingKind of `toPath` become `'ONE_ONE'`.
- */
-export function separateMorph(
-    fromPath: Path,
-    toPathList: Path[],
-    animationOpts: SeparateConfig
-) {
-    const toLen = toPathList.length;
-    let fromPathList: Path[] = [];
-
-    const dividePath = animationOpts.dividePath || defaultDividePath;
-
-    function addFromPath(fromList: Element[]) {
-        for (let i = 0; i < fromList.length; i++) {
-            const from = fromList[i];
-            if (isCombineMorphing(from)) {
-                addFromPath((from as GroupLike).childrenRef());
-            }
-            else if (from instanceof Path) {
-                fromPathList.push(from);
-            }
-        }
-    }
-    // This case most happen when a combining path is called to reverse the animation
-    // to its original separated state.
-    if (isCombineMorphing(fromPath)) {
-        addFromPath(fromPath.childrenRef());
-
-        const fromLen = fromPathList.length;
-        if (fromLen < toLen) {
-            let k = 0;
-            for (let i = fromLen; i < toLen; i++) {
-                // Create a clone
-                fromPathList.push(clonePath(fromPathList[k++ % fromLen]));
-            }
-        }
-        // Else simply remove if fromLen > toLen
-        fromPathList.length = toLen;
-    }
-    else {
-        fromPathList = dividePath({ path: fromPath, count: toLen });
-        const fromPathTransform = fromPath.getComputedTransform();
-        for (let i = 0; i < fromPathList.length; i++) {
-            // Force use transform of source path.
-            fromPathList[i].setLocalTransform(fromPathTransform);
-        }
-        if (fromPathList.length !== toLen) {
-            console.error('Invalid morphing: unmatched splitted path');
-            return createEmptyReturn();
-        }
-    }
-
-    fromPathList = sortPaths(fromPathList);
-    toPathList = sortPaths(toPathList);
-
-    const individualDelay = animationOpts.individualDelay;
-    for (let i = 0; i < toLen; i++) {
-        const indivdualAnimationOpts = individualDelay ? defaults({
-            delay: (animationOpts.delay || 0) + individualDelay(i, toLen, fromPathList[i], toPathList[i])
-        } as ElementAnimateConfig, animationOpts) : animationOpts;
-        morphPath(fromPathList[i], toPathList[i], indivdualAnimationOpts);
-    }
-
-    return {
-        fromIndividuals: fromPathList,
-        toIndividuals: toPathList,
-        count: toPathList.length
-    };
-}
-
-export { split as defaultDividePath };

+ 0 - 954
node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/tool/parseSVG.ts

@@ -1,954 +0,0 @@
-import Group from '../graphic/Group';
-import ZRImage from '../graphic/Image';
-import Circle from '../graphic/shape/Circle';
-import Rect from '../graphic/shape/Rect';
-import Ellipse from '../graphic/shape/Ellipse';
-import Line from '../graphic/shape/Line';
-import Polygon from '../graphic/shape/Polygon';
-import Polyline from '../graphic/shape/Polyline';
-import * as matrix from '../core/matrix';
-import { createFromString } from './path';
-import { defaults, trim, each, map, keys, hasOwn } from '../core/util';
-import Displayable from '../graphic/Displayable';
-import Element from '../Element';
-import { RectLike } from '../core/BoundingRect';
-import { Dictionary } from '../core/types';
-import { PatternObject } from '../graphic/Pattern';
-import LinearGradient, { LinearGradientObject } from '../graphic/LinearGradient';
-import RadialGradient, { RadialGradientObject } from '../graphic/RadialGradient';
-import Gradient, { GradientObject } from '../graphic/Gradient';
-import TSpan, { TSpanStyleProps } from '../graphic/TSpan';
-import { parseXML } from './parseXML';
-
-
-interface SVGParserOption {
-    // Default width if svg width not specified or is a percent value.
-    width?: number;
-    // Default height if svg height not specified or is a percent value.
-    height?: number;
-    ignoreViewBox?: boolean;
-    ignoreRootClip?: boolean;
-}
-
-export interface SVGParserResult {
-    // Group, The root of the the result tree of zrender shapes
-    root: Group;
-    // number, the viewport width of the SVG
-    width: number;
-    // number, the viewport height of the SVG
-    height: number;
-    //  {x, y, width, height}, the declared viewBox rect of the SVG, if exists
-    viewBoxRect: RectLike;
-    // the {scale, position} calculated by viewBox and viewport, is exists
-    viewBoxTransform: {
-        x: number;
-        y: number;
-        scale: number;
-    };
-    named: SVGParserResultNamedItem[];
-}
-export interface SVGParserResultNamedItem {
-    name: string;
-    // If a tag has no name attribute but its ancester <g> is named,
-    // `namedFrom` is set to the named item of the ancester <g>.
-    // Otherwise null/undefined
-    namedFrom: SVGParserResultNamedItem;
-    svgNodeTagLower: SVGNodeTagLower;
-    el: Element;
-};
-
-export type SVGNodeTagLower =
-    'g' | 'rect' | 'circle' | 'line' | 'ellipse' | 'polygon'
-    | 'polyline' | 'image' | 'text' | 'tspan' | 'path' | 'defs' | 'switch';
-
-
-type DefsId = string;
-type DefsMap = { [id in DefsId]: LinearGradientObject | RadialGradientObject | PatternObject };
-type DefsUsePending = [Displayable, 'fill' | 'stroke', DefsId][];
-
-type ElementExtended = Element & {
-    __inheritedStyle?: InheritedStyleByZRKey;
-    __selfStyle?: SelfStyleByZRKey;
-}
-type DisplayableExtended = Displayable & {
-    __inheritedStyle?: InheritedStyleByZRKey;
-    __selfStyle?: SelfStyleByZRKey;
-}
-
-type TextStyleOptionExtended = TSpanStyleProps & {
-    fontSize: number;
-    fontFamily: string;
-    fontWeight: string;
-    fontStyle: string;
-}
-let nodeParsers: {[name in SVGNodeTagLower]?: (
-    this: SVGParser, xmlNode: SVGElement, parentGroup: Group
-) => Element};
-
-type InheritedStyleByZRKey = {[name in InheritableStyleZRKey]?: string};
-type InheritableStyleZRKey =
-    typeof INHERITABLE_STYLE_ATTRIBUTES_MAP[keyof typeof INHERITABLE_STYLE_ATTRIBUTES_MAP];
-const INHERITABLE_STYLE_ATTRIBUTES_MAP = {
-    'fill': 'fill',
-    'stroke': 'stroke',
-    'stroke-width': 'lineWidth',
-    'opacity': 'opacity',
-    'fill-opacity': 'fillOpacity',
-    'stroke-opacity': 'strokeOpacity',
-    'stroke-dasharray': 'lineDash',
-    'stroke-dashoffset': 'lineDashOffset',
-    'stroke-linecap': 'lineCap',
-    'stroke-linejoin': 'lineJoin',
-    'stroke-miterlimit': 'miterLimit',
-    'font-family': 'fontFamily',
-    'font-size': 'fontSize',
-    'font-style': 'fontStyle',
-    'font-weight': 'fontWeight',
-    'text-anchor': 'textAlign',
-    'visibility': 'visibility',
-    'display': 'display'
-} as const;
-const INHERITABLE_STYLE_ATTRIBUTES_MAP_KEYS = keys(INHERITABLE_STYLE_ATTRIBUTES_MAP);
-
-type SelfStyleByZRKey = {[name in SelfStyleZRKey]?: string};
-type SelfStyleZRKey =
-    typeof SELF_STYLE_ATTRIBUTES_MAP[keyof typeof SELF_STYLE_ATTRIBUTES_MAP];
-const SELF_STYLE_ATTRIBUTES_MAP = {
-    'alignment-baseline': 'textBaseline',
-    'stop-color': 'stopColor'
-};
-const SELF_STYLE_ATTRIBUTES_MAP_KEYS = keys(SELF_STYLE_ATTRIBUTES_MAP);
-
-
-class SVGParser {
-
-    private _defs: DefsMap = {};
-    // The use of <defs> can be in front of <defs> declared.
-    // So save them temporarily in `_defsUsePending`.
-    private _defsUsePending: DefsUsePending;
-    private _root: Group = null;
-
-    private _textX: number;
-    private _textY: number;
-
-    parse(xml: string | Document | SVGElement, opt: SVGParserOption): SVGParserResult {
-        opt = opt || {};
-
-        const svg = parseXML(xml);
-
-        if (process.env.NODE_ENV !== 'production') {
-            if (!svg) {
-                throw new Error('Illegal svg');
-            }
-        }
-
-        this._defsUsePending = [];
-        let root = new Group();
-        this._root = root;
-        const named: SVGParserResult['named'] = [];
-        // parse view port
-        const viewBox = svg.getAttribute('viewBox') || '';
-
-        // If width/height not specified, means "100%" of `opt.width/height`.
-        // TODO: Other percent value not supported yet.
-        let width = parseFloat((svg.getAttribute('width') || opt.width) as string);
-        let height = parseFloat((svg.getAttribute('height') || opt.height) as string);
-        // If width/height not specified, set as null for output.
-        isNaN(width) && (width = null);
-        isNaN(height) && (height = null);
-
-        // Apply inline style on svg element.
-        parseAttributes(svg, root, null, true, false);
-
-        let child = svg.firstChild as SVGElement;
-        while (child) {
-            this._parseNode(child, root, named, null, false, false);
-            child = child.nextSibling as SVGElement;
-        }
-
-        applyDefs(this._defs, this._defsUsePending);
-        this._defsUsePending = [];
-
-        let viewBoxRect;
-        let viewBoxTransform;
-
-        if (viewBox) {
-            const viewBoxArr = splitNumberSequence(viewBox);
-            // Some invalid case like viewBox: 'none'.
-            if (viewBoxArr.length >= 4) {
-                viewBoxRect = {
-                    x: parseFloat((viewBoxArr[0] || 0) as string),
-                    y: parseFloat((viewBoxArr[1] || 0) as string),
-                    width: parseFloat(viewBoxArr[2]),
-                    height: parseFloat(viewBoxArr[3])
-                };
-            }
-        }
-
-        if (viewBoxRect && width != null && height != null) {
-            viewBoxTransform = makeViewBoxTransform(viewBoxRect, { x: 0, y: 0, width: width, height: height });
-
-            if (!opt.ignoreViewBox) {
-                // If set transform on the output group, it probably bring trouble when
-                // some users only intend to show the clipped content inside the viewBox,
-                // but not intend to transform the output group. So we keep the output
-                // group no transform. If the user intend to use the viewBox as a
-                // camera, just set `opt.ignoreViewBox` as `true` and set transfrom
-                // manually according to the viewBox info in the output of this method.
-                const elRoot = root;
-                root = new Group();
-                root.add(elRoot);
-                elRoot.scaleX = elRoot.scaleY = viewBoxTransform.scale;
-                elRoot.x = viewBoxTransform.x;
-                elRoot.y = viewBoxTransform.y;
-            }
-        }
-
-        // Some shapes might be overflow the viewport, which should be
-        // clipped despite whether the viewBox is used, as the SVG does.
-        if (!opt.ignoreRootClip && width != null && height != null) {
-            root.setClipPath(new Rect({
-                shape: {x: 0, y: 0, width: width, height: height}
-            }));
-        }
-
-        // Set width/height on group just for output the viewport size.
-        return {
-            root: root,
-            width: width,
-            height: height,
-            viewBoxRect: viewBoxRect,
-            viewBoxTransform: viewBoxTransform,
-            named: named
-        };
-    }
-
-    private _parseNode(
-        xmlNode: SVGElement,
-        parentGroup: Group,
-        named: SVGParserResultNamedItem[],
-        namedFrom: SVGParserResultNamedItem['namedFrom'],
-        isInDefs: boolean,
-        isInText: boolean
-    ): void {
-
-        const nodeName = xmlNode.nodeName.toLowerCase() as SVGNodeTagLower;
-
-        // TODO:
-        // support <style>...</style> in svg, where nodeName is 'style',
-        // CSS classes is defined globally wherever the style tags are declared.
-
-        let el;
-        let namedFromForSub = namedFrom;
-
-        if (nodeName === 'defs') {
-            isInDefs = true;
-        }
-        if (nodeName === 'text') {
-            isInText = true;
-        }
-
-        if (nodeName === 'defs' || nodeName === 'switch') {
-            // Just make <switch> displayable. Do not support
-            // the full feature of it.
-            el = parentGroup;
-        }
-        else {
-            // In <defs>, elments will not be rendered.
-            // TODO:
-            // do not support elements in <defs> yet, until requirement come.
-            // other graphic elements can also be in <defs> and referenced by
-            // <use x="5" y="5" xlink:href="#myCircle" />
-            // multiple times
-            if (!isInDefs) {
-                const parser = nodeParsers[nodeName];
-                if (parser && hasOwn(nodeParsers, nodeName)) {
-
-                    el = parser.call(this, xmlNode, parentGroup);
-
-                    // Do not support empty string;
-                    const nameAttr = xmlNode.getAttribute('name');
-                    if (nameAttr) {
-                        const newNamed: SVGParserResultNamedItem = {
-                            name: nameAttr,
-                            namedFrom: null,
-                            svgNodeTagLower: nodeName,
-                            el: el
-                        };
-                        named.push(newNamed);
-                        if (nodeName === 'g') {
-                            namedFromForSub = newNamed;
-                        }
-                    }
-                    else if (namedFrom) {
-                        named.push({
-                            name: namedFrom.name,
-                            namedFrom: namedFrom,
-                            svgNodeTagLower: nodeName,
-                            el: el
-                        });
-                    }
-
-                    parentGroup.add(el);
-                }
-            }
-
-            // Whether gradients/patterns are declared in <defs> or not,
-            // they all work.
-            const parser = paintServerParsers[nodeName];
-            if (parser && hasOwn(paintServerParsers, nodeName)) {
-                const def = parser.call(this, xmlNode);
-                const id = xmlNode.getAttribute('id');
-                if (id) {
-                    this._defs[id] = def;
-                }
-            }
-        }
-
-        // If xmlNode is <g>, <text>, <tspan>, <defs>, <switch>,
-        // el will be a group, and traverse the children.
-        if (el && el.isGroup) {
-            let child = xmlNode.firstChild as SVGElement;
-            while (child) {
-                if (child.nodeType === 1) {
-                    this._parseNode(child, el as Group, named, namedFromForSub, isInDefs, isInText);
-                }
-                // Is plain text rather than a tagged node.
-                else if (child.nodeType === 3 && isInText) {
-                    this._parseText(child, el as Group);
-                }
-                child = child.nextSibling as SVGElement;
-            }
-        }
-
-    }
-
-    private _parseText(xmlNode: SVGElement, parentGroup: Group): TSpan {
-        const text = new TSpan({
-            style: {
-                text: xmlNode.textContent
-            },
-            silent: true,
-            x: this._textX || 0,
-            y: this._textY || 0
-        });
-
-        inheritStyle(parentGroup, text);
-
-        parseAttributes(xmlNode, text, this._defsUsePending, false, false);
-
-        applyTextAlignment(text, parentGroup);
-
-        const textStyle = text.style as TextStyleOptionExtended;
-        const fontSize = textStyle.fontSize;
-        if (fontSize && fontSize < 9) {
-            // PENDING
-            textStyle.fontSize = 9;
-            text.scaleX *= fontSize / 9;
-            text.scaleY *= fontSize / 9;
-        }
-
-        const font = (textStyle.fontSize || textStyle.fontFamily) && [
-            textStyle.fontStyle,
-            textStyle.fontWeight,
-            (textStyle.fontSize || 12) + 'px',
-            // If font properties are defined, `fontFamily` should not be ignored.
-            textStyle.fontFamily || 'sans-serif'
-        ].join(' ');
-        // Make font
-        textStyle.font = font;
-
-        const rect = text.getBoundingRect();
-        this._textX += rect.width;
-
-        parentGroup.add(text);
-
-        return text;
-    }
-
-    static internalField = (function () {
-
-        nodeParsers = {
-            'g': function (xmlNode, parentGroup) {
-                const g = new Group();
-                inheritStyle(parentGroup, g);
-                parseAttributes(xmlNode, g, this._defsUsePending, false, false);
-
-                return g;
-            },
-            'rect': function (xmlNode, parentGroup) {
-                const rect = new Rect();
-                inheritStyle(parentGroup, rect);
-                parseAttributes(xmlNode, rect, this._defsUsePending, false, false);
-
-                rect.setShape({
-                    x: parseFloat(xmlNode.getAttribute('x') || '0'),
-                    y: parseFloat(xmlNode.getAttribute('y') || '0'),
-                    width: parseFloat(xmlNode.getAttribute('width') || '0'),
-                    height: parseFloat(xmlNode.getAttribute('height') || '0')
-                });
-
-                rect.silent = true;
-
-                return rect;
-            },
-            'circle': function (xmlNode, parentGroup) {
-                const circle = new Circle();
-                inheritStyle(parentGroup, circle);
-                parseAttributes(xmlNode, circle, this._defsUsePending, false, false);
-
-                circle.setShape({
-                    cx: parseFloat(xmlNode.getAttribute('cx') || '0'),
-                    cy: parseFloat(xmlNode.getAttribute('cy') || '0'),
-                    r: parseFloat(xmlNode.getAttribute('r') || '0')
-                });
-
-                circle.silent = true;
-
-                return circle;
-            },
-            'line': function (xmlNode, parentGroup) {
-                const line = new Line();
-                inheritStyle(parentGroup, line);
-                parseAttributes(xmlNode, line, this._defsUsePending, false, false);
-
-                line.setShape({
-                    x1: parseFloat(xmlNode.getAttribute('x1') || '0'),
-                    y1: parseFloat(xmlNode.getAttribute('y1') || '0'),
-                    x2: parseFloat(xmlNode.getAttribute('x2') || '0'),
-                    y2: parseFloat(xmlNode.getAttribute('y2') || '0')
-                });
-
-                line.silent = true;
-
-                return line;
-            },
-            'ellipse': function (xmlNode, parentGroup) {
-                const ellipse = new Ellipse();
-                inheritStyle(parentGroup, ellipse);
-                parseAttributes(xmlNode, ellipse, this._defsUsePending, false, false);
-
-                ellipse.setShape({
-                    cx: parseFloat(xmlNode.getAttribute('cx') || '0'),
-                    cy: parseFloat(xmlNode.getAttribute('cy') || '0'),
-                    rx: parseFloat(xmlNode.getAttribute('rx') || '0'),
-                    ry: parseFloat(xmlNode.getAttribute('ry') || '0')
-                });
-
-                ellipse.silent = true;
-
-                return ellipse;
-            },
-            'polygon': function (xmlNode, parentGroup) {
-                const pointsStr = xmlNode.getAttribute('points');
-                let pointsArr;
-                if (pointsStr) {
-                    pointsArr = parsePoints(pointsStr);
-                }
-                const polygon = new Polygon({
-                    shape: {
-                        points: pointsArr || []
-                    },
-                    silent: true
-                });
-
-                inheritStyle(parentGroup, polygon);
-                parseAttributes(xmlNode, polygon, this._defsUsePending, false, false);
-
-                return polygon;
-            },
-            'polyline': function (xmlNode, parentGroup) {
-                const pointsStr = xmlNode.getAttribute('points');
-                let pointsArr;
-                if (pointsStr) {
-                    pointsArr = parsePoints(pointsStr);
-                }
-                const polyline = new Polyline({
-                    shape: {
-                        points: pointsArr || []
-                    },
-                    silent: true
-                });
-
-                inheritStyle(parentGroup, polyline);
-                parseAttributes(xmlNode, polyline, this._defsUsePending, false, false);
-
-                return polyline;
-            },
-            'image': function (xmlNode, parentGroup) {
-                const img = new ZRImage();
-                inheritStyle(parentGroup, img);
-                parseAttributes(xmlNode, img, this._defsUsePending, false, false);
-
-                img.setStyle({
-                    image: xmlNode.getAttribute('xlink:href') || xmlNode.getAttribute('href'),
-                    x: +xmlNode.getAttribute('x'),
-                    y: +xmlNode.getAttribute('y'),
-                    width: +xmlNode.getAttribute('width'),
-                    height: +xmlNode.getAttribute('height')
-                });
-                img.silent = true;
-
-                return img;
-            },
-            'text': function (xmlNode, parentGroup) {
-                const x = xmlNode.getAttribute('x') || '0';
-                const y = xmlNode.getAttribute('y') || '0';
-                const dx = xmlNode.getAttribute('dx') || '0';
-                const dy = xmlNode.getAttribute('dy') || '0';
-
-                this._textX = parseFloat(x) + parseFloat(dx);
-                this._textY = parseFloat(y) + parseFloat(dy);
-
-                const g = new Group();
-                inheritStyle(parentGroup, g);
-                parseAttributes(xmlNode, g, this._defsUsePending, false, true);
-
-                return g;
-            },
-            'tspan': function (xmlNode, parentGroup) {
-                const x = xmlNode.getAttribute('x');
-                const y = xmlNode.getAttribute('y');
-                if (x != null) {
-                    // new offset x
-                    this._textX = parseFloat(x);
-                }
-                if (y != null) {
-                    // new offset y
-                    this._textY = parseFloat(y);
-                }
-                const dx = xmlNode.getAttribute('dx') || '0';
-                const dy = xmlNode.getAttribute('dy') || '0';
-
-                const g = new Group();
-
-                inheritStyle(parentGroup, g);
-                parseAttributes(xmlNode, g, this._defsUsePending, false, true);
-
-                this._textX += parseFloat(dx);
-                this._textY += parseFloat(dy);
-
-                return g;
-            },
-            'path': function (xmlNode, parentGroup) {
-                // TODO svg fill rule
-                // https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/fill-rule
-                // path.style.globalCompositeOperation = 'xor';
-                const d = xmlNode.getAttribute('d') || '';
-
-                // Performance sensitive.
-
-                const path = createFromString(d);
-
-                inheritStyle(parentGroup, path);
-                parseAttributes(xmlNode, path, this._defsUsePending, false, false);
-
-                path.silent = true;
-
-                return path;
-            }
-        };
-
-
-    })();
-}
-
-const paintServerParsers: Dictionary<(xmlNode: SVGElement) => any> = {
-
-    'lineargradient': function (xmlNode: SVGElement) {
-        // TODO:
-        // Support that x1,y1,x2,y2 are not declared lineargradient but in node.
-        const x1 = parseInt(xmlNode.getAttribute('x1') || '0', 10);
-        const y1 = parseInt(xmlNode.getAttribute('y1') || '0', 10);
-        const x2 = parseInt(xmlNode.getAttribute('x2') || '10', 10);
-        const y2 = parseInt(xmlNode.getAttribute('y2') || '0', 10);
-
-        const gradient = new LinearGradient(x1, y1, x2, y2);
-
-        parsePaintServerUnit(xmlNode, gradient);
-
-        parseGradientColorStops(xmlNode, gradient);
-
-        return gradient;
-    },
-
-    'radialgradient': function (xmlNode) {
-        // TODO:
-        // Support that x1,y1,x2,y2 are not declared radialgradient but in node.
-        // TODO:
-        // Support fx, fy, fr.
-        const cx = parseInt(xmlNode.getAttribute('cx') || '0', 10);
-        const cy = parseInt(xmlNode.getAttribute('cy') || '0', 10);
-        const r = parseInt(xmlNode.getAttribute('r') || '0', 10);
-
-        const gradient = new RadialGradient(cx, cy, r);
-
-        parsePaintServerUnit(xmlNode, gradient);
-
-        parseGradientColorStops(xmlNode, gradient);
-
-        return gradient;
-    }
-
-    // TODO
-    // 'pattern': function (xmlNode: SVGElement) {
-    // }
-};
-
-function parsePaintServerUnit(xmlNode: SVGElement, gradient: Gradient) {
-    const gradientUnits = xmlNode.getAttribute('gradientUnits');
-    if (gradientUnits === 'userSpaceOnUse') {
-        gradient.global = true;
-    }
-}
-
-function parseGradientColorStops(xmlNode: SVGElement, gradient: GradientObject): void {
-
-    let stop = xmlNode.firstChild as SVGStopElement;
-
-    while (stop) {
-        if (stop.nodeType === 1
-            // there might be some other irrelevant tags used by editor.
-            && stop.nodeName.toLocaleLowerCase() === 'stop'
-        ) {
-            const offsetStr = stop.getAttribute('offset');
-            let offset: number;
-            if (offsetStr && offsetStr.indexOf('%') > 0) {  // percentage
-                offset = parseInt(offsetStr, 10) / 100;
-            }
-            else if (offsetStr) { // number from 0 to 1
-                offset = parseFloat(offsetStr);
-            }
-            else {
-                offset = 0;
-            }
-
-            // <stop style="stop-color:red"/> has higher priority than
-            // <stop stop-color="red"/>
-            const styleVals = {} as Dictionary<string>;
-            parseInlineStyle(stop, styleVals, styleVals);
-            const stopColor = styleVals.stopColor
-                || stop.getAttribute('stop-color')
-                || '#000000';
-
-            gradient.colorStops.push({
-                offset: offset,
-                color: stopColor
-            });
-        }
-        stop = stop.nextSibling as SVGStopElement;
-    }
-}
-
-function inheritStyle(parent: Element, child: Element): void {
-    if (parent && (parent as ElementExtended).__inheritedStyle) {
-        if (!(child as ElementExtended).__inheritedStyle) {
-            (child as ElementExtended).__inheritedStyle = {};
-        }
-        defaults((child as ElementExtended).__inheritedStyle, (parent as ElementExtended).__inheritedStyle);
-    }
-}
-
-function parsePoints(pointsString: string): number[][] {
-    const list = splitNumberSequence(pointsString);
-    const points = [];
-
-    for (let i = 0; i < list.length; i += 2) {
-        const x = parseFloat(list[i]);
-        const y = parseFloat(list[i + 1]);
-        points.push([x, y]);
-    }
-    return points;
-}
-
-function parseAttributes(
-    xmlNode: SVGElement,
-    el: Element,
-    defsUsePending: DefsUsePending,
-    onlyInlineStyle: boolean,
-    isTextGroup: boolean
-): void {
-    const disp = el as DisplayableExtended;
-    const inheritedStyle = disp.__inheritedStyle = disp.__inheritedStyle || {};
-    const selfStyle: SelfStyleByZRKey = {};
-
-    // TODO Shadow
-    if (xmlNode.nodeType === 1) {
-        parseTransformAttribute(xmlNode, el);
-
-        parseInlineStyle(xmlNode, inheritedStyle, selfStyle);
-
-        if (!onlyInlineStyle) {
-            parseAttributeStyle(xmlNode, inheritedStyle, selfStyle);
-        }
-    }
-
-    disp.style = disp.style || {};
-
-    if (inheritedStyle.fill != null) {
-        disp.style.fill = getFillStrokeStyle(disp, 'fill', inheritedStyle.fill, defsUsePending);
-    }
-    if (inheritedStyle.stroke != null) {
-        disp.style.stroke = getFillStrokeStyle(disp, 'stroke', inheritedStyle.stroke, defsUsePending);
-    }
-
-    each([
-        'lineWidth', 'opacity', 'fillOpacity', 'strokeOpacity', 'miterLimit', 'fontSize'
-    ] as const, function (propName) {
-        if (inheritedStyle[propName] != null) {
-            disp.style[propName] = parseFloat(inheritedStyle[propName]);
-        }
-    });
-
-    each([
-        'lineDashOffset', 'lineCap', 'lineJoin', 'fontWeight', 'fontFamily', 'fontStyle', 'textAlign'
-    ] as const, function (propName) {
-        if (inheritedStyle[propName] != null) {
-            disp.style[propName] = inheritedStyle[propName];
-        }
-    });
-
-    // Because selfStyle only support textBaseline, so only text group need it.
-    // in other cases selfStyle can be released.
-    if (isTextGroup) {
-        disp.__selfStyle = selfStyle;
-    }
-
-    if (inheritedStyle.lineDash) {
-        disp.style.lineDash = map(splitNumberSequence(inheritedStyle.lineDash), function (str) {
-            return parseFloat(str);
-        });
-    }
-
-    if (inheritedStyle.visibility === 'hidden' || inheritedStyle.visibility === 'collapse') {
-        disp.invisible = true;
-    }
-
-    if (inheritedStyle.display === 'none') {
-        disp.ignore = true;
-    }
-}
-
-function applyTextAlignment(
-    text: TSpan,
-    parentGroup: Group
-): void {
-    const parentSelfStyle = (parentGroup as ElementExtended).__selfStyle;
-    if (parentSelfStyle) {
-        const textBaseline = parentSelfStyle.textBaseline;
-        let zrTextBaseline = textBaseline as CanvasTextBaseline;
-        if (!textBaseline || textBaseline === 'auto') {
-            // FIXME: 'auto' means the value is the dominant-baseline of the script to
-            // which the character belongs - i.e., use the dominant-baseline of the parent.
-            zrTextBaseline = 'alphabetic';
-        }
-        else if (textBaseline === 'baseline') {
-            zrTextBaseline = 'alphabetic';
-        }
-        else if (textBaseline === 'before-edge' || textBaseline === 'text-before-edge') {
-            zrTextBaseline = 'top';
-        }
-        else if (textBaseline === 'after-edge' || textBaseline === 'text-after-edge') {
-            zrTextBaseline = 'bottom';
-        }
-        else if (textBaseline === 'central' || textBaseline === 'mathematical') {
-            zrTextBaseline = 'middle';
-        }
-        text.style.textBaseline = zrTextBaseline;
-    }
-
-    const parentInheritedStyle = (parentGroup as ElementExtended).__inheritedStyle;
-    if (parentInheritedStyle) {
-        // PENDING:
-        // canvas `direction` is an experimental attribute.
-        // so we do not support SVG direction "rtl" for text-anchor yet.
-        const textAlign = parentInheritedStyle.textAlign;
-        let zrTextAlign = textAlign as CanvasTextAlign;
-        if (textAlign) {
-            if (textAlign === 'middle') {
-                zrTextAlign = 'center';
-            }
-            text.style.textAlign = zrTextAlign;
-        }
-    }
-}
-
-// Support `fill:url(#someId)`.
-const urlRegex = /^url\(\s*#(.*?)\)/;
-function getFillStrokeStyle(
-    el: Displayable,
-    method: 'fill' | 'stroke',
-    str: string,
-    defsUsePending: DefsUsePending
-): string {
-    const urlMatch = str && str.match(urlRegex);
-    if (urlMatch) {
-        const url = trim(urlMatch[1]);
-        defsUsePending.push([el, method, url]);
-        return;
-    }
-    // SVG fill and stroke can be 'none'.
-    if (str === 'none') {
-        str = null;
-    }
-    return str;
-}
-
-function applyDefs(
-    defs: DefsMap,
-    defsUsePending: DefsUsePending
-): void {
-    for (let i = 0; i < defsUsePending.length; i++) {
-        const item = defsUsePending[i];
-        item[0].style[item[1]] = defs[item[2]];
-    }
-}
-
-// value can be like:
-// '2e-4', 'l.5.9' (ignore 0), 'M-10-10', 'l-2.43e-1,34.9983',
-// 'l-.5E1,54', '121-23-44-11' (no delimiter)
-// PENDING: here continuous commas are treat as one comma, but the
-// browser SVG parser treats this by printing error.
-const numberReg = /-?([0-9]*\.)?[0-9]+([eE]-?[0-9]+)?/g;
-function splitNumberSequence(rawStr: string): string[] {
-    return rawStr.match(numberReg) || [];
-}
-// Most of the values can be separated by comma and/or white space.
-// const DILIMITER_REG = /[\s,]+/;
-
-
-const transformRegex = /(translate|scale|rotate|skewX|skewY|matrix)\(([\-\s0-9\.eE,]*)\)/g;
-const DEGREE_TO_ANGLE = Math.PI / 180;
-
-function parseTransformAttribute(xmlNode: SVGElement, node: Element): void {
-    let transform = xmlNode.getAttribute('transform');
-    if (transform) {
-        transform = transform.replace(/,/g, ' ');
-        const transformOps: string[] = [];
-        let mt = null;
-        transform.replace(transformRegex, function (str: string, type: string, value: string) {
-            transformOps.push(type, value);
-            return '';
-        });
-
-        for (let i = transformOps.length - 1; i > 0; i -= 2) {
-            const value = transformOps[i];
-            const type = transformOps[i - 1];
-            const valueArr: string[] = splitNumberSequence(value);
-            mt = mt || matrix.create();
-            switch (type) {
-                case 'translate':
-                    matrix.translate(mt, mt, [parseFloat(valueArr[0]), parseFloat(valueArr[1] || '0')]);
-                    break;
-                case 'scale':
-                    matrix.scale(mt, mt, [parseFloat(valueArr[0]), parseFloat(valueArr[1] || valueArr[0])]);
-                    break;
-                case 'rotate':
-                    // TODO: zrender use different hand in coordinate system.
-                    matrix.rotate(mt, mt, -parseFloat(valueArr[0]) * DEGREE_TO_ANGLE, [
-                        parseFloat(valueArr[1] || '0'),
-                        parseFloat(valueArr[2] || '0')
-                    ]);
-                    break;
-                case 'skewX':
-                    const sx = Math.tan(parseFloat(valueArr[0]) * DEGREE_TO_ANGLE);
-                    matrix.mul(mt, [1, 0, sx, 1, 0, 0], mt);
-                    break;
-                case 'skewY':
-                    const sy = Math.tan(parseFloat(valueArr[0]) * DEGREE_TO_ANGLE);
-                    matrix.mul(mt, [1, sy, 0, 1, 0, 0], mt);
-                    break;
-                case 'matrix':
-                    mt[0] = parseFloat(valueArr[0]);
-                    mt[1] = parseFloat(valueArr[1]);
-                    mt[2] = parseFloat(valueArr[2]);
-                    mt[3] = parseFloat(valueArr[3]);
-                    mt[4] = parseFloat(valueArr[4]);
-                    mt[5] = parseFloat(valueArr[5]);
-                    break;
-            }
-        }
-        node.setLocalTransform(mt);
-    }
-}
-
-// Value may contain space.
-const styleRegex = /([^\s:;]+)\s*:\s*([^:;]+)/g;
-function parseInlineStyle(
-    xmlNode: SVGElement,
-    inheritableStyleResult: Dictionary<string>,
-    selfStyleResult: Dictionary<string>
-): void {
-    const style = xmlNode.getAttribute('style');
-
-    if (!style) {
-        return;
-    }
-
-    styleRegex.lastIndex = 0;
-    let styleRegResult;
-    while ((styleRegResult = styleRegex.exec(style)) != null) {
-        const svgStlAttr = styleRegResult[1];
-
-        const zrInheritableStlAttr = hasOwn(INHERITABLE_STYLE_ATTRIBUTES_MAP, svgStlAttr)
-            ? INHERITABLE_STYLE_ATTRIBUTES_MAP[svgStlAttr as keyof typeof INHERITABLE_STYLE_ATTRIBUTES_MAP]
-            : null;
-        if (zrInheritableStlAttr) {
-            inheritableStyleResult[zrInheritableStlAttr] = styleRegResult[2];
-        }
-
-        const zrSelfStlAttr = hasOwn(SELF_STYLE_ATTRIBUTES_MAP, svgStlAttr)
-            ? SELF_STYLE_ATTRIBUTES_MAP[svgStlAttr as keyof typeof SELF_STYLE_ATTRIBUTES_MAP]
-            : null;
-        if (zrSelfStlAttr) {
-            selfStyleResult[zrSelfStlAttr] = styleRegResult[2];
-        }
-    }
-}
-
-function parseAttributeStyle(
-    xmlNode: SVGElement,
-    inheritableStyleResult: Dictionary<string>,
-    selfStyleResult: Dictionary<string>
-): void {
-    for (let i = 0; i < INHERITABLE_STYLE_ATTRIBUTES_MAP_KEYS.length; i++) {
-        const svgAttrName = INHERITABLE_STYLE_ATTRIBUTES_MAP_KEYS[i];
-        const attrValue = xmlNode.getAttribute(svgAttrName);
-        if (attrValue != null) {
-            inheritableStyleResult[INHERITABLE_STYLE_ATTRIBUTES_MAP[svgAttrName]] = attrValue;
-        }
-    }
-    for (let i = 0; i < SELF_STYLE_ATTRIBUTES_MAP_KEYS.length; i++) {
-        const svgAttrName = SELF_STYLE_ATTRIBUTES_MAP_KEYS[i];
-        const attrValue = xmlNode.getAttribute(svgAttrName);
-        if (attrValue != null) {
-            selfStyleResult[SELF_STYLE_ATTRIBUTES_MAP[svgAttrName]] = attrValue;
-        }
-    }
-}
-
-export function makeViewBoxTransform(viewBoxRect: RectLike, boundingRect: RectLike): {
-    scale: number;
-    x: number;
-    y: number;
-} {
-    const scaleX = boundingRect.width / viewBoxRect.width;
-    const scaleY = boundingRect.height / viewBoxRect.height;
-    const scale = Math.min(scaleX, scaleY);
-    // preserveAspectRatio 'xMidYMid'
-
-    return {
-        scale,
-        x: -(viewBoxRect.x + viewBoxRect.width / 2) * scale + (boundingRect.x + boundingRect.width / 2),
-        y: -(viewBoxRect.y + viewBoxRect.height / 2) * scale + (boundingRect.y + boundingRect.height / 2)
-    };
-}
-
-export function parseSVG(xml: string | Document | SVGElement, opt: SVGParserOption): SVGParserResult {
-    const parser = new SVGParser();
-    return parser.parse(xml, opt);
-}
-
-
-// Also export parseXML to avoid breaking change.
-export {parseXML};

+ 0 - 22
node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/tool/parseXML.ts

@@ -1,22 +0,0 @@
-import { isString } from '../core/util';
-
-/**
- * For big svg string, this method might be time consuming.
- */
-export function parseXML(svg: Document | string | SVGElement): SVGElement {
-    if (isString(svg)) {
-        const parser = new DOMParser();
-        svg = parser.parseFromString(svg, 'text/xml');
-    }
-    let svgNode: Node = svg;
-    // Document node. If using $.get, doc node may be input.
-    if (svgNode.nodeType === 9) {
-        svgNode = svgNode.firstChild;
-    }
-    // nodeName of <!DOCTYPE svg> is also 'svg'.
-    while (svgNode.nodeName.toLowerCase() !== 'svg' || svgNode.nodeType !== 1) {
-        svgNode = svgNode.nextSibling;
-    }
-
-    return svgNode as SVGElement;
-}

+ 0 - 514
node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/tool/path.ts

@@ -1,514 +0,0 @@
-import Path, { PathProps } from '../graphic/Path';
-import PathProxy from '../core/PathProxy';
-import transformPath from './transformPath';
-import { VectorArray } from '../core/vector';
-import { MatrixArray } from '../core/matrix';
-import { extend } from '../core/util';
-
-// command chars
-// const cc = [
-//     'm', 'M', 'l', 'L', 'v', 'V', 'h', 'H', 'z', 'Z',
-//     'c', 'C', 'q', 'Q', 't', 'T', 's', 'S', 'a', 'A'
-// ];
-
-const mathSqrt = Math.sqrt;
-const mathSin = Math.sin;
-const mathCos = Math.cos;
-const PI = Math.PI;
-
-function vMag(v: VectorArray): number {
-    return Math.sqrt(v[0] * v[0] + v[1] * v[1]);
-};
-function vRatio(u: VectorArray, v: VectorArray): number {
-    return (u[0] * v[0] + u[1] * v[1]) / (vMag(u) * vMag(v));
-};
-function vAngle(u: VectorArray, v: VectorArray): number {
-    return (u[0] * v[1] < u[1] * v[0] ? -1 : 1)
-            * Math.acos(vRatio(u, v));
-};
-
-function processArc(
-    x1: number, y1: number, x2: number, y2: number, fa: number, fs: number,
-    rx: number, ry: number, psiDeg: number, cmd: number, path: PathProxy
-) {
-    // https://www.w3.org/TR/SVG11/implnote.html#ArcImplementationNotes
-    const psi = psiDeg * (PI / 180.0);
-    const xp = mathCos(psi) * (x1 - x2) / 2.0
-                + mathSin(psi) * (y1 - y2) / 2.0;
-    const yp = -1 * mathSin(psi) * (x1 - x2) / 2.0
-                + mathCos(psi) * (y1 - y2) / 2.0;
-
-    const lambda = (xp * xp) / (rx * rx) + (yp * yp) / (ry * ry);
-
-    if (lambda > 1) {
-        rx *= mathSqrt(lambda);
-        ry *= mathSqrt(lambda);
-    }
-
-    const f = (fa === fs ? -1 : 1)
-        * mathSqrt((((rx * rx) * (ry * ry))
-                - ((rx * rx) * (yp * yp))
-                - ((ry * ry) * (xp * xp))) / ((rx * rx) * (yp * yp)
-                + (ry * ry) * (xp * xp))
-            ) || 0;
-
-    const cxp = f * rx * yp / ry;
-    const cyp = f * -ry * xp / rx;
-
-    const cx = (x1 + x2) / 2.0
-                + mathCos(psi) * cxp
-                - mathSin(psi) * cyp;
-    const cy = (y1 + y2) / 2.0
-            + mathSin(psi) * cxp
-            + mathCos(psi) * cyp;
-
-    const theta = vAngle([ 1, 0 ], [ (xp - cxp) / rx, (yp - cyp) / ry ]);
-    const u = [ (xp - cxp) / rx, (yp - cyp) / ry ];
-    const v = [ (-1 * xp - cxp) / rx, (-1 * yp - cyp) / ry ];
-    let dTheta = vAngle(u, v);
-
-    if (vRatio(u, v) <= -1) {
-        dTheta = PI;
-    }
-    if (vRatio(u, v) >= 1) {
-        dTheta = 0;
-    }
-
-    if (dTheta < 0) {
-        const n = Math.round(dTheta / PI * 1e6) / 1e6;
-        // Convert to positive
-        dTheta = PI * 2 + (n % 2) * PI;
-    }
-
-    path.addData(cmd, cx, cy, rx, ry, theta, dTheta, psi, fs);
-}
-
-
-const commandReg = /([mlvhzcqtsa])([^mlvhzcqtsa]*)/ig;
-// Consider case:
-// (1) delimiter can be comma or space, where continuous commas
-// or spaces should be seen as one comma.
-// (2) value can be like:
-// '2e-4', 'l.5.9' (ignore 0), 'M-10-10', 'l-2.43e-1,34.9983',
-// 'l-.5E1,54', '121-23-44-11' (no delimiter)
-const numberReg = /-?([0-9]*\.)?[0-9]+([eE]-?[0-9]+)?/g;
-// const valueSplitReg = /[\s,]+/;
-
-function createPathProxyFromString(data: string) {
-    const path = new PathProxy();
-
-    if (!data) {
-        return path;
-    }
-
-    // const data = data.replace(/-/g, ' -')
-    //     .replace(/  /g, ' ')
-    //     .replace(/ /g, ',')
-    //     .replace(/,,/g, ',');
-
-    // const n;
-    // create pipes so that we can split the data
-    // for (n = 0; n < cc.length; n++) {
-    //     cs = cs.replace(new RegExp(cc[n], 'g'), '|' + cc[n]);
-    // }
-
-    // data = data.replace(/-/g, ',-');
-
-    // create array
-    // const arr = cs.split('|');
-    // init context point
-    let cpx = 0;
-    let cpy = 0;
-    let subpathX = cpx;
-    let subpathY = cpy;
-    let prevCmd;
-
-    const CMD = PathProxy.CMD;
-
-    // commandReg.lastIndex = 0;
-    // const cmdResult;
-    // while ((cmdResult = commandReg.exec(data)) != null) {
-    //     const cmdStr = cmdResult[1];
-    //     const cmdContent = cmdResult[2];
-
-    const cmdList = data.match(commandReg);
-    if (!cmdList) {
-        // Invalid svg path.
-        return path;
-    }
-
-    for (let l = 0; l < cmdList.length; l++) {
-        const cmdText = cmdList[l];
-        let cmdStr = cmdText.charAt(0);
-
-        let cmd;
-
-        // String#split is faster a little bit than String#replace or RegExp#exec.
-        // const p = cmdContent.split(valueSplitReg);
-        // const pLen = 0;
-        // for (let i = 0; i < p.length; i++) {
-        //     // '' and other invalid str => NaN
-        //     const val = parseFloat(p[i]);
-        //     !isNaN(val) && (p[pLen++] = val);
-        // }
-
-
-        // Following code will convert string to number. So convert type to number here
-        const p = cmdText.match(numberReg) as any[] as number[] || [];
-        const pLen = p.length;
-        for (let i = 0; i < pLen; i++) {
-            p[i] = parseFloat(p[i] as any as string);
-        }
-
-        let off = 0;
-        while (off < pLen) {
-            let ctlPtx;
-            let ctlPty;
-
-            let rx;
-            let ry;
-            let psi;
-            let fa;
-            let fs;
-
-            let x1 = cpx;
-            let y1 = cpy;
-
-            let len: number;
-            let pathData: number[] | Float32Array;
-            // convert l, H, h, V, and v to L
-            switch (cmdStr) {
-                case 'l':
-                    cpx += p[off++];
-                    cpy += p[off++];
-                    cmd = CMD.L;
-                    path.addData(cmd, cpx, cpy);
-                    break;
-                case 'L':
-                    cpx = p[off++];
-                    cpy = p[off++];
-                    cmd = CMD.L;
-                    path.addData(cmd, cpx, cpy);
-                    break;
-                case 'm':
-                    cpx += p[off++];
-                    cpy += p[off++];
-                    cmd = CMD.M;
-                    path.addData(cmd, cpx, cpy);
-                    subpathX = cpx;
-                    subpathY = cpy;
-                    cmdStr = 'l';
-                    break;
-                case 'M':
-                    cpx = p[off++];
-                    cpy = p[off++];
-                    cmd = CMD.M;
-                    path.addData(cmd, cpx, cpy);
-                    subpathX = cpx;
-                    subpathY = cpy;
-                    cmdStr = 'L';
-                    break;
-                case 'h':
-                    cpx += p[off++];
-                    cmd = CMD.L;
-                    path.addData(cmd, cpx, cpy);
-                    break;
-                case 'H':
-                    cpx = p[off++];
-                    cmd = CMD.L;
-                    path.addData(cmd, cpx, cpy);
-                    break;
-                case 'v':
-                    cpy += p[off++];
-                    cmd = CMD.L;
-                    path.addData(cmd, cpx, cpy);
-                    break;
-                case 'V':
-                    cpy = p[off++];
-                    cmd = CMD.L;
-                    path.addData(cmd, cpx, cpy);
-                    break;
-                case 'C':
-                    cmd = CMD.C;
-                    path.addData(
-                        cmd, p[off++], p[off++], p[off++], p[off++], p[off++], p[off++]
-                    );
-                    cpx = p[off - 2];
-                    cpy = p[off - 1];
-                    break;
-                case 'c':
-                    cmd = CMD.C;
-                    path.addData(
-                        cmd,
-                        p[off++] + cpx, p[off++] + cpy,
-                        p[off++] + cpx, p[off++] + cpy,
-                        p[off++] + cpx, p[off++] + cpy
-                    );
-                    cpx += p[off - 2];
-                    cpy += p[off - 1];
-                    break;
-                case 'S':
-                    ctlPtx = cpx;
-                    ctlPty = cpy;
-                    len = path.len();
-                    pathData = path.data;
-                    if (prevCmd === CMD.C) {
-                        ctlPtx += cpx - pathData[len - 4];
-                        ctlPty += cpy - pathData[len - 3];
-                    }
-                    cmd = CMD.C;
-                    x1 = p[off++];
-                    y1 = p[off++];
-                    cpx = p[off++];
-                    cpy = p[off++];
-                    path.addData(cmd, ctlPtx, ctlPty, x1, y1, cpx, cpy);
-                    break;
-                case 's':
-                    ctlPtx = cpx;
-                    ctlPty = cpy;
-                    len = path.len();
-                    pathData = path.data;
-                    if (prevCmd === CMD.C) {
-                        ctlPtx += cpx - pathData[len - 4];
-                        ctlPty += cpy - pathData[len - 3];
-                    }
-                    cmd = CMD.C;
-                    x1 = cpx + p[off++];
-                    y1 = cpy + p[off++];
-                    cpx += p[off++];
-                    cpy += p[off++];
-                    path.addData(cmd, ctlPtx, ctlPty, x1, y1, cpx, cpy);
-                    break;
-                case 'Q':
-                    x1 = p[off++];
-                    y1 = p[off++];
-                    cpx = p[off++];
-                    cpy = p[off++];
-                    cmd = CMD.Q;
-                    path.addData(cmd, x1, y1, cpx, cpy);
-                    break;
-                case 'q':
-                    x1 = p[off++] + cpx;
-                    y1 = p[off++] + cpy;
-                    cpx += p[off++];
-                    cpy += p[off++];
-                    cmd = CMD.Q;
-                    path.addData(cmd, x1, y1, cpx, cpy);
-                    break;
-                case 'T':
-                    ctlPtx = cpx;
-                    ctlPty = cpy;
-                    len = path.len();
-                    pathData = path.data;
-                    if (prevCmd === CMD.Q) {
-                        ctlPtx += cpx - pathData[len - 4];
-                        ctlPty += cpy - pathData[len - 3];
-                    }
-                    cpx = p[off++];
-                    cpy = p[off++];
-                    cmd = CMD.Q;
-                    path.addData(cmd, ctlPtx, ctlPty, cpx, cpy);
-                    break;
-                case 't':
-                    ctlPtx = cpx;
-                    ctlPty = cpy;
-                    len = path.len();
-                    pathData = path.data;
-                    if (prevCmd === CMD.Q) {
-                        ctlPtx += cpx - pathData[len - 4];
-                        ctlPty += cpy - pathData[len - 3];
-                    }
-                    cpx += p[off++];
-                    cpy += p[off++];
-                    cmd = CMD.Q;
-                    path.addData(cmd, ctlPtx, ctlPty, cpx, cpy);
-                    break;
-                case 'A':
-                    rx = p[off++];
-                    ry = p[off++];
-                    psi = p[off++];
-                    fa = p[off++];
-                    fs = p[off++];
-
-                    x1 = cpx, y1 = cpy;
-                    cpx = p[off++];
-                    cpy = p[off++];
-                    cmd = CMD.A;
-                    processArc(
-                        x1, y1, cpx, cpy, fa, fs, rx, ry, psi, cmd, path
-                    );
-                    break;
-                case 'a':
-                    rx = p[off++];
-                    ry = p[off++];
-                    psi = p[off++];
-                    fa = p[off++];
-                    fs = p[off++];
-
-                    x1 = cpx, y1 = cpy;
-                    cpx += p[off++];
-                    cpy += p[off++];
-                    cmd = CMD.A;
-                    processArc(
-                        x1, y1, cpx, cpy, fa, fs, rx, ry, psi, cmd, path
-                    );
-                    break;
-            }
-        }
-
-        if (cmdStr === 'z' || cmdStr === 'Z') {
-            cmd = CMD.Z;
-            path.addData(cmd);
-            // z may be in the middle of the path.
-            cpx = subpathX;
-            cpy = subpathY;
-        }
-
-        prevCmd = cmd;
-    }
-
-    path.toStatic();
-
-    return path;
-}
-
-type SVGPathOption = Omit<PathProps, 'shape' | 'buildPath'>
-interface InnerSVGPathOption extends PathProps {
-    applyTransform?: (m: MatrixArray) => void
-}
-class SVGPath extends Path {
-    applyTransform(m: MatrixArray) {}
-}
-
-function isPathProxy(path: PathProxy | CanvasRenderingContext2D): path is PathProxy {
-    return (path as PathProxy).setData != null;
-}
-// TODO Optimize double memory cost problem
-function createPathOptions(str: string, opts: SVGPathOption): InnerSVGPathOption {
-    const pathProxy = createPathProxyFromString(str);
-    const innerOpts: InnerSVGPathOption = extend({}, opts);
-    innerOpts.buildPath = function (path: PathProxy | CanvasRenderingContext2D) {
-        if (isPathProxy(path)) {
-            path.setData(pathProxy.data);
-            // Svg and vml renderer don't have context
-            const ctx = path.getContext();
-            if (ctx) {
-                path.rebuildPath(ctx, 1);
-            }
-        }
-        else {
-            const ctx = path;
-            pathProxy.rebuildPath(ctx, 1);
-        }
-    };
-
-    innerOpts.applyTransform = function (this: SVGPath, m: MatrixArray) {
-        transformPath(pathProxy, m);
-        this.dirtyShape();
-    };
-
-    return innerOpts;
-}
-
-/**
- * Create a Path object from path string data
- * http://www.w3.org/TR/SVG/paths.html#PathData
- * @param  opts Other options
- */
-export function createFromString(str: string, opts?: SVGPathOption): SVGPath {
-    // PENDING
-    return new SVGPath(createPathOptions(str, opts));
-}
-
-/**
- * Create a Path class from path string data
- * @param  str
- * @param  opts Other options
- */
-export function extendFromString(str: string, defaultOpts?: SVGPathOption): typeof SVGPath {
-    const innerOpts = createPathOptions(str, defaultOpts);
-    class Sub extends SVGPath {
-        constructor(opts: InnerSVGPathOption) {
-            super(opts);
-            this.applyTransform = innerOpts.applyTransform;
-            this.buildPath = innerOpts.buildPath;
-        }
-    }
-    return Sub;
-}
-
-/**
- * Merge multiple paths
- */
-// TODO Apply transform
-// TODO stroke dash
-// TODO Optimize double memory cost problem
-export function mergePath(pathEls: Path[], opts: PathProps) {
-    const pathList: PathProxy[] = [];
-    const len = pathEls.length;
-    for (let i = 0; i < len; i++) {
-        const pathEl = pathEls[i];
-        pathList.push(pathEl.getUpdatedPathProxy(true));
-    }
-
-    const pathBundle = new Path(opts);
-    // Need path proxy.
-    pathBundle.createPathProxy();
-    pathBundle.buildPath = function (path: PathProxy | CanvasRenderingContext2D) {
-        if (isPathProxy(path)) {
-            path.appendPath(pathList);
-            // Svg and vml renderer don't have context
-            const ctx = path.getContext();
-            if (ctx) {
-                // Path bundle not support percent draw.
-                path.rebuildPath(ctx, 1);
-            }
-        }
-    };
-
-    return pathBundle;
-}
-
-/**
- * Clone a path.
- */
-export function clonePath(sourcePath: Path, opts?: {
-    /**
-     * If bake global transform to path.
-     */
-    bakeTransform?: boolean
-    /**
-     * Convert global transform to local.
-     */
-    toLocal?: boolean
-}) {
-    opts = opts || {};
-    const path = new Path();
-    if (sourcePath.shape) {
-        path.setShape(sourcePath.shape);
-    }
-    path.setStyle(sourcePath.style);
-
-    if (opts.bakeTransform) {
-        transformPath(path.path, sourcePath.getComputedTransform());
-    }
-    else {
-        // TODO Copy getLocalTransform, updateTransform since they can be changed.
-        if (opts.toLocal) {
-            path.setLocalTransform(sourcePath.getComputedTransform());
-        }
-        else {
-            path.copyTransform(sourcePath);
-        }
-    }
-
-    // These methods may be overridden
-    path.buildPath = sourcePath.buildPath;
-    (path as SVGPath).applyTransform = (path as SVGPath).applyTransform;
-
-    path.z = sourcePath.z;
-    path.z2 = sourcePath.z2;
-    path.zlevel = sourcePath.zlevel;
-
-    return path;
-}

+ 0 - 103
node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/tool/transformPath.ts

@@ -1,103 +0,0 @@
-import PathProxy from '../core/PathProxy';
-import {applyTransform as v2ApplyTransform, VectorArray} from '../core/vector';
-import { MatrixArray } from '../core/matrix';
-
-const CMD = PathProxy.CMD;
-
-const points: VectorArray[] = [[], [], []];
-const mathSqrt = Math.sqrt;
-const mathAtan2 = Math.atan2;
-
-export default function transformPath(path: PathProxy, m: MatrixArray) {
-    if (!m) {
-        return;
-    }
-
-    let data = path.data;
-    const len = path.len();
-    let cmd;
-    let nPoint: number;
-    let i: number;
-    let j: number;
-    let k: number;
-    let p: VectorArray;
-
-    const M = CMD.M;
-    const C = CMD.C;
-    const L = CMD.L;
-    const R = CMD.R;
-    const A = CMD.A;
-    const Q = CMD.Q;
-
-    for (i = 0, j = 0; i < len;) {
-        cmd = data[i++];
-        j = i;
-        nPoint = 0;
-
-        switch (cmd) {
-            case M:
-                nPoint = 1;
-                break;
-            case L:
-                nPoint = 1;
-                break;
-            case C:
-                nPoint = 3;
-                break;
-            case Q:
-                nPoint = 2;
-                break;
-            case A:
-                const x = m[4];
-                const y = m[5];
-                const sx = mathSqrt(m[0] * m[0] + m[1] * m[1]);
-                const sy = mathSqrt(m[2] * m[2] + m[3] * m[3]);
-                const angle = mathAtan2(-m[1] / sy, m[0] / sx);
-                // cx
-                data[i] *= sx;
-                data[i++] += x;
-                // cy
-                data[i] *= sy;
-                data[i++] += y;
-                // Scale rx and ry
-                // FIXME Assume psi is 0 here
-                data[i++] *= sx;
-                data[i++] *= sy;
-
-                // Start angle
-                data[i++] += angle;
-                // end angle
-                data[i++] += angle;
-                // FIXME psi
-                i += 2;
-                j = i;
-                break;
-            case R:
-                // x0, y0
-                p[0] = data[i++];
-                p[1] = data[i++];
-                v2ApplyTransform(p, p, m);
-                data[j++] = p[0];
-                data[j++] = p[1];
-                // x1, y1
-                p[0] += data[i++];
-                p[1] += data[i++];
-                v2ApplyTransform(p, p, m);
-                data[j++] = p[0];
-                data[j++] = p[1];
-        }
-
-        for (k = 0; k < nPoint; k++) {
-            let p = points[k];
-            p[0] = data[i++];
-            p[1] = data[i++];
-
-            v2ApplyTransform(p, p, m);
-            // Write back
-            data[j++] = p[0];
-            data[j++] = p[1];
-        }
-    }
-
-    path.increaseVersion();
-}

+ 0 - 562
node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/src/zrender.ts

@@ -1,562 +0,0 @@
-/*!
-* ZRender, a high performance 2d drawing library.
-*
-* Copyright (c) 2013, Baidu Inc.
-* All rights reserved.
-*
-* LICENSE
-* https://github.com/ecomfe/zrender/blob/master/LICENSE.txt
-*/
-
-import env from './core/env';
-import * as zrUtil from './core/util';
-import Handler from './Handler';
-import Storage from './Storage';
-import {PainterBase} from './PainterBase';
-import Animation, {getTime} from './animation/Animation';
-import HandlerProxy from './dom/HandlerProxy';
-import Element, { ElementEventCallback } from './Element';
-import { Dictionary, ElementEventName, RenderedEvent, WithThisType } from './core/types';
-import { LayerConfig } from './canvas/Layer';
-import { GradientObject } from './graphic/Gradient';
-import { PatternObject } from './graphic/Pattern';
-import { EventCallback } from './core/Eventful';
-import Displayable from './graphic/Displayable';
-import { lum } from './tool/color';
-import { DARK_MODE_THRESHOLD } from './config';
-import Group from './graphic/Group';
-
-
-type PainterBaseCtor = {
-    new(dom: HTMLElement, storage: Storage, ...args: any[]): PainterBase
-}
-
-const painterCtors: Dictionary<PainterBaseCtor> = {};
-
-let instances: { [key: number]: ZRender } = {};
-
-function delInstance(id: number) {
-    delete instances[id];
-}
-
-function isDarkMode(backgroundColor: string | GradientObject | PatternObject): boolean {
-    if (!backgroundColor) {
-        return false;
-    }
-    if (typeof backgroundColor === 'string') {
-        return lum(backgroundColor, 1) < DARK_MODE_THRESHOLD;
-    }
-    else if ((backgroundColor as GradientObject).colorStops) {
-        const colorStops = (backgroundColor as GradientObject).colorStops;
-        let totalLum = 0;
-        const len = colorStops.length;
-        // Simply do the math of average the color. Not consider the offset
-        for (let i = 0; i < len; i++) {
-            totalLum += lum(colorStops[i].color, 1);
-        }
-        totalLum /= len;
-
-        return totalLum < DARK_MODE_THRESHOLD;
-    }
-    // Can't determine
-    return false;
-}
-
-class ZRender {
-    /**
-     * Not necessary if using SSR painter like svg-ssr
-     */
-    dom?: HTMLElement
-
-    id: number
-
-    storage: Storage
-    painter: PainterBase
-    handler: Handler
-    animation: Animation
-
-    private _sleepAfterStill = 10;
-
-    private _stillFrameAccum = 0;
-
-    private _needsRefresh = true
-    private _needsRefreshHover = true
-    private _disposed: boolean;
-    /**
-     * If theme is dark mode. It will determine the color strategy for labels.
-     */
-    private _darkMode = false;
-
-    private _backgroundColor: string | GradientObject | PatternObject;
-
-    constructor(id: number, dom?: HTMLElement, opts?: ZRenderInitOpt) {
-        opts = opts || {};
-
-        /**
-         * @type {HTMLDomElement}
-         */
-        this.dom = dom;
-
-        this.id = id;
-
-        const storage = new Storage();
-
-        let rendererType = opts.renderer || 'canvas';
-
-        if (!painterCtors[rendererType]) {
-            // Use the first registered renderer.
-            rendererType = zrUtil.keys(painterCtors)[0];
-        }
-        if (process.env.NODE_ENV !== 'production') {
-            if (!painterCtors[rendererType]) {
-                throw new Error(`Renderer '${rendererType}' is not imported. Please import it first.`);
-            }
-        }
-
-        opts.useDirtyRect = opts.useDirtyRect == null
-            ? false
-            : opts.useDirtyRect;
-
-        const painter = new painterCtors[rendererType](dom, storage, opts, id);
-        const ssrMode = opts.ssr || painter.ssrOnly;
-
-        this.storage = storage;
-        this.painter = painter;
-
-        const handlerProxy = (!env.node && !env.worker && !ssrMode)
-            ? new HandlerProxy(painter.getViewportRoot(), painter.root)
-            : null;
-
-        const useCoarsePointer = opts.useCoarsePointer;
-        const usePointerSize = (useCoarsePointer == null || useCoarsePointer === 'auto')
-            ? env.touchEventsSupported
-            : !!useCoarsePointer;
-        const defaultPointerSize = 44;
-        let pointerSize;
-        if (usePointerSize) {
-            pointerSize = zrUtil.retrieve2(opts.pointerSize, defaultPointerSize);
-        }
-
-        this.handler = new Handler(storage, painter, handlerProxy, painter.root, pointerSize);
-
-        this.animation = new Animation({
-            stage: {
-                update: ssrMode ? null : () => this._flush(true)
-            }
-        });
-
-        if (!ssrMode) {
-            this.animation.start();
-        }
-    }
-
-    /**
-     * 添加元素
-     */
-    add(el: Element) {
-        if (this._disposed || !el) {
-            return;
-        }
-        this.storage.addRoot(el);
-        el.addSelfToZr(this);
-        this.refresh();
-    }
-
-    /**
-     * 删除元素
-     */
-    remove(el: Element) {
-        if (this._disposed || !el) {
-            return;
-        }
-        this.storage.delRoot(el);
-        el.removeSelfFromZr(this);
-        this.refresh();
-    }
-
-    /**
-     * Change configuration of layer
-    */
-    configLayer(zLevel: number, config: LayerConfig) {
-        if (this._disposed) {
-            return;
-        }
-        if (this.painter.configLayer) {
-            this.painter.configLayer(zLevel, config);
-        }
-        this.refresh();
-    }
-
-    /**
-     * Set background color
-     */
-    setBackgroundColor(backgroundColor: string | GradientObject | PatternObject) {
-        if (this._disposed) {
-            return;
-        }
-        if (this.painter.setBackgroundColor) {
-            this.painter.setBackgroundColor(backgroundColor);
-        }
-        this.refresh();
-        this._backgroundColor = backgroundColor;
-        this._darkMode = isDarkMode(backgroundColor);
-    }
-
-    getBackgroundColor() {
-        return this._backgroundColor;
-    }
-
-    /**
-     * Force to set dark mode
-     */
-    setDarkMode(darkMode: boolean) {
-        this._darkMode = darkMode;
-    }
-
-    isDarkMode() {
-        return this._darkMode;
-    }
-
-    /**
-     * Repaint the canvas immediately
-     */
-    refreshImmediately(fromInside?: boolean) {
-        if (this._disposed) {
-            return;
-        }
-        // const start = new Date();
-        if (!fromInside) {
-            // Update animation if refreshImmediately is invoked from outside.
-            // Not trigger stage update to call flush again. Which may refresh twice
-            this.animation.update(true);
-        }
-
-        // Clear needsRefresh ahead to avoid something wrong happens in refresh
-        // Or it will cause zrender refreshes again and again.
-        this._needsRefresh = false;
-        this.painter.refresh();
-        // Avoid trigger zr.refresh in Element#beforeUpdate hook
-        this._needsRefresh = false;
-    }
-
-    /**
-     * Mark and repaint the canvas in the next frame of browser
-     */
-    refresh() {
-        if (this._disposed) {
-            return;
-        }
-        this._needsRefresh = true;
-        // Active the animation again.
-        this.animation.start();
-    }
-
-    /**
-     * Perform all refresh
-     */
-    flush() {
-        if (this._disposed) {
-            return;
-        }
-        this._flush(false);
-    }
-
-    private _flush(fromInside?: boolean) {
-        let triggerRendered;
-
-        const start = getTime();
-        if (this._needsRefresh) {
-            triggerRendered = true;
-            this.refreshImmediately(fromInside);
-        }
-
-        if (this._needsRefreshHover) {
-            triggerRendered = true;
-            this.refreshHoverImmediately();
-        }
-        const end = getTime();
-
-        if (triggerRendered) {
-            this._stillFrameAccum = 0;
-            this.trigger('rendered', {
-                elapsedTime: end - start
-            } as RenderedEvent);
-        }
-        else if (this._sleepAfterStill > 0) {
-            this._stillFrameAccum++;
-            // Stop the animation after still for 10 frames.
-            if (this._stillFrameAccum > this._sleepAfterStill) {
-                this.animation.stop();
-            }
-        }
-    }
-
-    /**
-     * Set sleep after still for frames.
-     * Disable auto sleep when it's 0.
-     */
-    setSleepAfterStill(stillFramesCount: number) {
-        this._sleepAfterStill = stillFramesCount;
-    }
-
-    /**
-     * Wake up animation loop. But not render.
-     */
-    wakeUp() {
-        if (this._disposed) {
-            return;
-        }
-        this.animation.start();
-        // Reset the frame count.
-        this._stillFrameAccum = 0;
-    }
-
-    /**
-     * Refresh hover in next frame
-     */
-    refreshHover() {
-        this._needsRefreshHover = true;
-    }
-
-    /**
-     * Refresh hover immediately
-     */
-    refreshHoverImmediately() {
-        if (this._disposed) {
-            return;
-        }
-        this._needsRefreshHover = false;
-        if (this.painter.refreshHover && this.painter.getType() === 'canvas') {
-            this.painter.refreshHover();
-        }
-    }
-
-    /**
-     * Resize the canvas.
-     * Should be invoked when container size is changed
-     */
-    resize(opts?: {
-        width?: number| string
-        height?: number | string
-    }) {
-        if (this._disposed) {
-            return;
-        }
-        opts = opts || {};
-        this.painter.resize(opts.width, opts.height);
-        this.handler.resize();
-    }
-
-    /**
-     * Stop and clear all animation immediately
-     */
-    clearAnimation() {
-        if (this._disposed) {
-            return;
-        }
-        this.animation.clear();
-    }
-
-    /**
-     * Get container width
-     */
-    getWidth(): number | undefined {
-        if (this._disposed) {
-            return;
-        }
-        return this.painter.getWidth();
-    }
-
-    /**
-     * Get container height
-     */
-    getHeight(): number | undefined {
-        if (this._disposed) {
-            return;
-        }
-        return this.painter.getHeight();
-    }
-
-    /**
-     * Set default cursor
-     * @param cursorStyle='default' 例如 crosshair
-     */
-    setCursorStyle(cursorStyle: string) {
-        if (this._disposed) {
-            return;
-        }
-        this.handler.setCursorStyle(cursorStyle);
-    }
-
-    /**
-     * Find hovered element
-     * @param x
-     * @param y
-     * @return {target, topTarget}
-     */
-    findHover(x: number, y: number): {
-        target: Displayable
-        topTarget: Displayable
-    } | undefined {
-        if (this._disposed) {
-            return;
-        }
-        return this.handler.findHover(x, y);
-    }
-
-    on<Ctx>(eventName: ElementEventName, eventHandler: ElementEventCallback<Ctx, ZRenderType>, context?: Ctx): this
-    // eslint-disable-next-line max-len
-    on<Ctx>(eventName: string, eventHandler: WithThisType<EventCallback<any[]>, unknown extends Ctx ? ZRenderType : Ctx>, context?: Ctx): this
-    // eslint-disable-next-line max-len
-    on<Ctx>(eventName: string, eventHandler: (...args: any) => any, context?: Ctx): this {
-        if (!this._disposed) {
-            this.handler.on(eventName, eventHandler, context);
-        }
-        return this;
-    }
-
-    /**
-     * Unbind event
-     * @param eventName Event name
-     * @param eventHandler Handler function
-     */
-    // eslint-disable-next-line max-len
-    off(eventName?: string, eventHandler?: EventCallback) {
-        if (this._disposed) {
-            return;
-        }
-        this.handler.off(eventName, eventHandler);
-    }
-
-    /**
-     * Trigger event manually
-     *
-     * @param eventName Event name
-     * @param event Event object
-     */
-    trigger(eventName: string, event?: unknown) {
-        if (this._disposed) {
-            return;
-        }
-        this.handler.trigger(eventName, event);
-    }
-
-
-    /**
-     * Clear all objects and the canvas.
-     */
-    clear() {
-        if (this._disposed) {
-            return;
-        }
-        const roots = this.storage.getRoots();
-        for (let i = 0; i < roots.length; i++) {
-            if (roots[i] instanceof Group) {
-                roots[i].removeSelfFromZr(this);
-            }
-        }
-        this.storage.delAllRoots();
-        this.painter.clear();
-    }
-
-    /**
-     * Dispose self.
-     */
-    dispose() {
-        if (this._disposed) {
-            return;
-        }
-
-        this.animation.stop();
-
-        this.clear();
-        this.storage.dispose();
-        this.painter.dispose();
-        this.handler.dispose();
-
-        this.animation =
-        this.storage =
-        this.painter =
-        this.handler = null;
-
-        this._disposed = true;
-
-        delInstance(this.id);
-    }
-}
-
-
-export interface ZRenderInitOpt {
-    renderer?: string   // 'canvas' or 'svg
-    devicePixelRatio?: number
-    width?: number | string // 10, 10px, 'auto'
-    height?: number | string
-    useDirtyRect?: boolean
-    useCoarsePointer?: 'auto' | boolean
-    pointerSize?: number
-    ssr?: boolean   // If enable ssr mode.
-}
-
-/**
- * Initializing a zrender instance
- *
- * @param dom Not necessary if using SSR painter like svg-ssr
- */
-export function init(dom?: HTMLElement | null, opts?: ZRenderInitOpt) {
-    const zr = new ZRender(zrUtil.guid(), dom, opts);
-    instances[zr.id] = zr;
-    return zr;
-}
-
-/**
- * Dispose zrender instance
- */
-export function dispose(zr: ZRender) {
-    zr.dispose();
-}
-
-/**
- * Dispose all zrender instances
- */
-export function disposeAll() {
-    for (let key in instances) {
-        if (instances.hasOwnProperty(key)) {
-            instances[key].dispose();
-        }
-    }
-    instances = {};
-}
-
-/**
- * Get zrender instance by id
- */
-export function getInstance(id: number): ZRender {
-    return instances[id];
-}
-
-export function registerPainter(name: string, Ctor: PainterBaseCtor) {
-    painterCtors[name] = Ctor;
-}
-
-export type ElementSSRData = zrUtil.HashMap<unknown>;
-export type ElementSSRDataGetter<T> = (el: Element) => zrUtil.HashMap<T>;
-
-let ssrDataGetter: ElementSSRDataGetter<unknown>;
-
-export function getElementSSRData(el: Element): ElementSSRData {
-    if (typeof ssrDataGetter === 'function') {
-        return ssrDataGetter(el);
-    }
-}
-
-export function registerSSRDataGetter<T>(getter: ElementSSRDataGetter<T>) {
-    ssrDataGetter = getter;
-}
-
-/**
- * @type {string}
- */
-export const version = '5.6.0';
-
-
-export interface ZRenderType extends ZRender {};

+ 0 - 29
node_modules/.store/echarts@5.5.1/node_modules/echarts/node_modules/zrender/tsconfig.json

@@ -1,29 +0,0 @@
-{
-    "compilerOptions": {
-        "target": "ES3",
-        "noImplicitAny": true,
-        "strictBindCallApply": true,
-        "removeComments": true,
-        "sourceMap": false,
-
-        "noImplicitThis": true,
-
-        // https://github.com/ezolenko/rollup-plugin-typescript2/issues/12#issuecomment-536173372
-        "moduleResolution": "Node",
-
-        "declaration": true,
-        "declarationMap": false,
-
-        // Compile to lib
-        "rootDir": "src",
-
-        "importHelpers": true,
-
-        "pretty": true
-    },
-    "include": [
-        "src/**/*.ts"
-    ],
-    "exclude": [
-    ]
-}

+ 0 - 15
node_modules/.store/echarts@5.5.1/node_modules/zrender/node_modules/tslib/CopyrightNotice.txt

@@ -1,15 +0,0 @@
-/*! *****************************************************************************
-Copyright (c) Microsoft Corporation.
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-***************************************************************************** */
-

+ 0 - 12
node_modules/.store/echarts@5.5.1/node_modules/zrender/node_modules/tslib/LICENSE.txt

@@ -1,12 +0,0 @@
-Copyright (c) Microsoft Corporation.
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.

+ 0 - 164
node_modules/.store/echarts@5.5.1/node_modules/zrender/node_modules/tslib/README.md

@@ -1,164 +0,0 @@
-# tslib
-
-This is a runtime library for [TypeScript](http://www.typescriptlang.org/) that contains all of the TypeScript helper functions.
-
-This library is primarily used by the `--importHelpers` flag in TypeScript.
-When using `--importHelpers`, a module that uses helper functions like `__extends` and `__assign` in the following emitted file:
-
-```ts
-var __assign = (this && this.__assign) || Object.assign || function(t) {
-    for (var s, i = 1, n = arguments.length; i < n; i++) {
-        s = arguments[i];
-        for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
-            t[p] = s[p];
-    }
-    return t;
-};
-exports.x = {};
-exports.y = __assign({}, exports.x);
-
-```
-
-will instead be emitted as something like the following:
-
-```ts
-var tslib_1 = require("tslib");
-exports.x = {};
-exports.y = tslib_1.__assign({}, exports.x);
-```
-
-Because this can avoid duplicate declarations of things like `__extends`, `__assign`, etc., this means delivering users smaller files on average, as well as less runtime overhead.
-For optimized bundles with TypeScript, you should absolutely consider using `tslib` and `--importHelpers`.
-
-# Installing
-
-For the latest stable version, run:
-
-## npm
-
-```sh
-# TypeScript 3.9.2 or later
-npm install tslib
-
-# TypeScript 3.8.4 or earlier
-npm install tslib@^1
-
-# TypeScript 2.3.2 or earlier
-npm install tslib@1.6.1
-```
-
-## yarn
-
-```sh
-# TypeScript 3.9.2 or later
-yarn add tslib
-
-# TypeScript 3.8.4 or earlier
-yarn add tslib@^1
-
-# TypeScript 2.3.2 or earlier
-yarn add tslib@1.6.1
-```
-
-## bower
-
-```sh
-# TypeScript 3.9.2 or later
-bower install tslib
-
-# TypeScript 3.8.4 or earlier
-bower install tslib@^1
-
-# TypeScript 2.3.2 or earlier
-bower install tslib@1.6.1
-```
-
-## JSPM
-
-```sh
-# TypeScript 3.9.2 or later
-jspm install tslib
-
-# TypeScript 3.8.4 or earlier
-jspm install tslib@^1
-
-# TypeScript 2.3.2 or earlier
-jspm install tslib@1.6.1
-```
-
-# Usage
-
-Set the `importHelpers` compiler option on the command line:
-
-```
-tsc --importHelpers file.ts
-```
-
-or in your tsconfig.json:
-
-```json
-{
-    "compilerOptions": {
-        "importHelpers": true
-    }
-}
-```
-
-#### For bower and JSPM users
-
-You will need to add a `paths` mapping for `tslib`, e.g. For Bower users:
-
-```json
-{
-    "compilerOptions": {
-        "module": "amd",
-        "importHelpers": true,
-        "baseUrl": "./",
-        "paths": {
-            "tslib" : ["bower_components/tslib/tslib.d.ts"]
-        }
-    }
-}
-```
-
-For JSPM users:
-
-```json
-{
-    "compilerOptions": {
-        "module": "system",
-        "importHelpers": true,
-        "baseUrl": "./",
-        "paths": {
-            "tslib" : ["jspm_packages/npm/tslib@2.x.y/tslib.d.ts"]
-        }
-    }
-}
-```
-
-## Deployment
-
-- Choose your new version number
-- Set it in `package.json` and `bower.json`
-- Create a tag: `git tag [version]`
-- Push the tag: `git push --tags`
-- Create a [release in GitHub](https://github.com/microsoft/tslib/releases)
-- Run the [publish to npm](https://github.com/microsoft/tslib/actions?query=workflow%3A%22Publish+to+NPM%22) workflow
-
-Done.
-
-# Contribute
-
-There are many ways to [contribute](https://github.com/Microsoft/TypeScript/blob/master/CONTRIBUTING.md) to TypeScript.
-
-* [Submit bugs](https://github.com/Microsoft/TypeScript/issues) and help us verify fixes as they are checked in.
-* Review the [source code changes](https://github.com/Microsoft/TypeScript/pulls).
-* Engage with other TypeScript users and developers on [StackOverflow](http://stackoverflow.com/questions/tagged/typescript).
-* Join the [#typescript](http://twitter.com/#!/search/realtime/%23typescript) discussion on Twitter.
-* [Contribute bug fixes](https://github.com/Microsoft/TypeScript/blob/master/CONTRIBUTING.md).
-
-# Documentation
-
-* [Quick tutorial](http://www.typescriptlang.org/Tutorial)
-* [Programming handbook](http://www.typescriptlang.org/Handbook)
-* [Homepage](http://www.typescriptlang.org/)

+ 0 - 53
node_modules/.store/echarts@5.5.1/node_modules/zrender/node_modules/tslib/modules/index.js

@@ -1,53 +0,0 @@
-import tslib from '../tslib.js';
-const {
-    __extends,
-    __assign,
-    __rest,
-    __decorate,
-    __param,
-    __metadata,
-    __awaiter,
-    __generator,
-    __exportStar,
-    __createBinding,
-    __values,
-    __read,
-    __spread,
-    __spreadArrays,
-    __spreadArray,
-    __await,
-    __asyncGenerator,
-    __asyncDelegator,
-    __asyncValues,
-    __makeTemplateObject,
-    __importStar,
-    __importDefault,
-    __classPrivateFieldGet,
-    __classPrivateFieldSet,
-} = tslib;
-export {
-    __extends,
-    __assign,
-    __rest,
-    __decorate,
-    __param,
-    __metadata,
-    __awaiter,
-    __generator,
-    __exportStar,
-    __createBinding,
-    __values,
-    __read,
-    __spread,
-    __spreadArrays,
-    __spreadArray,
-    __await,
-    __asyncGenerator,
-    __asyncDelegator,
-    __asyncValues,
-    __makeTemplateObject,
-    __importStar,
-    __importDefault,
-    __classPrivateFieldGet,
-    __classPrivateFieldSet,
-};

+ 0 - 3
node_modules/.store/echarts@5.5.1/node_modules/zrender/node_modules/tslib/modules/package.json

@@ -1,3 +0,0 @@
-{
-    "type": "module"
-}

+ 0 - 64
node_modules/.store/echarts@5.5.1/node_modules/zrender/node_modules/tslib/package.json

@@ -1,64 +0,0 @@
-{
-  "_from": "tslib@2.3.0",
-  "_id": "tslib@2.3.0",
-  "_inBundle": false,
-  "_integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==",
-  "_location": "/zrender/tslib",
-  "_phantomChildren": {},
-  "_requested": {
-    "type": "version",
-    "registry": true,
-    "raw": "tslib@2.3.0",
-    "name": "tslib",
-    "escapedName": "tslib",
-    "rawSpec": "2.3.0",
-    "saveSpec": null,
-    "fetchSpec": "2.3.0"
-  },
-  "_requiredBy": [
-    "/zrender"
-  ],
-  "_resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz",
-  "_shasum": "803b8cdab3e12ba581a4ca41c8839bbb0dacb09e",
-  "_spec": "tslib@2.3.0",
-  "_where": "D:\\通防技术部\\jeecg-uniapp\\node_modules\\zrender",
-  "author": {
-    "name": "Microsoft Corp."
-  },
-  "bugs": {
-    "url": "https://github.com/Microsoft/TypeScript/issues"
-  },
-  "bundleDependencies": false,
-  "deprecated": false,
-  "description": "Runtime library for TypeScript helper functions",
-  "exports": {
-    ".": {
-      "module": "./tslib.es6.js",
-      "import": "./modules/index.js",
-      "default": "./tslib.js"
-    },
-    "./": "./"
-  },
-  "homepage": "https://www.typescriptlang.org/",
-  "jsnext:main": "tslib.es6.js",
-  "keywords": [
-    "TypeScript",
-    "Microsoft",
-    "compiler",
-    "language",
-    "javascript",
-    "tslib",
-    "runtime"
-  ],
-  "license": "0BSD",
-  "main": "tslib.js",
-  "module": "tslib.es6.js",
-  "name": "tslib",
-  "repository": {
-    "type": "git",
-    "url": "git+https://github.com/Microsoft/tslib.git"
-  },
-  "sideEffects": false,
-  "typings": "tslib.d.ts",
-  "version": "2.3.0"
-}

+ 0 - 130
node_modules/.store/echarts@5.5.1/node_modules/zrender/node_modules/tslib/tslib.d.ts

@@ -1,130 +0,0 @@
-/*! *****************************************************************************
-Copyright (c) Microsoft Corporation.
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-***************************************************************************** */
-export declare function __extends(d: Function, b: Function): void;
-export declare function __assign(t: any, ...sources: any[]): any;
-export declare function __rest(t: any, propertyNames: (string | symbol)[]): any;
-export declare function __decorate(decorators: Function[], target: any, key?: string | symbol, desc?: any): any;
-export declare function __param(paramIndex: number, decorator: Function): Function;
-export declare function __metadata(metadataKey: any, metadataValue: any): Function;
-export declare function __awaiter(thisArg: any, _arguments: any, P: Function, generator: Function): any;
-export declare function __generator(thisArg: any, body: Function): any;
-export declare function __exportStar(m: any, o: any): void;
-export declare function __values(o: any): any;
-export declare function __read(o: any, n?: number): any[];
-/** @deprecated since TypeScript 4.2 */
-export declare function __spread(...args: any[][]): any[];
-/** @deprecated since TypeScript 4.2 */
-export declare function __spreadArrays(...args: any[][]): any[];
-export declare function __spreadArray(to: any[], from: any[], pack?: boolean): any[];
-export declare function __await(v: any): any;
-export declare function __asyncGenerator(thisArg: any, _arguments: any, generator: Function): any;
-export declare function __asyncDelegator(o: any): any;
-export declare function __asyncValues(o: any): any;
-export declare function __makeTemplateObject(cooked: string[], raw: string[]): TemplateStringsArray;
-export declare function __importStar<T>(mod: T): T;
-export declare function __importDefault<T>(mod: T): T | { default: T };
-/**
- * Reading from a private instance field
- */
-export declare function __classPrivateFieldGet<T extends object, V>(
-    receiver: T,
-    state: { has(o: T): boolean, get(o: T): V | undefined },
-    kind?: "f"
-): V;
-/**
- * Reading from a private static field
- */
-export declare function __classPrivateFieldGet<T extends new (...args: any[]) => unknown, V>(
-    receiver: T,
-    state: T,
-    kind: "f",
-    f: { value: V }
-): V;
-/**
- * Reading from a private instance get accessor
- */
-export declare function __classPrivateFieldGet<T extends object, V>(
-    receiver: T,
-    state: { has(o: T): boolean },
-    kind: "a",
-    f: () => V
-): V;
-/**
- * Reading from a private static get accessor
- */
-export declare function __classPrivateFieldGet<T extends new (...args: any[]) => unknown, V>(
-    receiver: T,
-    state: T,
-    kind: "a",
-    f: () => V
-): V;
-/**
- * Reading from a private instance method
- */
-export declare function __classPrivateFieldGet<T extends object, V extends (...args: any[]) => unknown>(
-    receiver: T,
-    state: { has(o: T): boolean },
-    kind: "m",
-    f: V
-): V;
-/**
- * Reading from a private static method
- */
-export declare function __classPrivateFieldGet<T extends new (...args: any[]) => unknown, V extends (...args: any[]) => unknown>(
-    receiver: T,
-    state: T,
-    kind: "m",
-    f: V
-): V;
-/**
- * Writing to a private instance field
- */
- export declare function __classPrivateFieldSet<T extends object, V>(
-    receiver: T,
-    state: { has(o: T): boolean, set(o: T, value: V): unknown },
-    value: V,
-    kind?: "f"
-): V;
-/**
- * Writing to a private static field
- */
-export declare function __classPrivateFieldSet<T extends new (...args: any[]) => unknown, V>(
-    receiver: T,
-    state: T,
-    value: V,
-    kind: "f",
-    f: { value: V }
-): V;
-/**
- * Writing to a private instance set accessor
- */
-export declare function __classPrivateFieldSet<T extends object, V>(
-    receiver: T,
-    state: { has(o: T): boolean },
-    value: V,
-    kind: "a",
-    f: (v: V) => void
-): V;
-/**
- * Writing to a private static set accessor
- */
-export declare function __classPrivateFieldSet<T extends new (...args: any[]) => unknown, V>(
-    receiver: T,
-    state: T,
-    value: V,
-    kind: "a",
-    f: (v: V) => void
-): V;
-export declare function __createBinding(object: object, target: object, key: PropertyKey, objectKey?: PropertyKey): void;

+ 0 - 1
node_modules/.store/echarts@5.5.1/node_modules/zrender/node_modules/tslib/tslib.es6.html

@@ -1 +0,0 @@
-<script src="tslib.es6.js"></script>

+ 0 - 239
node_modules/.store/echarts@5.5.1/node_modules/zrender/node_modules/tslib/tslib.es6.js

@@ -1,239 +0,0 @@
-/*! *****************************************************************************
-Copyright (c) Microsoft Corporation.
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-***************************************************************************** */
-/* global Reflect, Promise */
-
-var extendStatics = function(d, b) {
-    extendStatics = Object.setPrototypeOf ||
-        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-        function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
-    return extendStatics(d, b);
-};
-
-export function __extends(d, b) {
-    if (typeof b !== "function" && b !== null)
-        throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
-    extendStatics(d, b);
-    function __() { this.constructor = d; }
-    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-}
-
-export var __assign = function() {
-    __assign = Object.assign || function __assign(t) {
-        for (var s, i = 1, n = arguments.length; i < n; i++) {
-            s = arguments[i];
-            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
-        }
-        return t;
-    }
-    return __assign.apply(this, arguments);
-}
-
-export function __rest(s, e) {
-    var t = {};
-    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
-        t[p] = s[p];
-    if (s != null && typeof Object.getOwnPropertySymbols === "function")
-        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
-            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
-                t[p[i]] = s[p[i]];
-        }
-    return t;
-}
-
-export function __decorate(decorators, target, key, desc) {
-    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
-    if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
-    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
-    return c > 3 && r && Object.defineProperty(target, key, r), r;
-}
-
-export function __param(paramIndex, decorator) {
-    return function (target, key) { decorator(target, key, paramIndex); }
-}
-
-export function __metadata(metadataKey, metadataValue) {
-    if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);
-}
-
-export function __awaiter(thisArg, _arguments, P, generator) {
-    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
-    return new (P || (P = Promise))(function (resolve, reject) {
-        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
-        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
-        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
-        step((generator = generator.apply(thisArg, _arguments || [])).next());
-    });
-}
-
-export function __generator(thisArg, body) {
-    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
-    return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
-    function verb(n) { return function (v) { return step([n, v]); }; }
-    function step(op) {
-        if (f) throw new TypeError("Generator is already executing.");
-        while (_) try {
-            if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
-            if (y = 0, t) op = [op[0] & 2, t.value];
-            switch (op[0]) {
-                case 0: case 1: t = op; break;
-                case 4: _.label++; return { value: op[1], done: false };
-                case 5: _.label++; y = op[1]; op = [0]; continue;
-                case 7: op = _.ops.pop(); _.trys.pop(); continue;
-                default:
-                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
-                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
-                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
-                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
-                    if (t[2]) _.ops.pop();
-                    _.trys.pop(); continue;
-            }
-            op = body.call(thisArg, _);
-        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
-        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
-    }
-}
-
-export var __createBinding = Object.create ? (function(o, m, k, k2) {
-    if (k2 === undefined) k2 = k;
-    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
-}) : (function(o, m, k, k2) {
-    if (k2 === undefined) k2 = k;
-    o[k2] = m[k];
-});
-
-export function __exportStar(m, o) {
-    for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);
-}
-
-export function __values(o) {
-    var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
-    if (m) return m.call(o);
-    if (o && typeof o.length === "number") return {
-        next: function () {
-            if (o && i >= o.length) o = void 0;
-            return { value: o && o[i++], done: !o };
-        }
-    };
-    throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
-}
-
-export function __read(o, n) {
-    var m = typeof Symbol === "function" && o[Symbol.iterator];
-    if (!m) return o;
-    var i = m.call(o), r, ar = [], e;
-    try {
-        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
-    }
-    catch (error) { e = { error: error }; }
-    finally {
-        try {
-            if (r && !r.done && (m = i["return"])) m.call(i);
-        }
-        finally { if (e) throw e.error; }
-    }
-    return ar;
-}
-
-/** @deprecated */
-export function __spread() {
-    for (var ar = [], i = 0; i < arguments.length; i++)
-        ar = ar.concat(__read(arguments[i]));
-    return ar;
-}
-
-/** @deprecated */
-export function __spreadArrays() {
-    for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
-    for (var r = Array(s), k = 0, i = 0; i < il; i++)
-        for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
-            r[k] = a[j];
-    return r;
-}
-
-export function __spreadArray(to, from, pack) {
-    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
-        if (ar || !(i in from)) {
-            if (!ar) ar = Array.prototype.slice.call(from, 0, i);
-            ar[i] = from[i];
-        }
-    }
-    return to.concat(ar || from);
-}
-
-export function __await(v) {
-    return this instanceof __await ? (this.v = v, this) : new __await(v);
-}
-
-export function __asyncGenerator(thisArg, _arguments, generator) {
-    if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
-    var g = generator.apply(thisArg, _arguments || []), i, q = [];
-    return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
-    function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
-    function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
-    function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
-    function fulfill(value) { resume("next", value); }
-    function reject(value) { resume("throw", value); }
-    function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
-}
-
-export function __asyncDelegator(o) {
-    var i, p;
-    return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
-    function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; }
-}
-
-export function __asyncValues(o) {
-    if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
-    var m = o[Symbol.asyncIterator], i;
-    return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
-    function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
-    function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
-}
-
-export function __makeTemplateObject(cooked, raw) {
-    if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
-    return cooked;
-};
-
-var __setModuleDefault = Object.create ? (function(o, v) {
-    Object.defineProperty(o, "default", { enumerable: true, value: v });
-}) : function(o, v) {
-    o["default"] = v;
-};
-
-export function __importStar(mod) {
-    if (mod && mod.__esModule) return mod;
-    var result = {};
-    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
-    __setModuleDefault(result, mod);
-    return result;
-}
-
-export function __importDefault(mod) {
-    return (mod && mod.__esModule) ? mod : { default: mod };
-}
-
-export function __classPrivateFieldGet(receiver, state, kind, f) {
-    if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
-    if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
-    return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
-}
-
-export function __classPrivateFieldSet(receiver, state, value, kind, f) {
-    if (kind === "m") throw new TypeError("Private method is not writable");
-    if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
-    if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
-    return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
-}

+ 0 - 1
node_modules/.store/echarts@5.5.1/node_modules/zrender/node_modules/tslib/tslib.html

@@ -1 +0,0 @@
-<script src="tslib.js"></script>

+ 0 - 306
node_modules/.store/echarts@5.5.1/node_modules/zrender/node_modules/tslib/tslib.js

@@ -1,306 +0,0 @@
-/*! *****************************************************************************
-Copyright (c) Microsoft Corporation.
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-***************************************************************************** */
-/* global global, define, System, Reflect, Promise */
-var __extends;
-var __assign;
-var __rest;
-var __decorate;
-var __param;
-var __metadata;
-var __awaiter;
-var __generator;
-var __exportStar;
-var __values;
-var __read;
-var __spread;
-var __spreadArrays;
-var __spreadArray;
-var __await;
-var __asyncGenerator;
-var __asyncDelegator;
-var __asyncValues;
-var __makeTemplateObject;
-var __importStar;
-var __importDefault;
-var __classPrivateFieldGet;
-var __classPrivateFieldSet;
-var __createBinding;
-(function (factory) {
-    var root = typeof global === "object" ? global : typeof self === "object" ? self : typeof this === "object" ? this : {};
-    if (typeof define === "function" && define.amd) {
-        define("tslib", ["exports"], function (exports) { factory(createExporter(root, createExporter(exports))); });
-    }
-    else if (typeof module === "object" && typeof module.exports === "object") {
-        factory(createExporter(root, createExporter(module.exports)));
-    }
-    else {
-        factory(createExporter(root));
-    }
-    function createExporter(exports, previous) {
-        if (exports !== root) {
-            if (typeof Object.create === "function") {
-                Object.defineProperty(exports, "__esModule", { value: true });
-            }
-            else {
-                exports.__esModule = true;
-            }
-        }
-        return function (id, v) { return exports[id] = previous ? previous(id, v) : v; };
-    }
-})
-(function (exporter) {
-    var extendStatics = Object.setPrototypeOf ||
-        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
-        function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
-
-    __extends = function (d, b) {
-        if (typeof b !== "function" && b !== null)
-            throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
-        extendStatics(d, b);
-        function __() { this.constructor = d; }
-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
-    };
-
-    __assign = Object.assign || function (t) {
-        for (var s, i = 1, n = arguments.length; i < n; i++) {
-            s = arguments[i];
-            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
-        }
-        return t;
-    };
-
-    __rest = function (s, e) {
-        var t = {};
-        for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
-            t[p] = s[p];
-        if (s != null && typeof Object.getOwnPropertySymbols === "function")
-            for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
-                if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
-                    t[p[i]] = s[p[i]];
-            }
-        return t;
-    };
-
-    __decorate = function (decorators, target, key, desc) {
-        var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
-        if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
-        else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
-        return c > 3 && r && Object.defineProperty(target, key, r), r;
-    };
-
-    __param = function (paramIndex, decorator) {
-        return function (target, key) { decorator(target, key, paramIndex); }
-    };
-
-    __metadata = function (metadataKey, metadataValue) {
-        if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);
-    };
-
-    __awaiter = function (thisArg, _arguments, P, generator) {
-        function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
-        return new (P || (P = Promise))(function (resolve, reject) {
-            function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
-            function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
-            function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
-            step((generator = generator.apply(thisArg, _arguments || [])).next());
-        });
-    };
-
-    __generator = function (thisArg, body) {
-        var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
-        return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
-        function verb(n) { return function (v) { return step([n, v]); }; }
-        function step(op) {
-            if (f) throw new TypeError("Generator is already executing.");
-            while (_) try {
-                if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
-                if (y = 0, t) op = [op[0] & 2, t.value];
-                switch (op[0]) {
-                    case 0: case 1: t = op; break;
-                    case 4: _.label++; return { value: op[1], done: false };
-                    case 5: _.label++; y = op[1]; op = [0]; continue;
-                    case 7: op = _.ops.pop(); _.trys.pop(); continue;
-                    default:
-                        if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
-                        if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
-                        if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
-                        if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
-                        if (t[2]) _.ops.pop();
-                        _.trys.pop(); continue;
-                }
-                op = body.call(thisArg, _);
-            } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
-            if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
-        }
-    };
-
-    __exportStar = function(m, o) {
-        for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);
-    };
-
-    __createBinding = Object.create ? (function(o, m, k, k2) {
-        if (k2 === undefined) k2 = k;
-        Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
-    }) : (function(o, m, k, k2) {
-        if (k2 === undefined) k2 = k;
-        o[k2] = m[k];
-    });
-
-    __values = function (o) {
-        var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
-        if (m) return m.call(o);
-        if (o && typeof o.length === "number") return {
-            next: function () {
-                if (o && i >= o.length) o = void 0;
-                return { value: o && o[i++], done: !o };
-            }
-        };
-        throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
-    };
-
-    __read = function (o, n) {
-        var m = typeof Symbol === "function" && o[Symbol.iterator];
-        if (!m) return o;
-        var i = m.call(o), r, ar = [], e;
-        try {
-            while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
-        }
-        catch (error) { e = { error: error }; }
-        finally {
-            try {
-                if (r && !r.done && (m = i["return"])) m.call(i);
-            }
-            finally { if (e) throw e.error; }
-        }
-        return ar;
-    };
-
-    /** @deprecated */
-    __spread = function () {
-        for (var ar = [], i = 0; i < arguments.length; i++)
-            ar = ar.concat(__read(arguments[i]));
-        return ar;
-    };
-
-    /** @deprecated */
-    __spreadArrays = function () {
-        for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
-        for (var r = Array(s), k = 0, i = 0; i < il; i++)
-            for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
-                r[k] = a[j];
-        return r;
-    };
-
-    __spreadArray = function (to, from, pack) {
-        if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
-            if (ar || !(i in from)) {
-                if (!ar) ar = Array.prototype.slice.call(from, 0, i);
-                ar[i] = from[i];
-            }
-        }
-        return to.concat(ar || from);
-    };
-
-    __await = function (v) {
-        return this instanceof __await ? (this.v = v, this) : new __await(v);
-    };
-
-    __asyncGenerator = function (thisArg, _arguments, generator) {
-        if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
-        var g = generator.apply(thisArg, _arguments || []), i, q = [];
-        return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
-        function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
-        function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
-        function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);  }
-        function fulfill(value) { resume("next", value); }
-        function reject(value) { resume("throw", value); }
-        function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
-    };
-
-    __asyncDelegator = function (o) {
-        var i, p;
-        return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
-        function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; }
-    };
-
-    __asyncValues = function (o) {
-        if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
-        var m = o[Symbol.asyncIterator], i;
-        return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
-        function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
-        function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
-    };
-
-    __makeTemplateObject = function (cooked, raw) {
-        if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
-        return cooked;
-    };
-
-    var __setModuleDefault = Object.create ? (function(o, v) {
-        Object.defineProperty(o, "default", { enumerable: true, value: v });
-    }) : function(o, v) {
-        o["default"] = v;
-    };
-
-    __importStar = function (mod) {
-        if (mod && mod.__esModule) return mod;
-        var result = {};
-        if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
-        __setModuleDefault(result, mod);
-        return result;
-    };
-
-    __importDefault = function (mod) {
-        return (mod && mod.__esModule) ? mod : { "default": mod };
-    };
-
-    __classPrivateFieldGet = function (receiver, state, kind, f) {
-        if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
-        if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
-        return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
-    };
-
-    __classPrivateFieldSet = function (receiver, state, value, kind, f) {
-        if (kind === "m") throw new TypeError("Private method is not writable");
-        if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
-        if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
-        return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
-    };
-
-    exporter("__extends", __extends);
-    exporter("__assign", __assign);
-    exporter("__rest", __rest);
-    exporter("__decorate", __decorate);
-    exporter("__param", __param);
-    exporter("__metadata", __metadata);
-    exporter("__awaiter", __awaiter);
-    exporter("__generator", __generator);
-    exporter("__exportStar", __exportStar);
-    exporter("__createBinding", __createBinding);
-    exporter("__values", __values);
-    exporter("__read", __read);
-    exporter("__spread", __spread);
-    exporter("__spreadArrays", __spreadArrays);
-    exporter("__spreadArray", __spreadArray);
-    exporter("__await", __await);
-    exporter("__asyncGenerator", __asyncGenerator);
-    exporter("__asyncDelegator", __asyncDelegator);
-    exporter("__asyncValues", __asyncValues);
-    exporter("__makeTemplateObject", __makeTemplateObject);
-    exporter("__importStar", __importStar);
-    exporter("__importDefault", __importDefault);
-    exporter("__classPrivateFieldGet", __classPrivateFieldGet);
-    exporter("__classPrivateFieldSet", __classPrivateFieldSet);
-});

+ 0 - 15
node_modules/.store/node_modules/zrender/node_modules/tslib/CopyrightNotice.txt

@@ -1,15 +0,0 @@
-/*! *****************************************************************************
-Copyright (c) Microsoft Corporation.
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-***************************************************************************** */
-

+ 0 - 12
node_modules/.store/node_modules/zrender/node_modules/tslib/LICENSE.txt

@@ -1,12 +0,0 @@
-Copyright (c) Microsoft Corporation.
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.

+ 0 - 164
node_modules/.store/node_modules/zrender/node_modules/tslib/README.md

@@ -1,164 +0,0 @@
-# tslib
-
-This is a runtime library for [TypeScript](http://www.typescriptlang.org/) that contains all of the TypeScript helper functions.
-
-This library is primarily used by the `--importHelpers` flag in TypeScript.
-When using `--importHelpers`, a module that uses helper functions like `__extends` and `__assign` in the following emitted file:
-
-```ts
-var __assign = (this && this.__assign) || Object.assign || function(t) {
-    for (var s, i = 1, n = arguments.length; i < n; i++) {
-        s = arguments[i];
-        for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
-            t[p] = s[p];
-    }
-    return t;
-};
-exports.x = {};
-exports.y = __assign({}, exports.x);
-
-```
-
-will instead be emitted as something like the following:
-
-```ts
-var tslib_1 = require("tslib");
-exports.x = {};
-exports.y = tslib_1.__assign({}, exports.x);
-```
-
-Because this can avoid duplicate declarations of things like `__extends`, `__assign`, etc., this means delivering users smaller files on average, as well as less runtime overhead.
-For optimized bundles with TypeScript, you should absolutely consider using `tslib` and `--importHelpers`.
-
-# Installing
-
-For the latest stable version, run:
-
-## npm
-
-```sh
-# TypeScript 3.9.2 or later
-npm install tslib
-
-# TypeScript 3.8.4 or earlier
-npm install tslib@^1
-
-# TypeScript 2.3.2 or earlier
-npm install tslib@1.6.1
-```
-
-## yarn
-
-```sh
-# TypeScript 3.9.2 or later
-yarn add tslib
-
-# TypeScript 3.8.4 or earlier
-yarn add tslib@^1
-
-# TypeScript 2.3.2 or earlier
-yarn add tslib@1.6.1
-```
-
-## bower
-
-```sh
-# TypeScript 3.9.2 or later
-bower install tslib
-
-# TypeScript 3.8.4 or earlier
-bower install tslib@^1
-
-# TypeScript 2.3.2 or earlier
-bower install tslib@1.6.1
-```
-
-## JSPM
-
-```sh
-# TypeScript 3.9.2 or later
-jspm install tslib
-
-# TypeScript 3.8.4 or earlier
-jspm install tslib@^1
-
-# TypeScript 2.3.2 or earlier
-jspm install tslib@1.6.1
-```
-
-# Usage
-
-Set the `importHelpers` compiler option on the command line:
-
-```
-tsc --importHelpers file.ts
-```
-
-or in your tsconfig.json:
-
-```json
-{
-    "compilerOptions": {
-        "importHelpers": true
-    }
-}
-```
-
-#### For bower and JSPM users
-
-You will need to add a `paths` mapping for `tslib`, e.g. For Bower users:
-
-```json
-{
-    "compilerOptions": {
-        "module": "amd",
-        "importHelpers": true,
-        "baseUrl": "./",
-        "paths": {
-            "tslib" : ["bower_components/tslib/tslib.d.ts"]
-        }
-    }
-}
-```
-
-For JSPM users:
-
-```json
-{
-    "compilerOptions": {
-        "module": "system",
-        "importHelpers": true,
-        "baseUrl": "./",
-        "paths": {
-            "tslib" : ["jspm_packages/npm/tslib@2.x.y/tslib.d.ts"]
-        }
-    }
-}
-```
-
-## Deployment
-
-- Choose your new version number
-- Set it in `package.json` and `bower.json`
-- Create a tag: `git tag [version]`
-- Push the tag: `git push --tags`
-- Create a [release in GitHub](https://github.com/microsoft/tslib/releases)
-- Run the [publish to npm](https://github.com/microsoft/tslib/actions?query=workflow%3A%22Publish+to+NPM%22) workflow
-
-Done.
-
-# Contribute
-
-There are many ways to [contribute](https://github.com/Microsoft/TypeScript/blob/master/CONTRIBUTING.md) to TypeScript.
-
-* [Submit bugs](https://github.com/Microsoft/TypeScript/issues) and help us verify fixes as they are checked in.
-* Review the [source code changes](https://github.com/Microsoft/TypeScript/pulls).
-* Engage with other TypeScript users and developers on [StackOverflow](http://stackoverflow.com/questions/tagged/typescript).
-* Join the [#typescript](http://twitter.com/#!/search/realtime/%23typescript) discussion on Twitter.
-* [Contribute bug fixes](https://github.com/Microsoft/TypeScript/blob/master/CONTRIBUTING.md).
-
-# Documentation
-
-* [Quick tutorial](http://www.typescriptlang.org/Tutorial)
-* [Programming handbook](http://www.typescriptlang.org/Handbook)
-* [Homepage](http://www.typescriptlang.org/)

+ 0 - 53
node_modules/.store/node_modules/zrender/node_modules/tslib/modules/index.js

@@ -1,53 +0,0 @@
-import tslib from '../tslib.js';
-const {
-    __extends,
-    __assign,
-    __rest,
-    __decorate,
-    __param,
-    __metadata,
-    __awaiter,
-    __generator,
-    __exportStar,
-    __createBinding,
-    __values,
-    __read,
-    __spread,
-    __spreadArrays,
-    __spreadArray,
-    __await,
-    __asyncGenerator,
-    __asyncDelegator,
-    __asyncValues,
-    __makeTemplateObject,
-    __importStar,
-    __importDefault,
-    __classPrivateFieldGet,
-    __classPrivateFieldSet,
-} = tslib;
-export {
-    __extends,
-    __assign,
-    __rest,
-    __decorate,
-    __param,
-    __metadata,
-    __awaiter,
-    __generator,
-    __exportStar,
-    __createBinding,
-    __values,
-    __read,
-    __spread,
-    __spreadArrays,
-    __spreadArray,
-    __await,
-    __asyncGenerator,
-    __asyncDelegator,
-    __asyncValues,
-    __makeTemplateObject,
-    __importStar,
-    __importDefault,
-    __classPrivateFieldGet,
-    __classPrivateFieldSet,
-};

+ 0 - 3
node_modules/.store/node_modules/zrender/node_modules/tslib/modules/package.json

@@ -1,3 +0,0 @@
-{
-    "type": "module"
-}

+ 0 - 64
node_modules/.store/node_modules/zrender/node_modules/tslib/package.json

@@ -1,64 +0,0 @@
-{
-  "_from": "tslib@2.3.0",
-  "_id": "tslib@2.3.0",
-  "_inBundle": false,
-  "_integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==",
-  "_location": "/zrender/tslib",
-  "_phantomChildren": {},
-  "_requested": {
-    "type": "version",
-    "registry": true,
-    "raw": "tslib@2.3.0",
-    "name": "tslib",
-    "escapedName": "tslib",
-    "rawSpec": "2.3.0",
-    "saveSpec": null,
-    "fetchSpec": "2.3.0"
-  },
-  "_requiredBy": [
-    "/zrender"
-  ],
-  "_resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.3.0.tgz",
-  "_shasum": "803b8cdab3e12ba581a4ca41c8839bbb0dacb09e",
-  "_spec": "tslib@2.3.0",
-  "_where": "D:\\通防技术部\\jeecg-uniapp\\node_modules\\zrender",
-  "author": {
-    "name": "Microsoft Corp."
-  },
-  "bugs": {
-    "url": "https://github.com/Microsoft/TypeScript/issues"
-  },
-  "bundleDependencies": false,
-  "deprecated": false,
-  "description": "Runtime library for TypeScript helper functions",
-  "exports": {
-    ".": {
-      "module": "./tslib.es6.js",
-      "import": "./modules/index.js",
-      "default": "./tslib.js"
-    },
-    "./": "./"
-  },
-  "homepage": "https://www.typescriptlang.org/",
-  "jsnext:main": "tslib.es6.js",
-  "keywords": [
-    "TypeScript",
-    "Microsoft",
-    "compiler",
-    "language",
-    "javascript",
-    "tslib",
-    "runtime"
-  ],
-  "license": "0BSD",
-  "main": "tslib.js",
-  "module": "tslib.es6.js",
-  "name": "tslib",
-  "repository": {
-    "type": "git",
-    "url": "git+https://github.com/Microsoft/tslib.git"
-  },
-  "sideEffects": false,
-  "typings": "tslib.d.ts",
-  "version": "2.3.0"
-}

+ 0 - 130
node_modules/.store/node_modules/zrender/node_modules/tslib/tslib.d.ts

@@ -1,130 +0,0 @@
-/*! *****************************************************************************
-Copyright (c) Microsoft Corporation.
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-***************************************************************************** */
-export declare function __extends(d: Function, b: Function): void;
-export declare function __assign(t: any, ...sources: any[]): any;
-export declare function __rest(t: any, propertyNames: (string | symbol)[]): any;
-export declare function __decorate(decorators: Function[], target: any, key?: string | symbol, desc?: any): any;
-export declare function __param(paramIndex: number, decorator: Function): Function;
-export declare function __metadata(metadataKey: any, metadataValue: any): Function;
-export declare function __awaiter(thisArg: any, _arguments: any, P: Function, generator: Function): any;
-export declare function __generator(thisArg: any, body: Function): any;
-export declare function __exportStar(m: any, o: any): void;
-export declare function __values(o: any): any;
-export declare function __read(o: any, n?: number): any[];
-/** @deprecated since TypeScript 4.2 */
-export declare function __spread(...args: any[][]): any[];
-/** @deprecated since TypeScript 4.2 */
-export declare function __spreadArrays(...args: any[][]): any[];
-export declare function __spreadArray(to: any[], from: any[], pack?: boolean): any[];
-export declare function __await(v: any): any;
-export declare function __asyncGenerator(thisArg: any, _arguments: any, generator: Function): any;
-export declare function __asyncDelegator(o: any): any;
-export declare function __asyncValues(o: any): any;
-export declare function __makeTemplateObject(cooked: string[], raw: string[]): TemplateStringsArray;
-export declare function __importStar<T>(mod: T): T;
-export declare function __importDefault<T>(mod: T): T | { default: T };
-/**
- * Reading from a private instance field
- */
-export declare function __classPrivateFieldGet<T extends object, V>(
-    receiver: T,
-    state: { has(o: T): boolean, get(o: T): V | undefined },
-    kind?: "f"
-): V;
-/**
- * Reading from a private static field
- */
-export declare function __classPrivateFieldGet<T extends new (...args: any[]) => unknown, V>(
-    receiver: T,
-    state: T,
-    kind: "f",
-    f: { value: V }
-): V;
-/**
- * Reading from a private instance get accessor
- */
-export declare function __classPrivateFieldGet<T extends object, V>(
-    receiver: T,
-    state: { has(o: T): boolean },
-    kind: "a",
-    f: () => V
-): V;
-/**
- * Reading from a private static get accessor
- */
-export declare function __classPrivateFieldGet<T extends new (...args: any[]) => unknown, V>(
-    receiver: T,
-    state: T,
-    kind: "a",
-    f: () => V
-): V;
-/**
- * Reading from a private instance method
- */
-export declare function __classPrivateFieldGet<T extends object, V extends (...args: any[]) => unknown>(
-    receiver: T,
-    state: { has(o: T): boolean },
-    kind: "m",
-    f: V
-): V;
-/**
- * Reading from a private static method
- */
-export declare function __classPrivateFieldGet<T extends new (...args: any[]) => unknown, V extends (...args: any[]) => unknown>(
-    receiver: T,
-    state: T,
-    kind: "m",
-    f: V
-): V;
-/**
- * Writing to a private instance field
- */
- export declare function __classPrivateFieldSet<T extends object, V>(
-    receiver: T,
-    state: { has(o: T): boolean, set(o: T, value: V): unknown },
-    value: V,
-    kind?: "f"
-): V;
-/**
- * Writing to a private static field
- */
-export declare function __classPrivateFieldSet<T extends new (...args: any[]) => unknown, V>(
-    receiver: T,
-    state: T,
-    value: V,
-    kind: "f",
-    f: { value: V }
-): V;
-/**
- * Writing to a private instance set accessor
- */
-export declare function __classPrivateFieldSet<T extends object, V>(
-    receiver: T,
-    state: { has(o: T): boolean },
-    value: V,
-    kind: "a",
-    f: (v: V) => void
-): V;
-/**
- * Writing to a private static set accessor
- */
-export declare function __classPrivateFieldSet<T extends new (...args: any[]) => unknown, V>(
-    receiver: T,
-    state: T,
-    value: V,
-    kind: "a",
-    f: (v: V) => void
-): V;
-export declare function __createBinding(object: object, target: object, key: PropertyKey, objectKey?: PropertyKey): void;

+ 0 - 1
node_modules/.store/node_modules/zrender/node_modules/tslib/tslib.es6.html

@@ -1 +0,0 @@
-<script src="tslib.es6.js"></script>

Неке датотеке нису приказане због велике количине промена