export function getNewValue( value: number[], index: number, newValue: number, disableOrder?: boolean, ) { const newValues = [...value]; newValues[index] = newValue; if (!disableOrder) { for (let i = 0; i < newValues.length; i++) { if (newValues[i] > newValue && i < index) newValues[i] = newValue; if (newValues[i] < newValue && i > index) newValues[i] = newValue; } } return newValues; } export function findClosestIndex(value: number[], pointValue: number) { let closestIndex = 0; let closestDistance = 1; for (let i = 0; i < value.length; i++) { const distance = Math.abs(value[i] - pointValue); if (distance < closestDistance) { closestDistance = distance; closestIndex = i; } else if (distance === closestDistance && pointValue > value[i]) { closestIndex = i; } } return closestIndex; }