MCPcopy Index your code
hub / github.com/apache/echarts / ariaVisual

Function ariaVisual

src/visual/aria.ts:48–277  ·  view source on GitHub ↗
(ecModel: GlobalModel, api: ExtensionAPI)

Source from the content-addressed store, hash-verified

46export const ariaVisualStageHandler = createSimpleOverallStageHandler2(ariaVisual);
47
48function ariaVisual(ecModel: GlobalModel, api: ExtensionAPI) {
49 const ariaModel: Model<AriaOption> = ecModel.getModel('aria');
50
51 // See "area enabled" detection code in `GlobalModel.ts`.
52 if (!ariaModel.get('enabled')) {
53 return;
54 }
55
56 const decalPaletteScope = innerGlobal(ecModel).scope || (innerGlobal(ecModel).scope = {});
57
58 const defaultOption = zrUtil.clone(DEFAULT_OPTION);
59 zrUtil.merge(defaultOption.label, ecModel.getLocaleModel().get('aria'), false);
60 zrUtil.merge(ariaModel.option, defaultOption, false);
61
62 setDecal();
63 setLabel();
64
65 function setDecal() {
66 const decalModel = ariaModel.getModel('decal');
67
68 const useDecal = decalModel.get('show');
69 if (useDecal) {
70
71 // Each type of series use one scope.
72 // Pie and funnel are using different scopes.
73 const paletteScopeGroupByType = zrUtil.createHashMap<object, SeriesModel['type']>();
74 ecModel.eachSeries((seriesModel: SeriesModel) => {
75 if (!seriesModel.isColorBySeries()) {
76 innerSeries(seriesModel).scope = paletteScopeGroupByType.get(seriesModel.type)
77 || paletteScopeGroupByType.set(seriesModel.type, {});
78 }
79 });
80
81 ecModel.eachSeries((seriesModel: SeriesModel) => {
82 if (zrUtil.isFunction(seriesModel.enableAriaDecal)) {
83 // Let series define how to use decal palette on data
84 seriesModel.enableAriaDecal();
85 return;
86 }
87
88 const data = seriesModel.getData();
89
90 if (!seriesModel.isColorBySeries()) {
91 const dataAll = seriesModel.getRawData();
92 const idxMap: Dictionary<number> = {};
93 const decalScope = innerSeries(seriesModel).scope;
94
95 data.each(function (idx) {
96 const rawIdx = data.getRawIndex(idx);
97 idxMap[rawIdx] = idx;
98 });
99
100 const dataCount = dataAll.count();
101 dataAll.each(rawIdx => {
102 const idx = idxMap[rawIdx];
103 const name = dataAll.getName(rawIdx) || (rawIdx + '');
104 const paletteDecal = getDecalFromPalette(
105 seriesModel.ecModel,

Callers

nothing calls this directly

Calls 6

setDecalFunction · 0.85
setLabelFunction · 0.85
getLocaleModelMethod · 0.80
getModelMethod · 0.45
getMethod · 0.45
cloneMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…