! function (e, t) { "object" == typeof exports && "object" == typeof module ? module.exports = t(require("echarts")) : "function" == typeof define && define.amd ? define(["echarts"], t) : "object" == typeof exports ? exports["echarts-liquidfill"] = t(require("echarts")) : e["echarts-liquidfill"] = t(e.echarts) }(self, (function (e) { return (() => { "use strict"; var t = { 245: (e, t, a) => { a.r(t); var i = a(83); i.extendSeriesModel({ type: "series.liquidFill", optionUpdated: function () { var e = this.option; e.gridSize = Math.max(Math.floor(e.gridSize), 4) }, getInitialData: function (e, t) { var a = i.helper.createDimensions(e.data, { coordDimensions: ["value"] }), r = new i.List(a, this); return r.initData(e.data), r }, defaultOption: { color: ["#294D99", "#156ACF", "#1598ED", "#45BDFF"], center: ["50%", "50%"], radius: "50%", amplitude: "8%", waveLength: "80%", phase: "auto", period: "auto", direction: "right", shape: "circle", waveAnimation: !0, animationEasing: "linear", animationEasingUpdate: "linear", animationDuration: 2e3, animationDurationUpdate: 1e3, outline: { show: !0, borderDistance: 8, itemStyle: { color: "none", borderColor: "#294D99", borderWidth: 8, shadowBlur: 20, shadowColor: "rgba(0, 0, 0, 0.25)" } }, backgroundStyle: { color: "#E3F7FF" }, itemStyle: { opacity: .95, shadowBlur: 50, shadowColor: "rgba(0, 0, 0, 0.4)" }, label: { show: !0, color: "#294D99", insideColor: "#fff", fontSize: 50, fontWeight: "bold", align: "center", baseline: "middle", position: "inside" }, emphasis: { itemStyle: { opacity: .8 } } } }); const r = i.graphic.extendShape({ type: "ec-liquid-fill", shape: { waveLength: 0, radius: 0, radiusY: 0, cx: 0, cy: 0, waterLevel: 0, amplitude: 0, phase: 0, inverse: !1 }, buildPath: function (e, t) { null == t.radiusY && (t.radiusY = t.radius); for (var a = Math.max(2 * Math.ceil(2 * t.radius / t.waveLength * 4), 8); t.phase < 2 * -Math.PI;) t.phase += 2 * Math.PI; for (; t.phase > 0;) t.phase -= 2 * Math.PI; var i = t.phase / Math.PI / 2 * t.waveLength, r = t.cx - t.radius + i - 2 * t.radius; e.moveTo(r, t.waterLevel); for (var l = 0, o = 0; o < a; ++o) { var s = o % 4, h = n(o * t.waveLength / 4, s, t.waveLength, t.amplitude); e.bezierCurveTo(h[0][0] + r, -h[0][1] + t.waterLevel, h[1][0] + r, -h[1][1] + t.waterLevel, h[2][0] + r, -h[2][1] + t.waterLevel), o === a - 1 && (l = h[2][0]) } t.inverse ? (e.lineTo(l + r, t.cy - t.radiusY), e.lineTo(r, t.cy - t.radiusY), e.lineTo(r, t.waterLevel)) : (e.lineTo(l + r, t.cy + t.radiusY), e.lineTo(r, t.cy + t.radiusY), e.lineTo(r, t.waterLevel)), e.closePath() } }); function n(e, t, a, i) { return 0 === t ? [ [e + .5 * a / Math.PI / 2, i / 2], [e + .5 * a / Math.PI, i], [e + a / 4, i] ] : 1 === t ? [ [e + .5 * a / Math.PI / 2 * (Math.PI - 2), i], [e + .5 * a / Math.PI / 2 * (Math.PI - 1), i / 2], [e + a / 4, 0] ] : 2 === t ? [ [e + .5 * a / Math.PI / 2, -i / 2], [e + .5 * a / Math.PI, -i], [e + a / 4, -i] ] : [ [e + .5 * a / Math.PI / 2 * (Math.PI - 2), -i], [e + .5 * a / Math.PI / 2 * (Math.PI - 1), -i / 2], [e + a / 4, 0] ] } var l = function (e, t) { switch (e) { case "center": case "middle": e = "50%"; break; case "left": case "top": e = "0%"; break; case "right": case "bottom": e = "100%" } return "string" == typeof e ? (a = e, a.replace(/^\s+|\s+$/g, "")).match(/%$/) ? parseFloat(e) / 100 * t : parseFloat(e) : null == e ? NaN : +e; var a }; function o(e) { return e && 0 === e.indexOf("path://") } i.extendChartView({ type: "liquidFill", render: function (e, t, a) { var n = this, s = this.group; s.removeAll(); var h = e.getData(), d = h.getItemModel(0), p = d.get("center"), u = d.get("radius"), c = a.getWidth(), g = a.getHeight(), v = Math.min(c, g), f = 0, y = 0, m = e.get("outline.show"); m && (f = e.get("outline.borderDistance"), y = l(e.get("outline.itemStyle.borderWidth"), v)); var w, b, x, M = l(p[0], c), P = l(p[1], g), I = !1, S = e.get("shape"); "container" === S ? (I = !0, b = [(w = [c / 2, g / 2])[0] - y / 2, w[1] - y / 2], x = [l(f, c), l(f, g)], u = [Math.max(b[0] - x[0], 0), Math.max(b[1] - x[1], 0)]) : (b = (w = l(u, v) / 2) - y / 2, x = l(f, v), u = Math.max(b - x, 0)), m && (Y().style.lineWidth = y, s.add(Y())); var L = I ? 0 : M - u, C = I ? 0 : P - u, T = null; s.add(function () { var t = E(u); t.setStyle(e.getModel("backgroundStyle").getItemStyle()), t.style.fill = null, t.z2 = 5; var a = E(u); a.setStyle(e.getModel("backgroundStyle").getItemStyle()), a.style.stroke = null; var r = new i.graphic.Group; return r.add(t), r.add(a), r }()); var D = this._data, F = []; function E(e, t) { if (S) { if (o(S)) { var a = i.graphic.makePath(S.slice(7), {}), r = a.getBoundingRect(), n = r.width, l = r.height; n > l ? (l *= 2 * e / n, n = 2 * e) : (n *= 2 * e / l, l = 2 * e); var s = t ? 0 : M - n / 2, h = t ? 0 : P - l / 2; return a = i.graphic.makePath(S.slice(7), {}, new i.graphic.BoundingRect(s, h, n, l)), t && (a.x = -n / 2, a.y = -l / 2), a } if (I) { var d = t ? -e[0] : M - e[0], p = t ? -e[1] : P - e[1]; return i.helper.createSymbol("rect", d, p, 2 * e[0], 2 * e[1]) } return d = t ? -e : M - e, p = t ? -e : P - e, "pin" === S ? p += e : "arrow" === S && (p -= e), i.helper.createSymbol(S, d, p, 2 * e, 2 * e) } return new i.graphic.Circle({ shape: { cx: t ? 0 : M, cy: t ? 0 : P, r: e } }) } function Y() { var t = E(w); return t.style.fill = null, t.setStyle(e.getModel("outline.itemStyle").getItemStyle()), t } function k(t, a, n) { var o = I ? u[0] : u, s = I ? g / 2 : u, d = h.getItemModel(t), p = d.getModel("itemStyle"), c = d.get("phase"), v = l(d.get("amplitude"), 2 * s), f = l(d.get("waveLength"), 2 * o), y = s - h.get("value", t) * s * 2; c = n ? n.shape.phase : "auto" === c ? t * Math.PI / 4 : c; var m = p.getItemStyle(); if (!m.fill) { var w = e.get("color"), b = t % w.length; m.fill = w[b] } var x = new r({ shape: { waveLength: f, radius: o, radiusY: s, cx: 2 * o, cy: 0, waterLevel: y, amplitude: v, phase: c, inverse: a }, style: m, x: M, y: P }); x.shape._waterLevel = y; var S = d.getModel("emphasis.itemStyle").getItemStyle(); S.lineWidth = 0, x.ensureState("emphasis").style = S, i.helper.enableHoverEmphasis(x); var L = E(u, !0); return L.setStyle({ fill: "white" }), x.setClipPath(L), x } function q(e, t, a) { var i = h.getItemModel(e), r = i.get("period"), n = i.get("direction"), l = h.get("value", e), o = i.get("phase"); o = a ? a.shape.phase : "auto" === o ? e * Math.PI / 4 : o; var s, d; s = "auto" === r ? 0 === (d = h.count()) ? 5e3 : 5e3 * (.2 + (d - e) / d * .8) : "function" == typeof r ? r(l, e) : r; var p = 0; "right" === n || null == n ? p = Math.PI : "left" === n ? p = -Math.PI : "none" === n ? p = 0 : console.error("Illegal direction value for liquid fill."), "none" !== n && i.get("waveAnimation") && t.animate("shape", !0).when(0, { phase: o }).when(s / 2, { phase: p + o }).when(s, { phase: 2 * p + o }).during((function () { T && T.dirty(!0) })).start() } h.diff(D).add((function (t) { var a = k(t, !1), r = a.shape.waterLevel; a.shape.waterLevel = I ? g / 2 : u, i.graphic.initProps(a, { shape: { waterLevel: r } }, e), a.z2 = 2, q(t, a, null), s.add(a), h.setItemGraphicEl(t, a), F.push(a) })).update((function (t, a) { for (var r = D.getItemGraphicEl(a), l = k(t, !1, r), d = {}, p = ["amplitude", "cx", "cy", "phase", "radius", "radiusY", "waterLevel", "waveLength"], u = 0; u < p.length; ++u) { var c = p[u]; l.shape.hasOwnProperty(c) && (d[c] = l.shape[c]) } var v = {}, f = ["fill", "opacity", "shadowBlur", "shadowColor"]; for (u = 0; u < f.length; ++u) c = f[u], l.style.hasOwnProperty(c) && (v[c] = l.style[c]); I && (d.radiusY = g / 2), i.graphic.updateProps(r, { shape: d, x: l.x, y: l.y }, e), e.isUniversalTransitionEnabled && e.isUniversalTransitionEnabled() ? i.graphic.updateProps(r, { style: v }, e) : r.useStyle(v); var y = r.getClipPath(), m = l.getClipPath(); r.setClipPath(l.getClipPath()), r.shape.inverse = l.inverse, y && m && n._shape === S && !o(S) && i.graphic.updateProps(m, { shape: y.shape }, e, { isFrom: !0 }), q(t, r, r), s.add(r), h.setItemGraphicEl(t, r), F.push(r) })).remove((function (e) { var t = D.getItemGraphicEl(e); s.remove(t) })).execute(), d.get("label.show") && s.add(function (t) { var a = d.getModel("label"); var r, n, l, o = { z2: 10, shape: { x: L, y: C, width: 2 * (I ? u[0] : u), height: 2 * (I ? u[1] : u) }, style: { fill: "transparent" }, textConfig: { position: a.get("position") || "inside" }, silent: !0 }, s = { style: { text: (r = e.getFormattedLabel(0, "normal"), n = 100 * h.get("value", 0), l = h.getName(0) || e.name, isNaN(n) || (l = n.toFixed(0) + "%"), null == r ? l : r), textAlign: a.get("align"), textVerticalAlign: a.get("baseline") } }; Object.assign(s.style, i.helper.createTextStyle(a)); var p = new i.graphic.Rect(o), c = new i.graphic.Rect(o); c.disableLabelAnimation = !0, p.disableLabelAnimation = !0; var g = new i.graphic.Text(s), v = new i.graphic.Text(s); p.setTextContent(g), c.setTextContent(v); var f = a.get("insideColor"); v.style.fill = f; var y = new i.graphic.Group; y.add(p), y.add(c); var m = E(u, !0); return (T = new i.graphic.CompoundPath({ shape: { paths: t }, x: M, y: P })).setClipPath(m), c.setClipPath(T), y }(F)), this._shape = S, this._data = h }, dispose: function () {} }) }, 83: t => { t.exports = e } }, a = {}; function i(e) { if (a[e]) return a[e].exports; var r = a[e] = { exports: {} }; return t[e](r, r.exports, i), r.exports } return i.r = e => { "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, { value: "Module" }), Object.defineProperty(e, "__esModule", { value: !0 }) }, i(245) })() })); //# sourceMappingURL=echarts-liquidfill.min.js.map