import { __export } from "./chunk-V4OQ3NZ2.js"; // ../node_modules/.pnpm/zrender@6.0.0/node_modules/zrender/lib/core/platform.js var DEFAULT_FONT_SIZE = 12; var DEFAULT_FONT_FAMILY = "sans-serif"; var DEFAULT_FONT = DEFAULT_FONT_SIZE + "px " + DEFAULT_FONT_FAMILY; var OFFSET = 20; var SCALE = 100; var defaultWidthMapStr = "007LLmW'55;N0500LLLLLLLLLL00NNNLzWW\\\\WQb\\0FWLg\\bWb\\WQ\\WrWWQ000CL5LLFLL0LL**F*gLLLL5F0LF\\FFF5.5N"; function getTextWidthMap(mapStr) { var map2 = {}; if (typeof JSON === "undefined") { return map2; } for (var i = 0; i < mapStr.length; i++) { var char = String.fromCharCode(i + 32); var size = (mapStr.charCodeAt(i) - OFFSET) / SCALE; map2[char] = size; } return map2; } var DEFAULT_TEXT_WIDTH_MAP = getTextWidthMap(defaultWidthMapStr); var platformApi = { createCanvas: function() { return typeof document !== "undefined" && document.createElement("canvas"); }, measureText: /* @__PURE__ */ function() { var _ctx; var _cachedFont; return function(text, font) { if (!_ctx) { var 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; var res = /((?:\d+)?\.?\d*)px/.exec(font); var fontSize = res && +res[1] || DEFAULT_FONT_SIZE; var width = 0; if (font.indexOf("mono") >= 0) { width = fontSize * text.length; } else { for (var i = 0; i < text.length; i++) { var preCalcWidth = DEFAULT_TEXT_WIDTH_MAP[text[i]]; width += preCalcWidth == null ? fontSize : preCalcWidth * fontSize; } } return { width }; } }; }(), loadImage: function(src, onload, onerror) { var image = new Image(); image.onload = onload; image.onerror = onerror; image.src = src; return image; } }; function setPlatformAPI(newPlatformApis) { for (var key in platformApi) { if (newPlatformApis[key]) { platformApi[key] = newPlatformApis[key]; } } } // ../node_modules/.pnpm/zrender@6.0.0/node_modules/zrender/lib/core/util.js var util_exports = {}; __export(util_exports, { EPSILON: () => EPSILON, HashMap: () => HashMap, RADIAN_TO_DEGREE: () => RADIAN_TO_DEGREE, assert: () => assert, bind: () => bind, clone: () => clone, concatArray: () => concatArray, createCanvas: () => createCanvas, createHashMap: () => createHashMap, createObject: () => createObject, curry: () => curry, defaults: () => defaults, disableUserSelect: () => disableUserSelect, each: () => each, eqNaN: () => eqNaN, extend: () => extend, filter: () => filter, find: () => find, guid: () => guid, hasOwn: () => hasOwn, indexOf: () => indexOf, inherits: () => inherits, isArray: () => isArray, isArrayLike: () => isArrayLike, isBuiltInObject: () => isBuiltInObject, isDom: () => isDom, isFunction: () => isFunction, isGradientObject: () => isGradientObject, isImagePatternObject: () => isImagePatternObject, isNumber: () => isNumber, isObject: () => isObject, isPrimitive: () => isPrimitive, isRegExp: () => isRegExp, isString: () => isString, isStringSafe: () => isStringSafe, isTypedArray: () => isTypedArray, keys: () => keys, logError: () => logError, map: () => map, merge: () => merge, mergeAll: () => mergeAll, mixin: () => mixin, noop: () => noop, normalizeCssArray: () => normalizeCssArray, reduce: () => reduce, retrieve: () => retrieve, retrieve2: () => retrieve2, retrieve3: () => retrieve3, setAsPrimitive: () => setAsPrimitive, slice: () => slice, trim: () => trim }); var BUILTIN_OBJECT = reduce([ "Function", "RegExp", "Date", "Error", "CanvasGradient", "CanvasPattern", "Image", "Canvas" ], function(obj, val) { obj["[object " + val + "]"] = true; return obj; }, {}); var TYPED_ARRAY = reduce([ "Int8", "Uint8", "Uint8Clamped", "Int16", "Uint16", "Int32", "Uint32", "Float32", "Float64" ], function(obj, val) { obj["[object " + val + "Array]"] = true; return obj; }, {}); var objToString = Object.prototype.toString; var arrayProto = Array.prototype; var nativeForEach = arrayProto.forEach; var nativeFilter = arrayProto.filter; var nativeSlice = arrayProto.slice; var nativeMap = arrayProto.map; var ctorFunction = (function() { }).constructor; var protoFunction = ctorFunction ? ctorFunction.prototype : null; var protoKey = "__proto__"; var idStart = 2311; function guid() { return idStart++; } function logError() { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } if (typeof console !== "undefined") { console.error.apply(console, args); } } function clone(source) { if (source == null || typeof source !== "object") { return source; } var result = source; var typeStr = objToString.call(source); if (typeStr === "[object Array]") { if (!isPrimitive(source)) { result = []; for (var i = 0, len2 = source.length; i < len2; i++) { result[i] = clone(source[i]); } } } else if (TYPED_ARRAY[typeStr]) { if (!isPrimitive(source)) { var Ctor = source.constructor; if (Ctor.from) { result = Ctor.from(source); } else { result = new Ctor(source.length); for (var i = 0, len2 = source.length; i < len2; i++) { result[i] = source[i]; } } } } else if (!BUILTIN_OBJECT[typeStr] && !isPrimitive(source) && !isDom(source)) { result = {}; for (var key in source) { if (source.hasOwnProperty(key) && key !== protoKey) { result[key] = clone(source[key]); } } } return result; } function merge(target, source, overwrite) { if (!isObject(source) || !isObject(target)) { return overwrite ? clone(source) : target; } for (var key in source) { if (source.hasOwnProperty(key) && key !== protoKey) { var targetProp = target[key]; var 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(targetProp, sourceProp, overwrite); } else if (overwrite || !(key in target)) { target[key] = clone(source[key]); } } } return target; } function mergeAll(targetAndSources, overwrite) { var result = targetAndSources[0]; for (var i = 1, len2 = targetAndSources.length; i < len2; i++) { result = merge(result, targetAndSources[i], overwrite); } return result; } function extend(target, source) { if (Object.assign) { Object.assign(target, source); } else { for (var key in source) { if (source.hasOwnProperty(key) && key !== protoKey) { target[key] = source[key]; } } } return target; } function defaults(target, source, overlay) { var keysArr = keys(source); for (var i = 0, len2 = keysArr.length; i < len2; i++) { var key = keysArr[i]; if (overlay ? source[key] != null : target[key] == null) { target[key] = source[key]; } } return target; } var createCanvas = platformApi.createCanvas; function indexOf(array, value) { if (array) { if (array.indexOf) { return array.indexOf(value); } for (var i = 0, len2 = array.length; i < len2; i++) { if (array[i] === value) { return i; } } } return -1; } function inherits(clazz, baseClazz) { var clazzPrototype = clazz.prototype; function F() { } F.prototype = baseClazz.prototype; clazz.prototype = new F(); for (var prop in clazzPrototype) { if (clazzPrototype.hasOwnProperty(prop)) { clazz.prototype[prop] = clazzPrototype[prop]; } } clazz.prototype.constructor = clazz; clazz.superClass = baseClazz; } function mixin(target, source, override) { target = "prototype" in target ? target.prototype : target; source = "prototype" in source ? source.prototype : source; if (Object.getOwnPropertyNames) { var keyList = Object.getOwnPropertyNames(source); for (var i = 0; i < keyList.length; i++) { var key = keyList[i]; if (key !== "constructor") { if (override ? source[key] != null : target[key] == null) { target[key] = source[key]; } } } } else { defaults(target, source, override); } } function isArrayLike(data) { if (!data) { return false; } if (typeof data === "string") { return false; } return typeof data.length === "number"; } function each(arr, cb, context) { if (!(arr && cb)) { return; } if (arr.forEach && arr.forEach === nativeForEach) { arr.forEach(cb, context); } else if (arr.length === +arr.length) { for (var i = 0, len2 = arr.length; i < len2; i++) { cb.call(context, arr[i], i, arr); } } else { for (var key in arr) { if (arr.hasOwnProperty(key)) { cb.call(context, arr[key], key, arr); } } } } function map(arr, cb, context) { if (!arr) { return []; } if (!cb) { return slice(arr); } if (arr.map && arr.map === nativeMap) { return arr.map(cb, context); } else { var result = []; for (var i = 0, len2 = arr.length; i < len2; i++) { result.push(cb.call(context, arr[i], i, arr)); } return result; } } function reduce(arr, cb, memo, context) { if (!(arr && cb)) { return; } for (var i = 0, len2 = arr.length; i < len2; i++) { memo = cb.call(context, memo, arr[i], i, arr); } return memo; } function filter(arr, cb, context) { if (!arr) { return []; } if (!cb) { return slice(arr); } if (arr.filter && arr.filter === nativeFilter) { return arr.filter(cb, context); } else { var result = []; for (var i = 0, len2 = arr.length; i < len2; i++) { if (cb.call(context, arr[i], i, arr)) { result.push(arr[i]); } } return result; } } function find(arr, cb, context) { if (!(arr && cb)) { return; } for (var i = 0, len2 = arr.length; i < len2; i++) { if (cb.call(context, arr[i], i, arr)) { return arr[i]; } } } function keys(obj) { if (!obj) { return []; } if (Object.keys) { return Object.keys(obj); } var keyList = []; for (var key in obj) { if (obj.hasOwnProperty(key)) { keyList.push(key); } } return keyList; } function bindPolyfill(func, context) { var args = []; for (var _i = 2; _i < arguments.length; _i++) { args[_i - 2] = arguments[_i]; } return function() { return func.apply(context, args.concat(nativeSlice.call(arguments))); }; } var bind = protoFunction && isFunction(protoFunction.bind) ? protoFunction.call.bind(protoFunction.bind) : bindPolyfill; function curry(func) { var args = []; for (var _i = 1; _i < arguments.length; _i++) { args[_i - 1] = arguments[_i]; } return function() { return func.apply(this, args.concat(nativeSlice.call(arguments))); }; } function isArray(value) { if (Array.isArray) { return Array.isArray(value); } return objToString.call(value) === "[object Array]"; } function isFunction(value) { return typeof value === "function"; } function isString(value) { return typeof value === "string"; } function isStringSafe(value) { return objToString.call(value) === "[object String]"; } function isNumber(value) { return typeof value === "number"; } function isObject(value) { var type = typeof value; return type === "function" || !!value && type === "object"; } function isBuiltInObject(value) { return !!BUILTIN_OBJECT[objToString.call(value)]; } function isTypedArray(value) { return !!TYPED_ARRAY[objToString.call(value)]; } function isDom(value) { return typeof value === "object" && typeof value.nodeType === "number" && typeof value.ownerDocument === "object"; } function isGradientObject(value) { return value.colorStops != null; } function isImagePatternObject(value) { return value.image != null; } function isRegExp(value) { return objToString.call(value) === "[object RegExp]"; } function eqNaN(value) { return value !== value; } function retrieve() { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } for (var i = 0, len2 = args.length; i < len2; i++) { if (args[i] != null) { return args[i]; } } } function retrieve2(value0, value1) { return value0 != null ? value0 : value1; } function retrieve3(value0, value1, value2) { return value0 != null ? value0 : value1 != null ? value1 : value2; } function slice(arr) { var args = []; for (var _i = 1; _i < arguments.length; _i++) { args[_i - 1] = arguments[_i]; } return nativeSlice.apply(arr, args); } function normalizeCssArray(val) { if (typeof val === "number") { return [val, val, val, val]; } var len2 = val.length; if (len2 === 2) { return [val[0], val[1], val[0], val[1]]; } else if (len2 === 3) { return [val[0], val[1], val[2], val[1]]; } return val; } function assert(condition, message) { if (!condition) { throw new Error(message); } } function trim(str) { 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, ""); } } var primitiveKey = "__ec_primitive__"; function setAsPrimitive(obj) { obj[primitiveKey] = true; } function isPrimitive(obj) { return obj[primitiveKey]; } var MapPolyfill = function() { function MapPolyfill2() { this.data = {}; } MapPolyfill2.prototype["delete"] = function(key) { var existed = this.has(key); if (existed) { delete this.data[key]; } return existed; }; MapPolyfill2.prototype.has = function(key) { return this.data.hasOwnProperty(key); }; MapPolyfill2.prototype.get = function(key) { return this.data[key]; }; MapPolyfill2.prototype.set = function(key, value) { this.data[key] = value; return this; }; MapPolyfill2.prototype.keys = function() { return keys(this.data); }; MapPolyfill2.prototype.forEach = function(callback) { var data = this.data; for (var key in data) { if (data.hasOwnProperty(key)) { callback(data[key], key); } } }; return MapPolyfill2; }(); var isNativeMapSupported = typeof Map === "function"; function maybeNativeMap() { return isNativeMapSupported ? /* @__PURE__ */ new Map() : new MapPolyfill(); } var HashMap = function() { function HashMap2(obj) { var isArr = isArray(obj); this.data = maybeNativeMap(); var thisMap = this; obj instanceof HashMap2 ? obj.each(visit) : obj && each(obj, visit); function visit(value, key) { isArr ? thisMap.set(value, key) : thisMap.set(key, value); } } HashMap2.prototype.hasKey = function(key) { return this.data.has(key); }; HashMap2.prototype.get = function(key) { return this.data.get(key); }; HashMap2.prototype.set = function(key, value) { this.data.set(key, value); return value; }; HashMap2.prototype.each = function(cb, context) { this.data.forEach(function(value, key) { cb.call(context, value, key); }); }; HashMap2.prototype.keys = function() { var keys2 = this.data.keys(); return isNativeMapSupported ? Array.from(keys2) : keys2; }; HashMap2.prototype.removeKey = function(key) { this.data["delete"](key); }; return HashMap2; }(); function createHashMap(obj) { return new HashMap(obj); } function concatArray(a, b) { var newArray = new a.constructor(a.length + b.length); for (var i = 0; i < a.length; i++) { newArray[i] = a[i]; } var offset = a.length; for (var i = 0; i < b.length; i++) { newArray[i + offset] = b[i]; } return newArray; } function createObject(proto, properties) { var obj; if (Object.create) { obj = Object.create(proto); } else { var StyleCtor = function() { }; StyleCtor.prototype = proto; obj = new StyleCtor(); } if (properties) { extend(obj, properties); } return obj; } function disableUserSelect(dom) { var domStyle = dom.style; domStyle.webkitUserSelect = "none"; domStyle.userSelect = "none"; domStyle.webkitTapHighlightColor = "rgba(0,0,0,0)"; domStyle["-webkit-touch-callout"] = "none"; } function hasOwn(own, prop) { return own.hasOwnProperty(prop); } function noop() { } var RADIAN_TO_DEGREE = 180 / Math.PI; var EPSILON = Number.EPSILON || Math.pow(2, -52); // ../node_modules/.pnpm/zrender@6.0.0/node_modules/zrender/lib/core/env.js var Browser = /* @__PURE__ */ function() { function Browser2() { this.firefox = false; this.ie = false; this.edge = false; this.newEdge = false; this.weChat = false; } return Browser2; }(); var Env = /* @__PURE__ */ function() { function Env2() { this.browser = new Browser(); this.node = false; this.wxa = false; this.worker = false; this.svgSupported = false; this.touchEventsSupported = false; this.pointerEventsSupported = false; this.domSupported = false; this.transformSupported = false; this.transform3dSupported = false; this.hasGlobalWindow = typeof window !== "undefined"; } return Env2; }(); var env = new Env(); if (typeof wx === "object" && typeof wx.getSystemInfoSync === "function") { env.wxa = true; env.touchEventsSupported = true; } else if (typeof document === "undefined" && typeof self !== "undefined") { env.worker = true; } else if (!env.hasGlobalWindow || "Deno" in window || typeof navigator !== "undefined" && typeof navigator.userAgent === "string" && navigator.userAgent.indexOf("Node.js") > -1) { env.node = true; env.svgSupported = true; } else { detect(navigator.userAgent, env); } function detect(ua, env2) { var browser = env2.browser; var firefox = ua.match(/Firefox\/([\d.]+)/); var ie = ua.match(/MSIE\s([\d.]+)/) || ua.match(/Trident\/.+?rv:(([\d.]+))/); var edge = ua.match(/Edge?\/([\d.]+)/); var weChat = /micromessenger/i.test(ua); if (firefox) { browser.firefox = true; browser.version = firefox[1]; } if (ie) { browser.ie = true; browser.version = ie[1]; } if (edge) { browser.edge = true; browser.version = edge[1]; browser.newEdge = +edge[1].split(".")[0] > 18; } if (weChat) { browser.weChat = true; } env2.svgSupported = typeof SVGRect !== "undefined"; env2.touchEventsSupported = "ontouchstart" in window && !browser.ie && !browser.edge; env2.pointerEventsSupported = "onpointerdown" in window && (browser.edge || browser.ie && +browser.version >= 11); var domSupported = env2.domSupported = typeof document !== "undefined"; if (domSupported) { var style = document.documentElement.style; env2.transform3dSupported = (browser.ie && "transition" in style || browser.edge || "WebKitCSSMatrix" in window && "m11" in new WebKitCSSMatrix() || "MozPerspective" in style) && !("OTransition" in style); env2.transformSupported = env2.transform3dSupported || browser.ie && +browser.version >= 9; } } var env_default = env; // ../node_modules/.pnpm/zrender@6.0.0/node_modules/zrender/lib/core/matrix.js var matrix_exports = {}; __export(matrix_exports, { clone: () => clone2, copy: () => copy, create: () => create, identity: () => identity, invert: () => invert, mul: () => mul, rotate: () => rotate, scale: () => scale, translate: () => translate }); function create() { return [1, 0, 0, 1, 0, 0]; } function identity(out) { out[0] = 1; out[1] = 0; out[2] = 0; out[3] = 1; out[4] = 0; out[5] = 0; return out; } function copy(out, m) { 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; } function mul(out, m1, m2) { var out0 = m1[0] * m2[0] + m1[2] * m2[1]; var out1 = m1[1] * m2[0] + m1[3] * m2[1]; var out2 = m1[0] * m2[2] + m1[2] * m2[3]; var out3 = m1[1] * m2[2] + m1[3] * m2[3]; var out4 = m1[0] * m2[4] + m1[2] * m2[5] + m1[4]; var 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; } function translate(out, a, v) { 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; } function rotate(out, a, rad, pivot) { if (pivot === void 0) { pivot = [0, 0]; } var aa = a[0]; var ac = a[2]; var atx = a[4]; var ab = a[1]; var ad = a[3]; var aty = a[5]; var st = Math.sin(rad); var 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; } function scale(out, a, v) { var vx = v[0]; var 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; } function invert(out, a) { var aa = a[0]; var ac = a[2]; var atx = a[4]; var ab = a[1]; var ad = a[3]; var aty = a[5]; var det = aa * ad - ab * ac; if (!det) { return null; } det = 1 / 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; } function clone2(a) { var b = create(); copy(b, a); return b; } // ../node_modules/.pnpm/zrender@6.0.0/node_modules/zrender/lib/core/vector.js var vector_exports = {}; __export(vector_exports, { add: () => add, applyTransform: () => applyTransform, clone: () => clone3, copy: () => copy2, create: () => create2, dist: () => dist, distSquare: () => distSquare, distance: () => distance, distanceSquare: () => distanceSquare, div: () => div, dot: () => dot, len: () => len, lenSquare: () => lenSquare, length: () => length, lengthSquare: () => lengthSquare, lerp: () => lerp, max: () => max, min: () => min, mul: () => mul2, negate: () => negate, normalize: () => normalize, scale: () => scale2, scaleAndAdd: () => scaleAndAdd, set: () => set, sub: () => sub }); function create2(x, y) { if (x == null) { x = 0; } if (y == null) { y = 0; } return [x, y]; } function copy2(out, v) { out[0] = v[0]; out[1] = v[1]; return out; } function clone3(v) { return [v[0], v[1]]; } function set(out, a, b) { out[0] = a; out[1] = b; return out; } function add(out, v1, v2) { out[0] = v1[0] + v2[0]; out[1] = v1[1] + v2[1]; return out; } function scaleAndAdd(out, v1, v2, a) { out[0] = v1[0] + v2[0] * a; out[1] = v1[1] + v2[1] * a; return out; } function sub(out, v1, v2) { out[0] = v1[0] - v2[0]; out[1] = v1[1] - v2[1]; return out; } function len(v) { return Math.sqrt(lenSquare(v)); } var length = len; function lenSquare(v) { return v[0] * v[0] + v[1] * v[1]; } var lengthSquare = lenSquare; function mul2(out, v1, v2) { out[0] = v1[0] * v2[0]; out[1] = v1[1] * v2[1]; return out; } function div(out, v1, v2) { out[0] = v1[0] / v2[0]; out[1] = v1[1] / v2[1]; return out; } function dot(v1, v2) { return v1[0] * v2[0] + v1[1] * v2[1]; } function scale2(out, v, s) { out[0] = v[0] * s; out[1] = v[1] * s; return out; } function normalize(out, v) { var 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; } function distance(v1, v2) { return Math.sqrt((v1[0] - v2[0]) * (v1[0] - v2[0]) + (v1[1] - v2[1]) * (v1[1] - v2[1])); } var dist = distance; function distanceSquare(v1, v2) { return (v1[0] - v2[0]) * (v1[0] - v2[0]) + (v1[1] - v2[1]) * (v1[1] - v2[1]); } var distSquare = distanceSquare; function negate(out, v) { out[0] = -v[0]; out[1] = -v[1]; return out; } function lerp(out, v1, v2, t) { out[0] = v1[0] + t * (v2[0] - v1[0]); out[1] = v1[1] + t * (v2[1] - v1[1]); return out; } function applyTransform(out, v, m) { var x = v[0]; var 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; } function min(out, v1, v2) { out[0] = Math.min(v1[0], v2[0]); out[1] = Math.min(v1[1], v2[1]); return out; } function max(out, v1, v2) { out[0] = Math.max(v1[0], v2[0]); out[1] = Math.max(v1[1], v2[1]); return out; } // ../node_modules/.pnpm/zrender@6.0.0/node_modules/zrender/lib/tool/color.js var color_exports = {}; __export(color_exports, { fastLerp: () => fastLerp, fastMapToColor: () => fastMapToColor, lerp: () => lerp2, lift: () => lift, liftColor: () => liftColor, lum: () => lum, mapToColor: () => mapToColor, modifyAlpha: () => modifyAlpha, modifyHSL: () => modifyHSL, parse: () => parse, parseCssFloat: () => parseCssFloat, parseCssInt: () => parseCssInt, random: () => random, stringify: () => stringify, toHex: () => toHex }); // ../node_modules/.pnpm/zrender@6.0.0/node_modules/zrender/lib/core/LRU.js var Entry = /* @__PURE__ */ function() { function Entry2(val) { this.value = val; } return Entry2; }(); var LinkedList = function() { function LinkedList2() { this._len = 0; } LinkedList2.prototype.insert = function(val) { var entry = new Entry(val); this.insertEntry(entry); return entry; }; LinkedList2.prototype.insertEntry = function(entry) { if (!this.head) { this.head = this.tail = entry; } else { this.tail.next = entry; entry.prev = this.tail; entry.next = null; this.tail = entry; } this._len++; }; LinkedList2.prototype.remove = function(entry) { var prev = entry.prev; var next = entry.next; if (prev) { prev.next = next; } else { this.head = next; } if (next) { next.prev = prev; } else { this.tail = prev; } entry.next = entry.prev = null; this._len--; }; LinkedList2.prototype.len = function() { return this._len; }; LinkedList2.prototype.clear = function() { this.head = this.tail = null; this._len = 0; }; return LinkedList2; }(); var LRU = function() { function LRU2(maxSize) { this._list = new LinkedList(); this._maxSize = 10; this._map = {}; this._maxSize = maxSize; } LRU2.prototype.put = function(key, value) { var list = this._list; var map2 = this._map; var removed = null; if (map2[key] == null) { var len2 = list.len(); var entry = this._lastRemovedEntry; if (len2 >= this._maxSize && len2 > 0) { var leastUsedEntry = list.head; list.remove(leastUsedEntry); delete map2[leastUsedEntry.key]; removed = leastUsedEntry.value; this._lastRemovedEntry = leastUsedEntry; } if (entry) { entry.value = value; } else { entry = new Entry(value); } entry.key = key; list.insertEntry(entry); map2[key] = entry; } return removed; }; LRU2.prototype.get = function(key) { var entry = this._map[key]; var list = this._list; if (entry != null) { if (entry !== list.tail) { list.remove(entry); list.insertEntry(entry); } return entry.value; } }; LRU2.prototype.clear = function() { this._list.clear(); this._map = {}; }; LRU2.prototype.len = function() { return this._list.len(); }; return LRU2; }(); var LRU_default = LRU; // ../node_modules/.pnpm/zrender@6.0.0/node_modules/zrender/lib/tool/color.js var 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) { i = Math.round(i); return i < 0 ? 0 : i > 255 ? 255 : i; } function clampCssAngle(i) { i = Math.round(i); return i < 0 ? 0 : i > 360 ? 360 : i; } function clampCssFloat(f) { return f < 0 ? 0 : f > 1 ? 1 : f; } function parseCssInt(val) { var str = val; if (str.length && str.charAt(str.length - 1) === "%") { return clampCssByte(parseFloat(str) / 100 * 255); } return clampCssByte(parseInt(str, 10)); } function parseCssFloat(val) { var str = val; if (str.length && str.charAt(str.length - 1) === "%") { return clampCssFloat(parseFloat(str) / 100); } return clampCssFloat(parseFloat(str)); } function cssHueToRgb(m1, m2, h) { 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, b, p) { return a + (b - a) * p; } function setRgba(out, r, g, b, a) { out[0] = r; out[1] = g; out[2] = b; out[3] = a; return out; } function copyRgba(out, a) { out[0] = a[0]; out[1] = a[1]; out[2] = a[2]; out[3] = a[3]; return out; } var colorCache = new LRU_default(20); var lastRemovedArr = null; function putToCache(colorStr, rgbaArr) { if (lastRemovedArr) { copyRgba(lastRemovedArr, rgbaArr); } lastRemovedArr = colorCache.put(colorStr, lastRemovedArr || rgbaArr.slice()); } function parse(colorStr, rgbaArr) { if (!colorStr) { return; } rgbaArr = rgbaArr || []; var cached = colorCache.get(colorStr); if (cached) { return copyRgba(rgbaArr, cached); } colorStr = colorStr + ""; var str = colorStr.replace(/ /g, "").toLowerCase(); if (str in kCSSColorTable) { copyRgba(rgbaArr, kCSSColorTable[str]); putToCache(colorStr, rgbaArr); return rgbaArr; } var strLen = str.length; if (str.charAt(0) === "#") { if (strLen === 4 || strLen === 5) { var iv = parseInt(str.slice(1, 4), 16); if (!(iv >= 0 && iv <= 4095)) { setRgba(rgbaArr, 0, 0, 0, 1); return; } setRgba(rgbaArr, (iv & 3840) >> 4 | (iv & 3840) >> 8, iv & 240 | (iv & 240) >> 4, iv & 15 | (iv & 15) << 4, strLen === 5 ? parseInt(str.slice(4), 16) / 15 : 1); putToCache(colorStr, rgbaArr); return rgbaArr; } else if (strLen === 7 || strLen === 9) { var iv = parseInt(str.slice(1, 7), 16); if (!(iv >= 0 && iv <= 16777215)) { setRgba(rgbaArr, 0, 0, 0, 1); return; } setRgba(rgbaArr, (iv & 16711680) >> 16, (iv & 65280) >> 8, iv & 255, strLen === 9 ? parseInt(str.slice(7), 16) / 255 : 1); putToCache(colorStr, rgbaArr); return rgbaArr; } return; } var op = str.indexOf("("); var ep = str.indexOf(")"); if (op !== -1 && ep + 1 === strLen) { var fname = str.substr(0, op); var params = str.substr(op + 1, ep - (op + 1)).split(","); var alpha = 1; switch (fname) { case "rgba": if (params.length !== 4) { return params.length === 3 ? setRgba(rgbaArr, +params[0], +params[1], +params[2], 1) : setRgba(rgbaArr, 0, 0, 0, 1); } alpha = parseCssFloat(params.pop()); 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, rgba) { var h = (parseFloat(hsla[0]) % 360 + 360) % 360 / 360; var s = parseCssFloat(hsla[1]); var l = parseCssFloat(hsla[2]); var m2 = l <= 0.5 ? l * (s + 1) : l + s - l * s; var 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]; } return rgba; } function rgba2hsla(rgba) { if (!rgba) { return; } var R = rgba[0] / 255; var G = rgba[1] / 255; var B = rgba[2] / 255; var vMin = Math.min(R, G, B); var vMax = Math.max(R, G, B); var delta = vMax - vMin; var L = (vMax + vMin) / 2; var H; var S; if (delta === 0) { H = 0; S = 0; } else { if (L < 0.5) { S = delta / (vMax + vMin); } else { S = delta / (2 - vMax - vMin); } var deltaR = ((vMax - R) / 6 + delta / 2) / delta; var deltaG = ((vMax - G) / 6 + delta / 2) / delta; var 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; } } var hsla = [H * 360, S, L]; if (rgba[3] != null) { hsla.push(rgba[3]); } return hsla; } function lift(color, level) { var colorArr = parse(color); if (colorArr) { for (var 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"); } } function toHex(color) { var colorArr = parse(color); if (colorArr) { return ((1 << 24) + (colorArr[0] << 16) + (colorArr[1] << 8) + +colorArr[2]).toString(16).slice(1); } } function fastLerp(normalizedValue, colors, out) { if (!(colors && colors.length) || !(normalizedValue >= 0 && normalizedValue <= 1)) { return; } out = out || []; var value = normalizedValue * (colors.length - 1); var leftIndex = Math.floor(value); var rightIndex = Math.ceil(value); var leftColor = colors[leftIndex]; var rightColor = colors[rightIndex]; var 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; } var fastMapToColor = fastLerp; function lerp2(normalizedValue, colors, fullOutput) { if (!(colors && colors.length) || !(normalizedValue >= 0 && normalizedValue <= 1)) { return; } var value = normalizedValue * (colors.length - 1); var leftIndex = Math.floor(value); var rightIndex = Math.ceil(value); var leftColor = parse(colors[leftIndex]); var rightColor = parse(colors[rightIndex]); var dv = value - leftIndex; var 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, leftIndex, rightIndex, value } : color; } var mapToColor = lerp2; function modifyHSL(color, h, s, l) { var colorArr = parse(color); if (color) { colorArr = rgba2hsla(colorArr); h != null && (colorArr[0] = clampCssAngle(isFunction(h) ? h(colorArr[0]) : h)); s != null && (colorArr[1] = parseCssFloat(isFunction(s) ? s(colorArr[1]) : s)); l != null && (colorArr[2] = parseCssFloat(isFunction(l) ? l(colorArr[2]) : l)); return stringify(hsla2rgba(colorArr), "rgba"); } } function modifyAlpha(color, alpha) { var colorArr = parse(color); if (colorArr && alpha != null) { colorArr[3] = clampCssFloat(alpha); return stringify(colorArr, "rgba"); } } function stringify(arrColor, type) { if (!arrColor || !arrColor.length) { return; } var colorStr = arrColor[0] + "," + arrColor[1] + "," + arrColor[2]; if (type === "rgba" || type === "hsva" || type === "hsla") { colorStr += "," + arrColor[3]; } return type + "(" + colorStr + ")"; } function lum(color, backgroundLum) { var arr = parse(color); return arr ? (0.299 * arr[0] + 0.587 * arr[1] + 0.114 * arr[2]) * arr[3] / 255 + (1 - arr[3]) * backgroundLum : 0; } function random() { return stringify([ Math.round(Math.random() * 255), Math.round(Math.random() * 255), Math.round(Math.random() * 255) ], "rgb"); } var liftedColorCache = new LRU_default(100); function liftColor(color) { if (isString(color)) { var liftedColor = liftedColorCache.get(color); if (!liftedColor) { liftedColor = lift(color, -0.1); liftedColorCache.put(color, liftedColor); } return liftedColor; } else if (isGradientObject(color)) { var ret = extend({}, color); ret.colorStops = map(color.colorStops, function(stop2) { return { offset: stop2.offset, color: lift(stop2.color, -0.1) }; }); return ret; } return color; } // ../node_modules/.pnpm/zrender@6.0.0/node_modules/zrender/lib/zrender.js var zrender_exports = {}; __export(zrender_exports, { dispose: () => dispose, disposeAll: () => disposeAll, getElementSSRData: () => getElementSSRData, getInstance: () => getInstance, init: () => init, registerPainter: () => registerPainter, registerSSRDataGetter: () => registerSSRDataGetter, version: () => version }); // ../node_modules/.pnpm/tslib@2.3.0/node_modules/tslib/tslib.es6.js var extendStatics = function(d, b) { extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(d2, b2) { d2.__proto__ = b2; } || function(d2, b2) { for (var p in b2) if (Object.prototype.hasOwnProperty.call(b2, p)) d2[p] = b2[p]; }; return extendStatics(d, b); }; 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 __()); } // ../node_modules/.pnpm/zrender@6.0.0/node_modules/zrender/lib/mixin/Draggable.js var Param = /* @__PURE__ */ function() { function Param2(target, e) { this.target = target; this.topTarget = e && e.topTarget; } return Param2; }(); var Draggable = function() { function Draggable2(handler) { this.handler = handler; handler.on("mousedown", this._dragStart, this); handler.on("mousemove", this._drag, this); handler.on("mouseup", this._dragEnd, this); } Draggable2.prototype._dragStart = function(e) { var draggingTarget = e.target; 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); } }; Draggable2.prototype._drag = function(e) { var draggingTarget = this._draggingTarget; if (draggingTarget) { var x = e.offsetX; var y = e.offsetY; var dx = x - this._x; var 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); var dropTarget = this.handler.findHover(x, y, draggingTarget).target; var 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); } } } }; Draggable2.prototype._dragEnd = function(e) { var 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; }; return Draggable2; }(); var Draggable_default = Draggable; // ../node_modules/.pnpm/zrender@6.0.0/node_modules/zrender/lib/core/Eventful.js var Eventful = function() { function Eventful2(eventProcessors) { if (eventProcessors) { this._$eventProcessor = eventProcessors; } } Eventful2.prototype.on = function(event, query, handler, context) { if (!this._$handlers) { this._$handlers = {}; } var _h = this._$handlers; if (typeof query === "function") { context = handler; handler = query; query = null; } if (!handler || !event) { return this; } var eventProcessor = this._$eventProcessor; if (query != null && eventProcessor && eventProcessor.normalizeQuery) { query = eventProcessor.normalizeQuery(query); } if (!_h[event]) { _h[event] = []; } for (var i = 0; i < _h[event].length; i++) { if (_h[event][i].h === handler) { return this; } } var wrap = { h: handler, query, ctx: context || this, callAtLast: handler.zrEventfulCallAtLast }; var lastIndex = _h[event].length - 1; var lastWrap = _h[event][lastIndex]; lastWrap && lastWrap.callAtLast ? _h[event].splice(lastIndex, 0, wrap) : _h[event].push(wrap); return this; }; Eventful2.prototype.isSilent = function(eventName) { var _h = this._$handlers; return !_h || !_h[eventName] || !_h[eventName].length; }; Eventful2.prototype.off = function(eventType, handler) { var _h = this._$handlers; if (!_h) { return this; } if (!eventType) { this._$handlers = {}; return this; } if (handler) { if (_h[eventType]) { var newList = []; for (var i = 0, l = _h[eventType].length; i < l; i++) { if (_h[eventType][i].h !== handler) { newList.push(_h[eventType][i]); } } _h[eventType] = newList; } if (_h[eventType] && _h[eventType].length === 0) { delete _h[eventType]; } } else { delete _h[eventType]; } return this; }; Eventful2.prototype.trigger = function(eventType) { var args = []; for (var _i = 1; _i < arguments.length; _i++) { args[_i - 1] = arguments[_i]; } if (!this._$handlers) { return this; } var _h = this._$handlers[eventType]; var eventProcessor = this._$eventProcessor; if (_h) { var argLen = args.length; var len2 = _h.length; for (var i = 0; i < len2; i++) { var hItem = _h[i]; if (eventProcessor && eventProcessor.filter && hItem.query != null && !eventProcessor.filter(eventType, hItem.query)) { continue; } switch (argLen) { case 0: hItem.h.call(hItem.ctx); break; case 1: hItem.h.call(hItem.ctx, args[0]); break; case 2: hItem.h.call(hItem.ctx, args[0], args[1]); break; default: hItem.h.apply(hItem.ctx, args); break; } } } eventProcessor && eventProcessor.afterTrigger && eventProcessor.afterTrigger(eventType); return this; }; Eventful2.prototype.triggerWithContext = function(type) { var args = []; for (var _i = 1; _i < arguments.length; _i++) { args[_i - 1] = arguments[_i]; } if (!this._$handlers) { return this; } var _h = this._$handlers[type]; var eventProcessor = this._$eventProcessor; if (_h) { var argLen = args.length; var ctx = args[argLen - 1]; var len2 = _h.length; for (var i = 0; i < len2; i++) { var hItem = _h[i]; if (eventProcessor && eventProcessor.filter && hItem.query != null && !eventProcessor.filter(type, hItem.query)) { continue; } switch (argLen) { case 0: hItem.h.call(ctx); break; case 1: hItem.h.call(ctx, args[0]); break; case 2: hItem.h.call(ctx, args[0], args[1]); break; default: hItem.h.apply(ctx, args.slice(1, argLen - 1)); break; } } } eventProcessor && eventProcessor.afterTrigger && eventProcessor.afterTrigger(type); return this; }; return Eventful2; }(); var Eventful_default = Eventful; // ../node_modules/.pnpm/zrender@6.0.0/node_modules/zrender/lib/core/fourPointsTransform.js var LN2 = Math.log(2); function determinant(rows, rank, rowStart, rowMask, colMask, detCache) { var cacheKey = rowMask + "-" + colMask; var fullRank = rows.length; if (detCache.hasOwnProperty(cacheKey)) { return detCache[cacheKey]; } if (rank === 1) { var colStart = Math.round(Math.log((1 << fullRank) - 1 & ~colMask) / LN2); return rows[rowStart][colStart]; } var subRowMask = rowMask | 1 << rowStart; var subRowStart = rowStart + 1; while (rowMask & 1 << subRowStart) { subRowStart++; } var sum = 0; for (var j = 0, colLocalIdx = 0; j < fullRank; j++) { var colTag = 1 << j; if (!(colTag & colMask)) { sum += (colLocalIdx % 2 ? -1 : 1) * rows[rowStart][j] * determinant(rows, rank - 1, subRowStart, subRowMask, colMask | colTag, detCache); colLocalIdx++; } } detCache[cacheKey] = sum; return sum; } function buildTransformer(src, dest) { var 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]] ]; var detCache = {}; var det = determinant(mA, 8, 0, 0, 0, detCache); if (det === 0) { return; } var vh = []; for (var i = 0; i < 8; i++) { for (var j = 0; j < 8; j++) { vh[j] == null && (vh[j] = 0); vh[j] += ((i + j) % 2 ? -1 : 1) * determinant(mA, 7, i === 0 ? 1 : 0, 1 << i, 1 << j, detCache) / det * dest[i]; } } return function(out, srcPointX, srcPointY) { var 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; }; } // ../node_modules/.pnpm/zrender@6.0.0/node_modules/zrender/lib/core/dom.js var EVENT_SAVED_PROP = "___zrEVENTSAVED"; var _calcOut = []; function transformLocalCoord(out, elFrom, elTarget, inX, inY) { return transformCoordWithViewport(_calcOut, elFrom, inX, inY, true) && transformCoordWithViewport(out, elTarget, _calcOut[0], _calcOut[1]); } function transformLocalCoordClear(elFrom, elTarget) { elFrom && dealClear(elFrom); elTarget && dealClear(elTarget); function dealClear(el) { var saved = el[EVENT_SAVED_PROP]; if (saved) { saved.clearMarkers && saved.clearMarkers(); delete el[EVENT_SAVED_PROP]; } } } function transformCoordWithViewport(out, el, inX, inY, inverse) { if (el.getBoundingClientRect && env_default.domSupported && !isCanvasEl(el)) { var saved = el[EVENT_SAVED_PROP] || (el[EVENT_SAVED_PROP] = {}); var markers = prepareCoordMarkers(el, saved); var transformer = preparePointerTransformer(markers, saved, inverse); if (transformer) { transformer(out, inX, inY); return true; } } return false; } function prepareCoordMarkers(el, saved) { var markers = saved.markers; if (markers) { return markers; } markers = saved.markers = []; var propLR = ["left", "right"]; var propTB = ["top", "bottom"]; for (var i = 0; i < 4; i++) { var marker = document.createElement("div"); var stl = marker.style; var idxLR = i % 2; var idxTB = (i >> 1) % 2; stl.cssText = [ "position: absolute", "visibility: hidden", "padding: 0", "margin: 0", "border-width: 0", "user-select: none", "width:0", "height:0", propLR[idxLR] + ":0", propTB[idxTB] + ":0", propLR[1 - idxLR] + ":auto", propTB[1 - idxTB] + ":auto", "" ].join("!important;"); el.appendChild(marker); markers.push(marker); } saved.clearMarkers = function() { each(markers, function(marker2) { marker2.parentNode && marker2.parentNode.removeChild(marker2); }); }; return markers; } function preparePointerTransformer(markers, saved, inverse) { var transformerName = inverse ? "invTrans" : "trans"; var transformer = saved[transformerName]; var oldSrcCoords = saved.srcCoords; var srcCoords = []; var destCoords = []; var oldCoordTheSame = true; for (var i = 0; i < 4; i++) { var rect = markers[i].getBoundingClientRect(); var ii = 2 * i; var x = rect.left; var y = rect.top; srcCoords.push(x, y); oldCoordTheSame = oldCoordTheSame && oldSrcCoords && x === oldSrcCoords[ii] && y === oldSrcCoords[ii + 1]; destCoords.push(markers[i].offsetLeft, markers[i].offsetTop); } return oldCoordTheSame && transformer ? transformer : (saved.srcCoords = srcCoords, saved[transformerName] = inverse ? buildTransformer(destCoords, srcCoords) : buildTransformer(srcCoords, destCoords)); } function isCanvasEl(el) { return el.nodeName.toUpperCase() === "CANVAS"; } var replaceReg = /([&<>"'])/g; var replaceMap = { "&": "&", "<": "<", ">": ">", '"': """, "'": "'" }; function encodeHTML(source) { return source == null ? "" : (source + "").replace(replaceReg, function(str, c) { return replaceMap[c]; }); } // ../node_modules/.pnpm/zrender@6.0.0/node_modules/zrender/lib/core/event.js var MOUSE_EVENT_REG = /^(?:mouse|pointer|contextmenu|drag|drop)|click/; var _calcOut2 = []; var firefoxNotSupportOffsetXY = env_default.browser.firefox && +env_default.browser.version.split(".")[0] < 39; function clientToLocal(el, e, out, calculate) { out = out || {}; if (calculate) { calculateZrXY(el, e, out); } else if (firefoxNotSupportOffsetXY && e.layerX != null && e.layerX !== e.offsetX) { out.zrX = e.layerX; out.zrY = e.layerY; } else if (e.offsetX != null) { out.zrX = e.offsetX; out.zrY = e.offsetY; } else { calculateZrXY(el, e, out); } return out; } function calculateZrXY(el, e, out) { if (env_default.domSupported && el.getBoundingClientRect) { var ex = e.clientX; var ey = e.clientY; if (isCanvasEl(el)) { var box = el.getBoundingClientRect(); out.zrX = ex - box.left; out.zrY = ey - box.top; return; } else { if (transformCoordWithViewport(_calcOut2, el, ex, ey)) { out.zrX = _calcOut2[0]; out.zrY = _calcOut2[1]; return; } } } out.zrX = out.zrY = 0; } function getNativeEvent(e) { return e || window.event; } function normalizeEvent(el, e, calculate) { e = getNativeEvent(e); if (e.zrX != null) { return e; } var eventType = e.type; var isTouch = eventType && eventType.indexOf("touch") >= 0; if (!isTouch) { clientToLocal(el, e, e, calculate); var wheelDelta = getWheelDeltaMayPolyfill(e); e.zrDelta = wheelDelta ? wheelDelta / 120 : -(e.detail || 0) / 3; } else { var touch = eventType !== "touchend" ? e.targetTouches[0] : e.changedTouches[0]; touch && clientToLocal(el, touch, e, calculate); } var button = e.button; if (e.which == null && button !== void 0 && MOUSE_EVENT_REG.test(e.type)) { e.which = button & 1 ? 1 : button & 2 ? 3 : button & 4 ? 2 : 0; } return e; } function getWheelDeltaMayPolyfill(e) { var rawWheelDelta = e.wheelDelta; if (rawWheelDelta) { return rawWheelDelta; } var deltaX = e.deltaX; var deltaY = e.deltaY; if (deltaX == null || deltaY == null) { return rawWheelDelta; } var delta = deltaY !== 0 ? Math.abs(deltaY) : Math.abs(deltaX); var sign = deltaY > 0 ? -1 : deltaY < 0 ? 1 : deltaX > 0 ? -1 : 1; return 3 * delta * sign; } function addEventListener(el, name, handler, opt) { el.addEventListener(name, handler, opt); } function removeEventListener(el, name, handler, opt) { el.removeEventListener(name, handler, opt); } var stop = function(e) { e.preventDefault(); e.stopPropagation(); e.cancelBubble = true; }; function isMiddleOrRightButtonOnMouseUpDown(e) { return e.which === 2 || e.which === 3; } // ../node_modules/.pnpm/zrender@6.0.0/node_modules/zrender/lib/core/GestureMgr.js var GestureMgr = function() { function GestureMgr2() { this._track = []; } GestureMgr2.prototype.recognize = function(event, target, root) { this._doTrack(event, target, root); return this._recognize(event); }; GestureMgr2.prototype.clear = function() { this._track.length = 0; return this; }; GestureMgr2.prototype._doTrack = function(event, target, root) { var touches = event.touches; if (!touches) { return; } var trackItem = { points: [], touches: [], target, event }; for (var i = 0, len2 = touches.length; i < len2; i++) { var touch = touches[i]; var pos = clientToLocal(root, touch, {}); trackItem.points.push([pos.zrX, pos.zrY]); trackItem.touches.push(touch); } this._track.push(trackItem); }; GestureMgr2.prototype._recognize = function(event) { for (var eventName in recognizers) { if (recognizers.hasOwnProperty(eventName)) { var gestureInfo = recognizers[eventName](this._track, event); if (gestureInfo) { return gestureInfo; } } } }; return GestureMgr2; }(); function dist2(pointPair) { var dx = pointPair[1][0] - pointPair[0][0]; var dy = pointPair[1][1] - pointPair[0][1]; return Math.sqrt(dx * dx + dy * dy); } function center(pointPair) { return [ (pointPair[0][0] + pointPair[1][0]) / 2, (pointPair[0][1] + pointPair[1][1]) / 2 ]; } var recognizers = { pinch: function(tracks, event) { var trackLen = tracks.length; if (!trackLen) { return; } var pinchEnd = (tracks[trackLen - 1] || {}).points; var pinchPre = (tracks[trackLen - 2] || {}).points || pinchEnd; if (pinchPre && pinchPre.length > 1 && pinchEnd && pinchEnd.length > 1) { var pinchScale = dist2(pinchEnd) / dist2(pinchPre); !isFinite(pinchScale) && (pinchScale = 1); event.pinchScale = pinchScale; var pinchCenter = center(pinchEnd); event.pinchX = pinchCenter[0]; event.pinchY = pinchCenter[1]; return { type: "pinch", target: tracks[0].target, event }; } } }; // ../node_modules/.pnpm/zrender@6.0.0/node_modules/zrender/lib/core/Point.js var Point = function() { function Point2(x, y) { this.x = x || 0; this.y = y || 0; } Point2.prototype.copy = function(other) { this.x = other.x; this.y = other.y; return this; }; Point2.prototype.clone = function() { return new Point2(this.x, this.y); }; Point2.prototype.set = function(x, y) { this.x = x; this.y = y; return this; }; Point2.prototype.equal = function(other) { return other.x === this.x && other.y === this.y; }; Point2.prototype.add = function(other) { this.x += other.x; this.y += other.y; return this; }; Point2.prototype.scale = function(scalar) { this.x *= scalar; this.y *= scalar; }; Point2.prototype.scaleAndAdd = function(other, scalar) { this.x += other.x * scalar; this.y += other.y * scalar; }; Point2.prototype.sub = function(other) { this.x -= other.x; this.y -= other.y; return this; }; Point2.prototype.dot = function(other) { return this.x * other.x + this.y * other.y; }; Point2.prototype.len = function() { return Math.sqrt(this.x * this.x + this.y * this.y); }; Point2.prototype.lenSquare = function() { return this.x * this.x + this.y * this.y; }; Point2.prototype.normalize = function() { var len2 = this.len(); this.x /= len2; this.y /= len2; return this; }; Point2.prototype.distance = function(other) { var dx = this.x - other.x; var dy = this.y - other.y; return Math.sqrt(dx * dx + dy * dy); }; Point2.prototype.distanceSquare = function(other) { var dx = this.x - other.x; var dy = this.y - other.y; return dx * dx + dy * dy; }; Point2.prototype.negate = function() { this.x = -this.x; this.y = -this.y; return this; }; Point2.prototype.transform = function(m) { if (!m) { return; } var x = this.x; var y = this.y; this.x = m[0] * x + m[2] * y + m[4]; this.y = m[1] * x + m[3] * y + m[5]; return this; }; Point2.prototype.toArray = function(out) { out[0] = this.x; out[1] = this.y; return out; }; Point2.prototype.fromArray = function(input) { this.x = input[0]; this.y = input[1]; }; Point2.set = function(p, x, y) { p.x = x; p.y = y; }; Point2.copy = function(p, p2) { p.x = p2.x; p.y = p2.y; }; Point2.len = function(p) { return Math.sqrt(p.x * p.x + p.y * p.y); }; Point2.lenSquare = function(p) { return p.x * p.x + p.y * p.y; }; Point2.dot = function(p0, p1) { return p0.x * p1.x + p0.y * p1.y; }; Point2.add = function(out, p0, p1) { out.x = p0.x + p1.x; out.y = p0.y + p1.y; }; Point2.sub = function(out, p0, p1) { out.x = p0.x - p1.x; out.y = p0.y - p1.y; }; Point2.scale = function(out, p0, scalar) { out.x = p0.x * scalar; out.y = p0.y * scalar; }; Point2.scaleAndAdd = function(out, p0, p1, scalar) { out.x = p0.x + p1.x * scalar; out.y = p0.y + p1.y * scalar; }; Point2.lerp = function(out, p0, p1, t) { var onet = 1 - t; out.x = onet * p0.x + t * p1.x; out.y = onet * p0.y + t * p1.y; }; return Point2; }(); var Point_default = Point; // ../node_modules/.pnpm/zrender@6.0.0/node_modules/zrender/lib/core/BoundingRect.js var mathMin = Math.min; var mathMax = Math.max; var mathAbs = Math.abs; var XY = ["x", "y"]; var WH = ["width", "height"]; var lt = new Point_default(); var rb = new Point_default(); var lb = new Point_default(); var rt = new Point_default(); var _intersectCtx = createIntersectContext(); var _minTv = _intersectCtx.minTv; var _maxTv = _intersectCtx.maxTv; var _lenMinMax = [0, 0]; var BoundingRect = function() { function BoundingRect2(x, y, width, height) { BoundingRect2.set(this, x, y, width, height); } BoundingRect2.set = function(target, x, y, width, height) { if (width < 0) { x = x + width; width = -width; } if (height < 0) { y = y + height; height = -height; } target.x = x; target.y = y; target.width = width; target.height = height; return target; }; BoundingRect2.prototype.union = function(other) { var x = mathMin(other.x, this.x); var y = mathMin(other.y, this.y); if (isFinite(this.x) && isFinite(this.width)) { this.width = mathMax(other.x + other.width, this.x + this.width) - x; } else { this.width = other.width; } if (isFinite(this.y) && isFinite(this.height)) { this.height = mathMax(other.y + other.height, this.y + this.height) - y; } else { this.height = other.height; } this.x = x; this.y = y; }; BoundingRect2.prototype.applyTransform = function(m) { BoundingRect2.applyTransform(this, this, m); }; BoundingRect2.prototype.calculateTransform = function(b) { var a = this; var sx = b.width / a.width; var sy = b.height / a.height; var m = create(); translate(m, m, [-a.x, -a.y]); scale(m, m, [sx, sy]); translate(m, m, [b.x, b.y]); return m; }; BoundingRect2.prototype.intersect = function(b, mtv, opt) { return BoundingRect2.intersect(this, b, mtv, opt); }; BoundingRect2.intersect = function(a, b, mtv, opt) { if (mtv) { Point_default.set(mtv, 0, 0); } var outIntersectRect = opt && opt.outIntersectRect || null; var clamp = opt && opt.clamp; if (outIntersectRect) { outIntersectRect.x = outIntersectRect.y = outIntersectRect.width = outIntersectRect.height = NaN; } if (!a || !b) { return false; } if (!(a instanceof BoundingRect2)) { a = BoundingRect2.set(_tmpIntersectA, a.x, a.y, a.width, a.height); } if (!(b instanceof BoundingRect2)) { b = BoundingRect2.set(_tmpIntersectB, b.x, b.y, b.width, b.height); } var useMTV = !!mtv; _intersectCtx.reset(opt, useMTV); var touchThreshold = _intersectCtx.touchThreshold; var ax0 = a.x + touchThreshold; var ax1 = a.x + a.width - touchThreshold; var ay0 = a.y + touchThreshold; var ay1 = a.y + a.height - touchThreshold; var bx0 = b.x + touchThreshold; var bx1 = b.x + b.width - touchThreshold; var by0 = b.y + touchThreshold; var by1 = b.y + b.height - touchThreshold; if (ax0 > ax1 || ay0 > ay1 || bx0 > bx1 || by0 > by1) { return false; } var overlap = !(ax1 < bx0 || bx1 < ax0 || ay1 < by0 || by1 < ay0); if (useMTV || outIntersectRect) { _lenMinMax[0] = Infinity; _lenMinMax[1] = 0; intersectOneDim(ax0, ax1, bx0, bx1, 0, useMTV, outIntersectRect, clamp); intersectOneDim(ay0, ay1, by0, by1, 1, useMTV, outIntersectRect, clamp); if (useMTV) { Point_default.copy(mtv, overlap ? _intersectCtx.useDir ? _intersectCtx.dirMinTv : _minTv : _maxTv); } } return overlap; }; BoundingRect2.contain = function(rect, x, y) { return x >= rect.x && x <= rect.x + rect.width && y >= rect.y && y <= rect.y + rect.height; }; BoundingRect2.prototype.contain = function(x, y) { return BoundingRect2.contain(this, x, y); }; BoundingRect2.prototype.clone = function() { return new BoundingRect2(this.x, this.y, this.width, this.height); }; BoundingRect2.prototype.copy = function(other) { BoundingRect2.copy(this, other); }; BoundingRect2.prototype.plain = function() { return { x: this.x, y: this.y, width: this.width, height: this.height }; }; BoundingRect2.prototype.isFinite = function() { return isFinite(this.x) && isFinite(this.y) && isFinite(this.width) && isFinite(this.height); }; BoundingRect2.prototype.isZero = function() { return this.width === 0 || this.height === 0; }; BoundingRect2.create = function(rect) { return new BoundingRect2(rect.x, rect.y, rect.width, rect.height); }; BoundingRect2.copy = function(target, source) { target.x = source.x; target.y = source.y; target.width = source.width; target.height = source.height; return target; }; BoundingRect2.applyTransform = function(target, source, m) { if (!m) { if (target !== source) { BoundingRect2.copy(target, source); } return; } if (m[1] < 1e-5 && m[1] > -1e-5 && m[2] < 1e-5 && m[2] > -1e-5) { var sx = m[0]; var sy = m[3]; var tx = m[4]; var ty = m[5]; target.x = source.x * sx + tx; target.y = source.y * sy + ty; target.width = source.width * sx; target.height = source.height * sy; if (target.width < 0) { target.x += target.width; target.width = -target.width; } if (target.height < 0) { target.y += target.height; target.height = -target.height; } return; } lt.x = lb.x = source.x; lt.y = rt.y = source.y; rb.x = rt.x = source.x + source.width; rb.y = lb.y = source.y + source.height; lt.transform(m); rt.transform(m); rb.transform(m); lb.transform(m); target.x = mathMin(lt.x, rb.x, lb.x, rt.x); target.y = mathMin(lt.y, rb.y, lb.y, rt.y); var maxX = mathMax(lt.x, rb.x, lb.x, rt.x); var maxY = mathMax(lt.y, rb.y, lb.y, rt.y); target.width = maxX - target.x; target.height = maxY - target.y; }; return BoundingRect2; }(); var _tmpIntersectA = new BoundingRect(0, 0, 0, 0); var _tmpIntersectB = new BoundingRect(0, 0, 0, 0); function intersectOneDim(a0, a1, b0, b1, updateDimIdx, useMTV, outIntersectRect, clamp) { var d0 = mathAbs(a1 - b0); var d1 = mathAbs(b1 - a0); var d01min = mathMin(d0, d1); var updateDim = XY[updateDimIdx]; var zeroDim = XY[1 - updateDimIdx]; var wh = WH[updateDimIdx]; if (a1 < b0 || b1 < a0) { if (d0 < d1) { if (useMTV) { _maxTv[updateDim] = -d0; } if (clamp) { outIntersectRect[updateDim] = a1; outIntersectRect[wh] = 0; } } else { if (useMTV) { _maxTv[updateDim] = d1; } if (clamp) { outIntersectRect[updateDim] = a0; outIntersectRect[wh] = 0; } } } else { if (outIntersectRect) { outIntersectRect[updateDim] = mathMax(a0, b0); outIntersectRect[wh] = mathMin(a1, b1) - outIntersectRect[updateDim]; } if (useMTV) { if (d01min < _lenMinMax[0] || _intersectCtx.useDir) { _lenMinMax[0] = mathMin(d01min, _lenMinMax[0]); if (d0 < d1 || !_intersectCtx.bidirectional) { _minTv[updateDim] = d0; _minTv[zeroDim] = 0; if (_intersectCtx.useDir) { _intersectCtx.calcDirMTV(); } } if (d0 >= d1 || !_intersectCtx.bidirectional) { _minTv[updateDim] = -d1; _minTv[zeroDim] = 0; if (_intersectCtx.useDir) { _intersectCtx.calcDirMTV(); } } } } } } function createIntersectContext() { var _direction = 0; var _dirCheckVec = new Point_default(); var _dirTmp = new Point_default(); var _ctx = { minTv: new Point_default(), maxTv: new Point_default(), useDir: false, dirMinTv: new Point_default(), touchThreshold: 0, bidirectional: true, negativeSize: false, reset: function(opt, useMTV) { _ctx.touchThreshold = 0; if (opt && opt.touchThreshold != null) { _ctx.touchThreshold = mathMax(0, opt.touchThreshold); } _ctx.negativeSize = false; if (!useMTV) { return; } _ctx.minTv.set(Infinity, Infinity); _ctx.maxTv.set(0, 0); _ctx.useDir = false; if (opt && opt.direction != null) { _ctx.useDir = true; _ctx.dirMinTv.copy(_ctx.minTv); _dirTmp.copy(_ctx.minTv); _direction = opt.direction; _ctx.bidirectional = opt.bidirectional == null || !!opt.bidirectional; if (!_ctx.bidirectional) { _dirCheckVec.set(Math.cos(_direction), Math.sin(_direction)); } } }, calcDirMTV: function() { var minTv = _ctx.minTv; var dirMinTv = _ctx.dirMinTv; var squareMag = minTv.y * minTv.y + minTv.x * minTv.x; var dirSin = Math.sin(_direction); var dirCos = Math.cos(_direction); var dotProd = dirSin * minTv.y + dirCos * minTv.x; if (nearZero(dotProd)) { if (nearZero(minTv.x) && nearZero(minTv.y)) { dirMinTv.set(0, 0); } return; } _dirTmp.x = squareMag * dirCos / dotProd; _dirTmp.y = squareMag * dirSin / dotProd; if (nearZero(_dirTmp.x) && nearZero(_dirTmp.y)) { dirMinTv.set(0, 0); return; } if ((_ctx.bidirectional || _dirCheckVec.dot(_dirTmp) > 0) && _dirTmp.len() < dirMinTv.len()) { dirMinTv.copy(_dirTmp); } } }; function nearZero(val) { return mathAbs(val) < 1e-10; } return _ctx; } var BoundingRect_default = BoundingRect; // ../node_modules/.pnpm/zrender@6.0.0/node_modules/zrender/lib/Handler.js var SILENT = "silent"; function makeEventPacket(eveType, targetInfo, event) { return { type: eveType, event, target: targetInfo.target, topTarget: targetInfo.topTarget, cancelBubble: false, offsetX: event.zrX, offsetY: event.zrY, gestureEvent: event.gestureEvent, pinchX: event.pinchX, pinchY: event.pinchY, pinchScale: event.pinchScale, wheelDelta: event.zrDelta, zrByTouch: event.zrByTouch, which: event.which, stop: stopEvent }; } function stopEvent() { stop(this.event); } var EmptyProxy = function(_super) { __extends(EmptyProxy2, _super); function EmptyProxy2() { var _this = _super !== null && _super.apply(this, arguments) || this; _this.handler = null; return _this; } EmptyProxy2.prototype.dispose = function() { }; EmptyProxy2.prototype.setCursor = function() { }; return EmptyProxy2; }(Eventful_default); var HoveredResult = /* @__PURE__ */ function() { function HoveredResult2(x, y) { this.x = x; this.y = y; } return HoveredResult2; }(); var handlerNames = [ "click", "dblclick", "mousewheel", "mouseout", "mouseup", "mousedown", "mousemove", "contextmenu" ]; var tmpRect = new BoundingRect_default(0, 0, 0, 0); var Handler = function(_super) { __extends(Handler2, _super); function Handler2(storage, painter, proxy, painterRoot, pointerSize) { var _this = _super.call(this) || this; _this._hovered = new HoveredResult(0, 0); _this.storage = storage; _this.painter = painter; _this.painterRoot = painterRoot; _this._pointerSize = pointerSize; proxy = proxy || new EmptyProxy(); _this.proxy = null; _this.setHandlerProxy(proxy); _this._draggingMgr = new Draggable_default(_this); return _this; } Handler2.prototype.setHandlerProxy = function(proxy) { if (this.proxy) { this.proxy.dispose(); } if (proxy) { each(handlerNames, function(name) { proxy.on && proxy.on(name, this[name], this); }, this); proxy.handler = this; } this.proxy = proxy; }; Handler2.prototype.mousemove = function(event) { var x = event.zrX; var y = event.zrY; var isOutside = isOutsideBoundary(this, x, y); var lastHovered = this._hovered; var lastHoveredTarget = lastHovered.target; if (lastHoveredTarget && !lastHoveredTarget.__zr) { lastHovered = this.findHover(lastHovered.x, lastHovered.y); lastHoveredTarget = lastHovered.target; } var hovered = this._hovered = isOutside ? new HoveredResult(x, y) : this.findHover(x, y); var hoveredTarget = hovered.target; var proxy = this.proxy; proxy.setCursor && proxy.setCursor(hoveredTarget ? hoveredTarget.cursor : "default"); if (lastHoveredTarget && hoveredTarget !== lastHoveredTarget) { this.dispatchToElement(lastHovered, "mouseout", event); } this.dispatchToElement(hovered, "mousemove", event); if (hoveredTarget && hoveredTarget !== lastHoveredTarget) { this.dispatchToElement(hovered, "mouseover", event); } }; Handler2.prototype.mouseout = function(event) { var eventControl = event.zrEventControl; if (eventControl !== "only_globalout") { this.dispatchToElement(this._hovered, "mouseout", event); } if (eventControl !== "no_globalout") { this.trigger("globalout", { type: "globalout", event }); } }; Handler2.prototype.resize = function() { this._hovered = new HoveredResult(0, 0); }; Handler2.prototype.dispatch = function(eventName, eventArgs) { var handler = this[eventName]; handler && handler.call(this, eventArgs); }; Handler2.prototype.dispose = function() { this.proxy.dispose(); this.storage = null; this.proxy = null; this.painter = null; }; Handler2.prototype.setCursorStyle = function(cursorStyle) { var proxy = this.proxy; proxy.setCursor && proxy.setCursor(cursorStyle); }; Handler2.prototype.dispatchToElement = function(targetInfo, eventName, event) { targetInfo = targetInfo || {}; var el = targetInfo.target; if (el && el.silent) { return; } var eventKey = "on" + eventName; var eventPacket = makeEventPacket(eventName, targetInfo, event); while (el) { el[eventKey] && (eventPacket.cancelBubble = !!el[eventKey].call(el, eventPacket)); el.trigger(eventName, eventPacket); el = el.__hostTarget ? el.__hostTarget : el.parent; if (eventPacket.cancelBubble) { break; } } if (!eventPacket.cancelBubble) { this.trigger(eventName, eventPacket); if (this.painter && this.painter.eachOtherLayer) { this.painter.eachOtherLayer(function(layer) { if (typeof layer[eventKey] === "function") { layer[eventKey].call(layer, eventPacket); } if (layer.trigger) { layer.trigger(eventName, eventPacket); } }); } } }; Handler2.prototype.findHover = function(x, y, exclude) { var list = this.storage.getDisplayList(); var out = new HoveredResult(x, y); setHoverTarget(list, out, x, y, exclude); if (this._pointerSize && !out.target) { var candidates = []; var pointerSize = this._pointerSize; var targetSizeHalf = pointerSize / 2; var pointerRect = new BoundingRect_default(x - targetSizeHalf, y - targetSizeHalf, pointerSize, pointerSize); for (var i = list.length - 1; i >= 0; i--) { var el = list[i]; if (el !== exclude && !el.ignore && !el.ignoreCoarsePointer && (!el.parent || !el.parent.ignoreCoarsePointer)) { tmpRect.copy(el.getBoundingRect()); if (el.transform) { tmpRect.applyTransform(el.transform); } if (tmpRect.intersect(pointerRect)) { candidates.push(el); } } } if (candidates.length) { var rStep = 4; var thetaStep = Math.PI / 12; var PI26 = Math.PI * 2; for (var r = 0; r < targetSizeHalf; r += rStep) { for (var theta = 0; theta < PI26; theta += thetaStep) { var x1 = x + r * Math.cos(theta); var y1 = y + r * Math.sin(theta); setHoverTarget(candidates, out, x1, y1, exclude); if (out.target) { return out; } } } } } return out; }; Handler2.prototype.processGesture = function(event, stage) { if (!this._gestureMgr) { this._gestureMgr = new GestureMgr(); } var gestureMgr = this._gestureMgr; stage === "start" && gestureMgr.clear(); var gestureInfo = gestureMgr.recognize(event, this.findHover(event.zrX, event.zrY, null).target, this.proxy.dom); stage === "end" && gestureMgr.clear(); if (gestureInfo) { var type = gestureInfo.type; event.gestureEvent = type; var res = new HoveredResult(); res.target = gestureInfo.target; this.dispatchToElement(res, type, gestureInfo.event); } }; return Handler2; }(Eventful_default); each(["click", "mousedown", "mouseup", "mousewheel", "dblclick", "contextmenu"], function(name) { Handler.prototype[name] = function(event) { var x = event.zrX; var y = event.zrY; var isOutside = isOutsideBoundary(this, x, y); var hovered; var hoveredTarget; if (name !== "mouseup" || !isOutside) { hovered = this.findHover(x, y); hoveredTarget = hovered.target; } if (name === "mousedown") { this._downEl = hoveredTarget; this._downPoint = [event.zrX, event.zrY]; this._upEl = hoveredTarget; } else if (name === "mouseup") { this._upEl = hoveredTarget; } else if (name === "click") { if (this._downEl !== this._upEl || !this._downPoint || dist(this._downPoint, [event.zrX, event.zrY]) > 4) { return; } this._downPoint = null; } this.dispatchToElement(hovered, name, event); }; }); function isHover(displayable, x, y) { if (displayable[displayable.rectHover ? "rectContain" : "contain"](x, y)) { var el = displayable; var isSilent = void 0; var ignoreClip = false; while (el) { if (el.ignoreClip) { ignoreClip = true; } if (!ignoreClip) { var clipPath = el.getClipPath(); if (clipPath && !clipPath.contain(x, y)) { return false; } } if (el.silent) { isSilent = true; } var hostEl = el.__hostTarget; el = hostEl ? el.ignoreHostSilent ? null : hostEl : el.parent; } return isSilent ? SILENT : true; } return false; } function setHoverTarget(list, out, x, y, exclude) { for (var i = list.length - 1; i >= 0; i--) { var el = list[i]; var hoverCheckResult = void 0; if (el !== exclude && !el.ignore && (hoverCheckResult = isHover(el, x, y))) { !out.topTarget && (out.topTarget = el); if (hoverCheckResult !== SILENT) { out.target = el; break; } } } } function isOutsideBoundary(handlerInstance, x, y) { var painter = handlerInstance.painter; return x < 0 || x > painter.getWidth() || y < 0 || y > painter.getHeight(); } var Handler_default = Handler; // ../node_modules/.pnpm/zrender@6.0.0/node_modules/zrender/lib/core/timsort.js var DEFAULT_MIN_MERGE = 32; var DEFAULT_MIN_GALLOPING = 7; function minRunLength(n) { var r = 0; while (n >= DEFAULT_MIN_MERGE) { r |= n & 1; n >>= 1; } return n + r; } function makeAscendingRun(array, lo, hi, compare) { 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(array, lo, runHi); } else { while (runHi < hi && compare(array[runHi], array[runHi - 1]) >= 0) { runHi++; } } return runHi - lo; } function reverseRun(array, lo, hi) { hi--; while (lo < hi) { var t = array[lo]; array[lo++] = array[hi]; array[hi--] = t; } } function binaryInsertionSort(array, lo, hi, start2, compare) { if (start2 === lo) { start2++; } for (; start2 < hi; start2++) { var pivot = array[start2]; var left = lo; var right = start2; var mid; while (left < right) { mid = left + right >>> 1; if (compare(pivot, array[mid]) < 0) { right = mid; } else { left = mid + 1; } } var n = start2 - 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(value, array, start2, length2, hint, compare) { var lastOffset = 0; var maxOffset = 0; var offset = 1; if (compare(value, array[start2 + hint]) > 0) { maxOffset = length2 - hint; while (offset < maxOffset && compare(value, array[start2 + 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[start2 + 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[start2 + m]) > 0) { lastOffset = m + 1; } else { offset = m; } } return offset; } function gallopRight(value, array, start2, length2, hint, compare) { var lastOffset = 0; var maxOffset = 0; var offset = 1; if (compare(value, array[start2 + hint]) < 0) { maxOffset = hint + 1; while (offset < maxOffset && compare(value, array[start2 + 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 = length2 - hint; while (offset < maxOffset && compare(value, array[start2 + 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[start2 + m]) < 0) { offset = m; } else { lastOffset = m + 1; } } return offset; } function TimSort(array, compare) { var minGallop = DEFAULT_MIN_GALLOPING; var runStart; var runLength; var stackSize = 0; var tmp = []; runStart = []; runLength = []; function pushRun(_runStart, _runLength) { 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) { 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(array[start2], array, start1, length1, 0, compare); start1 += k; length1 -= k; if (length1 === 0) { return; } length2 = gallopLeft(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, length1, start2, length2) { 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(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(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, length1, start2, length2) { 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(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(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(); } else { customCursor = dest - (length2 - 1); for (i = 0; i < length2; i++) { array[customCursor + i] = tmp[i]; } } } return { mergeRuns, forceMergeRuns, pushRun }; } function sort(array, compare, lo, hi) { 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(array, lo, hi, compare); binaryInsertionSort(array, lo, hi, lo + runLength, compare); return; } var ts = TimSort(array, compare); var minRun = minRunLength(remaining); do { runLength = makeAscendingRun(array, lo, hi, compare); if (runLength < minRun) { var force = remaining; if (force > minRun) { force = minRun; } binaryInsertionSort(array, lo, lo + force, lo + runLength, compare); runLength = force; } ts.pushRun(lo, runLength); ts.mergeRuns(); remaining -= runLength; lo += runLength; } while (remaining !== 0); ts.forceMergeRuns(); } // ../node_modules/.pnpm/zrender@6.0.0/node_modules/zrender/lib/graphic/constants.js var REDRAW_BIT = 1; var STYLE_CHANGED_BIT = 2; var SHAPE_CHANGED_BIT = 4; // ../node_modules/.pnpm/zrender@6.0.0/node_modules/zrender/lib/Storage.js var invalidZErrorLogged = false; function logInvalidZError() { if (invalidZErrorLogged) { return; } invalidZErrorLogged = true; console.warn("z / z2 / zlevel of displayable is invalid, which may cause unexpected errors"); } function shapeCompareFunc(a, b) { if (a.zlevel === b.zlevel) { if (a.z === b.z) { return a.z2 - b.z2; } return a.z - b.z; } return a.zlevel - b.zlevel; } var Storage = function() { function Storage2() { this._roots = []; this._displayList = []; this._displayListLen = 0; this.displayableSortFunc = shapeCompareFunc; } Storage2.prototype.traverse = function(cb, context) { for (var i = 0; i < this._roots.length; i++) { this._roots[i].traverse(cb, context); } }; Storage2.prototype.getDisplayList = function(update, includeIgnore) { includeIgnore = includeIgnore || false; var displayList = this._displayList; if (update || !displayList.length) { this.updateDisplayList(includeIgnore); } return displayList; }; Storage2.prototype.updateDisplayList = function(includeIgnore) { this._displayListLen = 0; var roots2 = this._roots; var displayList = this._displayList; for (var i = 0, len2 = roots2.length; i < len2; i++) { this._updateAndAddDisplayable(roots2[i], null, includeIgnore); } displayList.length = this._displayListLen; sort(displayList, shapeCompareFunc); }; Storage2.prototype._updateAndAddDisplayable = function(el, parentClipPaths, includeIgnore) { if (el.ignore && !includeIgnore) { return; } el.beforeUpdate(); el.update(); el.afterUpdate(); var userSetClipPath = el.getClipPath(); var parentHasClipPaths = parentClipPaths && parentClipPaths.length; var clipPathIdx = 0; var thisClipPaths = el.__clipPaths; if (!el.ignoreClip && (parentHasClipPaths || userSetClipPath)) { if (!thisClipPaths) { thisClipPaths = el.__clipPaths = []; } if (parentHasClipPaths) { for (var idx = 0; idx < parentClipPaths.length; idx++) { thisClipPaths[clipPathIdx++] = parentClipPaths[idx]; } } var currentClipPath = userSetClipPath; var parentClipPath = el; while (currentClipPath) { currentClipPath.parent = parentClipPath; currentClipPath.updateTransform(); thisClipPaths[clipPathIdx++] = currentClipPath; parentClipPath = currentClipPath; currentClipPath = currentClipPath.getClipPath(); } } if (thisClipPaths) { thisClipPaths.length = clipPathIdx; } if (el.childrenRef) { var children = el.childrenRef(); for (var i = 0; i < children.length; i++) { var child = children[i]; if (el.__dirty) { child.__dirty |= REDRAW_BIT; } this._updateAndAddDisplayable(child, thisClipPaths, includeIgnore); } el.__dirty = 0; } else { var disp = el; if (isNaN(disp.z)) { logInvalidZError(); disp.z = 0; } if (isNaN(disp.z2)) { logInvalidZError(); disp.z2 = 0; } if (isNaN(disp.zlevel)) { logInvalidZError(); disp.zlevel = 0; } this._displayList[this._displayListLen++] = disp; } var decalEl = el.getDecalElement && el.getDecalElement(); if (decalEl) { this._updateAndAddDisplayable(decalEl, thisClipPaths, includeIgnore); } var textGuide = el.getTextGuideLine(); if (textGuide) { this._updateAndAddDisplayable(textGuide, thisClipPaths, includeIgnore); } var textEl = el.getTextContent(); if (textEl) { this._updateAndAddDisplayable(textEl, thisClipPaths, includeIgnore); } }; Storage2.prototype.addRoot = function(el) { if (el.__zr && el.__zr.storage === this) { return; } this._roots.push(el); }; Storage2.prototype.delRoot = function(el) { if (el instanceof Array) { for (var i = 0, l = el.length; i < l; i++) { this.delRoot(el[i]); } return; } var idx = indexOf(this._roots, el); if (idx >= 0) { this._roots.splice(idx, 1); } }; Storage2.prototype.delAllRoots = function() { this._roots = []; this._displayList = []; this._displayListLen = 0; return; }; Storage2.prototype.getRoots = function() { return this._roots; }; Storage2.prototype.dispose = function() { this._displayList = null; this._roots = null; }; return Storage2; }(); var Storage_default = Storage; // ../node_modules/.pnpm/zrender@6.0.0/node_modules/zrender/lib/animation/requestAnimationFrame.js var requestAnimationFrame; requestAnimationFrame = env_default.hasGlobalWindow && (window.requestAnimationFrame && window.requestAnimationFrame.bind(window) || window.msRequestAnimationFrame && window.msRequestAnimationFrame.bind(window) || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame) || function(func) { return setTimeout(func, 16); }; var requestAnimationFrame_default = requestAnimationFrame; // ../node_modules/.pnpm/zrender@6.0.0/node_modules/zrender/lib/animation/easing.js var easingFuncs = { linear: function(k) { return k; }, quadraticIn: function(k) { return k * k; }, quadraticOut: function(k) { return k * (2 - k); }, quadraticInOut: function(k) { if ((k *= 2) < 1) { return 0.5 * k * k; } return -0.5 * (--k * (k - 2) - 1); }, cubicIn: function(k) { return k * k * k; }, cubicOut: function(k) { return --k * k * k + 1; }, cubicInOut: function(k) { if ((k *= 2) < 1) { return 0.5 * k * k * k; } return 0.5 * ((k -= 2) * k * k + 2); }, quarticIn: function(k) { return k * k * k * k; }, quarticOut: function(k) { return 1 - --k * k * k * k; }, quarticInOut: function(k) { if ((k *= 2) < 1) { return 0.5 * k * k * k * k; } return -0.5 * ((k -= 2) * k * k * k - 2); }, quinticIn: function(k) { return k * k * k * k * k; }, quinticOut: function(k) { return --k * k * k * k * k + 1; }, quinticInOut: function(k) { if ((k *= 2) < 1) { return 0.5 * k * k * k * k * k; } return 0.5 * ((k -= 2) * k * k * k * k + 2); }, sinusoidalIn: function(k) { return 1 - Math.cos(k * Math.PI / 2); }, sinusoidalOut: function(k) { return Math.sin(k * Math.PI / 2); }, sinusoidalInOut: function(k) { return 0.5 * (1 - Math.cos(Math.PI * k)); }, exponentialIn: function(k) { return k === 0 ? 0 : Math.pow(1024, k - 1); }, exponentialOut: function(k) { return k === 1 ? 1 : 1 - Math.pow(2, -10 * k); }, exponentialInOut: function(k) { if (k === 0) { return 0; } if (k === 1) { return 1; } if ((k *= 2) < 1) { return 0.5 * Math.pow(1024, k - 1); } return 0.5 * (-Math.pow(2, -10 * (k - 1)) + 2); }, circularIn: function(k) { return 1 - Math.sqrt(1 - k * k); }, circularOut: function(k) { return Math.sqrt(1 - --k * k); }, circularInOut: function(k) { if ((k *= 2) < 1) { return -0.5 * (Math.sqrt(1 - k * k) - 1); } return 0.5 * (Math.sqrt(1 - (k -= 2) * k) + 1); }, elasticIn: function(k) { var s; var a = 0.1; var p = 0.4; if (k === 0) { return 0; } if (k === 1) { return 1; } if (!a || a < 1) { a = 1; s = p / 4; } else { s = p * Math.asin(1 / a) / (2 * Math.PI); } return -(a * Math.pow(2, 10 * (k -= 1)) * Math.sin((k - s) * (2 * Math.PI) / p)); }, elasticOut: function(k) { var s; var a = 0.1; var p = 0.4; if (k === 0) { return 0; } if (k === 1) { return 1; } if (!a || a < 1) { a = 1; s = p / 4; } else { s = p * Math.asin(1 / a) / (2 * Math.PI); } return a * Math.pow(2, -10 * k) * Math.sin((k - s) * (2 * Math.PI) / p) + 1; }, elasticInOut: function(k) { var s; var a = 0.1; var p = 0.4; if (k === 0) { return 0; } if (k === 1) { return 1; } if (!a || a < 1) { a = 1; s = p / 4; } else { s = p * Math.asin(1 / a) / (2 * Math.PI); } if ((k *= 2) < 1) { return -0.5 * (a * Math.pow(2, 10 * (k -= 1)) * Math.sin((k - s) * (2 * Math.PI) / p)); } return a * Math.pow(2, -10 * (k -= 1)) * Math.sin((k - s) * (2 * Math.PI) / p) * 0.5 + 1; }, backIn: function(k) { var s = 1.70158; return k * k * ((s + 1) * k - s); }, backOut: function(k) { var s = 1.70158; return --k * k * ((s + 1) * k + s) + 1; }, backInOut: function(k) { var s = 1.70158 * 1.525; if ((k *= 2) < 1) { return 0.5 * (k * k * ((s + 1) * k - s)); } return 0.5 * ((k -= 2) * k * ((s + 1) * k + s) + 2); }, bounceIn: function(k) { return 1 - easingFuncs.bounceOut(1 - k); }, bounceOut: function(k) { if (k < 1 / 2.75) { return 7.5625 * k * k; } else if (k < 2 / 2.75) { return 7.5625 * (k -= 1.5 / 2.75) * k + 0.75; } else if (k < 2.5 / 2.75) { return 7.5625 * (k -= 2.25 / 2.75) * k + 0.9375; } else { return 7.5625 * (k -= 2.625 / 2.75) * k + 0.984375; } }, bounceInOut: function(k) { if (k < 0.5) { return easingFuncs.bounceIn(k * 2) * 0.5; } return easingFuncs.bounceOut(k * 2 - 1) * 0.5 + 0.5; } }; var easing_default = easingFuncs; // ../node_modules/.pnpm/zrender@6.0.0/node_modules/zrender/lib/core/curve.js var mathPow = Math.pow; var mathSqrt = Math.sqrt; var EPSILON2 = 1e-8; var EPSILON_NUMERIC = 1e-4; var THREE_SQRT = mathSqrt(3); var ONE_THIRD = 1 / 3; var _v0 = create2(); var _v1 = create2(); var _v2 = create2(); function isAroundZero(val) { return val > -EPSILON2 && val < EPSILON2; } function isNotAroundZero(val) { return val > EPSILON2 || val < -EPSILON2; } function cubicAt(p0, p1, p2, p3, t) { var onet = 1 - t; return onet * onet * (onet * p0 + 3 * t * p1) + t * t * (t * p3 + 3 * onet * p2); } function cubicDerivativeAt(p0, p1, p2, p3, t) { var onet = 1 - t; return 3 * (((p1 - p0) * onet + 2 * (p2 - p1) * t) * onet + (p3 - p2) * t * t); } function cubicRootAt(p0, p1, p2, p3, val, roots2) { var a = p3 + 3 * (p1 - p2) - p0; var b = 3 * (p2 - p1 * 2 + p0); var c = 3 * (p1 - p0); var d = p0 - val; var A = b * b - 3 * a * c; var B = b * c - 9 * a * d; var C = c * c - 3 * b * d; var n = 0; if (isAroundZero(A) && isAroundZero(B)) { if (isAroundZero(b)) { roots2[0] = 0; } else { var t1 = -c / b; if (t1 >= 0 && t1 <= 1) { roots2[n++] = t1; } } } else { var disc = B * B - 4 * A * C; if (isAroundZero(disc)) { var K = B / A; var t1 = -b / a + K; var t2 = -K / 2; if (t1 >= 0 && t1 <= 1) { roots2[n++] = t1; } if (t2 >= 0 && t2 <= 1) { roots2[n++] = t2; } } else if (disc > 0) { var discSqrt = mathSqrt(disc); var Y1 = A * b + 1.5 * a * (-B + discSqrt); var Y2 = A * b + 1.5 * a * (-B - discSqrt); if (Y1 < 0) { Y1 = -mathPow(-Y1, ONE_THIRD); } else { Y1 = mathPow(Y1, ONE_THIRD); } if (Y2 < 0) { Y2 = -mathPow(-Y2, ONE_THIRD); } else { Y2 = mathPow(Y2, ONE_THIRD); } var t1 = (-b - (Y1 + Y2)) / (3 * a); if (t1 >= 0 && t1 <= 1) { roots2[n++] = t1; } } else { var T = (2 * A * b - 3 * a * B) / (2 * mathSqrt(A * A * A)); var theta = Math.acos(T) / 3; var ASqrt = mathSqrt(A); var tmp = Math.cos(theta); var t1 = (-b - 2 * ASqrt * tmp) / (3 * a); var t2 = (-b + ASqrt * (tmp + THREE_SQRT * Math.sin(theta))) / (3 * a); var t3 = (-b + ASqrt * (tmp - THREE_SQRT * Math.sin(theta))) / (3 * a); if (t1 >= 0 && t1 <= 1) { roots2[n++] = t1; } if (t2 >= 0 && t2 <= 1) { roots2[n++] = t2; } if (t3 >= 0 && t3 <= 1) { roots2[n++] = t3; } } } return n; } function cubicExtrema(p0, p1, p2, p3, extrema2) { var b = 6 * p2 - 12 * p1 + 6 * p0; var a = 9 * p1 + 3 * p3 - 3 * p0 - 9 * p2; var c = 3 * p1 - 3 * p0; var n = 0; if (isAroundZero(a)) { if (isNotAroundZero(b)) { var t1 = -c / b; if (t1 >= 0 && t1 <= 1) { extrema2[n++] = t1; } } } else { var disc = b * b - 4 * a * c; if (isAroundZero(disc)) { extrema2[0] = -b / (2 * a); } else if (disc > 0) { var discSqrt = mathSqrt(disc); var t1 = (-b + discSqrt) / (2 * a); var t2 = (-b - discSqrt) / (2 * a); if (t1 >= 0 && t1 <= 1) { extrema2[n++] = t1; } if (t2 >= 0 && t2 <= 1) { extrema2[n++] = t2; } } } return n; } function cubicSubdivide(p0, p1, p2, p3, t, out) { var p01 = (p1 - p0) * t + p0; var p12 = (p2 - p1) * t + p1; var p23 = (p3 - p2) * t + p2; var p012 = (p12 - p01) * t + p01; var p123 = (p23 - p12) * t + p12; var p0123 = (p123 - p012) * t + p012; out[0] = p0; out[1] = p01; out[2] = p012; out[3] = p0123; out[4] = p0123; out[5] = p123; out[6] = p23; out[7] = p3; } function cubicProjectPoint(x0, y0, x1, y1, x2, y2, x3, y3, x, y, out) { var t; var interval = 5e-3; var d = Infinity; var prev; var next; var d1; var d2; _v0[0] = x; _v0[1] = y; for (var _t = 0; _t < 1; _t += 0.05) { _v1[0] = cubicAt(x0, x1, x2, x3, _t); _v1[1] = cubicAt(y0, y1, y2, y3, _t); d1 = distSquare(_v0, _v1); if (d1 < d) { t = _t; d = d1; } } d = Infinity; for (var i = 0; i < 32; i++) { if (interval < EPSILON_NUMERIC) { break; } prev = t - interval; next = t + interval; _v1[0] = cubicAt(x0, x1, x2, x3, prev); _v1[1] = cubicAt(y0, y1, y2, y3, prev); d1 = distSquare(_v1, _v0); if (prev >= 0 && d1 < d) { t = prev; d = d1; } else { _v2[0] = cubicAt(x0, x1, x2, x3, next); _v2[1] = cubicAt(y0, y1, y2, y3, next); d2 = distSquare(_v2, _v0); if (next <= 1 && d2 < d) { t = next; d = d2; } else { interval *= 0.5; } } } if (out) { out[0] = cubicAt(x0, x1, x2, x3, t); out[1] = cubicAt(y0, y1, y2, y3, t); } return mathSqrt(d); } function cubicLength(x0, y0, x1, y1, x2, y2, x3, y3, iteration) { var px = x0; var py = y0; var d = 0; var step = 1 / iteration; for (var i = 1; i <= iteration; i++) { var t = i * step; var x = cubicAt(x0, x1, x2, x3, t); var y = cubicAt(y0, y1, y2, y3, t); var dx = x - px; var dy = y - py; d += Math.sqrt(dx * dx + dy * dy); px = x; py = y; } return d; } function quadraticAt(p0, p1, p2, t) { var onet = 1 - t; return onet * (onet * p0 + 2 * t * p1) + t * t * p2; } function quadraticDerivativeAt(p0, p1, p2, t) { return 2 * ((1 - t) * (p1 - p0) + t * (p2 - p1)); } function quadraticRootAt(p0, p1, p2, val, roots2) { var a = p0 - 2 * p1 + p2; var b = 2 * (p1 - p0); var c = p0 - val; var n = 0; if (isAroundZero(a)) { if (isNotAroundZero(b)) { var t1 = -c / b; if (t1 >= 0 && t1 <= 1) { roots2[n++] = t1; } } } else { var disc = b * b - 4 * a * c; if (isAroundZero(disc)) { var t1 = -b / (2 * a); if (t1 >= 0 && t1 <= 1) { roots2[n++] = t1; } } else if (disc > 0) { var discSqrt = mathSqrt(disc); var t1 = (-b + discSqrt) / (2 * a); var t2 = (-b - discSqrt) / (2 * a); if (t1 >= 0 && t1 <= 1) { roots2[n++] = t1; } if (t2 >= 0 && t2 <= 1) { roots2[n++] = t2; } } } return n; } function quadraticExtremum(p0, p1, p2) { var divider = p0 + p2 - 2 * p1; if (divider === 0) { return 0.5; } else { return (p0 - p1) / divider; } } function quadraticSubdivide(p0, p1, p2, t, out) { var p01 = (p1 - p0) * t + p0; var p12 = (p2 - p1) * t + p1; var p012 = (p12 - p01) * t + p01; out[0] = p0; out[1] = p01; out[2] = p012; out[3] = p012; out[4] = p12; out[5] = p2; } function quadraticProjectPoint(x0, y0, x1, y1, x2, y2, x, y, out) { var t; var interval = 5e-3; var d = Infinity; _v0[0] = x; _v0[1] = y; for (var _t = 0; _t < 1; _t += 0.05) { _v1[0] = quadraticAt(x0, x1, x2, _t); _v1[1] = quadraticAt(y0, y1, y2, _t); var d1 = distSquare(_v0, _v1); if (d1 < d) { t = _t; d = d1; } } d = Infinity; for (var i = 0; i < 32; i++) { if (interval < EPSILON_NUMERIC) { break; } var prev = t - interval; var next = t + interval; _v1[0] = quadraticAt(x0, x1, x2, prev); _v1[1] = quadraticAt(y0, y1, y2, prev); var d1 = distSquare(_v1, _v0); if (prev >= 0 && d1 < d) { t = prev; d = d1; } else { _v2[0] = quadraticAt(x0, x1, x2, next); _v2[1] = quadraticAt(y0, y1, y2, next); var d2 = distSquare(_v2, _v0); if (next <= 1 && d2 < d) { t = next; d = d2; } else { interval *= 0.5; } } } if (out) { out[0] = quadraticAt(x0, x1, x2, t); out[1] = quadraticAt(y0, y1, y2, t); } return mathSqrt(d); } function quadraticLength(x0, y0, x1, y1, x2, y2, iteration) { var px = x0; var py = y0; var d = 0; var step = 1 / iteration; for (var i = 1; i <= iteration; i++) { var t = i * step; var x = quadraticAt(x0, x1, x2, t); var y = quadraticAt(y0, y1, y2, t); var dx = x - px; var dy = y - py; d += Math.sqrt(dx * dx + dy * dy); px = x; py = y; } return d; } // ../node_modules/.pnpm/zrender@6.0.0/node_modules/zrender/lib/animation/cubicEasing.js var regexp = /cubic-bezier\(([0-9,\.e ]+)\)/; function createCubicEasingFunc(cubicEasingStr) { var cubic = cubicEasingStr && regexp.exec(cubicEasingStr); if (cubic) { var points = cubic[1].split(","); var a_1 = +trim(points[0]); var b_1 = +trim(points[1]); var c_1 = +trim(points[2]); var d_1 = +trim(points[3]); if (isNaN(a_1 + b_1 + c_1 + d_1)) { return; } var roots_1 = []; return function(p) { return p <= 0 ? 0 : p >= 1 ? 1 : cubicRootAt(0, a_1, c_1, 1, p, roots_1) && cubicAt(0, b_1, d_1, 1, roots_1[0]); }; } } // ../node_modules/.pnpm/zrender@6.0.0/node_modules/zrender/lib/animation/Clip.js var Clip = function() { function Clip2(opts) { this._inited = false; this._startTime = 0; this._pausedTime = 0; this._paused = false; this._life = opts.life || 1e3; this._delay = opts.delay || 0; this.loop = opts.loop || false; this.onframe = opts.onframe || noop; this.ondestroy = opts.ondestroy || noop; this.onrestart = opts.onrestart || noop; opts.easing && this.setEasing(opts.easing); } Clip2.prototype.step = function(globalTime, deltaTime) { if (!this._inited) { this._startTime = globalTime + this._delay; this._inited = true; } if (this._paused) { this._pausedTime += deltaTime; return; } var life = this._life; var elapsedTime = globalTime - this._startTime - this._pausedTime; var percent = elapsedTime / life; if (percent < 0) { percent = 0; } percent = Math.min(percent, 1); var easingFunc = this.easingFunc; var schedule = easingFunc ? easingFunc(percent) : percent; this.onframe(schedule); if (percent === 1) { if (this.loop) { var remainder = elapsedTime % life; this._startTime = globalTime - remainder; this._pausedTime = 0; this.onrestart(); } else { return true; } } return false; }; Clip2.prototype.pause = function() { this._paused = true; }; Clip2.prototype.resume = function() { this._paused = false; }; Clip2.prototype.setEasing = function(easing) { this.easing = easing; this.easingFunc = isFunction(easing) ? easing : easing_default[easing] || createCubicEasingFunc(easing); }; return Clip2; }(); var Clip_default = Clip; // ../node_modules/.pnpm/zrender@6.0.0/node_modules/zrender/lib/svg/helper.js var mathRound = Math.round; function normalizeColor(color) { var opacity; if (!color || color === "transparent") { color = "none"; } else if (typeof color === "string" && color.indexOf("rgba") > -1) { var arr = parse(color); if (arr) { color = "rgb(" + arr[0] + "," + arr[1] + "," + arr[2] + ")"; opacity = arr[3]; } } return { color, opacity: opacity == null ? 1 : opacity }; } var EPSILON3 = 1e-4; function isAroundZero2(transform) { return transform < EPSILON3 && transform > -EPSILON3; } function round3(transform) { return mathRound(transform * 1e3) / 1e3; } function round4(transform) { return mathRound(transform * 1e4) / 1e4; } function getMatrixStr(m) { return "matrix(" + round3(m[0]) + "," + round3(m[1]) + "," + round3(m[2]) + "," + round3(m[3]) + "," + round4(m[4]) + "," + round4(m[5]) + ")"; } var TEXT_ALIGN_TO_ANCHOR = { left: "start", right: "end", center: "middle", middle: "middle" }; function adjustTextY(y, lineHeight, textBaseline) { if (textBaseline === "top") { y += lineHeight / 2; } else if (textBaseline === "bottom") { y -= lineHeight / 2; } return y; } function hasShadow(style) { return style && (style.shadowBlur || style.shadowOffsetX || style.shadowOffsetY); } function getShadowKey(displayable) { var style = displayable.style; var globalScale = displayable.getGlobalScale(); return [ style.shadowColor, (style.shadowBlur || 0).toFixed(2), (style.shadowOffsetX || 0).toFixed(2), (style.shadowOffsetY || 0).toFixed(2), globalScale[0], globalScale[1] ].join(","); } function isImagePattern(val) { return val && !!val.image; } function isSVGPattern(val) { return val && !!val.svgElement; } function isPattern(val) { return isImagePattern(val) || isSVGPattern(val); } function isLinearGradient(val) { return val.type === "linear"; } function isRadialGradient(val) { return val.type === "radial"; } function isGradient(val) { return val && (val.type === "linear" || val.type === "radial"); } function getIdURL(id) { return "url(#" + id + ")"; } function getPathPrecision(el) { var scale3 = el.getGlobalScale(); var size = Math.max(scale3[0], scale3[1]); return Math.max(Math.ceil(Math.log(size) / Math.log(10)), 1); } function getSRTTransformString(transform) { var x = transform.x || 0; var y = transform.y || 0; var rotation = (transform.rotation || 0) * RADIAN_TO_DEGREE; var scaleX = retrieve2(transform.scaleX, 1); var scaleY = retrieve2(transform.scaleY, 1); var skewX = transform.skewX || 0; var skewY = transform.skewY || 0; var res = []; if (x || y) { 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(" "); } var encodeBase64 = function() { if (env_default.hasGlobalWindow && isFunction(window.btoa)) { return function(str) { return window.btoa(unescape(encodeURIComponent(str))); }; } if (typeof Buffer !== "undefined") { return function(str) { return Buffer.from(str).toString("base64"); }; } return function(str) { if (true) { logError("Base64 isn't natively supported in the current environment."); } return null; }; }(); // ../node_modules/.pnpm/zrender@6.0.0/node_modules/zrender/lib/animation/Animator.js var arraySlice = Array.prototype.slice; function interpolateNumber(p0, p1, percent) { return (p1 - p0) * percent + p0; } function interpolate1DArray(out, p0, p1, percent) { var len2 = p0.length; for (var i = 0; i < len2; i++) { out[i] = interpolateNumber(p0[i], p1[i], percent); } return out; } function interpolate2DArray(out, p0, p1, percent) { var len2 = p0.length; var len22 = len2 && p0[0].length; for (var i = 0; i < len2; i++) { if (!out[i]) { out[i] = []; } for (var j = 0; j < len22; j++) { out[i][j] = interpolateNumber(p0[i][j], p1[i][j], percent); } } return out; } function add1DArray(out, p0, p1, sign) { var len2 = p0.length; for (var i = 0; i < len2; i++) { out[i] = p0[i] + p1[i] * sign; } return out; } function add2DArray(out, p0, p1, sign) { var len2 = p0.length; var len22 = len2 && p0[0].length; for (var i = 0; i < len2; i++) { if (!out[i]) { out[i] = []; } for (var j = 0; j < len22; j++) { out[i][j] = p0[i][j] + p1[i][j] * sign; } } return out; } function fillColorStops(val0, val1) { var len0 = val0.length; var len1 = val1.length; var shorterArr = len0 > len1 ? val1 : val0; var shorterLen = Math.min(len0, len1); var last = shorterArr[shorterLen - 1] || { color: [0, 0, 0, 0], offset: 0 }; for (var i = shorterLen; i < Math.max(len0, len1); i++) { shorterArr.push({ offset: last.offset, color: last.color.slice() }); } } function fillArray(val0, val1, arrDim) { var arr0 = val0; var arr1 = val1; if (!arr0.push || !arr1.push) { return; } var arr0Len = arr0.length; var arr1Len = arr1.length; if (arr0Len !== arr1Len) { var isPreviousLarger = arr0Len > arr1Len; if (isPreviousLarger) { arr0.length = arr1Len; } else { for (var i = arr0Len; i < arr1Len; i++) { arr0.push(arrDim === 1 ? arr1[i] : arraySlice.call(arr1[i])); } } } var len2 = arr0[0] && arr0[0].length; for (var i = 0; i < arr0.length; i++) { if (arrDim === 1) { if (isNaN(arr0[i])) { arr0[i] = arr1[i]; } } else { for (var j = 0; j < len2; j++) { if (isNaN(arr0[i][j])) { arr0[i][j] = arr1[i][j]; } } } } } function cloneValue(value) { if (isArrayLike(value)) { var len2 = value.length; if (isArrayLike(value[0])) { var ret = []; for (var i = 0; i < len2; i++) { ret.push(arraySlice.call(value[i])); } return ret; } return arraySlice.call(value); } return value; } function rgba2String(rgba) { rgba[0] = Math.floor(rgba[0]) || 0; rgba[1] = Math.floor(rgba[1]) || 0; rgba[2] = Math.floor(rgba[2]) || 0; rgba[3] = rgba[3] == null ? 1 : rgba[3]; return "rgba(" + rgba.join(",") + ")"; } function guessArrayDim(value) { return isArrayLike(value && value[0]) ? 2 : 1; } var VALUE_TYPE_NUMBER = 0; var VALUE_TYPE_1D_ARRAY = 1; var VALUE_TYPE_2D_ARRAY = 2; var VALUE_TYPE_COLOR = 3; var VALUE_TYPE_LINEAR_GRADIENT = 4; var VALUE_TYPE_RADIAL_GRADIENT = 5; var VALUE_TYPE_UNKOWN = 6; function isGradientValueType(valType) { return valType === VALUE_TYPE_LINEAR_GRADIENT || valType === VALUE_TYPE_RADIAL_GRADIENT; } function isArrayValueType(valType) { return valType === VALUE_TYPE_1D_ARRAY || valType === VALUE_TYPE_2D_ARRAY; } var tmpRgba = [0, 0, 0, 0]; var Track = function() { function Track2(propName) { this.keyframes = []; this.discrete = false; this._invalid = false; this._needsSort = false; this._lastFr = 0; this._lastFrP = 0; this.propName = propName; } Track2.prototype.isFinished = function() { return this._finished; }; Track2.prototype.setFinished = function() { this._finished = true; if (this._additiveTrack) { this._additiveTrack.setFinished(); } }; Track2.prototype.needsAnimate = function() { return this.keyframes.length >= 1; }; Track2.prototype.getAdditiveTrack = function() { return this._additiveTrack; }; Track2.prototype.addKeyframe = function(time, rawValue, easing) { this._needsSort = true; var keyframes = this.keyframes; var len2 = keyframes.length; var discrete = false; var valType = VALUE_TYPE_UNKOWN; var value = rawValue; if (isArrayLike(rawValue)) { var arrayDim = guessArrayDim(rawValue); valType = arrayDim; if (arrayDim === 1 && !isNumber(rawValue[0]) || arrayDim === 2 && !isNumber(rawValue[0][0])) { discrete = true; } } else { if (isNumber(rawValue) && !eqNaN(rawValue)) { valType = VALUE_TYPE_NUMBER; } else if (isString(rawValue)) { if (!isNaN(+rawValue)) { valType = VALUE_TYPE_NUMBER; } else { var colorArray = parse(rawValue); if (colorArray) { value = colorArray; valType = VALUE_TYPE_COLOR; } } } else if (isGradientObject(rawValue)) { var parsedGradient = extend({}, value); parsedGradient.colorStops = map(rawValue.colorStops, function(colorStop) { return { offset: colorStop.offset, color: parse(colorStop.color) }; }); if (isLinearGradient(rawValue)) { valType = VALUE_TYPE_LINEAR_GRADIENT; } else if (isRadialGradient(rawValue)) { valType = VALUE_TYPE_RADIAL_GRADIENT; } value = parsedGradient; } } if (len2 === 0) { this.valType = valType; } else if (valType !== this.valType || valType === VALUE_TYPE_UNKOWN) { discrete = true; } this.discrete = this.discrete || discrete; var kf = { time, value, rawValue, percent: 0 }; if (easing) { kf.easing = easing; kf.easingFunc = isFunction(easing) ? easing : easing_default[easing] || createCubicEasingFunc(easing); } keyframes.push(kf); return kf; }; Track2.prototype.prepare = function(maxTime, additiveTrack) { var kfs = this.keyframes; if (this._needsSort) { kfs.sort(function(a, b) { return a.time - b.time; }); } var valType = this.valType; var kfsLen = kfs.length; var lastKf = kfs[kfsLen - 1]; var isDiscrete = this.discrete; var isArr = isArrayValueType(valType); var isGradient2 = isGradientValueType(valType); for (var i = 0; i < kfsLen; i++) { var kf = kfs[i]; var value = kf.value; var lastValue = lastKf.value; kf.percent = kf.time / maxTime; if (!isDiscrete) { if (isArr && i !== kfsLen - 1) { fillArray(value, lastValue, valType); } else if (isGradient2) { fillColorStops(value.colorStops, lastValue.colorStops); } } } if (!isDiscrete && valType !== VALUE_TYPE_RADIAL_GRADIENT && additiveTrack && this.needsAnimate() && additiveTrack.needsAnimate() && valType === additiveTrack.valType && !additiveTrack._finished) { this._additiveTrack = additiveTrack; var startValue = kfs[0].value; for (var i = 0; i < kfsLen; i++) { if (valType === VALUE_TYPE_NUMBER) { kfs[i].additiveValue = kfs[i].value - startValue; } else if (valType === VALUE_TYPE_COLOR) { kfs[i].additiveValue = add1DArray([], kfs[i].value, startValue, -1); } else if (isArrayValueType(valType)) { kfs[i].additiveValue = valType === VALUE_TYPE_1D_ARRAY ? add1DArray([], kfs[i].value, startValue, -1) : add2DArray([], kfs[i].value, startValue, -1); } } } }; Track2.prototype.step = function(target, percent) { if (this._finished) { return; } if (this._additiveTrack && this._additiveTrack._finished) { this._additiveTrack = null; } var isAdditive = this._additiveTrack != null; var valueKey = isAdditive ? "additiveValue" : "value"; var valType = this.valType; var keyframes = this.keyframes; var kfsNum = keyframes.length; var propName = this.propName; var isValueColor = valType === VALUE_TYPE_COLOR; var frameIdx; var lastFrame = this._lastFr; var mathMin4 = Math.min; var frame; var nextFrame; if (kfsNum === 1) { frame = nextFrame = keyframes[0]; } else { if (percent < 0) { frameIdx = 0; } else if (percent < this._lastFrP) { var start2 = mathMin4(lastFrame + 1, kfsNum - 1); for (frameIdx = start2; frameIdx >= 0; frameIdx--) { if (keyframes[frameIdx].percent <= percent) { break; } } frameIdx = mathMin4(frameIdx, kfsNum - 2); } else { for (frameIdx = lastFrame; frameIdx < kfsNum; frameIdx++) { if (keyframes[frameIdx].percent > percent) { break; } } frameIdx = mathMin4(frameIdx - 1, kfsNum - 2); } nextFrame = keyframes[frameIdx + 1]; frame = keyframes[frameIdx]; } if (!(frame && nextFrame)) { return; } this._lastFr = frameIdx; this._lastFrP = percent; var interval = nextFrame.percent - frame.percent; var w = interval === 0 ? 1 : mathMin4((percent - frame.percent) / interval, 1); if (nextFrame.easingFunc) { w = nextFrame.easingFunc(w); } var targetArr = isAdditive ? this._additiveValue : isValueColor ? tmpRgba : target[propName]; if ((isArrayValueType(valType) || isValueColor) && !targetArr) { targetArr = this._additiveValue = []; } if (this.discrete) { target[propName] = w < 1 ? frame.rawValue : nextFrame.rawValue; } else if (isArrayValueType(valType)) { valType === VALUE_TYPE_1D_ARRAY ? interpolate1DArray(targetArr, frame[valueKey], nextFrame[valueKey], w) : interpolate2DArray(targetArr, frame[valueKey], nextFrame[valueKey], w); } else if (isGradientValueType(valType)) { var val = frame[valueKey]; var nextVal_1 = nextFrame[valueKey]; var isLinearGradient_1 = valType === VALUE_TYPE_LINEAR_GRADIENT; target[propName] = { type: isLinearGradient_1 ? "linear" : "radial", x: interpolateNumber(val.x, nextVal_1.x, w), y: interpolateNumber(val.y, nextVal_1.y, w), colorStops: map(val.colorStops, function(colorStop, idx) { var nextColorStop = nextVal_1.colorStops[idx]; return { offset: interpolateNumber(colorStop.offset, nextColorStop.offset, w), color: rgba2String(interpolate1DArray([], colorStop.color, nextColorStop.color, w)) }; }), global: nextVal_1.global }; if (isLinearGradient_1) { target[propName].x2 = interpolateNumber(val.x2, nextVal_1.x2, w); target[propName].y2 = interpolateNumber(val.y2, nextVal_1.y2, w); } else { target[propName].r = interpolateNumber(val.r, nextVal_1.r, w); } } else if (isValueColor) { interpolate1DArray(targetArr, frame[valueKey], nextFrame[valueKey], w); if (!isAdditive) { target[propName] = rgba2String(targetArr); } } else { var value = interpolateNumber(frame[valueKey], nextFrame[valueKey], w); if (isAdditive) { this._additiveValue = value; } else { target[propName] = value; } } if (isAdditive) { this._addToTarget(target); } }; Track2.prototype._addToTarget = function(target) { var valType = this.valType; var propName = this.propName; var additiveValue = this._additiveValue; if (valType === VALUE_TYPE_NUMBER) { target[propName] = target[propName] + additiveValue; } else if (valType === VALUE_TYPE_COLOR) { parse(target[propName], tmpRgba); add1DArray(tmpRgba, tmpRgba, additiveValue, 1); target[propName] = rgba2String(tmpRgba); } else if (valType === VALUE_TYPE_1D_ARRAY) { add1DArray(target[propName], target[propName], additiveValue, 1); } else if (valType === VALUE_TYPE_2D_ARRAY) { add2DArray(target[propName], target[propName], additiveValue, 1); } }; return Track2; }(); var Animator = function() { function Animator2(target, loop, allowDiscreteAnimation, additiveTo) { this._tracks = {}; this._trackKeys = []; this._maxTime = 0; this._started = 0; this._clip = null; this._target = target; this._loop = loop; if (loop && additiveTo) { logError("Can' use additive animation on looped animation."); return; } this._additiveAnimators = additiveTo; this._allowDiscrete = allowDiscreteAnimation; } Animator2.prototype.getMaxTime = function() { return this._maxTime; }; Animator2.prototype.getDelay = function() { return this._delay; }; Animator2.prototype.getLoop = function() { return this._loop; }; Animator2.prototype.getTarget = function() { return this._target; }; Animator2.prototype.changeTarget = function(target) { this._target = target; }; Animator2.prototype.when = function(time, props, easing) { return this.whenWithKeys(time, props, keys(props), easing); }; Animator2.prototype.whenWithKeys = function(time, props, propNames, easing) { var tracks = this._tracks; for (var i = 0; i < propNames.length; i++) { var propName = propNames[i]; var track = tracks[propName]; if (!track) { track = tracks[propName] = new Track(propName); var initialValue = void 0; var additiveTrack = this._getAdditiveTrack(propName); if (additiveTrack) { var addtiveTrackKfs = additiveTrack.keyframes; var lastFinalKf = addtiveTrackKfs[addtiveTrackKfs.length - 1]; initialValue = lastFinalKf && lastFinalKf.value; if (additiveTrack.valType === VALUE_TYPE_COLOR && initialValue) { initialValue = rgba2String(initialValue); } } else { initialValue = this._target[propName]; } if (initialValue == null) { continue; } if (time > 0) { track.addKeyframe(0, cloneValue(initialValue), easing); } this._trackKeys.push(propName); } track.addKeyframe(time, cloneValue(props[propName]), easing); } this._maxTime = Math.max(this._maxTime, time); return this; }; Animator2.prototype.pause = function() { this._clip.pause(); this._paused = true; }; Animator2.prototype.resume = function() { this._clip.resume(); this._paused = false; }; Animator2.prototype.isPaused = function() { return !!this._paused; }; Animator2.prototype.duration = function(duration) { this._maxTime = duration; this._force = true; return this; }; Animator2.prototype._doneCallback = function() { this._setTracksFinished(); this._clip = null; var doneList = this._doneCbs; if (doneList) { var len2 = doneList.length; for (var i = 0; i < len2; i++) { doneList[i].call(this); } } }; Animator2.prototype._abortedCallback = function() { this._setTracksFinished(); var animation = this.animation; var abortedList = this._abortedCbs; if (animation) { animation.removeClip(this._clip); } this._clip = null; if (abortedList) { for (var i = 0; i < abortedList.length; i++) { abortedList[i].call(this); } } }; Animator2.prototype._setTracksFinished = function() { var tracks = this._tracks; var tracksKeys = this._trackKeys; for (var i = 0; i < tracksKeys.length; i++) { tracks[tracksKeys[i]].setFinished(); } }; Animator2.prototype._getAdditiveTrack = function(trackName) { var additiveTrack; var additiveAnimators = this._additiveAnimators; if (additiveAnimators) { for (var i = 0; i < additiveAnimators.length; i++) { var track = additiveAnimators[i].getTrack(trackName); if (track) { additiveTrack = track; } } } return additiveTrack; }; Animator2.prototype.start = function(easing) { if (this._started > 0) { return; } this._started = 1; var self2 = this; var tracks = []; var maxTime = this._maxTime || 0; for (var i = 0; i < this._trackKeys.length; i++) { var propName = this._trackKeys[i]; var track = this._tracks[propName]; var additiveTrack = this._getAdditiveTrack(propName); var kfs = track.keyframes; var kfsNum = kfs.length; track.prepare(maxTime, additiveTrack); if (track.needsAnimate()) { if (!this._allowDiscrete && track.discrete) { var lastKf = kfs[kfsNum - 1]; if (lastKf) { self2._target[track.propName] = lastKf.rawValue; } track.setFinished(); } else { tracks.push(track); } } } if (tracks.length || this._force) { var clip = new Clip_default({ life: maxTime, loop: this._loop, delay: this._delay || 0, onframe: function(percent) { self2._started = 2; var additiveAnimators = self2._additiveAnimators; if (additiveAnimators) { var stillHasAdditiveAnimator = false; for (var i2 = 0; i2 < additiveAnimators.length; i2++) { if (additiveAnimators[i2]._clip) { stillHasAdditiveAnimator = true; break; } } if (!stillHasAdditiveAnimator) { self2._additiveAnimators = null; } } for (var i2 = 0; i2 < tracks.length; i2++) { tracks[i2].step(self2._target, percent); } var onframeList = self2._onframeCbs; if (onframeList) { for (var i2 = 0; i2 < onframeList.length; i2++) { onframeList[i2](self2._target, percent); } } }, ondestroy: function() { self2._doneCallback(); } }); this._clip = clip; if (this.animation) { this.animation.addClip(clip); } if (easing) { clip.setEasing(easing); } } else { this._doneCallback(); } return this; }; Animator2.prototype.stop = function(forwardToLast) { if (!this._clip) { return; } var clip = this._clip; if (forwardToLast) { clip.onframe(1); } this._abortedCallback(); }; Animator2.prototype.delay = function(time) { this._delay = time; return this; }; Animator2.prototype.during = function(cb) { if (cb) { if (!this._onframeCbs) { this._onframeCbs = []; } this._onframeCbs.push(cb); } return this; }; Animator2.prototype.done = function(cb) { if (cb) { if (!this._doneCbs) { this._doneCbs = []; } this._doneCbs.push(cb); } return this; }; Animator2.prototype.aborted = function(cb) { if (cb) { if (!this._abortedCbs) { this._abortedCbs = []; } this._abortedCbs.push(cb); } return this; }; Animator2.prototype.getClip = function() { return this._clip; }; Animator2.prototype.getTrack = function(propName) { return this._tracks[propName]; }; Animator2.prototype.getTracks = function() { var _this = this; return map(this._trackKeys, function(key) { return _this._tracks[key]; }); }; Animator2.prototype.stopTracks = function(propNames, forwardToLast) { if (!propNames.length || !this._clip) { return true; } var tracks = this._tracks; var tracksKeys = this._trackKeys; for (var i = 0; i < propNames.length; i++) { var track = tracks[propNames[i]]; if (track && !track.isFinished()) { if (forwardToLast) { track.step(this._target, 1); } else if (this._started === 1) { track.step(this._target, 0); } track.setFinished(); } } var allAborted = true; for (var i = 0; i < tracksKeys.length; i++) { if (!tracks[tracksKeys[i]].isFinished()) { allAborted = false; break; } } if (allAborted) { this._abortedCallback(); } return allAborted; }; Animator2.prototype.saveTo = function(target, trackKeys, firstOrLast) { if (!target) { return; } trackKeys = trackKeys || this._trackKeys; for (var i = 0; i < trackKeys.length; i++) { var propName = trackKeys[i]; var track = this._tracks[propName]; if (!track || track.isFinished()) { continue; } var kfs = track.keyframes; var kf = kfs[firstOrLast ? 0 : kfs.length - 1]; if (kf) { target[propName] = cloneValue(kf.rawValue); } } }; Animator2.prototype.__changeFinalValue = function(finalProps, trackKeys) { trackKeys = trackKeys || keys(finalProps); for (var i = 0; i < trackKeys.length; i++) { var propName = trackKeys[i]; var track = this._tracks[propName]; if (!track) { continue; } var kfs = track.keyframes; if (kfs.length > 1) { var lastKf = kfs.pop(); track.addKeyframe(lastKf.time, finalProps[propName]); track.prepare(this._maxTime, track.getAdditiveTrack()); } } }; return Animator2; }(); var Animator_default = Animator; // ../node_modules/.pnpm/zrender@6.0.0/node_modules/zrender/lib/animation/Animation.js function getTime() { return (/* @__PURE__ */ new Date()).getTime(); } var Animation = function(_super) { __extends(Animation2, _super); function Animation2(opts) { var _this = _super.call(this) || this; _this._running = false; _this._time = 0; _this._pausedTime = 0; _this._pauseStart = 0; _this._paused = false; opts = opts || {}; _this.stage = opts.stage || {}; return _this; } Animation2.prototype.addClip = function(clip) { if (clip.animation) { this.removeClip(clip); } if (!this._head) { this._head = this._tail = clip; } else { this._tail.next = clip; clip.prev = this._tail; clip.next = null; this._tail = clip; } clip.animation = this; }; Animation2.prototype.addAnimator = function(animator) { animator.animation = this; var clip = animator.getClip(); if (clip) { this.addClip(clip); } }; Animation2.prototype.removeClip = function(clip) { if (!clip.animation) { return; } var prev = clip.prev; var next = clip.next; if (prev) { prev.next = next; } else { this._head = next; } if (next) { next.prev = prev; } else { this._tail = prev; } clip.next = clip.prev = clip.animation = null; }; Animation2.prototype.removeAnimator = function(animator) { var clip = animator.getClip(); if (clip) { this.removeClip(clip); } animator.animation = null; }; Animation2.prototype.update = function(notTriggerFrameAndStageUpdate) { var time = getTime() - this._pausedTime; var delta = time - this._time; var clip = this._head; while (clip) { var nextClip = clip.next; var finished = clip.step(time, delta); if (finished) { clip.ondestroy(); this.removeClip(clip); clip = nextClip; } else { clip = nextClip; } } this._time = time; if (!notTriggerFrameAndStageUpdate) { this.trigger("frame", delta); this.stage.update && this.stage.update(); } }; Animation2.prototype._startLoop = function() { var self2 = this; this._running = true; function step() { if (self2._running) { requestAnimationFrame_default(step); !self2._paused && self2.update(); } } requestAnimationFrame_default(step); }; Animation2.prototype.start = function() { if (this._running) { return; } this._time = getTime(); this._pausedTime = 0; this._startLoop(); }; Animation2.prototype.stop = function() { this._running = false; }; Animation2.prototype.pause = function() { if (!this._paused) { this._pauseStart = getTime(); this._paused = true; } }; Animation2.prototype.resume = function() { if (this._paused) { this._pausedTime += getTime() - this._pauseStart; this._paused = false; } }; Animation2.prototype.clear = function() { var clip = this._head; while (clip) { var nextClip = clip.next; clip.prev = clip.next = clip.animation = null; clip = nextClip; } this._head = this._tail = null; }; Animation2.prototype.isFinished = function() { return this._head == null; }; Animation2.prototype.animate = function(target, options) { options = options || {}; this.start(); var animator = new Animator_default(target, options.loop); this.addAnimator(animator); return animator; }; return Animation2; }(Eventful_default); var Animation_default = Animation; // ../node_modules/.pnpm/zrender@6.0.0/node_modules/zrender/lib/dom/HandlerProxy.js var TOUCH_CLICK_DELAY = 300; var globalEventSupported = env_default.domSupported; var localNativeListenerNames = function() { var mouseHandlerNames = [ "click", "dblclick", "mousewheel", "wheel", "mouseout", "mouseup", "mousedown", "mousemove", "contextmenu" ]; var touchHandlerNames = [ "touchstart", "touchend", "touchmove" ]; var pointerEventNameMap = { pointerdown: 1, pointerup: 1, pointermove: 1, pointerout: 1 }; var pointerHandlerNames = map(mouseHandlerNames, function(name) { var nm = name.replace("mouse", "pointer"); return pointerEventNameMap.hasOwnProperty(nm) ? nm : name; }); return { mouse: mouseHandlerNames, touch: touchHandlerNames, pointer: pointerHandlerNames }; }(); var globalNativeListenerNames = { mouse: ["mousemove", "mouseup"], pointer: ["pointermove", "pointerup"] }; var wheelEventSupported = false; function isPointerFromTouch(event) { var pointerType = event.pointerType; return pointerType === "pen" || pointerType === "touch"; } function setTouchTimer(scope) { scope.touching = true; if (scope.touchTimer != null) { clearTimeout(scope.touchTimer); scope.touchTimer = null; } scope.touchTimer = setTimeout(function() { scope.touching = false; scope.touchTimer = null; }, 700); } function markTouch(event) { event && (event.zrByTouch = true); } function normalizeGlobalEvent(instance, event) { return normalizeEvent(instance.dom, new FakeGlobalEvent(instance, event), true); } function isLocalEl(instance, el) { var elTmp = el; var isLocal = false; while (elTmp && elTmp.nodeType !== 9 && !(isLocal = elTmp.domBelongToZr || elTmp !== el && elTmp === instance.painterRoot)) { elTmp = elTmp.parentNode; } return isLocal; } var FakeGlobalEvent = /* @__PURE__ */ function() { function FakeGlobalEvent2(instance, event) { this.stopPropagation = noop; this.stopImmediatePropagation = noop; this.preventDefault = noop; this.type = event.type; this.target = this.currentTarget = instance.dom; this.pointerType = event.pointerType; this.clientX = event.clientX; this.clientY = event.clientY; } return FakeGlobalEvent2; }(); var localDOMHandlers = { mousedown: function(event) { event = normalizeEvent(this.dom, event); this.__mayPointerCapture = [event.zrX, event.zrY]; this.trigger("mousedown", event); }, mousemove: function(event) { event = normalizeEvent(this.dom, event); var downPoint = this.__mayPointerCapture; if (downPoint && (event.zrX !== downPoint[0] || event.zrY !== downPoint[1])) { this.__togglePointerCapture(true); } this.trigger("mousemove", event); }, mouseup: function(event) { event = normalizeEvent(this.dom, event); this.__togglePointerCapture(false); this.trigger("mouseup", event); }, mouseout: function(event) { event = normalizeEvent(this.dom, event); var element = event.toElement || event.relatedTarget; if (!isLocalEl(this, element)) { if (this.__pointerCapturing) { event.zrEventControl = "no_globalout"; } this.trigger("mouseout", event); } }, wheel: function(event) { wheelEventSupported = true; event = normalizeEvent(this.dom, event); this.trigger("mousewheel", event); }, mousewheel: function(event) { if (wheelEventSupported) { return; } event = normalizeEvent(this.dom, event); this.trigger("mousewheel", event); }, touchstart: function(event) { event = normalizeEvent(this.dom, event); markTouch(event); this.__lastTouchMoment = /* @__PURE__ */ new Date(); this.handler.processGesture(event, "start"); localDOMHandlers.mousemove.call(this, event); localDOMHandlers.mousedown.call(this, event); }, touchmove: function(event) { event = normalizeEvent(this.dom, event); markTouch(event); this.handler.processGesture(event, "change"); localDOMHandlers.mousemove.call(this, event); }, touchend: function(event) { event = normalizeEvent(this.dom, event); markTouch(event); this.handler.processGesture(event, "end"); localDOMHandlers.mouseup.call(this, event); if (+/* @__PURE__ */ new Date() - +this.__lastTouchMoment < TOUCH_CLICK_DELAY) { localDOMHandlers.click.call(this, event); } }, pointerdown: function(event) { localDOMHandlers.mousedown.call(this, event); }, pointermove: function(event) { if (!isPointerFromTouch(event)) { localDOMHandlers.mousemove.call(this, event); } }, pointerup: function(event) { localDOMHandlers.mouseup.call(this, event); }, pointerout: function(event) { if (!isPointerFromTouch(event)) { localDOMHandlers.mouseout.call(this, event); } } }; each(["click", "dblclick", "contextmenu"], function(name) { localDOMHandlers[name] = function(event) { event = normalizeEvent(this.dom, event); this.trigger(name, event); }; }); var globalDOMHandlers = { pointermove: function(event) { if (!isPointerFromTouch(event)) { globalDOMHandlers.mousemove.call(this, event); } }, pointerup: function(event) { globalDOMHandlers.mouseup.call(this, event); }, mousemove: function(event) { this.trigger("mousemove", event); }, mouseup: function(event) { var pointerCaptureReleasing = this.__pointerCapturing; this.__togglePointerCapture(false); this.trigger("mouseup", event); if (pointerCaptureReleasing) { event.zrEventControl = "only_globalout"; this.trigger("mouseout", event); } } }; function mountLocalDOMEventListeners(instance, scope) { var domHandlers = scope.domHandlers; if (env_default.pointerEventsSupported) { each(localNativeListenerNames.pointer, function(nativeEventName) { mountSingleDOMEventListener(scope, nativeEventName, function(event) { domHandlers[nativeEventName].call(instance, event); }); }); } else { if (env_default.touchEventsSupported) { each(localNativeListenerNames.touch, function(nativeEventName) { mountSingleDOMEventListener(scope, nativeEventName, function(event) { domHandlers[nativeEventName].call(instance, event); setTouchTimer(scope); }); }); } each(localNativeListenerNames.mouse, function(nativeEventName) { mountSingleDOMEventListener(scope, nativeEventName, function(event) { event = getNativeEvent(event); if (!scope.touching) { domHandlers[nativeEventName].call(instance, event); } }); }); } } function mountGlobalDOMEventListeners(instance, scope) { if (env_default.pointerEventsSupported) { each(globalNativeListenerNames.pointer, mount); } else if (!env_default.touchEventsSupported) { each(globalNativeListenerNames.mouse, mount); } function mount(nativeEventName) { function nativeEventListener(event) { event = getNativeEvent(event); if (!isLocalEl(instance, event.target)) { event = normalizeGlobalEvent(instance, event); scope.domHandlers[nativeEventName].call(instance, event); } } mountSingleDOMEventListener(scope, nativeEventName, nativeEventListener, { capture: true }); } } function mountSingleDOMEventListener(scope, nativeEventName, listener, opt) { scope.mounted[nativeEventName] = listener; scope.listenerOpts[nativeEventName] = opt; addEventListener(scope.domTarget, nativeEventName, listener, opt); } function unmountDOMEventListeners(scope) { var mounted = scope.mounted; for (var nativeEventName in mounted) { if (mounted.hasOwnProperty(nativeEventName)) { removeEventListener(scope.domTarget, nativeEventName, mounted[nativeEventName], scope.listenerOpts[nativeEventName]); } } scope.mounted = {}; } var DOMHandlerScope = /* @__PURE__ */ function() { function DOMHandlerScope2(domTarget, domHandlers) { this.mounted = {}; this.listenerOpts = {}; this.touching = false; this.domTarget = domTarget; this.domHandlers = domHandlers; } return DOMHandlerScope2; }(); var HandlerDomProxy = function(_super) { __extends(HandlerDomProxy2, _super); function HandlerDomProxy2(dom, painterRoot) { var _this = _super.call(this) || this; _this.__pointerCapturing = false; _this.dom = dom; _this.painterRoot = painterRoot; _this._localHandlerScope = new DOMHandlerScope(dom, localDOMHandlers); if (globalEventSupported) { _this._globalHandlerScope = new DOMHandlerScope(document, globalDOMHandlers); } mountLocalDOMEventListeners(_this, _this._localHandlerScope); return _this; } HandlerDomProxy2.prototype.dispose = function() { unmountDOMEventListeners(this._localHandlerScope); if (globalEventSupported) { unmountDOMEventListeners(this._globalHandlerScope); } }; HandlerDomProxy2.prototype.setCursor = function(cursorStyle) { this.dom.style && (this.dom.style.cursor = cursorStyle || "default"); }; HandlerDomProxy2.prototype.__togglePointerCapture = function(isPointerCapturing) { this.__mayPointerCapture = null; if (globalEventSupported && +this.__pointerCapturing ^ +isPointerCapturing) { this.__pointerCapturing = isPointerCapturing; var globalHandlerScope = this._globalHandlerScope; isPointerCapturing ? mountGlobalDOMEventListeners(this, globalHandlerScope) : unmountDOMEventListeners(globalHandlerScope); } }; return HandlerDomProxy2; }(Eventful_default); var HandlerProxy_default = HandlerDomProxy; // ../node_modules/.pnpm/zrender@6.0.0/node_modules/zrender/lib/config.js var dpr = 1; if (env_default.hasGlobalWindow) { dpr = Math.max(window.devicePixelRatio || window.screen && window.screen.deviceXDPI / window.screen.logicalXDPI || 1, 1); } var devicePixelRatio = dpr; var DARK_MODE_THRESHOLD = 0.4; var DARK_LABEL_COLOR = "#333"; var LIGHT_LABEL_COLOR = "#ccc"; var LIGHTER_LABEL_COLOR = "#eee"; // ../node_modules/.pnpm/zrender@6.0.0/node_modules/zrender/lib/core/Transformable.js var mIdentity = identity; var EPSILON4 = 5e-5; function isNotAroundZero2(val) { return val > EPSILON4 || val < -EPSILON4; } var scaleTmp = []; var tmpTransform = []; var originTransform = create(); var abs = Math.abs; var Transformable = function() { function Transformable2() { } Transformable2.prototype.getLocalTransform = function(m) { return Transformable2.getLocalTransform(this, m); }; Transformable2.prototype.setPosition = function(arr) { this.x = arr[0]; this.y = arr[1]; }; Transformable2.prototype.setScale = function(arr) { this.scaleX = arr[0]; this.scaleY = arr[1]; }; Transformable2.prototype.setSkew = function(arr) { this.skewX = arr[0]; this.skewY = arr[1]; }; Transformable2.prototype.setOrigin = function(arr) { this.originX = arr[0]; this.originY = arr[1]; }; Transformable2.prototype.needLocalTransform = function() { return isNotAroundZero2(this.rotation) || isNotAroundZero2(this.x) || isNotAroundZero2(this.y) || isNotAroundZero2(this.scaleX - 1) || isNotAroundZero2(this.scaleY - 1) || isNotAroundZero2(this.skewX) || isNotAroundZero2(this.skewY); }; Transformable2.prototype.updateTransform = function() { var parentTransform = this.parent && this.parent.transform; var needLocalTransform = this.needLocalTransform(); var m = this.transform; if (!(needLocalTransform || parentTransform)) { if (m) { mIdentity(m); this.invTransform = null; } return; } m = m || create(); if (needLocalTransform) { this.getLocalTransform(m); } else { mIdentity(m); } if (parentTransform) { if (needLocalTransform) { mul(m, parentTransform, m); } else { copy(m, parentTransform); } } this.transform = m; this._resolveGlobalScaleRatio(m); }; Transformable2.prototype._resolveGlobalScaleRatio = function(m) { var globalScaleRatio = this.globalScaleRatio; if (globalScaleRatio != null && globalScaleRatio !== 1) { this.getGlobalScale(scaleTmp); var relX = scaleTmp[0] < 0 ? -1 : 1; var relY = scaleTmp[1] < 0 ? -1 : 1; var sx = ((scaleTmp[0] - relX) * globalScaleRatio + relX) / scaleTmp[0] || 0; var sy = ((scaleTmp[1] - relY) * globalScaleRatio + relY) / scaleTmp[1] || 0; m[0] *= sx; m[1] *= sx; m[2] *= sy; m[3] *= sy; } this.invTransform = this.invTransform || create(); invert(this.invTransform, m); }; Transformable2.prototype.getComputedTransform = function() { var transformNode = this; var ancestors = []; while (transformNode) { ancestors.push(transformNode); transformNode = transformNode.parent; } while (transformNode = ancestors.pop()) { transformNode.updateTransform(); } return this.transform; }; Transformable2.prototype.setLocalTransform = function(m) { if (!m) { return; } var sx = m[0] * m[0] + m[1] * m[1]; var sy = m[2] * m[2] + m[3] * m[3]; var rotation = Math.atan2(m[1], m[0]); var shearX = Math.PI / 2 + rotation - Math.atan2(m[3], m[2]); sy = Math.sqrt(sy) * Math.cos(shearX); sx = Math.sqrt(sx); this.skewX = shearX; this.skewY = 0; this.rotation = -rotation; this.x = +m[4]; this.y = +m[5]; this.scaleX = sx; this.scaleY = sy; this.originX = 0; this.originY = 0; }; Transformable2.prototype.decomposeTransform = function() { if (!this.transform) { return; } var parent = this.parent; var m = this.transform; if (parent && parent.transform) { parent.invTransform = parent.invTransform || create(); mul(tmpTransform, parent.invTransform, m); m = tmpTransform; } var ox = this.originX; var oy = this.originY; if (ox || oy) { originTransform[4] = ox; originTransform[5] = oy; mul(tmpTransform, m, originTransform); tmpTransform[4] -= ox; tmpTransform[5] -= oy; m = tmpTransform; } this.setLocalTransform(m); }; Transformable2.prototype.getGlobalScale = function(out) { var m = this.transform; out = out || []; if (!m) { out[0] = 1; out[1] = 1; return out; } out[0] = Math.sqrt(m[0] * m[0] + m[1] * m[1]); out[1] = Math.sqrt(m[2] * m[2] + m[3] * m[3]); if (m[0] < 0) { out[0] = -out[0]; } if (m[3] < 0) { out[1] = -out[1]; } return out; }; Transformable2.prototype.transformCoordToLocal = function(x, y) { var v2 = [x, y]; var invTransform = this.invTransform; if (invTransform) { applyTransform(v2, v2, invTransform); } return v2; }; Transformable2.prototype.transformCoordToGlobal = function(x, y) { var v2 = [x, y]; var transform = this.transform; if (transform) { applyTransform(v2, v2, transform); } return v2; }; Transformable2.prototype.getLineScale = function() { var m = this.transform; return m && abs(m[0] - 1) > 1e-10 && abs(m[3] - 1) > 1e-10 ? Math.sqrt(abs(m[0] * m[3] - m[2] * m[1])) : 1; }; Transformable2.prototype.copyTransform = function(source) { copyTransform(this, source); }; Transformable2.getLocalTransform = function(target, m) { m = m || []; var ox = target.originX || 0; var oy = target.originY || 0; var sx = target.scaleX; var sy = target.scaleY; var ax = target.anchorX; var ay = target.anchorY; var rotation = target.rotation || 0; var x = target.x; var y = target.y; var skewX = target.skewX ? Math.tan(target.skewX) : 0; var skewY = target.skewY ? Math.tan(-target.skewY) : 0; if (ox || oy || ax || ay) { var dx = ox + ax; var dy = oy + ay; m[4] = -dx * sx - skewX * dy * sy; m[5] = -dy * sy - skewY * dx * sx; } else { m[4] = m[5] = 0; } m[0] = sx; m[3] = sy; m[1] = skewY * sx; m[2] = skewX * sy; rotation && rotate(m, m, rotation); m[4] += ox + x; m[5] += oy + y; return m; }; Transformable2.initDefaultProps = function() { var proto = Transformable2.prototype; proto.scaleX = proto.scaleY = proto.globalScaleRatio = 1; proto.x = proto.y = proto.originX = proto.originY = proto.skewX = proto.skewY = proto.rotation = proto.anchorX = proto.anchorY = 0; }(); return Transformable2; }(); var TRANSFORMABLE_PROPS = [ "x", "y", "originX", "originY", "anchorX", "anchorY", "rotation", "scaleX", "scaleY", "skewX", "skewY" ]; function copyTransform(target, source) { for (var i = 0; i < TRANSFORMABLE_PROPS.length; i++) { var propName = TRANSFORMABLE_PROPS[i]; target[propName] = source[propName]; } } var Transformable_default = Transformable; // ../node_modules/.pnpm/zrender@6.0.0/node_modules/zrender/lib/contain/text.js function ensureFontMeasureInfo(font) { if (!_fontMeasureInfoCache) { _fontMeasureInfoCache = new LRU_default(100); } font = font || DEFAULT_FONT; var measureInfo = _fontMeasureInfoCache.get(font); if (!measureInfo) { measureInfo = { font, strWidthCache: new LRU_default(500), asciiWidthMap: null, asciiWidthMapTried: false, stWideCharWidth: platformApi.measureText("国", font).width, asciiCharWidth: platformApi.measureText("a", font).width }; _fontMeasureInfoCache.put(font, measureInfo); } return measureInfo; } var _fontMeasureInfoCache; function tryCreateASCIIWidthMap(font) { if (_getASCIIWidthMapLongCount >= GET_ASCII_WIDTH_LONG_COUNT_MAX) { return; } font = font || DEFAULT_FONT; var asciiWidthMap = []; var start2 = +/* @__PURE__ */ new Date(); for (var code = 0; code <= 127; code++) { asciiWidthMap[code] = platformApi.measureText(String.fromCharCode(code), font).width; } var cost = +/* @__PURE__ */ new Date() - start2; if (cost > 16) { _getASCIIWidthMapLongCount = GET_ASCII_WIDTH_LONG_COUNT_MAX; } else if (cost > 2) { _getASCIIWidthMapLongCount++; } return asciiWidthMap; } var _getASCIIWidthMapLongCount = 0; var GET_ASCII_WIDTH_LONG_COUNT_MAX = 5; function measureCharWidth(fontMeasureInfo, charCode) { if (!fontMeasureInfo.asciiWidthMapTried) { fontMeasureInfo.asciiWidthMap = tryCreateASCIIWidthMap(fontMeasureInfo.font); fontMeasureInfo.asciiWidthMapTried = true; } return 0 <= charCode && charCode <= 127 ? fontMeasureInfo.asciiWidthMap != null ? fontMeasureInfo.asciiWidthMap[charCode] : fontMeasureInfo.asciiCharWidth : fontMeasureInfo.stWideCharWidth; } function measureWidth(fontMeasureInfo, text) { var strWidthCache = fontMeasureInfo.strWidthCache; var width = strWidthCache.get(text); if (width == null) { width = platformApi.measureText(text, fontMeasureInfo.font).width; strWidthCache.put(text, width); } return width; } function innerGetBoundingRect(text, font, textAlign, textBaseline) { var width = measureWidth(ensureFontMeasureInfo(font), text); var height = getLineHeight(font); var x = adjustTextX(0, width, textAlign); var y = adjustTextY2(0, height, textBaseline); var rect = new BoundingRect_default(x, y, width, height); return rect; } function getBoundingRect(text, font, textAlign, textBaseline) { var textLines = ((text || "") + "").split("\n"); var len2 = textLines.length; if (len2 === 1) { return innerGetBoundingRect(textLines[0], font, textAlign, textBaseline); } else { var uniondRect = new BoundingRect_default(0, 0, 0, 0); for (var i = 0; i < textLines.length; i++) { var rect = innerGetBoundingRect(textLines[i], font, textAlign, textBaseline); i === 0 ? uniondRect.copy(rect) : uniondRect.union(rect); } return uniondRect; } } function adjustTextX(x, width, textAlign, inverse) { if (textAlign === "right") { !inverse ? x -= width : x += width; } else if (textAlign === "center") { !inverse ? x -= width / 2 : x += width / 2; } return x; } function adjustTextY2(y, height, verticalAlign, inverse) { if (verticalAlign === "middle") { !inverse ? y -= height / 2 : y += height / 2; } else if (verticalAlign === "bottom") { !inverse ? y -= height : y += height; } return y; } function getLineHeight(font) { return ensureFontMeasureInfo(font).stWideCharWidth; } function parsePercent(value, maxValue) { if (typeof value === "string") { if (value.lastIndexOf("%") >= 0) { return parseFloat(value) / 100 * maxValue; } return parseFloat(value); } return value; } function calculateTextPosition(out, opts, rect) { var textPosition = opts.position || "inside"; var distance2 = opts.distance != null ? opts.distance : 5; var height = rect.height; var width = rect.width; var halfHeight = height / 2; var x = rect.x; var y = rect.y; var textAlign = "left"; var textVerticalAlign = "top"; if (textPosition instanceof Array) { x += parsePercent(textPosition[0], rect.width); y += parsePercent(textPosition[1], rect.height); textAlign = null; textVerticalAlign = null; } else { switch (textPosition) { case "left": x -= distance2; y += halfHeight; textAlign = "right"; textVerticalAlign = "middle"; break; case "right": x += distance2 + width; y += halfHeight; textVerticalAlign = "middle"; break; case "top": x += width / 2; y -= distance2; textAlign = "center"; textVerticalAlign = "bottom"; break; case "bottom": x += width / 2; y += height + distance2; textAlign = "center"; break; case "inside": x += width / 2; y += halfHeight; textAlign = "center"; textVerticalAlign = "middle"; break; case "insideLeft": x += distance2; y += halfHeight; textVerticalAlign = "middle"; break; case "insideRight": x += width - distance2; y += halfHeight; textAlign = "right"; textVerticalAlign = "middle"; break; case "insideTop": x += width / 2; y += distance2; textAlign = "center"; break; case "insideBottom": x += width / 2; y += height - distance2; textAlign = "center"; textVerticalAlign = "bottom"; break; case "insideTopLeft": x += distance2; y += distance2; break; case "insideTopRight": x += width - distance2; y += distance2; textAlign = "right"; break; case "insideBottomLeft": x += distance2; y += height - distance2; textVerticalAlign = "bottom"; break; case "insideBottomRight": x += width - distance2; y += height - distance2; textAlign = "right"; textVerticalAlign = "bottom"; break; } } out = out || {}; out.x = x; out.y = y; out.align = textAlign; out.verticalAlign = textVerticalAlign; return out; } // ../node_modules/.pnpm/zrender@6.0.0/node_modules/zrender/lib/Element.js var PRESERVED_NORMAL_STATE = "__zr_normal__"; var PRIMARY_STATES_KEYS = TRANSFORMABLE_PROPS.concat(["ignore"]); var DEFAULT_ANIMATABLE_MAP = reduce(TRANSFORMABLE_PROPS, function(obj, key) { obj[key] = true; return obj; }, { ignore: false }); var tmpTextPosCalcRes = {}; var tmpBoundingRect = new BoundingRect_default(0, 0, 0, 0); var tmpInnerTextTrans = []; var Element = function() { function Element2(props) { this.id = guid(); this.animators = []; this.currentStates = []; this.states = {}; this._init(props); } Element2.prototype._init = function(props) { this.attr(props); }; Element2.prototype.drift = function(dx, dy, e) { switch (this.draggable) { case "horizontal": dy = 0; break; case "vertical": dx = 0; break; } var m = this.transform; if (!m) { m = this.transform = [1, 0, 0, 1, 0, 0]; } m[4] += dx; m[5] += dy; this.decomposeTransform(); this.markRedraw(); }; Element2.prototype.beforeUpdate = function() { }; Element2.prototype.afterUpdate = function() { }; Element2.prototype.update = function() { this.updateTransform(); if (this.__dirty) { this.updateInnerText(); } }; Element2.prototype.updateInnerText = function(forceUpdate) { var textEl = this._textContent; if (textEl && (!textEl.ignore || forceUpdate)) { if (!this.textConfig) { this.textConfig = {}; } var textConfig = this.textConfig; var isLocal = textConfig.local; var innerTransformable = textEl.innerTransformable; var textAlign = void 0; var textVerticalAlign = void 0; var textStyleChanged = false; innerTransformable.parent = isLocal ? this : null; var innerOrigin = false; innerTransformable.copyTransform(textEl); var hasPosition = textConfig.position != null; var autoOverflowArea = textConfig.autoOverflowArea; var layoutRect = void 0; if (autoOverflowArea || hasPosition) { layoutRect = tmpBoundingRect; if (textConfig.layoutRect) { layoutRect.copy(textConfig.layoutRect); } else { layoutRect.copy(this.getBoundingRect()); } if (!isLocal) { layoutRect.applyTransform(this.transform); } } if (hasPosition) { if (this.calculateTextPosition) { this.calculateTextPosition(tmpTextPosCalcRes, textConfig, layoutRect); } else { calculateTextPosition(tmpTextPosCalcRes, textConfig, layoutRect); } innerTransformable.x = tmpTextPosCalcRes.x; innerTransformable.y = tmpTextPosCalcRes.y; textAlign = tmpTextPosCalcRes.align; textVerticalAlign = tmpTextPosCalcRes.verticalAlign; var textOrigin = textConfig.origin; if (textOrigin && textConfig.rotation != null) { var relOriginX = void 0; var relOriginY = void 0; if (textOrigin === "center") { relOriginX = layoutRect.width * 0.5; relOriginY = layoutRect.height * 0.5; } else { relOriginX = parsePercent(textOrigin[0], layoutRect.width); relOriginY = parsePercent(textOrigin[1], layoutRect.height); } innerOrigin = true; innerTransformable.originX = -innerTransformable.x + relOriginX + (isLocal ? 0 : layoutRect.x); innerTransformable.originY = -innerTransformable.y + relOriginY + (isLocal ? 0 : layoutRect.y); } } if (textConfig.rotation != null) { innerTransformable.rotation = textConfig.rotation; } var textOffset = textConfig.offset; if (textOffset) { innerTransformable.x += textOffset[0]; innerTransformable.y += textOffset[1]; if (!innerOrigin) { innerTransformable.originX = -textOffset[0]; innerTransformable.originY = -textOffset[1]; } } var innerTextDefaultStyle = this._innerTextDefaultStyle || (this._innerTextDefaultStyle = {}); if (autoOverflowArea) { var overflowRect = innerTextDefaultStyle.overflowRect = innerTextDefaultStyle.overflowRect || new BoundingRect_default(0, 0, 0, 0); innerTransformable.getLocalTransform(tmpInnerTextTrans); invert(tmpInnerTextTrans, tmpInnerTextTrans); BoundingRect_default.copy(overflowRect, layoutRect); overflowRect.applyTransform(tmpInnerTextTrans); } else { innerTextDefaultStyle.overflowRect = null; } var isInside = textConfig.inside == null ? typeof textConfig.position === "string" && textConfig.position.indexOf("inside") >= 0 : textConfig.inside; var textFill = void 0; var textStroke = void 0; var autoStroke = void 0; if (isInside && this.canBeInsideText()) { textFill = textConfig.insideFill; textStroke = textConfig.insideStroke; if (textFill == null || textFill === "auto") { textFill = this.getInsideTextFill(); } if (textStroke == null || textStroke === "auto") { textStroke = this.getInsideTextStroke(textFill); autoStroke = true; } } else { textFill = textConfig.outsideFill; textStroke = textConfig.outsideStroke; if (textFill == null || textFill === "auto") { textFill = this.getOutsideFill(); } if (textStroke == null || textStroke === "auto") { textStroke = this.getOutsideStroke(textFill); autoStroke = true; } } textFill = textFill || "#000"; if (textFill !== innerTextDefaultStyle.fill || textStroke !== innerTextDefaultStyle.stroke || autoStroke !== innerTextDefaultStyle.autoStroke || textAlign !== innerTextDefaultStyle.align || textVerticalAlign !== innerTextDefaultStyle.verticalAlign) { textStyleChanged = true; innerTextDefaultStyle.fill = textFill; innerTextDefaultStyle.stroke = textStroke; innerTextDefaultStyle.autoStroke = autoStroke; innerTextDefaultStyle.align = textAlign; innerTextDefaultStyle.verticalAlign = textVerticalAlign; textEl.setDefaultTextStyle(innerTextDefaultStyle); } textEl.__dirty |= REDRAW_BIT; if (textStyleChanged) { textEl.dirtyStyle(true); } } }; Element2.prototype.canBeInsideText = function() { return true; }; Element2.prototype.getInsideTextFill = function() { return "#fff"; }; Element2.prototype.getInsideTextStroke = function(textFill) { return "#000"; }; Element2.prototype.getOutsideFill = function() { return this.__zr && this.__zr.isDarkMode() ? LIGHT_LABEL_COLOR : DARK_LABEL_COLOR; }; Element2.prototype.getOutsideStroke = function(textFill) { var backgroundColor = this.__zr && this.__zr.getBackgroundColor(); var colorArr = typeof backgroundColor === "string" && parse(backgroundColor); if (!colorArr) { colorArr = [255, 255, 255, 1]; } var alpha = colorArr[3]; var isDark = this.__zr.isDarkMode(); for (var i = 0; i < 3; i++) { colorArr[i] = colorArr[i] * alpha + (isDark ? 0 : 255) * (1 - alpha); } colorArr[3] = 1; return stringify(colorArr, "rgba"); }; Element2.prototype.traverse = function(cb, context) { }; Element2.prototype.attrKV = function(key, value) { if (key === "textConfig") { this.setTextConfig(value); } else if (key === "textContent") { this.setTextContent(value); } else if (key === "clipPath") { this.setClipPath(value); } else if (key === "extra") { this.extra = this.extra || {}; extend(this.extra, value); } else { this[key] = value; } }; Element2.prototype.hide = function() { this.ignore = true; this.markRedraw(); }; Element2.prototype.show = function() { this.ignore = false; this.markRedraw(); }; Element2.prototype.attr = function(keyOrObj, value) { if (typeof keyOrObj === "string") { this.attrKV(keyOrObj, value); } else if (isObject(keyOrObj)) { var obj = keyOrObj; var keysArr = keys(obj); for (var i = 0; i < keysArr.length; i++) { var key = keysArr[i]; this.attrKV(key, keyOrObj[key]); } } this.markRedraw(); return this; }; Element2.prototype.saveCurrentToNormalState = function(toState) { this._innerSaveToNormal(toState); var normalState = this._normalState; for (var i = 0; i < this.animators.length; i++) { var animator = this.animators[i]; var fromStateTransition = animator.__fromStateTransition; if (animator.getLoop() || fromStateTransition && fromStateTransition !== PRESERVED_NORMAL_STATE) { continue; } var targetName = animator.targetName; var target = targetName ? normalState[targetName] : normalState; animator.saveTo(target); } }; Element2.prototype._innerSaveToNormal = function(toState) { var normalState = this._normalState; if (!normalState) { normalState = this._normalState = {}; } if (toState.textConfig && !normalState.textConfig) { normalState.textConfig = this.textConfig; } this._savePrimaryToNormal(toState, normalState, PRIMARY_STATES_KEYS); }; Element2.prototype._savePrimaryToNormal = function(toState, normalState, primaryKeys) { for (var i = 0; i < primaryKeys.length; i++) { var key = primaryKeys[i]; if (toState[key] != null && !(key in normalState)) { normalState[key] = this[key]; } } }; Element2.prototype.hasState = function() { return this.currentStates.length > 0; }; Element2.prototype.getState = function(name) { return this.states[name]; }; Element2.prototype.ensureState = function(name) { var states = this.states; if (!states[name]) { states[name] = {}; } return states[name]; }; Element2.prototype.clearStates = function(noAnimation) { this.useState(PRESERVED_NORMAL_STATE, false, noAnimation); }; Element2.prototype.useState = function(stateName, keepCurrentStates, noAnimation, forceUseHoverLayer) { var toNormalState = stateName === PRESERVED_NORMAL_STATE; var hasStates = this.hasState(); if (!hasStates && toNormalState) { return; } var currentStates = this.currentStates; var animationCfg = this.stateTransition; if (indexOf(currentStates, stateName) >= 0 && (keepCurrentStates || currentStates.length === 1)) { return; } var state; if (this.stateProxy && !toNormalState) { state = this.stateProxy(stateName); } if (!state) { state = this.states && this.states[stateName]; } if (!state && !toNormalState) { logError("State " + stateName + " not exists."); return; } if (!toNormalState) { this.saveCurrentToNormalState(state); } var useHoverLayer = !!(state && state.hoverLayer || forceUseHoverLayer); if (useHoverLayer) { this._toggleHoverLayerFlag(true); } this._applyStateObj(stateName, state, this._normalState, keepCurrentStates, !noAnimation && !this.__inHover && animationCfg && animationCfg.duration > 0, animationCfg); var textContent = this._textContent; var textGuide = this._textGuide; if (textContent) { textContent.useState(stateName, keepCurrentStates, noAnimation, useHoverLayer); } if (textGuide) { textGuide.useState(stateName, keepCurrentStates, noAnimation, useHoverLayer); } if (toNormalState) { this.currentStates = []; this._normalState = {}; } else { if (!keepCurrentStates) { this.currentStates = [stateName]; } else { this.currentStates.push(stateName); } } this._updateAnimationTargets(); this.markRedraw(); if (!useHoverLayer && this.__inHover) { this._toggleHoverLayerFlag(false); this.__dirty &= ~REDRAW_BIT; } return state; }; Element2.prototype.useStates = function(states, noAnimation, forceUseHoverLayer) { if (!states.length) { this.clearStates(); } else { var stateObjects = []; var currentStates = this.currentStates; var len2 = states.length; var notChange = len2 === currentStates.length; if (notChange) { for (var i = 0; i < len2; i++) { if (states[i] !== currentStates[i]) { notChange = false; break; } } } if (notChange) { return; } for (var i = 0; i < len2; i++) { var stateName = states[i]; var stateObj = void 0; if (this.stateProxy) { stateObj = this.stateProxy(stateName, states); } if (!stateObj) { stateObj = this.states[stateName]; } if (stateObj) { stateObjects.push(stateObj); } } var lastStateObj = stateObjects[len2 - 1]; var useHoverLayer = !!(lastStateObj && lastStateObj.hoverLayer || forceUseHoverLayer); if (useHoverLayer) { this._toggleHoverLayerFlag(true); } var mergedState = this._mergeStates(stateObjects); var animationCfg = this.stateTransition; this.saveCurrentToNormalState(mergedState); this._applyStateObj(states.join(","), mergedState, this._normalState, false, !noAnimation && !this.__inHover && animationCfg && animationCfg.duration > 0, animationCfg); var textContent = this._textContent; var textGuide = this._textGuide; if (textContent) { textContent.useStates(states, noAnimation, useHoverLayer); } if (textGuide) { textGuide.useStates(states, noAnimation, useHoverLayer); } this._updateAnimationTargets(); this.currentStates = states.slice(); this.markRedraw(); if (!useHoverLayer && this.__inHover) { this._toggleHoverLayerFlag(false); this.__dirty &= ~REDRAW_BIT; } } }; Element2.prototype.isSilent = function() { var el = this; while (el) { if (el.silent) { return true; } var hostEl = el.__hostTarget; el = hostEl ? el.ignoreHostSilent ? null : hostEl : el.parent; } return false; }; Element2.prototype._updateAnimationTargets = function() { for (var i = 0; i < this.animators.length; i++) { var animator = this.animators[i]; if (animator.targetName) { animator.changeTarget(this[animator.targetName]); } } }; Element2.prototype.removeState = function(state) { var idx = indexOf(this.currentStates, state); if (idx >= 0) { var currentStates = this.currentStates.slice(); currentStates.splice(idx, 1); this.useStates(currentStates); } }; Element2.prototype.replaceState = function(oldState, newState, forceAdd) { var currentStates = this.currentStates.slice(); var idx = indexOf(currentStates, oldState); var newStateExists = indexOf(currentStates, newState) >= 0; if (idx >= 0) { if (!newStateExists) { currentStates[idx] = newState; } else { currentStates.splice(idx, 1); } } else if (forceAdd && !newStateExists) { currentStates.push(newState); } this.useStates(currentStates); }; Element2.prototype.toggleState = function(state, enable) { if (enable) { this.useState(state, true); } else { this.removeState(state); } }; Element2.prototype._mergeStates = function(states) { var mergedState = {}; var mergedTextConfig; for (var i = 0; i < states.length; i++) { var state = states[i]; extend(mergedState, state); if (state.textConfig) { mergedTextConfig = mergedTextConfig || {}; extend(mergedTextConfig, state.textConfig); } } if (mergedTextConfig) { mergedState.textConfig = mergedTextConfig; } return mergedState; }; Element2.prototype._applyStateObj = function(stateName, state, normalState, keepCurrentStates, transition, animationCfg) { var needsRestoreToNormal = !(state && keepCurrentStates); if (state && state.textConfig) { this.textConfig = extend({}, keepCurrentStates ? this.textConfig : normalState.textConfig); extend(this.textConfig, state.textConfig); } else if (needsRestoreToNormal) { if (normalState.textConfig) { this.textConfig = normalState.textConfig; } } var transitionTarget = {}; var hasTransition = false; for (var i = 0; i < PRIMARY_STATES_KEYS.length; i++) { var key = PRIMARY_STATES_KEYS[i]; var propNeedsTransition = transition && DEFAULT_ANIMATABLE_MAP[key]; if (state && state[key] != null) { if (propNeedsTransition) { hasTransition = true; transitionTarget[key] = state[key]; } else { this[key] = state[key]; } } else if (needsRestoreToNormal) { if (normalState[key] != null) { if (propNeedsTransition) { hasTransition = true; transitionTarget[key] = normalState[key]; } else { this[key] = normalState[key]; } } } } if (!transition) { for (var i = 0; i < this.animators.length; i++) { var animator = this.animators[i]; var targetName = animator.targetName; if (!animator.getLoop()) { animator.__changeFinalValue(targetName ? (state || normalState)[targetName] : state || normalState); } } } if (hasTransition) { this._transitionState(stateName, transitionTarget, animationCfg); } }; Element2.prototype._attachComponent = function(componentEl) { if (componentEl.__zr && !componentEl.__hostTarget) { if (true) { throw new Error("Text element has been added to zrender."); } return; } if (componentEl === this) { if (true) { throw new Error("Recursive component attachment."); } return; } var zr = this.__zr; if (zr) { componentEl.addSelfToZr(zr); } componentEl.__zr = zr; componentEl.__hostTarget = this; }; Element2.prototype._detachComponent = function(componentEl) { if (componentEl.__zr) { componentEl.removeSelfFromZr(componentEl.__zr); } componentEl.__zr = null; componentEl.__hostTarget = null; }; Element2.prototype.getClipPath = function() { return this._clipPath; }; Element2.prototype.setClipPath = function(clipPath) { if (this._clipPath && this._clipPath !== clipPath) { this.removeClipPath(); } this._attachComponent(clipPath); this._clipPath = clipPath; this.markRedraw(); }; Element2.prototype.removeClipPath = function() { var clipPath = this._clipPath; if (clipPath) { this._detachComponent(clipPath); this._clipPath = null; this.markRedraw(); } }; Element2.prototype.getTextContent = function() { return this._textContent; }; Element2.prototype.setTextContent = function(textEl) { var previousTextContent = this._textContent; if (previousTextContent === textEl) { return; } if (previousTextContent && previousTextContent !== textEl) { this.removeTextContent(); } if (true) { if (textEl.__zr && !textEl.__hostTarget) { throw new Error("Text element has been added to zrender."); } } textEl.innerTransformable = new Transformable_default(); this._attachComponent(textEl); this._textContent = textEl; this.markRedraw(); }; Element2.prototype.setTextConfig = function(cfg) { if (!this.textConfig) { this.textConfig = {}; } extend(this.textConfig, cfg); this.markRedraw(); }; Element2.prototype.removeTextConfig = function() { this.textConfig = null; this.markRedraw(); }; Element2.prototype.removeTextContent = function() { var textEl = this._textContent; if (textEl) { textEl.innerTransformable = null; this._detachComponent(textEl); this._textContent = null; this._innerTextDefaultStyle = null; this.markRedraw(); } }; Element2.prototype.getTextGuideLine = function() { return this._textGuide; }; Element2.prototype.setTextGuideLine = function(guideLine) { if (this._textGuide && this._textGuide !== guideLine) { this.removeTextGuideLine(); } this._attachComponent(guideLine); this._textGuide = guideLine; this.markRedraw(); }; Element2.prototype.removeTextGuideLine = function() { var textGuide = this._textGuide; if (textGuide) { this._detachComponent(textGuide); this._textGuide = null; this.markRedraw(); } }; Element2.prototype.markRedraw = function() { this.__dirty |= REDRAW_BIT; var zr = this.__zr; if (zr) { if (this.__inHover) { zr.refreshHover(); } else { zr.refresh(); } } if (this.__hostTarget) { this.__hostTarget.markRedraw(); } }; Element2.prototype.dirty = function() { this.markRedraw(); }; Element2.prototype._toggleHoverLayerFlag = function(inHover) { this.__inHover = inHover; var textContent = this._textContent; var textGuide = this._textGuide; if (textContent) { textContent.__inHover = inHover; } if (textGuide) { textGuide.__inHover = inHover; } }; Element2.prototype.addSelfToZr = function(zr) { if (this.__zr === zr) { return; } this.__zr = zr; var animators = this.animators; if (animators) { for (var i = 0; i < animators.length; i++) { zr.animation.addAnimator(animators[i]); } } if (this._clipPath) { this._clipPath.addSelfToZr(zr); } if (this._textContent) { this._textContent.addSelfToZr(zr); } if (this._textGuide) { this._textGuide.addSelfToZr(zr); } }; Element2.prototype.removeSelfFromZr = function(zr) { if (!this.__zr) { return; } this.__zr = null; var animators = this.animators; if (animators) { for (var i = 0; i < animators.length; i++) { zr.animation.removeAnimator(animators[i]); } } if (this._clipPath) { this._clipPath.removeSelfFromZr(zr); } if (this._textContent) { this._textContent.removeSelfFromZr(zr); } if (this._textGuide) { this._textGuide.removeSelfFromZr(zr); } }; Element2.prototype.animate = function(key, loop, allowDiscreteAnimation) { var target = key ? this[key] : this; if (true) { if (!target) { logError('Property "' + key + '" is not existed in element ' + this.id); return; } } var animator = new Animator_default(target, loop, allowDiscreteAnimation); key && (animator.targetName = key); this.addAnimator(animator, key); return animator; }; Element2.prototype.addAnimator = function(animator, key) { var zr = this.__zr; var el = this; animator.during(function() { el.updateDuringAnimation(key); }).done(function() { var animators = el.animators; var idx = indexOf(animators, animator); if (idx >= 0) { animators.splice(idx, 1); } }); this.animators.push(animator); if (zr) { zr.animation.addAnimator(animator); } zr && zr.wakeUp(); }; Element2.prototype.updateDuringAnimation = function(key) { this.markRedraw(); }; Element2.prototype.stopAnimation = function(scope, forwardToLast) { var animators = this.animators; var len2 = animators.length; var leftAnimators = []; for (var i = 0; i < len2; i++) { var animator = animators[i]; if (!scope || scope === animator.scope) { animator.stop(forwardToLast); } else { leftAnimators.push(animator); } } this.animators = leftAnimators; return this; }; Element2.prototype.animateTo = function(target, cfg, animationProps) { animateTo(this, target, cfg, animationProps); }; Element2.prototype.animateFrom = function(target, cfg, animationProps) { animateTo(this, target, cfg, animationProps, true); }; Element2.prototype._transitionState = function(stateName, target, cfg, animationProps) { var animators = animateTo(this, target, cfg, animationProps); for (var i = 0; i < animators.length; i++) { animators[i].__fromStateTransition = stateName; } }; Element2.prototype.getBoundingRect = function() { return null; }; Element2.prototype.getPaintRect = function() { return null; }; Element2.initDefaultProps = function() { var elProto = Element2.prototype; elProto.type = "element"; elProto.name = ""; elProto.ignore = elProto.silent = elProto.ignoreHostSilent = elProto.isGroup = elProto.draggable = elProto.dragging = elProto.ignoreClip = elProto.__inHover = false; elProto.__dirty = REDRAW_BIT; var logs = {}; function logDeprecatedError(key, xKey, yKey) { if (!logs[key + xKey + yKey]) { console.warn("DEPRECATED: '" + key + "' has been deprecated. use '" + xKey + "', '" + yKey + "' instead"); logs[key + xKey + yKey] = true; } } function createLegacyProperty(key, privateKey, xKey, yKey) { Object.defineProperty(elProto, key, { get: function() { if (true) { logDeprecatedError(key, xKey, yKey); } if (!this[privateKey]) { var pos = this[privateKey] = []; enhanceArray(this, pos); } return this[privateKey]; }, set: function(pos) { if (true) { logDeprecatedError(key, xKey, yKey); } this[xKey] = pos[0]; this[yKey] = pos[1]; this[privateKey] = pos; enhanceArray(this, pos); } }); function enhanceArray(self2, pos) { Object.defineProperty(pos, 0, { get: function() { return self2[xKey]; }, set: function(val) { self2[xKey] = val; } }); Object.defineProperty(pos, 1, { get: function() { return self2[yKey]; }, set: function(val) { self2[yKey] = val; } }); } } if (Object.defineProperty) { createLegacyProperty("position", "_legacyPos", "x", "y"); createLegacyProperty("scale", "_legacyScale", "scaleX", "scaleY"); createLegacyProperty("origin", "_legacyOrigin", "originX", "originY"); } }(); return Element2; }(); mixin(Element, Eventful_default); mixin(Element, Transformable_default); function animateTo(animatable, target, cfg, animationProps, reverse) { cfg = cfg || {}; var animators = []; animateToShallow(animatable, "", animatable, target, cfg, animationProps, animators, reverse); var finishCount = animators.length; var doneHappened = false; var cfgDone = cfg.done; var cfgAborted = cfg.aborted; var doneCb = function() { doneHappened = true; finishCount--; if (finishCount <= 0) { doneHappened ? cfgDone && cfgDone() : cfgAborted && cfgAborted(); } }; var abortedCb = function() { finishCount--; if (finishCount <= 0) { doneHappened ? cfgDone && cfgDone() : cfgAborted && cfgAborted(); } }; if (!finishCount) { cfgDone && cfgDone(); } if (animators.length > 0 && cfg.during) { animators[0].during(function(target2, percent) { cfg.during(percent); }); } for (var i = 0; i < animators.length; i++) { var animator = animators[i]; if (doneCb) { animator.done(doneCb); } if (abortedCb) { animator.aborted(abortedCb); } if (cfg.force) { animator.duration(cfg.duration); } animator.start(cfg.easing); } return animators; } function copyArrShallow(source, target, len2) { for (var i = 0; i < len2; i++) { source[i] = target[i]; } } function is2DArray(value) { return isArrayLike(value[0]); } function copyValue(target, source, key) { if (isArrayLike(source[key])) { if (!isArrayLike(target[key])) { target[key] = []; } if (isTypedArray(source[key])) { var len2 = source[key].length; if (target[key].length !== len2) { target[key] = new source[key].constructor(len2); copyArrShallow(target[key], source[key], len2); } } else { var sourceArr = source[key]; var targetArr = target[key]; var len0 = sourceArr.length; if (is2DArray(sourceArr)) { var len1 = sourceArr[0].length; for (var i = 0; i < len0; i++) { if (!targetArr[i]) { targetArr[i] = Array.prototype.slice.call(sourceArr[i]); } else { copyArrShallow(targetArr[i], sourceArr[i], len1); } } } else { copyArrShallow(targetArr, sourceArr, len0); } targetArr.length = sourceArr.length; } } else { target[key] = source[key]; } } function isValueSame(val1, val2) { return val1 === val2 || isArrayLike(val1) && isArrayLike(val2) && is1DArraySame(val1, val2); } function is1DArraySame(arr0, arr1) { var len2 = arr0.length; if (len2 !== arr1.length) { return false; } for (var i = 0; i < len2; i++) { if (arr0[i] !== arr1[i]) { return false; } } return true; } function animateToShallow(animatable, topKey, animateObj, target, cfg, animationProps, animators, reverse) { var targetKeys = keys(target); var duration = cfg.duration; var delay = cfg.delay; var additive = cfg.additive; var setToFinal = cfg.setToFinal; var animateAll = !isObject(animationProps); var existsAnimators = animatable.animators; var animationKeys = []; for (var k = 0; k < targetKeys.length; k++) { var innerKey = targetKeys[k]; var targetVal = target[innerKey]; if (targetVal != null && animateObj[innerKey] != null && (animateAll || animationProps[innerKey])) { if (isObject(targetVal) && !isArrayLike(targetVal) && !isGradientObject(targetVal)) { if (topKey) { if (!reverse) { animateObj[innerKey] = targetVal; animatable.updateDuringAnimation(topKey); } continue; } animateToShallow(animatable, innerKey, animateObj[innerKey], targetVal, cfg, animationProps && animationProps[innerKey], animators, reverse); } else { animationKeys.push(innerKey); } } else if (!reverse) { animateObj[innerKey] = targetVal; animatable.updateDuringAnimation(topKey); animationKeys.push(innerKey); } } var keyLen = animationKeys.length; if (!additive && keyLen) { for (var i = 0; i < existsAnimators.length; i++) { var animator = existsAnimators[i]; if (animator.targetName === topKey) { var allAborted = animator.stopTracks(animationKeys); if (allAborted) { var idx = indexOf(existsAnimators, animator); existsAnimators.splice(idx, 1); } } } } if (!cfg.force) { animationKeys = filter(animationKeys, function(key) { return !isValueSame(target[key], animateObj[key]); }); keyLen = animationKeys.length; } if (keyLen > 0 || cfg.force && !animators.length) { var revertedSource = void 0; var reversedTarget = void 0; var sourceClone = void 0; if (reverse) { reversedTarget = {}; if (setToFinal) { revertedSource = {}; } for (var i = 0; i < keyLen; i++) { var innerKey = animationKeys[i]; reversedTarget[innerKey] = animateObj[innerKey]; if (setToFinal) { revertedSource[innerKey] = target[innerKey]; } else { animateObj[innerKey] = target[innerKey]; } } } else if (setToFinal) { sourceClone = {}; for (var i = 0; i < keyLen; i++) { var innerKey = animationKeys[i]; sourceClone[innerKey] = cloneValue(animateObj[innerKey]); copyValue(animateObj, target, innerKey); } } var animator = new Animator_default(animateObj, false, false, additive ? filter(existsAnimators, function(animator2) { return animator2.targetName === topKey; }) : null); animator.targetName = topKey; if (cfg.scope) { animator.scope = cfg.scope; } if (setToFinal && revertedSource) { animator.whenWithKeys(0, revertedSource, animationKeys); } if (sourceClone) { animator.whenWithKeys(0, sourceClone, animationKeys); } animator.whenWithKeys(duration == null ? 500 : duration, reverse ? reversedTarget : target, animationKeys).delay(delay || 0); animatable.addAnimator(animator, topKey); animators.push(animator); } } var Element_default = Element; // ../node_modules/.pnpm/zrender@6.0.0/node_modules/zrender/lib/graphic/Group.js var Group = function(_super) { __extends(Group2, _super); function Group2(opts) { var _this = _super.call(this) || this; _this.isGroup = true; _this._children = []; _this.attr(opts); return _this; } Group2.prototype.childrenRef = function() { return this._children; }; Group2.prototype.children = function() { return this._children.slice(); }; Group2.prototype.childAt = function(idx) { return this._children[idx]; }; Group2.prototype.childOfName = function(name) { var children = this._children; for (var i = 0; i < children.length; i++) { if (children[i].name === name) { return children[i]; } } }; Group2.prototype.childCount = function() { return this._children.length; }; Group2.prototype.add = function(child) { if (child) { if (child !== this && child.parent !== this) { this._children.push(child); this._doAdd(child); } if (true) { if (child.__hostTarget) { throw "This elemenet has been used as an attachment"; } } } return this; }; Group2.prototype.addBefore = function(child, nextSibling) { if (child && child !== this && child.parent !== this && nextSibling && nextSibling.parent === this) { var children = this._children; var idx = children.indexOf(nextSibling); if (idx >= 0) { children.splice(idx, 0, child); this._doAdd(child); } } return this; }; Group2.prototype.replace = function(oldChild, newChild) { var idx = indexOf(this._children, oldChild); if (idx >= 0) { this.replaceAt(newChild, idx); } return this; }; Group2.prototype.replaceAt = function(child, index) { var children = this._children; var old = children[index]; if (child && child !== this && child.parent !== this && child !== old) { children[index] = child; old.parent = null; var zr = this.__zr; if (zr) { old.removeSelfFromZr(zr); } this._doAdd(child); } return this; }; Group2.prototype._doAdd = function(child) { if (child.parent) { child.parent.remove(child); } child.parent = this; var zr = this.__zr; if (zr && zr !== child.__zr) { child.addSelfToZr(zr); } zr && zr.refresh(); }; Group2.prototype.remove = function(child) { var zr = this.__zr; var children = this._children; var idx = 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; }; Group2.prototype.removeAll = function() { var children = this._children; var zr = this.__zr; for (var i = 0; i < children.length; i++) { var child = children[i]; if (zr) { child.removeSelfFromZr(zr); } child.parent = null; } children.length = 0; return this; }; Group2.prototype.eachChild = function(cb, context) { var children = this._children; for (var i = 0; i < children.length; i++) { var child = children[i]; cb.call(context, child, i); } return this; }; Group2.prototype.traverse = function(cb, context) { for (var i = 0; i < this._children.length; i++) { var child = this._children[i]; var stopped = cb.call(context, child); if (child.isGroup && !stopped) { child.traverse(cb, context); } } return this; }; Group2.prototype.addSelfToZr = function(zr) { _super.prototype.addSelfToZr.call(this, zr); for (var i = 0; i < this._children.length; i++) { var child = this._children[i]; child.addSelfToZr(zr); } }; Group2.prototype.removeSelfFromZr = function(zr) { _super.prototype.removeSelfFromZr.call(this, zr); for (var i = 0; i < this._children.length; i++) { var child = this._children[i]; child.removeSelfFromZr(zr); } }; Group2.prototype.getBoundingRect = function(includeChildren) { var tmpRect3 = new BoundingRect_default(0, 0, 0, 0); var children = includeChildren || this._children; var tmpMat = []; var rect = null; for (var i = 0; i < children.length; i++) { var child = children[i]; if (child.ignore || child.invisible) { continue; } var childRect = child.getBoundingRect(); var transform = child.getLocalTransform(tmpMat); if (transform) { BoundingRect_default.applyTransform(tmpRect3, childRect, transform); rect = rect || tmpRect3.clone(); rect.union(tmpRect3); } else { rect = rect || childRect.clone(); rect.union(childRect); } } return rect || tmpRect3; }; return Group2; }(Element_default); Group.prototype.type = "group"; var Group_default = Group; // ../node_modules/.pnpm/zrender@6.0.0/node_modules/zrender/lib/zrender.js var painterCtors = {}; var instances = {}; function delInstance(id) { delete instances[id]; } function isDarkMode(backgroundColor) { if (!backgroundColor) { return false; } if (typeof backgroundColor === "string") { return lum(backgroundColor, 1) < DARK_MODE_THRESHOLD; } else if (backgroundColor.colorStops) { var colorStops = backgroundColor.colorStops; var totalLum = 0; var len2 = colorStops.length; for (var i = 0; i < len2; i++) { totalLum += lum(colorStops[i].color, 1); } totalLum /= len2; return totalLum < DARK_MODE_THRESHOLD; } return false; } var ZRender = function() { function ZRender2(id, dom, opts) { var _this = this; this._sleepAfterStill = 10; this._stillFrameAccum = 0; this._needsRefresh = true; this._needsRefreshHover = true; this._darkMode = false; opts = opts || {}; this.dom = dom; this.id = id; var storage = new Storage_default(); var rendererType = opts.renderer || "canvas"; if (!painterCtors[rendererType]) { rendererType = keys(painterCtors)[0]; } if (true) { if (!painterCtors[rendererType]) { throw new Error("Renderer '" + rendererType + "' is not imported. Please import it first."); } } opts.useDirtyRect = opts.useDirtyRect == null ? false : opts.useDirtyRect; var painter = new painterCtors[rendererType](dom, storage, opts, id); var ssrMode = opts.ssr || painter.ssrOnly; this.storage = storage; this.painter = painter; var handlerProxy = !env_default.node && !env_default.worker && !ssrMode ? new HandlerProxy_default(painter.getViewportRoot(), painter.root) : null; var useCoarsePointer = opts.useCoarsePointer; var usePointerSize = useCoarsePointer == null || useCoarsePointer === "auto" ? env_default.touchEventsSupported : !!useCoarsePointer; var defaultPointerSize = 44; var pointerSize; if (usePointerSize) { pointerSize = retrieve2(opts.pointerSize, defaultPointerSize); } this.handler = new Handler_default(storage, painter, handlerProxy, painter.root, pointerSize); this.animation = new Animation_default({ stage: { update: ssrMode ? null : function() { return _this._flush(true); } } }); if (!ssrMode) { this.animation.start(); } } ZRender2.prototype.add = function(el) { if (this._disposed || !el) { return; } this.storage.addRoot(el); el.addSelfToZr(this); this.refresh(); }; ZRender2.prototype.remove = function(el) { if (this._disposed || !el) { return; } this.storage.delRoot(el); el.removeSelfFromZr(this); this.refresh(); }; ZRender2.prototype.configLayer = function(zLevel, config) { if (this._disposed) { return; } if (this.painter.configLayer) { this.painter.configLayer(zLevel, config); } this.refresh(); }; ZRender2.prototype.setBackgroundColor = function(backgroundColor) { if (this._disposed) { return; } if (this.painter.setBackgroundColor) { this.painter.setBackgroundColor(backgroundColor); } this.refresh(); this._backgroundColor = backgroundColor; this._darkMode = isDarkMode(backgroundColor); }; ZRender2.prototype.getBackgroundColor = function() { return this._backgroundColor; }; ZRender2.prototype.setDarkMode = function(darkMode) { this._darkMode = darkMode; }; ZRender2.prototype.isDarkMode = function() { return this._darkMode; }; ZRender2.prototype.refreshImmediately = function(fromInside) { if (this._disposed) { return; } if (!fromInside) { this.animation.update(true); } this._needsRefresh = false; this.painter.refresh(); this._needsRefresh = false; }; ZRender2.prototype.refresh = function() { if (this._disposed) { return; } this._needsRefresh = true; this.animation.start(); }; ZRender2.prototype.flush = function() { if (this._disposed) { return; } this._flush(false); }; ZRender2.prototype._flush = function(fromInside) { var triggerRendered; var start2 = getTime(); if (this._needsRefresh) { triggerRendered = true; this.refreshImmediately(fromInside); } if (this._needsRefreshHover) { triggerRendered = true; this.refreshHoverImmediately(); } var end2 = getTime(); if (triggerRendered) { this._stillFrameAccum = 0; this.trigger("rendered", { elapsedTime: end2 - start2 }); } else if (this._sleepAfterStill > 0) { this._stillFrameAccum++; if (this._stillFrameAccum > this._sleepAfterStill) { this.animation.stop(); } } }; ZRender2.prototype.setSleepAfterStill = function(stillFramesCount) { this._sleepAfterStill = stillFramesCount; }; ZRender2.prototype.wakeUp = function() { if (this._disposed) { return; } this.animation.start(); this._stillFrameAccum = 0; }; ZRender2.prototype.refreshHover = function() { this._needsRefreshHover = true; }; ZRender2.prototype.refreshHoverImmediately = function() { if (this._disposed) { return; } this._needsRefreshHover = false; if (this.painter.refreshHover && this.painter.getType() === "canvas") { this.painter.refreshHover(); } }; ZRender2.prototype.resize = function(opts) { if (this._disposed) { return; } opts = opts || {}; this.painter.resize(opts.width, opts.height); this.handler.resize(); }; ZRender2.prototype.clearAnimation = function() { if (this._disposed) { return; } this.animation.clear(); }; ZRender2.prototype.getWidth = function() { if (this._disposed) { return; } return this.painter.getWidth(); }; ZRender2.prototype.getHeight = function() { if (this._disposed) { return; } return this.painter.getHeight(); }; ZRender2.prototype.setCursorStyle = function(cursorStyle) { if (this._disposed) { return; } this.handler.setCursorStyle(cursorStyle); }; ZRender2.prototype.findHover = function(x, y) { if (this._disposed) { return; } return this.handler.findHover(x, y); }; ZRender2.prototype.on = function(eventName, eventHandler, context) { if (!this._disposed) { this.handler.on(eventName, eventHandler, context); } return this; }; ZRender2.prototype.off = function(eventName, eventHandler) { if (this._disposed) { return; } this.handler.off(eventName, eventHandler); }; ZRender2.prototype.trigger = function(eventName, event) { if (this._disposed) { return; } this.handler.trigger(eventName, event); }; ZRender2.prototype.clear = function() { if (this._disposed) { return; } var roots2 = this.storage.getRoots(); for (var i = 0; i < roots2.length; i++) { if (roots2[i] instanceof Group_default) { roots2[i].removeSelfFromZr(this); } } this.storage.delAllRoots(); this.painter.clear(); }; ZRender2.prototype.dispose = function() { 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); }; return ZRender2; }(); function init(dom, opts) { var zr = new ZRender(guid(), dom, opts); instances[zr.id] = zr; return zr; } function dispose(zr) { zr.dispose(); } function disposeAll() { for (var key in instances) { if (instances.hasOwnProperty(key)) { instances[key].dispose(); } } instances = {}; } function getInstance(id) { return instances[id]; } function registerPainter(name, Ctor) { painterCtors[name] = Ctor; } var ssrDataGetter; function getElementSSRData(el) { if (typeof ssrDataGetter === "function") { return ssrDataGetter(el); } } function registerSSRDataGetter(getter) { ssrDataGetter = getter; } var version = "6.0.0"; // ../node_modules/.pnpm/zrender@6.0.0/node_modules/zrender/lib/graphic/Displayable.js var STYLE_MAGIC_KEY = "__zr_style_" + Math.round(Math.random() * 10); var DEFAULT_COMMON_STYLE = { shadowBlur: 0, shadowOffsetX: 0, shadowOffsetY: 0, shadowColor: "#000", opacity: 1, blend: "source-over" }; var DEFAULT_COMMON_ANIMATION_PROPS = { style: { shadowBlur: true, shadowOffsetX: true, shadowOffsetY: true, shadowColor: true, opacity: true } }; DEFAULT_COMMON_STYLE[STYLE_MAGIC_KEY] = true; var PRIMARY_STATES_KEYS2 = ["z", "z2", "invisible"]; var PRIMARY_STATES_KEYS_IN_HOVER_LAYER = ["invisible"]; var Displayable = function(_super) { __extends(Displayable2, _super); function Displayable2(props) { return _super.call(this, props) || this; } Displayable2.prototype._init = function(props) { var keysArr = keys(props); for (var i = 0; i < keysArr.length; i++) { var key = keysArr[i]; if (key === "style") { this.useStyle(props[key]); } else { _super.prototype.attrKV.call(this, key, props[key]); } } if (!this.style) { this.useStyle({}); } }; Displayable2.prototype.beforeBrush = function() { }; Displayable2.prototype.afterBrush = function() { }; Displayable2.prototype.innerBeforeBrush = function() { }; Displayable2.prototype.innerAfterBrush = function() { }; Displayable2.prototype.shouldBePainted = function(viewWidth, viewHeight, considerClipPath, considerAncestors) { var m = this.transform; if (this.ignore || this.invisible || this.style.opacity === 0 || this.culling && isDisplayableCulled(this, viewWidth, viewHeight) || m && !m[0] && !m[3]) { return false; } if (considerClipPath && this.__clipPaths && this.__clipPaths.length) { for (var i = 0; i < this.__clipPaths.length; ++i) { if (this.__clipPaths[i].isZeroArea()) { return false; } } } if (considerAncestors && this.parent) { var parent_1 = this.parent; while (parent_1) { if (parent_1.ignore) { return false; } parent_1 = parent_1.parent; } } return true; }; Displayable2.prototype.contain = function(x, y) { return this.rectContain(x, y); }; Displayable2.prototype.traverse = function(cb, context) { cb.call(context, this); }; Displayable2.prototype.rectContain = function(x, y) { var coord = this.transformCoordToLocal(x, y); var rect = this.getBoundingRect(); return rect.contain(coord[0], coord[1]); }; Displayable2.prototype.getPaintRect = function() { var rect = this._paintRect; if (!this._paintRect || this.__dirty) { var transform = this.transform; var elRect = this.getBoundingRect(); var style = this.style; var shadowSize = style.shadowBlur || 0; var shadowOffsetX = style.shadowOffsetX || 0; var shadowOffsetY = style.shadowOffsetY || 0; rect = this._paintRect || (this._paintRect = new BoundingRect_default(0, 0, 0, 0)); if (transform) { BoundingRect_default.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); } var 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; }; Displayable2.prototype.setPrevPaintRect = function(paintRect) { if (paintRect) { this._prevPaintRect = this._prevPaintRect || new BoundingRect_default(0, 0, 0, 0); this._prevPaintRect.copy(paintRect); } else { this._prevPaintRect = null; } }; Displayable2.prototype.getPrevPaintRect = function() { return this._prevPaintRect; }; Displayable2.prototype.animateStyle = function(loop) { return this.animate("style", loop); }; Displayable2.prototype.updateDuringAnimation = function(targetKey) { if (targetKey === "style") { this.dirtyStyle(); } else { this.markRedraw(); } }; Displayable2.prototype.attrKV = function(key, value) { if (key !== "style") { _super.prototype.attrKV.call(this, key, value); } else { if (!this.style) { this.useStyle(value); } else { this.setStyle(value); } } }; Displayable2.prototype.setStyle = function(keyOrObj, value) { if (typeof keyOrObj === "string") { this.style[keyOrObj] = value; } else { extend(this.style, keyOrObj); } this.dirtyStyle(); return this; }; Displayable2.prototype.dirtyStyle = function(notRedraw) { if (!notRedraw) { this.markRedraw(); } this.__dirty |= STYLE_CHANGED_BIT; if (this._rect) { this._rect = null; } }; Displayable2.prototype.dirty = function() { this.dirtyStyle(); }; Displayable2.prototype.styleChanged = function() { return !!(this.__dirty & STYLE_CHANGED_BIT); }; Displayable2.prototype.styleUpdated = function() { this.__dirty &= ~STYLE_CHANGED_BIT; }; Displayable2.prototype.createStyle = function(obj) { return createObject(DEFAULT_COMMON_STYLE, obj); }; Displayable2.prototype.useStyle = function(obj) { if (!obj[STYLE_MAGIC_KEY]) { obj = this.createStyle(obj); } if (this.__inHover) { this.__hoverStyle = obj; } else { this.style = obj; } this.dirtyStyle(); }; Displayable2.prototype.isStyleObject = function(obj) { return obj[STYLE_MAGIC_KEY]; }; Displayable2.prototype._innerSaveToNormal = function(toState) { _super.prototype._innerSaveToNormal.call(this, toState); var normalState = this._normalState; if (toState.style && !normalState.style) { normalState.style = this._mergeStyle(this.createStyle(), this.style); } this._savePrimaryToNormal(toState, normalState, PRIMARY_STATES_KEYS2); }; Displayable2.prototype._applyStateObj = function(stateName, state, normalState, keepCurrentStates, transition, animationCfg) { _super.prototype._applyStateObj.call(this, stateName, state, normalState, keepCurrentStates, transition, animationCfg); var needsRestoreToNormal = !(state && keepCurrentStates); var targetStyle; if (state && state.style) { 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) { var sourceStyle = this.style; this.style = this.createStyle(needsRestoreToNormal ? {} : sourceStyle); if (needsRestoreToNormal) { var changedKeys = keys(sourceStyle); for (var i = 0; i < changedKeys.length; i++) { var key = changedKeys[i]; if (key in targetStyle) { targetStyle[key] = targetStyle[key]; this.style[key] = sourceStyle[key]; } } } var targetKeys = keys(targetStyle); for (var i = 0; i < targetKeys.length; i++) { var key = targetKeys[i]; this.style[key] = this.style[key]; } this._transitionState(stateName, { style: targetStyle }, animationCfg, this.getAnimationStyleProps()); } else { this.useStyle(targetStyle); } } var statesKeys = this.__inHover ? PRIMARY_STATES_KEYS_IN_HOVER_LAYER : PRIMARY_STATES_KEYS2; for (var i = 0; i < statesKeys.length; i++) { var key = statesKeys[i]; if (state && state[key] != null) { this[key] = state[key]; } else if (needsRestoreToNormal) { if (normalState[key] != null) { this[key] = normalState[key]; } } } }; Displayable2.prototype._mergeStates = function(states) { var mergedState = _super.prototype._mergeStates.call(this, states); var mergedStyle; for (var i = 0; i < states.length; i++) { var state = states[i]; if (state.style) { mergedStyle = mergedStyle || {}; this._mergeStyle(mergedStyle, state.style); } } if (mergedStyle) { mergedState.style = mergedStyle; } return mergedState; }; Displayable2.prototype._mergeStyle = function(targetStyle, sourceStyle) { extend(targetStyle, sourceStyle); return targetStyle; }; Displayable2.prototype.getAnimationStyleProps = function() { return DEFAULT_COMMON_ANIMATION_PROPS; }; Displayable2.initDefaultProps = function() { var dispProto = Displayable2.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; }(); return Displayable2; }(Element_default); var tmpRect2 = new BoundingRect_default(0, 0, 0, 0); var viewRect = new BoundingRect_default(0, 0, 0, 0); function isDisplayableCulled(el, width, height) { tmpRect2.copy(el.getBoundingRect()); if (el.transform) { tmpRect2.applyTransform(el.transform); } viewRect.width = width; viewRect.height = height; return !tmpRect2.intersect(viewRect); } var Displayable_default = Displayable; // ../node_modules/.pnpm/zrender@6.0.0/node_modules/zrender/lib/core/bbox.js var mathMin2 = Math.min; var mathMax2 = Math.max; var mathSin = Math.sin; var mathCos = Math.cos; var PI2 = Math.PI * 2; var start = create2(); var end = create2(); var extremity = create2(); function fromPoints(points, min3, max3) { if (points.length === 0) { return; } var p = points[0]; var left = p[0]; var right = p[0]; var top = p[1]; var bottom = p[1]; for (var i = 1; i < points.length; i++) { p = points[i]; left = mathMin2(left, p[0]); right = mathMax2(right, p[0]); top = mathMin2(top, p[1]); bottom = mathMax2(bottom, p[1]); } min3[0] = left; min3[1] = top; max3[0] = right; max3[1] = bottom; } function fromLine(x0, y0, x1, y1, min3, max3) { min3[0] = mathMin2(x0, x1); min3[1] = mathMin2(y0, y1); max3[0] = mathMax2(x0, x1); max3[1] = mathMax2(y0, y1); } var xDim = []; var yDim = []; function fromCubic(x0, y0, x1, y1, x2, y2, x3, y3, min3, max3) { var cubicExtrema2 = cubicExtrema; var cubicAt2 = cubicAt; var n = cubicExtrema2(x0, x1, x2, x3, xDim); min3[0] = Infinity; min3[1] = Infinity; max3[0] = -Infinity; max3[1] = -Infinity; for (var i = 0; i < n; i++) { var x = cubicAt2(x0, x1, x2, x3, xDim[i]); min3[0] = mathMin2(x, min3[0]); max3[0] = mathMax2(x, max3[0]); } n = cubicExtrema2(y0, y1, y2, y3, yDim); for (var i = 0; i < n; i++) { var y = cubicAt2(y0, y1, y2, y3, yDim[i]); min3[1] = mathMin2(y, min3[1]); max3[1] = mathMax2(y, max3[1]); } min3[0] = mathMin2(x0, min3[0]); max3[0] = mathMax2(x0, max3[0]); min3[0] = mathMin2(x3, min3[0]); max3[0] = mathMax2(x3, max3[0]); min3[1] = mathMin2(y0, min3[1]); max3[1] = mathMax2(y0, max3[1]); min3[1] = mathMin2(y3, min3[1]); max3[1] = mathMax2(y3, max3[1]); } function fromQuadratic(x0, y0, x1, y1, x2, y2, min3, max3) { var quadraticExtremum2 = quadraticExtremum; var quadraticAt2 = quadraticAt; var tx = mathMax2(mathMin2(quadraticExtremum2(x0, x1, x2), 1), 0); var ty = mathMax2(mathMin2(quadraticExtremum2(y0, y1, y2), 1), 0); var x = quadraticAt2(x0, x1, x2, tx); var y = quadraticAt2(y0, y1, y2, ty); min3[0] = mathMin2(x0, x2, x); min3[1] = mathMin2(y0, y2, y); max3[0] = mathMax2(x0, x2, x); max3[1] = mathMax2(y0, y2, y); } function fromArc(x, y, rx, ry, startAngle, endAngle, anticlockwise, min3, max3) { var vec2Min = min; var vec2Max = max; var diff = Math.abs(startAngle - endAngle); if (diff % PI2 < 1e-4 && diff > 1e-4) { min3[0] = x - rx; min3[1] = y - ry; max3[0] = x + rx; max3[1] = y + ry; return; } start[0] = mathCos(startAngle) * rx + x; start[1] = mathSin(startAngle) * ry + y; end[0] = mathCos(endAngle) * rx + x; end[1] = mathSin(endAngle) * ry + y; vec2Min(min3, start, end); vec2Max(max3, start, end); startAngle = startAngle % PI2; if (startAngle < 0) { startAngle = startAngle + PI2; } endAngle = endAngle % PI2; if (endAngle < 0) { endAngle = endAngle + PI2; } if (startAngle > endAngle && !anticlockwise) { endAngle += PI2; } else if (startAngle < endAngle && anticlockwise) { startAngle += PI2; } if (anticlockwise) { var tmp = endAngle; endAngle = startAngle; startAngle = tmp; } for (var angle = 0; angle < endAngle; angle += Math.PI / 2) { if (angle > startAngle) { extremity[0] = mathCos(angle) * rx + x; extremity[1] = mathSin(angle) * ry + y; vec2Min(min3, extremity, min3); vec2Max(max3, extremity, max3); } } } // ../node_modules/.pnpm/zrender@6.0.0/node_modules/zrender/lib/core/PathProxy.js var CMD = { M: 1, L: 2, C: 3, Q: 4, A: 5, Z: 6, R: 7 }; var tmpOutX = []; var tmpOutY = []; var min2 = []; var max2 = []; var min22 = []; var max22 = []; var mathMin3 = Math.min; var mathMax3 = Math.max; var mathCos2 = Math.cos; var mathSin2 = Math.sin; var mathAbs2 = Math.abs; var PI = Math.PI; var PI22 = PI * 2; var hasTypedArray = typeof Float32Array !== "undefined"; var tmpAngles = []; function modPI2(radian) { var n = Math.round(radian / PI * 1e8) / 1e8; return n % 2 * PI; } function normalizeArcAngles(angles, anticlockwise) { var newStartAngle = modPI2(angles[0]); if (newStartAngle < 0) { newStartAngle += PI22; } var delta = newStartAngle - angles[0]; var newEndAngle = angles[1]; newEndAngle += delta; if (!anticlockwise && newEndAngle - newStartAngle >= PI22) { newEndAngle = newStartAngle + PI22; } else if (anticlockwise && newStartAngle - newEndAngle >= PI22) { newEndAngle = newStartAngle - PI22; } else if (!anticlockwise && newStartAngle > newEndAngle) { newEndAngle = newStartAngle + (PI22 - modPI2(newStartAngle - newEndAngle)); } else if (anticlockwise && newStartAngle < newEndAngle) { newEndAngle = newStartAngle - (PI22 - modPI2(newEndAngle - newStartAngle)); } angles[0] = newStartAngle; angles[1] = newEndAngle; } var PathProxy = function() { function PathProxy2(notSaveData) { this.dpr = 1; this._xi = 0; this._yi = 0; this._x0 = 0; this._y0 = 0; this._len = 0; if (notSaveData) { this._saveData = false; } if (this._saveData) { this.data = []; } } PathProxy2.prototype.increaseVersion = function() { this._version++; }; PathProxy2.prototype.getVersion = function() { return this._version; }; PathProxy2.prototype.setScale = function(sx, sy, segmentIgnoreThreshold) { segmentIgnoreThreshold = segmentIgnoreThreshold || 0; if (segmentIgnoreThreshold > 0) { this._ux = mathAbs2(segmentIgnoreThreshold / devicePixelRatio / sx) || 0; this._uy = mathAbs2(segmentIgnoreThreshold / devicePixelRatio / sy) || 0; } }; PathProxy2.prototype.setDPR = function(dpr2) { this.dpr = dpr2; }; PathProxy2.prototype.setContext = function(ctx) { this._ctx = ctx; }; PathProxy2.prototype.getContext = function() { return this._ctx; }; PathProxy2.prototype.beginPath = function() { this._ctx && this._ctx.beginPath(); this.reset(); return this; }; PathProxy2.prototype.reset = function() { if (this._saveData) { this._len = 0; } if (this._pathSegLen) { this._pathSegLen = null; this._pathLen = 0; } this._version++; }; PathProxy2.prototype.moveTo = function(x, y) { this._drawPendingPt(); this.addData(CMD.M, x, y); this._ctx && this._ctx.moveTo(x, y); this._x0 = x; this._y0 = y; this._xi = x; this._yi = y; return this; }; PathProxy2.prototype.lineTo = function(x, y) { var dx = mathAbs2(x - this._xi); var dy = mathAbs2(y - this._yi); var exceedUnit = dx > this._ux || dy > this._uy; this.addData(CMD.L, x, y); if (this._ctx && exceedUnit) { this._ctx.lineTo(x, y); } if (exceedUnit) { this._xi = x; this._yi = y; this._pendingPtDist = 0; } else { var d2 = dx * dx + dy * dy; if (d2 > this._pendingPtDist) { this._pendingPtX = x; this._pendingPtY = y; this._pendingPtDist = d2; } } return this; }; PathProxy2.prototype.bezierCurveTo = function(x1, y1, x2, y2, x3, y3) { this._drawPendingPt(); this.addData(CMD.C, x1, y1, x2, y2, x3, y3); if (this._ctx) { this._ctx.bezierCurveTo(x1, y1, x2, y2, x3, y3); } this._xi = x3; this._yi = y3; return this; }; PathProxy2.prototype.quadraticCurveTo = function(x1, y1, x2, y2) { this._drawPendingPt(); this.addData(CMD.Q, x1, y1, x2, y2); if (this._ctx) { this._ctx.quadraticCurveTo(x1, y1, x2, y2); } this._xi = x2; this._yi = y2; return this; }; PathProxy2.prototype.arc = function(cx, cy, r, startAngle, endAngle, anticlockwise) { this._drawPendingPt(); tmpAngles[0] = startAngle; tmpAngles[1] = endAngle; normalizeArcAngles(tmpAngles, anticlockwise); startAngle = tmpAngles[0]; endAngle = tmpAngles[1]; var delta = endAngle - startAngle; this.addData(CMD.A, cx, cy, r, r, startAngle, delta, 0, anticlockwise ? 0 : 1); this._ctx && this._ctx.arc(cx, cy, r, startAngle, endAngle, anticlockwise); this._xi = mathCos2(endAngle) * r + cx; this._yi = mathSin2(endAngle) * r + cy; return this; }; PathProxy2.prototype.arcTo = function(x1, y1, x2, y2, radius) { this._drawPendingPt(); if (this._ctx) { this._ctx.arcTo(x1, y1, x2, y2, radius); } return this; }; PathProxy2.prototype.rect = function(x, y, w, h) { this._drawPendingPt(); this._ctx && this._ctx.rect(x, y, w, h); this.addData(CMD.R, x, y, w, h); return this; }; PathProxy2.prototype.closePath = function() { this._drawPendingPt(); this.addData(CMD.Z); var ctx = this._ctx; var x0 = this._x0; var y0 = this._y0; if (ctx) { ctx.closePath(); } this._xi = x0; this._yi = y0; return this; }; PathProxy2.prototype.fill = function(ctx) { ctx && ctx.fill(); this.toStatic(); }; PathProxy2.prototype.stroke = function(ctx) { ctx && ctx.stroke(); this.toStatic(); }; PathProxy2.prototype.len = function() { return this._len; }; PathProxy2.prototype.setData = function(data) { if (!this._saveData) { return; } var len2 = data.length; if (!(this.data && this.data.length === len2) && hasTypedArray) { this.data = new Float32Array(len2); } for (var i = 0; i < len2; i++) { this.data[i] = data[i]; } this._len = len2; }; PathProxy2.prototype.appendPath = function(path) { if (!this._saveData) { return; } if (!(path instanceof Array)) { path = [path]; } var len2 = path.length; var appendSize = 0; var offset = this._len; for (var i = 0; i < len2; i++) { appendSize += path[i].len(); } var oldData = this.data; if (hasTypedArray && (oldData instanceof Float32Array || !oldData)) { this.data = new Float32Array(offset + appendSize); if (offset > 0 && oldData) { for (var k = 0; k < offset; k++) { this.data[k] = oldData[k]; } } } for (var i = 0; i < len2; i++) { var appendPathData = path[i].data; for (var k = 0; k < appendPathData.length; k++) { this.data[offset++] = appendPathData[k]; } } this._len = offset; }; PathProxy2.prototype.addData = function(cmd, a, b, c, d, e, f, g, h) { if (!this._saveData) { return; } var data = this.data; if (this._len + arguments.length > data.length) { this._expandData(); data = this.data; } for (var i = 0; i < arguments.length; i++) { data[this._len++] = arguments[i]; } }; PathProxy2.prototype._drawPendingPt = function() { if (this._pendingPtDist > 0) { this._ctx && this._ctx.lineTo(this._pendingPtX, this._pendingPtY); this._pendingPtDist = 0; } }; PathProxy2.prototype._expandData = function() { if (!(this.data instanceof Array)) { var newData = []; for (var i = 0; i < this._len; i++) { newData[i] = this.data[i]; } this.data = newData; } }; PathProxy2.prototype.toStatic = function() { if (!this._saveData) { return; } this._drawPendingPt(); var data = this.data; if (data instanceof Array) { data.length = this._len; if (hasTypedArray && this._len > 11) { this.data = new Float32Array(data); } } }; PathProxy2.prototype.getBoundingRect = function() { min2[0] = min2[1] = min22[0] = min22[1] = Number.MAX_VALUE; max2[0] = max2[1] = max22[0] = max22[1] = -Number.MAX_VALUE; var data = this.data; var xi = 0; var yi = 0; var x0 = 0; var y0 = 0; var i; for (i = 0; i < this._len; ) { var cmd = data[i++]; var isFirst = i === 1; if (isFirst) { xi = data[i]; yi = data[i + 1]; x0 = xi; y0 = yi; } switch (cmd) { case CMD.M: xi = x0 = data[i++]; yi = y0 = data[i++]; min22[0] = x0; min22[1] = y0; max22[0] = x0; max22[1] = y0; break; case CMD.L: fromLine(xi, yi, data[i], data[i + 1], min22, max22); xi = data[i++]; yi = data[i++]; break; case CMD.C: fromCubic(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], min22, max22); xi = data[i++]; yi = data[i++]; break; case CMD.Q: fromQuadratic(xi, yi, data[i++], data[i++], data[i], data[i + 1], min22, max22); xi = data[i++]; yi = data[i++]; break; case CMD.A: var cx = data[i++]; var cy = data[i++]; var rx = data[i++]; var ry = data[i++]; var startAngle = data[i++]; var endAngle = data[i++] + startAngle; i += 1; var anticlockwise = !data[i++]; if (isFirst) { x0 = mathCos2(startAngle) * rx + cx; y0 = mathSin2(startAngle) * ry + cy; } fromArc(cx, cy, rx, ry, startAngle, endAngle, anticlockwise, min22, max22); xi = mathCos2(endAngle) * rx + cx; yi = mathSin2(endAngle) * ry + cy; break; case CMD.R: x0 = xi = data[i++]; y0 = yi = data[i++]; var width = data[i++]; var height = data[i++]; fromLine(x0, y0, x0 + width, y0 + height, min22, max22); break; case CMD.Z: xi = x0; yi = y0; break; } min(min2, min2, min22); max(max2, max2, max22); } if (i === 0) { min2[0] = min2[1] = max2[0] = max2[1] = 0; } return new BoundingRect_default(min2[0], min2[1], max2[0] - min2[0], max2[1] - min2[1]); }; PathProxy2.prototype._calculateLength = function() { var data = this.data; var len2 = this._len; var ux = this._ux; var uy = this._uy; var xi = 0; var yi = 0; var x0 = 0; var y0 = 0; if (!this._pathSegLen) { this._pathSegLen = []; } var pathSegLen = this._pathSegLen; var pathTotalLen = 0; var segCount = 0; for (var i = 0; i < len2; ) { var cmd = data[i++]; var isFirst = i === 1; if (isFirst) { xi = data[i]; yi = data[i + 1]; x0 = xi; y0 = yi; } var l = -1; switch (cmd) { case CMD.M: xi = x0 = data[i++]; yi = y0 = data[i++]; break; case CMD.L: { var x2 = data[i++]; var y2 = data[i++]; var dx = x2 - xi; var dy = y2 - yi; if (mathAbs2(dx) > ux || mathAbs2(dy) > uy || i === len2 - 1) { l = Math.sqrt(dx * dx + dy * dy); xi = x2; yi = y2; } break; } case CMD.C: { var x1 = data[i++]; var y1 = data[i++]; var x2 = data[i++]; var y2 = data[i++]; var x3 = data[i++]; var y3 = data[i++]; l = cubicLength(xi, yi, x1, y1, x2, y2, x3, y3, 10); xi = x3; yi = y3; break; } case CMD.Q: { var x1 = data[i++]; var y1 = data[i++]; var x2 = data[i++]; var y2 = data[i++]; l = quadraticLength(xi, yi, x1, y1, x2, y2, 10); xi = x2; yi = y2; break; } case CMD.A: var cx = data[i++]; var cy = data[i++]; var rx = data[i++]; var ry = data[i++]; var startAngle = data[i++]; var delta = data[i++]; var endAngle = delta + startAngle; i += 1; if (isFirst) { x0 = mathCos2(startAngle) * rx + cx; y0 = mathSin2(startAngle) * ry + cy; } l = mathMax3(rx, ry) * mathMin3(PI22, Math.abs(delta)); xi = mathCos2(endAngle) * rx + cx; yi = mathSin2(endAngle) * ry + cy; break; case CMD.R: { x0 = xi = data[i++]; y0 = yi = data[i++]; var width = data[i++]; var height = data[i++]; l = width * 2 + height * 2; break; } case CMD.Z: { var dx = x0 - xi; var dy = y0 - yi; l = Math.sqrt(dx * dx + dy * dy); xi = x0; yi = y0; break; } } if (l >= 0) { pathSegLen[segCount++] = l; pathTotalLen += l; } } this._pathLen = pathTotalLen; return pathTotalLen; }; PathProxy2.prototype.rebuildPath = function(ctx, percent) { var d = this.data; var ux = this._ux; var uy = this._uy; var len2 = this._len; var x0; var y0; var xi; var yi; var x; var y; var drawPart = percent < 1; var pathSegLen; var pathTotalLen; var accumLength = 0; var segCount = 0; var displayedLength; var pendingPtDist = 0; var pendingPtX; var pendingPtY; if (drawPart) { if (!this._pathSegLen) { this._calculateLength(); } pathSegLen = this._pathSegLen; pathTotalLen = this._pathLen; displayedLength = percent * pathTotalLen; if (!displayedLength) { return; } } lo: for (var i = 0; i < len2; ) { var cmd = d[i++]; var isFirst = i === 1; if (isFirst) { xi = d[i]; yi = d[i + 1]; x0 = xi; y0 = yi; } if (cmd !== CMD.L && pendingPtDist > 0) { ctx.lineTo(pendingPtX, pendingPtY); pendingPtDist = 0; } switch (cmd) { case CMD.M: x0 = xi = d[i++]; y0 = yi = d[i++]; ctx.moveTo(xi, yi); break; case CMD.L: { x = d[i++]; y = d[i++]; var dx = mathAbs2(x - xi); var dy = mathAbs2(y - yi); if (dx > ux || dy > uy) { if (drawPart) { var l = pathSegLen[segCount++]; if (accumLength + l > displayedLength) { var t = (displayedLength - accumLength) / l; ctx.lineTo(xi * (1 - t) + x * t, yi * (1 - t) + y * t); break lo; } accumLength += l; } ctx.lineTo(x, y); xi = x; yi = y; pendingPtDist = 0; } else { var d2 = dx * dx + dy * dy; if (d2 > pendingPtDist) { pendingPtX = x; pendingPtY = y; pendingPtDist = d2; } } break; } case CMD.C: { var x1 = d[i++]; var y1 = d[i++]; var x2 = d[i++]; var y2 = d[i++]; var x3 = d[i++]; var y3 = d[i++]; if (drawPart) { var l = pathSegLen[segCount++]; if (accumLength + l > displayedLength) { var t = (displayedLength - accumLength) / l; cubicSubdivide(xi, x1, x2, x3, t, tmpOutX); cubicSubdivide(yi, y1, y2, y3, t, tmpOutY); ctx.bezierCurveTo(tmpOutX[1], tmpOutY[1], tmpOutX[2], tmpOutY[2], tmpOutX[3], tmpOutY[3]); break lo; } accumLength += l; } ctx.bezierCurveTo(x1, y1, x2, y2, x3, y3); xi = x3; yi = y3; break; } case CMD.Q: { var x1 = d[i++]; var y1 = d[i++]; var x2 = d[i++]; var y2 = d[i++]; if (drawPart) { var l = pathSegLen[segCount++]; if (accumLength + l > displayedLength) { var t = (displayedLength - accumLength) / l; quadraticSubdivide(xi, x1, x2, t, tmpOutX); quadraticSubdivide(yi, y1, y2, t, tmpOutY); ctx.quadraticCurveTo(tmpOutX[1], tmpOutY[1], tmpOutX[2], tmpOutY[2]); break lo; } accumLength += l; } ctx.quadraticCurveTo(x1, y1, x2, y2); xi = x2; yi = y2; break; } case CMD.A: var cx = d[i++]; var cy = d[i++]; var rx = d[i++]; var ry = d[i++]; var startAngle = d[i++]; var delta = d[i++]; var psi = d[i++]; var anticlockwise = !d[i++]; var r = rx > ry ? rx : ry; var isEllipse = mathAbs2(rx - ry) > 1e-3; var endAngle = startAngle + delta; var breakBuild = false; if (drawPart) { var l = pathSegLen[segCount++]; if (accumLength + l > displayedLength) { endAngle = startAngle + delta * (displayedLength - accumLength) / l; breakBuild = true; } accumLength += l; } if (isEllipse && ctx.ellipse) { ctx.ellipse(cx, cy, rx, ry, psi, startAngle, endAngle, anticlockwise); } else { ctx.arc(cx, cy, r, startAngle, endAngle, anticlockwise); } if (breakBuild) { break lo; } if (isFirst) { x0 = mathCos2(startAngle) * rx + cx; y0 = mathSin2(startAngle) * ry + cy; } xi = mathCos2(endAngle) * rx + cx; yi = mathSin2(endAngle) * ry + cy; break; case CMD.R: x0 = xi = d[i]; y0 = yi = d[i + 1]; x = d[i++]; y = d[i++]; var width = d[i++]; var height = d[i++]; if (drawPart) { var l = pathSegLen[segCount++]; if (accumLength + l > displayedLength) { var d_1 = displayedLength - accumLength; ctx.moveTo(x, y); ctx.lineTo(x + mathMin3(d_1, width), y); d_1 -= width; if (d_1 > 0) { ctx.lineTo(x + width, y + mathMin3(d_1, height)); } d_1 -= height; if (d_1 > 0) { ctx.lineTo(x + mathMax3(width - d_1, 0), y + height); } d_1 -= width; if (d_1 > 0) { ctx.lineTo(x, y + mathMax3(height - d_1, 0)); } break lo; } accumLength += l; } ctx.rect(x, y, width, height); break; case CMD.Z: if (drawPart) { var l = pathSegLen[segCount++]; if (accumLength + l > displayedLength) { var t = (displayedLength - accumLength) / l; ctx.lineTo(xi * (1 - t) + x0 * t, yi * (1 - t) + y0 * t); break lo; } accumLength += l; } ctx.closePath(); xi = x0; yi = y0; } } }; PathProxy2.prototype.clone = function() { var newProxy = new PathProxy2(); var data = this.data; newProxy.data = data.slice ? data.slice() : Array.prototype.slice.call(data); newProxy._len = this._len; return newProxy; }; PathProxy2.prototype.canSave = function() { return !!this._saveData; }; PathProxy2.CMD = CMD; PathProxy2.initDefaultProps = function() { var proto = PathProxy2.prototype; proto._saveData = true; proto._ux = 0; proto._uy = 0; proto._pendingPtDist = 0; proto._version = 0; }(); return PathProxy2; }(); var PathProxy_default = PathProxy; // ../node_modules/.pnpm/zrender@6.0.0/node_modules/zrender/lib/graphic/helper/image.js var globalImageCache = new LRU_default(50); function findExistImage(newImageOrSrc) { if (typeof newImageOrSrc === "string") { var cachedImgObj = globalImageCache.get(newImageOrSrc); return cachedImgObj && cachedImgObj.image; } else { return newImageOrSrc; } } function createOrUpdateImage(newImageOrSrc, image, hostEl, onload, cbPayload) { if (!newImageOrSrc) { return image; } else if (typeof newImageOrSrc === "string") { if (image && image.__zrImageSrc === newImageOrSrc || !hostEl) { return image; } var cachedImgObj = globalImageCache.get(newImageOrSrc); var pendingWrap = { hostEl, cb: onload, cbPayload }; if (cachedImgObj) { image = cachedImgObj.image; !isImageReady(image) && cachedImgObj.pending.push(pendingWrap); } else { image = platformApi.loadImage(newImageOrSrc, imageOnLoad, imageOnLoad); image.__zrImageSrc = newImageOrSrc; globalImageCache.put(newImageOrSrc, image.__cachedImgObj = { image, pending: [pendingWrap] }); } return image; } else { return newImageOrSrc; } } function imageOnLoad() { var cachedImgObj = this.__cachedImgObj; this.onload = this.onerror = this.__cachedImgObj = null; for (var i = 0; i < cachedImgObj.pending.length; i++) { var pendingWrap = cachedImgObj.pending[i]; var cb = pendingWrap.cb; cb && cb(this, pendingWrap.cbPayload); pendingWrap.hostEl.dirty(); } cachedImgObj.pending.length = 0; } function isImageReady(image) { return image && image.width && image.height; } // ../node_modules/.pnpm/zrender@6.0.0/node_modules/zrender/lib/canvas/helper.js function isSafeNum(num) { return isFinite(num); } function createLinearGradient(ctx, obj, rect) { var x = obj.x == null ? 0 : obj.x; var x2 = obj.x2 == null ? 1 : obj.x2; var y = obj.y == null ? 0 : obj.y; var y2 = obj.y2 == null ? 0 : obj.y2; if (!obj.global) { x = x * rect.width + rect.x; x2 = x2 * rect.width + rect.x; y = y * rect.height + rect.y; y2 = y2 * rect.height + rect.y; } x = isSafeNum(x) ? x : 0; x2 = isSafeNum(x2) ? x2 : 1; y = isSafeNum(y) ? y : 0; y2 = isSafeNum(y2) ? y2 : 0; var canvasGradient = ctx.createLinearGradient(x, y, x2, y2); return canvasGradient; } function createRadialGradient(ctx, obj, rect) { var width = rect.width; var height = rect.height; var min3 = Math.min(width, height); var x = obj.x == null ? 0.5 : obj.x; var y = obj.y == null ? 0.5 : obj.y; var r = obj.r == null ? 0.5 : obj.r; if (!obj.global) { x = x * width + rect.x; y = y * height + rect.y; r = r * min3; } x = isSafeNum(x) ? x : 0.5; y = isSafeNum(y) ? y : 0.5; r = r >= 0 && isSafeNum(r) ? r : 0.5; var canvasGradient = ctx.createRadialGradient(x, y, 0, x, y, r); return canvasGradient; } function getCanvasGradient(ctx, obj, rect) { var canvasGradient = obj.type === "radial" ? createRadialGradient(ctx, obj, rect) : createLinearGradient(ctx, obj, rect); var colorStops = obj.colorStops; for (var i = 0; i < colorStops.length; i++) { canvasGradient.addColorStop(colorStops[i].offset, colorStops[i].color); } return canvasGradient; } function isClipPathChanged(clipPaths, prevClipPaths) { if (clipPaths === prevClipPaths || !clipPaths && !prevClipPaths) { return false; } if (!clipPaths || !prevClipPaths || clipPaths.length !== prevClipPaths.length) { return true; } for (var i = 0; i < clipPaths.length; i++) { if (clipPaths[i] !== prevClipPaths[i]) { return true; } } return false; } function parseInt10(val) { return parseInt(val, 10); } function getSize(root, whIdx, opts) { var wh = ["width", "height"][whIdx]; var cwh = ["clientWidth", "clientHeight"][whIdx]; var plt = ["paddingLeft", "paddingTop"][whIdx]; var prb = ["paddingRight", "paddingBottom"][whIdx]; if (opts[wh] != null && opts[wh] !== "auto") { return parseFloat(opts[wh]); } var stl = document.defaultView.getComputedStyle(root); return (root[cwh] || parseInt10(stl[wh]) || parseInt10(root.style[wh])) - (parseInt10(stl[plt]) || 0) - (parseInt10(stl[prb]) || 0) | 0; } // ../node_modules/.pnpm/zrender@6.0.0/node_modules/zrender/lib/contain/line.js function containStroke(x0, y0, x1, y1, lineWidth, x, y) { if (lineWidth === 0) { return false; } var _l = lineWidth; var _a = 0; var _b = x0; if (y > y0 + _l && y > y1 + _l || y < y0 - _l && y < y1 - _l || x > x0 + _l && x > x1 + _l || x < x0 - _l && x < x1 - _l) { return false; } if (x0 !== x1) { _a = (y0 - y1) / (x0 - x1); _b = (x0 * y1 - x1 * y0) / (x0 - x1); } else { return Math.abs(x - x0) <= _l / 2; } var tmp = _a * x - y + _b; var _s = tmp * tmp / (_a * _a + 1); return _s <= _l / 2 * _l / 2; } // ../node_modules/.pnpm/zrender@6.0.0/node_modules/zrender/lib/contain/cubic.js function containStroke2(x0, y0, x1, y1, x2, y2, x3, y3, lineWidth, x, y) { if (lineWidth === 0) { return false; } var _l = lineWidth; if (y > y0 + _l && y > y1 + _l && y > y2 + _l && y > y3 + _l || y < y0 - _l && y < y1 - _l && y < y2 - _l && y < y3 - _l || x > x0 + _l && x > x1 + _l && x > x2 + _l && x > x3 + _l || x < x0 - _l && x < x1 - _l && x < x2 - _l && x < x3 - _l) { return false; } var d = cubicProjectPoint(x0, y0, x1, y1, x2, y2, x3, y3, x, y, null); return d <= _l / 2; } // ../node_modules/.pnpm/zrender@6.0.0/node_modules/zrender/lib/contain/quadratic.js function containStroke3(x0, y0, x1, y1, x2, y2, lineWidth, x, y) { if (lineWidth === 0) { return false; } var _l = lineWidth; if (y > y0 + _l && y > y1 + _l && y > y2 + _l || y < y0 - _l && y < y1 - _l && y < y2 - _l || x > x0 + _l && x > x1 + _l && x > x2 + _l || x < x0 - _l && x < x1 - _l && x < x2 - _l) { return false; } var d = quadraticProjectPoint(x0, y0, x1, y1, x2, y2, x, y, null); return d <= _l / 2; } // ../node_modules/.pnpm/zrender@6.0.0/node_modules/zrender/lib/contain/util.js var PI23 = Math.PI * 2; function normalizeRadian(angle) { angle %= PI23; if (angle < 0) { angle += PI23; } return angle; } // ../node_modules/.pnpm/zrender@6.0.0/node_modules/zrender/lib/contain/arc.js var PI24 = Math.PI * 2; function containStroke4(cx, cy, r, startAngle, endAngle, anticlockwise, lineWidth, x, y) { if (lineWidth === 0) { return false; } var _l = lineWidth; x -= cx; y -= cy; var d = Math.sqrt(x * x + y * y); if (d - _l > r || d + _l < r) { return false; } if (Math.abs(startAngle - endAngle) % PI24 < 1e-4) { return true; } if (anticlockwise) { var tmp = startAngle; startAngle = normalizeRadian(endAngle); endAngle = normalizeRadian(tmp); } else { startAngle = normalizeRadian(startAngle); endAngle = normalizeRadian(endAngle); } if (startAngle > endAngle) { endAngle += PI24; } var angle = Math.atan2(y, x); if (angle < 0) { angle += PI24; } return angle >= startAngle && angle <= endAngle || angle + PI24 >= startAngle && angle + PI24 <= endAngle; } // ../node_modules/.pnpm/zrender@6.0.0/node_modules/zrender/lib/contain/windingLine.js function windingLine(x0, y0, x1, y1, x, y) { if (y > y0 && y > y1 || y < y0 && y < y1) { return 0; } if (y1 === y0) { return 0; } var t = (y - y0) / (y1 - y0); var dir = y1 < y0 ? 1 : -1; if (t === 1 || t === 0) { dir = y1 < y0 ? 0.5 : -0.5; } var x_ = t * (x1 - x0) + x0; return x_ === x ? Infinity : x_ > x ? dir : 0; } // ../node_modules/.pnpm/zrender@6.0.0/node_modules/zrender/lib/contain/path.js var CMD2 = PathProxy_default.CMD; var PI25 = Math.PI * 2; var EPSILON5 = 1e-4; function isAroundEqual(a, b) { return Math.abs(a - b) < EPSILON5; } var roots = [-1, -1, -1]; var extrema = [-1, -1]; function swapExtrema() { var tmp = extrema[0]; extrema[0] = extrema[1]; extrema[1] = tmp; } function windingCubic(x0, y0, x1, y1, x2, y2, x3, y3, x, y) { if (y > y0 && y > y1 && y > y2 && y > y3 || y < y0 && y < y1 && y < y2 && y < y3) { return 0; } var nRoots = cubicRootAt(y0, y1, y2, y3, y, roots); if (nRoots === 0) { return 0; } else { var w = 0; var nExtrema = -1; var y0_ = void 0; var y1_ = void 0; for (var i = 0; i < nRoots; i++) { var t = roots[i]; var unit = t === 0 || t === 1 ? 0.5 : 1; var x_ = cubicAt(x0, x1, x2, x3, t); if (x_ < x) { continue; } if (nExtrema < 0) { nExtrema = cubicExtrema(y0, y1, y2, y3, extrema); if (extrema[1] < extrema[0] && nExtrema > 1) { swapExtrema(); } y0_ = cubicAt(y0, y1, y2, y3, extrema[0]); if (nExtrema > 1) { y1_ = cubicAt(y0, y1, y2, y3, extrema[1]); } } if (nExtrema === 2) { if (t < extrema[0]) { w += y0_ < y0 ? unit : -unit; } else if (t < extrema[1]) { w += y1_ < y0_ ? unit : -unit; } else { w += y3 < y1_ ? unit : -unit; } } else { if (t < extrema[0]) { w += y0_ < y0 ? unit : -unit; } else { w += y3 < y0_ ? unit : -unit; } } } return w; } } function windingQuadratic(x0, y0, x1, y1, x2, y2, x, y) { if (y > y0 && y > y1 && y > y2 || y < y0 && y < y1 && y < y2) { return 0; } var nRoots = quadraticRootAt(y0, y1, y2, y, roots); if (nRoots === 0) { return 0; } else { var t = quadraticExtremum(y0, y1, y2); if (t >= 0 && t <= 1) { var w = 0; var y_ = quadraticAt(y0, y1, y2, t); for (var i = 0; i < nRoots; i++) { var unit = roots[i] === 0 || roots[i] === 1 ? 0.5 : 1; var x_ = quadraticAt(x0, x1, x2, roots[i]); if (x_ < x) { continue; } if (roots[i] < t) { w += y_ < y0 ? unit : -unit; } else { w += y2 < y_ ? unit : -unit; } } return w; } else { var unit = roots[0] === 0 || roots[0] === 1 ? 0.5 : 1; var x_ = quadraticAt(x0, x1, x2, roots[0]); if (x_ < x) { return 0; } return y2 < y0 ? unit : -unit; } } } function windingArc(cx, cy, r, startAngle, endAngle, anticlockwise, x, y) { y -= cy; if (y > r || y < -r) { return 0; } var tmp = Math.sqrt(r * r - y * y); roots[0] = -tmp; roots[1] = tmp; var dTheta = Math.abs(startAngle - endAngle); if (dTheta < 1e-4) { return 0; } if (dTheta >= PI25 - 1e-4) { startAngle = 0; endAngle = PI25; var dir = anticlockwise ? 1 : -1; if (x >= roots[0] + cx && x <= roots[1] + cx) { return dir; } else { return 0; } } if (startAngle > endAngle) { var tmp_1 = startAngle; startAngle = endAngle; endAngle = tmp_1; } if (startAngle < 0) { startAngle += PI25; endAngle += PI25; } var w = 0; for (var i = 0; i < 2; i++) { var x_ = roots[i]; if (x_ + cx > x) { var angle = Math.atan2(y, x_); var dir = anticlockwise ? 1 : -1; if (angle < 0) { angle = PI25 + angle; } if (angle >= startAngle && angle <= endAngle || angle + PI25 >= startAngle && angle + PI25 <= endAngle) { if (angle > Math.PI / 2 && angle < Math.PI * 1.5) { dir = -dir; } w += dir; } } } return w; } function containPath(path, lineWidth, isStroke, x, y) { var data = path.data; var len2 = path.len(); var w = 0; var xi = 0; var yi = 0; var x0 = 0; var y0 = 0; var x1; var y1; for (var i = 0; i < len2; ) { var cmd = data[i++]; var isFirst = i === 1; if (cmd === CMD2.M && i > 1) { if (!isStroke) { w += windingLine(xi, yi, x0, y0, x, y); } } if (isFirst) { xi = data[i]; yi = data[i + 1]; x0 = xi; y0 = yi; } switch (cmd) { case CMD2.M: x0 = data[i++]; y0 = data[i++]; xi = x0; yi = y0; break; case CMD2.L: if (isStroke) { if (containStroke(xi, yi, data[i], data[i + 1], lineWidth, x, y)) { return true; } } else { w += windingLine(xi, yi, data[i], data[i + 1], x, y) || 0; } xi = data[i++]; yi = data[i++]; break; case CMD2.C: if (isStroke) { if (containStroke2(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], lineWidth, x, y)) { return true; } } else { w += windingCubic(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], x, y) || 0; } xi = data[i++]; yi = data[i++]; break; case CMD2.Q: if (isStroke) { if (containStroke3(xi, yi, data[i++], data[i++], data[i], data[i + 1], lineWidth, x, y)) { return true; } } else { w += windingQuadratic(xi, yi, data[i++], data[i++], data[i], data[i + 1], x, y) || 0; } xi = data[i++]; yi = data[i++]; break; case CMD2.A: var cx = data[i++]; var cy = data[i++]; var rx = data[i++]; var ry = data[i++]; var theta = data[i++]; var dTheta = data[i++]; i += 1; var anticlockwise = !!(1 - data[i++]); x1 = Math.cos(theta) * rx + cx; y1 = Math.sin(theta) * ry + cy; if (!isFirst) { w += windingLine(xi, yi, x1, y1, x, y); } else { x0 = x1; y0 = y1; } var _x = (x - cx) * ry / rx + cx; if (isStroke) { if (containStroke4(cx, cy, ry, theta, theta + dTheta, anticlockwise, lineWidth, _x, y)) { return true; } } else { w += windingArc(cx, cy, ry, theta, theta + dTheta, anticlockwise, _x, y); } xi = Math.cos(theta + dTheta) * rx + cx; yi = Math.sin(theta + dTheta) * ry + cy; break; case CMD2.R: x0 = xi = data[i++]; y0 = yi = data[i++]; var width = data[i++]; var height = data[i++]; x1 = x0 + width; y1 = y0 + height; if (isStroke) { if (containStroke(x0, y0, x1, y0, lineWidth, x, y) || containStroke(x1, y0, x1, y1, lineWidth, x, y) || containStroke(x1, y1, x0, y1, lineWidth, x, y) || containStroke(x0, y1, x0, y0, lineWidth, x, y)) { return true; } } else { w += windingLine(x1, y0, x1, y1, x, y); w += windingLine(x0, y1, x0, y0, x, y); } break; case CMD2.Z: if (isStroke) { if (containStroke(xi, yi, x0, y0, lineWidth, x, y)) { return true; } } else { w += windingLine(xi, yi, x0, y0, x, y); } xi = x0; yi = y0; break; } } if (!isStroke && !isAroundEqual(yi, y0)) { w += windingLine(xi, yi, x0, y0, x, y) || 0; } return w !== 0; } function contain(pathProxy, x, y) { return containPath(pathProxy, 0, false, x, y); } function containStroke5(pathProxy, lineWidth, x, y) { return containPath(pathProxy, lineWidth, true, x, y); } // ../node_modules/.pnpm/zrender@6.0.0/node_modules/zrender/lib/graphic/Path.js var DEFAULT_PATH_STYLE = defaults({ fill: "#000", stroke: null, strokePercent: 1, fillOpacity: 1, strokeOpacity: 1, lineDashOffset: 0, lineWidth: 1, lineCap: "butt", miterLimit: 10, strokeNoScale: false, strokeFirst: false }, DEFAULT_COMMON_STYLE); var DEFAULT_PATH_ANIMATION_PROPS = { style: defaults({ fill: true, stroke: true, strokePercent: true, fillOpacity: true, strokeOpacity: true, lineDashOffset: true, lineWidth: true, miterLimit: true }, DEFAULT_COMMON_ANIMATION_PROPS.style) }; var pathCopyParams = TRANSFORMABLE_PROPS.concat([ "invisible", "culling", "z", "z2", "zlevel", "parent" ]); var Path = function(_super) { __extends(Path2, _super); function Path2(opts) { return _super.call(this, opts) || this; } Path2.prototype.update = function() { var _this = this; _super.prototype.update.call(this); var style = this.style; if (style.decal) { var decalEl = this._decalEl = this._decalEl || new Path2(); if (decalEl.buildPath === Path2.prototype.buildPath) { decalEl.buildPath = function(ctx) { _this.buildPath(ctx, _this.shape); }; } decalEl.silent = true; var decalElStyle = decalEl.style; for (var key in style) { if (decalElStyle[key] !== style[key]) { decalElStyle[key] = style[key]; } } decalElStyle.fill = style.fill ? style.decal : null; decalElStyle.decal = null; decalElStyle.shadowColor = null; style.strokeFirst && (decalElStyle.stroke = null); for (var i = 0; i < pathCopyParams.length; ++i) { decalEl[pathCopyParams[i]] = this[pathCopyParams[i]]; } decalEl.__dirty |= REDRAW_BIT; } else if (this._decalEl) { this._decalEl = null; } }; Path2.prototype.getDecalElement = function() { return this._decalEl; }; Path2.prototype._init = function(props) { var keysArr = keys(props); this.shape = this.getDefaultShape(); var defaultStyle = this.getDefaultStyle(); if (defaultStyle) { this.useStyle(defaultStyle); } for (var i = 0; i < keysArr.length; i++) { var key = keysArr[i]; var value = props[key]; if (key === "style") { if (!this.style) { this.useStyle(value); } else { extend(this.style, value); } } else if (key === "shape") { extend(this.shape, value); } else { _super.prototype.attrKV.call(this, key, value); } } if (!this.style) { this.useStyle({}); } }; Path2.prototype.getDefaultStyle = function() { return null; }; Path2.prototype.getDefaultShape = function() { return {}; }; Path2.prototype.canBeInsideText = function() { return this.hasFill(); }; Path2.prototype.getInsideTextFill = function() { var pathFill = this.style.fill; if (pathFill !== "none") { if (isString(pathFill)) { var fillLum = lum(pathFill, 0); if (fillLum > 0.5) { 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; }; Path2.prototype.getInsideTextStroke = function(textFill) { var pathFill = this.style.fill; if (isString(pathFill)) { var zr = this.__zr; var isDarkMode2 = !!(zr && zr.isDarkMode()); var isDarkLabel = lum(textFill, 0) < DARK_MODE_THRESHOLD; if (isDarkMode2 === isDarkLabel) { return pathFill; } } }; Path2.prototype.buildPath = function(ctx, shapeCfg, inBatch) { }; Path2.prototype.pathUpdated = function() { this.__dirty &= ~SHAPE_CHANGED_BIT; }; Path2.prototype.getUpdatedPathProxy = function(inBatch) { !this.path && this.createPathProxy(); this.path.beginPath(); this.buildPath(this.path, this.shape, inBatch); return this.path; }; Path2.prototype.createPathProxy = function() { this.path = new PathProxy_default(false); }; Path2.prototype.hasStroke = function() { var style = this.style; var stroke = style.stroke; return !(stroke == null || stroke === "none" || !(style.lineWidth > 0)); }; Path2.prototype.hasFill = function() { var style = this.style; var fill = style.fill; return fill != null && fill !== "none"; }; Path2.prototype.getBoundingRect = function() { var rect = this._rect; var style = this.style; var needsUpdateRect = !rect; if (needsUpdateRect) { var firstInvoke = false; if (!this.path) { firstInvoke = true; this.createPathProxy(); } var 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) { var rectStroke = this._rectStroke || (this._rectStroke = rect.clone()); if (this.__dirty || needsUpdateRect) { rectStroke.copy(rect); var lineScale = style.strokeNoScale ? this.getLineScale() : 1; var w = style.lineWidth; if (!this.hasFill()) { var strokeContainThreshold = this.strokeContainThreshold; w = Math.max(w, strokeContainThreshold == null ? 4 : strokeContainThreshold); } if (lineScale > 1e-10) { rectStroke.width += w / lineScale; rectStroke.height += w / lineScale; rectStroke.x -= w / lineScale / 2; rectStroke.y -= w / lineScale / 2; } } return rectStroke; } return rect; }; Path2.prototype.contain = function(x, y) { var localPos = this.transformCoordToLocal(x, y); var rect = this.getBoundingRect(); var style = this.style; x = localPos[0]; y = localPos[1]; if (rect.contain(x, y)) { var pathProxy = this.path; if (this.hasStroke()) { var lineWidth = style.lineWidth; var lineScale = style.strokeNoScale ? this.getLineScale() : 1; if (lineScale > 1e-10) { if (!this.hasFill()) { lineWidth = Math.max(lineWidth, this.strokeContainThreshold); } if (containStroke5(pathProxy, lineWidth / lineScale, x, y)) { return true; } } } if (this.hasFill()) { return contain(pathProxy, x, y); } } return false; }; Path2.prototype.dirtyShape = function() { this.__dirty |= SHAPE_CHANGED_BIT; if (this._rect) { this._rect = null; } if (this._decalEl) { this._decalEl.dirtyShape(); } this.markRedraw(); }; Path2.prototype.dirty = function() { this.dirtyStyle(); this.dirtyShape(); }; Path2.prototype.animateShape = function(loop) { return this.animate("shape", loop); }; Path2.prototype.updateDuringAnimation = function(targetKey) { if (targetKey === "style") { this.dirtyStyle(); } else if (targetKey === "shape") { this.dirtyShape(); } else { this.markRedraw(); } }; Path2.prototype.attrKV = function(key, value) { if (key === "shape") { this.setShape(value); } else { _super.prototype.attrKV.call(this, key, value); } }; Path2.prototype.setShape = function(keyOrObj, value) { var shape = this.shape; if (!shape) { shape = this.shape = {}; } if (typeof keyOrObj === "string") { shape[keyOrObj] = value; } else { extend(shape, keyOrObj); } this.dirtyShape(); return this; }; Path2.prototype.shapeChanged = function() { return !!(this.__dirty & SHAPE_CHANGED_BIT); }; Path2.prototype.createStyle = function(obj) { return createObject(DEFAULT_PATH_STYLE, obj); }; Path2.prototype._innerSaveToNormal = function(toState) { _super.prototype._innerSaveToNormal.call(this, toState); var normalState = this._normalState; if (toState.shape && !normalState.shape) { normalState.shape = extend({}, this.shape); } }; Path2.prototype._applyStateObj = function(stateName, state, normalState, keepCurrentStates, transition, animationCfg) { _super.prototype._applyStateObj.call(this, stateName, state, normalState, keepCurrentStates, transition, animationCfg); var needsRestoreToNormal = !(state && keepCurrentStates); var targetShape; if (state && state.shape) { if (transition) { if (keepCurrentStates) { targetShape = state.shape; } else { targetShape = extend({}, normalState.shape); extend(targetShape, state.shape); } } else { targetShape = extend({}, keepCurrentStates ? this.shape : normalState.shape); extend(targetShape, state.shape); } } else if (needsRestoreToNormal) { targetShape = normalState.shape; } if (targetShape) { if (transition) { this.shape = extend({}, this.shape); var targetShapePrimaryProps = {}; var shapeKeys = keys(targetShape); for (var i = 0; i < shapeKeys.length; i++) { var key = shapeKeys[i]; if (typeof targetShape[key] === "object") { this.shape[key] = targetShape[key]; } else { targetShapePrimaryProps[key] = targetShape[key]; } } this._transitionState(stateName, { shape: targetShapePrimaryProps }, animationCfg); } else { this.shape = targetShape; this.dirtyShape(); } } }; Path2.prototype._mergeStates = function(states) { var mergedState = _super.prototype._mergeStates.call(this, states); var mergedShape; for (var i = 0; i < states.length; i++) { var state = states[i]; if (state.shape) { mergedShape = mergedShape || {}; this._mergeStyle(mergedShape, state.shape); } } if (mergedShape) { mergedState.shape = mergedShape; } return mergedState; }; Path2.prototype.getAnimationStyleProps = function() { return DEFAULT_PATH_ANIMATION_PROPS; }; Path2.prototype.isZeroArea = function() { return false; }; Path2.extend = function(defaultProps) { var Sub = function(_super2) { __extends(Sub2, _super2); function Sub2(opts) { var _this = _super2.call(this, opts) || this; defaultProps.init && defaultProps.init.call(_this, opts); return _this; } Sub2.prototype.getDefaultStyle = function() { return clone(defaultProps.style); }; Sub2.prototype.getDefaultShape = function() { return clone(defaultProps.shape); }; return Sub2; }(Path2); for (var key in defaultProps) { if (typeof defaultProps[key] === "function") { Sub.prototype[key] = defaultProps[key]; } } return Sub; }; Path2.initDefaultProps = function() { var pathProto = Path2.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; }(); return Path2; }(Displayable_default); var Path_default = Path; // ../node_modules/.pnpm/zrender@6.0.0/node_modules/zrender/lib/graphic/Image.js var DEFAULT_IMAGE_STYLE = defaults({ x: 0, y: 0 }, DEFAULT_COMMON_STYLE); var DEFAULT_IMAGE_ANIMATION_PROPS = { style: defaults({ x: true, y: true, width: true, height: true, sx: true, sy: true, sWidth: true, sHeight: true }, DEFAULT_COMMON_ANIMATION_PROPS.style) }; function isImageLike(source) { return !!(source && typeof source !== "string" && source.width && source.height); } var ZRImage = function(_super) { __extends(ZRImage2, _super); function ZRImage2() { return _super !== null && _super.apply(this, arguments) || this; } ZRImage2.prototype.createStyle = function(obj) { return createObject(DEFAULT_IMAGE_STYLE, obj); }; ZRImage2.prototype._getSize = function(dim) { var style = this.style; var size = style[dim]; if (size != null) { return size; } var imageSource = isImageLike(style.image) ? style.image : this.__image; if (!imageSource) { return 0; } var otherDim = dim === "width" ? "height" : "width"; var otherDimSize = style[otherDim]; if (otherDimSize == null) { return imageSource[dim]; } else { return imageSource[dim] / imageSource[otherDim] * otherDimSize; } }; ZRImage2.prototype.getWidth = function() { return this._getSize("width"); }; ZRImage2.prototype.getHeight = function() { return this._getSize("height"); }; ZRImage2.prototype.getAnimationStyleProps = function() { return DEFAULT_IMAGE_ANIMATION_PROPS; }; ZRImage2.prototype.getBoundingRect = function() { var style = this.style; if (!this._rect) { this._rect = new BoundingRect_default(style.x || 0, style.y || 0, this.getWidth(), this.getHeight()); } return this._rect; }; return ZRImage2; }(Displayable_default); ZRImage.prototype.type = "image"; var Image_default = ZRImage; // ../node_modules/.pnpm/zrender@6.0.0/node_modules/zrender/lib/graphic/helper/parseText.js var STYLE_REG = /\{([a-zA-Z0-9_]+)\|([^}]*)\}/g; function truncateText(text, containerWidth, font, ellipsis, options) { var out = {}; truncateText2(out, text, containerWidth, font, ellipsis, options); return out.text; } function truncateText2(out, text, containerWidth, font, ellipsis, options) { if (!containerWidth) { out.text = ""; out.isTruncated = false; return; } var textLines = (text + "").split("\n"); options = prepareTruncateOptions(containerWidth, font, ellipsis, options); var isTruncated = false; var truncateOut = {}; for (var i = 0, len2 = textLines.length; i < len2; i++) { truncateSingleLine(truncateOut, textLines[i], options); textLines[i] = truncateOut.textLine; isTruncated = isTruncated || truncateOut.isTruncated; } out.text = textLines.join("\n"); out.isTruncated = isTruncated; } function prepareTruncateOptions(containerWidth, font, ellipsis, options) { options = options || {}; var preparedOpts = extend({}, options); ellipsis = retrieve2(ellipsis, "..."); preparedOpts.maxIterations = retrieve2(options.maxIterations, 2); var minChar = preparedOpts.minChar = retrieve2(options.minChar, 0); var fontMeasureInfo = preparedOpts.fontMeasureInfo = ensureFontMeasureInfo(font); var ascCharWidth = fontMeasureInfo.asciiCharWidth; preparedOpts.placeholder = retrieve2(options.placeholder, ""); var contentWidth = containerWidth = Math.max(0, containerWidth - 1); for (var i = 0; i < minChar && contentWidth >= ascCharWidth; i++) { contentWidth -= ascCharWidth; } var ellipsisWidth = measureWidth(fontMeasureInfo, ellipsis); 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(out, textLine, options) { var containerWidth = options.containerWidth; var contentWidth = options.contentWidth; var fontMeasureInfo = options.fontMeasureInfo; if (!containerWidth) { out.textLine = ""; out.isTruncated = false; return; } var lineWidth = measureWidth(fontMeasureInfo, textLine); if (lineWidth <= containerWidth) { out.textLine = textLine; out.isTruncated = false; return; } for (var j = 0; ; j++) { if (lineWidth <= contentWidth || j >= options.maxIterations) { textLine += options.ellipsis; break; } var subLength = j === 0 ? estimateLength(textLine, contentWidth, fontMeasureInfo) : lineWidth > 0 ? Math.floor(textLine.length * contentWidth / lineWidth) : 0; textLine = textLine.substr(0, subLength); lineWidth = measureWidth(fontMeasureInfo, textLine); } if (textLine === "") { textLine = options.placeholder; } out.textLine = textLine; out.isTruncated = true; } function estimateLength(text, contentWidth, fontMeasureInfo) { var width = 0; var i = 0; for (var len2 = text.length; i < len2 && width < contentWidth; i++) { width += measureCharWidth(fontMeasureInfo, text.charCodeAt(i)); } return i; } function parsePlainText(rawText, style, defaultOuterWidth, defaultOuterHeight) { var text = formatText(rawText); var overflow = style.overflow; var padding = style.padding; var paddingH = padding ? padding[1] + padding[3] : 0; var paddingV = padding ? padding[0] + padding[2] : 0; var font = style.font; var truncate = overflow === "truncate"; var calculatedLineHeight = getLineHeight(font); var lineHeight = retrieve2(style.lineHeight, calculatedLineHeight); var truncateLineOverflow = style.lineOverflow === "truncate"; var isTruncated = false; var width = style.width; if (width == null && defaultOuterWidth != null) { width = defaultOuterWidth - paddingH; } var height = style.height; if (height == null && defaultOuterHeight != null) { height = defaultOuterHeight - paddingV; } var lines; if (width != null && (overflow === "break" || overflow === "breakAll")) { lines = text ? wrapText(text, style.font, width, overflow === "breakAll", 0).lines : []; } else { lines = text ? text.split("\n") : []; } var contentHeight = lines.length * lineHeight; if (height == null) { height = contentHeight; } if (contentHeight > height && truncateLineOverflow) { var lineCount = Math.floor(height / lineHeight); isTruncated = isTruncated || lines.length > lineCount; lines = lines.slice(0, lineCount); contentHeight = lines.length * lineHeight; } if (text && truncate && width != null) { var options = prepareTruncateOptions(width, font, style.ellipsis, { minChar: style.truncateMinChar, placeholder: style.placeholder }); var singleOut = {}; for (var i = 0; i < lines.length; i++) { truncateSingleLine(singleOut, lines[i], options); lines[i] = singleOut.textLine; isTruncated = isTruncated || singleOut.isTruncated; } } var outerHeight = height; var contentWidth = 0; var fontMeasureInfo = ensureFontMeasureInfo(font); for (var i = 0; i < lines.length; i++) { contentWidth = Math.max(measureWidth(fontMeasureInfo, lines[i]), contentWidth); } if (width == null) { width = contentWidth; } var outerWidth = width; outerHeight += paddingV; outerWidth += paddingH; return { lines, height, outerWidth, outerHeight, lineHeight, calculatedLineHeight, contentWidth, contentHeight, width, isTruncated }; } var RichTextToken = /* @__PURE__ */ function() { function RichTextToken2() { } return RichTextToken2; }(); var RichTextLine = /* @__PURE__ */ function() { function RichTextLine2(tokens) { this.tokens = []; if (tokens) { this.tokens = tokens; } } return RichTextLine2; }(); var RichTextContentBlock = /* @__PURE__ */ function() { function RichTextContentBlock2() { this.width = 0; this.height = 0; this.contentWidth = 0; this.contentHeight = 0; this.outerWidth = 0; this.outerHeight = 0; this.lines = []; this.isTruncated = false; } return RichTextContentBlock2; }(); function parseRichText(rawText, style, defaultOuterWidth, defaultOuterHeight, topTextAlign) { var contentBlock = new RichTextContentBlock(); var text = formatText(rawText); if (!text) { return contentBlock; } var stlPadding = style.padding; var stlPaddingH = stlPadding ? stlPadding[1] + stlPadding[3] : 0; var stlPaddingV = stlPadding ? stlPadding[0] + stlPadding[2] : 0; var topWidth = style.width; if (topWidth == null && defaultOuterWidth != null) { topWidth = defaultOuterWidth - stlPaddingH; } var topHeight = style.height; if (topHeight == null && defaultOuterHeight != null) { topHeight = defaultOuterHeight - stlPaddingV; } var overflow = style.overflow; var wrapInfo = (overflow === "break" || overflow === "breakAll") && topWidth != null ? { width: topWidth, accumWidth: 0, breakAll: overflow === "breakAll" } : null; var lastIndex = STYLE_REG.lastIndex = 0; var result; while ((result = STYLE_REG.exec(text)) != null) { var 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); } var pendingList = []; var calculatedHeight = 0; var calculatedWidth = 0; var truncate = overflow === "truncate"; var truncateLine = style.lineOverflow === "truncate"; var tmpTruncateOut = {}; function finishLine(line2, lineWidth2, lineHeight2) { line2.width = lineWidth2; line2.lineHeight = lineHeight2; calculatedHeight += lineHeight2; calculatedWidth = Math.max(calculatedWidth, lineWidth2); } outer: for (var i = 0; i < contentBlock.lines.length; i++) { var line = contentBlock.lines[i]; var lineHeight = 0; var lineWidth = 0; for (var j = 0; j < line.tokens.length; j++) { var token = line.tokens[j]; var tokenStyle = token.styleName && style.rich[token.styleName] || {}; var textPadding = token.textPadding = tokenStyle.padding; var paddingH = textPadding ? textPadding[1] + textPadding[3] : 0; var font = token.font = tokenStyle.font || style.font; token.contentHeight = getLineHeight(font); var tokenHeight = retrieve2(tokenStyle.height, token.contentHeight); token.innerHeight = tokenHeight; textPadding && (tokenHeight += textPadding[0] + textPadding[2]); token.height = tokenHeight; token.lineHeight = retrieve3(tokenStyle.lineHeight, style.lineHeight, tokenHeight); token.align = tokenStyle && tokenStyle.align || topTextAlign; token.verticalAlign = tokenStyle && tokenStyle.verticalAlign || "middle"; if (truncateLine && topHeight != null && calculatedHeight + token.lineHeight > topHeight) { var originalLength = contentBlock.lines.length; 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); } contentBlock.isTruncated = contentBlock.isTruncated || contentBlock.lines.length < originalLength; break outer; } var styleTokenWidth = tokenStyle.width; var tokenWidthNotSpecified = styleTokenWidth == null || styleTokenWidth === "auto"; if (typeof styleTokenWidth === "string" && styleTokenWidth.charAt(styleTokenWidth.length - 1) === "%") { token.percentWidth = styleTokenWidth; pendingList.push(token); token.contentWidth = measureWidth(ensureFontMeasureInfo(font), token.text); } else { if (tokenWidthNotSpecified) { var textBackgroundColor = tokenStyle.backgroundColor; var bgImg = textBackgroundColor && textBackgroundColor.image; if (bgImg) { bgImg = findExistImage(bgImg); if (isImageReady(bgImg)) { token.width = Math.max(token.width, bgImg.width * tokenHeight / bgImg.height); } } } var 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 { truncateText2(tmpTruncateOut, token.text, remainTruncWidth - paddingH, font, style.ellipsis, { minChar: style.truncateMinChar }); token.text = tmpTruncateOut.text; contentBlock.isTruncated = contentBlock.isTruncated || tmpTruncateOut.isTruncated; token.width = token.contentWidth = measureWidth(ensureFontMeasureInfo(font), token.text); } } else { token.contentWidth = measureWidth(ensureFontMeasureInfo(font), token.text); } } token.width += paddingH; lineWidth += token.width; tokenStyle && (lineHeight = Math.max(lineHeight, token.lineHeight)); } finishLine(line, lineWidth, lineHeight); } contentBlock.outerWidth = contentBlock.width = retrieve2(topWidth, calculatedWidth); contentBlock.outerHeight = contentBlock.height = retrieve2(topHeight, calculatedHeight); contentBlock.contentHeight = calculatedHeight; contentBlock.contentWidth = calculatedWidth; contentBlock.outerWidth += stlPaddingH; contentBlock.outerHeight += stlPaddingV; for (var i = 0; i < pendingList.length; i++) { var token = pendingList[i]; var percentWidth = token.percentWidth; token.width = parseInt(percentWidth, 10) / 100 * contentBlock.width; } return contentBlock; } function pushTokens(block, str, style, wrapInfo, styleName) { var isEmptyStr = str === ""; var tokenStyle = styleName && style.rich[styleName] || {}; var lines = block.lines; var font = tokenStyle.font || style.font; var newLine = false; var strLines; var linesWidths; if (wrapInfo) { var tokenPadding = tokenStyle.padding; var tokenPaddingH = tokenPadding ? tokenPadding[1] + tokenPadding[3] : 0; if (tokenStyle.width != null && tokenStyle.width !== "auto") { var outerWidth_1 = parsePercent(tokenStyle.width, wrapInfo.width) + tokenPaddingH; if (lines.length > 0) { if (outerWidth_1 + wrapInfo.accumWidth > wrapInfo.width) { strLines = str.split("\n"); newLine = true; } } wrapInfo.accumWidth = outerWidth_1; } else { var res = wrapText(str, font, wrapInfo.width, wrapInfo.breakAll, wrapInfo.accumWidth); wrapInfo.accumWidth = res.accumWidth + tokenPaddingH; linesWidths = res.linesWidths; strLines = res.lines; } } if (!strLines) { strLines = str.split("\n"); } var fontMeasureInfo = ensureFontMeasureInfo(font); for (var i = 0; i < strLines.length; i++) { var text = strLines[i]; var 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] : measureWidth(fontMeasureInfo, text); } if (!i && !newLine) { var tokens = (lines[lines.length - 1] || (lines[0] = new RichTextLine())).tokens; var tokensLen = tokens.length; tokensLen === 1 && tokens[0].isLineHolder ? tokens[0] = token : (text || !tokensLen || isEmptyStr) && tokens.push(token); } else { lines.push(new RichTextLine([token])); } } } function isAlphabeticLetter(ch) { var code = ch.charCodeAt(0); return code >= 32 && code <= 591 || code >= 880 && code <= 4351 || code >= 4608 && code <= 5119 || code >= 7680 && code <= 8303; } var breakCharMap = reduce(",&?/;] ".split(""), function(obj, ch) { obj[ch] = true; return obj; }, {}); function isWordBreakChar(ch) { if (isAlphabeticLetter(ch)) { if (breakCharMap[ch]) { return true; } return false; } return true; } function wrapText(text, font, lineWidth, isBreakAll, lastAccumWidth) { var lines = []; var linesWidths = []; var line = ""; var currentWord = ""; var currentWordWidth = 0; var accumWidth = 0; var fontMeasureInfo = ensureFontMeasureInfo(font); for (var i = 0; i < text.length; i++) { var ch = text.charAt(i); if (ch === "\n") { if (currentWord) { line += currentWord; accumWidth += currentWordWidth; } lines.push(line); linesWidths.push(accumWidth); line = ""; currentWord = ""; currentWordWidth = 0; accumWidth = 0; continue; } var chWidth = measureCharWidth(fontMeasureInfo, ch.charCodeAt(0)); var inWord = isBreakAll ? false : !isWordBreakChar(ch); if (!lines.length ? lastAccumWidth + accumWidth + chWidth > lineWidth : accumWidth + chWidth > lineWidth) { if (!accumWidth) { if (inWord) { lines.push(currentWord); linesWidths.push(currentWordWidth); currentWord = ch; currentWordWidth = chWidth; } else { lines.push(ch); linesWidths.push(chWidth); } } else if (line || currentWord) { if (inWord) { if (!line) { line = currentWord; currentWord = ""; currentWordWidth = 0; accumWidth = currentWordWidth; } lines.push(line); linesWidths.push(accumWidth - currentWordWidth); currentWord += ch; currentWordWidth += chWidth; line = ""; accumWidth = currentWordWidth; } else { 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 { if (currentWord) { line += currentWord; currentWord = ""; currentWordWidth = 0; } line += ch; } } if (currentWord) { line += currentWord; } if (line) { lines.push(line); linesWidths.push(accumWidth); } if (lines.length === 1) { accumWidth += lastAccumWidth; } return { accumWidth, lines, linesWidths }; } function calcInnerTextOverflowArea(out, overflowRect, baseX, baseY, textAlign, textVerticalAlign) { out.baseX = baseX; out.baseY = baseY; out.outerWidth = out.outerHeight = null; if (!overflowRect) { return; } var textWidth = overflowRect.width * 2; var textHeight = overflowRect.height * 2; BoundingRect_default.set(tmpCITCTextRect, adjustTextX(baseX, textWidth, textAlign), adjustTextY2(baseY, textHeight, textVerticalAlign), textWidth, textHeight); BoundingRect_default.intersect(overflowRect, tmpCITCTextRect, null, tmpCITCIntersectRectOpt); var outIntersectRect = tmpCITCIntersectRectOpt.outIntersectRect; out.outerWidth = outIntersectRect.width; out.outerHeight = outIntersectRect.height; out.baseX = adjustTextX(outIntersectRect.x, outIntersectRect.width, textAlign, true); out.baseY = adjustTextY2(outIntersectRect.y, outIntersectRect.height, textVerticalAlign, true); } var tmpCITCTextRect = new BoundingRect_default(0, 0, 0, 0); var tmpCITCIntersectRectOpt = { outIntersectRect: {}, clamp: true }; function formatText(text) { return text != null ? text += "" : text = ""; } function tSpanCreateBoundingRect(style) { var text = formatText(style.text); var font = style.font; var contentWidth = measureWidth(ensureFontMeasureInfo(font), text); var contentHeight = getLineHeight(font); return tSpanCreateBoundingRect2(style, contentWidth, contentHeight, null); } function tSpanCreateBoundingRect2(style, contentWidth, contentHeight, forceLineWidth) { var rect = new BoundingRect_default(adjustTextX(style.x || 0, contentWidth, style.textAlign), adjustTextY2(style.y || 0, contentHeight, style.textBaseline), contentWidth, contentHeight); var lineWidth = forceLineWidth != null ? forceLineWidth : tSpanHasStroke(style) ? style.lineWidth : 0; if (lineWidth > 0) { rect.x -= lineWidth / 2; rect.y -= lineWidth / 2; rect.width += lineWidth; rect.height += lineWidth; } return rect; } function tSpanHasStroke(style) { var stroke = style.stroke; return stroke != null && stroke !== "none" && style.lineWidth > 0; } // ../node_modules/.pnpm/zrender@6.0.0/node_modules/zrender/lib/graphic/TSpan.js var DEFAULT_TSPAN_STYLE = defaults({ strokeFirst: true, font: DEFAULT_FONT, x: 0, y: 0, textAlign: "left", textBaseline: "top", miterLimit: 2 }, DEFAULT_PATH_STYLE); var TSpan = function(_super) { __extends(TSpan2, _super); function TSpan2() { return _super !== null && _super.apply(this, arguments) || this; } TSpan2.prototype.hasStroke = function() { return tSpanHasStroke(this.style); }; TSpan2.prototype.hasFill = function() { var style = this.style; var fill = style.fill; return fill != null && fill !== "none"; }; TSpan2.prototype.createStyle = function(obj) { return createObject(DEFAULT_TSPAN_STYLE, obj); }; TSpan2.prototype.setBoundingRect = function(rect) { this._rect = rect; }; TSpan2.prototype.getBoundingRect = function() { if (!this._rect) { this._rect = tSpanCreateBoundingRect(this.style); } return this._rect; }; TSpan2.initDefaultProps = function() { var tspanProto = TSpan2.prototype; tspanProto.dirtyRectTolerance = 10; }(); return TSpan2; }(Displayable_default); TSpan.prototype.type = "tspan"; var TSpan_default = TSpan; // ../node_modules/.pnpm/zrender@6.0.0/node_modules/zrender/lib/canvas/dashStyle.js function normalizeLineDash(lineType, lineWidth) { if (!lineType || lineType === "solid" || !(lineWidth > 0)) { return null; } return lineType === "dashed" ? [4 * lineWidth, 2 * lineWidth] : lineType === "dotted" ? [lineWidth] : isNumber(lineType) ? [lineType] : isArray(lineType) ? lineType : null; } function getLineDash(el) { var style = el.style; var lineDash = style.lineDash && style.lineWidth > 0 && normalizeLineDash(style.lineDash, style.lineWidth); var lineDashOffset = style.lineDashOffset; if (lineDash) { var lineScale_1 = style.strokeNoScale && el.getLineScale ? el.getLineScale() : 1; if (lineScale_1 && lineScale_1 !== 1) { lineDash = map(lineDash, function(rawVal) { return rawVal / lineScale_1; }); lineDashOffset /= lineScale_1; } } return [lineDash, lineDashOffset]; } // ../node_modules/.pnpm/zrender@6.0.0/node_modules/zrender/lib/canvas/graphic.js var pathProxyForDraw = new PathProxy_default(true); function styleHasStroke(style) { var stroke = style.stroke; return !(stroke == null || stroke === "none" || !(style.lineWidth > 0)); } function isValidStrokeFillStyle(strokeOrFill) { return typeof strokeOrFill === "string" && strokeOrFill !== "none"; } function styleHasFill(style) { var fill = style.fill; return fill != null && fill !== "none"; } function doFillPath(ctx, style) { if (style.fillOpacity != null && style.fillOpacity !== 1) { var originalGlobalAlpha = ctx.globalAlpha; ctx.globalAlpha = style.fillOpacity * style.opacity; ctx.fill(); ctx.globalAlpha = originalGlobalAlpha; } else { ctx.fill(); } } function doStrokePath(ctx, style) { if (style.strokeOpacity != null && style.strokeOpacity !== 1) { var originalGlobalAlpha = ctx.globalAlpha; ctx.globalAlpha = style.strokeOpacity * style.opacity; ctx.stroke(); ctx.globalAlpha = originalGlobalAlpha; } else { ctx.stroke(); } } function createCanvasPattern(ctx, pattern, el) { var image = createOrUpdateImage(pattern.image, pattern.__image, el); if (isImageReady(image)) { var canvasPattern = ctx.createPattern(image, pattern.repeat || "repeat"); if (typeof DOMMatrix === "function" && canvasPattern && canvasPattern.setTransform) { var matrix = new DOMMatrix(); matrix.translateSelf(pattern.x || 0, pattern.y || 0); matrix.rotateSelf(0, 0, (pattern.rotation || 0) * RADIAN_TO_DEGREE); matrix.scaleSelf(pattern.scaleX || 1, pattern.scaleY || 1); canvasPattern.setTransform(matrix); } return canvasPattern; } } function brushPath(ctx, el, style, inBatch) { var _a; var hasStroke = styleHasStroke(style); var hasFill = styleHasFill(style); var strokePercent = style.strokePercent; var strokePart = strokePercent < 1; var firstDraw = !el.path; if ((!el.silent || strokePart) && firstDraw) { el.createPathProxy(); } var path = el.path || pathProxyForDraw; var dirtyFlag = el.__dirty; if (!inBatch) { var fill = style.fill; var stroke = style.stroke; var hasFillGradient = hasFill && !!fill.colorStops; var hasStrokeGradient = hasStroke && !!stroke.colorStops; var hasFillPattern = hasFill && !!fill.image; var hasStrokePattern = hasStroke && !!stroke.image; var fillGradient = void 0; var strokeGradient = void 0; var fillPattern = void 0; var strokePattern = void 0; var rect = void 0; if (hasFillGradient || hasStrokeGradient) { rect = el.getBoundingRect(); } if (hasFillGradient) { fillGradient = dirtyFlag ? getCanvasGradient(ctx, fill, rect) : el.__canvasFillGradient; el.__canvasFillGradient = fillGradient; } if (hasStrokeGradient) { strokeGradient = dirtyFlag ? getCanvasGradient(ctx, stroke, rect) : el.__canvasStrokeGradient; el.__canvasStrokeGradient = strokeGradient; } if (hasFillPattern) { fillPattern = dirtyFlag || !el.__canvasFillPattern ? createCanvasPattern(ctx, fill, el) : el.__canvasFillPattern; el.__canvasFillPattern = fillPattern; } if (hasStrokePattern) { strokePattern = dirtyFlag || !el.__canvasStrokePattern ? createCanvasPattern(ctx, stroke, el) : el.__canvasStrokePattern; el.__canvasStrokePattern = strokePattern; } if (hasFillGradient) { ctx.fillStyle = fillGradient; } else if (hasFillPattern) { if (fillPattern) { ctx.fillStyle = fillPattern; } else { hasFill = false; } } if (hasStrokeGradient) { ctx.strokeStyle = strokeGradient; } else if (hasStrokePattern) { if (strokePattern) { ctx.strokeStyle = strokePattern; } else { hasStroke = false; } } } var scale3 = el.getGlobalScale(); path.setScale(scale3[0], scale3[1], el.segmentIgnoreThreshold); var lineDash; var lineDashOffset; if (ctx.setLineDash && style.lineDash) { _a = getLineDash(el), lineDash = _a[0], lineDashOffset = _a[1]; } var needsRebuild = true; if (firstDraw || dirtyFlag & SHAPE_CHANGED_BIT) { path.setDPR(ctx.dpr); if (strokePart) { path.setContext(null); } else { path.setContext(ctx); needsRebuild = false; } path.reset(); el.buildPath(path, el.shape, inBatch); path.toStatic(); el.pathUpdated(); } if (needsRebuild) { path.rebuildPath(ctx, strokePart ? strokePercent : 1); } if (lineDash) { ctx.setLineDash(lineDash); ctx.lineDashOffset = lineDashOffset; } if (!inBatch) { if (style.strokeFirst) { if (hasStroke) { doStrokePath(ctx, style); } if (hasFill) { doFillPath(ctx, style); } } else { if (hasFill) { doFillPath(ctx, style); } if (hasStroke) { doStrokePath(ctx, style); } } } if (lineDash) { ctx.setLineDash([]); } } function brushImage(ctx, el, style) { var image = el.__image = createOrUpdateImage(style.image, el.__image, el, el.onload); if (!image || !isImageReady(image)) { return; } var x = style.x || 0; var y = style.y || 0; var width = el.getWidth(); var height = el.getHeight(); var aspect = image.width / image.height; if (width == null && height != null) { width = height * aspect; } else if (height == null && width != null) { height = width / aspect; } else if (width == null && height == null) { width = image.width; height = image.height; } if (style.sWidth && style.sHeight) { var sx = style.sx || 0; var sy = style.sy || 0; ctx.drawImage(image, sx, sy, style.sWidth, style.sHeight, x, y, width, height); } else if (style.sx && style.sy) { var sx = style.sx; var sy = style.sy; var sWidth = width - sx; var sHeight = height - sy; ctx.drawImage(image, sx, sy, sWidth, sHeight, x, y, width, height); } else { ctx.drawImage(image, x, y, width, height); } } function brushText(ctx, el, style) { var _a; var text = style.text; text != null && (text += ""); if (text) { ctx.font = style.font || DEFAULT_FONT; ctx.textAlign = style.textAlign; ctx.textBaseline = style.textBaseline; var lineDash = void 0; var lineDashOffset = void 0; if (ctx.setLineDash && style.lineDash) { _a = getLineDash(el), lineDash = _a[0], lineDashOffset = _a[1]; } if (lineDash) { ctx.setLineDash(lineDash); ctx.lineDashOffset = lineDashOffset; } if (style.strokeFirst) { if (styleHasStroke(style)) { ctx.strokeText(text, style.x, style.y); } if (styleHasFill(style)) { ctx.fillText(text, style.x, style.y); } } else { if (styleHasFill(style)) { ctx.fillText(text, style.x, style.y); } if (styleHasStroke(style)) { ctx.strokeText(text, style.x, style.y); } } if (lineDash) { ctx.setLineDash([]); } } } var SHADOW_NUMBER_PROPS = ["shadowBlur", "shadowOffsetX", "shadowOffsetY"]; var STROKE_PROPS = [ ["lineCap", "butt"], ["lineJoin", "miter"], ["miterLimit", 10] ]; function bindCommonProps(ctx, style, prevStyle, forceSetAll, scope) { var styleChanged = false; if (!forceSetAll) { prevStyle = prevStyle || {}; if (style === prevStyle) { return false; } } if (forceSetAll || style.opacity !== prevStyle.opacity) { flushPathDrawn(ctx, scope); styleChanged = true; var opacity = Math.max(Math.min(style.opacity, 1), 0); ctx.globalAlpha = isNaN(opacity) ? DEFAULT_COMMON_STYLE.opacity : opacity; } if (forceSetAll || style.blend !== prevStyle.blend) { if (!styleChanged) { flushPathDrawn(ctx, scope); styleChanged = true; } ctx.globalCompositeOperation = style.blend || DEFAULT_COMMON_STYLE.blend; } for (var i = 0; i < SHADOW_NUMBER_PROPS.length; i++) { var propName = SHADOW_NUMBER_PROPS[i]; if (forceSetAll || style[propName] !== prevStyle[propName]) { if (!styleChanged) { flushPathDrawn(ctx, scope); styleChanged = true; } ctx[propName] = ctx.dpr * (style[propName] || 0); } } if (forceSetAll || style.shadowColor !== prevStyle.shadowColor) { if (!styleChanged) { flushPathDrawn(ctx, scope); styleChanged = true; } ctx.shadowColor = style.shadowColor || DEFAULT_COMMON_STYLE.shadowColor; } return styleChanged; } function bindPathAndTextCommonStyle(ctx, el, prevEl, forceSetAll, scope) { var style = getStyle(el, scope.inHover); var prevStyle = forceSetAll ? null : prevEl && getStyle(prevEl, scope.inHover) || {}; if (style === prevStyle) { return false; } var styleChanged = bindCommonProps(ctx, style, prevStyle, forceSetAll, scope); if (forceSetAll || style.fill !== prevStyle.fill) { if (!styleChanged) { flushPathDrawn(ctx, scope); styleChanged = true; } isValidStrokeFillStyle(style.fill) && (ctx.fillStyle = style.fill); } if (forceSetAll || style.stroke !== prevStyle.stroke) { if (!styleChanged) { flushPathDrawn(ctx, scope); styleChanged = true; } isValidStrokeFillStyle(style.stroke) && (ctx.strokeStyle = style.stroke); } if (forceSetAll || style.opacity !== prevStyle.opacity) { if (!styleChanged) { flushPathDrawn(ctx, scope); styleChanged = true; } ctx.globalAlpha = style.opacity == null ? 1 : style.opacity; } if (el.hasStroke()) { var lineWidth = style.lineWidth; var newLineWidth = lineWidth / (style.strokeNoScale && el.getLineScale ? el.getLineScale() : 1); if (ctx.lineWidth !== newLineWidth) { if (!styleChanged) { flushPathDrawn(ctx, scope); styleChanged = true; } ctx.lineWidth = newLineWidth; } } for (var i = 0; i < STROKE_PROPS.length; i++) { var prop = STROKE_PROPS[i]; var propName = prop[0]; if (forceSetAll || style[propName] !== prevStyle[propName]) { if (!styleChanged) { flushPathDrawn(ctx, scope); styleChanged = true; } ctx[propName] = style[propName] || prop[1]; } } return styleChanged; } function bindImageStyle(ctx, el, prevEl, forceSetAll, scope) { return bindCommonProps(ctx, getStyle(el, scope.inHover), prevEl && getStyle(prevEl, scope.inHover), forceSetAll, scope); } function setContextTransform(ctx, el) { var m = el.transform; var dpr2 = ctx.dpr || 1; if (m) { ctx.setTransform(dpr2 * m[0], dpr2 * m[1], dpr2 * m[2], dpr2 * m[3], dpr2 * m[4], dpr2 * m[5]); } else { ctx.setTransform(dpr2, 0, 0, dpr2, 0, 0); } } function updateClipStatus(clipPaths, ctx, scope) { var allClipped = false; for (var i = 0; i < clipPaths.length; i++) { var clipPath = clipPaths[i]; allClipped = allClipped || clipPath.isZeroArea(); setContextTransform(ctx, clipPath); ctx.beginPath(); clipPath.buildPath(ctx, clipPath.shape); ctx.clip(); } scope.allClipped = allClipped; } function isTransformChanged(m0, m1) { if (m0 && m1) { return m0[0] !== m1[0] || m0[1] !== m1[1] || m0[2] !== m1[2] || m0[3] !== m1[3] || m0[4] !== m1[4] || m0[5] !== m1[5]; } else if (!m0 && !m1) { return false; } return true; } var DRAW_TYPE_PATH = 1; var DRAW_TYPE_IMAGE = 2; var DRAW_TYPE_TEXT = 3; var DRAW_TYPE_INCREMENTAL = 4; function canPathBatch(style) { var hasFill = styleHasFill(style); var hasStroke = styleHasStroke(style); return !(style.lineDash || !(+hasFill ^ +hasStroke) || hasFill && typeof style.fill !== "string" || hasStroke && typeof style.stroke !== "string" || style.strokePercent < 1 || style.strokeOpacity < 1 || style.fillOpacity < 1); } function flushPathDrawn(ctx, scope) { scope.batchFill && ctx.fill(); scope.batchStroke && ctx.stroke(); scope.batchFill = ""; scope.batchStroke = ""; } function getStyle(el, inHover) { return inHover ? el.__hoverStyle || el.style : el.style; } function brushSingle(ctx, el) { brush(ctx, el, { inHover: false, viewWidth: 0, viewHeight: 0 }, true); } function brush(ctx, el, scope, isLast) { var m = el.transform; if (!el.shouldBePainted(scope.viewWidth, scope.viewHeight, false, false)) { el.__dirty &= ~REDRAW_BIT; el.__isRendered = false; return; } var clipPaths = el.__clipPaths; var prevElClipPaths = scope.prevElClipPaths; var forceSetTransform = false; var forceSetStyle = false; if (!prevElClipPaths || isClipPathChanged(clipPaths, prevElClipPaths)) { if (prevElClipPaths && prevElClipPaths.length) { flushPathDrawn(ctx, scope); ctx.restore(); forceSetStyle = forceSetTransform = true; scope.prevElClipPaths = null; scope.allClipped = false; scope.prevEl = null; } if (clipPaths && clipPaths.length) { flushPathDrawn(ctx, scope); ctx.save(); updateClipStatus(clipPaths, ctx, scope); forceSetTransform = true; } scope.prevElClipPaths = clipPaths; } if (scope.allClipped) { el.__isRendered = false; return; } el.beforeBrush && el.beforeBrush(); el.innerBeforeBrush(); var prevEl = scope.prevEl; if (!prevEl) { forceSetStyle = forceSetTransform = true; } var canBatchPath = el instanceof Path_default && el.autoBatch && canPathBatch(el.style); if (forceSetTransform || isTransformChanged(m, prevEl.transform)) { flushPathDrawn(ctx, scope); setContextTransform(ctx, el); } else if (!canBatchPath) { flushPathDrawn(ctx, scope); } var style = getStyle(el, scope.inHover); if (el instanceof Path_default) { if (scope.lastDrawType !== DRAW_TYPE_PATH) { forceSetStyle = true; scope.lastDrawType = DRAW_TYPE_PATH; } bindPathAndTextCommonStyle(ctx, el, prevEl, forceSetStyle, scope); if (!canBatchPath || !scope.batchFill && !scope.batchStroke) { ctx.beginPath(); } brushPath(ctx, el, style, canBatchPath); if (canBatchPath) { scope.batchFill = style.fill || ""; scope.batchStroke = style.stroke || ""; } } else { if (el instanceof TSpan_default) { if (scope.lastDrawType !== DRAW_TYPE_TEXT) { forceSetStyle = true; scope.lastDrawType = DRAW_TYPE_TEXT; } bindPathAndTextCommonStyle(ctx, el, prevEl, forceSetStyle, scope); brushText(ctx, el, style); } else if (el instanceof Image_default) { if (scope.lastDrawType !== DRAW_TYPE_IMAGE) { forceSetStyle = true; scope.lastDrawType = DRAW_TYPE_IMAGE; } bindImageStyle(ctx, el, prevEl, forceSetStyle, scope); brushImage(ctx, el, style); } else if (el.getTemporalDisplayables) { if (scope.lastDrawType !== DRAW_TYPE_INCREMENTAL) { forceSetStyle = true; scope.lastDrawType = DRAW_TYPE_INCREMENTAL; } brushIncremental(ctx, el, scope); } } if (canBatchPath && isLast) { flushPathDrawn(ctx, scope); } el.innerAfterBrush(); el.afterBrush && el.afterBrush(); scope.prevEl = el; el.__dirty = 0; el.__isRendered = true; } function brushIncremental(ctx, el, scope) { var displayables = el.getDisplayables(); var temporalDisplayables = el.getTemporalDisplayables(); ctx.save(); var innerScope = { prevElClipPaths: null, prevEl: null, allClipped: false, viewWidth: scope.viewWidth, viewHeight: scope.viewHeight, inHover: scope.inHover }; var i; var len2; for (i = el.getCursor(), len2 = displayables.length; i < len2; i++) { var displayable = displayables[i]; displayable.beforeBrush && displayable.beforeBrush(); displayable.innerBeforeBrush(); brush(ctx, displayable, innerScope, i === len2 - 1); displayable.innerAfterBrush(); displayable.afterBrush && displayable.afterBrush(); innerScope.prevEl = displayable; } for (var i_1 = 0, len_1 = temporalDisplayables.length; i_1 < len_1; i_1++) { var displayable = temporalDisplayables[i_1]; displayable.beforeBrush && displayable.beforeBrush(); displayable.innerBeforeBrush(); brush(ctx, displayable, innerScope, i_1 === len_1 - 1); displayable.innerAfterBrush(); displayable.afterBrush && displayable.afterBrush(); innerScope.prevEl = displayable; } el.clearTemporalDisplayables(); el.notClear = true; ctx.restore(); } // ../node_modules/.pnpm/zrender@6.0.0/node_modules/zrender/lib/graphic/helper/roundRect.js function buildPath(ctx, shape) { var x = shape.x; var y = shape.y; var width = shape.width; var height = shape.height; var r = shape.r; var r1; var r2; var r3; var r4; 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; } var 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); } // ../node_modules/.pnpm/zrender@6.0.0/node_modules/zrender/lib/graphic/helper/subPixelOptimize.js var round = Math.round; function subPixelOptimizeLine(outputShape, inputShape, style) { if (!inputShape) { return; } var x1 = inputShape.x1; var x2 = inputShape.x2; var y1 = inputShape.y1; var y2 = inputShape.y2; outputShape.x1 = x1; outputShape.x2 = x2; outputShape.y1 = y1; outputShape.y2 = y2; var lineWidth = style && style.lineWidth; if (!lineWidth) { return outputShape; } 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; } function subPixelOptimizeRect(outputShape, inputShape, style) { if (!inputShape) { return; } var originX = inputShape.x; var originY = inputShape.y; var originWidth = inputShape.width; var originHeight = inputShape.height; outputShape.x = originX; outputShape.y = originY; outputShape.width = originWidth; outputShape.height = originHeight; var lineWidth = style && style.lineWidth; if (!lineWidth) { return outputShape; } 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; } function subPixelOptimize(position, lineWidth, positiveOrNegative) { if (!lineWidth) { return position; } var doubledPosition = round(position * 2); return (doubledPosition + round(lineWidth)) % 2 === 0 ? doubledPosition / 2 : (doubledPosition + (positiveOrNegative ? 1 : -1)) / 2; } // ../node_modules/.pnpm/zrender@6.0.0/node_modules/zrender/lib/graphic/shape/Rect.js var RectShape = /* @__PURE__ */ function() { function RectShape2() { this.x = 0; this.y = 0; this.width = 0; this.height = 0; } return RectShape2; }(); var subPixelOptimizeOutputShape = {}; var Rect = function(_super) { __extends(Rect2, _super); function Rect2(opts) { return _super.call(this, opts) || this; } Rect2.prototype.getDefaultShape = function() { return new RectShape(); }; Rect2.prototype.buildPath = function(ctx, shape) { var x; var y; var width; var height; if (this.subPixelOptimize) { var 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 { buildPath(ctx, shape); } }; Rect2.prototype.isZeroArea = function() { return !this.shape.width || !this.shape.height; }; return Rect2; }(Path_default); Rect.prototype.type = "rect"; var Rect_default = Rect; // ../node_modules/.pnpm/zrender@6.0.0/node_modules/zrender/lib/graphic/Text.js var DEFAULT_RICH_TEXT_COLOR = { fill: "#000" }; var DEFAULT_STROKE_LINE_WIDTH = 2; var tmpCITOverflowAreaOut = {}; var DEFAULT_TEXT_ANIMATION_PROPS = { style: defaults({ 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, borderColor: true, borderWidth: true, borderRadius: true }, DEFAULT_COMMON_ANIMATION_PROPS.style) }; var ZRText = function(_super) { __extends(ZRText2, _super); function ZRText2(opts) { var _this = _super.call(this) || this; _this.type = "text"; _this._children = []; _this._defaultStyle = DEFAULT_RICH_TEXT_COLOR; _this.attr(opts); return _this; } ZRText2.prototype.childrenRef = function() { return this._children; }; ZRText2.prototype.update = function() { _super.prototype.update.call(this); if (this.styleChanged()) { this._updateSubTexts(); } for (var i = 0; i < this._children.length; i++) { var child = this._children[i]; child.zlevel = this.zlevel; child.z = this.z; child.z2 = this.z2; child.culling = this.culling; child.cursor = this.cursor; child.invisible = this.invisible; } }; ZRText2.prototype.updateTransform = function() { var innerTransformable = this.innerTransformable; if (innerTransformable) { innerTransformable.updateTransform(); if (innerTransformable.transform) { this.transform = innerTransformable.transform; } } else { _super.prototype.updateTransform.call(this); } }; ZRText2.prototype.getLocalTransform = function(m) { var innerTransformable = this.innerTransformable; return innerTransformable ? innerTransformable.getLocalTransform(m) : _super.prototype.getLocalTransform.call(this, m); }; ZRText2.prototype.getComputedTransform = function() { if (this.__hostTarget) { this.__hostTarget.getComputedTransform(); this.__hostTarget.updateInnerText(true); } return _super.prototype.getComputedTransform.call(this); }; ZRText2.prototype._updateSubTexts = function() { this._childCursor = 0; normalizeTextStyle(this.style); this.style.rich ? this._updateRichTexts() : this._updatePlainTexts(); this._children.length = this._childCursor; this.styleUpdated(); }; ZRText2.prototype.addSelfToZr = function(zr) { _super.prototype.addSelfToZr.call(this, zr); for (var i = 0; i < this._children.length; i++) { this._children[i].__zr = zr; } }; ZRText2.prototype.removeSelfFromZr = function(zr) { _super.prototype.removeSelfFromZr.call(this, zr); for (var i = 0; i < this._children.length; i++) { this._children[i].__zr = null; } }; ZRText2.prototype.getBoundingRect = function() { if (this.styleChanged()) { this._updateSubTexts(); } if (!this._rect) { var tmpRect3 = new BoundingRect_default(0, 0, 0, 0); var children = this._children; var tmpMat = []; var rect = null; for (var i = 0; i < children.length; i++) { var child = children[i]; var childRect = child.getBoundingRect(); var transform = child.getLocalTransform(tmpMat); if (transform) { tmpRect3.copy(childRect); tmpRect3.applyTransform(transform); rect = rect || tmpRect3.clone(); rect.union(tmpRect3); } else { rect = rect || childRect.clone(); rect.union(childRect); } } this._rect = rect || tmpRect3; } return this._rect; }; ZRText2.prototype.setDefaultTextStyle = function(defaultTextStyle) { this._defaultStyle = defaultTextStyle || DEFAULT_RICH_TEXT_COLOR; }; ZRText2.prototype.setTextContent = function(textContent) { if (true) { throw new Error("Can't attach text on another text"); } }; ZRText2.prototype._mergeStyle = function(targetStyle, sourceStyle) { if (!sourceStyle) { return targetStyle; } var sourceRich = sourceStyle.rich; var targetRich = targetStyle.rich || sourceRich && {}; extend(targetStyle, sourceStyle); if (sourceRich && targetRich) { this._mergeRich(targetRich, sourceRich); targetStyle.rich = targetRich; } else if (targetRich) { targetStyle.rich = targetRich; } return targetStyle; }; ZRText2.prototype._mergeRich = function(targetRich, sourceRich) { var richNames = keys(sourceRich); for (var i = 0; i < richNames.length; i++) { var richName = richNames[i]; targetRich[richName] = targetRich[richName] || {}; extend(targetRich[richName], sourceRich[richName]); } }; ZRText2.prototype.getAnimationStyleProps = function() { return DEFAULT_TEXT_ANIMATION_PROPS; }; ZRText2.prototype._getOrCreateChild = function(Ctor) { var child = this._children[this._childCursor]; if (!child || !(child instanceof Ctor)) { child = new Ctor(); } this._children[this._childCursor++] = child; child.__zr = this.__zr; child.parent = this; return child; }; ZRText2.prototype._updatePlainTexts = function() { var style = this.style; var textFont = style.font || DEFAULT_FONT; var textPadding = style.padding; var defaultStyle = this._defaultStyle; var baseX = style.x || 0; var baseY = style.y || 0; var textAlign = style.align || defaultStyle.align || "left"; var verticalAlign = style.verticalAlign || defaultStyle.verticalAlign || "top"; calcInnerTextOverflowArea(tmpCITOverflowAreaOut, defaultStyle.overflowRect, baseX, baseY, textAlign, verticalAlign); baseX = tmpCITOverflowAreaOut.baseX; baseY = tmpCITOverflowAreaOut.baseY; var text = getStyleText(style); var contentBlock = parsePlainText(text, style, tmpCITOverflowAreaOut.outerWidth, tmpCITOverflowAreaOut.outerHeight); var needDrawBg = needDrawBackground(style); var bgColorDrawn = !!style.backgroundColor; var outerHeight = contentBlock.outerHeight; var outerWidth = contentBlock.outerWidth; var textLines = contentBlock.lines; var lineHeight = contentBlock.lineHeight; this.isTruncated = !!contentBlock.isTruncated; var textX = baseX; var textY = adjustTextY2(baseY, contentBlock.contentHeight, verticalAlign); if (needDrawBg || textPadding) { var boxX = adjustTextX(baseX, outerWidth, textAlign); var boxY = adjustTextY2(baseY, outerHeight, verticalAlign); needDrawBg && this._renderBackground(style, style, boxX, boxY, outerWidth, outerHeight); } textY += lineHeight / 2; if (textPadding) { textX = getTextXForPadding(baseX, textAlign, textPadding); if (verticalAlign === "top") { textY += textPadding[0]; } else if (verticalAlign === "bottom") { textY -= textPadding[2]; } } var defaultLineWidth = 0; var usingDefaultStroke = false; var useDefaultFill = false; var textFill = getFill("fill" in style ? style.fill : (useDefaultFill = true, defaultStyle.fill)); var textStroke = getStroke("stroke" in style ? style.stroke : !bgColorDrawn && (!defaultStyle.autoStroke || useDefaultFill) ? (defaultLineWidth = DEFAULT_STROKE_LINE_WIDTH, usingDefaultStroke = true, defaultStyle.stroke) : null); var hasShadow2 = style.textShadowBlur > 0; for (var i = 0; i < textLines.length; i++) { var el = this._getOrCreateChild(TSpan_default); var subElStyle = el.createStyle(); el.useStyle(subElStyle); subElStyle.text = textLines[i]; subElStyle.x = textX; subElStyle.y = textY; if (textAlign) { subElStyle.textAlign = textAlign; } subElStyle.textBaseline = "middle"; subElStyle.opacity = style.opacity; subElStyle.strokeFirst = true; if (hasShadow2) { subElStyle.shadowBlur = style.textShadowBlur || 0; subElStyle.shadowColor = style.textShadowColor || "transparent"; subElStyle.shadowOffsetX = style.textShadowOffsetX || 0; subElStyle.shadowOffsetY = style.textShadowOffsetY || 0; } subElStyle.stroke = textStroke; subElStyle.fill = textFill; if (textStroke) { subElStyle.lineWidth = style.lineWidth || defaultLineWidth; subElStyle.lineDash = style.lineDash; subElStyle.lineDashOffset = style.lineDashOffset || 0; } subElStyle.font = textFont; setSeparateFont(subElStyle, style); textY += lineHeight; el.setBoundingRect(tSpanCreateBoundingRect2(subElStyle, contentBlock.contentWidth, contentBlock.calculatedLineHeight, usingDefaultStroke ? 0 : null)); } }; ZRText2.prototype._updateRichTexts = function() { var style = this.style; var defaultStyle = this._defaultStyle; var textAlign = style.align || defaultStyle.align; var verticalAlign = style.verticalAlign || defaultStyle.verticalAlign; var baseX = style.x || 0; var baseY = style.y || 0; calcInnerTextOverflowArea(tmpCITOverflowAreaOut, defaultStyle.overflowRect, baseX, baseY, textAlign, verticalAlign); baseX = tmpCITOverflowAreaOut.baseX; baseY = tmpCITOverflowAreaOut.baseY; var text = getStyleText(style); var contentBlock = parseRichText(text, style, tmpCITOverflowAreaOut.outerWidth, tmpCITOverflowAreaOut.outerHeight, textAlign); var contentWidth = contentBlock.width; var outerWidth = contentBlock.outerWidth; var outerHeight = contentBlock.outerHeight; var textPadding = style.padding; this.isTruncated = !!contentBlock.isTruncated; var boxX = adjustTextX(baseX, outerWidth, textAlign); var boxY = adjustTextY2(baseY, outerHeight, verticalAlign); var xLeft = boxX; var lineTop = boxY; if (textPadding) { xLeft += textPadding[3]; lineTop += textPadding[0]; } var xRight = xLeft + contentWidth; if (needDrawBackground(style)) { this._renderBackground(style, style, boxX, boxY, outerWidth, outerHeight); } var bgColorDrawn = !!style.backgroundColor; for (var i = 0; i < contentBlock.lines.length; i++) { var line = contentBlock.lines[i]; var tokens = line.tokens; var tokenCount = tokens.length; var lineHeight = line.lineHeight; var remainedWidth = line.width; var leftIndex = 0; var lineXLeft = xLeft; var lineXRight = xRight; var rightIndex = tokenCount - 1; var token = void 0; 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--; } lineXLeft += (contentWidth - (lineXLeft - xLeft) - (xRight - lineXRight) - remainedWidth) / 2; while (leftIndex <= rightIndex) { token = tokens[leftIndex]; this._placeToken(token, style, lineHeight, lineTop, lineXLeft + token.width / 2, "center", bgColorDrawn); lineXLeft += token.width; leftIndex++; } lineTop += lineHeight; } }; ZRText2.prototype._placeToken = function(token, style, lineHeight, lineTop, x, textAlign, parentBgColorDrawn) { var tokenStyle = style.rich[token.styleName] || {}; tokenStyle.text = token.text; var verticalAlign = token.verticalAlign; var y = lineTop + lineHeight / 2; if (verticalAlign === "top") { y = lineTop + token.height / 2; } else if (verticalAlign === "bottom") { y = lineTop + lineHeight - token.height / 2; } var 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); var bgColorDrawn = !!tokenStyle.backgroundColor; var textPadding = token.textPadding; if (textPadding) { x = getTextXForPadding(x, textAlign, textPadding); y -= token.height / 2 - textPadding[0] - token.innerHeight / 2; } var el = this._getOrCreateChild(TSpan_default); var subElStyle = el.createStyle(); el.useStyle(subElStyle); var defaultStyle = this._defaultStyle; var useDefaultFill = false; var defaultLineWidth = 0; var usingDefaultStroke = false; var textFill = getFill("fill" in tokenStyle ? tokenStyle.fill : "fill" in style ? style.fill : (useDefaultFill = true, defaultStyle.fill)); var textStroke = getStroke("stroke" in tokenStyle ? tokenStyle.stroke : "stroke" in style ? style.stroke : !bgColorDrawn && !parentBgColorDrawn && (!defaultStyle.autoStroke || useDefaultFill) ? (defaultLineWidth = DEFAULT_STROKE_LINE_WIDTH, usingDefaultStroke = true, defaultStyle.stroke) : null); var hasShadow2 = tokenStyle.textShadowBlur > 0 || style.textShadowBlur > 0; subElStyle.text = token.text; subElStyle.x = x; subElStyle.y = y; if (hasShadow2) { 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; subElStyle.textBaseline = "middle"; subElStyle.font = token.font || DEFAULT_FONT; subElStyle.opacity = retrieve3(tokenStyle.opacity, style.opacity, 1); 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; } el.setBoundingRect(tSpanCreateBoundingRect2(subElStyle, token.contentWidth, token.contentHeight, usingDefaultStroke ? 0 : null)); }; ZRText2.prototype._renderBackground = function(style, topStyle, x, y, width, height) { var textBackgroundColor = style.backgroundColor; var textBorderWidth = style.borderWidth; var textBorderColor = style.borderColor; var isImageBg = textBackgroundColor && textBackgroundColor.image; var isPlainOrGradientBg = textBackgroundColor && !isImageBg; var textBorderRadius = style.borderRadius; var self2 = this; var rectEl; var imgEl; if (isPlainOrGradientBg || style.lineHeight || textBorderWidth && textBorderColor) { rectEl = this._getOrCreateChild(Rect_default); rectEl.useStyle(rectEl.createStyle()); rectEl.style.fill = null; var rectShape = rectEl.shape; rectShape.x = x; rectShape.y = y; rectShape.width = width; rectShape.height = height; rectShape.r = textBorderRadius; rectEl.dirtyShape(); } if (isPlainOrGradientBg) { var rectStyle = rectEl.style; rectStyle.fill = textBackgroundColor || null; rectStyle.fillOpacity = retrieve2(style.fillOpacity, 1); } else if (isImageBg) { imgEl = this._getOrCreateChild(Image_default); imgEl.onload = function() { self2.dirtyStyle(); }; var imgStyle = imgEl.style; imgStyle.image = textBackgroundColor.image; imgStyle.x = x; imgStyle.y = y; imgStyle.width = width; imgStyle.height = height; } if (textBorderWidth && textBorderColor) { var 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; if (rectEl.hasFill() && rectEl.hasStroke()) { rectStyle.strokeFirst = true; rectStyle.lineWidth *= 2; } } var 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); }; ZRText2.makeFont = function(style) { var font = ""; if (hasSeparateFont(style)) { font = [ style.fontStyle, style.fontWeight, parseFontSize(style.fontSize), style.fontFamily || "sans-serif" ].join(" "); } return font && trim(font) || style.textFont || style.font; }; return ZRText2; }(Displayable_default); var VALID_TEXT_ALIGN = { left: true, right: 1, center: 1 }; var VALID_TEXT_VERTICAL_ALIGN = { top: 1, bottom: 1, middle: 1 }; var FONT_PARTS = ["fontStyle", "fontWeight", "fontSize", "fontFamily"]; function parseFontSize(fontSize) { 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, sourceStyle) { for (var i = 0; i < FONT_PARTS.length; i++) { var fontProp = FONT_PARTS[i]; var val = sourceStyle[fontProp]; if (val != null) { targetStyle[fontProp] = val; } } } function hasSeparateFont(style) { return style.fontSize != null || style.fontFamily || style.fontWeight; } function normalizeTextStyle(style) { normalizeStyle(style); each(style.rich, normalizeStyle); return style; } function normalizeStyle(style) { if (style) { style.font = ZRText.makeFont(style); var textAlign = style.align; textAlign === "middle" && (textAlign = "center"); style.align = textAlign == null || VALID_TEXT_ALIGN[textAlign] ? textAlign : "left"; var verticalAlign = style.verticalAlign; verticalAlign === "center" && (verticalAlign = "middle"); style.verticalAlign = verticalAlign == null || VALID_TEXT_VERTICAL_ALIGN[verticalAlign] ? verticalAlign : "top"; var textPadding = style.padding; if (textPadding) { style.padding = normalizeCssArray(style.padding); } } } function getStroke(stroke, lineWidth) { return stroke == null || lineWidth <= 0 || stroke === "transparent" || stroke === "none" ? null : stroke.image || stroke.colorStops ? "#000" : stroke; } function getFill(fill) { return fill == null || fill === "none" ? null : fill.image || fill.colorStops ? "#000" : fill; } function getTextXForPadding(x, textAlign, textPadding) { return textAlign === "right" ? x - textPadding[1] : textAlign === "center" ? x + textPadding[3] / 2 - textPadding[1] / 2 : x + textPadding[3]; } function getStyleText(style) { var text = style.text; text != null && (text += ""); return text; } function needDrawBackground(style) { return !!(style.backgroundColor || style.lineHeight || style.borderWidth && style.borderColor); } var Text_default = ZRText; // ../node_modules/.pnpm/zrender@6.0.0/node_modules/zrender/lib/graphic/CompoundPath.js var CompoundPath = function(_super) { __extends(CompoundPath2, _super); function CompoundPath2() { var _this = _super !== null && _super.apply(this, arguments) || this; _this.type = "compound"; return _this; } CompoundPath2.prototype._updatePathDirty = function() { var paths = this.shape.paths; var dirtyPath = this.shapeChanged(); for (var i = 0; i < paths.length; i++) { dirtyPath = dirtyPath || paths[i].shapeChanged(); } if (dirtyPath) { this.dirtyShape(); } }; CompoundPath2.prototype.beforeBrush = function() { this._updatePathDirty(); var paths = this.shape.paths || []; var scale3 = this.getGlobalScale(); for (var i = 0; i < paths.length; i++) { if (!paths[i].path) { paths[i].createPathProxy(); } paths[i].path.setScale(scale3[0], scale3[1], paths[i].segmentIgnoreThreshold); } }; CompoundPath2.prototype.buildPath = function(ctx, shape) { var paths = shape.paths || []; for (var i = 0; i < paths.length; i++) { paths[i].buildPath(ctx, paths[i].shape, true); } }; CompoundPath2.prototype.afterBrush = function() { var paths = this.shape.paths || []; for (var i = 0; i < paths.length; i++) { paths[i].pathUpdated(); } }; CompoundPath2.prototype.getBoundingRect = function() { this._updatePathDirty.call(this); return Path_default.prototype.getBoundingRect.call(this); }; return CompoundPath2; }(Path_default); var CompoundPath_default = CompoundPath; export { __extends, DEFAULT_FONT_FAMILY, DEFAULT_FONT, platformApi, setPlatformAPI, logError, clone, merge, mergeAll, extend, defaults, indexOf, inherits, mixin, isArrayLike, each, map, reduce, filter, find, keys, bind, curry, isArray, isFunction, isString, isStringSafe, isNumber, isObject, isTypedArray, isDom, isGradientObject, isImagePatternObject, isRegExp, eqNaN, retrieve, retrieve2, retrieve3, slice, normalizeCssArray, assert, trim, setAsPrimitive, createHashMap, concatArray, disableUserSelect, hasOwn, noop, util_exports, env_default, LRU_default, createOrUpdateImage, create, identity, copy, mul, translate, rotate, scale, invert, clone2, matrix_exports, Point_default, createIntersectContext, BoundingRect_default, getBoundingRect, getLineHeight, parsePercent, calculateTextPosition, truncateText, create2, copy2, clone3, set, add, scaleAndAdd, sub, len, scale2, normalize, distance, dist, distSquare, lerp, applyTransform, min, max, vector_exports, TRANSFORMABLE_PROPS, copyTransform, Transformable_default, cubicAt, cubicDerivativeAt, cubicRootAt, cubicSubdivide, cubicProjectPoint, quadraticAt, quadraticDerivativeAt, quadraticSubdivide, quadraticProjectPoint, createCubicEasingFunc, parseCssFloat, parse, lift, fastLerp, lerp2, modifyHSL, modifyAlpha, stringify, liftColor, color_exports, normalizeColor, isAroundZero2 as isAroundZero, round4, getMatrixStr, TEXT_ALIGN_TO_ANCHOR, adjustTextY, hasShadow, getShadowKey, isImagePattern, isPattern, isLinearGradient, isRadialGradient, isGradient, getIdURL, getPathPrecision, getSRTTransformString, encodeBase64, cloneValue, Eventful_default, devicePixelRatio, REDRAW_BIT, Displayable_default, fromPoints, normalizeArcAngles, PathProxy_default, containStroke, containStroke3 as containStroke2, normalizeRadian, windingLine, DEFAULT_PATH_STYLE, Path_default, TSpan_default, Image_default, subPixelOptimizeLine, subPixelOptimizeRect, subPixelOptimize, Rect_default, parseFontSize, hasSeparateFont, Text_default, Group_default, CompoundPath_default, transformLocalCoord, transformLocalCoordClear, encodeHTML, normalizeEvent, addEventListener, stop, isMiddleOrRightButtonOnMouseUpDown, sort, requestAnimationFrame_default, init, registerPainter, getElementSSRData, registerSSRDataGetter, zrender_exports, getCanvasGradient, getSize, getLineDash, createCanvasPattern, brushSingle, brush }; //# sourceMappingURL=chunk-ZAVXMU2G.js.map