UNPKG

aurelia-bootstrap

Version:
66 lines (50 loc) 1.94 kB
/* */ define(['exports', './repeat-utilities'], function (exports, _repeatUtilities) { 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.NumberRepeatStrategy = undefined; var NumberRepeatStrategy = exports.NumberRepeatStrategy = function () { function NumberRepeatStrategy() { } NumberRepeatStrategy.prototype.getCollectionObserver = function getCollectionObserver() { return null; }; NumberRepeatStrategy.prototype.instanceChanged = function instanceChanged(repeat, value) { var _this = this; var removePromise = repeat.removeAllViews(true, !repeat.viewsRequireLifecycle); if (removePromise instanceof Promise) { removePromise.then(function () { return _this._standardProcessItems(repeat, value); }); return; } this._standardProcessItems(repeat, value); }; NumberRepeatStrategy.prototype._standardProcessItems = function _standardProcessItems(repeat, value) { var childrenLength = repeat.viewCount(); var i = void 0; var ii = void 0; var overrideContext = void 0; var viewsToRemove = void 0; value = Math.floor(value); viewsToRemove = childrenLength - value; if (viewsToRemove > 0) { if (viewsToRemove > childrenLength) { viewsToRemove = childrenLength; } for (i = 0, ii = viewsToRemove; i < ii; ++i) { repeat.removeView(childrenLength - (i + 1), true, !repeat.viewsRequireLifecycle); } return; } for (i = childrenLength, ii = value; i < ii; ++i) { overrideContext = (0, _repeatUtilities.createFullOverrideContext)(repeat, i, i, ii); repeat.addView(overrideContext.bindingContext, overrideContext); } (0, _repeatUtilities.updateOverrideContexts)(repeat.views(), 0); }; return NumberRepeatStrategy; }(); });