@icen.ai/ui 0.11.0 → 0.11.2

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 (94) hide show
  1. package/README.md +2 -2
  2. package/dist/base.css +11 -6
  3. package/dist/behaviors/ai-branch.mjs +13 -0
  4. package/dist/behaviors/ai-chat.mjs +13 -0
  5. package/dist/behaviors/ai-composer.mjs +13 -0
  6. package/dist/behaviors/ai-core.mjs +13 -0
  7. package/dist/behaviors/ai-diff.mjs +13 -0
  8. package/dist/behaviors/ai-feedback.mjs +13 -0
  9. package/dist/behaviors/ai-panel.mjs +13 -0
  10. package/dist/behaviors/ai-provider.mjs +13 -0
  11. package/dist/behaviors/ai-threads.mjs +13 -0
  12. package/dist/behaviors/ai-tool.mjs +242 -0
  13. package/dist/behaviors/ai-tools.mjs +242 -0
  14. package/dist/behaviors/autocomplete.mjs +13 -0
  15. package/dist/behaviors/back-top.mjs +13 -0
  16. package/dist/behaviors/carousel.mjs +13 -0
  17. package/dist/behaviors/cascader.mjs +13 -0
  18. package/dist/behaviors/charts.d.mts +12 -1
  19. package/dist/behaviors/charts.mjs +242 -0
  20. package/dist/behaviors/code-block.mjs +13 -0
  21. package/dist/behaviors/context-menu.mjs +13 -0
  22. package/dist/behaviors/controls.mjs +13 -0
  23. package/dist/behaviors/copy.mjs +13 -0
  24. package/dist/behaviors/datatable.mjs +13 -0
  25. package/dist/behaviors/date-picker.mjs +13 -0
  26. package/dist/behaviors/form-validate.mjs +13 -0
  27. package/dist/behaviors/i18n.d.mts +13 -0
  28. package/dist/behaviors/i18n.mjs +26 -0
  29. package/dist/behaviors/input.mjs +13 -0
  30. package/dist/behaviors/kb-access.mjs +13 -0
  31. package/dist/behaviors/kb-acl.mjs +13 -0
  32. package/dist/behaviors/kb-answer.mjs +242 -0
  33. package/dist/behaviors/kb-audit.mjs +13 -0
  34. package/dist/behaviors/kb-canvas.mjs +13 -0
  35. package/dist/behaviors/kb-chain.mjs +13 -0
  36. package/dist/behaviors/kb-checkpoint.mjs +13 -0
  37. package/dist/behaviors/kb-chunks.mjs +13 -0
  38. package/dist/behaviors/kb-citation.mjs +13 -0
  39. package/dist/behaviors/kb-clarify.mjs +13 -0
  40. package/dist/behaviors/kb-conflict.mjs +13 -0
  41. package/dist/behaviors/kb-connector.mjs +13 -0
  42. package/dist/behaviors/kb-core.mjs +13 -0
  43. package/dist/behaviors/kb-eval.mjs +13 -0
  44. package/dist/behaviors/kb-explain.mjs +13 -0
  45. package/dist/behaviors/kb-filter.mjs +13 -0
  46. package/dist/behaviors/kb-gap.mjs +13 -0
  47. package/dist/behaviors/kb-hittest.mjs +13 -0
  48. package/dist/behaviors/kb-metadata.mjs +13 -0
  49. package/dist/behaviors/kb-passage.mjs +13 -0
  50. package/dist/behaviors/kb-pipeline.mjs +13 -0
  51. package/dist/behaviors/kb-qa.mjs +13 -0
  52. package/dist/behaviors/kb-rerank.mjs +13 -0
  53. package/dist/behaviors/kb-retrieval.mjs +13 -0
  54. package/dist/behaviors/kb-review.mjs +13 -0
  55. package/dist/behaviors/kb-sandbox.mjs +13 -0
  56. package/dist/behaviors/kb-segment.mjs +13 -0
  57. package/dist/behaviors/kb-select.mjs +13 -0
  58. package/dist/behaviors/kb-sources.mjs +13 -0
  59. package/dist/behaviors/kb-sql.mjs +13 -0
  60. package/dist/behaviors/kb-trace.mjs +13 -0
  61. package/dist/behaviors/kb-visibility.mjs +13 -0
  62. package/dist/behaviors/kb-who-can.mjs +13 -0
  63. package/dist/behaviors/mentions.mjs +13 -0
  64. package/dist/behaviors/modal.mjs +13 -0
  65. package/dist/behaviors/motion.d.mts +16 -0
  66. package/dist/behaviors/motion.mjs +39 -0
  67. package/dist/behaviors/notification.mjs +13 -0
  68. package/dist/behaviors/panel.mjs +13 -0
  69. package/dist/behaviors/select.mjs +13 -0
  70. package/dist/behaviors/suggestions.mjs +13 -0
  71. package/dist/behaviors/tag-input.mjs +13 -0
  72. package/dist/behaviors/theme-switcher.mjs +13 -0
  73. package/dist/behaviors/toast.mjs +13 -0
  74. package/dist/behaviors/tree-select.mjs +13 -0
  75. package/dist/behaviors/upload.mjs +13 -0
  76. package/dist/components/charts.css +29 -0
  77. package/dist/components/material.css +1 -1
  78. package/dist/index.d.mts +1 -1
  79. package/dist/index.mjs +257 -1
  80. package/dist/react.mjs +242 -0
  81. package/dist/registry.json +3 -1
  82. package/dist/tokens/design.css +15 -9
  83. package/dist/tokens/dtcg.json +3594 -738
  84. package/dist/tokens/figma.variables.json +1705 -157
  85. package/dist/tokens/motion.css +51 -0
  86. package/dist/tokens/pixel.css +7 -0
  87. package/dist/tokens/tokens-studio.json +3007 -679
  88. package/dist/tokens/typography.css +33 -0
  89. package/dist/tokens.css +107 -10
  90. package/dist/ui.css +147 -16
  91. package/dist/vue.mjs +242 -0
  92. package/docs/spec/charts-scale-a11y.md +115 -0
  93. package/docs/spec/motion-typography.md +105 -0
  94. package/package.json +2 -1
