monobill-mintui 0.6.618 → 0.6.619

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -346,12 +346,14 @@ var t = class e extends HTMLElement {
346
346
  let e = document.createElement("canvas").getContext("2d");
347
347
  if (!e) return 60;
348
348
  e.font = "12px system-ui, -apple-system, sans-serif";
349
- let t = this._showLegend ? Math.max(this._legendHeight, 60) : 0, n = this._height - t, r = Math.floor(n / 35), i = Math.min(5, r), a = 0;
349
+ let t = this._showLegend ? Math.max(this._legendHeight, 60) : 0, n = this._height - t, r = Math.floor(n / 35), i = Math.max(1, Math.min(5, r)), a = this._getYRange();
350
+ if (this._hasOnlyZeroValues()) return Math.ceil(e.measureText(this._formatYAxisValue(0)).width) + 20;
351
+ let o = 0;
350
352
  for (let t = 0; t <= i; t++) {
351
- let n = this._getYRange(), r = n.max - (n.max - n.min) / i * t, o = this._formatYAxisValue(r), s = e.measureText(o);
352
- a = Math.max(a, s.width);
353
+ let n = a.max - (a.max - a.min) / i * t, r = this._formatYAxisValue(n), s = e.measureText(r);
354
+ o = Math.max(o, s.width);
353
355
  }
354
- return Math.ceil(a) + 20;
356
+ return Math.ceil(o) + 20;
355
357
  }
356
358
  _getChartBounds() {
357
359
  let e = this._calculateMaxYAxisLabelWidth(), t = `${this._width}-${this._height}-${this._showGrid}-${this._showLegend}-${this._legendHeight}-${e}-${this._rotatedLabelHeight}`;
@@ -386,6 +388,10 @@ var t = class e extends HTMLElement {
386
388
  this._isDatasetVisible(t, n) && e.push(...t.data);
387
389
  }), e;
388
390
  }
391
+ _hasOnlyZeroValues() {
392
+ let e = this._getAllDataPoints();
393
+ return e.length > 0 && e.every((e) => e.y === 0);
394
+ }
389
395
  _getXValues() {
390
396
  if (!this._chartData) return [];
391
397
  let e = JSON.stringify(this._chartData.labels) + JSON.stringify(this._chartData.datasets.map((e) => e.data.map((e) => e.x)));
@@ -754,7 +760,7 @@ var t = class e extends HTMLElement {
754
760
  }
755
761
  _scaleY(e, t) {
756
762
  let n = this._getYRange();
757
- if (n.max === n.min) return t.y + t.height / 2;
763
+ if (n.max === n.min) return n.min === 0 ? t.y + t.height : t.y + t.height / 2;
758
764
  let r = (e - n.min) / (n.max - n.min);
759
765
  return t.y + t.height - r * t.height;
760
766
  }
@@ -801,116 +807,117 @@ var t = class e extends HTMLElement {
801
807
  }
802
808
  }
