| var _curry2 = |
| /*#__PURE__*/ |
| require("./internal/_curry2"); |
| |
| var _dispatchable = |
| /*#__PURE__*/ |
| require("./internal/_dispatchable"); |
| |
| var _xtakeWhile = |
| /*#__PURE__*/ |
| require("./internal/_xtakeWhile"); |
| |
| var slice = |
| /*#__PURE__*/ |
| require("./slice"); |
| /** |
| * Returns a new list containing the first `n` elements of a given list, |
| * passing each value to the supplied predicate function, and terminating when |
| * the predicate function returns `false`. Excludes the element that caused the |
| * predicate function to fail. The predicate function is passed one argument: |
| * *(value)*. |
| * |
| * Dispatches to the `takeWhile` method of the second argument, if present. |
| * |
| * Acts as a transducer if a transformer is given in list position. |
| * |
| * @func |
| * @memberOf R |
| * @since v0.1.0 |
| * @category List |
| * @sig (a -> Boolean) -> [a] -> [a] |
| * @sig (a -> Boolean) -> String -> String |
| * @param {Function} fn The function called per iteration. |
| * @param {Array} xs The collection to iterate over. |
| * @return {Array} A new array. |
| * @see R.dropWhile, R.transduce, R.addIndex |
| * @example |
| * |
| * const isNotFour = x => x !== 4; |
| * |
| * R.takeWhile(isNotFour, [1, 2, 3, 4, 3, 2, 1]); //=> [1, 2, 3] |
| * |
| * R.takeWhile(x => x !== 'd' , 'Ramda'); //=> 'Ram' |
| */ |
| |
| |
| var takeWhile = |
| /*#__PURE__*/ |
| _curry2( |
| /*#__PURE__*/ |
| _dispatchable(['takeWhile'], _xtakeWhile, function takeWhile(fn, xs) { |
| var idx = 0; |
| var len = xs.length; |
| |
| while (idx < len && fn(xs[idx])) { |
| idx += 1; |
| } |
| |
| return slice(0, idx, xs); |
| })); |
| |
| module.exports = takeWhile; |