From f9063186d6a020e52ecc82048dd2599bcb34d294 Mon Sep 17 00:00:00 2001 From: EisenbergEffect Date: Sat, 3 Mar 2018 15:15:34 -0800 Subject: [PATCH] chore(all): prepare release 1.0.0-beta.3.3.0 --- bower.json | 2 +- dist/amd/array-virtual-repeat-strategy.js | 2 +- dist/amd/null-virtual-repeat-strategy.js | 51 ++++ dist/amd/template-strategy.js | 8 +- dist/amd/virtual-repeat-strategy-locator.js | 5 +- dist/amd/virtual-repeat.js | 94 +++--- dist/aurelia-ui-virtualization.d.ts | 24 +- dist/aurelia-ui-virtualization.js | 138 +++++---- .../commonjs/array-virtual-repeat-strategy.js | 2 +- dist/commonjs/null-virtual-repeat-strategy.js | 31 ++ dist/commonjs/template-strategy.js | 8 +- .../virtual-repeat-strategy-locator.js | 5 + dist/commonjs/virtual-repeat.js | 94 +++--- dist/es2015/array-virtual-repeat-strategy.js | 2 +- dist/es2015/null-virtual-repeat-strategy.js | 8 + dist/es2015/template-strategy.js | 8 +- .../es2015/virtual-repeat-strategy-locator.js | 2 + dist/es2015/virtual-repeat.js | 94 +++--- .../array-virtual-repeat-strategy.js | 2 +- .../null-virtual-repeat-strategy.js | 24 ++ dist/native-modules/template-strategy.js | 8 +- .../virtual-repeat-strategy-locator.js | 4 + dist/native-modules/virtual-repeat.js | 94 +++--- dist/system/array-virtual-repeat-strategy.js | 2 +- dist/system/null-virtual-repeat-strategy.js | 59 ++++ dist/system/template-strategy.js | 8 +- .../system/virtual-repeat-strategy-locator.js | 9 +- dist/system/virtual-repeat.js | 94 +++--- dist/temp/aurelia-ui-virtualization.js | 278 ++++++++++-------- doc/CHANGELOG.md | 10 + doc/api.json | 2 +- package.json | 2 +- 32 files changed, 781 insertions(+), 393 deletions(-) create mode 100644 dist/amd/null-virtual-repeat-strategy.js create mode 100644 dist/commonjs/null-virtual-repeat-strategy.js create mode 100644 dist/es2015/null-virtual-repeat-strategy.js create mode 100644 dist/native-modules/null-virtual-repeat-strategy.js create mode 100644 dist/system/null-virtual-repeat-strategy.js diff --git a/bower.json b/bower.json index cc7ee75..cea2abd 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "aurelia-ui-virtualization", - "version": "1.0.0-beta.3.2.0", + "version": "1.0.0-beta.3.3.0", "description": "A plugin that provides a virtualized repeater and other virtualization services.", "keywords": [ "aurelia", diff --git a/dist/amd/array-virtual-repeat-strategy.js b/dist/amd/array-virtual-repeat-strategy.js index 2b18933..56813c1 100644 --- a/dist/amd/array-virtual-repeat-strategy.js +++ b/dist/amd/array-virtual-repeat-strategy.js @@ -84,7 +84,7 @@ define(['exports', 'aurelia-templating-resources', './utilities'], function (exp repeat.updateBindings(view); } - var minLength = Math.min(repeat._viewsLength, items.length); + var minLength = Math.min(repeat._viewsLength, itemsLength); for (var _i = viewsLength; _i < minLength; _i++) { var overrideContext = (0, _aureliaTemplatingResources.createFullOverrideContext)(repeat, items[_i], _i, itemsLength); repeat.addView(overrideContext.bindingContext, overrideContext); diff --git a/dist/amd/null-virtual-repeat-strategy.js b/dist/amd/null-virtual-repeat-strategy.js new file mode 100644 index 0000000..307192f --- /dev/null +++ b/dist/amd/null-virtual-repeat-strategy.js @@ -0,0 +1,51 @@ +define(['exports', 'aurelia-templating-resources'], function (exports, _aureliaTemplatingResources) { + 'use strict'; + + Object.defineProperty(exports, "__esModule", { + value: true + }); + exports.NullVirtualRepeatStrategy = undefined; + + + + function _possibleConstructorReturn(self, call) { + if (!self) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + + return call && (typeof call === "object" || typeof call === "function") ? call : self; + } + + function _inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); + } + + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + enumerable: false, + writable: true, + configurable: true + } + }); + if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; + } + + var NullVirtualRepeatStrategy = exports.NullVirtualRepeatStrategy = function (_NullRepeatStrategy) { + _inherits(NullVirtualRepeatStrategy, _NullRepeatStrategy); + + function NullVirtualRepeatStrategy() { + + + return _possibleConstructorReturn(this, _NullRepeatStrategy.apply(this, arguments)); + } + + NullVirtualRepeatStrategy.prototype.instanceChanged = function instanceChanged(repeat) { + _NullRepeatStrategy.prototype.instanceChanged.call(this, repeat); + repeat._resetCalculation(); + }; + + return NullVirtualRepeatStrategy; + }(_aureliaTemplatingResources.NullRepeatStrategy); +}); \ No newline at end of file diff --git a/dist/amd/template-strategy.js b/dist/amd/template-strategy.js index d77b1da..d1b1d28 100644 --- a/dist/amd/template-strategy.js +++ b/dist/amd/template-strategy.js @@ -64,7 +64,7 @@ define(['exports', 'aurelia-dependency-injection', 'aurelia-pal', 'aurelia-templ }; TableStrategy.prototype.createTopBufferElement = function createTopBufferElement(element) { - var elementName = element.parentNode.localName === 'ul' ? 'li' : 'div'; + var elementName = /^[uo]l$/.test(element.parentNode.localName) ? 'li' : 'div'; var buffer = _aureliaPal.DOM.createElement(elementName); var tableElement = element.parentNode.parentNode; tableElement.parentNode.insertBefore(buffer, tableElement); @@ -73,7 +73,7 @@ define(['exports', 'aurelia-dependency-injection', 'aurelia-pal', 'aurelia-templ }; TableStrategy.prototype.createBottomBufferElement = function createBottomBufferElement(element) { - var elementName = element.parentNode.localName === 'ul' ? 'li' : 'div'; + var elementName = /^[uo]l$/.test(element.parentNode.localName) ? 'li' : 'div'; var buffer = _aureliaPal.DOM.createElement(elementName); var tableElement = element.parentNode.parentNode; tableElement.parentNode.insertBefore(buffer, tableElement.nextSibling); @@ -137,14 +137,14 @@ define(['exports', 'aurelia-dependency-injection', 'aurelia-pal', 'aurelia-templ }; DefaultTemplateStrategy.prototype.createTopBufferElement = function createTopBufferElement(element) { - var elementName = element.parentNode.localName === 'ul' ? 'li' : 'div'; + var elementName = /^[uo]l$/.test(element.parentNode.localName) ? 'li' : 'div'; var buffer = _aureliaPal.DOM.createElement(elementName); element.parentNode.insertBefore(buffer, element); return buffer; }; DefaultTemplateStrategy.prototype.createBottomBufferElement = function createBottomBufferElement(element) { - var elementName = element.parentNode.localName === 'ul' ? 'li' : 'div'; + var elementName = /^[uo]l$/.test(element.parentNode.localName) ? 'li' : 'div'; var buffer = _aureliaPal.DOM.createElement(elementName); element.parentNode.insertBefore(buffer, element.nextSibling); return buffer; diff --git a/dist/amd/virtual-repeat-strategy-locator.js b/dist/amd/virtual-repeat-strategy-locator.js index f14f489..7097c1f 100644 --- a/dist/amd/virtual-repeat-strategy-locator.js +++ b/dist/amd/virtual-repeat-strategy-locator.js @@ -1,4 +1,4 @@ -define(['exports', 'aurelia-templating-resources', './array-virtual-repeat-strategy'], function (exports, _aureliaTemplatingResources, _arrayVirtualRepeatStrategy) { +define(['exports', 'aurelia-templating-resources', './array-virtual-repeat-strategy', './null-virtual-repeat-strategy'], function (exports, _aureliaTemplatingResources, _arrayVirtualRepeatStrategy, _nullVirtualRepeatStrategy) { 'use strict'; Object.defineProperty(exports, "__esModule", { @@ -43,6 +43,9 @@ define(['exports', 'aurelia-templating-resources', './array-virtual-repeat-strat _this.matchers = []; _this.strategies = []; + _this.addStrategy(function (items) { + return items === null || items === undefined; + }, new _nullVirtualRepeatStrategy.NullVirtualRepeatStrategy()); _this.addStrategy(function (items) { return items instanceof Array; }, new _arrayVirtualRepeatStrategy.ArrayVirtualRepeatStrategy()); diff --git a/dist/amd/virtual-repeat.js b/dist/amd/virtual-repeat.js index eb636b8..8e73cc3 100644 --- a/dist/amd/virtual-repeat.js +++ b/dist/amd/virtual-repeat.js @@ -172,20 +172,9 @@ define(['exports', 'aurelia-dependency-injection', 'aurelia-binding', 'aurelia-t VirtualRepeat.prototype.detached = function detached() { this.scrollContainer.removeEventListener('scroll', this.scrollListener); - this._first = 0; - this._previousFirst = 0; - this._viewsLength = 0; - this._lastRebind = 0; - this._topBufferHeight = 0; - this._bottomBufferHeight = 0; - this._scrollingDown = false; - this._scrollingUp = false; - this._switchedDirection = false; + this._resetCalculation(); this._isAttached = false; - this._ticking = false; - this._hasCalculatedSizes = false; this.templateStrategy.removeBufferElements(this.element, this.topBuffer, this.bottomBuffer); - this.isLastIndex = false; this.scrollContainer = null; this.scrollContainerHeight = null; this.distanceToTop = null; @@ -210,40 +199,47 @@ define(['exports', 'aurelia-dependency-injection', 'aurelia-binding', 'aurelia-t var previousLastViewIndex = this._getIndexOfLastView(); var items = this.items; + var shouldCalculateSize = !!items; this.strategy = this.strategyLocator.getStrategy(items); - if (items.length > 0 && this.viewCount() === 0) { - this.strategy.createFirstItem(this); - } - if (this._itemsLength >= items.length) { - this._skipNextScrollHandle = true; - reducingItems = true; + if (shouldCalculateSize) { + if (items.length > 0 && this.viewCount() === 0) { + this.strategy.createFirstItem(this); + } + + if (this._itemsLength >= items.length) { + this._skipNextScrollHandle = true; + reducingItems = true; + } + this._checkFixedHeightContainer(); + this._calcInitialHeights(items.length); } - this._checkFixedHeightContainer(); - this._calcInitialHeights(items.length); if (!this.isOneTime && !this._observeInnerCollection()) { this._observeCollection(); } this.strategy.instanceChanged(this, items, this._first); - this._lastRebind = this._first; - if (reducingItems && previousLastViewIndex > this.items.length - 1) { - if (this.scrollContainer.tagName === 'TBODY') { - var realScrollContainer = this.scrollContainer.parentNode.parentNode; - realScrollContainer.scrollTop = realScrollContainer.scrollTop + this.viewCount() * this.itemHeight; - } else { - this.scrollContainer.scrollTop = this.scrollContainer.scrollTop + this.viewCount() * this.itemHeight; + if (shouldCalculateSize) { + this._lastRebind = this._first; + + if (reducingItems && previousLastViewIndex > this.items.length - 1) { + if (this.scrollContainer.tagName === 'TBODY') { + var realScrollContainer = this.scrollContainer.parentNode.parentNode; + realScrollContainer.scrollTop = realScrollContainer.scrollTop + this.viewCount() * this.itemHeight; + } else { + this.scrollContainer.scrollTop = this.scrollContainer.scrollTop + this.viewCount() * this.itemHeight; + } } - } - if (!reducingItems) { - this._previousFirst = this._first; - this._scrollingDown = true; - this._scrollingUp = false; + if (!reducingItems) { + this._previousFirst = this._first; + this._scrollingDown = true; + this._scrollingUp = false; - this.isLastIndex = this._getIndexOfLastView() >= this.items.length - 1; - } + this.isLastIndex = this._getIndexOfLastView() >= this.items.length - 1; + } - this._handleScroll(); + this._handleScroll(); + } }; VirtualRepeat.prototype.unbind = function unbind() { @@ -277,6 +273,24 @@ define(['exports', 'aurelia-dependency-injection', 'aurelia-binding', 'aurelia-t } }; + VirtualRepeat.prototype._resetCalculation = function _resetCalculation() { + this._first = 0; + this._previousFirst = 0; + this._viewsLength = 0; + this._lastRebind = 0; + this._topBufferHeight = 0; + this._bottomBufferHeight = 0; + this._scrollingDown = false; + this._scrollingUp = false; + this._switchedDirection = false; + this._ticking = false; + this._hasCalculatedSizes = false; + this._isAtTop = true; + this.isLastIndex = false; + this.elementsInView = 0; + this._adjustBufferHeights(); + }; + VirtualRepeat.prototype._onScroll = function _onScroll() { var _this4 = this; @@ -300,6 +314,9 @@ define(['exports', 'aurelia-dependency-injection', 'aurelia-binding', 'aurelia-t this._skipNextScrollHandle = false; return; } + if (!this.items) { + return; + } var itemHeight = this.itemHeight; var scrollTop = this._fixedHeightContainer ? this.scrollContainer.scrollTop : pageYOffset - this.distanceToTop; this._first = Math.floor(scrollTop / itemHeight); @@ -510,7 +527,12 @@ define(['exports', 'aurelia-dependency-injection', 'aurelia-binding', 'aurelia-t VirtualRepeat.prototype._calcInitialHeights = function _calcInitialHeights(itemsLength) { var _this7 = this; - if (this._viewsLength > 0 && this._itemsLength === itemsLength || this._viewsLength > 0 && itemsLength < 0) { + var isSameLength = this._viewsLength > 0 && this._itemsLength === itemsLength; + if (isSameLength) { + return; + } + if (itemsLength < 1) { + this._resetCalculation(); return; } this._hasCalculatedSizes = true; diff --git a/dist/aurelia-ui-virtualization.d.ts b/dist/aurelia-ui-virtualization.d.ts index 05caae4..9cc0a46 100644 --- a/dist/aurelia-ui-virtualization.d.ts +++ b/dist/aurelia-ui-virtualization.d.ts @@ -1,14 +1,5 @@ import { - customAttribute, - View, - BoundViewFactory, - ViewSlot, - ViewResources, - TargetInstruction, - bindable, - templateController -} from 'aurelia-templating'; -import { + NullRepeatStrategy, updateOverrideContext, ArrayRepeatStrategy, createFullOverrideContext, @@ -20,6 +11,16 @@ import { updateOneTimeBinding, viewsRequireLifecycle } from 'aurelia-templating-resources'; +import { + customAttribute, + View, + BoundViewFactory, + ViewSlot, + ViewResources, + TargetInstruction, + bindable, + templateController +} from 'aurelia-templating'; import { inject, Container @@ -41,6 +42,9 @@ export declare interface TemplateStrategy { getLastView(bottomBuffer: Element): Element; getTopBufferDistance(topBuffer: Element): number; } +export declare class NullVirtualRepeatStrategy extends NullRepeatStrategy { + instanceChanged(repeat?: any): any; +} export declare class DomHelper { getElementDistanceToTopOfDocument(element: Element): number; hasOverflowScroll(element: Element): boolean; diff --git a/dist/aurelia-ui-virtualization.js b/dist/aurelia-ui-virtualization.js index e470b72..deaf89b 100644 --- a/dist/aurelia-ui-virtualization.js +++ b/dist/aurelia-ui-virtualization.js @@ -1,9 +1,16 @@ +import {NullRepeatStrategy,updateOverrideContext,ArrayRepeatStrategy,createFullOverrideContext,RepeatStrategyLocator,AbstractRepeater,getItemsSourceExpression,isOneTime,unwrapExpression,updateOneTimeBinding,viewsRequireLifecycle} from 'aurelia-templating-resources'; import {customAttribute,View,BoundViewFactory,ViewSlot,ViewResources,TargetInstruction,bindable,templateController} from 'aurelia-templating'; -import {updateOverrideContext,ArrayRepeatStrategy,createFullOverrideContext,RepeatStrategyLocator,AbstractRepeater,getItemsSourceExpression,isOneTime,unwrapExpression,updateOneTimeBinding,viewsRequireLifecycle} from 'aurelia-templating-resources'; import {inject,Container} from 'aurelia-dependency-injection'; import {DOM} from 'aurelia-pal'; import {ObserverLocator} from 'aurelia-binding'; +export class NullVirtualRepeatStrategy extends NullRepeatStrategy { + instanceChanged(repeat) { + super.instanceChanged(repeat); + repeat._resetCalculation(); + } +} + export class DomHelper { getElementDistanceToTopOfDocument(element: Element): number { let box = element.getBoundingClientRect(); @@ -158,7 +165,7 @@ export class ArrayVirtualRepeatStrategy extends ArrayRepeatStrategy { repeat.updateBindings(view); } // add new views - let minLength = Math.min(repeat._viewsLength, items.length); + let minLength = Math.min(repeat._viewsLength, itemsLength); for (let i = viewsLength; i < minLength; i++) { let overrideContext = createFullOverrideContext(repeat, items[i], i, itemsLength); repeat.addView(overrideContext.bindingContext, overrideContext); @@ -440,7 +447,7 @@ export class TableStrategy { } createTopBufferElement(element: Element): Element { - const elementName = element.parentNode.localName === 'ul' ? 'li' : 'div'; + const elementName = /^[uo]l$/.test(element.parentNode.localName) ? 'li' : 'div'; const buffer = DOM.createElement(elementName); const tableElement = element.parentNode.parentNode; tableElement.parentNode.insertBefore(buffer, tableElement); @@ -449,7 +456,7 @@ export class TableStrategy { } createBottomBufferElement(element: Element): Element { - const elementName = element.parentNode.localName === 'ul' ? 'li' : 'div'; + const elementName = /^[uo]l$/.test(element.parentNode.localName) ? 'li' : 'div'; const buffer = DOM.createElement(elementName); const tableElement = element.parentNode.parentNode; tableElement.parentNode.insertBefore(buffer, tableElement.nextSibling); @@ -507,14 +514,14 @@ export class DefaultTemplateStrategy { } createTopBufferElement(element: Element): Element { - const elementName = element.parentNode.localName === 'ul' ? 'li' : 'div'; + const elementName = /^[uo]l$/.test(element.parentNode.localName) ? 'li' : 'div'; const buffer = DOM.createElement(elementName); element.parentNode.insertBefore(buffer, element); return buffer; } createBottomBufferElement(element: Element): Element { - const elementName = element.parentNode.localName === 'ul' ? 'li' : 'div'; + const elementName = /^[uo]l$/.test(element.parentNode.localName) ? 'li' : 'div'; const buffer = DOM.createElement(elementName); element.parentNode.insertBefore(buffer, element.nextSibling); return buffer; @@ -544,6 +551,7 @@ export class VirtualRepeatStrategyLocator extends RepeatStrategyLocator { this.matchers = []; this.strategies = []; + this.addStrategy(items => items === null || items === undefined, new NullVirtualRepeatStrategy()); this.addStrategy(items => items instanceof Array, new ArrayVirtualRepeatStrategy()); } } @@ -644,20 +652,9 @@ export class VirtualRepeat extends AbstractRepeater { detached(): void { this.scrollContainer.removeEventListener('scroll', this.scrollListener); - this._first = 0; - this._previousFirst = 0; - this._viewsLength = 0; - this._lastRebind = 0; - this._topBufferHeight = 0; - this._bottomBufferHeight = 0; - this._scrollingDown = false; - this._scrollingUp = false; - this._switchedDirection = false; + this._resetCalculation(); this._isAttached = false; - this._ticking = false; - this._hasCalculatedSizes = false; this.templateStrategy.removeBufferElements(this.element, this.topBuffer, this.bottomBuffer); - this.isLastIndex = false; this.scrollContainer = null; this.scrollContainerHeight = null; this.distanceToTop = null; @@ -682,49 +679,56 @@ export class VirtualRepeat extends AbstractRepeater { let previousLastViewIndex = this._getIndexOfLastView(); let items = this.items; + let shouldCalculateSize = !!items; this.strategy = this.strategyLocator.getStrategy(items); - if (items.length > 0 && this.viewCount() === 0) { - this.strategy.createFirstItem(this); - } - // Skip scroll handling if we are decreasing item list - // Otherwise if expanding list, call the handle scroll below - if (this._itemsLength >= items.length) { - //Scroll handle is redundant in this case since the instanceChanged will re-evaluate orderings - // Also, when items are reduced, we're not having to move any bindings, just a straight rebind of the items in the list - this._skipNextScrollHandle = true; - reducingItems = true; + + if (shouldCalculateSize) { + if (items.length > 0 && this.viewCount() === 0) { + this.strategy.createFirstItem(this); + } + // Skip scroll handling if we are decreasing item list + // Otherwise if expanding list, call the handle scroll below + if (this._itemsLength >= items.length) { + //Scroll handle is redundant in this case since the instanceChanged will re-evaluate orderings + // Also, when items are reduced, we're not having to move any bindings, just a straight rebind of the items in the list + this._skipNextScrollHandle = true; + reducingItems = true; + } + this._checkFixedHeightContainer(); + this._calcInitialHeights(items.length); } - this._checkFixedHeightContainer(); - this._calcInitialHeights(items.length); if (!this.isOneTime && !this._observeInnerCollection()) { this._observeCollection(); } this.strategy.instanceChanged(this, items, this._first); - this._lastRebind = this._first; //Reset rebinding - - if (reducingItems && previousLastViewIndex > this.items.length - 1) { - //Do we need to set scrolltop so that we appear at the bottom of the list to match scrolling as far as we could? - //We only want to execute this line if we're reducing such that it brings us to the bottom of the new list - //Make sure we handle the special case of tables - if (this.scrollContainer.tagName === 'TBODY') { - let realScrollContainer = this.scrollContainer.parentNode.parentNode; //tbody > table > container - realScrollContainer.scrollTop = realScrollContainer.scrollTop + (this.viewCount() * this.itemHeight); - } else { - this.scrollContainer.scrollTop = this.scrollContainer.scrollTop + (this.viewCount() * this.itemHeight); + + if (shouldCalculateSize) { + this._lastRebind = this._first; //Reset rebinding + + if (reducingItems && previousLastViewIndex > this.items.length - 1) { + //Do we need to set scrolltop so that we appear at the bottom of the list to match scrolling as far as we could? + //We only want to execute this line if we're reducing such that it brings us to the bottom of the new list + //Make sure we handle the special case of tables + if (this.scrollContainer.tagName === 'TBODY') { + let realScrollContainer = this.scrollContainer.parentNode.parentNode; //tbody > table > container + realScrollContainer.scrollTop = realScrollContainer.scrollTop + (this.viewCount() * this.itemHeight); + } else { + this.scrollContainer.scrollTop = this.scrollContainer.scrollTop + (this.viewCount() * this.itemHeight); + } + } + if (!reducingItems) { + // If we're expanding our items, then we need to reset our previous first for the next go around of scroll handling + this._previousFirst = this._first; + this._scrollingDown = true; //Simulating the down scroll event to load up data appropriately + this._scrollingUp = false; + + //Make sure we fix any state (we could have been at the last index before, but this doesn't get set until too late for scrolling) + this.isLastIndex = this._getIndexOfLastView() >= this.items.length - 1; } - } - if (!reducingItems) { - // If we're expanding our items, then we need to reset our previous first for the next go around of scroll handling - this._previousFirst = this._first; - this._scrollingDown = true; //Simulating the down scroll event to load up data appropriately - this._scrollingUp = false; - - //Make sure we fix any state (we could have been at the last index before, but this doesn't get set until too late for scrolling) - this.isLastIndex = this._getIndexOfLastView() >= this.items.length - 1; - } - //Need to readjust the scroll position to "move" us back to the appropriate position, since moving the views will shift our view port's percieved location - this._handleScroll(); + //Need to readjust the scroll position to "move" us back to the appropriate position, since moving the views will shift our view port's percieved location + this._handleScroll(); + } } unbind(): void { @@ -760,6 +764,24 @@ export class VirtualRepeat extends AbstractRepeater { } } + _resetCalculation(): void { + this._first = 0; + this._previousFirst = 0; + this._viewsLength = 0; + this._lastRebind = 0; + this._topBufferHeight = 0; + this._bottomBufferHeight = 0; + this._scrollingDown = false; + this._scrollingUp = false; + this._switchedDirection = false; + this._ticking = false; + this._hasCalculatedSizes = false; + this._isAtTop = true; + this.isLastIndex = false; + this.elementsInView = 0; + this._adjustBufferHeights(); + } + _onScroll(): void { if (!this._ticking && !this._handlingMutations) { requestAnimationFrame(() => this._handleScroll()); @@ -779,6 +801,9 @@ export class VirtualRepeat extends AbstractRepeater { this._skipNextScrollHandle = false; return; } + if (!this.items) { + return; + } let itemHeight = this.itemHeight; let scrollTop = this._fixedHeightContainer ? this.scrollContainer.scrollTop : pageYOffset - this.distanceToTop; this._first = Math.floor(scrollTop / itemHeight); @@ -977,7 +1002,12 @@ export class VirtualRepeat extends AbstractRepeater { } _calcInitialHeights(itemsLength: number): void { - if (this._viewsLength > 0 && this._itemsLength === itemsLength || this._viewsLength > 0 && itemsLength < 0) { + const isSameLength = this._viewsLength > 0 && this._itemsLength === itemsLength; + if (isSameLength) { + return; + } + if (itemsLength < 1) { + this._resetCalculation(); return; } this._hasCalculatedSizes = true; diff --git a/dist/commonjs/array-virtual-repeat-strategy.js b/dist/commonjs/array-virtual-repeat-strategy.js index 075b6d5..038645f 100644 --- a/dist/commonjs/array-virtual-repeat-strategy.js +++ b/dist/commonjs/array-virtual-repeat-strategy.js @@ -67,7 +67,7 @@ var ArrayVirtualRepeatStrategy = exports.ArrayVirtualRepeatStrategy = function ( repeat.updateBindings(view); } - var minLength = Math.min(repeat._viewsLength, items.length); + var minLength = Math.min(repeat._viewsLength, itemsLength); for (var _i = viewsLength; _i < minLength; _i++) { var overrideContext = (0, _aureliaTemplatingResources.createFullOverrideContext)(repeat, items[_i], _i, itemsLength); repeat.addView(overrideContext.bindingContext, overrideContext); diff --git a/dist/commonjs/null-virtual-repeat-strategy.js b/dist/commonjs/null-virtual-repeat-strategy.js new file mode 100644 index 0000000..075b91e --- /dev/null +++ b/dist/commonjs/null-virtual-repeat-strategy.js @@ -0,0 +1,31 @@ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.NullVirtualRepeatStrategy = undefined; + +var _aureliaTemplatingResources = require('aurelia-templating-resources'); + + + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var NullVirtualRepeatStrategy = exports.NullVirtualRepeatStrategy = function (_NullRepeatStrategy) { + _inherits(NullVirtualRepeatStrategy, _NullRepeatStrategy); + + function NullVirtualRepeatStrategy() { + + + return _possibleConstructorReturn(this, _NullRepeatStrategy.apply(this, arguments)); + } + + NullVirtualRepeatStrategy.prototype.instanceChanged = function instanceChanged(repeat) { + _NullRepeatStrategy.prototype.instanceChanged.call(this, repeat); + repeat._resetCalculation(); + }; + + return NullVirtualRepeatStrategy; +}(_aureliaTemplatingResources.NullRepeatStrategy); \ No newline at end of file diff --git a/dist/commonjs/template-strategy.js b/dist/commonjs/template-strategy.js index 33cb683..d2f28d1 100644 --- a/dist/commonjs/template-strategy.js +++ b/dist/commonjs/template-strategy.js @@ -73,7 +73,7 @@ var TableStrategy = exports.TableStrategy = (_dec2 = (0, _aureliaDependencyInjec }; TableStrategy.prototype.createTopBufferElement = function createTopBufferElement(element) { - var elementName = element.parentNode.localName === 'ul' ? 'li' : 'div'; + var elementName = /^[uo]l$/.test(element.parentNode.localName) ? 'li' : 'div'; var buffer = _aureliaPal.DOM.createElement(elementName); var tableElement = element.parentNode.parentNode; tableElement.parentNode.insertBefore(buffer, tableElement); @@ -82,7 +82,7 @@ var TableStrategy = exports.TableStrategy = (_dec2 = (0, _aureliaDependencyInjec }; TableStrategy.prototype.createBottomBufferElement = function createBottomBufferElement(element) { - var elementName = element.parentNode.localName === 'ul' ? 'li' : 'div'; + var elementName = /^[uo]l$/.test(element.parentNode.localName) ? 'li' : 'div'; var buffer = _aureliaPal.DOM.createElement(elementName); var tableElement = element.parentNode.parentNode; tableElement.parentNode.insertBefore(buffer, tableElement.nextSibling); @@ -146,14 +146,14 @@ var DefaultTemplateStrategy = exports.DefaultTemplateStrategy = function () { }; DefaultTemplateStrategy.prototype.createTopBufferElement = function createTopBufferElement(element) { - var elementName = element.parentNode.localName === 'ul' ? 'li' : 'div'; + var elementName = /^[uo]l$/.test(element.parentNode.localName) ? 'li' : 'div'; var buffer = _aureliaPal.DOM.createElement(elementName); element.parentNode.insertBefore(buffer, element); return buffer; }; DefaultTemplateStrategy.prototype.createBottomBufferElement = function createBottomBufferElement(element) { - var elementName = element.parentNode.localName === 'ul' ? 'li' : 'div'; + var elementName = /^[uo]l$/.test(element.parentNode.localName) ? 'li' : 'div'; var buffer = _aureliaPal.DOM.createElement(elementName); element.parentNode.insertBefore(buffer, element.nextSibling); return buffer; diff --git a/dist/commonjs/virtual-repeat-strategy-locator.js b/dist/commonjs/virtual-repeat-strategy-locator.js index 7b02328..b2ba862 100644 --- a/dist/commonjs/virtual-repeat-strategy-locator.js +++ b/dist/commonjs/virtual-repeat-strategy-locator.js @@ -9,6 +9,8 @@ var _aureliaTemplatingResources = require('aurelia-templating-resources'); var _arrayVirtualRepeatStrategy = require('./array-virtual-repeat-strategy'); +var _nullVirtualRepeatStrategy = require('./null-virtual-repeat-strategy'); + function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } @@ -26,6 +28,9 @@ var VirtualRepeatStrategyLocator = exports.VirtualRepeatStrategyLocator = functi _this.matchers = []; _this.strategies = []; + _this.addStrategy(function (items) { + return items === null || items === undefined; + }, new _nullVirtualRepeatStrategy.NullVirtualRepeatStrategy()); _this.addStrategy(function (items) { return items instanceof Array; }, new _arrayVirtualRepeatStrategy.ArrayVirtualRepeatStrategy()); diff --git a/dist/commonjs/virtual-repeat.js b/dist/commonjs/virtual-repeat.js index ccd1cf9..9060dcc 100644 --- a/dist/commonjs/virtual-repeat.js +++ b/dist/commonjs/virtual-repeat.js @@ -169,20 +169,9 @@ var VirtualRepeat = exports.VirtualRepeat = (_dec = (0, _aureliaTemplating.custo VirtualRepeat.prototype.detached = function detached() { this.scrollContainer.removeEventListener('scroll', this.scrollListener); - this._first = 0; - this._previousFirst = 0; - this._viewsLength = 0; - this._lastRebind = 0; - this._topBufferHeight = 0; - this._bottomBufferHeight = 0; - this._scrollingDown = false; - this._scrollingUp = false; - this._switchedDirection = false; + this._resetCalculation(); this._isAttached = false; - this._ticking = false; - this._hasCalculatedSizes = false; this.templateStrategy.removeBufferElements(this.element, this.topBuffer, this.bottomBuffer); - this.isLastIndex = false; this.scrollContainer = null; this.scrollContainerHeight = null; this.distanceToTop = null; @@ -207,40 +196,47 @@ var VirtualRepeat = exports.VirtualRepeat = (_dec = (0, _aureliaTemplating.custo var previousLastViewIndex = this._getIndexOfLastView(); var items = this.items; + var shouldCalculateSize = !!items; this.strategy = this.strategyLocator.getStrategy(items); - if (items.length > 0 && this.viewCount() === 0) { - this.strategy.createFirstItem(this); - } - if (this._itemsLength >= items.length) { - this._skipNextScrollHandle = true; - reducingItems = true; + if (shouldCalculateSize) { + if (items.length > 0 && this.viewCount() === 0) { + this.strategy.createFirstItem(this); + } + + if (this._itemsLength >= items.length) { + this._skipNextScrollHandle = true; + reducingItems = true; + } + this._checkFixedHeightContainer(); + this._calcInitialHeights(items.length); } - this._checkFixedHeightContainer(); - this._calcInitialHeights(items.length); if (!this.isOneTime && !this._observeInnerCollection()) { this._observeCollection(); } this.strategy.instanceChanged(this, items, this._first); - this._lastRebind = this._first; - if (reducingItems && previousLastViewIndex > this.items.length - 1) { - if (this.scrollContainer.tagName === 'TBODY') { - var realScrollContainer = this.scrollContainer.parentNode.parentNode; - realScrollContainer.scrollTop = realScrollContainer.scrollTop + this.viewCount() * this.itemHeight; - } else { - this.scrollContainer.scrollTop = this.scrollContainer.scrollTop + this.viewCount() * this.itemHeight; + if (shouldCalculateSize) { + this._lastRebind = this._first; + + if (reducingItems && previousLastViewIndex > this.items.length - 1) { + if (this.scrollContainer.tagName === 'TBODY') { + var realScrollContainer = this.scrollContainer.parentNode.parentNode; + realScrollContainer.scrollTop = realScrollContainer.scrollTop + this.viewCount() * this.itemHeight; + } else { + this.scrollContainer.scrollTop = this.scrollContainer.scrollTop + this.viewCount() * this.itemHeight; + } } - } - if (!reducingItems) { - this._previousFirst = this._first; - this._scrollingDown = true; - this._scrollingUp = false; + if (!reducingItems) { + this._previousFirst = this._first; + this._scrollingDown = true; + this._scrollingUp = false; - this.isLastIndex = this._getIndexOfLastView() >= this.items.length - 1; - } + this.isLastIndex = this._getIndexOfLastView() >= this.items.length - 1; + } - this._handleScroll(); + this._handleScroll(); + } }; VirtualRepeat.prototype.unbind = function unbind() { @@ -274,6 +270,24 @@ var VirtualRepeat = exports.VirtualRepeat = (_dec = (0, _aureliaTemplating.custo } }; + VirtualRepeat.prototype._resetCalculation = function _resetCalculation() { + this._first = 0; + this._previousFirst = 0; + this._viewsLength = 0; + this._lastRebind = 0; + this._topBufferHeight = 0; + this._bottomBufferHeight = 0; + this._scrollingDown = false; + this._scrollingUp = false; + this._switchedDirection = false; + this._ticking = false; + this._hasCalculatedSizes = false; + this._isAtTop = true; + this.isLastIndex = false; + this.elementsInView = 0; + this._adjustBufferHeights(); + }; + VirtualRepeat.prototype._onScroll = function _onScroll() { var _this4 = this; @@ -297,6 +311,9 @@ var VirtualRepeat = exports.VirtualRepeat = (_dec = (0, _aureliaTemplating.custo this._skipNextScrollHandle = false; return; } + if (!this.items) { + return; + } var itemHeight = this.itemHeight; var scrollTop = this._fixedHeightContainer ? this.scrollContainer.scrollTop : pageYOffset - this.distanceToTop; this._first = Math.floor(scrollTop / itemHeight); @@ -507,7 +524,12 @@ var VirtualRepeat = exports.VirtualRepeat = (_dec = (0, _aureliaTemplating.custo VirtualRepeat.prototype._calcInitialHeights = function _calcInitialHeights(itemsLength) { var _this7 = this; - if (this._viewsLength > 0 && this._itemsLength === itemsLength || this._viewsLength > 0 && itemsLength < 0) { + var isSameLength = this._viewsLength > 0 && this._itemsLength === itemsLength; + if (isSameLength) { + return; + } + if (itemsLength < 1) { + this._resetCalculation(); return; } this._hasCalculatedSizes = true; diff --git a/dist/es2015/array-virtual-repeat-strategy.js b/dist/es2015/array-virtual-repeat-strategy.js index 8ba896f..026a0de 100644 --- a/dist/es2015/array-virtual-repeat-strategy.js +++ b/dist/es2015/array-virtual-repeat-strategy.js @@ -45,7 +45,7 @@ export let ArrayVirtualRepeatStrategy = class ArrayVirtualRepeatStrategy extends repeat.updateBindings(view); } - let minLength = Math.min(repeat._viewsLength, items.length); + let minLength = Math.min(repeat._viewsLength, itemsLength); for (let i = viewsLength; i < minLength; i++) { let overrideContext = createFullOverrideContext(repeat, items[i], i, itemsLength); repeat.addView(overrideContext.bindingContext, overrideContext); diff --git a/dist/es2015/null-virtual-repeat-strategy.js b/dist/es2015/null-virtual-repeat-strategy.js new file mode 100644 index 0000000..b585356 --- /dev/null +++ b/dist/es2015/null-virtual-repeat-strategy.js @@ -0,0 +1,8 @@ +import { NullRepeatStrategy } from 'aurelia-templating-resources'; + +export let NullVirtualRepeatStrategy = class NullVirtualRepeatStrategy extends NullRepeatStrategy { + instanceChanged(repeat) { + super.instanceChanged(repeat); + repeat._resetCalculation(); + } +}; \ No newline at end of file diff --git a/dist/es2015/template-strategy.js b/dist/es2015/template-strategy.js index 45fc3e7..ba69f53 100644 --- a/dist/es2015/template-strategy.js +++ b/dist/es2015/template-strategy.js @@ -57,7 +57,7 @@ export let TableStrategy = (_dec2 = inject(DomHelper), _dec2(_class2 = class Tab } createTopBufferElement(element) { - const elementName = element.parentNode.localName === 'ul' ? 'li' : 'div'; + const elementName = /^[uo]l$/.test(element.parentNode.localName) ? 'li' : 'div'; const buffer = DOM.createElement(elementName); const tableElement = element.parentNode.parentNode; tableElement.parentNode.insertBefore(buffer, tableElement); @@ -66,7 +66,7 @@ export let TableStrategy = (_dec2 = inject(DomHelper), _dec2(_class2 = class Tab } createBottomBufferElement(element) { - const elementName = element.parentNode.localName === 'ul' ? 'li' : 'div'; + const elementName = /^[uo]l$/.test(element.parentNode.localName) ? 'li' : 'div'; const buffer = DOM.createElement(elementName); const tableElement = element.parentNode.parentNode; tableElement.parentNode.insertBefore(buffer, tableElement.nextSibling); @@ -124,14 +124,14 @@ export let DefaultTemplateStrategy = class DefaultTemplateStrategy { } createTopBufferElement(element) { - const elementName = element.parentNode.localName === 'ul' ? 'li' : 'div'; + const elementName = /^[uo]l$/.test(element.parentNode.localName) ? 'li' : 'div'; const buffer = DOM.createElement(elementName); element.parentNode.insertBefore(buffer, element); return buffer; } createBottomBufferElement(element) { - const elementName = element.parentNode.localName === 'ul' ? 'li' : 'div'; + const elementName = /^[uo]l$/.test(element.parentNode.localName) ? 'li' : 'div'; const buffer = DOM.createElement(elementName); element.parentNode.insertBefore(buffer, element.nextSibling); return buffer; diff --git a/dist/es2015/virtual-repeat-strategy-locator.js b/dist/es2015/virtual-repeat-strategy-locator.js index 3ba4816..9fc1d65 100644 --- a/dist/es2015/virtual-repeat-strategy-locator.js +++ b/dist/es2015/virtual-repeat-strategy-locator.js @@ -1,5 +1,6 @@ import { RepeatStrategyLocator } from 'aurelia-templating-resources'; import { ArrayVirtualRepeatStrategy } from './array-virtual-repeat-strategy'; +import { NullVirtualRepeatStrategy } from './null-virtual-repeat-strategy'; export let VirtualRepeatStrategyLocator = class VirtualRepeatStrategyLocator extends RepeatStrategyLocator { constructor() { @@ -7,6 +8,7 @@ export let VirtualRepeatStrategyLocator = class VirtualRepeatStrategyLocator ext this.matchers = []; this.strategies = []; + this.addStrategy(items => items === null || items === undefined, new NullVirtualRepeatStrategy()); this.addStrategy(items => items instanceof Array, new ArrayVirtualRepeatStrategy()); } }; \ No newline at end of file diff --git a/dist/es2015/virtual-repeat.js b/dist/es2015/virtual-repeat.js index 3aafb5a..7720a63 100644 --- a/dist/es2015/virtual-repeat.js +++ b/dist/es2015/virtual-repeat.js @@ -139,20 +139,9 @@ export let VirtualRepeat = (_dec = customAttribute('virtual-repeat'), _dec2 = in detached() { this.scrollContainer.removeEventListener('scroll', this.scrollListener); - this._first = 0; - this._previousFirst = 0; - this._viewsLength = 0; - this._lastRebind = 0; - this._topBufferHeight = 0; - this._bottomBufferHeight = 0; - this._scrollingDown = false; - this._scrollingUp = false; - this._switchedDirection = false; + this._resetCalculation(); this._isAttached = false; - this._ticking = false; - this._hasCalculatedSizes = false; this.templateStrategy.removeBufferElements(this.element, this.topBuffer, this.bottomBuffer); - this.isLastIndex = false; this.scrollContainer = null; this.scrollContainerHeight = null; this.distanceToTop = null; @@ -177,40 +166,47 @@ export let VirtualRepeat = (_dec = customAttribute('virtual-repeat'), _dec2 = in let previousLastViewIndex = this._getIndexOfLastView(); let items = this.items; + let shouldCalculateSize = !!items; this.strategy = this.strategyLocator.getStrategy(items); - if (items.length > 0 && this.viewCount() === 0) { - this.strategy.createFirstItem(this); - } - if (this._itemsLength >= items.length) { - this._skipNextScrollHandle = true; - reducingItems = true; + if (shouldCalculateSize) { + if (items.length > 0 && this.viewCount() === 0) { + this.strategy.createFirstItem(this); + } + + if (this._itemsLength >= items.length) { + this._skipNextScrollHandle = true; + reducingItems = true; + } + this._checkFixedHeightContainer(); + this._calcInitialHeights(items.length); } - this._checkFixedHeightContainer(); - this._calcInitialHeights(items.length); if (!this.isOneTime && !this._observeInnerCollection()) { this._observeCollection(); } this.strategy.instanceChanged(this, items, this._first); - this._lastRebind = this._first; - if (reducingItems && previousLastViewIndex > this.items.length - 1) { - if (this.scrollContainer.tagName === 'TBODY') { - let realScrollContainer = this.scrollContainer.parentNode.parentNode; - realScrollContainer.scrollTop = realScrollContainer.scrollTop + this.viewCount() * this.itemHeight; - } else { - this.scrollContainer.scrollTop = this.scrollContainer.scrollTop + this.viewCount() * this.itemHeight; + if (shouldCalculateSize) { + this._lastRebind = this._first; + + if (reducingItems && previousLastViewIndex > this.items.length - 1) { + if (this.scrollContainer.tagName === 'TBODY') { + let realScrollContainer = this.scrollContainer.parentNode.parentNode; + realScrollContainer.scrollTop = realScrollContainer.scrollTop + this.viewCount() * this.itemHeight; + } else { + this.scrollContainer.scrollTop = this.scrollContainer.scrollTop + this.viewCount() * this.itemHeight; + } } - } - if (!reducingItems) { - this._previousFirst = this._first; - this._scrollingDown = true; - this._scrollingUp = false; + if (!reducingItems) { + this._previousFirst = this._first; + this._scrollingDown = true; + this._scrollingUp = false; - this.isLastIndex = this._getIndexOfLastView() >= this.items.length - 1; - } + this.isLastIndex = this._getIndexOfLastView() >= this.items.length - 1; + } - this._handleScroll(); + this._handleScroll(); + } } unbind() { @@ -240,6 +236,24 @@ export let VirtualRepeat = (_dec = customAttribute('virtual-repeat'), _dec2 = in } } + _resetCalculation() { + this._first = 0; + this._previousFirst = 0; + this._viewsLength = 0; + this._lastRebind = 0; + this._topBufferHeight = 0; + this._bottomBufferHeight = 0; + this._scrollingDown = false; + this._scrollingUp = false; + this._switchedDirection = false; + this._ticking = false; + this._hasCalculatedSizes = false; + this._isAtTop = true; + this.isLastIndex = false; + this.elementsInView = 0; + this._adjustBufferHeights(); + } + _onScroll() { if (!this._ticking && !this._handlingMutations) { requestAnimationFrame(() => this._handleScroll()); @@ -259,6 +273,9 @@ export let VirtualRepeat = (_dec = customAttribute('virtual-repeat'), _dec2 = in this._skipNextScrollHandle = false; return; } + if (!this.items) { + return; + } let itemHeight = this.itemHeight; let scrollTop = this._fixedHeightContainer ? this.scrollContainer.scrollTop : pageYOffset - this.distanceToTop; this._first = Math.floor(scrollTop / itemHeight); @@ -457,7 +474,12 @@ export let VirtualRepeat = (_dec = customAttribute('virtual-repeat'), _dec2 = in } _calcInitialHeights(itemsLength) { - if (this._viewsLength > 0 && this._itemsLength === itemsLength || this._viewsLength > 0 && itemsLength < 0) { + const isSameLength = this._viewsLength > 0 && this._itemsLength === itemsLength; + if (isSameLength) { + return; + } + if (itemsLength < 1) { + this._resetCalculation(); return; } this._hasCalculatedSizes = true; diff --git a/dist/native-modules/array-virtual-repeat-strategy.js b/dist/native-modules/array-virtual-repeat-strategy.js index 505031f..5288252 100644 --- a/dist/native-modules/array-virtual-repeat-strategy.js +++ b/dist/native-modules/array-virtual-repeat-strategy.js @@ -59,7 +59,7 @@ export var ArrayVirtualRepeatStrategy = function (_ArrayRepeatStrategy) { repeat.updateBindings(view); } - var minLength = Math.min(repeat._viewsLength, items.length); + var minLength = Math.min(repeat._viewsLength, itemsLength); for (var _i = viewsLength; _i < minLength; _i++) { var overrideContext = createFullOverrideContext(repeat, items[_i], _i, itemsLength); repeat.addView(overrideContext.bindingContext, overrideContext); diff --git a/dist/native-modules/null-virtual-repeat-strategy.js b/dist/native-modules/null-virtual-repeat-strategy.js new file mode 100644 index 0000000..c97dd65 --- /dev/null +++ b/dist/native-modules/null-virtual-repeat-strategy.js @@ -0,0 +1,24 @@ + + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +import { NullRepeatStrategy } from 'aurelia-templating-resources'; + +export var NullVirtualRepeatStrategy = function (_NullRepeatStrategy) { + _inherits(NullVirtualRepeatStrategy, _NullRepeatStrategy); + + function NullVirtualRepeatStrategy() { + + + return _possibleConstructorReturn(this, _NullRepeatStrategy.apply(this, arguments)); + } + + NullVirtualRepeatStrategy.prototype.instanceChanged = function instanceChanged(repeat) { + _NullRepeatStrategy.prototype.instanceChanged.call(this, repeat); + repeat._resetCalculation(); + }; + + return NullVirtualRepeatStrategy; +}(NullRepeatStrategy); \ No newline at end of file diff --git a/dist/native-modules/template-strategy.js b/dist/native-modules/template-strategy.js index cc0c2bb..0aeadef 100644 --- a/dist/native-modules/template-strategy.js +++ b/dist/native-modules/template-strategy.js @@ -63,7 +63,7 @@ export var TableStrategy = (_dec2 = inject(DomHelper), _dec2(_class2 = function }; TableStrategy.prototype.createTopBufferElement = function createTopBufferElement(element) { - var elementName = element.parentNode.localName === 'ul' ? 'li' : 'div'; + var elementName = /^[uo]l$/.test(element.parentNode.localName) ? 'li' : 'div'; var buffer = DOM.createElement(elementName); var tableElement = element.parentNode.parentNode; tableElement.parentNode.insertBefore(buffer, tableElement); @@ -72,7 +72,7 @@ export var TableStrategy = (_dec2 = inject(DomHelper), _dec2(_class2 = function }; TableStrategy.prototype.createBottomBufferElement = function createBottomBufferElement(element) { - var elementName = element.parentNode.localName === 'ul' ? 'li' : 'div'; + var elementName = /^[uo]l$/.test(element.parentNode.localName) ? 'li' : 'div'; var buffer = DOM.createElement(elementName); var tableElement = element.parentNode.parentNode; tableElement.parentNode.insertBefore(buffer, tableElement.nextSibling); @@ -136,14 +136,14 @@ export var DefaultTemplateStrategy = function () { }; DefaultTemplateStrategy.prototype.createTopBufferElement = function createTopBufferElement(element) { - var elementName = element.parentNode.localName === 'ul' ? 'li' : 'div'; + var elementName = /^[uo]l$/.test(element.parentNode.localName) ? 'li' : 'div'; var buffer = DOM.createElement(elementName); element.parentNode.insertBefore(buffer, element); return buffer; }; DefaultTemplateStrategy.prototype.createBottomBufferElement = function createBottomBufferElement(element) { - var elementName = element.parentNode.localName === 'ul' ? 'li' : 'div'; + var elementName = /^[uo]l$/.test(element.parentNode.localName) ? 'li' : 'div'; var buffer = DOM.createElement(elementName); element.parentNode.insertBefore(buffer, element.nextSibling); return buffer; diff --git a/dist/native-modules/virtual-repeat-strategy-locator.js b/dist/native-modules/virtual-repeat-strategy-locator.js index b46c6dd..0beddec 100644 --- a/dist/native-modules/virtual-repeat-strategy-locator.js +++ b/dist/native-modules/virtual-repeat-strategy-locator.js @@ -6,6 +6,7 @@ function _inherits(subClass, superClass) { if (typeof superClass !== "function" import { RepeatStrategyLocator } from 'aurelia-templating-resources'; import { ArrayVirtualRepeatStrategy } from './array-virtual-repeat-strategy'; +import { NullVirtualRepeatStrategy } from './null-virtual-repeat-strategy'; export var VirtualRepeatStrategyLocator = function (_RepeatStrategyLocato) { _inherits(VirtualRepeatStrategyLocator, _RepeatStrategyLocato); @@ -18,6 +19,9 @@ export var VirtualRepeatStrategyLocator = function (_RepeatStrategyLocato) { _this.matchers = []; _this.strategies = []; + _this.addStrategy(function (items) { + return items === null || items === undefined; + }, new NullVirtualRepeatStrategy()); _this.addStrategy(function (items) { return items instanceof Array; }, new ArrayVirtualRepeatStrategy()); diff --git a/dist/native-modules/virtual-repeat.js b/dist/native-modules/virtual-repeat.js index 162c9da..37d38b5 100644 --- a/dist/native-modules/virtual-repeat.js +++ b/dist/native-modules/virtual-repeat.js @@ -154,20 +154,9 @@ export var VirtualRepeat = (_dec = customAttribute('virtual-repeat'), _dec2 = in VirtualRepeat.prototype.detached = function detached() { this.scrollContainer.removeEventListener('scroll', this.scrollListener); - this._first = 0; - this._previousFirst = 0; - this._viewsLength = 0; - this._lastRebind = 0; - this._topBufferHeight = 0; - this._bottomBufferHeight = 0; - this._scrollingDown = false; - this._scrollingUp = false; - this._switchedDirection = false; + this._resetCalculation(); this._isAttached = false; - this._ticking = false; - this._hasCalculatedSizes = false; this.templateStrategy.removeBufferElements(this.element, this.topBuffer, this.bottomBuffer); - this.isLastIndex = false; this.scrollContainer = null; this.scrollContainerHeight = null; this.distanceToTop = null; @@ -192,40 +181,47 @@ export var VirtualRepeat = (_dec = customAttribute('virtual-repeat'), _dec2 = in var previousLastViewIndex = this._getIndexOfLastView(); var items = this.items; + var shouldCalculateSize = !!items; this.strategy = this.strategyLocator.getStrategy(items); - if (items.length > 0 && this.viewCount() === 0) { - this.strategy.createFirstItem(this); - } - if (this._itemsLength >= items.length) { - this._skipNextScrollHandle = true; - reducingItems = true; + if (shouldCalculateSize) { + if (items.length > 0 && this.viewCount() === 0) { + this.strategy.createFirstItem(this); + } + + if (this._itemsLength >= items.length) { + this._skipNextScrollHandle = true; + reducingItems = true; + } + this._checkFixedHeightContainer(); + this._calcInitialHeights(items.length); } - this._checkFixedHeightContainer(); - this._calcInitialHeights(items.length); if (!this.isOneTime && !this._observeInnerCollection()) { this._observeCollection(); } this.strategy.instanceChanged(this, items, this._first); - this._lastRebind = this._first; - if (reducingItems && previousLastViewIndex > this.items.length - 1) { - if (this.scrollContainer.tagName === 'TBODY') { - var realScrollContainer = this.scrollContainer.parentNode.parentNode; - realScrollContainer.scrollTop = realScrollContainer.scrollTop + this.viewCount() * this.itemHeight; - } else { - this.scrollContainer.scrollTop = this.scrollContainer.scrollTop + this.viewCount() * this.itemHeight; + if (shouldCalculateSize) { + this._lastRebind = this._first; + + if (reducingItems && previousLastViewIndex > this.items.length - 1) { + if (this.scrollContainer.tagName === 'TBODY') { + var realScrollContainer = this.scrollContainer.parentNode.parentNode; + realScrollContainer.scrollTop = realScrollContainer.scrollTop + this.viewCount() * this.itemHeight; + } else { + this.scrollContainer.scrollTop = this.scrollContainer.scrollTop + this.viewCount() * this.itemHeight; + } } - } - if (!reducingItems) { - this._previousFirst = this._first; - this._scrollingDown = true; - this._scrollingUp = false; + if (!reducingItems) { + this._previousFirst = this._first; + this._scrollingDown = true; + this._scrollingUp = false; - this.isLastIndex = this._getIndexOfLastView() >= this.items.length - 1; - } + this.isLastIndex = this._getIndexOfLastView() >= this.items.length - 1; + } - this._handleScroll(); + this._handleScroll(); + } }; VirtualRepeat.prototype.unbind = function unbind() { @@ -259,6 +255,24 @@ export var VirtualRepeat = (_dec = customAttribute('virtual-repeat'), _dec2 = in } }; + VirtualRepeat.prototype._resetCalculation = function _resetCalculation() { + this._first = 0; + this._previousFirst = 0; + this._viewsLength = 0; + this._lastRebind = 0; + this._topBufferHeight = 0; + this._bottomBufferHeight = 0; + this._scrollingDown = false; + this._scrollingUp = false; + this._switchedDirection = false; + this._ticking = false; + this._hasCalculatedSizes = false; + this._isAtTop = true; + this.isLastIndex = false; + this.elementsInView = 0; + this._adjustBufferHeights(); + }; + VirtualRepeat.prototype._onScroll = function _onScroll() { var _this4 = this; @@ -282,6 +296,9 @@ export var VirtualRepeat = (_dec = customAttribute('virtual-repeat'), _dec2 = in this._skipNextScrollHandle = false; return; } + if (!this.items) { + return; + } var itemHeight = this.itemHeight; var scrollTop = this._fixedHeightContainer ? this.scrollContainer.scrollTop : pageYOffset - this.distanceToTop; this._first = Math.floor(scrollTop / itemHeight); @@ -492,7 +509,12 @@ export var VirtualRepeat = (_dec = customAttribute('virtual-repeat'), _dec2 = in VirtualRepeat.prototype._calcInitialHeights = function _calcInitialHeights(itemsLength) { var _this7 = this; - if (this._viewsLength > 0 && this._itemsLength === itemsLength || this._viewsLength > 0 && itemsLength < 0) { + var isSameLength = this._viewsLength > 0 && this._itemsLength === itemsLength; + if (isSameLength) { + return; + } + if (itemsLength < 1) { + this._resetCalculation(); return; } this._hasCalculatedSizes = true; diff --git a/dist/system/array-virtual-repeat-strategy.js b/dist/system/array-virtual-repeat-strategy.js index a468d3c..dc63510 100644 --- a/dist/system/array-virtual-repeat-strategy.js +++ b/dist/system/array-virtual-repeat-strategy.js @@ -93,7 +93,7 @@ System.register(['aurelia-templating-resources', './utilities'], function (_expo repeat.updateBindings(view); } - var minLength = Math.min(repeat._viewsLength, items.length); + var minLength = Math.min(repeat._viewsLength, itemsLength); for (var _i = viewsLength; _i < minLength; _i++) { var overrideContext = createFullOverrideContext(repeat, items[_i], _i, itemsLength); repeat.addView(overrideContext.bindingContext, overrideContext); diff --git a/dist/system/null-virtual-repeat-strategy.js b/dist/system/null-virtual-repeat-strategy.js new file mode 100644 index 0000000..d56d388 --- /dev/null +++ b/dist/system/null-virtual-repeat-strategy.js @@ -0,0 +1,59 @@ +'use strict'; + +System.register(['aurelia-templating-resources'], function (_export, _context) { + "use strict"; + + var NullRepeatStrategy, NullVirtualRepeatStrategy; + + + + function _possibleConstructorReturn(self, call) { + if (!self) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + + return call && (typeof call === "object" || typeof call === "function") ? call : self; + } + + function _inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); + } + + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + enumerable: false, + writable: true, + configurable: true + } + }); + if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; + } + + return { + setters: [function (_aureliaTemplatingResources) { + NullRepeatStrategy = _aureliaTemplatingResources.NullRepeatStrategy; + }], + execute: function () { + _export('NullVirtualRepeatStrategy', NullVirtualRepeatStrategy = function (_NullRepeatStrategy) { + _inherits(NullVirtualRepeatStrategy, _NullRepeatStrategy); + + function NullVirtualRepeatStrategy() { + + + return _possibleConstructorReturn(this, _NullRepeatStrategy.apply(this, arguments)); + } + + NullVirtualRepeatStrategy.prototype.instanceChanged = function instanceChanged(repeat) { + _NullRepeatStrategy.prototype.instanceChanged.call(this, repeat); + repeat._resetCalculation(); + }; + + return NullVirtualRepeatStrategy; + }(NullRepeatStrategy)); + + _export('NullVirtualRepeatStrategy', NullVirtualRepeatStrategy); + } + }; +}); \ No newline at end of file diff --git a/dist/system/template-strategy.js b/dist/system/template-strategy.js index a1cd69a..4ff953a 100644 --- a/dist/system/template-strategy.js +++ b/dist/system/template-strategy.js @@ -78,7 +78,7 @@ System.register(['aurelia-dependency-injection', 'aurelia-pal', 'aurelia-templat }; TableStrategy.prototype.createTopBufferElement = function createTopBufferElement(element) { - var elementName = element.parentNode.localName === 'ul' ? 'li' : 'div'; + var elementName = /^[uo]l$/.test(element.parentNode.localName) ? 'li' : 'div'; var buffer = DOM.createElement(elementName); var tableElement = element.parentNode.parentNode; tableElement.parentNode.insertBefore(buffer, tableElement); @@ -87,7 +87,7 @@ System.register(['aurelia-dependency-injection', 'aurelia-pal', 'aurelia-templat }; TableStrategy.prototype.createBottomBufferElement = function createBottomBufferElement(element) { - var elementName = element.parentNode.localName === 'ul' ? 'li' : 'div'; + var elementName = /^[uo]l$/.test(element.parentNode.localName) ? 'li' : 'div'; var buffer = DOM.createElement(elementName); var tableElement = element.parentNode.parentNode; tableElement.parentNode.insertBefore(buffer, tableElement.nextSibling); @@ -153,14 +153,14 @@ System.register(['aurelia-dependency-injection', 'aurelia-pal', 'aurelia-templat }; DefaultTemplateStrategy.prototype.createTopBufferElement = function createTopBufferElement(element) { - var elementName = element.parentNode.localName === 'ul' ? 'li' : 'div'; + var elementName = /^[uo]l$/.test(element.parentNode.localName) ? 'li' : 'div'; var buffer = DOM.createElement(elementName); element.parentNode.insertBefore(buffer, element); return buffer; }; DefaultTemplateStrategy.prototype.createBottomBufferElement = function createBottomBufferElement(element) { - var elementName = element.parentNode.localName === 'ul' ? 'li' : 'div'; + var elementName = /^[uo]l$/.test(element.parentNode.localName) ? 'li' : 'div'; var buffer = DOM.createElement(elementName); element.parentNode.insertBefore(buffer, element.nextSibling); return buffer; diff --git a/dist/system/virtual-repeat-strategy-locator.js b/dist/system/virtual-repeat-strategy-locator.js index 8c7dd5b..02daf02 100644 --- a/dist/system/virtual-repeat-strategy-locator.js +++ b/dist/system/virtual-repeat-strategy-locator.js @@ -1,9 +1,9 @@ 'use strict'; -System.register(['aurelia-templating-resources', './array-virtual-repeat-strategy'], function (_export, _context) { +System.register(['aurelia-templating-resources', './array-virtual-repeat-strategy', './null-virtual-repeat-strategy'], function (_export, _context) { "use strict"; - var RepeatStrategyLocator, ArrayVirtualRepeatStrategy, VirtualRepeatStrategyLocator; + var RepeatStrategyLocator, ArrayVirtualRepeatStrategy, NullVirtualRepeatStrategy, VirtualRepeatStrategyLocator; @@ -36,6 +36,8 @@ System.register(['aurelia-templating-resources', './array-virtual-repeat-strateg RepeatStrategyLocator = _aureliaTemplatingResources.RepeatStrategyLocator; }, function (_arrayVirtualRepeatStrategy) { ArrayVirtualRepeatStrategy = _arrayVirtualRepeatStrategy.ArrayVirtualRepeatStrategy; + }, function (_nullVirtualRepeatStrategy) { + NullVirtualRepeatStrategy = _nullVirtualRepeatStrategy.NullVirtualRepeatStrategy; }], execute: function () { _export('VirtualRepeatStrategyLocator', VirtualRepeatStrategyLocator = function (_RepeatStrategyLocato) { @@ -49,6 +51,9 @@ System.register(['aurelia-templating-resources', './array-virtual-repeat-strateg _this.matchers = []; _this.strategies = []; + _this.addStrategy(function (items) { + return items === null || items === undefined; + }, new NullVirtualRepeatStrategy()); _this.addStrategy(function (items) { return items instanceof Array; }, new ArrayVirtualRepeatStrategy()); diff --git a/dist/system/virtual-repeat.js b/dist/system/virtual-repeat.js index 25b9784..0ee9e86 100644 --- a/dist/system/virtual-repeat.js +++ b/dist/system/virtual-repeat.js @@ -204,20 +204,9 @@ System.register(['aurelia-dependency-injection', 'aurelia-binding', 'aurelia-tem VirtualRepeat.prototype.detached = function detached() { this.scrollContainer.removeEventListener('scroll', this.scrollListener); - this._first = 0; - this._previousFirst = 0; - this._viewsLength = 0; - this._lastRebind = 0; - this._topBufferHeight = 0; - this._bottomBufferHeight = 0; - this._scrollingDown = false; - this._scrollingUp = false; - this._switchedDirection = false; + this._resetCalculation(); this._isAttached = false; - this._ticking = false; - this._hasCalculatedSizes = false; this.templateStrategy.removeBufferElements(this.element, this.topBuffer, this.bottomBuffer); - this.isLastIndex = false; this.scrollContainer = null; this.scrollContainerHeight = null; this.distanceToTop = null; @@ -242,40 +231,47 @@ System.register(['aurelia-dependency-injection', 'aurelia-binding', 'aurelia-tem var previousLastViewIndex = this._getIndexOfLastView(); var items = this.items; + var shouldCalculateSize = !!items; this.strategy = this.strategyLocator.getStrategy(items); - if (items.length > 0 && this.viewCount() === 0) { - this.strategy.createFirstItem(this); - } - if (this._itemsLength >= items.length) { - this._skipNextScrollHandle = true; - reducingItems = true; + if (shouldCalculateSize) { + if (items.length > 0 && this.viewCount() === 0) { + this.strategy.createFirstItem(this); + } + + if (this._itemsLength >= items.length) { + this._skipNextScrollHandle = true; + reducingItems = true; + } + this._checkFixedHeightContainer(); + this._calcInitialHeights(items.length); } - this._checkFixedHeightContainer(); - this._calcInitialHeights(items.length); if (!this.isOneTime && !this._observeInnerCollection()) { this._observeCollection(); } this.strategy.instanceChanged(this, items, this._first); - this._lastRebind = this._first; - if (reducingItems && previousLastViewIndex > this.items.length - 1) { - if (this.scrollContainer.tagName === 'TBODY') { - var realScrollContainer = this.scrollContainer.parentNode.parentNode; - realScrollContainer.scrollTop = realScrollContainer.scrollTop + this.viewCount() * this.itemHeight; - } else { - this.scrollContainer.scrollTop = this.scrollContainer.scrollTop + this.viewCount() * this.itemHeight; + if (shouldCalculateSize) { + this._lastRebind = this._first; + + if (reducingItems && previousLastViewIndex > this.items.length - 1) { + if (this.scrollContainer.tagName === 'TBODY') { + var realScrollContainer = this.scrollContainer.parentNode.parentNode; + realScrollContainer.scrollTop = realScrollContainer.scrollTop + this.viewCount() * this.itemHeight; + } else { + this.scrollContainer.scrollTop = this.scrollContainer.scrollTop + this.viewCount() * this.itemHeight; + } } - } - if (!reducingItems) { - this._previousFirst = this._first; - this._scrollingDown = true; - this._scrollingUp = false; + if (!reducingItems) { + this._previousFirst = this._first; + this._scrollingDown = true; + this._scrollingUp = false; - this.isLastIndex = this._getIndexOfLastView() >= this.items.length - 1; - } + this.isLastIndex = this._getIndexOfLastView() >= this.items.length - 1; + } - this._handleScroll(); + this._handleScroll(); + } }; VirtualRepeat.prototype.unbind = function unbind() { @@ -309,6 +305,24 @@ System.register(['aurelia-dependency-injection', 'aurelia-binding', 'aurelia-tem } }; + VirtualRepeat.prototype._resetCalculation = function _resetCalculation() { + this._first = 0; + this._previousFirst = 0; + this._viewsLength = 0; + this._lastRebind = 0; + this._topBufferHeight = 0; + this._bottomBufferHeight = 0; + this._scrollingDown = false; + this._scrollingUp = false; + this._switchedDirection = false; + this._ticking = false; + this._hasCalculatedSizes = false; + this._isAtTop = true; + this.isLastIndex = false; + this.elementsInView = 0; + this._adjustBufferHeights(); + }; + VirtualRepeat.prototype._onScroll = function _onScroll() { var _this4 = this; @@ -332,6 +346,9 @@ System.register(['aurelia-dependency-injection', 'aurelia-binding', 'aurelia-tem this._skipNextScrollHandle = false; return; } + if (!this.items) { + return; + } var itemHeight = this.itemHeight; var scrollTop = this._fixedHeightContainer ? this.scrollContainer.scrollTop : pageYOffset - this.distanceToTop; this._first = Math.floor(scrollTop / itemHeight); @@ -542,7 +559,12 @@ System.register(['aurelia-dependency-injection', 'aurelia-binding', 'aurelia-tem VirtualRepeat.prototype._calcInitialHeights = function _calcInitialHeights(itemsLength) { var _this7 = this; - if (this._viewsLength > 0 && this._itemsLength === itemsLength || this._viewsLength > 0 && itemsLength < 0) { + var isSameLength = this._viewsLength > 0 && this._itemsLength === itemsLength; + if (isSameLength) { + return; + } + if (itemsLength < 1) { + this._resetCalculation(); return; } this._hasCalculatedSizes = true; diff --git a/dist/temp/aurelia-ui-virtualization.js b/dist/temp/aurelia-ui-virtualization.js index e954a96..10fb714 100644 --- a/dist/temp/aurelia-ui-virtualization.js +++ b/dist/temp/aurelia-ui-virtualization.js @@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); -exports.VirtualRepeat = exports.VirtualRepeatStrategyLocator = exports.DefaultTemplateStrategy = exports.TableStrategy = exports.TemplateStrategyLocator = exports.ArrayVirtualRepeatStrategy = exports.InfiniteScrollNext = exports.DomHelper = undefined; +exports.VirtualRepeat = exports.VirtualRepeatStrategyLocator = exports.DefaultTemplateStrategy = exports.TableStrategy = exports.TemplateStrategyLocator = exports.ArrayVirtualRepeatStrategy = exports.InfiniteScrollNext = exports.DomHelper = exports.NullVirtualRepeatStrategy = undefined; var _dec, _class, _dec2, _class2, _dec3, _class3, _dec4, _dec5, _class5, _desc, _value, _class6, _descriptor, _descriptor2; @@ -15,10 +15,10 @@ exports.getStyleValue = getStyleValue; exports.getElementDistanceToBottomViewPort = getElementDistanceToBottomViewPort; exports.getElementDistanceToTopViewPort = getElementDistanceToTopViewPort; -var _aureliaTemplating = require('aurelia-templating'); - var _aureliaTemplatingResources = require('aurelia-templating-resources'); +var _aureliaTemplating = require('aurelia-templating'); + var _aureliaDependencyInjection = require('aurelia-dependency-injection'); var _aureliaPal = require('aurelia-pal'); @@ -68,11 +68,28 @@ function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that transform-class-properties is enabled.'); } +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +var NullVirtualRepeatStrategy = exports.NullVirtualRepeatStrategy = function (_NullRepeatStrategy) { + _inherits(NullVirtualRepeatStrategy, _NullRepeatStrategy); + + function NullVirtualRepeatStrategy() { + _classCallCheck(this, NullVirtualRepeatStrategy); + + return _possibleConstructorReturn(this, _NullRepeatStrategy.apply(this, arguments)); + } + + NullVirtualRepeatStrategy.prototype.instanceChanged = function instanceChanged(repeat) { + _NullRepeatStrategy.prototype.instanceChanged.call(this, repeat); + repeat._resetCalculation(); + }; + + return NullVirtualRepeatStrategy; +}(_aureliaTemplatingResources.NullRepeatStrategy); var DomHelper = exports.DomHelper = function () { function DomHelper() { @@ -220,7 +237,7 @@ var ArrayVirtualRepeatStrategy = exports.ArrayVirtualRepeatStrategy = function ( repeat.updateBindings(_view); } - var minLength = Math.min(repeat._viewsLength, items.length); + var minLength = Math.min(repeat._viewsLength, itemsLength); for (var _i = viewsLength; _i < minLength; _i++) { var overrideContext = (0, _aureliaTemplatingResources.createFullOverrideContext)(repeat, items[_i], _i, itemsLength); repeat.addView(overrideContext.bindingContext, overrideContext); @@ -232,7 +249,7 @@ var ArrayVirtualRepeatStrategy = exports.ArrayVirtualRepeatStrategy = function ( }; ArrayVirtualRepeatStrategy.prototype._standardProcessInstanceMutated = function _standardProcessInstanceMutated(repeat, array, splices) { - var _this2 = this; + var _this3 = this; if (repeat.__queuedSplices) { for (var i = 0, ii = splices.length; i < ii; ++i) { @@ -259,7 +276,7 @@ var ArrayVirtualRepeatStrategy = exports.ArrayVirtualRepeatStrategy = function ( return; } - var nextPromise = _this2._runSplices(repeat, repeat.__array, queuedSplices) || Promise.resolve(); + var nextPromise = _this3._runSplices(repeat, repeat.__array, queuedSplices) || Promise.resolve(); nextPromise.then(runQueuedSplices); }; @@ -269,7 +286,7 @@ var ArrayVirtualRepeatStrategy = exports.ArrayVirtualRepeatStrategy = function ( }; ArrayVirtualRepeatStrategy.prototype._runSplices = function _runSplices(repeat, array, splices) { - var _this3 = this; + var _this4 = this; var removeDelta = 0; var rmPromises = []; @@ -311,7 +328,7 @@ var ArrayVirtualRepeatStrategy = exports.ArrayVirtualRepeatStrategy = function ( if (rmPromises.length > 0) { return Promise.all(rmPromises).then(function () { - _this3._handleAddedSplices(repeat, array, splices); + _this4._handleAddedSplices(repeat, array, splices); updateVirtualOverrideContexts(repeat, 0); }); } @@ -494,7 +511,7 @@ var TableStrategy = exports.TableStrategy = (_dec3 = (0, _aureliaDependencyInjec }; TableStrategy.prototype.createTopBufferElement = function createTopBufferElement(element) { - var elementName = element.parentNode.localName === 'ul' ? 'li' : 'div'; + var elementName = /^[uo]l$/.test(element.parentNode.localName) ? 'li' : 'div'; var buffer = _aureliaPal.DOM.createElement(elementName); var tableElement = element.parentNode.parentNode; tableElement.parentNode.insertBefore(buffer, tableElement); @@ -503,7 +520,7 @@ var TableStrategy = exports.TableStrategy = (_dec3 = (0, _aureliaDependencyInjec }; TableStrategy.prototype.createBottomBufferElement = function createBottomBufferElement(element) { - var elementName = element.parentNode.localName === 'ul' ? 'li' : 'div'; + var elementName = /^[uo]l$/.test(element.parentNode.localName) ? 'li' : 'div'; var buffer = _aureliaPal.DOM.createElement(elementName); var tableElement = element.parentNode.parentNode; tableElement.parentNode.insertBefore(buffer, tableElement.nextSibling); @@ -567,14 +584,14 @@ var DefaultTemplateStrategy = exports.DefaultTemplateStrategy = function () { }; DefaultTemplateStrategy.prototype.createTopBufferElement = function createTopBufferElement(element) { - var elementName = element.parentNode.localName === 'ul' ? 'li' : 'div'; + var elementName = /^[uo]l$/.test(element.parentNode.localName) ? 'li' : 'div'; var buffer = _aureliaPal.DOM.createElement(elementName); element.parentNode.insertBefore(buffer, element); return buffer; }; DefaultTemplateStrategy.prototype.createBottomBufferElement = function createBottomBufferElement(element) { - var elementName = element.parentNode.localName === 'ul' ? 'li' : 'div'; + var elementName = /^[uo]l$/.test(element.parentNode.localName) ? 'li' : 'div'; var buffer = _aureliaPal.DOM.createElement(elementName); element.parentNode.insertBefore(buffer, element.nextSibling); return buffer; @@ -606,15 +623,18 @@ var VirtualRepeatStrategyLocator = exports.VirtualRepeatStrategyLocator = functi function VirtualRepeatStrategyLocator() { _classCallCheck(this, VirtualRepeatStrategyLocator); - var _this4 = _possibleConstructorReturn(this, _RepeatStrategyLocato.call(this)); + var _this5 = _possibleConstructorReturn(this, _RepeatStrategyLocato.call(this)); - _this4.matchers = []; - _this4.strategies = []; + _this5.matchers = []; + _this5.strategies = []; - _this4.addStrategy(function (items) { + _this5.addStrategy(function (items) { + return items === null || items === undefined; + }, new NullVirtualRepeatStrategy()); + _this5.addStrategy(function (items) { return items instanceof Array; }, new ArrayVirtualRepeatStrategy()); - return _this4; + return _this5; } return VirtualRepeatStrategyLocator; @@ -626,48 +646,48 @@ var VirtualRepeat = exports.VirtualRepeat = (_dec4 = (0, _aureliaTemplating.cust function VirtualRepeat(element, viewFactory, instruction, viewSlot, viewResources, observerLocator, strategyLocator, templateStrategyLocator, domHelper) { _classCallCheck(this, VirtualRepeat); - var _this5 = _possibleConstructorReturn(this, _AbstractRepeater.call(this, { + var _this6 = _possibleConstructorReturn(this, _AbstractRepeater.call(this, { local: 'item', viewsRequireLifecycle: (0, _aureliaTemplatingResources.viewsRequireLifecycle)(viewFactory) })); - _this5._first = 0; - _this5._previousFirst = 0; - _this5._viewsLength = 0; - _this5._lastRebind = 0; - _this5._topBufferHeight = 0; - _this5._bottomBufferHeight = 0; - _this5._bufferSize = 5; - _this5._scrollingDown = false; - _this5._scrollingUp = false; - _this5._switchedDirection = false; - _this5._isAttached = false; - _this5._ticking = false; - _this5._fixedHeightContainer = false; - _this5._hasCalculatedSizes = false; - _this5._isAtTop = true; - _this5._calledGetMore = false; - - _initDefineProp(_this5, 'items', _descriptor, _this5); - - _initDefineProp(_this5, 'local', _descriptor2, _this5); - - _this5.element = element; - _this5.viewFactory = viewFactory; - _this5.instruction = instruction; - _this5.viewSlot = viewSlot; - _this5.lookupFunctions = viewResources.lookupFunctions; - _this5.observerLocator = observerLocator; - _this5.strategyLocator = strategyLocator; - _this5.templateStrategyLocator = templateStrategyLocator; - _this5.sourceExpression = (0, _aureliaTemplatingResources.getItemsSourceExpression)(_this5.instruction, 'virtual-repeat.for'); - _this5.isOneTime = (0, _aureliaTemplatingResources.isOneTime)(_this5.sourceExpression); - _this5.domHelper = domHelper; - return _this5; + _this6._first = 0; + _this6._previousFirst = 0; + _this6._viewsLength = 0; + _this6._lastRebind = 0; + _this6._topBufferHeight = 0; + _this6._bottomBufferHeight = 0; + _this6._bufferSize = 5; + _this6._scrollingDown = false; + _this6._scrollingUp = false; + _this6._switchedDirection = false; + _this6._isAttached = false; + _this6._ticking = false; + _this6._fixedHeightContainer = false; + _this6._hasCalculatedSizes = false; + _this6._isAtTop = true; + _this6._calledGetMore = false; + + _initDefineProp(_this6, 'items', _descriptor, _this6); + + _initDefineProp(_this6, 'local', _descriptor2, _this6); + + _this6.element = element; + _this6.viewFactory = viewFactory; + _this6.instruction = instruction; + _this6.viewSlot = viewSlot; + _this6.lookupFunctions = viewResources.lookupFunctions; + _this6.observerLocator = observerLocator; + _this6.strategyLocator = strategyLocator; + _this6.templateStrategyLocator = templateStrategyLocator; + _this6.sourceExpression = (0, _aureliaTemplatingResources.getItemsSourceExpression)(_this6.instruction, 'virtual-repeat.for'); + _this6.isOneTime = (0, _aureliaTemplatingResources.isOneTime)(_this6.sourceExpression); + _this6.domHelper = domHelper; + return _this6; } VirtualRepeat.prototype.attached = function attached() { - var _this6 = this; + var _this7 = this; this._isAttached = true; var element = this.element; @@ -678,15 +698,15 @@ var VirtualRepeat = exports.VirtualRepeat = (_dec4 = (0, _aureliaTemplating.cust this.bottomBuffer = this.templateStrategy.createBottomBufferElement(element); this.itemsChanged(); this.scrollListener = function () { - return _this6._onScroll(); + return _this7._onScroll(); }; this.calcDistanceToTopInterval = setInterval(function () { - var distanceToTop = _this6.distanceToTop; - _this6.distanceToTop = _this6.domHelper.getElementDistanceToTopOfDocument(_this6.topBuffer); - _this6.distanceToTop += _this6.topBufferDistance; - if (distanceToTop !== _this6.distanceToTop) { - _this6._handleScroll(); + var distanceToTop = _this7.distanceToTop; + _this7.distanceToTop = _this7.domHelper.getElementDistanceToTopOfDocument(_this7.topBuffer); + _this7.distanceToTop += _this7.topBufferDistance; + if (distanceToTop !== _this7.distanceToTop) { + _this7._handleScroll(); } }, 500); @@ -715,20 +735,9 @@ var VirtualRepeat = exports.VirtualRepeat = (_dec4 = (0, _aureliaTemplating.cust VirtualRepeat.prototype.detached = function detached() { this.scrollContainer.removeEventListener('scroll', this.scrollListener); - this._first = 0; - this._previousFirst = 0; - this._viewsLength = 0; - this._lastRebind = 0; - this._topBufferHeight = 0; - this._bottomBufferHeight = 0; - this._scrollingDown = false; - this._scrollingUp = false; - this._switchedDirection = false; + this._resetCalculation(); this._isAttached = false; - this._ticking = false; - this._hasCalculatedSizes = false; this.templateStrategy.removeBufferElements(this.element, this.topBuffer, this.bottomBuffer); - this.isLastIndex = false; this.scrollContainer = null; this.scrollContainerHeight = null; this.distanceToTop = null; @@ -753,40 +762,47 @@ var VirtualRepeat = exports.VirtualRepeat = (_dec4 = (0, _aureliaTemplating.cust var previousLastViewIndex = this._getIndexOfLastView(); var items = this.items; + var shouldCalculateSize = !!items; this.strategy = this.strategyLocator.getStrategy(items); - if (items.length > 0 && this.viewCount() === 0) { - this.strategy.createFirstItem(this); - } - if (this._itemsLength >= items.length) { - this._skipNextScrollHandle = true; - reducingItems = true; + if (shouldCalculateSize) { + if (items.length > 0 && this.viewCount() === 0) { + this.strategy.createFirstItem(this); + } + + if (this._itemsLength >= items.length) { + this._skipNextScrollHandle = true; + reducingItems = true; + } + this._checkFixedHeightContainer(); + this._calcInitialHeights(items.length); } - this._checkFixedHeightContainer(); - this._calcInitialHeights(items.length); if (!this.isOneTime && !this._observeInnerCollection()) { this._observeCollection(); } this.strategy.instanceChanged(this, items, this._first); - this._lastRebind = this._first; - if (reducingItems && previousLastViewIndex > this.items.length - 1) { - if (this.scrollContainer.tagName === 'TBODY') { - var realScrollContainer = this.scrollContainer.parentNode.parentNode; - realScrollContainer.scrollTop = realScrollContainer.scrollTop + this.viewCount() * this.itemHeight; - } else { - this.scrollContainer.scrollTop = this.scrollContainer.scrollTop + this.viewCount() * this.itemHeight; + if (shouldCalculateSize) { + this._lastRebind = this._first; + + if (reducingItems && previousLastViewIndex > this.items.length - 1) { + if (this.scrollContainer.tagName === 'TBODY') { + var realScrollContainer = this.scrollContainer.parentNode.parentNode; + realScrollContainer.scrollTop = realScrollContainer.scrollTop + this.viewCount() * this.itemHeight; + } else { + this.scrollContainer.scrollTop = this.scrollContainer.scrollTop + this.viewCount() * this.itemHeight; + } } - } - if (!reducingItems) { - this._previousFirst = this._first; - this._scrollingDown = true; - this._scrollingUp = false; + if (!reducingItems) { + this._previousFirst = this._first; + this._scrollingDown = true; + this._scrollingUp = false; - this.isLastIndex = this._getIndexOfLastView() >= this.items.length - 1; - } + this.isLastIndex = this._getIndexOfLastView() >= this.items.length - 1; + } - this._handleScroll(); + this._handleScroll(); + } }; VirtualRepeat.prototype.unbind = function unbind() { @@ -802,7 +818,7 @@ var VirtualRepeat = exports.VirtualRepeat = (_dec4 = (0, _aureliaTemplating.cust }; VirtualRepeat.prototype.handleInnerCollectionMutated = function handleInnerCollectionMutated(collection, changes) { - var _this7 = this; + var _this8 = this; if (this.ignoreMutation) { return; @@ -810,7 +826,7 @@ var VirtualRepeat = exports.VirtualRepeat = (_dec4 = (0, _aureliaTemplating.cust this.ignoreMutation = true; var newItems = this.sourceExpression.evaluate(this.scope, this.lookupFunctions); this.observerLocator.taskQueue.queueMicroTask(function () { - return _this7.ignoreMutation = false; + return _this8.ignoreMutation = false; }); if (newItems === this.items) { @@ -820,12 +836,30 @@ var VirtualRepeat = exports.VirtualRepeat = (_dec4 = (0, _aureliaTemplating.cust } }; + VirtualRepeat.prototype._resetCalculation = function _resetCalculation() { + this._first = 0; + this._previousFirst = 0; + this._viewsLength = 0; + this._lastRebind = 0; + this._topBufferHeight = 0; + this._bottomBufferHeight = 0; + this._scrollingDown = false; + this._scrollingUp = false; + this._switchedDirection = false; + this._ticking = false; + this._hasCalculatedSizes = false; + this._isAtTop = true; + this.isLastIndex = false; + this.elementsInView = 0; + this._adjustBufferHeights(); + }; + VirtualRepeat.prototype._onScroll = function _onScroll() { - var _this8 = this; + var _this9 = this; if (!this._ticking && !this._handlingMutations) { requestAnimationFrame(function () { - return _this8._handleScroll(); + return _this9._handleScroll(); }); this._ticking = true; } @@ -843,6 +877,9 @@ var VirtualRepeat = exports.VirtualRepeat = (_dec4 = (0, _aureliaTemplating.cust this._skipNextScrollHandle = false; return; } + if (!this.items) { + return; + } var itemHeight = this.itemHeight; var scrollTop = this._fixedHeightContainer ? this.scrollContainer.scrollTop : pageYOffset - this.distanceToTop; this._first = Math.floor(scrollTop / itemHeight); @@ -903,45 +940,45 @@ var VirtualRepeat = exports.VirtualRepeat = (_dec4 = (0, _aureliaTemplating.cust }; VirtualRepeat.prototype._getMore = function _getMore(force) { - var _this9 = this; + var _this10 = this; if (this.isLastIndex || this._first === 0 || force) { if (!this._calledGetMore) { var executeGetMore = function executeGetMore() { - _this9._calledGetMore = true; - var func = _this9.view(0) && _this9.view(0).firstChild && _this9.view(0).firstChild.au && _this9.view(0).firstChild.au['infinite-scroll-next'] ? _this9.view(0).firstChild.au['infinite-scroll-next'].instruction.attributes['infinite-scroll-next'] : undefined; - var topIndex = _this9._first; - var isAtBottom = _this9._bottomBufferHeight === 0; - var isAtTop = _this9._isAtTop; + _this10._calledGetMore = true; + var func = _this10.view(0) && _this10.view(0).firstChild && _this10.view(0).firstChild.au && _this10.view(0).firstChild.au['infinite-scroll-next'] ? _this10.view(0).firstChild.au['infinite-scroll-next'].instruction.attributes['infinite-scroll-next'] : undefined; + var topIndex = _this10._first; + var isAtBottom = _this10._bottomBufferHeight === 0; + var isAtTop = _this10._isAtTop; var scrollContext = { topIndex: topIndex, isAtBottom: isAtBottom, isAtTop: isAtTop }; - _this9.scope.overrideContext.$scrollContext = scrollContext; + _this10.scope.overrideContext.$scrollContext = scrollContext; if (func === undefined) { return null; } else if (typeof func === 'string') { - var getMoreFuncName = _this9.view(0).firstChild.getAttribute('infinite-scroll-next'); - var funcCall = _this9.scope.overrideContext.bindingContext[getMoreFuncName]; + var getMoreFuncName = _this10.view(0).firstChild.getAttribute('infinite-scroll-next'); + var funcCall = _this10.scope.overrideContext.bindingContext[getMoreFuncName]; if (typeof funcCall === 'function') { - var result = funcCall.call(_this9.scope.overrideContext.bindingContext, topIndex, isAtBottom, isAtTop); + var result = funcCall.call(_this10.scope.overrideContext.bindingContext, topIndex, isAtBottom, isAtTop); if (!(result instanceof Promise)) { - _this9._calledGetMore = false; + _this10._calledGetMore = false; } else { return result.then(function () { - _this9._calledGetMore = false; + _this10._calledGetMore = false; }); } } else { throw new Error("'infinite-scroll-next' must be a function or evaluate to one"); } } else if (func.sourceExpression) { - _this9._calledGetMore = false; - return func.sourceExpression.evaluate(_this9.scope); + _this10._calledGetMore = false; + return func.sourceExpression.evaluate(_this10.scope); } else { throw new Error("'infinite-scroll-next' must be a function or evaluate to one"); } @@ -997,7 +1034,7 @@ var VirtualRepeat = exports.VirtualRepeat = (_dec4 = (0, _aureliaTemplating.cust }; VirtualRepeat.prototype._moveViews = function _moveViews(length) { - var _this10 = this; + var _this11 = this; var getNextIndex = this._scrollingDown ? function (index, i) { return index + i; @@ -1005,7 +1042,7 @@ var VirtualRepeat = exports.VirtualRepeat = (_dec4 = (0, _aureliaTemplating.cust return index - i; }; var isAtFirstOrLastIndex = function isAtFirstOrLastIndex() { - return _this10._scrollingDown ? _this10.isLastIndex : _this10._isAtTop; + return _this11._scrollingDown ? _this11.isLastIndex : _this11._isAtTop; }; var childrenLength = this.viewCount(); var viewIndex = this._scrollingDown ? 0 : childrenLength - 1; @@ -1051,9 +1088,14 @@ var VirtualRepeat = exports.VirtualRepeat = (_dec4 = (0, _aureliaTemplating.cust }; VirtualRepeat.prototype._calcInitialHeights = function _calcInitialHeights(itemsLength) { - var _this11 = this; + var _this12 = this; - if (this._viewsLength > 0 && this._itemsLength === itemsLength || this._viewsLength > 0 && itemsLength < 0) { + var isSameLength = this._viewsLength > 0 && this._itemsLength === itemsLength; + if (isSameLength) { + return; + } + if (itemsLength < 1) { + this._resetCalculation(); return; } this._hasCalculatedSizes = true; @@ -1063,8 +1105,8 @@ var VirtualRepeat = exports.VirtualRepeat = (_dec4 = (0, _aureliaTemplating.cust this._sizeInterval = setInterval(function () { var newCalcSize = calcOuterHeight(firstViewElement); if (newCalcSize > 0) { - clearInterval(_this11._sizeInterval); - _this11.itemsChanged(); + clearInterval(_this12._sizeInterval); + _this12.itemsChanged(); } }, 500); return; diff --git a/doc/CHANGELOG.md b/doc/CHANGELOG.md index 34d3029..332b5f0 100644 --- a/doc/CHANGELOG.md +++ b/doc/CHANGELOG.md @@ -1,3 +1,13 @@ + +# [1.0.0-beta.3.3.0](https://github.com/aurelia/ui-virtualization/compare/1.0.0-beta.3.2.0...v1.0.0-beta.3.3.0) (2018-03-03) + + +### Features + +* **VirtualRepeat:** handle null / undefined, empty collection ([6f92c31](https://github.com/aurelia/ui-virtualization/commit/6f92c31)) + + + # [1.0.0-beta.3.2.0](https://github.com/aurelia/ui-virtualization/compare/1.0.0-beta.3.1.2...v1.0.0-beta.3.2.0) (2017-12-20) diff --git a/doc/api.json b/doc/api.json index 1296daa..427836f 100644 --- a/doc/api.json +++ b/doc/api.json @@ -1 +1 @@ -{"name":"aurelia-ui-virtualization","children":[{"id":50,"name":"ArrayVirtualRepeatStrategy","kind":128,"kindString":"Class","flags":{"isExported":true},"comment":{"shortText":"A strategy for repeating a template over an array."},"children":[{"id":51,"name":"createFirstItem","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":52,"name":"createFirstItem","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":53,"name":"repeat","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"VirtualRepeat","id":156}}],"type":{"type":"instrinct","name":"void"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":74,"character":17}]},{"id":64,"name":"getCollectionObserver","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":65,"name":"getCollectionObserver","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Gets an observer for the specified collection."},"parameters":[{"id":66,"name":"observerLocator","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"text":"The observer locator instance."},"type":{"type":"instrinct","name":"any"}},{"id":67,"name":"items","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"text":"The items to be observed.\n"},"type":{"type":"instrinct","name":"any"}}],"type":{"type":"instrinct","name":"any"},"inheritedFrom":{"type":"reference","name":"ArrayRepeatStrategy.getCollectionObserver"}}],"sources":[{"fileName":"/Users/EisenbergEffect/Documents/GitHub/The Durandal Project/aurelia/ui-virtualization/node_modules/aurelia-templating-resources/dist/aurelia-templating-resources.d.ts","line":460,"character":23}],"inheritedFrom":{"type":"reference","name":"ArrayRepeatStrategy.getCollectionObserver"}},{"id":54,"name":"instanceChanged","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":55,"name":"instanceChanged","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Handle the repeat's collection instance changing."},"parameters":[{"id":56,"name":"repeat","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The repeater instance."},"type":{"type":"reference","name":"VirtualRepeat","id":156}},{"id":57,"name":"items","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The new array instance.\n"},"type":{"type":"reference","name":"Array","typeArguments":[{"type":"instrinct","name":"any"}]}},{"id":58,"name":"rest","kind":32768,"kindString":"Parameter","flags":{"isRest":true},"type":{"type":"instrinct","isArray":true,"name":"any"}}],"type":{"type":"instrinct","name":"void"},"overwrites":{"type":"reference","name":"ArrayRepeatStrategy.instanceChanged"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":81,"character":17}],"overwrites":{"type":"reference","name":"ArrayRepeatStrategy.instanceChanged"}},{"id":59,"name":"instanceMutated","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":60,"name":"instanceMutated","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Handle the repeat's collection instance mutating."},"parameters":[{"id":61,"name":"repeat","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The repeat instance."},"type":{"type":"reference","name":"VirtualRepeat","id":156}},{"id":62,"name":"array","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The modified array."},"type":{"type":"reference","name":"Array","typeArguments":[{"type":"instrinct","name":"any"}]}},{"id":63,"name":"splices","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"Records of array changes.\n"},"type":{"type":"instrinct","name":"any"}}],"type":{"type":"instrinct","name":"void"},"overwrites":{"type":"reference","name":"ArrayRepeatStrategy.instanceMutated"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":89,"character":17}],"overwrites":{"type":"reference","name":"ArrayRepeatStrategy.instanceMutated"}}],"groups":[{"title":"Methods","kind":2048,"children":[51,64,54,59]}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":71,"character":47}],"extendedTypes":[{"type":"reference","name":"ArrayRepeatStrategy"}]},{"id":111,"name":"DefaultTemplateStrategy","kind":128,"kindString":"Class","flags":{"isExported":true},"children":[{"id":126,"name":"createBottomBufferElement","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":127,"name":"createBottomBufferElement","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":128,"name":"element","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}}],"type":{"type":"reference","name":"Element"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":113,"character":27}]},{"id":123,"name":"createTopBufferElement","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":124,"name":"createTopBufferElement","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":125,"name":"element","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}}],"type":{"type":"reference","name":"Element"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":112,"character":24}]},{"id":134,"name":"getFirstElement","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":135,"name":"getFirstElement","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":136,"name":"topBuffer","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}}],"type":{"type":"reference","name":"Element"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":115,"character":17}]},{"id":137,"name":"getLastElement","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":138,"name":"getLastElement","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":139,"name":"bottomBuffer","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}}],"type":{"type":"reference","name":"Element"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":116,"character":16}]},{"id":112,"name":"getScrollContainer","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":113,"name":"getScrollContainer","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":114,"name":"element","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}}],"type":{"type":"reference","name":"Element"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":109,"character":20}]},{"id":140,"name":"getTopBufferDistance","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":141,"name":"getTopBufferDistance","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":142,"name":"topBuffer","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}}],"type":{"type":"instrinct","name":"number"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":117,"character":22}]},{"id":115,"name":"moveViewFirst","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":116,"name":"moveViewFirst","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":117,"name":"view","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"View"}},{"id":118,"name":"topBuffer","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}}],"type":{"type":"instrinct","name":"void"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":110,"character":15}]},{"id":119,"name":"moveViewLast","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":120,"name":"moveViewLast","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":121,"name":"view","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"View"}},{"id":122,"name":"bottomBuffer","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}}],"type":{"type":"instrinct","name":"void"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":111,"character":14}]},{"id":129,"name":"removeBufferElements","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":130,"name":"removeBufferElements","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":131,"name":"element","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}},{"id":132,"name":"topBuffer","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}},{"id":133,"name":"bottomBuffer","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}}],"type":{"type":"instrinct","name":"void"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":114,"character":22}]}],"groups":[{"title":"Methods","kind":2048,"children":[126,123,134,137,112,140,115,119,129]}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":108,"character":44}]},{"id":34,"name":"DomHelper","kind":128,"kindString":"Class","flags":{"isExported":true},"children":[{"id":35,"name":"getElementDistanceToTopOfDocument","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":36,"name":"getElementDistanceToTopOfDocument","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":37,"name":"element","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}}],"type":{"type":"instrinct","name":"number"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":45,"character":35}]},{"id":38,"name":"hasOverflowScroll","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":39,"name":"hasOverflowScroll","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":40,"name":"element","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}}],"type":{"type":"instrinct","name":"boolean"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":46,"character":19}]}],"groups":[{"title":"Methods","kind":2048,"children":[35,38]}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":44,"character":30}]},{"id":41,"name":"InfiniteScrollNext","kind":128,"kindString":"Class","flags":{"isExported":true},"children":[{"id":42,"name":"constructor","kind":512,"kindString":"Constructor","flags":{"isExported":true},"signatures":[{"id":43,"name":"new InfiniteScrollNext","kind":16384,"kindString":"Constructor signature","flags":{},"type":{"type":"reference","name":"InfiniteScrollNext","id":41}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":50,"character":41}]},{"id":44,"name":"attached","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":45,"name":"attached","kind":4096,"kindString":"Call signature","flags":{},"type":{"type":"instrinct","name":"any"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":52,"character":10}]},{"id":46,"name":"bind","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":47,"name":"bind","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":48,"name":"bindingContext","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"type":{"type":"instrinct","name":"any"}},{"id":49,"name":"overrideContext","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"type":{"type":"instrinct","name":"any"}}],"type":{"type":"instrinct","name":"void"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":53,"character":6}]}],"groups":[{"title":"Constructors","kind":512,"children":[42]},{"title":"Methods","kind":2048,"children":[44,46]}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":50,"character":39}]},{"id":75,"name":"TableStrategy","kind":128,"kindString":"Class","flags":{"isExported":true},"children":[{"id":77,"name":"constructor","kind":512,"kindString":"Constructor","flags":{"isExported":true},"signatures":[{"id":78,"name":"new TableStrategy","kind":16384,"kindString":"Constructor signature","flags":{},"parameters":[{"id":79,"name":"domHelper","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"type":{"type":"instrinct","name":"any"}}],"type":{"type":"reference","name":"TableStrategy","id":75}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":96,"character":21}]},{"id":76,"name":"tableCssReset","kind":1024,"kindString":"Property","flags":{"isExported":true},"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":96,"character":15}],"type":{"type":"instrinct","name":"any"}},{"id":94,"name":"createBottomBufferElement","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":95,"name":"createBottomBufferElement","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":96,"name":"element","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}}],"type":{"type":"reference","name":"Element"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":102,"character":27}]},{"id":91,"name":"createTopBufferElement","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":92,"name":"createTopBufferElement","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":93,"name":"element","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}}],"type":{"type":"reference","name":"Element"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":101,"character":24}]},{"id":102,"name":"getFirstElement","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":103,"name":"getFirstElement","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":104,"name":"topBuffer","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}}],"type":{"type":"reference","name":"Element"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":104,"character":17}]},{"id":105,"name":"getLastElement","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":106,"name":"getLastElement","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":107,"name":"bottomBuffer","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}}],"type":{"type":"reference","name":"Element"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":105,"character":16}]},{"id":80,"name":"getScrollContainer","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":81,"name":"getScrollContainer","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":82,"name":"element","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}}],"type":{"type":"reference","name":"Element"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":98,"character":20}]},{"id":108,"name":"getTopBufferDistance","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":109,"name":"getTopBufferDistance","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":110,"name":"topBuffer","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}}],"type":{"type":"instrinct","name":"number"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":106,"character":22}]},{"id":83,"name":"moveViewFirst","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":84,"name":"moveViewFirst","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":85,"name":"view","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"View"}},{"id":86,"name":"topBuffer","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}}],"type":{"type":"instrinct","name":"void"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":99,"character":15}]},{"id":87,"name":"moveViewLast","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":88,"name":"moveViewLast","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":89,"name":"view","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"View"}},{"id":90,"name":"bottomBuffer","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}}],"type":{"type":"instrinct","name":"void"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":100,"character":14}]},{"id":97,"name":"removeBufferElements","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":98,"name":"removeBufferElements","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":99,"name":"element","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}},{"id":100,"name":"topBuffer","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}},{"id":101,"name":"bottomBuffer","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}}],"type":{"type":"instrinct","name":"void"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":103,"character":22}]}],"groups":[{"title":"Constructors","kind":512,"children":[77]},{"title":"Properties","kind":1024,"children":[76]},{"title":"Methods","kind":2048,"children":[94,91,102,105,80,108,83,87,97]}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":95,"character":34}]},{"id":68,"name":"TemplateStrategyLocator","kind":128,"kindString":"Class","flags":{"isExported":true},"children":[{"id":69,"name":"constructor","kind":512,"kindString":"Constructor","flags":{"isExported":true},"signatures":[{"id":70,"name":"new TemplateStrategyLocator","kind":16384,"kindString":"Constructor signature","flags":{},"parameters":[{"id":71,"name":"container","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Container"}}],"type":{"type":"reference","name":"TemplateStrategyLocator","id":68}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":91,"character":46}]},{"id":72,"name":"getStrategy","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":73,"name":"getStrategy","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":74,"name":"element","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}}],"type":{"type":"reference","name":"TemplateStrategy","id":2}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":93,"character":13}]}],"groups":[{"title":"Constructors","kind":512,"children":[69]},{"title":"Methods","kind":2048,"children":[72]}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":91,"character":44}]},{"id":156,"name":"VirtualRepeat","kind":128,"kindString":"Class","flags":{"isExported":true},"children":[{"id":159,"name":"constructor","kind":512,"kindString":"Constructor","flags":{"isExported":true},"signatures":[{"id":160,"name":"new VirtualRepeat","kind":16384,"kindString":"Constructor signature","flags":{},"parameters":[{"id":161,"name":"element","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}},{"id":162,"name":"viewFactory","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"BoundViewFactory"}},{"id":163,"name":"instruction","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"TargetInstruction"}},{"id":164,"name":"viewSlot","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"ViewSlot"}},{"id":165,"name":"viewResources","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"ViewResources"}},{"id":166,"name":"observerLocator","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"ObserverLocator"}},{"id":167,"name":"strategyLocator","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"VirtualRepeatStrategyLocator","id":143}},{"id":168,"name":"templateStrategyLocator","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"TemplateStrategyLocator","id":68}},{"id":169,"name":"domHelper","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"DomHelper","id":34}}],"type":{"type":"reference","name":"VirtualRepeat","id":156},"overwrites":{"type":"reference","name":"AbstractRepeater.__constructor"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":124,"character":13}],"overwrites":{"type":"reference","name":"AbstractRepeater.__constructor"}},{"id":157,"name":"items","kind":1024,"kindString":"Property","flags":{"isExported":true},"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":123,"character":7}],"type":{"type":"instrinct","name":"any"}},{"id":158,"name":"local","kind":1024,"kindString":"Property","flags":{"isExported":true},"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":124,"character":7}],"type":{"type":"instrinct","name":"any"}},{"id":201,"name":"addView","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":202,"name":"addView","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":203,"name":"bindingContext","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"type":{"type":"instrinct","name":"any"}},{"id":204,"name":"overrideContext","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"type":{"type":"instrinct","name":"any"}}],"type":{"type":"instrinct","name":"any"},"overwrites":{"type":"reference","name":"AbstractRepeater.addView"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":140,"character":9}],"overwrites":{"type":"reference","name":"AbstractRepeater.addView"}},{"id":170,"name":"attached","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":171,"name":"attached","kind":4096,"kindString":"Call signature","flags":{},"type":{"type":"instrinct","name":"void"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":126,"character":10}]},{"id":172,"name":"bind","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":173,"name":"bind","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":174,"name":"bindingContext","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"type":{"type":"instrinct","name":"any"}},{"id":175,"name":"overrideContext","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"type":{"type":"instrinct","name":"any"}}],"type":{"type":"instrinct","name":"void"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":127,"character":6}]},{"id":176,"name":"call","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":177,"name":"call","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":178,"name":"context","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"type":{"type":"instrinct","name":"any"}},{"id":179,"name":"changes","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"type":{"type":"instrinct","name":"any"}}],"type":{"type":"instrinct","name":"void"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":128,"character":6}]},{"id":180,"name":"detached","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":181,"name":"detached","kind":4096,"kindString":"Call signature","flags":{},"type":{"type":"instrinct","name":"void"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":129,"character":10}]},{"id":186,"name":"handleCollectionMutated","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":187,"name":"handleCollectionMutated","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":188,"name":"collection","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"type":{"type":"instrinct","name":"any"}},{"id":189,"name":"changes","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"type":{"type":"instrinct","name":"any"}}],"type":{"type":"instrinct","name":"void"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":132,"character":25}]},{"id":190,"name":"handleInnerCollectionMutated","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":191,"name":"handleInnerCollectionMutated","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":192,"name":"collection","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"type":{"type":"instrinct","name":"any"}},{"id":193,"name":"changes","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"type":{"type":"instrinct","name":"any"}}],"type":{"type":"instrinct","name":"void"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":133,"character":30}]},{"id":205,"name":"insertView","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":206,"name":"insertView","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":207,"name":"index","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"type":{"type":"instrinct","name":"any"}},{"id":208,"name":"bindingContext","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"type":{"type":"instrinct","name":"any"}},{"id":209,"name":"overrideContext","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"type":{"type":"instrinct","name":"any"}}],"type":{"type":"instrinct","name":"any"},"overwrites":{"type":"reference","name":"AbstractRepeater.insertView"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":141,"character":12}],"overwrites":{"type":"reference","name":"AbstractRepeater.insertView"}},{"id":182,"name":"itemsChanged","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":183,"name":"itemsChanged","kind":4096,"kindString":"Call signature","flags":{},"type":{"type":"instrinct","name":"void"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":130,"character":14}]},{"id":222,"name":"matcher","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":223,"name":"matcher","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Returns the matcher function to be used by the repeater, or null if strict matching is to be performed.","returns":"The requested matcher function.\n"},"type":{"type":"instrinct","name":"any"},"inheritedFrom":{"type":"reference","name":"AbstractRepeater.matcher"}}],"sources":[{"fileName":"/Users/EisenbergEffect/Documents/GitHub/The Durandal Project/aurelia/ui-virtualization/node_modules/aurelia-templating-resources/dist/aurelia-templating-resources.d.ts","line":384,"character":9}],"inheritedFrom":{"type":"reference","name":"AbstractRepeater.matcher"}},{"id":224,"name":"moveView","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":225,"name":"moveView","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Moves a view across the repeater."},"parameters":[{"id":226,"name":"sourceIndex","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"shortText":"The index where the view should be placed at.\n"},"type":{"type":"instrinct","name":"any"}},{"id":227,"name":"targetIndex","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"type":{"type":"instrinct","name":"any"}}],"type":{"type":"instrinct","name":"any"},"inheritedFrom":{"type":"reference","name":"AbstractRepeater.moveView"}}],"sources":[{"fileName":"/Users/EisenbergEffect/Documents/GitHub/The Durandal Project/aurelia/ui-virtualization/node_modules/aurelia-templating-resources/dist/aurelia-templating-resources.d.ts","line":411,"character":10}],"inheritedFrom":{"type":"reference","name":"AbstractRepeater.moveView"}},{"id":210,"name":"removeAllViews","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":211,"name":"removeAllViews","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":212,"name":"returnToCache","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"type":{"type":"instrinct","name":"any"}},{"id":213,"name":"skipAnimation","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"type":{"type":"instrinct","name":"any"}}],"type":{"type":"instrinct","name":"any"},"overwrites":{"type":"reference","name":"AbstractRepeater.removeAllViews"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":142,"character":16}],"overwrites":{"type":"reference","name":"AbstractRepeater.removeAllViews"}},{"id":214,"name":"removeView","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":215,"name":"removeView","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":216,"name":"index","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"type":{"type":"instrinct","name":"any"}},{"id":217,"name":"returnToCache","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"type":{"type":"instrinct","name":"any"}},{"id":218,"name":"skipAnimation","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"type":{"type":"instrinct","name":"any"}}],"type":{"type":"instrinct","name":"any"},"overwrites":{"type":"reference","name":"AbstractRepeater.removeView"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":143,"character":12}],"overwrites":{"type":"reference","name":"AbstractRepeater.removeView"}},{"id":228,"name":"removeViews","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":229,"name":"removeViews","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Removes an array of Views from the repeater.","returns":"\n"},"parameters":[{"id":230,"name":"viewsToRemove","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The array of views to be removed."},"type":{"type":"reference","name":"Array","typeArguments":[{"type":"reference","name":"View"}]}},{"id":231,"name":"returnToCache","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"text":"Should the view be returned to the view cache?"},"type":{"type":"instrinct","name":"boolean"}},{"id":232,"name":"skipAnimation","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"text":"Should the removal animation be skipped?"},"type":{"type":"instrinct","name":"boolean"}}],"type":{"type":"instrinct","name":"any"},"inheritedFrom":{"type":"reference","name":"AbstractRepeater.removeViews"}}],"sources":[{"fileName":"/Users/EisenbergEffect/Documents/GitHub/The Durandal Project/aurelia/ui-virtualization/node_modules/aurelia-templating-resources/dist/aurelia-templating-resources.d.ts","line":429,"character":13}],"inheritedFrom":{"type":"reference","name":"AbstractRepeater.removeViews"}},{"id":184,"name":"unbind","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":185,"name":"unbind","kind":4096,"kindString":"Call signature","flags":{},"type":{"type":"instrinct","name":"void"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":131,"character":8}]},{"id":219,"name":"updateBindings","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":220,"name":"updateBindings","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":221,"name":"view","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"View"}}],"type":{"type":"instrinct","name":"any"},"overwrites":{"type":"reference","name":"AbstractRepeater.updateBindings"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":144,"character":16}],"overwrites":{"type":"reference","name":"AbstractRepeater.updateBindings"}},{"id":198,"name":"view","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":199,"name":"view","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":200,"name":"index","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"type":{"type":"instrinct","name":"any"}}],"type":{"type":"instrinct","name":"any"},"overwrites":{"type":"reference","name":"AbstractRepeater.view"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":139,"character":6}],"overwrites":{"type":"reference","name":"AbstractRepeater.view"}},{"id":194,"name":"viewCount","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":195,"name":"viewCount","kind":4096,"kindString":"Call signature","flags":{},"type":{"type":"instrinct","name":"any"},"overwrites":{"type":"reference","name":"AbstractRepeater.viewCount"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":137,"character":11}],"overwrites":{"type":"reference","name":"AbstractRepeater.viewCount"}},{"id":196,"name":"views","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":197,"name":"views","kind":4096,"kindString":"Call signature","flags":{},"type":{"type":"instrinct","name":"any"},"overwrites":{"type":"reference","name":"AbstractRepeater.views"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":138,"character":7}],"overwrites":{"type":"reference","name":"AbstractRepeater.views"}}],"groups":[{"title":"Constructors","kind":512,"children":[159]},{"title":"Properties","kind":1024,"children":[157,158]},{"title":"Methods","kind":2048,"children":[201,170,172,176,180,186,190,205,182,222,224,210,214,228,184,219,198,194,196]}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":122,"character":34}],"extendedTypes":[{"type":"reference","name":"AbstractRepeater"}]},{"id":143,"name":"VirtualRepeatStrategyLocator","kind":128,"kindString":"Class","flags":{"isExported":true},"children":[{"id":144,"name":"constructor","kind":512,"kindString":"Constructor","flags":{"isExported":true},"signatures":[{"id":145,"name":"new VirtualRepeatStrategyLocator","kind":16384,"kindString":"Constructor signature","flags":{},"type":{"type":"reference","name":"VirtualRepeatStrategyLocator","id":143},"overwrites":{"type":"reference","name":"RepeatStrategyLocator.__constructor"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":119,"character":81}],"overwrites":{"type":"reference","name":"RepeatStrategyLocator.__constructor"}},{"id":146,"name":"addStrategy","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":147,"name":"addStrategy","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Adds a repeat strategy to be located when repeating a template over different collection types."},"parameters":[{"id":148,"name":"matcher","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reflection","declaration":{"id":149,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"signatures":[{"id":150,"name":"__call","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":151,"name":"items","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"instrinct","name":"any"}}],"type":{"type":"instrinct","name":"boolean"}}],"sources":[{"fileName":"/Users/EisenbergEffect/Documents/GitHub/The Durandal Project/aurelia/ui-virtualization/node_modules/aurelia-templating-resources/dist/aurelia-templating-resources.d.ts","line":653,"character":22}]}}},{"id":152,"name":"strategy","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"A repeat strategy that can iterate a specific collection type.\n"},"type":{"type":"reference","name":"RepeatStrategy"}}],"type":{"type":"instrinct","name":"any"},"inheritedFrom":{"type":"reference","name":"RepeatStrategyLocator.addStrategy"}}],"sources":[{"fileName":"/Users/EisenbergEffect/Documents/GitHub/The Durandal Project/aurelia/ui-virtualization/node_modules/aurelia-templating-resources/dist/aurelia-templating-resources.d.ts","line":653,"character":13}],"inheritedFrom":{"type":"reference","name":"RepeatStrategyLocator.addStrategy"}},{"id":153,"name":"getStrategy","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":154,"name":"getStrategy","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Gets the best strategy to handle iteration."},"parameters":[{"id":155,"name":"items","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"instrinct","name":"any"}}],"type":{"type":"reference","name":"RepeatStrategy"},"inheritedFrom":{"type":"reference","name":"RepeatStrategyLocator.getStrategy"}}],"sources":[{"fileName":"/Users/EisenbergEffect/Documents/GitHub/The Durandal Project/aurelia/ui-virtualization/node_modules/aurelia-templating-resources/dist/aurelia-templating-resources.d.ts","line":658,"character":13}],"inheritedFrom":{"type":"reference","name":"RepeatStrategyLocator.getStrategy"}}],"groups":[{"title":"Constructors","kind":512,"children":[144]},{"title":"Methods","kind":2048,"children":[146,153]}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":119,"character":49}],"extendedTypes":[{"type":"reference","name":"RepeatStrategyLocator"}]},{"id":2,"name":"TemplateStrategy","kind":256,"kindString":"Interface","flags":{"isExported":true},"children":[{"id":17,"name":"createBottomBufferElement","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":18,"name":"createBottomBufferElement","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":19,"name":"element","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}}],"type":{"type":"reference","name":"Element"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":38,"character":27}]},{"id":14,"name":"createTopBufferElement","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":15,"name":"createTopBufferElement","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":16,"name":"element","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}}],"type":{"type":"reference","name":"Element"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":37,"character":24}]},{"id":25,"name":"getFirstElement","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":26,"name":"getFirstElement","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":27,"name":"topBuffer","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}}],"type":{"type":"reference","name":"Element"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":40,"character":17}]},{"id":28,"name":"getLastView","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":29,"name":"getLastView","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":30,"name":"bottomBuffer","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}}],"type":{"type":"reference","name":"Element"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":41,"character":13}]},{"id":3,"name":"getScrollContainer","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":4,"name":"getScrollContainer","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":5,"name":"element","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}}],"type":{"type":"reference","name":"Element"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":34,"character":20}]},{"id":31,"name":"getTopBufferDistance","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":32,"name":"getTopBufferDistance","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":33,"name":"topBuffer","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}}],"type":{"type":"instrinct","name":"number"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":42,"character":22}]},{"id":6,"name":"moveViewFirst","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":7,"name":"moveViewFirst","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":8,"name":"view","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"View"}},{"id":9,"name":"topBuffer","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}}],"type":{"type":"instrinct","name":"void"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":35,"character":15}]},{"id":10,"name":"moveViewLast","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":11,"name":"moveViewLast","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":12,"name":"view","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"View"}},{"id":13,"name":"bottomBuffer","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}}],"type":{"type":"instrinct","name":"void"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":36,"character":14}]},{"id":20,"name":"removeBufferElements","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":21,"name":"removeBufferElements","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":22,"name":"element","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}},{"id":23,"name":"topBuffer","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}},{"id":24,"name":"bottomBuffer","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}}],"type":{"type":"instrinct","name":"void"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":39,"character":22}]}],"groups":[{"title":"Methods","kind":2048,"children":[17,14,25,28,3,31,6,10,20]}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":33,"character":41}]},{"id":233,"name":"calcOuterHeight","kind":64,"kindString":"Function","flags":{"isExported":true},"signatures":[{"id":234,"name":"calcOuterHeight","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":235,"name":"element","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}}],"type":{"type":"instrinct","name":"number"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":55,"character":39}]},{"id":254,"name":"getElementDistanceToBottomViewPort","kind":64,"kindString":"Function","flags":{"isExported":true},"signatures":[{"id":255,"name":"getElementDistanceToBottomViewPort","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":256,"name":"element","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}}],"type":{"type":"instrinct","name":"number"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":65,"character":58}]},{"id":257,"name":"getElementDistanceToTopViewPort","kind":64,"kindString":"Function","flags":{"isExported":true},"signatures":[{"id":258,"name":"getElementDistanceToTopViewPort","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":259,"name":"element","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}}],"type":{"type":"instrinct","name":"number"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":66,"character":55}]},{"id":250,"name":"getStyleValue","kind":64,"kindString":"Function","flags":{"isExported":true},"signatures":[{"id":251,"name":"getStyleValue","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":252,"name":"element","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}},{"id":253,"name":"style","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"instrinct","name":"string"}}],"type":{"type":"instrinct","name":"any"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":64,"character":37}]},{"id":236,"name":"insertBeforeNode","kind":64,"kindString":"Function","flags":{"isExported":true},"signatures":[{"id":237,"name":"insertBeforeNode","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":238,"name":"view","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"View"}},{"id":239,"name":"bottomBuffer","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"instrinct","name":"number"}}],"type":{"type":"instrinct","name":"void"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":56,"character":40}]},{"id":244,"name":"rebindAndMoveView","kind":64,"kindString":"Function","flags":{"isExported":true},"signatures":[{"id":245,"name":"rebindAndMoveView","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":246,"name":"repeat","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"VirtualRepeat","id":156}},{"id":247,"name":"view","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"View"}},{"id":248,"name":"index","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"instrinct","name":"number"}},{"id":249,"name":"moveToBottom","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"instrinct","name":"boolean"}}],"type":{"type":"instrinct","name":"void"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":63,"character":41}]},{"id":240,"name":"updateVirtualOverrideContexts","kind":64,"kindString":"Function","flags":{"isExported":true},"signatures":[{"id":241,"name":"updateVirtualOverrideContexts","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Update the override context."},"parameters":[{"id":242,"name":"repeat","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"VirtualRepeat","id":156}},{"id":243,"name":"startIndex","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"index in collection where to start updating.\n"},"type":{"type":"instrinct","name":"number"}}],"type":{"type":"instrinct","name":"void"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":62,"character":53}]}],"groups":[{"title":"Classes","kind":128,"children":[50,111,34,41,75,68,156,143]},{"title":"Interfaces","kind":256,"children":[2]},{"title":"Functions","kind":64,"children":[233,254,257,250,236,244,240]}]} \ No newline at end of file +{"name":"aurelia-ui-virtualization","children":[{"id":58,"name":"ArrayVirtualRepeatStrategy","kind":128,"kindString":"Class","flags":{"isExported":true},"comment":{"shortText":"A strategy for repeating a template over an array."},"children":[{"id":59,"name":"createFirstItem","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":60,"name":"createFirstItem","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":61,"name":"repeat","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"VirtualRepeat","id":164}}],"type":{"type":"instrinct","name":"void"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":78,"character":17}]},{"id":72,"name":"getCollectionObserver","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":73,"name":"getCollectionObserver","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Gets an observer for the specified collection."},"parameters":[{"id":74,"name":"observerLocator","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"text":"The observer locator instance."},"type":{"type":"instrinct","name":"any"}},{"id":75,"name":"items","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"text":"The items to be observed.\n"},"type":{"type":"instrinct","name":"any"}}],"type":{"type":"instrinct","name":"any"},"inheritedFrom":{"type":"reference","name":"ArrayRepeatStrategy.getCollectionObserver"}}],"sources":[{"fileName":"/Users/EisenbergEffect/Documents/GitHub/The Durandal Project/aurelia/ui-virtualization/node_modules/aurelia-templating-resources/dist/aurelia-templating-resources.d.ts","line":460,"character":23}],"inheritedFrom":{"type":"reference","name":"ArrayRepeatStrategy.getCollectionObserver"}},{"id":62,"name":"instanceChanged","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":63,"name":"instanceChanged","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Handle the repeat's collection instance changing."},"parameters":[{"id":64,"name":"repeat","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The repeater instance."},"type":{"type":"reference","name":"VirtualRepeat","id":164}},{"id":65,"name":"items","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The new array instance.\n"},"type":{"type":"reference","name":"Array","typeArguments":[{"type":"instrinct","name":"any"}]}},{"id":66,"name":"rest","kind":32768,"kindString":"Parameter","flags":{"isRest":true},"type":{"type":"instrinct","isArray":true,"name":"any"}}],"type":{"type":"instrinct","name":"void"},"overwrites":{"type":"reference","name":"ArrayRepeatStrategy.instanceChanged"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":85,"character":17}],"overwrites":{"type":"reference","name":"ArrayRepeatStrategy.instanceChanged"}},{"id":67,"name":"instanceMutated","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":68,"name":"instanceMutated","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Handle the repeat's collection instance mutating."},"parameters":[{"id":69,"name":"repeat","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The repeat instance."},"type":{"type":"reference","name":"VirtualRepeat","id":164}},{"id":70,"name":"array","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The modified array."},"type":{"type":"reference","name":"Array","typeArguments":[{"type":"instrinct","name":"any"}]}},{"id":71,"name":"splices","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"Records of array changes.\n"},"type":{"type":"instrinct","name":"any"}}],"type":{"type":"instrinct","name":"void"},"overwrites":{"type":"reference","name":"ArrayRepeatStrategy.instanceMutated"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":93,"character":17}],"overwrites":{"type":"reference","name":"ArrayRepeatStrategy.instanceMutated"}}],"groups":[{"title":"Methods","kind":2048,"children":[59,72,62,67]}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":75,"character":47}],"extendedTypes":[{"type":"reference","name":"ArrayRepeatStrategy"}]},{"id":119,"name":"DefaultTemplateStrategy","kind":128,"kindString":"Class","flags":{"isExported":true},"children":[{"id":134,"name":"createBottomBufferElement","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":135,"name":"createBottomBufferElement","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":136,"name":"element","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}}],"type":{"type":"reference","name":"Element"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":117,"character":27}]},{"id":131,"name":"createTopBufferElement","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":132,"name":"createTopBufferElement","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":133,"name":"element","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}}],"type":{"type":"reference","name":"Element"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":116,"character":24}]},{"id":142,"name":"getFirstElement","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":143,"name":"getFirstElement","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":144,"name":"topBuffer","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}}],"type":{"type":"reference","name":"Element"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":119,"character":17}]},{"id":145,"name":"getLastElement","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":146,"name":"getLastElement","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":147,"name":"bottomBuffer","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}}],"type":{"type":"reference","name":"Element"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":120,"character":16}]},{"id":120,"name":"getScrollContainer","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":121,"name":"getScrollContainer","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":122,"name":"element","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}}],"type":{"type":"reference","name":"Element"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":113,"character":20}]},{"id":148,"name":"getTopBufferDistance","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":149,"name":"getTopBufferDistance","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":150,"name":"topBuffer","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}}],"type":{"type":"instrinct","name":"number"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":121,"character":22}]},{"id":123,"name":"moveViewFirst","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":124,"name":"moveViewFirst","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":125,"name":"view","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"View"}},{"id":126,"name":"topBuffer","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}}],"type":{"type":"instrinct","name":"void"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":114,"character":15}]},{"id":127,"name":"moveViewLast","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":128,"name":"moveViewLast","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":129,"name":"view","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"View"}},{"id":130,"name":"bottomBuffer","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}}],"type":{"type":"instrinct","name":"void"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":115,"character":14}]},{"id":137,"name":"removeBufferElements","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":138,"name":"removeBufferElements","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":139,"name":"element","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}},{"id":140,"name":"topBuffer","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}},{"id":141,"name":"bottomBuffer","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}}],"type":{"type":"instrinct","name":"void"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":118,"character":22}]}],"groups":[{"title":"Methods","kind":2048,"children":[134,131,142,145,120,148,123,127,137]}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":112,"character":44}]},{"id":42,"name":"DomHelper","kind":128,"kindString":"Class","flags":{"isExported":true},"children":[{"id":43,"name":"getElementDistanceToTopOfDocument","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":44,"name":"getElementDistanceToTopOfDocument","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":45,"name":"element","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}}],"type":{"type":"instrinct","name":"number"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":49,"character":35}]},{"id":46,"name":"hasOverflowScroll","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":47,"name":"hasOverflowScroll","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":48,"name":"element","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}}],"type":{"type":"instrinct","name":"boolean"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":50,"character":19}]}],"groups":[{"title":"Methods","kind":2048,"children":[43,46]}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":48,"character":30}]},{"id":49,"name":"InfiniteScrollNext","kind":128,"kindString":"Class","flags":{"isExported":true},"children":[{"id":50,"name":"constructor","kind":512,"kindString":"Constructor","flags":{"isExported":true},"signatures":[{"id":51,"name":"new InfiniteScrollNext","kind":16384,"kindString":"Constructor signature","flags":{},"type":{"type":"reference","name":"InfiniteScrollNext","id":49}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":54,"character":41}]},{"id":52,"name":"attached","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":53,"name":"attached","kind":4096,"kindString":"Call signature","flags":{},"type":{"type":"instrinct","name":"any"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":56,"character":10}]},{"id":54,"name":"bind","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":55,"name":"bind","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":56,"name":"bindingContext","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"type":{"type":"instrinct","name":"any"}},{"id":57,"name":"overrideContext","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"type":{"type":"instrinct","name":"any"}}],"type":{"type":"instrinct","name":"void"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":57,"character":6}]}],"groups":[{"title":"Constructors","kind":512,"children":[50]},{"title":"Methods","kind":2048,"children":[52,54]}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":54,"character":39}]},{"id":34,"name":"NullVirtualRepeatStrategy","kind":128,"kindString":"Class","flags":{"isExported":true},"children":[{"id":38,"name":"getCollectionObserver","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":39,"name":"getCollectionObserver","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":40,"name":"observerLocator","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"type":{"type":"instrinct","name":"any"}},{"id":41,"name":"items","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"type":{"type":"instrinct","name":"any"}}],"type":{"type":"instrinct","name":"any"},"inheritedFrom":{"type":"reference","name":"NullRepeatStrategy.getCollectionObserver"}}],"sources":[{"fileName":"/Users/EisenbergEffect/Documents/GitHub/The Durandal Project/aurelia/ui-virtualization/node_modules/aurelia-templating-resources/dist/aurelia-templating-resources.d.ts","line":180,"character":23}],"inheritedFrom":{"type":"reference","name":"NullRepeatStrategy.getCollectionObserver"}},{"id":35,"name":"instanceChanged","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":36,"name":"instanceChanged","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":37,"name":"repeat","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"type":{"type":"instrinct","name":"any"}}],"type":{"type":"instrinct","name":"any"},"overwrites":{"type":"reference","name":"NullRepeatStrategy.instanceChanged"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":46,"character":17}],"overwrites":{"type":"reference","name":"NullRepeatStrategy.instanceChanged"}}],"groups":[{"title":"Methods","kind":2048,"children":[38,35]}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":45,"character":46}],"extendedTypes":[{"type":"reference","name":"NullRepeatStrategy"}]},{"id":83,"name":"TableStrategy","kind":128,"kindString":"Class","flags":{"isExported":true},"children":[{"id":85,"name":"constructor","kind":512,"kindString":"Constructor","flags":{"isExported":true},"signatures":[{"id":86,"name":"new TableStrategy","kind":16384,"kindString":"Constructor signature","flags":{},"parameters":[{"id":87,"name":"domHelper","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"type":{"type":"instrinct","name":"any"}}],"type":{"type":"reference","name":"TableStrategy","id":83}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":100,"character":21}]},{"id":84,"name":"tableCssReset","kind":1024,"kindString":"Property","flags":{"isExported":true},"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":100,"character":15}],"type":{"type":"instrinct","name":"any"}},{"id":102,"name":"createBottomBufferElement","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":103,"name":"createBottomBufferElement","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":104,"name":"element","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}}],"type":{"type":"reference","name":"Element"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":106,"character":27}]},{"id":99,"name":"createTopBufferElement","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":100,"name":"createTopBufferElement","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":101,"name":"element","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}}],"type":{"type":"reference","name":"Element"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":105,"character":24}]},{"id":110,"name":"getFirstElement","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":111,"name":"getFirstElement","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":112,"name":"topBuffer","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}}],"type":{"type":"reference","name":"Element"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":108,"character":17}]},{"id":113,"name":"getLastElement","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":114,"name":"getLastElement","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":115,"name":"bottomBuffer","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}}],"type":{"type":"reference","name":"Element"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":109,"character":16}]},{"id":88,"name":"getScrollContainer","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":89,"name":"getScrollContainer","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":90,"name":"element","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}}],"type":{"type":"reference","name":"Element"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":102,"character":20}]},{"id":116,"name":"getTopBufferDistance","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":117,"name":"getTopBufferDistance","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":118,"name":"topBuffer","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}}],"type":{"type":"instrinct","name":"number"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":110,"character":22}]},{"id":91,"name":"moveViewFirst","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":92,"name":"moveViewFirst","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":93,"name":"view","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"View"}},{"id":94,"name":"topBuffer","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}}],"type":{"type":"instrinct","name":"void"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":103,"character":15}]},{"id":95,"name":"moveViewLast","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":96,"name":"moveViewLast","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":97,"name":"view","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"View"}},{"id":98,"name":"bottomBuffer","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}}],"type":{"type":"instrinct","name":"void"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":104,"character":14}]},{"id":105,"name":"removeBufferElements","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":106,"name":"removeBufferElements","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":107,"name":"element","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}},{"id":108,"name":"topBuffer","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}},{"id":109,"name":"bottomBuffer","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}}],"type":{"type":"instrinct","name":"void"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":107,"character":22}]}],"groups":[{"title":"Constructors","kind":512,"children":[85]},{"title":"Properties","kind":1024,"children":[84]},{"title":"Methods","kind":2048,"children":[102,99,110,113,88,116,91,95,105]}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":99,"character":34}]},{"id":76,"name":"TemplateStrategyLocator","kind":128,"kindString":"Class","flags":{"isExported":true},"children":[{"id":77,"name":"constructor","kind":512,"kindString":"Constructor","flags":{"isExported":true},"signatures":[{"id":78,"name":"new TemplateStrategyLocator","kind":16384,"kindString":"Constructor signature","flags":{},"parameters":[{"id":79,"name":"container","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Container"}}],"type":{"type":"reference","name":"TemplateStrategyLocator","id":76}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":95,"character":46}]},{"id":80,"name":"getStrategy","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":81,"name":"getStrategy","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":82,"name":"element","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}}],"type":{"type":"reference","name":"TemplateStrategy","id":2}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":97,"character":13}]}],"groups":[{"title":"Constructors","kind":512,"children":[77]},{"title":"Methods","kind":2048,"children":[80]}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":95,"character":44}]},{"id":164,"name":"VirtualRepeat","kind":128,"kindString":"Class","flags":{"isExported":true},"children":[{"id":167,"name":"constructor","kind":512,"kindString":"Constructor","flags":{"isExported":true},"signatures":[{"id":168,"name":"new VirtualRepeat","kind":16384,"kindString":"Constructor signature","flags":{},"parameters":[{"id":169,"name":"element","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}},{"id":170,"name":"viewFactory","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"BoundViewFactory"}},{"id":171,"name":"instruction","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"TargetInstruction"}},{"id":172,"name":"viewSlot","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"ViewSlot"}},{"id":173,"name":"viewResources","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"ViewResources"}},{"id":174,"name":"observerLocator","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"ObserverLocator"}},{"id":175,"name":"strategyLocator","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"VirtualRepeatStrategyLocator","id":151}},{"id":176,"name":"templateStrategyLocator","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"TemplateStrategyLocator","id":76}},{"id":177,"name":"domHelper","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"DomHelper","id":42}}],"type":{"type":"reference","name":"VirtualRepeat","id":164},"overwrites":{"type":"reference","name":"AbstractRepeater.__constructor"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":128,"character":13}],"overwrites":{"type":"reference","name":"AbstractRepeater.__constructor"}},{"id":165,"name":"items","kind":1024,"kindString":"Property","flags":{"isExported":true},"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":127,"character":7}],"type":{"type":"instrinct","name":"any"}},{"id":166,"name":"local","kind":1024,"kindString":"Property","flags":{"isExported":true},"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":128,"character":7}],"type":{"type":"instrinct","name":"any"}},{"id":209,"name":"addView","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":210,"name":"addView","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":211,"name":"bindingContext","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"type":{"type":"instrinct","name":"any"}},{"id":212,"name":"overrideContext","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"type":{"type":"instrinct","name":"any"}}],"type":{"type":"instrinct","name":"any"},"overwrites":{"type":"reference","name":"AbstractRepeater.addView"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":144,"character":9}],"overwrites":{"type":"reference","name":"AbstractRepeater.addView"}},{"id":178,"name":"attached","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":179,"name":"attached","kind":4096,"kindString":"Call signature","flags":{},"type":{"type":"instrinct","name":"void"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":130,"character":10}]},{"id":180,"name":"bind","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":181,"name":"bind","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":182,"name":"bindingContext","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"type":{"type":"instrinct","name":"any"}},{"id":183,"name":"overrideContext","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"type":{"type":"instrinct","name":"any"}}],"type":{"type":"instrinct","name":"void"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":131,"character":6}]},{"id":184,"name":"call","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":185,"name":"call","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":186,"name":"context","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"type":{"type":"instrinct","name":"any"}},{"id":187,"name":"changes","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"type":{"type":"instrinct","name":"any"}}],"type":{"type":"instrinct","name":"void"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":132,"character":6}]},{"id":188,"name":"detached","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":189,"name":"detached","kind":4096,"kindString":"Call signature","flags":{},"type":{"type":"instrinct","name":"void"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":133,"character":10}]},{"id":194,"name":"handleCollectionMutated","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":195,"name":"handleCollectionMutated","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":196,"name":"collection","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"type":{"type":"instrinct","name":"any"}},{"id":197,"name":"changes","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"type":{"type":"instrinct","name":"any"}}],"type":{"type":"instrinct","name":"void"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":136,"character":25}]},{"id":198,"name":"handleInnerCollectionMutated","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":199,"name":"handleInnerCollectionMutated","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":200,"name":"collection","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"type":{"type":"instrinct","name":"any"}},{"id":201,"name":"changes","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"type":{"type":"instrinct","name":"any"}}],"type":{"type":"instrinct","name":"void"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":137,"character":30}]},{"id":213,"name":"insertView","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":214,"name":"insertView","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":215,"name":"index","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"type":{"type":"instrinct","name":"any"}},{"id":216,"name":"bindingContext","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"type":{"type":"instrinct","name":"any"}},{"id":217,"name":"overrideContext","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"type":{"type":"instrinct","name":"any"}}],"type":{"type":"instrinct","name":"any"},"overwrites":{"type":"reference","name":"AbstractRepeater.insertView"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":145,"character":12}],"overwrites":{"type":"reference","name":"AbstractRepeater.insertView"}},{"id":190,"name":"itemsChanged","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":191,"name":"itemsChanged","kind":4096,"kindString":"Call signature","flags":{},"type":{"type":"instrinct","name":"void"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":134,"character":14}]},{"id":230,"name":"matcher","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":231,"name":"matcher","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Returns the matcher function to be used by the repeater, or null if strict matching is to be performed.","returns":"The requested matcher function.\n"},"type":{"type":"instrinct","name":"any"},"inheritedFrom":{"type":"reference","name":"AbstractRepeater.matcher"}}],"sources":[{"fileName":"/Users/EisenbergEffect/Documents/GitHub/The Durandal Project/aurelia/ui-virtualization/node_modules/aurelia-templating-resources/dist/aurelia-templating-resources.d.ts","line":384,"character":9}],"inheritedFrom":{"type":"reference","name":"AbstractRepeater.matcher"}},{"id":232,"name":"moveView","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":233,"name":"moveView","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Moves a view across the repeater."},"parameters":[{"id":234,"name":"sourceIndex","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"shortText":"The index where the view should be placed at.\n"},"type":{"type":"instrinct","name":"any"}},{"id":235,"name":"targetIndex","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"type":{"type":"instrinct","name":"any"}}],"type":{"type":"instrinct","name":"any"},"inheritedFrom":{"type":"reference","name":"AbstractRepeater.moveView"}}],"sources":[{"fileName":"/Users/EisenbergEffect/Documents/GitHub/The Durandal Project/aurelia/ui-virtualization/node_modules/aurelia-templating-resources/dist/aurelia-templating-resources.d.ts","line":411,"character":10}],"inheritedFrom":{"type":"reference","name":"AbstractRepeater.moveView"}},{"id":218,"name":"removeAllViews","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":219,"name":"removeAllViews","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":220,"name":"returnToCache","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"type":{"type":"instrinct","name":"any"}},{"id":221,"name":"skipAnimation","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"type":{"type":"instrinct","name":"any"}}],"type":{"type":"instrinct","name":"any"},"overwrites":{"type":"reference","name":"AbstractRepeater.removeAllViews"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":146,"character":16}],"overwrites":{"type":"reference","name":"AbstractRepeater.removeAllViews"}},{"id":222,"name":"removeView","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":223,"name":"removeView","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":224,"name":"index","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"type":{"type":"instrinct","name":"any"}},{"id":225,"name":"returnToCache","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"type":{"type":"instrinct","name":"any"}},{"id":226,"name":"skipAnimation","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"type":{"type":"instrinct","name":"any"}}],"type":{"type":"instrinct","name":"any"},"overwrites":{"type":"reference","name":"AbstractRepeater.removeView"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":147,"character":12}],"overwrites":{"type":"reference","name":"AbstractRepeater.removeView"}},{"id":236,"name":"removeViews","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":237,"name":"removeViews","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Removes an array of Views from the repeater.","returns":"\n"},"parameters":[{"id":238,"name":"viewsToRemove","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"The array of views to be removed."},"type":{"type":"reference","name":"Array","typeArguments":[{"type":"reference","name":"View"}]}},{"id":239,"name":"returnToCache","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"text":"Should the view be returned to the view cache?"},"type":{"type":"instrinct","name":"boolean"}},{"id":240,"name":"skipAnimation","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"comment":{"text":"Should the removal animation be skipped?"},"type":{"type":"instrinct","name":"boolean"}}],"type":{"type":"instrinct","name":"any"},"inheritedFrom":{"type":"reference","name":"AbstractRepeater.removeViews"}}],"sources":[{"fileName":"/Users/EisenbergEffect/Documents/GitHub/The Durandal Project/aurelia/ui-virtualization/node_modules/aurelia-templating-resources/dist/aurelia-templating-resources.d.ts","line":429,"character":13}],"inheritedFrom":{"type":"reference","name":"AbstractRepeater.removeViews"}},{"id":192,"name":"unbind","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":193,"name":"unbind","kind":4096,"kindString":"Call signature","flags":{},"type":{"type":"instrinct","name":"void"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":135,"character":8}]},{"id":227,"name":"updateBindings","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":228,"name":"updateBindings","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":229,"name":"view","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"View"}}],"type":{"type":"instrinct","name":"any"},"overwrites":{"type":"reference","name":"AbstractRepeater.updateBindings"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":148,"character":16}],"overwrites":{"type":"reference","name":"AbstractRepeater.updateBindings"}},{"id":206,"name":"view","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":207,"name":"view","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":208,"name":"index","kind":32768,"kindString":"Parameter","flags":{"isOptional":true},"type":{"type":"instrinct","name":"any"}}],"type":{"type":"instrinct","name":"any"},"overwrites":{"type":"reference","name":"AbstractRepeater.view"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":143,"character":6}],"overwrites":{"type":"reference","name":"AbstractRepeater.view"}},{"id":202,"name":"viewCount","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":203,"name":"viewCount","kind":4096,"kindString":"Call signature","flags":{},"type":{"type":"instrinct","name":"any"},"overwrites":{"type":"reference","name":"AbstractRepeater.viewCount"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":141,"character":11}],"overwrites":{"type":"reference","name":"AbstractRepeater.viewCount"}},{"id":204,"name":"views","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":205,"name":"views","kind":4096,"kindString":"Call signature","flags":{},"type":{"type":"instrinct","name":"any"},"overwrites":{"type":"reference","name":"AbstractRepeater.views"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":142,"character":7}],"overwrites":{"type":"reference","name":"AbstractRepeater.views"}}],"groups":[{"title":"Constructors","kind":512,"children":[167]},{"title":"Properties","kind":1024,"children":[165,166]},{"title":"Methods","kind":2048,"children":[209,178,180,184,188,194,198,213,190,230,232,218,222,236,192,227,206,202,204]}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":126,"character":34}],"extendedTypes":[{"type":"reference","name":"AbstractRepeater"}]},{"id":151,"name":"VirtualRepeatStrategyLocator","kind":128,"kindString":"Class","flags":{"isExported":true},"children":[{"id":152,"name":"constructor","kind":512,"kindString":"Constructor","flags":{"isExported":true},"signatures":[{"id":153,"name":"new VirtualRepeatStrategyLocator","kind":16384,"kindString":"Constructor signature","flags":{},"type":{"type":"reference","name":"VirtualRepeatStrategyLocator","id":151},"overwrites":{"type":"reference","name":"RepeatStrategyLocator.__constructor"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":123,"character":81}],"overwrites":{"type":"reference","name":"RepeatStrategyLocator.__constructor"}},{"id":154,"name":"addStrategy","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":155,"name":"addStrategy","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Adds a repeat strategy to be located when repeating a template over different collection types."},"parameters":[{"id":156,"name":"matcher","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reflection","declaration":{"id":157,"name":"__type","kind":65536,"kindString":"Type literal","flags":{},"signatures":[{"id":158,"name":"__call","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":159,"name":"items","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"instrinct","name":"any"}}],"type":{"type":"instrinct","name":"boolean"}}],"sources":[{"fileName":"/Users/EisenbergEffect/Documents/GitHub/The Durandal Project/aurelia/ui-virtualization/node_modules/aurelia-templating-resources/dist/aurelia-templating-resources.d.ts","line":653,"character":22}]}}},{"id":160,"name":"strategy","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"A repeat strategy that can iterate a specific collection type.\n"},"type":{"type":"reference","name":"RepeatStrategy"}}],"type":{"type":"instrinct","name":"any"},"inheritedFrom":{"type":"reference","name":"RepeatStrategyLocator.addStrategy"}}],"sources":[{"fileName":"/Users/EisenbergEffect/Documents/GitHub/The Durandal Project/aurelia/ui-virtualization/node_modules/aurelia-templating-resources/dist/aurelia-templating-resources.d.ts","line":653,"character":13}],"inheritedFrom":{"type":"reference","name":"RepeatStrategyLocator.addStrategy"}},{"id":161,"name":"getStrategy","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":162,"name":"getStrategy","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Gets the best strategy to handle iteration."},"parameters":[{"id":163,"name":"items","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"instrinct","name":"any"}}],"type":{"type":"reference","name":"RepeatStrategy"},"inheritedFrom":{"type":"reference","name":"RepeatStrategyLocator.getStrategy"}}],"sources":[{"fileName":"/Users/EisenbergEffect/Documents/GitHub/The Durandal Project/aurelia/ui-virtualization/node_modules/aurelia-templating-resources/dist/aurelia-templating-resources.d.ts","line":658,"character":13}],"inheritedFrom":{"type":"reference","name":"RepeatStrategyLocator.getStrategy"}}],"groups":[{"title":"Constructors","kind":512,"children":[152]},{"title":"Methods","kind":2048,"children":[154,161]}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":123,"character":49}],"extendedTypes":[{"type":"reference","name":"RepeatStrategyLocator"}]},{"id":2,"name":"TemplateStrategy","kind":256,"kindString":"Interface","flags":{"isExported":true},"children":[{"id":17,"name":"createBottomBufferElement","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":18,"name":"createBottomBufferElement","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":19,"name":"element","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}}],"type":{"type":"reference","name":"Element"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":39,"character":27}]},{"id":14,"name":"createTopBufferElement","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":15,"name":"createTopBufferElement","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":16,"name":"element","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}}],"type":{"type":"reference","name":"Element"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":38,"character":24}]},{"id":25,"name":"getFirstElement","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":26,"name":"getFirstElement","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":27,"name":"topBuffer","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}}],"type":{"type":"reference","name":"Element"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":41,"character":17}]},{"id":28,"name":"getLastView","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":29,"name":"getLastView","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":30,"name":"bottomBuffer","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}}],"type":{"type":"reference","name":"Element"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":42,"character":13}]},{"id":3,"name":"getScrollContainer","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":4,"name":"getScrollContainer","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":5,"name":"element","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}}],"type":{"type":"reference","name":"Element"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":35,"character":20}]},{"id":31,"name":"getTopBufferDistance","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":32,"name":"getTopBufferDistance","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":33,"name":"topBuffer","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}}],"type":{"type":"instrinct","name":"number"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":43,"character":22}]},{"id":6,"name":"moveViewFirst","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":7,"name":"moveViewFirst","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":8,"name":"view","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"View"}},{"id":9,"name":"topBuffer","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}}],"type":{"type":"instrinct","name":"void"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":36,"character":15}]},{"id":10,"name":"moveViewLast","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":11,"name":"moveViewLast","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":12,"name":"view","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"View"}},{"id":13,"name":"bottomBuffer","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}}],"type":{"type":"instrinct","name":"void"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":37,"character":14}]},{"id":20,"name":"removeBufferElements","kind":2048,"kindString":"Method","flags":{"isExported":true},"signatures":[{"id":21,"name":"removeBufferElements","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":22,"name":"element","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}},{"id":23,"name":"topBuffer","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}},{"id":24,"name":"bottomBuffer","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}}],"type":{"type":"instrinct","name":"void"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":40,"character":22}]}],"groups":[{"title":"Methods","kind":2048,"children":[17,14,25,28,3,31,6,10,20]}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":34,"character":41}]},{"id":241,"name":"calcOuterHeight","kind":64,"kindString":"Function","flags":{"isExported":true},"signatures":[{"id":242,"name":"calcOuterHeight","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":243,"name":"element","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}}],"type":{"type":"instrinct","name":"number"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":59,"character":39}]},{"id":262,"name":"getElementDistanceToBottomViewPort","kind":64,"kindString":"Function","flags":{"isExported":true},"signatures":[{"id":263,"name":"getElementDistanceToBottomViewPort","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":264,"name":"element","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}}],"type":{"type":"instrinct","name":"number"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":69,"character":58}]},{"id":265,"name":"getElementDistanceToTopViewPort","kind":64,"kindString":"Function","flags":{"isExported":true},"signatures":[{"id":266,"name":"getElementDistanceToTopViewPort","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":267,"name":"element","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}}],"type":{"type":"instrinct","name":"number"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":70,"character":55}]},{"id":258,"name":"getStyleValue","kind":64,"kindString":"Function","flags":{"isExported":true},"signatures":[{"id":259,"name":"getStyleValue","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":260,"name":"element","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"Element"}},{"id":261,"name":"style","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"instrinct","name":"string"}}],"type":{"type":"instrinct","name":"any"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":68,"character":37}]},{"id":244,"name":"insertBeforeNode","kind":64,"kindString":"Function","flags":{"isExported":true},"signatures":[{"id":245,"name":"insertBeforeNode","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":246,"name":"view","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"View"}},{"id":247,"name":"bottomBuffer","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"instrinct","name":"number"}}],"type":{"type":"instrinct","name":"void"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":60,"character":40}]},{"id":252,"name":"rebindAndMoveView","kind":64,"kindString":"Function","flags":{"isExported":true},"signatures":[{"id":253,"name":"rebindAndMoveView","kind":4096,"kindString":"Call signature","flags":{},"parameters":[{"id":254,"name":"repeat","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"VirtualRepeat","id":164}},{"id":255,"name":"view","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"View"}},{"id":256,"name":"index","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"instrinct","name":"number"}},{"id":257,"name":"moveToBottom","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"instrinct","name":"boolean"}}],"type":{"type":"instrinct","name":"void"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":67,"character":41}]},{"id":248,"name":"updateVirtualOverrideContexts","kind":64,"kindString":"Function","flags":{"isExported":true},"signatures":[{"id":249,"name":"updateVirtualOverrideContexts","kind":4096,"kindString":"Call signature","flags":{},"comment":{"shortText":"Update the override context."},"parameters":[{"id":250,"name":"repeat","kind":32768,"kindString":"Parameter","flags":{},"type":{"type":"reference","name":"VirtualRepeat","id":164}},{"id":251,"name":"startIndex","kind":32768,"kindString":"Parameter","flags":{},"comment":{"text":"index in collection where to start updating.\n"},"type":{"type":"instrinct","name":"number"}}],"type":{"type":"instrinct","name":"void"}}],"sources":[{"fileName":"aurelia-ui-virtualization.d.ts","line":66,"character":53}]}],"groups":[{"title":"Classes","kind":128,"children":[58,119,42,49,34,83,76,164,151]},{"title":"Interfaces","kind":256,"children":[2]},{"title":"Functions","kind":64,"children":[241,262,265,258,244,252,248]}]} \ No newline at end of file diff --git a/package.json b/package.json index bda299c..3607644 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "aurelia-ui-virtualization", - "version": "1.0.0-beta.3.2.0", + "version": "1.0.0-beta.3.3.0", "description": "A plugin that provides a virtualized repeater and other virtualization services.", "keywords": [ "aurelia",