UNPKG

vscroll

Version:
64 lines 2.54 kB
import { __extends } from "tslib"; import { BaseProcessFactory, CommonProcess, ProcessStatus } from './misc/index'; var Render = /** @class */ (function (_super) { __extends(Render, _super); function Render() { return _super !== null && _super.apply(this, arguments) || this; } Render.run = function (scroller) { var workflow = scroller.workflow, state = scroller.state, viewport = scroller.viewport, routines = scroller.routines; var cycle = state.cycle, render = state.render, scroll = state.scroll, fetch = state.fetch; scroller.logger.stat('before new items render'); if (scroll.positionBeforeAsync === null) { scroll.positionBeforeAsync = viewport.scrollPosition; } render.cancel = routines.render(function () { render.cancel = null; if (Render.doRender(scroller)) { workflow.call({ process: Render.process, status: render.noSize ? ProcessStatus.done : ProcessStatus.next, payload: { process: cycle.initiator } }); } else { workflow.call({ process: Render.process, status: ProcessStatus.error, payload: { error: 'Can not associate item with element' } }); } }, { items: fetch.items.map(function (i) { return i.get(); }) }); }; Render.doRender = function (scroller) { var state = scroller.state, viewport = scroller.viewport, buffer = scroller.buffer, logger = scroller.logger; var fetch = state.fetch, render = state.render; render.positionBefore = viewport.scrollPosition; if (!fetch.isCheck) { render.sizeBefore = viewport.getScrollableSize(); if (!fetch.items.every(function (item) { return Render.processElement(scroller, item); })) { return false; } } buffer.checkDefaultSize(); render.sizeAfter = viewport.getScrollableSize(); logger.stat('after new items render'); logger.log(function () { return (render.noSize ? 'viewport size has not been changed' : void 0); }); return true; }; Render.processElement = function (scroller, item) { var viewport = scroller.viewport, buffer = scroller.buffer; var element = viewport.findItemElementById(item.nodeId); if (!element) { return false; } item.element = element; item.makeVisible(); item.setSize(buffer.getSizeByIndex(item.$index)); buffer.cacheItem(item); return true; }; return Render; }(BaseProcessFactory(CommonProcess.render))); export default Render; //# sourceMappingURL=render.js.map