UNPKG

react-virtualized

Version:

React components for efficiently rendering large, scrollable lists and tabular data

200 lines (198 loc) 4.09 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; /** * Binary Search Bounds * https://github.com/mikolalysenko/binary-search-bounds * Mikola Lysenko * * Inlined because of Content Security Policy issue caused by the use of `new Function(...)` syntax. * Issue reported here: https://github.com/mikolalysenko/binary-search-bounds/issues/5 **/ function _GEA(a, l, h, y) { var i = h + 1; while (l <= h) { var m = l + h >>> 1, x = a[m]; if (x >= y) { i = m; h = m - 1; } else { l = m + 1; } } return i; } function _GEP(a, l, h, y, c) { var i = h + 1; while (l <= h) { var m = l + h >>> 1, x = a[m]; if (c(x, y) >= 0) { i = m; h = m - 1; } else { l = m + 1; } } return i; } function dispatchBsearchGE(a, y, c, l, h) { if (typeof c === 'function') { return _GEP(a, l === void 0 ? 0 : l | 0, h === void 0 ? a.length - 1 : h | 0, y, c); } else { return _GEA(a, c === void 0 ? 0 : c | 0, l === void 0 ? a.length - 1 : l | 0, y); } } function _GTA(a, l, h, y) { var i = h + 1; while (l <= h) { var m = l + h >>> 1, x = a[m]; if (x > y) { i = m; h = m - 1; } else { l = m + 1; } } return i; } function _GTP(a, l, h, y, c) { var i = h + 1; while (l <= h) { var m = l + h >>> 1, x = a[m]; if (c(x, y) > 0) { i = m; h = m - 1; } else { l = m + 1; } } return i; } function dispatchBsearchGT(a, y, c, l, h) { if (typeof c === 'function') { return _GTP(a, l === void 0 ? 0 : l | 0, h === void 0 ? a.length - 1 : h | 0, y, c); } else { return _GTA(a, c === void 0 ? 0 : c | 0, l === void 0 ? a.length - 1 : l | 0, y); } } function _LTA(a, l, h, y) { var i = l - 1; while (l <= h) { var m = l + h >>> 1, x = a[m]; if (x < y) { i = m; l = m + 1; } else { h = m - 1; } } return i; } function _LTP(a, l, h, y, c) { var i = l - 1; while (l <= h) { var m = l + h >>> 1, x = a[m]; if (c(x, y) < 0) { i = m; l = m + 1; } else { h = m - 1; } } return i; } function dispatchBsearchLT(a, y, c, l, h) { if (typeof c === 'function') { return _LTP(a, l === void 0 ? 0 : l | 0, h === void 0 ? a.length - 1 : h | 0, y, c); } else { return _LTA(a, c === void 0 ? 0 : c | 0, l === void 0 ? a.length - 1 : l | 0, y); } } function _LEA(a, l, h, y) { var i = l - 1; while (l <= h) { var m = l + h >>> 1, x = a[m]; if (x <= y) { i = m; l = m + 1; } else { h = m - 1; } } return i; } function _LEP(a, l, h, y, c) { var i = l - 1; while (l <= h) { var m = l + h >>> 1, x = a[m]; if (c(x, y) <= 0) { i = m; l = m + 1; } else { h = m - 1; } } return i; } function dispatchBsearchLE(a, y, c, l, h) { if (typeof c === 'function') { return _LEP(a, l === void 0 ? 0 : l | 0, h === void 0 ? a.length - 1 : h | 0, y, c); } else { return _LEA(a, c === void 0 ? 0 : c | 0, l === void 0 ? a.length - 1 : l | 0, y); } } function _EQA(a, l, h, y) { l - 1; while (l <= h) { var m = l + h >>> 1, x = a[m]; if (x === y) { return m; } else if (x <= y) { l = m + 1; } else { h = m - 1; } } return -1; } function _EQP(a, l, h, y, c) { l - 1; while (l <= h) { var m = l + h >>> 1, x = a[m]; var p = c(x, y); if (p === 0) { return m; } else if (p <= 0) { l = m + 1; } else { h = m - 1; } } return -1; } function dispatchBsearchEQ(a, y, c, l, h) { if (typeof c === 'function') { return _EQP(a, l === void 0 ? 0 : l | 0, h === void 0 ? a.length - 1 : h | 0, y, c); } else { return _EQA(a, c === void 0 ? 0 : c | 0, l === void 0 ? a.length - 1 : l | 0, y); } } var _default = exports["default"] = { ge: dispatchBsearchGE, gt: dispatchBsearchGT, lt: dispatchBsearchLT, le: dispatchBsearchLE, eq: dispatchBsearchEQ };