import { BoundingRect_default, CompoundPath_default, Displayable_default, Eventful_default, Group_default, Image_default, LRU_default, PathProxy_default, Path_default, Point_default, Rect_default, Text_default, Transformable_default, __extends, add, applyTransform, assert, bind, brushSingle, calculateTextPosition, clone, clone2, concatArray, createHashMap, cubicAt, cubicDerivativeAt, cubicSubdivide, curry, defaults, distance, each, encodeHTML, env_default, eqNaN, extend, filter, getBoundingRect, hasOwn, identity, indexOf, inherits, init, invert, isArray, isArrayLike, isDom, isFunction, isNumber, isObject, isRegExp, isString, isStringSafe, isTypedArray, keys, liftColor, map, max, merge, min, mixin, mul, noop, normalize, normalizeCssArray, parsePercent, platformApi, quadraticAt, quadraticDerivativeAt, quadraticSubdivide, reduce, registerPainter, registerSSRDataGetter, retrieve2, scale, setAsPrimitive, setPlatformAPI, slice, sort, sub, subPixelOptimize, subPixelOptimizeLine, subPixelOptimizeRect, trim, windingLine } from "./chunk-5C3U67VL.js"; import { __export } from "./chunk-G3PMV62Z.js"; // node_modules/echarts/lib/util/clazz.js var TYPE_DELIMITER = "."; var IS_CONTAINER = "___EC__COMPONENT__CONTAINER___"; var IS_EXTENDED_CLASS = "___EC__EXTENDED_CLASS___"; function parseClassType(componentType) { var ret = { main: "", sub: "" }; if (componentType) { var typeArr = componentType.split(TYPE_DELIMITER); ret.main = typeArr[0] || ""; ret.sub = typeArr[1] || ""; } return ret; } function checkClassType(componentType) { assert(/^[a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)?$/.test(componentType), 'componentType "' + componentType + '" illegal'); } function isExtendedClass(clz) { return !!(clz && clz[IS_EXTENDED_CLASS]); } function enableClassExtend(rootClz, mandatoryMethods) { rootClz.$constructor = rootClz; rootClz.extend = function(proto2) { if (true) { each(mandatoryMethods, function(method) { if (!proto2[method]) { console.warn("Method `" + method + "` should be implemented" + (proto2.type ? " in " + proto2.type : "") + "."); } }); } var superClass = this; var ExtendedClass; if (isESClass(superClass)) { ExtendedClass = /** @class */ function(_super) { __extends(class_1, _super); function class_1() { return _super.apply(this, arguments) || this; } return class_1; }(superClass); } else { ExtendedClass = function() { (proto2.$constructor || superClass).apply(this, arguments); }; inherits(ExtendedClass, this); } extend(ExtendedClass.prototype, proto2); ExtendedClass[IS_EXTENDED_CLASS] = true; ExtendedClass.extend = this.extend; ExtendedClass.superCall = superCall; ExtendedClass.superApply = superApply; ExtendedClass.superClass = superClass; return ExtendedClass; }; } function isESClass(fn) { return isFunction(fn) && /^class\s/.test(Function.prototype.toString.call(fn)); } function mountExtend(SubClz, SupperClz) { SubClz.extend = SupperClz.extend; } var classBase = Math.round(Math.random() * 10); function enableClassCheck(target) { var classAttr = ["__\0is_clz", classBase++].join("_"); target.prototype[classAttr] = true; if (true) { assert(!target.isInstance, 'The method "is" can not be defined.'); } target.isInstance = function(obj) { return !!(obj && obj[classAttr]); }; } function superCall(context, methodName) { var args = []; for (var _i = 2; _i < arguments.length; _i++) { args[_i - 2] = arguments[_i]; } return this.superClass.prototype[methodName].apply(context, args); } function superApply(context, methodName, args) { return this.superClass.prototype[methodName].apply(context, args); } function enableClassManagement(target) { var storage = {}; target.registerClass = function(clz) { var componentFullType = clz.type || clz.prototype.type; if (componentFullType) { checkClassType(componentFullType); clz.prototype.type = componentFullType; var componentTypeInfo = parseClassType(componentFullType); if (!componentTypeInfo.sub) { if (true) { if (storage[componentTypeInfo.main]) { console.warn(componentTypeInfo.main + " exists."); } } storage[componentTypeInfo.main] = clz; } else if (componentTypeInfo.sub !== IS_CONTAINER) { var container = makeContainer(componentTypeInfo); container[componentTypeInfo.sub] = clz; } } return clz; }; target.getClass = function(mainType, subType, throwWhenNotFound) { var clz = storage[mainType]; if (clz && clz[IS_CONTAINER]) { clz = subType ? clz[subType] : null; } if (throwWhenNotFound && !clz) { throw new Error(!subType ? mainType + ".type should be specified." : "Component " + mainType + "." + (subType || "") + " is used but not imported."); } return clz; }; target.getClassesByMainType = function(componentType) { var componentTypeInfo = parseClassType(componentType); var result = []; var obj = storage[componentTypeInfo.main]; if (obj && obj[IS_CONTAINER]) { each(obj, function(o, type) { type !== IS_CONTAINER && result.push(o); }); } else { result.push(obj); } return result; }; target.hasClass = function(componentType) { var componentTypeInfo = parseClassType(componentType); return !!storage[componentTypeInfo.main]; }; target.getAllClassMainTypes = function() { var types = []; each(storage, function(obj, type) { types.push(type); }); return types; }; target.hasSubTypes = function(componentType) { var componentTypeInfo = parseClassType(componentType); var obj = storage[componentTypeInfo.main]; return obj && obj[IS_CONTAINER]; }; function makeContainer(componentTypeInfo) { var container = storage[componentTypeInfo.main]; if (!container || !container[IS_CONTAINER]) { container = storage[componentTypeInfo.main] = {}; container[IS_CONTAINER] = true; } return container; } } // node_modules/echarts/lib/model/mixin/makeStyleMapper.js function makeStyleMapper(properties, ignoreParent) { for (var i = 0; i < properties.length; i++) { if (!properties[i][1]) { properties[i][1] = properties[i][0]; } } ignoreParent = ignoreParent || false; return function(model, excludes, includes) { var style = {}; for (var i2 = 0; i2 < properties.length; i2++) { var propName = properties[i2][1]; if (excludes && indexOf(excludes, propName) >= 0 || includes && indexOf(includes, propName) < 0) { continue; } var val = model.getShallow(propName, ignoreParent); if (val != null) { style[properties[i2][0]] = val; } } return style; }; } // node_modules/echarts/lib/model/mixin/areaStyle.js var AREA_STYLE_KEY_MAP = [ ["fill", "color"], ["shadowBlur"], ["shadowOffsetX"], ["shadowOffsetY"], ["opacity"], ["shadowColor"] // Option decal is in `DecalObject` but style.decal is in `PatternObject`. // So do not transfer decal directly. ]; var getAreaStyle = makeStyleMapper(AREA_STYLE_KEY_MAP); var AreaStyleMixin = ( /** @class */ function() { function AreaStyleMixin2() { } AreaStyleMixin2.prototype.getAreaStyle = function(excludes, includes) { return getAreaStyle(this, excludes, includes); }; return AreaStyleMixin2; }() ); // node_modules/echarts/lib/util/number.js var RADIAN_EPSILON = 1e-4; var ROUND_SUPPORTED_PRECISION_MAX = 20; function _trim(str) { return str.replace(/^\s+|\s+$/g, ""); } function linearMap(val, domain, range, clamp2) { var d0 = domain[0]; var d1 = domain[1]; var r0 = range[0]; var r1 = range[1]; var subDomain = d1 - d0; var subRange = r1 - r0; if (subDomain === 0) { return subRange === 0 ? r0 : (r0 + r1) / 2; } if (clamp2) { if (subDomain > 0) { if (val <= d0) { return r0; } else if (val >= d1) { return r1; } } else { if (val >= d0) { return r0; } else if (val <= d1) { return r1; } } } else { if (val === d0) { return r0; } if (val === d1) { return r1; } } return (val - d0) / subDomain * subRange + r0; } function parsePercent2(percent, all) { switch (percent) { case "center": case "middle": percent = "50%"; break; case "left": case "top": percent = "0%"; break; case "right": case "bottom": percent = "100%"; break; } if (isString(percent)) { if (_trim(percent).match(/%$/)) { return parseFloat(percent) / 100 * all; } return parseFloat(percent); } return percent == null ? NaN : +percent; } function round(x, precision, returnStr) { if (precision == null) { precision = 10; } precision = Math.min(Math.max(0, precision), ROUND_SUPPORTED_PRECISION_MAX); x = (+x).toFixed(precision); return returnStr ? x : +x; } function asc(arr) { arr.sort(function(a, b) { return a - b; }); return arr; } function getPrecision(val) { val = +val; if (isNaN(val)) { return 0; } if (val > 1e-14) { var e2 = 1; for (var i = 0; i < 15; i++, e2 *= 10) { if (Math.round(val * e2) / e2 === val) { return i; } } } return getPrecisionSafe(val); } function getPrecisionSafe(val) { var str = val.toString().toLowerCase(); var eIndex = str.indexOf("e"); var exp = eIndex > 0 ? +str.slice(eIndex + 1) : 0; var significandPartLen = eIndex > 0 ? eIndex : str.length; var dotIndex = str.indexOf("."); var decimalPartLen = dotIndex < 0 ? 0 : significandPartLen - 1 - dotIndex; return Math.max(0, decimalPartLen - exp); } function getPixelPrecision(dataExtent, pixelExtent) { var log2 = Math.log; var LN10 = Math.LN10; var dataQuantity = Math.floor(log2(dataExtent[1] - dataExtent[0]) / LN10); var sizeQuantity = Math.round(log2(Math.abs(pixelExtent[1] - pixelExtent[0])) / LN10); var precision = Math.min(Math.max(-dataQuantity + sizeQuantity, 0), 20); return !isFinite(precision) ? 20 : precision; } function getPercentWithPrecision(valueList, idx, precision) { if (!valueList[idx]) { return 0; } var seats = getPercentSeats(valueList, precision); return seats[idx] || 0; } function getPercentSeats(valueList, precision) { var sum = reduce(valueList, function(acc, val) { return acc + (isNaN(val) ? 0 : val); }, 0); if (sum === 0) { return []; } var digits = Math.pow(10, precision); var votesPerQuota = map(valueList, function(val) { return (isNaN(val) ? 0 : val) / sum * digits * 100; }); var targetSeats = digits * 100; var seats = map(votesPerQuota, function(votes) { return Math.floor(votes); }); var currentSum = reduce(seats, function(acc, val) { return acc + val; }, 0); var remainder = map(votesPerQuota, function(votes, idx) { return votes - seats[idx]; }); while (currentSum < targetSeats) { var max2 = Number.NEGATIVE_INFINITY; var maxId = null; for (var i = 0, len = remainder.length; i < len; ++i) { if (remainder[i] > max2) { max2 = remainder[i]; maxId = i; } } ++seats[maxId]; remainder[maxId] = 0; ++currentSum; } return map(seats, function(seat) { return seat / digits; }); } function addSafe(val0, val1) { var maxPrecision = Math.max(getPrecision(val0), getPrecision(val1)); var sum = val0 + val1; return maxPrecision > ROUND_SUPPORTED_PRECISION_MAX ? sum : round(sum, maxPrecision); } var MAX_SAFE_INTEGER = 9007199254740991; function remRadian(radian) { var pi2 = Math.PI * 2; return (radian % pi2 + pi2) % pi2; } function isRadianAroundZero(val) { return val > -RADIAN_EPSILON && val < RADIAN_EPSILON; } var TIME_REG = /^(?:(\d{4})(?:[-\/](\d{1,2})(?:[-\/](\d{1,2})(?:[T ](\d{1,2})(?::(\d{1,2})(?::(\d{1,2})(?:[.,](\d+))?)?)?(Z|[\+\-]\d\d:?\d\d)?)?)?)?)?$/; function parseDate(value) { if (value instanceof Date) { return value; } else if (isString(value)) { var match = TIME_REG.exec(value); if (!match) { return /* @__PURE__ */ new Date(NaN); } if (!match[8]) { return new Date(+match[1], +(match[2] || 1) - 1, +match[3] || 1, +match[4] || 0, +(match[5] || 0), +match[6] || 0, match[7] ? +match[7].substring(0, 3) : 0); } else { var hour = +match[4] || 0; if (match[8].toUpperCase() !== "Z") { hour -= +match[8].slice(0, 3); } return new Date(Date.UTC(+match[1], +(match[2] || 1) - 1, +match[3] || 1, hour, +(match[5] || 0), +match[6] || 0, match[7] ? +match[7].substring(0, 3) : 0)); } } else if (value == null) { return /* @__PURE__ */ new Date(NaN); } return new Date(Math.round(value)); } function quantity(val) { return Math.pow(10, quantityExponent(val)); } function quantityExponent(val) { if (val === 0) { return 0; } var exp = Math.floor(Math.log(val) / Math.LN10); if (val / Math.pow(10, exp) >= 10) { exp++; } return exp; } function nice(val, round2) { var exponent = quantityExponent(val); var exp10 = Math.pow(10, exponent); var f = val / exp10; var nf; if (round2) { if (f < 1.5) { nf = 1; } else if (f < 2.5) { nf = 2; } else if (f < 4) { nf = 3; } else if (f < 7) { nf = 5; } else { nf = 10; } } else { if (f < 1) { nf = 1; } else if (f < 2) { nf = 2; } else if (f < 3) { nf = 3; } else if (f < 5) { nf = 5; } else { nf = 10; } } val = nf * exp10; return exponent >= -20 ? +val.toFixed(exponent < 0 ? -exponent : 0) : val; } function quantile(ascArr, p) { var H = (ascArr.length - 1) * p + 1; var h = Math.floor(H); var v = +ascArr[h - 1]; var e2 = H - h; return e2 ? v + e2 * (ascArr[h] - v) : v; } function reformIntervals(list) { list.sort(function(a, b) { return littleThan(a, b, 0) ? -1 : 1; }); var curr = -Infinity; var currClose = 1; for (var i = 0; i < list.length; ) { var interval = list[i].interval; var close_1 = list[i].close; for (var lg = 0; lg < 2; lg++) { if (interval[lg] <= curr) { interval[lg] = curr; close_1[lg] = !lg ? 1 - currClose : 1; } curr = interval[lg]; currClose = close_1[lg]; } if (interval[0] === interval[1] && close_1[0] * close_1[1] !== 1) { list.splice(i, 1); } else { i++; } } return list; function littleThan(a, b, lg2) { return a.interval[lg2] < b.interval[lg2] || a.interval[lg2] === b.interval[lg2] && (a.close[lg2] - b.close[lg2] === (!lg2 ? 1 : -1) || !lg2 && littleThan(a, b, 1)); } } function numericToNumber(val) { var valFloat = parseFloat(val); return valFloat == val && (valFloat !== 0 || !isString(val) || val.indexOf("x") <= 0) ? valFloat : NaN; } function isNumeric(val) { return !isNaN(numericToNumber(val)); } function getRandomIdBase() { return Math.round(Math.random() * 9); } function getGreatestCommonDividor(a, b) { if (b === 0) { return a; } return getGreatestCommonDividor(b, a % b); } function getLeastCommonMultiple(a, b) { if (a == null) { return b; } if (b == null) { return a; } return a * b / getGreatestCommonDividor(a, b); } // node_modules/echarts/lib/util/log.js var ECHARTS_PREFIX = "[ECharts] "; var storedLogs = {}; var hasConsole = typeof console !== "undefined" && console.warn && console.log; function outputLog(type, str, onlyOnce) { if (hasConsole) { if (onlyOnce) { if (storedLogs[str]) { return; } storedLogs[str] = true; } console[type](ECHARTS_PREFIX + str); } } function log(str, onlyOnce) { outputLog("log", str, onlyOnce); } function warn(str, onlyOnce) { outputLog("warn", str, onlyOnce); } function error(str, onlyOnce) { outputLog("error", str, onlyOnce); } function deprecateLog(str) { if (true) { outputLog("warn", "DEPRECATED: " + str, true); } } function deprecateReplaceLog(oldOpt, newOpt, scope) { if (true) { deprecateLog((scope ? "[" + scope + "]" : "") + (oldOpt + " is deprecated, use " + newOpt + " instead.")); } } function makePrintable() { var hintInfo = []; for (var _i = 0; _i < arguments.length; _i++) { hintInfo[_i] = arguments[_i]; } var msg = ""; if (true) { var makePrintableStringIfPossible_1 = function(val) { return val === void 0 ? "undefined" : val === Infinity ? "Infinity" : val === -Infinity ? "-Infinity" : eqNaN(val) ? "NaN" : val instanceof Date ? "Date(" + val.toISOString() + ")" : isFunction(val) ? "function () { ... }" : isRegExp(val) ? val + "" : null; }; msg = map(hintInfo, function(arg) { if (isString(arg)) { return arg; } else { var printableStr = makePrintableStringIfPossible_1(arg); if (printableStr != null) { return printableStr; } else if (typeof JSON !== "undefined" && JSON.stringify) { try { return JSON.stringify(arg, function(n, val) { var printableStr2 = makePrintableStringIfPossible_1(val); return printableStr2 == null ? val : printableStr2; }); } catch (err) { return "?"; } } else { return "?"; } } }).join(" "); } return msg; } function throwError(msg) { throw new Error(msg); } // node_modules/echarts/lib/util/model.js function interpolateNumber(p0, p1, percent) { return (p1 - p0) * percent + p0; } var DUMMY_COMPONENT_NAME_PREFIX = "series\0"; var INTERNAL_COMPONENT_ID_PREFIX = "\0_ec_\0"; function normalizeToArray(value) { return value instanceof Array ? value : value == null ? [] : [value]; } function defaultEmphasis(opt, key, subOpts) { if (opt) { opt[key] = opt[key] || {}; opt.emphasis = opt.emphasis || {}; opt.emphasis[key] = opt.emphasis[key] || {}; for (var i = 0, len = subOpts.length; i < len; i++) { var subOptName = subOpts[i]; if (!opt.emphasis[key].hasOwnProperty(subOptName) && opt[key].hasOwnProperty(subOptName)) { opt.emphasis[key][subOptName] = opt[key][subOptName]; } } } } var TEXT_STYLE_OPTIONS = ["fontStyle", "fontWeight", "fontSize", "fontFamily", "rich", "tag", "color", "textBorderColor", "textBorderWidth", "width", "height", "lineHeight", "align", "verticalAlign", "baseline", "shadowColor", "shadowBlur", "shadowOffsetX", "shadowOffsetY", "textShadowColor", "textShadowBlur", "textShadowOffsetX", "textShadowOffsetY", "backgroundColor", "borderColor", "borderWidth", "borderRadius", "padding"]; function getDataItemValue(dataItem) { return isObject(dataItem) && !isArray(dataItem) && !(dataItem instanceof Date) ? dataItem.value : dataItem; } function isDataItemOption(dataItem) { return isObject(dataItem) && !(dataItem instanceof Array); } function mappingToExists(existings, newCmptOptions, mode) { var isNormalMergeMode = mode === "normalMerge"; var isReplaceMergeMode = mode === "replaceMerge"; var isReplaceAllMode = mode === "replaceAll"; existings = existings || []; newCmptOptions = (newCmptOptions || []).slice(); var existingIdIdxMap = createHashMap(); each(newCmptOptions, function(cmptOption, index) { if (!isObject(cmptOption)) { newCmptOptions[index] = null; return; } if (true) { if (cmptOption.id != null && !isValidIdOrName(cmptOption.id)) { warnInvalidateIdOrName(cmptOption.id); } if (cmptOption.name != null && !isValidIdOrName(cmptOption.name)) { warnInvalidateIdOrName(cmptOption.name); } } }); var result = prepareResult(existings, existingIdIdxMap, mode); if (isNormalMergeMode || isReplaceMergeMode) { mappingById(result, existings, existingIdIdxMap, newCmptOptions); } if (isNormalMergeMode) { mappingByName(result, newCmptOptions); } if (isNormalMergeMode || isReplaceMergeMode) { mappingByIndex(result, newCmptOptions, isReplaceMergeMode); } else if (isReplaceAllMode) { mappingInReplaceAllMode(result, newCmptOptions); } makeIdAndName(result); return result; } function prepareResult(existings, existingIdIdxMap, mode) { var result = []; if (mode === "replaceAll") { return result; } for (var index = 0; index < existings.length; index++) { var existing = existings[index]; if (existing && existing.id != null) { existingIdIdxMap.set(existing.id, index); } result.push({ existing: mode === "replaceMerge" || isComponentIdInternal(existing) ? null : existing, newOption: null, keyInfo: null, brandNew: null }); } return result; } function mappingById(result, existings, existingIdIdxMap, newCmptOptions) { each(newCmptOptions, function(cmptOption, index) { if (!cmptOption || cmptOption.id == null) { return; } var optionId = makeComparableKey(cmptOption.id); var existingIdx = existingIdIdxMap.get(optionId); if (existingIdx != null) { var resultItem = result[existingIdx]; assert(!resultItem.newOption, 'Duplicated option on id "' + optionId + '".'); resultItem.newOption = cmptOption; resultItem.existing = existings[existingIdx]; newCmptOptions[index] = null; } }); } function mappingByName(result, newCmptOptions) { each(newCmptOptions, function(cmptOption, index) { if (!cmptOption || cmptOption.name == null) { return; } for (var i = 0; i < result.length; i++) { var existing = result[i].existing; if (!result[i].newOption && existing && (existing.id == null || cmptOption.id == null) && !isComponentIdInternal(cmptOption) && !isComponentIdInternal(existing) && keyExistAndEqual("name", existing, cmptOption)) { result[i].newOption = cmptOption; newCmptOptions[index] = null; return; } } }); } function mappingByIndex(result, newCmptOptions, brandNew) { each(newCmptOptions, function(cmptOption) { if (!cmptOption) { return; } var resultItem; var nextIdx = 0; while ( // Be `!resultItem` only when `nextIdx >= result.length`. (resultItem = result[nextIdx]) && (resultItem.newOption || isComponentIdInternal(resultItem.existing) || // In mode "replaceMerge", here no not-mapped-non-internal-existing. resultItem.existing && cmptOption.id != null && !keyExistAndEqual("id", cmptOption, resultItem.existing)) ) { nextIdx++; } if (resultItem) { resultItem.newOption = cmptOption; resultItem.brandNew = brandNew; } else { result.push({ newOption: cmptOption, brandNew, existing: null, keyInfo: null }); } nextIdx++; }); } function mappingInReplaceAllMode(result, newCmptOptions) { each(newCmptOptions, function(cmptOption) { result.push({ newOption: cmptOption, brandNew: true, existing: null, keyInfo: null }); }); } function makeIdAndName(mapResult) { var idMap = createHashMap(); each(mapResult, function(item) { var existing = item.existing; existing && idMap.set(existing.id, item); }); each(mapResult, function(item) { var opt = item.newOption; assert(!opt || opt.id == null || !idMap.get(opt.id) || idMap.get(opt.id) === item, "id duplicates: " + (opt && opt.id)); opt && opt.id != null && idMap.set(opt.id, item); !item.keyInfo && (item.keyInfo = {}); }); each(mapResult, function(item, index) { var existing = item.existing; var opt = item.newOption; var keyInfo = item.keyInfo; if (!isObject(opt)) { return; } keyInfo.name = opt.name != null ? makeComparableKey(opt.name) : existing ? existing.name : DUMMY_COMPONENT_NAME_PREFIX + index; if (existing) { keyInfo.id = makeComparableKey(existing.id); } else if (opt.id != null) { keyInfo.id = makeComparableKey(opt.id); } else { var idNum = 0; do { keyInfo.id = "\0" + keyInfo.name + "\0" + idNum++; } while (idMap.get(keyInfo.id)); } idMap.set(keyInfo.id, item); }); } function keyExistAndEqual(attr, obj1, obj2) { var key1 = convertOptionIdName(obj1[attr], null); var key2 = convertOptionIdName(obj2[attr], null); return key1 != null && key2 != null && key1 === key2; } function makeComparableKey(val) { if (true) { if (val == null) { throw new Error(); } } return convertOptionIdName(val, ""); } function convertOptionIdName(idOrName, defaultValue) { if (idOrName == null) { return defaultValue; } return isString(idOrName) ? idOrName : isNumber(idOrName) || isStringSafe(idOrName) ? idOrName + "" : defaultValue; } function warnInvalidateIdOrName(idOrName) { if (true) { warn("`" + idOrName + "` is invalid id or name. Must be a string or number."); } } function isValidIdOrName(idOrName) { return isStringSafe(idOrName) || isNumeric(idOrName); } function isNameSpecified(componentModel) { var name = componentModel.name; return !!(name && name.indexOf(DUMMY_COMPONENT_NAME_PREFIX)); } function isComponentIdInternal(cmptOption) { return cmptOption && cmptOption.id != null && makeComparableKey(cmptOption.id).indexOf(INTERNAL_COMPONENT_ID_PREFIX) === 0; } function makeInternalComponentId(idSuffix) { return INTERNAL_COMPONENT_ID_PREFIX + idSuffix; } function setComponentTypeToKeyInfo(mappingResult, mainType, componentModelCtor) { each(mappingResult, function(item) { var newOption = item.newOption; if (isObject(newOption)) { item.keyInfo.mainType = mainType; item.keyInfo.subType = determineSubType(mainType, newOption, item.existing, componentModelCtor); } }); } function determineSubType(mainType, newCmptOption, existComponent, componentModelCtor) { var subType = newCmptOption.type ? newCmptOption.type : existComponent ? existComponent.subType : componentModelCtor.determineSubType(mainType, newCmptOption); return subType; } function compressBatches(batchA, batchB) { var mapA = {}; var mapB = {}; makeMap(batchA || [], mapA); makeMap(batchB || [], mapB, mapA); return [mapToArray(mapA), mapToArray(mapB)]; function makeMap(sourceBatch, map3, otherMap) { for (var i = 0, len = sourceBatch.length; i < len; i++) { var seriesId = convertOptionIdName(sourceBatch[i].seriesId, null); if (seriesId == null) { return; } var dataIndices = normalizeToArray(sourceBatch[i].dataIndex); var otherDataIndices = otherMap && otherMap[seriesId]; for (var j = 0, lenj = dataIndices.length; j < lenj; j++) { var dataIndex = dataIndices[j]; if (otherDataIndices && otherDataIndices[dataIndex]) { otherDataIndices[dataIndex] = null; } else { (map3[seriesId] || (map3[seriesId] = {}))[dataIndex] = 1; } } } } function mapToArray(map3, isData) { var result = []; for (var i in map3) { if (map3.hasOwnProperty(i) && map3[i] != null) { if (isData) { result.push(+i); } else { var dataIndices = mapToArray(map3[i], true); dataIndices.length && result.push({ seriesId: i, dataIndex: dataIndices }); } } } return result; } } function queryDataIndex(data, payload) { if (payload.dataIndexInside != null) { return payload.dataIndexInside; } else if (payload.dataIndex != null) { return isArray(payload.dataIndex) ? map(payload.dataIndex, function(value) { return data.indexOfRawIndex(value); }) : data.indexOfRawIndex(payload.dataIndex); } else if (payload.name != null) { return isArray(payload.name) ? map(payload.name, function(value) { return data.indexOfName(value); }) : data.indexOfName(payload.name); } } function makeInner() { var key = "__ec_inner_" + innerUniqueIndex++; return function(hostObj) { return hostObj[key] || (hostObj[key] = {}); }; } var innerUniqueIndex = getRandomIdBase(); function parseFinder(ecModel, finderInput, opt) { var _a2 = preParseFinder(finderInput, opt), mainTypeSpecified = _a2.mainTypeSpecified, queryOptionMap = _a2.queryOptionMap, others = _a2.others; var result = others; var defaultMainType = opt ? opt.defaultMainType : null; if (!mainTypeSpecified && defaultMainType) { queryOptionMap.set(defaultMainType, {}); } queryOptionMap.each(function(queryOption, mainType) { var queryResult = queryReferringComponents(ecModel, mainType, queryOption, { useDefault: defaultMainType === mainType, enableAll: opt && opt.enableAll != null ? opt.enableAll : true, enableNone: opt && opt.enableNone != null ? opt.enableNone : true }); result[mainType + "Models"] = queryResult.models; result[mainType + "Model"] = queryResult.models[0]; }); return result; } function preParseFinder(finderInput, opt) { var finder; if (isString(finderInput)) { var obj = {}; obj[finderInput + "Index"] = 0; finder = obj; } else { finder = finderInput; } var queryOptionMap = createHashMap(); var others = {}; var mainTypeSpecified = false; each(finder, function(value, key) { if (key === "dataIndex" || key === "dataIndexInside") { others[key] = value; return; } var parsedKey = key.match(/^(\w+)(Index|Id|Name)$/) || []; var mainType = parsedKey[1]; var queryType = (parsedKey[2] || "").toLowerCase(); if (!mainType || !queryType || opt && opt.includeMainTypes && indexOf(opt.includeMainTypes, mainType) < 0) { return; } mainTypeSpecified = mainTypeSpecified || !!mainType; var queryOption = queryOptionMap.get(mainType) || queryOptionMap.set(mainType, {}); queryOption[queryType] = value; }); return { mainTypeSpecified, queryOptionMap, others }; } var SINGLE_REFERRING = { useDefault: true, enableAll: false, enableNone: false }; var MULTIPLE_REFERRING = { useDefault: false, enableAll: true, enableNone: true }; function queryReferringComponents(ecModel, mainType, userOption, opt) { opt = opt || SINGLE_REFERRING; var indexOption = userOption.index; var idOption = userOption.id; var nameOption = userOption.name; var result = { models: null, specified: indexOption != null || idOption != null || nameOption != null }; if (!result.specified) { var firstCmpt = void 0; result.models = opt.useDefault && (firstCmpt = ecModel.getComponent(mainType)) ? [firstCmpt] : []; return result; } if (indexOption === "none" || indexOption === false) { assert(opt.enableNone, '`"none"` or `false` is not a valid value on index option.'); result.models = []; return result; } if (indexOption === "all") { assert(opt.enableAll, '`"all"` is not a valid value on index option.'); indexOption = idOption = nameOption = null; } result.models = ecModel.queryComponents({ mainType, index: indexOption, id: idOption, name: nameOption }); return result; } function setAttribute(dom, key, value) { dom.setAttribute ? dom.setAttribute(key, value) : dom[key] = value; } function getAttribute(dom, key) { return dom.getAttribute ? dom.getAttribute(key) : dom[key]; } function getTooltipRenderMode(renderModeOption) { if (renderModeOption === "auto") { return env_default.domSupported ? "html" : "richText"; } else { return renderModeOption || "html"; } } function groupData(array, getKey) { var buckets = createHashMap(); var keys2 = []; each(array, function(item) { var key = getKey(item); (buckets.get(key) || (keys2.push(key), buckets.set(key, []))).push(item); }); return { keys: keys2, buckets }; } function interpolateRawValues(data, precision, sourceValue, targetValue, percent) { var isAutoPrecision = precision == null || precision === "auto"; if (targetValue == null) { return targetValue; } if (isNumber(targetValue)) { var value = interpolateNumber(sourceValue || 0, targetValue, percent); return round(value, isAutoPrecision ? Math.max(getPrecision(sourceValue || 0), getPrecision(targetValue)) : precision); } else if (isString(targetValue)) { return percent < 1 ? sourceValue : targetValue; } else { var interpolated = []; var leftArr = sourceValue; var rightArr = targetValue; var length_1 = Math.max(leftArr ? leftArr.length : 0, rightArr.length); for (var i = 0; i < length_1; ++i) { var info = data.getDimensionInfo(i); if (info && info.type === "ordinal") { interpolated[i] = (percent < 1 && leftArr ? leftArr : rightArr)[i]; } else { var leftVal = leftArr && leftArr[i] ? leftArr[i] : 0; var rightVal = rightArr[i]; var value = interpolateNumber(leftVal, rightVal, percent); interpolated[i] = round(value, isAutoPrecision ? Math.max(getPrecision(leftVal), getPrecision(rightVal)) : precision); } } return interpolated; } } // node_modules/echarts/lib/util/innerStore.js var getECData = makeInner(); var setCommonECData = function(seriesIndex, dataType, dataIdx, el) { if (el) { var ecData = getECData(el); ecData.dataIndex = dataIdx; ecData.dataType = dataType; ecData.seriesIndex = seriesIndex; ecData.ssrType = "chart"; if (el.type === "group") { el.traverse(function(child) { var childECData = getECData(child); childECData.seriesIndex = seriesIndex; childECData.dataIndex = dataIdx; childECData.dataType = dataType; childECData.ssrType = "chart"; }); } } }; // node_modules/echarts/lib/util/states.js var _highlightNextDigit = 1; var _highlightKeyMap = {}; var getSavedStates = makeInner(); var getComponentStates = makeInner(); var HOVER_STATE_NORMAL = 0; var HOVER_STATE_BLUR = 1; var HOVER_STATE_EMPHASIS = 2; var SPECIAL_STATES = ["emphasis", "blur", "select"]; var DISPLAY_STATES = ["normal", "emphasis", "blur", "select"]; var Z2_EMPHASIS_LIFT = 10; var Z2_SELECT_LIFT = 9; var HIGHLIGHT_ACTION_TYPE = "highlight"; var DOWNPLAY_ACTION_TYPE = "downplay"; var SELECT_ACTION_TYPE = "select"; var UNSELECT_ACTION_TYPE = "unselect"; var TOGGLE_SELECT_ACTION_TYPE = "toggleSelect"; function hasFillOrStroke(fillOrStroke) { return fillOrStroke != null && fillOrStroke !== "none"; } function doChangeHoverState(el, stateName, hoverStateEnum) { if (el.onHoverStateChange && (el.hoverState || 0) !== hoverStateEnum) { el.onHoverStateChange(stateName); } el.hoverState = hoverStateEnum; } function singleEnterEmphasis(el) { doChangeHoverState(el, "emphasis", HOVER_STATE_EMPHASIS); } function singleLeaveEmphasis(el) { if (el.hoverState === HOVER_STATE_EMPHASIS) { doChangeHoverState(el, "normal", HOVER_STATE_NORMAL); } } function singleEnterBlur(el) { doChangeHoverState(el, "blur", HOVER_STATE_BLUR); } function singleLeaveBlur(el) { if (el.hoverState === HOVER_STATE_BLUR) { doChangeHoverState(el, "normal", HOVER_STATE_NORMAL); } } function singleEnterSelect(el) { el.selected = true; } function singleLeaveSelect(el) { el.selected = false; } function updateElementState(el, updater, commonParam) { updater(el, commonParam); } function traverseUpdateState(el, updater, commonParam) { updateElementState(el, updater, commonParam); el.isGroup && el.traverse(function(child) { updateElementState(child, updater, commonParam); }); } function setStatesFlag(el, stateName) { switch (stateName) { case "emphasis": el.hoverState = HOVER_STATE_EMPHASIS; break; case "normal": el.hoverState = HOVER_STATE_NORMAL; break; case "blur": el.hoverState = HOVER_STATE_BLUR; break; case "select": el.selected = true; } } function getFromStateStyle(el, props, toStateName, defaultValue) { var style = el.style; var fromState = {}; for (var i = 0; i < props.length; i++) { var propName = props[i]; var val = style[propName]; fromState[propName] = val == null ? defaultValue && defaultValue[propName] : val; } for (var i = 0; i < el.animators.length; i++) { var animator = el.animators[i]; if (animator.__fromStateTransition && animator.__fromStateTransition.indexOf(toStateName) < 0 && animator.targetName === "style") { animator.saveTo(fromState, props); } } return fromState; } function createEmphasisDefaultState(el, stateName, targetStates, state) { var hasSelect = targetStates && indexOf(targetStates, "select") >= 0; var cloned = false; if (el instanceof Path_default) { var store = getSavedStates(el); var fromFill = hasSelect ? store.selectFill || store.normalFill : store.normalFill; var fromStroke = hasSelect ? store.selectStroke || store.normalStroke : store.normalStroke; if (hasFillOrStroke(fromFill) || hasFillOrStroke(fromStroke)) { state = state || {}; var emphasisStyle = state.style || {}; if (emphasisStyle.fill === "inherit") { cloned = true; state = extend({}, state); emphasisStyle = extend({}, emphasisStyle); emphasisStyle.fill = fromFill; } else if (!hasFillOrStroke(emphasisStyle.fill) && hasFillOrStroke(fromFill)) { cloned = true; state = extend({}, state); emphasisStyle = extend({}, emphasisStyle); emphasisStyle.fill = liftColor(fromFill); } else if (!hasFillOrStroke(emphasisStyle.stroke) && hasFillOrStroke(fromStroke)) { if (!cloned) { state = extend({}, state); emphasisStyle = extend({}, emphasisStyle); } emphasisStyle.stroke = liftColor(fromStroke); } state.style = emphasisStyle; } } if (state) { if (state.z2 == null) { if (!cloned) { state = extend({}, state); } var z2EmphasisLift = el.z2EmphasisLift; state.z2 = el.z2 + (z2EmphasisLift != null ? z2EmphasisLift : Z2_EMPHASIS_LIFT); } } return state; } function createSelectDefaultState(el, stateName, state) { if (state) { if (state.z2 == null) { state = extend({}, state); var z2SelectLift = el.z2SelectLift; state.z2 = el.z2 + (z2SelectLift != null ? z2SelectLift : Z2_SELECT_LIFT); } } return state; } function createBlurDefaultState(el, stateName, state) { var hasBlur = indexOf(el.currentStates, stateName) >= 0; var currentOpacity = el.style.opacity; var fromState = !hasBlur ? getFromStateStyle(el, ["opacity"], stateName, { opacity: 1 }) : null; state = state || {}; var blurStyle = state.style || {}; if (blurStyle.opacity == null) { state = extend({}, state); blurStyle = extend({ // Already being applied 'emphasis'. DON'T mul opacity multiple times. opacity: hasBlur ? currentOpacity : fromState.opacity * 0.1 }, blurStyle); state.style = blurStyle; } return state; } function elementStateProxy(stateName, targetStates) { var state = this.states[stateName]; if (this.style) { if (stateName === "emphasis") { return createEmphasisDefaultState(this, stateName, targetStates, state); } else if (stateName === "blur") { return createBlurDefaultState(this, stateName, state); } else if (stateName === "select") { return createSelectDefaultState(this, stateName, state); } } return state; } function setDefaultStateProxy(el) { el.stateProxy = elementStateProxy; var textContent = el.getTextContent(); var textGuide = el.getTextGuideLine(); if (textContent) { textContent.stateProxy = elementStateProxy; } if (textGuide) { textGuide.stateProxy = elementStateProxy; } } function enterEmphasisWhenMouseOver(el, e2) { !shouldSilent(el, e2) && !el.__highByOuter && traverseUpdateState(el, singleEnterEmphasis); } function leaveEmphasisWhenMouseOut(el, e2) { !shouldSilent(el, e2) && !el.__highByOuter && traverseUpdateState(el, singleLeaveEmphasis); } function enterEmphasis(el, highlightDigit) { el.__highByOuter |= 1 << (highlightDigit || 0); traverseUpdateState(el, singleEnterEmphasis); } function leaveEmphasis(el, highlightDigit) { !(el.__highByOuter &= ~(1 << (highlightDigit || 0))) && traverseUpdateState(el, singleLeaveEmphasis); } function enterBlur(el) { traverseUpdateState(el, singleEnterBlur); } function leaveBlur(el) { traverseUpdateState(el, singleLeaveBlur); } function enterSelect(el) { traverseUpdateState(el, singleEnterSelect); } function leaveSelect(el) { traverseUpdateState(el, singleLeaveSelect); } function shouldSilent(el, e2) { return el.__highDownSilentOnTouch && e2.zrByTouch; } function allLeaveBlur(api) { var model = api.getModel(); var leaveBlurredSeries = []; var allComponentViews = []; model.eachComponent(function(componentType, componentModel) { var componentStates = getComponentStates(componentModel); var isSeries2 = componentType === "series"; var view = isSeries2 ? api.getViewOfSeriesModel(componentModel) : api.getViewOfComponentModel(componentModel); !isSeries2 && allComponentViews.push(view); if (componentStates.isBlured) { view.group.traverse(function(child) { singleLeaveBlur(child); }); isSeries2 && leaveBlurredSeries.push(componentModel); } componentStates.isBlured = false; }); each(allComponentViews, function(view) { if (view && view.toggleBlurSeries) { view.toggleBlurSeries(leaveBlurredSeries, false, model); } }); } function blurSeries(targetSeriesIndex, focus, blurScope, api) { var ecModel = api.getModel(); blurScope = blurScope || "coordinateSystem"; function leaveBlurOfIndices(data, dataIndices) { for (var i = 0; i < dataIndices.length; i++) { var itemEl = data.getItemGraphicEl(dataIndices[i]); itemEl && leaveBlur(itemEl); } } if (targetSeriesIndex == null) { return; } if (!focus || focus === "none") { return; } var targetSeriesModel = ecModel.getSeriesByIndex(targetSeriesIndex); var targetCoordSys = targetSeriesModel.coordinateSystem; if (targetCoordSys && targetCoordSys.master) { targetCoordSys = targetCoordSys.master; } var blurredSeries = []; ecModel.eachSeries(function(seriesModel) { var sameSeries = targetSeriesModel === seriesModel; var coordSys = seriesModel.coordinateSystem; if (coordSys && coordSys.master) { coordSys = coordSys.master; } var sameCoordSys = coordSys && targetCoordSys ? coordSys === targetCoordSys : sameSeries; if (!// Not blur other series if blurScope series (blurScope === "series" && !sameSeries || blurScope === "coordinateSystem" && !sameCoordSys || focus === "series" && sameSeries)) { var view = api.getViewOfSeriesModel(seriesModel); view.group.traverse(function(child) { if (child.__highByOuter && sameSeries && focus === "self") { return; } singleEnterBlur(child); }); if (isArrayLike(focus)) { leaveBlurOfIndices(seriesModel.getData(), focus); } else if (isObject(focus)) { var dataTypes = keys(focus); for (var d = 0; d < dataTypes.length; d++) { leaveBlurOfIndices(seriesModel.getData(dataTypes[d]), focus[dataTypes[d]]); } } blurredSeries.push(seriesModel); getComponentStates(seriesModel).isBlured = true; } }); ecModel.eachComponent(function(componentType, componentModel) { if (componentType === "series") { return; } var view = api.getViewOfComponentModel(componentModel); if (view && view.toggleBlurSeries) { view.toggleBlurSeries(blurredSeries, true, ecModel); } }); } function blurComponent(componentMainType, componentIndex, api) { if (componentMainType == null || componentIndex == null) { return; } var componentModel = api.getModel().getComponent(componentMainType, componentIndex); if (!componentModel) { return; } getComponentStates(componentModel).isBlured = true; var view = api.getViewOfComponentModel(componentModel); if (!view || !view.focusBlurEnabled) { return; } view.group.traverse(function(child) { singleEnterBlur(child); }); } function blurSeriesFromHighlightPayload(seriesModel, payload, api) { var seriesIndex = seriesModel.seriesIndex; var data = seriesModel.getData(payload.dataType); if (!data) { if (true) { error("Unknown dataType " + payload.dataType); } return; } var dataIndex = queryDataIndex(data, payload); dataIndex = (isArray(dataIndex) ? dataIndex[0] : dataIndex) || 0; var el = data.getItemGraphicEl(dataIndex); if (!el) { var count = data.count(); var current = 0; while (!el && current < count) { el = data.getItemGraphicEl(current++); } } if (el) { var ecData = getECData(el); blurSeries(seriesIndex, ecData.focus, ecData.blurScope, api); } else { var focus_1 = seriesModel.get(["emphasis", "focus"]); var blurScope = seriesModel.get(["emphasis", "blurScope"]); if (focus_1 != null) { blurSeries(seriesIndex, focus_1, blurScope, api); } } } function findComponentHighDownDispatchers(componentMainType, componentIndex, name, api) { var ret = { focusSelf: false, dispatchers: null }; if (componentMainType == null || componentMainType === "series" || componentIndex == null || name == null) { return ret; } var componentModel = api.getModel().getComponent(componentMainType, componentIndex); if (!componentModel) { return ret; } var view = api.getViewOfComponentModel(componentModel); if (!view || !view.findHighDownDispatchers) { return ret; } var dispatchers = view.findHighDownDispatchers(name); var focusSelf; for (var i = 0; i < dispatchers.length; i++) { if (!isHighDownDispatcher(dispatchers[i])) { error("param should be highDownDispatcher"); } if (getECData(dispatchers[i]).focus === "self") { focusSelf = true; break; } } return { focusSelf, dispatchers }; } function handleGlobalMouseOverForHighDown(dispatcher, e2, api) { if (!isHighDownDispatcher(dispatcher)) { error("param should be highDownDispatcher"); } var ecData = getECData(dispatcher); var _a2 = findComponentHighDownDispatchers(ecData.componentMainType, ecData.componentIndex, ecData.componentHighDownName, api), dispatchers = _a2.dispatchers, focusSelf = _a2.focusSelf; if (dispatchers) { if (focusSelf) { blurComponent(ecData.componentMainType, ecData.componentIndex, api); } each(dispatchers, function(dispatcher2) { return enterEmphasisWhenMouseOver(dispatcher2, e2); }); } else { blurSeries(ecData.seriesIndex, ecData.focus, ecData.blurScope, api); if (ecData.focus === "self") { blurComponent(ecData.componentMainType, ecData.componentIndex, api); } enterEmphasisWhenMouseOver(dispatcher, e2); } } function handleGlobalMouseOutForHighDown(dispatcher, e2, api) { if (!isHighDownDispatcher(dispatcher)) { error("param should be highDownDispatcher"); } allLeaveBlur(api); var ecData = getECData(dispatcher); var dispatchers = findComponentHighDownDispatchers(ecData.componentMainType, ecData.componentIndex, ecData.componentHighDownName, api).dispatchers; if (dispatchers) { each(dispatchers, function(dispatcher2) { return leaveEmphasisWhenMouseOut(dispatcher2, e2); }); } else { leaveEmphasisWhenMouseOut(dispatcher, e2); } } function toggleSelectionFromPayload(seriesModel, payload, api) { if (!isSelectChangePayload(payload)) { return; } var dataType = payload.dataType; var data = seriesModel.getData(dataType); var dataIndex = queryDataIndex(data, payload); if (!isArray(dataIndex)) { dataIndex = [dataIndex]; } seriesModel[payload.type === TOGGLE_SELECT_ACTION_TYPE ? "toggleSelect" : payload.type === SELECT_ACTION_TYPE ? "select" : "unselect"](dataIndex, dataType); } function updateSeriesElementSelection(seriesModel) { var allData = seriesModel.getAllData(); each(allData, function(_a2) { var data = _a2.data, type = _a2.type; data.eachItemGraphicEl(function(el, idx) { seriesModel.isSelected(idx, type) ? enterSelect(el) : leaveSelect(el); }); }); } function getAllSelectedIndices(ecModel) { var ret = []; ecModel.eachSeries(function(seriesModel) { var allData = seriesModel.getAllData(); each(allData, function(_a2) { var data = _a2.data, type = _a2.type; var dataIndices = seriesModel.getSelectedDataIndices(); if (dataIndices.length > 0) { var item = { dataIndex: dataIndices, seriesIndex: seriesModel.seriesIndex }; if (type != null) { item.dataType = type; } ret.push(item); } }); }); return ret; } function enableHoverEmphasis(el, focus, blurScope) { setAsHighDownDispatcher(el, true); traverseUpdateState(el, setDefaultStateProxy); enableHoverFocus(el, focus, blurScope); } function disableHoverEmphasis(el) { setAsHighDownDispatcher(el, false); } function toggleHoverEmphasis(el, focus, blurScope, isDisabled) { isDisabled ? disableHoverEmphasis(el) : enableHoverEmphasis(el, focus, blurScope); } function enableHoverFocus(el, focus, blurScope) { var ecData = getECData(el); if (focus != null) { ecData.focus = focus; ecData.blurScope = blurScope; } else if (ecData.focus) { ecData.focus = null; } } var OTHER_STATES = ["emphasis", "blur", "select"]; var defaultStyleGetterMap = { itemStyle: "getItemStyle", lineStyle: "getLineStyle", areaStyle: "getAreaStyle" }; function setStatesStylesFromModel(el, itemModel, styleType, getter) { styleType = styleType || "itemStyle"; for (var i = 0; i < OTHER_STATES.length; i++) { var stateName = OTHER_STATES[i]; var model = itemModel.getModel([stateName, styleType]); var state = el.ensureState(stateName); state.style = getter ? getter(model) : model[defaultStyleGetterMap[styleType]](); } } function setAsHighDownDispatcher(el, asDispatcher) { var disable = asDispatcher === false; var extendedEl = el; if (el.highDownSilentOnTouch) { extendedEl.__highDownSilentOnTouch = el.highDownSilentOnTouch; } if (!disable || extendedEl.__highDownDispatcher) { extendedEl.__highByOuter = extendedEl.__highByOuter || 0; extendedEl.__highDownDispatcher = !disable; } } function isHighDownDispatcher(el) { return !!(el && el.__highDownDispatcher); } function enableComponentHighDownFeatures(el, componentModel, componentHighDownName) { var ecData = getECData(el); ecData.componentMainType = componentModel.mainType; ecData.componentIndex = componentModel.componentIndex; ecData.componentHighDownName = componentHighDownName; } function getHighlightDigit(highlightKey) { var highlightDigit = _highlightKeyMap[highlightKey]; if (highlightDigit == null && _highlightNextDigit <= 32) { highlightDigit = _highlightKeyMap[highlightKey] = _highlightNextDigit++; } return highlightDigit; } function isSelectChangePayload(payload) { var payloadType = payload.type; return payloadType === SELECT_ACTION_TYPE || payloadType === UNSELECT_ACTION_TYPE || payloadType === TOGGLE_SELECT_ACTION_TYPE; } function isHighDownPayload(payload) { var payloadType = payload.type; return payloadType === HIGHLIGHT_ACTION_TYPE || payloadType === DOWNPLAY_ACTION_TYPE; } function savePathStates(el) { var store = getSavedStates(el); store.normalFill = el.style.fill; store.normalStroke = el.style.stroke; var selectState = el.states.select || {}; store.selectFill = selectState.style && selectState.style.fill || null; store.selectStroke = selectState.style && selectState.style.stroke || null; } // node_modules/echarts/lib/util/graphic.js var graphic_exports = {}; __export(graphic_exports, { Arc: () => Arc_default, BezierCurve: () => BezierCurve_default, BoundingRect: () => BoundingRect_default, Circle: () => Circle_default, CompoundPath: () => CompoundPath_default, Ellipse: () => Ellipse_default, Group: () => Group_default, Image: () => Image_default, IncrementalDisplayable: () => IncrementalDisplayable_default, Line: () => Line_default, LinearGradient: () => LinearGradient_default, OrientedBoundingRect: () => OrientedBoundingRect_default, Path: () => Path_default, Point: () => Point_default, Polygon: () => Polygon_default, Polyline: () => Polyline_default, RadialGradient: () => RadialGradient_default, Rect: () => Rect_default, Ring: () => Ring_default, Sector: () => Sector_default, Text: () => Text_default, applyTransform: () => applyTransform2, clipPointsByRect: () => clipPointsByRect, clipRectByRect: () => clipRectByRect, createIcon: () => createIcon, extendPath: () => extendPath, extendShape: () => extendShape, getShapeClass: () => getShapeClass, getTransform: () => getTransform, groupTransition: () => groupTransition, initProps: () => initProps, isElementRemoved: () => isElementRemoved, lineLineIntersect: () => lineLineIntersect, linePolygonIntersect: () => linePolygonIntersect, makeImage: () => makeImage, makePath: () => makePath, mergePath: () => mergePath2, registerShape: () => registerShape, removeElement: () => removeElement, removeElementWithFadeOut: () => removeElementWithFadeOut, resizePath: () => resizePath, setTooltipConfig: () => setTooltipConfig, subPixelOptimize: () => subPixelOptimize2, subPixelOptimizeLine: () => subPixelOptimizeLine2, subPixelOptimizeRect: () => subPixelOptimizeRect2, transformDirection: () => transformDirection, traverseElements: () => traverseElements, updateProps: () => updateProps }); // node_modules/zrender/lib/tool/transformPath.js var CMD = PathProxy_default.CMD; var points = [[], [], []]; var mathSqrt = Math.sqrt; var mathAtan2 = Math.atan2; function transformPath(path, m2) { if (!m2) { return; } var data = path.data; var len = path.len(); var cmd; var nPoint; var i; var j; var k; var p; var M = CMD.M; var C = CMD.C; var L = CMD.L; var R = CMD.R; var A = CMD.A; var Q = CMD.Q; for (i = 0, j = 0; i < len; ) { cmd = data[i++]; j = i; nPoint = 0; switch (cmd) { case M: nPoint = 1; break; case L: nPoint = 1; break; case C: nPoint = 3; break; case Q: nPoint = 2; break; case A: var x = m2[4]; var y = m2[5]; var sx = mathSqrt(m2[0] * m2[0] + m2[1] * m2[1]); var sy = mathSqrt(m2[2] * m2[2] + m2[3] * m2[3]); var angle = mathAtan2(-m2[1] / sy, m2[0] / sx); data[i] *= sx; data[i++] += x; data[i] *= sy; data[i++] += y; data[i++] *= sx; data[i++] *= sy; data[i++] += angle; data[i++] += angle; i += 2; j = i; break; case R: p[0] = data[i++]; p[1] = data[i++]; applyTransform(p, p, m2); data[j++] = p[0]; data[j++] = p[1]; p[0] += data[i++]; p[1] += data[i++]; applyTransform(p, p, m2); data[j++] = p[0]; data[j++] = p[1]; } for (k = 0; k < nPoint; k++) { var p_1 = points[k]; p_1[0] = data[i++]; p_1[1] = data[i++]; applyTransform(p_1, p_1, m2); data[j++] = p_1[0]; data[j++] = p_1[1]; } } path.increaseVersion(); } // node_modules/zrender/lib/tool/path.js var mathSqrt2 = Math.sqrt; var mathSin = Math.sin; var mathCos = Math.cos; var PI = Math.PI; function vMag(v) { return Math.sqrt(v[0] * v[0] + v[1] * v[1]); } function vRatio(u, v) { return (u[0] * v[0] + u[1] * v[1]) / (vMag(u) * vMag(v)); } function vAngle(u, v) { return (u[0] * v[1] < u[1] * v[0] ? -1 : 1) * Math.acos(vRatio(u, v)); } function processArc(x1, y1, x2, y2, fa, fs, rx, ry, psiDeg, cmd, path) { var psi = psiDeg * (PI / 180); var xp = mathCos(psi) * (x1 - x2) / 2 + mathSin(psi) * (y1 - y2) / 2; var yp = -1 * mathSin(psi) * (x1 - x2) / 2 + mathCos(psi) * (y1 - y2) / 2; var lambda = xp * xp / (rx * rx) + yp * yp / (ry * ry); if (lambda > 1) { rx *= mathSqrt2(lambda); ry *= mathSqrt2(lambda); } var f = (fa === fs ? -1 : 1) * mathSqrt2((rx * rx * (ry * ry) - rx * rx * (yp * yp) - ry * ry * (xp * xp)) / (rx * rx * (yp * yp) + ry * ry * (xp * xp))) || 0; var cxp = f * rx * yp / ry; var cyp = f * -ry * xp / rx; var cx = (x1 + x2) / 2 + mathCos(psi) * cxp - mathSin(psi) * cyp; var cy = (y1 + y2) / 2 + mathSin(psi) * cxp + mathCos(psi) * cyp; var theta = vAngle([1, 0], [(xp - cxp) / rx, (yp - cyp) / ry]); var u = [(xp - cxp) / rx, (yp - cyp) / ry]; var v = [(-1 * xp - cxp) / rx, (-1 * yp - cyp) / ry]; var dTheta = vAngle(u, v); if (vRatio(u, v) <= -1) { dTheta = PI; } if (vRatio(u, v) >= 1) { dTheta = 0; } if (dTheta < 0) { var n = Math.round(dTheta / PI * 1e6) / 1e6; dTheta = PI * 2 + n % 2 * PI; } path.addData(cmd, cx, cy, rx, ry, theta, dTheta, psi, fs); } var commandReg = /([mlvhzcqtsa])([^mlvhzcqtsa]*)/ig; var numberReg = /-?([0-9]*\.)?[0-9]+([eE]-?[0-9]+)?/g; function createPathProxyFromString(data) { var path = new PathProxy_default(); if (!data) { return path; } var cpx = 0; var cpy = 0; var subpathX = cpx; var subpathY = cpy; var prevCmd; var CMD2 = PathProxy_default.CMD; var cmdList = data.match(commandReg); if (!cmdList) { return path; } for (var l = 0; l < cmdList.length; l++) { var cmdText = cmdList[l]; var cmdStr = cmdText.charAt(0); var cmd = void 0; var p = cmdText.match(numberReg) || []; var pLen = p.length; for (var i = 0; i < pLen; i++) { p[i] = parseFloat(p[i]); } var off = 0; while (off < pLen) { var ctlPtx = void 0; var ctlPty = void 0; var rx = void 0; var ry = void 0; var psi = void 0; var fa = void 0; var fs = void 0; var x1 = cpx; var y1 = cpy; var len = void 0; var pathData = void 0; switch (cmdStr) { case "l": cpx += p[off++]; cpy += p[off++]; cmd = CMD2.L; path.addData(cmd, cpx, cpy); break; case "L": cpx = p[off++]; cpy = p[off++]; cmd = CMD2.L; path.addData(cmd, cpx, cpy); break; case "m": cpx += p[off++]; cpy += p[off++]; cmd = CMD2.M; path.addData(cmd, cpx, cpy); subpathX = cpx; subpathY = cpy; cmdStr = "l"; break; case "M": cpx = p[off++]; cpy = p[off++]; cmd = CMD2.M; path.addData(cmd, cpx, cpy); subpathX = cpx; subpathY = cpy; cmdStr = "L"; break; case "h": cpx += p[off++]; cmd = CMD2.L; path.addData(cmd, cpx, cpy); break; case "H": cpx = p[off++]; cmd = CMD2.L; path.addData(cmd, cpx, cpy); break; case "v": cpy += p[off++]; cmd = CMD2.L; path.addData(cmd, cpx, cpy); break; case "V": cpy = p[off++]; cmd = CMD2.L; path.addData(cmd, cpx, cpy); break; case "C": cmd = CMD2.C; path.addData(cmd, p[off++], p[off++], p[off++], p[off++], p[off++], p[off++]); cpx = p[off - 2]; cpy = p[off - 1]; break; case "c": cmd = CMD2.C; path.addData(cmd, p[off++] + cpx, p[off++] + cpy, p[off++] + cpx, p[off++] + cpy, p[off++] + cpx, p[off++] + cpy); cpx += p[off - 2]; cpy += p[off - 1]; break; case "S": ctlPtx = cpx; ctlPty = cpy; len = path.len(); pathData = path.data; if (prevCmd === CMD2.C) { ctlPtx += cpx - pathData[len - 4]; ctlPty += cpy - pathData[len - 3]; } cmd = CMD2.C; x1 = p[off++]; y1 = p[off++]; cpx = p[off++]; cpy = p[off++]; path.addData(cmd, ctlPtx, ctlPty, x1, y1, cpx, cpy); break; case "s": ctlPtx = cpx; ctlPty = cpy; len = path.len(); pathData = path.data; if (prevCmd === CMD2.C) { ctlPtx += cpx - pathData[len - 4]; ctlPty += cpy - pathData[len - 3]; } cmd = CMD2.C; x1 = cpx + p[off++]; y1 = cpy + p[off++]; cpx += p[off++]; cpy += p[off++]; path.addData(cmd, ctlPtx, ctlPty, x1, y1, cpx, cpy); break; case "Q": x1 = p[off++]; y1 = p[off++]; cpx = p[off++]; cpy = p[off++]; cmd = CMD2.Q; path.addData(cmd, x1, y1, cpx, cpy); break; case "q": x1 = p[off++] + cpx; y1 = p[off++] + cpy; cpx += p[off++]; cpy += p[off++]; cmd = CMD2.Q; path.addData(cmd, x1, y1, cpx, cpy); break; case "T": ctlPtx = cpx; ctlPty = cpy; len = path.len(); pathData = path.data; if (prevCmd === CMD2.Q) { ctlPtx += cpx - pathData[len - 4]; ctlPty += cpy - pathData[len - 3]; } cpx = p[off++]; cpy = p[off++]; cmd = CMD2.Q; path.addData(cmd, ctlPtx, ctlPty, cpx, cpy); break; case "t": ctlPtx = cpx; ctlPty = cpy; len = path.len(); pathData = path.data; if (prevCmd === CMD2.Q) { ctlPtx += cpx - pathData[len - 4]; ctlPty += cpy - pathData[len - 3]; } cpx += p[off++]; cpy += p[off++]; cmd = CMD2.Q; path.addData(cmd, ctlPtx, ctlPty, cpx, cpy); break; case "A": rx = p[off++]; ry = p[off++]; psi = p[off++]; fa = p[off++]; fs = p[off++]; x1 = cpx, y1 = cpy; cpx = p[off++]; cpy = p[off++]; cmd = CMD2.A; processArc(x1, y1, cpx, cpy, fa, fs, rx, ry, psi, cmd, path); break; case "a": rx = p[off++]; ry = p[off++]; psi = p[off++]; fa = p[off++]; fs = p[off++]; x1 = cpx, y1 = cpy; cpx += p[off++]; cpy += p[off++]; cmd = CMD2.A; processArc(x1, y1, cpx, cpy, fa, fs, rx, ry, psi, cmd, path); break; } } if (cmdStr === "z" || cmdStr === "Z") { cmd = CMD2.Z; path.addData(cmd); cpx = subpathX; cpy = subpathY; } prevCmd = cmd; } path.toStatic(); return path; } var SVGPath = function(_super) { __extends(SVGPath2, _super); function SVGPath2() { return _super !== null && _super.apply(this, arguments) || this; } SVGPath2.prototype.applyTransform = function(m2) { }; return SVGPath2; }(Path_default); function isPathProxy(path) { return path.setData != null; } function createPathOptions(str, opts) { var pathProxy = createPathProxyFromString(str); var innerOpts = extend({}, opts); innerOpts.buildPath = function(path) { if (isPathProxy(path)) { path.setData(pathProxy.data); var ctx = path.getContext(); if (ctx) { path.rebuildPath(ctx, 1); } } else { var ctx = path; pathProxy.rebuildPath(ctx, 1); } }; innerOpts.applyTransform = function(m2) { transformPath(pathProxy, m2); this.dirtyShape(); }; return innerOpts; } function createFromString(str, opts) { return new SVGPath(createPathOptions(str, opts)); } function extendFromString(str, defaultOpts) { var innerOpts = createPathOptions(str, defaultOpts); var Sub = function(_super) { __extends(Sub2, _super); function Sub2(opts) { var _this = _super.call(this, opts) || this; _this.applyTransform = innerOpts.applyTransform; _this.buildPath = innerOpts.buildPath; return _this; } return Sub2; }(SVGPath); return Sub; } function mergePath(pathEls, opts) { var pathList = []; var len = pathEls.length; for (var i = 0; i < len; i++) { var pathEl = pathEls[i]; pathList.push(pathEl.getUpdatedPathProxy(true)); } var pathBundle = new Path_default(opts); pathBundle.createPathProxy(); pathBundle.buildPath = function(path) { if (isPathProxy(path)) { path.appendPath(pathList); var ctx = path.getContext(); if (ctx) { path.rebuildPath(ctx, 1); } } }; return pathBundle; } // node_modules/zrender/lib/graphic/shape/Circle.js var CircleShape = /* @__PURE__ */ function() { function CircleShape2() { this.cx = 0; this.cy = 0; this.r = 0; } return CircleShape2; }(); var Circle = function(_super) { __extends(Circle2, _super); function Circle2(opts) { return _super.call(this, opts) || this; } Circle2.prototype.getDefaultShape = function() { return new CircleShape(); }; Circle2.prototype.buildPath = function(ctx, shape) { ctx.moveTo(shape.cx + shape.r, shape.cy); ctx.arc(shape.cx, shape.cy, shape.r, 0, Math.PI * 2); }; return Circle2; }(Path_default); Circle.prototype.type = "circle"; var Circle_default = Circle; // node_modules/zrender/lib/graphic/shape/Ellipse.js var EllipseShape = /* @__PURE__ */ function() { function EllipseShape2() { this.cx = 0; this.cy = 0; this.rx = 0; this.ry = 0; } return EllipseShape2; }(); var Ellipse = function(_super) { __extends(Ellipse2, _super); function Ellipse2(opts) { return _super.call(this, opts) || this; } Ellipse2.prototype.getDefaultShape = function() { return new EllipseShape(); }; Ellipse2.prototype.buildPath = function(ctx, shape) { var k = 0.5522848; var x = shape.cx; var y = shape.cy; var a = shape.rx; var b = shape.ry; var ox = a * k; var oy = b * k; ctx.moveTo(x - a, y); ctx.bezierCurveTo(x - a, y - oy, x - ox, y - b, x, y - b); ctx.bezierCurveTo(x + ox, y - b, x + a, y - oy, x + a, y); ctx.bezierCurveTo(x + a, y + oy, x + ox, y + b, x, y + b); ctx.bezierCurveTo(x - ox, y + b, x - a, y + oy, x - a, y); ctx.closePath(); }; return Ellipse2; }(Path_default); Ellipse.prototype.type = "ellipse"; var Ellipse_default = Ellipse; // node_modules/zrender/lib/graphic/helper/roundSector.js var PI2 = Math.PI; var PI22 = PI2 * 2; var mathSin2 = Math.sin; var mathCos2 = Math.cos; var mathACos = Math.acos; var mathATan2 = Math.atan2; var mathAbs = Math.abs; var mathSqrt3 = Math.sqrt; var mathMax = Math.max; var mathMin = Math.min; var e = 1e-4; function intersect(x0, y0, x1, y1, x2, y2, x3, y3) { var dx10 = x1 - x0; var dy10 = y1 - y0; var dx32 = x3 - x2; var dy32 = y3 - y2; var t = dy32 * dx10 - dx32 * dy10; if (t * t < e) { return; } t = (dx32 * (y0 - y2) - dy32 * (x0 - x2)) / t; return [x0 + t * dx10, y0 + t * dy10]; } function computeCornerTangents(x0, y0, x1, y1, radius, cr, clockwise) { var x01 = x0 - x1; var y01 = y0 - y1; var lo = (clockwise ? cr : -cr) / mathSqrt3(x01 * x01 + y01 * y01); var ox = lo * y01; var oy = -lo * x01; var x11 = x0 + ox; var y11 = y0 + oy; var x10 = x1 + ox; var y10 = y1 + oy; var x00 = (x11 + x10) / 2; var y00 = (y11 + y10) / 2; var dx = x10 - x11; var dy = y10 - y11; var d2 = dx * dx + dy * dy; var r = radius - cr; var s = x11 * y10 - x10 * y11; var d = (dy < 0 ? -1 : 1) * mathSqrt3(mathMax(0, r * r * d2 - s * s)); var cx0 = (s * dy - dx * d) / d2; var cy0 = (-s * dx - dy * d) / d2; var cx1 = (s * dy + dx * d) / d2; var cy1 = (-s * dx + dy * d) / d2; var dx0 = cx0 - x00; var dy0 = cy0 - y00; var dx1 = cx1 - x00; var dy1 = cy1 - y00; if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) { cx0 = cx1; cy0 = cy1; } return { cx: cx0, cy: cy0, x0: -ox, y0: -oy, x1: cx0 * (radius / r - 1), y1: cy0 * (radius / r - 1) }; } function normalizeCornerRadius(cr) { var arr; if (isArray(cr)) { var len = cr.length; if (!len) { return cr; } if (len === 1) { arr = [cr[0], cr[0], 0, 0]; } else if (len === 2) { arr = [cr[0], cr[0], cr[1], cr[1]]; } else if (len === 3) { arr = cr.concat(cr[2]); } else { arr = cr; } } else { arr = [cr, cr, cr, cr]; } return arr; } function buildPath(ctx, shape) { var _a2; var radius = mathMax(shape.r, 0); var innerRadius = mathMax(shape.r0 || 0, 0); var hasRadius = radius > 0; var hasInnerRadius = innerRadius > 0; if (!hasRadius && !hasInnerRadius) { return; } if (!hasRadius) { radius = innerRadius; innerRadius = 0; } if (innerRadius > radius) { var tmp = radius; radius = innerRadius; innerRadius = tmp; } var startAngle = shape.startAngle, endAngle = shape.endAngle; if (isNaN(startAngle) || isNaN(endAngle)) { return; } var cx = shape.cx, cy = shape.cy; var clockwise = !!shape.clockwise; var arc = mathAbs(endAngle - startAngle); var mod = arc > PI22 && arc % PI22; mod > e && (arc = mod); if (!(radius > e)) { ctx.moveTo(cx, cy); } else if (arc > PI22 - e) { ctx.moveTo(cx + radius * mathCos2(startAngle), cy + radius * mathSin2(startAngle)); ctx.arc(cx, cy, radius, startAngle, endAngle, !clockwise); if (innerRadius > e) { ctx.moveTo(cx + innerRadius * mathCos2(endAngle), cy + innerRadius * mathSin2(endAngle)); ctx.arc(cx, cy, innerRadius, endAngle, startAngle, clockwise); } } else { var icrStart = void 0; var icrEnd = void 0; var ocrStart = void 0; var ocrEnd = void 0; var ocrs = void 0; var ocre = void 0; var icrs = void 0; var icre = void 0; var ocrMax = void 0; var icrMax = void 0; var limitedOcrMax = void 0; var limitedIcrMax = void 0; var xre = void 0; var yre = void 0; var xirs = void 0; var yirs = void 0; var xrs = radius * mathCos2(startAngle); var yrs = radius * mathSin2(startAngle); var xire = innerRadius * mathCos2(endAngle); var yire = innerRadius * mathSin2(endAngle); var hasArc = arc > e; if (hasArc) { var cornerRadius = shape.cornerRadius; if (cornerRadius) { _a2 = normalizeCornerRadius(cornerRadius), icrStart = _a2[0], icrEnd = _a2[1], ocrStart = _a2[2], ocrEnd = _a2[3]; } var halfRd = mathAbs(radius - innerRadius) / 2; ocrs = mathMin(halfRd, ocrStart); ocre = mathMin(halfRd, ocrEnd); icrs = mathMin(halfRd, icrStart); icre = mathMin(halfRd, icrEnd); limitedOcrMax = ocrMax = mathMax(ocrs, ocre); limitedIcrMax = icrMax = mathMax(icrs, icre); if (ocrMax > e || icrMax > e) { xre = radius * mathCos2(endAngle); yre = radius * mathSin2(endAngle); xirs = innerRadius * mathCos2(startAngle); yirs = innerRadius * mathSin2(startAngle); if (arc < PI2) { var it_1 = intersect(xrs, yrs, xirs, yirs, xre, yre, xire, yire); if (it_1) { var x0 = xrs - it_1[0]; var y0 = yrs - it_1[1]; var x1 = xre - it_1[0]; var y1 = yre - it_1[1]; var a = 1 / mathSin2(mathACos((x0 * x1 + y0 * y1) / (mathSqrt3(x0 * x0 + y0 * y0) * mathSqrt3(x1 * x1 + y1 * y1))) / 2); var b = mathSqrt3(it_1[0] * it_1[0] + it_1[1] * it_1[1]); limitedOcrMax = mathMin(ocrMax, (radius - b) / (a + 1)); limitedIcrMax = mathMin(icrMax, (innerRadius - b) / (a - 1)); } } } } if (!hasArc) { ctx.moveTo(cx + xrs, cy + yrs); } else if (limitedOcrMax > e) { var crStart = mathMin(ocrStart, limitedOcrMax); var crEnd = mathMin(ocrEnd, limitedOcrMax); var ct0 = computeCornerTangents(xirs, yirs, xrs, yrs, radius, crStart, clockwise); var ct1 = computeCornerTangents(xre, yre, xire, yire, radius, crEnd, clockwise); ctx.moveTo(cx + ct0.cx + ct0.x0, cy + ct0.cy + ct0.y0); if (limitedOcrMax < ocrMax && crStart === crEnd) { ctx.arc(cx + ct0.cx, cy + ct0.cy, limitedOcrMax, mathATan2(ct0.y0, ct0.x0), mathATan2(ct1.y0, ct1.x0), !clockwise); } else { crStart > 0 && ctx.arc(cx + ct0.cx, cy + ct0.cy, crStart, mathATan2(ct0.y0, ct0.x0), mathATan2(ct0.y1, ct0.x1), !clockwise); ctx.arc(cx, cy, radius, mathATan2(ct0.cy + ct0.y1, ct0.cx + ct0.x1), mathATan2(ct1.cy + ct1.y1, ct1.cx + ct1.x1), !clockwise); crEnd > 0 && ctx.arc(cx + ct1.cx, cy + ct1.cy, crEnd, mathATan2(ct1.y1, ct1.x1), mathATan2(ct1.y0, ct1.x0), !clockwise); } } else { ctx.moveTo(cx + xrs, cy + yrs); ctx.arc(cx, cy, radius, startAngle, endAngle, !clockwise); } if (!(innerRadius > e) || !hasArc) { ctx.lineTo(cx + xire, cy + yire); } else if (limitedIcrMax > e) { var crStart = mathMin(icrStart, limitedIcrMax); var crEnd = mathMin(icrEnd, limitedIcrMax); var ct0 = computeCornerTangents(xire, yire, xre, yre, innerRadius, -crEnd, clockwise); var ct1 = computeCornerTangents(xrs, yrs, xirs, yirs, innerRadius, -crStart, clockwise); ctx.lineTo(cx + ct0.cx + ct0.x0, cy + ct0.cy + ct0.y0); if (limitedIcrMax < icrMax && crStart === crEnd) { ctx.arc(cx + ct0.cx, cy + ct0.cy, limitedIcrMax, mathATan2(ct0.y0, ct0.x0), mathATan2(ct1.y0, ct1.x0), !clockwise); } else { crEnd > 0 && ctx.arc(cx + ct0.cx, cy + ct0.cy, crEnd, mathATan2(ct0.y0, ct0.x0), mathATan2(ct0.y1, ct0.x1), !clockwise); ctx.arc(cx, cy, innerRadius, mathATan2(ct0.cy + ct0.y1, ct0.cx + ct0.x1), mathATan2(ct1.cy + ct1.y1, ct1.cx + ct1.x1), clockwise); crStart > 0 && ctx.arc(cx + ct1.cx, cy + ct1.cy, crStart, mathATan2(ct1.y1, ct1.x1), mathATan2(ct1.y0, ct1.x0), !clockwise); } } else { ctx.lineTo(cx + xire, cy + yire); ctx.arc(cx, cy, innerRadius, endAngle, startAngle, clockwise); } } ctx.closePath(); } // node_modules/zrender/lib/graphic/shape/Sector.js var SectorShape = /* @__PURE__ */ function() { function SectorShape2() { this.cx = 0; this.cy = 0; this.r0 = 0; this.r = 0; this.startAngle = 0; this.endAngle = Math.PI * 2; this.clockwise = true; this.cornerRadius = 0; } return SectorShape2; }(); var Sector = function(_super) { __extends(Sector2, _super); function Sector2(opts) { return _super.call(this, opts) || this; } Sector2.prototype.getDefaultShape = function() { return new SectorShape(); }; Sector2.prototype.buildPath = function(ctx, shape) { buildPath(ctx, shape); }; Sector2.prototype.isZeroArea = function() { return this.shape.startAngle === this.shape.endAngle || this.shape.r === this.shape.r0; }; return Sector2; }(Path_default); Sector.prototype.type = "sector"; var Sector_default = Sector; // node_modules/zrender/lib/graphic/shape/Ring.js var RingShape = /* @__PURE__ */ function() { function RingShape2() { this.cx = 0; this.cy = 0; this.r = 0; this.r0 = 0; } return RingShape2; }(); var Ring = function(_super) { __extends(Ring2, _super); function Ring2(opts) { return _super.call(this, opts) || this; } Ring2.prototype.getDefaultShape = function() { return new RingShape(); }; Ring2.prototype.buildPath = function(ctx, shape) { var x = shape.cx; var y = shape.cy; var PI23 = Math.PI * 2; ctx.moveTo(x + shape.r, y); ctx.arc(x, y, shape.r, 0, PI23, false); ctx.moveTo(x + shape.r0, y); ctx.arc(x, y, shape.r0, 0, PI23, true); }; return Ring2; }(Path_default); Ring.prototype.type = "ring"; var Ring_default = Ring; // node_modules/zrender/lib/graphic/helper/smoothBezier.js function smoothBezier(points2, smooth, isLoop, constraint) { var cps = []; var v = []; var v1 = []; var v2 = []; var prevPoint; var nextPoint; var min2; var max2; if (constraint) { min2 = [Infinity, Infinity]; max2 = [-Infinity, -Infinity]; for (var i = 0, len = points2.length; i < len; i++) { min(min2, min2, points2[i]); max(max2, max2, points2[i]); } min(min2, min2, constraint[0]); max(max2, max2, constraint[1]); } for (var i = 0, len = points2.length; i < len; i++) { var point = points2[i]; if (isLoop) { prevPoint = points2[i ? i - 1 : len - 1]; nextPoint = points2[(i + 1) % len]; } else { if (i === 0 || i === len - 1) { cps.push(clone2(points2[i])); continue; } else { prevPoint = points2[i - 1]; nextPoint = points2[i + 1]; } } sub(v, nextPoint, prevPoint); scale(v, v, smooth); var d0 = distance(point, prevPoint); var d1 = distance(point, nextPoint); var sum = d0 + d1; if (sum !== 0) { d0 /= sum; d1 /= sum; } scale(v1, v, -d0); scale(v2, v, d1); var cp0 = add([], point, v1); var cp1 = add([], point, v2); if (constraint) { max(cp0, cp0, min2); min(cp0, cp0, max2); max(cp1, cp1, min2); min(cp1, cp1, max2); } cps.push(cp0); cps.push(cp1); } if (isLoop) { cps.push(cps.shift()); } return cps; } // node_modules/zrender/lib/graphic/helper/poly.js function buildPath2(ctx, shape, closePath) { var smooth = shape.smooth; var points2 = shape.points; if (points2 && points2.length >= 2) { if (smooth) { var controlPoints = smoothBezier(points2, smooth, closePath, shape.smoothConstraint); ctx.moveTo(points2[0][0], points2[0][1]); var len = points2.length; for (var i = 0; i < (closePath ? len : len - 1); i++) { var cp1 = controlPoints[i * 2]; var cp2 = controlPoints[i * 2 + 1]; var p = points2[(i + 1) % len]; ctx.bezierCurveTo(cp1[0], cp1[1], cp2[0], cp2[1], p[0], p[1]); } } else { ctx.moveTo(points2[0][0], points2[0][1]); for (var i = 1, l = points2.length; i < l; i++) { ctx.lineTo(points2[i][0], points2[i][1]); } } closePath && ctx.closePath(); } } // node_modules/zrender/lib/graphic/shape/Polygon.js var PolygonShape = /* @__PURE__ */ function() { function PolygonShape2() { this.points = null; this.smooth = 0; this.smoothConstraint = null; } return PolygonShape2; }(); var Polygon = function(_super) { __extends(Polygon2, _super); function Polygon2(opts) { return _super.call(this, opts) || this; } Polygon2.prototype.getDefaultShape = function() { return new PolygonShape(); }; Polygon2.prototype.buildPath = function(ctx, shape) { buildPath2(ctx, shape, true); }; return Polygon2; }(Path_default); Polygon.prototype.type = "polygon"; var Polygon_default = Polygon; // node_modules/zrender/lib/graphic/shape/Polyline.js var PolylineShape = /* @__PURE__ */ function() { function PolylineShape2() { this.points = null; this.percent = 1; this.smooth = 0; this.smoothConstraint = null; } return PolylineShape2; }(); var Polyline = function(_super) { __extends(Polyline2, _super); function Polyline2(opts) { return _super.call(this, opts) || this; } Polyline2.prototype.getDefaultStyle = function() { return { stroke: "#000", fill: null }; }; Polyline2.prototype.getDefaultShape = function() { return new PolylineShape(); }; Polyline2.prototype.buildPath = function(ctx, shape) { buildPath2(ctx, shape, false); }; return Polyline2; }(Path_default); Polyline.prototype.type = "polyline"; var Polyline_default = Polyline; // node_modules/zrender/lib/graphic/shape/Line.js var subPixelOptimizeOutputShape = {}; var LineShape = /* @__PURE__ */ function() { function LineShape2() { this.x1 = 0; this.y1 = 0; this.x2 = 0; this.y2 = 0; this.percent = 1; } return LineShape2; }(); var Line = function(_super) { __extends(Line2, _super); function Line2(opts) { return _super.call(this, opts) || this; } Line2.prototype.getDefaultStyle = function() { return { stroke: "#000", fill: null }; }; Line2.prototype.getDefaultShape = function() { return new LineShape(); }; Line2.prototype.buildPath = function(ctx, shape) { var x1; var y1; var x2; var y2; if (this.subPixelOptimize) { var optimizedShape = subPixelOptimizeLine(subPixelOptimizeOutputShape, shape, this.style); x1 = optimizedShape.x1; y1 = optimizedShape.y1; x2 = optimizedShape.x2; y2 = optimizedShape.y2; } else { x1 = shape.x1; y1 = shape.y1; x2 = shape.x2; y2 = shape.y2; } var percent = shape.percent; if (percent === 0) { return; } ctx.moveTo(x1, y1); if (percent < 1) { x2 = x1 * (1 - percent) + x2 * percent; y2 = y1 * (1 - percent) + y2 * percent; } ctx.lineTo(x2, y2); }; Line2.prototype.pointAt = function(p) { var shape = this.shape; return [ shape.x1 * (1 - p) + shape.x2 * p, shape.y1 * (1 - p) + shape.y2 * p ]; }; return Line2; }(Path_default); Line.prototype.type = "line"; var Line_default = Line; // node_modules/zrender/lib/graphic/shape/BezierCurve.js var out = []; var BezierCurveShape = /* @__PURE__ */ function() { function BezierCurveShape2() { this.x1 = 0; this.y1 = 0; this.x2 = 0; this.y2 = 0; this.cpx1 = 0; this.cpy1 = 0; this.percent = 1; } return BezierCurveShape2; }(); function someVectorAt(shape, t, isTangent) { var cpx2 = shape.cpx2; var cpy2 = shape.cpy2; if (cpx2 != null || cpy2 != null) { return [ (isTangent ? cubicDerivativeAt : cubicAt)(shape.x1, shape.cpx1, shape.cpx2, shape.x2, t), (isTangent ? cubicDerivativeAt : cubicAt)(shape.y1, shape.cpy1, shape.cpy2, shape.y2, t) ]; } else { return [ (isTangent ? quadraticDerivativeAt : quadraticAt)(shape.x1, shape.cpx1, shape.x2, t), (isTangent ? quadraticDerivativeAt : quadraticAt)(shape.y1, shape.cpy1, shape.y2, t) ]; } } var BezierCurve = function(_super) { __extends(BezierCurve2, _super); function BezierCurve2(opts) { return _super.call(this, opts) || this; } BezierCurve2.prototype.getDefaultStyle = function() { return { stroke: "#000", fill: null }; }; BezierCurve2.prototype.getDefaultShape = function() { return new BezierCurveShape(); }; BezierCurve2.prototype.buildPath = function(ctx, shape) { var x1 = shape.x1; var y1 = shape.y1; var x2 = shape.x2; var y2 = shape.y2; var cpx1 = shape.cpx1; var cpy1 = shape.cpy1; var cpx2 = shape.cpx2; var cpy2 = shape.cpy2; var percent = shape.percent; if (percent === 0) { return; } ctx.moveTo(x1, y1); if (cpx2 == null || cpy2 == null) { if (percent < 1) { quadraticSubdivide(x1, cpx1, x2, percent, out); cpx1 = out[1]; x2 = out[2]; quadraticSubdivide(y1, cpy1, y2, percent, out); cpy1 = out[1]; y2 = out[2]; } ctx.quadraticCurveTo(cpx1, cpy1, x2, y2); } else { if (percent < 1) { cubicSubdivide(x1, cpx1, cpx2, x2, percent, out); cpx1 = out[1]; cpx2 = out[2]; x2 = out[3]; cubicSubdivide(y1, cpy1, cpy2, y2, percent, out); cpy1 = out[1]; cpy2 = out[2]; y2 = out[3]; } ctx.bezierCurveTo(cpx1, cpy1, cpx2, cpy2, x2, y2); } }; BezierCurve2.prototype.pointAt = function(t) { return someVectorAt(this.shape, t, false); }; BezierCurve2.prototype.tangentAt = function(t) { var p = someVectorAt(this.shape, t, true); return normalize(p, p); }; return BezierCurve2; }(Path_default); BezierCurve.prototype.type = "bezier-curve"; var BezierCurve_default = BezierCurve; // node_modules/zrender/lib/graphic/shape/Arc.js var ArcShape = /* @__PURE__ */ function() { function ArcShape2() { this.cx = 0; this.cy = 0; this.r = 0; this.startAngle = 0; this.endAngle = Math.PI * 2; this.clockwise = true; } return ArcShape2; }(); var Arc = function(_super) { __extends(Arc2, _super); function Arc2(opts) { return _super.call(this, opts) || this; } Arc2.prototype.getDefaultStyle = function() { return { stroke: "#000", fill: null }; }; Arc2.prototype.getDefaultShape = function() { return new ArcShape(); }; Arc2.prototype.buildPath = function(ctx, shape) { var x = shape.cx; var y = shape.cy; var r = Math.max(shape.r, 0); var startAngle = shape.startAngle; var endAngle = shape.endAngle; var clockwise = shape.clockwise; var unitX = Math.cos(startAngle); var unitY = Math.sin(startAngle); ctx.moveTo(unitX * r + x, unitY * r + y); ctx.arc(x, y, r, startAngle, endAngle, !clockwise); }; return Arc2; }(Path_default); Arc.prototype.type = "arc"; var Arc_default = Arc; // node_modules/zrender/lib/graphic/Gradient.js var Gradient = function() { function Gradient2(colorStops) { this.colorStops = colorStops || []; } Gradient2.prototype.addColorStop = function(offset, color) { this.colorStops.push({ offset, color }); }; return Gradient2; }(); var Gradient_default = Gradient; // node_modules/zrender/lib/graphic/LinearGradient.js var LinearGradient = function(_super) { __extends(LinearGradient2, _super); function LinearGradient2(x, y, x2, y2, colorStops, globalCoord) { var _this = _super.call(this, colorStops) || this; _this.x = x == null ? 0 : x; _this.y = y == null ? 0 : y; _this.x2 = x2 == null ? 1 : x2; _this.y2 = y2 == null ? 0 : y2; _this.type = "linear"; _this.global = globalCoord || false; return _this; } return LinearGradient2; }(Gradient_default); var LinearGradient_default = LinearGradient; // node_modules/zrender/lib/graphic/RadialGradient.js var RadialGradient = function(_super) { __extends(RadialGradient2, _super); function RadialGradient2(x, y, r, colorStops, globalCoord) { var _this = _super.call(this, colorStops) || this; _this.x = x == null ? 0.5 : x; _this.y = y == null ? 0.5 : y; _this.r = r == null ? 0.5 : r; _this.type = "radial"; _this.global = globalCoord || false; return _this; } return RadialGradient2; }(Gradient_default); var RadialGradient_default = RadialGradient; // node_modules/zrender/lib/core/OrientedBoundingRect.js var extent = [0, 0]; var extent2 = [0, 0]; var minTv = new Point_default(); var maxTv = new Point_default(); var OrientedBoundingRect = function() { function OrientedBoundingRect2(rect, transform) { this._corners = []; this._axes = []; this._origin = [0, 0]; for (var i = 0; i < 4; i++) { this._corners[i] = new Point_default(); } for (var i = 0; i < 2; i++) { this._axes[i] = new Point_default(); } if (rect) { this.fromBoundingRect(rect, transform); } } OrientedBoundingRect2.prototype.fromBoundingRect = function(rect, transform) { var corners = this._corners; var axes = this._axes; var x = rect.x; var y = rect.y; var x2 = x + rect.width; var y2 = y + rect.height; corners[0].set(x, y); corners[1].set(x2, y); corners[2].set(x2, y2); corners[3].set(x, y2); if (transform) { for (var i = 0; i < 4; i++) { corners[i].transform(transform); } } Point_default.sub(axes[0], corners[1], corners[0]); Point_default.sub(axes[1], corners[3], corners[0]); axes[0].normalize(); axes[1].normalize(); for (var i = 0; i < 2; i++) { this._origin[i] = axes[i].dot(corners[0]); } }; OrientedBoundingRect2.prototype.intersect = function(other, mtv) { var overlapped = true; var noMtv = !mtv; minTv.set(Infinity, Infinity); maxTv.set(0, 0); if (!this._intersectCheckOneSide(this, other, minTv, maxTv, noMtv, 1)) { overlapped = false; if (noMtv) { return overlapped; } } if (!this._intersectCheckOneSide(other, this, minTv, maxTv, noMtv, -1)) { overlapped = false; if (noMtv) { return overlapped; } } if (!noMtv) { Point_default.copy(mtv, overlapped ? minTv : maxTv); } return overlapped; }; OrientedBoundingRect2.prototype._intersectCheckOneSide = function(self, other, minTv2, maxTv2, noMtv, inverse) { var overlapped = true; for (var i = 0; i < 2; i++) { var axis = this._axes[i]; this._getProjMinMaxOnAxis(i, self._corners, extent); this._getProjMinMaxOnAxis(i, other._corners, extent2); if (extent[1] < extent2[0] || extent[0] > extent2[1]) { overlapped = false; if (noMtv) { return overlapped; } var dist0 = Math.abs(extent2[0] - extent[1]); var dist1 = Math.abs(extent[0] - extent2[1]); if (Math.min(dist0, dist1) > maxTv2.len()) { if (dist0 < dist1) { Point_default.scale(maxTv2, axis, -dist0 * inverse); } else { Point_default.scale(maxTv2, axis, dist1 * inverse); } } } else if (minTv2) { var dist0 = Math.abs(extent2[0] - extent[1]); var dist1 = Math.abs(extent[0] - extent2[1]); if (Math.min(dist0, dist1) < minTv2.len()) { if (dist0 < dist1) { Point_default.scale(minTv2, axis, dist0 * inverse); } else { Point_default.scale(minTv2, axis, -dist1 * inverse); } } } } return overlapped; }; OrientedBoundingRect2.prototype._getProjMinMaxOnAxis = function(dim, corners, out2) { var axis = this._axes[dim]; var origin = this._origin; var proj = corners[0].dot(axis) + origin[dim]; var min2 = proj; var max2 = proj; for (var i = 1; i < corners.length; i++) { var proj_1 = corners[i].dot(axis) + origin[dim]; min2 = Math.min(proj_1, min2); max2 = Math.max(proj_1, max2); } out2[0] = min2; out2[1] = max2; }; return OrientedBoundingRect2; }(); var OrientedBoundingRect_default = OrientedBoundingRect; // node_modules/zrender/lib/graphic/IncrementalDisplayable.js var m = []; var IncrementalDisplayable = function(_super) { __extends(IncrementalDisplayable2, _super); function IncrementalDisplayable2() { var _this = _super !== null && _super.apply(this, arguments) || this; _this.notClear = true; _this.incremental = true; _this._displayables = []; _this._temporaryDisplayables = []; _this._cursor = 0; return _this; } IncrementalDisplayable2.prototype.traverse = function(cb, context) { cb.call(context, this); }; IncrementalDisplayable2.prototype.useStyle = function() { this.style = {}; }; IncrementalDisplayable2.prototype.getCursor = function() { return this._cursor; }; IncrementalDisplayable2.prototype.innerAfterBrush = function() { this._cursor = this._displayables.length; }; IncrementalDisplayable2.prototype.clearDisplaybles = function() { this._displayables = []; this._temporaryDisplayables = []; this._cursor = 0; this.markRedraw(); this.notClear = false; }; IncrementalDisplayable2.prototype.clearTemporalDisplayables = function() { this._temporaryDisplayables = []; }; IncrementalDisplayable2.prototype.addDisplayable = function(displayable, notPersistent) { if (notPersistent) { this._temporaryDisplayables.push(displayable); } else { this._displayables.push(displayable); } this.markRedraw(); }; IncrementalDisplayable2.prototype.addDisplayables = function(displayables, notPersistent) { notPersistent = notPersistent || false; for (var i = 0; i < displayables.length; i++) { this.addDisplayable(displayables[i], notPersistent); } }; IncrementalDisplayable2.prototype.getDisplayables = function() { return this._displayables; }; IncrementalDisplayable2.prototype.getTemporalDisplayables = function() { return this._temporaryDisplayables; }; IncrementalDisplayable2.prototype.eachPendingDisplayable = function(cb) { for (var i = this._cursor; i < this._displayables.length; i++) { cb && cb(this._displayables[i]); } for (var i = 0; i < this._temporaryDisplayables.length; i++) { cb && cb(this._temporaryDisplayables[i]); } }; IncrementalDisplayable2.prototype.update = function() { this.updateTransform(); for (var i = this._cursor; i < this._displayables.length; i++) { var displayable = this._displayables[i]; displayable.parent = this; displayable.update(); displayable.parent = null; } for (var i = 0; i < this._temporaryDisplayables.length; i++) { var displayable = this._temporaryDisplayables[i]; displayable.parent = this; displayable.update(); displayable.parent = null; } }; IncrementalDisplayable2.prototype.getBoundingRect = function() { if (!this._rect) { var rect = new BoundingRect_default(Infinity, Infinity, -Infinity, -Infinity); for (var i = 0; i < this._displayables.length; i++) { var displayable = this._displayables[i]; var childRect = displayable.getBoundingRect().clone(); if (displayable.needLocalTransform()) { childRect.applyTransform(displayable.getLocalTransform(m)); } rect.union(childRect); } this._rect = rect; } return this._rect; }; IncrementalDisplayable2.prototype.contain = function(x, y) { var localPos = this.transformCoordToLocal(x, y); var rect = this.getBoundingRect(); if (rect.contain(localPos[0], localPos[1])) { for (var i = 0; i < this._displayables.length; i++) { var displayable = this._displayables[i]; if (displayable.contain(x, y)) { return true; } } } return false; }; return IncrementalDisplayable2; }(Displayable_default); var IncrementalDisplayable_default = IncrementalDisplayable; // node_modules/echarts/lib/animation/basicTransition.js var transitionStore = makeInner(); function getAnimationConfig(animationType, animatableModel, dataIndex, extraOpts, extraDelayParams) { var animationPayload; if (animatableModel && animatableModel.ecModel) { var updatePayload = animatableModel.ecModel.getUpdatePayload(); animationPayload = updatePayload && updatePayload.animation; } var animationEnabled = animatableModel && animatableModel.isAnimationEnabled(); var isUpdate = animationType === "update"; if (animationEnabled) { var duration = void 0; var easing = void 0; var delay = void 0; if (extraOpts) { duration = retrieve2(extraOpts.duration, 200); easing = retrieve2(extraOpts.easing, "cubicOut"); delay = 0; } else { duration = animatableModel.getShallow(isUpdate ? "animationDurationUpdate" : "animationDuration"); easing = animatableModel.getShallow(isUpdate ? "animationEasingUpdate" : "animationEasing"); delay = animatableModel.getShallow(isUpdate ? "animationDelayUpdate" : "animationDelay"); } if (animationPayload) { animationPayload.duration != null && (duration = animationPayload.duration); animationPayload.easing != null && (easing = animationPayload.easing); animationPayload.delay != null && (delay = animationPayload.delay); } if (isFunction(delay)) { delay = delay(dataIndex, extraDelayParams); } if (isFunction(duration)) { duration = duration(dataIndex); } var config = { duration: duration || 0, delay, easing }; return config; } else { return null; } } function animateOrSetProps(animationType, el, props, animatableModel, dataIndex, cb, during) { var isFrom = false; var removeOpt; if (isFunction(dataIndex)) { during = cb; cb = dataIndex; dataIndex = null; } else if (isObject(dataIndex)) { cb = dataIndex.cb; during = dataIndex.during; isFrom = dataIndex.isFrom; removeOpt = dataIndex.removeOpt; dataIndex = dataIndex.dataIndex; } var isRemove = animationType === "leave"; if (!isRemove) { el.stopAnimation("leave"); } var animationConfig = getAnimationConfig(animationType, animatableModel, dataIndex, isRemove ? removeOpt || {} : null, animatableModel && animatableModel.getAnimationDelayParams ? animatableModel.getAnimationDelayParams(el, dataIndex) : null); if (animationConfig && animationConfig.duration > 0) { var duration = animationConfig.duration; var animationDelay = animationConfig.delay; var animationEasing = animationConfig.easing; var animateConfig = { duration, delay: animationDelay || 0, easing: animationEasing, done: cb, force: !!cb || !!during, // Set to final state in update/init animation. // So the post processing based on the path shape can be done correctly. setToFinal: !isRemove, scope: animationType, during }; isFrom ? el.animateFrom(props, animateConfig) : el.animateTo(props, animateConfig); } else { el.stopAnimation(); !isFrom && el.attr(props); during && during(1); cb && cb(); } } function updateProps(el, props, animatableModel, dataIndex, cb, during) { animateOrSetProps("update", el, props, animatableModel, dataIndex, cb, during); } function initProps(el, props, animatableModel, dataIndex, cb, during) { animateOrSetProps("enter", el, props, animatableModel, dataIndex, cb, during); } function isElementRemoved(el) { if (!el.__zr) { return true; } for (var i = 0; i < el.animators.length; i++) { var animator = el.animators[i]; if (animator.scope === "leave") { return true; } } return false; } function removeElement(el, props, animatableModel, dataIndex, cb, during) { if (isElementRemoved(el)) { return; } animateOrSetProps("leave", el, props, animatableModel, dataIndex, cb, during); } function fadeOutDisplayable(el, animatableModel, dataIndex, done) { el.removeTextContent(); el.removeTextGuideLine(); removeElement(el, { style: { opacity: 0 } }, animatableModel, dataIndex, done); } function removeElementWithFadeOut(el, animatableModel, dataIndex) { function doRemove() { el.parent && el.parent.remove(el); } if (!el.isGroup) { fadeOutDisplayable(el, animatableModel, dataIndex, doRemove); } else { el.traverse(function(disp) { if (!disp.isGroup) { fadeOutDisplayable(disp, animatableModel, dataIndex, doRemove); } }); } } function saveOldStyle(el) { transitionStore(el).oldStyle = el.style; } // node_modules/echarts/lib/util/graphic.js var mathMax2 = Math.max; var mathMin2 = Math.min; var _customShapeMap = {}; function extendShape(opts) { return Path_default.extend(opts); } var extendPathFromString = extendFromString; function extendPath(pathData, opts) { return extendPathFromString(pathData, opts); } function registerShape(name, ShapeClass) { _customShapeMap[name] = ShapeClass; } function getShapeClass(name) { if (_customShapeMap.hasOwnProperty(name)) { return _customShapeMap[name]; } } function makePath(pathData, opts, rect, layout2) { var path = createFromString(pathData, opts); if (rect) { if (layout2 === "center") { rect = centerGraphic(rect, path.getBoundingRect()); } resizePath(path, rect); } return path; } function makeImage(imageUrl, rect, layout2) { var zrImg = new Image_default({ style: { image: imageUrl, x: rect.x, y: rect.y, width: rect.width, height: rect.height }, onload: function(img) { if (layout2 === "center") { var boundingRect = { width: img.width, height: img.height }; zrImg.setStyle(centerGraphic(rect, boundingRect)); } } }); return zrImg; } function centerGraphic(rect, boundingRect) { var aspect = boundingRect.width / boundingRect.height; var width = rect.height * aspect; var height; if (width <= rect.width) { height = rect.height; } else { width = rect.width; height = width / aspect; } var cx = rect.x + rect.width / 2; var cy = rect.y + rect.height / 2; return { x: cx - width / 2, y: cy - height / 2, width, height }; } var mergePath2 = mergePath; function resizePath(path, rect) { if (!path.applyTransform) { return; } var pathRect = path.getBoundingRect(); var m2 = pathRect.calculateTransform(rect); path.applyTransform(m2); } function subPixelOptimizeLine2(shape, lineWidth) { subPixelOptimizeLine(shape, shape, { lineWidth }); return shape; } function subPixelOptimizeRect2(param) { subPixelOptimizeRect(param.shape, param.shape, param.style); return param; } var subPixelOptimize2 = subPixelOptimize; function getTransform(target, ancestor) { var mat = identity([]); while (target && target !== ancestor) { mul(mat, target.getLocalTransform(), mat); target = target.parent; } return mat; } function applyTransform2(target, transform, invert2) { if (transform && !isArrayLike(transform)) { transform = Transformable_default.getLocalTransform(transform); } if (invert2) { transform = invert([], transform); } return applyTransform([], target, transform); } function transformDirection(direction, transform, invert2) { var hBase = transform[4] === 0 || transform[5] === 0 || transform[0] === 0 ? 1 : Math.abs(2 * transform[4] / transform[0]); var vBase = transform[4] === 0 || transform[5] === 0 || transform[2] === 0 ? 1 : Math.abs(2 * transform[4] / transform[2]); var vertex = [direction === "left" ? -hBase : direction === "right" ? hBase : 0, direction === "top" ? -vBase : direction === "bottom" ? vBase : 0]; vertex = applyTransform2(vertex, transform, invert2); return Math.abs(vertex[0]) > Math.abs(vertex[1]) ? vertex[0] > 0 ? "right" : "left" : vertex[1] > 0 ? "bottom" : "top"; } function isNotGroup(el) { return !el.isGroup; } function isPath(el) { return el.shape != null; } function groupTransition(g1, g2, animatableModel) { if (!g1 || !g2) { return; } function getElMap(g) { var elMap = {}; g.traverse(function(el) { if (isNotGroup(el) && el.anid) { elMap[el.anid] = el; } }); return elMap; } function getAnimatableProps(el) { var obj = { x: el.x, y: el.y, rotation: el.rotation }; if (isPath(el)) { obj.shape = extend({}, el.shape); } return obj; } var elMap1 = getElMap(g1); g2.traverse(function(el) { if (isNotGroup(el) && el.anid) { var oldEl = elMap1[el.anid]; if (oldEl) { var newProp = getAnimatableProps(el); el.attr(getAnimatableProps(oldEl)); updateProps(el, newProp, animatableModel, getECData(el).dataIndex); } } }); } function clipPointsByRect(points2, rect) { return map(points2, function(point) { var x = point[0]; x = mathMax2(x, rect.x); x = mathMin2(x, rect.x + rect.width); var y = point[1]; y = mathMax2(y, rect.y); y = mathMin2(y, rect.y + rect.height); return [x, y]; }); } function clipRectByRect(targetRect, rect) { var x = mathMax2(targetRect.x, rect.x); var x2 = mathMin2(targetRect.x + targetRect.width, rect.x + rect.width); var y = mathMax2(targetRect.y, rect.y); var y2 = mathMin2(targetRect.y + targetRect.height, rect.y + rect.height); if (x2 >= x && y2 >= y) { return { x, y, width: x2 - x, height: y2 - y }; } } function createIcon(iconStr, opt, rect) { var innerOpts = extend({ rectHover: true }, opt); var style = innerOpts.style = { strokeNoScale: true }; rect = rect || { x: -1, y: -1, width: 2, height: 2 }; if (iconStr) { return iconStr.indexOf("image://") === 0 ? (style.image = iconStr.slice(8), defaults(style, rect), new Image_default(innerOpts)) : makePath(iconStr.replace("path://", ""), innerOpts, rect, "center"); } } function linePolygonIntersect(a1x, a1y, a2x, a2y, points2) { for (var i = 0, p2 = points2[points2.length - 1]; i < points2.length; i++) { var p = points2[i]; if (lineLineIntersect(a1x, a1y, a2x, a2y, p[0], p[1], p2[0], p2[1])) { return true; } p2 = p; } } function lineLineIntersect(a1x, a1y, a2x, a2y, b1x, b1y, b2x, b2y) { var mx = a2x - a1x; var my = a2y - a1y; var nx = b2x - b1x; var ny = b2y - b1y; var nmCrossProduct = crossProduct2d(nx, ny, mx, my); if (nearZero(nmCrossProduct)) { return false; } var b1a1x = a1x - b1x; var b1a1y = a1y - b1y; var q = crossProduct2d(b1a1x, b1a1y, mx, my) / nmCrossProduct; if (q < 0 || q > 1) { return false; } var p = crossProduct2d(b1a1x, b1a1y, nx, ny) / nmCrossProduct; if (p < 0 || p > 1) { return false; } return true; } function crossProduct2d(x1, y1, x2, y2) { return x1 * y2 - x2 * y1; } function nearZero(val) { return val <= 1e-6 && val >= -1e-6; } function setTooltipConfig(opt) { var itemTooltipOption = opt.itemTooltipOption; var componentModel = opt.componentModel; var itemName = opt.itemName; var itemTooltipOptionObj = isString(itemTooltipOption) ? { formatter: itemTooltipOption } : itemTooltipOption; var mainType = componentModel.mainType; var componentIndex = componentModel.componentIndex; var formatterParams = { componentType: mainType, name: itemName, $vars: ["name"] }; formatterParams[mainType + "Index"] = componentIndex; var formatterParamsExtra = opt.formatterParamsExtra; if (formatterParamsExtra) { each(keys(formatterParamsExtra), function(key) { if (!hasOwn(formatterParams, key)) { formatterParams[key] = formatterParamsExtra[key]; formatterParams.$vars.push(key); } }); } var ecData = getECData(opt.el); ecData.componentMainType = mainType; ecData.componentIndex = componentIndex; ecData.tooltipConfig = { name: itemName, option: defaults({ content: itemName, encodeHTMLContent: true, formatterParams }, itemTooltipOptionObj) }; } function traverseElement(el, cb) { var stopped; if (el.isGroup) { stopped = cb(el); } if (!stopped) { el.traverse(cb); } } function traverseElements(els, cb) { if (els) { if (isArray(els)) { for (var i = 0; i < els.length; i++) { traverseElement(els[i], cb); } } else { traverseElement(els, cb); } } } registerShape("circle", Circle_default); registerShape("ellipse", Ellipse_default); registerShape("sector", Sector_default); registerShape("ring", Ring_default); registerShape("polygon", Polygon_default); registerShape("polyline", Polyline_default); registerShape("rect", Rect_default); registerShape("line", Line_default); registerShape("bezierCurve", BezierCurve_default); registerShape("arc", Arc_default); // node_modules/echarts/lib/label/labelStyle.js var EMPTY_OBJ = {}; function setLabelText(label, labelTexts) { for (var i = 0; i < SPECIAL_STATES.length; i++) { var stateName = SPECIAL_STATES[i]; var text = labelTexts[stateName]; var state = label.ensureState(stateName); state.style = state.style || {}; state.style.text = text; } var oldStates = label.currentStates.slice(); label.clearStates(true); label.setStyle({ text: labelTexts.normal }); label.useStates(oldStates, true); } function getLabelText(opt, stateModels, interpolatedValue) { var labelFetcher = opt.labelFetcher; var labelDataIndex = opt.labelDataIndex; var labelDimIndex = opt.labelDimIndex; var normalModel = stateModels.normal; var baseText; if (labelFetcher) { baseText = labelFetcher.getFormattedLabel(labelDataIndex, "normal", null, labelDimIndex, normalModel && normalModel.get("formatter"), interpolatedValue != null ? { interpolatedValue } : null); } if (baseText == null) { baseText = isFunction(opt.defaultText) ? opt.defaultText(labelDataIndex, opt, interpolatedValue) : opt.defaultText; } var statesText = { normal: baseText }; for (var i = 0; i < SPECIAL_STATES.length; i++) { var stateName = SPECIAL_STATES[i]; var stateModel = stateModels[stateName]; statesText[stateName] = retrieve2(labelFetcher ? labelFetcher.getFormattedLabel(labelDataIndex, stateName, null, labelDimIndex, stateModel && stateModel.get("formatter")) : null, baseText); } return statesText; } function setLabelStyle(targetEl, labelStatesModels, opt, stateSpecified) { opt = opt || EMPTY_OBJ; var isSetOnText = targetEl instanceof Text_default; var needsCreateText = false; for (var i = 0; i < DISPLAY_STATES.length; i++) { var stateModel = labelStatesModels[DISPLAY_STATES[i]]; if (stateModel && stateModel.getShallow("show")) { needsCreateText = true; break; } } var textContent = isSetOnText ? targetEl : targetEl.getTextContent(); if (needsCreateText) { if (!isSetOnText) { if (!textContent) { textContent = new Text_default(); targetEl.setTextContent(textContent); } if (targetEl.stateProxy) { textContent.stateProxy = targetEl.stateProxy; } } var labelStatesTexts = getLabelText(opt, labelStatesModels); var normalModel = labelStatesModels.normal; var showNormal = !!normalModel.getShallow("show"); var normalStyle = createTextStyle(normalModel, stateSpecified && stateSpecified.normal, opt, false, !isSetOnText); normalStyle.text = labelStatesTexts.normal; if (!isSetOnText) { targetEl.setTextConfig(createTextConfig(normalModel, opt, false)); } for (var i = 0; i < SPECIAL_STATES.length; i++) { var stateName = SPECIAL_STATES[i]; var stateModel = labelStatesModels[stateName]; if (stateModel) { var stateObj = textContent.ensureState(stateName); var stateShow = !!retrieve2(stateModel.getShallow("show"), showNormal); if (stateShow !== showNormal) { stateObj.ignore = !stateShow; } stateObj.style = createTextStyle(stateModel, stateSpecified && stateSpecified[stateName], opt, true, !isSetOnText); stateObj.style.text = labelStatesTexts[stateName]; if (!isSetOnText) { var targetElEmphasisState = targetEl.ensureState(stateName); targetElEmphasisState.textConfig = createTextConfig(stateModel, opt, true); } } } textContent.silent = !!normalModel.getShallow("silent"); if (textContent.style.x != null) { normalStyle.x = textContent.style.x; } if (textContent.style.y != null) { normalStyle.y = textContent.style.y; } textContent.ignore = !showNormal; textContent.useStyle(normalStyle); textContent.dirty(); if (opt.enableTextSetter) { labelInner(textContent).setLabelText = function(interpolatedValue) { var labelStatesTexts2 = getLabelText(opt, labelStatesModels, interpolatedValue); setLabelText(textContent, labelStatesTexts2); }; } } else if (textContent) { textContent.ignore = true; } targetEl.dirty(); } function getLabelStatesModels(itemModel, labelName) { labelName = labelName || "label"; var statesModels = { normal: itemModel.getModel(labelName) }; for (var i = 0; i < SPECIAL_STATES.length; i++) { var stateName = SPECIAL_STATES[i]; statesModels[stateName] = itemModel.getModel([stateName, labelName]); } return statesModels; } function createTextStyle(textStyleModel, specifiedTextStyle, opt, isNotNormal, isAttached) { var textStyle = {}; setTextStyleCommon(textStyle, textStyleModel, opt, isNotNormal, isAttached); specifiedTextStyle && extend(textStyle, specifiedTextStyle); return textStyle; } function createTextConfig(textStyleModel, opt, isNotNormal) { opt = opt || {}; var textConfig = {}; var labelPosition; var labelRotate = textStyleModel.getShallow("rotate"); var labelDistance = retrieve2(textStyleModel.getShallow("distance"), isNotNormal ? null : 5); var labelOffset = textStyleModel.getShallow("offset"); labelPosition = textStyleModel.getShallow("position") || (isNotNormal ? null : "inside"); labelPosition === "outside" && (labelPosition = opt.defaultOutsidePosition || "top"); if (labelPosition != null) { textConfig.position = labelPosition; } if (labelOffset != null) { textConfig.offset = labelOffset; } if (labelRotate != null) { labelRotate *= Math.PI / 180; textConfig.rotation = labelRotate; } if (labelDistance != null) { textConfig.distance = labelDistance; } textConfig.outsideFill = textStyleModel.get("color") === "inherit" ? opt.inheritColor || null : "auto"; return textConfig; } function setTextStyleCommon(textStyle, textStyleModel, opt, isNotNormal, isAttached) { opt = opt || EMPTY_OBJ; var ecModel = textStyleModel.ecModel; var globalTextStyle = ecModel && ecModel.option.textStyle; var richItemNames = getRichItemNames(textStyleModel); var richResult; if (richItemNames) { richResult = {}; for (var name_1 in richItemNames) { if (richItemNames.hasOwnProperty(name_1)) { var richTextStyle = textStyleModel.getModel(["rich", name_1]); setTokenTextStyle(richResult[name_1] = {}, richTextStyle, globalTextStyle, opt, isNotNormal, isAttached, false, true); } } } if (richResult) { textStyle.rich = richResult; } var overflow = textStyleModel.get("overflow"); if (overflow) { textStyle.overflow = overflow; } var margin = textStyleModel.get("minMargin"); if (margin != null) { textStyle.margin = margin; } setTokenTextStyle(textStyle, textStyleModel, globalTextStyle, opt, isNotNormal, isAttached, true, false); } function getRichItemNames(textStyleModel) { var richItemNameMap; while (textStyleModel && textStyleModel !== textStyleModel.ecModel) { var rich = (textStyleModel.option || EMPTY_OBJ).rich; if (rich) { richItemNameMap = richItemNameMap || {}; var richKeys = keys(rich); for (var i = 0; i < richKeys.length; i++) { var richKey = richKeys[i]; richItemNameMap[richKey] = 1; } } textStyleModel = textStyleModel.parentModel; } return richItemNameMap; } var TEXT_PROPS_WITH_GLOBAL = ["fontStyle", "fontWeight", "fontSize", "fontFamily", "textShadowColor", "textShadowBlur", "textShadowOffsetX", "textShadowOffsetY"]; var TEXT_PROPS_SELF = ["align", "lineHeight", "width", "height", "tag", "verticalAlign", "ellipsis"]; var TEXT_PROPS_BOX = ["padding", "borderWidth", "borderRadius", "borderDashOffset", "backgroundColor", "borderColor", "shadowColor", "shadowBlur", "shadowOffsetX", "shadowOffsetY"]; function setTokenTextStyle(textStyle, textStyleModel, globalTextStyle, opt, isNotNormal, isAttached, isBlock, inRich) { globalTextStyle = !isNotNormal && globalTextStyle || EMPTY_OBJ; var inheritColor = opt && opt.inheritColor; var fillColor = textStyleModel.getShallow("color"); var strokeColor = textStyleModel.getShallow("textBorderColor"); var opacity = retrieve2(textStyleModel.getShallow("opacity"), globalTextStyle.opacity); if (fillColor === "inherit" || fillColor === "auto") { if (true) { if (fillColor === "auto") { deprecateReplaceLog("color: 'auto'", "color: 'inherit'"); } } if (inheritColor) { fillColor = inheritColor; } else { fillColor = null; } } if (strokeColor === "inherit" || strokeColor === "auto") { if (true) { if (strokeColor === "auto") { deprecateReplaceLog("color: 'auto'", "color: 'inherit'"); } } if (inheritColor) { strokeColor = inheritColor; } else { strokeColor = null; } } if (!isAttached) { fillColor = fillColor || globalTextStyle.color; strokeColor = strokeColor || globalTextStyle.textBorderColor; } if (fillColor != null) { textStyle.fill = fillColor; } if (strokeColor != null) { textStyle.stroke = strokeColor; } var textBorderWidth = retrieve2(textStyleModel.getShallow("textBorderWidth"), globalTextStyle.textBorderWidth); if (textBorderWidth != null) { textStyle.lineWidth = textBorderWidth; } var textBorderType = retrieve2(textStyleModel.getShallow("textBorderType"), globalTextStyle.textBorderType); if (textBorderType != null) { textStyle.lineDash = textBorderType; } var textBorderDashOffset = retrieve2(textStyleModel.getShallow("textBorderDashOffset"), globalTextStyle.textBorderDashOffset); if (textBorderDashOffset != null) { textStyle.lineDashOffset = textBorderDashOffset; } if (!isNotNormal && opacity == null && !inRich) { opacity = opt && opt.defaultOpacity; } if (opacity != null) { textStyle.opacity = opacity; } if (!isNotNormal && !isAttached) { if (textStyle.fill == null && opt.inheritColor) { textStyle.fill = opt.inheritColor; } } for (var i = 0; i < TEXT_PROPS_WITH_GLOBAL.length; i++) { var key = TEXT_PROPS_WITH_GLOBAL[i]; var val = retrieve2(textStyleModel.getShallow(key), globalTextStyle[key]); if (val != null) { textStyle[key] = val; } } for (var i = 0; i < TEXT_PROPS_SELF.length; i++) { var key = TEXT_PROPS_SELF[i]; var val = textStyleModel.getShallow(key); if (val != null) { textStyle[key] = val; } } if (textStyle.verticalAlign == null) { var baseline = textStyleModel.getShallow("baseline"); if (baseline != null) { textStyle.verticalAlign = baseline; } } if (!isBlock || !opt.disableBox) { for (var i = 0; i < TEXT_PROPS_BOX.length; i++) { var key = TEXT_PROPS_BOX[i]; var val = textStyleModel.getShallow(key); if (val != null) { textStyle[key] = val; } } var borderType = textStyleModel.getShallow("borderType"); if (borderType != null) { textStyle.borderDash = borderType; } if ((textStyle.backgroundColor === "auto" || textStyle.backgroundColor === "inherit") && inheritColor) { if (true) { if (textStyle.backgroundColor === "auto") { deprecateReplaceLog("backgroundColor: 'auto'", "backgroundColor: 'inherit'"); } } textStyle.backgroundColor = inheritColor; } if ((textStyle.borderColor === "auto" || textStyle.borderColor === "inherit") && inheritColor) { if (true) { if (textStyle.borderColor === "auto") { deprecateReplaceLog("borderColor: 'auto'", "borderColor: 'inherit'"); } } textStyle.borderColor = inheritColor; } } } function getFont(opt, ecModel) { var gTextStyleModel = ecModel && ecModel.getModel("textStyle"); return trim([ // FIXME in node-canvas fontWeight is before fontStyle opt.fontStyle || gTextStyleModel && gTextStyleModel.getShallow("fontStyle") || "", opt.fontWeight || gTextStyleModel && gTextStyleModel.getShallow("fontWeight") || "", (opt.fontSize || gTextStyleModel && gTextStyleModel.getShallow("fontSize") || 12) + "px", opt.fontFamily || gTextStyleModel && gTextStyleModel.getShallow("fontFamily") || "sans-serif" ].join(" ")); } var labelInner = makeInner(); function setLabelValueAnimation(label, labelStatesModels, value, getDefaultText) { if (!label) { return; } var obj = labelInner(label); obj.prevValue = obj.value; obj.value = value; var normalLabelModel = labelStatesModels.normal; obj.valueAnimation = normalLabelModel.get("valueAnimation"); if (obj.valueAnimation) { obj.precision = normalLabelModel.get("precision"); obj.defaultInterpolatedText = getDefaultText; obj.statesModels = labelStatesModels; } } function animateLabelValue(textEl, dataIndex, data, animatableModel, labelFetcher) { var labelInnerStore = labelInner(textEl); if (!labelInnerStore.valueAnimation || labelInnerStore.prevValue === labelInnerStore.value) { return; } var defaultInterpolatedText = labelInnerStore.defaultInterpolatedText; var currValue = retrieve2(labelInnerStore.interpolatedValue, labelInnerStore.prevValue); var targetValue = labelInnerStore.value; function during(percent) { var interpolated = interpolateRawValues(data, labelInnerStore.precision, currValue, targetValue, percent); labelInnerStore.interpolatedValue = percent === 1 ? null : interpolated; var labelText = getLabelText({ labelDataIndex: dataIndex, labelFetcher, defaultText: defaultInterpolatedText ? defaultInterpolatedText(interpolated) : interpolated + "" }, labelInnerStore.statesModels, interpolated); setLabelText(textEl, labelText); } textEl.percent = 0; (labelInnerStore.prevValue == null ? initProps : updateProps)(textEl, { // percent is used to prevent animation from being aborted #15916 percent: 1 }, animatableModel, dataIndex, null, during); } // node_modules/echarts/lib/model/mixin/textStyle.js var PATH_COLOR = ["textStyle", "color"]; var textStyleParams = ["fontStyle", "fontWeight", "fontSize", "fontFamily", "padding", "lineHeight", "rich", "width", "height", "overflow"]; var tmpText = new Text_default(); var TextStyleMixin = ( /** @class */ function() { function TextStyleMixin2() { } TextStyleMixin2.prototype.getTextColor = function(isEmphasis) { var ecModel = this.ecModel; return this.getShallow("color") || (!isEmphasis && ecModel ? ecModel.get(PATH_COLOR) : null); }; TextStyleMixin2.prototype.getFont = function() { return getFont({ fontStyle: this.getShallow("fontStyle"), fontWeight: this.getShallow("fontWeight"), fontSize: this.getShallow("fontSize"), fontFamily: this.getShallow("fontFamily") }, this.ecModel); }; TextStyleMixin2.prototype.getTextRect = function(text) { var style = { text, verticalAlign: this.getShallow("verticalAlign") || this.getShallow("baseline") }; for (var i = 0; i < textStyleParams.length; i++) { style[textStyleParams[i]] = this.getShallow(textStyleParams[i]); } tmpText.useStyle(style); tmpText.update(); return tmpText.getBoundingRect(); }; return TextStyleMixin2; }() ); var textStyle_default = TextStyleMixin; // node_modules/echarts/lib/model/mixin/lineStyle.js var LINE_STYLE_KEY_MAP = [ ["lineWidth", "width"], ["stroke", "color"], ["opacity"], ["shadowBlur"], ["shadowOffsetX"], ["shadowOffsetY"], ["shadowColor"], ["lineDash", "type"], ["lineDashOffset", "dashOffset"], ["lineCap", "cap"], ["lineJoin", "join"], ["miterLimit"] // Option decal is in `DecalObject` but style.decal is in `PatternObject`. // So do not transfer decal directly. ]; var getLineStyle = makeStyleMapper(LINE_STYLE_KEY_MAP); var LineStyleMixin = ( /** @class */ function() { function LineStyleMixin2() { } LineStyleMixin2.prototype.getLineStyle = function(excludes) { return getLineStyle(this, excludes); }; return LineStyleMixin2; }() ); // node_modules/echarts/lib/model/mixin/itemStyle.js var ITEM_STYLE_KEY_MAP = [ ["fill", "color"], ["stroke", "borderColor"], ["lineWidth", "borderWidth"], ["opacity"], ["shadowBlur"], ["shadowOffsetX"], ["shadowOffsetY"], ["shadowColor"], ["lineDash", "borderType"], ["lineDashOffset", "borderDashOffset"], ["lineCap", "borderCap"], ["lineJoin", "borderJoin"], ["miterLimit", "borderMiterLimit"] // Option decal is in `DecalObject` but style.decal is in `PatternObject`. // So do not transfer decal directly. ]; var getItemStyle = makeStyleMapper(ITEM_STYLE_KEY_MAP); var ItemStyleMixin = ( /** @class */ function() { function ItemStyleMixin2() { } ItemStyleMixin2.prototype.getItemStyle = function(excludes, includes) { return getItemStyle(this, excludes, includes); }; return ItemStyleMixin2; }() ); // node_modules/echarts/lib/model/Model.js var Model = ( /** @class */ function() { function Model2(option, parentModel, ecModel) { this.parentModel = parentModel; this.ecModel = ecModel; this.option = option; } Model2.prototype.init = function(option, parentModel, ecModel) { var rest = []; for (var _i = 3; _i < arguments.length; _i++) { rest[_i - 3] = arguments[_i]; } }; Model2.prototype.mergeOption = function(option, ecModel) { merge(this.option, option, true); }; Model2.prototype.get = function(path, ignoreParent) { if (path == null) { return this.option; } return this._doGet(this.parsePath(path), !ignoreParent && this.parentModel); }; Model2.prototype.getShallow = function(key, ignoreParent) { var option = this.option; var val = option == null ? option : option[key]; if (val == null && !ignoreParent) { var parentModel = this.parentModel; if (parentModel) { val = parentModel.getShallow(key); } } return val; }; Model2.prototype.getModel = function(path, parentModel) { var hasPath = path != null; var pathFinal = hasPath ? this.parsePath(path) : null; var obj = hasPath ? this._doGet(pathFinal) : this.option; parentModel = parentModel || this.parentModel && this.parentModel.getModel(this.resolveParentPath(pathFinal)); return new Model2(obj, parentModel, this.ecModel); }; Model2.prototype.isEmpty = function() { return this.option == null; }; Model2.prototype.restoreData = function() { }; Model2.prototype.clone = function() { var Ctor = this.constructor; return new Ctor(clone(this.option)); }; Model2.prototype.parsePath = function(path) { if (typeof path === "string") { return path.split("."); } return path; }; Model2.prototype.resolveParentPath = function(path) { return path; }; Model2.prototype.isAnimationEnabled = function() { if (!env_default.node && this.option) { if (this.option.animation != null) { return !!this.option.animation; } else if (this.parentModel) { return this.parentModel.isAnimationEnabled(); } } }; Model2.prototype._doGet = function(pathArr, parentModel) { var obj = this.option; if (!pathArr) { return obj; } for (var i = 0; i < pathArr.length; i++) { if (!pathArr[i]) { continue; } obj = obj && typeof obj === "object" ? obj[pathArr[i]] : null; if (obj == null) { break; } } if (obj == null && parentModel) { obj = parentModel._doGet(this.resolveParentPath(pathArr), parentModel.parentModel); } return obj; }; return Model2; }() ); enableClassExtend(Model); enableClassCheck(Model); mixin(Model, LineStyleMixin); mixin(Model, ItemStyleMixin); mixin(Model, AreaStyleMixin); mixin(Model, textStyle_default); var Model_default = Model; // node_modules/echarts/lib/i18n/langEN.js var langEN_default = { time: { month: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], monthAbbr: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], dayOfWeek: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], dayOfWeekAbbr: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"] }, legend: { selector: { all: "All", inverse: "Inv" } }, toolbox: { brush: { title: { rect: "Box Select", polygon: "Lasso Select", lineX: "Horizontally Select", lineY: "Vertically Select", keep: "Keep Selections", clear: "Clear Selections" } }, dataView: { title: "Data View", lang: ["Data View", "Close", "Refresh"] }, dataZoom: { title: { zoom: "Zoom", back: "Zoom Reset" } }, magicType: { title: { line: "Switch to Line Chart", bar: "Switch to Bar Chart", stack: "Stack", tiled: "Tile" } }, restore: { title: "Restore" }, saveAsImage: { title: "Save as Image", lang: ["Right Click to Save Image"] } }, series: { typeNames: { pie: "Pie chart", bar: "Bar chart", line: "Line chart", scatter: "Scatter plot", effectScatter: "Ripple scatter plot", radar: "Radar chart", tree: "Tree", treemap: "Treemap", boxplot: "Boxplot", candlestick: "Candlestick", k: "K line chart", heatmap: "Heat map", map: "Map", parallel: "Parallel coordinate map", lines: "Line graph", graph: "Relationship graph", sankey: "Sankey diagram", funnel: "Funnel chart", gauge: "Gauge", pictorialBar: "Pictorial bar", themeRiver: "Theme River Map", sunburst: "Sunburst", custom: "Custom chart", chart: "Chart" } }, aria: { general: { withTitle: 'This is a chart about "{title}"', withoutTitle: "This is a chart" }, series: { single: { prefix: "", withName: " with type {seriesType} named {seriesName}.", withoutName: " with type {seriesType}." }, multiple: { prefix: ". It consists of {seriesCount} series count.", withName: " The {seriesId} series is a {seriesType} representing {seriesName}.", withoutName: " The {seriesId} series is a {seriesType}.", separator: { middle: "", end: "" } } }, data: { allData: "The data is as follows: ", partialData: "The first {displayCnt} items are: ", withName: "the data for {name} is {value}", withoutName: "{value}", separator: { middle: ", ", end: ". " } } } }; // node_modules/echarts/lib/i18n/langZH.js var langZH_default = { time: { month: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"], monthAbbr: ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"], dayOfWeek: ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"], dayOfWeekAbbr: ["日", "一", "二", "三", "四", "五", "六"] }, legend: { selector: { all: "全选", inverse: "反选" } }, toolbox: { brush: { title: { rect: "矩形选择", polygon: "圈选", lineX: "横向选择", lineY: "纵向选择", keep: "保持选择", clear: "清除选择" } }, dataView: { title: "数据视图", lang: ["数据视图", "关闭", "刷新"] }, dataZoom: { title: { zoom: "区域缩放", back: "区域缩放还原" } }, magicType: { title: { line: "切换为折线图", bar: "切换为柱状图", stack: "切换为堆叠", tiled: "切换为平铺" } }, restore: { title: "还原" }, saveAsImage: { title: "保存为图片", lang: ["右键另存为图片"] } }, series: { typeNames: { pie: "饼图", bar: "柱状图", line: "折线图", scatter: "散点图", effectScatter: "涟漪散点图", radar: "雷达图", tree: "树图", treemap: "矩形树图", boxplot: "箱型图", candlestick: "K线图", k: "K线图", heatmap: "热力图", map: "地图", parallel: "平行坐标图", lines: "线图", graph: "关系图", sankey: "桑基图", funnel: "漏斗图", gauge: "仪表盘图", pictorialBar: "象形柱图", themeRiver: "主题河流图", sunburst: "旭日图", custom: "自定义图表", chart: "图表" } }, aria: { general: { withTitle: "这是一个关于“{title}”的图表。", withoutTitle: "这是一个图表," }, series: { single: { prefix: "", withName: "图表类型是{seriesType},表示{seriesName}。", withoutName: "图表类型是{seriesType}。" }, multiple: { prefix: "它由{seriesCount}个图表系列组成。", withName: "第{seriesId}个系列是一个表示{seriesName}的{seriesType},", withoutName: "第{seriesId}个系列是一个{seriesType},", separator: { middle: ";", end: "。" } } }, data: { allData: "其数据是——", partialData: "其中,前{displayCnt}项是——", withName: "{name}的数据是{value}", withoutName: "{value}", separator: { middle: ",", end: "" } } } }; // node_modules/echarts/lib/core/locale.js var LOCALE_ZH = "ZH"; var LOCALE_EN = "EN"; var DEFAULT_LOCALE = LOCALE_EN; var localeStorage = {}; var localeModels = {}; var SYSTEM_LANG = !env_default.domSupported ? DEFAULT_LOCALE : function() { var langStr = ( /* eslint-disable-next-line */ (document.documentElement.lang || navigator.language || navigator.browserLanguage || DEFAULT_LOCALE).toUpperCase() ); return langStr.indexOf(LOCALE_ZH) > -1 ? LOCALE_ZH : DEFAULT_LOCALE; }(); function registerLocale(locale, localeObj) { locale = locale.toUpperCase(); localeModels[locale] = new Model_default(localeObj); localeStorage[locale] = localeObj; } function createLocaleObject(locale) { if (isString(locale)) { var localeObj = localeStorage[locale.toUpperCase()] || {}; if (locale === LOCALE_ZH || locale === LOCALE_EN) { return clone(localeObj); } else { return merge(clone(localeObj), clone(localeStorage[DEFAULT_LOCALE]), false); } } else { return merge(clone(locale), clone(localeStorage[DEFAULT_LOCALE]), false); } } function getLocaleModel(lang) { return localeModels[lang]; } function getDefaultLocaleModel() { return localeModels[DEFAULT_LOCALE]; } registerLocale(LOCALE_EN, langEN_default); registerLocale(LOCALE_ZH, langZH_default); // node_modules/echarts/lib/util/component.js var base = Math.round(Math.random() * 10); function getUID(type) { return [type || "", base++].join("_"); } function enableSubTypeDefaulter(target) { var subTypeDefaulters = {}; target.registerSubTypeDefaulter = function(componentType, defaulter) { var componentTypeInfo = parseClassType(componentType); subTypeDefaulters[componentTypeInfo.main] = defaulter; }; target.determineSubType = function(componentType, option) { var type = option.type; if (!type) { var componentTypeMain = parseClassType(componentType).main; if (target.hasSubTypes(componentType) && subTypeDefaulters[componentTypeMain]) { type = subTypeDefaulters[componentTypeMain](option); } } return type; }; } function enableTopologicalTravel(entity, dependencyGetter) { entity.topologicalTravel = function(targetNameList, fullNameList, callback, context) { if (!targetNameList.length) { return; } var result = makeDepndencyGraph(fullNameList); var graph = result.graph; var noEntryList = result.noEntryList; var targetNameSet = {}; each(targetNameList, function(name) { targetNameSet[name] = true; }); while (noEntryList.length) { var currComponentType = noEntryList.pop(); var currVertex = graph[currComponentType]; var isInTargetNameSet = !!targetNameSet[currComponentType]; if (isInTargetNameSet) { callback.call(context, currComponentType, currVertex.originalDeps.slice()); delete targetNameSet[currComponentType]; } each(currVertex.successor, isInTargetNameSet ? removeEdgeAndAdd : removeEdge); } each(targetNameSet, function() { var errMsg = ""; if (true) { errMsg = makePrintable("Circular dependency may exists: ", targetNameSet, targetNameList, fullNameList); } throw new Error(errMsg); }); function removeEdge(succComponentType) { graph[succComponentType].entryCount--; if (graph[succComponentType].entryCount === 0) { noEntryList.push(succComponentType); } } function removeEdgeAndAdd(succComponentType) { targetNameSet[succComponentType] = true; removeEdge(succComponentType); } }; function makeDepndencyGraph(fullNameList) { var graph = {}; var noEntryList = []; each(fullNameList, function(name) { var thisItem = createDependencyGraphItem(graph, name); var originalDeps = thisItem.originalDeps = dependencyGetter(name); var availableDeps = getAvailableDependencies(originalDeps, fullNameList); thisItem.entryCount = availableDeps.length; if (thisItem.entryCount === 0) { noEntryList.push(name); } each(availableDeps, function(dependentName) { if (indexOf(thisItem.predecessor, dependentName) < 0) { thisItem.predecessor.push(dependentName); } var thatItem = createDependencyGraphItem(graph, dependentName); if (indexOf(thatItem.successor, dependentName) < 0) { thatItem.successor.push(name); } }); }); return { graph, noEntryList }; } function createDependencyGraphItem(graph, name) { if (!graph[name]) { graph[name] = { predecessor: [], successor: [] }; } return graph[name]; } function getAvailableDependencies(originalDeps, fullNameList) { var availableDeps = []; each(originalDeps, function(dep) { indexOf(fullNameList, dep) >= 0 && availableDeps.push(dep); }); return availableDeps; } } function inheritDefaultOption(superOption, subOption) { return merge(merge({}, superOption, true), subOption, true); } // node_modules/echarts/lib/util/time.js var ONE_SECOND = 1e3; var ONE_MINUTE = ONE_SECOND * 60; var ONE_HOUR = ONE_MINUTE * 60; var ONE_DAY = ONE_HOUR * 24; var ONE_YEAR = ONE_DAY * 365; var defaultLeveledFormatter = { year: "{yyyy}", month: "{MMM}", day: "{d}", hour: "{HH}:{mm}", minute: "{HH}:{mm}", second: "{HH}:{mm}:{ss}", millisecond: "{HH}:{mm}:{ss} {SSS}", none: "{yyyy}-{MM}-{dd} {HH}:{mm}:{ss} {SSS}" }; var fullDayFormatter = "{yyyy}-{MM}-{dd}"; var fullLeveledFormatter = { year: "{yyyy}", month: "{yyyy}-{MM}", day: fullDayFormatter, hour: fullDayFormatter + " " + defaultLeveledFormatter.hour, minute: fullDayFormatter + " " + defaultLeveledFormatter.minute, second: fullDayFormatter + " " + defaultLeveledFormatter.second, millisecond: defaultLeveledFormatter.none }; var primaryTimeUnits = ["year", "month", "day", "hour", "minute", "second", "millisecond"]; var timeUnits = ["year", "half-year", "quarter", "month", "week", "half-week", "day", "half-day", "quarter-day", "hour", "minute", "second", "millisecond"]; function pad(str, len) { str += ""; return "0000".substr(0, len - str.length) + str; } function getPrimaryTimeUnit(timeUnit) { switch (timeUnit) { case "half-year": case "quarter": return "month"; case "week": case "half-week": return "day"; case "half-day": case "quarter-day": return "hour"; default: return timeUnit; } } function isPrimaryTimeUnit(timeUnit) { return timeUnit === getPrimaryTimeUnit(timeUnit); } function getDefaultFormatPrecisionOfInterval(timeUnit) { switch (timeUnit) { case "year": case "month": return "day"; case "millisecond": return "millisecond"; default: return "second"; } } function format(time, template, isUTC, lang) { var date = parseDate(time); var y = date[fullYearGetterName(isUTC)](); var M = date[monthGetterName(isUTC)]() + 1; var q = Math.floor((M - 1) / 3) + 1; var d = date[dateGetterName(isUTC)](); var e2 = date["get" + (isUTC ? "UTC" : "") + "Day"](); var H = date[hoursGetterName(isUTC)](); var h = (H - 1) % 12 + 1; var m2 = date[minutesGetterName(isUTC)](); var s = date[secondsGetterName(isUTC)](); var S = date[millisecondsGetterName(isUTC)](); var a = H >= 12 ? "pm" : "am"; var A = a.toUpperCase(); var localeModel = lang instanceof Model_default ? lang : getLocaleModel(lang || SYSTEM_LANG) || getDefaultLocaleModel(); var timeModel = localeModel.getModel("time"); var month = timeModel.get("month"); var monthAbbr = timeModel.get("monthAbbr"); var dayOfWeek = timeModel.get("dayOfWeek"); var dayOfWeekAbbr = timeModel.get("dayOfWeekAbbr"); return (template || "").replace(/{a}/g, a + "").replace(/{A}/g, A + "").replace(/{yyyy}/g, y + "").replace(/{yy}/g, pad(y % 100 + "", 2)).replace(/{Q}/g, q + "").replace(/{MMMM}/g, month[M - 1]).replace(/{MMM}/g, monthAbbr[M - 1]).replace(/{MM}/g, pad(M, 2)).replace(/{M}/g, M + "").replace(/{dd}/g, pad(d, 2)).replace(/{d}/g, d + "").replace(/{eeee}/g, dayOfWeek[e2]).replace(/{ee}/g, dayOfWeekAbbr[e2]).replace(/{e}/g, e2 + "").replace(/{HH}/g, pad(H, 2)).replace(/{H}/g, H + "").replace(/{hh}/g, pad(h + "", 2)).replace(/{h}/g, h + "").replace(/{mm}/g, pad(m2, 2)).replace(/{m}/g, m2 + "").replace(/{ss}/g, pad(s, 2)).replace(/{s}/g, s + "").replace(/{SSS}/g, pad(S, 3)).replace(/{S}/g, S + ""); } function leveledFormat(tick, idx, formatter, lang, isUTC) { var template = null; if (isString(formatter)) { template = formatter; } else if (isFunction(formatter)) { template = formatter(tick.value, idx, { level: tick.level }); } else { var defaults2 = extend({}, defaultLeveledFormatter); if (tick.level > 0) { for (var i = 0; i < primaryTimeUnits.length; ++i) { defaults2[primaryTimeUnits[i]] = "{primary|" + defaults2[primaryTimeUnits[i]] + "}"; } } var mergedFormatter = formatter ? formatter.inherit === false ? formatter : defaults(formatter, defaults2) : defaults2; var unit = getUnitFromValue(tick.value, isUTC); if (mergedFormatter[unit]) { template = mergedFormatter[unit]; } else if (mergedFormatter.inherit) { var targetId = timeUnits.indexOf(unit); for (var i = targetId - 1; i >= 0; --i) { if (mergedFormatter[unit]) { template = mergedFormatter[unit]; break; } } template = template || defaults2.none; } if (isArray(template)) { var levelId = tick.level == null ? 0 : tick.level >= 0 ? tick.level : template.length + tick.level; levelId = Math.min(levelId, template.length - 1); template = template[levelId]; } } return format(new Date(tick.value), template, isUTC, lang); } function getUnitFromValue(value, isUTC) { var date = parseDate(value); var M = date[monthGetterName(isUTC)]() + 1; var d = date[dateGetterName(isUTC)](); var h = date[hoursGetterName(isUTC)](); var m2 = date[minutesGetterName(isUTC)](); var s = date[secondsGetterName(isUTC)](); var S = date[millisecondsGetterName(isUTC)](); var isSecond = S === 0; var isMinute = isSecond && s === 0; var isHour = isMinute && m2 === 0; var isDay = isHour && h === 0; var isMonth = isDay && d === 1; var isYear = isMonth && M === 1; if (isYear) { return "year"; } else if (isMonth) { return "month"; } else if (isDay) { return "day"; } else if (isHour) { return "hour"; } else if (isMinute) { return "minute"; } else if (isSecond) { return "second"; } else { return "millisecond"; } } function getUnitValue(value, unit, isUTC) { var date = isNumber(value) ? parseDate(value) : value; unit = unit || getUnitFromValue(value, isUTC); switch (unit) { case "year": return date[fullYearGetterName(isUTC)](); case "half-year": return date[monthGetterName(isUTC)]() >= 6 ? 1 : 0; case "quarter": return Math.floor((date[monthGetterName(isUTC)]() + 1) / 4); case "month": return date[monthGetterName(isUTC)](); case "day": return date[dateGetterName(isUTC)](); case "half-day": return date[hoursGetterName(isUTC)]() / 24; case "hour": return date[hoursGetterName(isUTC)](); case "minute": return date[minutesGetterName(isUTC)](); case "second": return date[secondsGetterName(isUTC)](); case "millisecond": return date[millisecondsGetterName(isUTC)](); } } function fullYearGetterName(isUTC) { return isUTC ? "getUTCFullYear" : "getFullYear"; } function monthGetterName(isUTC) { return isUTC ? "getUTCMonth" : "getMonth"; } function dateGetterName(isUTC) { return isUTC ? "getUTCDate" : "getDate"; } function hoursGetterName(isUTC) { return isUTC ? "getUTCHours" : "getHours"; } function minutesGetterName(isUTC) { return isUTC ? "getUTCMinutes" : "getMinutes"; } function secondsGetterName(isUTC) { return isUTC ? "getUTCSeconds" : "getSeconds"; } function millisecondsGetterName(isUTC) { return isUTC ? "getUTCMilliseconds" : "getMilliseconds"; } function fullYearSetterName(isUTC) { return isUTC ? "setUTCFullYear" : "setFullYear"; } function monthSetterName(isUTC) { return isUTC ? "setUTCMonth" : "setMonth"; } function dateSetterName(isUTC) { return isUTC ? "setUTCDate" : "setDate"; } function hoursSetterName(isUTC) { return isUTC ? "setUTCHours" : "setHours"; } function minutesSetterName(isUTC) { return isUTC ? "setUTCMinutes" : "setMinutes"; } function secondsSetterName(isUTC) { return isUTC ? "setUTCSeconds" : "setSeconds"; } function millisecondsSetterName(isUTC) { return isUTC ? "setUTCMilliseconds" : "setMilliseconds"; } // node_modules/echarts/lib/legacy/getTextRect.js function getTextRect(text, font, align, verticalAlign, padding, rich, truncate, lineHeight) { var textEl = new Text_default({ style: { text, font, align, verticalAlign, padding, rich, overflow: truncate ? "truncate" : null, lineHeight } }); return textEl.getBoundingRect(); } // node_modules/echarts/lib/util/format.js function addCommas(x) { if (!isNumeric(x)) { return isString(x) ? x : "-"; } var parts = (x + "").split("."); return parts[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g, "$1,") + (parts.length > 1 ? "." + parts[1] : ""); } function toCamelCase(str, upperCaseFirst) { str = (str || "").toLowerCase().replace(/-(.)/g, function(match, group1) { return group1.toUpperCase(); }); if (upperCaseFirst && str) { str = str.charAt(0).toUpperCase() + str.slice(1); } return str; } var normalizeCssArray2 = normalizeCssArray; function makeValueReadable(value, valueType, useUTC) { var USER_READABLE_DEFUALT_TIME_PATTERN = "{yyyy}-{MM}-{dd} {HH}:{mm}:{ss}"; function stringToUserReadable(str) { return str && trim(str) ? str : "-"; } function isNumberUserReadable(num) { return !!(num != null && !isNaN(num) && isFinite(num)); } var isTypeTime = valueType === "time"; var isValueDate = value instanceof Date; if (isTypeTime || isValueDate) { var date = isTypeTime ? parseDate(value) : value; if (!isNaN(+date)) { return format(date, USER_READABLE_DEFUALT_TIME_PATTERN, useUTC); } else if (isValueDate) { return "-"; } } if (valueType === "ordinal") { return isStringSafe(value) ? stringToUserReadable(value) : isNumber(value) ? isNumberUserReadable(value) ? value + "" : "-" : "-"; } var numericResult = numericToNumber(value); return isNumberUserReadable(numericResult) ? addCommas(numericResult) : isStringSafe(value) ? stringToUserReadable(value) : typeof value === "boolean" ? value + "" : "-"; } var TPL_VAR_ALIAS = ["a", "b", "c", "d", "e", "f", "g"]; var wrapVar = function(varName, seriesIdx) { return "{" + varName + (seriesIdx == null ? "" : seriesIdx) + "}"; }; function formatTpl(tpl, paramsList, encode) { if (!isArray(paramsList)) { paramsList = [paramsList]; } var seriesLen = paramsList.length; if (!seriesLen) { return ""; } var $vars = paramsList[0].$vars || []; for (var i = 0; i < $vars.length; i++) { var alias = TPL_VAR_ALIAS[i]; tpl = tpl.replace(wrapVar(alias), wrapVar(alias, 0)); } for (var seriesIdx = 0; seriesIdx < seriesLen; seriesIdx++) { for (var k = 0; k < $vars.length; k++) { var val = paramsList[seriesIdx][$vars[k]]; tpl = tpl.replace(wrapVar(TPL_VAR_ALIAS[k], seriesIdx), encode ? encodeHTML(val) : val); } } return tpl; } function formatTplSimple(tpl, param, encode) { each(param, function(value, key) { tpl = tpl.replace("{" + key + "}", encode ? encodeHTML(value) : value); }); return tpl; } function getTooltipMarker(inOpt, extraCssText) { var opt = isString(inOpt) ? { color: inOpt, extraCssText } : inOpt || {}; var color = opt.color; var type = opt.type; extraCssText = opt.extraCssText; var renderMode = opt.renderMode || "html"; if (!color) { return ""; } if (renderMode === "html") { return type === "subItem" ? '' : ''; } else { var markerId = opt.markerId || "markerX"; return { renderMode, content: "{" + markerId + "|} ", style: type === "subItem" ? { width: 4, height: 4, borderRadius: 2, backgroundColor: color } : { width: 10, height: 10, borderRadius: 5, backgroundColor: color } }; } } function formatTime(tpl, value, isUTC) { if (true) { deprecateReplaceLog("echarts.format.formatTime", "echarts.time.format"); } if (tpl === "week" || tpl === "month" || tpl === "quarter" || tpl === "half-year" || tpl === "year") { tpl = "MM-dd\nyyyy"; } var date = parseDate(value); var getUTC = isUTC ? "getUTC" : "get"; var y = date[getUTC + "FullYear"](); var M = date[getUTC + "Month"]() + 1; var d = date[getUTC + "Date"](); var h = date[getUTC + "Hours"](); var m2 = date[getUTC + "Minutes"](); var s = date[getUTC + "Seconds"](); var S = date[getUTC + "Milliseconds"](); tpl = tpl.replace("MM", pad(M, 2)).replace("M", M).replace("yyyy", y).replace("yy", pad(y % 100 + "", 2)).replace("dd", pad(d, 2)).replace("d", d).replace("hh", pad(h, 2)).replace("h", h).replace("mm", pad(m2, 2)).replace("m", m2).replace("ss", pad(s, 2)).replace("s", s).replace("SSS", pad(S, 3)); return tpl; } function capitalFirst(str) { return str ? str.charAt(0).toUpperCase() + str.substr(1) : str; } function convertToColorString(color, defaultColor) { defaultColor = defaultColor || "transparent"; return isString(color) ? color : isObject(color) ? color.colorStops && (color.colorStops[0] || {}).color || defaultColor : defaultColor; } function windowOpen(link, target) { if (target === "_blank" || target === "blank") { var blank = window.open(); blank.opener = null; blank.location.href = link; } else { window.open(link, target); } } // node_modules/echarts/lib/util/layout.js var each2 = each; var LOCATION_PARAMS = ["left", "right", "top", "bottom", "width", "height"]; var HV_NAMES = [["width", "left", "right"], ["height", "top", "bottom"]]; function boxLayout(orient, group, gap, maxWidth, maxHeight) { var x = 0; var y = 0; if (maxWidth == null) { maxWidth = Infinity; } if (maxHeight == null) { maxHeight = Infinity; } var currentLineMaxSize = 0; group.eachChild(function(child, idx) { var rect = child.getBoundingRect(); var nextChild = group.childAt(idx + 1); var nextChildRect = nextChild && nextChild.getBoundingRect(); var nextX; var nextY; if (orient === "horizontal") { var moveX = rect.width + (nextChildRect ? -nextChildRect.x + rect.x : 0); nextX = x + moveX; if (nextX > maxWidth || child.newline) { x = 0; nextX = moveX; y += currentLineMaxSize + gap; currentLineMaxSize = rect.height; } else { currentLineMaxSize = Math.max(currentLineMaxSize, rect.height); } } else { var moveY = rect.height + (nextChildRect ? -nextChildRect.y + rect.y : 0); nextY = y + moveY; if (nextY > maxHeight || child.newline) { x += currentLineMaxSize + gap; y = 0; nextY = moveY; currentLineMaxSize = rect.width; } else { currentLineMaxSize = Math.max(currentLineMaxSize, rect.width); } } if (child.newline) { return; } child.x = x; child.y = y; child.markRedraw(); orient === "horizontal" ? x = nextX + gap : y = nextY + gap; }); } var box = boxLayout; var vbox = curry(boxLayout, "vertical"); var hbox = curry(boxLayout, "horizontal"); function getAvailableSize(positionInfo, containerRect, margin) { var containerWidth = containerRect.width; var containerHeight = containerRect.height; var x = parsePercent2(positionInfo.left, containerWidth); var y = parsePercent2(positionInfo.top, containerHeight); var x2 = parsePercent2(positionInfo.right, containerWidth); var y2 = parsePercent2(positionInfo.bottom, containerHeight); (isNaN(x) || isNaN(parseFloat(positionInfo.left))) && (x = 0); (isNaN(x2) || isNaN(parseFloat(positionInfo.right))) && (x2 = containerWidth); (isNaN(y) || isNaN(parseFloat(positionInfo.top))) && (y = 0); (isNaN(y2) || isNaN(parseFloat(positionInfo.bottom))) && (y2 = containerHeight); margin = normalizeCssArray2(margin || 0); return { width: Math.max(x2 - x - margin[1] - margin[3], 0), height: Math.max(y2 - y - margin[0] - margin[2], 0) }; } function getLayoutRect(positionInfo, containerRect, margin) { margin = normalizeCssArray2(margin || 0); var containerWidth = containerRect.width; var containerHeight = containerRect.height; var left = parsePercent2(positionInfo.left, containerWidth); var top = parsePercent2(positionInfo.top, containerHeight); var right = parsePercent2(positionInfo.right, containerWidth); var bottom = parsePercent2(positionInfo.bottom, containerHeight); var width = parsePercent2(positionInfo.width, containerWidth); var height = parsePercent2(positionInfo.height, containerHeight); var verticalMargin = margin[2] + margin[0]; var horizontalMargin = margin[1] + margin[3]; var aspect = positionInfo.aspect; if (isNaN(width)) { width = containerWidth - right - horizontalMargin - left; } if (isNaN(height)) { height = containerHeight - bottom - verticalMargin - top; } if (aspect != null) { if (isNaN(width) && isNaN(height)) { if (aspect > containerWidth / containerHeight) { width = containerWidth * 0.8; } else { height = containerHeight * 0.8; } } if (isNaN(width)) { width = aspect * height; } if (isNaN(height)) { height = width / aspect; } } if (isNaN(left)) { left = containerWidth - right - width - horizontalMargin; } if (isNaN(top)) { top = containerHeight - bottom - height - verticalMargin; } switch (positionInfo.left || positionInfo.right) { case "center": left = containerWidth / 2 - width / 2 - margin[3]; break; case "right": left = containerWidth - width - horizontalMargin; break; } switch (positionInfo.top || positionInfo.bottom) { case "middle": case "center": top = containerHeight / 2 - height / 2 - margin[0]; break; case "bottom": top = containerHeight - height - verticalMargin; break; } left = left || 0; top = top || 0; if (isNaN(width)) { width = containerWidth - horizontalMargin - left - (right || 0); } if (isNaN(height)) { height = containerHeight - verticalMargin - top - (bottom || 0); } var rect = new BoundingRect_default(left + margin[3], top + margin[0], width, height); rect.margin = margin; return rect; } function positionElement(el, positionInfo, containerRect, margin, opt, out2) { var h = !opt || !opt.hv || opt.hv[0]; var v = !opt || !opt.hv || opt.hv[1]; var boundingMode = opt && opt.boundingMode || "all"; out2 = out2 || el; out2.x = el.x; out2.y = el.y; if (!h && !v) { return false; } var rect; if (boundingMode === "raw") { rect = el.type === "group" ? new BoundingRect_default(0, 0, +positionInfo.width || 0, +positionInfo.height || 0) : el.getBoundingRect(); } else { rect = el.getBoundingRect(); if (el.needLocalTransform()) { var transform = el.getLocalTransform(); rect = rect.clone(); rect.applyTransform(transform); } } var layoutRect = getLayoutRect(defaults({ width: rect.width, height: rect.height }, positionInfo), containerRect, margin); var dx = h ? layoutRect.x - rect.x : 0; var dy = v ? layoutRect.y - rect.y : 0; if (boundingMode === "raw") { out2.x = dx; out2.y = dy; } else { out2.x += dx; out2.y += dy; } if (out2 === el) { el.markRedraw(); } return true; } function sizeCalculable(option, hvIdx) { return option[HV_NAMES[hvIdx][0]] != null || option[HV_NAMES[hvIdx][1]] != null && option[HV_NAMES[hvIdx][2]] != null; } function fetchLayoutMode(ins) { var layoutMode = ins.layoutMode || ins.constructor.layoutMode; return isObject(layoutMode) ? layoutMode : layoutMode ? { type: layoutMode } : null; } function mergeLayoutParam(targetOption, newOption, opt) { var ignoreSize = opt && opt.ignoreSize; !isArray(ignoreSize) && (ignoreSize = [ignoreSize, ignoreSize]); var hResult = merge2(HV_NAMES[0], 0); var vResult = merge2(HV_NAMES[1], 1); copy(HV_NAMES[0], targetOption, hResult); copy(HV_NAMES[1], targetOption, vResult); function merge2(names, hvIdx) { var newParams = {}; var newValueCount = 0; var merged = {}; var mergedValueCount = 0; var enoughParamNumber = 2; each2(names, function(name) { merged[name] = targetOption[name]; }); each2(names, function(name) { hasProp(newOption, name) && (newParams[name] = merged[name] = newOption[name]); hasValue(newParams, name) && newValueCount++; hasValue(merged, name) && mergedValueCount++; }); if (ignoreSize[hvIdx]) { if (hasValue(newOption, names[1])) { merged[names[2]] = null; } else if (hasValue(newOption, names[2])) { merged[names[1]] = null; } return merged; } if (mergedValueCount === enoughParamNumber || !newValueCount) { return merged; } else if (newValueCount >= enoughParamNumber) { return newParams; } else { for (var i = 0; i < names.length; i++) { var name_1 = names[i]; if (!hasProp(newParams, name_1) && hasProp(targetOption, name_1)) { newParams[name_1] = targetOption[name_1]; break; } } return newParams; } } function hasProp(obj, name) { return obj.hasOwnProperty(name); } function hasValue(obj, name) { return obj[name] != null && obj[name] !== "auto"; } function copy(names, target, source) { each2(names, function(name) { target[name] = source[name]; }); } } function getLayoutParams(source) { return copyLayoutParams({}, source); } function copyLayoutParams(target, source) { source && target && each2(LOCATION_PARAMS, function(name) { source.hasOwnProperty(name) && (target[name] = source[name]); }); return target; } // node_modules/echarts/lib/model/Component.js var inner = makeInner(); var ComponentModel = ( /** @class */ function(_super) { __extends(ComponentModel2, _super); function ComponentModel2(option, parentModel, ecModel) { var _this = _super.call(this, option, parentModel, ecModel) || this; _this.uid = getUID("ec_cpt_model"); return _this; } ComponentModel2.prototype.init = function(option, parentModel, ecModel) { this.mergeDefaultAndTheme(option, ecModel); }; ComponentModel2.prototype.mergeDefaultAndTheme = function(option, ecModel) { var layoutMode = fetchLayoutMode(this); var inputPositionParams = layoutMode ? getLayoutParams(option) : {}; var themeModel = ecModel.getTheme(); merge(option, themeModel.get(this.mainType)); merge(option, this.getDefaultOption()); if (layoutMode) { mergeLayoutParam(option, inputPositionParams, layoutMode); } }; ComponentModel2.prototype.mergeOption = function(option, ecModel) { merge(this.option, option, true); var layoutMode = fetchLayoutMode(this); if (layoutMode) { mergeLayoutParam(this.option, option, layoutMode); } }; ComponentModel2.prototype.optionUpdated = function(newCptOption, isInit) { }; ComponentModel2.prototype.getDefaultOption = function() { var ctor = this.constructor; if (!isExtendedClass(ctor)) { return ctor.defaultOption; } var fields = inner(this); if (!fields.defaultOption) { var optList = []; var clz = ctor; while (clz) { var opt = clz.prototype.defaultOption; opt && optList.push(opt); clz = clz.superClass; } var defaultOption = {}; for (var i = optList.length - 1; i >= 0; i--) { defaultOption = merge(defaultOption, optList[i], true); } fields.defaultOption = defaultOption; } return fields.defaultOption; }; ComponentModel2.prototype.getReferringComponents = function(mainType, opt) { var indexKey = mainType + "Index"; var idKey = mainType + "Id"; return queryReferringComponents(this.ecModel, mainType, { index: this.get(indexKey, true), id: this.get(idKey, true) }, opt); }; ComponentModel2.prototype.getBoxLayoutParams = function() { var boxLayoutModel = this; return { left: boxLayoutModel.get("left"), top: boxLayoutModel.get("top"), right: boxLayoutModel.get("right"), bottom: boxLayoutModel.get("bottom"), width: boxLayoutModel.get("width"), height: boxLayoutModel.get("height") }; }; ComponentModel2.prototype.getZLevelKey = function() { return ""; }; ComponentModel2.prototype.setZLevel = function(zlevel) { this.option.zlevel = zlevel; }; ComponentModel2.protoInitialize = function() { var proto2 = ComponentModel2.prototype; proto2.type = "component"; proto2.id = ""; proto2.name = ""; proto2.mainType = ""; proto2.subType = ""; proto2.componentIndex = 0; }(); return ComponentModel2; }(Model_default) ); mountExtend(ComponentModel, Model_default); enableClassManagement(ComponentModel); enableSubTypeDefaulter(ComponentModel); enableTopologicalTravel(ComponentModel, getDependencies); function getDependencies(componentType) { var deps = []; each(ComponentModel.getClassesByMainType(componentType), function(clz) { deps = deps.concat(clz.dependencies || clz.prototype.dependencies || []); }); deps = map(deps, function(type) { return parseClassType(type).main; }); if (componentType !== "dataset" && indexOf(deps, "dataset") <= 0) { deps.unshift("dataset"); } return deps; } var Component_default = ComponentModel; // node_modules/echarts/lib/model/mixin/palette.js var innerColor = makeInner(); var innerDecal = makeInner(); var PaletteMixin = ( /** @class */ function() { function PaletteMixin2() { } PaletteMixin2.prototype.getColorFromPalette = function(name, scope, requestNum) { var defaultPalette = normalizeToArray(this.get("color", true)); var layeredPalette = this.get("colorLayer", true); return getFromPalette(this, innerColor, defaultPalette, layeredPalette, name, scope, requestNum); }; PaletteMixin2.prototype.clearColorPalette = function() { clearPalette(this, innerColor); }; return PaletteMixin2; }() ); function getDecalFromPalette(ecModel, name, scope, requestNum) { var defaultDecals = normalizeToArray(ecModel.get(["aria", "decal", "decals"])); return getFromPalette(ecModel, innerDecal, defaultDecals, null, name, scope, requestNum); } function getNearestPalette(palettes, requestColorNum) { var paletteNum = palettes.length; for (var i = 0; i < paletteNum; i++) { if (palettes[i].length > requestColorNum) { return palettes[i]; } } return palettes[paletteNum - 1]; } function getFromPalette(that, inner7, defaultPalette, layeredPalette, name, scope, requestNum) { scope = scope || that; var scopeFields = inner7(scope); var paletteIdx = scopeFields.paletteIdx || 0; var paletteNameMap = scopeFields.paletteNameMap = scopeFields.paletteNameMap || {}; if (paletteNameMap.hasOwnProperty(name)) { return paletteNameMap[name]; } var palette = requestNum == null || !layeredPalette ? defaultPalette : getNearestPalette(layeredPalette, requestNum); palette = palette || defaultPalette; if (!palette || !palette.length) { return; } var pickedPaletteItem = palette[paletteIdx]; if (name) { paletteNameMap[name] = pickedPaletteItem; } scopeFields.paletteIdx = (paletteIdx + 1) % palette.length; return pickedPaletteItem; } function clearPalette(that, inner7) { inner7(that).paletteIdx = 0; inner7(that).paletteNameMap = {}; } // node_modules/echarts/lib/util/types.js var VISUAL_DIMENSIONS = createHashMap(["tooltip", "label", "itemName", "itemId", "itemGroupId", "itemChildGroupId", "seriesName"]); var SOURCE_FORMAT_ORIGINAL = "original"; var SOURCE_FORMAT_ARRAY_ROWS = "arrayRows"; var SOURCE_FORMAT_OBJECT_ROWS = "objectRows"; var SOURCE_FORMAT_KEYED_COLUMNS = "keyedColumns"; var SOURCE_FORMAT_TYPED_ARRAY = "typedArray"; var SOURCE_FORMAT_UNKNOWN = "unknown"; var SERIES_LAYOUT_BY_COLUMN = "column"; var SERIES_LAYOUT_BY_ROW = "row"; // node_modules/echarts/lib/data/helper/sourceHelper.js var BE_ORDINAL = { Must: 1, Might: 2, Not: 3 // Other cases }; var innerGlobalModel = makeInner(); function resetSourceDefaulter(ecModel) { innerGlobalModel(ecModel).datasetMap = createHashMap(); } function makeSeriesEncodeForAxisCoordSys(coordDimensions, seriesModel, source) { var encode = {}; var datasetModel = querySeriesUpstreamDatasetModel(seriesModel); if (!datasetModel || !coordDimensions) { return encode; } var encodeItemName = []; var encodeSeriesName = []; var ecModel = seriesModel.ecModel; var datasetMap = innerGlobalModel(ecModel).datasetMap; var key = datasetModel.uid + "_" + source.seriesLayoutBy; var baseCategoryDimIndex; var categoryWayValueDimStart; coordDimensions = coordDimensions.slice(); each(coordDimensions, function(coordDimInfoLoose, coordDimIdx) { var coordDimInfo = isObject(coordDimInfoLoose) ? coordDimInfoLoose : coordDimensions[coordDimIdx] = { name: coordDimInfoLoose }; if (coordDimInfo.type === "ordinal" && baseCategoryDimIndex == null) { baseCategoryDimIndex = coordDimIdx; categoryWayValueDimStart = getDataDimCountOnCoordDim(coordDimInfo); } encode[coordDimInfo.name] = []; }); var datasetRecord = datasetMap.get(key) || datasetMap.set(key, { categoryWayDim: categoryWayValueDimStart, valueWayDim: 0 }); each(coordDimensions, function(coordDimInfo, coordDimIdx) { var coordDimName = coordDimInfo.name; var count = getDataDimCountOnCoordDim(coordDimInfo); if (baseCategoryDimIndex == null) { var start = datasetRecord.valueWayDim; pushDim(encode[coordDimName], start, count); pushDim(encodeSeriesName, start, count); datasetRecord.valueWayDim += count; } else if (baseCategoryDimIndex === coordDimIdx) { pushDim(encode[coordDimName], 0, count); pushDim(encodeItemName, 0, count); } else { var start = datasetRecord.categoryWayDim; pushDim(encode[coordDimName], start, count); pushDim(encodeSeriesName, start, count); datasetRecord.categoryWayDim += count; } }); function pushDim(dimIdxArr, idxFrom, idxCount) { for (var i = 0; i < idxCount; i++) { dimIdxArr.push(idxFrom + i); } } function getDataDimCountOnCoordDim(coordDimInfo) { var dimsDef = coordDimInfo.dimsDef; return dimsDef ? dimsDef.length : 1; } encodeItemName.length && (encode.itemName = encodeItemName); encodeSeriesName.length && (encode.seriesName = encodeSeriesName); return encode; } function makeSeriesEncodeForNameBased(seriesModel, source, dimCount) { var encode = {}; var datasetModel = querySeriesUpstreamDatasetModel(seriesModel); if (!datasetModel) { return encode; } var sourceFormat = source.sourceFormat; var dimensionsDefine = source.dimensionsDefine; var potentialNameDimIndex; if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS || sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS) { each(dimensionsDefine, function(dim, idx) { if ((isObject(dim) ? dim.name : dim) === "name") { potentialNameDimIndex = idx; } }); } var idxResult = function() { var idxRes0 = {}; var idxRes1 = {}; var guessRecords = []; for (var i = 0, len = Math.min(5, dimCount); i < len; i++) { var guessResult = doGuessOrdinal(source.data, sourceFormat, source.seriesLayoutBy, dimensionsDefine, source.startIndex, i); guessRecords.push(guessResult); var isPureNumber = guessResult === BE_ORDINAL.Not; if (isPureNumber && idxRes0.v == null && i !== potentialNameDimIndex) { idxRes0.v = i; } if (idxRes0.n == null || idxRes0.n === idxRes0.v || !isPureNumber && guessRecords[idxRes0.n] === BE_ORDINAL.Not) { idxRes0.n = i; } if (fulfilled(idxRes0) && guessRecords[idxRes0.n] !== BE_ORDINAL.Not) { return idxRes0; } if (!isPureNumber) { if (guessResult === BE_ORDINAL.Might && idxRes1.v == null && i !== potentialNameDimIndex) { idxRes1.v = i; } if (idxRes1.n == null || idxRes1.n === idxRes1.v) { idxRes1.n = i; } } } function fulfilled(idxResult2) { return idxResult2.v != null && idxResult2.n != null; } return fulfilled(idxRes0) ? idxRes0 : fulfilled(idxRes1) ? idxRes1 : null; }(); if (idxResult) { encode.value = [idxResult.v]; var nameDimIndex = potentialNameDimIndex != null ? potentialNameDimIndex : idxResult.n; encode.itemName = [nameDimIndex]; encode.seriesName = [nameDimIndex]; } return encode; } function querySeriesUpstreamDatasetModel(seriesModel) { var thisData = seriesModel.get("data", true); if (!thisData) { return queryReferringComponents(seriesModel.ecModel, "dataset", { index: seriesModel.get("datasetIndex", true), id: seriesModel.get("datasetId", true) }, SINGLE_REFERRING).models[0]; } } function queryDatasetUpstreamDatasetModels(datasetModel) { if (!datasetModel.get("transform", true) && !datasetModel.get("fromTransformResult", true)) { return []; } return queryReferringComponents(datasetModel.ecModel, "dataset", { index: datasetModel.get("fromDatasetIndex", true), id: datasetModel.get("fromDatasetId", true) }, SINGLE_REFERRING).models; } function guessOrdinal(source, dimIndex) { return doGuessOrdinal(source.data, source.sourceFormat, source.seriesLayoutBy, source.dimensionsDefine, source.startIndex, dimIndex); } function doGuessOrdinal(data, sourceFormat, seriesLayoutBy, dimensionsDefine, startIndex, dimIndex) { var result; var maxLoop = 5; if (isTypedArray(data)) { return BE_ORDINAL.Not; } var dimName; var dimType; if (dimensionsDefine) { var dimDefItem = dimensionsDefine[dimIndex]; if (isObject(dimDefItem)) { dimName = dimDefItem.name; dimType = dimDefItem.type; } else if (isString(dimDefItem)) { dimName = dimDefItem; } } if (dimType != null) { return dimType === "ordinal" ? BE_ORDINAL.Must : BE_ORDINAL.Not; } if (sourceFormat === SOURCE_FORMAT_ARRAY_ROWS) { var dataArrayRows = data; if (seriesLayoutBy === SERIES_LAYOUT_BY_ROW) { var sample = dataArrayRows[dimIndex]; for (var i = 0; i < (sample || []).length && i < maxLoop; i++) { if ((result = detectValue(sample[startIndex + i])) != null) { return result; } } } else { for (var i = 0; i < dataArrayRows.length && i < maxLoop; i++) { var row = dataArrayRows[startIndex + i]; if (row && (result = detectValue(row[dimIndex])) != null) { return result; } } } } else if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS) { var dataObjectRows = data; if (!dimName) { return BE_ORDINAL.Not; } for (var i = 0; i < dataObjectRows.length && i < maxLoop; i++) { var item = dataObjectRows[i]; if (item && (result = detectValue(item[dimName])) != null) { return result; } } } else if (sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS) { var dataKeyedColumns = data; if (!dimName) { return BE_ORDINAL.Not; } var sample = dataKeyedColumns[dimName]; if (!sample || isTypedArray(sample)) { return BE_ORDINAL.Not; } for (var i = 0; i < sample.length && i < maxLoop; i++) { if ((result = detectValue(sample[i])) != null) { return result; } } } else if (sourceFormat === SOURCE_FORMAT_ORIGINAL) { var dataOriginal = data; for (var i = 0; i < dataOriginal.length && i < maxLoop; i++) { var item = dataOriginal[i]; var val = getDataItemValue(item); if (!isArray(val)) { return BE_ORDINAL.Not; } if ((result = detectValue(val[dimIndex])) != null) { return result; } } } function detectValue(val2) { var beStr = isString(val2); if (val2 != null && Number.isFinite(Number(val2)) && val2 !== "") { return beStr ? BE_ORDINAL.Might : BE_ORDINAL.Not; } else if (beStr && val2 !== "-") { return BE_ORDINAL.Must; } } return BE_ORDINAL.Not; } // node_modules/echarts/lib/data/Source.js var SourceImpl = ( /** @class */ /* @__PURE__ */ function() { function SourceImpl2(fields) { this.data = fields.data || (fields.sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS ? {} : []); this.sourceFormat = fields.sourceFormat || SOURCE_FORMAT_UNKNOWN; this.seriesLayoutBy = fields.seriesLayoutBy || SERIES_LAYOUT_BY_COLUMN; this.startIndex = fields.startIndex || 0; this.dimensionsDetectedCount = fields.dimensionsDetectedCount; this.metaRawOption = fields.metaRawOption; var dimensionsDefine = this.dimensionsDefine = fields.dimensionsDefine; if (dimensionsDefine) { for (var i = 0; i < dimensionsDefine.length; i++) { var dim = dimensionsDefine[i]; if (dim.type == null) { if (guessOrdinal(this, i) === BE_ORDINAL.Must) { dim.type = "ordinal"; } } } } } return SourceImpl2; }() ); function isSourceInstance(val) { return val instanceof SourceImpl; } function createSource(sourceData, thisMetaRawOption, sourceFormat) { sourceFormat = sourceFormat || detectSourceFormat(sourceData); var seriesLayoutBy = thisMetaRawOption.seriesLayoutBy; var determined = determineSourceDimensions(sourceData, sourceFormat, seriesLayoutBy, thisMetaRawOption.sourceHeader, thisMetaRawOption.dimensions); var source = new SourceImpl({ data: sourceData, sourceFormat, seriesLayoutBy, dimensionsDefine: determined.dimensionsDefine, startIndex: determined.startIndex, dimensionsDetectedCount: determined.dimensionsDetectedCount, metaRawOption: clone(thisMetaRawOption) }); return source; } function createSourceFromSeriesDataOption(data) { return new SourceImpl({ data, sourceFormat: isTypedArray(data) ? SOURCE_FORMAT_TYPED_ARRAY : SOURCE_FORMAT_ORIGINAL }); } function cloneSourceShallow(source) { return new SourceImpl({ data: source.data, sourceFormat: source.sourceFormat, seriesLayoutBy: source.seriesLayoutBy, dimensionsDefine: clone(source.dimensionsDefine), startIndex: source.startIndex, dimensionsDetectedCount: source.dimensionsDetectedCount }); } function detectSourceFormat(data) { var sourceFormat = SOURCE_FORMAT_UNKNOWN; if (isTypedArray(data)) { sourceFormat = SOURCE_FORMAT_TYPED_ARRAY; } else if (isArray(data)) { if (data.length === 0) { sourceFormat = SOURCE_FORMAT_ARRAY_ROWS; } for (var i = 0, len = data.length; i < len; i++) { var item = data[i]; if (item == null) { continue; } else if (isArray(item) || isTypedArray(item)) { sourceFormat = SOURCE_FORMAT_ARRAY_ROWS; break; } else if (isObject(item)) { sourceFormat = SOURCE_FORMAT_OBJECT_ROWS; break; } } } else if (isObject(data)) { for (var key in data) { if (hasOwn(data, key) && isArrayLike(data[key])) { sourceFormat = SOURCE_FORMAT_KEYED_COLUMNS; break; } } } return sourceFormat; } function determineSourceDimensions(data, sourceFormat, seriesLayoutBy, sourceHeader, dimensionsDefine) { var dimensionsDetectedCount; var startIndex; if (!data) { return { dimensionsDefine: normalizeDimensionsOption(dimensionsDefine), startIndex, dimensionsDetectedCount }; } if (sourceFormat === SOURCE_FORMAT_ARRAY_ROWS) { var dataArrayRows = data; if (sourceHeader === "auto" || sourceHeader == null) { arrayRowsTravelFirst(function(val) { if (val != null && val !== "-") { if (isString(val)) { startIndex == null && (startIndex = 1); } else { startIndex = 0; } } }, seriesLayoutBy, dataArrayRows, 10); } else { startIndex = isNumber(sourceHeader) ? sourceHeader : sourceHeader ? 1 : 0; } if (!dimensionsDefine && startIndex === 1) { dimensionsDefine = []; arrayRowsTravelFirst(function(val, index) { dimensionsDefine[index] = val != null ? val + "" : ""; }, seriesLayoutBy, dataArrayRows, Infinity); } dimensionsDetectedCount = dimensionsDefine ? dimensionsDefine.length : seriesLayoutBy === SERIES_LAYOUT_BY_ROW ? dataArrayRows.length : dataArrayRows[0] ? dataArrayRows[0].length : null; } else if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS) { if (!dimensionsDefine) { dimensionsDefine = objectRowsCollectDimensions(data); } } else if (sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS) { if (!dimensionsDefine) { dimensionsDefine = []; each(data, function(colArr, key) { dimensionsDefine.push(key); }); } } else if (sourceFormat === SOURCE_FORMAT_ORIGINAL) { var value0 = getDataItemValue(data[0]); dimensionsDetectedCount = isArray(value0) && value0.length || 1; } else if (sourceFormat === SOURCE_FORMAT_TYPED_ARRAY) { if (true) { assert(!!dimensionsDefine, "dimensions must be given if data is TypedArray."); } } return { startIndex, dimensionsDefine: normalizeDimensionsOption(dimensionsDefine), dimensionsDetectedCount }; } function objectRowsCollectDimensions(data) { var firstIndex = 0; var obj; while (firstIndex < data.length && !(obj = data[firstIndex++])) { } if (obj) { return keys(obj); } } function normalizeDimensionsOption(dimensionsDefine) { if (!dimensionsDefine) { return; } var nameMap = createHashMap(); return map(dimensionsDefine, function(rawItem, index) { rawItem = isObject(rawItem) ? rawItem : { name: rawItem }; var item = { name: rawItem.name, displayName: rawItem.displayName, type: rawItem.type }; if (item.name == null) { return item; } item.name += ""; if (item.displayName == null) { item.displayName = item.name; } var exist = nameMap.get(item.name); if (!exist) { nameMap.set(item.name, { count: 1 }); } else { item.name += "-" + exist.count++; } return item; }); } function arrayRowsTravelFirst(cb, seriesLayoutBy, data, maxLoop) { if (seriesLayoutBy === SERIES_LAYOUT_BY_ROW) { for (var i = 0; i < data.length && i < maxLoop; i++) { cb(data[i] ? data[i][0] : null, i); } } else { var value0 = data[0] || []; for (var i = 0; i < value0.length && i < maxLoop; i++) { cb(value0[i], i); } } } function shouldRetrieveDataByName(source) { var sourceFormat = source.sourceFormat; return sourceFormat === SOURCE_FORMAT_OBJECT_ROWS || sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS; } // node_modules/echarts/lib/data/helper/dataProvider.js var _a; var _b; var _c; var providerMethods; var mountMethods; var DefaultDataProvider = ( /** @class */ function() { function DefaultDataProvider2(sourceParam, dimSize) { var source = !isSourceInstance(sourceParam) ? createSourceFromSeriesDataOption(sourceParam) : sourceParam; this._source = source; var data = this._data = source.data; if (source.sourceFormat === SOURCE_FORMAT_TYPED_ARRAY) { if (true) { if (dimSize == null) { throw new Error("Typed array data must specify dimension size"); } } this._offset = 0; this._dimSize = dimSize; this._data = data; } mountMethods(this, data, source); } DefaultDataProvider2.prototype.getSource = function() { return this._source; }; DefaultDataProvider2.prototype.count = function() { return 0; }; DefaultDataProvider2.prototype.getItem = function(idx, out2) { return; }; DefaultDataProvider2.prototype.appendData = function(newData) { }; DefaultDataProvider2.prototype.clean = function() { }; DefaultDataProvider2.protoInitialize = function() { var proto2 = DefaultDataProvider2.prototype; proto2.pure = false; proto2.persistent = true; }(); DefaultDataProvider2.internalField = function() { var _a2; mountMethods = function(provider, data, source) { var sourceFormat = source.sourceFormat; var seriesLayoutBy = source.seriesLayoutBy; var startIndex = source.startIndex; var dimsDef = source.dimensionsDefine; var methods = providerMethods[getMethodMapKey(sourceFormat, seriesLayoutBy)]; if (true) { assert(methods, "Invalide sourceFormat: " + sourceFormat); } extend(provider, methods); if (sourceFormat === SOURCE_FORMAT_TYPED_ARRAY) { provider.getItem = getItemForTypedArray; provider.count = countForTypedArray; provider.fillStorage = fillStorageForTypedArray; } else { var rawItemGetter = getRawSourceItemGetter(sourceFormat, seriesLayoutBy); provider.getItem = bind(rawItemGetter, null, data, startIndex, dimsDef); var rawCounter = getRawSourceDataCounter(sourceFormat, seriesLayoutBy); provider.count = bind(rawCounter, null, data, startIndex, dimsDef); } }; var getItemForTypedArray = function(idx, out2) { idx = idx - this._offset; out2 = out2 || []; var data = this._data; var dimSize = this._dimSize; var offset = dimSize * idx; for (var i = 0; i < dimSize; i++) { out2[i] = data[offset + i]; } return out2; }; var fillStorageForTypedArray = function(start, end, storage, extent3) { var data = this._data; var dimSize = this._dimSize; for (var dim = 0; dim < dimSize; dim++) { var dimExtent = extent3[dim]; var min2 = dimExtent[0] == null ? Infinity : dimExtent[0]; var max2 = dimExtent[1] == null ? -Infinity : dimExtent[1]; var count = end - start; var arr = storage[dim]; for (var i = 0; i < count; i++) { var val = data[i * dimSize + dim]; arr[start + i] = val; val < min2 && (min2 = val); val > max2 && (max2 = val); } dimExtent[0] = min2; dimExtent[1] = max2; } }; var countForTypedArray = function() { return this._data ? this._data.length / this._dimSize : 0; }; providerMethods = (_a2 = {}, _a2[SOURCE_FORMAT_ARRAY_ROWS + "_" + SERIES_LAYOUT_BY_COLUMN] = { pure: true, appendData: appendDataSimply }, _a2[SOURCE_FORMAT_ARRAY_ROWS + "_" + SERIES_LAYOUT_BY_ROW] = { pure: true, appendData: function() { throw new Error('Do not support appendData when set seriesLayoutBy: "row".'); } }, _a2[SOURCE_FORMAT_OBJECT_ROWS] = { pure: true, appendData: appendDataSimply }, _a2[SOURCE_FORMAT_KEYED_COLUMNS] = { pure: true, appendData: function(newData) { var data = this._data; each(newData, function(newCol, key) { var oldCol = data[key] || (data[key] = []); for (var i = 0; i < (newCol || []).length; i++) { oldCol.push(newCol[i]); } }); } }, _a2[SOURCE_FORMAT_ORIGINAL] = { appendData: appendDataSimply }, _a2[SOURCE_FORMAT_TYPED_ARRAY] = { persistent: false, pure: true, appendData: function(newData) { if (true) { assert(isTypedArray(newData), "Added data must be TypedArray if data in initialization is TypedArray"); } this._data = newData; }, // Clean self if data is already used. clean: function() { this._offset += this.count(); this._data = null; } }, _a2); function appendDataSimply(newData) { for (var i = 0; i < newData.length; i++) { this._data.push(newData[i]); } } }(); return DefaultDataProvider2; }() ); var getItemSimply = function(rawData, startIndex, dimsDef, idx) { return rawData[idx]; }; var rawSourceItemGetterMap = (_a = {}, _a[SOURCE_FORMAT_ARRAY_ROWS + "_" + SERIES_LAYOUT_BY_COLUMN] = function(rawData, startIndex, dimsDef, idx) { return rawData[idx + startIndex]; }, _a[SOURCE_FORMAT_ARRAY_ROWS + "_" + SERIES_LAYOUT_BY_ROW] = function(rawData, startIndex, dimsDef, idx, out2) { idx += startIndex; var item = out2 || []; var data = rawData; for (var i = 0; i < data.length; i++) { var row = data[i]; item[i] = row ? row[idx] : null; } return item; }, _a[SOURCE_FORMAT_OBJECT_ROWS] = getItemSimply, _a[SOURCE_FORMAT_KEYED_COLUMNS] = function(rawData, startIndex, dimsDef, idx, out2) { var item = out2 || []; for (var i = 0; i < dimsDef.length; i++) { var dimName = dimsDef[i].name; if (true) { if (dimName == null) { throw new Error(); } } var col = rawData[dimName]; item[i] = col ? col[idx] : null; } return item; }, _a[SOURCE_FORMAT_ORIGINAL] = getItemSimply, _a); function getRawSourceItemGetter(sourceFormat, seriesLayoutBy) { var method = rawSourceItemGetterMap[getMethodMapKey(sourceFormat, seriesLayoutBy)]; if (true) { assert(method, 'Do not support get item on "' + sourceFormat + '", "' + seriesLayoutBy + '".'); } return method; } var countSimply = function(rawData, startIndex, dimsDef) { return rawData.length; }; var rawSourceDataCounterMap = (_b = {}, _b[SOURCE_FORMAT_ARRAY_ROWS + "_" + SERIES_LAYOUT_BY_COLUMN] = function(rawData, startIndex, dimsDef) { return Math.max(0, rawData.length - startIndex); }, _b[SOURCE_FORMAT_ARRAY_ROWS + "_" + SERIES_LAYOUT_BY_ROW] = function(rawData, startIndex, dimsDef) { var row = rawData[0]; return row ? Math.max(0, row.length - startIndex) : 0; }, _b[SOURCE_FORMAT_OBJECT_ROWS] = countSimply, _b[SOURCE_FORMAT_KEYED_COLUMNS] = function(rawData, startIndex, dimsDef) { var dimName = dimsDef[0].name; if (true) { if (dimName == null) { throw new Error(); } } var col = rawData[dimName]; return col ? col.length : 0; }, _b[SOURCE_FORMAT_ORIGINAL] = countSimply, _b); function getRawSourceDataCounter(sourceFormat, seriesLayoutBy) { var method = rawSourceDataCounterMap[getMethodMapKey(sourceFormat, seriesLayoutBy)]; if (true) { assert(method, 'Do not support count on "' + sourceFormat + '", "' + seriesLayoutBy + '".'); } return method; } var getRawValueSimply = function(dataItem, dimIndex, property) { return dataItem[dimIndex]; }; var rawSourceValueGetterMap = (_c = {}, _c[SOURCE_FORMAT_ARRAY_ROWS] = getRawValueSimply, _c[SOURCE_FORMAT_OBJECT_ROWS] = function(dataItem, dimIndex, property) { return dataItem[property]; }, _c[SOURCE_FORMAT_KEYED_COLUMNS] = getRawValueSimply, _c[SOURCE_FORMAT_ORIGINAL] = function(dataItem, dimIndex, property) { var value = getDataItemValue(dataItem); return !(value instanceof Array) ? value : value[dimIndex]; }, _c[SOURCE_FORMAT_TYPED_ARRAY] = getRawValueSimply, _c); function getRawSourceValueGetter(sourceFormat) { var method = rawSourceValueGetterMap[sourceFormat]; if (true) { assert(method, 'Do not support get value on "' + sourceFormat + '".'); } return method; } function getMethodMapKey(sourceFormat, seriesLayoutBy) { return sourceFormat === SOURCE_FORMAT_ARRAY_ROWS ? sourceFormat + "_" + seriesLayoutBy : sourceFormat; } function retrieveRawValue(data, dataIndex, dim) { if (!data) { return; } var dataItem = data.getRawDataItem(dataIndex); if (dataItem == null) { return; } var store = data.getStore(); var sourceFormat = store.getSource().sourceFormat; if (dim != null) { var dimIndex = data.getDimensionIndex(dim); var property = store.getDimensionProperty(dimIndex); return getRawSourceValueGetter(sourceFormat)(dataItem, dimIndex, property); } else { var result = dataItem; if (sourceFormat === SOURCE_FORMAT_ORIGINAL) { result = getDataItemValue(dataItem); } return result; } } // node_modules/echarts/lib/model/mixin/dataFormat.js var DIMENSION_LABEL_REG = /\{@(.+?)\}/g; var DataFormatMixin = ( /** @class */ function() { function DataFormatMixin2() { } DataFormatMixin2.prototype.getDataParams = function(dataIndex, dataType) { var data = this.getData(dataType); var rawValue = this.getRawValue(dataIndex, dataType); var rawDataIndex = data.getRawIndex(dataIndex); var name = data.getName(dataIndex); var itemOpt = data.getRawDataItem(dataIndex); var style = data.getItemVisual(dataIndex, "style"); var color = style && style[data.getItemVisual(dataIndex, "drawType") || "fill"]; var borderColor = style && style.stroke; var mainType = this.mainType; var isSeries2 = mainType === "series"; var userOutput = data.userOutput && data.userOutput.get(); return { componentType: mainType, componentSubType: this.subType, componentIndex: this.componentIndex, seriesType: isSeries2 ? this.subType : null, seriesIndex: this.seriesIndex, seriesId: isSeries2 ? this.id : null, seriesName: isSeries2 ? this.name : null, name, dataIndex: rawDataIndex, data: itemOpt, dataType, value: rawValue, color, borderColor, dimensionNames: userOutput ? userOutput.fullDimensions : null, encode: userOutput ? userOutput.encode : null, // Param name list for mapping `a`, `b`, `c`, `d`, `e` $vars: ["seriesName", "name", "value"] }; }; DataFormatMixin2.prototype.getFormattedLabel = function(dataIndex, status, dataType, labelDimIndex, formatter, extendParams) { status = status || "normal"; var data = this.getData(dataType); var params = this.getDataParams(dataIndex, dataType); if (extendParams) { params.value = extendParams.interpolatedValue; } if (labelDimIndex != null && isArray(params.value)) { params.value = params.value[labelDimIndex]; } if (!formatter) { var itemModel = data.getItemModel(dataIndex); formatter = itemModel.get(status === "normal" ? ["label", "formatter"] : [status, "label", "formatter"]); } if (isFunction(formatter)) { params.status = status; params.dimensionIndex = labelDimIndex; return formatter(params); } else if (isString(formatter)) { var str = formatTpl(formatter, params); return str.replace(DIMENSION_LABEL_REG, function(origin, dimStr) { var len = dimStr.length; var dimLoose = dimStr; if (dimLoose.charAt(0) === "[" && dimLoose.charAt(len - 1) === "]") { dimLoose = +dimLoose.slice(1, len - 1); if (true) { if (isNaN(dimLoose)) { error("Invalide label formatter: @" + dimStr + ", only support @[0], @[1], @[2], ..."); } } } var val = retrieveRawValue(data, dataIndex, dimLoose); if (extendParams && isArray(extendParams.interpolatedValue)) { var dimIndex = data.getDimensionIndex(dimLoose); if (dimIndex >= 0) { val = extendParams.interpolatedValue[dimIndex]; } } return val != null ? val + "" : ""; }); } }; DataFormatMixin2.prototype.getRawValue = function(idx, dataType) { return retrieveRawValue(this.getData(dataType), idx); }; DataFormatMixin2.prototype.formatTooltip = function(dataIndex, multipleSeries, dataType) { return; }; return DataFormatMixin2; }() ); function normalizeTooltipFormatResult(result) { var markupText; var markupFragment; if (isObject(result)) { if (result.type) { markupFragment = result; } else { if (true) { console.warn("The return type of `formatTooltip` is not supported: " + makePrintable(result)); } } } else { markupText = result; } return { text: markupText, // markers: markers || markersExisting, frag: markupFragment }; } // node_modules/echarts/lib/core/task.js function createTask(define) { return new Task(define); } var Task = ( /** @class */ function() { function Task2(define) { define = define || {}; this._reset = define.reset; this._plan = define.plan; this._count = define.count; this._onDirty = define.onDirty; this._dirty = true; } Task2.prototype.perform = function(performArgs) { var upTask = this._upstream; var skip = performArgs && performArgs.skip; if (this._dirty && upTask) { var context = this.context; context.data = context.outputData = upTask.context.outputData; } if (this.__pipeline) { this.__pipeline.currentTask = this; } var planResult; if (this._plan && !skip) { planResult = this._plan(this.context); } var lastModBy = normalizeModBy(this._modBy); var lastModDataCount = this._modDataCount || 0; var modBy = normalizeModBy(performArgs && performArgs.modBy); var modDataCount = performArgs && performArgs.modDataCount || 0; if (lastModBy !== modBy || lastModDataCount !== modDataCount) { planResult = "reset"; } function normalizeModBy(val) { !(val >= 1) && (val = 1); return val; } var forceFirstProgress; if (this._dirty || planResult === "reset") { this._dirty = false; forceFirstProgress = this._doReset(skip); } this._modBy = modBy; this._modDataCount = modDataCount; var step = performArgs && performArgs.step; if (upTask) { if (true) { assert(upTask._outputDueEnd != null); } this._dueEnd = upTask._outputDueEnd; } else { if (true) { assert(!this._progress || this._count); } this._dueEnd = this._count ? this._count(this.context) : Infinity; } if (this._progress) { var start = this._dueIndex; var end = Math.min(step != null ? this._dueIndex + step : Infinity, this._dueEnd); if (!skip && (forceFirstProgress || start < end)) { var progress = this._progress; if (isArray(progress)) { for (var i = 0; i < progress.length; i++) { this._doProgress(progress[i], start, end, modBy, modDataCount); } } else { this._doProgress(progress, start, end, modBy, modDataCount); } } this._dueIndex = end; var outputDueEnd = this._settedOutputEnd != null ? this._settedOutputEnd : end; if (true) { assert(outputDueEnd >= this._outputDueEnd); } this._outputDueEnd = outputDueEnd; } else { this._dueIndex = this._outputDueEnd = this._settedOutputEnd != null ? this._settedOutputEnd : this._dueEnd; } return this.unfinished(); }; Task2.prototype.dirty = function() { this._dirty = true; this._onDirty && this._onDirty(this.context); }; Task2.prototype._doProgress = function(progress, start, end, modBy, modDataCount) { iterator.reset(start, end, modBy, modDataCount); this._callingProgress = progress; this._callingProgress({ start, end, count: end - start, next: iterator.next }, this.context); }; Task2.prototype._doReset = function(skip) { this._dueIndex = this._outputDueEnd = this._dueEnd = 0; this._settedOutputEnd = null; var progress; var forceFirstProgress; if (!skip && this._reset) { progress = this._reset(this.context); if (progress && progress.progress) { forceFirstProgress = progress.forceFirstProgress; progress = progress.progress; } if (isArray(progress) && !progress.length) { progress = null; } } this._progress = progress; this._modBy = this._modDataCount = null; var downstream = this._downstream; downstream && downstream.dirty(); return forceFirstProgress; }; Task2.prototype.unfinished = function() { return this._progress && this._dueIndex < this._dueEnd; }; Task2.prototype.pipe = function(downTask) { if (true) { assert(downTask && !downTask._disposed && downTask !== this); } if (this._downstream !== downTask || this._dirty) { this._downstream = downTask; downTask._upstream = this; downTask.dirty(); } }; Task2.prototype.dispose = function() { if (this._disposed) { return; } this._upstream && (this._upstream._downstream = null); this._downstream && (this._downstream._upstream = null); this._dirty = false; this._disposed = true; }; Task2.prototype.getUpstream = function() { return this._upstream; }; Task2.prototype.getDownstream = function() { return this._downstream; }; Task2.prototype.setOutputEnd = function(end) { this._outputDueEnd = this._settedOutputEnd = end; }; return Task2; }() ); var iterator = /* @__PURE__ */ function() { var end; var current; var modBy; var modDataCount; var winCount; var it = { reset: function(s, e2, sStep, sCount) { current = s; end = e2; modBy = sStep; modDataCount = sCount; winCount = Math.ceil(modDataCount / modBy); it.next = modBy > 1 && modDataCount > 0 ? modNext : sequentialNext; } }; return it; function sequentialNext() { return current < end ? current++ : null; } function modNext() { var dataIndex = current % winCount * modBy + Math.ceil(current / winCount); var result = current >= end ? null : dataIndex < modDataCount ? dataIndex : current; current++; return result; } }(); // node_modules/echarts/lib/data/helper/dataValueHelper.js function parseDataValue(value, opt) { var dimType = opt && opt.type; if (dimType === "ordinal") { return value; } if (dimType === "time" && !isNumber(value) && value != null && value !== "-") { value = +parseDate(value); } return value == null || value === "" ? NaN : Number(value); } var valueParserMap = createHashMap({ "number": function(val) { return parseFloat(val); }, "time": function(val) { return +parseDate(val); }, "trim": function(val) { return isString(val) ? trim(val) : val; } }); function getRawValueParser(type) { return valueParserMap.get(type); } var ORDER_COMPARISON_OP_MAP = { lt: function(lval, rval) { return lval < rval; }, lte: function(lval, rval) { return lval <= rval; }, gt: function(lval, rval) { return lval > rval; }, gte: function(lval, rval) { return lval >= rval; } }; var FilterOrderComparator = ( /** @class */ function() { function FilterOrderComparator2(op, rval) { if (!isNumber(rval)) { var errMsg = ""; if (true) { errMsg = 'rvalue of "<", ">", "<=", ">=" can only be number in filter.'; } throwError(errMsg); } this._opFn = ORDER_COMPARISON_OP_MAP[op]; this._rvalFloat = numericToNumber(rval); } FilterOrderComparator2.prototype.evaluate = function(lval) { return isNumber(lval) ? this._opFn(lval, this._rvalFloat) : this._opFn(numericToNumber(lval), this._rvalFloat); }; return FilterOrderComparator2; }() ); var SortOrderComparator = ( /** @class */ function() { function SortOrderComparator2(order, incomparable) { var isDesc = order === "desc"; this._resultLT = isDesc ? 1 : -1; if (incomparable == null) { incomparable = isDesc ? "min" : "max"; } this._incomparable = incomparable === "min" ? -Infinity : Infinity; } SortOrderComparator2.prototype.evaluate = function(lval, rval) { var lvalFloat = isNumber(lval) ? lval : numericToNumber(lval); var rvalFloat = isNumber(rval) ? rval : numericToNumber(rval); var lvalNotNumeric = isNaN(lvalFloat); var rvalNotNumeric = isNaN(rvalFloat); if (lvalNotNumeric) { lvalFloat = this._incomparable; } if (rvalNotNumeric) { rvalFloat = this._incomparable; } if (lvalNotNumeric && rvalNotNumeric) { var lvalIsStr = isString(lval); var rvalIsStr = isString(rval); if (lvalIsStr) { lvalFloat = rvalIsStr ? lval : 0; } if (rvalIsStr) { rvalFloat = lvalIsStr ? rval : 0; } } return lvalFloat < rvalFloat ? this._resultLT : lvalFloat > rvalFloat ? -this._resultLT : 0; }; return SortOrderComparator2; }() ); var FilterEqualityComparator = ( /** @class */ function() { function FilterEqualityComparator2(isEq, rval) { this._rval = rval; this._isEQ = isEq; this._rvalTypeof = typeof rval; this._rvalFloat = numericToNumber(rval); } FilterEqualityComparator2.prototype.evaluate = function(lval) { var eqResult = lval === this._rval; if (!eqResult) { var lvalTypeof = typeof lval; if (lvalTypeof !== this._rvalTypeof && (lvalTypeof === "number" || this._rvalTypeof === "number")) { eqResult = numericToNumber(lval) === this._rvalFloat; } } return this._isEQ ? eqResult : !eqResult; }; return FilterEqualityComparator2; }() ); function createFilterComparator(op, rval) { return op === "eq" || op === "ne" ? new FilterEqualityComparator(op === "eq", rval) : hasOwn(ORDER_COMPARISON_OP_MAP, op) ? new FilterOrderComparator(op, rval) : null; } // node_modules/echarts/lib/data/helper/transform.js var ExternalSource = ( /** @class */ function() { function ExternalSource2() { } ExternalSource2.prototype.getRawData = function() { throw new Error("not supported"); }; ExternalSource2.prototype.getRawDataItem = function(dataIndex) { throw new Error("not supported"); }; ExternalSource2.prototype.cloneRawData = function() { return; }; ExternalSource2.prototype.getDimensionInfo = function(dim) { return; }; ExternalSource2.prototype.cloneAllDimensionInfo = function() { return; }; ExternalSource2.prototype.count = function() { return; }; ExternalSource2.prototype.retrieveValue = function(dataIndex, dimIndex) { return; }; ExternalSource2.prototype.retrieveValueFromItem = function(dataItem, dimIndex) { return; }; ExternalSource2.prototype.convertValue = function(rawVal, dimInfo) { return parseDataValue(rawVal, dimInfo); }; return ExternalSource2; }() ); function createExternalSource(internalSource, externalTransform) { var extSource = new ExternalSource(); var data = internalSource.data; var sourceFormat = extSource.sourceFormat = internalSource.sourceFormat; var sourceHeaderCount = internalSource.startIndex; var errMsg = ""; if (internalSource.seriesLayoutBy !== SERIES_LAYOUT_BY_COLUMN) { if (true) { errMsg = '`seriesLayoutBy` of upstream dataset can only be "column" in data transform.'; } throwError(errMsg); } var dimensions = []; var dimsByName = {}; var dimsDef = internalSource.dimensionsDefine; if (dimsDef) { each(dimsDef, function(dimDef, idx) { var name = dimDef.name; var dimDefExt = { index: idx, name, displayName: dimDef.displayName }; dimensions.push(dimDefExt); if (name != null) { var errMsg_1 = ""; if (hasOwn(dimsByName, name)) { if (true) { errMsg_1 = 'dimension name "' + name + '" duplicated.'; } throwError(errMsg_1); } dimsByName[name] = dimDefExt; } }); } else { for (var i = 0; i < internalSource.dimensionsDetectedCount || 0; i++) { dimensions.push({ index: i }); } } var rawItemGetter = getRawSourceItemGetter(sourceFormat, SERIES_LAYOUT_BY_COLUMN); if (externalTransform.__isBuiltIn) { extSource.getRawDataItem = function(dataIndex) { return rawItemGetter(data, sourceHeaderCount, dimensions, dataIndex); }; extSource.getRawData = bind(getRawData, null, internalSource); } extSource.cloneRawData = bind(cloneRawData, null, internalSource); var rawCounter = getRawSourceDataCounter(sourceFormat, SERIES_LAYOUT_BY_COLUMN); extSource.count = bind(rawCounter, null, data, sourceHeaderCount, dimensions); var rawValueGetter = getRawSourceValueGetter(sourceFormat); extSource.retrieveValue = function(dataIndex, dimIndex) { var rawItem = rawItemGetter(data, sourceHeaderCount, dimensions, dataIndex); return retrieveValueFromItem(rawItem, dimIndex); }; var retrieveValueFromItem = extSource.retrieveValueFromItem = function(dataItem, dimIndex) { if (dataItem == null) { return; } var dimDef = dimensions[dimIndex]; if (dimDef) { return rawValueGetter(dataItem, dimIndex, dimDef.name); } }; extSource.getDimensionInfo = bind(getDimensionInfo, null, dimensions, dimsByName); extSource.cloneAllDimensionInfo = bind(cloneAllDimensionInfo, null, dimensions); return extSource; } function getRawData(upstream) { var sourceFormat = upstream.sourceFormat; if (!isSupportedSourceFormat(sourceFormat)) { var errMsg = ""; if (true) { errMsg = "`getRawData` is not supported in source format " + sourceFormat; } throwError(errMsg); } return upstream.data; } function cloneRawData(upstream) { var sourceFormat = upstream.sourceFormat; var data = upstream.data; if (!isSupportedSourceFormat(sourceFormat)) { var errMsg = ""; if (true) { errMsg = "`cloneRawData` is not supported in source format " + sourceFormat; } throwError(errMsg); } if (sourceFormat === SOURCE_FORMAT_ARRAY_ROWS) { var result = []; for (var i = 0, len = data.length; i < len; i++) { result.push(data[i].slice()); } return result; } else if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS) { var result = []; for (var i = 0, len = data.length; i < len; i++) { result.push(extend({}, data[i])); } return result; } } function getDimensionInfo(dimensions, dimsByName, dim) { if (dim == null) { return; } if (isNumber(dim) || !isNaN(dim) && !hasOwn(dimsByName, dim)) { return dimensions[dim]; } else if (hasOwn(dimsByName, dim)) { return dimsByName[dim]; } } function cloneAllDimensionInfo(dimensions) { return clone(dimensions); } var externalTransformMap = createHashMap(); function registerExternalTransform(externalTransform) { externalTransform = clone(externalTransform); var type = externalTransform.type; var errMsg = ""; if (!type) { if (true) { errMsg = "Must have a `type` when `registerTransform`."; } throwError(errMsg); } var typeParsed = type.split(":"); if (typeParsed.length !== 2) { if (true) { errMsg = 'Name must include namespace like "ns:regression".'; } throwError(errMsg); } var isBuiltIn = false; if (typeParsed[0] === "echarts") { type = typeParsed[1]; isBuiltIn = true; } externalTransform.__isBuiltIn = isBuiltIn; externalTransformMap.set(type, externalTransform); } function applyDataTransform(rawTransOption, sourceList, infoForPrint) { var pipedTransOption = normalizeToArray(rawTransOption); var pipeLen = pipedTransOption.length; var errMsg = ""; if (!pipeLen) { if (true) { errMsg = "If `transform` declared, it should at least contain one transform."; } throwError(errMsg); } for (var i = 0, len = pipeLen; i < len; i++) { var transOption = pipedTransOption[i]; sourceList = applySingleDataTransform(transOption, sourceList, infoForPrint, pipeLen === 1 ? null : i); if (i !== len - 1) { sourceList.length = Math.max(sourceList.length, 1); } } return sourceList; } function applySingleDataTransform(transOption, upSourceList, infoForPrint, pipeIndex) { var errMsg = ""; if (!upSourceList.length) { if (true) { errMsg = "Must have at least one upstream dataset."; } throwError(errMsg); } if (!isObject(transOption)) { if (true) { errMsg = "transform declaration must be an object rather than " + typeof transOption + "."; } throwError(errMsg); } var transType = transOption.type; var externalTransform = externalTransformMap.get(transType); if (!externalTransform) { if (true) { errMsg = 'Can not find transform on type "' + transType + '".'; } throwError(errMsg); } var extUpSourceList = map(upSourceList, function(upSource) { return createExternalSource(upSource, externalTransform); }); var resultList = normalizeToArray(externalTransform.transform({ upstream: extUpSourceList[0], upstreamList: extUpSourceList, config: clone(transOption.config) })); if (true) { if (transOption.print) { var printStrArr = map(resultList, function(extSource) { var pipeIndexStr = pipeIndex != null ? " === pipe index: " + pipeIndex : ""; return ["=== dataset index: " + infoForPrint.datasetIndex + pipeIndexStr + " ===", "- transform result data:", makePrintable(extSource.data), "- transform result dimensions:", makePrintable(extSource.dimensions)].join("\n"); }).join("\n"); log(printStrArr); } } return map(resultList, function(result, resultIndex) { var errMsg2 = ""; if (!isObject(result)) { if (true) { errMsg2 = "A transform should not return some empty results."; } throwError(errMsg2); } if (!result.data) { if (true) { errMsg2 = "Transform result data should be not be null or undefined"; } throwError(errMsg2); } var sourceFormat = detectSourceFormat(result.data); if (!isSupportedSourceFormat(sourceFormat)) { if (true) { errMsg2 = "Transform result data should be array rows or object rows."; } throwError(errMsg2); } var resultMetaRawOption; var firstUpSource = upSourceList[0]; if (firstUpSource && resultIndex === 0 && !result.dimensions) { var startIndex = firstUpSource.startIndex; if (startIndex) { result.data = firstUpSource.data.slice(0, startIndex).concat(result.data); } resultMetaRawOption = { seriesLayoutBy: SERIES_LAYOUT_BY_COLUMN, sourceHeader: startIndex, dimensions: firstUpSource.metaRawOption.dimensions }; } else { resultMetaRawOption = { seriesLayoutBy: SERIES_LAYOUT_BY_COLUMN, sourceHeader: 0, dimensions: result.dimensions }; } return createSource(result.data, resultMetaRawOption, null); }); } function isSupportedSourceFormat(sourceFormat) { return sourceFormat === SOURCE_FORMAT_ARRAY_ROWS || sourceFormat === SOURCE_FORMAT_OBJECT_ROWS; } // node_modules/echarts/lib/data/DataStore.js var UNDEFINED = "undefined"; var CtorUint32Array = typeof Uint32Array === UNDEFINED ? Array : Uint32Array; var CtorUint16Array = typeof Uint16Array === UNDEFINED ? Array : Uint16Array; var CtorInt32Array = typeof Int32Array === UNDEFINED ? Array : Int32Array; var CtorFloat64Array = typeof Float64Array === UNDEFINED ? Array : Float64Array; var dataCtors = { "float": CtorFloat64Array, "int": CtorInt32Array, // Ordinal data type can be string or int "ordinal": Array, "number": Array, "time": CtorFloat64Array }; var defaultDimValueGetters; function getIndicesCtor(rawCount) { return rawCount > 65535 ? CtorUint32Array : CtorUint16Array; } function getInitialExtent() { return [Infinity, -Infinity]; } function cloneChunk(originalChunk) { var Ctor = originalChunk.constructor; return Ctor === Array ? originalChunk.slice() : new Ctor(originalChunk); } function prepareStore(store, dimIdx, dimType, end, append) { var DataCtor = dataCtors[dimType || "float"]; if (append) { var oldStore = store[dimIdx]; var oldLen = oldStore && oldStore.length; if (!(oldLen === end)) { var newStore = new DataCtor(end); for (var j = 0; j < oldLen; j++) { newStore[j] = oldStore[j]; } store[dimIdx] = newStore; } } else { store[dimIdx] = new DataCtor(end); } } var DataStore = ( /** @class */ function() { function DataStore2() { this._chunks = []; this._rawExtent = []; this._extent = []; this._count = 0; this._rawCount = 0; this._calcDimNameToIdx = createHashMap(); } DataStore2.prototype.initData = function(provider, inputDimensions, dimValueGetter) { if (true) { assert(isFunction(provider.getItem) && isFunction(provider.count), "Invalid data provider."); } this._provider = provider; this._chunks = []; this._indices = null; this.getRawIndex = this._getRawIdxIdentity; var source = provider.getSource(); var defaultGetter = this.defaultDimValueGetter = defaultDimValueGetters[source.sourceFormat]; this._dimValueGetter = dimValueGetter || defaultGetter; this._rawExtent = []; var willRetrieveDataByName = shouldRetrieveDataByName(source); this._dimensions = map(inputDimensions, function(dim) { if (true) { if (willRetrieveDataByName) { assert(dim.property != null); } } return { // Only pick these two props. Not leak other properties like orderMeta. type: dim.type, property: dim.property }; }); this._initDataFromProvider(0, provider.count()); }; DataStore2.prototype.getProvider = function() { return this._provider; }; DataStore2.prototype.getSource = function() { return this._provider.getSource(); }; DataStore2.prototype.ensureCalculationDimension = function(dimName, type) { var calcDimNameToIdx = this._calcDimNameToIdx; var dimensions = this._dimensions; var calcDimIdx = calcDimNameToIdx.get(dimName); if (calcDimIdx != null) { if (dimensions[calcDimIdx].type === type) { return calcDimIdx; } } else { calcDimIdx = dimensions.length; } dimensions[calcDimIdx] = { type }; calcDimNameToIdx.set(dimName, calcDimIdx); this._chunks[calcDimIdx] = new dataCtors[type || "float"](this._rawCount); this._rawExtent[calcDimIdx] = getInitialExtent(); return calcDimIdx; }; DataStore2.prototype.collectOrdinalMeta = function(dimIdx, ordinalMeta) { var chunk = this._chunks[dimIdx]; var dim = this._dimensions[dimIdx]; var rawExtents = this._rawExtent; var offset = dim.ordinalOffset || 0; var len = chunk.length; if (offset === 0) { rawExtents[dimIdx] = getInitialExtent(); } var dimRawExtent = rawExtents[dimIdx]; for (var i = offset; i < len; i++) { var val = chunk[i] = ordinalMeta.parseAndCollect(chunk[i]); if (!isNaN(val)) { dimRawExtent[0] = Math.min(val, dimRawExtent[0]); dimRawExtent[1] = Math.max(val, dimRawExtent[1]); } } dim.ordinalMeta = ordinalMeta; dim.ordinalOffset = len; dim.type = "ordinal"; }; DataStore2.prototype.getOrdinalMeta = function(dimIdx) { var dimInfo = this._dimensions[dimIdx]; var ordinalMeta = dimInfo.ordinalMeta; return ordinalMeta; }; DataStore2.prototype.getDimensionProperty = function(dimIndex) { var item = this._dimensions[dimIndex]; return item && item.property; }; DataStore2.prototype.appendData = function(data) { if (true) { assert(!this._indices, "appendData can only be called on raw data."); } var provider = this._provider; var start = this.count(); provider.appendData(data); var end = provider.count(); if (!provider.persistent) { end += start; } if (start < end) { this._initDataFromProvider(start, end, true); } return [start, end]; }; DataStore2.prototype.appendValues = function(values, minFillLen) { var chunks = this._chunks; var dimensions = this._dimensions; var dimLen = dimensions.length; var rawExtent = this._rawExtent; var start = this.count(); var end = start + Math.max(values.length, minFillLen || 0); for (var i = 0; i < dimLen; i++) { var dim = dimensions[i]; prepareStore(chunks, i, dim.type, end, true); } var emptyDataItem = []; for (var idx = start; idx < end; idx++) { var sourceIdx = idx - start; for (var dimIdx = 0; dimIdx < dimLen; dimIdx++) { var dim = dimensions[dimIdx]; var val = defaultDimValueGetters.arrayRows.call(this, values[sourceIdx] || emptyDataItem, dim.property, sourceIdx, dimIdx); chunks[dimIdx][idx] = val; var dimRawExtent = rawExtent[dimIdx]; val < dimRawExtent[0] && (dimRawExtent[0] = val); val > dimRawExtent[1] && (dimRawExtent[1] = val); } } this._rawCount = this._count = end; return { start, end }; }; DataStore2.prototype._initDataFromProvider = function(start, end, append) { var provider = this._provider; var chunks = this._chunks; var dimensions = this._dimensions; var dimLen = dimensions.length; var rawExtent = this._rawExtent; var dimNames = map(dimensions, function(dim2) { return dim2.property; }); for (var i = 0; i < dimLen; i++) { var dim = dimensions[i]; if (!rawExtent[i]) { rawExtent[i] = getInitialExtent(); } prepareStore(chunks, i, dim.type, end, append); } if (provider.fillStorage) { provider.fillStorage(start, end, chunks, rawExtent); } else { var dataItem = []; for (var idx = start; idx < end; idx++) { dataItem = provider.getItem(idx, dataItem); for (var dimIdx = 0; dimIdx < dimLen; dimIdx++) { var dimStorage = chunks[dimIdx]; var val = this._dimValueGetter(dataItem, dimNames[dimIdx], idx, dimIdx); dimStorage[idx] = val; var dimRawExtent = rawExtent[dimIdx]; val < dimRawExtent[0] && (dimRawExtent[0] = val); val > dimRawExtent[1] && (dimRawExtent[1] = val); } } } if (!provider.persistent && provider.clean) { provider.clean(); } this._rawCount = this._count = end; this._extent = []; }; DataStore2.prototype.count = function() { return this._count; }; DataStore2.prototype.get = function(dim, idx) { if (!(idx >= 0 && idx < this._count)) { return NaN; } var dimStore = this._chunks[dim]; return dimStore ? dimStore[this.getRawIndex(idx)] : NaN; }; DataStore2.prototype.getValues = function(dimensions, idx) { var values = []; var dimArr = []; if (idx == null) { idx = dimensions; dimensions = []; for (var i = 0; i < this._dimensions.length; i++) { dimArr.push(i); } } else { dimArr = dimensions; } for (var i = 0, len = dimArr.length; i < len; i++) { values.push(this.get(dimArr[i], idx)); } return values; }; DataStore2.prototype.getByRawIndex = function(dim, rawIdx) { if (!(rawIdx >= 0 && rawIdx < this._rawCount)) { return NaN; } var dimStore = this._chunks[dim]; return dimStore ? dimStore[rawIdx] : NaN; }; DataStore2.prototype.getSum = function(dim) { var dimData = this._chunks[dim]; var sum = 0; if (dimData) { for (var i = 0, len = this.count(); i < len; i++) { var value = this.get(dim, i); if (!isNaN(value)) { sum += value; } } } return sum; }; DataStore2.prototype.getMedian = function(dim) { var dimDataArray = []; this.each([dim], function(val) { if (!isNaN(val)) { dimDataArray.push(val); } }); var sortedDimDataArray = dimDataArray.sort(function(a, b) { return a - b; }); var len = this.count(); return len === 0 ? 0 : len % 2 === 1 ? sortedDimDataArray[(len - 1) / 2] : (sortedDimDataArray[len / 2] + sortedDimDataArray[len / 2 - 1]) / 2; }; DataStore2.prototype.indexOfRawIndex = function(rawIndex) { if (rawIndex >= this._rawCount || rawIndex < 0) { return -1; } if (!this._indices) { return rawIndex; } var indices = this._indices; var rawDataIndex = indices[rawIndex]; if (rawDataIndex != null && rawDataIndex < this._count && rawDataIndex === rawIndex) { return rawIndex; } var left = 0; var right = this._count - 1; while (left <= right) { var mid = (left + right) / 2 | 0; if (indices[mid] < rawIndex) { left = mid + 1; } else if (indices[mid] > rawIndex) { right = mid - 1; } else { return mid; } } return -1; }; DataStore2.prototype.indicesOfNearest = function(dim, value, maxDistance) { var chunks = this._chunks; var dimData = chunks[dim]; var nearestIndices = []; if (!dimData) { return nearestIndices; } if (maxDistance == null) { maxDistance = Infinity; } var minDist = Infinity; var minDiff = -1; var nearestIndicesLen = 0; for (var i = 0, len = this.count(); i < len; i++) { var dataIndex = this.getRawIndex(i); var diff = value - dimData[dataIndex]; var dist = Math.abs(diff); if (dist <= maxDistance) { if (dist < minDist || dist === minDist && diff >= 0 && minDiff < 0) { minDist = dist; minDiff = diff; nearestIndicesLen = 0; } if (diff === minDiff) { nearestIndices[nearestIndicesLen++] = i; } } } nearestIndices.length = nearestIndicesLen; return nearestIndices; }; DataStore2.prototype.getIndices = function() { var newIndices; var indices = this._indices; if (indices) { var Ctor = indices.constructor; var thisCount = this._count; if (Ctor === Array) { newIndices = new Ctor(thisCount); for (var i = 0; i < thisCount; i++) { newIndices[i] = indices[i]; } } else { newIndices = new Ctor(indices.buffer, 0, thisCount); } } else { var Ctor = getIndicesCtor(this._rawCount); newIndices = new Ctor(this.count()); for (var i = 0; i < newIndices.length; i++) { newIndices[i] = i; } } return newIndices; }; DataStore2.prototype.filter = function(dims, cb) { if (!this._count) { return this; } var newStore = this.clone(); var count = newStore.count(); var Ctor = getIndicesCtor(newStore._rawCount); var newIndices = new Ctor(count); var value = []; var dimSize = dims.length; var offset = 0; var dim0 = dims[0]; var chunks = newStore._chunks; for (var i = 0; i < count; i++) { var keep = void 0; var rawIdx = newStore.getRawIndex(i); if (dimSize === 0) { keep = cb(i); } else if (dimSize === 1) { var val = chunks[dim0][rawIdx]; keep = cb(val, i); } else { var k = 0; for (; k < dimSize; k++) { value[k] = chunks[dims[k]][rawIdx]; } value[k] = i; keep = cb.apply(null, value); } if (keep) { newIndices[offset++] = rawIdx; } } if (offset < count) { newStore._indices = newIndices; } newStore._count = offset; newStore._extent = []; newStore._updateGetRawIdx(); return newStore; }; DataStore2.prototype.selectRange = function(range) { var newStore = this.clone(); var len = newStore._count; if (!len) { return this; } var dims = keys(range); var dimSize = dims.length; if (!dimSize) { return this; } var originalCount = newStore.count(); var Ctor = getIndicesCtor(newStore._rawCount); var newIndices = new Ctor(originalCount); var offset = 0; var dim0 = dims[0]; var min2 = range[dim0][0]; var max2 = range[dim0][1]; var storeArr = newStore._chunks; var quickFinished = false; if (!newStore._indices) { var idx = 0; if (dimSize === 1) { var dimStorage = storeArr[dims[0]]; for (var i = 0; i < len; i++) { var val = dimStorage[i]; if (val >= min2 && val <= max2 || isNaN(val)) { newIndices[offset++] = idx; } idx++; } quickFinished = true; } else if (dimSize === 2) { var dimStorage = storeArr[dims[0]]; var dimStorage2 = storeArr[dims[1]]; var min22 = range[dims[1]][0]; var max22 = range[dims[1]][1]; for (var i = 0; i < len; i++) { var val = dimStorage[i]; var val2 = dimStorage2[i]; if ((val >= min2 && val <= max2 || isNaN(val)) && (val2 >= min22 && val2 <= max22 || isNaN(val2))) { newIndices[offset++] = idx; } idx++; } quickFinished = true; } } if (!quickFinished) { if (dimSize === 1) { for (var i = 0; i < originalCount; i++) { var rawIndex = newStore.getRawIndex(i); var val = storeArr[dims[0]][rawIndex]; if (val >= min2 && val <= max2 || isNaN(val)) { newIndices[offset++] = rawIndex; } } } else { for (var i = 0; i < originalCount; i++) { var keep = true; var rawIndex = newStore.getRawIndex(i); for (var k = 0; k < dimSize; k++) { var dimk = dims[k]; var val = storeArr[dimk][rawIndex]; if (val < range[dimk][0] || val > range[dimk][1]) { keep = false; } } if (keep) { newIndices[offset++] = newStore.getRawIndex(i); } } } } if (offset < originalCount) { newStore._indices = newIndices; } newStore._count = offset; newStore._extent = []; newStore._updateGetRawIdx(); return newStore; }; DataStore2.prototype.map = function(dims, cb) { var target = this.clone(dims); this._updateDims(target, dims, cb); return target; }; DataStore2.prototype.modify = function(dims, cb) { this._updateDims(this, dims, cb); }; DataStore2.prototype._updateDims = function(target, dims, cb) { var targetChunks = target._chunks; var tmpRetValue = []; var dimSize = dims.length; var dataCount = target.count(); var values = []; var rawExtent = target._rawExtent; for (var i = 0; i < dims.length; i++) { rawExtent[dims[i]] = getInitialExtent(); } for (var dataIndex = 0; dataIndex < dataCount; dataIndex++) { var rawIndex = target.getRawIndex(dataIndex); for (var k = 0; k < dimSize; k++) { values[k] = targetChunks[dims[k]][rawIndex]; } values[dimSize] = dataIndex; var retValue = cb && cb.apply(null, values); if (retValue != null) { if (typeof retValue !== "object") { tmpRetValue[0] = retValue; retValue = tmpRetValue; } for (var i = 0; i < retValue.length; i++) { var dim = dims[i]; var val = retValue[i]; var rawExtentOnDim = rawExtent[dim]; var dimStore = targetChunks[dim]; if (dimStore) { dimStore[rawIndex] = val; } if (val < rawExtentOnDim[0]) { rawExtentOnDim[0] = val; } if (val > rawExtentOnDim[1]) { rawExtentOnDim[1] = val; } } } } }; DataStore2.prototype.lttbDownSample = function(valueDimension, rate) { var target = this.clone([valueDimension], true); var targetStorage = target._chunks; var dimStore = targetStorage[valueDimension]; var len = this.count(); var sampledIndex = 0; var frameSize = Math.floor(1 / rate); var currentRawIndex = this.getRawIndex(0); var maxArea; var area; var nextRawIndex; var newIndices = new (getIndicesCtor(this._rawCount))(Math.min((Math.ceil(len / frameSize) + 2) * 2, len)); newIndices[sampledIndex++] = currentRawIndex; for (var i = 1; i < len - 1; i += frameSize) { var nextFrameStart = Math.min(i + frameSize, len - 1); var nextFrameEnd = Math.min(i + frameSize * 2, len); var avgX = (nextFrameEnd + nextFrameStart) / 2; var avgY = 0; for (var idx = nextFrameStart; idx < nextFrameEnd; idx++) { var rawIndex = this.getRawIndex(idx); var y = dimStore[rawIndex]; if (isNaN(y)) { continue; } avgY += y; } avgY /= nextFrameEnd - nextFrameStart; var frameStart = i; var frameEnd = Math.min(i + frameSize, len); var pointAX = i - 1; var pointAY = dimStore[currentRawIndex]; maxArea = -1; nextRawIndex = frameStart; var firstNaNIndex = -1; var countNaN = 0; for (var idx = frameStart; idx < frameEnd; idx++) { var rawIndex = this.getRawIndex(idx); var y = dimStore[rawIndex]; if (isNaN(y)) { countNaN++; if (firstNaNIndex < 0) { firstNaNIndex = rawIndex; } continue; } area = Math.abs((pointAX - avgX) * (y - pointAY) - (pointAX - idx) * (avgY - pointAY)); if (area > maxArea) { maxArea = area; nextRawIndex = rawIndex; } } if (countNaN > 0 && countNaN < frameEnd - frameStart) { newIndices[sampledIndex++] = Math.min(firstNaNIndex, nextRawIndex); nextRawIndex = Math.max(firstNaNIndex, nextRawIndex); } newIndices[sampledIndex++] = nextRawIndex; currentRawIndex = nextRawIndex; } newIndices[sampledIndex++] = this.getRawIndex(len - 1); target._count = sampledIndex; target._indices = newIndices; target.getRawIndex = this._getRawIdx; return target; }; DataStore2.prototype.minmaxDownSample = function(valueDimension, rate) { var target = this.clone([valueDimension], true); var targetStorage = target._chunks; var frameSize = Math.floor(1 / rate); var dimStore = targetStorage[valueDimension]; var len = this.count(); var newIndices = new (getIndicesCtor(this._rawCount))(Math.ceil(len / frameSize) * 2); var offset = 0; for (var i = 0; i < len; i += frameSize) { var minIndex = i; var minValue = dimStore[this.getRawIndex(minIndex)]; var maxIndex = i; var maxValue = dimStore[this.getRawIndex(maxIndex)]; var thisFrameSize = frameSize; if (i + frameSize > len) { thisFrameSize = len - i; } for (var k = 0; k < thisFrameSize; k++) { var rawIndex = this.getRawIndex(i + k); var value = dimStore[rawIndex]; if (value < minValue) { minValue = value; minIndex = i + k; } if (value > maxValue) { maxValue = value; maxIndex = i + k; } } var rawMinIndex = this.getRawIndex(minIndex); var rawMaxIndex = this.getRawIndex(maxIndex); if (minIndex < maxIndex) { newIndices[offset++] = rawMinIndex; newIndices[offset++] = rawMaxIndex; } else { newIndices[offset++] = rawMaxIndex; newIndices[offset++] = rawMinIndex; } } target._count = offset; target._indices = newIndices; target._updateGetRawIdx(); return target; }; DataStore2.prototype.downSample = function(dimension, rate, sampleValue, sampleIndex) { var target = this.clone([dimension], true); var targetStorage = target._chunks; var frameValues = []; var frameSize = Math.floor(1 / rate); var dimStore = targetStorage[dimension]; var len = this.count(); var rawExtentOnDim = target._rawExtent[dimension] = getInitialExtent(); var newIndices = new (getIndicesCtor(this._rawCount))(Math.ceil(len / frameSize)); var offset = 0; for (var i = 0; i < len; i += frameSize) { if (frameSize > len - i) { frameSize = len - i; frameValues.length = frameSize; } for (var k = 0; k < frameSize; k++) { var dataIdx = this.getRawIndex(i + k); frameValues[k] = dimStore[dataIdx]; } var value = sampleValue(frameValues); var sampleFrameIdx = this.getRawIndex(Math.min(i + sampleIndex(frameValues, value) || 0, len - 1)); dimStore[sampleFrameIdx] = value; if (value < rawExtentOnDim[0]) { rawExtentOnDim[0] = value; } if (value > rawExtentOnDim[1]) { rawExtentOnDim[1] = value; } newIndices[offset++] = sampleFrameIdx; } target._count = offset; target._indices = newIndices; target._updateGetRawIdx(); return target; }; DataStore2.prototype.each = function(dims, cb) { if (!this._count) { return; } var dimSize = dims.length; var chunks = this._chunks; for (var i = 0, len = this.count(); i < len; i++) { var rawIdx = this.getRawIndex(i); switch (dimSize) { case 0: cb(i); break; case 1: cb(chunks[dims[0]][rawIdx], i); break; case 2: cb(chunks[dims[0]][rawIdx], chunks[dims[1]][rawIdx], i); break; default: var k = 0; var value = []; for (; k < dimSize; k++) { value[k] = chunks[dims[k]][rawIdx]; } value[k] = i; cb.apply(null, value); } } }; DataStore2.prototype.getDataExtent = function(dim) { var dimData = this._chunks[dim]; var initialExtent = getInitialExtent(); if (!dimData) { return initialExtent; } var currEnd = this.count(); var useRaw = !this._indices; var dimExtent; if (useRaw) { return this._rawExtent[dim].slice(); } dimExtent = this._extent[dim]; if (dimExtent) { return dimExtent.slice(); } dimExtent = initialExtent; var min2 = dimExtent[0]; var max2 = dimExtent[1]; for (var i = 0; i < currEnd; i++) { var rawIdx = this.getRawIndex(i); var value = dimData[rawIdx]; value < min2 && (min2 = value); value > max2 && (max2 = value); } dimExtent = [min2, max2]; this._extent[dim] = dimExtent; return dimExtent; }; DataStore2.prototype.getRawDataItem = function(idx) { var rawIdx = this.getRawIndex(idx); if (!this._provider.persistent) { var val = []; var chunks = this._chunks; for (var i = 0; i < chunks.length; i++) { val.push(chunks[i][rawIdx]); } return val; } else { return this._provider.getItem(rawIdx); } }; DataStore2.prototype.clone = function(clonedDims, ignoreIndices) { var target = new DataStore2(); var chunks = this._chunks; var clonedDimsMap = clonedDims && reduce(clonedDims, function(obj, dimIdx) { obj[dimIdx] = true; return obj; }, {}); if (clonedDimsMap) { for (var i = 0; i < chunks.length; i++) { target._chunks[i] = !clonedDimsMap[i] ? chunks[i] : cloneChunk(chunks[i]); } } else { target._chunks = chunks; } this._copyCommonProps(target); if (!ignoreIndices) { target._indices = this._cloneIndices(); } target._updateGetRawIdx(); return target; }; DataStore2.prototype._copyCommonProps = function(target) { target._count = this._count; target._rawCount = this._rawCount; target._provider = this._provider; target._dimensions = this._dimensions; target._extent = clone(this._extent); target._rawExtent = clone(this._rawExtent); }; DataStore2.prototype._cloneIndices = function() { if (this._indices) { var Ctor = this._indices.constructor; var indices = void 0; if (Ctor === Array) { var thisCount = this._indices.length; indices = new Ctor(thisCount); for (var i = 0; i < thisCount; i++) { indices[i] = this._indices[i]; } } else { indices = new Ctor(this._indices); } return indices; } return null; }; DataStore2.prototype._getRawIdxIdentity = function(idx) { return idx; }; DataStore2.prototype._getRawIdx = function(idx) { if (idx < this._count && idx >= 0) { return this._indices[idx]; } return -1; }; DataStore2.prototype._updateGetRawIdx = function() { this.getRawIndex = this._indices ? this._getRawIdx : this._getRawIdxIdentity; }; DataStore2.internalField = function() { function getDimValueSimply(dataItem, property, dataIndex, dimIndex) { return parseDataValue(dataItem[dimIndex], this._dimensions[dimIndex]); } defaultDimValueGetters = { arrayRows: getDimValueSimply, objectRows: function(dataItem, property, dataIndex, dimIndex) { return parseDataValue(dataItem[property], this._dimensions[dimIndex]); }, keyedColumns: getDimValueSimply, original: function(dataItem, property, dataIndex, dimIndex) { var value = dataItem && (dataItem.value == null ? dataItem : dataItem.value); return parseDataValue(value instanceof Array ? value[dimIndex] : value, this._dimensions[dimIndex]); }, typedArray: function(dataItem, property, dataIndex, dimIndex) { return dataItem[dimIndex]; } }; }(); return DataStore2; }() ); var DataStore_default = DataStore; // node_modules/echarts/lib/data/helper/sourceManager.js var SourceManager = ( /** @class */ function() { function SourceManager2(sourceHost) { this._sourceList = []; this._storeList = []; this._upstreamSignList = []; this._versionSignBase = 0; this._dirty = true; this._sourceHost = sourceHost; } SourceManager2.prototype.dirty = function() { this._setLocalSource([], []); this._storeList = []; this._dirty = true; }; SourceManager2.prototype._setLocalSource = function(sourceList, upstreamSignList) { this._sourceList = sourceList; this._upstreamSignList = upstreamSignList; this._versionSignBase++; if (this._versionSignBase > 9e10) { this._versionSignBase = 0; } }; SourceManager2.prototype._getVersionSign = function() { return this._sourceHost.uid + "_" + this._versionSignBase; }; SourceManager2.prototype.prepareSource = function() { if (this._isDirty()) { this._createSource(); this._dirty = false; } }; SourceManager2.prototype._createSource = function() { this._setLocalSource([], []); var sourceHost = this._sourceHost; var upSourceMgrList = this._getUpstreamSourceManagers(); var hasUpstream = !!upSourceMgrList.length; var resultSourceList; var upstreamSignList; if (isSeries(sourceHost)) { var seriesModel = sourceHost; var data = void 0; var sourceFormat = void 0; var upSource = void 0; if (hasUpstream) { var upSourceMgr = upSourceMgrList[0]; upSourceMgr.prepareSource(); upSource = upSourceMgr.getSource(); data = upSource.data; sourceFormat = upSource.sourceFormat; upstreamSignList = [upSourceMgr._getVersionSign()]; } else { data = seriesModel.get("data", true); sourceFormat = isTypedArray(data) ? SOURCE_FORMAT_TYPED_ARRAY : SOURCE_FORMAT_ORIGINAL; upstreamSignList = []; } var newMetaRawOption = this._getSourceMetaRawOption() || {}; var upMetaRawOption = upSource && upSource.metaRawOption || {}; var seriesLayoutBy = retrieve2(newMetaRawOption.seriesLayoutBy, upMetaRawOption.seriesLayoutBy) || null; var sourceHeader = retrieve2(newMetaRawOption.sourceHeader, upMetaRawOption.sourceHeader); var dimensions = retrieve2(newMetaRawOption.dimensions, upMetaRawOption.dimensions); var needsCreateSource = seriesLayoutBy !== upMetaRawOption.seriesLayoutBy || !!sourceHeader !== !!upMetaRawOption.sourceHeader || dimensions; resultSourceList = needsCreateSource ? [createSource(data, { seriesLayoutBy, sourceHeader, dimensions }, sourceFormat)] : []; } else { var datasetModel = sourceHost; if (hasUpstream) { var result = this._applyTransform(upSourceMgrList); resultSourceList = result.sourceList; upstreamSignList = result.upstreamSignList; } else { var sourceData = datasetModel.get("source", true); resultSourceList = [createSource(sourceData, this._getSourceMetaRawOption(), null)]; upstreamSignList = []; } } if (true) { assert(resultSourceList && upstreamSignList); } this._setLocalSource(resultSourceList, upstreamSignList); }; SourceManager2.prototype._applyTransform = function(upMgrList) { var datasetModel = this._sourceHost; var transformOption = datasetModel.get("transform", true); var fromTransformResult = datasetModel.get("fromTransformResult", true); if (true) { assert(fromTransformResult != null || transformOption != null); } if (fromTransformResult != null) { var errMsg = ""; if (upMgrList.length !== 1) { if (true) { errMsg = "When using `fromTransformResult`, there should be only one upstream dataset"; } doThrow(errMsg); } } var sourceList; var upSourceList = []; var upstreamSignList = []; each(upMgrList, function(upMgr) { upMgr.prepareSource(); var upSource = upMgr.getSource(fromTransformResult || 0); var errMsg2 = ""; if (fromTransformResult != null && !upSource) { if (true) { errMsg2 = "Can not retrieve result by `fromTransformResult`: " + fromTransformResult; } doThrow(errMsg2); } upSourceList.push(upSource); upstreamSignList.push(upMgr._getVersionSign()); }); if (transformOption) { sourceList = applyDataTransform(transformOption, upSourceList, { datasetIndex: datasetModel.componentIndex }); } else if (fromTransformResult != null) { sourceList = [cloneSourceShallow(upSourceList[0])]; } return { sourceList, upstreamSignList }; }; SourceManager2.prototype._isDirty = function() { if (this._dirty) { return true; } var upSourceMgrList = this._getUpstreamSourceManagers(); for (var i = 0; i < upSourceMgrList.length; i++) { var upSrcMgr = upSourceMgrList[i]; if ( // Consider the case that there is ancestor diry, call it recursively. // The performance is probably not an issue because usually the chain is not long. upSrcMgr._isDirty() || this._upstreamSignList[i] !== upSrcMgr._getVersionSign() ) { return true; } } }; SourceManager2.prototype.getSource = function(sourceIndex) { sourceIndex = sourceIndex || 0; var source = this._sourceList[sourceIndex]; if (!source) { var upSourceMgrList = this._getUpstreamSourceManagers(); return upSourceMgrList[0] && upSourceMgrList[0].getSource(sourceIndex); } return source; }; SourceManager2.prototype.getSharedDataStore = function(seriesDimRequest) { if (true) { assert(isSeries(this._sourceHost), "Can only call getDataStore on series source manager."); } var schema = seriesDimRequest.makeStoreSchema(); return this._innerGetDataStore(schema.dimensions, seriesDimRequest.source, schema.hash); }; SourceManager2.prototype._innerGetDataStore = function(storeDims, seriesSource, sourceReadKey) { var sourceIndex = 0; var storeList = this._storeList; var cachedStoreMap = storeList[sourceIndex]; if (!cachedStoreMap) { cachedStoreMap = storeList[sourceIndex] = {}; } var cachedStore = cachedStoreMap[sourceReadKey]; if (!cachedStore) { var upSourceMgr = this._getUpstreamSourceManagers()[0]; if (isSeries(this._sourceHost) && upSourceMgr) { cachedStore = upSourceMgr._innerGetDataStore(storeDims, seriesSource, sourceReadKey); } else { cachedStore = new DataStore_default(); cachedStore.initData(new DefaultDataProvider(seriesSource, storeDims.length), storeDims); } cachedStoreMap[sourceReadKey] = cachedStore; } return cachedStore; }; SourceManager2.prototype._getUpstreamSourceManagers = function() { var sourceHost = this._sourceHost; if (isSeries(sourceHost)) { var datasetModel = querySeriesUpstreamDatasetModel(sourceHost); return !datasetModel ? [] : [datasetModel.getSourceManager()]; } else { return map(queryDatasetUpstreamDatasetModels(sourceHost), function(datasetModel2) { return datasetModel2.getSourceManager(); }); } }; SourceManager2.prototype._getSourceMetaRawOption = function() { var sourceHost = this._sourceHost; var seriesLayoutBy; var sourceHeader; var dimensions; if (isSeries(sourceHost)) { seriesLayoutBy = sourceHost.get("seriesLayoutBy", true); sourceHeader = sourceHost.get("sourceHeader", true); dimensions = sourceHost.get("dimensions", true); } else if (!this._getUpstreamSourceManagers().length) { var model = sourceHost; seriesLayoutBy = model.get("seriesLayoutBy", true); sourceHeader = model.get("sourceHeader", true); dimensions = model.get("dimensions", true); } return { seriesLayoutBy, sourceHeader, dimensions }; }; return SourceManager2; }() ); function disableTransformOptionMerge(datasetModel) { var transformOption = datasetModel.option.transform; transformOption && setAsPrimitive(datasetModel.option.transform); } function isSeries(sourceHost) { return sourceHost.mainType === "series"; } function doThrow(errMsg) { throw new Error(errMsg); } // node_modules/echarts/lib/component/tooltip/tooltipMarkup.js var TOOLTIP_LINE_HEIGHT_CSS = "line-height:1"; function getTooltipLineHeight(textStyle) { var lineHeight = textStyle.lineHeight; if (lineHeight == null) { return TOOLTIP_LINE_HEIGHT_CSS; } else { return "line-height:" + encodeHTML(lineHeight + "") + "px"; } } function getTooltipTextStyle(textStyle, renderMode) { var nameFontColor = textStyle.color || "#6e7079"; var nameFontSize = textStyle.fontSize || 12; var nameFontWeight = textStyle.fontWeight || "400"; var valueFontColor = textStyle.color || "#464646"; var valueFontSize = textStyle.fontSize || 14; var valueFontWeight = textStyle.fontWeight || "900"; if (renderMode === "html") { return { // eslint-disable-next-line max-len nameStyle: "font-size:" + encodeHTML(nameFontSize + "") + "px;color:" + encodeHTML(nameFontColor) + ";font-weight:" + encodeHTML(nameFontWeight + ""), // eslint-disable-next-line max-len valueStyle: "font-size:" + encodeHTML(valueFontSize + "") + "px;color:" + encodeHTML(valueFontColor) + ";font-weight:" + encodeHTML(valueFontWeight + "") }; } else { return { nameStyle: { fontSize: nameFontSize, fill: nameFontColor, fontWeight: nameFontWeight }, valueStyle: { fontSize: valueFontSize, fill: valueFontColor, fontWeight: valueFontWeight } }; } } var HTML_GAPS = [0, 10, 20, 30]; var RICH_TEXT_GAPS = ["", "\n", "\n\n", "\n\n\n"]; function createTooltipMarkup(type, option) { option.type = type; return option; } function isSectionFragment(frag) { return frag.type === "section"; } function getBuilder(frag) { return isSectionFragment(frag) ? buildSection : buildNameValue; } function getBlockGapLevel(frag) { if (isSectionFragment(frag)) { var gapLevel_1 = 0; var subBlockLen = frag.blocks.length; var hasInnerGap_1 = subBlockLen > 1 || subBlockLen > 0 && !frag.noHeader; each(frag.blocks, function(subBlock) { var subGapLevel = getBlockGapLevel(subBlock); if (subGapLevel >= gapLevel_1) { gapLevel_1 = subGapLevel + +(hasInnerGap_1 && // 0 always can not be readable gap level. (!subGapLevel || isSectionFragment(subBlock) && !subBlock.noHeader)); } }); return gapLevel_1; } return 0; } function buildSection(ctx, fragment, topMarginForOuterGap, toolTipTextStyle) { var noHeader = fragment.noHeader; var gaps = getGap(getBlockGapLevel(fragment)); var subMarkupTextList = []; var subBlocks = fragment.blocks || []; assert(!subBlocks || isArray(subBlocks)); subBlocks = subBlocks || []; var orderMode = ctx.orderMode; if (fragment.sortBlocks && orderMode) { subBlocks = subBlocks.slice(); var orderMap = { valueAsc: "asc", valueDesc: "desc" }; if (hasOwn(orderMap, orderMode)) { var comparator_1 = new SortOrderComparator(orderMap[orderMode], null); subBlocks.sort(function(a, b) { return comparator_1.evaluate(a.sortParam, b.sortParam); }); } else if (orderMode === "seriesDesc") { subBlocks.reverse(); } } each(subBlocks, function(subBlock, idx) { var valueFormatter = fragment.valueFormatter; var subMarkupText2 = getBuilder(subBlock)( // Inherit valueFormatter valueFormatter ? extend(extend({}, ctx), { valueFormatter }) : ctx, subBlock, idx > 0 ? gaps.html : 0, toolTipTextStyle ); subMarkupText2 != null && subMarkupTextList.push(subMarkupText2); }); var subMarkupText = ctx.renderMode === "richText" ? subMarkupTextList.join(gaps.richText) : wrapBlockHTML(toolTipTextStyle, subMarkupTextList.join(""), noHeader ? topMarginForOuterGap : gaps.html); if (noHeader) { return subMarkupText; } var displayableHeader = makeValueReadable(fragment.header, "ordinal", ctx.useUTC); var nameStyle = getTooltipTextStyle(toolTipTextStyle, ctx.renderMode).nameStyle; var tooltipLineHeight = getTooltipLineHeight(toolTipTextStyle); if (ctx.renderMode === "richText") { return wrapInlineNameRichText(ctx, displayableHeader, nameStyle) + gaps.richText + subMarkupText; } else { return wrapBlockHTML(toolTipTextStyle, '
' + encodeHTML(displayableHeader) + "
" + subMarkupText, topMarginForOuterGap); } } function buildNameValue(ctx, fragment, topMarginForOuterGap, toolTipTextStyle) { var renderMode = ctx.renderMode; var noName = fragment.noName; var noValue = fragment.noValue; var noMarker = !fragment.markerType; var name = fragment.name; var useUTC = ctx.useUTC; var valueFormatter = fragment.valueFormatter || ctx.valueFormatter || function(value) { value = isArray(value) ? value : [value]; return map(value, function(val, idx) { return makeValueReadable(val, isArray(valueTypeOption) ? valueTypeOption[idx] : valueTypeOption, useUTC); }); }; if (noName && noValue) { return; } var markerStr = noMarker ? "" : ctx.markupStyleCreator.makeTooltipMarker(fragment.markerType, fragment.markerColor || "#333", renderMode); var readableName = noName ? "" : makeValueReadable(name, "ordinal", useUTC); var valueTypeOption = fragment.valueType; var readableValueList = noValue ? [] : valueFormatter(fragment.value, fragment.dataIndex); var valueAlignRight = !noMarker || !noName; var valueCloseToMarker = !noMarker && noName; var _a2 = getTooltipTextStyle(toolTipTextStyle, renderMode), nameStyle = _a2.nameStyle, valueStyle = _a2.valueStyle; return renderMode === "richText" ? (noMarker ? "" : markerStr) + (noName ? "" : wrapInlineNameRichText(ctx, readableName, nameStyle)) + (noValue ? "" : wrapInlineValueRichText(ctx, readableValueList, valueAlignRight, valueCloseToMarker, valueStyle)) : wrapBlockHTML(toolTipTextStyle, (noMarker ? "" : markerStr) + (noName ? "" : wrapInlineNameHTML(readableName, !noMarker, nameStyle)) + (noValue ? "" : wrapInlineValueHTML(readableValueList, valueAlignRight, valueCloseToMarker, valueStyle)), topMarginForOuterGap); } function buildTooltipMarkup(fragment, markupStyleCreator, renderMode, orderMode, useUTC, toolTipTextStyle) { if (!fragment) { return; } var builder = getBuilder(fragment); var ctx = { useUTC, renderMode, orderMode, markupStyleCreator, valueFormatter: fragment.valueFormatter }; return builder(ctx, fragment, 0, toolTipTextStyle); } function getGap(gapLevel) { return { html: HTML_GAPS[gapLevel], richText: RICH_TEXT_GAPS[gapLevel] }; } function wrapBlockHTML(textStyle, encodedContent, topGap) { var clearfix = '
'; var marginCSS = "margin: " + topGap + "px 0 0"; var tooltipLineHeight = getTooltipLineHeight(textStyle); return '
' + encodedContent + clearfix + "
"; } function wrapInlineNameHTML(name, leftHasMarker, style) { var marginCss = leftHasMarker ? "margin-left:2px" : ""; return '' + encodeHTML(name) + ""; } function wrapInlineValueHTML(valueList, alignRight, valueCloseToMarker, style) { var paddingStr = valueCloseToMarker ? "10px" : "20px"; var alignCSS = alignRight ? "float:right;margin-left:" + paddingStr : ""; valueList = isArray(valueList) ? valueList : [valueList]; return '' + map(valueList, function(value) { return encodeHTML(value); }).join("  ") + ""; } function wrapInlineNameRichText(ctx, name, style) { return ctx.markupStyleCreator.wrapRichTextStyle(name, style); } function wrapInlineValueRichText(ctx, values, alignRight, valueCloseToMarker, style) { var styles = [style]; var paddingLeft = valueCloseToMarker ? 10 : 20; alignRight && styles.push({ padding: [0, 0, 0, paddingLeft], align: "right" }); return ctx.markupStyleCreator.wrapRichTextStyle(isArray(values) ? values.join(" ") : values, styles); } function retrieveVisualColorForTooltipMarker(series, dataIndex) { var style = series.getData().getItemVisual(dataIndex, "style"); var color = style[series.visualDrawType]; return convertToColorString(color); } function getPaddingFromTooltipModel(model, renderMode) { var padding = model.get("padding"); return padding != null ? padding : renderMode === "richText" ? [8, 10] : 10; } var TooltipMarkupStyleCreator = ( /** @class */ function() { function TooltipMarkupStyleCreator2() { this.richTextStyles = {}; this._nextStyleNameId = getRandomIdBase(); } TooltipMarkupStyleCreator2.prototype._generateStyleName = function() { return "__EC_aUTo_" + this._nextStyleNameId++; }; TooltipMarkupStyleCreator2.prototype.makeTooltipMarker = function(markerType, colorStr, renderMode) { var markerId = renderMode === "richText" ? this._generateStyleName() : null; var marker = getTooltipMarker({ color: colorStr, type: markerType, renderMode, markerId }); if (isString(marker)) { return marker; } else { if (true) { assert(markerId); } this.richTextStyles[markerId] = marker.style; return marker.content; } }; TooltipMarkupStyleCreator2.prototype.wrapRichTextStyle = function(text, styles) { var finalStl = {}; if (isArray(styles)) { each(styles, function(stl) { return extend(finalStl, stl); }); } else { extend(finalStl, styles); } var styleName = this._generateStyleName(); this.richTextStyles[styleName] = finalStl; return "{" + styleName + "|" + text + "}"; }; return TooltipMarkupStyleCreator2; }() ); // node_modules/echarts/lib/component/tooltip/seriesFormatTooltip.js function defaultSeriesFormatTooltip(opt) { var series = opt.series; var dataIndex = opt.dataIndex; var multipleSeries = opt.multipleSeries; var data = series.getData(); var tooltipDims = data.mapDimensionsAll("defaultedTooltip"); var tooltipDimLen = tooltipDims.length; var value = series.getRawValue(dataIndex); var isValueArr = isArray(value); var markerColor = retrieveVisualColorForTooltipMarker(series, dataIndex); var inlineValue; var inlineValueType; var subBlocks; var sortParam; if (tooltipDimLen > 1 || isValueArr && !tooltipDimLen) { var formatArrResult = formatTooltipArrayValue(value, series, dataIndex, tooltipDims, markerColor); inlineValue = formatArrResult.inlineValues; inlineValueType = formatArrResult.inlineValueTypes; subBlocks = formatArrResult.blocks; sortParam = formatArrResult.inlineValues[0]; } else if (tooltipDimLen) { var dimInfo = data.getDimensionInfo(tooltipDims[0]); sortParam = inlineValue = retrieveRawValue(data, dataIndex, tooltipDims[0]); inlineValueType = dimInfo.type; } else { sortParam = inlineValue = isValueArr ? value[0] : value; } var seriesNameSpecified = isNameSpecified(series); var seriesName = seriesNameSpecified && series.name || ""; var itemName = data.getName(dataIndex); var inlineName = multipleSeries ? seriesName : itemName; return createTooltipMarkup("section", { header: seriesName, // When series name is not specified, do not show a header line with only '-'. // This case always happens in tooltip.trigger: 'item'. noHeader: multipleSeries || !seriesNameSpecified, sortParam, blocks: [createTooltipMarkup("nameValue", { markerType: "item", markerColor, // Do not mix display seriesName and itemName in one tooltip, // which might confuses users. name: inlineName, // name dimension might be auto assigned, where the name might // be not readable. So we check trim here. noName: !trim(inlineName), value: inlineValue, valueType: inlineValueType, dataIndex })].concat(subBlocks || []) }); } function formatTooltipArrayValue(value, series, dataIndex, tooltipDims, colorStr) { var data = series.getData(); var isValueMultipleLine = reduce(value, function(isValueMultipleLine2, val, idx) { var dimItem = data.getDimensionInfo(idx); return isValueMultipleLine2 = isValueMultipleLine2 || dimItem && dimItem.tooltip !== false && dimItem.displayName != null; }, false); var inlineValues = []; var inlineValueTypes = []; var blocks = []; tooltipDims.length ? each(tooltipDims, function(dim) { setEachItem(retrieveRawValue(data, dataIndex, dim), dim); }) : each(value, setEachItem); function setEachItem(val, dim) { var dimInfo = data.getDimensionInfo(dim); if (!dimInfo || dimInfo.otherDims.tooltip === false) { return; } if (isValueMultipleLine) { blocks.push(createTooltipMarkup("nameValue", { markerType: "subItem", markerColor: colorStr, name: dimInfo.displayName, value: val, valueType: dimInfo.type })); } else { inlineValues.push(val); inlineValueTypes.push(dimInfo.type); } } return { inlineValues, inlineValueTypes, blocks }; } // node_modules/echarts/lib/model/Series.js var inner2 = makeInner(); function getSelectionKey(data, dataIndex) { return data.getName(dataIndex) || data.getId(dataIndex); } var SERIES_UNIVERSAL_TRANSITION_PROP = "__universalTransitionEnabled"; var SeriesModel = ( /** @class */ function(_super) { __extends(SeriesModel2, _super); function SeriesModel2() { var _this = _super !== null && _super.apply(this, arguments) || this; _this._selectedDataIndicesMap = {}; return _this; } SeriesModel2.prototype.init = function(option, parentModel, ecModel) { this.seriesIndex = this.componentIndex; this.dataTask = createTask({ count: dataTaskCount, reset: dataTaskReset }); this.dataTask.context = { model: this }; this.mergeDefaultAndTheme(option, ecModel); var sourceManager = inner2(this).sourceManager = new SourceManager(this); sourceManager.prepareSource(); var data = this.getInitialData(option, ecModel); wrapData(data, this); this.dataTask.context.data = data; if (true) { assert(data, "getInitialData returned invalid data."); } inner2(this).dataBeforeProcessed = data; autoSeriesName(this); this._initSelectedMapFromData(data); }; SeriesModel2.prototype.mergeDefaultAndTheme = function(option, ecModel) { var layoutMode = fetchLayoutMode(this); var inputPositionParams = layoutMode ? getLayoutParams(option) : {}; var themeSubType = this.subType; if (Component_default.hasClass(themeSubType)) { themeSubType += "Series"; } merge(option, ecModel.getTheme().get(this.subType)); merge(option, this.getDefaultOption()); defaultEmphasis(option, "label", ["show"]); this.fillDataTextStyle(option.data); if (layoutMode) { mergeLayoutParam(option, inputPositionParams, layoutMode); } }; SeriesModel2.prototype.mergeOption = function(newSeriesOption, ecModel) { newSeriesOption = merge(this.option, newSeriesOption, true); this.fillDataTextStyle(newSeriesOption.data); var layoutMode = fetchLayoutMode(this); if (layoutMode) { mergeLayoutParam(this.option, newSeriesOption, layoutMode); } var sourceManager = inner2(this).sourceManager; sourceManager.dirty(); sourceManager.prepareSource(); var data = this.getInitialData(newSeriesOption, ecModel); wrapData(data, this); this.dataTask.dirty(); this.dataTask.context.data = data; inner2(this).dataBeforeProcessed = data; autoSeriesName(this); this._initSelectedMapFromData(data); }; SeriesModel2.prototype.fillDataTextStyle = function(data) { if (data && !isTypedArray(data)) { var props = ["show"]; for (var i = 0; i < data.length; i++) { if (data[i] && data[i].label) { defaultEmphasis(data[i], "label", props); } } } }; SeriesModel2.prototype.getInitialData = function(option, ecModel) { return; }; SeriesModel2.prototype.appendData = function(params) { var data = this.getRawData(); data.appendData(params.data); }; SeriesModel2.prototype.getData = function(dataType) { var task = getCurrentTask(this); if (task) { var data = task.context.data; return dataType == null || !data.getLinkedData ? data : data.getLinkedData(dataType); } else { return inner2(this).data; } }; SeriesModel2.prototype.getAllData = function() { var mainData = this.getData(); return mainData && mainData.getLinkedDataAll ? mainData.getLinkedDataAll() : [{ data: mainData }]; }; SeriesModel2.prototype.setData = function(data) { var task = getCurrentTask(this); if (task) { var context = task.context; context.outputData = data; if (task !== this.dataTask) { context.data = data; } } inner2(this).data = data; }; SeriesModel2.prototype.getEncode = function() { var encode = this.get("encode", true); if (encode) { return createHashMap(encode); } }; SeriesModel2.prototype.getSourceManager = function() { return inner2(this).sourceManager; }; SeriesModel2.prototype.getSource = function() { return this.getSourceManager().getSource(); }; SeriesModel2.prototype.getRawData = function() { return inner2(this).dataBeforeProcessed; }; SeriesModel2.prototype.getColorBy = function() { var colorBy = this.get("colorBy"); return colorBy || "series"; }; SeriesModel2.prototype.isColorBySeries = function() { return this.getColorBy() === "series"; }; SeriesModel2.prototype.getBaseAxis = function() { var coordSys = this.coordinateSystem; return coordSys && coordSys.getBaseAxis && coordSys.getBaseAxis(); }; SeriesModel2.prototype.formatTooltip = function(dataIndex, multipleSeries, dataType) { return defaultSeriesFormatTooltip({ series: this, dataIndex, multipleSeries }); }; SeriesModel2.prototype.isAnimationEnabled = function() { var ecModel = this.ecModel; if (env_default.node && !(ecModel && ecModel.ssr)) { return false; } var animationEnabled = this.getShallow("animation"); if (animationEnabled) { if (this.getData().count() > this.getShallow("animationThreshold")) { animationEnabled = false; } } return !!animationEnabled; }; SeriesModel2.prototype.restoreData = function() { this.dataTask.dirty(); }; SeriesModel2.prototype.getColorFromPalette = function(name, scope, requestColorNum) { var ecModel = this.ecModel; var color = PaletteMixin.prototype.getColorFromPalette.call(this, name, scope, requestColorNum); if (!color) { color = ecModel.getColorFromPalette(name, scope, requestColorNum); } return color; }; SeriesModel2.prototype.coordDimToDataDim = function(coordDim) { return this.getRawData().mapDimensionsAll(coordDim); }; SeriesModel2.prototype.getProgressive = function() { return this.get("progressive"); }; SeriesModel2.prototype.getProgressiveThreshold = function() { return this.get("progressiveThreshold"); }; SeriesModel2.prototype.select = function(innerDataIndices, dataType) { this._innerSelect(this.getData(dataType), innerDataIndices); }; SeriesModel2.prototype.unselect = function(innerDataIndices, dataType) { var selectedMap = this.option.selectedMap; if (!selectedMap) { return; } var selectedMode = this.option.selectedMode; var data = this.getData(dataType); if (selectedMode === "series" || selectedMap === "all") { this.option.selectedMap = {}; this._selectedDataIndicesMap = {}; return; } for (var i = 0; i < innerDataIndices.length; i++) { var dataIndex = innerDataIndices[i]; var nameOrId = getSelectionKey(data, dataIndex); selectedMap[nameOrId] = false; this._selectedDataIndicesMap[nameOrId] = -1; } }; SeriesModel2.prototype.toggleSelect = function(innerDataIndices, dataType) { var tmpArr = []; for (var i = 0; i < innerDataIndices.length; i++) { tmpArr[0] = innerDataIndices[i]; this.isSelected(innerDataIndices[i], dataType) ? this.unselect(tmpArr, dataType) : this.select(tmpArr, dataType); } }; SeriesModel2.prototype.getSelectedDataIndices = function() { if (this.option.selectedMap === "all") { return [].slice.call(this.getData().getIndices()); } var selectedDataIndicesMap = this._selectedDataIndicesMap; var nameOrIds = keys(selectedDataIndicesMap); var dataIndices = []; for (var i = 0; i < nameOrIds.length; i++) { var dataIndex = selectedDataIndicesMap[nameOrIds[i]]; if (dataIndex >= 0) { dataIndices.push(dataIndex); } } return dataIndices; }; SeriesModel2.prototype.isSelected = function(dataIndex, dataType) { var selectedMap = this.option.selectedMap; if (!selectedMap) { return false; } var data = this.getData(dataType); return (selectedMap === "all" || selectedMap[getSelectionKey(data, dataIndex)]) && !data.getItemModel(dataIndex).get(["select", "disabled"]); }; SeriesModel2.prototype.isUniversalTransitionEnabled = function() { if (this[SERIES_UNIVERSAL_TRANSITION_PROP]) { return true; } var universalTransitionOpt = this.option.universalTransition; if (!universalTransitionOpt) { return false; } if (universalTransitionOpt === true) { return true; } return universalTransitionOpt && universalTransitionOpt.enabled; }; SeriesModel2.prototype._innerSelect = function(data, innerDataIndices) { var _a2, _b2; var option = this.option; var selectedMode = option.selectedMode; var len = innerDataIndices.length; if (!selectedMode || !len) { return; } if (selectedMode === "series") { option.selectedMap = "all"; } else if (selectedMode === "multiple") { if (!isObject(option.selectedMap)) { option.selectedMap = {}; } var selectedMap = option.selectedMap; for (var i = 0; i < len; i++) { var dataIndex = innerDataIndices[i]; var nameOrId = getSelectionKey(data, dataIndex); selectedMap[nameOrId] = true; this._selectedDataIndicesMap[nameOrId] = data.getRawIndex(dataIndex); } } else if (selectedMode === "single" || selectedMode === true) { var lastDataIndex = innerDataIndices[len - 1]; var nameOrId = getSelectionKey(data, lastDataIndex); option.selectedMap = (_a2 = {}, _a2[nameOrId] = true, _a2); this._selectedDataIndicesMap = (_b2 = {}, _b2[nameOrId] = data.getRawIndex(lastDataIndex), _b2); } }; SeriesModel2.prototype._initSelectedMapFromData = function(data) { if (this.option.selectedMap) { return; } var dataIndices = []; if (data.hasItemOption) { data.each(function(idx) { var rawItem = data.getRawDataItem(idx); if (rawItem && rawItem.selected) { dataIndices.push(idx); } }); } if (dataIndices.length > 0) { this._innerSelect(data, dataIndices); } }; SeriesModel2.registerClass = function(clz) { return Component_default.registerClass(clz); }; SeriesModel2.protoInitialize = function() { var proto2 = SeriesModel2.prototype; proto2.type = "series.__base__"; proto2.seriesIndex = 0; proto2.ignoreStyleOnData = false; proto2.hasSymbolVisual = false; proto2.defaultSymbol = "circle"; proto2.visualStyleAccessPath = "itemStyle"; proto2.visualDrawType = "fill"; }(); return SeriesModel2; }(Component_default) ); mixin(SeriesModel, DataFormatMixin); mixin(SeriesModel, PaletteMixin); mountExtend(SeriesModel, Component_default); function autoSeriesName(seriesModel) { var name = seriesModel.name; if (!isNameSpecified(seriesModel)) { seriesModel.name = getSeriesAutoName(seriesModel) || name; } } function getSeriesAutoName(seriesModel) { var data = seriesModel.getRawData(); var dataDims = data.mapDimensionsAll("seriesName"); var nameArr = []; each(dataDims, function(dataDim) { var dimInfo = data.getDimensionInfo(dataDim); dimInfo.displayName && nameArr.push(dimInfo.displayName); }); return nameArr.join(" "); } function dataTaskCount(context) { return context.model.getRawData().count(); } function dataTaskReset(context) { var seriesModel = context.model; seriesModel.setData(seriesModel.getRawData().cloneShallow()); return dataTaskProgress; } function dataTaskProgress(param, context) { if (context.outputData && param.end > context.outputData.count()) { context.model.getRawData().cloneShallow(context.outputData); } } function wrapData(data, seriesModel) { each(concatArray(data.CHANGABLE_METHODS, data.DOWNSAMPLE_METHODS), function(methodName) { data.wrapMethod(methodName, curry(onDataChange, seriesModel)); }); } function onDataChange(seriesModel, newList) { var task = getCurrentTask(seriesModel); if (task) { task.setOutputEnd((newList || this).count()); } return newList; } function getCurrentTask(seriesModel) { var scheduler = (seriesModel.ecModel || {}).scheduler; var pipeline = scheduler && scheduler.getPipeline(seriesModel.uid); if (pipeline) { var task = pipeline.currentTask; if (task) { var agentStubMap = task.agentStubMap; if (agentStubMap) { task = agentStubMap.get(seriesModel.uid); } } return task; } } var Series_default = SeriesModel; // node_modules/echarts/lib/view/Component.js var ComponentView = ( /** @class */ function() { function ComponentView2() { this.group = new Group_default(); this.uid = getUID("viewComponent"); } ComponentView2.prototype.init = function(ecModel, api) { }; ComponentView2.prototype.render = function(model, ecModel, api, payload) { }; ComponentView2.prototype.dispose = function(ecModel, api) { }; ComponentView2.prototype.updateView = function(model, ecModel, api, payload) { }; ComponentView2.prototype.updateLayout = function(model, ecModel, api, payload) { }; ComponentView2.prototype.updateVisual = function(model, ecModel, api, payload) { }; ComponentView2.prototype.toggleBlurSeries = function(seriesModels, isBlur, ecModel) { }; ComponentView2.prototype.eachRendered = function(cb) { var group = this.group; if (group) { group.traverse(cb); } }; return ComponentView2; }() ); enableClassExtend(ComponentView); enableClassManagement(ComponentView); var Component_default2 = ComponentView; // node_modules/echarts/lib/chart/helper/createRenderPlanner.js function createRenderPlanner() { var inner7 = makeInner(); return function(seriesModel) { var fields = inner7(seriesModel); var pipelineContext = seriesModel.pipelineContext; var originalLarge = !!fields.large; var originalProgressive = !!fields.progressiveRender; var large = fields.large = !!(pipelineContext && pipelineContext.large); var progressive = fields.progressiveRender = !!(pipelineContext && pipelineContext.progressiveRender); return !!(originalLarge !== large || originalProgressive !== progressive) && "reset"; }; } // node_modules/echarts/lib/view/Chart.js var inner3 = makeInner(); var renderPlanner = createRenderPlanner(); var ChartView = ( /** @class */ function() { function ChartView2() { this.group = new Group_default(); this.uid = getUID("viewChart"); this.renderTask = createTask({ plan: renderTaskPlan, reset: renderTaskReset }); this.renderTask.context = { view: this }; } ChartView2.prototype.init = function(ecModel, api) { }; ChartView2.prototype.render = function(seriesModel, ecModel, api, payload) { if (true) { throw new Error("render method must been implemented"); } }; ChartView2.prototype.highlight = function(seriesModel, ecModel, api, payload) { var data = seriesModel.getData(payload && payload.dataType); if (!data) { if (true) { error("Unknown dataType " + payload.dataType); } return; } toggleHighlight(data, payload, "emphasis"); }; ChartView2.prototype.downplay = function(seriesModel, ecModel, api, payload) { var data = seriesModel.getData(payload && payload.dataType); if (!data) { if (true) { error("Unknown dataType " + payload.dataType); } return; } toggleHighlight(data, payload, "normal"); }; ChartView2.prototype.remove = function(ecModel, api) { this.group.removeAll(); }; ChartView2.prototype.dispose = function(ecModel, api) { }; ChartView2.prototype.updateView = function(seriesModel, ecModel, api, payload) { this.render(seriesModel, ecModel, api, payload); }; ChartView2.prototype.updateLayout = function(seriesModel, ecModel, api, payload) { this.render(seriesModel, ecModel, api, payload); }; ChartView2.prototype.updateVisual = function(seriesModel, ecModel, api, payload) { this.render(seriesModel, ecModel, api, payload); }; ChartView2.prototype.eachRendered = function(cb) { traverseElements(this.group, cb); }; ChartView2.markUpdateMethod = function(payload, methodName) { inner3(payload).updateMethod = methodName; }; ChartView2.protoInitialize = function() { var proto2 = ChartView2.prototype; proto2.type = "chart"; }(); return ChartView2; }() ); function elSetState(el, state, highlightDigit) { if (el && isHighDownDispatcher(el)) { (state === "emphasis" ? enterEmphasis : leaveEmphasis)(el, highlightDigit); } } function toggleHighlight(data, payload, state) { var dataIndex = queryDataIndex(data, payload); var highlightDigit = payload && payload.highlightKey != null ? getHighlightDigit(payload.highlightKey) : null; if (dataIndex != null) { each(normalizeToArray(dataIndex), function(dataIdx) { elSetState(data.getItemGraphicEl(dataIdx), state, highlightDigit); }); } else { data.eachItemGraphicEl(function(el) { elSetState(el, state, highlightDigit); }); } } enableClassExtend(ChartView, ["dispose"]); enableClassManagement(ChartView); function renderTaskPlan(context) { return renderPlanner(context.model); } function renderTaskReset(context) { var seriesModel = context.model; var ecModel = context.ecModel; var api = context.api; var payload = context.payload; var progressiveRender = seriesModel.pipelineContext.progressiveRender; var view = context.view; var updateMethod = payload && inner3(payload).updateMethod; var methodName = progressiveRender ? "incrementalPrepareRender" : updateMethod && view[updateMethod] ? updateMethod : "render"; if (methodName !== "render") { view[methodName](seriesModel, ecModel, api, payload); } return progressMethodMap[methodName]; } var progressMethodMap = { incrementalPrepareRender: { progress: function(params, context) { context.view.incrementalRender(params, context.model, context.ecModel, context.api, context.payload); } }, render: { // Put view.render in `progress` to support appendData. But in this case // view.render should not be called in reset, otherwise it will be called // twise. Use `forceFirstProgress` to make sure that view.render is called // in any cases. forceFirstProgress: true, progress: function(params, context) { context.view.render(context.model, context.ecModel, context.api, context.payload); } } }; var Chart_default = ChartView; // node_modules/echarts/lib/util/throttle.js var ORIGIN_METHOD = "\0__throttleOriginMethod"; var RATE = "\0__throttleRate"; var THROTTLE_TYPE = "\0__throttleType"; function throttle(fn, delay, debounce) { var currCall; var lastCall = 0; var lastExec = 0; var timer = null; var diff; var scope; var args; var debounceNextCall; delay = delay || 0; function exec() { lastExec = (/* @__PURE__ */ new Date()).getTime(); timer = null; fn.apply(scope, args || []); } var cb = function() { var cbArgs = []; for (var _i = 0; _i < arguments.length; _i++) { cbArgs[_i] = arguments[_i]; } currCall = (/* @__PURE__ */ new Date()).getTime(); scope = this; args = cbArgs; var thisDelay = debounceNextCall || delay; var thisDebounce = debounceNextCall || debounce; debounceNextCall = null; diff = currCall - (thisDebounce ? lastCall : lastExec) - thisDelay; clearTimeout(timer); if (thisDebounce) { timer = setTimeout(exec, thisDelay); } else { if (diff >= 0) { exec(); } else { timer = setTimeout(exec, -diff); } } lastCall = currCall; }; cb.clear = function() { if (timer) { clearTimeout(timer); timer = null; } }; cb.debounceNextCall = function(debounceDelay) { debounceNextCall = debounceDelay; }; return cb; } function createOrUpdate(obj, fnAttr, rate, throttleType) { var fn = obj[fnAttr]; if (!fn) { return; } var originFn = fn[ORIGIN_METHOD] || fn; var lastThrottleType = fn[THROTTLE_TYPE]; var lastRate = fn[RATE]; if (lastRate !== rate || lastThrottleType !== throttleType) { if (rate == null || !throttleType) { return obj[fnAttr] = originFn; } fn = obj[fnAttr] = throttle(originFn, rate, throttleType === "debounce"); fn[ORIGIN_METHOD] = originFn; fn[THROTTLE_TYPE] = throttleType; fn[RATE] = rate; } return fn; } function clear(obj, fnAttr) { var fn = obj[fnAttr]; if (fn && fn[ORIGIN_METHOD]) { fn.clear && fn.clear(); obj[fnAttr] = fn[ORIGIN_METHOD]; } } // node_modules/echarts/lib/model/globalDefault.js var platform = ""; if (typeof navigator !== "undefined") { platform = navigator.platform || ""; } var decalColor = "rgba(0, 0, 0, 0.2)"; var globalDefault_default = { darkMode: "auto", // backgroundColor: 'rgba(0,0,0,0)', colorBy: "series", color: ["#5470c6", "#91cc75", "#fac858", "#ee6666", "#73c0de", "#3ba272", "#fc8452", "#9a60b4", "#ea7ccc"], gradientColor: ["#f6efa6", "#d88273", "#bf444c"], aria: { decal: { decals: [{ color: decalColor, dashArrayX: [1, 0], dashArrayY: [2, 5], symbolSize: 1, rotation: Math.PI / 6 }, { color: decalColor, symbol: "circle", dashArrayX: [[8, 8], [0, 8, 8, 0]], dashArrayY: [6, 0], symbolSize: 0.8 }, { color: decalColor, dashArrayX: [1, 0], dashArrayY: [4, 3], rotation: -Math.PI / 4 }, { color: decalColor, dashArrayX: [[6, 6], [0, 6, 6, 0]], dashArrayY: [6, 0] }, { color: decalColor, dashArrayX: [[1, 0], [1, 6]], dashArrayY: [1, 0, 6, 0], rotation: Math.PI / 4 }, { color: decalColor, symbol: "triangle", dashArrayX: [[9, 9], [0, 9, 9, 0]], dashArrayY: [7, 2], symbolSize: 0.75 }] } }, // If xAxis and yAxis declared, grid is created by default. // grid: {}, textStyle: { // color: '#000', // decoration: 'none', // PENDING fontFamily: platform.match(/^Win/) ? "Microsoft YaHei" : "sans-serif", // fontFamily: 'Arial, Verdana, sans-serif', fontSize: 12, fontStyle: "normal", fontWeight: "normal" }, // http://blogs.adobe.com/webplatform/2014/02/24/using-blend-modes-in-html-canvas/ // https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/globalCompositeOperation // Default is source-over blendMode: null, stateAnimation: { duration: 300, easing: "cubicOut" }, animation: "auto", animationDuration: 1e3, animationDurationUpdate: 500, animationEasing: "cubicInOut", animationEasingUpdate: "cubicInOut", animationThreshold: 2e3, // Configuration for progressive/incremental rendering progressiveThreshold: 3e3, progressive: 400, // Threshold of if use single hover layer to optimize. // It is recommended that `hoverLayerThreshold` is equivalent to or less than // `progressiveThreshold`, otherwise hover will cause restart of progressive, // which is unexpected. // see example . hoverLayerThreshold: 3e3, // See: module:echarts/scale/Time useUTC: false }; // node_modules/echarts/lib/model/internalComponentCreator.js var internalOptionCreatorMap = createHashMap(); function registerInternalOptionCreator(mainType, creator) { assert(internalOptionCreatorMap.get(mainType) == null && creator); internalOptionCreatorMap.set(mainType, creator); } function concatInternalOptions(ecModel, mainType, newCmptOptionList) { var internalOptionCreator = internalOptionCreatorMap.get(mainType); if (!internalOptionCreator) { return newCmptOptionList; } var internalOptions = internalOptionCreator(ecModel); if (!internalOptions) { return newCmptOptionList; } if (true) { for (var i = 0; i < internalOptions.length; i++) { assert(isComponentIdInternal(internalOptions[i])); } } return newCmptOptionList.concat(internalOptions); } // node_modules/echarts/lib/model/Global.js var reCreateSeriesIndices; var assertSeriesInitialized; var initBase; var OPTION_INNER_KEY = "\0_ec_inner"; var OPTION_INNER_VALUE = 1; var BUITIN_COMPONENTS_MAP = { grid: "GridComponent", polar: "PolarComponent", geo: "GeoComponent", singleAxis: "SingleAxisComponent", parallel: "ParallelComponent", calendar: "CalendarComponent", graphic: "GraphicComponent", toolbox: "ToolboxComponent", tooltip: "TooltipComponent", axisPointer: "AxisPointerComponent", brush: "BrushComponent", title: "TitleComponent", timeline: "TimelineComponent", markPoint: "MarkPointComponent", markLine: "MarkLineComponent", markArea: "MarkAreaComponent", legend: "LegendComponent", dataZoom: "DataZoomComponent", visualMap: "VisualMapComponent", // aria: 'AriaComponent', // dataset: 'DatasetComponent', // Dependencies xAxis: "GridComponent", yAxis: "GridComponent", angleAxis: "PolarComponent", radiusAxis: "PolarComponent" }; var BUILTIN_CHARTS_MAP = { line: "LineChart", bar: "BarChart", pie: "PieChart", scatter: "ScatterChart", radar: "RadarChart", map: "MapChart", tree: "TreeChart", treemap: "TreemapChart", graph: "GraphChart", gauge: "GaugeChart", funnel: "FunnelChart", parallel: "ParallelChart", sankey: "SankeyChart", boxplot: "BoxplotChart", candlestick: "CandlestickChart", effectScatter: "EffectScatterChart", lines: "LinesChart", heatmap: "HeatmapChart", pictorialBar: "PictorialBarChart", themeRiver: "ThemeRiverChart", sunburst: "SunburstChart", custom: "CustomChart" }; var componetsMissingLogPrinted = {}; function checkMissingComponents(option) { each(option, function(componentOption, mainType) { if (!Component_default.hasClass(mainType)) { var componentImportName = BUITIN_COMPONENTS_MAP[mainType]; if (componentImportName && !componetsMissingLogPrinted[componentImportName]) { error("Component " + mainType + " is used but not imported.\nimport { " + componentImportName + " } from 'echarts/components';\necharts.use([" + componentImportName + "]);"); componetsMissingLogPrinted[componentImportName] = true; } } }); } var GlobalModel = ( /** @class */ function(_super) { __extends(GlobalModel2, _super); function GlobalModel2() { return _super !== null && _super.apply(this, arguments) || this; } GlobalModel2.prototype.init = function(option, parentModel, ecModel, theme2, locale, optionManager) { theme2 = theme2 || {}; this.option = null; this._theme = new Model_default(theme2); this._locale = new Model_default(locale); this._optionManager = optionManager; }; GlobalModel2.prototype.setOption = function(option, opts, optionPreprocessorFuncs2) { if (true) { assert(option != null, "option is null/undefined"); assert(option[OPTION_INNER_KEY] !== OPTION_INNER_VALUE, "please use chart.getOption()"); } var innerOpt = normalizeSetOptionInput(opts); this._optionManager.setOption(option, optionPreprocessorFuncs2, innerOpt); this._resetOption(null, innerOpt); }; GlobalModel2.prototype.resetOption = function(type, opt) { return this._resetOption(type, normalizeSetOptionInput(opt)); }; GlobalModel2.prototype._resetOption = function(type, opt) { var optionChanged = false; var optionManager = this._optionManager; if (!type || type === "recreate") { var baseOption = optionManager.mountOption(type === "recreate"); if (true) { checkMissingComponents(baseOption); } if (!this.option || type === "recreate") { initBase(this, baseOption); } else { this.restoreData(); this._mergeOption(baseOption, opt); } optionChanged = true; } if (type === "timeline" || type === "media") { this.restoreData(); } if (!type || type === "recreate" || type === "timeline") { var timelineOption = optionManager.getTimelineOption(this); if (timelineOption) { optionChanged = true; this._mergeOption(timelineOption, opt); } } if (!type || type === "recreate" || type === "media") { var mediaOptions = optionManager.getMediaOption(this); if (mediaOptions.length) { each(mediaOptions, function(mediaOption) { optionChanged = true; this._mergeOption(mediaOption, opt); }, this); } } return optionChanged; }; GlobalModel2.prototype.mergeOption = function(option) { this._mergeOption(option, null); }; GlobalModel2.prototype._mergeOption = function(newOption, opt) { var option = this.option; var componentsMap = this._componentsMap; var componentsCount = this._componentsCount; var newCmptTypes = []; var newCmptTypeMap = createHashMap(); var replaceMergeMainTypeMap = opt && opt.replaceMergeMainTypeMap; resetSourceDefaulter(this); each(newOption, function(componentOption, mainType) { if (componentOption == null) { return; } if (!Component_default.hasClass(mainType)) { option[mainType] = option[mainType] == null ? clone(componentOption) : merge(option[mainType], componentOption, true); } else if (mainType) { newCmptTypes.push(mainType); newCmptTypeMap.set(mainType, true); } }); if (replaceMergeMainTypeMap) { replaceMergeMainTypeMap.each(function(val, mainTypeInReplaceMerge) { if (Component_default.hasClass(mainTypeInReplaceMerge) && !newCmptTypeMap.get(mainTypeInReplaceMerge)) { newCmptTypes.push(mainTypeInReplaceMerge); newCmptTypeMap.set(mainTypeInReplaceMerge, true); } }); } Component_default.topologicalTravel(newCmptTypes, Component_default.getAllClassMainTypes(), visitComponent, this); function visitComponent(mainType) { var newCmptOptionList = concatInternalOptions(this, mainType, normalizeToArray(newOption[mainType])); var oldCmptList = componentsMap.get(mainType); var mergeMode = ( // `!oldCmptList` means init. See the comment in `mappingToExists` !oldCmptList ? "replaceAll" : replaceMergeMainTypeMap && replaceMergeMainTypeMap.get(mainType) ? "replaceMerge" : "normalMerge" ); var mappingResult = mappingToExists(oldCmptList, newCmptOptionList, mergeMode); setComponentTypeToKeyInfo(mappingResult, mainType, Component_default); option[mainType] = null; componentsMap.set(mainType, null); componentsCount.set(mainType, 0); var optionsByMainType = []; var cmptsByMainType = []; var cmptsCountByMainType = 0; var tooltipExists; var tooltipWarningLogged; each(mappingResult, function(resultItem, index) { var componentModel = resultItem.existing; var newCmptOption = resultItem.newOption; if (!newCmptOption) { if (componentModel) { componentModel.mergeOption({}, this); componentModel.optionUpdated({}, false); } } else { var isSeriesType = mainType === "series"; var ComponentModelClass = Component_default.getClass( mainType, resultItem.keyInfo.subType, !isSeriesType // Give a more detailed warn later if series don't exists ); if (!ComponentModelClass) { if (true) { var subType = resultItem.keyInfo.subType; var seriesImportName = BUILTIN_CHARTS_MAP[subType]; if (!componetsMissingLogPrinted[subType]) { componetsMissingLogPrinted[subType] = true; if (seriesImportName) { error("Series " + subType + " is used but not imported.\nimport { " + seriesImportName + " } from 'echarts/charts';\necharts.use([" + seriesImportName + "]);"); } else { error("Unknown series " + subType); } } } return; } if (mainType === "tooltip") { if (tooltipExists) { if (true) { if (!tooltipWarningLogged) { warn("Currently only one tooltip component is allowed."); tooltipWarningLogged = true; } } return; } tooltipExists = true; } if (componentModel && componentModel.constructor === ComponentModelClass) { componentModel.name = resultItem.keyInfo.name; componentModel.mergeOption(newCmptOption, this); componentModel.optionUpdated(newCmptOption, false); } else { var extraOpt = extend({ componentIndex: index }, resultItem.keyInfo); componentModel = new ComponentModelClass(newCmptOption, this, this, extraOpt); extend(componentModel, extraOpt); if (resultItem.brandNew) { componentModel.__requireNewView = true; } componentModel.init(newCmptOption, this, this); componentModel.optionUpdated(null, true); } } if (componentModel) { optionsByMainType.push(componentModel.option); cmptsByMainType.push(componentModel); cmptsCountByMainType++; } else { optionsByMainType.push(void 0); cmptsByMainType.push(void 0); } }, this); option[mainType] = optionsByMainType; componentsMap.set(mainType, cmptsByMainType); componentsCount.set(mainType, cmptsCountByMainType); if (mainType === "series") { reCreateSeriesIndices(this); } } if (!this._seriesIndices) { reCreateSeriesIndices(this); } }; GlobalModel2.prototype.getOption = function() { var option = clone(this.option); each(option, function(optInMainType, mainType) { if (Component_default.hasClass(mainType)) { var opts = normalizeToArray(optInMainType); var realLen = opts.length; var metNonInner = false; for (var i = realLen - 1; i >= 0; i--) { if (opts[i] && !isComponentIdInternal(opts[i])) { metNonInner = true; } else { opts[i] = null; !metNonInner && realLen--; } } opts.length = realLen; option[mainType] = opts; } }); delete option[OPTION_INNER_KEY]; return option; }; GlobalModel2.prototype.getTheme = function() { return this._theme; }; GlobalModel2.prototype.getLocaleModel = function() { return this._locale; }; GlobalModel2.prototype.setUpdatePayload = function(payload) { this._payload = payload; }; GlobalModel2.prototype.getUpdatePayload = function() { return this._payload; }; GlobalModel2.prototype.getComponent = function(mainType, idx) { var list = this._componentsMap.get(mainType); if (list) { var cmpt = list[idx || 0]; if (cmpt) { return cmpt; } else if (idx == null) { for (var i = 0; i < list.length; i++) { if (list[i]) { return list[i]; } } } } }; GlobalModel2.prototype.queryComponents = function(condition) { var mainType = condition.mainType; if (!mainType) { return []; } var index = condition.index; var id = condition.id; var name = condition.name; var cmpts = this._componentsMap.get(mainType); if (!cmpts || !cmpts.length) { return []; } var result; if (index != null) { result = []; each(normalizeToArray(index), function(idx) { cmpts[idx] && result.push(cmpts[idx]); }); } else if (id != null) { result = queryByIdOrName("id", id, cmpts); } else if (name != null) { result = queryByIdOrName("name", name, cmpts); } else { result = filter(cmpts, function(cmpt) { return !!cmpt; }); } return filterBySubType(result, condition); }; GlobalModel2.prototype.findComponents = function(condition) { var query = condition.query; var mainType = condition.mainType; var queryCond = getQueryCond(query); var result = queryCond ? this.queryComponents(queryCond) : filter(this._componentsMap.get(mainType), function(cmpt) { return !!cmpt; }); return doFilter(filterBySubType(result, condition)); function getQueryCond(q) { var indexAttr = mainType + "Index"; var idAttr = mainType + "Id"; var nameAttr = mainType + "Name"; return q && (q[indexAttr] != null || q[idAttr] != null || q[nameAttr] != null) ? { mainType, // subType will be filtered finally. index: q[indexAttr], id: q[idAttr], name: q[nameAttr] } : null; } function doFilter(res) { return condition.filter ? filter(res, condition.filter) : res; } }; GlobalModel2.prototype.eachComponent = function(mainType, cb, context) { var componentsMap = this._componentsMap; if (isFunction(mainType)) { var ctxForAll_1 = cb; var cbForAll_1 = mainType; componentsMap.each(function(cmpts2, componentType) { for (var i2 = 0; cmpts2 && i2 < cmpts2.length; i2++) { var cmpt2 = cmpts2[i2]; cmpt2 && cbForAll_1.call(ctxForAll_1, componentType, cmpt2, cmpt2.componentIndex); } }); } else { var cmpts = isString(mainType) ? componentsMap.get(mainType) : isObject(mainType) ? this.findComponents(mainType) : null; for (var i = 0; cmpts && i < cmpts.length; i++) { var cmpt = cmpts[i]; cmpt && cb.call(context, cmpt, cmpt.componentIndex); } } }; GlobalModel2.prototype.getSeriesByName = function(name) { var nameStr = convertOptionIdName(name, null); return filter(this._componentsMap.get("series"), function(oneSeries) { return !!oneSeries && nameStr != null && oneSeries.name === nameStr; }); }; GlobalModel2.prototype.getSeriesByIndex = function(seriesIndex) { return this._componentsMap.get("series")[seriesIndex]; }; GlobalModel2.prototype.getSeriesByType = function(subType) { return filter(this._componentsMap.get("series"), function(oneSeries) { return !!oneSeries && oneSeries.subType === subType; }); }; GlobalModel2.prototype.getSeries = function() { return filter(this._componentsMap.get("series"), function(oneSeries) { return !!oneSeries; }); }; GlobalModel2.prototype.getSeriesCount = function() { return this._componentsCount.get("series"); }; GlobalModel2.prototype.eachSeries = function(cb, context) { assertSeriesInitialized(this); each(this._seriesIndices, function(rawSeriesIndex) { var series = this._componentsMap.get("series")[rawSeriesIndex]; cb.call(context, series, rawSeriesIndex); }, this); }; GlobalModel2.prototype.eachRawSeries = function(cb, context) { each(this._componentsMap.get("series"), function(series) { series && cb.call(context, series, series.componentIndex); }); }; GlobalModel2.prototype.eachSeriesByType = function(subType, cb, context) { assertSeriesInitialized(this); each(this._seriesIndices, function(rawSeriesIndex) { var series = this._componentsMap.get("series")[rawSeriesIndex]; if (series.subType === subType) { cb.call(context, series, rawSeriesIndex); } }, this); }; GlobalModel2.prototype.eachRawSeriesByType = function(subType, cb, context) { return each(this.getSeriesByType(subType), cb, context); }; GlobalModel2.prototype.isSeriesFiltered = function(seriesModel) { assertSeriesInitialized(this); return this._seriesIndicesMap.get(seriesModel.componentIndex) == null; }; GlobalModel2.prototype.getCurrentSeriesIndices = function() { return (this._seriesIndices || []).slice(); }; GlobalModel2.prototype.filterSeries = function(cb, context) { assertSeriesInitialized(this); var newSeriesIndices = []; each(this._seriesIndices, function(seriesRawIdx) { var series = this._componentsMap.get("series")[seriesRawIdx]; cb.call(context, series, seriesRawIdx) && newSeriesIndices.push(seriesRawIdx); }, this); this._seriesIndices = newSeriesIndices; this._seriesIndicesMap = createHashMap(newSeriesIndices); }; GlobalModel2.prototype.restoreData = function(payload) { reCreateSeriesIndices(this); var componentsMap = this._componentsMap; var componentTypes = []; componentsMap.each(function(components, componentType) { if (Component_default.hasClass(componentType)) { componentTypes.push(componentType); } }); Component_default.topologicalTravel(componentTypes, Component_default.getAllClassMainTypes(), function(componentType) { each(componentsMap.get(componentType), function(component) { if (component && (componentType !== "series" || !isNotTargetSeries(component, payload))) { component.restoreData(); } }); }); }; GlobalModel2.internalField = function() { reCreateSeriesIndices = function(ecModel) { var seriesIndices = ecModel._seriesIndices = []; each(ecModel._componentsMap.get("series"), function(series) { series && seriesIndices.push(series.componentIndex); }); ecModel._seriesIndicesMap = createHashMap(seriesIndices); }; assertSeriesInitialized = function(ecModel) { if (true) { if (!ecModel._seriesIndices) { throw new Error("Option should contains series."); } } }; initBase = function(ecModel, baseOption) { ecModel.option = {}; ecModel.option[OPTION_INNER_KEY] = OPTION_INNER_VALUE; ecModel._componentsMap = createHashMap({ series: [] }); ecModel._componentsCount = createHashMap(); var airaOption = baseOption.aria; if (isObject(airaOption) && airaOption.enabled == null) { airaOption.enabled = true; } mergeTheme(baseOption, ecModel._theme.option); merge(baseOption, globalDefault_default, false); ecModel._mergeOption(baseOption, null); }; }(); return GlobalModel2; }(Model_default) ); function isNotTargetSeries(seriesModel, payload) { if (payload) { var index = payload.seriesIndex; var id = payload.seriesId; var name_1 = payload.seriesName; return index != null && seriesModel.componentIndex !== index || id != null && seriesModel.id !== id || name_1 != null && seriesModel.name !== name_1; } } function mergeTheme(option, theme2) { var notMergeColorLayer = option.color && !option.colorLayer; each(theme2, function(themeItem, name) { if (name === "colorLayer" && notMergeColorLayer) { return; } if (!Component_default.hasClass(name)) { if (typeof themeItem === "object") { option[name] = !option[name] ? clone(themeItem) : merge(option[name], themeItem, false); } else { if (option[name] == null) { option[name] = themeItem; } } } }); } function queryByIdOrName(attr, idOrName, cmpts) { if (isArray(idOrName)) { var keyMap_1 = createHashMap(); each(idOrName, function(idOrNameItem) { if (idOrNameItem != null) { var idName = convertOptionIdName(idOrNameItem, null); idName != null && keyMap_1.set(idOrNameItem, true); } }); return filter(cmpts, function(cmpt) { return cmpt && keyMap_1.get(cmpt[attr]); }); } else { var idName_1 = convertOptionIdName(idOrName, null); return filter(cmpts, function(cmpt) { return cmpt && idName_1 != null && cmpt[attr] === idName_1; }); } } function filterBySubType(components, condition) { return condition.hasOwnProperty("subType") ? filter(components, function(cmpt) { return cmpt && cmpt.subType === condition.subType; }) : components; } function normalizeSetOptionInput(opts) { var replaceMergeMainTypeMap = createHashMap(); opts && each(normalizeToArray(opts.replaceMerge), function(mainType) { if (true) { assert(Component_default.hasClass(mainType), '"' + mainType + '" is not valid component main type in "replaceMerge"'); } replaceMergeMainTypeMap.set(mainType, true); }); return { replaceMergeMainTypeMap }; } mixin(GlobalModel, PaletteMixin); var Global_default = GlobalModel; // node_modules/echarts/lib/core/ExtensionAPI.js var availableMethods = [ "getDom", "getZr", "getWidth", "getHeight", "getDevicePixelRatio", "dispatchAction", "isSSR", "isDisposed", "on", "off", "getDataURL", "getConnectedDataURL", // 'getModel', "getOption", // 'getViewOfComponentModel', // 'getViewOfSeriesModel', "getId", "updateLabelLayout" ]; var ExtensionAPI = ( /** @class */ /* @__PURE__ */ function() { function ExtensionAPI2(ecInstance) { each(availableMethods, function(methodName) { this[methodName] = bind(ecInstance[methodName], ecInstance); }, this); } return ExtensionAPI2; }() ); var ExtensionAPI_default = ExtensionAPI; // node_modules/echarts/lib/core/CoordinateSystem.js var coordinateSystemCreators = {}; var CoordinateSystemManager = ( /** @class */ function() { function CoordinateSystemManager2() { this._coordinateSystems = []; } CoordinateSystemManager2.prototype.create = function(ecModel, api) { var coordinateSystems = []; each(coordinateSystemCreators, function(creator, type) { var list = creator.create(ecModel, api); coordinateSystems = coordinateSystems.concat(list || []); }); this._coordinateSystems = coordinateSystems; }; CoordinateSystemManager2.prototype.update = function(ecModel, api) { each(this._coordinateSystems, function(coordSys) { coordSys.update && coordSys.update(ecModel, api); }); }; CoordinateSystemManager2.prototype.getCoordinateSystems = function() { return this._coordinateSystems.slice(); }; CoordinateSystemManager2.register = function(type, creator) { coordinateSystemCreators[type] = creator; }; CoordinateSystemManager2.get = function(type) { return coordinateSystemCreators[type]; }; return CoordinateSystemManager2; }() ); var CoordinateSystem_default = CoordinateSystemManager; // node_modules/echarts/lib/model/OptionManager.js var QUERY_REG = /^(min|max)?(.+)$/; var OptionManager = ( /** @class */ function() { function OptionManager2(api) { this._timelineOptions = []; this._mediaList = []; this._currentMediaIndices = []; this._api = api; } OptionManager2.prototype.setOption = function(rawOption, optionPreprocessorFuncs2, opt) { if (rawOption) { each(normalizeToArray(rawOption.series), function(series) { series && series.data && isTypedArray(series.data) && setAsPrimitive(series.data); }); each(normalizeToArray(rawOption.dataset), function(dataset) { dataset && dataset.source && isTypedArray(dataset.source) && setAsPrimitive(dataset.source); }); } rawOption = clone(rawOption); var optionBackup = this._optionBackup; var newParsedOption = parseRawOption(rawOption, optionPreprocessorFuncs2, !optionBackup); this._newBaseOption = newParsedOption.baseOption; if (optionBackup) { if (newParsedOption.timelineOptions.length) { optionBackup.timelineOptions = newParsedOption.timelineOptions; } if (newParsedOption.mediaList.length) { optionBackup.mediaList = newParsedOption.mediaList; } if (newParsedOption.mediaDefault) { optionBackup.mediaDefault = newParsedOption.mediaDefault; } } else { this._optionBackup = newParsedOption; } }; OptionManager2.prototype.mountOption = function(isRecreate) { var optionBackup = this._optionBackup; this._timelineOptions = optionBackup.timelineOptions; this._mediaList = optionBackup.mediaList; this._mediaDefault = optionBackup.mediaDefault; this._currentMediaIndices = []; return clone(isRecreate ? optionBackup.baseOption : this._newBaseOption); }; OptionManager2.prototype.getTimelineOption = function(ecModel) { var option; var timelineOptions = this._timelineOptions; if (timelineOptions.length) { var timelineModel = ecModel.getComponent("timeline"); if (timelineModel) { option = clone( // FIXME:TS as TimelineModel or quivlant interface timelineOptions[timelineModel.getCurrentIndex()] ); } } return option; }; OptionManager2.prototype.getMediaOption = function(ecModel) { var ecWidth = this._api.getWidth(); var ecHeight = this._api.getHeight(); var mediaList = this._mediaList; var mediaDefault = this._mediaDefault; var indices = []; var result = []; if (!mediaList.length && !mediaDefault) { return result; } for (var i = 0, len = mediaList.length; i < len; i++) { if (applyMediaQuery(mediaList[i].query, ecWidth, ecHeight)) { indices.push(i); } } if (!indices.length && mediaDefault) { indices = [-1]; } if (indices.length && !indicesEquals(indices, this._currentMediaIndices)) { result = map(indices, function(index) { return clone(index === -1 ? mediaDefault.option : mediaList[index].option); }); } this._currentMediaIndices = indices; return result; }; return OptionManager2; }() ); function parseRawOption(rawOption, optionPreprocessorFuncs2, isNew) { var mediaList = []; var mediaDefault; var baseOption; var declaredBaseOption = rawOption.baseOption; var timelineOnRoot = rawOption.timeline; var timelineOptionsOnRoot = rawOption.options; var mediaOnRoot = rawOption.media; var hasMedia = !!rawOption.media; var hasTimeline = !!(timelineOptionsOnRoot || timelineOnRoot || declaredBaseOption && declaredBaseOption.timeline); if (declaredBaseOption) { baseOption = declaredBaseOption; if (!baseOption.timeline) { baseOption.timeline = timelineOnRoot; } } else { if (hasTimeline || hasMedia) { rawOption.options = rawOption.media = null; } baseOption = rawOption; } if (hasMedia) { if (isArray(mediaOnRoot)) { each(mediaOnRoot, function(singleMedia) { if (true) { if (singleMedia && !singleMedia.option && isObject(singleMedia.query) && isObject(singleMedia.query.option)) { error("Illegal media option. Must be like { media: [ { query: {}, option: {} } ] }"); } } if (singleMedia && singleMedia.option) { if (singleMedia.query) { mediaList.push(singleMedia); } else if (!mediaDefault) { mediaDefault = singleMedia; } } }); } else { if (true) { error("Illegal media option. Must be an array. Like { media: [ {...}, {...} ] }"); } } } doPreprocess(baseOption); each(timelineOptionsOnRoot, function(option) { return doPreprocess(option); }); each(mediaList, function(media) { return doPreprocess(media.option); }); function doPreprocess(option) { each(optionPreprocessorFuncs2, function(preProcess) { preProcess(option, isNew); }); } return { baseOption, timelineOptions: timelineOptionsOnRoot || [], mediaDefault, mediaList }; } function applyMediaQuery(query, ecWidth, ecHeight) { var realMap = { width: ecWidth, height: ecHeight, aspectratio: ecWidth / ecHeight // lower case for convenience. }; var applicable = true; each(query, function(value, attr) { var matched = attr.match(QUERY_REG); if (!matched || !matched[1] || !matched[2]) { return; } var operator = matched[1]; var realAttr = matched[2].toLowerCase(); if (!compare(realMap[realAttr], value, operator)) { applicable = false; } }); return applicable; } function compare(real, expect, operator) { if (operator === "min") { return real >= expect; } else if (operator === "max") { return real <= expect; } else { return real === expect; } } function indicesEquals(indices1, indices2) { return indices1.join(",") === indices2.join(","); } var OptionManager_default = OptionManager; // node_modules/echarts/lib/preprocessor/helper/compatStyle.js var each3 = each; var isObject2 = isObject; var POSSIBLE_STYLES = ["areaStyle", "lineStyle", "nodeStyle", "linkStyle", "chordStyle", "label", "labelLine"]; function compatEC2ItemStyle(opt) { var itemStyleOpt = opt && opt.itemStyle; if (!itemStyleOpt) { return; } for (var i = 0, len = POSSIBLE_STYLES.length; i < len; i++) { var styleName = POSSIBLE_STYLES[i]; var normalItemStyleOpt = itemStyleOpt.normal; var emphasisItemStyleOpt = itemStyleOpt.emphasis; if (normalItemStyleOpt && normalItemStyleOpt[styleName]) { if (true) { deprecateReplaceLog("itemStyle.normal." + styleName, styleName); } opt[styleName] = opt[styleName] || {}; if (!opt[styleName].normal) { opt[styleName].normal = normalItemStyleOpt[styleName]; } else { merge(opt[styleName].normal, normalItemStyleOpt[styleName]); } normalItemStyleOpt[styleName] = null; } if (emphasisItemStyleOpt && emphasisItemStyleOpt[styleName]) { if (true) { deprecateReplaceLog("itemStyle.emphasis." + styleName, "emphasis." + styleName); } opt[styleName] = opt[styleName] || {}; if (!opt[styleName].emphasis) { opt[styleName].emphasis = emphasisItemStyleOpt[styleName]; } else { merge(opt[styleName].emphasis, emphasisItemStyleOpt[styleName]); } emphasisItemStyleOpt[styleName] = null; } } } function convertNormalEmphasis(opt, optType, useExtend) { if (opt && opt[optType] && (opt[optType].normal || opt[optType].emphasis)) { var normalOpt = opt[optType].normal; var emphasisOpt = opt[optType].emphasis; if (normalOpt) { if (true) { deprecateLog("'normal' hierarchy in " + optType + " has been removed since 4.0. All style properties are configured in " + optType + " directly now."); } if (useExtend) { opt[optType].normal = opt[optType].emphasis = null; defaults(opt[optType], normalOpt); } else { opt[optType] = normalOpt; } } if (emphasisOpt) { if (true) { deprecateLog(optType + ".emphasis has been changed to emphasis." + optType + " since 4.0"); } opt.emphasis = opt.emphasis || {}; opt.emphasis[optType] = emphasisOpt; if (emphasisOpt.focus) { opt.emphasis.focus = emphasisOpt.focus; } if (emphasisOpt.blurScope) { opt.emphasis.blurScope = emphasisOpt.blurScope; } } } } function removeEC3NormalStatus(opt) { convertNormalEmphasis(opt, "itemStyle"); convertNormalEmphasis(opt, "lineStyle"); convertNormalEmphasis(opt, "areaStyle"); convertNormalEmphasis(opt, "label"); convertNormalEmphasis(opt, "labelLine"); convertNormalEmphasis(opt, "upperLabel"); convertNormalEmphasis(opt, "edgeLabel"); } function compatTextStyle(opt, propName) { var labelOptSingle = isObject2(opt) && opt[propName]; var textStyle = isObject2(labelOptSingle) && labelOptSingle.textStyle; if (textStyle) { if (true) { deprecateLog("textStyle hierarchy in " + propName + " has been removed since 4.0. All textStyle properties are configured in " + propName + " directly now."); } for (var i = 0, len = TEXT_STYLE_OPTIONS.length; i < len; i++) { var textPropName = TEXT_STYLE_OPTIONS[i]; if (textStyle.hasOwnProperty(textPropName)) { labelOptSingle[textPropName] = textStyle[textPropName]; } } } } function compatEC3CommonStyles(opt) { if (opt) { removeEC3NormalStatus(opt); compatTextStyle(opt, "label"); opt.emphasis && compatTextStyle(opt.emphasis, "label"); } } function processSeries(seriesOpt) { if (!isObject2(seriesOpt)) { return; } compatEC2ItemStyle(seriesOpt); removeEC3NormalStatus(seriesOpt); compatTextStyle(seriesOpt, "label"); compatTextStyle(seriesOpt, "upperLabel"); compatTextStyle(seriesOpt, "edgeLabel"); if (seriesOpt.emphasis) { compatTextStyle(seriesOpt.emphasis, "label"); compatTextStyle(seriesOpt.emphasis, "upperLabel"); compatTextStyle(seriesOpt.emphasis, "edgeLabel"); } var markPoint = seriesOpt.markPoint; if (markPoint) { compatEC2ItemStyle(markPoint); compatEC3CommonStyles(markPoint); } var markLine = seriesOpt.markLine; if (markLine) { compatEC2ItemStyle(markLine); compatEC3CommonStyles(markLine); } var markArea = seriesOpt.markArea; if (markArea) { compatEC3CommonStyles(markArea); } var data = seriesOpt.data; if (seriesOpt.type === "graph") { data = data || seriesOpt.nodes; var edgeData = seriesOpt.links || seriesOpt.edges; if (edgeData && !isTypedArray(edgeData)) { for (var i = 0; i < edgeData.length; i++) { compatEC3CommonStyles(edgeData[i]); } } each(seriesOpt.categories, function(opt) { removeEC3NormalStatus(opt); }); } if (data && !isTypedArray(data)) { for (var i = 0; i < data.length; i++) { compatEC3CommonStyles(data[i]); } } markPoint = seriesOpt.markPoint; if (markPoint && markPoint.data) { var mpData = markPoint.data; for (var i = 0; i < mpData.length; i++) { compatEC3CommonStyles(mpData[i]); } } markLine = seriesOpt.markLine; if (markLine && markLine.data) { var mlData = markLine.data; for (var i = 0; i < mlData.length; i++) { if (isArray(mlData[i])) { compatEC3CommonStyles(mlData[i][0]); compatEC3CommonStyles(mlData[i][1]); } else { compatEC3CommonStyles(mlData[i]); } } } if (seriesOpt.type === "gauge") { compatTextStyle(seriesOpt, "axisLabel"); compatTextStyle(seriesOpt, "title"); compatTextStyle(seriesOpt, "detail"); } else if (seriesOpt.type === "treemap") { convertNormalEmphasis(seriesOpt.breadcrumb, "itemStyle"); each(seriesOpt.levels, function(opt) { removeEC3NormalStatus(opt); }); } else if (seriesOpt.type === "tree") { removeEC3NormalStatus(seriesOpt.leaves); } } function toArr(o) { return isArray(o) ? o : o ? [o] : []; } function toObj(o) { return (isArray(o) ? o[0] : o) || {}; } function globalCompatStyle(option, isTheme) { each3(toArr(option.series), function(seriesOpt) { isObject2(seriesOpt) && processSeries(seriesOpt); }); var axes = ["xAxis", "yAxis", "radiusAxis", "angleAxis", "singleAxis", "parallelAxis", "radar"]; isTheme && axes.push("valueAxis", "categoryAxis", "logAxis", "timeAxis"); each3(axes, function(axisName) { each3(toArr(option[axisName]), function(axisOpt) { if (axisOpt) { compatTextStyle(axisOpt, "axisLabel"); compatTextStyle(axisOpt.axisPointer, "label"); } }); }); each3(toArr(option.parallel), function(parallelOpt) { var parallelAxisDefault = parallelOpt && parallelOpt.parallelAxisDefault; compatTextStyle(parallelAxisDefault, "axisLabel"); compatTextStyle(parallelAxisDefault && parallelAxisDefault.axisPointer, "label"); }); each3(toArr(option.calendar), function(calendarOpt) { convertNormalEmphasis(calendarOpt, "itemStyle"); compatTextStyle(calendarOpt, "dayLabel"); compatTextStyle(calendarOpt, "monthLabel"); compatTextStyle(calendarOpt, "yearLabel"); }); each3(toArr(option.radar), function(radarOpt) { compatTextStyle(radarOpt, "name"); if (radarOpt.name && radarOpt.axisName == null) { radarOpt.axisName = radarOpt.name; delete radarOpt.name; if (true) { deprecateLog("name property in radar component has been changed to axisName"); } } if (radarOpt.nameGap != null && radarOpt.axisNameGap == null) { radarOpt.axisNameGap = radarOpt.nameGap; delete radarOpt.nameGap; if (true) { deprecateLog("nameGap property in radar component has been changed to axisNameGap"); } } if (true) { each3(radarOpt.indicator, function(indicatorOpt) { if (indicatorOpt.text) { deprecateReplaceLog("text", "name", "radar.indicator"); } }); } }); each3(toArr(option.geo), function(geoOpt) { if (isObject2(geoOpt)) { compatEC3CommonStyles(geoOpt); each3(toArr(geoOpt.regions), function(regionObj) { compatEC3CommonStyles(regionObj); }); } }); each3(toArr(option.timeline), function(timelineOpt) { compatEC3CommonStyles(timelineOpt); convertNormalEmphasis(timelineOpt, "label"); convertNormalEmphasis(timelineOpt, "itemStyle"); convertNormalEmphasis(timelineOpt, "controlStyle", true); var data = timelineOpt.data; isArray(data) && each(data, function(item) { if (isObject(item)) { convertNormalEmphasis(item, "label"); convertNormalEmphasis(item, "itemStyle"); } }); }); each3(toArr(option.toolbox), function(toolboxOpt) { convertNormalEmphasis(toolboxOpt, "iconStyle"); each3(toolboxOpt.feature, function(featureOpt) { convertNormalEmphasis(featureOpt, "iconStyle"); }); }); compatTextStyle(toObj(option.axisPointer), "label"); compatTextStyle(toObj(option.tooltip).axisPointer, "label"); } // node_modules/echarts/lib/preprocessor/backwardCompat.js function get(opt, path) { var pathArr = path.split(","); var obj = opt; for (var i = 0; i < pathArr.length; i++) { obj = obj && obj[pathArr[i]]; if (obj == null) { break; } } return obj; } function set(opt, path, val, overwrite) { var pathArr = path.split(","); var obj = opt; var key; var i = 0; for (; i < pathArr.length - 1; i++) { key = pathArr[i]; if (obj[key] == null) { obj[key] = {}; } obj = obj[key]; } if (overwrite || obj[pathArr[i]] == null) { obj[pathArr[i]] = val; } } function compatLayoutProperties(option) { option && each(LAYOUT_PROPERTIES, function(prop) { if (prop[0] in option && !(prop[1] in option)) { option[prop[1]] = option[prop[0]]; } }); } var LAYOUT_PROPERTIES = [["x", "left"], ["y", "top"], ["x2", "right"], ["y2", "bottom"]]; var COMPATITABLE_COMPONENTS = ["grid", "geo", "parallel", "legend", "toolbox", "title", "visualMap", "dataZoom", "timeline"]; var BAR_ITEM_STYLE_MAP = [["borderRadius", "barBorderRadius"], ["borderColor", "barBorderColor"], ["borderWidth", "barBorderWidth"]]; function compatBarItemStyle(option) { var itemStyle = option && option.itemStyle; if (itemStyle) { for (var i = 0; i < BAR_ITEM_STYLE_MAP.length; i++) { var oldName = BAR_ITEM_STYLE_MAP[i][1]; var newName = BAR_ITEM_STYLE_MAP[i][0]; if (itemStyle[oldName] != null) { itemStyle[newName] = itemStyle[oldName]; if (true) { deprecateReplaceLog(oldName, newName); } } } } } function compatPieLabel(option) { if (!option) { return; } if (option.alignTo === "edge" && option.margin != null && option.edgeDistance == null) { if (true) { deprecateReplaceLog("label.margin", "label.edgeDistance", "pie"); } option.edgeDistance = option.margin; } } function compatSunburstState(option) { if (!option) { return; } if (option.downplay && !option.blur) { option.blur = option.downplay; if (true) { deprecateReplaceLog("downplay", "blur", "sunburst"); } } } function compatGraphFocus(option) { if (!option) { return; } if (option.focusNodeAdjacency != null) { option.emphasis = option.emphasis || {}; if (option.emphasis.focus == null) { if (true) { deprecateReplaceLog("focusNodeAdjacency", "emphasis: { focus: 'adjacency'}", "graph/sankey"); } option.emphasis.focus = "adjacency"; } } } function traverseTree(data, cb) { if (data) { for (var i = 0; i < data.length; i++) { cb(data[i]); data[i] && traverseTree(data[i].children, cb); } } } function globalBackwardCompat(option, isTheme) { globalCompatStyle(option, isTheme); option.series = normalizeToArray(option.series); each(option.series, function(seriesOpt) { if (!isObject(seriesOpt)) { return; } var seriesType2 = seriesOpt.type; if (seriesType2 === "line") { if (seriesOpt.clipOverflow != null) { seriesOpt.clip = seriesOpt.clipOverflow; if (true) { deprecateReplaceLog("clipOverflow", "clip", "line"); } } } else if (seriesType2 === "pie" || seriesType2 === "gauge") { if (seriesOpt.clockWise != null) { seriesOpt.clockwise = seriesOpt.clockWise; if (true) { deprecateReplaceLog("clockWise", "clockwise"); } } compatPieLabel(seriesOpt.label); var data = seriesOpt.data; if (data && !isTypedArray(data)) { for (var i = 0; i < data.length; i++) { compatPieLabel(data[i]); } } if (seriesOpt.hoverOffset != null) { seriesOpt.emphasis = seriesOpt.emphasis || {}; if (seriesOpt.emphasis.scaleSize = null) { if (true) { deprecateReplaceLog("hoverOffset", "emphasis.scaleSize"); } seriesOpt.emphasis.scaleSize = seriesOpt.hoverOffset; } } } else if (seriesType2 === "gauge") { var pointerColor = get(seriesOpt, "pointer.color"); pointerColor != null && set(seriesOpt, "itemStyle.color", pointerColor); } else if (seriesType2 === "bar") { compatBarItemStyle(seriesOpt); compatBarItemStyle(seriesOpt.backgroundStyle); compatBarItemStyle(seriesOpt.emphasis); var data = seriesOpt.data; if (data && !isTypedArray(data)) { for (var i = 0; i < data.length; i++) { if (typeof data[i] === "object") { compatBarItemStyle(data[i]); compatBarItemStyle(data[i] && data[i].emphasis); } } } } else if (seriesType2 === "sunburst") { var highlightPolicy = seriesOpt.highlightPolicy; if (highlightPolicy) { seriesOpt.emphasis = seriesOpt.emphasis || {}; if (!seriesOpt.emphasis.focus) { seriesOpt.emphasis.focus = highlightPolicy; if (true) { deprecateReplaceLog("highlightPolicy", "emphasis.focus", "sunburst"); } } } compatSunburstState(seriesOpt); traverseTree(seriesOpt.data, compatSunburstState); } else if (seriesType2 === "graph" || seriesType2 === "sankey") { compatGraphFocus(seriesOpt); } else if (seriesType2 === "map") { if (seriesOpt.mapType && !seriesOpt.map) { if (true) { deprecateReplaceLog("mapType", "map", "map"); } seriesOpt.map = seriesOpt.mapType; } if (seriesOpt.mapLocation) { if (true) { deprecateLog("`mapLocation` is not used anymore."); } defaults(seriesOpt, seriesOpt.mapLocation); } } if (seriesOpt.hoverAnimation != null) { seriesOpt.emphasis = seriesOpt.emphasis || {}; if (seriesOpt.emphasis && seriesOpt.emphasis.scale == null) { if (true) { deprecateReplaceLog("hoverAnimation", "emphasis.scale"); } seriesOpt.emphasis.scale = seriesOpt.hoverAnimation; } } compatLayoutProperties(seriesOpt); }); if (option.dataRange) { option.visualMap = option.dataRange; } each(COMPATITABLE_COMPONENTS, function(componentName) { var options = option[componentName]; if (options) { if (!isArray(options)) { options = [options]; } each(options, function(option2) { compatLayoutProperties(option2); }); } }); } // node_modules/echarts/lib/processor/dataStack.js function dataStack(ecModel) { var stackInfoMap = createHashMap(); ecModel.eachSeries(function(seriesModel) { var stack = seriesModel.get("stack"); if (stack) { var stackInfoList = stackInfoMap.get(stack) || stackInfoMap.set(stack, []); var data = seriesModel.getData(); var stackInfo = { // Used for calculate axis extent automatically. // TODO: Type getCalculationInfo return more specific type? stackResultDimension: data.getCalculationInfo("stackResultDimension"), stackedOverDimension: data.getCalculationInfo("stackedOverDimension"), stackedDimension: data.getCalculationInfo("stackedDimension"), stackedByDimension: data.getCalculationInfo("stackedByDimension"), isStackedByIndex: data.getCalculationInfo("isStackedByIndex"), data, seriesModel }; if (!stackInfo.stackedDimension || !(stackInfo.isStackedByIndex || stackInfo.stackedByDimension)) { return; } stackInfoList.length && data.setCalculationInfo("stackedOnSeries", stackInfoList[stackInfoList.length - 1].seriesModel); stackInfoList.push(stackInfo); } }); stackInfoMap.each(calculateStack); } function calculateStack(stackInfoList) { each(stackInfoList, function(targetStackInfo, idxInStack) { var resultVal = []; var resultNaN = [NaN, NaN]; var dims = [targetStackInfo.stackResultDimension, targetStackInfo.stackedOverDimension]; var targetData = targetStackInfo.data; var isStackedByIndex = targetStackInfo.isStackedByIndex; var stackStrategy = targetStackInfo.seriesModel.get("stackStrategy") || "samesign"; targetData.modify(dims, function(v0, v1, dataIndex) { var sum = targetData.get(targetStackInfo.stackedDimension, dataIndex); if (isNaN(sum)) { return resultNaN; } var byValue; var stackedDataRawIndex; if (isStackedByIndex) { stackedDataRawIndex = targetData.getRawIndex(dataIndex); } else { byValue = targetData.get(targetStackInfo.stackedByDimension, dataIndex); } var stackedOver = NaN; for (var j = idxInStack - 1; j >= 0; j--) { var stackInfo = stackInfoList[j]; if (!isStackedByIndex) { stackedDataRawIndex = stackInfo.data.rawIndexOf(stackInfo.stackedByDimension, byValue); } if (stackedDataRawIndex >= 0) { var val = stackInfo.data.getByRawIndex(stackInfo.stackResultDimension, stackedDataRawIndex); if (stackStrategy === "all" || stackStrategy === "positive" && val > 0 || stackStrategy === "negative" && val < 0 || stackStrategy === "samesign" && sum >= 0 && val > 0 || stackStrategy === "samesign" && sum <= 0 && val < 0) { sum = addSafe(sum, val); stackedOver = val; break; } } } resultVal[0] = sum; resultVal[1] = stackedOver; return resultVal; }); }); } // node_modules/echarts/lib/visual/style.js var inner4 = makeInner(); var defaultStyleMappers = { itemStyle: makeStyleMapper(ITEM_STYLE_KEY_MAP, true), lineStyle: makeStyleMapper(LINE_STYLE_KEY_MAP, true) }; var defaultColorKey = { lineStyle: "stroke", itemStyle: "fill" }; function getStyleMapper(seriesModel, stylePath) { var styleMapper = seriesModel.visualStyleMapper || defaultStyleMappers[stylePath]; if (!styleMapper) { console.warn("Unknown style type '" + stylePath + "'."); return defaultStyleMappers.itemStyle; } return styleMapper; } function getDefaultColorKey(seriesModel, stylePath) { var colorKey = seriesModel.visualDrawType || defaultColorKey[stylePath]; if (!colorKey) { console.warn("Unknown style type '" + stylePath + "'."); return "fill"; } return colorKey; } var seriesStyleTask = { createOnAllSeries: true, performRawSeries: true, reset: function(seriesModel, ecModel) { var data = seriesModel.getData(); var stylePath = seriesModel.visualStyleAccessPath || "itemStyle"; var styleModel = seriesModel.getModel(stylePath); var getStyle = getStyleMapper(seriesModel, stylePath); var globalStyle = getStyle(styleModel); var decalOption = styleModel.getShallow("decal"); if (decalOption) { data.setVisual("decal", decalOption); decalOption.dirty = true; } var colorKey = getDefaultColorKey(seriesModel, stylePath); var color = globalStyle[colorKey]; var colorCallback = isFunction(color) ? color : null; var hasAutoColor = globalStyle.fill === "auto" || globalStyle.stroke === "auto"; if (!globalStyle[colorKey] || colorCallback || hasAutoColor) { var colorPalette2 = seriesModel.getColorFromPalette( // TODO series count changed. seriesModel.name, null, ecModel.getSeriesCount() ); if (!globalStyle[colorKey]) { globalStyle[colorKey] = colorPalette2; data.setVisual("colorFromPalette", true); } globalStyle.fill = globalStyle.fill === "auto" || isFunction(globalStyle.fill) ? colorPalette2 : globalStyle.fill; globalStyle.stroke = globalStyle.stroke === "auto" || isFunction(globalStyle.stroke) ? colorPalette2 : globalStyle.stroke; } data.setVisual("style", globalStyle); data.setVisual("drawType", colorKey); if (!ecModel.isSeriesFiltered(seriesModel) && colorCallback) { data.setVisual("colorFromPalette", false); return { dataEach: function(data2, idx) { var dataParams = seriesModel.getDataParams(idx); var itemStyle = extend({}, globalStyle); itemStyle[colorKey] = colorCallback(dataParams); data2.setItemVisual(idx, "style", itemStyle); } }; } } }; var sharedModel = new Model_default(); var dataStyleTask = { createOnAllSeries: true, performRawSeries: true, reset: function(seriesModel, ecModel) { if (seriesModel.ignoreStyleOnData || ecModel.isSeriesFiltered(seriesModel)) { return; } var data = seriesModel.getData(); var stylePath = seriesModel.visualStyleAccessPath || "itemStyle"; var getStyle = getStyleMapper(seriesModel, stylePath); var colorKey = data.getVisual("drawType"); return { dataEach: data.hasItemOption ? function(data2, idx) { var rawItem = data2.getRawDataItem(idx); if (rawItem && rawItem[stylePath]) { sharedModel.option = rawItem[stylePath]; var style = getStyle(sharedModel); var existsStyle = data2.ensureUniqueItemVisual(idx, "style"); extend(existsStyle, style); if (sharedModel.option.decal) { data2.setItemVisual(idx, "decal", sharedModel.option.decal); sharedModel.option.decal.dirty = true; } if (colorKey in style) { data2.setItemVisual(idx, "colorFromPalette", false); } } } : null }; } }; var dataColorPaletteTask = { performRawSeries: true, overallReset: function(ecModel) { var paletteScopeGroupByType = createHashMap(); ecModel.eachSeries(function(seriesModel) { var colorBy = seriesModel.getColorBy(); if (seriesModel.isColorBySeries()) { return; } var key = seriesModel.type + "-" + colorBy; var colorScope = paletteScopeGroupByType.get(key); if (!colorScope) { colorScope = {}; paletteScopeGroupByType.set(key, colorScope); } inner4(seriesModel).scope = colorScope; }); ecModel.eachSeries(function(seriesModel) { if (seriesModel.isColorBySeries() || ecModel.isSeriesFiltered(seriesModel)) { return; } var dataAll = seriesModel.getRawData(); var idxMap = {}; var data = seriesModel.getData(); var colorScope = inner4(seriesModel).scope; var stylePath = seriesModel.visualStyleAccessPath || "itemStyle"; var colorKey = getDefaultColorKey(seriesModel, stylePath); data.each(function(idx) { var rawIdx = data.getRawIndex(idx); idxMap[rawIdx] = idx; }); dataAll.each(function(rawIdx) { var idx = idxMap[rawIdx]; var fromPalette = data.getItemVisual(idx, "colorFromPalette"); if (fromPalette) { var itemStyle = data.ensureUniqueItemVisual(idx, "style"); var name_1 = dataAll.getName(rawIdx) || rawIdx + ""; var dataCount = dataAll.count(); itemStyle[colorKey] = seriesModel.getColorFromPalette(name_1, colorScope, dataCount); } }); }); } }; // node_modules/echarts/lib/loading/default.js var PI3 = Math.PI; function defaultLoading(api, opts) { opts = opts || {}; defaults(opts, { text: "loading", textColor: "#000", fontSize: 12, fontWeight: "normal", fontStyle: "normal", fontFamily: "sans-serif", maskColor: "rgba(255, 255, 255, 0.8)", showSpinner: true, color: "#5470c6", spinnerRadius: 10, lineWidth: 5, zlevel: 0 }); var group = new Group_default(); var mask = new Rect_default({ style: { fill: opts.maskColor }, zlevel: opts.zlevel, z: 1e4 }); group.add(mask); var textContent = new Text_default({ style: { text: opts.text, fill: opts.textColor, fontSize: opts.fontSize, fontWeight: opts.fontWeight, fontStyle: opts.fontStyle, fontFamily: opts.fontFamily }, zlevel: opts.zlevel, z: 10001 }); var labelRect = new Rect_default({ style: { fill: "none" }, textContent, textConfig: { position: "right", distance: 10 }, zlevel: opts.zlevel, z: 10001 }); group.add(labelRect); var arc; if (opts.showSpinner) { arc = new Arc_default({ shape: { startAngle: -PI3 / 2, endAngle: -PI3 / 2 + 0.1, r: opts.spinnerRadius }, style: { stroke: opts.color, lineCap: "round", lineWidth: opts.lineWidth }, zlevel: opts.zlevel, z: 10001 }); arc.animateShape(true).when(1e3, { endAngle: PI3 * 3 / 2 }).start("circularInOut"); arc.animateShape(true).when(1e3, { startAngle: PI3 * 3 / 2 }).delay(300).start("circularInOut"); group.add(arc); } group.resize = function() { var textWidth = textContent.getBoundingRect().width; var r = opts.showSpinner ? opts.spinnerRadius : 0; var cx = (api.getWidth() - r * 2 - (opts.showSpinner && textWidth ? 10 : 0) - textWidth) / 2 - (opts.showSpinner && textWidth ? 0 : 5 + textWidth / 2) + (opts.showSpinner ? 0 : textWidth / 2) + (textWidth ? 0 : r); var cy = api.getHeight() / 2; opts.showSpinner && arc.setShape({ cx, cy }); labelRect.setShape({ x: cx - r, y: cy - r, width: r * 2, height: r * 2 }); mask.setShape({ x: 0, y: 0, width: api.getWidth(), height: api.getHeight() }); }; group.resize(); return group; } // node_modules/echarts/lib/core/Scheduler.js var Scheduler = ( /** @class */ function() { function Scheduler2(ecInstance, api, dataProcessorHandlers, visualHandlers) { this._stageTaskMap = createHashMap(); this.ecInstance = ecInstance; this.api = api; dataProcessorHandlers = this._dataProcessorHandlers = dataProcessorHandlers.slice(); visualHandlers = this._visualHandlers = visualHandlers.slice(); this._allHandlers = dataProcessorHandlers.concat(visualHandlers); } Scheduler2.prototype.restoreData = function(ecModel, payload) { ecModel.restoreData(payload); this._stageTaskMap.each(function(taskRecord) { var overallTask = taskRecord.overallTask; overallTask && overallTask.dirty(); }); }; Scheduler2.prototype.getPerformArgs = function(task, isBlock) { if (!task.__pipeline) { return; } var pipeline = this._pipelineMap.get(task.__pipeline.id); var pCtx = pipeline.context; var incremental = !isBlock && pipeline.progressiveEnabled && (!pCtx || pCtx.progressiveRender) && task.__idxInPipeline > pipeline.blockIndex; var step = incremental ? pipeline.step : null; var modDataCount = pCtx && pCtx.modDataCount; var modBy = modDataCount != null ? Math.ceil(modDataCount / step) : null; return { step, modBy, modDataCount }; }; Scheduler2.prototype.getPipeline = function(pipelineId) { return this._pipelineMap.get(pipelineId); }; Scheduler2.prototype.updateStreamModes = function(seriesModel, view) { var pipeline = this._pipelineMap.get(seriesModel.uid); var data = seriesModel.getData(); var dataLen = data.count(); var progressiveRender = pipeline.progressiveEnabled && view.incrementalPrepareRender && dataLen >= pipeline.threshold; var large = seriesModel.get("large") && dataLen >= seriesModel.get("largeThreshold"); var modDataCount = seriesModel.get("progressiveChunkMode") === "mod" ? dataLen : null; seriesModel.pipelineContext = pipeline.context = { progressiveRender, modDataCount, large }; }; Scheduler2.prototype.restorePipelines = function(ecModel) { var scheduler = this; var pipelineMap = scheduler._pipelineMap = createHashMap(); ecModel.eachSeries(function(seriesModel) { var progressive = seriesModel.getProgressive(); var pipelineId = seriesModel.uid; pipelineMap.set(pipelineId, { id: pipelineId, head: null, tail: null, threshold: seriesModel.getProgressiveThreshold(), progressiveEnabled: progressive && !(seriesModel.preventIncremental && seriesModel.preventIncremental()), blockIndex: -1, step: Math.round(progressive || 700), count: 0 }); scheduler._pipe(seriesModel, seriesModel.dataTask); }); }; Scheduler2.prototype.prepareStageTasks = function() { var stageTaskMap = this._stageTaskMap; var ecModel = this.api.getModel(); var api = this.api; each(this._allHandlers, function(handler) { var record = stageTaskMap.get(handler.uid) || stageTaskMap.set(handler.uid, {}); var errMsg = ""; if (true) { errMsg = '"reset" and "overallReset" must not be both specified.'; } assert(!(handler.reset && handler.overallReset), errMsg); handler.reset && this._createSeriesStageTask(handler, record, ecModel, api); handler.overallReset && this._createOverallStageTask(handler, record, ecModel, api); }, this); }; Scheduler2.prototype.prepareView = function(view, model, ecModel, api) { var renderTask = view.renderTask; var context = renderTask.context; context.model = model; context.ecModel = ecModel; context.api = api; renderTask.__block = !view.incrementalPrepareRender; this._pipe(model, renderTask); }; Scheduler2.prototype.performDataProcessorTasks = function(ecModel, payload) { this._performStageTasks(this._dataProcessorHandlers, ecModel, payload, { block: true }); }; Scheduler2.prototype.performVisualTasks = function(ecModel, payload, opt) { this._performStageTasks(this._visualHandlers, ecModel, payload, opt); }; Scheduler2.prototype._performStageTasks = function(stageHandlers, ecModel, payload, opt) { opt = opt || {}; var unfinished = false; var scheduler = this; each(stageHandlers, function(stageHandler, idx) { if (opt.visualType && opt.visualType !== stageHandler.visualType) { return; } var stageHandlerRecord = scheduler._stageTaskMap.get(stageHandler.uid); var seriesTaskMap = stageHandlerRecord.seriesTaskMap; var overallTask = stageHandlerRecord.overallTask; if (overallTask) { var overallNeedDirty_1; var agentStubMap = overallTask.agentStubMap; agentStubMap.each(function(stub) { if (needSetDirty(opt, stub)) { stub.dirty(); overallNeedDirty_1 = true; } }); overallNeedDirty_1 && overallTask.dirty(); scheduler.updatePayload(overallTask, payload); var performArgs_1 = scheduler.getPerformArgs(overallTask, opt.block); agentStubMap.each(function(stub) { stub.perform(performArgs_1); }); if (overallTask.perform(performArgs_1)) { unfinished = true; } } else if (seriesTaskMap) { seriesTaskMap.each(function(task, pipelineId) { if (needSetDirty(opt, task)) { task.dirty(); } var performArgs = scheduler.getPerformArgs(task, opt.block); performArgs.skip = !stageHandler.performRawSeries && ecModel.isSeriesFiltered(task.context.model); scheduler.updatePayload(task, payload); if (task.perform(performArgs)) { unfinished = true; } }); } }); function needSetDirty(opt2, task) { return opt2.setDirty && (!opt2.dirtyMap || opt2.dirtyMap.get(task.__pipeline.id)); } this.unfinished = unfinished || this.unfinished; }; Scheduler2.prototype.performSeriesTasks = function(ecModel) { var unfinished; ecModel.eachSeries(function(seriesModel) { unfinished = seriesModel.dataTask.perform() || unfinished; }); this.unfinished = unfinished || this.unfinished; }; Scheduler2.prototype.plan = function() { this._pipelineMap.each(function(pipeline) { var task = pipeline.tail; do { if (task.__block) { pipeline.blockIndex = task.__idxInPipeline; break; } task = task.getUpstream(); } while (task); }); }; Scheduler2.prototype.updatePayload = function(task, payload) { payload !== "remain" && (task.context.payload = payload); }; Scheduler2.prototype._createSeriesStageTask = function(stageHandler, stageHandlerRecord, ecModel, api) { var scheduler = this; var oldSeriesTaskMap = stageHandlerRecord.seriesTaskMap; var newSeriesTaskMap = stageHandlerRecord.seriesTaskMap = createHashMap(); var seriesType2 = stageHandler.seriesType; var getTargetSeries = stageHandler.getTargetSeries; if (stageHandler.createOnAllSeries) { ecModel.eachRawSeries(create); } else if (seriesType2) { ecModel.eachRawSeriesByType(seriesType2, create); } else if (getTargetSeries) { getTargetSeries(ecModel, api).each(create); } function create(seriesModel) { var pipelineId = seriesModel.uid; var task = newSeriesTaskMap.set(pipelineId, oldSeriesTaskMap && oldSeriesTaskMap.get(pipelineId) || createTask({ plan: seriesTaskPlan, reset: seriesTaskReset, count: seriesTaskCount })); task.context = { model: seriesModel, ecModel, api, // PENDING: `useClearVisual` not used? useClearVisual: stageHandler.isVisual && !stageHandler.isLayout, plan: stageHandler.plan, reset: stageHandler.reset, scheduler }; scheduler._pipe(seriesModel, task); } }; Scheduler2.prototype._createOverallStageTask = function(stageHandler, stageHandlerRecord, ecModel, api) { var scheduler = this; var overallTask = stageHandlerRecord.overallTask = stageHandlerRecord.overallTask || createTask({ reset: overallTaskReset }); overallTask.context = { ecModel, api, overallReset: stageHandler.overallReset, scheduler }; var oldAgentStubMap = overallTask.agentStubMap; var newAgentStubMap = overallTask.agentStubMap = createHashMap(); var seriesType2 = stageHandler.seriesType; var getTargetSeries = stageHandler.getTargetSeries; var overallProgress = true; var shouldOverallTaskDirty = false; var errMsg = ""; if (true) { errMsg = '"createOnAllSeries" is not supported for "overallReset", because it will block all streams.'; } assert(!stageHandler.createOnAllSeries, errMsg); if (seriesType2) { ecModel.eachRawSeriesByType(seriesType2, createStub); } else if (getTargetSeries) { getTargetSeries(ecModel, api).each(createStub); } else { overallProgress = false; each(ecModel.getSeries(), createStub); } function createStub(seriesModel) { var pipelineId = seriesModel.uid; var stub = newAgentStubMap.set(pipelineId, oldAgentStubMap && oldAgentStubMap.get(pipelineId) || // When the result of `getTargetSeries` changed, the overallTask // should be set as dirty and re-performed. (shouldOverallTaskDirty = true, createTask({ reset: stubReset, onDirty: stubOnDirty }))); stub.context = { model: seriesModel, overallProgress // FIXME:TS never used, so comment it // modifyOutputEnd: modifyOutputEnd }; stub.agent = overallTask; stub.__block = overallProgress; scheduler._pipe(seriesModel, stub); } if (shouldOverallTaskDirty) { overallTask.dirty(); } }; Scheduler2.prototype._pipe = function(seriesModel, task) { var pipelineId = seriesModel.uid; var pipeline = this._pipelineMap.get(pipelineId); !pipeline.head && (pipeline.head = task); pipeline.tail && pipeline.tail.pipe(task); pipeline.tail = task; task.__idxInPipeline = pipeline.count++; task.__pipeline = pipeline; }; Scheduler2.wrapStageHandler = function(stageHandler, visualType) { if (isFunction(stageHandler)) { stageHandler = { overallReset: stageHandler, seriesType: detectSeriseType(stageHandler) }; } stageHandler.uid = getUID("stageHandler"); visualType && (stageHandler.visualType = visualType); return stageHandler; }; ; return Scheduler2; }() ); function overallTaskReset(context) { context.overallReset(context.ecModel, context.api, context.payload); } function stubReset(context) { return context.overallProgress && stubProgress; } function stubProgress() { this.agent.dirty(); this.getDownstream().dirty(); } function stubOnDirty() { this.agent && this.agent.dirty(); } function seriesTaskPlan(context) { return context.plan ? context.plan(context.model, context.ecModel, context.api, context.payload) : null; } function seriesTaskReset(context) { if (context.useClearVisual) { context.data.clearAllVisual(); } var resetDefines = context.resetDefines = normalizeToArray(context.reset(context.model, context.ecModel, context.api, context.payload)); return resetDefines.length > 1 ? map(resetDefines, function(v, idx) { return makeSeriesTaskProgress(idx); }) : singleSeriesTaskProgress; } var singleSeriesTaskProgress = makeSeriesTaskProgress(0); function makeSeriesTaskProgress(resetDefineIdx) { return function(params, context) { var data = context.data; var resetDefine = context.resetDefines[resetDefineIdx]; if (resetDefine && resetDefine.dataEach) { for (var i = params.start; i < params.end; i++) { resetDefine.dataEach(data, i); } } else if (resetDefine && resetDefine.progress) { resetDefine.progress(params, data); } }; } function seriesTaskCount(context) { return context.data.count(); } function detectSeriseType(legacyFunc) { seriesType = null; try { legacyFunc(ecModelMock, apiMock); } catch (e2) { } return seriesType; } var ecModelMock = {}; var apiMock = {}; var seriesType; mockMethods(ecModelMock, Global_default); mockMethods(apiMock, ExtensionAPI_default); ecModelMock.eachSeriesByType = ecModelMock.eachRawSeriesByType = function(type) { seriesType = type; }; ecModelMock.eachComponent = function(cond) { if (cond.mainType === "series" && cond.subType) { seriesType = cond.subType; } }; function mockMethods(target, Clz) { for (var name_1 in Clz.prototype) { target[name_1] = noop; } } var Scheduler_default = Scheduler; // node_modules/echarts/lib/theme/light.js var colorAll = ["#37A2DA", "#32C5E9", "#67E0E3", "#9FE6B8", "#FFDB5C", "#ff9f7f", "#fb7293", "#E062AE", "#E690D1", "#e7bcf3", "#9d96f5", "#8378EA", "#96BFFF"]; var light_default = { color: colorAll, colorLayer: [["#37A2DA", "#ffd85c", "#fd7b5f"], ["#37A2DA", "#67E0E3", "#FFDB5C", "#ff9f7f", "#E062AE", "#9d96f5"], ["#37A2DA", "#32C5E9", "#9FE6B8", "#FFDB5C", "#ff9f7f", "#fb7293", "#e7bcf3", "#8378EA", "#96BFFF"], colorAll] }; // node_modules/echarts/lib/theme/dark.js var contrastColor = "#B9B8CE"; var backgroundColor = "#100C2A"; var axisCommon = function() { return { axisLine: { lineStyle: { color: contrastColor } }, splitLine: { lineStyle: { color: "#484753" } }, splitArea: { areaStyle: { color: ["rgba(255,255,255,0.02)", "rgba(255,255,255,0.05)"] } }, minorSplitLine: { lineStyle: { color: "#20203B" } } }; }; var colorPalette = ["#4992ff", "#7cffb2", "#fddd60", "#ff6e76", "#58d9f9", "#05c091", "#ff8a45", "#8d48e3", "#dd79ff"]; var theme = { darkMode: true, color: colorPalette, backgroundColor, axisPointer: { lineStyle: { color: "#817f91" }, crossStyle: { color: "#817f91" }, label: { // TODO Contrast of label backgorundColor color: "#fff" } }, legend: { textStyle: { color: contrastColor }, pageTextStyle: { color: contrastColor } }, textStyle: { color: contrastColor }, title: { textStyle: { color: "#EEF1FA" }, subtextStyle: { color: "#B9B8CE" } }, toolbox: { iconStyle: { borderColor: contrastColor } }, dataZoom: { borderColor: "#71708A", textStyle: { color: contrastColor }, brushStyle: { color: "rgba(135,163,206,0.3)" }, handleStyle: { color: "#353450", borderColor: "#C5CBE3" }, moveHandleStyle: { color: "#B0B6C3", opacity: 0.3 }, fillerColor: "rgba(135,163,206,0.2)", emphasis: { handleStyle: { borderColor: "#91B7F2", color: "#4D587D" }, moveHandleStyle: { color: "#636D9A", opacity: 0.7 } }, dataBackground: { lineStyle: { color: "#71708A", width: 1 }, areaStyle: { color: "#71708A" } }, selectedDataBackground: { lineStyle: { color: "#87A3CE" }, areaStyle: { color: "#87A3CE" } } }, visualMap: { textStyle: { color: contrastColor } }, timeline: { lineStyle: { color: contrastColor }, label: { color: contrastColor }, controlStyle: { color: contrastColor, borderColor: contrastColor } }, calendar: { itemStyle: { color: backgroundColor }, dayLabel: { color: contrastColor }, monthLabel: { color: contrastColor }, yearLabel: { color: contrastColor } }, timeAxis: axisCommon(), logAxis: axisCommon(), valueAxis: axisCommon(), categoryAxis: axisCommon(), line: { symbol: "circle" }, graph: { color: colorPalette }, gauge: { title: { color: contrastColor }, axisLine: { lineStyle: { color: [[1, "rgba(207,212,219,0.2)"]] } }, axisLabel: { color: contrastColor }, detail: { color: "#EEF1FA" } }, candlestick: { itemStyle: { color: "#f64e56", color0: "#54ea92", borderColor: "#f64e56", borderColor0: "#54ea92" // borderColor: '#ca2824', // borderColor0: '#09a443' } } }; theme.categoryAxis.splitLine.show = false; var dark_default = theme; // node_modules/echarts/lib/util/ECEventProcessor.js var ECEventProcessor = ( /** @class */ function() { function ECEventProcessor2() { } ECEventProcessor2.prototype.normalizeQuery = function(query) { var cptQuery = {}; var dataQuery = {}; var otherQuery = {}; if (isString(query)) { var condCptType = parseClassType(query); cptQuery.mainType = condCptType.main || null; cptQuery.subType = condCptType.sub || null; } else { var suffixes_1 = ["Index", "Name", "Id"]; var dataKeys_1 = { name: 1, dataIndex: 1, dataType: 1 }; each(query, function(val, key) { var reserved = false; for (var i = 0; i < suffixes_1.length; i++) { var propSuffix = suffixes_1[i]; var suffixPos = key.lastIndexOf(propSuffix); if (suffixPos > 0 && suffixPos === key.length - propSuffix.length) { var mainType = key.slice(0, suffixPos); if (mainType !== "data") { cptQuery.mainType = mainType; cptQuery[propSuffix.toLowerCase()] = val; reserved = true; } } } if (dataKeys_1.hasOwnProperty(key)) { dataQuery[key] = val; reserved = true; } if (!reserved) { otherQuery[key] = val; } }); } return { cptQuery, dataQuery, otherQuery }; }; ECEventProcessor2.prototype.filter = function(eventType, query) { var eventInfo = this.eventInfo; if (!eventInfo) { return true; } var targetEl = eventInfo.targetEl; var packedEvent = eventInfo.packedEvent; var model = eventInfo.model; var view = eventInfo.view; if (!model || !view) { return true; } var cptQuery = query.cptQuery; var dataQuery = query.dataQuery; return check(cptQuery, model, "mainType") && check(cptQuery, model, "subType") && check(cptQuery, model, "index", "componentIndex") && check(cptQuery, model, "name") && check(cptQuery, model, "id") && check(dataQuery, packedEvent, "name") && check(dataQuery, packedEvent, "dataIndex") && check(dataQuery, packedEvent, "dataType") && (!view.filterForExposedEvent || view.filterForExposedEvent(eventType, query.otherQuery, targetEl, packedEvent)); function check(query2, host, prop, propOnHost) { return query2[prop] == null || host[propOnHost || prop] === query2[prop]; } }; ECEventProcessor2.prototype.afterTrigger = function() { this.eventInfo = null; }; return ECEventProcessor2; }() ); // node_modules/echarts/lib/visual/symbol.js var SYMBOL_PROPS_WITH_CB = ["symbol", "symbolSize", "symbolRotate", "symbolOffset"]; var SYMBOL_PROPS = SYMBOL_PROPS_WITH_CB.concat(["symbolKeepAspect"]); var seriesSymbolTask = { createOnAllSeries: true, // For legend. performRawSeries: true, reset: function(seriesModel, ecModel) { var data = seriesModel.getData(); if (seriesModel.legendIcon) { data.setVisual("legendIcon", seriesModel.legendIcon); } if (!seriesModel.hasSymbolVisual) { return; } var symbolOptions = {}; var symbolOptionsCb = {}; var hasCallback = false; for (var i = 0; i < SYMBOL_PROPS_WITH_CB.length; i++) { var symbolPropName = SYMBOL_PROPS_WITH_CB[i]; var val = seriesModel.get(symbolPropName); if (isFunction(val)) { hasCallback = true; symbolOptionsCb[symbolPropName] = val; } else { symbolOptions[symbolPropName] = val; } } symbolOptions.symbol = symbolOptions.symbol || seriesModel.defaultSymbol; data.setVisual(extend({ legendIcon: seriesModel.legendIcon || symbolOptions.symbol, symbolKeepAspect: seriesModel.get("symbolKeepAspect") }, symbolOptions)); if (ecModel.isSeriesFiltered(seriesModel)) { return; } var symbolPropsCb = keys(symbolOptionsCb); function dataEach(data2, idx) { var rawValue = seriesModel.getRawValue(idx); var params = seriesModel.getDataParams(idx); for (var i2 = 0; i2 < symbolPropsCb.length; i2++) { var symbolPropName2 = symbolPropsCb[i2]; data2.setItemVisual(idx, symbolPropName2, symbolOptionsCb[symbolPropName2](rawValue, params)); } } return { dataEach: hasCallback ? dataEach : null }; } }; var dataSymbolTask = { createOnAllSeries: true, // For legend. performRawSeries: true, reset: function(seriesModel, ecModel) { if (!seriesModel.hasSymbolVisual) { return; } if (ecModel.isSeriesFiltered(seriesModel)) { return; } var data = seriesModel.getData(); function dataEach(data2, idx) { var itemModel = data2.getItemModel(idx); for (var i = 0; i < SYMBOL_PROPS.length; i++) { var symbolPropName = SYMBOL_PROPS[i]; var val = itemModel.getShallow(symbolPropName, true); if (val != null) { data2.setItemVisual(idx, symbolPropName, val); } } } return { dataEach: data.hasItemOption ? dataEach : null }; } }; // node_modules/echarts/lib/visual/helper.js function getItemVisualFromData(data, dataIndex, key) { switch (key) { case "color": var style = data.getItemVisual(dataIndex, "style"); return style[data.getVisual("drawType")]; case "opacity": return data.getItemVisual(dataIndex, "style").opacity; case "symbol": case "symbolSize": case "liftZ": return data.getItemVisual(dataIndex, key); default: if (true) { console.warn("Unknown visual type " + key); } } } function getVisualFromData(data, key) { switch (key) { case "color": var style = data.getVisual("style"); return style[data.getVisual("drawType")]; case "opacity": return data.getVisual("style").opacity; case "symbol": case "symbolSize": case "liftZ": return data.getVisual(key); default: if (true) { console.warn("Unknown visual type " + key); } } } function setItemVisualFromData(data, dataIndex, key, value) { switch (key) { case "color": var style = data.ensureUniqueItemVisual(dataIndex, "style"); style[data.getVisual("drawType")] = value; data.setItemVisual(dataIndex, "colorFromPalette", false); break; case "opacity": data.ensureUniqueItemVisual(dataIndex, "style").opacity = value; break; case "symbol": case "symbolSize": case "liftZ": data.setItemVisual(dataIndex, key, value); break; default: if (true) { console.warn("Unknown visual type " + key); } } } // node_modules/echarts/lib/legacy/dataSelectAction.js function createLegacyDataSelectAction(seriesType2, ecRegisterAction) { function getSeriesIndices(ecModel, payload) { var seriesIndices = []; ecModel.eachComponent({ mainType: "series", subType: seriesType2, query: payload }, function(seriesModel) { seriesIndices.push(seriesModel.seriesIndex); }); return seriesIndices; } each([[seriesType2 + "ToggleSelect", "toggleSelect"], [seriesType2 + "Select", "select"], [seriesType2 + "UnSelect", "unselect"]], function(eventsMap) { ecRegisterAction(eventsMap[0], function(payload, ecModel, api) { payload = extend({}, payload); if (true) { deprecateReplaceLog(payload.type, eventsMap[1]); } api.dispatchAction(extend(payload, { type: eventsMap[1], seriesIndex: getSeriesIndices(ecModel, payload) })); }); }); } function handleSeriesLegacySelectEvents(type, eventPostfix, ecIns, ecModel, payload) { var legacyEventName = type + eventPostfix; if (!ecIns.isSilent(legacyEventName)) { if (true) { deprecateLog("event " + legacyEventName + " is deprecated."); } ecModel.eachComponent({ mainType: "series", subType: "pie" }, function(seriesModel) { var seriesIndex = seriesModel.seriesIndex; var selectedMap = seriesModel.option.selectedMap; var selected = payload.selected; for (var i = 0; i < selected.length; i++) { if (selected[i].seriesIndex === seriesIndex) { var data = seriesModel.getData(); var dataIndex = queryDataIndex(data, payload.fromActionPayload); ecIns.trigger(legacyEventName, { type: legacyEventName, seriesId: seriesModel.id, name: isArray(dataIndex) ? data.getName(dataIndex[0]) : data.getName(dataIndex), selected: isString(selectedMap) ? selectedMap : extend({}, selectedMap) }); } } }); } } function handleLegacySelectEvents(messageCenter, ecIns, api) { messageCenter.on("selectchanged", function(params) { var ecModel = api.getModel(); if (params.isFromClick) { handleSeriesLegacySelectEvents("map", "selectchanged", ecIns, ecModel, params); handleSeriesLegacySelectEvents("pie", "selectchanged", ecIns, ecModel, params); } else if (params.fromAction === "select") { handleSeriesLegacySelectEvents("map", "selected", ecIns, ecModel, params); handleSeriesLegacySelectEvents("pie", "selected", ecIns, ecModel, params); } else if (params.fromAction === "unselect") { handleSeriesLegacySelectEvents("map", "unselected", ecIns, ecModel, params); handleSeriesLegacySelectEvents("pie", "unselected", ecIns, ecModel, params); } }); } // node_modules/echarts/lib/util/event.js function findEventDispatcher(target, det, returnFirstMatch) { var found; while (target) { if (det(target)) { found = target; if (returnFirstMatch) { break; } } target = target.__hostTarget || target.parent; } return found; } // node_modules/zrender/lib/core/WeakMap.js var wmUniqueIndex = Math.round(Math.random() * 9); var supportDefineProperty = typeof Object.defineProperty === "function"; var WeakMap = function() { function WeakMap2() { this._id = "__ec_inner_" + wmUniqueIndex++; } WeakMap2.prototype.get = function(key) { return this._guard(key)[this._id]; }; WeakMap2.prototype.set = function(key, value) { var target = this._guard(key); if (supportDefineProperty) { Object.defineProperty(target, this._id, { value, enumerable: false, configurable: true }); } else { target[this._id] = value; } return this; }; WeakMap2.prototype["delete"] = function(key) { if (this.has(key)) { delete this._guard(key)[this._id]; return true; } return false; }; WeakMap2.prototype.has = function(key) { return !!this._guard(key)[this._id]; }; WeakMap2.prototype._guard = function(key) { if (key !== Object(key)) { throw TypeError("Value of WeakMap is not a non-null object."); } return key; }; return WeakMap2; }(); var WeakMap_default = WeakMap; // node_modules/echarts/lib/util/symbol.js var Triangle = Path_default.extend({ type: "triangle", shape: { cx: 0, cy: 0, width: 0, height: 0 }, buildPath: function(path, shape) { var cx = shape.cx; var cy = shape.cy; var width = shape.width / 2; var height = shape.height / 2; path.moveTo(cx, cy - height); path.lineTo(cx + width, cy + height); path.lineTo(cx - width, cy + height); path.closePath(); } }); var Diamond = Path_default.extend({ type: "diamond", shape: { cx: 0, cy: 0, width: 0, height: 0 }, buildPath: function(path, shape) { var cx = shape.cx; var cy = shape.cy; var width = shape.width / 2; var height = shape.height / 2; path.moveTo(cx, cy - height); path.lineTo(cx + width, cy); path.lineTo(cx, cy + height); path.lineTo(cx - width, cy); path.closePath(); } }); var Pin = Path_default.extend({ type: "pin", shape: { // x, y on the cusp x: 0, y: 0, width: 0, height: 0 }, buildPath: function(path, shape) { var x = shape.x; var y = shape.y; var w = shape.width / 5 * 3; var h = Math.max(w, shape.height); var r = w / 2; var dy = r * r / (h - r); var cy = y - h + r + dy; var angle = Math.asin(dy / r); var dx = Math.cos(angle) * r; var tanX = Math.sin(angle); var tanY = Math.cos(angle); var cpLen = r * 0.6; var cpLen2 = r * 0.7; path.moveTo(x - dx, cy + dy); path.arc(x, cy, r, Math.PI - angle, Math.PI * 2 + angle); path.bezierCurveTo(x + dx - tanX * cpLen, cy + dy + tanY * cpLen, x, y - cpLen2, x, y); path.bezierCurveTo(x, y - cpLen2, x - dx + tanX * cpLen, cy + dy + tanY * cpLen, x - dx, cy + dy); path.closePath(); } }); var Arrow = Path_default.extend({ type: "arrow", shape: { x: 0, y: 0, width: 0, height: 0 }, buildPath: function(ctx, shape) { var height = shape.height; var width = shape.width; var x = shape.x; var y = shape.y; var dx = width / 3 * 2; ctx.moveTo(x, y); ctx.lineTo(x + dx, y + height); ctx.lineTo(x, y + height / 4 * 3); ctx.lineTo(x - dx, y + height); ctx.lineTo(x, y); ctx.closePath(); } }); var symbolCtors = { line: Line_default, rect: Rect_default, roundRect: Rect_default, square: Rect_default, circle: Circle_default, diamond: Diamond, pin: Pin, arrow: Arrow, triangle: Triangle }; var symbolShapeMakers = { line: function(x, y, w, h, shape) { shape.x1 = x; shape.y1 = y + h / 2; shape.x2 = x + w; shape.y2 = y + h / 2; }, rect: function(x, y, w, h, shape) { shape.x = x; shape.y = y; shape.width = w; shape.height = h; }, roundRect: function(x, y, w, h, shape) { shape.x = x; shape.y = y; shape.width = w; shape.height = h; shape.r = Math.min(w, h) / 4; }, square: function(x, y, w, h, shape) { var size = Math.min(w, h); shape.x = x; shape.y = y; shape.width = size; shape.height = size; }, circle: function(x, y, w, h, shape) { shape.cx = x + w / 2; shape.cy = y + h / 2; shape.r = Math.min(w, h) / 2; }, diamond: function(x, y, w, h, shape) { shape.cx = x + w / 2; shape.cy = y + h / 2; shape.width = w; shape.height = h; }, pin: function(x, y, w, h, shape) { shape.x = x + w / 2; shape.y = y + h / 2; shape.width = w; shape.height = h; }, arrow: function(x, y, w, h, shape) { shape.x = x + w / 2; shape.y = y + h / 2; shape.width = w; shape.height = h; }, triangle: function(x, y, w, h, shape) { shape.cx = x + w / 2; shape.cy = y + h / 2; shape.width = w; shape.height = h; } }; var symbolBuildProxies = {}; each(symbolCtors, function(Ctor, name) { symbolBuildProxies[name] = new Ctor(); }); var SymbolClz = Path_default.extend({ type: "symbol", shape: { symbolType: "", x: 0, y: 0, width: 0, height: 0 }, calculateTextPosition: function(out2, config, rect) { var res = calculateTextPosition(out2, config, rect); var shape = this.shape; if (shape && shape.symbolType === "pin" && config.position === "inside") { res.y = rect.y + rect.height * 0.4; } return res; }, buildPath: function(ctx, shape, inBundle) { var symbolType = shape.symbolType; if (symbolType !== "none") { var proxySymbol = symbolBuildProxies[symbolType]; if (!proxySymbol) { symbolType = "rect"; proxySymbol = symbolBuildProxies[symbolType]; } symbolShapeMakers[symbolType](shape.x, shape.y, shape.width, shape.height, proxySymbol.shape); proxySymbol.buildPath(ctx, proxySymbol.shape, inBundle); } } }); function symbolPathSetColor(color, innerColor2) { if (this.type !== "image") { var symbolStyle = this.style; if (this.__isEmptyBrush) { symbolStyle.stroke = color; symbolStyle.fill = innerColor2 || "#fff"; symbolStyle.lineWidth = 2; } else if (this.shape.symbolType === "line") { symbolStyle.stroke = color; } else { symbolStyle.fill = color; } this.markRedraw(); } } function createSymbol(symbolType, x, y, w, h, color, keepAspect) { var isEmpty = symbolType.indexOf("empty") === 0; if (isEmpty) { symbolType = symbolType.substr(5, 1).toLowerCase() + symbolType.substr(6); } var symbolPath; if (symbolType.indexOf("image://") === 0) { symbolPath = makeImage(symbolType.slice(8), new BoundingRect_default(x, y, w, h), keepAspect ? "center" : "cover"); } else if (symbolType.indexOf("path://") === 0) { symbolPath = makePath(symbolType.slice(7), {}, new BoundingRect_default(x, y, w, h), keepAspect ? "center" : "cover"); } else { symbolPath = new SymbolClz({ shape: { symbolType, x, y, width: w, height: h } }); } symbolPath.__isEmptyBrush = isEmpty; symbolPath.setColor = symbolPathSetColor; if (color) { symbolPath.setColor(color); } return symbolPath; } function normalizeSymbolSize(symbolSize) { if (!isArray(symbolSize)) { symbolSize = [+symbolSize, +symbolSize]; } return [symbolSize[0] || 0, symbolSize[1] || 0]; } function normalizeSymbolOffset(symbolOffset, symbolSize) { if (symbolOffset == null) { return; } if (!isArray(symbolOffset)) { symbolOffset = [symbolOffset, symbolOffset]; } return [parsePercent2(symbolOffset[0], symbolSize[0]) || 0, parsePercent2(retrieve2(symbolOffset[1], symbolOffset[0]), symbolSize[1]) || 0]; } // node_modules/echarts/lib/util/decal.js var decalMap = new WeakMap_default(); var decalCache = new LRU_default(100); var decalKeys = ["symbol", "symbolSize", "symbolKeepAspect", "color", "backgroundColor", "dashArrayX", "dashArrayY", "maxTileWidth", "maxTileHeight"]; function createOrUpdatePatternFromDecal(decalObject, api) { if (decalObject === "none") { return null; } var dpr = api.getDevicePixelRatio(); var zr = api.getZr(); var isSVG = zr.painter.type === "svg"; if (decalObject.dirty) { decalMap["delete"](decalObject); } var oldPattern = decalMap.get(decalObject); if (oldPattern) { return oldPattern; } var decalOpt = defaults(decalObject, { symbol: "rect", symbolSize: 1, symbolKeepAspect: true, color: "rgba(0, 0, 0, 0.2)", backgroundColor: null, dashArrayX: 5, dashArrayY: 5, rotation: 0, maxTileWidth: 512, maxTileHeight: 512 }); if (decalOpt.backgroundColor === "none") { decalOpt.backgroundColor = null; } var pattern = { repeat: "repeat" }; setPatternnSource(pattern); pattern.rotation = decalOpt.rotation; pattern.scaleX = pattern.scaleY = isSVG ? 1 : 1 / dpr; decalMap.set(decalObject, pattern); decalObject.dirty = false; return pattern; function setPatternnSource(pattern2) { var keys2 = [dpr]; var isValidKey = true; for (var i = 0; i < decalKeys.length; ++i) { var value = decalOpt[decalKeys[i]]; if (value != null && !isArray(value) && !isString(value) && !isNumber(value) && typeof value !== "boolean") { isValidKey = false; break; } keys2.push(value); } var cacheKey; if (isValidKey) { cacheKey = keys2.join(",") + (isSVG ? "-svg" : ""); var cache = decalCache.get(cacheKey); if (cache) { isSVG ? pattern2.svgElement = cache : pattern2.image = cache; } } var dashArrayX = normalizeDashArrayX(decalOpt.dashArrayX); var dashArrayY = normalizeDashArrayY(decalOpt.dashArrayY); var symbolArray = normalizeSymbolArray(decalOpt.symbol); var lineBlockLengthsX = getLineBlockLengthX(dashArrayX); var lineBlockLengthY = getLineBlockLengthY(dashArrayY); var canvas = !isSVG && platformApi.createCanvas(); var svgRoot = isSVG && { tag: "g", attrs: {}, key: "dcl", children: [] }; var pSize = getPatternSize(); var ctx; if (canvas) { canvas.width = pSize.width * dpr; canvas.height = pSize.height * dpr; ctx = canvas.getContext("2d"); } brushDecal(); if (isValidKey) { decalCache.put(cacheKey, canvas || svgRoot); } pattern2.image = canvas; pattern2.svgElement = svgRoot; pattern2.svgWidth = pSize.width; pattern2.svgHeight = pSize.height; function getPatternSize() { var width = 1; for (var i2 = 0, xlen = lineBlockLengthsX.length; i2 < xlen; ++i2) { width = getLeastCommonMultiple(width, lineBlockLengthsX[i2]); } var symbolRepeats = 1; for (var i2 = 0, xlen = symbolArray.length; i2 < xlen; ++i2) { symbolRepeats = getLeastCommonMultiple(symbolRepeats, symbolArray[i2].length); } width *= symbolRepeats; var height = lineBlockLengthY * lineBlockLengthsX.length * symbolArray.length; if (true) { var warn2 = function(attrName) { console.warn("Calculated decal size is greater than " + attrName + " due to decal option settings so " + attrName + " is used for the decal size. Please consider changing the decal option to make a smaller decal or set " + attrName + " to be larger to avoid incontinuity."); }; if (width > decalOpt.maxTileWidth) { warn2("maxTileWidth"); } if (height > decalOpt.maxTileHeight) { warn2("maxTileHeight"); } } return { width: Math.max(1, Math.min(width, decalOpt.maxTileWidth)), height: Math.max(1, Math.min(height, decalOpt.maxTileHeight)) }; } function brushDecal() { if (ctx) { ctx.clearRect(0, 0, canvas.width, canvas.height); if (decalOpt.backgroundColor) { ctx.fillStyle = decalOpt.backgroundColor; ctx.fillRect(0, 0, canvas.width, canvas.height); } } var ySum = 0; for (var i2 = 0; i2 < dashArrayY.length; ++i2) { ySum += dashArrayY[i2]; } if (ySum <= 0) { return; } var y = -lineBlockLengthY; var yId = 0; var yIdTotal = 0; var xId0 = 0; while (y < pSize.height) { if (yId % 2 === 0) { var symbolYId = yIdTotal / 2 % symbolArray.length; var x = 0; var xId1 = 0; var xId1Total = 0; while (x < pSize.width * 2) { var xSum = 0; for (var i2 = 0; i2 < dashArrayX[xId0].length; ++i2) { xSum += dashArrayX[xId0][i2]; } if (xSum <= 0) { break; } if (xId1 % 2 === 0) { var size = (1 - decalOpt.symbolSize) * 0.5; var left = x + dashArrayX[xId0][xId1] * size; var top_1 = y + dashArrayY[yId] * size; var width = dashArrayX[xId0][xId1] * decalOpt.symbolSize; var height = dashArrayY[yId] * decalOpt.symbolSize; var symbolXId = xId1Total / 2 % symbolArray[symbolYId].length; brushSymbol(left, top_1, width, height, symbolArray[symbolYId][symbolXId]); } x += dashArrayX[xId0][xId1]; ++xId1Total; ++xId1; if (xId1 === dashArrayX[xId0].length) { xId1 = 0; } } ++xId0; if (xId0 === dashArrayX.length) { xId0 = 0; } } y += dashArrayY[yId]; ++yIdTotal; ++yId; if (yId === dashArrayY.length) { yId = 0; } } function brushSymbol(x2, y2, width2, height2, symbolType) { var scale3 = isSVG ? 1 : dpr; var symbol = createSymbol(symbolType, x2 * scale3, y2 * scale3, width2 * scale3, height2 * scale3, decalOpt.color, decalOpt.symbolKeepAspect); if (isSVG) { var symbolVNode = zr.painter.renderOneToVNode(symbol); if (symbolVNode) { svgRoot.children.push(symbolVNode); } } else { brushSingle(ctx, symbol); } } } } } function normalizeSymbolArray(symbol) { if (!symbol || symbol.length === 0) { return [["rect"]]; } if (isString(symbol)) { return [[symbol]]; } var isAllString = true; for (var i = 0; i < symbol.length; ++i) { if (!isString(symbol[i])) { isAllString = false; break; } } if (isAllString) { return normalizeSymbolArray([symbol]); } var result = []; for (var i = 0; i < symbol.length; ++i) { if (isString(symbol[i])) { result.push([symbol[i]]); } else { result.push(symbol[i]); } } return result; } function normalizeDashArrayX(dash) { if (!dash || dash.length === 0) { return [[0, 0]]; } if (isNumber(dash)) { var dashValue = Math.ceil(dash); return [[dashValue, dashValue]]; } var isAllNumber = true; for (var i = 0; i < dash.length; ++i) { if (!isNumber(dash[i])) { isAllNumber = false; break; } } if (isAllNumber) { return normalizeDashArrayX([dash]); } var result = []; for (var i = 0; i < dash.length; ++i) { if (isNumber(dash[i])) { var dashValue = Math.ceil(dash[i]); result.push([dashValue, dashValue]); } else { var dashValue = map(dash[i], function(n) { return Math.ceil(n); }); if (dashValue.length % 2 === 1) { result.push(dashValue.concat(dashValue)); } else { result.push(dashValue); } } } return result; } function normalizeDashArrayY(dash) { if (!dash || typeof dash === "object" && dash.length === 0) { return [0, 0]; } if (isNumber(dash)) { var dashValue_1 = Math.ceil(dash); return [dashValue_1, dashValue_1]; } var dashValue = map(dash, function(n) { return Math.ceil(n); }); return dash.length % 2 ? dashValue.concat(dashValue) : dashValue; } function getLineBlockLengthX(dash) { return map(dash, function(line) { return getLineBlockLengthY(line); }); } function getLineBlockLengthY(dash) { var blockLength = 0; for (var i = 0; i < dash.length; ++i) { blockLength += dash[i]; } if (dash.length % 2 === 1) { return blockLength * 2; } return blockLength; } // node_modules/echarts/lib/visual/decal.js function decalVisual(ecModel, api) { ecModel.eachRawSeries(function(seriesModel) { if (ecModel.isSeriesFiltered(seriesModel)) { return; } var data = seriesModel.getData(); if (data.hasItemVisual()) { data.each(function(idx) { var decal2 = data.getItemVisual(idx, "decal"); if (decal2) { var itemStyle = data.ensureUniqueItemVisual(idx, "style"); itemStyle.decal = createOrUpdatePatternFromDecal(decal2, api); } }); } var decal = data.getVisual("decal"); if (decal) { var style = data.getVisual("style"); style.decal = createOrUpdatePatternFromDecal(decal, api); } }); } // node_modules/echarts/lib/core/lifecycle.js var lifecycle = new Eventful_default(); var lifecycle_default = lifecycle; // node_modules/echarts/lib/core/impl.js var implsStore = {}; function registerImpl(name, impl) { if (true) { if (implsStore[name]) { error("Already has an implementation of " + name + "."); } } implsStore[name] = impl; } function getImpl(name) { if (true) { if (!implsStore[name]) { error("Implementation of " + name + " doesn't exists."); } } return implsStore[name]; } // node_modules/echarts/lib/core/echarts.js var version = "5.6.0"; var dependencies = { zrender: "5.6.1" }; var TEST_FRAME_REMAIN_TIME = 1; var PRIORITY_PROCESSOR_SERIES_FILTER = 800; var PRIORITY_PROCESSOR_DATASTACK = 900; var PRIORITY_PROCESSOR_FILTER = 1e3; var PRIORITY_PROCESSOR_DEFAULT = 2e3; var PRIORITY_PROCESSOR_STATISTIC = 5e3; var PRIORITY_VISUAL_LAYOUT = 1e3; var PRIORITY_VISUAL_PROGRESSIVE_LAYOUT = 1100; var PRIORITY_VISUAL_GLOBAL = 2e3; var PRIORITY_VISUAL_CHART = 3e3; var PRIORITY_VISUAL_COMPONENT = 4e3; var PRIORITY_VISUAL_CHART_DATA_CUSTOM = 4500; var PRIORITY_VISUAL_POST_CHART_LAYOUT = 4600; var PRIORITY_VISUAL_BRUSH = 5e3; var PRIORITY_VISUAL_ARIA = 6e3; var PRIORITY_VISUAL_DECAL = 7e3; var PRIORITY = { PROCESSOR: { FILTER: PRIORITY_PROCESSOR_FILTER, SERIES_FILTER: PRIORITY_PROCESSOR_SERIES_FILTER, STATISTIC: PRIORITY_PROCESSOR_STATISTIC }, VISUAL: { LAYOUT: PRIORITY_VISUAL_LAYOUT, PROGRESSIVE_LAYOUT: PRIORITY_VISUAL_PROGRESSIVE_LAYOUT, GLOBAL: PRIORITY_VISUAL_GLOBAL, CHART: PRIORITY_VISUAL_CHART, POST_CHART_LAYOUT: PRIORITY_VISUAL_POST_CHART_LAYOUT, COMPONENT: PRIORITY_VISUAL_COMPONENT, BRUSH: PRIORITY_VISUAL_BRUSH, CHART_ITEM: PRIORITY_VISUAL_CHART_DATA_CUSTOM, ARIA: PRIORITY_VISUAL_ARIA, DECAL: PRIORITY_VISUAL_DECAL } }; var IN_MAIN_PROCESS_KEY = "__flagInMainProcess"; var PENDING_UPDATE = "__pendingUpdate"; var STATUS_NEEDS_UPDATE_KEY = "__needsUpdateStatus"; var ACTION_REG = /^[a-zA-Z0-9_]+$/; var CONNECT_STATUS_KEY = "__connectUpdateStatus"; var CONNECT_STATUS_PENDING = 0; var CONNECT_STATUS_UPDATING = 1; var CONNECT_STATUS_UPDATED = 2; function createRegisterEventWithLowercaseECharts(method) { return function() { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } if (this.isDisposed()) { disposedWarning(this.id); return; } return toLowercaseNameAndCallEventful(this, method, args); }; } function createRegisterEventWithLowercaseMessageCenter(method) { return function() { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } return toLowercaseNameAndCallEventful(this, method, args); }; } function toLowercaseNameAndCallEventful(host, method, args) { args[0] = args[0] && args[0].toLowerCase(); return Eventful_default.prototype[method].apply(host, args); } var MessageCenter = ( /** @class */ function(_super) { __extends(MessageCenter2, _super); function MessageCenter2() { return _super !== null && _super.apply(this, arguments) || this; } return MessageCenter2; }(Eventful_default) ); var messageCenterProto = MessageCenter.prototype; messageCenterProto.on = createRegisterEventWithLowercaseMessageCenter("on"); messageCenterProto.off = createRegisterEventWithLowercaseMessageCenter("off"); var prepare; var prepareView; var updateDirectly; var updateMethods; var doConvertPixel; var updateStreamModes; var doDispatchAction; var flushPendingActions; var triggerUpdatedEvent; var bindRenderedEvent; var bindMouseEvent; var render; var renderComponents; var renderSeries; var createExtensionAPI; var enableConnect; var markStatusToUpdate; var applyChangedStates; var ECharts = ( /** @class */ function(_super) { __extends(ECharts2, _super); function ECharts2(dom, theme2, opts) { var _this = _super.call(this, new ECEventProcessor()) || this; _this._chartsViews = []; _this._chartsMap = {}; _this._componentsViews = []; _this._componentsMap = {}; _this._pendingActions = []; opts = opts || {}; if (isString(theme2)) { theme2 = themeStorage[theme2]; } _this._dom = dom; var defaultRenderer = "canvas"; var defaultCoarsePointer = "auto"; var defaultUseDirtyRect = false; if (true) { var root = ( /* eslint-disable-next-line */ env_default.hasGlobalWindow ? window : global ); if (root) { defaultRenderer = retrieve2(root.__ECHARTS__DEFAULT__RENDERER__, defaultRenderer); defaultCoarsePointer = retrieve2(root.__ECHARTS__DEFAULT__COARSE_POINTER, defaultCoarsePointer); defaultUseDirtyRect = retrieve2(root.__ECHARTS__DEFAULT__USE_DIRTY_RECT__, defaultUseDirtyRect); } } if (opts.ssr) { registerSSRDataGetter(function(el) { var ecData = getECData(el); var dataIndex = ecData.dataIndex; if (dataIndex == null) { return; } var hashMap = createHashMap(); hashMap.set("series_index", ecData.seriesIndex); hashMap.set("data_index", dataIndex); ecData.ssrType && hashMap.set("ssr_type", ecData.ssrType); return hashMap; }); } var zr = _this._zr = init(dom, { renderer: opts.renderer || defaultRenderer, devicePixelRatio: opts.devicePixelRatio, width: opts.width, height: opts.height, ssr: opts.ssr, useDirtyRect: retrieve2(opts.useDirtyRect, defaultUseDirtyRect), useCoarsePointer: retrieve2(opts.useCoarsePointer, defaultCoarsePointer), pointerSize: opts.pointerSize }); _this._ssr = opts.ssr; _this._throttledZrFlush = throttle(bind(zr.flush, zr), 17); theme2 = clone(theme2); theme2 && globalBackwardCompat(theme2, true); _this._theme = theme2; _this._locale = createLocaleObject(opts.locale || SYSTEM_LANG); _this._coordSysMgr = new CoordinateSystem_default(); var api = _this._api = createExtensionAPI(_this); function prioritySortFunc(a, b) { return a.__prio - b.__prio; } sort(visualFuncs, prioritySortFunc); sort(dataProcessorFuncs, prioritySortFunc); _this._scheduler = new Scheduler_default(_this, api, dataProcessorFuncs, visualFuncs); _this._messageCenter = new MessageCenter(); _this._initEvents(); _this.resize = bind(_this.resize, _this); zr.animation.on("frame", _this._onframe, _this); bindRenderedEvent(zr, _this); bindMouseEvent(zr, _this); setAsPrimitive(_this); return _this; } ECharts2.prototype._onframe = function() { if (this._disposed) { return; } applyChangedStates(this); var scheduler = this._scheduler; if (this[PENDING_UPDATE]) { var silent = this[PENDING_UPDATE].silent; this[IN_MAIN_PROCESS_KEY] = true; try { prepare(this); updateMethods.update.call(this, null, this[PENDING_UPDATE].updateParams); } catch (e2) { this[IN_MAIN_PROCESS_KEY] = false; this[PENDING_UPDATE] = null; throw e2; } this._zr.flush(); this[IN_MAIN_PROCESS_KEY] = false; this[PENDING_UPDATE] = null; flushPendingActions.call(this, silent); triggerUpdatedEvent.call(this, silent); } else if (scheduler.unfinished) { var remainTime = TEST_FRAME_REMAIN_TIME; var ecModel = this._model; var api = this._api; scheduler.unfinished = false; do { var startTime = +/* @__PURE__ */ new Date(); scheduler.performSeriesTasks(ecModel); scheduler.performDataProcessorTasks(ecModel); updateStreamModes(this, ecModel); scheduler.performVisualTasks(ecModel); renderSeries(this, this._model, api, "remain", {}); remainTime -= +/* @__PURE__ */ new Date() - startTime; } while (remainTime > 0 && scheduler.unfinished); if (!scheduler.unfinished) { this._zr.flush(); } } }; ECharts2.prototype.getDom = function() { return this._dom; }; ECharts2.prototype.getId = function() { return this.id; }; ECharts2.prototype.getZr = function() { return this._zr; }; ECharts2.prototype.isSSR = function() { return this._ssr; }; ECharts2.prototype.setOption = function(option, notMerge, lazyUpdate) { if (this[IN_MAIN_PROCESS_KEY]) { if (true) { error("`setOption` should not be called during main process."); } return; } if (this._disposed) { disposedWarning(this.id); return; } var silent; var replaceMerge; var transitionOpt; if (isObject(notMerge)) { lazyUpdate = notMerge.lazyUpdate; silent = notMerge.silent; replaceMerge = notMerge.replaceMerge; transitionOpt = notMerge.transition; notMerge = notMerge.notMerge; } this[IN_MAIN_PROCESS_KEY] = true; if (!this._model || notMerge) { var optionManager = new OptionManager_default(this._api); var theme2 = this._theme; var ecModel = this._model = new Global_default(); ecModel.scheduler = this._scheduler; ecModel.ssr = this._ssr; ecModel.init(null, null, null, theme2, this._locale, optionManager); } this._model.setOption(option, { replaceMerge }, optionPreprocessorFuncs); var updateParams = { seriesTransition: transitionOpt, optionChanged: true }; if (lazyUpdate) { this[PENDING_UPDATE] = { silent, updateParams }; this[IN_MAIN_PROCESS_KEY] = false; this.getZr().wakeUp(); } else { try { prepare(this); updateMethods.update.call(this, null, updateParams); } catch (e2) { this[PENDING_UPDATE] = null; this[IN_MAIN_PROCESS_KEY] = false; throw e2; } if (!this._ssr) { this._zr.flush(); } this[PENDING_UPDATE] = null; this[IN_MAIN_PROCESS_KEY] = false; flushPendingActions.call(this, silent); triggerUpdatedEvent.call(this, silent); } }; ECharts2.prototype.setTheme = function() { deprecateLog("ECharts#setTheme() is DEPRECATED in ECharts 3.0"); }; ECharts2.prototype.getModel = function() { return this._model; }; ECharts2.prototype.getOption = function() { return this._model && this._model.getOption(); }; ECharts2.prototype.getWidth = function() { return this._zr.getWidth(); }; ECharts2.prototype.getHeight = function() { return this._zr.getHeight(); }; ECharts2.prototype.getDevicePixelRatio = function() { return this._zr.painter.dpr || env_default.hasGlobalWindow && window.devicePixelRatio || 1; }; ECharts2.prototype.getRenderedCanvas = function(opts) { if (true) { deprecateReplaceLog("getRenderedCanvas", "renderToCanvas"); } return this.renderToCanvas(opts); }; ECharts2.prototype.renderToCanvas = function(opts) { opts = opts || {}; var painter = this._zr.painter; if (true) { if (painter.type !== "canvas") { throw new Error("renderToCanvas can only be used in the canvas renderer."); } } return painter.getRenderedCanvas({ backgroundColor: opts.backgroundColor || this._model.get("backgroundColor"), pixelRatio: opts.pixelRatio || this.getDevicePixelRatio() }); }; ECharts2.prototype.renderToSVGString = function(opts) { opts = opts || {}; var painter = this._zr.painter; if (true) { if (painter.type !== "svg") { throw new Error("renderToSVGString can only be used in the svg renderer."); } } return painter.renderToString({ useViewBox: opts.useViewBox }); }; ECharts2.prototype.getSvgDataURL = function() { if (!env_default.svgSupported) { return; } var zr = this._zr; var list = zr.storage.getDisplayList(); each(list, function(el) { el.stopAnimation(null, true); }); return zr.painter.toDataURL(); }; ECharts2.prototype.getDataURL = function(opts) { if (this._disposed) { disposedWarning(this.id); return; } opts = opts || {}; var excludeComponents = opts.excludeComponents; var ecModel = this._model; var excludesComponentViews = []; var self = this; each(excludeComponents, function(componentType) { ecModel.eachComponent({ mainType: componentType }, function(component) { var view = self._componentsMap[component.__viewId]; if (!view.group.ignore) { excludesComponentViews.push(view); view.group.ignore = true; } }); }); var url = this._zr.painter.getType() === "svg" ? this.getSvgDataURL() : this.renderToCanvas(opts).toDataURL("image/" + (opts && opts.type || "png")); each(excludesComponentViews, function(view) { view.group.ignore = false; }); return url; }; ECharts2.prototype.getConnectedDataURL = function(opts) { if (this._disposed) { disposedWarning(this.id); return; } var isSvg = opts.type === "svg"; var groupId = this.group; var mathMin3 = Math.min; var mathMax3 = Math.max; var MAX_NUMBER = Infinity; if (connectedGroups[groupId]) { var left_1 = MAX_NUMBER; var top_1 = MAX_NUMBER; var right_1 = -MAX_NUMBER; var bottom_1 = -MAX_NUMBER; var canvasList_1 = []; var dpr_1 = opts && opts.pixelRatio || this.getDevicePixelRatio(); each(instances, function(chart, id) { if (chart.group === groupId) { var canvas = isSvg ? chart.getZr().painter.getSvgDom().innerHTML : chart.renderToCanvas(clone(opts)); var boundingRect = chart.getDom().getBoundingClientRect(); left_1 = mathMin3(boundingRect.left, left_1); top_1 = mathMin3(boundingRect.top, top_1); right_1 = mathMax3(boundingRect.right, right_1); bottom_1 = mathMax3(boundingRect.bottom, bottom_1); canvasList_1.push({ dom: canvas, left: boundingRect.left, top: boundingRect.top }); } }); left_1 *= dpr_1; top_1 *= dpr_1; right_1 *= dpr_1; bottom_1 *= dpr_1; var width = right_1 - left_1; var height = bottom_1 - top_1; var targetCanvas = platformApi.createCanvas(); var zr_1 = init(targetCanvas, { renderer: isSvg ? "svg" : "canvas" }); zr_1.resize({ width, height }); if (isSvg) { var content_1 = ""; each(canvasList_1, function(item) { var x = item.left - left_1; var y = item.top - top_1; content_1 += '' + item.dom + ""; }); zr_1.painter.getSvgRoot().innerHTML = content_1; if (opts.connectedBackgroundColor) { zr_1.painter.setBackgroundColor(opts.connectedBackgroundColor); } zr_1.refreshImmediately(); return zr_1.painter.toDataURL(); } else { if (opts.connectedBackgroundColor) { zr_1.add(new Rect_default({ shape: { x: 0, y: 0, width, height }, style: { fill: opts.connectedBackgroundColor } })); } each(canvasList_1, function(item) { var img = new Image_default({ style: { x: item.left * dpr_1 - left_1, y: item.top * dpr_1 - top_1, image: item.dom } }); zr_1.add(img); }); zr_1.refreshImmediately(); return targetCanvas.toDataURL("image/" + (opts && opts.type || "png")); } } else { return this.getDataURL(opts); } }; ECharts2.prototype.convertToPixel = function(finder, value) { return doConvertPixel(this, "convertToPixel", finder, value); }; ECharts2.prototype.convertFromPixel = function(finder, value) { return doConvertPixel(this, "convertFromPixel", finder, value); }; ECharts2.prototype.containPixel = function(finder, value) { if (this._disposed) { disposedWarning(this.id); return; } var ecModel = this._model; var result; var findResult = parseFinder(ecModel, finder); each(findResult, function(models, key) { key.indexOf("Models") >= 0 && each(models, function(model) { var coordSys = model.coordinateSystem; if (coordSys && coordSys.containPoint) { result = result || !!coordSys.containPoint(value); } else if (key === "seriesModels") { var view = this._chartsMap[model.__viewId]; if (view && view.containPoint) { result = result || view.containPoint(value, model); } else { if (true) { warn(key + ": " + (view ? "The found component do not support containPoint." : "No view mapping to the found component.")); } } } else { if (true) { warn(key + ": containPoint is not supported"); } } }, this); }, this); return !!result; }; ECharts2.prototype.getVisual = function(finder, visualType) { var ecModel = this._model; var parsedFinder = parseFinder(ecModel, finder, { defaultMainType: "series" }); var seriesModel = parsedFinder.seriesModel; if (true) { if (!seriesModel) { warn("There is no specified series model"); } } var data = seriesModel.getData(); var dataIndexInside = parsedFinder.hasOwnProperty("dataIndexInside") ? parsedFinder.dataIndexInside : parsedFinder.hasOwnProperty("dataIndex") ? data.indexOfRawIndex(parsedFinder.dataIndex) : null; return dataIndexInside != null ? getItemVisualFromData(data, dataIndexInside, visualType) : getVisualFromData(data, visualType); }; ECharts2.prototype.getViewOfComponentModel = function(componentModel) { return this._componentsMap[componentModel.__viewId]; }; ECharts2.prototype.getViewOfSeriesModel = function(seriesModel) { return this._chartsMap[seriesModel.__viewId]; }; ECharts2.prototype._initEvents = function() { var _this = this; each(MOUSE_EVENT_NAMES, function(eveName) { var handler = function(e2) { var ecModel = _this.getModel(); var el = e2.target; var params; var isGlobalOut = eveName === "globalout"; if (isGlobalOut) { params = {}; } else { el && findEventDispatcher(el, function(parent) { var ecData = getECData(parent); if (ecData && ecData.dataIndex != null) { var dataModel = ecData.dataModel || ecModel.getSeriesByIndex(ecData.seriesIndex); params = dataModel && dataModel.getDataParams(ecData.dataIndex, ecData.dataType, el) || {}; return true; } else if (ecData.eventData) { params = extend({}, ecData.eventData); return true; } }, true); } if (params) { var componentType = params.componentType; var componentIndex = params.componentIndex; if (componentType === "markLine" || componentType === "markPoint" || componentType === "markArea") { componentType = "series"; componentIndex = params.seriesIndex; } var model = componentType && componentIndex != null && ecModel.getComponent(componentType, componentIndex); var view = model && _this[model.mainType === "series" ? "_chartsMap" : "_componentsMap"][model.__viewId]; if (true) { if (!isGlobalOut && !(model && view)) { warn("model or view can not be found by params"); } } params.event = e2; params.type = eveName; _this._$eventProcessor.eventInfo = { targetEl: el, packedEvent: params, model, view }; _this.trigger(eveName, params); } }; handler.zrEventfulCallAtLast = true; _this._zr.on(eveName, handler, _this); }); each(eventActionMap, function(actionType, eventType) { _this._messageCenter.on(eventType, function(event) { this.trigger(eventType, event); }, _this); }); each(["selectchanged"], function(eventType) { _this._messageCenter.on(eventType, function(event) { this.trigger(eventType, event); }, _this); }); handleLegacySelectEvents(this._messageCenter, this, this._api); }; ECharts2.prototype.isDisposed = function() { return this._disposed; }; ECharts2.prototype.clear = function() { if (this._disposed) { disposedWarning(this.id); return; } this.setOption({ series: [] }, true); }; ECharts2.prototype.dispose = function() { if (this._disposed) { disposedWarning(this.id); return; } this._disposed = true; var dom = this.getDom(); if (dom) { setAttribute(this.getDom(), DOM_ATTRIBUTE_KEY, ""); } var chart = this; var api = chart._api; var ecModel = chart._model; each(chart._componentsViews, function(component) { component.dispose(ecModel, api); }); each(chart._chartsViews, function(chart2) { chart2.dispose(ecModel, api); }); chart._zr.dispose(); chart._dom = chart._model = chart._chartsMap = chart._componentsMap = chart._chartsViews = chart._componentsViews = chart._scheduler = chart._api = chart._zr = chart._throttledZrFlush = chart._theme = chart._coordSysMgr = chart._messageCenter = null; delete instances[chart.id]; }; ECharts2.prototype.resize = function(opts) { if (this[IN_MAIN_PROCESS_KEY]) { if (true) { error("`resize` should not be called during main process."); } return; } if (this._disposed) { disposedWarning(this.id); return; } this._zr.resize(opts); var ecModel = this._model; this._loadingFX && this._loadingFX.resize(); if (!ecModel) { return; } var needPrepare = ecModel.resetOption("media"); var silent = opts && opts.silent; if (this[PENDING_UPDATE]) { if (silent == null) { silent = this[PENDING_UPDATE].silent; } needPrepare = true; this[PENDING_UPDATE] = null; } this[IN_MAIN_PROCESS_KEY] = true; try { needPrepare && prepare(this); updateMethods.update.call(this, { type: "resize", animation: extend({ // Disable animation duration: 0 }, opts && opts.animation) }); } catch (e2) { this[IN_MAIN_PROCESS_KEY] = false; throw e2; } this[IN_MAIN_PROCESS_KEY] = false; flushPendingActions.call(this, silent); triggerUpdatedEvent.call(this, silent); }; ECharts2.prototype.showLoading = function(name, cfg) { if (this._disposed) { disposedWarning(this.id); return; } if (isObject(name)) { cfg = name; name = ""; } name = name || "default"; this.hideLoading(); if (!loadingEffects[name]) { if (true) { warn("Loading effects " + name + " not exists."); } return; } var el = loadingEffects[name](this._api, cfg); var zr = this._zr; this._loadingFX = el; zr.add(el); }; ECharts2.prototype.hideLoading = function() { if (this._disposed) { disposedWarning(this.id); return; } this._loadingFX && this._zr.remove(this._loadingFX); this._loadingFX = null; }; ECharts2.prototype.makeActionFromEvent = function(eventObj) { var payload = extend({}, eventObj); payload.type = eventActionMap[eventObj.type]; return payload; }; ECharts2.prototype.dispatchAction = function(payload, opt) { if (this._disposed) { disposedWarning(this.id); return; } if (!isObject(opt)) { opt = { silent: !!opt }; } if (!actions[payload.type]) { return; } if (!this._model) { return; } if (this[IN_MAIN_PROCESS_KEY]) { this._pendingActions.push(payload); return; } var silent = opt.silent; doDispatchAction.call(this, payload, silent); var flush = opt.flush; if (flush) { this._zr.flush(); } else if (flush !== false && env_default.browser.weChat) { this._throttledZrFlush(); } flushPendingActions.call(this, silent); triggerUpdatedEvent.call(this, silent); }; ECharts2.prototype.updateLabelLayout = function() { lifecycle_default.trigger("series:layoutlabels", this._model, this._api, { // Not adding series labels. // TODO updatedSeries: [] }); }; ECharts2.prototype.appendData = function(params) { if (this._disposed) { disposedWarning(this.id); return; } var seriesIndex = params.seriesIndex; var ecModel = this.getModel(); var seriesModel = ecModel.getSeriesByIndex(seriesIndex); if (true) { assert(params.data && seriesModel); } seriesModel.appendData(params); this._scheduler.unfinished = true; this.getZr().wakeUp(); }; ECharts2.internalField = function() { prepare = function(ecIns) { var scheduler = ecIns._scheduler; scheduler.restorePipelines(ecIns._model); scheduler.prepareStageTasks(); prepareView(ecIns, true); prepareView(ecIns, false); scheduler.plan(); }; prepareView = function(ecIns, isComponent) { var ecModel = ecIns._model; var scheduler = ecIns._scheduler; var viewList = isComponent ? ecIns._componentsViews : ecIns._chartsViews; var viewMap = isComponent ? ecIns._componentsMap : ecIns._chartsMap; var zr = ecIns._zr; var api = ecIns._api; for (var i = 0; i < viewList.length; i++) { viewList[i].__alive = false; } isComponent ? ecModel.eachComponent(function(componentType, model) { componentType !== "series" && doPrepare(model); }) : ecModel.eachSeries(doPrepare); function doPrepare(model) { var requireNewView = model.__requireNewView; model.__requireNewView = false; var viewId = "_ec_" + model.id + "_" + model.type; var view2 = !requireNewView && viewMap[viewId]; if (!view2) { var classType = parseClassType(model.type); var Clazz = isComponent ? Component_default2.getClass(classType.main, classType.sub) : ( // FIXME:TS // (ChartView as ChartViewConstructor).getClass('series', classType.sub) // For backward compat, still support a chart type declared as only subType // like "liquidfill", but recommend "series.liquidfill" // But need a base class to make a type series. Chart_default.getClass(classType.sub) ); if (true) { assert(Clazz, classType.sub + " does not exist."); } view2 = new Clazz(); view2.init(ecModel, api); viewMap[viewId] = view2; viewList.push(view2); zr.add(view2.group); } model.__viewId = view2.__id = viewId; view2.__alive = true; view2.__model = model; view2.group.__ecComponentInfo = { mainType: model.mainType, index: model.componentIndex }; !isComponent && scheduler.prepareView(view2, model, ecModel, api); } for (var i = 0; i < viewList.length; ) { var view = viewList[i]; if (!view.__alive) { !isComponent && view.renderTask.dispose(); zr.remove(view.group); view.dispose(ecModel, api); viewList.splice(i, 1); if (viewMap[view.__id] === view) { delete viewMap[view.__id]; } view.__id = view.group.__ecComponentInfo = null; } else { i++; } } }; updateDirectly = function(ecIns, method, payload, mainType, subType) { var ecModel = ecIns._model; ecModel.setUpdatePayload(payload); if (!mainType) { each([].concat(ecIns._componentsViews).concat(ecIns._chartsViews), callView); return; } var query = {}; query[mainType + "Id"] = payload[mainType + "Id"]; query[mainType + "Index"] = payload[mainType + "Index"]; query[mainType + "Name"] = payload[mainType + "Name"]; var condition = { mainType, query }; subType && (condition.subType = subType); var excludeSeriesId = payload.excludeSeriesId; var excludeSeriesIdMap; if (excludeSeriesId != null) { excludeSeriesIdMap = createHashMap(); each(normalizeToArray(excludeSeriesId), function(id) { var modelId = convertOptionIdName(id, null); if (modelId != null) { excludeSeriesIdMap.set(modelId, true); } }); } ecModel && ecModel.eachComponent(condition, function(model) { var isExcluded = excludeSeriesIdMap && excludeSeriesIdMap.get(model.id) != null; if (isExcluded) { return; } ; if (isHighDownPayload(payload)) { if (model instanceof Series_default) { if (payload.type === HIGHLIGHT_ACTION_TYPE && !payload.notBlur && !model.get(["emphasis", "disabled"])) { blurSeriesFromHighlightPayload(model, payload, ecIns._api); } } else { var _a2 = findComponentHighDownDispatchers(model.mainType, model.componentIndex, payload.name, ecIns._api), focusSelf = _a2.focusSelf, dispatchers = _a2.dispatchers; if (payload.type === HIGHLIGHT_ACTION_TYPE && focusSelf && !payload.notBlur) { blurComponent(model.mainType, model.componentIndex, ecIns._api); } if (dispatchers) { each(dispatchers, function(dispatcher) { payload.type === HIGHLIGHT_ACTION_TYPE ? enterEmphasis(dispatcher) : leaveEmphasis(dispatcher); }); } } } else if (isSelectChangePayload(payload)) { if (model instanceof Series_default) { toggleSelectionFromPayload(model, payload, ecIns._api); updateSeriesElementSelection(model); markStatusToUpdate(ecIns); } } }, ecIns); ecModel && ecModel.eachComponent(condition, function(model) { var isExcluded = excludeSeriesIdMap && excludeSeriesIdMap.get(model.id) != null; if (isExcluded) { return; } ; callView(ecIns[mainType === "series" ? "_chartsMap" : "_componentsMap"][model.__viewId]); }, ecIns); function callView(view) { view && view.__alive && view[method] && view[method](view.__model, ecModel, ecIns._api, payload); } }; updateMethods = { prepareAndUpdate: function(payload) { prepare(this); updateMethods.update.call(this, payload, { // Needs to mark option changed if newOption is given. // It's from MagicType. // TODO If use a separate flag optionChanged in payload? optionChanged: payload.newOption != null }); }, update: function(payload, updateParams) { var ecModel = this._model; var api = this._api; var zr = this._zr; var coordSysMgr = this._coordSysMgr; var scheduler = this._scheduler; if (!ecModel) { return; } ecModel.setUpdatePayload(payload); scheduler.restoreData(ecModel, payload); scheduler.performSeriesTasks(ecModel); coordSysMgr.create(ecModel, api); scheduler.performDataProcessorTasks(ecModel, payload); updateStreamModes(this, ecModel); coordSysMgr.update(ecModel, api); clearColorPalette(ecModel); scheduler.performVisualTasks(ecModel, payload); render(this, ecModel, api, payload, updateParams); var backgroundColor2 = ecModel.get("backgroundColor") || "transparent"; var darkMode = ecModel.get("darkMode"); zr.setBackgroundColor(backgroundColor2); if (darkMode != null && darkMode !== "auto") { zr.setDarkMode(darkMode); } lifecycle_default.trigger("afterupdate", ecModel, api); }, updateTransform: function(payload) { var _this = this; var ecModel = this._model; var api = this._api; if (!ecModel) { return; } ecModel.setUpdatePayload(payload); var componentDirtyList = []; ecModel.eachComponent(function(componentType, componentModel) { if (componentType === "series") { return; } var componentView = _this.getViewOfComponentModel(componentModel); if (componentView && componentView.__alive) { if (componentView.updateTransform) { var result = componentView.updateTransform(componentModel, ecModel, api, payload); result && result.update && componentDirtyList.push(componentView); } else { componentDirtyList.push(componentView); } } }); var seriesDirtyMap = createHashMap(); ecModel.eachSeries(function(seriesModel) { var chartView = _this._chartsMap[seriesModel.__viewId]; if (chartView.updateTransform) { var result = chartView.updateTransform(seriesModel, ecModel, api, payload); result && result.update && seriesDirtyMap.set(seriesModel.uid, 1); } else { seriesDirtyMap.set(seriesModel.uid, 1); } }); clearColorPalette(ecModel); this._scheduler.performVisualTasks(ecModel, payload, { setDirty: true, dirtyMap: seriesDirtyMap }); renderSeries(this, ecModel, api, payload, {}, seriesDirtyMap); lifecycle_default.trigger("afterupdate", ecModel, api); }, updateView: function(payload) { var ecModel = this._model; if (!ecModel) { return; } ecModel.setUpdatePayload(payload); Chart_default.markUpdateMethod(payload, "updateView"); clearColorPalette(ecModel); this._scheduler.performVisualTasks(ecModel, payload, { setDirty: true }); render(this, ecModel, this._api, payload, {}); lifecycle_default.trigger("afterupdate", ecModel, this._api); }, updateVisual: function(payload) { var _this = this; var ecModel = this._model; if (!ecModel) { return; } ecModel.setUpdatePayload(payload); ecModel.eachSeries(function(seriesModel) { seriesModel.getData().clearAllVisual(); }); Chart_default.markUpdateMethod(payload, "updateVisual"); clearColorPalette(ecModel); this._scheduler.performVisualTasks(ecModel, payload, { visualType: "visual", setDirty: true }); ecModel.eachComponent(function(componentType, componentModel) { if (componentType !== "series") { var componentView = _this.getViewOfComponentModel(componentModel); componentView && componentView.__alive && componentView.updateVisual(componentModel, ecModel, _this._api, payload); } }); ecModel.eachSeries(function(seriesModel) { var chartView = _this._chartsMap[seriesModel.__viewId]; chartView.updateVisual(seriesModel, ecModel, _this._api, payload); }); lifecycle_default.trigger("afterupdate", ecModel, this._api); }, updateLayout: function(payload) { updateMethods.update.call(this, payload); } }; doConvertPixel = function(ecIns, methodName, finder, value) { if (ecIns._disposed) { disposedWarning(ecIns.id); return; } var ecModel = ecIns._model; var coordSysList = ecIns._coordSysMgr.getCoordinateSystems(); var result; var parsedFinder = parseFinder(ecModel, finder); for (var i = 0; i < coordSysList.length; i++) { var coordSys = coordSysList[i]; if (coordSys[methodName] && (result = coordSys[methodName](ecModel, parsedFinder, value)) != null) { return result; } } if (true) { warn("No coordinate system that supports " + methodName + " found by the given finder."); } }; updateStreamModes = function(ecIns, ecModel) { var chartsMap = ecIns._chartsMap; var scheduler = ecIns._scheduler; ecModel.eachSeries(function(seriesModel) { scheduler.updateStreamModes(seriesModel, chartsMap[seriesModel.__viewId]); }); }; doDispatchAction = function(payload, silent) { var _this = this; var ecModel = this.getModel(); var payloadType = payload.type; var escapeConnect = payload.escapeConnect; var actionWrap = actions[payloadType]; var actionInfo = actionWrap.actionInfo; var cptTypeTmp = (actionInfo.update || "update").split(":"); var updateMethod = cptTypeTmp.pop(); var cptType = cptTypeTmp[0] != null && parseClassType(cptTypeTmp[0]); this[IN_MAIN_PROCESS_KEY] = true; var payloads = [payload]; var batched = false; if (payload.batch) { batched = true; payloads = map(payload.batch, function(item) { item = defaults(extend({}, item), payload); item.batch = null; return item; }); } var eventObjBatch = []; var eventObj; var isSelectChange = isSelectChangePayload(payload); var isHighDown = isHighDownPayload(payload); if (isHighDown) { allLeaveBlur(this._api); } each(payloads, function(batchItem) { eventObj = actionWrap.action(batchItem, _this._model, _this._api); eventObj = eventObj || extend({}, batchItem); eventObj.type = actionInfo.event || eventObj.type; eventObjBatch.push(eventObj); if (isHighDown) { var _a2 = preParseFinder(payload), queryOptionMap = _a2.queryOptionMap, mainTypeSpecified = _a2.mainTypeSpecified; var componentMainType = mainTypeSpecified ? queryOptionMap.keys()[0] : "series"; updateDirectly(_this, updateMethod, batchItem, componentMainType); markStatusToUpdate(_this); } else if (isSelectChange) { updateDirectly(_this, updateMethod, batchItem, "series"); markStatusToUpdate(_this); } else if (cptType) { updateDirectly(_this, updateMethod, batchItem, cptType.main, cptType.sub); } }); if (updateMethod !== "none" && !isHighDown && !isSelectChange && !cptType) { try { if (this[PENDING_UPDATE]) { prepare(this); updateMethods.update.call(this, payload); this[PENDING_UPDATE] = null; } else { updateMethods[updateMethod].call(this, payload); } } catch (e2) { this[IN_MAIN_PROCESS_KEY] = false; throw e2; } } if (batched) { eventObj = { type: actionInfo.event || payloadType, escapeConnect, batch: eventObjBatch }; } else { eventObj = eventObjBatch[0]; } this[IN_MAIN_PROCESS_KEY] = false; if (!silent) { var messageCenter = this._messageCenter; messageCenter.trigger(eventObj.type, eventObj); if (isSelectChange) { var newObj = { type: "selectchanged", escapeConnect, selected: getAllSelectedIndices(ecModel), isFromClick: payload.isFromClick || false, fromAction: payload.type, fromActionPayload: payload }; messageCenter.trigger(newObj.type, newObj); } } }; flushPendingActions = function(silent) { var pendingActions = this._pendingActions; while (pendingActions.length) { var payload = pendingActions.shift(); doDispatchAction.call(this, payload, silent); } }; triggerUpdatedEvent = function(silent) { !silent && this.trigger("updated"); }; bindRenderedEvent = function(zr, ecIns) { zr.on("rendered", function(params) { ecIns.trigger("rendered", params); if ( // Although zr is dirty if initial animation is not finished // and this checking is called on frame, we also check // animation finished for robustness. zr.animation.isFinished() && !ecIns[PENDING_UPDATE] && !ecIns._scheduler.unfinished && !ecIns._pendingActions.length ) { ecIns.trigger("finished"); } }); }; bindMouseEvent = function(zr, ecIns) { zr.on("mouseover", function(e2) { var el = e2.target; var dispatcher = findEventDispatcher(el, isHighDownDispatcher); if (dispatcher) { handleGlobalMouseOverForHighDown(dispatcher, e2, ecIns._api); markStatusToUpdate(ecIns); } }).on("mouseout", function(e2) { var el = e2.target; var dispatcher = findEventDispatcher(el, isHighDownDispatcher); if (dispatcher) { handleGlobalMouseOutForHighDown(dispatcher, e2, ecIns._api); markStatusToUpdate(ecIns); } }).on("click", function(e2) { var el = e2.target; var dispatcher = findEventDispatcher(el, function(target) { return getECData(target).dataIndex != null; }, true); if (dispatcher) { var actionType = dispatcher.selected ? "unselect" : "select"; var ecData = getECData(dispatcher); ecIns._api.dispatchAction({ type: actionType, dataType: ecData.dataType, dataIndexInside: ecData.dataIndex, seriesIndex: ecData.seriesIndex, isFromClick: true }); } }); }; function clearColorPalette(ecModel) { ecModel.clearColorPalette(); ecModel.eachSeries(function(seriesModel) { seriesModel.clearColorPalette(); }); } ; function allocateZlevels(ecModel) { ; var componentZLevels = []; var seriesZLevels = []; var hasSeparateZLevel = false; ecModel.eachComponent(function(componentType, componentModel) { var zlevel = componentModel.get("zlevel") || 0; var z = componentModel.get("z") || 0; var zlevelKey = componentModel.getZLevelKey(); hasSeparateZLevel = hasSeparateZLevel || !!zlevelKey; (componentType === "series" ? seriesZLevels : componentZLevels).push({ zlevel, z, idx: componentModel.componentIndex, type: componentType, key: zlevelKey }); }); if (hasSeparateZLevel) { var zLevels = componentZLevels.concat(seriesZLevels); var lastSeriesZLevel_1; var lastSeriesKey_1; sort(zLevels, function(a, b) { if (a.zlevel === b.zlevel) { return a.z - b.z; } return a.zlevel - b.zlevel; }); each(zLevels, function(item) { var componentModel = ecModel.getComponent(item.type, item.idx); var zlevel = item.zlevel; var key = item.key; if (lastSeriesZLevel_1 != null) { zlevel = Math.max(lastSeriesZLevel_1, zlevel); } if (key) { if (zlevel === lastSeriesZLevel_1 && key !== lastSeriesKey_1) { zlevel++; } lastSeriesKey_1 = key; } else if (lastSeriesKey_1) { if (zlevel === lastSeriesZLevel_1) { zlevel++; } lastSeriesKey_1 = ""; } lastSeriesZLevel_1 = zlevel; componentModel.setZLevel(zlevel); }); } } render = function(ecIns, ecModel, api, payload, updateParams) { allocateZlevels(ecModel); renderComponents(ecIns, ecModel, api, payload, updateParams); each(ecIns._chartsViews, function(chart) { chart.__alive = false; }); renderSeries(ecIns, ecModel, api, payload, updateParams); each(ecIns._chartsViews, function(chart) { if (!chart.__alive) { chart.remove(ecModel, api); } }); }; renderComponents = function(ecIns, ecModel, api, payload, updateParams, dirtyList) { each(dirtyList || ecIns._componentsViews, function(componentView) { var componentModel = componentView.__model; clearStates(componentModel, componentView); componentView.render(componentModel, ecModel, api, payload); updateZ(componentModel, componentView); updateStates(componentModel, componentView); }); }; renderSeries = function(ecIns, ecModel, api, payload, updateParams, dirtyMap) { var scheduler = ecIns._scheduler; updateParams = extend(updateParams || {}, { updatedSeries: ecModel.getSeries() }); lifecycle_default.trigger("series:beforeupdate", ecModel, api, updateParams); var unfinished = false; ecModel.eachSeries(function(seriesModel) { var chartView = ecIns._chartsMap[seriesModel.__viewId]; chartView.__alive = true; var renderTask = chartView.renderTask; scheduler.updatePayload(renderTask, payload); clearStates(seriesModel, chartView); if (dirtyMap && dirtyMap.get(seriesModel.uid)) { renderTask.dirty(); } if (renderTask.perform(scheduler.getPerformArgs(renderTask))) { unfinished = true; } chartView.group.silent = !!seriesModel.get("silent"); updateBlend(seriesModel, chartView); updateSeriesElementSelection(seriesModel); }); scheduler.unfinished = unfinished || scheduler.unfinished; lifecycle_default.trigger("series:layoutlabels", ecModel, api, updateParams); lifecycle_default.trigger("series:transition", ecModel, api, updateParams); ecModel.eachSeries(function(seriesModel) { var chartView = ecIns._chartsMap[seriesModel.__viewId]; updateZ(seriesModel, chartView); updateStates(seriesModel, chartView); }); updateHoverLayerStatus(ecIns, ecModel); lifecycle_default.trigger("series:afterupdate", ecModel, api, updateParams); }; markStatusToUpdate = function(ecIns) { ecIns[STATUS_NEEDS_UPDATE_KEY] = true; ecIns.getZr().wakeUp(); }; applyChangedStates = function(ecIns) { if (!ecIns[STATUS_NEEDS_UPDATE_KEY]) { return; } ecIns.getZr().storage.traverse(function(el) { if (isElementRemoved(el)) { return; } applyElementStates(el); }); ecIns[STATUS_NEEDS_UPDATE_KEY] = false; }; function applyElementStates(el) { var newStates = []; var oldStates = el.currentStates; for (var i = 0; i < oldStates.length; i++) { var stateName = oldStates[i]; if (!(stateName === "emphasis" || stateName === "blur" || stateName === "select")) { newStates.push(stateName); } } if (el.selected && el.states.select) { newStates.push("select"); } if (el.hoverState === HOVER_STATE_EMPHASIS && el.states.emphasis) { newStates.push("emphasis"); } else if (el.hoverState === HOVER_STATE_BLUR && el.states.blur) { newStates.push("blur"); } el.useStates(newStates); } function updateHoverLayerStatus(ecIns, ecModel) { var zr = ecIns._zr; var storage = zr.storage; var elCount = 0; storage.traverse(function(el) { if (!el.isGroup) { elCount++; } }); if (elCount > ecModel.get("hoverLayerThreshold") && !env_default.node && !env_default.worker) { ecModel.eachSeries(function(seriesModel) { if (seriesModel.preventUsingHoverLayer) { return; } var chartView = ecIns._chartsMap[seriesModel.__viewId]; if (chartView.__alive) { chartView.eachRendered(function(el) { if (el.states.emphasis) { el.states.emphasis.hoverLayer = true; } }); } }); } } ; function updateBlend(seriesModel, chartView) { var blendMode = seriesModel.get("blendMode") || null; chartView.eachRendered(function(el) { if (!el.isGroup) { el.style.blend = blendMode; } }); } ; function updateZ(model, view) { if (model.preventAutoZ) { return; } var z = model.get("z") || 0; var zlevel = model.get("zlevel") || 0; view.eachRendered(function(el) { doUpdateZ(el, z, zlevel, -Infinity); return true; }); } ; function doUpdateZ(el, z, zlevel, maxZ2) { var label = el.getTextContent(); var labelLine = el.getTextGuideLine(); var isGroup = el.isGroup; if (isGroup) { var children = el.childrenRef(); for (var i = 0; i < children.length; i++) { maxZ2 = Math.max(doUpdateZ(children[i], z, zlevel, maxZ2), maxZ2); } } else { el.z = z; el.zlevel = zlevel; maxZ2 = Math.max(el.z2, maxZ2); } if (label) { label.z = z; label.zlevel = zlevel; isFinite(maxZ2) && (label.z2 = maxZ2 + 2); } if (labelLine) { var textGuideLineConfig = el.textGuideLineConfig; labelLine.z = z; labelLine.zlevel = zlevel; isFinite(maxZ2) && (labelLine.z2 = maxZ2 + (textGuideLineConfig && textGuideLineConfig.showAbove ? 1 : -1)); } return maxZ2; } function clearStates(model, view) { view.eachRendered(function(el) { if (isElementRemoved(el)) { return; } var textContent = el.getTextContent(); var textGuide = el.getTextGuideLine(); if (el.stateTransition) { el.stateTransition = null; } if (textContent && textContent.stateTransition) { textContent.stateTransition = null; } if (textGuide && textGuide.stateTransition) { textGuide.stateTransition = null; } if (el.hasState()) { el.prevStates = el.currentStates; el.clearStates(); } else if (el.prevStates) { el.prevStates = null; } }); } function updateStates(model, view) { var stateAnimationModel = model.getModel("stateAnimation"); var enableAnimation = model.isAnimationEnabled(); var duration = stateAnimationModel.get("duration"); var stateTransition = duration > 0 ? { duration, delay: stateAnimationModel.get("delay"), easing: stateAnimationModel.get("easing") // additive: stateAnimationModel.get('additive') } : null; view.eachRendered(function(el) { if (el.states && el.states.emphasis) { if (isElementRemoved(el)) { return; } if (el instanceof Path_default) { savePathStates(el); } if (el.__dirty) { var prevStates = el.prevStates; if (prevStates) { el.useStates(prevStates); } } if (enableAnimation) { el.stateTransition = stateTransition; var textContent = el.getTextContent(); var textGuide = el.getTextGuideLine(); if (textContent) { textContent.stateTransition = stateTransition; } if (textGuide) { textGuide.stateTransition = stateTransition; } } if (el.__dirty) { applyElementStates(el); } } }); } ; createExtensionAPI = function(ecIns) { return new /** @class */ (function(_super2) { __extends(class_1, _super2); function class_1() { return _super2 !== null && _super2.apply(this, arguments) || this; } class_1.prototype.getCoordinateSystems = function() { return ecIns._coordSysMgr.getCoordinateSystems(); }; class_1.prototype.getComponentByElement = function(el) { while (el) { var modelInfo = el.__ecComponentInfo; if (modelInfo != null) { return ecIns._model.getComponent(modelInfo.mainType, modelInfo.index); } el = el.parent; } }; class_1.prototype.enterEmphasis = function(el, highlightDigit) { enterEmphasis(el, highlightDigit); markStatusToUpdate(ecIns); }; class_1.prototype.leaveEmphasis = function(el, highlightDigit) { leaveEmphasis(el, highlightDigit); markStatusToUpdate(ecIns); }; class_1.prototype.enterBlur = function(el) { enterBlur(el); markStatusToUpdate(ecIns); }; class_1.prototype.leaveBlur = function(el) { leaveBlur(el); markStatusToUpdate(ecIns); }; class_1.prototype.enterSelect = function(el) { enterSelect(el); markStatusToUpdate(ecIns); }; class_1.prototype.leaveSelect = function(el) { leaveSelect(el); markStatusToUpdate(ecIns); }; class_1.prototype.getModel = function() { return ecIns.getModel(); }; class_1.prototype.getViewOfComponentModel = function(componentModel) { return ecIns.getViewOfComponentModel(componentModel); }; class_1.prototype.getViewOfSeriesModel = function(seriesModel) { return ecIns.getViewOfSeriesModel(seriesModel); }; return class_1; }(ExtensionAPI_default))(ecIns); }; enableConnect = function(chart) { function updateConnectedChartsStatus(charts, status) { for (var i = 0; i < charts.length; i++) { var otherChart = charts[i]; otherChart[CONNECT_STATUS_KEY] = status; } } each(eventActionMap, function(actionType, eventType) { chart._messageCenter.on(eventType, function(event) { if (connectedGroups[chart.group] && chart[CONNECT_STATUS_KEY] !== CONNECT_STATUS_PENDING) { if (event && event.escapeConnect) { return; } var action_1 = chart.makeActionFromEvent(event); var otherCharts_1 = []; each(instances, function(otherChart) { if (otherChart !== chart && otherChart.group === chart.group) { otherCharts_1.push(otherChart); } }); updateConnectedChartsStatus(otherCharts_1, CONNECT_STATUS_PENDING); each(otherCharts_1, function(otherChart) { if (otherChart[CONNECT_STATUS_KEY] !== CONNECT_STATUS_UPDATING) { otherChart.dispatchAction(action_1); } }); updateConnectedChartsStatus(otherCharts_1, CONNECT_STATUS_UPDATED); } }); }); }; }(); return ECharts2; }(Eventful_default) ); var echartsProto = ECharts.prototype; echartsProto.on = createRegisterEventWithLowercaseECharts("on"); echartsProto.off = createRegisterEventWithLowercaseECharts("off"); echartsProto.one = function(eventName, cb, ctx) { var self = this; deprecateLog("ECharts#one is deprecated."); function wrapped() { var args2 = []; for (var _i = 0; _i < arguments.length; _i++) { args2[_i] = arguments[_i]; } cb && cb.apply && cb.apply(this, args2); self.off(eventName, wrapped); } ; this.on.call(this, eventName, wrapped, ctx); }; var MOUSE_EVENT_NAMES = ["click", "dblclick", "mouseover", "mouseout", "mousemove", "mousedown", "mouseup", "globalout", "contextmenu"]; function disposedWarning(id) { if (true) { warn("Instance " + id + " has been disposed"); } } var actions = {}; var eventActionMap = {}; var dataProcessorFuncs = []; var optionPreprocessorFuncs = []; var visualFuncs = []; var themeStorage = {}; var loadingEffects = {}; var instances = {}; var connectedGroups = {}; var idBase = +/* @__PURE__ */ new Date() - 0; var groupIdBase = +/* @__PURE__ */ new Date() - 0; var DOM_ATTRIBUTE_KEY = "_echarts_instance_"; function init2(dom, theme2, opts) { var isClient = !(opts && opts.ssr); if (isClient) { if (true) { if (!dom) { throw new Error("Initialize failed: invalid dom."); } } var existInstance = getInstanceByDom(dom); if (existInstance) { if (true) { warn("There is a chart instance already initialized on the dom."); } return existInstance; } if (true) { if (isDom(dom) && dom.nodeName.toUpperCase() !== "CANVAS" && (!dom.clientWidth && (!opts || opts.width == null) || !dom.clientHeight && (!opts || opts.height == null))) { warn("Can't get DOM width or height. Please check dom.clientWidth and dom.clientHeight. They should not be 0.For example, you may need to call this in the callback of window.onload."); } } } var chart = new ECharts(dom, theme2, opts); chart.id = "ec_" + idBase++; instances[chart.id] = chart; isClient && setAttribute(dom, DOM_ATTRIBUTE_KEY, chart.id); enableConnect(chart); lifecycle_default.trigger("afterinit", chart); return chart; } function connect(groupId) { if (isArray(groupId)) { var charts = groupId; groupId = null; each(charts, function(chart) { if (chart.group != null) { groupId = chart.group; } }); groupId = groupId || "g_" + groupIdBase++; each(charts, function(chart) { chart.group = groupId; }); } connectedGroups[groupId] = true; return groupId; } function disconnect(groupId) { connectedGroups[groupId] = false; } var disConnect = disconnect; function dispose(chart) { if (isString(chart)) { chart = instances[chart]; } else if (!(chart instanceof ECharts)) { chart = getInstanceByDom(chart); } if (chart instanceof ECharts && !chart.isDisposed()) { chart.dispose(); } } function getInstanceByDom(dom) { return instances[getAttribute(dom, DOM_ATTRIBUTE_KEY)]; } function getInstanceById(key) { return instances[key]; } function registerTheme(name, theme2) { themeStorage[name] = theme2; } function registerPreprocessor(preprocessorFunc) { if (indexOf(optionPreprocessorFuncs, preprocessorFunc) < 0) { optionPreprocessorFuncs.push(preprocessorFunc); } } function registerProcessor(priority, processor) { normalizeRegister(dataProcessorFuncs, priority, processor, PRIORITY_PROCESSOR_DEFAULT); } function registerPostInit(postInitFunc) { registerUpdateLifecycle("afterinit", postInitFunc); } function registerPostUpdate(postUpdateFunc) { registerUpdateLifecycle("afterupdate", postUpdateFunc); } function registerUpdateLifecycle(name, cb) { lifecycle_default.on(name, cb); } function registerAction(actionInfo, eventName, action) { if (isFunction(eventName)) { action = eventName; eventName = ""; } var actionType = isObject(actionInfo) ? actionInfo.type : [actionInfo, actionInfo = { event: eventName }][0]; actionInfo.event = (actionInfo.event || actionType).toLowerCase(); eventName = actionInfo.event; if (eventActionMap[eventName]) { return; } assert(ACTION_REG.test(actionType) && ACTION_REG.test(eventName)); if (!actions[actionType]) { actions[actionType] = { action, actionInfo }; } eventActionMap[eventName] = actionType; } function registerCoordinateSystem(type, coordSysCreator) { CoordinateSystem_default.register(type, coordSysCreator); } function getCoordinateSystemDimensions(type) { var coordSysCreator = CoordinateSystem_default.get(type); if (coordSysCreator) { return coordSysCreator.getDimensionsInfo ? coordSysCreator.getDimensionsInfo() : coordSysCreator.dimensions.slice(); } } function registerLayout(priority, layoutTask) { normalizeRegister(visualFuncs, priority, layoutTask, PRIORITY_VISUAL_LAYOUT, "layout"); } function registerVisual(priority, visualTask) { normalizeRegister(visualFuncs, priority, visualTask, PRIORITY_VISUAL_CHART, "visual"); } var registeredTasks = []; function normalizeRegister(targetList, priority, fn, defaultPriority, visualType) { if (isFunction(priority) || isObject(priority)) { fn = priority; priority = defaultPriority; } if (true) { if (isNaN(priority) || priority == null) { throw new Error("Illegal priority"); } each(targetList, function(wrap) { assert(wrap.__raw !== fn); }); } if (indexOf(registeredTasks, fn) >= 0) { return; } registeredTasks.push(fn); var stageHandler = Scheduler_default.wrapStageHandler(fn, visualType); stageHandler.__prio = priority; stageHandler.__raw = fn; targetList.push(stageHandler); } function registerLoading(name, loadingFx) { loadingEffects[name] = loadingFx; } function setCanvasCreator(creator) { if (true) { deprecateLog("setCanvasCreator is deprecated. Use setPlatformAPI({ createCanvas }) instead."); } setPlatformAPI({ createCanvas: creator }); } function registerMap(mapName, geoJson, specialAreas) { var registerMap2 = getImpl("registerMap"); registerMap2 && registerMap2(mapName, geoJson, specialAreas); } function getMap(mapName) { var getMap2 = getImpl("getMap"); return getMap2 && getMap2(mapName); } var registerTransform = registerExternalTransform; registerVisual(PRIORITY_VISUAL_GLOBAL, seriesStyleTask); registerVisual(PRIORITY_VISUAL_CHART_DATA_CUSTOM, dataStyleTask); registerVisual(PRIORITY_VISUAL_CHART_DATA_CUSTOM, dataColorPaletteTask); registerVisual(PRIORITY_VISUAL_GLOBAL, seriesSymbolTask); registerVisual(PRIORITY_VISUAL_CHART_DATA_CUSTOM, dataSymbolTask); registerVisual(PRIORITY_VISUAL_DECAL, decalVisual); registerPreprocessor(globalBackwardCompat); registerProcessor(PRIORITY_PROCESSOR_DATASTACK, dataStack); registerLoading("default", defaultLoading); registerAction({ type: HIGHLIGHT_ACTION_TYPE, event: HIGHLIGHT_ACTION_TYPE, update: HIGHLIGHT_ACTION_TYPE }, noop); registerAction({ type: DOWNPLAY_ACTION_TYPE, event: DOWNPLAY_ACTION_TYPE, update: DOWNPLAY_ACTION_TYPE }, noop); registerAction({ type: SELECT_ACTION_TYPE, event: SELECT_ACTION_TYPE, update: SELECT_ACTION_TYPE }, noop); registerAction({ type: UNSELECT_ACTION_TYPE, event: UNSELECT_ACTION_TYPE, update: UNSELECT_ACTION_TYPE }, noop); registerAction({ type: TOGGLE_SELECT_ACTION_TYPE, event: TOGGLE_SELECT_ACTION_TYPE, update: TOGGLE_SELECT_ACTION_TYPE }, noop); registerTheme("light", light_default); registerTheme("dark", dark_default); var dataTool = {}; // node_modules/echarts/lib/data/DataDiffer.js function dataIndexMapValueLength(valNumOrArrLengthMoreThan2) { return valNumOrArrLengthMoreThan2 == null ? 0 : valNumOrArrLengthMoreThan2.length || 1; } function defaultKeyGetter(item) { return item; } var DataDiffer = ( /** @class */ function() { function DataDiffer2(oldArr, newArr, oldKeyGetter, newKeyGetter, context, diffMode) { this._old = oldArr; this._new = newArr; this._oldKeyGetter = oldKeyGetter || defaultKeyGetter; this._newKeyGetter = newKeyGetter || defaultKeyGetter; this.context = context; this._diffModeMultiple = diffMode === "multiple"; } DataDiffer2.prototype.add = function(func) { this._add = func; return this; }; DataDiffer2.prototype.update = function(func) { this._update = func; return this; }; DataDiffer2.prototype.updateManyToOne = function(func) { this._updateManyToOne = func; return this; }; DataDiffer2.prototype.updateOneToMany = function(func) { this._updateOneToMany = func; return this; }; DataDiffer2.prototype.updateManyToMany = function(func) { this._updateManyToMany = func; return this; }; DataDiffer2.prototype.remove = function(func) { this._remove = func; return this; }; DataDiffer2.prototype.execute = function() { this[this._diffModeMultiple ? "_executeMultiple" : "_executeOneToOne"](); }; DataDiffer2.prototype._executeOneToOne = function() { var oldArr = this._old; var newArr = this._new; var newDataIndexMap = {}; var oldDataKeyArr = new Array(oldArr.length); var newDataKeyArr = new Array(newArr.length); this._initIndexMap(oldArr, null, oldDataKeyArr, "_oldKeyGetter"); this._initIndexMap(newArr, newDataIndexMap, newDataKeyArr, "_newKeyGetter"); for (var i = 0; i < oldArr.length; i++) { var oldKey = oldDataKeyArr[i]; var newIdxMapVal = newDataIndexMap[oldKey]; var newIdxMapValLen = dataIndexMapValueLength(newIdxMapVal); if (newIdxMapValLen > 1) { var newIdx = newIdxMapVal.shift(); if (newIdxMapVal.length === 1) { newDataIndexMap[oldKey] = newIdxMapVal[0]; } this._update && this._update(newIdx, i); } else if (newIdxMapValLen === 1) { newDataIndexMap[oldKey] = null; this._update && this._update(newIdxMapVal, i); } else { this._remove && this._remove(i); } } this._performRestAdd(newDataKeyArr, newDataIndexMap); }; DataDiffer2.prototype._executeMultiple = function() { var oldArr = this._old; var newArr = this._new; var oldDataIndexMap = {}; var newDataIndexMap = {}; var oldDataKeyArr = []; var newDataKeyArr = []; this._initIndexMap(oldArr, oldDataIndexMap, oldDataKeyArr, "_oldKeyGetter"); this._initIndexMap(newArr, newDataIndexMap, newDataKeyArr, "_newKeyGetter"); for (var i = 0; i < oldDataKeyArr.length; i++) { var oldKey = oldDataKeyArr[i]; var oldIdxMapVal = oldDataIndexMap[oldKey]; var newIdxMapVal = newDataIndexMap[oldKey]; var oldIdxMapValLen = dataIndexMapValueLength(oldIdxMapVal); var newIdxMapValLen = dataIndexMapValueLength(newIdxMapVal); if (oldIdxMapValLen > 1 && newIdxMapValLen === 1) { this._updateManyToOne && this._updateManyToOne(newIdxMapVal, oldIdxMapVal); newDataIndexMap[oldKey] = null; } else if (oldIdxMapValLen === 1 && newIdxMapValLen > 1) { this._updateOneToMany && this._updateOneToMany(newIdxMapVal, oldIdxMapVal); newDataIndexMap[oldKey] = null; } else if (oldIdxMapValLen === 1 && newIdxMapValLen === 1) { this._update && this._update(newIdxMapVal, oldIdxMapVal); newDataIndexMap[oldKey] = null; } else if (oldIdxMapValLen > 1 && newIdxMapValLen > 1) { this._updateManyToMany && this._updateManyToMany(newIdxMapVal, oldIdxMapVal); newDataIndexMap[oldKey] = null; } else if (oldIdxMapValLen > 1) { for (var i_1 = 0; i_1 < oldIdxMapValLen; i_1++) { this._remove && this._remove(oldIdxMapVal[i_1]); } } else { this._remove && this._remove(oldIdxMapVal); } } this._performRestAdd(newDataKeyArr, newDataIndexMap); }; DataDiffer2.prototype._performRestAdd = function(newDataKeyArr, newDataIndexMap) { for (var i = 0; i < newDataKeyArr.length; i++) { var newKey = newDataKeyArr[i]; var newIdxMapVal = newDataIndexMap[newKey]; var idxMapValLen = dataIndexMapValueLength(newIdxMapVal); if (idxMapValLen > 1) { for (var j = 0; j < idxMapValLen; j++) { this._add && this._add(newIdxMapVal[j]); } } else if (idxMapValLen === 1) { this._add && this._add(newIdxMapVal); } newDataIndexMap[newKey] = null; } }; DataDiffer2.prototype._initIndexMap = function(arr, map3, keyArr, keyGetterName) { var cbModeMultiple = this._diffModeMultiple; for (var i = 0; i < arr.length; i++) { var key = "_ec_" + this[keyGetterName](arr[i], i); if (!cbModeMultiple) { keyArr[i] = key; } if (!map3) { continue; } var idxMapVal = map3[key]; var idxMapValLen = dataIndexMapValueLength(idxMapVal); if (idxMapValLen === 0) { map3[key] = i; if (cbModeMultiple) { keyArr.push(key); } } else if (idxMapValLen === 1) { map3[key] = [idxMapVal, i]; } else { idxMapVal.push(i); } } }; return DataDiffer2; }() ); var DataDiffer_default = DataDiffer; // node_modules/echarts/lib/data/helper/dimensionHelper.js var DimensionUserOuput = ( /** @class */ function() { function DimensionUserOuput2(encode, dimRequest) { this._encode = encode; this._schema = dimRequest; } DimensionUserOuput2.prototype.get = function() { return { // Do not generate full dimension name until fist used. fullDimensions: this._getFullDimensionNames(), encode: this._encode }; }; DimensionUserOuput2.prototype._getFullDimensionNames = function() { if (!this._cachedDimNames) { this._cachedDimNames = this._schema ? this._schema.makeOutputDimensionNames() : []; } return this._cachedDimNames; }; return DimensionUserOuput2; }() ); function summarizeDimensions(data, schema) { var summary = {}; var encode = summary.encode = {}; var notExtraCoordDimMap = createHashMap(); var defaultedLabel = []; var defaultedTooltip = []; var userOutputEncode = {}; each(data.dimensions, function(dimName) { var dimItem = data.getDimensionInfo(dimName); var coordDim = dimItem.coordDim; if (coordDim) { if (true) { assert(VISUAL_DIMENSIONS.get(coordDim) == null); } var coordDimIndex = dimItem.coordDimIndex; getOrCreateEncodeArr(encode, coordDim)[coordDimIndex] = dimName; if (!dimItem.isExtraCoord) { notExtraCoordDimMap.set(coordDim, 1); if (mayLabelDimType(dimItem.type)) { defaultedLabel[0] = dimName; } getOrCreateEncodeArr(userOutputEncode, coordDim)[coordDimIndex] = data.getDimensionIndex(dimItem.name); } if (dimItem.defaultTooltip) { defaultedTooltip.push(dimName); } } VISUAL_DIMENSIONS.each(function(v, otherDim) { var encodeArr = getOrCreateEncodeArr(encode, otherDim); var dimIndex = dimItem.otherDims[otherDim]; if (dimIndex != null && dimIndex !== false) { encodeArr[dimIndex] = dimItem.name; } }); }); var dataDimsOnCoord = []; var encodeFirstDimNotExtra = {}; notExtraCoordDimMap.each(function(v, coordDim) { var dimArr = encode[coordDim]; encodeFirstDimNotExtra[coordDim] = dimArr[0]; dataDimsOnCoord = dataDimsOnCoord.concat(dimArr); }); summary.dataDimsOnCoord = dataDimsOnCoord; summary.dataDimIndicesOnCoord = map(dataDimsOnCoord, function(dimName) { return data.getDimensionInfo(dimName).storeDimIndex; }); summary.encodeFirstDimNotExtra = encodeFirstDimNotExtra; var encodeLabel = encode.label; if (encodeLabel && encodeLabel.length) { defaultedLabel = encodeLabel.slice(); } var encodeTooltip = encode.tooltip; if (encodeTooltip && encodeTooltip.length) { defaultedTooltip = encodeTooltip.slice(); } else if (!defaultedTooltip.length) { defaultedTooltip = defaultedLabel.slice(); } encode.defaultedLabel = defaultedLabel; encode.defaultedTooltip = defaultedTooltip; summary.userOutput = new DimensionUserOuput(userOutputEncode, schema); return summary; } function getOrCreateEncodeArr(encode, dim) { if (!encode.hasOwnProperty(dim)) { encode[dim] = []; } return encode[dim]; } function getDimensionTypeByAxis(axisType) { return axisType === "category" ? "ordinal" : axisType === "time" ? "time" : "float"; } function mayLabelDimType(dimType) { return !(dimType === "ordinal" || dimType === "time"); } // node_modules/echarts/lib/data/SeriesDimensionDefine.js var SeriesDimensionDefine = ( /** @class */ /* @__PURE__ */ function() { function SeriesDimensionDefine2(opt) { this.otherDims = {}; if (opt != null) { extend(this, opt); } } return SeriesDimensionDefine2; }() ); var SeriesDimensionDefine_default = SeriesDimensionDefine; // node_modules/echarts/lib/data/helper/SeriesDataSchema.js var inner5 = makeInner(); var dimTypeShort = { float: "f", int: "i", ordinal: "o", number: "n", time: "t" }; var SeriesDataSchema = ( /** @class */ function() { function SeriesDataSchema2(opt) { this.dimensions = opt.dimensions; this._dimOmitted = opt.dimensionOmitted; this.source = opt.source; this._fullDimCount = opt.fullDimensionCount; this._updateDimOmitted(opt.dimensionOmitted); } SeriesDataSchema2.prototype.isDimensionOmitted = function() { return this._dimOmitted; }; SeriesDataSchema2.prototype._updateDimOmitted = function(dimensionOmitted) { this._dimOmitted = dimensionOmitted; if (!dimensionOmitted) { return; } if (!this._dimNameMap) { this._dimNameMap = ensureSourceDimNameMap(this.source); } }; SeriesDataSchema2.prototype.getSourceDimensionIndex = function(dimName) { return retrieve2(this._dimNameMap.get(dimName), -1); }; SeriesDataSchema2.prototype.getSourceDimension = function(dimIndex) { var dimensionsDefine = this.source.dimensionsDefine; if (dimensionsDefine) { return dimensionsDefine[dimIndex]; } }; SeriesDataSchema2.prototype.makeStoreSchema = function() { var dimCount = this._fullDimCount; var willRetrieveDataByName = shouldRetrieveDataByName(this.source); var makeHashStrict = !shouldOmitUnusedDimensions(dimCount); var dimHash = ""; var dims = []; for (var fullDimIdx = 0, seriesDimIdx = 0; fullDimIdx < dimCount; fullDimIdx++) { var property = void 0; var type = void 0; var ordinalMeta = void 0; var seriesDimDef = this.dimensions[seriesDimIdx]; if (seriesDimDef && seriesDimDef.storeDimIndex === fullDimIdx) { property = willRetrieveDataByName ? seriesDimDef.name : null; type = seriesDimDef.type; ordinalMeta = seriesDimDef.ordinalMeta; seriesDimIdx++; } else { var sourceDimDef = this.getSourceDimension(fullDimIdx); if (sourceDimDef) { property = willRetrieveDataByName ? sourceDimDef.name : null; type = sourceDimDef.type; } } dims.push({ property, type, ordinalMeta }); if (willRetrieveDataByName && property != null && (!seriesDimDef || !seriesDimDef.isCalculationCoord)) { dimHash += makeHashStrict ? property.replace(/\`/g, "`1").replace(/\$/g, "`2") : property; } dimHash += "$"; dimHash += dimTypeShort[type] || "f"; if (ordinalMeta) { dimHash += ordinalMeta.uid; } dimHash += "$"; } var source = this.source; var hash = [source.seriesLayoutBy, source.startIndex, dimHash].join("$$"); return { dimensions: dims, hash }; }; SeriesDataSchema2.prototype.makeOutputDimensionNames = function() { var result = []; for (var fullDimIdx = 0, seriesDimIdx = 0; fullDimIdx < this._fullDimCount; fullDimIdx++) { var name_1 = void 0; var seriesDimDef = this.dimensions[seriesDimIdx]; if (seriesDimDef && seriesDimDef.storeDimIndex === fullDimIdx) { if (!seriesDimDef.isCalculationCoord) { name_1 = seriesDimDef.name; } seriesDimIdx++; } else { var sourceDimDef = this.getSourceDimension(fullDimIdx); if (sourceDimDef) { name_1 = sourceDimDef.name; } } result.push(name_1); } return result; }; SeriesDataSchema2.prototype.appendCalculationDimension = function(dimDef) { this.dimensions.push(dimDef); dimDef.isCalculationCoord = true; this._fullDimCount++; this._updateDimOmitted(true); }; return SeriesDataSchema2; }() ); function isSeriesDataSchema(schema) { return schema instanceof SeriesDataSchema; } function createDimNameMap(dimsDef) { var dataDimNameMap = createHashMap(); for (var i = 0; i < (dimsDef || []).length; i++) { var dimDefItemRaw = dimsDef[i]; var userDimName = isObject(dimDefItemRaw) ? dimDefItemRaw.name : dimDefItemRaw; if (userDimName != null && dataDimNameMap.get(userDimName) == null) { dataDimNameMap.set(userDimName, i); } } return dataDimNameMap; } function ensureSourceDimNameMap(source) { var innerSource = inner5(source); return innerSource.dimNameMap || (innerSource.dimNameMap = createDimNameMap(source.dimensionsDefine)); } function shouldOmitUnusedDimensions(dimCount) { return dimCount > 30; } // node_modules/echarts/lib/data/SeriesData.js var isObject3 = isObject; var map2 = map; var CtorInt32Array2 = typeof Int32Array === "undefined" ? Array : Int32Array; var ID_PREFIX = "e\0\0"; var INDEX_NOT_FOUND = -1; var TRANSFERABLE_PROPERTIES = ["hasItemOption", "_nameList", "_idList", "_invertedIndicesMap", "_dimSummary", "userOutput", "_rawData", "_dimValueGetter", "_nameDimIdx", "_idDimIdx", "_nameRepeatCount"]; var CLONE_PROPERTIES = ["_approximateExtent"]; var prepareInvertedIndex; var getId; var getIdNameFromStore; var normalizeDimensions; var transferProperties; var cloneListForMapAndSample; var makeIdFromName; var SeriesData = ( /** @class */ function() { function SeriesData2(dimensionsInput, hostModel) { this.type = "list"; this._dimOmitted = false; this._nameList = []; this._idList = []; this._visual = {}; this._layout = {}; this._itemVisuals = []; this._itemLayouts = []; this._graphicEls = []; this._approximateExtent = {}; this._calculationInfo = {}; this.hasItemOption = false; this.TRANSFERABLE_METHODS = ["cloneShallow", "downSample", "minmaxDownSample", "lttbDownSample", "map"]; this.CHANGABLE_METHODS = ["filterSelf", "selectRange"]; this.DOWNSAMPLE_METHODS = ["downSample", "minmaxDownSample", "lttbDownSample"]; var dimensions; var assignStoreDimIdx = false; if (isSeriesDataSchema(dimensionsInput)) { dimensions = dimensionsInput.dimensions; this._dimOmitted = dimensionsInput.isDimensionOmitted(); this._schema = dimensionsInput; } else { assignStoreDimIdx = true; dimensions = dimensionsInput; } dimensions = dimensions || ["x", "y"]; var dimensionInfos = {}; var dimensionNames = []; var invertedIndicesMap = {}; var needsHasOwn = false; var emptyObj = {}; for (var i = 0; i < dimensions.length; i++) { var dimInfoInput = dimensions[i]; var dimensionInfo = isString(dimInfoInput) ? new SeriesDimensionDefine_default({ name: dimInfoInput }) : !(dimInfoInput instanceof SeriesDimensionDefine_default) ? new SeriesDimensionDefine_default(dimInfoInput) : dimInfoInput; var dimensionName = dimensionInfo.name; dimensionInfo.type = dimensionInfo.type || "float"; if (!dimensionInfo.coordDim) { dimensionInfo.coordDim = dimensionName; dimensionInfo.coordDimIndex = 0; } var otherDims = dimensionInfo.otherDims = dimensionInfo.otherDims || {}; dimensionNames.push(dimensionName); dimensionInfos[dimensionName] = dimensionInfo; if (emptyObj[dimensionName] != null) { needsHasOwn = true; } if (dimensionInfo.createInvertedIndices) { invertedIndicesMap[dimensionName] = []; } if (otherDims.itemName === 0) { this._nameDimIdx = i; } if (otherDims.itemId === 0) { this._idDimIdx = i; } if (true) { assert(assignStoreDimIdx || dimensionInfo.storeDimIndex >= 0); } if (assignStoreDimIdx) { dimensionInfo.storeDimIndex = i; } } this.dimensions = dimensionNames; this._dimInfos = dimensionInfos; this._initGetDimensionInfo(needsHasOwn); this.hostModel = hostModel; this._invertedIndicesMap = invertedIndicesMap; if (this._dimOmitted) { var dimIdxToName_1 = this._dimIdxToName = createHashMap(); each(dimensionNames, function(dimName) { dimIdxToName_1.set(dimensionInfos[dimName].storeDimIndex, dimName); }); } } SeriesData2.prototype.getDimension = function(dim) { var dimIdx = this._recognizeDimIndex(dim); if (dimIdx == null) { return dim; } dimIdx = dim; if (!this._dimOmitted) { return this.dimensions[dimIdx]; } var dimName = this._dimIdxToName.get(dimIdx); if (dimName != null) { return dimName; } var sourceDimDef = this._schema.getSourceDimension(dimIdx); if (sourceDimDef) { return sourceDimDef.name; } }; SeriesData2.prototype.getDimensionIndex = function(dim) { var dimIdx = this._recognizeDimIndex(dim); if (dimIdx != null) { return dimIdx; } if (dim == null) { return -1; } var dimInfo = this._getDimInfo(dim); return dimInfo ? dimInfo.storeDimIndex : this._dimOmitted ? this._schema.getSourceDimensionIndex(dim) : -1; }; SeriesData2.prototype._recognizeDimIndex = function(dim) { if (isNumber(dim) || dim != null && !isNaN(dim) && !this._getDimInfo(dim) && (!this._dimOmitted || this._schema.getSourceDimensionIndex(dim) < 0)) { return +dim; } }; SeriesData2.prototype._getStoreDimIndex = function(dim) { var dimIdx = this.getDimensionIndex(dim); if (true) { if (dimIdx == null) { throw new Error("Unknown dimension " + dim); } } return dimIdx; }; SeriesData2.prototype.getDimensionInfo = function(dim) { return this._getDimInfo(this.getDimension(dim)); }; SeriesData2.prototype._initGetDimensionInfo = function(needsHasOwn) { var dimensionInfos = this._dimInfos; this._getDimInfo = needsHasOwn ? function(dimName) { return dimensionInfos.hasOwnProperty(dimName) ? dimensionInfos[dimName] : void 0; } : function(dimName) { return dimensionInfos[dimName]; }; }; SeriesData2.prototype.getDimensionsOnCoord = function() { return this._dimSummary.dataDimsOnCoord.slice(); }; SeriesData2.prototype.mapDimension = function(coordDim, idx) { var dimensionsSummary = this._dimSummary; if (idx == null) { return dimensionsSummary.encodeFirstDimNotExtra[coordDim]; } var dims = dimensionsSummary.encode[coordDim]; return dims ? dims[idx] : null; }; SeriesData2.prototype.mapDimensionsAll = function(coordDim) { var dimensionsSummary = this._dimSummary; var dims = dimensionsSummary.encode[coordDim]; return (dims || []).slice(); }; SeriesData2.prototype.getStore = function() { return this._store; }; SeriesData2.prototype.initData = function(data, nameList, dimValueGetter) { var _this = this; var store; if (data instanceof DataStore_default) { store = data; } if (!store) { var dimensions = this.dimensions; var provider = isSourceInstance(data) || isArrayLike(data) ? new DefaultDataProvider(data, dimensions.length) : data; store = new DataStore_default(); var dimensionInfos = map2(dimensions, function(dimName) { return { type: _this._dimInfos[dimName].type, property: dimName }; }); store.initData(provider, dimensionInfos, dimValueGetter); } this._store = store; this._nameList = (nameList || []).slice(); this._idList = []; this._nameRepeatCount = {}; this._doInit(0, store.count()); this._dimSummary = summarizeDimensions(this, this._schema); this.userOutput = this._dimSummary.userOutput; }; SeriesData2.prototype.appendData = function(data) { var range = this._store.appendData(data); this._doInit(range[0], range[1]); }; SeriesData2.prototype.appendValues = function(values, names) { var _a2 = this._store.appendValues(values, names && names.length), start = _a2.start, end = _a2.end; var shouldMakeIdFromName = this._shouldMakeIdFromName(); this._updateOrdinalMeta(); if (names) { for (var idx = start; idx < end; idx++) { var sourceIdx = idx - start; this._nameList[idx] = names[sourceIdx]; if (shouldMakeIdFromName) { makeIdFromName(this, idx); } } } }; SeriesData2.prototype._updateOrdinalMeta = function() { var store = this._store; var dimensions = this.dimensions; for (var i = 0; i < dimensions.length; i++) { var dimInfo = this._dimInfos[dimensions[i]]; if (dimInfo.ordinalMeta) { store.collectOrdinalMeta(dimInfo.storeDimIndex, dimInfo.ordinalMeta); } } }; SeriesData2.prototype._shouldMakeIdFromName = function() { var provider = this._store.getProvider(); return this._idDimIdx == null && provider.getSource().sourceFormat !== SOURCE_FORMAT_TYPED_ARRAY && !provider.fillStorage; }; SeriesData2.prototype._doInit = function(start, end) { if (start >= end) { return; } var store = this._store; var provider = store.getProvider(); this._updateOrdinalMeta(); var nameList = this._nameList; var idList = this._idList; var sourceFormat = provider.getSource().sourceFormat; var isFormatOriginal = sourceFormat === SOURCE_FORMAT_ORIGINAL; if (isFormatOriginal && !provider.pure) { var sharedDataItem = []; for (var idx = start; idx < end; idx++) { var dataItem = provider.getItem(idx, sharedDataItem); if (!this.hasItemOption && isDataItemOption(dataItem)) { this.hasItemOption = true; } if (dataItem) { var itemName = dataItem.name; if (nameList[idx] == null && itemName != null) { nameList[idx] = convertOptionIdName(itemName, null); } var itemId = dataItem.id; if (idList[idx] == null && itemId != null) { idList[idx] = convertOptionIdName(itemId, null); } } } } if (this._shouldMakeIdFromName()) { for (var idx = start; idx < end; idx++) { makeIdFromName(this, idx); } } prepareInvertedIndex(this); }; SeriesData2.prototype.getApproximateExtent = function(dim) { return this._approximateExtent[dim] || this._store.getDataExtent(this._getStoreDimIndex(dim)); }; SeriesData2.prototype.setApproximateExtent = function(extent3, dim) { dim = this.getDimension(dim); this._approximateExtent[dim] = extent3.slice(); }; SeriesData2.prototype.getCalculationInfo = function(key) { return this._calculationInfo[key]; }; SeriesData2.prototype.setCalculationInfo = function(key, value) { isObject3(key) ? extend(this._calculationInfo, key) : this._calculationInfo[key] = value; }; SeriesData2.prototype.getName = function(idx) { var rawIndex = this.getRawIndex(idx); var name = this._nameList[rawIndex]; if (name == null && this._nameDimIdx != null) { name = getIdNameFromStore(this, this._nameDimIdx, rawIndex); } if (name == null) { name = ""; } return name; }; SeriesData2.prototype._getCategory = function(dimIdx, idx) { var ordinal = this._store.get(dimIdx, idx); var ordinalMeta = this._store.getOrdinalMeta(dimIdx); if (ordinalMeta) { return ordinalMeta.categories[ordinal]; } return ordinal; }; SeriesData2.prototype.getId = function(idx) { return getId(this, this.getRawIndex(idx)); }; SeriesData2.prototype.count = function() { return this._store.count(); }; SeriesData2.prototype.get = function(dim, idx) { var store = this._store; var dimInfo = this._dimInfos[dim]; if (dimInfo) { return store.get(dimInfo.storeDimIndex, idx); } }; SeriesData2.prototype.getByRawIndex = function(dim, rawIdx) { var store = this._store; var dimInfo = this._dimInfos[dim]; if (dimInfo) { return store.getByRawIndex(dimInfo.storeDimIndex, rawIdx); } }; SeriesData2.prototype.getIndices = function() { return this._store.getIndices(); }; SeriesData2.prototype.getDataExtent = function(dim) { return this._store.getDataExtent(this._getStoreDimIndex(dim)); }; SeriesData2.prototype.getSum = function(dim) { return this._store.getSum(this._getStoreDimIndex(dim)); }; SeriesData2.prototype.getMedian = function(dim) { return this._store.getMedian(this._getStoreDimIndex(dim)); }; SeriesData2.prototype.getValues = function(dimensions, idx) { var _this = this; var store = this._store; return isArray(dimensions) ? store.getValues(map2(dimensions, function(dim) { return _this._getStoreDimIndex(dim); }), idx) : store.getValues(dimensions); }; SeriesData2.prototype.hasValue = function(idx) { var dataDimIndicesOnCoord = this._dimSummary.dataDimIndicesOnCoord; for (var i = 0, len = dataDimIndicesOnCoord.length; i < len; i++) { if (isNaN(this._store.get(dataDimIndicesOnCoord[i], idx))) { return false; } } return true; }; SeriesData2.prototype.indexOfName = function(name) { for (var i = 0, len = this._store.count(); i < len; i++) { if (this.getName(i) === name) { return i; } } return -1; }; SeriesData2.prototype.getRawIndex = function(idx) { return this._store.getRawIndex(idx); }; SeriesData2.prototype.indexOfRawIndex = function(rawIndex) { return this._store.indexOfRawIndex(rawIndex); }; SeriesData2.prototype.rawIndexOf = function(dim, value) { var invertedIndices = dim && this._invertedIndicesMap[dim]; if (true) { if (!invertedIndices) { throw new Error("Do not supported yet"); } } var rawIndex = invertedIndices && invertedIndices[value]; if (rawIndex == null || isNaN(rawIndex)) { return INDEX_NOT_FOUND; } return rawIndex; }; SeriesData2.prototype.indicesOfNearest = function(dim, value, maxDistance) { return this._store.indicesOfNearest(this._getStoreDimIndex(dim), value, maxDistance); }; SeriesData2.prototype.each = function(dims, cb, ctx) { "use strict"; if (isFunction(dims)) { ctx = cb; cb = dims; dims = []; } var fCtx = ctx || this; var dimIndices = map2(normalizeDimensions(dims), this._getStoreDimIndex, this); this._store.each(dimIndices, fCtx ? bind(cb, fCtx) : cb); }; SeriesData2.prototype.filterSelf = function(dims, cb, ctx) { "use strict"; if (isFunction(dims)) { ctx = cb; cb = dims; dims = []; } var fCtx = ctx || this; var dimIndices = map2(normalizeDimensions(dims), this._getStoreDimIndex, this); this._store = this._store.filter(dimIndices, fCtx ? bind(cb, fCtx) : cb); return this; }; SeriesData2.prototype.selectRange = function(range) { "use strict"; var _this = this; var innerRange = {}; var dims = keys(range); var dimIndices = []; each(dims, function(dim) { var dimIdx = _this._getStoreDimIndex(dim); innerRange[dimIdx] = range[dim]; dimIndices.push(dimIdx); }); this._store = this._store.selectRange(innerRange); return this; }; SeriesData2.prototype.mapArray = function(dims, cb, ctx) { "use strict"; if (isFunction(dims)) { ctx = cb; cb = dims; dims = []; } ctx = ctx || this; var result = []; this.each(dims, function() { result.push(cb && cb.apply(this, arguments)); }, ctx); return result; }; SeriesData2.prototype.map = function(dims, cb, ctx, ctxCompat) { "use strict"; var fCtx = ctx || ctxCompat || this; var dimIndices = map2(normalizeDimensions(dims), this._getStoreDimIndex, this); var list = cloneListForMapAndSample(this); list._store = this._store.map(dimIndices, fCtx ? bind(cb, fCtx) : cb); return list; }; SeriesData2.prototype.modify = function(dims, cb, ctx, ctxCompat) { var _this = this; var fCtx = ctx || ctxCompat || this; if (true) { each(normalizeDimensions(dims), function(dim) { var dimInfo = _this.getDimensionInfo(dim); if (!dimInfo.isCalculationCoord) { console.error("Danger: only stack dimension can be modified"); } }); } var dimIndices = map2(normalizeDimensions(dims), this._getStoreDimIndex, this); this._store.modify(dimIndices, fCtx ? bind(cb, fCtx) : cb); }; SeriesData2.prototype.downSample = function(dimension, rate, sampleValue, sampleIndex) { var list = cloneListForMapAndSample(this); list._store = this._store.downSample(this._getStoreDimIndex(dimension), rate, sampleValue, sampleIndex); return list; }; SeriesData2.prototype.minmaxDownSample = function(valueDimension, rate) { var list = cloneListForMapAndSample(this); list._store = this._store.minmaxDownSample(this._getStoreDimIndex(valueDimension), rate); return list; }; SeriesData2.prototype.lttbDownSample = function(valueDimension, rate) { var list = cloneListForMapAndSample(this); list._store = this._store.lttbDownSample(this._getStoreDimIndex(valueDimension), rate); return list; }; SeriesData2.prototype.getRawDataItem = function(idx) { return this._store.getRawDataItem(idx); }; SeriesData2.prototype.getItemModel = function(idx) { var hostModel = this.hostModel; var dataItem = this.getRawDataItem(idx); return new Model_default(dataItem, hostModel, hostModel && hostModel.ecModel); }; SeriesData2.prototype.diff = function(otherList) { var thisList = this; return new DataDiffer_default(otherList ? otherList.getStore().getIndices() : [], this.getStore().getIndices(), function(idx) { return getId(otherList, idx); }, function(idx) { return getId(thisList, idx); }); }; SeriesData2.prototype.getVisual = function(key) { var visual = this._visual; return visual && visual[key]; }; SeriesData2.prototype.setVisual = function(kvObj, val) { this._visual = this._visual || {}; if (isObject3(kvObj)) { extend(this._visual, kvObj); } else { this._visual[kvObj] = val; } }; SeriesData2.prototype.getItemVisual = function(idx, key) { var itemVisual = this._itemVisuals[idx]; var val = itemVisual && itemVisual[key]; if (val == null) { return this.getVisual(key); } return val; }; SeriesData2.prototype.hasItemVisual = function() { return this._itemVisuals.length > 0; }; SeriesData2.prototype.ensureUniqueItemVisual = function(idx, key) { var itemVisuals = this._itemVisuals; var itemVisual = itemVisuals[idx]; if (!itemVisual) { itemVisual = itemVisuals[idx] = {}; } var val = itemVisual[key]; if (val == null) { val = this.getVisual(key); if (isArray(val)) { val = val.slice(); } else if (isObject3(val)) { val = extend({}, val); } itemVisual[key] = val; } return val; }; SeriesData2.prototype.setItemVisual = function(idx, key, value) { var itemVisual = this._itemVisuals[idx] || {}; this._itemVisuals[idx] = itemVisual; if (isObject3(key)) { extend(itemVisual, key); } else { itemVisual[key] = value; } }; SeriesData2.prototype.clearAllVisual = function() { this._visual = {}; this._itemVisuals = []; }; SeriesData2.prototype.setLayout = function(key, val) { isObject3(key) ? extend(this._layout, key) : this._layout[key] = val; }; SeriesData2.prototype.getLayout = function(key) { return this._layout[key]; }; SeriesData2.prototype.getItemLayout = function(idx) { return this._itemLayouts[idx]; }; SeriesData2.prototype.setItemLayout = function(idx, layout2, merge2) { this._itemLayouts[idx] = merge2 ? extend(this._itemLayouts[idx] || {}, layout2) : layout2; }; SeriesData2.prototype.clearItemLayouts = function() { this._itemLayouts.length = 0; }; SeriesData2.prototype.setItemGraphicEl = function(idx, el) { var seriesIndex = this.hostModel && this.hostModel.seriesIndex; setCommonECData(seriesIndex, this.dataType, idx, el); this._graphicEls[idx] = el; }; SeriesData2.prototype.getItemGraphicEl = function(idx) { return this._graphicEls[idx]; }; SeriesData2.prototype.eachItemGraphicEl = function(cb, context) { each(this._graphicEls, function(el, idx) { if (el) { cb && cb.call(context, el, idx); } }); }; SeriesData2.prototype.cloneShallow = function(list) { if (!list) { list = new SeriesData2(this._schema ? this._schema : map2(this.dimensions, this._getDimInfo, this), this.hostModel); } transferProperties(list, this); list._store = this._store; return list; }; SeriesData2.prototype.wrapMethod = function(methodName, injectFunction) { var originalMethod = this[methodName]; if (!isFunction(originalMethod)) { return; } this.__wrappedMethods = this.__wrappedMethods || []; this.__wrappedMethods.push(methodName); this[methodName] = function() { var res = originalMethod.apply(this, arguments); return injectFunction.apply(this, [res].concat(slice(arguments))); }; }; SeriesData2.internalField = function() { prepareInvertedIndex = function(data) { var invertedIndicesMap = data._invertedIndicesMap; each(invertedIndicesMap, function(invertedIndices, dim) { var dimInfo = data._dimInfos[dim]; var ordinalMeta = dimInfo.ordinalMeta; var store = data._store; if (ordinalMeta) { invertedIndices = invertedIndicesMap[dim] = new CtorInt32Array2(ordinalMeta.categories.length); for (var i = 0; i < invertedIndices.length; i++) { invertedIndices[i] = INDEX_NOT_FOUND; } for (var i = 0; i < store.count(); i++) { invertedIndices[store.get(dimInfo.storeDimIndex, i)] = i; } } }); }; getIdNameFromStore = function(data, dimIdx, idx) { return convertOptionIdName(data._getCategory(dimIdx, idx), null); }; getId = function(data, rawIndex) { var id = data._idList[rawIndex]; if (id == null && data._idDimIdx != null) { id = getIdNameFromStore(data, data._idDimIdx, rawIndex); } if (id == null) { id = ID_PREFIX + rawIndex; } return id; }; normalizeDimensions = function(dimensions) { if (!isArray(dimensions)) { dimensions = dimensions != null ? [dimensions] : []; } return dimensions; }; cloneListForMapAndSample = function(original) { var list = new SeriesData2(original._schema ? original._schema : map2(original.dimensions, original._getDimInfo, original), original.hostModel); transferProperties(list, original); return list; }; transferProperties = function(target, source) { each(TRANSFERABLE_PROPERTIES.concat(source.__wrappedMethods || []), function(propName) { if (source.hasOwnProperty(propName)) { target[propName] = source[propName]; } }); target.__wrappedMethods = source.__wrappedMethods; each(CLONE_PROPERTIES, function(propName) { target[propName] = clone(source[propName]); }); target._calculationInfo = extend({}, source._calculationInfo); }; makeIdFromName = function(data, idx) { var nameList = data._nameList; var idList = data._idList; var nameDimIdx = data._nameDimIdx; var idDimIdx = data._idDimIdx; var name = nameList[idx]; var id = idList[idx]; if (name == null && nameDimIdx != null) { nameList[idx] = name = getIdNameFromStore(data, nameDimIdx, idx); } if (id == null && idDimIdx != null) { idList[idx] = id = getIdNameFromStore(data, idDimIdx, idx); } if (id == null && name != null) { var nameRepeatCount = data._nameRepeatCount; var nmCnt = nameRepeatCount[name] = (nameRepeatCount[name] || 0) + 1; id = name; if (nmCnt > 1) { id += "__ec__" + nmCnt; } idList[idx] = id; } }; }(); return SeriesData2; }() ); var SeriesData_default = SeriesData; // node_modules/echarts/lib/extension.js var extensions = []; var extensionRegisters = { registerPreprocessor, registerProcessor, registerPostInit, registerPostUpdate, registerUpdateLifecycle, registerAction, registerCoordinateSystem, registerLayout, registerVisual, registerTransform, registerLoading, registerMap, registerImpl, PRIORITY, ComponentModel: Component_default, ComponentView: Component_default2, SeriesModel: Series_default, ChartView: Chart_default, // TODO Use ComponentModel and SeriesModel instead of Constructor registerComponentModel: function(ComponentModelClass) { Component_default.registerClass(ComponentModelClass); }, registerComponentView: function(ComponentViewClass) { Component_default2.registerClass(ComponentViewClass); }, registerSeriesModel: function(SeriesModelClass) { Series_default.registerClass(SeriesModelClass); }, registerChartView: function(ChartViewClass) { Chart_default.registerClass(ChartViewClass); }, registerSubTypeDefaulter: function(componentType, defaulter) { Component_default.registerSubTypeDefaulter(componentType, defaulter); }, registerPainter: function(painterType, PainterCtor) { registerPainter(painterType, PainterCtor); } }; function use(ext) { if (isArray(ext)) { each(ext, function(singleExt) { use(singleExt); }); return; } if (indexOf(extensions, ext) >= 0) { return; } extensions.push(ext); if (isFunction(ext)) { ext = { install: ext }; } ext.install(extensionRegisters); } // node_modules/zrender/lib/contain/polygon.js var EPSILON = 1e-8; function isAroundEqual(a, b) { return Math.abs(a - b) < EPSILON; } function contain(points2, x, y) { var w = 0; var p = points2[0]; if (!p) { return false; } for (var i = 1; i < points2.length; i++) { var p2 = points2[i]; w += windingLine(p[0], p[1], p2[0], p2[1], x, y); p = p2; } var p0 = points2[0]; if (!isAroundEqual(p[0], p0[0]) || !isAroundEqual(p[1], p0[1])) { w += windingLine(p[0], p[1], p0[0], p0[1], x, y); } return w !== 0; } // node_modules/echarts/lib/coord/geo/Region.js var TMP_TRANSFORM = []; function transformPoints(points2, transform) { for (var p = 0; p < points2.length; p++) { applyTransform(points2[p], points2[p], transform); } } function updateBBoxFromPoints(points2, min2, max2, projection) { for (var i = 0; i < points2.length; i++) { var p = points2[i]; if (projection) { p = projection.project(p); } if (p && isFinite(p[0]) && isFinite(p[1])) { min(min2, min2, p); max(max2, max2, p); } } } function centroid(points2) { var signedArea = 0; var cx = 0; var cy = 0; var len = points2.length; var x0 = points2[len - 1][0]; var y0 = points2[len - 1][1]; for (var i = 0; i < len; i++) { var x1 = points2[i][0]; var y1 = points2[i][1]; var a = x0 * y1 - x1 * y0; signedArea += a; cx += (x0 + x1) * a; cy += (y0 + y1) * a; x0 = x1; y0 = y1; } return signedArea ? [cx / signedArea / 3, cy / signedArea / 3, signedArea] : [points2[0][0] || 0, points2[0][1] || 0]; } var Region = ( /** @class */ function() { function Region2(name) { this.name = name; } Region2.prototype.setCenter = function(center) { this._center = center; }; Region2.prototype.getCenter = function() { var center = this._center; if (!center) { center = this._center = this.calcCenter(); } return center; }; return Region2; }() ); var GeoJSONPolygonGeometry = ( /** @class */ /* @__PURE__ */ function() { function GeoJSONPolygonGeometry2(exterior, interiors) { this.type = "polygon"; this.exterior = exterior; this.interiors = interiors; } return GeoJSONPolygonGeometry2; }() ); var GeoJSONLineStringGeometry = ( /** @class */ /* @__PURE__ */ function() { function GeoJSONLineStringGeometry2(points2) { this.type = "linestring"; this.points = points2; } return GeoJSONLineStringGeometry2; }() ); var GeoJSONRegion = ( /** @class */ function(_super) { __extends(GeoJSONRegion2, _super); function GeoJSONRegion2(name, geometries, cp) { var _this = _super.call(this, name) || this; _this.type = "geoJSON"; _this.geometries = geometries; _this._center = cp && [cp[0], cp[1]]; return _this; } GeoJSONRegion2.prototype.calcCenter = function() { var geometries = this.geometries; var largestGeo; var largestGeoSize = 0; for (var i = 0; i < geometries.length; i++) { var geo = geometries[i]; var exterior = geo.exterior; var size = exterior && exterior.length; if (size > largestGeoSize) { largestGeo = geo; largestGeoSize = size; } } if (largestGeo) { return centroid(largestGeo.exterior); } var rect = this.getBoundingRect(); return [rect.x + rect.width / 2, rect.y + rect.height / 2]; }; GeoJSONRegion2.prototype.getBoundingRect = function(projection) { var rect = this._rect; if (rect && !projection) { return rect; } var min2 = [Infinity, Infinity]; var max2 = [-Infinity, -Infinity]; var geometries = this.geometries; each(geometries, function(geo) { if (geo.type === "polygon") { updateBBoxFromPoints(geo.exterior, min2, max2, projection); } else { each(geo.points, function(points2) { updateBBoxFromPoints(points2, min2, max2, projection); }); } }); if (!(isFinite(min2[0]) && isFinite(min2[1]) && isFinite(max2[0]) && isFinite(max2[1]))) { min2[0] = min2[1] = max2[0] = max2[1] = 0; } rect = new BoundingRect_default(min2[0], min2[1], max2[0] - min2[0], max2[1] - min2[1]); if (!projection) { this._rect = rect; } return rect; }; GeoJSONRegion2.prototype.contain = function(coord) { var rect = this.getBoundingRect(); var geometries = this.geometries; if (!rect.contain(coord[0], coord[1])) { return false; } loopGeo: for (var i = 0, len = geometries.length; i < len; i++) { var geo = geometries[i]; if (geo.type !== "polygon") { continue; } var exterior = geo.exterior; var interiors = geo.interiors; if (contain(exterior, coord[0], coord[1])) { for (var k = 0; k < (interiors ? interiors.length : 0); k++) { if (contain(interiors[k], coord[0], coord[1])) { continue loopGeo; } } return true; } } return false; }; GeoJSONRegion2.prototype.transformTo = function(x, y, width, height) { var rect = this.getBoundingRect(); var aspect = rect.width / rect.height; if (!width) { width = aspect * height; } else if (!height) { height = width / aspect; } var target = new BoundingRect_default(x, y, width, height); var transform = rect.calculateTransform(target); var geometries = this.geometries; for (var i = 0; i < geometries.length; i++) { var geo = geometries[i]; if (geo.type === "polygon") { transformPoints(geo.exterior, transform); each(geo.interiors, function(interior) { transformPoints(interior, transform); }); } else { each(geo.points, function(points2) { transformPoints(points2, transform); }); } } rect = this._rect; rect.copy(target); this._center = [rect.x + rect.width / 2, rect.y + rect.height / 2]; }; GeoJSONRegion2.prototype.cloneShallow = function(name) { name == null && (name = this.name); var newRegion = new GeoJSONRegion2(name, this.geometries, this._center); newRegion._rect = this._rect; newRegion.transformTo = null; return newRegion; }; return GeoJSONRegion2; }(Region) ); var GeoSVGRegion = ( /** @class */ function(_super) { __extends(GeoSVGRegion2, _super); function GeoSVGRegion2(name, elOnlyForCalculate) { var _this = _super.call(this, name) || this; _this.type = "geoSVG"; _this._elOnlyForCalculate = elOnlyForCalculate; return _this; } GeoSVGRegion2.prototype.calcCenter = function() { var el = this._elOnlyForCalculate; var rect = el.getBoundingRect(); var center = [rect.x + rect.width / 2, rect.y + rect.height / 2]; var mat = identity(TMP_TRANSFORM); var target = el; while (target && !target.isGeoSVGGraphicRoot) { mul(mat, target.getLocalTransform(), mat); target = target.parent; } invert(mat, mat); applyTransform(center, center, mat); return center; }; return GeoSVGRegion2; }(Region) ); // node_modules/echarts/lib/coord/geo/parseGeoJson.js function decode(json) { if (!json.UTF8Encoding) { return json; } var jsonCompressed = json; var encodeScale = jsonCompressed.UTF8Scale; if (encodeScale == null) { encodeScale = 1024; } var features = jsonCompressed.features; each(features, function(feature) { var geometry = feature.geometry; var encodeOffsets = geometry.encodeOffsets; var coordinates = geometry.coordinates; if (!encodeOffsets) { return; } switch (geometry.type) { case "LineString": geometry.coordinates = decodeRing(coordinates, encodeOffsets, encodeScale); break; case "Polygon": decodeRings(coordinates, encodeOffsets, encodeScale); break; case "MultiLineString": decodeRings(coordinates, encodeOffsets, encodeScale); break; case "MultiPolygon": each(coordinates, function(rings, idx) { return decodeRings(rings, encodeOffsets[idx], encodeScale); }); } }); jsonCompressed.UTF8Encoding = false; return jsonCompressed; } function decodeRings(rings, encodeOffsets, encodeScale) { for (var c = 0; c < rings.length; c++) { rings[c] = decodeRing(rings[c], encodeOffsets[c], encodeScale); } } function decodeRing(coordinate, encodeOffsets, encodeScale) { var result = []; var prevX = encodeOffsets[0]; var prevY = encodeOffsets[1]; for (var i = 0; i < coordinate.length; i += 2) { var x = coordinate.charCodeAt(i) - 64; var y = coordinate.charCodeAt(i + 1) - 64; x = x >> 1 ^ -(x & 1); y = y >> 1 ^ -(y & 1); x += prevX; y += prevY; prevX = x; prevY = y; result.push([x / encodeScale, y / encodeScale]); } return result; } function parseGeoJSON(geoJson, nameProperty) { geoJson = decode(geoJson); return map(filter(geoJson.features, function(featureObj) { return featureObj.geometry && featureObj.properties && featureObj.geometry.coordinates.length > 0; }), function(featureObj) { var properties = featureObj.properties; var geo = featureObj.geometry; var geometries = []; switch (geo.type) { case "Polygon": var coordinates = geo.coordinates; geometries.push(new GeoJSONPolygonGeometry(coordinates[0], coordinates.slice(1))); break; case "MultiPolygon": each(geo.coordinates, function(item) { if (item[0]) { geometries.push(new GeoJSONPolygonGeometry(item[0], item.slice(1))); } }); break; case "LineString": geometries.push(new GeoJSONLineStringGeometry([geo.coordinates])); break; case "MultiLineString": geometries.push(new GeoJSONLineStringGeometry(geo.coordinates)); } var region = new GeoJSONRegion(properties[nameProperty || "name"], geometries, properties.cp); region.properties = properties; return region; }); } // node_modules/echarts/lib/scale/Scale.js var Scale = ( /** @class */ function() { function Scale2(setting) { this._setting = setting || {}; this._extent = [Infinity, -Infinity]; } Scale2.prototype.getSetting = function(name) { return this._setting[name]; }; Scale2.prototype.unionExtent = function(other) { var extent3 = this._extent; other[0] < extent3[0] && (extent3[0] = other[0]); other[1] > extent3[1] && (extent3[1] = other[1]); }; Scale2.prototype.unionExtentFromData = function(data, dim) { this.unionExtent(data.getApproximateExtent(dim)); }; Scale2.prototype.getExtent = function() { return this._extent.slice(); }; Scale2.prototype.setExtent = function(start, end) { var thisExtent = this._extent; if (!isNaN(start)) { thisExtent[0] = start; } if (!isNaN(end)) { thisExtent[1] = end; } }; Scale2.prototype.isInExtentRange = function(value) { return this._extent[0] <= value && this._extent[1] >= value; }; Scale2.prototype.isBlank = function() { return this._isBlank; }; Scale2.prototype.setBlank = function(isBlank) { this._isBlank = isBlank; }; return Scale2; }() ); enableClassManagement(Scale); var Scale_default = Scale; // node_modules/echarts/lib/data/OrdinalMeta.js var uidBase = 0; var OrdinalMeta = ( /** @class */ function() { function OrdinalMeta2(opt) { this.categories = opt.categories || []; this._needCollect = opt.needCollect; this._deduplication = opt.deduplication; this.uid = ++uidBase; } OrdinalMeta2.createByAxisModel = function(axisModel) { var option = axisModel.option; var data = option.data; var categories = data && map(data, getName); return new OrdinalMeta2({ categories, needCollect: !categories, // deduplication is default in axis. deduplication: option.dedplication !== false }); }; ; OrdinalMeta2.prototype.getOrdinal = function(category) { return this._getOrCreateMap().get(category); }; OrdinalMeta2.prototype.parseAndCollect = function(category) { var index; var needCollect = this._needCollect; if (!isString(category) && !needCollect) { return category; } if (needCollect && !this._deduplication) { index = this.categories.length; this.categories[index] = category; return index; } var map3 = this._getOrCreateMap(); index = map3.get(category); if (index == null) { if (needCollect) { index = this.categories.length; this.categories[index] = category; map3.set(category, index); } else { index = NaN; } } return index; }; OrdinalMeta2.prototype._getOrCreateMap = function() { return this._map || (this._map = createHashMap(this.categories)); }; return OrdinalMeta2; }() ); function getName(obj) { if (isObject(obj) && obj.value != null) { return obj.value; } else { return obj + ""; } } var OrdinalMeta_default = OrdinalMeta; // node_modules/echarts/lib/scale/helper.js function isValueNice(val) { var exp10 = Math.pow(10, quantityExponent(Math.abs(val))); var f = Math.abs(val / exp10); return f === 0 || f === 1 || f === 2 || f === 3 || f === 5; } function isIntervalOrLogScale(scale3) { return scale3.type === "interval" || scale3.type === "log"; } function intervalScaleNiceTicks(extent3, splitNumber, minInterval, maxInterval) { var result = {}; var span = extent3[1] - extent3[0]; var interval = result.interval = nice(span / splitNumber, true); if (minInterval != null && interval < minInterval) { interval = result.interval = minInterval; } if (maxInterval != null && interval > maxInterval) { interval = result.interval = maxInterval; } var precision = result.intervalPrecision = getIntervalPrecision(interval); var niceTickExtent = result.niceTickExtent = [round(Math.ceil(extent3[0] / interval) * interval, precision), round(Math.floor(extent3[1] / interval) * interval, precision)]; fixExtent(niceTickExtent, extent3); return result; } function increaseInterval(interval) { var exp10 = Math.pow(10, quantityExponent(interval)); var f = interval / exp10; if (!f) { f = 1; } else if (f === 2) { f = 3; } else if (f === 3) { f = 5; } else { f *= 2; } return round(f * exp10); } function getIntervalPrecision(interval) { return getPrecision(interval) + 2; } function clamp(niceTickExtent, idx, extent3) { niceTickExtent[idx] = Math.max(Math.min(niceTickExtent[idx], extent3[1]), extent3[0]); } function fixExtent(niceTickExtent, extent3) { !isFinite(niceTickExtent[0]) && (niceTickExtent[0] = extent3[0]); !isFinite(niceTickExtent[1]) && (niceTickExtent[1] = extent3[1]); clamp(niceTickExtent, 0, extent3); clamp(niceTickExtent, 1, extent3); if (niceTickExtent[0] > niceTickExtent[1]) { niceTickExtent[0] = niceTickExtent[1]; } } function contain2(val, extent3) { return val >= extent3[0] && val <= extent3[1]; } function normalize2(val, extent3) { if (extent3[1] === extent3[0]) { return 0.5; } return (val - extent3[0]) / (extent3[1] - extent3[0]); } function scale2(val, extent3) { return val * (extent3[1] - extent3[0]) + extent3[0]; } // node_modules/echarts/lib/scale/Ordinal.js var OrdinalScale = ( /** @class */ function(_super) { __extends(OrdinalScale2, _super); function OrdinalScale2(setting) { var _this = _super.call(this, setting) || this; _this.type = "ordinal"; var ordinalMeta = _this.getSetting("ordinalMeta"); if (!ordinalMeta) { ordinalMeta = new OrdinalMeta_default({}); } if (isArray(ordinalMeta)) { ordinalMeta = new OrdinalMeta_default({ categories: map(ordinalMeta, function(item) { return isObject(item) ? item.value : item; }) }); } _this._ordinalMeta = ordinalMeta; _this._extent = _this.getSetting("extent") || [0, ordinalMeta.categories.length - 1]; return _this; } OrdinalScale2.prototype.parse = function(val) { if (val == null) { return NaN; } return isString(val) ? this._ordinalMeta.getOrdinal(val) : Math.round(val); }; OrdinalScale2.prototype.contain = function(rank) { rank = this.parse(rank); return contain2(rank, this._extent) && this._ordinalMeta.categories[rank] != null; }; OrdinalScale2.prototype.normalize = function(val) { val = this._getTickNumber(this.parse(val)); return normalize2(val, this._extent); }; OrdinalScale2.prototype.scale = function(val) { val = Math.round(scale2(val, this._extent)); return this.getRawOrdinalNumber(val); }; OrdinalScale2.prototype.getTicks = function() { var ticks = []; var extent3 = this._extent; var rank = extent3[0]; while (rank <= extent3[1]) { ticks.push({ value: rank }); rank++; } return ticks; }; OrdinalScale2.prototype.getMinorTicks = function(splitNumber) { return; }; OrdinalScale2.prototype.setSortInfo = function(info) { if (info == null) { this._ordinalNumbersByTick = this._ticksByOrdinalNumber = null; return; } var infoOrdinalNumbers = info.ordinalNumbers; var ordinalsByTick = this._ordinalNumbersByTick = []; var ticksByOrdinal = this._ticksByOrdinalNumber = []; var tickNum = 0; var allCategoryLen = this._ordinalMeta.categories.length; for (var len = Math.min(allCategoryLen, infoOrdinalNumbers.length); tickNum < len; ++tickNum) { var ordinalNumber = infoOrdinalNumbers[tickNum]; ordinalsByTick[tickNum] = ordinalNumber; ticksByOrdinal[ordinalNumber] = tickNum; } var unusedOrdinal = 0; for (; tickNum < allCategoryLen; ++tickNum) { while (ticksByOrdinal[unusedOrdinal] != null) { unusedOrdinal++; } ; ordinalsByTick.push(unusedOrdinal); ticksByOrdinal[unusedOrdinal] = tickNum; } }; OrdinalScale2.prototype._getTickNumber = function(ordinal) { var ticksByOrdinalNumber = this._ticksByOrdinalNumber; return ticksByOrdinalNumber && ordinal >= 0 && ordinal < ticksByOrdinalNumber.length ? ticksByOrdinalNumber[ordinal] : ordinal; }; OrdinalScale2.prototype.getRawOrdinalNumber = function(tickNumber) { var ordinalNumbersByTick = this._ordinalNumbersByTick; return ordinalNumbersByTick && tickNumber >= 0 && tickNumber < ordinalNumbersByTick.length ? ordinalNumbersByTick[tickNumber] : tickNumber; }; OrdinalScale2.prototype.getLabel = function(tick) { if (!this.isBlank()) { var ordinalNumber = this.getRawOrdinalNumber(tick.value); var cateogry = this._ordinalMeta.categories[ordinalNumber]; return cateogry == null ? "" : cateogry + ""; } }; OrdinalScale2.prototype.count = function() { return this._extent[1] - this._extent[0] + 1; }; OrdinalScale2.prototype.unionExtentFromData = function(data, dim) { this.unionExtent(data.getApproximateExtent(dim)); }; OrdinalScale2.prototype.isInExtentRange = function(value) { value = this._getTickNumber(value); return this._extent[0] <= value && this._extent[1] >= value; }; OrdinalScale2.prototype.getOrdinalMeta = function() { return this._ordinalMeta; }; OrdinalScale2.prototype.calcNiceTicks = function() { }; OrdinalScale2.prototype.calcNiceExtent = function() { }; OrdinalScale2.type = "ordinal"; return OrdinalScale2; }(Scale_default) ); Scale_default.registerClass(OrdinalScale); var Ordinal_default = OrdinalScale; // node_modules/echarts/lib/scale/Interval.js var roundNumber = round; var IntervalScale = ( /** @class */ function(_super) { __extends(IntervalScale2, _super); function IntervalScale2() { var _this = _super !== null && _super.apply(this, arguments) || this; _this.type = "interval"; _this._interval = 0; _this._intervalPrecision = 2; return _this; } IntervalScale2.prototype.parse = function(val) { return val; }; IntervalScale2.prototype.contain = function(val) { return contain2(val, this._extent); }; IntervalScale2.prototype.normalize = function(val) { return normalize2(val, this._extent); }; IntervalScale2.prototype.scale = function(val) { return scale2(val, this._extent); }; IntervalScale2.prototype.setExtent = function(start, end) { var thisExtent = this._extent; if (!isNaN(start)) { thisExtent[0] = parseFloat(start); } if (!isNaN(end)) { thisExtent[1] = parseFloat(end); } }; IntervalScale2.prototype.unionExtent = function(other) { var extent3 = this._extent; other[0] < extent3[0] && (extent3[0] = other[0]); other[1] > extent3[1] && (extent3[1] = other[1]); this.setExtent(extent3[0], extent3[1]); }; IntervalScale2.prototype.getInterval = function() { return this._interval; }; IntervalScale2.prototype.setInterval = function(interval) { this._interval = interval; this._niceExtent = this._extent.slice(); this._intervalPrecision = getIntervalPrecision(interval); }; IntervalScale2.prototype.getTicks = function(expandToNicedExtent) { var interval = this._interval; var extent3 = this._extent; var niceTickExtent = this._niceExtent; var intervalPrecision = this._intervalPrecision; var ticks = []; if (!interval) { return ticks; } var safeLimit = 1e4; if (extent3[0] < niceTickExtent[0]) { if (expandToNicedExtent) { ticks.push({ value: roundNumber(niceTickExtent[0] - interval, intervalPrecision) }); } else { ticks.push({ value: extent3[0] }); } } var tick = niceTickExtent[0]; while (tick <= niceTickExtent[1]) { ticks.push({ value: tick }); tick = roundNumber(tick + interval, intervalPrecision); if (tick === ticks[ticks.length - 1].value) { break; } if (ticks.length > safeLimit) { return []; } } var lastNiceTick = ticks.length ? ticks[ticks.length - 1].value : niceTickExtent[1]; if (extent3[1] > lastNiceTick) { if (expandToNicedExtent) { ticks.push({ value: roundNumber(lastNiceTick + interval, intervalPrecision) }); } else { ticks.push({ value: extent3[1] }); } } return ticks; }; IntervalScale2.prototype.getMinorTicks = function(splitNumber) { var ticks = this.getTicks(true); var minorTicks = []; var extent3 = this.getExtent(); for (var i = 1; i < ticks.length; i++) { var nextTick = ticks[i]; var prevTick = ticks[i - 1]; var count = 0; var minorTicksGroup = []; var interval = nextTick.value - prevTick.value; var minorInterval = interval / splitNumber; while (count < splitNumber - 1) { var minorTick = roundNumber(prevTick.value + (count + 1) * minorInterval); if (minorTick > extent3[0] && minorTick < extent3[1]) { minorTicksGroup.push(minorTick); } count++; } minorTicks.push(minorTicksGroup); } return minorTicks; }; IntervalScale2.prototype.getLabel = function(data, opt) { if (data == null) { return ""; } var precision = opt && opt.precision; if (precision == null) { precision = getPrecision(data.value) || 0; } else if (precision === "auto") { precision = this._intervalPrecision; } var dataNum = roundNumber(data.value, precision, true); return addCommas(dataNum); }; IntervalScale2.prototype.calcNiceTicks = function(splitNumber, minInterval, maxInterval) { splitNumber = splitNumber || 5; var extent3 = this._extent; var span = extent3[1] - extent3[0]; if (!isFinite(span)) { return; } if (span < 0) { span = -span; extent3.reverse(); } var result = intervalScaleNiceTicks(extent3, splitNumber, minInterval, maxInterval); this._intervalPrecision = result.intervalPrecision; this._interval = result.interval; this._niceExtent = result.niceTickExtent; }; IntervalScale2.prototype.calcNiceExtent = function(opt) { var extent3 = this._extent; if (extent3[0] === extent3[1]) { if (extent3[0] !== 0) { var expandSize = Math.abs(extent3[0]); if (!opt.fixMax) { extent3[1] += expandSize / 2; extent3[0] -= expandSize / 2; } else { extent3[0] -= expandSize / 2; } } else { extent3[1] = 1; } } var span = extent3[1] - extent3[0]; if (!isFinite(span)) { extent3[0] = 0; extent3[1] = 1; } this.calcNiceTicks(opt.splitNumber, opt.minInterval, opt.maxInterval); var interval = this._interval; if (!opt.fixMin) { extent3[0] = roundNumber(Math.floor(extent3[0] / interval) * interval); } if (!opt.fixMax) { extent3[1] = roundNumber(Math.ceil(extent3[1] / interval) * interval); } }; IntervalScale2.prototype.setNiceExtent = function(min2, max2) { this._niceExtent = [min2, max2]; }; IntervalScale2.type = "interval"; return IntervalScale2; }(Scale_default) ); Scale_default.registerClass(IntervalScale); var Interval_default = IntervalScale; // node_modules/echarts/lib/data/helper/dataStackHelper.js function enableDataStack(seriesModel, dimensionsInput, opt) { opt = opt || {}; var byIndex = opt.byIndex; var stackedCoordDimension = opt.stackedCoordDimension; var dimensionDefineList; var schema; var store; if (isLegacyDimensionsInput(dimensionsInput)) { dimensionDefineList = dimensionsInput; } else { schema = dimensionsInput.schema; dimensionDefineList = schema.dimensions; store = dimensionsInput.store; } var mayStack = !!(seriesModel && seriesModel.get("stack")); var stackedByDimInfo; var stackedDimInfo; var stackResultDimension; var stackedOverDimension; each(dimensionDefineList, function(dimensionInfo, index) { if (isString(dimensionInfo)) { dimensionDefineList[index] = dimensionInfo = { name: dimensionInfo }; } if (mayStack && !dimensionInfo.isExtraCoord) { if (!byIndex && !stackedByDimInfo && dimensionInfo.ordinalMeta) { stackedByDimInfo = dimensionInfo; } if (!stackedDimInfo && dimensionInfo.type !== "ordinal" && dimensionInfo.type !== "time" && (!stackedCoordDimension || stackedCoordDimension === dimensionInfo.coordDim)) { stackedDimInfo = dimensionInfo; } } }); if (stackedDimInfo && !byIndex && !stackedByDimInfo) { byIndex = true; } if (stackedDimInfo) { stackResultDimension = "__\0ecstackresult_" + seriesModel.id; stackedOverDimension = "__\0ecstackedover_" + seriesModel.id; if (stackedByDimInfo) { stackedByDimInfo.createInvertedIndices = true; } var stackedDimCoordDim_1 = stackedDimInfo.coordDim; var stackedDimType = stackedDimInfo.type; var stackedDimCoordIndex_1 = 0; each(dimensionDefineList, function(dimensionInfo) { if (dimensionInfo.coordDim === stackedDimCoordDim_1) { stackedDimCoordIndex_1++; } }); var stackedOverDimensionDefine = { name: stackResultDimension, coordDim: stackedDimCoordDim_1, coordDimIndex: stackedDimCoordIndex_1, type: stackedDimType, isExtraCoord: true, isCalculationCoord: true, storeDimIndex: dimensionDefineList.length }; var stackResultDimensionDefine = { name: stackedOverDimension, // This dimension contains stack base (generally, 0), so do not set it as // `stackedDimCoordDim` to avoid extent calculation, consider log scale. coordDim: stackedOverDimension, coordDimIndex: stackedDimCoordIndex_1 + 1, type: stackedDimType, isExtraCoord: true, isCalculationCoord: true, storeDimIndex: dimensionDefineList.length + 1 }; if (schema) { if (store) { stackedOverDimensionDefine.storeDimIndex = store.ensureCalculationDimension(stackedOverDimension, stackedDimType); stackResultDimensionDefine.storeDimIndex = store.ensureCalculationDimension(stackResultDimension, stackedDimType); } schema.appendCalculationDimension(stackedOverDimensionDefine); schema.appendCalculationDimension(stackResultDimensionDefine); } else { dimensionDefineList.push(stackedOverDimensionDefine); dimensionDefineList.push(stackResultDimensionDefine); } } return { stackedDimension: stackedDimInfo && stackedDimInfo.name, stackedByDimension: stackedByDimInfo && stackedByDimInfo.name, isStackedByIndex: byIndex, stackedOverDimension, stackResultDimension }; } function isLegacyDimensionsInput(dimensionsInput) { return !isSeriesDataSchema(dimensionsInput.schema); } function isDimensionStacked(data, stackedDim) { return !!stackedDim && stackedDim === data.getCalculationInfo("stackedDimension"); } function getStackedDimension(data, targetDim) { return isDimensionStacked(data, targetDim) ? data.getCalculationInfo("stackResultDimension") : targetDim; } // node_modules/echarts/lib/util/vendor.js var supportFloat32Array = typeof Float32Array !== "undefined"; var Float32ArrayCtor = !supportFloat32Array ? Array : Float32Array; function createFloat32Array(arg) { if (isArray(arg)) { return supportFloat32Array ? new Float32Array(arg) : arg; } return new Float32ArrayCtor(arg); } // node_modules/echarts/lib/layout/barGrid.js var STACK_PREFIX = "__ec_stack_"; function getSeriesStackId(seriesModel) { return seriesModel.get("stack") || STACK_PREFIX + seriesModel.seriesIndex; } function getAxisKey(axis) { return axis.dim + axis.index; } function getLayoutOnAxis(opt) { var params = []; var baseAxis = opt.axis; var axisKey = "axis0"; if (baseAxis.type !== "category") { return; } var bandWidth = baseAxis.getBandWidth(); for (var i = 0; i < opt.count || 0; i++) { params.push(defaults({ bandWidth, axisKey, stackId: STACK_PREFIX + i }, opt)); } var widthAndOffsets = doCalBarWidthAndOffset(params); var result = []; for (var i = 0; i < opt.count; i++) { var item = widthAndOffsets[axisKey][STACK_PREFIX + i]; item.offsetCenter = item.offset + item.width / 2; result.push(item); } return result; } function prepareLayoutBarSeries(seriesType2, ecModel) { var seriesModels = []; ecModel.eachSeriesByType(seriesType2, function(seriesModel) { if (isOnCartesian(seriesModel)) { seriesModels.push(seriesModel); } }); return seriesModels; } function getValueAxesMinGaps(barSeries) { var axisValues = {}; each(barSeries, function(seriesModel) { var cartesian = seriesModel.coordinateSystem; var baseAxis = cartesian.getBaseAxis(); if (baseAxis.type !== "time" && baseAxis.type !== "value") { return; } var data = seriesModel.getData(); var key2 = baseAxis.dim + "_" + baseAxis.index; var dimIdx = data.getDimensionIndex(data.mapDimension(baseAxis.dim)); var store = data.getStore(); for (var i = 0, cnt = store.count(); i < cnt; ++i) { var value = store.get(dimIdx, i); if (!axisValues[key2]) { axisValues[key2] = [value]; } else { axisValues[key2].push(value); } } }); var axisMinGaps = {}; for (var key in axisValues) { if (axisValues.hasOwnProperty(key)) { var valuesInAxis = axisValues[key]; if (valuesInAxis) { valuesInAxis.sort(function(a, b) { return a - b; }); var min2 = null; for (var j = 1; j < valuesInAxis.length; ++j) { var delta = valuesInAxis[j] - valuesInAxis[j - 1]; if (delta > 0) { min2 = min2 === null ? delta : Math.min(min2, delta); } } axisMinGaps[key] = min2; } } } return axisMinGaps; } function makeColumnLayout(barSeries) { var axisMinGaps = getValueAxesMinGaps(barSeries); var seriesInfoList = []; each(barSeries, function(seriesModel) { var cartesian = seriesModel.coordinateSystem; var baseAxis = cartesian.getBaseAxis(); var axisExtent = baseAxis.getExtent(); var bandWidth; if (baseAxis.type === "category") { bandWidth = baseAxis.getBandWidth(); } else if (baseAxis.type === "value" || baseAxis.type === "time") { var key = baseAxis.dim + "_" + baseAxis.index; var minGap = axisMinGaps[key]; var extentSpan = Math.abs(axisExtent[1] - axisExtent[0]); var scale3 = baseAxis.scale.getExtent(); var scaleSpan = Math.abs(scale3[1] - scale3[0]); bandWidth = minGap ? extentSpan / scaleSpan * minGap : extentSpan; } else { var data = seriesModel.getData(); bandWidth = Math.abs(axisExtent[1] - axisExtent[0]) / data.count(); } var barWidth = parsePercent2(seriesModel.get("barWidth"), bandWidth); var barMaxWidth = parsePercent2(seriesModel.get("barMaxWidth"), bandWidth); var barMinWidth = parsePercent2( // barMinWidth by default is 0.5 / 1 in cartesian. Because in value axis, // the auto-calculated bar width might be less than 0.5 / 1. seriesModel.get("barMinWidth") || (isInLargeMode(seriesModel) ? 0.5 : 1), bandWidth ); var barGap = seriesModel.get("barGap"); var barCategoryGap = seriesModel.get("barCategoryGap"); seriesInfoList.push({ bandWidth, barWidth, barMaxWidth, barMinWidth, barGap, barCategoryGap, axisKey: getAxisKey(baseAxis), stackId: getSeriesStackId(seriesModel) }); }); return doCalBarWidthAndOffset(seriesInfoList); } function doCalBarWidthAndOffset(seriesInfoList) { var columnsMap = {}; each(seriesInfoList, function(seriesInfo, idx) { var axisKey = seriesInfo.axisKey; var bandWidth = seriesInfo.bandWidth; var columnsOnAxis = columnsMap[axisKey] || { bandWidth, remainedWidth: bandWidth, autoWidthCount: 0, categoryGap: null, gap: "20%", stacks: {} }; var stacks = columnsOnAxis.stacks; columnsMap[axisKey] = columnsOnAxis; var stackId = seriesInfo.stackId; if (!stacks[stackId]) { columnsOnAxis.autoWidthCount++; } stacks[stackId] = stacks[stackId] || { width: 0, maxWidth: 0 }; var barWidth = seriesInfo.barWidth; if (barWidth && !stacks[stackId].width) { stacks[stackId].width = barWidth; barWidth = Math.min(columnsOnAxis.remainedWidth, barWidth); columnsOnAxis.remainedWidth -= barWidth; } var barMaxWidth = seriesInfo.barMaxWidth; barMaxWidth && (stacks[stackId].maxWidth = barMaxWidth); var barMinWidth = seriesInfo.barMinWidth; barMinWidth && (stacks[stackId].minWidth = barMinWidth); var barGap = seriesInfo.barGap; barGap != null && (columnsOnAxis.gap = barGap); var barCategoryGap = seriesInfo.barCategoryGap; barCategoryGap != null && (columnsOnAxis.categoryGap = barCategoryGap); }); var result = {}; each(columnsMap, function(columnsOnAxis, coordSysName) { result[coordSysName] = {}; var stacks = columnsOnAxis.stacks; var bandWidth = columnsOnAxis.bandWidth; var categoryGapPercent = columnsOnAxis.categoryGap; if (categoryGapPercent == null) { var columnCount = keys(stacks).length; categoryGapPercent = Math.max(35 - columnCount * 4, 15) + "%"; } var categoryGap = parsePercent2(categoryGapPercent, bandWidth); var barGapPercent = parsePercent2(columnsOnAxis.gap, 1); var remainedWidth = columnsOnAxis.remainedWidth; var autoWidthCount = columnsOnAxis.autoWidthCount; var autoWidth = (remainedWidth - categoryGap) / (autoWidthCount + (autoWidthCount - 1) * barGapPercent); autoWidth = Math.max(autoWidth, 0); each(stacks, function(column) { var maxWidth = column.maxWidth; var minWidth = column.minWidth; if (!column.width) { var finalWidth = autoWidth; if (maxWidth && maxWidth < finalWidth) { finalWidth = Math.min(maxWidth, remainedWidth); } if (minWidth && minWidth > finalWidth) { finalWidth = minWidth; } if (finalWidth !== autoWidth) { column.width = finalWidth; remainedWidth -= finalWidth + barGapPercent * finalWidth; autoWidthCount--; } } else { var finalWidth = column.width; if (maxWidth) { finalWidth = Math.min(finalWidth, maxWidth); } if (minWidth) { finalWidth = Math.max(finalWidth, minWidth); } column.width = finalWidth; remainedWidth -= finalWidth + barGapPercent * finalWidth; autoWidthCount--; } }); autoWidth = (remainedWidth - categoryGap) / (autoWidthCount + (autoWidthCount - 1) * barGapPercent); autoWidth = Math.max(autoWidth, 0); var widthSum = 0; var lastColumn; each(stacks, function(column, idx) { if (!column.width) { column.width = autoWidth; } lastColumn = column; widthSum += column.width * (1 + barGapPercent); }); if (lastColumn) { widthSum -= lastColumn.width * barGapPercent; } var offset = -widthSum / 2; each(stacks, function(column, stackId) { result[coordSysName][stackId] = result[coordSysName][stackId] || { bandWidth, offset, width: column.width }; offset += column.width * (1 + barGapPercent); }); }); return result; } function retrieveColumnLayout(barWidthAndOffset, axis, seriesModel) { if (barWidthAndOffset && axis) { var result = barWidthAndOffset[getAxisKey(axis)]; if (result != null && seriesModel != null) { return result[getSeriesStackId(seriesModel)]; } return result; } } function layout(seriesType2, ecModel) { var seriesModels = prepareLayoutBarSeries(seriesType2, ecModel); var barWidthAndOffset = makeColumnLayout(seriesModels); each(seriesModels, function(seriesModel) { var data = seriesModel.getData(); var cartesian = seriesModel.coordinateSystem; var baseAxis = cartesian.getBaseAxis(); var stackId = getSeriesStackId(seriesModel); var columnLayoutInfo = barWidthAndOffset[getAxisKey(baseAxis)][stackId]; var columnOffset = columnLayoutInfo.offset; var columnWidth = columnLayoutInfo.width; data.setLayout({ bandWidth: columnLayoutInfo.bandWidth, offset: columnOffset, size: columnWidth }); }); } function createProgressiveLayout(seriesType2) { return { seriesType: seriesType2, plan: createRenderPlanner(), reset: function(seriesModel) { if (!isOnCartesian(seriesModel)) { return; } var data = seriesModel.getData(); var cartesian = seriesModel.coordinateSystem; var baseAxis = cartesian.getBaseAxis(); var valueAxis = cartesian.getOtherAxis(baseAxis); var valueDimIdx = data.getDimensionIndex(data.mapDimension(valueAxis.dim)); var baseDimIdx = data.getDimensionIndex(data.mapDimension(baseAxis.dim)); var drawBackground = seriesModel.get("showBackground", true); var valueDim = data.mapDimension(valueAxis.dim); var stackResultDim = data.getCalculationInfo("stackResultDimension"); var stacked = isDimensionStacked(data, valueDim) && !!data.getCalculationInfo("stackedOnSeries"); var isValueAxisH = valueAxis.isHorizontal(); var valueAxisStart = getValueAxisStart(baseAxis, valueAxis); var isLarge = isInLargeMode(seriesModel); var barMinHeight = seriesModel.get("barMinHeight") || 0; var stackedDimIdx = stackResultDim && data.getDimensionIndex(stackResultDim); var columnWidth = data.getLayout("size"); var columnOffset = data.getLayout("offset"); return { progress: function(params, data2) { var count = params.count; var largePoints = isLarge && createFloat32Array(count * 3); var largeBackgroundPoints = isLarge && drawBackground && createFloat32Array(count * 3); var largeDataIndices = isLarge && createFloat32Array(count); var coordLayout = cartesian.master.getRect(); var bgSize = isValueAxisH ? coordLayout.width : coordLayout.height; var dataIndex; var store = data2.getStore(); var idxOffset = 0; while ((dataIndex = params.next()) != null) { var value = store.get(stacked ? stackedDimIdx : valueDimIdx, dataIndex); var baseValue = store.get(baseDimIdx, dataIndex); var baseCoord = valueAxisStart; var stackStartValue = void 0; if (stacked) { stackStartValue = +value - store.get(valueDimIdx, dataIndex); } var x = void 0; var y = void 0; var width = void 0; var height = void 0; if (isValueAxisH) { var coord = cartesian.dataToPoint([value, baseValue]); if (stacked) { var startCoord = cartesian.dataToPoint([stackStartValue, baseValue]); baseCoord = startCoord[0]; } x = baseCoord; y = coord[1] + columnOffset; width = coord[0] - baseCoord; height = columnWidth; if (Math.abs(width) < barMinHeight) { width = (width < 0 ? -1 : 1) * barMinHeight; } } else { var coord = cartesian.dataToPoint([baseValue, value]); if (stacked) { var startCoord = cartesian.dataToPoint([baseValue, stackStartValue]); baseCoord = startCoord[1]; } x = coord[0] + columnOffset; y = baseCoord; width = columnWidth; height = coord[1] - baseCoord; if (Math.abs(height) < barMinHeight) { height = (height <= 0 ? -1 : 1) * barMinHeight; } } if (!isLarge) { data2.setItemLayout(dataIndex, { x, y, width, height }); } else { largePoints[idxOffset] = x; largePoints[idxOffset + 1] = y; largePoints[idxOffset + 2] = isValueAxisH ? width : height; if (largeBackgroundPoints) { largeBackgroundPoints[idxOffset] = isValueAxisH ? coordLayout.x : x; largeBackgroundPoints[idxOffset + 1] = isValueAxisH ? y : coordLayout.y; largeBackgroundPoints[idxOffset + 2] = bgSize; } largeDataIndices[dataIndex] = dataIndex; } idxOffset += 3; } if (isLarge) { data2.setLayout({ largePoints, largeDataIndices, largeBackgroundPoints, valueAxisHorizontal: isValueAxisH }); } } }; } }; } function isOnCartesian(seriesModel) { return seriesModel.coordinateSystem && seriesModel.coordinateSystem.type === "cartesian2d"; } function isInLargeMode(seriesModel) { return seriesModel.pipelineContext && seriesModel.pipelineContext.large; } function getValueAxisStart(baseAxis, valueAxis) { var startValue = valueAxis.model.get("startValue"); if (!startValue) { startValue = 0; } return valueAxis.toGlobalCoord(valueAxis.dataToCoord(valueAxis.type === "log" ? startValue > 0 ? startValue : 1 : startValue)); } // node_modules/echarts/lib/scale/Time.js var bisect = function(a, x, lo, hi) { while (lo < hi) { var mid = lo + hi >>> 1; if (a[mid][1] < x) { lo = mid + 1; } else { hi = mid; } } return lo; }; var TimeScale = ( /** @class */ function(_super) { __extends(TimeScale2, _super); function TimeScale2(settings) { var _this = _super.call(this, settings) || this; _this.type = "time"; return _this; } TimeScale2.prototype.getLabel = function(tick) { var useUTC = this.getSetting("useUTC"); return format(tick.value, fullLeveledFormatter[getDefaultFormatPrecisionOfInterval(getPrimaryTimeUnit(this._minLevelUnit))] || fullLeveledFormatter.second, useUTC, this.getSetting("locale")); }; TimeScale2.prototype.getFormattedLabel = function(tick, idx, labelFormatter) { var isUTC = this.getSetting("useUTC"); var lang = this.getSetting("locale"); return leveledFormat(tick, idx, labelFormatter, lang, isUTC); }; TimeScale2.prototype.getTicks = function() { var interval = this._interval; var extent3 = this._extent; var ticks = []; if (!interval) { return ticks; } ticks.push({ value: extent3[0], level: 0 }); var useUTC = this.getSetting("useUTC"); var innerTicks = getIntervalTicks(this._minLevelUnit, this._approxInterval, useUTC, extent3); ticks = ticks.concat(innerTicks); ticks.push({ value: extent3[1], level: 0 }); return ticks; }; TimeScale2.prototype.calcNiceExtent = function(opt) { var extent3 = this._extent; if (extent3[0] === extent3[1]) { extent3[0] -= ONE_DAY; extent3[1] += ONE_DAY; } if (extent3[1] === -Infinity && extent3[0] === Infinity) { var d = /* @__PURE__ */ new Date(); extent3[1] = +new Date(d.getFullYear(), d.getMonth(), d.getDate()); extent3[0] = extent3[1] - ONE_DAY; } this.calcNiceTicks(opt.splitNumber, opt.minInterval, opt.maxInterval); }; TimeScale2.prototype.calcNiceTicks = function(approxTickNum, minInterval, maxInterval) { approxTickNum = approxTickNum || 10; var extent3 = this._extent; var span = extent3[1] - extent3[0]; this._approxInterval = span / approxTickNum; if (minInterval != null && this._approxInterval < minInterval) { this._approxInterval = minInterval; } if (maxInterval != null && this._approxInterval > maxInterval) { this._approxInterval = maxInterval; } var scaleIntervalsLen = scaleIntervals.length; var idx = Math.min(bisect(scaleIntervals, this._approxInterval, 0, scaleIntervalsLen), scaleIntervalsLen - 1); this._interval = scaleIntervals[idx][1]; this._minLevelUnit = scaleIntervals[Math.max(idx - 1, 0)][0]; }; TimeScale2.prototype.parse = function(val) { return isNumber(val) ? val : +parseDate(val); }; TimeScale2.prototype.contain = function(val) { return contain2(this.parse(val), this._extent); }; TimeScale2.prototype.normalize = function(val) { return normalize2(this.parse(val), this._extent); }; TimeScale2.prototype.scale = function(val) { return scale2(val, this._extent); }; TimeScale2.type = "time"; return TimeScale2; }(Interval_default) ); var scaleIntervals = [ // Format interval ["second", ONE_SECOND], ["minute", ONE_MINUTE], ["hour", ONE_HOUR], ["quarter-day", ONE_HOUR * 6], ["half-day", ONE_HOUR * 12], ["day", ONE_DAY * 1.2], ["half-week", ONE_DAY * 3.5], ["week", ONE_DAY * 7], ["month", ONE_DAY * 31], ["quarter", ONE_DAY * 95], ["half-year", ONE_YEAR / 2], ["year", ONE_YEAR] // 1Y ]; function isUnitValueSame(unit, valueA, valueB, isUTC) { var dateA = parseDate(valueA); var dateB = parseDate(valueB); var isSame = function(unit2) { return getUnitValue(dateA, unit2, isUTC) === getUnitValue(dateB, unit2, isUTC); }; var isSameYear = function() { return isSame("year"); }; var isSameMonth = function() { return isSameYear() && isSame("month"); }; var isSameDay = function() { return isSameMonth() && isSame("day"); }; var isSameHour = function() { return isSameDay() && isSame("hour"); }; var isSameMinute = function() { return isSameHour() && isSame("minute"); }; var isSameSecond = function() { return isSameMinute() && isSame("second"); }; var isSameMilliSecond = function() { return isSameSecond() && isSame("millisecond"); }; switch (unit) { case "year": return isSameYear(); case "month": return isSameMonth(); case "day": return isSameDay(); case "hour": return isSameHour(); case "minute": return isSameMinute(); case "second": return isSameSecond(); case "millisecond": return isSameMilliSecond(); } } function getDateInterval(approxInterval, daysInMonth) { approxInterval /= ONE_DAY; return approxInterval > 16 ? 16 : approxInterval > 7.5 ? 7 : approxInterval > 3.5 ? 4 : approxInterval > 1.5 ? 2 : 1; } function getMonthInterval(approxInterval) { var APPROX_ONE_MONTH = 30 * ONE_DAY; approxInterval /= APPROX_ONE_MONTH; return approxInterval > 6 ? 6 : approxInterval > 3 ? 3 : approxInterval > 2 ? 2 : 1; } function getHourInterval(approxInterval) { approxInterval /= ONE_HOUR; return approxInterval > 12 ? 12 : approxInterval > 6 ? 6 : approxInterval > 3.5 ? 4 : approxInterval > 2 ? 2 : 1; } function getMinutesAndSecondsInterval(approxInterval, isMinutes) { approxInterval /= isMinutes ? ONE_MINUTE : ONE_SECOND; return approxInterval > 30 ? 30 : approxInterval > 20 ? 20 : approxInterval > 15 ? 15 : approxInterval > 10 ? 10 : approxInterval > 5 ? 5 : approxInterval > 2 ? 2 : 1; } function getMillisecondsInterval(approxInterval) { return nice(approxInterval, true); } function getFirstTimestampOfUnit(date, unitName, isUTC) { var outDate = new Date(date); switch (getPrimaryTimeUnit(unitName)) { case "year": case "month": outDate[monthSetterName(isUTC)](0); case "day": outDate[dateSetterName(isUTC)](1); case "hour": outDate[hoursSetterName(isUTC)](0); case "minute": outDate[minutesSetterName(isUTC)](0); case "second": outDate[secondsSetterName(isUTC)](0); outDate[millisecondsSetterName(isUTC)](0); } return outDate.getTime(); } function getIntervalTicks(bottomUnitName, approxInterval, isUTC, extent3) { var safeLimit = 1e4; var unitNames = timeUnits; var iter = 0; function addTicksInSpan(interval, minTimestamp, maxTimestamp, getMethodName, setMethodName, isDate, out2) { var date = new Date(minTimestamp); var dateTime = minTimestamp; var d = date[getMethodName](); while (dateTime < maxTimestamp && dateTime <= extent3[1]) { out2.push({ value: dateTime }); d += interval; date[setMethodName](d); dateTime = date.getTime(); } out2.push({ value: dateTime, notAdd: true }); } function addLevelTicks(unitName, lastLevelTicks, levelTicks2) { var newAddedTicks = []; var isFirstLevel = !lastLevelTicks.length; if (isUnitValueSame(getPrimaryTimeUnit(unitName), extent3[0], extent3[1], isUTC)) { return; } if (isFirstLevel) { lastLevelTicks = [{ // TODO Optimize. Not include so may ticks. value: getFirstTimestampOfUnit(new Date(extent3[0]), unitName, isUTC) }, { value: extent3[1] }]; } for (var i2 = 0; i2 < lastLevelTicks.length - 1; i2++) { var startTick = lastLevelTicks[i2].value; var endTick = lastLevelTicks[i2 + 1].value; if (startTick === endTick) { continue; } var interval = void 0; var getterName = void 0; var setterName = void 0; var isDate = false; switch (unitName) { case "year": interval = Math.max(1, Math.round(approxInterval / ONE_DAY / 365)); getterName = fullYearGetterName(isUTC); setterName = fullYearSetterName(isUTC); break; case "half-year": case "quarter": case "month": interval = getMonthInterval(approxInterval); getterName = monthGetterName(isUTC); setterName = monthSetterName(isUTC); break; case "week": case "half-week": case "day": interval = getDateInterval(approxInterval, 31); getterName = dateGetterName(isUTC); setterName = dateSetterName(isUTC); isDate = true; break; case "half-day": case "quarter-day": case "hour": interval = getHourInterval(approxInterval); getterName = hoursGetterName(isUTC); setterName = hoursSetterName(isUTC); break; case "minute": interval = getMinutesAndSecondsInterval(approxInterval, true); getterName = minutesGetterName(isUTC); setterName = minutesSetterName(isUTC); break; case "second": interval = getMinutesAndSecondsInterval(approxInterval, false); getterName = secondsGetterName(isUTC); setterName = secondsSetterName(isUTC); break; case "millisecond": interval = getMillisecondsInterval(approxInterval); getterName = millisecondsGetterName(isUTC); setterName = millisecondsSetterName(isUTC); break; } addTicksInSpan(interval, startTick, endTick, getterName, setterName, isDate, newAddedTicks); if (unitName === "year" && levelTicks2.length > 1 && i2 === 0) { levelTicks2.unshift({ value: levelTicks2[0].value - interval }); } } for (var i2 = 0; i2 < newAddedTicks.length; i2++) { levelTicks2.push(newAddedTicks[i2]); } return newAddedTicks; } var levelsTicks = []; var currentLevelTicks = []; var tickCount = 0; var lastLevelTickCount = 0; for (var i = 0; i < unitNames.length && iter++ < safeLimit; ++i) { var primaryTimeUnit = getPrimaryTimeUnit(unitNames[i]); if (!isPrimaryTimeUnit(unitNames[i])) { continue; } addLevelTicks(unitNames[i], levelsTicks[levelsTicks.length - 1] || [], currentLevelTicks); var nextPrimaryTimeUnit = unitNames[i + 1] ? getPrimaryTimeUnit(unitNames[i + 1]) : null; if (primaryTimeUnit !== nextPrimaryTimeUnit) { if (currentLevelTicks.length) { lastLevelTickCount = tickCount; currentLevelTicks.sort(function(a, b) { return a.value - b.value; }); var levelTicksRemoveDuplicated = []; for (var i_1 = 0; i_1 < currentLevelTicks.length; ++i_1) { var tickValue = currentLevelTicks[i_1].value; if (i_1 === 0 || currentLevelTicks[i_1 - 1].value !== tickValue) { levelTicksRemoveDuplicated.push(currentLevelTicks[i_1]); if (tickValue >= extent3[0] && tickValue <= extent3[1]) { tickCount++; } } } var targetTickNum = (extent3[1] - extent3[0]) / approxInterval; if (tickCount > targetTickNum * 1.5 && lastLevelTickCount > targetTickNum / 1.5) { break; } levelsTicks.push(levelTicksRemoveDuplicated); if (tickCount > targetTickNum || bottomUnitName === unitNames[i]) { break; } } currentLevelTicks = []; } } if (true) { if (iter >= safeLimit) { warn("Exceed safe limit."); } } var levelsTicksInExtent = filter(map(levelsTicks, function(levelTicks2) { return filter(levelTicks2, function(tick) { return tick.value >= extent3[0] && tick.value <= extent3[1] && !tick.notAdd; }); }), function(levelTicks2) { return levelTicks2.length > 0; }); var ticks = []; var maxLevel = levelsTicksInExtent.length - 1; for (var i = 0; i < levelsTicksInExtent.length; ++i) { var levelTicks = levelsTicksInExtent[i]; for (var k = 0; k < levelTicks.length; ++k) { ticks.push({ value: levelTicks[k].value, level: maxLevel - i }); } } ticks.sort(function(a, b) { return a.value - b.value; }); var result = []; for (var i = 0; i < ticks.length; ++i) { if (i === 0 || ticks[i].value !== ticks[i - 1].value) { result.push(ticks[i]); } } return result; } Scale_default.registerClass(TimeScale); var Time_default = TimeScale; // node_modules/echarts/lib/scale/Log.js var scaleProto = Scale_default.prototype; var intervalScaleProto = Interval_default.prototype; var roundingErrorFix = round; var mathFloor = Math.floor; var mathCeil = Math.ceil; var mathPow = Math.pow; var mathLog = Math.log; var LogScale = ( /** @class */ function(_super) { __extends(LogScale2, _super); function LogScale2() { var _this = _super !== null && _super.apply(this, arguments) || this; _this.type = "log"; _this.base = 10; _this._originalScale = new Interval_default(); _this._interval = 0; return _this; } LogScale2.prototype.getTicks = function(expandToNicedExtent) { var originalScale = this._originalScale; var extent3 = this._extent; var originalExtent = originalScale.getExtent(); var ticks = intervalScaleProto.getTicks.call(this, expandToNicedExtent); return map(ticks, function(tick) { var val = tick.value; var powVal = round(mathPow(this.base, val)); powVal = val === extent3[0] && this._fixMin ? fixRoundingError(powVal, originalExtent[0]) : powVal; powVal = val === extent3[1] && this._fixMax ? fixRoundingError(powVal, originalExtent[1]) : powVal; return { value: powVal }; }, this); }; LogScale2.prototype.setExtent = function(start, end) { var base2 = mathLog(this.base); start = mathLog(Math.max(0, start)) / base2; end = mathLog(Math.max(0, end)) / base2; intervalScaleProto.setExtent.call(this, start, end); }; LogScale2.prototype.getExtent = function() { var base2 = this.base; var extent3 = scaleProto.getExtent.call(this); extent3[0] = mathPow(base2, extent3[0]); extent3[1] = mathPow(base2, extent3[1]); var originalScale = this._originalScale; var originalExtent = originalScale.getExtent(); this._fixMin && (extent3[0] = fixRoundingError(extent3[0], originalExtent[0])); this._fixMax && (extent3[1] = fixRoundingError(extent3[1], originalExtent[1])); return extent3; }; LogScale2.prototype.unionExtent = function(extent3) { this._originalScale.unionExtent(extent3); var base2 = this.base; extent3[0] = mathLog(extent3[0]) / mathLog(base2); extent3[1] = mathLog(extent3[1]) / mathLog(base2); scaleProto.unionExtent.call(this, extent3); }; LogScale2.prototype.unionExtentFromData = function(data, dim) { this.unionExtent(data.getApproximateExtent(dim)); }; LogScale2.prototype.calcNiceTicks = function(approxTickNum) { approxTickNum = approxTickNum || 10; var extent3 = this._extent; var span = extent3[1] - extent3[0]; if (span === Infinity || span <= 0) { return; } var interval = quantity(span); var err = approxTickNum / span * interval; if (err <= 0.5) { interval *= 10; } while (!isNaN(interval) && Math.abs(interval) < 1 && Math.abs(interval) > 0) { interval *= 10; } var niceExtent = [round(mathCeil(extent3[0] / interval) * interval), round(mathFloor(extent3[1] / interval) * interval)]; this._interval = interval; this._niceExtent = niceExtent; }; LogScale2.prototype.calcNiceExtent = function(opt) { intervalScaleProto.calcNiceExtent.call(this, opt); this._fixMin = opt.fixMin; this._fixMax = opt.fixMax; }; LogScale2.prototype.parse = function(val) { return val; }; LogScale2.prototype.contain = function(val) { val = mathLog(val) / mathLog(this.base); return contain2(val, this._extent); }; LogScale2.prototype.normalize = function(val) { val = mathLog(val) / mathLog(this.base); return normalize2(val, this._extent); }; LogScale2.prototype.scale = function(val) { val = scale2(val, this._extent); return mathPow(this.base, val); }; LogScale2.type = "log"; return LogScale2; }(Scale_default) ); var proto = LogScale.prototype; proto.getMinorTicks = intervalScaleProto.getMinorTicks; proto.getLabel = intervalScaleProto.getLabel; function fixRoundingError(val, originalVal) { return roundingErrorFix(val, getPrecision(originalVal)); } Scale_default.registerClass(LogScale); var Log_default = LogScale; // node_modules/echarts/lib/coord/scaleRawExtentInfo.js var ScaleRawExtentInfo = ( /** @class */ function() { function ScaleRawExtentInfo2(scale3, model, originalExtent) { this._prepareParams(scale3, model, originalExtent); } ScaleRawExtentInfo2.prototype._prepareParams = function(scale3, model, dataExtent) { if (dataExtent[1] < dataExtent[0]) { dataExtent = [NaN, NaN]; } this._dataMin = dataExtent[0]; this._dataMax = dataExtent[1]; var isOrdinal = this._isOrdinal = scale3.type === "ordinal"; this._needCrossZero = scale3.type === "interval" && model.getNeedCrossZero && model.getNeedCrossZero(); var axisMinValue = model.get("min", true); if (axisMinValue == null) { axisMinValue = model.get("startValue", true); } var modelMinRaw = this._modelMinRaw = axisMinValue; if (isFunction(modelMinRaw)) { this._modelMinNum = parseAxisModelMinMax(scale3, modelMinRaw({ min: dataExtent[0], max: dataExtent[1] })); } else if (modelMinRaw !== "dataMin") { this._modelMinNum = parseAxisModelMinMax(scale3, modelMinRaw); } var modelMaxRaw = this._modelMaxRaw = model.get("max", true); if (isFunction(modelMaxRaw)) { this._modelMaxNum = parseAxisModelMinMax(scale3, modelMaxRaw({ min: dataExtent[0], max: dataExtent[1] })); } else if (modelMaxRaw !== "dataMax") { this._modelMaxNum = parseAxisModelMinMax(scale3, modelMaxRaw); } if (isOrdinal) { this._axisDataLen = model.getCategories().length; } else { var boundaryGap = model.get("boundaryGap"); var boundaryGapArr = isArray(boundaryGap) ? boundaryGap : [boundaryGap || 0, boundaryGap || 0]; if (typeof boundaryGapArr[0] === "boolean" || typeof boundaryGapArr[1] === "boolean") { if (true) { console.warn('Boolean type for boundaryGap is only allowed for ordinal axis. Please use string in percentage instead, e.g., "20%". Currently, boundaryGap is set to be 0.'); } this._boundaryGapInner = [0, 0]; } else { this._boundaryGapInner = [parsePercent(boundaryGapArr[0], 1), parsePercent(boundaryGapArr[1], 1)]; } } }; ScaleRawExtentInfo2.prototype.calculate = function() { var isOrdinal = this._isOrdinal; var dataMin = this._dataMin; var dataMax = this._dataMax; var axisDataLen = this._axisDataLen; var boundaryGapInner = this._boundaryGapInner; var span = !isOrdinal ? dataMax - dataMin || Math.abs(dataMin) : null; var min2 = this._modelMinRaw === "dataMin" ? dataMin : this._modelMinNum; var max2 = this._modelMaxRaw === "dataMax" ? dataMax : this._modelMaxNum; var minFixed = min2 != null; var maxFixed = max2 != null; if (min2 == null) { min2 = isOrdinal ? axisDataLen ? 0 : NaN : dataMin - boundaryGapInner[0] * span; } if (max2 == null) { max2 = isOrdinal ? axisDataLen ? axisDataLen - 1 : NaN : dataMax + boundaryGapInner[1] * span; } (min2 == null || !isFinite(min2)) && (min2 = NaN); (max2 == null || !isFinite(max2)) && (max2 = NaN); var isBlank = eqNaN(min2) || eqNaN(max2) || isOrdinal && !axisDataLen; if (this._needCrossZero) { if (min2 > 0 && max2 > 0 && !minFixed) { min2 = 0; } if (min2 < 0 && max2 < 0 && !maxFixed) { max2 = 0; } } var determinedMin = this._determinedMin; var determinedMax = this._determinedMax; if (determinedMin != null) { min2 = determinedMin; minFixed = true; } if (determinedMax != null) { max2 = determinedMax; maxFixed = true; } return { min: min2, max: max2, minFixed, maxFixed, isBlank }; }; ScaleRawExtentInfo2.prototype.modifyDataMinMax = function(minMaxName, val) { if (true) { assert(!this.frozen); } this[DATA_MIN_MAX_ATTR[minMaxName]] = val; }; ScaleRawExtentInfo2.prototype.setDeterminedMinMax = function(minMaxName, val) { var attr = DETERMINED_MIN_MAX_ATTR[minMaxName]; if (true) { assert(!this.frozen && this[attr] == null); } this[attr] = val; }; ScaleRawExtentInfo2.prototype.freeze = function() { this.frozen = true; }; return ScaleRawExtentInfo2; }() ); var DETERMINED_MIN_MAX_ATTR = { min: "_determinedMin", max: "_determinedMax" }; var DATA_MIN_MAX_ATTR = { min: "_dataMin", max: "_dataMax" }; function ensureScaleRawExtentInfo(scale3, model, originalExtent) { var rawExtentInfo = scale3.rawExtentInfo; if (rawExtentInfo) { return rawExtentInfo; } rawExtentInfo = new ScaleRawExtentInfo(scale3, model, originalExtent); scale3.rawExtentInfo = rawExtentInfo; return rawExtentInfo; } function parseAxisModelMinMax(scale3, minMax) { return minMax == null ? null : eqNaN(minMax) ? NaN : scale3.parse(minMax); } // node_modules/echarts/lib/coord/axisHelper.js function getScaleExtent(scale3, model) { var scaleType = scale3.type; var rawExtentResult = ensureScaleRawExtentInfo(scale3, model, scale3.getExtent()).calculate(); scale3.setBlank(rawExtentResult.isBlank); var min2 = rawExtentResult.min; var max2 = rawExtentResult.max; var ecModel = model.ecModel; if (ecModel && scaleType === "time") { var barSeriesModels = prepareLayoutBarSeries("bar", ecModel); var isBaseAxisAndHasBarSeries_1 = false; each(barSeriesModels, function(seriesModel) { isBaseAxisAndHasBarSeries_1 = isBaseAxisAndHasBarSeries_1 || seriesModel.getBaseAxis() === model.axis; }); if (isBaseAxisAndHasBarSeries_1) { var barWidthAndOffset = makeColumnLayout(barSeriesModels); var adjustedScale = adjustScaleForOverflow(min2, max2, model, barWidthAndOffset); min2 = adjustedScale.min; max2 = adjustedScale.max; } } return { extent: [min2, max2], // "fix" means "fixed", the value should not be // changed in the subsequent steps. fixMin: rawExtentResult.minFixed, fixMax: rawExtentResult.maxFixed }; } function adjustScaleForOverflow(min2, max2, model, barWidthAndOffset) { var axisExtent = model.axis.getExtent(); var axisLength = Math.abs(axisExtent[1] - axisExtent[0]); var barsOnCurrentAxis = retrieveColumnLayout(barWidthAndOffset, model.axis); if (barsOnCurrentAxis === void 0) { return { min: min2, max: max2 }; } var minOverflow = Infinity; each(barsOnCurrentAxis, function(item) { minOverflow = Math.min(item.offset, minOverflow); }); var maxOverflow = -Infinity; each(barsOnCurrentAxis, function(item) { maxOverflow = Math.max(item.offset + item.width, maxOverflow); }); minOverflow = Math.abs(minOverflow); maxOverflow = Math.abs(maxOverflow); var totalOverFlow = minOverflow + maxOverflow; var oldRange = max2 - min2; var oldRangePercentOfNew = 1 - (minOverflow + maxOverflow) / axisLength; var overflowBuffer = oldRange / oldRangePercentOfNew - oldRange; max2 += overflowBuffer * (maxOverflow / totalOverFlow); min2 -= overflowBuffer * (minOverflow / totalOverFlow); return { min: min2, max: max2 }; } function niceScaleExtent(scale3, inModel) { var model = inModel; var extentInfo = getScaleExtent(scale3, model); var extent3 = extentInfo.extent; var splitNumber = model.get("splitNumber"); if (scale3 instanceof Log_default) { scale3.base = model.get("logBase"); } var scaleType = scale3.type; var interval = model.get("interval"); var isIntervalOrTime = scaleType === "interval" || scaleType === "time"; scale3.setExtent(extent3[0], extent3[1]); scale3.calcNiceExtent({ splitNumber, fixMin: extentInfo.fixMin, fixMax: extentInfo.fixMax, minInterval: isIntervalOrTime ? model.get("minInterval") : null, maxInterval: isIntervalOrTime ? model.get("maxInterval") : null }); if (interval != null) { scale3.setInterval && scale3.setInterval(interval); } } function createScaleByModel(model, axisType) { axisType = axisType || model.get("type"); if (axisType) { switch (axisType) { case "category": return new Ordinal_default({ ordinalMeta: model.getOrdinalMeta ? model.getOrdinalMeta() : model.getCategories(), extent: [Infinity, -Infinity] }); case "time": return new Time_default({ locale: model.ecModel.getLocaleModel(), useUTC: model.ecModel.get("useUTC") }); default: return new (Scale_default.getClass(axisType) || Interval_default)(); } } } function ifAxisCrossZero(axis) { var dataExtent = axis.scale.getExtent(); var min2 = dataExtent[0]; var max2 = dataExtent[1]; return !(min2 > 0 && max2 > 0 || min2 < 0 && max2 < 0); } function makeLabelFormatter(axis) { var labelFormatter = axis.getLabelModel().get("formatter"); var categoryTickStart = axis.type === "category" ? axis.scale.getExtent()[0] : null; if (axis.scale.type === "time") { return /* @__PURE__ */ function(tpl) { return function(tick, idx) { return axis.scale.getFormattedLabel(tick, idx, tpl); }; }(labelFormatter); } else if (isString(labelFormatter)) { return /* @__PURE__ */ function(tpl) { return function(tick) { var label = axis.scale.getLabel(tick); var text = tpl.replace("{value}", label != null ? label : ""); return text; }; }(labelFormatter); } else if (isFunction(labelFormatter)) { return /* @__PURE__ */ function(cb) { return function(tick, idx) { if (categoryTickStart != null) { idx = tick.value - categoryTickStart; } return cb(getAxisRawValue(axis, tick), idx, tick.level != null ? { level: tick.level } : null); }; }(labelFormatter); } else { return function(tick) { return axis.scale.getLabel(tick); }; } } function getAxisRawValue(axis, tick) { return axis.type === "category" ? axis.scale.getLabel(tick) : tick.value; } function estimateLabelUnionRect(axis) { var axisModel = axis.model; var scale3 = axis.scale; if (!axisModel.get(["axisLabel", "show"]) || scale3.isBlank()) { return; } var realNumberScaleTicks; var tickCount; var categoryScaleExtent = scale3.getExtent(); if (scale3 instanceof Ordinal_default) { tickCount = scale3.count(); } else { realNumberScaleTicks = scale3.getTicks(); tickCount = realNumberScaleTicks.length; } var axisLabelModel = axis.getLabelModel(); var labelFormatter = makeLabelFormatter(axis); var rect; var step = 1; if (tickCount > 40) { step = Math.ceil(tickCount / 40); } for (var i = 0; i < tickCount; i += step) { var tick = realNumberScaleTicks ? realNumberScaleTicks[i] : { value: categoryScaleExtent[0] + i }; var label = labelFormatter(tick, i); var unrotatedSingleRect = axisLabelModel.getTextRect(label); var singleRect = rotateTextRect(unrotatedSingleRect, axisLabelModel.get("rotate") || 0); rect ? rect.union(singleRect) : rect = singleRect; } return rect; } function rotateTextRect(textRect, rotate) { var rotateRadians = rotate * Math.PI / 180; var beforeWidth = textRect.width; var beforeHeight = textRect.height; var afterWidth = beforeWidth * Math.abs(Math.cos(rotateRadians)) + Math.abs(beforeHeight * Math.sin(rotateRadians)); var afterHeight = beforeWidth * Math.abs(Math.sin(rotateRadians)) + Math.abs(beforeHeight * Math.cos(rotateRadians)); var rotatedRect = new BoundingRect_default(textRect.x, textRect.y, afterWidth, afterHeight); return rotatedRect; } function getOptionCategoryInterval(model) { var interval = model.get("interval"); return interval == null ? "auto" : interval; } function shouldShowAllLabels(axis) { return axis.type === "category" && getOptionCategoryInterval(axis.getLabelModel()) === 0; } function getDataDimensionsOnAxis(data, axisDim) { var dataDimMap = {}; each(data.mapDimensionsAll(axisDim), function(dataDim) { dataDimMap[getStackedDimension(data, dataDim)] = true; }); return keys(dataDimMap); } function unionAxisExtentFromData(dataExtent, data, axisDim) { if (data) { each(getDataDimensionsOnAxis(data, axisDim), function(dim) { var seriesExtent = data.getApproximateExtent(dim); seriesExtent[0] < dataExtent[0] && (dataExtent[0] = seriesExtent[0]); seriesExtent[1] > dataExtent[1] && (dataExtent[1] = seriesExtent[1]); }); } } // node_modules/echarts/lib/coord/axisTickLabelBuilder.js var inner6 = makeInner(); function tickValuesToNumbers(axis, values) { var nums = map(values, function(val) { return axis.scale.parse(val); }); if (axis.type === "time" && nums.length > 0) { nums.sort(); nums.unshift(nums[0]); nums.push(nums[nums.length - 1]); } return nums; } function createAxisLabels(axis) { var custom = axis.getLabelModel().get("customValues"); if (custom) { var labelFormatter_1 = makeLabelFormatter(axis); var extent_1 = axis.scale.getExtent(); var tickNumbers = tickValuesToNumbers(axis, custom); var ticks = filter(tickNumbers, function(val) { return val >= extent_1[0] && val <= extent_1[1]; }); return { labels: map(ticks, function(numval) { var tick = { value: numval }; return { formattedLabel: labelFormatter_1(tick), rawLabel: axis.scale.getLabel(tick), tickValue: numval }; }) }; } return axis.type === "category" ? makeCategoryLabels(axis) : makeRealNumberLabels(axis); } function createAxisTicks(axis, tickModel) { var custom = axis.getTickModel().get("customValues"); if (custom) { var extent_2 = axis.scale.getExtent(); var tickNumbers = tickValuesToNumbers(axis, custom); return { ticks: filter(tickNumbers, function(val) { return val >= extent_2[0] && val <= extent_2[1]; }) }; } return axis.type === "category" ? makeCategoryTicks(axis, tickModel) : { ticks: map(axis.scale.getTicks(), function(tick) { return tick.value; }) }; } function makeCategoryLabels(axis) { var labelModel = axis.getLabelModel(); var result = makeCategoryLabelsActually(axis, labelModel); return !labelModel.get("show") || axis.scale.isBlank() ? { labels: [], labelCategoryInterval: result.labelCategoryInterval } : result; } function makeCategoryLabelsActually(axis, labelModel) { var labelsCache = getListCache(axis, "labels"); var optionLabelInterval = getOptionCategoryInterval(labelModel); var result = listCacheGet(labelsCache, optionLabelInterval); if (result) { return result; } var labels; var numericLabelInterval; if (isFunction(optionLabelInterval)) { labels = makeLabelsByCustomizedCategoryInterval(axis, optionLabelInterval); } else { numericLabelInterval = optionLabelInterval === "auto" ? makeAutoCategoryInterval(axis) : optionLabelInterval; labels = makeLabelsByNumericCategoryInterval(axis, numericLabelInterval); } return listCacheSet(labelsCache, optionLabelInterval, { labels, labelCategoryInterval: numericLabelInterval }); } function makeCategoryTicks(axis, tickModel) { var ticksCache = getListCache(axis, "ticks"); var optionTickInterval = getOptionCategoryInterval(tickModel); var result = listCacheGet(ticksCache, optionTickInterval); if (result) { return result; } var ticks; var tickCategoryInterval; if (!tickModel.get("show") || axis.scale.isBlank()) { ticks = []; } if (isFunction(optionTickInterval)) { ticks = makeLabelsByCustomizedCategoryInterval(axis, optionTickInterval, true); } else if (optionTickInterval === "auto") { var labelsResult = makeCategoryLabelsActually(axis, axis.getLabelModel()); tickCategoryInterval = labelsResult.labelCategoryInterval; ticks = map(labelsResult.labels, function(labelItem) { return labelItem.tickValue; }); } else { tickCategoryInterval = optionTickInterval; ticks = makeLabelsByNumericCategoryInterval(axis, tickCategoryInterval, true); } return listCacheSet(ticksCache, optionTickInterval, { ticks, tickCategoryInterval }); } function makeRealNumberLabels(axis) { var ticks = axis.scale.getTicks(); var labelFormatter = makeLabelFormatter(axis); return { labels: map(ticks, function(tick, idx) { return { level: tick.level, formattedLabel: labelFormatter(tick, idx), rawLabel: axis.scale.getLabel(tick), tickValue: tick.value }; }) }; } function getListCache(axis, prop) { return inner6(axis)[prop] || (inner6(axis)[prop] = []); } function listCacheGet(cache, key) { for (var i = 0; i < cache.length; i++) { if (cache[i].key === key) { return cache[i].value; } } } function listCacheSet(cache, key, value) { cache.push({ key, value }); return value; } function makeAutoCategoryInterval(axis) { var result = inner6(axis).autoInterval; return result != null ? result : inner6(axis).autoInterval = axis.calculateCategoryInterval(); } function calculateCategoryInterval(axis) { var params = fetchAutoCategoryIntervalCalculationParams(axis); var labelFormatter = makeLabelFormatter(axis); var rotation = (params.axisRotate - params.labelRotate) / 180 * Math.PI; var ordinalScale = axis.scale; var ordinalExtent = ordinalScale.getExtent(); var tickCount = ordinalScale.count(); if (ordinalExtent[1] - ordinalExtent[0] < 1) { return 0; } var step = 1; if (tickCount > 40) { step = Math.max(1, Math.floor(tickCount / 40)); } var tickValue = ordinalExtent[0]; var unitSpan = axis.dataToCoord(tickValue + 1) - axis.dataToCoord(tickValue); var unitW = Math.abs(unitSpan * Math.cos(rotation)); var unitH = Math.abs(unitSpan * Math.sin(rotation)); var maxW = 0; var maxH = 0; for (; tickValue <= ordinalExtent[1]; tickValue += step) { var width = 0; var height = 0; var rect = getBoundingRect(labelFormatter({ value: tickValue }), params.font, "center", "top"); width = rect.width * 1.3; height = rect.height * 1.3; maxW = Math.max(maxW, width, 7); maxH = Math.max(maxH, height, 7); } var dw = maxW / unitW; var dh = maxH / unitH; isNaN(dw) && (dw = Infinity); isNaN(dh) && (dh = Infinity); var interval = Math.max(0, Math.floor(Math.min(dw, dh))); var cache = inner6(axis.model); var axisExtent = axis.getExtent(); var lastAutoInterval = cache.lastAutoInterval; var lastTickCount = cache.lastTickCount; if (lastAutoInterval != null && lastTickCount != null && Math.abs(lastAutoInterval - interval) <= 1 && Math.abs(lastTickCount - tickCount) <= 1 && lastAutoInterval > interval && cache.axisExtent0 === axisExtent[0] && cache.axisExtent1 === axisExtent[1]) { interval = lastAutoInterval; } else { cache.lastTickCount = tickCount; cache.lastAutoInterval = interval; cache.axisExtent0 = axisExtent[0]; cache.axisExtent1 = axisExtent[1]; } return interval; } function fetchAutoCategoryIntervalCalculationParams(axis) { var labelModel = axis.getLabelModel(); return { axisRotate: axis.getRotate ? axis.getRotate() : axis.isHorizontal && !axis.isHorizontal() ? 90 : 0, labelRotate: labelModel.get("rotate") || 0, font: labelModel.getFont() }; } function makeLabelsByNumericCategoryInterval(axis, categoryInterval, onlyTick) { var labelFormatter = makeLabelFormatter(axis); var ordinalScale = axis.scale; var ordinalExtent = ordinalScale.getExtent(); var labelModel = axis.getLabelModel(); var result = []; var step = Math.max((categoryInterval || 0) + 1, 1); var startTick = ordinalExtent[0]; var tickCount = ordinalScale.count(); if (startTick !== 0 && step > 1 && tickCount / step > 2) { startTick = Math.round(Math.ceil(startTick / step) * step); } var showAllLabel = shouldShowAllLabels(axis); var includeMinLabel = labelModel.get("showMinLabel") || showAllLabel; var includeMaxLabel = labelModel.get("showMaxLabel") || showAllLabel; if (includeMinLabel && startTick !== ordinalExtent[0]) { addItem(ordinalExtent[0]); } var tickValue = startTick; for (; tickValue <= ordinalExtent[1]; tickValue += step) { addItem(tickValue); } if (includeMaxLabel && tickValue - step !== ordinalExtent[1]) { addItem(ordinalExtent[1]); } function addItem(tickValue2) { var tickObj = { value: tickValue2 }; result.push(onlyTick ? tickValue2 : { formattedLabel: labelFormatter(tickObj), rawLabel: ordinalScale.getLabel(tickObj), tickValue: tickValue2 }); } return result; } function makeLabelsByCustomizedCategoryInterval(axis, categoryInterval, onlyTick) { var ordinalScale = axis.scale; var labelFormatter = makeLabelFormatter(axis); var result = []; each(ordinalScale.getTicks(), function(tick) { var rawLabel = ordinalScale.getLabel(tick); var tickValue = tick.value; if (categoryInterval(tick.value, rawLabel)) { result.push(onlyTick ? tickValue : { formattedLabel: labelFormatter(tick), rawLabel, tickValue }); } }); return result; } // node_modules/echarts/lib/coord/Axis.js var NORMALIZED_EXTENT = [0, 1]; var Axis = ( /** @class */ function() { function Axis2(dim, scale3, extent3) { this.onBand = false; this.inverse = false; this.dim = dim; this.scale = scale3; this._extent = extent3 || [0, 0]; } Axis2.prototype.contain = function(coord) { var extent3 = this._extent; var min2 = Math.min(extent3[0], extent3[1]); var max2 = Math.max(extent3[0], extent3[1]); return coord >= min2 && coord <= max2; }; Axis2.prototype.containData = function(data) { return this.scale.contain(data); }; Axis2.prototype.getExtent = function() { return this._extent.slice(); }; Axis2.prototype.getPixelPrecision = function(dataExtent) { return getPixelPrecision(dataExtent || this.scale.getExtent(), this._extent); }; Axis2.prototype.setExtent = function(start, end) { var extent3 = this._extent; extent3[0] = start; extent3[1] = end; }; Axis2.prototype.dataToCoord = function(data, clamp2) { var extent3 = this._extent; var scale3 = this.scale; data = scale3.normalize(data); if (this.onBand && scale3.type === "ordinal") { extent3 = extent3.slice(); fixExtentWithBands(extent3, scale3.count()); } return linearMap(data, NORMALIZED_EXTENT, extent3, clamp2); }; Axis2.prototype.coordToData = function(coord, clamp2) { var extent3 = this._extent; var scale3 = this.scale; if (this.onBand && scale3.type === "ordinal") { extent3 = extent3.slice(); fixExtentWithBands(extent3, scale3.count()); } var t = linearMap(coord, extent3, NORMALIZED_EXTENT, clamp2); return this.scale.scale(t); }; Axis2.prototype.pointToData = function(point, clamp2) { return; }; Axis2.prototype.getTicksCoords = function(opt) { opt = opt || {}; var tickModel = opt.tickModel || this.getTickModel(); var result = createAxisTicks(this, tickModel); var ticks = result.ticks; var ticksCoords = map(ticks, function(tickVal) { return { coord: this.dataToCoord(this.scale.type === "ordinal" ? this.scale.getRawOrdinalNumber(tickVal) : tickVal), tickValue: tickVal }; }, this); var alignWithLabel = tickModel.get("alignWithLabel"); fixOnBandTicksCoords(this, ticksCoords, alignWithLabel, opt.clamp); return ticksCoords; }; Axis2.prototype.getMinorTicksCoords = function() { if (this.scale.type === "ordinal") { return []; } var minorTickModel = this.model.getModel("minorTick"); var splitNumber = minorTickModel.get("splitNumber"); if (!(splitNumber > 0 && splitNumber < 100)) { splitNumber = 5; } var minorTicks = this.scale.getMinorTicks(splitNumber); var minorTicksCoords = map(minorTicks, function(minorTicksGroup) { return map(minorTicksGroup, function(minorTick) { return { coord: this.dataToCoord(minorTick), tickValue: minorTick }; }, this); }, this); return minorTicksCoords; }; Axis2.prototype.getViewLabels = function() { return createAxisLabels(this).labels; }; Axis2.prototype.getLabelModel = function() { return this.model.getModel("axisLabel"); }; Axis2.prototype.getTickModel = function() { return this.model.getModel("axisTick"); }; Axis2.prototype.getBandWidth = function() { var axisExtent = this._extent; var dataExtent = this.scale.getExtent(); var len = dataExtent[1] - dataExtent[0] + (this.onBand ? 1 : 0); len === 0 && (len = 1); var size = Math.abs(axisExtent[1] - axisExtent[0]); return Math.abs(size) / len; }; Axis2.prototype.calculateCategoryInterval = function() { return calculateCategoryInterval(this); }; return Axis2; }() ); function fixExtentWithBands(extent3, nTick) { var size = extent3[1] - extent3[0]; var len = nTick; var margin = size / len / 2; extent3[0] += margin; extent3[1] -= margin; } function fixOnBandTicksCoords(axis, ticksCoords, alignWithLabel, clamp2) { var ticksLen = ticksCoords.length; if (!axis.onBand || alignWithLabel || !ticksLen) { return; } var axisExtent = axis.getExtent(); var last; var diffSize; if (ticksLen === 1) { ticksCoords[0].coord = axisExtent[0]; last = ticksCoords[1] = { coord: axisExtent[1], tickValue: ticksCoords[0].tickValue }; } else { var crossLen = ticksCoords[ticksLen - 1].tickValue - ticksCoords[0].tickValue; var shift_1 = (ticksCoords[ticksLen - 1].coord - ticksCoords[0].coord) / crossLen; each(ticksCoords, function(ticksItem) { ticksItem.coord -= shift_1 / 2; }); var dataExtent = axis.scale.getExtent(); diffSize = 1 + dataExtent[1] - ticksCoords[ticksLen - 1].tickValue; last = { coord: ticksCoords[ticksLen - 1].coord + shift_1 * diffSize, tickValue: dataExtent[1] + 1 }; ticksCoords.push(last); } var inverse = axisExtent[0] > axisExtent[1]; if (littleThan(ticksCoords[0].coord, axisExtent[0])) { clamp2 ? ticksCoords[0].coord = axisExtent[0] : ticksCoords.shift(); } if (clamp2 && littleThan(axisExtent[0], ticksCoords[0].coord)) { ticksCoords.unshift({ coord: axisExtent[0] }); } if (littleThan(axisExtent[1], last.coord)) { clamp2 ? last.coord = axisExtent[1] : ticksCoords.pop(); } if (clamp2 && littleThan(last.coord, axisExtent[1])) { ticksCoords.push({ coord: axisExtent[1] }); } function littleThan(a, b) { a = round(a); b = round(b); return inverse ? a > b : a < b; } } var Axis_default = Axis; // node_modules/echarts/lib/coord/axisModelCommonMixin.js var AxisModelCommonMixin = ( /** @class */ function() { function AxisModelCommonMixin2() { } AxisModelCommonMixin2.prototype.getNeedCrossZero = function() { var option = this.option; return !option.scale; }; AxisModelCommonMixin2.prototype.getCoordSysModel = function() { return; }; return AxisModelCommonMixin2; }() ); // node_modules/echarts/lib/label/labelLayoutHelper.js function prepareLayoutList(input) { var list = []; for (var i = 0; i < input.length; i++) { var rawItem = input[i]; if (rawItem.defaultAttr.ignore) { continue; } var label = rawItem.label; var transform = label.getComputedTransform(); var localRect = label.getBoundingRect(); var isAxisAligned = !transform || transform[1] < 1e-5 && transform[2] < 1e-5; var minMargin = label.style.margin || 0; var globalRect = localRect.clone(); globalRect.applyTransform(transform); globalRect.x -= minMargin / 2; globalRect.y -= minMargin / 2; globalRect.width += minMargin; globalRect.height += minMargin; var obb = isAxisAligned ? new OrientedBoundingRect_default(localRect, transform) : null; list.push({ label, labelLine: rawItem.labelLine, rect: globalRect, localRect, obb, priority: rawItem.priority, defaultAttr: rawItem.defaultAttr, layoutOption: rawItem.computedLayoutOption, axisAligned: isAxisAligned, transform }); } return list; } function shiftLayout(list, xyDim, sizeDim, minBound, maxBound, balanceShift) { var len = list.length; if (len < 2) { return; } list.sort(function(a, b) { return a.rect[xyDim] - b.rect[xyDim]; }); var lastPos = 0; var delta; var adjusted = false; var shifts = []; var totalShifts = 0; for (var i = 0; i < len; i++) { var item = list[i]; var rect = item.rect; delta = rect[xyDim] - lastPos; if (delta < 0) { rect[xyDim] -= delta; item.label[xyDim] -= delta; adjusted = true; } var shift = Math.max(-delta, 0); shifts.push(shift); totalShifts += shift; lastPos = rect[xyDim] + rect[sizeDim]; } if (totalShifts > 0 && balanceShift) { shiftList(-totalShifts / len, 0, len); } var first = list[0]; var last = list[len - 1]; var minGap; var maxGap; updateMinMaxGap(); minGap < 0 && squeezeGaps(-minGap, 0.8); maxGap < 0 && squeezeGaps(maxGap, 0.8); updateMinMaxGap(); takeBoundsGap(minGap, maxGap, 1); takeBoundsGap(maxGap, minGap, -1); updateMinMaxGap(); if (minGap < 0) { squeezeWhenBailout(-minGap); } if (maxGap < 0) { squeezeWhenBailout(maxGap); } function updateMinMaxGap() { minGap = first.rect[xyDim] - minBound; maxGap = maxBound - last.rect[xyDim] - last.rect[sizeDim]; } function takeBoundsGap(gapThisBound, gapOtherBound, moveDir) { if (gapThisBound < 0) { var moveFromMaxGap = Math.min(gapOtherBound, -gapThisBound); if (moveFromMaxGap > 0) { shiftList(moveFromMaxGap * moveDir, 0, len); var remained = moveFromMaxGap + gapThisBound; if (remained < 0) { squeezeGaps(-remained * moveDir, 1); } } else { squeezeGaps(-gapThisBound * moveDir, 1); } } } function shiftList(delta2, start, end) { if (delta2 !== 0) { adjusted = true; } for (var i2 = start; i2 < end; i2++) { var item2 = list[i2]; var rect2 = item2.rect; rect2[xyDim] += delta2; item2.label[xyDim] += delta2; } } function squeezeGaps(delta2, maxSqeezePercent) { var gaps = []; var totalGaps = 0; for (var i2 = 1; i2 < len; i2++) { var prevItemRect = list[i2 - 1].rect; var gap = Math.max(list[i2].rect[xyDim] - prevItemRect[xyDim] - prevItemRect[sizeDim], 0); gaps.push(gap); totalGaps += gap; } if (!totalGaps) { return; } var squeezePercent = Math.min(Math.abs(delta2) / totalGaps, maxSqeezePercent); if (delta2 > 0) { for (var i2 = 0; i2 < len - 1; i2++) { var movement = gaps[i2] * squeezePercent; shiftList(movement, 0, i2 + 1); } } else { for (var i2 = len - 1; i2 > 0; i2--) { var movement = gaps[i2 - 1] * squeezePercent; shiftList(-movement, i2, len); } } } function squeezeWhenBailout(delta2) { var dir = delta2 < 0 ? -1 : 1; delta2 = Math.abs(delta2); var moveForEachLabel = Math.ceil(delta2 / (len - 1)); for (var i2 = 0; i2 < len - 1; i2++) { if (dir > 0) { shiftList(moveForEachLabel, 0, i2 + 1); } else { shiftList(-moveForEachLabel, len - i2 - 1, len); } delta2 -= moveForEachLabel; if (delta2 <= 0) { return; } } } return adjusted; } function shiftLayoutOnX(list, leftBound, rightBound, balanceShift) { return shiftLayout(list, "x", "width", leftBound, rightBound, balanceShift); } function shiftLayoutOnY(list, topBound, bottomBound, balanceShift) { return shiftLayout(list, "y", "height", topBound, bottomBound, balanceShift); } function hideOverlap(labelList) { var displayedLabels = []; labelList.sort(function(a, b) { return b.priority - a.priority; }); var globalRect = new BoundingRect_default(0, 0, 0, 0); function hideEl(el) { if (!el.ignore) { var emphasisState = el.ensureState("emphasis"); if (emphasisState.ignore == null) { emphasisState.ignore = false; } } el.ignore = true; } for (var i = 0; i < labelList.length; i++) { var labelItem = labelList[i]; var isAxisAligned = labelItem.axisAligned; var localRect = labelItem.localRect; var transform = labelItem.transform; var label = labelItem.label; var labelLine = labelItem.labelLine; globalRect.copy(labelItem.rect); globalRect.width -= 0.1; globalRect.height -= 0.1; globalRect.x += 0.05; globalRect.y += 0.05; var obb = labelItem.obb; var overlapped = false; for (var j = 0; j < displayedLabels.length; j++) { var existsTextCfg = displayedLabels[j]; if (!globalRect.intersect(existsTextCfg.rect)) { continue; } if (isAxisAligned && existsTextCfg.axisAligned) { overlapped = true; break; } if (!existsTextCfg.obb) { existsTextCfg.obb = new OrientedBoundingRect_default(existsTextCfg.localRect, existsTextCfg.transform); } if (!obb) { obb = new OrientedBoundingRect_default(localRect, transform); } if (obb.intersect(existsTextCfg.obb)) { overlapped = true; break; } } if (overlapped) { hideEl(label); labelLine && hideEl(labelLine); } else { label.attr("ignore", labelItem.defaultAttr.ignore); labelLine && labelLine.attr("ignore", labelItem.defaultAttr.labelGuideIgnore); displayedLabels.push(labelItem); } } } export { linearMap, parsePercent2 as parsePercent, round, asc, getPrecision, getPrecisionSafe, getPixelPrecision, getPercentWithPrecision, getPercentSeats, MAX_SAFE_INTEGER, remRadian, isRadianAroundZero, parseDate, quantity, quantityExponent, nice, quantile, reformIntervals, numericToNumber, isNumeric, warn, error, deprecateLog, deprecateReplaceLog, makePrintable, throwError, normalizeToArray, defaultEmphasis, getDataItemValue, mappingToExists, convertOptionIdName, isNameSpecified, makeInternalComponentId, compressBatches, queryDataIndex, makeInner, parseFinder, preParseFinder, SINGLE_REFERRING, MULTIPLE_REFERRING, queryReferringComponents, getTooltipRenderMode, groupData, interpolateRawValues, makeStyleMapper, getECData, setCommonECData, HOVER_STATE_BLUR, SPECIAL_STATES, DISPLAY_STATES, Z2_EMPHASIS_LIFT, setStatesFlag, setDefaultStateProxy, enterEmphasis, leaveEmphasis, enterBlur, leaveBlur, enableHoverEmphasis, toggleHoverEmphasis, enableHoverFocus, setStatesStylesFromModel, setAsHighDownDispatcher, isHighDownDispatcher, enableComponentHighDownFeatures, createFromString, Circle_default, Ellipse_default, Sector_default, Ring_default, Polygon_default, Polyline_default, Line_default, BezierCurve_default, Arc_default, LinearGradient_default, RadialGradient_default, IncrementalDisplayable_default, getAnimationConfig, updateProps, initProps, isElementRemoved, removeElement, removeElementWithFadeOut, saveOldStyle, extendShape, extendPath, registerShape, getShapeClass, makePath, makeImage, mergePath2 as mergePath, resizePath, subPixelOptimizeLine2 as subPixelOptimizeLine, subPixelOptimize2 as subPixelOptimize, getTransform, applyTransform2 as applyTransform, transformDirection, groupTransition, clipPointsByRect, clipRectByRect, createIcon, linePolygonIntersect, setTooltipConfig, traverseElements, graphic_exports, setLabelStyle, getLabelStatesModels, createTextStyle, createTextConfig, getFont, labelInner, setLabelValueAnimation, animateLabelValue, Model_default, getUID, inheritDefaultOption, registerLocale, getLocaleModel, format, getTextRect, addCommas, toCamelCase, normalizeCssArray2 as normalizeCssArray, formatTpl, formatTplSimple, getTooltipMarker, formatTime, capitalFirst, convertToColorString, windowOpen, LOCATION_PARAMS, box, getAvailableSize, getLayoutRect, positionElement, sizeCalculable, fetchLayoutMode, mergeLayoutParam, getLayoutParams, copyLayoutParams, Component_default, VISUAL_DIMENSIONS, SOURCE_FORMAT_ORIGINAL, SOURCE_FORMAT_ARRAY_ROWS, SOURCE_FORMAT_OBJECT_ROWS, SERIES_LAYOUT_BY_COLUMN, BE_ORDINAL, makeSeriesEncodeForAxisCoordSys, makeSeriesEncodeForNameBased, guessOrdinal, registerInternalOptionCreator, getDecalFromPalette, CoordinateSystem_default, isSourceInstance, createSourceFromSeriesDataOption, retrieveRawValue, DataFormatMixin, normalizeTooltipFormatResult, parseDataValue, getRawValueParser, SortOrderComparator, createFilterComparator, CtorInt32Array, SourceManager, disableTransformOptionMerge, createTooltipMarkup, buildTooltipMarkup, retrieveVisualColorForTooltipMarker, getPaddingFromTooltipModel, TooltipMarkupStyleCreator, defaultSeriesFormatTooltip, Series_default, Component_default2, createRenderPlanner, Chart_default, throttle, createOrUpdate, clear, getItemVisualFromData, getVisualFromData, setItemVisualFromData, createLegacyDataSelectAction, findEventDispatcher, symbolBuildProxies, createSymbol, normalizeSymbolSize, normalizeSymbolOffset, createOrUpdatePatternFromDecal, version, dependencies, PRIORITY, init2 as init, connect, disconnect, disConnect, dispose, getInstanceByDom, getInstanceById, registerTheme, registerPreprocessor, registerProcessor, registerPostInit, registerPostUpdate, registerUpdateLifecycle, registerAction, registerCoordinateSystem, getCoordinateSystemDimensions, registerLayout, registerVisual, registerLoading, setCanvasCreator, registerMap, getMap, registerTransform, dataTool, DataDiffer_default, getDimensionTypeByAxis, SeriesDimensionDefine_default, SeriesDataSchema, createDimNameMap, ensureSourceDimNameMap, shouldOmitUnusedDimensions, SeriesData_default, enableDataStack, isDimensionStacked, getStackedDimension, OrdinalMeta_default, isValueNice, isIntervalOrLogScale, increaseInterval, Ordinal_default, Interval_default, createFloat32Array, getLayoutOnAxis, layout, createProgressiveLayout, Time_default, ensureScaleRawExtentInfo, getScaleExtent, niceScaleExtent, createScaleByModel, ifAxisCrossZero, getAxisRawValue, estimateLabelUnionRect, shouldShowAllLabels, getDataDimensionsOnAxis, unionAxisExtentFromData, AxisModelCommonMixin, use, contain, GeoJSONRegion, GeoSVGRegion, parseGeoJSON, Axis_default, prepareLayoutList, shiftLayoutOnX, shiftLayoutOnY, hideOverlap }; //# sourceMappingURL=chunk-M2DJJUZD.js.map