in src/visualComponent/svgComponent.ts [233:293]
private pointerMoveEvent(options: ISvgComponentRenderOptions): void {
const { data: { settings, variance } } = options;
const isSecondTooltipShown: boolean = variance
&& !isNaN(variance[1])
&& settings.secondTooltipVariance.show;
if (!settings.tooltipLabel.show
&& !settings.tooltipValues.show
&& !settings.tooltipVariance.show
&& !isSecondTooltipShown
) {
this.pointerLeaveHandler();
return;
}
const event: MouseEvent | TouchEvent = require("d3-selection").event;
event.preventDefault();
event.stopPropagation();
event.stopImmediatePropagation();
let offsetX: number = Number.MAX_VALUE;
let originalXPosition: number = Number.MAX_VALUE;
let originalYPosition: number = Number.MAX_VALUE;
switch (event.type) {
case "mousemove": {
originalXPosition = (event as MouseEvent).pageX;
originalYPosition = (event as MouseEvent).pageY;
offsetX = (event as MouseEvent).offsetX;
break;
}
case "touchmove": {
const touch: TouchEvent = event as TouchEvent;
if (touch && touch.touches && touch.touches[0]) {
originalXPosition = touch.touches[0].pageX;
originalYPosition = touch.touches[0].pageY;
const element: SVGElement = this.element.node() as SVGElement;
const xScaleViewport: number = this.getXScale(element);
offsetX = (originalXPosition - element.getBoundingClientRect().left) / xScaleViewport;
}
break;
}
}
this.renderDynamicComponentByPosition(
offsetX,
originalXPosition,
originalYPosition,
options,
);
}