(
fixedAxis: Axis2D | SingleAxis,
fixedCoord: number,
floatCoord: number,
radius: number
)
| 58 | * @returns updated floatCoord. |
| 59 | */ |
| 60 | export function fixJitter( |
| 61 | fixedAxis: Axis2D | SingleAxis, |
| 62 | fixedCoord: number, |
| 63 | floatCoord: number, |
| 64 | radius: number |
| 65 | ): number { |
| 66 | if (fixedAxis instanceof Axis2D) { |
| 67 | const scaleType = fixedAxis.scale.type; |
| 68 | if (scaleType !== 'ordinal') { |
| 69 | return floatCoord; |
| 70 | } |
| 71 | } |
| 72 | const axisModel = fixedAxis.model as AxisBaseModel; |
| 73 | const jitter = axisModel.get('jitter'); |
| 74 | if (!(jitter > 0)) { |
| 75 | return floatCoord; |
| 76 | } |
| 77 | const jitterOverlap = axisModel.get('jitterOverlap'); |
| 78 | const jitterMargin = axisModel.get('jitterMargin') || 0; |
| 79 | // Get band width to limit jitter range |
| 80 | const bandWidth = isOrdinalScale(fixedAxis.scale) |
| 81 | ? calcBandWidth(fixedAxis).w |
| 82 | : null; |
| 83 | if (jitterOverlap) { |
| 84 | return fixJitterIgnoreOverlaps(floatCoord, jitter, bandWidth, radius); |
| 85 | } |
| 86 | return fixJitterAvoidOverlaps(fixedAxis, fixedCoord, floatCoord, radius, jitter, jitterMargin); |
| 87 | } |
| 88 | |
| 89 | function fixJitterIgnoreOverlaps( |
| 90 | floatCoord: number, |
no test coverage detected
searching dependent graphs…