803
809
  _renderGrid(e) {
804
- if (!this._svg || !this._showGrid) return;
805
- let t = document.createElementNS("http://www.w3.org/2000/svg", "g");
806
- t.setAttribute("class", "chart-grid");
807
- let n = this._getYRange(), r = Math.floor(e.height / 35), i = Math.min(5, r);
808
- for (let r = 0; r <= i; r++) {
809
- let a = e.y + e.height / i * r, o = document.createElementNS("http://www.w3.org/2000/svg", "line");
810
- o.setAttribute("x1", e.x.toString()), o.setAttribute("y1", a.toString()), o.setAttribute("x2", (e.x + e.width).toString()), o.setAttribute("y2", a.toString()), o.setAttribute("stroke", "#e5e7eb"), o.setAttribute("stroke-width", "1"), o.setAttribute("stroke-dasharray", "2,2"), document.documentElement.classList.contains("dark") && o.setAttribute("stroke", "#374151"), t.appendChild(o);
811
- let s = n.max - (n.max - n.min) / i * r, c = document.createElementNS("http://www.w3.org/2000/svg", "text"), l = a + 4;
812
- r === 0 && (l = a + 12), c.setAttribute("x", "5"), c.setAttribute("y", l.toString()), c.setAttribute("text-anchor", "start"), c.setAttribute("fill", "#6b7280"), c.setAttribute("font-size", "12"), c.textContent = this._formatYAxisValue(s), document.documentElement.classList.contains("dark") && c.setAttribute("fill", "#9ca3af"), t.appendChild(c);
810
+ let t = this._chartType !== "pie" && this._hasOnlyZeroValues();
811
+ if (!this._svg || !this._showGrid && !t) return;
812
+ let n = document.createElementNS("http://www.w3.org/2000/svg", "g");
813
+ n.setAttribute("class", "chart-grid");
814
+ let r = this._getYRange(), i = Math.floor(e.height / 35), a = t ? 0 : Math.max(1, Math.min(5, i));
815
+ for (let i = 0; i <= a; i++) {
816
+ let o = t ? e.y + e.height : e.y + e.height / a * i, s = document.createElementNS("http://www.w3.org/2000/svg", "line");
817
+ if (s.setAttribute("x1", e.x.toString()), s.setAttribute("y1", o.toString()), s.setAttribute("x2", (e.x + e.width).toString()), s.setAttribute("y2", o.toString()), s.setAttribute("stroke", t ? "#9ca3af" : "#e5e7eb"), s.setAttribute("stroke-width", "1"), t || s.setAttribute("stroke-dasharray", "2,2"), document.documentElement.classList.contains("dark") && s.setAttribute("stroke", "#374151"), n.appendChild(s), t && !this._showGrid) continue;
818
+ let c = t ? 0 : r.max - (r.max - r.min) / a * i, l = document.createElementNS("http://www.w3.org/2000/svg", "text"), u = o + 4;
819
+ i === 0 && (u = o + 12), l.setAttribute("x", "5"), l.setAttribute("y", u.toString()), l.setAttribute("text-anchor", "start"), l.setAttribute("fill", "#6b7280"), l.setAttribute("font-size", "12"), l.textContent = this._formatYAxisValue(c), document.documentElement.classList.contains("dark") && l.setAttribute("fill", "#9ca3af"), n.appendChild(l);
813
820
  }
814
- let a = this._getXValues();
815
- if (a.length === 0) {
816
- this._svg.appendChild(t);
821
+ let o = this._getXValues();
822
+ if (o.length === 0) {
823
+ this._svg.appendChild(n);
817
824
  return;
818
825
  }
819
- let o = this._chartType === "bar", s = [];
820
- a.forEach((t) => {
821
- let n = o ? this._scaleXForBarChart(t, e) : this._scaleX(t, e);
822
- s.push(n);
826
+ let s = this._chartType === "bar", c = [];
827
+ o.forEach((t) => {
828
+ let n = s ? this._scaleXForBarChart(t, e) : this._scaleX(t, e);
829
+ c.push(n);
823
830
  });
824
- let c = document.createElement("canvas").getContext("2d"), l = !1, u = Array(a.length).fill(!0);
825
- if (c && a.length > 1) {
826
- c.font = "12px system-ui, -apple-system, sans-serif";
831
+ let l = document.createElement("canvas").getContext("2d"), u = !1, d = Array(o.length).fill(!0);
832
+ if (l && o.length > 1) {
833
+ l.font = "12px system-ui, -apple-system, sans-serif";
827
834
  let e = [];
828
- a.forEach((t) => {
829
- let n = this._formatXAxisValue(t), r = c.measureText(n);
835
+ o.forEach((t) => {
836
+ let n = this._formatXAxisValue(t), r = l.measureText(n);
830
837
  e.push(r.width);
831
838
  });
832
839
  let t = !0;
833
- for (let n = 1; n < a.length; n++) {
834
- let r = s[n] - s[n - 1], i = e[n - 1] / 2 + e[n] / 2 + 10;
840
+ for (let n = 1; n < o.length; n++) {
841
+ let r = c[n] - c[n - 1], i = e[n - 1] / 2 + e[n] / 2 + 10;
835
842
  if (r < Math.max(i, 80)) {
836
843
  t = !1;
837
844
  break;
838
845
  }
839
846
  }
840
847
  if (!t) {
841
- l = !0;
848
+ u = !0;
842
849
  let t = 12 * 1.2;
843
850
  if (this._rotatedLabelHeight === 0) {
844
851
  let n = (Math.max(...e) + t) * .707;
845
852
  this._rotatedLabelHeight = Math.ceil(n) + 10;
846
853
  }
847
854
  let n = t * 1.5, r = !0;
848
- for (let e = 1; e < a.length; e++) if (s[e] - s[e - 1] < n) {
855
+ for (let e = 1; e < o.length; e++) if (c[e] - c[e - 1] < n) {
849
856
  r = !1;
850
857
  break;
851
858
  }
852
859
  if (!r) {
853
860
  let e = n;
854
- u = Array(a.length).fill(!1);
861
+ d = Array(o.length).fill(!1);
855
862
  let t = -Infinity;
856
- a.length > 0 && (u[0] = !0, t = s[0]);
857
- for (let n = 1; n < a.length - 1; n++) {
858
- let r = s[n];
859
- r - t >= e && (u[n] = !0, t = r);
863
+ o.length > 0 && (d[0] = !0, t = c[0]);
864
+ for (let n = 1; n < o.length - 1; n++) {
865
+ let r = c[n];
866
+ r - t >= e && (d[n] = !0, t = r);
860
867
  }
861
- if (a.length > 1) {
862
- let n = s[a.length - 1];
863
- if (n - t >= e) u[a.length - 1] = !0;
868
+ if (o.length > 1) {
869
+ let n = c[o.length - 1];
870
+ if (n - t >= e) d[o.length - 1] = !0;
864
871
  else {
865
872
  for (; n - t < e;) {
866
873
  let e = !1;
867
- for (let n = a.length - 2; n >= 0; n--) if (u[n]) {
868
- if (u[n] = !1, n > 0) {
869
- for (let r = n - 1; r >= 0; r--) if (u[r]) {
870
- t = s[r], e = !0;
874
+ for (let n = o.length - 2; n >= 0; n--) if (d[n]) {
875
+ if (d[n] = !1, n > 0) {
876
+ for (let r = n - 1; r >= 0; r--) if (d[r]) {
877
+ t = c[r], e = !0;
871
878
  break;
872
879
  }
873
- e || (t = s[0]);
874
- } else t = s[0];
880
+ e || (t = c[0]);
881
+ } else t = c[0];
875
882
  e = !0;
876
883
  break;
877
884
  }
878
885
  if (!e) break;
879
886
  }
880
- n - t >= e && (u[a.length - 1] = !0);
887
+ n - t >= e && (d[o.length - 1] = !0);
881
888
  }
882
889
  }
883
890
  }
884
891
  }
885
- } else u = Array(a.length).fill(!1), a.length > 0 && (u[0] = !0), a.length > 1 && (u[a.length - 1] = !0), this._rotatedLabelHeight = 0;
886
- l || (this._rotatedLabelHeight = 0), a.forEach((n, r) => {
887
- if (u[r]) {
888
- let i = s[r], o = document.createElementNS("http://www.w3.org/2000/svg", "line");
889
- o.setAttribute("x1", i.toString()), o.setAttribute("y1", e.y.toString()), o.setAttribute("x2", i.toString()), o.setAttribute("y2", (e.y + e.height).toString()), o.setAttribute("stroke", "#e5e7eb"), o.setAttribute("stroke-width", "1"), o.setAttribute("stroke-dasharray", "2,2"), document.documentElement.classList.contains("dark") && o.setAttribute("stroke", "#374151"), t.appendChild(o);
890
- let c = document.createElementNS("http://www.w3.org/2000/svg", "text"), u = i, d = "middle";
891
- if (!l) {
892
+ } else d = Array(o.length).fill(!1), o.length > 0 && (d[0] = !0), o.length > 1 && (d[o.length - 1] = !0), this._rotatedLabelHeight = 0;
893
+ u || (this._rotatedLabelHeight = 0), o.forEach((t, r) => {
894
+ if (d[r]) {
895
+ let i = c[r], a = document.createElementNS("http://www.w3.org/2000/svg", "line");
896
+ a.setAttribute("x1", i.toString()), a.setAttribute("y1", e.y.toString()), a.setAttribute("x2", i.toString()), a.setAttribute("y2", (e.y + e.height).toString()), a.setAttribute("stroke", "#e5e7eb"), a.setAttribute("stroke-width", "1"), a.setAttribute("stroke-dasharray", "2,2"), document.documentElement.classList.contains("dark") && a.setAttribute("stroke", "#374151"), n.appendChild(a);
897
+ let s = document.createElementNS("http://www.w3.org/2000/svg", "text"), l = i, d = "middle";
898
+ if (!u) {
892
899
  if (r === 0) {
893
900
  let t = e.x;
894
- u = Math.max(i, t), d = "start";
895
- } else if (r === a.length - 1) {
901
+ l = Math.max(i, t), d = "start";
902
+ } else if (r === o.length - 1) {
896
903
  let t = e.x + e.width;
897
- u = Math.min(i, t), d = "end";
904
+ l = Math.min(i, t), d = "end";
898
905
  }
899
- } else if (d = "end", r === a.length - 1) {
900
- let t = document.createElement("canvas").getContext("2d");
901
- if (t) {
902
- t.font = "12px system-ui, -apple-system, sans-serif";
903
- let r = this._formatXAxisValue(n), a = t.measureText(r).width * .707, o = e.x + e.width + 100;
904
- u = Math.min(i, o - a);
906
+ } else if (d = "end", r === o.length - 1) {
907
+ let n = document.createElement("canvas").getContext("2d");
908
+ if (n) {
909
+ n.font = "12px system-ui, -apple-system, sans-serif";
910
+ let r = this._formatXAxisValue(t), a = n.measureText(r).width * .707, o = e.x + e.width + 100;
911
+ l = Math.min(i, o - a);
905
912
  }
906
913
  }
907
- c.setAttribute("x", u.toString());
914
+ s.setAttribute("x", l.toString());
908
915
  let f = (this._rotatedLabelHeight > 0 ? 30 : 20) + this._rotatedLabelHeight + 12, p = f;
909
916
  this._showLegend && (p = f + 20 + Math.max(this._legendHeight, 60));
910
- let m = (this._height - e.y - e.height) / p, h = (l ? 30 : 20) * m, g = e.y + e.height + h;
911
- c.setAttribute("y", g.toString()), c.setAttribute("text-anchor", d), c.setAttribute("fill", "#6b7280"), c.setAttribute("font-size", "12"), l && c.setAttribute("transform", `rotate(-45 ${u} ${g})`), c.textContent = this._formatXAxisValue(n), document.documentElement.classList.contains("dark") && c.setAttribute("fill", "#9ca3af"), t.appendChild(c);
917
+ let m = (this._height - e.y - e.height) / p, h = (u ? 30 : 20) * m, g = e.y + e.height + h;
918
+ s.setAttribute("y", g.toString()), s.setAttribute("text-anchor", d), s.setAttribute("fill", "#6b7280"), s.setAttribute("font-size", "12"), u && s.setAttribute("transform", `rotate(-45 ${l} ${g})`), s.textContent = this._formatXAxisValue(t), document.documentElement.classList.contains("dark") && s.setAttribute("fill", "#9ca3af"), n.appendChild(s);
912
919
  }
913
- }), this._svg.appendChild(t);
920
+ }), this._svg.appendChild(n);
914
921
  }
915
922
  _buildMonotoneXLinePathD(e) {
916
923
  let t = (e) => e < 0 ? -1 : 1, n = (e, n, r, i, a, o) => {
@@ -979,26 +986,26 @@ var t = class e extends HTMLElement {
979
986
  }
980
987
  _renderLineChart() {
981
988
  if (!this._svg || !this._chartData) return;
982
- let e = this._getChartBounds();
989
+ let e = this._getChartBounds(), t = this._hasOnlyZeroValues();
983
990
  this._renderGrid(e);
984
- let t = document.createElementNS("http://www.w3.org/2000/svg", "g");
985
- t.setAttribute("class", "chart-data");
986
- let n = document.createDocumentFragment();
987
- this._chartData.datasets.forEach((t, r) => {
988
- if (!this._isDatasetVisible(t, r)) return;
989
- let i = this._getDatasetColor(t, r), a = document.createElementNS("http://www.w3.org/2000/svg", "path"), o = t.data.map((t) => ({
991
+ let n = document.createElementNS("http://www.w3.org/2000/svg", "g");
992
+ n.setAttribute("class", "chart-data");
993
+ let r = document.createDocumentFragment();
994
+ this._chartData.datasets.forEach((n, i) => {
995
+ if (!this._isDatasetVisible(n, i)) return;
996
+ let a = this._getDatasetColor(n, i), o = document.createElementNS("http://www.w3.org/2000/svg", "path"), s = n.data.map((t) => ({
990
997
  x: this._scaleX(t.x, e),
991
998
  y: this._scaleY(t.y, e)
992
999
  }));
993
- o.length !== 0 && (a.setAttribute("d", this._buildSmoothLinePathD(o)), a.setAttribute("fill", "none"), a.setAttribute("stroke", i), a.setAttribute("stroke-width", "2"), a.setAttribute("stroke-linecap", "round"), a.setAttribute("stroke-linejoin", "round"), n.appendChild(a), t.data.forEach((a) => {
994
- let o = document.createElementNS("http://www.w3.org/2000/svg", "circle"), s = this._scaleX(a.x, e), c = this._scaleY(a.y, e);
995
- o.setAttribute("cx", s.toString()), o.setAttribute("cy", c.toString()), o.setAttribute("r", "4"), o.setAttribute("fill", i);
1000
+ s.length !== 0 && (t || (o.setAttribute("d", this._buildSmoothLinePathD(s)), o.setAttribute("fill", "none"), o.setAttribute("stroke", a), o.setAttribute("stroke-width", "2"), o.setAttribute("stroke-linecap", "round"), o.setAttribute("stroke-linejoin", "round"), r.appendChild(o)), n.data.forEach((t) => {
1001
+ let o = document.createElementNS("http://www.w3.org/2000/svg", "circle"), s = this._scaleX(t.x, e), c = this._scaleY(t.y, e);
1002
+ o.setAttribute("cx", s.toString()), o.setAttribute("cy", c.toString()), o.setAttribute("r", "4"), o.setAttribute("fill", a);
996
1003
  let l = document.documentElement.classList.contains("dark");
997
- o.setAttribute("stroke", l ? "#1f2937" : "#fff"), o.setAttribute("stroke-width", "2"), o.setAttribute("class", "chart-point"), o.setAttribute("data-dataset", r.toString()), o.setAttribute("data-x", String(a.x)), o.setAttribute("data-y", a.y.toString()), o.setAttribute("data-name", t.name), o.style.opacity = "0", o.style.pointerEvents = "none";
998
- let u = String(a.x);
999
- this._plotPoints.has(u) || this._plotPoints.set(u, []), this._plotPoints.get(u).push(o), n.appendChild(o);
1004
+ o.setAttribute("stroke", l ? "#1f2937" : "#fff"), o.setAttribute("stroke-width", "2"), o.setAttribute("class", "chart-point"), o.setAttribute("data-dataset", i.toString()), o.setAttribute("data-x", String(t.x)), o.setAttribute("data-y", t.y.toString()), o.setAttribute("data-name", n.name), o.style.opacity = "0", o.style.pointerEvents = "none";
1005
+ let u = String(t.x);
1006
+ this._plotPoints.has(u) || this._plotPoints.set(u, []), this._plotPoints.get(u).push(o), r.appendChild(o);
1000
1007
  }));
1001
- }), t.appendChild(n), this._svg.appendChild(t);
1008
+ }), n.appendChild(r), this._svg.appendChild(n);
1002
1009
  }
1003
1010
  _scaleXForBarChart(e, t) {
1004
1011
  let n = this._getXValues();
@@ -1051,30 +1058,34 @@ var t = class e extends HTMLElement {
1051
1058
  }
1052
1059
  _renderAreaChart() {
1053
1060
  if (!this._svg || !this._chartData) return;
1054
- let e = this._getChartBounds();
1061
+ let e = this._getChartBounds(), t = this._hasOnlyZeroValues();
1055
1062
  this._renderGrid(e);
1056
- let t = document.createElementNS("http://www.w3.org/2000/svg", "g");
1057
- t.setAttribute("class", "chart-data");
1058
- let n = document.createDocumentFragment();
1059
- this._chartData.datasets.forEach((t, r) => {
1060
- if (!this._isDatasetVisible(t, r)) return;
1061
- let i = this._getDatasetColor(t, r), a = t.data.map((t) => ({
1063
+ let n = document.createElementNS("http://www.w3.org/2000/svg", "g");
1064
+ n.setAttribute("class", "chart-data");
1065
+ let r = document.createDocumentFragment();
1066
+ this._chartData.datasets.forEach((n, i) => {
1067
+ if (!this._isDatasetVisible(n, i)) return;
1068
+ let a = this._getDatasetColor(n, i), o = n.data.map((t) => ({
1062
1069
  x: this._scaleX(t.x, e),
1063
1070
  y: this._scaleY(t.y, e)
1064
1071
  }));
1065
- if (a.length === 0) return;
1066
- let o = e.y + e.height, s = document.createElementNS("http://www.w3.org/2000/svg", "path");
1067
- s.setAttribute("d", this._buildAreaFillPathD(a, o)), s.setAttribute("fill", i), s.setAttribute("fill-opacity", "0.3"), n.appendChild(s);
1068
- let c = document.createElementNS("http://www.w3.org/2000/svg", "path");
1069
- c.setAttribute("d", this._buildSmoothLinePathD(a)), c.setAttribute("fill", "none"), c.setAttribute("stroke", i), c.setAttribute("stroke-width", "2"), c.setAttribute("stroke-linecap", "round"), c.setAttribute("stroke-linejoin", "round"), n.appendChild(c), t.data.forEach((a) => {
1070
- let o = document.createElementNS("http://www.w3.org/2000/svg", "circle"), s = this._scaleX(a.x, e), c = this._scaleY(a.y, e);
1071
- o.setAttribute("cx", s.toString()), o.setAttribute("cy", c.toString()), o.setAttribute("r", "4"), o.setAttribute("fill", i);
1072
- let l = document.documentElement.classList.contains("dark");
1073
- o.setAttribute("stroke", l ? "#1f2937" : "#fff"), o.setAttribute("stroke-width", "2"), o.setAttribute("class", "chart-point"), o.setAttribute("data-dataset", r.toString()), o.setAttribute("data-x", String(a.x)), o.setAttribute("data-y", a.y.toString()), o.setAttribute("data-name", t.name), o.style.opacity = "0", o.style.pointerEvents = "none";
1074
- let u = String(a.x);
1075
- this._plotPoints.has(u) || this._plotPoints.set(u, []), this._plotPoints.get(u).push(o), n.appendChild(o);
1076
- });
1077
- }), t.appendChild(n), this._svg.appendChild(t);
1072
+ if (o.length !== 0) {
1073
+ if (!t) {
1074
+ let t = e.y + e.height, n = document.createElementNS("http://www.w3.org/2000/svg", "path");
1075
+ n.setAttribute("d", this._buildAreaFillPathD(o, t)), n.setAttribute("fill", a), n.setAttribute("fill-opacity", "0.3"), r.appendChild(n);
1076
+ let i = document.createElementNS("http://www.w3.org/2000/svg", "path");
1077
+ i.setAttribute("d", this._buildSmoothLinePathD(o)), i.setAttribute("fill", "none"), i.setAttribute("stroke", a), i.setAttribute("stroke-width", "2"), i.setAttribute("stroke-linecap", "round"), i.setAttribute("stroke-linejoin", "round"), r.appendChild(i);
1078
+ }
1079
+ n.data.forEach((t) => {
1080
+ let o = document.createElementNS("http://www.w3.org/2000/svg", "circle"), s = this._scaleX(t.x, e), c = this._scaleY(t.y, e);
1081
+ o.setAttribute("cx", s.toString()), o.setAttribute("cy", c.toString()), o.setAttribute("r", "4"), o.setAttribute("fill", a);
1082
+ let l = document.documentElement.classList.contains("dark");
1083
+ o.setAttribute("stroke", l ? "#1f2937" : "#fff"), o.setAttribute("stroke-width", "2"), o.setAttribute("class", "chart-point"), o.setAttribute("data-dataset", i.toString()), o.setAttribute("data-x", String(t.x)), o.setAttribute("data-y", t.y.toString()), o.setAttribute("data-name", n.name), o.style.opacity = "0", o.style.pointerEvents = "none";
1084
+ let u = String(t.x);
1085
+ this._plotPoints.has(u) || this._plotPoints.set(u, []), this._plotPoints.get(u).push(o), r.appendChild(o);
1086
+ });
1087
+ }
1088
+ }), n.appendChild(r), this._svg.appendChild(n);
1078
1089
  }
1079
1090
  _renderPieChart() {
1080
1091
  if (!this._svg || !this._chartData) return;