@antv/g2
Version:
the Grammar of Graphics in Javascript
27 lines (24 loc) • 835 B
text/typescript
import Element from '../../../geometry/element/';
import { getElements, getElementValue } from '../util';
import Highlight from './highlight';
/**
* Highlight color
* @ignore
*/
class HighlightColor extends Highlight {
protected setStateByElement(element: Element, enable: boolean) {
const view = this.context.view;
const colorAttr = element.geometry.getAttribute('color');
if (!colorAttr) {
return;
}
const scale = view.getScaleByField(colorAttr.getFields()[0]);
const value = getElementValue(element, scale.field);
const elements = getElements(view);
const highlightElements = elements.filter((el) => {
return getElementValue(el, scale.field) === value;
});
this.setHighlightBy(elements, (el) => highlightElements.includes(el), enable);
}
}
export default HighlightColor;