UNPKG

vscroll

Version:
38 lines 1.36 kB
import Insert from './insert'; import { BaseAdapterProcessFactory, AdapterProcess, ProcessStatus } from '../misc/index'; export default class Append extends BaseAdapterProcessFactory(AdapterProcess.append) { static run(scroller, { process, options }) { const { params } = Append.parseInput(scroller, options, false, process); if (!params) { return; } const shouldAppend = Append.doAppend(scroller, process, params); scroller.workflow.call({ process: Append.process, status: shouldAppend ? ProcessStatus.next : ProcessStatus.done }); } static doAppend(scroller, process, params) { const { bof, eof, increase, decrease } = params; const { buffer } = scroller; const prepend = process === AdapterProcess.prepend; const opposite = prepend ? !increase : decrease; let beforeIndex, afterIndex, items = params.items; if (prepend) { beforeIndex = (bof ? buffer.absMinIndex : buffer.minIndex) + (!buffer.size ? 1 : 0); items = [...items].reverse(); } else { afterIndex = (eof ? buffer.absMaxIndex : buffer.maxIndex) - (!buffer.size && !opposite ? 1 : 0); } return Insert.doInsert(scroller, { items, beforeIndex, afterIndex, decrease: opposite, virtualize: params.virtualize }); } } //# sourceMappingURL=append.js.map