enterprise-modules/grid-charts/dist/es6/charts/util/bisect.js
/**
 * Returns the insertion point for `x` in array to maintain sorted order.
 * The arguments `lo` and `hi` may be used to specify a subset of the array which should be considered;
 * by default the entire array is used. If `x` is already present in array, the insertion point will be before
 * (to the left of) any existing entries. The return value is suitable for use as the first argument to `splice`
 * assuming that array is already sorted. The returned insertion point `i` partitions the array into two halves
 * so that all `v < x` for `v` in `array.slice(lo, i)` for the left side and all `v >= x` for `v` in `array.slice(i, hi)`
 * for the right side.
 * @param list
 * @param x
 * @param comparator
 * @param lo
 * @param hi
 */
Returns the insertion point for `x` in array to maintain sorted order.
The arguments `lo` and `hi` may be used to specify a subset of the array which should be considered;
by default the entire array is used. If `x` is already present in array, the insertion point will be before
(to the left of) any existing entries. The return value is suitable for use as the first argument to `splice`
assuming that array is already sorted.
Returns the insertion point for ` x ` in array to maintain sorted order . The arguments ` lo ` and ` hi ` may be used to specify a subset of the array which should be considered ; by default the entire array is used . If ` x ` is already present in array the insertion point will be before ( to the left of ) any existing entries . The return value is suitable for use as the first argument to ` splice ` assuming that array is already sorted .
function bisectLeft(list, x, comparator, lo, hi) {
    if (lo === void 0) { lo = 0; }
    if (hi === void 0) { hi = list.length; }
    while (lo < hi) {
        var mid = (lo + hi) >>> 1;
        if (comparator(list[mid], x) < 0) { 
            lo = mid + 1;
        }
        else {
            hi = mid;
        }
    }
    return lo;
}
function bisectLeft ( list , x , comparator , lo , hi ) { if ( lo === void 0 ) { lo = 0 ; } if ( hi === void 0 ) { hi = list . length ; } while ( lo < hi ) { var mid = ( lo + hi ) >>> 1 ; if ( comparator ( list [ mid ] , x ) < 0 ) { lo = mid + 1 ; } else { hi = mid ; } } return lo ; }
Returns the insertion point for `x` in array to maintain sorted order.
Returns the insertion point for ` x ` in array to maintain sorted order .
// list[mid] < x