UNPKG

vscroll

Version:
61 lines 2.22 kB
import { __extends } from "tslib"; import { BaseProcessFactory, CommonProcess, ProcessStatus } from './misc/index'; import { Direction } from '../inputs/index'; var Clip = /** @class */ (function (_super) { __extends(Clip, _super); function Clip() { return _super !== null && _super.apply(this, arguments) || this; } Clip.run = function (scroller) { var workflow = scroller.workflow; Clip.doClip(scroller); workflow.call({ process: Clip.process, status: ProcessStatus.next }); }; Clip.doClip = function (scroller) { var _a; var buffer = scroller.buffer, viewport = scroller.viewport, state = scroller.state, logger = scroller.logger; var size = (_a = {}, _a[Direction.backward] = 0, _a[Direction.forward] = 0, _a); logger.stat("before clip (".concat(++state.clip.callCount, ")")); var itemsToRemove = buffer.items.filter(function (item) { if (!item.toRemove) { return false; } item.hide(); size[item.removeDirection] += item.size; return true; }); if (itemsToRemove.length) { if (size[Direction.backward]) { viewport.paddings.byDirection(Direction.backward).size += size[Direction.backward]; } if (size[Direction.forward]) { viewport.paddings.byDirection(Direction.forward).size += size[Direction.forward]; } if (scroller.settings.onBeforeClip) { scroller.settings.onBeforeClip(itemsToRemove.map(function (item) { return item.get(); })); } } buffer.clip(); logger.log(function () { var list = itemsToRemove.map(function (_a) { var $index = _a.$index; return $index; }); return list.length ? [ "clipped ".concat(list.length, " item(s) from Buffer") + (size.backward ? ", +".concat(size.backward, " fwd px") : '') + (size.forward ? ", +".concat(size.forward, " bwd px") : '') + ", range: [".concat(list[0], "..").concat(list[list.length - 1], "]") ] : 'clipped 0 items from Buffer'; }); logger.stat('after clip'); }; return Clip; }(BaseProcessFactory(CommonProcess.clip))); export default Clip; //# sourceMappingURL=clip.js.map