| var _curry2 = |
| /*#__PURE__*/ |
| require("./_curry2"); |
| |
| var _reduce = |
| /*#__PURE__*/ |
| require("./_reduce"); |
| |
| var _xfBase = |
| /*#__PURE__*/ |
| require("./_xfBase"); |
| |
| var XDropLastWhile = |
| /*#__PURE__*/ |
| function () { |
| function XDropLastWhile(fn, xf) { |
| this.f = fn; |
| this.retained = []; |
| this.xf = xf; |
| } |
| |
| XDropLastWhile.prototype['@@transducer/init'] = _xfBase.init; |
| |
| XDropLastWhile.prototype['@@transducer/result'] = function (result) { |
| this.retained = null; |
| return this.xf['@@transducer/result'](result); |
| }; |
| |
| XDropLastWhile.prototype['@@transducer/step'] = function (result, input) { |
| return this.f(input) ? this.retain(result, input) : this.flush(result, input); |
| }; |
| |
| XDropLastWhile.prototype.flush = function (result, input) { |
| result = _reduce(this.xf['@@transducer/step'], result, this.retained); |
| this.retained = []; |
| return this.xf['@@transducer/step'](result, input); |
| }; |
| |
| XDropLastWhile.prototype.retain = function (result, input) { |
| this.retained.push(input); |
| return result; |
| }; |
| |
| return XDropLastWhile; |
| }(); |
| |
| var _xdropLastWhile = |
| /*#__PURE__*/ |
| _curry2(function _xdropLastWhile(fn, xf) { |
| return new XDropLastWhile(fn, xf); |
| }); |
| |
| module.exports = _xdropLastWhile; |