@@ -299,6 +299,19 @@ var ICEN_LOCALE_ZH_CN = {
299
299
  "charts.noData": "\u6682\u65E0\u6570\u636E",
300
300
  "charts.resetZoom": "\u91CD\u7F6E\u7F29\u653E",
301
301
  "charts.sampled": "\u5DF2\u62BD\u6837 {p0}\u2192{p1} \u70B9",
302
+ "charts.a11y.keyboardHint": "\u65B9\u5411\u952E\u9010\u70B9\u6D4F\u89C8\uFF0CHome/End \u8DF3\u9996\u5C3E\uFF0CEsc \u91CD\u7F6E\u7F29\u653E",
303
+ "charts.a11y.max": "\u6700\u5927 {p0}\uFF08{p1}\uFF09",
304
+ "charts.a11y.min": "\u6700\u5C0F {p0}\uFF08{p1}\uFF09",
305
+ "charts.a11y.point": "{p0}\uFF1A{p1}\uFF0C\u7B2C {p2}/{p3} \u70B9",
306
+ "charts.a11y.pointSeries": "{p0} \xB7 {p1}\uFF1A{p2}\uFF0C\u7B2C {p3}/{p4} \u70B9",
307
+ "charts.a11y.range": "\u7C7B\u76EE {p0} \u81F3 {p1}",
308
+ "charts.a11y.scatterRange": "x \u8303\u56F4 {p0}\u2013{p1}\uFF0Cy \u8303\u56F4 {p2}\u2013{p3}",
309
+ "charts.a11y.seriesCount": "{p0} \u4E2A\u7CFB\u5217",
310
+ "charts.a11y.tableCaption": "{p0} \u6570\u636E\u8868",
311
+ "charts.a11y.trend": "\u9996\u7CFB\u5217\u8D8B\u52BF{p0}",
312
+ "charts.a11y.trendDown": "\u4E0B\u964D",
313
+ "charts.a11y.trendFlat": "\u6301\u5E73",
314
+ "charts.a11y.trendUp": "\u4E0A\u5347",
302
315
  "charts.type.area": "\u9762\u79EF\u56FE",
303
316
  "charts.type.donut": "\u73AF\u5F62\u56FE",
304
317
  "charts.type.gauge": "\u4EEA\u8868\u76D8",
@@ -2284,6 +2297,14 @@ function normalizeChartSpec(raw) {
2284
2297
  }
2285
2298
  if (s.zoom === "x" || s.zoom === "brush") spec.zoom = s.zoom;
2286
2299
  if (typeof s.loading === "boolean") spec.loading = s.loading;
2300
+ if (s.a11y && typeof s.a11y === "object") {
2301
+ const a = s.a11y;
2302
+ const a11y = {};
2303
+ if (typeof a.summary === "boolean") a11y.summary = a.summary;
2304
+ if (typeof a.table === "boolean") a11y.table = a.table;
2305
+ if (typeof a.keyboard === "boolean") a11y.keyboard = a.keyboard;
2306
+ if (Object.keys(a11y).length > 0) spec.a11y = a11y;
2307
+ }
2287
2308
  if (Array.isArray(s.marks)) {
2288
2309
  const marks = [];
2289
2310
  for (const raw2 of s.marks) {
@@ -2639,6 +2660,81 @@ function paintVBarChartMarks(root, view, spec, marks, formatValue, warned) {
2639
2660
  function chartAriaLabel(title, typeName) {
2640
2661
  return title ? `${typeName}\uFF1A${title}` : typeName;
2641
2662
  }
2663
+ function summarizeChart(view, type, fmt2) {
2664
+ const series = view.series && view.series.length > 0 ? view.series : [{ name: "", values: view.values ?? [] }];
2665
+ const parts = [];
2666
+ if (series.length > 1) parts.push(t("charts.a11y.seriesCount", { p0: series.length }));
2667
+ if (type === "scatter") {
2668
+ const pts = view.points ?? [];
2669
+ if (pts.length > 0) {
2670
+ const xs = pts.map((p) => p.x);
2671
+ const ys = pts.map((p) => p.y);
2672
+ parts.push(t("charts.a11y.scatterRange", { p0: fmt2(Math.min(...xs)), p1: fmt2(Math.max(...xs)), p2: fmt2(Math.min(...ys)), p3: fmt2(Math.max(...ys)) }));
2673
+ }
2674
+ return parts.join("\uFF1B");
2675
+ }
2676
+ const labels = view.labels ?? [];
2677
+ if (labels.length > 1) parts.push(t("charts.a11y.range", { p0: labels[0], p1: labels[labels.length - 1] }));
2678
+ let min = Infinity;
2679
+ let max = -Infinity;
2680
+ let minAt = "";
2681
+ let maxAt = "";
2682
+ for (const s of series) {
2683
+ s.values.forEach((v, i) => {
2684
+ if (v < min) {
2685
+ min = v;
2686
+ minAt = labels[i] ?? String(i + 1);
2687
+ }
2688
+ if (v > max) {
2689
+ max = v;
2690
+ maxAt = labels[i] ?? String(i + 1);
2691
+ }
2692
+ });
2693
+ }
2694
+ if (Number.isFinite(min) && Number.isFinite(max)) {
2695
+ parts.push(t("charts.a11y.min", { p0: fmt2(min), p1: minAt }));
2696
+ parts.push(t("charts.a11y.max", { p0: fmt2(max), p1: maxAt }));
2697
+ }
2698
+ const first = series[0]?.values ?? [];
2699
+ if (first.length > 1) {
2700
+ const d = first[first.length - 1] - first[0];
2701
+ const key = Math.abs(d) < 1e-9 ? "charts.a11y.trendFlat" : d > 0 ? "charts.a11y.trendUp" : "charts.a11y.trendDown";
2702
+ parts.push(t("charts.a11y.trend", { p0: t(key) }));
2703
+ }
2704
+ return parts.join("\uFF1B");
2705
+ }
2706
+ function buildChartTable(view, spec, type, fmt2) {
2707
+ const table = document.createElement("table");
2708
+ table.className = "icen-chart-table";
2709
+ const caption = document.createElement("caption");
2710
+ caption.textContent = t("charts.a11y.tableCaption", { p0: spec.title ?? String(type) });
2711
+ table.appendChild(caption);
2712
+ const addRow = (target, cells, head) => {
2713
+ const tr = document.createElement("tr");
2714
+ for (const c of cells) {
2715
+ const cell = document.createElement(head ? "th" : "td");
2716
+ if (head) cell.scope = target.tagName === "THEAD" ? "col" : "row";
2717
+ cell.textContent = c;
2718
+ tr.appendChild(cell);
2719
+ }
2720
+ target.appendChild(tr);
2721
+ };
2722
+ const thead = table.createTHead();
2723
+ const tbody = table.createTBody();
2724
+ if (type === "scatter") {
2725
+ addRow(thead, ["x", "y"], true);
2726
+ for (const p of view.points ?? []) addRow(tbody, [fmt2(p.x), fmt2(p.y)], false);
2727
+ return table;
2728
+ }
2729
+ const series = view.series && view.series.length > 0 ? view.series : [{ name: "", values: view.values ?? [] }];
2730
+ const labels = view.labels ?? [];
2731
+ addRow(thead, ["", ...series.map((s, i) => s.name || String(i + 1))], true);
2732
+ const n = Math.max(labels.length, ...series.map((s) => s.values.length));
2733
+ for (let i = 0; i < n; i++) {
2734
+ addRow(tbody, [labels[i] ?? String(i + 1), ...series.map((s) => fmt2(s.values[i] ?? 0))], false);
2735
+ }
2736
+ return table;
2737
+ }
2642
2738
  function svgDimsOf(svg) {
2643
2739
  const vb = (svg.getAttribute("viewBox") ?? "").split(/\s+/).map(Number);
2644
2740
  const w = Number.isFinite(vb[2]) && (vb[2] ?? 0) > 0 ? vb[2] : CHART_LINE_W;
@@ -2979,6 +3075,7 @@ function renderChart(el, raw) {
2979
3075
  if (!isZoomableType(t2) || fullLength() < 2) return;
2980
3076
  const plot = t2 === "vbar" ? root.querySelector(".icen-chart-vbar") : root.querySelector(".icen-chart-line svg");
2981
3077
  if (!plot) return;
3078
+ plot.style.touchAction = current2.zoom === "x" ? "pan-y" : "none";
2982
3079
  const on = (type, fn) => {
2983
3080
  plot.addEventListener(type, fn);
2984
3081
  };
@@ -3034,6 +3131,149 @@ function renderChart(el, raw) {
3034
3131
  render();
3035
3132
  });
3036
3133
  };
3134
+ const KB_TYPES = /* @__PURE__ */ new Set(["line", "area", "vbar", "hbar", "scatter"]);
3135
+ const kbCursor = { si: 0, i: 0, active: false };
3136
+ let liveRegion = null;
3137
+ let a11ySeq = 0;
3138
+ const a11yOf = () => ({
3139
+ summary: current2.a11y?.summary !== false,
3140
+ table: current2.a11y?.table === true,
3141
+ keyboard: current2.a11y?.keyboard !== false
3142
+ });
3143
+ const seriesViewOf = (view) => view.series && view.series.length > 0 ? view.series : [{ name: "", values: view.values ?? [] }];
3144
+ const kbPointCount = (view) => typeOf() === "scatter" ? view.points?.length ?? 0 : Math.max(0, ...seriesViewOf(view).map((s) => s.values.length), view.labels?.length ?? 0);
3145
+ const kbCursorEl = () => {
3146
+ const t2 = typeOf();
3147
+ const view = viewOf();
3148
+ const series = seriesViewOf(view);
3149
+ const n = kbPointCount(view);
3150
+ if (n < 1) return null;
3151
+ const si = clampNum(kbCursor.si, 0, Math.max(0, series.length - 1));
3152
+ const i = clampNum(kbCursor.i, 0, n - 1);
3153
+ if (t2 === "line" || t2 === "area") {
3154
+ const svg = root.querySelector(".icen-chart-line svg");
3155
+ if (!svg) return null;
3156
+ const dots = svg.querySelectorAll("circle");
3157
+ let base = 0;
3158
+ for (let k = 0; k < si; k++) base += Math.min(series[k].values.length, n);
3159
+ return dots.item(base + i) ?? null;
3160
+ }
3161
+ if (t2 === "scatter") return root.querySelector(".icen-chart-scatter svg")?.querySelectorAll("circle").item(i) ?? null;
3162
+ if (t2 === "vbar") return root.querySelectorAll(".icen-chart-vbar-bar").item(series.length > 1 ? i * series.length + si : i) ?? null;
3163
+ if (t2 === "hbar") return root.querySelectorAll(".icen-chart-hbar-bar").item(i) ?? null;
3164
+ return null;
3165
+ };
3166
+ const announceKb = (text) => {
3167
+ if (!liveRegion || !liveRegion.isConnected) {
3168
+ liveRegion = document.createElement("div");
3169
+ liveRegion.className = "icen-chart-live";
3170
+ liveRegion.setAttribute("aria-live", "polite");
3171
+ root.appendChild(liveRegion);
3172
+ }
3173
+ liveRegion.textContent = "";
3174
+ liveRegion.textContent = text;
3175
+ };
3176
+ const applyKbCursor = () => {
3177
+ for (const el2 of root.querySelectorAll(".icen-chart-kb-focus")) el2.classList.remove("icen-chart-kb-focus");
3178
+ if (!kbCursor.active) return;
3179
+ kbCursorEl()?.classList.add("icen-chart-kb-focus");
3180
+ };
3181
+ const announceCursor = () => {
3182
+ const view = viewOf();
3183
+ const series = seriesViewOf(view);
3184
+ const n = kbPointCount(view);
3185
+ if (n < 1) return;
3186
+ const si = clampNum(kbCursor.si, 0, Math.max(0, series.length - 1));
3187
+ const i = clampNum(kbCursor.i, 0, Math.max(0, n - 1));
3188
+ const fmt2 = chartFormatValue(current2.format);
3189
+ if (typeOf() === "scatter") {
3190
+ const p = view.points?.[i];
3191
+ if (!p) return;
3192
+ announceKb(t("charts.a11y.point", { p0: `x ${fmt2(p.x)}`, p1: `y ${fmt2(p.y)}`, p2: i + 1, p3: n }));
3193
+ return;
3194
+ }
3195
+ const label = view.labels?.[i] ?? String(i + 1);
3196
+ const value = series[si]?.values[i] ?? 0;
3197
+ if (series.length > 1) announceKb(t("charts.a11y.pointSeries", { p0: series[si].name || String(si + 1), p1: label, p2: fmt2(value), p3: i + 1, p4: n }));
3198
+ else announceKb(t("charts.a11y.point", { p0: label, p1: fmt2(value), p2: i + 1, p3: n }));
3199
+ };
3200
+ const onKbKeydown = (e) => {
3201
+ const conf = a11yOf();
3202
+ if (!conf.keyboard || !KB_TYPES.has(typeOf())) return;
3203
+ const g = root.querySelector("[data-icen-chart-kb]");
3204
+ if (!g || e.target !== g) return;
3205
+ if (e.key === "Escape") {
3206
+ if (zoomWindow) {
3207
+ zoomWindow = null;
3208
+ kbCursor.active = false;
3209
+ render();
3210
+ }
3211
+ return;
3212
+ }
3213
+ const view = viewOf();
3214
+ const series = seriesViewOf(view);
3215
+ const n = kbPointCount(view);
3216
+ if (n < 1) return;
3217
+ const siMax = Math.max(0, series.length - 1);
3218
+ let moved = true;
3219
+ switch (e.key) {
3220
+ case "ArrowRight":
3221
+ kbCursor.i = clampNum(kbCursor.i + 1, 0, n - 1);
3222
+ break;
3223
+ case "ArrowLeft":
3224
+ kbCursor.i = clampNum(kbCursor.i - 1, 0, n - 1);
3225
+ break;
3226
+ case "ArrowDown":
3227
+ kbCursor.si = clampNum(kbCursor.si + 1, 0, siMax);
3228
+ break;
3229
+ case "ArrowUp":
3230
+ kbCursor.si = clampNum(kbCursor.si - 1, 0, siMax);
3231
+ break;
3232
+ case "Home":
3233
+ kbCursor.i = 0;
3234
+ break;
3235
+ case "End":
3236
+ kbCursor.i = n - 1;
3237
+ break;
3238
+ default:
3239
+ moved = false;
3240
+ }
3241
+ if (!moved) return;
3242
+ e.preventDefault();
3243
+ kbCursor.active = true;
3244
+ applyKbCursor();
3245
+ announceCursor();
3246
+ };
3247
+ root.addEventListener("keydown", onKbKeydown);
3248
+ const applyChartA11yPlus = (view, spec, type, formatValue) => {
3249
+ const conf = a11yOf();
3250
+ const graphic = root.querySelector('[role="img"]');
3251
+ if (!graphic) return;
3252
+ const body = root.querySelector(".icen-chart-body") ?? graphic.parentElement ?? root;
3253
+ const summaryParts = [];
3254
+ if (conf.summary) summaryParts.push(summarizeChart(view, type, formatValue));
3255
+ if (conf.keyboard && KB_TYPES.has(type)) summaryParts.push(t("charts.a11y.keyboardHint"));
3256
+ const summaryText = summaryParts.filter(Boolean).join("\uFF1B");
3257
+ if (summaryText) {
3258
+ const p = document.createElement("p");
3259
+ p.className = "icen-chart-summary";
3260
+ p.id = `icen-chart-a11y-${++a11ySeq}`;
3261
+ p.textContent = summaryText;
3262
+ body.appendChild(p);
3263
+ graphic.setAttribute("aria-describedby", p.id);
3264
+ } else {
3265
+ graphic.removeAttribute("aria-describedby");
3266
+ }
3267
+ if (conf.keyboard && KB_TYPES.has(type)) {
3268
+ graphic.setAttribute("tabindex", "0");
3269
+ graphic.setAttribute("data-icen-chart-kb", "");
3270
+ } else {
3271
+ graphic.removeAttribute("tabindex");
3272
+ graphic.removeAttribute("data-icen-chart-kb");
3273
+ }
3274
+ if (conf.table) body.appendChild(buildChartTable(view, spec, type, formatValue));
3275
+ applyKbCursor();
3276
+ };
3037
3277
  const render = () => {
3038
3278
  if (!current2.type) current2 = { ...current2, type: inferChartType(current2) };
3039
3279
  const spec = current2;
@@ -3114,6 +3354,7 @@ function renderChart(el, raw) {
3114
3354
  }
3115
3355
  }
3116
3356
  if (loading) return;
3357
+ applyChartA11yPlus(view, spec, type, formatValue);
3117
3358
  paintChartMarks(root, view, spec, formatValue, warnedMarks);
3118
3359
  bindZoomGesture();
3119
3360
  };
@@ -3195,6 +3436,7 @@ function renderChart(el, raw) {
3195
3436
  releaseFluidWidth(root);
3196
3437
  hiddenLegendKeys.delete(root);
3197
3438
  zoomDragCleanup?.();
3439
+ root.removeEventListener("keydown", onKbKeydown);
3198
3440
  root.textContent = "";
3199
3441
  root.classList.remove("is-loading");
3200
3442
  unbindEvents();
@@ -413,6 +413,19 @@ var ICEN_LOCALE_ZH_CN = {
413
413
  "charts.noData": "\u6682\u65E0\u6570\u636E",
414
414
  "charts.resetZoom": "\u91CD\u7F6E\u7F29\u653E",
415
415
  "charts.sampled": "\u5DF2\u62BD\u6837 {p0}\u2192{p1} \u70B9",
416
+ "charts.a11y.keyboardHint": "\u65B9\u5411\u952E\u9010\u70B9\u6D4F\u89C8\uFF0CHome/End \u8DF3\u9996\u5C3E\uFF0CEsc \u91CD\u7F6E\u7F29\u653E",
417
+ "charts.a11y.max": "\u6700\u5927 {p0}\uFF08{p1}\uFF09",
418
+ "charts.a11y.min": "\u6700\u5C0F {p0}\uFF08{p1}\uFF09",
419
+ "charts.a11y.point": "{p0}\uFF1A{p1}\uFF0C\u7B2C {p2}/{p3} \u70B9",
420
+ "charts.a11y.pointSeries": "{p0} \xB7 {p1}\uFF1A{p2}\uFF0C\u7B2C {p3}/{p4} \u70B9",
421
+ "charts.a11y.range": "\u7C7B\u76EE {p0} \u81F3 {p1}",
422
+ "charts.a11y.scatterRange": "x \u8303\u56F4 {p0}\u2013{p1}\uFF0Cy \u8303\u56F4 {p2}\u2013{p3}",
423
+ "charts.a11y.seriesCount": "{p0} \u4E2A\u7CFB\u5217",
424
+ "charts.a11y.tableCaption": "{p0} \u6570\u636E\u8868",
425
+ "charts.a11y.trend": "\u9996\u7CFB\u5217\u8D8B\u52BF{p0}",
426
+ "charts.a11y.trendDown": "\u4E0B\u964D",
427
+ "charts.a11y.trendFlat": "\u6301\u5E73",
428
+ "charts.a11y.trendUp": "\u4E0A\u5347",
416
429
  "charts.type.area": "\u9762\u79EF\u56FE",
417
430
  "charts.type.donut": "\u73AF\u5F62\u56FE",
418
431
  "charts.type.gauge": "\u4EEA\u8868\u76D8",
@@ -405,6 +405,19 @@ var ICEN_LOCALE_ZH_CN = {
405
405
  "charts.noData": "\u6682\u65E0\u6570\u636E",
406
406
  "charts.resetZoom": "\u91CD\u7F6E\u7F29\u653E",
407
407
  "charts.sampled": "\u5DF2\u62BD\u6837 {p0}\u2192{p1} \u70B9",
408
+ "charts.a11y.keyboardHint": "\u65B9\u5411\u952E\u9010\u70B9\u6D4F\u89C8\uFF0CHome/End \u8DF3\u9996\u5C3E\uFF0CEsc \u91CD\u7F6E\u7F29\u653E",
409
+ "charts.a11y.max": "\u6700\u5927 {p0}\uFF08{p1}\uFF09",
410
+ "charts.a11y.min": "\u6700\u5C0F {p0}\uFF08{p1}\uFF09",
411
+ "charts.a11y.point": "{p0}\uFF1A{p1}\uFF0C\u7B2C {p2}/{p3} \u70B9",
412
+ "charts.a11y.pointSeries": "{p0} \xB7 {p1}\uFF1A{p2}\uFF0C\u7B2C {p3}/{p4} \u70B9",
413
+ "charts.a11y.range": "\u7C7B\u76EE {p0} \u81F3 {p1}",
414
+ "charts.a11y.scatterRange": "x \u8303\u56F4 {p0}\u2013{p1}\uFF0Cy \u8303\u56F4 {p2}\u2013{p3}",
415
+ "charts.a11y.seriesCount": "{p0} \u4E2A\u7CFB\u5217",
416
+ "charts.a11y.tableCaption": "{p0} \u6570\u636E\u8868",
417
+ "charts.a11y.trend": "\u9996\u7CFB\u5217\u8D8B\u52BF{p0}",
418
+ "charts.a11y.trendDown": "\u4E0B\u964D",
419
+ "charts.a11y.trendFlat": "\u6301\u5E73",
420
+ "charts.a11y.trendUp": "\u4E0A\u5347",
408
421
  "charts.type.area": "\u9762\u79EF\u56FE",
409
422
  "charts.type.donut": "\u73AF\u5F62\u56FE",
410
423
  "charts.type.gauge": "\u4EEA\u8868\u76D8",
@@ -204,6 +204,19 @@ var ICEN_LOCALE_ZH_CN = {
204
204
  "charts.noData": "\u6682\u65E0\u6570\u636E",
205
205
  "charts.resetZoom": "\u91CD\u7F6E\u7F29\u653E",
206
206
  "charts.sampled": "\u5DF2\u62BD\u6837 {p0}\u2192{p1} \u70B9",
207
+ "charts.a11y.keyboardHint": "\u65B9\u5411\u952E\u9010\u70B9\u6D4F\u89C8\uFF0CHome/End \u8DF3\u9996\u5C3E\uFF0CEsc \u91CD\u7F6E\u7F29\u653E",
208
+ "charts.a11y.max": "\u6700\u5927 {p0}\uFF08{p1}\uFF09",
209
+ "charts.a11y.min": "\u6700\u5C0F {p0}\uFF08{p1}\uFF09",
210
+ "charts.a11y.point": "{p0}\uFF1A{p1}\uFF0C\u7B2C {p2}/{p3} \u70B9",
211
+ "charts.a11y.pointSeries": "{p0} \xB7 {p1}\uFF1A{p2}\uFF0C\u7B2C {p3}/{p4} \u70B9",
212
+ "charts.a11y.range": "\u7C7B\u76EE {p0} \u81F3 {p1}",
213
+ "charts.a11y.scatterRange": "x \u8303\u56F4 {p0}\u2013{p1}\uFF0Cy \u8303\u56F4 {p2}\u2013{p3}",
214
+ "charts.a11y.seriesCount": "{p0} \u4E2A\u7CFB\u5217",
215
+ "charts.a11y.tableCaption": "{p0} \u6570\u636E\u8868",
216
+ "charts.a11y.trend": "\u9996\u7CFB\u5217\u8D8B\u52BF{p0}",
217
+ "charts.a11y.trendDown": "\u4E0B\u964D",
218
+ "charts.a11y.trendFlat": "\u6301\u5E73",
219
+ "charts.a11y.trendUp": "\u4E0A\u5347",
207
220
  "charts.type.area": "\u9762\u79EF\u56FE",
208
221
  "charts.type.donut": "\u73AF\u5F62\u56FE",
209
222
  "charts.type.gauge": "\u4EEA\u8868\u76D8",
@@ -204,6 +204,19 @@ var ICEN_LOCALE_ZH_CN = {
204
204
  "charts.noData": "\u6682\u65E0\u6570\u636E",
205
205
  "charts.resetZoom": "\u91CD\u7F6E\u7F29\u653E",
206
206
  "charts.sampled": "\u5DF2\u62BD\u6837 {p0}\u2192{p1} \u70B9",
207
+ "charts.a11y.keyboardHint": "\u65B9\u5411\u952E\u9010\u70B9\u6D4F\u89C8\uFF0CHome/End \u8DF3\u9996\u5C3E\uFF0CEsc \u91CD\u7F6E\u7F29\u653E",
208
+ "charts.a11y.max": "\u6700\u5927 {p0}\uFF08{p1}\uFF09",
209
+ "charts.a11y.min": "\u6700\u5C0F {p0}\uFF08{p1}\uFF09",
210
+ "charts.a11y.point": "{p0}\uFF1A{p1}\uFF0C\u7B2C {p2}/{p3} \u70B9",
211
+ "charts.a11y.pointSeries": "{p0} \xB7 {p1}\uFF1A{p2}\uFF0C\u7B2C {p3}/{p4} \u70B9",
212
+ "charts.a11y.range": "\u7C7B\u76EE {p0} \u81F3 {p1}",
213
+ "charts.a11y.scatterRange": "x \u8303\u56F4 {p0}\u2013{p1}\uFF0Cy \u8303\u56F4 {p2}\u2013{p3}",
214
+ "charts.a11y.seriesCount": "{p0} \u4E2A\u7CFB\u5217",
215
+ "charts.a11y.tableCaption": "{p0} \u6570\u636E\u8868",
216
+ "charts.a11y.trend": "\u9996\u7CFB\u5217\u8D8B\u52BF{p0}",
217
+ "charts.a11y.trendDown": "\u4E0B\u964D",
218
+ "charts.a11y.trendFlat": "\u6301\u5E73",
219
+ "charts.a11y.trendUp": "\u4E0A\u5347",
207
220
  "charts.type.area": "\u9762\u79EF\u56FE",
208
221
  "charts.type.donut": "\u73AF\u5F62\u56FE",
209
222
  "charts.type.gauge": "\u4EEA\u8868\u76D8",
@@ -489,6 +489,19 @@ var ICEN_LOCALE_ZH_CN = {
489
489
  "charts.noData": "\u6682\u65E0\u6570\u636E",
490
490
  "charts.resetZoom": "\u91CD\u7F6E\u7F29\u653E",
491
491
  "charts.sampled": "\u5DF2\u62BD\u6837 {p0}\u2192{p1} \u70B9",
492
+ "charts.a11y.keyboardHint": "\u65B9\u5411\u952E\u9010\u70B9\u6D4F\u89C8\uFF0CHome/End \u8DF3\u9996\u5C3E\uFF0CEsc \u91CD\u7F6E\u7F29\u653E",
493
+ "charts.a11y.max": "\u6700\u5927 {p0}\uFF08{p1}\uFF09",
494
+ "charts.a11y.min": "\u6700\u5C0F {p0}\uFF08{p1}\uFF09",
495
+ "charts.a11y.point": "{p0}\uFF1A{p1}\uFF0C\u7B2C {p2}/{p3} \u70B9",
496
+ "charts.a11y.pointSeries": "{p0} \xB7 {p1}\uFF1A{p2}\uFF0C\u7B2C {p3}/{p4} \u70B9",
497
+ "charts.a11y.range": "\u7C7B\u76EE {p0} \u81F3 {p1}",
498
+ "charts.a11y.scatterRange": "x \u8303\u56F4 {p0}\u2013{p1}\uFF0Cy \u8303\u56F4 {p2}\u2013{p3}",
499
+ "charts.a11y.seriesCount": "{p0} \u4E2A\u7CFB\u5217",
500
+ "charts.a11y.tableCaption": "{p0} \u6570\u636E\u8868",
501
+ "charts.a11y.trend": "\u9996\u7CFB\u5217\u8D8B\u52BF{p0}",
502
+ "charts.a11y.trendDown": "\u4E0B\u964D",
503
+ "charts.a11y.trendFlat": "\u6301\u5E73",
504
+ "charts.a11y.trendUp": "\u4E0A\u5347",
492
505
  "charts.type.area": "\u9762\u79EF\u56FE",
493
506
  "charts.type.donut": "\u73AF\u5F62\u56FE",
494
507
  "charts.type.gauge": "\u4EEA\u8868\u76D8",
@@ -465,6 +465,19 @@ var ICEN_LOCALE_ZH_CN = {
465
465
  "charts.noData": "\u6682\u65E0\u6570\u636E",
466
466
  "charts.resetZoom": "\u91CD\u7F6E\u7F29\u653E",
467
467
  "charts.sampled": "\u5DF2\u62BD\u6837 {p0}\u2192{p1} \u70B9",
468
+ "charts.a11y.keyboardHint": "\u65B9\u5411\u952E\u9010\u70B9\u6D4F\u89C8\uFF0CHome/End \u8DF3\u9996\u5C3E\uFF0CEsc \u91CD\u7F6E\u7F29\u653E",
469
+ "charts.a11y.max": "\u6700\u5927 {p0}\uFF08{p1}\uFF09",
470
+ "charts.a11y.min": "\u6700\u5C0F {p0}\uFF08{p1}\uFF09",
471
+ "charts.a11y.point": "{p0}\uFF1A{p1}\uFF0C\u7B2C {p2}/{p3} \u70B9",
472
+ "charts.a11y.pointSeries": "{p0} \xB7 {p1}\uFF1A{p2}\uFF0C\u7B2C {p3}/{p4} \u70B9",
473
+ "charts.a11y.range": "\u7C7B\u76EE {p0} \u81F3 {p1}",
474
+ "charts.a11y.scatterRange": "x \u8303\u56F4 {p0}\u2013{p1}\uFF0Cy \u8303\u56F4 {p2}\u2013{p3}",
475
+ "charts.a11y.seriesCount": "{p0} \u4E2A\u7CFB\u5217",
476
+ "charts.a11y.tableCaption": "{p0} \u6570\u636E\u8868",
477
+ "charts.a11y.trend": "\u9996\u7CFB\u5217\u8D8B\u52BF{p0}",
478
+ "charts.a11y.trendDown": "\u4E0B\u964D",
479
+ "charts.a11y.trendFlat": "\u6301\u5E73",
480
+ "charts.a11y.trendUp": "\u4E0A\u5347",
468
481
  "charts.type.area": "\u9762\u79EF\u56FE",
469
482
  "charts.type.donut": "\u73AF\u5F62\u56FE",
470
483
  "charts.type.gauge": "\u4EEA\u8868\u76D8",
@@ -204,6 +204,19 @@ var ICEN_LOCALE_ZH_CN = {
204
204
  "charts.noData": "\u6682\u65E0\u6570\u636E",
205
205
  "charts.resetZoom": "\u91CD\u7F6E\u7F29\u653E",
206
206
  "charts.sampled": "\u5DF2\u62BD\u6837 {p0}\u2192{p1} \u70B9",
207
+ "charts.a11y.keyboardHint": "\u65B9\u5411\u952E\u9010\u70B9\u6D4F\u89C8\uFF0CHome/End \u8DF3\u9996\u5C3E\uFF0CEsc \u91CD\u7F6E\u7F29\u653E",
208
+ "charts.a11y.max": "\u6700\u5927 {p0}\uFF08{p1}\uFF09",
209
+ "charts.a11y.min": "\u6700\u5C0F {p0}\uFF08{p1}\uFF09",
210
+ "charts.a11y.point": "{p0}\uFF1A{p1}\uFF0C\u7B2C {p2}/{p3} \u70B9",
211
+ "charts.a11y.pointSeries": "{p0} \xB7 {p1}\uFF1A{p2}\uFF0C\u7B2C {p3}/{p4} \u70B9",
212
+ "charts.a11y.range": "\u7C7B\u76EE {p0} \u81F3 {p1}",
213
+ "charts.a11y.scatterRange": "x \u8303\u56F4 {p0}\u2013{p1}\uFF0Cy \u8303\u56F4 {p2}\u2013{p3}",
214
+ "charts.a11y.seriesCount": "{p0} \u4E2A\u7CFB\u5217",
215
+ "charts.a11y.tableCaption": "{p0} \u6570\u636E\u8868",
216
+ "charts.a11y.trend": "\u9996\u7CFB\u5217\u8D8B\u52BF{p0}",
217
+ "charts.a11y.trendDown": "\u4E0B\u964D",
218
+ "charts.a11y.trendFlat": "\u6301\u5E73",
219
+ "charts.a11y.trendUp": "\u4E0A\u5347",
207
220
  "charts.type.area": "\u9762\u79EF\u56FE",
208
221
  "charts.type.donut": "\u73AF\u5F62\u56FE",
209
222
  "charts.type.gauge": "\u4EEA\u8868\u76D8",
@@ -193,6 +193,19 @@ interface IcenLocale {
193
193
  'charts.type.scatter': string;
194
194
  'charts.type.sparkline': string;
195
195
  'charts.seriesName': string;
196
+ 'charts.a11y.keyboardHint': string;
197
+ 'charts.a11y.max': string;
198
+ 'charts.a11y.min': string;
199
+ 'charts.a11y.point': string;
200
+ 'charts.a11y.pointSeries': string;
201
+ 'charts.a11y.range': string;
202
+ 'charts.a11y.scatterRange': string;
203
+ 'charts.a11y.seriesCount': string;
204
+ 'charts.a11y.tableCaption': string;
205
+ 'charts.a11y.trend': string;
206
+ 'charts.a11y.trendDown': string;
207
+ 'charts.a11y.trendFlat': string;
208
+ 'charts.a11y.trendUp': string;
196
209
  'charts.showLegend': string;
197
210
  'charts.value': string;
198
211
  'themeSwitcher.appearance': string;
@@ -204,6 +204,19 @@ var ICEN_LOCALE_ZH_CN = {
204
204
  "charts.noData": "\u6682\u65E0\u6570\u636E",
205
205
  "charts.resetZoom": "\u91CD\u7F6E\u7F29\u653E",
206
206
  "charts.sampled": "\u5DF2\u62BD\u6837 {p0}\u2192{p1} \u70B9",
207
+ "charts.a11y.keyboardHint": "\u65B9\u5411\u952E\u9010\u70B9\u6D4F\u89C8\uFF0CHome/End \u8DF3\u9996\u5C3E\uFF0CEsc \u91CD\u7F6E\u7F29\u653E",
208
+ "charts.a11y.max": "\u6700\u5927 {p0}\uFF08{p1}\uFF09",
209
+ "charts.a11y.min": "\u6700\u5C0F {p0}\uFF08{p1}\uFF09",
210
+ "charts.a11y.point": "{p0}\uFF1A{p1}\uFF0C\u7B2C {p2}/{p3} \u70B9",
211
+ "charts.a11y.pointSeries": "{p0} \xB7 {p1}\uFF1A{p2}\uFF0C\u7B2C {p3}/{p4} \u70B9",
212
+ "charts.a11y.range": "\u7C7B\u76EE {p0} \u81F3 {p1}",
213
+ "charts.a11y.scatterRange": "x \u8303\u56F4 {p0}\u2013{p1}\uFF0Cy \u8303\u56F4 {p2}\u2013{p3}",
214
+ "charts.a11y.seriesCount": "{p0} \u4E2A\u7CFB\u5217",
215
+ "charts.a11y.tableCaption": "{p0} \u6570\u636E\u8868",
216
+ "charts.a11y.trend": "\u9996\u7CFB\u5217\u8D8B\u52BF{p0}",
217
+ "charts.a11y.trendDown": "\u4E0B\u964D",
218
+ "charts.a11y.trendFlat": "\u6301\u5E73",
219
+ "charts.a11y.trendUp": "\u4E0A\u5347",
207
220
  "charts.type.area": "\u9762\u79EF\u56FE",
208
221
  "charts.type.donut": "\u73AF\u5F62\u56FE",
209
222
  "charts.type.gauge": "\u4EEA\u8868\u76D8",
@@ -1040,6 +1053,19 @@ var ICEN_LOCALE_EN_US = {
1040
1053
  "charts.noData": "No data",
1041
1054
  "charts.resetZoom": "Reset zoom",
1042
1055
  "charts.sampled": "Sampled \u2192 {p0} points",
1056
+ "charts.a11y.keyboardHint": "Arrow keys browse points, Home/End jump to ends, Esc resets zoom",
1057
+ "charts.a11y.max": "max {p0} ({p1})",
1058
+ "charts.a11y.min": "min {p0} ({p1})",
1059
+ "charts.a11y.point": "{p0}: {p1}, point {p2} of {p3}",
1060
+ "charts.a11y.pointSeries": "{p0} \xB7 {p1}: {p2}, point {p3} of {p4}",
1061
+ "charts.a11y.range": "categories {p0} to {p1}",
1062
+ "charts.a11y.scatterRange": "x {p0}\u2013{p1}, y {p2}\u2013{p3}",
1063
+ "charts.a11y.seriesCount": "{p0} series",
1064
+ "charts.a11y.tableCaption": "{p0} data table",
1065
+ "charts.a11y.trend": "first-series trend: {p0}",
1066
+ "charts.a11y.trendDown": "down",
1067
+ "charts.a11y.trendFlat": "flat",
1068
+ "charts.a11y.trendUp": "up",
1043
1069
  "charts.type.area": "Area chart",
1044
1070
  "charts.type.donut": "Donut chart",
1045
1071
  "charts.type.gauge": "Gauge",
@@ -204,6 +204,19 @@ var ICEN_LOCALE_ZH_CN = {
204
204
  "charts.noData": "\u6682\u65E0\u6570\u636E",
205
205
  "charts.resetZoom": "\u91CD\u7F6E\u7F29\u653E",
206
206
  "charts.sampled": "\u5DF2\u62BD\u6837 {p0}\u2192{p1} \u70B9",
207
+ "charts.a11y.keyboardHint": "\u65B9\u5411\u952E\u9010\u70B9\u6D4F\u89C8\uFF0CHome/End \u8DF3\u9996\u5C3E\uFF0CEsc \u91CD\u7F6E\u7F29\u653E",
208
+ "charts.a11y.max": "\u6700\u5927 {p0}\uFF08{p1}\uFF09",
209
+ "charts.a11y.min": "\u6700\u5C0F {p0}\uFF08{p1}\uFF09",
210
+ "charts.a11y.point": "{p0}\uFF1A{p1}\uFF0C\u7B2C {p2}/{p3} \u70B9",
211
+ "charts.a11y.pointSeries": "{p0} \xB7 {p1}\uFF1A{p2}\uFF0C\u7B2C {p3}/{p4} \u70B9",
212
+ "charts.a11y.range": "\u7C7B\u76EE {p0} \u81F3 {p1}",
213
+ "charts.a11y.scatterRange": "x \u8303\u56F4 {p0}\u2013{p1}\uFF0Cy \u8303\u56F4 {p2}\u2013{p3}",
214
+ "charts.a11y.seriesCount": "{p0} \u4E2A\u7CFB\u5217",
215
+ "charts.a11y.tableCaption": "{p0} \u6570\u636E\u8868",
216
+ "charts.a11y.trend": "\u9996\u7CFB\u5217\u8D8B\u52BF{p0}",
217
+ "charts.a11y.trendDown": "\u4E0B\u964D",
218
+ "charts.a11y.trendFlat": "\u6301\u5E73",
219
+ "charts.a11y.trendUp": "\u4E0A\u5347",
207
220
  "charts.type.area": "\u9762\u79EF\u56FE",
208
221
  "charts.type.donut": "\u73AF\u5F62\u56FE",
209
222
  "charts.type.gauge": "\u4EEA\u8868\u76D8",
@@ -204,6 +204,19 @@ var ICEN_LOCALE_ZH_CN = {
204
204
  "charts.noData": "\u6682\u65E0\u6570\u636E",
205
205
  "charts.resetZoom": "\u91CD\u7F6E\u7F29\u653E",
206
206
  "charts.sampled": "\u5DF2\u62BD\u6837 {p0}\u2192{p1} \u70B9",
207
+ "charts.a11y.keyboardHint": "\u65B9\u5411\u952E\u9010\u70B9\u6D4F\u89C8\uFF0CHome/End \u8DF3\u9996\u5C3E\uFF0CEsc \u91CD\u7F6E\u7F29\u653E",
208
+ "charts.a11y.max": "\u6700\u5927 {p0}\uFF08{p1}\uFF09",
209
+ "charts.a11y.min": "\u6700\u5C0F {p0}\uFF08{p1}\uFF09",
210
+ "charts.a11y.point": "{p0}\uFF1A{p1}\uFF0C\u7B2C {p2}/{p3} \u70B9",
211
+ "charts.a11y.pointSeries": "{p0} \xB7 {p1}\uFF1A{p2}\uFF0C\u7B2C {p3}/{p4} \u70B9",
212
+ "charts.a11y.range": "\u7C7B\u76EE {p0} \u81F3 {p1}",
213
+ "charts.a11y.scatterRange": "x \u8303\u56F4 {p0}\u2013{p1}\uFF0Cy \u8303\u56F4 {p2}\u2013{p3}",
214
+ "charts.a11y.seriesCount": "{p0} \u4E2A\u7CFB\u5217",
215
+ "charts.a11y.tableCaption": "{p0} \u6570\u636E\u8868",
216
+ "charts.a11y.trend": "\u9996\u7CFB\u5217\u8D8B\u52BF{p0}",
217
+ "charts.a11y.trendDown": "\u4E0B\u964D",
218
+ "charts.a11y.trendFlat": "\u6301\u5E73",
219
+ "charts.a11y.trendUp": "\u4E0A\u5347",
207
220
  "charts.type.area": "\u9762\u79EF\u56FE",
208
221
  "charts.type.donut": "\u73AF\u5F62\u56FE",
209
222
  "charts.type.gauge": "\u4EEA\u8868\u76D8",
@@ -305,6 +305,19 @@ var ICEN_LOCALE_ZH_CN = {
305
305
  "charts.noData": "\u6682\u65E0\u6570\u636E",
306
306
  "charts.resetZoom": "\u91CD\u7F6E\u7F29\u653E",
307
307
  "charts.sampled": "\u5DF2\u62BD\u6837 {p0}\u2192{p1} \u70B9",
308
+ "charts.a11y.keyboardHint": "\u65B9\u5411\u952E\u9010\u70B9\u6D4F\u89C8\uFF0CHome/End \u8DF3\u9996\u5C3E\uFF0CEsc \u91CD\u7F6E\u7F29\u653E",
309
+ "charts.a11y.max": "\u6700\u5927 {p0}\uFF08{p1}\uFF09",
310
+ "charts.a11y.min": "\u6700\u5C0F {p0}\uFF08{p1}\uFF09",
311
+ "charts.a11y.point": "{p0}\uFF1A{p1}\uFF0C\u7B2C {p2}/{p3} \u70B9",
312
+ "charts.a11y.pointSeries": "{p0} \xB7 {p1}\uFF1A{p2}\uFF0C\u7B2C {p3}/{p4} \u70B9",
313
+ "charts.a11y.range": "\u7C7B\u76EE {p0} \u81F3 {p1}",
314
+ "charts.a11y.scatterRange": "x \u8303\u56F4 {p0}\u2013{p1}\uFF0Cy \u8303\u56F4 {p2}\u2013{p3}",
315
+ "charts.a11y.seriesCount": "{p0} \u4E2A\u7CFB\u5217",
316
+ "charts.a11y.tableCaption": "{p0} \u6570\u636E\u8868",
317
+ "charts.a11y.trend": "\u9996\u7CFB\u5217\u8D8B\u52BF{p0}",
318
+ "charts.a11y.trendDown": "\u4E0B\u964D",
319
+ "charts.a11y.trendFlat": "\u6301\u5E73",
320
+ "charts.a11y.trendUp": "\u4E0A\u5347",
308
321
  "charts.type.area": "\u9762\u79EF\u56FE",
309
322
  "charts.type.donut": "\u73AF\u5F62\u56FE",
310
323
  "charts.type.gauge": "\u4EEA\u8868\u76D8",