@arcgis/charts-components 5.2.0-next.60 → 5.2.0-next.62

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.
Files changed (141) hide show
  1. package/dist/cdn/{BXBY6D2F.js → 3IUZSUBJ.js} +1 -1
  2. package/dist/cdn/{DPTA2AET.js → 4DXQ255M.js} +1 -1
  3. package/dist/cdn/{67QYTLMM.js → 4F2MTKVF.js} +1 -1
  4. package/dist/cdn/4HNA5BEL.js +2 -0
  5. package/dist/cdn/{PLEC3GNT.js → 4II4V3R4.js} +1 -1
  6. package/dist/cdn/{ZWIF7LHW.js → 4SV3ARJE.js} +1 -1
  7. package/dist/cdn/{WTJ2NJ76.js → 5K4LYQAP.js} +1 -1
  8. package/dist/cdn/{2RYKKN36.js → 65QZ37RL.js} +1 -1
  9. package/dist/cdn/{O3VKOV2W.js → 6T37GQMM.js} +1 -1
  10. package/dist/cdn/{4COV22K4.js → 6ZJ4DH7D.js} +1 -1
  11. package/dist/cdn/{LGTXQIF7.js → 7H7MFSEY.js} +1 -1
  12. package/dist/cdn/{3YCGBAQY.js → 7JW7BKCY.js} +1 -1
  13. package/dist/cdn/{GARBFC7Q.js → 7Q5SYLKV.js} +1 -1
  14. package/dist/cdn/{BLZLMGO6.js → AJAOQCPS.js} +1 -1
  15. package/dist/cdn/{3AYXOX4U.js → AMM6O6DA.js} +1 -1
  16. package/dist/cdn/{JBFVGQSP.js → BIABAOQA.js} +1 -1
  17. package/dist/cdn/{Y5ZH7VS4.js → BP3IZMZQ.js} +1 -1
  18. package/dist/cdn/{WFW6BNDT.js → CNIDLTWS.js} +1 -1
  19. package/dist/cdn/{DGV6S2W3.js → CUW7EDSM.js} +1 -1
  20. package/dist/cdn/{QZCTLQBM.js → D5IKYXWS.js} +1 -1
  21. package/dist/cdn/DA4QOTYN.js +2 -0
  22. package/dist/cdn/{XM2GVJT3.js → DQXO7PWX.js} +1 -1
  23. package/dist/cdn/{6MNV7FJC.js → DT4C4JZW.js} +1 -1
  24. package/dist/cdn/{SYVPFDIW.js → EEF2GZWF.js} +1 -1
  25. package/dist/cdn/ELRXL4GL.js +2 -0
  26. package/dist/cdn/{6DOANSRL.js → FLA3PJ5I.js} +18 -18
  27. package/dist/cdn/{EUOJG5H6.js → FZOZWZSG.js} +1 -1
  28. package/dist/cdn/{AYUYEY5H.js → G3I2WY7S.js} +1 -1
  29. package/dist/cdn/{MJTWR33N.js → GK3ESMF2.js} +1 -1
  30. package/dist/cdn/{I3XBTQKJ.js → GQKDPSP6.js} +1 -1
  31. package/dist/cdn/{Z3LGGHZN.js → GRIVRWCF.js} +1 -1
  32. package/dist/cdn/{OWWQ5SYW.js → HHZSG3K6.js} +1 -1
  33. package/dist/cdn/{ZGBULDPL.js → IB5R6XBE.js} +1 -1
  34. package/dist/cdn/{EOHKNJSJ.js → INSAYWFB.js} +1 -1
  35. package/dist/cdn/{ZLXYBOM3.js → IP7NR32G.js} +1 -1
  36. package/dist/cdn/IPMFDZBI.js +2 -0
  37. package/dist/cdn/{JGESKW6S.js → JBO56HPJ.js} +1 -1
  38. package/dist/cdn/{RICA7GJM.js → JE4ZLQEX.js} +1 -1
  39. package/dist/cdn/JT2CHRVO.js +2 -0
  40. package/dist/cdn/JYS5HVHP.js +2 -0
  41. package/dist/cdn/{HOIPLQXD.js → KBMGQ3H6.js} +1 -1
  42. package/dist/cdn/{EAV3KAS7.js → KO6XLCKT.js} +1 -1
  43. package/dist/cdn/LK7Y2TPS.js +2 -0
  44. package/dist/cdn/{5YP7P6S3.js → LNMXGS7N.js} +1 -1
  45. package/dist/cdn/{HUNN3ERX.js → LYLK7H23.js} +1 -1
  46. package/dist/cdn/{2G65P262.js → MIL4ALAU.js} +1 -1
  47. package/dist/cdn/{NK66D65H.js → MIMPZBTK.js} +1 -1
  48. package/dist/cdn/{EMBMJCFZ.js → MN5LEOFQ.js} +1 -1
  49. package/dist/cdn/{5EYVH3PA.js → MRA3XRKD.js} +1 -1
  50. package/dist/cdn/{MXE4VPZS.js → MYAMCWA2.js} +1 -1
  51. package/dist/cdn/{TEWEPSIO.js → N2BF3AIP.js} +1 -1
  52. package/dist/cdn/{SUNHJPBW.js → NQYCZQ27.js} +1 -1
  53. package/dist/cdn/{UM7RIOCE.js → NSS4WWO7.js} +1 -1
  54. package/dist/cdn/{Y2WHHAAA.js → P7VFYZRI.js} +1 -1
  55. package/dist/cdn/{T62EETHJ.js → PZFM3BRK.js} +1 -1
  56. package/dist/cdn/PZUVU7CC.js +3 -0
  57. package/dist/cdn/{SQIKFO32.js → Q376XO5C.js} +1 -1
  58. package/dist/cdn/{VA6KJZ2Y.js → QGKWF4LR.js} +1 -1
  59. package/dist/cdn/QS6QHTAG.js +2 -0
  60. package/dist/cdn/{A36KQ6YP.js → QSFEGKYQ.js} +1 -1
  61. package/dist/cdn/{M744CFJ2.js → QXN2LIUA.js} +1 -1
  62. package/dist/cdn/{QTSF2LK7.js → R7VPFCG2.js} +1 -1
  63. package/dist/cdn/{BKK57XHL.js → S3YPXZ3Y.js} +1 -1
  64. package/dist/cdn/{J3CL6KB6.js → S7B57I24.js} +1 -1
  65. package/dist/cdn/{ANHW36VW.js → SSYHOPL2.js} +1 -1
  66. package/dist/cdn/{DBAM7MH7.js → SYU55EDE.js} +1 -1
  67. package/dist/cdn/{BHGOAHMJ.js → TGABTYRZ.js} +1 -1
  68. package/dist/cdn/{WZOHQJFB.js → TGXTKIAA.js} +1 -1
  69. package/dist/cdn/{JS6A5QAV.js → TRXKI7AQ.js} +1 -1
  70. package/dist/cdn/{KDCZQ6UT.js → V2POH2WS.js} +1 -1
  71. package/dist/cdn/{ISK4QVLY.js → VZPJL27P.js} +1 -1
  72. package/dist/cdn/WOE4UHYG.js +2 -0
  73. package/dist/cdn/WUUBA4AY.js +2 -0
  74. package/dist/cdn/{P5QEJOJS.js → X3B7R2CE.js} +1 -1
  75. package/dist/cdn/{JYITKARU.js → X4RUTR6U.js} +1 -1
  76. package/dist/cdn/{5MPXETTU.js → X7BEP5KL.js} +1 -1
  77. package/dist/cdn/{INISFVAK.js → XM6OTYSW.js} +1 -1
  78. package/dist/cdn/XS5G7ML2.js +2 -0
  79. package/dist/cdn/{KWA7OWHO.js → YN4QD76O.js} +1 -1
  80. package/dist/cdn/YQJBJRP7.js +2 -0
  81. package/dist/cdn/{L7TUV2MY.js → YWJTHRQP.js} +1 -1
  82. package/dist/cdn/{7DIQIFKR.js → ZOZ72K4S.js} +1 -1
  83. package/dist/cdn/index.js +1 -1
  84. package/dist/cdn/model/shared/setup-utils.js +1 -1
  85. package/dist/chunks/bar-chart-model.js +10 -10
  86. package/dist/chunks/box-plot-data.js +271 -279
  87. package/dist/chunks/box-plot-model.js +161 -146
  88. package/dist/chunks/chart-model.js +1 -1
  89. package/dist/chunks/class-breaks.js +66 -66
  90. package/dist/chunks/combo-bar-line-chart-model.js +12 -12
  91. package/dist/chunks/data.js +1 -1
  92. package/dist/chunks/gauge-model.js +1 -1
  93. package/dist/chunks/heat-chart-model.js +25 -25
  94. package/dist/chunks/histogram-model.js +1 -1
  95. package/dist/chunks/index2.js +2026 -2088
  96. package/dist/chunks/index4.js +1 -1
  97. package/dist/chunks/line-chart-model.js +11 -11
  98. package/dist/chunks/model-with-x-guides.js +5 -5
  99. package/dist/chunks/model-with-y-guides.js +33 -48
  100. package/dist/chunks/pie-chart-data.js +165 -189
  101. package/dist/chunks/pie-chart-model.js +9 -9
  102. package/dist/chunks/radar-chart-model.js +7 -7
  103. package/dist/chunks/scatterplot-model.js +1 -1
  104. package/dist/chunks/serial-chart-data.js +745 -770
  105. package/dist/chunks/serial-chart-model.js +19 -11
  106. package/dist/chunks/utils.js +36 -38
  107. package/dist/chunks/web-component-utils.js +38 -38
  108. package/dist/chunks/x-bounds.js +1 -1
  109. package/dist/components/arcgis-chart/customElement.d.ts +53 -11
  110. package/dist/components/arcgis-chart/customElement.js +2226 -2210
  111. package/dist/components/arcgis-charts-config-create-flow/customElement.js +1 -1
  112. package/dist/components/arcgis-charts-config-pie-chart-slices/customElement.js +67 -68
  113. package/dist/components/arcgis-charts-config-pie-chart-slices-popover/customElement.js +5 -5
  114. package/dist/docs/api.json +1 -1
  115. package/dist/docs/docs.json +1 -1
  116. package/dist/docs/vscode.html-custom-data.json +1 -1
  117. package/dist/docs/web-types.json +1 -1
  118. package/dist/index.js +171 -172
  119. package/dist/model/box-plot-model/box-plot-model.d.ts +7 -1
  120. package/dist/model/heat-chart-model/heat-chart-model.d.ts +20 -0
  121. package/dist/model/mixins/model-with-multi-axes.d.ts +61 -98
  122. package/dist/model/serial-chart-model/serial-chart-model.d.ts +12 -1
  123. package/dist/utils/chart-config/converter/index.js +26 -26
  124. package/dist/utils/data/categorical-data/index.d.ts +1 -1
  125. package/dist/utils/data/index.d.ts +1 -2
  126. package/dist/utils/layer/query-features/index.d.ts +2 -18
  127. package/dist/utils/layer/query-parser/index.d.ts +1 -2
  128. package/package.json +3 -3
  129. package/dist/cdn/3UHXOKCR.js +0 -2
  130. package/dist/cdn/54W4C75M.js +0 -2
  131. package/dist/cdn/6PIQ2O5S.js +0 -2
  132. package/dist/cdn/7CMQGTU6.js +0 -2
  133. package/dist/cdn/EBSQRCQQ.js +0 -2
  134. package/dist/cdn/EDVN42ME.js +0 -2
  135. package/dist/cdn/H2EMIJME.js +0 -2
  136. package/dist/cdn/JEVWE6ER.js +0 -2
  137. package/dist/cdn/O3DJD5IR.js +0 -2
  138. package/dist/cdn/V5W5LNFT.js +0 -2
  139. package/dist/cdn/V6LKZUEZ.js +0 -3
  140. package/dist/cdn/XKZ44LA2.js +0 -2
  141. package/dist/cdn/YVSZN6IH.js +0 -2
