UNPKG

vscroll

Version:
40 lines 1.24 kB
import Update from './update'; import { BaseAdapterProcessFactory, AdapterProcess, ProcessStatus } from '../misc/index'; export default class Replace extends BaseAdapterProcessFactory(AdapterProcess.replace) { static run(scroller, options) { const { params } = Replace.parseInput(scroller, options); if (!params) { return; } const shouldReplace = Replace.doReplace(scroller, params); scroller.workflow.call({ process: Replace.process, status: shouldReplace ? ProcessStatus.next : ProcessStatus.done, }); } static doReplace(scroller, params) { const toRemove = scroller.buffer.items .filter(item => params.predicate(item)) .map(item => item.$index); if (!toRemove.length) { scroller.logger.log('no items to be replaced'); return false; } let injected = false; const updateOptions = { predicate: ({ $index }) => { if (!toRemove.includes($index)) { return true; } if (!injected) { injected = true; return params.items; } return false; }, fixRight: params.fixRight }; return Update.doUpdate(scroller, updateOptions); } } //# sourceMappingURL=replace.js.map