vscroll
Version:
Virtual scroll engine
45 lines • 1.75 kB
JavaScript
import { __extends, __read, __spreadArray } from "tslib";
import Insert from './insert';
import { BaseAdapterProcessFactory, AdapterProcess, ProcessStatus } from '../misc/index';
var Append = /** @class */ (function (_super) {
__extends(Append, _super);
function Append() {
return _super !== null && _super.apply(this, arguments) || this;
}
Append.run = function (scroller, _a) {
var process = _a.process, options = _a.options;
var params = Append.parseInput(scroller, options, false, process).params;
if (!params) {
return;
}
var shouldAppend = Append.doAppend(scroller, process, params);
scroller.workflow.call({
process: Append.process,
status: shouldAppend ? ProcessStatus.next : ProcessStatus.done
});
};
Append.doAppend = function (scroller, process, params) {
var bof = params.bof, eof = params.eof, increase = params.increase, decrease = params.decrease;
var buffer = scroller.buffer;
var prepend = process === AdapterProcess.prepend;
var opposite = prepend ? !increase : decrease;
var beforeIndex, afterIndex, items = params.items;
if (prepend) {
beforeIndex = (bof ? buffer.absMinIndex : buffer.minIndex) + (!buffer.size ? 1 : 0);
items = __spreadArray([], __read(items), false).reverse();
}
else {
afterIndex = (eof ? buffer.absMaxIndex : buffer.maxIndex) - (!buffer.size && !opposite ? 1 : 0);
}
return Insert.doInsert(scroller, {
items: items,
beforeIndex: beforeIndex,
afterIndex: afterIndex,
decrease: opposite,
virtualize: params.virtualize
});
};
return Append;
}(BaseAdapterProcessFactory(AdapterProcess.append)));
export default Append;
//# sourceMappingURL=append.js.map