@@ -1,7 +1,7 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
2
  import { isEqual as D } from "lodash-es";
3
- import { q as I, u, r as h } from "./chart-object-literals.js";
4
- import { bd as b, bs as v, k as p, ap as M } from "./index2.js";
3
+ import { q as b, u, r as h } from "./chart-object-literals.js";
4
+ import { bd as I, bs as v, k as p, ap as M } from "./index2.js";
5
5
  import { i as P } from "./index4.js";
6
6
  import { C as O } from "./chart-model.js";
7
7
  import { m as o } from "./model-setter.js";
@@ -15,24 +15,24 @@ import { W as ge, c as ce, d as fe } from "./generate-x-axis-title.js";
15
15
  import { W as he, a as pe } from "./x-bounds.js";
16
16
  import { W as me } from "./data-labels-symbol.js";
17
17
  import { W as de } from "./rotated-state.js";
18
- import { g as W, u as ye, s as T, j as ue, k as Se, f as _e, h as xe } from "./utils.js";
18
+ import { g as W, u as ye, s as T, h as ue, j as Se, k as _e, f as xe } from "./utils.js";
19
19
  import { d as F, e as B, a as Te } from "./data.js";
20
- import { B as Fe, Z as Be, x as Ce, a4 as Ae, a2 as Ie } from "./index.js";
20
+ import { B as Fe, Z as Be, x as Ce, a4 as Ae, a2 as be } from "./index.js";
21
21
  import { s as L } from "./series-types.js";
