in src/Clients/Web/winjs/js/winjs.js [42235:42327]
function delivered(index) {
if (that._realizePass !== currentPass) {
return;
}
if (index >= firstInView && index <= lastInView) {
if (--inViewCounter === 0) {
appendItemsToDom(firstInView, lastInView);
removeGaps(firstInView, lastInView, begin, end);
if (that._firstLayoutPass) {
scheduleReadySignal(firstInView, lastInView, that._frontOffscreenJob, direction === "right" ? "left" : "right", true);
var entranceAnimation = Scheduler.schedulePromiseHigh(null, "WinJS.UI.ListView.entranceAnimation").then(function () {
if (that._listView._isZombie()) { return; }
that._listView._writeProfilerMark("entranceAnimation,StartTM");
var promise = that._listView._animateListEntrance(!that._firstEntranceAnimated);
that._firstEntranceAnimated = true;
return promise;
});
that._runningAnimations = Promise.join([that._runningAnimations, entranceAnimation]);
that._runningAnimations.done(function () {
that._listView._writeProfilerMark("entranceAnimation,StopTM");
if (that._realizePass === currentPass) {
that._runningAnimations = null;
entranceAnimationSignal.complete();
}
});
that._firstLayoutPass = false;
if (that._listView._isCurrentZoomView) {
Scheduler.requestDrain(that._onscreenJob.priority);
}
} else {
// during scrolling ready for onscreen items after front off screen items
scheduleReadySignal(firstInView, lastInView, that._frontOffscreenJob, direction);
entranceAnimationSignal.complete();
}
that._updateHeaders(that._listView._canvas, firstInView, lastInView + 1).done(function () {
viewportItemsRealized.complete();
});
}
} else if (index < firstInView) {
--leftOffscreenCount;
if (leftOffscreenCount % inView === 0) {
appendItemsToDom(begin, firstInView - 1);
}
if (!leftOffscreenCount) {
that._updateHeaders(that._listView._canvas, begin, firstInView).done(function () {
if (direction !== "right") {
frontItemsRealized.complete();
}
});
scheduleReadySignal(begin, firstInView - 1, direction !== "right" ? that._frontOffscreenJob : that._backOffscreenJob, "left");
}
} else if (index > lastInView) {
--rightOffscreenCount;
if (rightOffscreenCount % inView === 0) {
appendItemsToDom(lastInView + 1, end - 1);
}
if (!rightOffscreenCount) {
that._updateHeaders(that._listView._canvas, lastInView + 1, end).then(function () {
if (direction === "right") {
frontItemsRealized.complete();
}
});
scheduleReadySignal(lastInView + 1, end - 1, direction === "right" ? that._frontOffscreenJob : that._backOffscreenJob, "right");
}
}
counter--;
if (counter === 0) {
that._renderCompletePromise = Promise.join(renderCompletePromises).then(null, function (e) {
var error = Array.isArray(e) && e.some(function (item) { return item && !(item instanceof Error && item.name === "Canceled"); });
if (error) {
// rethrow
return Promise.wrapError(e);
}
});
(that._headerRenderPromises || Promise.wrap()).done(function () {
Scheduler.schedule(function VirtualizeContentsView_async_delivered() {
if (that._listView._isZombie()) {
workCompleteSignal.cancel();
} else {
workCompleteSignal.complete();
}
}, Math.min(that._onscreenJob.priority, that._backOffscreenJob.priority), null, "WinJS.UI.ListView._allItemsRealized");
});
}
}