MCPcopy
hub / github.com/apache/echarts / updateData

Method updateData

src/chart/helper/EffectSymbol.ts:164–242  ·  view source on GitHub ↗

* Update symbol properties

(data: SeriesData, idx: number)

Source from the content-addressed store, hash-verified

162 * Update symbol properties
163 */
164 updateData(data: SeriesData, idx: number) {
165 const seriesModel = data.hostModel;
166
167 (this.childAt(0) as SymbolClz).updateData(data, idx);
168
169 const rippleGroup = this.childAt(1);
170 const itemModel = data.getItemModel<SymbolDrawItemModelOption>(idx);
171 const symbolType = data.getItemVisual(idx, 'symbol');
172 const symbolSize = normalizeSymbolSize(data.getItemVisual(idx, 'symbolSize'));
173
174 const symbolStyle = data.getItemVisual(idx, 'style');
175 const color = symbolStyle && symbolStyle.fill;
176 const emphasisModel = itemModel.getModel('emphasis');
177
178 rippleGroup.setScale(symbolSize);
179
180 rippleGroup.traverse(function (ripplePath: Path) {
181 ripplePath.setStyle('fill', color);
182 });
183
184 const symbolOffset = normalizeSymbolOffset(data.getItemVisual(idx, 'symbolOffset'), symbolSize);
185 if (symbolOffset) {
186 rippleGroup.x = symbolOffset[0];
187 rippleGroup.y = symbolOffset[1];
188 }
189
190 const symbolRotate = data.getItemVisual(idx, 'symbolRotate');
191 rippleGroup.rotation = (symbolRotate || 0) * Math.PI / 180 || 0;
192
193 const effectCfg: RippleEffectCfg = {};
194
195 effectCfg.showEffectOn = seriesModel.get('showEffectOn');
196 effectCfg.rippleScale = itemModel.get(['rippleEffect', 'scale']);
197 effectCfg.brushType = itemModel.get(['rippleEffect', 'brushType']);
198 effectCfg.period = itemModel.get(['rippleEffect', 'period']) * 1000;
199 effectCfg.effectOffset = idx / data.count();
200 effectCfg.z = seriesModel.getShallow('z') || 0;
201 effectCfg.zlevel = seriesModel.getShallow('zlevel') || 0;
202 effectCfg.symbolType = symbolType;
203 effectCfg.color = color;
204 effectCfg.rippleEffectColor = itemModel.get(['rippleEffect', 'color']);
205 effectCfg.rippleNumber = itemModel.get(['rippleEffect', 'number']);
206
207 if (effectCfg.showEffectOn === 'render') {
208 this._effectCfg
209 ? this.updateEffectAnimation(effectCfg)
210 : this.startEffectAnimation(effectCfg);
211
212 this._effectCfg = effectCfg;
213 }
214 else {
215 // Not keep old effect config
216 this._effectCfg = null;
217
218 this.stopEffectAnimation();
219
220 (this as ECElement).onHoverStateChange = (toState) => {
221 if (toState === 'emphasis') {

Callers 1

constructorMethod · 0.95

Calls 14

updateEffectAnimationMethod · 0.95
startEffectAnimationMethod · 0.95
stopEffectAnimationMethod · 0.95
normalizeSymbolSizeFunction · 0.90
normalizeSymbolOffsetFunction · 0.90
toggleHoverEmphasisFunction · 0.90
getItemModelMethod · 0.80
setStyleMethod · 0.80
getShallowMethod · 0.80
updateDataMethod · 0.65
countMethod · 0.65
getItemVisualMethod · 0.45

Tested by

no test coverage detected