22
22
  const C = (s, e) => e.series?.[s].assignToSecondValueAxis ?? !1, A = (s) => {
23
23
  const { assign: e, seriesIndex: i, config: t, commonStrings: r } = s;
24
24
  e && t.axes !== void 0 && !t.axes?.[2] && (t.axes[2] = Ce(r, u.BarSeries)[1]), t.series && t.series.forEach((a, g) => {
25
25
  g === i ? a.assignToSecondValueAxis = e : g !== i && a?.assignToSecondValueAxis !== !0 && (a.assignToSecondValueAxis = !1);
26
26
  }), t.axes?.[2] && !t.series.some((a) => a.assignToSecondValueAxis) && t.axes.splice(2, 1);
27
- }, be = (s, e) => e.series?.[s]?.name, ve = (s, e, i) => {
27
+ }, Ie = (s, e) => e.series?.[s]?.name, ve = (s, e, i) => {
28
28
  i.series?.[e] && (i.series[e].name = s);
29
29
  }, Oe = (s, e) => {
30
30
  const i = e.series?.[s];
31
31
  let t;
32
- return b(i) ? t = i.fillSymbol?.color : v(i) && (t = i.lineSymbol?.color), t;
32
+ return I(i) ? t = i.fillSymbol?.color : v(i) && (t = i.lineSymbol?.color), t;
33
33
  }, We = (s, e, i) => {
34
34
  const t = i.series?.[e];
35
- t && (b(t) ? t.fillSymbol = {
35
+ t && (I(t) ? t.fillSymbol = {
36
36
  ...Fe(e),
37
37
  ...t.fillSymbol,
38
38
  color: s
@@ -45,7 +45,7 @@ const C = (s, e) => e.series?.[s].assignToSecondValueAxis ?? !1, A = (s) => {
45
45
  e.series?.sort(
46
46
  (i, t) => s.findIndex((r) => i.id === r) - s.findIndex((r) => t.id === r)
47
47
  );
48
- }, Me = (s) => s.stackedType ?? I.Side, Pe = (s) => {
48
+ }, Me = (s) => s.stackedType ?? b.Side, Pe = (s) => {
49
49
  const { newStackedType: e, config: i, layerInfo: t, commonStrings: r } = s;
50
50
  if (i.stackedType = e, t !== void 0) {
51
51
  const a = W({
@@ -57,7 +57,7 @@ const C = (s, e) => e.series?.[s].assignToSecondValueAxis ?? !1, A = (s) => {
57
57
  });
58
58
  ye(i, 1, a);
59
59
  }
60
- i.axes?.[1] && (e === I.Stacked100 ? i.axes[1].valueFormat = Ae() : i.axes[1].valueFormat = Ie()), T({ config: i, value: null, axisIndex: 1, isMax: !1 }), T({ config: i, value: null, axisIndex: 1, isMax: !0 });
60
+ i.axes?.[1] && (e === b.Stacked100 ? i.axes[1].valueFormat = Ae() : i.axes[1].valueFormat = be()), T({ config: i, value: null, axisIndex: 1, isMax: !1 }), T({ config: i, value: null, axisIndex: 1, isMax: !0 });
61
61
  }, Ve = (s) => {
62
62
  const e = {};
63
63
  return s.series.forEach((i) => {
@@ -277,10 +277,18 @@ class n extends O {
277
277
  }
278
278
  /**
279
279
  * Updates the series based on the layer filter.
280
+ *
281
+ * @deprecated since 5.2. Use {@link model/serial-chart-model/serial-chart-model#rebuildSeries rebuildSeries} instead.
280
282
  */
281
283
  updateSeriesFromLayerFilter() {
282
284
  this.layerInfo !== void 0 && m(this.getBuildNewSeriesProps());
283
285
  }
286
+ /**
287
+ * Rebuilds the series based on the current configuration.
288
+ */
289
+ async rebuildSeries() {
290
+ await this.processSeriesRebuild("rebuildSeries");
291
+ }
284
292
  /**
285
293
  * Whether temporal binning is enabled for all series in the config.
286
294
  *
@@ -303,7 +311,7 @@ class n extends O {
303
311
  * @param seriesIndex - The index of the series.
304
312
  */
305
313
  getSeriesName(e) {
306
- return be(e, this._config);
314
+ return Ie(e, this._config);
307
315
  }
308
316
  setSeriesName(e, i) {
309
317
  ve(e, i, this._config);
@@ -523,6 +531,6 @@ xe(n, Xe);
523
531
  export {
524
532
  n as S,
525
533
  ve as a,
526
- be as g,
534
+ Ie as g,
527
535
  We as s
528
536
  };
@@ -1,42 +1,42 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import { substitute as b } from "@arcgis/core/intl.js";
3
- import { w as C, H as j, M as q, T as k, F as M, x as W } from "./index.js";
4
- import { g as $ } from "./series-types.js";
5
- import { l as E, d as S, q as U, D as H } from "./index3.js";
6
- import { bw as K, ap as I, ag as P, h as O, cs as L, a6 as h, cr as V, aJ as X } from "./index2.js";
7
- import { q as R, u as f, r as A, p as G } from "./chart-object-literals.js";
2
+ import { q, u as f, r as A, p as C } from "./chart-object-literals.js";
3
+ import { bw as j, ap as I, ag as k, h as O, cq as L, cr as V, aJ as M, a6 as b } from "./index2.js";
8
4
  import { d as T } from "./type-guards.js";
5
+ import { l as W, d as S, q as $, D as E } from "./index3.js";
6
+ import { substitute as h } from "@arcgis/core/intl.js";
7
+ import { w as U, H, M as K, T as P, F as X, x as R } from "./index.js";
8
+ import { g as G } from "./series-types.js";
9
9
  function se(s, e, i) {
10
10
  const t = s?.axes?.[e];
11
- t?.title !== void 0 ? t.title.content.text = i : t !== void 0 && (t.title = j({
11
+ t?.title !== void 0 ? t.title.content.text = i : t !== void 0 && (t.title = H({
12
12
  text: i,
13
13
  visible: !0,
14
- font: q(k.AxisTitle)
14
+ font: K(P.AxisTitle)
15
15
  }));
16
16
  }
17
17
  function ae(s) {
18
18
  const { config: e, layerInfo: i, commonStrings: t, numericFields: a, aggregationType: r } = s;
19
19
  let o = "";
20
20
  if (e)
21
- if (E(e) === R.Stacked100)
21
+ if (W(e) === q.Stacked100)
22
22
  o = t.utilsStrings.statistics.percent;
23
23
  else {
24
- const d = C(r, t);
24
+ const d = U(r, t);
25
25
  if (e.series[0]?.type === f.HeatSeries)
26
26
  o = S(i.layerFieldsInfo, e.series[0].y);
27
27
  else if (a.length === 1) {
28
28
  const g = S(i.layerFieldsInfo, a[0]), n = I(i.layer).idField;
29
- r === A.NoAggregation ? o = g : r === A.Count && n !== void 0 && a[0] === n ? o = t.utilsStrings.statistics.count : o = b(t.axisLabels.aggregationOfFieldName, {
29
+ r === A.NoAggregation ? o = g : r === A.Count && n !== void 0 && a[0] === n ? o = t.utilsStrings.statistics.count : o = h(t.axisLabels.aggregationOfFieldName, {
30
30
  aggregation: d,
31
31
  fieldName: g
32
32
  });
33
- } else a.length > 1 && (r === A.NoAggregation ? o = t.axisLabels.values : o = b(t.axisLabels.aggregationOfValues, {
33
+ } else a.length > 1 && (r === A.NoAggregation ? o = t.axisLabels.values : o = h(t.axisLabels.aggregationOfValues, {
34
34
  aggregation: d
35
35
  }));
36
36
  }
37
37
  return o;
38
38
  }
39
- const B = (s, e, i) => s.axes?.[e] ?? W(i, s.type)[e], w = (s) => {
39
+ const B = (s, e, i) => s.axes?.[e] ?? R(i, s.type)[e], w = (s) => {
40
40
  const { config: e, axis: i, axisIndex: t } = s;
41
41
  e.axes !== void 0 && (e.axes[t] = i);
42
42
  }, re = (s) => {
@@ -46,7 +46,7 @@ const B = (s, e, i) => s.axes?.[e] ?? W(i, s.type)[e], w = (s) => {
46
46
  }, N = (s) => {
47
47
  const { config: e, value: i, axisIndex: t, isMax: a } = s, r = e?.axes?.[t];
48
48
  r !== void 0 && (a ? r.maximum = i : r.minimum = i);
49
- }, oe = (s) => s.axes?.[0]?.valueFormat ?? M(), ne = (s, e, i) => {
49
+ }, oe = (s) => s.axes?.[0]?.valueFormat ?? X(), ne = (s, e, i) => {
50
50
  const t = B(s, 0, e);
51
51
  if (t !== void 0 && i !== void 0) {
52
52
  const a = {
@@ -59,7 +59,7 @@ const B = (s, e, i) => s.axes?.[e] ?? W(i, s.type)[e], w = (s) => {
59
59
  const t = s.axes?.[e];
60
60
  t !== void 0 && (t.integerOnlyValues = i);
61
61
  }, J = (s) => {
62
- const e = $(s.series);
62
+ const e = G(s.series);
63
63
  return e === f.BarSeries || e === f.ComboLineAndBarSeries || e === f.LineSeries;
64
64
  }, Q = (s) => {
65
65
  const { axisIndex: e, config: i, isMultiAxis: t } = s;
@@ -71,7 +71,7 @@ const B = (s, e, i) => s.axes?.[e] ?? W(i, s.type)[e], w = (s) => {
71
71
  }, v = (s, e) => {
72
72
  let i;
73
73
  const t = e.axes?.[s]?.valueFormat;
74
- return (s === 0 || s >= 1 && K(t)) && (i = t), i;
74
+ return (s === 0 || s >= 1 && j(t)) && (i = t), i;
75
75
  }, ue = (s) => {
76
76
  const { config: e, commonStrings: i, valueFormat: t, axisIndex: a = 0 } = s, r = B(e, a, i);
77
77
  if (r !== void 0 && t !== void 0) {
@@ -96,28 +96,26 @@ async function xe(s) {
96
96
  const { config: e, layer: i, xAxisField: t, splitByField: a, layerFieldsInfo: r, aggregationFields: o, fetchNullValues: u, errorStrings: d } = s, n = r.filter((F) => F.name === a)[0]?.type, x = u !== !0 ? `${a} IS NOT NULL` : "", l = t && u !== !0 ? `${t} IS NOT NULL` : "", { where: m } = e?.dataFilters ?? {}, D = {
97
97
  where: O([m, x, l]),
98
98
  // excluding the null values from the list
99
- orderByFields: U(a) ? [] : [`${a} ${G.Ascending}`],
99
+ orderByFields: $(a) ? [] : [`${a} ${C.Ascending}`],
100
100
  // default sorting ascending for split-by field
101
101
  geometry: e?.dataFilters?.geometry
102
102
  };
103
103
  let p = "";
104
104
  o?.length === 0 ? p = I(i).idField : o && ([p] = o);
105
- let y = i ? T(i) ? await V({
105
+ let y = i ? T(i) ? await L({
106
106
  layer: i,
107
107
  category: e?.series[0].x ?? "",
108
108
  splitByField: a
109
- }) : Array.from(
110
- (await L({
111
- queryObject: i,
112
- category: e?.series[0].x ?? "",
113
- splitByField: a,
114
- queryConfig: D,
115
- errorStrings: d
116
- })).keys()
117
- ) : [];
109
+ }) : await V({
110
+ queryObject: i,
111
+ category: e?.series[0].x ?? "",
112
+ splitByField: a,
113
+ queryConfig: D,
114
+ errorStrings: d
115
+ }) : [];
118
116
  if (y = y.slice(0, 500), e) {
119
- const F = e?.series.map((c) => X({ where: c.query?.where })?.toString() ?? "").filter((c) => c !== void 0 && c !== "");
120
- y = H({
117
+ const F = e?.series.map((c) => M({ where: c.query?.where })?.toString() ?? "").filter((c) => c !== void 0 && c !== "");
118
+ y = E({
121
119
  arrayA: y,
122
120
  arrayB: F,
123
121
  getKey: (c) => c === null ? null : c?.toString()
@@ -135,7 +133,7 @@ function ye(s, e) {
135
133
  return i;
136
134
  }
137
135
  function me(s, e) {
138
- const i = P(s);
136
+ const i = k(s);
139
137
  let t = e.length === 0, a = 0;
140
138
  for (const r of e) {
141
139
  for (const o of i)
@@ -167,22 +165,22 @@ async function Fe(s) {
167
165
  geometry: i?.dataFilters?.geometry
168
166
  };
169
167
  let n;
170
- return T(r) ? n = (await V({
168
+ return T(r) ? n = (await L({
171
169
  layer: r,
172
170
  category: t,
173
171
  fetchNullValues: u
174
172
  })).map((x) => {
175
173
  const l = String(x);
176
- return h({
174
+ return b({
177
175
  queryObject: e.layer,
178
176
  fieldName: t,
179
177
  fieldValue: l
180
178
  }) ?? l;
181
179
  }) : n = // fetch unique category values asynchronously
182
- Array.from((await L({ queryObject: r, category: t, queryConfig: g, errorStrings: a })).keys()).map(
180
+ (await V({ queryObject: r, category: t, queryConfig: g, errorStrings: a })).map(
183
181
  (x) => {
184
182
  const l = String(x);
185
- return h({
183
+ return b({
186
184
  queryObject: e.layer,
187
185
  fieldName: t,
188
186
  fieldValue: l
@@ -199,12 +197,12 @@ export {
199
197
  Fe as c,
200
198
  ne as d,
201
199
  le as e,
202
- xe as f,
200
+ pe as f,
203
201
  ae as g,
204
- pe as h,
202
+ ye as h,
205
203
  Ae as i,
206
- ye as j,
207
- me as k,
204
+ me as j,
205
+ xe as k,
208
206
  re as l,
209
207
  v as m,
210
208
  de as n,
@@ -1,5 +1,5 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import { isEqual as ue, capitalize as v, isNumber as W, zip as ae } from "lodash-es";
2
+ import { isEqual as ue, capitalize as B, isNumber as W, zip as ae } from "lodash-es";
3
3
  import { d as Y } from "./interfaces.js";
4
4
  import { g as ce, a as q, b as oe, c as z } from "./box-plot-data.js";
5
5
  import { g as fe } from "./histogram-data.js";
@@ -7,8 +7,8 @@ import { g as me, a as de, b as ye } from "./pie-chart-data.js";
7
7
  import { g as ie } from "./series-length.js";
8
8
  import { g as re, d as le, e as ge } from "./serial-chart-data.js";
9
9
  import { g as _, a as pe } from "./data.js";
10
- import { Y as U, ap as be, af as xe, aM as E, cL as Fe, B as V, a6 as De, bj as Se, dv as ve } from "./index2.js";
11
- import { k as H, az as $, g as R, as as Be, b as he, a as Q } from "./index.js";
10
+ import { Y as U, ap as be, af as xe, aM as E, cL as Fe, B as V, a6 as De, bj as Se, dw as Be } from "./index2.js";
11
+ import { k as H, az as $, g as R, as as ve, b as he, a as Q } from "./index.js";
12
12
  import { q as K, C as g, F as A } from "./index3.js";
13
13
  import { g as Pe } from "./series-types.js";
14
14
  import { V as Ve } from "./index5.js";
@@ -56,7 +56,7 @@ function G(l) {
56
56
  label: i.heatChartCalendarDatePartsUnits.dayOfWeek,
57
57
  value: Ae({
58
58
  weekdayNumber: e,
59
- firstDayOfWeek: "firstDayOfWeek" in o ? o.firstDayOfWeek : Be,
59
+ firstDayOfWeek: "firstDayOfWeek" in o ? o.firstDayOfWeek : ve,
60
60
  locale: t
61
61
  })
62
62
  };
@@ -153,11 +153,11 @@ function ct(l, e = {}) {
153
153
  const f = t ?? Object.keys(l[0]), u = [], p = a ?? we(r ?? "en");
154
154
  if (r !== void 0 && p !== "," && (c += `sep=${p}\r
155
155
  `), o) {
156
- const B = f.map((b) => J({ value: b, quoteAll: i, locale: r, roundDecimals: n }));
157
- u.push(B.join(p));
156
+ const v = f.map((b) => J({ value: b, quoteAll: i, locale: r, roundDecimals: n }));
157
+ u.push(v.join(p));
158
158
  }
159
- l.forEach((B) => {
160
- const b = f.map((x) => J({ value: B[x], quoteAll: i, locale: r, roundDecimals: n }));
159
+ l.forEach((v) => {
160
+ const b = f.map((x) => J({ value: v[x], quoteAll: i, locale: r, roundDecimals: n }));
161
161
  u.push(b.join(p));
162
162
  }), c += u.join(`\r
163
163
  `);
@@ -269,7 +269,7 @@ function $e(l, e) {
269
269
  }
270
270
  function Ne(l) {
271
271
  const { fieldName: e, dataContext: t } = l, a = A.rendererSymbolField;
272
- return e === a && t !== void 0 ? ve(t) : void 0;
272
+ return e === a && t !== void 0 ? Be(t) : void 0;
273
273
  }
274
274
  function ee(l) {
275
275
  const { config: e, splitByField: t, splitByValue: a, splitByValueIndex: o, layer: i, fieldList: r, timeZone: n } = l;
@@ -293,11 +293,11 @@ function Te(l) {
293
293
  fieldList: o
294
294
  });
295
295
  return t.map((p) => {
296
- const B = p[H.xField], b = p[H.yField], x = p[H.valueField], D = typeof x == "number" && Number.isFinite(x) ? x.toFixed(2) : x;
297
- let m = { label: n.x, value: B }, d = { label: n.y, value: b };
296
+ const v = p[H.xField], b = p[H.yField], x = p[H.valueField], D = typeof x == "number" && Number.isFinite(x) ? x.toFixed(2) : x;
297
+ let m = { label: n.x, value: v }, d = { label: n.y, value: b };
298
298
  if (n.xTemporalBinning !== void 0) {
299
299
  const { label: F, value: S } = G({
300
- value: Number(B),
300
+ value: Number(v),
301
301
  config: e,
302
302
  formatLocale: i,
303
303
  unit: n.xTemporalBinning.unit,
@@ -323,9 +323,9 @@ function Te(l) {
323
323
  });
324
324
  }
325
325
  function Re(l, e, t) {
326
- const a = fe(l), o = `${v(Y.Min)} of ${a}`, i = `${v(Y.Max)} of ${a}`, r = `${v(Y.Count)} of ${a}`;
326
+ const a = fe(l), o = `${B(Y.Min)} of ${a}`, i = `${B(Y.Max)} of ${a}`, r = `${B(Y.Count)} of ${a}`;
327
327
  return e.map((n) => {
328
- const { minValue: s, maxValue: c, count: f } = n, u = W(s), p = W(c), B = W(f), b = {};
328
+ const { minValue: s, maxValue: c, count: f } = n, u = W(s), p = W(c), v = W(f), b = {};
329
329
  if (u && (b[o] = h({
330
330
  value: s,
331
331
  originalValue: s,
@@ -346,7 +346,7 @@ function Re(l, e, t) {
346
346
  });
347
347
  b.Label = `${String(x ?? "")} - ${String(D ?? "")}`;
348
348
  }
349
- return B && (b[r] = f), b;
349
+ return v && (b[r] = f), b;
350
350
  });
351
351
  }
352
352
  function Ie(l, e, t) {
@@ -355,7 +355,7 @@ function Ie(l, e, t) {
355
355
  return t ? o = t.map((i) => a.find((r) => r.toLowerCase().includes(i.toLowerCase())) || "") : o = a.filter((r) => r.toLowerCase().includes(e.toLowerCase())), o.filter((i) => i.trim() !== "");
356
356
  }
357
357
  function Ke(l) {
358
- const { config: e, rows: t, layer: a, fieldList: o, formatters: i, useRendererLabel: r = !1, timeZone: n } = l, s = pe(e), c = re(e), f = v(c), u = le(e), p = U(e.series), B = ie(e), b = ge(e), { idField: x, isTraditionalTypeOID: D } = be(xe(a)), m = D && u.length === 1 && u[0] === x;
358
+ const { config: e, rows: t, layer: a, fieldList: o, formatters: i, useRendererLabel: r = !1, timeZone: n } = l, s = pe(e), c = re(e), f = B(c), u = le(e), p = U(e.series), v = ie(e), b = ge(e), { idField: x, isTraditionalTypeOID: D } = be(xe(a)), m = D && u.length === 1 && u[0] === x;
359
359
  let d;
360
360
  switch (p) {
361
361
  case g.BarAndLineNoAggregation:
@@ -434,7 +434,7 @@ function Ke(l) {
434
434
  useRendererLabel: r,
435
435
  timeZone: n
436
436
  });
437
- return B.map((P, C) => {
437
+ return v.map((P, C) => {
438
438
  const w = ee({
439
439
  config: e,
440
440
  splitByField: b,
@@ -462,7 +462,7 @@ function Ke(l) {
462
462
  formatter: i?.xAxisLabelFormatter,
463
463
  useRendererLabel: r,
464
464
  timeZone: n
465
- }), S = Ie(y, u[0], B), P = y[b], C = B.findIndex((I) => $e(I, P)), w = ee({
465
+ }), S = Ie(y, u[0], v), P = y[b], C = v.findIndex((I) => $e(I, P)), w = ee({
466
466
  config: e,
467
467
  splitByField: b,
468
468
  splitByValue: P,
@@ -504,11 +504,11 @@ function je(l) {
504
504
  function Ee(l) {
505
505
  const { config: e, rows: t, layer: a, fieldList: o, formatters: i, useRendererLabel: r = !1, timeZone: n } = l, s = me(e), c = U(e.series);
506
506
  let f = je(t);
507
- const u = de(e), p = c !== g.PieFromFields ? X.Category : X.Fields, B = ye(e, p), b = _({
507
+ const u = de(e), p = c !== g.PieFromFields ? X.Category : X.Fields, v = ye(e, p), b = _({
508
508
  config: e,
509
509
  xAxisField: s,
510
510
  numericFields: u,
511
- aggregationType: B,
511
+ aggregationType: v,
512
512
  mode: p,
513
513
  layer: a,
514
514
  fieldList: o
@@ -527,7 +527,7 @@ function Ee(l) {
527
527
  return c === g.PieFromCategory && x.toLowerCase() === b.name.toLowerCase() && (y = b.description, F = b.name), d[y] = h({
528
528
  value: D[F],
529
529
  originalValue: D[F]
530
- }), d[v($.trim())] = h({
530
+ }), d[B($.trim())] = h({
531
531
  value: D[`${F}${$}`],
532
532
  originalValue: D[`${F}${$}`]
533
533
  }), d;
@@ -540,7 +540,7 @@ function Ee(l) {
540
540
  }), d.Value = h({
541
541
  value: m[x],
542
542
  originalValue: m[x]
543
- }), d[v($.trim())] = h({
543
+ }), d[B($.trim())] = h({
544
544
  value: m[`${x}${$}`],
545
545
  originalValue: m[`${x}${$}`]
546
546
  })), d;
@@ -569,13 +569,13 @@ function T(l) {
569
569
  fieldList: r,
570
570
  timeZone: n
571
571
  });
572
- t[s] = x, t[v(V.Outlier)] = e[u];
572
+ t[s] = x, t[B(V.Outlier)] = e[u];
573
573
  break;
574
574
  }
575
575
  case g.BoxPlotMultiFieldsAndCategory: {
576
- t[v(s)] = e[s], u = `${c.find(
576
+ t[B(s)] = e[s], u = `${c.find(
577
577
  (D) => Object.keys(e).some((m) => m.toLowerCase().includes(D.toLowerCase()))
578
- ) ?? ""}_${u}`, t[v(V.Outlier)] = e[u];
578
+ ) ?? ""}_${u}`, t[B(V.Outlier)] = e[u];
579
579
  break;
580
580
  }
581
581
  case g.BoxPlotMonoFieldAndSplitBy:
@@ -587,7 +587,7 @@ function T(l) {
587
587
  fieldList: r,
588
588
  timeZone: n
589
589
  });
590
- u = `${x}_${u}`, t.Field = e[p], t[v(f)] = D, t[v(V.Outlier)] = e[u];
590
+ u = `${x}_${u}`, t.Field = e[p], t[B(f)] = D, t[B(V.Outlier)] = e[u];
591
591
  break;
592
592
  }
593
593
  case g.BoxPlotMonoFieldAndCategoryAndSplitBy: {
@@ -598,25 +598,25 @@ function T(l) {
598
598
  fieldList: r,
599
599
  timeZone: n
600
600
  });
601
- u = `${x}_${u}`, t[v(s)] = e[s], t[v(f)] = D, t[v(V.Outlier)] = e[u];
601
+ u = `${x}_${u}`, t[B(s)] = e[s], t[B(f)] = D, t[B(V.Outlier)] = e[u];
602
602
  break;
603
603
  }
604
604
  case g.BoxPlotMonoField:
605
605
  case g.BoxPlotMultiFields:
606
606
  default: {
607
- t.Field = e[p], t[v(V.Outlier)] = e[u];
607
+ t.Field = e[p], t[B(V.Outlier)] = e[u];
608
608
  break;
609
609
  }
610
610
  }
611
- const B = `${u}${Q}`, b = e[B];
612
- b !== void 0 && (t[`${v(V.Outlier)} Z-Score`] = b);
611
+ const v = `${u}${Q}`, b = e[v];
612
+ b !== void 0 && (t[`${B(V.Outlier)} Z-Score`] = b);
613
613
  }
614
614
  function Ue(l) {
615
615
  const { rawData: e, outRow: t, config: a, splitByValue: o, layer: i, fieldList: r, timeZone: n } = l, s = U(a.series), c = e[`${o}_${V.Average}`], f = z(a), u = q(a);
616
616
  let p = "";
617
617
  switch (s) {
618
618
  case g.BoxPlotMonoFieldAndSplitBy: {
619
- p = `${o}_${f}`, t.Field = e[R], t[v(f)] = M({
619
+ p = `${o}_${f}`, t.Field = e[R], t[B(f)] = M({
620
620
  field: f,
621
621
  value: e[p],
622
622
  layer: i,
@@ -626,7 +626,7 @@ function Ue(l) {
626
626
  break;
627
627
  }
628
628
  case g.BoxPlotMultiFieldsAndSplitBy: {
629
- p = `${o}_${V.Average}`, t.Field = e[R], t[v(f)] = M({
629
+ p = `${o}_${V.Average}`, t.Field = e[R], t[B(f)] = M({
630
630
  field: f,
631
631
  value: e[p],
632
632
  layer: i,
@@ -636,7 +636,7 @@ function Ue(l) {
636
636
  break;
637
637
  }
638
638
  case g.BoxPlotMonoFieldAndCategoryAndSplitBy: {
639
- p = `${o}_${V.Average}`, t[u] = e[u], t[v(f)] = M({
639
+ p = `${o}_${V.Average}`, t[u] = e[u], t[B(f)] = M({
640
640
  field: f,
641
641
  value: o,
642
642
  layer: i,
@@ -646,16 +646,16 @@ function Ue(l) {
646
646
  break;
647
647
  }
648
648
  }
649
- t[v(V.Average)] = c;
650
- const B = `${String(c)}${Q}`, b = e[B];
651
- b !== void 0 && (t[`${v(V.Average)} Z-Score`] = b);
649
+ t[B(V.Average)] = c;
650
+ const v = `${String(c)}${Q}`, b = e[v];
651
+ b !== void 0 && (t[`${B(V.Average)} Z-Score`] = b);
652
652
  }
653
653
  function Ze(l) {
654
654
  const { config: e, rows: t, layer: a, fieldList: o, formatters: i, useRendererLabel: r = !1, timeZone: n } = l, s = U(e.series);
655
655
  let c = s;
656
656
  const f = ce(e), u = Array.isArray(t) && t.length > 0 && t.every((m) => m[A.boxPlot.boxPlotMeanLineMarkerId] !== void 0);
657
657
  f && !u && (s === g.BoxPlotMonoFieldAndSplitBy ? c = g.BoxPlotMonoField : s === g.BoxPlotMultiFieldsAndSplitBy ? c = g.BoxPlotMultiFields : s === g.BoxPlotMonoFieldAndCategoryAndSplitBy && (c = g.BoxPlotMonoFieldAndCategory));
658
- const p = q(e), B = oe(e), b = ie(e), x = z(e);
658
+ const p = q(e), v = oe(e), b = ie(e), x = z(e);
659
659
  let D;
660
660
  switch (c) {
661
661
  case g.BoxPlotMonoField:
@@ -708,7 +708,7 @@ function Ze(l) {
708
708
  }
709
709
  case g.BoxPlotMultiFieldsAndCategory: {
710
710
  D = t.flatMap(
711
- (m) => B.map((d) => {
711
+ (m) => v.map((d) => {
712
712
  const y = {};
713
713
  let F = "";
714
714
  if (y.Field = d, m[A.boxPlot.boxPlotOutlierId])
@@ -8,7 +8,7 @@ import { ai as S, M as L, T as b, a0 as T } from "./index.js";
8
8
  import { M as C, bF as M, bE as X } from "./index2.js";
9
9
  import { m as a, C as f } from "./model-setter.js";
10
10
  import { e as B, f as A } from "./utils2.js";
11
- import { l as p, s as y, h as O } from "./utils.js";
11
+ import { l as p, s as y, f as O } from "./utils.js";
12
12
  const P = (t) => {
13
13
  for (const e of t.axes ?? [])
14
14
  for (const i of e?.guides ?? [])
@@ -830,7 +830,8 @@ export abstract class ArcgisChart extends LitElement {
830
830
  */
831
831
  accessor filterByExtent: boolean;
832
832
  /**
833
- * When `true`, all chart elements are filtered based on the selection.
833
+ * When `true`, the chart uses the current selection as a data filter and renders only selected elements instead of rendering the full dataset with selection styling.
834
+ * Axis bounds, time binning intervals will be computed based on the selected elements only.
834
835
  *
835
836
  * **Note**: Not applicable to gauges or charts configured with imagery layers.
836
837
  *
@@ -838,7 +839,7 @@ export abstract class ArcgisChart extends LitElement {
838
839
  */
839
840
  accessor filterBySelection: boolean;
840
841
  /**
841
- * When `true`, all chart elements are filtered based on the view extent.
842
+ * When `true`, chart queries are constrained to the current map view extent. The chart refreshes as the view extent changes, and the axis bounds or other derived values are recalculated from the view extent data.
842
843
  *
843
844
  * @default false
844
845
  */
@@ -846,12 +847,35 @@ export abstract class ArcgisChart extends LitElement {
846
847
  /**
847
848
  * Callback function used to format the gauge inner label. If the returned string contains HTML tags they will be interpreted as such.
848
849
  *
850
+ * @example
851
+ * ```ts
852
+ * // Render a centered custom gauge label with the value formatted to 2 decimal places.
853
+ * chartElement.gaugeInnerLabelFormatter = (value) => {
854
+ * return `<div style="text-align: center;"><u>Custom gauge inner label: </u><br /><b>${Number(value).toFixed(2)}</b></div>`;
855
+ * };
856
+ * ```
857
+ *
858
+ * ![gaugeInnerLabelFormatter](https://developers.arcgis.com/javascript/latest/assets/references/components/chart/gaugeInnerLabelFormatter.avif)
859
+ *
849
860
  * **Note**: Applicable to gauges only.
850
861
  */
851
862
  accessor gaugeInnerLabelFormatter: GaugeInnerLabelFormatCallback | undefined;
852
863
  /**
853
864
  * Callback function used to format the axes guides tooltip. If the returned string contains HTML tags they will be interpreted as such.
854
865
  *
866
+ * @example
867
+ * ```ts
868
+ * // Render a custom tooltip with the guide's start and end values.
869
+ * chartElement.guideTooltipFormatter = (guide) => {
870
+ * return `
871
+ * <u>Custom guide tooltip</u><br />
872
+ * Range: <b>${guide.start} - ${guide.end}</b>
873
+ * `;
874
+ * };
875
+ * ```
876
+ *
877
+ * ![guideTooltipFormatter](https://developers.arcgis.com/javascript/latest/assets/references/components/chart/guideTooltipFormatter.avif)
878
+ *
855
879
  * **Note**: Not applicable to pie charts.
856
880
  */
857
881
  accessor guideTooltipFormatter: GuideTooltipFormatCallback | undefined;
@@ -915,18 +939,18 @@ export abstract class ArcgisChart extends LitElement {
915
939
  */
916
940
  accessor ignoreSmoothRenderingLimit: boolean;
917
941
  /**
918
- * This property will be effective when the component's `view` is provided or when the `layer` is set to a FeatureLayerView.
942
+ * When `true`, it signals the queries to ignore the view's extent, whether an additional geometry filter is provided or not.
919
943
  *
920
- * By default the queries made by the chart will consider the view's extent as the unique geometry filter applicable. This implies ignoring any
921
- * geometry passed through the model (`component.model.dataFilters`) or the runtime filters (`component.runtimeDataFilters`).
944
+ * This property will be effective when the component's [view](https://developers.arcgis.com/javascript/latest/references/charts-components/components/arcgis-chart/#view) property is provided or when the [layer](https://developers.arcgis.com/javascript/latest/references/charts-components/components/arcgis-chart/#layer) property is set to [`FeatureLayerView`](/references/core/views/layers/FeatureLayerView/).
922
945
  *
923
- * Setting this property to `false` signals the queries to ignore the view's extent, whether an additional geometry filter is provided or not.
946
+ * By default the queries made by the chart will consider the view's extent as the unique geometry filter applicable. This implies ignoring any
947
+ * geometry filters passed through the [model](https://developers.arcgis.com/javascript/latest/references/charts-components/components/arcgis-chart/#model) or the [runtimeDataFilters](https://developers.arcgis.com/javascript/latest/references/charts-components/components/arcgis-chart/#runtimeDataFilters) properties.
924
948
  *
925
949
  * @default false
926
950
  */
927
951
  accessor ignoreViewExtent: boolean;
928
952
  /**
929
- * Disables all interactions on the chart.
953
+ * When `true`, all interactions such as zooming and selection are disabled on the chart. The chart will be rendered in a read-only state.
930
954
  *
931
955
  * @default false
932
956
  */
@@ -953,9 +977,10 @@ export abstract class ArcgisChart extends LitElement {
953
977
  /**
954
978
  * Layer item ID associated with the chart to be rendered. Can be used in conjunction with the `chartIndex` property. If `layerItemId` is set without `chartIndex`, the first chart in the layer will be rendered.
955
979
  *
956
- * The layer item ID can be found in the URL of the layer's item page on ArcGIS Online or Enterprise. For example, in the URL `https://www.arcgis.com/home/item.html?id=8871626e970a4f3e9d6113ec63a92f2f`, the layer item ID is `8871626e970a4f3e9d6113ec63a92f2f`.
980
+ * The layer item ID can be found in the URL of the layer's item page on ArcGIS Online or Enterprise.
981
+ * For example, in the URL `https://www.arcgis.com/home/item.html?id=8871626e970a4f3e9d6113ec63a92f2f`, the layer item ID is `8871626e970a4f3e9d6113ec63a92f2f`.
957
982
  *
958
- * Supported layers include: `FeatureLayer`, `SubtypeSublayer`, `ImageryLayer`, `ImageryTileLayer` and `WCSLayer`.
983
+ * Supported layer types include: [`FeatureLayer`](/references/core/layers/FeatureLayer), [`SubtypeSublayer`](/references/core/layers/support/SubtypeSublayer), [`ImageryLayer`](/references/core/layers/ImageryLayer), [`ImageryTileLayer`](/references/core/layers/ImageryTileLayer) and [`WCSLayer`](/references/core/layers/WCSLayer).
959
984
  *
960
985
  * @example
961
986
  * ```html
@@ -981,8 +1006,25 @@ export abstract class ArcgisChart extends LitElement {
981
1006
  */
982
1007
  accessor legendPosition: WebChartLegendPositions | undefined;
983
1008
  /**
984
- * A callback function used to format the legend value labels. If the returned string contains HTML tags they will be interpreted as such.
985
- * If provided, the formatter will be used if at least [displayNumericValue](https://developers.arcgis.com/javascript/latest/references/charts-components/spec/web-chart/#WebChartPieChartLegend-displayNumericValue) or [displayPercentage](https://developers.arcgis.com/javascript/latest/references/charts-components/spec/web-chart/#WebChartPieChartLegend-displayPercentage) is `true`.
1009
+ * When the pie chart label contains either a numeric value or a percentage (which can be set through the
1010
+ * [setDisplayNumericValue](https://developers.arcgis.com/javascript/latest/references/charts-components/model/pie-chart-model/pie-chart-model/#setDisplayNumericValue) and
1011
+ * [setDisplayPercentage](https://developers.arcgis.com/javascript/latest/references/charts-components/model/pie-chart-model/pie-chart-model/#setDisplayPercentage) methods from the pie chart model), this property
1012
+ * can be used to format the numeric value and/or percentage. If the returned string contains HTML tags they will be interpreted as such.
1013
+ *
1014
+ * @example
1015
+ * ```ts
1016
+ * // Set the pie chart model to display both numeric value and percentage.
1017
+ * pieChartModel.setDisplayNumericValue(true);
1018
+ * pieChartModel.setDisplayPercentage(true);
1019
+ *
1020
+ * // Render the numeric value and percentage in bold and italic respectively, with 2 decimal places.
1021
+ * chartElement.legendValueLabelFormatter = (value, percentage) => {
1022
+ * const formatTo2Decimals = (input) => Number(input).toFixed(2);
1023
+ * return `<strong><u>${formatTo2Decimals(value)}</u></strong> (<em>${formatTo2Decimals(percentage)}%</em>)`;
1024
+ * };
1025
+ * ```
1026
+ *
1027
+ * ![legendValueLabelFormatter](https://developers.arcgis.com/javascript/latest/assets/references/components/chart/legendValueLabelFormatter.avif)
986
1028
  *
987
1029
  * **Note**: Applicable to pie charts only.
988
1030
  */