virtual-scroller 1.7.9 → 1.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.gitlab-ci.yml +1 -1
- package/CHANGELOG.md +71 -1
- package/README.md +434 -151
- package/bundle/index-bypass.html +1 -1
- package/bundle/index-dom.html +1 -1
- package/bundle/index-grid.html +1 -2
- package/bundle/index-scrollableContainer.html +1 -1
- package/bundle/index-tbody-scrollableContainer.html +2 -0
- package/bundle/index-tbody.html +2 -0
- package/bundle/virtual-scroller-dom.js +1 -1
- package/bundle/virtual-scroller-dom.js.map +1 -1
- package/bundle/virtual-scroller-react.js +1 -1
- package/bundle/virtual-scroller-react.js.map +1 -1
- package/bundle/virtual-scroller.js +1 -1
- package/bundle/virtual-scroller.js.map +1 -1
- package/commonjs/BeforeResize.js +315 -0
- package/commonjs/BeforeResize.js.map +1 -0
- package/commonjs/DOM/Engine.js +46 -0
- package/commonjs/DOM/Engine.js.map +1 -0
- package/commonjs/DOM/ItemsContainer.js +78 -0
- package/commonjs/DOM/ItemsContainer.js.map +1 -0
- package/commonjs/DOM/{WaitForStylesToLoad.js → ListTopOffsetWatcher.js} +71 -44
- package/commonjs/DOM/ListTopOffsetWatcher.js.map +1 -0
- package/commonjs/DOM/ScrollableContainer.js +69 -101
- package/commonjs/DOM/ScrollableContainer.js.map +1 -1
- package/commonjs/DOM/VirtualScroller.js +37 -29
- package/commonjs/DOM/VirtualScroller.js.map +1 -1
- package/commonjs/DOM/tbody.js +17 -11
- package/commonjs/DOM/tbody.js.map +1 -1
- package/commonjs/ItemHeights.js +33 -34
- package/commonjs/ItemHeights.js.map +1 -1
- package/commonjs/Layout.js +591 -216
- package/commonjs/Layout.js.map +1 -1
- package/commonjs/Layout.test.js +196 -0
- package/commonjs/Layout.test.js.map +1 -0
- package/commonjs/ListHeightMeasurement.js +124 -0
- package/commonjs/ListHeightMeasurement.js.map +1 -0
- package/commonjs/Resize.js +50 -39
- package/commonjs/Resize.js.map +1 -1
- package/commonjs/Scroll.js +139 -95
- package/commonjs/Scroll.js.map +1 -1
- package/commonjs/VirtualScroller.columns.js +43 -0
- package/commonjs/VirtualScroller.columns.js.map +1 -0
- package/commonjs/VirtualScroller.constructor.js +408 -0
- package/commonjs/VirtualScroller.constructor.js.map +1 -0
- package/commonjs/VirtualScroller.items.js +305 -0
- package/commonjs/VirtualScroller.items.js.map +1 -0
- package/commonjs/VirtualScroller.js +160 -1021
- package/commonjs/VirtualScroller.js.map +1 -1
- package/commonjs/VirtualScroller.layout.js +562 -0
- package/commonjs/VirtualScroller.layout.js.map +1 -0
- package/commonjs/VirtualScroller.onRender.js +357 -0
- package/commonjs/VirtualScroller.onRender.js.map +1 -0
- package/commonjs/VirtualScroller.resize.js +186 -0
- package/commonjs/VirtualScroller.resize.js.map +1 -0
- package/commonjs/VirtualScroller.state.js +301 -0
- package/commonjs/VirtualScroller.state.js.map +1 -0
- package/commonjs/VirtualScroller.verticalSpacing.js +65 -0
- package/commonjs/VirtualScroller.verticalSpacing.js.map +1 -0
- package/commonjs/getItemCoordinates.js.map +1 -1
- package/commonjs/getItemsDiff.js.map +1 -1
- package/commonjs/getVerticalSpacing.js +8 -8
- package/commonjs/getVerticalSpacing.js.map +1 -1
- package/commonjs/package.json +5 -0
- package/commonjs/react/VirtualScroller.js +182 -628
- package/commonjs/react/VirtualScroller.js.map +1 -1
- package/commonjs/react/useClassName.js +26 -0
- package/commonjs/react/useClassName.js.map +1 -0
- package/commonjs/react/useHandleItemsChange.js +116 -0
- package/commonjs/react/useHandleItemsChange.js.map +1 -0
- package/commonjs/react/useInstanceMethods.js +37 -0
- package/commonjs/react/useInstanceMethods.js.map +1 -0
- package/commonjs/react/useItemKeys.js +60 -0
- package/commonjs/react/useItemKeys.js.map +1 -0
- package/commonjs/react/useOnItemHeightChange.js +32 -0
- package/commonjs/react/useOnItemHeightChange.js.map +1 -0
- package/commonjs/react/useOnItemStateChange.js +32 -0
- package/commonjs/react/useOnItemStateChange.js.map +1 -0
- package/commonjs/react/useState.js +140 -0
- package/commonjs/react/useState.js.map +1 -0
- package/commonjs/react/useStyle.js +29 -0
- package/commonjs/react/useStyle.js.map +1 -0
- package/commonjs/react/useVirtualScroller.js +62 -0
- package/commonjs/react/useVirtualScroller.js.map +1 -0
- package/commonjs/react/useVirtualScrollerStartStop.js +20 -0
- package/commonjs/react/useVirtualScrollerStartStop.js.map +1 -0
- package/commonjs/test/Engine.js +23 -0
- package/commonjs/test/Engine.js.map +1 -0
- package/commonjs/test/ItemsContainer.js +127 -0
- package/commonjs/test/ItemsContainer.js.map +1 -0
- package/commonjs/test/ScrollableContainer.js +130 -0
- package/commonjs/test/ScrollableContainer.js.map +1 -0
- package/commonjs/test/VirtualScroller.js +281 -0
- package/commonjs/test/VirtualScroller.js.map +1 -0
- package/commonjs/utility/debounce.js +28 -6
- package/commonjs/utility/debounce.js.map +1 -1
- package/commonjs/utility/debug.js +51 -12
- package/commonjs/utility/debug.js.map +1 -1
- package/commonjs/utility/getStateSnapshot.js +50 -0
- package/commonjs/utility/getStateSnapshot.js.map +1 -0
- package/commonjs/utility/px.js +1 -1
- package/commonjs/utility/px.js.map +1 -1
- package/commonjs/utility/px.test.js +14 -0
- package/commonjs/utility/px.test.js.map +1 -0
- package/commonjs/utility/shallowEqual.js +1 -1
- package/commonjs/utility/shallowEqual.js.map +1 -1
- package/commonjs/utility/throttle.js.map +1 -1
- package/dom/index.cjs +4 -0
- package/dom/index.cjs.js +9 -0
- package/dom/index.d.ts +25 -0
- package/dom/index.js +1 -1
- package/dom/package.json +10 -4
- package/index.cjs +4 -0
- package/index.cjs.js +9 -0
- package/index.d.ts +99 -0
- package/index.js +1 -1
- package/modules/BeforeResize.js +305 -0
- package/modules/BeforeResize.js.map +1 -0
- package/modules/DOM/Engine.js +27 -0
- package/modules/DOM/Engine.js.map +1 -0
- package/modules/DOM/ItemsContainer.js +71 -0
- package/modules/DOM/ItemsContainer.js.map +1 -0
- package/modules/DOM/{WaitForStylesToLoad.js → ListTopOffsetWatcher.js} +72 -44
- package/modules/DOM/ListTopOffsetWatcher.js.map +1 -0
- package/modules/DOM/ScrollableContainer.js +68 -100
- package/modules/DOM/ScrollableContainer.js.map +1 -1
- package/modules/DOM/VirtualScroller.js +32 -28
- package/modules/DOM/VirtualScroller.js.map +1 -1
- package/modules/DOM/tbody.js +11 -9
- package/modules/DOM/tbody.js.map +1 -1
- package/modules/ItemHeights.js +28 -33
- package/modules/ItemHeights.js.map +1 -1
- package/modules/Layout.js +585 -214
- package/modules/Layout.js.map +1 -1
- package/modules/Layout.test.js +190 -0
- package/modules/Layout.test.js.map +1 -0
- package/modules/ListHeightMeasurement.js +117 -0
- package/modules/ListHeightMeasurement.js.map +1 -0
- package/modules/Resize.js +50 -39
- package/modules/Resize.js.map +1 -1
- package/modules/Scroll.js +139 -94
- package/modules/Scroll.js.map +1 -1
- package/modules/VirtualScroller.columns.js +36 -0
- package/modules/VirtualScroller.columns.js.map +1 -0
- package/modules/VirtualScroller.constructor.js +371 -0
- package/modules/VirtualScroller.constructor.js.map +1 -0
- package/modules/VirtualScroller.items.js +288 -0
- package/modules/VirtualScroller.items.js.map +1 -0
- package/modules/VirtualScroller.js +159 -1014
- package/modules/VirtualScroller.js.map +1 -1
- package/modules/VirtualScroller.layout.js +549 -0
- package/modules/VirtualScroller.layout.js.map +1 -0
- package/modules/VirtualScroller.onRender.js +337 -0
- package/modules/VirtualScroller.onRender.js.map +1 -0
- package/modules/VirtualScroller.resize.js +176 -0
- package/modules/VirtualScroller.resize.js.map +1 -0
- package/modules/VirtualScroller.state.js +283 -0
- package/modules/VirtualScroller.state.js.map +1 -0
- package/modules/VirtualScroller.verticalSpacing.js +54 -0
- package/modules/VirtualScroller.verticalSpacing.js.map +1 -0
- package/modules/getItemCoordinates.js.map +1 -1
- package/modules/getItemsDiff.js.map +1 -1
- package/modules/getVerticalSpacing.js +8 -8
- package/modules/getVerticalSpacing.js.map +1 -1
- package/modules/react/VirtualScroller.js +179 -634
- package/modules/react/VirtualScroller.js.map +1 -1
- package/modules/react/useClassName.js +18 -0
- package/modules/react/useClassName.js.map +1 -0
- package/modules/react/useHandleItemsChange.js +108 -0
- package/modules/react/useHandleItemsChange.js.map +1 -0
- package/modules/react/useInstanceMethods.js +28 -0
- package/modules/react/useInstanceMethods.js.map +1 -0
- package/modules/react/useItemKeys.js +52 -0
- package/modules/react/useItemKeys.js.map +1 -0
- package/modules/react/useOnItemHeightChange.js +24 -0
- package/modules/react/useOnItemHeightChange.js.map +1 -0
- package/modules/react/useOnItemStateChange.js +24 -0
- package/modules/react/useOnItemStateChange.js.map +1 -0
- package/modules/react/useState.js +132 -0
- package/modules/react/useState.js.map +1 -0
- package/modules/react/useStyle.js +19 -0
- package/modules/react/useStyle.js.map +1 -0
- package/modules/react/useVirtualScroller.js +51 -0
- package/modules/react/useVirtualScroller.js.map +1 -0
- package/modules/react/useVirtualScrollerStartStop.js +12 -0
- package/modules/react/useVirtualScrollerStartStop.js.map +1 -0
- package/modules/test/Engine.js +11 -0
- package/modules/test/Engine.js.map +1 -0
- package/modules/test/ItemsContainer.js +120 -0
- package/modules/test/ItemsContainer.js.map +1 -0
- package/modules/test/ScrollableContainer.js +123 -0
- package/modules/test/ScrollableContainer.js.map +1 -0
- package/modules/test/VirtualScroller.js +270 -0
- package/modules/test/VirtualScroller.js.map +1 -0
- package/modules/utility/debounce.js +28 -6
- package/modules/utility/debounce.js.map +1 -1
- package/modules/utility/debug.js +47 -10
- package/modules/utility/debug.js.map +1 -1
- package/modules/utility/getStateSnapshot.js +43 -0
- package/modules/utility/getStateSnapshot.js.map +1 -0
- package/modules/utility/px.js +1 -1
- package/modules/utility/px.js.map +1 -1
- package/modules/utility/px.test.js +9 -0
- package/modules/utility/px.test.js.map +1 -0
- package/modules/utility/shallowEqual.js +1 -1
- package/modules/utility/shallowEqual.js.map +1 -1
- package/modules/utility/throttle.js.map +1 -1
- package/package.json +54 -29
- package/react/index.cjs +4 -0
- package/react/index.cjs.js +9 -0
- package/react/index.d.ts +28 -0
- package/react/index.js +1 -1
- package/react/package.json +10 -4
- package/rollup.config.mjs +62 -0
- package/runnable/create-commonjs-package-json.js +11 -0
- package/source/BeforeResize.js +312 -0
- package/source/DOM/Engine.js +30 -0
- package/source/DOM/ItemsContainer.js +48 -0
- package/source/DOM/{WaitForStylesToLoad.js → ListTopOffsetWatcher.js} +61 -30
- package/source/DOM/ScrollableContainer.js +51 -73
- package/source/DOM/VirtualScroller.js +33 -18
- package/source/DOM/tbody.js +30 -21
- package/source/ItemHeights.js +27 -27
- package/source/Layout.js +629 -252
- package/source/Layout.test.js +176 -0
- package/source/ListHeightMeasurement.js +95 -0
- package/source/Resize.js +56 -32
- package/source/Scroll.js +135 -82
- package/source/VirtualScroller.columns.js +26 -0
- package/source/VirtualScroller.constructor.js +336 -0
- package/source/VirtualScroller.items.js +302 -0
- package/source/VirtualScroller.js +162 -936
- package/source/VirtualScroller.layout.js +539 -0
- package/source/VirtualScroller.onRender.js +345 -0
- package/source/VirtualScroller.resize.js +189 -0
- package/source/VirtualScroller.state.js +284 -0
- package/source/VirtualScroller.verticalSpacing.js +51 -0
- package/source/getVerticalSpacing.js +7 -7
- package/source/react/VirtualScroller.js +243 -603
- package/source/react/useClassName.js +14 -0
- package/source/react/useHandleItemsChange.js +115 -0
- package/source/react/useInstanceMethods.js +25 -0
- package/source/react/useItemKeys.js +59 -0
- package/source/react/useOnItemHeightChange.js +28 -0
- package/source/react/useOnItemStateChange.js +28 -0
- package/source/react/useState.js +114 -0
- package/source/react/useStyle.js +20 -0
- package/source/react/useVirtualScroller.js +59 -0
- package/source/react/useVirtualScrollerStartStop.js +12 -0
- package/source/test/Engine.js +11 -0
- package/source/test/ItemsContainer.js +87 -0
- package/source/test/ScrollableContainer.js +88 -0
- package/source/test/VirtualScroller.js +232 -0
- package/source/utility/debounce.js +22 -5
- package/source/utility/debug.js +34 -3
- package/source/utility/getStateSnapshot.js +36 -0
- package/source/utility/px.js +1 -1
- package/source/utility/px.test.js +9 -0
- package/website/index-bypass.html +195 -0
- package/website/index-grid.html +0 -1
- package/website/index-scrollableContainer.html +208 -0
- package/website/index-tbody-scrollableContainer.html +68 -0
- package/website/index-tbody.html +55 -0
- package/commonjs/DOM/RenderingEngine.js +0 -33
- package/commonjs/DOM/RenderingEngine.js.map +0 -1
- package/commonjs/DOM/Screen.js +0 -87
- package/commonjs/DOM/Screen.js.map +0 -1
- package/commonjs/DOM/WaitForStylesToLoad.js.map +0 -1
- package/commonjs/RestoreScroll.js +0 -118
- package/commonjs/RestoreScroll.js.map +0 -1
- package/dom/index.commonjs.js +0 -4
- package/index.commonjs.js +0 -4
- package/modules/DOM/RenderingEngine.js +0 -19
- package/modules/DOM/RenderingEngine.js.map +0 -1
- package/modules/DOM/Screen.js +0 -80
- package/modules/DOM/Screen.js.map +0 -1
- package/modules/DOM/WaitForStylesToLoad.js.map +0 -1
- package/modules/RestoreScroll.js +0 -111
- package/modules/RestoreScroll.js.map +0 -1
- package/react/index.commonjs.js +0 -4
- package/source/DOM/RenderingEngine.js +0 -22
- package/source/DOM/Screen.js +0 -51
- package/source/RestoreScroll.js +0 -86
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import px from '../utility/px.js';
|
|
2
|
+
export default function useStyle(_ref) {
|
|
3
|
+
var tbody = _ref.tbody,
|
|
4
|
+
virtualScroller = _ref.virtualScroller;
|
|
5
|
+
|
|
6
|
+
if (tbody) {
|
|
7
|
+
return;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
var _virtualScroller$getS = virtualScroller.getState(),
|
|
11
|
+
beforeItemsHeight = _virtualScroller$getS.beforeItemsHeight,
|
|
12
|
+
afterItemsHeight = _virtualScroller$getS.afterItemsHeight;
|
|
13
|
+
|
|
14
|
+
return {
|
|
15
|
+
paddingTop: px(beforeItemsHeight),
|
|
16
|
+
paddingBottom: px(afterItemsHeight)
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=useStyle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useStyle.js","names":["px","useStyle","tbody","virtualScroller","getState","beforeItemsHeight","afterItemsHeight","paddingTop","paddingBottom"],"sources":["../../source/react/useStyle.js"],"sourcesContent":["import px from '../utility/px.js'\r\n\r\nexport default function useStyle({\r\n\ttbody,\r\n\tvirtualScroller\r\n}) {\r\n\tif (tbody) {\r\n\t\treturn\r\n\t}\r\n\r\n\tconst {\r\n\t\tbeforeItemsHeight,\r\n\t\tafterItemsHeight\r\n\t} = virtualScroller.getState()\r\n\r\n\treturn {\r\n\t\tpaddingTop: px(beforeItemsHeight),\r\n\t\tpaddingBottom: px(afterItemsHeight)\r\n\t}\r\n}"],"mappings":"AAAA,OAAOA,EAAP,MAAe,kBAAf;AAEA,eAAe,SAASC,QAAT,OAGZ;EAAA,IAFFC,KAEE,QAFFA,KAEE;EAAA,IADFC,eACE,QADFA,eACE;;EACF,IAAID,KAAJ,EAAW;IACV;EACA;;EAED,4BAGIC,eAAe,CAACC,QAAhB,EAHJ;EAAA,IACCC,iBADD,yBACCA,iBADD;EAAA,IAECC,gBAFD,yBAECA,gBAFD;;EAKA,OAAO;IACNC,UAAU,EAAEP,EAAE,CAACK,iBAAD,CADR;IAENG,aAAa,EAAER,EAAE,CAACM,gBAAD;EAFX,CAAP;AAIA"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
2
|
+
|
|
3
|
+
import { useMemo } from 'react';
|
|
4
|
+
import VirtualScroller from '../VirtualScroller.js'; // Creates a `VirtualScroller` instance.
|
|
5
|
+
|
|
6
|
+
export default function useVirtualScroller(_ref, _ref2) {
|
|
7
|
+
var items = _ref.items,
|
|
8
|
+
estimatedItemHeight = _ref.estimatedItemHeight,
|
|
9
|
+
bypass = _ref.bypass,
|
|
10
|
+
tbody = _ref.tbody,
|
|
11
|
+
onItemInitialRender = _ref.onItemInitialRender,
|
|
12
|
+
onItemFirstRender = _ref.onItemFirstRender,
|
|
13
|
+
initialScrollPosition = _ref.initialScrollPosition,
|
|
14
|
+
onScrollPositionChange = _ref.onScrollPositionChange,
|
|
15
|
+
measureItemsBatchSize = _ref.measureItemsBatchSize,
|
|
16
|
+
scrollableContainer = _ref.scrollableContainer,
|
|
17
|
+
getScrollableContainer = _ref.getScrollableContainer,
|
|
18
|
+
getColumnsCount = _ref.getColumnsCount,
|
|
19
|
+
getItemId = _ref.getItemId,
|
|
20
|
+
AsComponent = _ref.AsComponent,
|
|
21
|
+
initialState = _ref.initialState,
|
|
22
|
+
onStateChange = _ref.onStateChange;
|
|
23
|
+
var container = _ref2.container;
|
|
24
|
+
return useMemo(function () {
|
|
25
|
+
var _VirtualScroller;
|
|
26
|
+
|
|
27
|
+
// Create `virtual-scroller` instance.
|
|
28
|
+
return new VirtualScroller(function () {
|
|
29
|
+
return container.current;
|
|
30
|
+
}, items, (_VirtualScroller = {
|
|
31
|
+
_useTimeoutInRenderLoop: true,
|
|
32
|
+
estimatedItemHeight: estimatedItemHeight,
|
|
33
|
+
bypass: bypass,
|
|
34
|
+
// bypassBatchSize,
|
|
35
|
+
tbody: tbody,
|
|
36
|
+
onItemInitialRender: onItemInitialRender,
|
|
37
|
+
// `onItemFirstRender(i)` is deprecated, use `onItemInitialRender(item)` instead.
|
|
38
|
+
onItemFirstRender: onItemFirstRender,
|
|
39
|
+
initialScrollPosition: initialScrollPosition,
|
|
40
|
+
onScrollPositionChange: onScrollPositionChange,
|
|
41
|
+
measureItemsBatchSize: measureItemsBatchSize,
|
|
42
|
+
// `scrollableContainer` property is deprecated.
|
|
43
|
+
// Use `getScrollableContainer()` property instead.
|
|
44
|
+
scrollableContainer: scrollableContainer,
|
|
45
|
+
getScrollableContainer: getScrollableContainer,
|
|
46
|
+
getColumnsCount: getColumnsCount,
|
|
47
|
+
getItemId: getItemId
|
|
48
|
+
}, _defineProperty(_VirtualScroller, "tbody", AsComponent === 'tbody'), _defineProperty(_VirtualScroller, "state", initialState), _defineProperty(_VirtualScroller, "onStateChange", onStateChange), _VirtualScroller));
|
|
49
|
+
}, []);
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=useVirtualScroller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useVirtualScroller.js","names":["useMemo","VirtualScroller","useVirtualScroller","items","estimatedItemHeight","bypass","tbody","onItemInitialRender","onItemFirstRender","initialScrollPosition","onScrollPositionChange","measureItemsBatchSize","scrollableContainer","getScrollableContainer","getColumnsCount","getItemId","AsComponent","initialState","onStateChange","container","current","_useTimeoutInRenderLoop"],"sources":["../../source/react/useVirtualScroller.js"],"sourcesContent":["import { useMemo } from 'react'\r\n\r\nimport VirtualScroller from '../VirtualScroller.js'\r\n\r\n// Creates a `VirtualScroller` instance.\r\nexport default function useVirtualScroller({\r\n\titems,\r\n\testimatedItemHeight,\r\n\tbypass,\r\n\t// bypassBatchSize,\r\n\ttbody,\r\n\tonItemInitialRender,\r\n\t// `onItemFirstRender(i)` is deprecated, use `onItemInitialRender(item)` instead.\r\n\tonItemFirstRender,\r\n\tinitialScrollPosition,\r\n\tonScrollPositionChange,\r\n\tmeasureItemsBatchSize,\r\n\t// `scrollableContainer` property is deprecated.\r\n\t// Use `getScrollableContainer()` property instead.\r\n\tscrollableContainer,\r\n\tgetScrollableContainer,\r\n\tgetColumnsCount,\r\n\tgetItemId,\r\n\tAsComponent,\r\n\tinitialState,\r\n\tonStateChange\r\n}, {\r\n\tcontainer\r\n}) {\r\n\treturn useMemo(() => {\r\n\t\t// Create `virtual-scroller` instance.\r\n\t\treturn new VirtualScroller(\r\n\t\t\t() => container.current,\r\n\t\t\titems,\r\n\t\t\t{\r\n\t\t\t\t_useTimeoutInRenderLoop: true,\r\n\t\t\t\testimatedItemHeight,\r\n\t\t\t\tbypass,\r\n\t\t\t\t// bypassBatchSize,\r\n\t\t\t\ttbody,\r\n\t\t\t\tonItemInitialRender,\r\n\t\t\t\t// `onItemFirstRender(i)` is deprecated, use `onItemInitialRender(item)` instead.\r\n\t\t\t\tonItemFirstRender,\r\n\t\t\t\tinitialScrollPosition,\r\n\t\t\t\tonScrollPositionChange,\r\n\t\t\t\tmeasureItemsBatchSize,\r\n\t\t\t\t// `scrollableContainer` property is deprecated.\r\n\t\t\t\t// Use `getScrollableContainer()` property instead.\r\n\t\t\t\tscrollableContainer,\r\n\t\t\t\tgetScrollableContainer,\r\n\t\t\t\tgetColumnsCount,\r\n\t\t\t\tgetItemId,\r\n\t\t\t\ttbody: AsComponent === 'tbody',\r\n\t\t\t\tstate: initialState,\r\n\t\t\t\tonStateChange\r\n\t\t\t}\r\n\t\t)\r\n\t}, [])\r\n}"],"mappings":";;AAAA,SAASA,OAAT,QAAwB,OAAxB;AAEA,OAAOC,eAAP,MAA4B,uBAA5B,C,CAEA;;AACA,eAAe,SAASC,kBAAT,cAuBZ;EAAA,IAtBFC,KAsBE,QAtBFA,KAsBE;EAAA,IArBFC,mBAqBE,QArBFA,mBAqBE;EAAA,IApBFC,MAoBE,QApBFA,MAoBE;EAAA,IAlBFC,KAkBE,QAlBFA,KAkBE;EAAA,IAjBFC,mBAiBE,QAjBFA,mBAiBE;EAAA,IAfFC,iBAeE,QAfFA,iBAeE;EAAA,IAdFC,qBAcE,QAdFA,qBAcE;EAAA,IAbFC,sBAaE,QAbFA,sBAaE;EAAA,IAZFC,qBAYE,QAZFA,qBAYE;EAAA,IATFC,mBASE,QATFA,mBASE;EAAA,IARFC,sBAQE,QARFA,sBAQE;EAAA,IAPFC,eAOE,QAPFA,eAOE;EAAA,IANFC,SAME,QANFA,SAME;EAAA,IALFC,WAKE,QALFA,WAKE;EAAA,IAJFC,YAIE,QAJFA,YAIE;EAAA,IAHFC,aAGE,QAHFA,aAGE;EAAA,IADFC,SACE,SADFA,SACE;EACF,OAAOnB,OAAO,CAAC,YAAM;IAAA;;IACpB;IACA,OAAO,IAAIC,eAAJ,CACN;MAAA,OAAMkB,SAAS,CAACC,OAAhB;IAAA,CADM,EAENjB,KAFM;MAILkB,uBAAuB,EAAE,IAJpB;MAKLjB,mBAAmB,EAAnBA,mBALK;MAMLC,MAAM,EAANA,MANK;MAOL;MACAC,KAAK,EAALA,KARK;MASLC,mBAAmB,EAAnBA,mBATK;MAUL;MACAC,iBAAiB,EAAjBA,iBAXK;MAYLC,qBAAqB,EAArBA,qBAZK;MAaLC,sBAAsB,EAAtBA,sBAbK;MAcLC,qBAAqB,EAArBA,qBAdK;MAeL;MACA;MACAC,mBAAmB,EAAnBA,mBAjBK;MAkBLC,sBAAsB,EAAtBA,sBAlBK;MAmBLC,eAAe,EAAfA,eAnBK;MAoBLC,SAAS,EAATA;IApBK,8CAqBEC,WAAW,KAAK,OArBlB,8CAsBEC,YAtBF,sDAuBLC,aAvBK,qBAAP;EA0BA,CA5Ba,EA4BX,EA5BW,CAAd;AA6BA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { useLayoutEffect } from 'react';
|
|
2
|
+
export default function useVirtualScrollerStartStop(virtualScroller) {
|
|
3
|
+
useLayoutEffect(function () {
|
|
4
|
+
// Start listening to scroll events.
|
|
5
|
+
virtualScroller.start();
|
|
6
|
+
return function () {
|
|
7
|
+
// Stop listening to scroll events.
|
|
8
|
+
virtualScroller.stop();
|
|
9
|
+
};
|
|
10
|
+
}, []);
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=useVirtualScrollerStartStop.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useVirtualScrollerStartStop.js","names":["useLayoutEffect","useVirtualScrollerStartStop","virtualScroller","start","stop"],"sources":["../../source/react/useVirtualScrollerStartStop.js"],"sourcesContent":["import { useLayoutEffect } from 'react'\r\n\r\nexport default function useVirtualScrollerStartStop(virtualScroller) {\r\n\tuseLayoutEffect(() => {\r\n\t\t// Start listening to scroll events.\r\n\t\tvirtualScroller.start()\r\n\t\treturn () => {\r\n\t\t\t// Stop listening to scroll events.\r\n\t\t\tvirtualScroller.stop()\r\n\t\t}\r\n\t}, [])\r\n}"],"mappings":"AAAA,SAASA,eAAT,QAAgC,OAAhC;AAEA,eAAe,SAASC,2BAAT,CAAqCC,eAArC,EAAsD;EACpEF,eAAe,CAAC,YAAM;IACrB;IACAE,eAAe,CAACC,KAAhB;IACA,OAAO,YAAM;MACZ;MACAD,eAAe,CAACE,IAAhB;IACA,CAHD;EAIA,CAPc,EAOZ,EAPY,CAAf;AAQA"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import ItemsContainer from './ItemsContainer.js';
|
|
2
|
+
import ScrollableContainer from './ScrollableContainer.js';
|
|
3
|
+
export default {
|
|
4
|
+
createItemsContainer: function createItemsContainer(getItemsContainerElement) {
|
|
5
|
+
return new ItemsContainer(getItemsContainerElement);
|
|
6
|
+
},
|
|
7
|
+
createScrollableContainer: function createScrollableContainer(getScrollableContainerElement, getItemsContainerElement) {
|
|
8
|
+
return new ScrollableContainer(getScrollableContainerElement, getItemsContainerElement);
|
|
9
|
+
}
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=Engine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Engine.js","names":["ItemsContainer","ScrollableContainer","createItemsContainer","getItemsContainerElement","createScrollableContainer","getScrollableContainerElement"],"sources":["../../source/test/Engine.js"],"sourcesContent":["import ItemsContainer from './ItemsContainer.js'\r\nimport ScrollableContainer from './ScrollableContainer.js'\r\n\r\nexport default {\r\n\tcreateItemsContainer(getItemsContainerElement) {\r\n\t\treturn new ItemsContainer(getItemsContainerElement)\r\n\t},\r\n\tcreateScrollableContainer(getScrollableContainerElement, getItemsContainerElement) {\r\n\t\treturn new ScrollableContainer(getScrollableContainerElement, getItemsContainerElement)\r\n\t}\r\n}"],"mappings":"AAAA,OAAOA,cAAP,MAA2B,qBAA3B;AACA,OAAOC,mBAAP,MAAgC,0BAAhC;AAEA,eAAe;EACdC,oBADc,gCACOC,wBADP,EACiC;IAC9C,OAAO,IAAIH,cAAJ,CAAmBG,wBAAnB,CAAP;EACA,CAHa;EAIdC,yBAJc,qCAIYC,6BAJZ,EAI2CF,wBAJ3C,EAIqE;IAClF,OAAO,IAAIF,mBAAJ,CAAwBI,6BAAxB,EAAuDF,wBAAvD,CAAP;EACA;AANa,CAAf"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
2
|
+
|
|
3
|
+
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
|
4
|
+
|
|
5
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
6
|
+
|
|
7
|
+
var ItemsContainer = /*#__PURE__*/function () {
|
|
8
|
+
/**
|
|
9
|
+
* Constructs a new "container" from an element.
|
|
10
|
+
* @param {function} getElement
|
|
11
|
+
*/
|
|
12
|
+
function ItemsContainer(getElement) {
|
|
13
|
+
_classCallCheck(this, ItemsContainer);
|
|
14
|
+
|
|
15
|
+
this.getElement = getElement;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Returns an item element's "top offset", relative to the items `container`'s top edge.
|
|
19
|
+
* @param {number} renderedElementIndex — An index of an item relative to the "first shown item index". For example, if the list is showing items from index 8 to index 12 then `renderedElementIndex = 0` would mean the item at index `8`.
|
|
20
|
+
* @return {number}
|
|
21
|
+
*/
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
_createClass(ItemsContainer, [{
|
|
25
|
+
key: "getNthRenderedItemTopOffset",
|
|
26
|
+
value: function getNthRenderedItemTopOffset(renderedElementIndex) {
|
|
27
|
+
var children = this.getElement().children;
|
|
28
|
+
var maxWidth = this.getElement().width;
|
|
29
|
+
var topOffset = this.getElement().paddingTop;
|
|
30
|
+
var rowWidth;
|
|
31
|
+
var rowHeight;
|
|
32
|
+
var startNewRow = true;
|
|
33
|
+
var i = 0;
|
|
34
|
+
|
|
35
|
+
while (i <= renderedElementIndex) {
|
|
36
|
+
if (startNewRow || rowWidth + children[i].width > maxWidth) {
|
|
37
|
+
if (i > 0) {
|
|
38
|
+
topOffset += rowHeight;
|
|
39
|
+
topOffset += children[i].marginTop;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
rowWidth = children[i].width;
|
|
43
|
+
rowHeight = children[i].height;
|
|
44
|
+
|
|
45
|
+
if (rowWidth > maxWidth) {
|
|
46
|
+
startNewRow = true;
|
|
47
|
+
} else {
|
|
48
|
+
startNewRow = false;
|
|
49
|
+
}
|
|
50
|
+
} else {
|
|
51
|
+
rowWidth += children[i].width;
|
|
52
|
+
rowHeight = Math.max(rowHeight, children[i].height);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
i++;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
return topOffset;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Returns an item element's height.
|
|
62
|
+
* @param {number} renderedElementIndex — An index of an item relative to the "first shown item index". For example, if the list is showing items from index 8 to index 12 then `renderedElementIndex = 0` would mean the item at index `8`.
|
|
63
|
+
* @return {number}
|
|
64
|
+
*/
|
|
65
|
+
|
|
66
|
+
}, {
|
|
67
|
+
key: "getNthRenderedItemHeight",
|
|
68
|
+
value: function getNthRenderedItemHeight(renderedElementIndex) {
|
|
69
|
+
return this.getElement().children[renderedElementIndex].height;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Returns items container height.
|
|
73
|
+
* @return {number}
|
|
74
|
+
*/
|
|
75
|
+
|
|
76
|
+
}, {
|
|
77
|
+
key: "getHeight",
|
|
78
|
+
value: function getHeight() {
|
|
79
|
+
var children = this.getElement().children;
|
|
80
|
+
var maxWidth = this.getElement().width;
|
|
81
|
+
var contentHeight = this.getElement().paddingTop;
|
|
82
|
+
var i = 0;
|
|
83
|
+
|
|
84
|
+
while (i < children.length) {
|
|
85
|
+
var rowWidth = 0;
|
|
86
|
+
var rowHeight = 0;
|
|
87
|
+
|
|
88
|
+
while (rowWidth <= maxWidth && i < children.length) {
|
|
89
|
+
if (rowWidth === 0 && i > 0) {
|
|
90
|
+
var verticalSpacing = children[i].marginTop;
|
|
91
|
+
contentHeight += verticalSpacing;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
rowWidth += children[i].width;
|
|
95
|
+
rowHeight = Math.max(rowHeight, children[i].height);
|
|
96
|
+
i++;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
contentHeight += rowHeight;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
contentHeight += this.getElement().paddingBottom;
|
|
103
|
+
return contentHeight;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Removes all item elements of an items container.
|
|
107
|
+
*/
|
|
108
|
+
|
|
109
|
+
}, {
|
|
110
|
+
key: "clear",
|
|
111
|
+
value: function clear() {
|
|
112
|
+
this.getElement().children = [];
|
|
113
|
+
}
|
|
114
|
+
}]);
|
|
115
|
+
|
|
116
|
+
return ItemsContainer;
|
|
117
|
+
}();
|
|
118
|
+
|
|
119
|
+
export { ItemsContainer as default };
|
|
120
|
+
//# sourceMappingURL=ItemsContainer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ItemsContainer.js","names":["ItemsContainer","getElement","renderedElementIndex","children","maxWidth","width","topOffset","paddingTop","rowWidth","rowHeight","startNewRow","i","marginTop","height","Math","max","contentHeight","length","verticalSpacing","paddingBottom"],"sources":["../../source/test/ItemsContainer.js"],"sourcesContent":["export default class ItemsContainer {\r\n\t/**\r\n\t * Constructs a new \"container\" from an element.\r\n\t * @param {function} getElement\r\n\t */\r\n\tconstructor(getElement) {\r\n\t\tthis.getElement = getElement\r\n\t}\r\n\r\n\t/**\r\n\t * Returns an item element's \"top offset\", relative to the items `container`'s top edge.\r\n\t * @param {number} renderedElementIndex — An index of an item relative to the \"first shown item index\". For example, if the list is showing items from index 8 to index 12 then `renderedElementIndex = 0` would mean the item at index `8`.\r\n\t * @return {number}\r\n\t */\r\n\tgetNthRenderedItemTopOffset(renderedElementIndex) {\r\n\t\tconst children = this.getElement().children\r\n\t\tconst maxWidth = this.getElement().width\r\n\t\tlet topOffset = this.getElement().paddingTop\r\n\t\tlet rowWidth\r\n\t\tlet rowHeight\r\n\t\tlet startNewRow = true\r\n\t\tlet i = 0\r\n\t\twhile (i <= renderedElementIndex) {\r\n\t\t\tif (startNewRow || rowWidth + children[i].width > maxWidth) {\r\n\t\t\t\tif (i > 0) {\r\n\t\t\t\t\ttopOffset += rowHeight\r\n\t\t\t\t\ttopOffset += children[i].marginTop\r\n\t\t\t\t}\r\n\t\t\t\trowWidth = children[i].width\r\n\t\t\t\trowHeight = children[i].height\r\n\t\t\t\tif (rowWidth > maxWidth) {\r\n\t\t\t\t\tstartNewRow = true\r\n\t\t\t\t} else {\r\n\t\t\t\t\tstartNewRow = false\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\trowWidth += children[i].width\r\n\t\t\t\trowHeight = Math.max(rowHeight, children[i].height)\r\n\t\t\t}\r\n\t\t\ti++\r\n\t\t}\r\n\t\treturn topOffset\r\n\t}\r\n\r\n\t/**\r\n\t * Returns an item element's height.\r\n\t * @param {number} renderedElementIndex — An index of an item relative to the \"first shown item index\". For example, if the list is showing items from index 8 to index 12 then `renderedElementIndex = 0` would mean the item at index `8`.\r\n\t * @return {number}\r\n\t */\r\n\tgetNthRenderedItemHeight(renderedElementIndex) {\r\n\t\treturn this.getElement().children[renderedElementIndex].height\r\n\t}\r\n\r\n\t/**\r\n\t * Returns items container height.\r\n\t * @return {number}\r\n\t */\r\n\tgetHeight() {\r\n\t\tconst children = this.getElement().children\r\n\t\tconst maxWidth = this.getElement().width\r\n\t\tlet contentHeight = this.getElement().paddingTop\r\n\t\tlet i = 0\r\n\t\twhile (i < children.length) {\r\n\t\t\tlet rowWidth = 0\r\n\t\t\tlet rowHeight = 0\r\n\t\t\twhile (rowWidth <= maxWidth && i < children.length) {\r\n\t\t\t\tif (rowWidth === 0 && i > 0) {\r\n\t\t\t\t\tconst verticalSpacing = children[i].marginTop\r\n\t\t\t\t\tcontentHeight += verticalSpacing\r\n\t\t\t\t}\r\n\t\t\t\trowWidth += children[i].width\r\n\t\t\t\trowHeight = Math.max(rowHeight, children[i].height)\r\n\t\t\t\ti++\r\n\t\t\t}\r\n\t\t\tcontentHeight += rowHeight\r\n\t\t}\r\n\t\tcontentHeight += this.getElement().paddingBottom\r\n\t\treturn contentHeight\r\n\t}\r\n\r\n\t/**\r\n\t * Removes all item elements of an items container.\r\n\t */\r\n\tclear() {\r\n\t\tthis.getElement().children = []\r\n\t}\r\n}"],"mappings":";;;;;;IAAqBA,c;EACpB;AACD;AACA;AACA;EACC,wBAAYC,UAAZ,EAAwB;IAAA;;IACvB,KAAKA,UAAL,GAAkBA,UAAlB;EACA;EAED;AACD;AACA;AACA;AACA;;;;;WACC,qCAA4BC,oBAA5B,EAAkD;MACjD,IAAMC,QAAQ,GAAG,KAAKF,UAAL,GAAkBE,QAAnC;MACA,IAAMC,QAAQ,GAAG,KAAKH,UAAL,GAAkBI,KAAnC;MACA,IAAIC,SAAS,GAAG,KAAKL,UAAL,GAAkBM,UAAlC;MACA,IAAIC,QAAJ;MACA,IAAIC,SAAJ;MACA,IAAIC,WAAW,GAAG,IAAlB;MACA,IAAIC,CAAC,GAAG,CAAR;;MACA,OAAOA,CAAC,IAAIT,oBAAZ,EAAkC;QACjC,IAAIQ,WAAW,IAAIF,QAAQ,GAAGL,QAAQ,CAACQ,CAAD,CAAR,CAAYN,KAAvB,GAA+BD,QAAlD,EAA4D;UAC3D,IAAIO,CAAC,GAAG,CAAR,EAAW;YACVL,SAAS,IAAIG,SAAb;YACAH,SAAS,IAAIH,QAAQ,CAACQ,CAAD,CAAR,CAAYC,SAAzB;UACA;;UACDJ,QAAQ,GAAGL,QAAQ,CAACQ,CAAD,CAAR,CAAYN,KAAvB;UACAI,SAAS,GAAGN,QAAQ,CAACQ,CAAD,CAAR,CAAYE,MAAxB;;UACA,IAAIL,QAAQ,GAAGJ,QAAf,EAAyB;YACxBM,WAAW,GAAG,IAAd;UACA,CAFD,MAEO;YACNA,WAAW,GAAG,KAAd;UACA;QACD,CAZD,MAYO;UACNF,QAAQ,IAAIL,QAAQ,CAACQ,CAAD,CAAR,CAAYN,KAAxB;UACAI,SAAS,GAAGK,IAAI,CAACC,GAAL,CAASN,SAAT,EAAoBN,QAAQ,CAACQ,CAAD,CAAR,CAAYE,MAAhC,CAAZ;QACA;;QACDF,CAAC;MACD;;MACD,OAAOL,SAAP;IACA;IAED;AACD;AACA;AACA;AACA;;;;WACC,kCAAyBJ,oBAAzB,EAA+C;MAC9C,OAAO,KAAKD,UAAL,GAAkBE,QAAlB,CAA2BD,oBAA3B,EAAiDW,MAAxD;IACA;IAED;AACD;AACA;AACA;;;;WACC,qBAAY;MACX,IAAMV,QAAQ,GAAG,KAAKF,UAAL,GAAkBE,QAAnC;MACA,IAAMC,QAAQ,GAAG,KAAKH,UAAL,GAAkBI,KAAnC;MACA,IAAIW,aAAa,GAAG,KAAKf,UAAL,GAAkBM,UAAtC;MACA,IAAII,CAAC,GAAG,CAAR;;MACA,OAAOA,CAAC,GAAGR,QAAQ,CAACc,MAApB,EAA4B;QAC3B,IAAIT,QAAQ,GAAG,CAAf;QACA,IAAIC,SAAS,GAAG,CAAhB;;QACA,OAAOD,QAAQ,IAAIJ,QAAZ,IAAwBO,CAAC,GAAGR,QAAQ,CAACc,MAA5C,EAAoD;UACnD,IAAIT,QAAQ,KAAK,CAAb,IAAkBG,CAAC,GAAG,CAA1B,EAA6B;YAC5B,IAAMO,eAAe,GAAGf,QAAQ,CAACQ,CAAD,CAAR,CAAYC,SAApC;YACAI,aAAa,IAAIE,eAAjB;UACA;;UACDV,QAAQ,IAAIL,QAAQ,CAACQ,CAAD,CAAR,CAAYN,KAAxB;UACAI,SAAS,GAAGK,IAAI,CAACC,GAAL,CAASN,SAAT,EAAoBN,QAAQ,CAACQ,CAAD,CAAR,CAAYE,MAAhC,CAAZ;UACAF,CAAC;QACD;;QACDK,aAAa,IAAIP,SAAjB;MACA;;MACDO,aAAa,IAAI,KAAKf,UAAL,GAAkBkB,aAAnC;MACA,OAAOH,aAAP;IACA;IAED;AACD;AACA;;;;WACC,iBAAQ;MACP,KAAKf,UAAL,GAAkBE,QAAlB,GAA6B,EAA7B;IACA;;;;;;SArFmBH,c"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
2
|
+
|
|
3
|
+
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
|
4
|
+
|
|
5
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
6
|
+
|
|
7
|
+
var ScrollableContainer = /*#__PURE__*/function () {
|
|
8
|
+
/**
|
|
9
|
+
* Constructs a new "scrollable container" from an element.
|
|
10
|
+
* @param {func} getElement — Returns the scrollable container element.
|
|
11
|
+
* @param {func} getItemsContainerElement — Returns items "container" element.
|
|
12
|
+
*/
|
|
13
|
+
function ScrollableContainer(getElement, getItemsContainerElement) {
|
|
14
|
+
_classCallCheck(this, ScrollableContainer);
|
|
15
|
+
|
|
16
|
+
this.getElement = getElement;
|
|
17
|
+
this.getItemsContainerElement = getItemsContainerElement;
|
|
18
|
+
this.scrollTop = 0;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Returns the current scroll position.
|
|
22
|
+
* @return {number}
|
|
23
|
+
*/
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
_createClass(ScrollableContainer, [{
|
|
27
|
+
key: "getScrollY",
|
|
28
|
+
value: function getScrollY() {
|
|
29
|
+
return this.scrollTop;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Scrolls to a specific position.
|
|
33
|
+
* @param {number} scrollY
|
|
34
|
+
*/
|
|
35
|
+
|
|
36
|
+
}, {
|
|
37
|
+
key: "scrollToY",
|
|
38
|
+
value: function scrollToY(scrollY) {
|
|
39
|
+
this.scrollTop = scrollY;
|
|
40
|
+
|
|
41
|
+
if (this.onScrollListener) {
|
|
42
|
+
this.onScrollListener();
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Returns "scrollable container" width,
|
|
47
|
+
* i.e. the available width for its content.
|
|
48
|
+
* @return {number}
|
|
49
|
+
*/
|
|
50
|
+
|
|
51
|
+
}, {
|
|
52
|
+
key: "getWidth",
|
|
53
|
+
value: function getWidth() {
|
|
54
|
+
return this.getElement().width;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Returns the height of the "scrollable container" itself.
|
|
58
|
+
* Not to be confused with the height of "scrollable container"'s content.
|
|
59
|
+
* @return {number}
|
|
60
|
+
*/
|
|
61
|
+
|
|
62
|
+
}, {
|
|
63
|
+
key: "getHeight",
|
|
64
|
+
value: function getHeight() {
|
|
65
|
+
return this.getElement().height;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Returns a "top offset" of an items container element
|
|
69
|
+
* relative to the "scrollable container"'s top edge.
|
|
70
|
+
* @return {number}
|
|
71
|
+
*/
|
|
72
|
+
|
|
73
|
+
}, {
|
|
74
|
+
key: "getItemsContainerTopOffset",
|
|
75
|
+
value: function getItemsContainerTopOffset() {
|
|
76
|
+
return 0;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Adds a "scroll" event listener to the "scrollable container".
|
|
80
|
+
* @param {onScroll} Should be called whenever the scroll position inside the "scrollable container" (potentially) changes.
|
|
81
|
+
* @return {function} Returns a function that stops listening.
|
|
82
|
+
*/
|
|
83
|
+
|
|
84
|
+
}, {
|
|
85
|
+
key: "onScroll",
|
|
86
|
+
value: function onScroll(_onScroll) {
|
|
87
|
+
var _this = this;
|
|
88
|
+
|
|
89
|
+
this.onScrollListener = _onScroll;
|
|
90
|
+
return function () {
|
|
91
|
+
delete _this.onScrollListener;
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Adds a "resize" event listener to the "scrollable container".
|
|
96
|
+
* @param {onResize} Should be called whenever the "scrollable container"'s width or height (potentially) changes.
|
|
97
|
+
* @return {function} Returns a function that stops listening.
|
|
98
|
+
*/
|
|
99
|
+
|
|
100
|
+
}, {
|
|
101
|
+
key: "onResize",
|
|
102
|
+
value: function onResize(_onResize) {
|
|
103
|
+
var _this2 = this;
|
|
104
|
+
|
|
105
|
+
this.onResizeListener = _onResize;
|
|
106
|
+
return function () {
|
|
107
|
+
delete _this2.onResizeListener;
|
|
108
|
+
};
|
|
109
|
+
} // Returns a `Promise` because `this.onResizeListener()` is a "debounced" function.
|
|
110
|
+
// See `./utility/debounce.js` for more details.
|
|
111
|
+
|
|
112
|
+
}, {
|
|
113
|
+
key: "_triggerResizeListener",
|
|
114
|
+
value: function _triggerResizeListener() {
|
|
115
|
+
return this.onResizeListener();
|
|
116
|
+
}
|
|
117
|
+
}]);
|
|
118
|
+
|
|
119
|
+
return ScrollableContainer;
|
|
120
|
+
}();
|
|
121
|
+
|
|
122
|
+
export { ScrollableContainer as default };
|
|
123
|
+
//# sourceMappingURL=ScrollableContainer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ScrollableContainer.js","names":["ScrollableContainer","getElement","getItemsContainerElement","scrollTop","scrollY","onScrollListener","width","height","onScroll","onResize","onResizeListener"],"sources":["../../source/test/ScrollableContainer.js"],"sourcesContent":["export default class ScrollableContainer {\r\n\t/**\r\n\t * Constructs a new \"scrollable container\" from an element.\r\n\t * @param {func} getElement — Returns the scrollable container element.\r\n\t * @param {func} getItemsContainerElement — Returns items \"container\" element.\r\n\t */\r\n\tconstructor(getElement, getItemsContainerElement) {\r\n\t\tthis.getElement = getElement\r\n\t\tthis.getItemsContainerElement = getItemsContainerElement\r\n\t\tthis.scrollTop = 0\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the current scroll position.\r\n\t * @return {number}\r\n\t */\r\n\tgetScrollY() {\r\n\t\treturn this.scrollTop\r\n\t}\r\n\r\n\t/**\r\n\t * Scrolls to a specific position.\r\n\t * @param {number} scrollY\r\n\t */\r\n\tscrollToY(scrollY) {\r\n\t\tthis.scrollTop = scrollY\r\n\t\tif (this.onScrollListener) {\r\n\t\t\tthis.onScrollListener()\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns \"scrollable container\" width,\r\n\t * i.e. the available width for its content.\r\n\t * @return {number}\r\n\t */\r\n\tgetWidth() {\r\n\t\treturn this.getElement().width\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the height of the \"scrollable container\" itself.\r\n\t * Not to be confused with the height of \"scrollable container\"'s content.\r\n\t * @return {number}\r\n\t */\r\n\tgetHeight() {\r\n\t\treturn this.getElement().height\r\n\t}\r\n\r\n\t/**\r\n\t * Returns a \"top offset\" of an items container element\r\n\t * relative to the \"scrollable container\"'s top edge.\r\n\t * @return {number}\r\n\t */\r\n\tgetItemsContainerTopOffset() {\r\n\t\treturn 0\r\n\t}\r\n\r\n\t/**\r\n\t * Adds a \"scroll\" event listener to the \"scrollable container\".\r\n\t * @param {onScroll} Should be called whenever the scroll position inside the \"scrollable container\" (potentially) changes.\r\n\t * @return {function} Returns a function that stops listening.\r\n\t */\r\n\tonScroll(onScroll) {\r\n\t\tthis.onScrollListener = onScroll\r\n\t\treturn () => {\r\n\t\t\tdelete this.onScrollListener\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Adds a \"resize\" event listener to the \"scrollable container\".\r\n\t * @param {onResize} Should be called whenever the \"scrollable container\"'s width or height (potentially) changes.\r\n\t * @return {function} Returns a function that stops listening.\r\n\t */\r\n\tonResize(onResize) {\r\n\t\tthis.onResizeListener = onResize\r\n\t\treturn () => {\r\n\t\t\tdelete this.onResizeListener\r\n\t\t}\r\n\t}\r\n\r\n\t// Returns a `Promise` because `this.onResizeListener()` is a \"debounced\" function.\r\n\t// See `./utility/debounce.js` for more details.\r\n\t_triggerResizeListener() {\r\n\t\treturn this.onResizeListener()\r\n\t}\r\n}"],"mappings":";;;;;;IAAqBA,mB;EACpB;AACD;AACA;AACA;AACA;EACC,6BAAYC,UAAZ,EAAwBC,wBAAxB,EAAkD;IAAA;;IACjD,KAAKD,UAAL,GAAkBA,UAAlB;IACA,KAAKC,wBAAL,GAAgCA,wBAAhC;IACA,KAAKC,SAAL,GAAiB,CAAjB;EACA;EAED;AACD;AACA;AACA;;;;;WACC,sBAAa;MACZ,OAAO,KAAKA,SAAZ;IACA;IAED;AACD;AACA;AACA;;;;WACC,mBAAUC,OAAV,EAAmB;MAClB,KAAKD,SAAL,GAAiBC,OAAjB;;MACA,IAAI,KAAKC,gBAAT,EAA2B;QAC1B,KAAKA,gBAAL;MACA;IACD;IAED;AACD;AACA;AACA;AACA;;;;WACC,oBAAW;MACV,OAAO,KAAKJ,UAAL,GAAkBK,KAAzB;IACA;IAED;AACD;AACA;AACA;AACA;;;;WACC,qBAAY;MACX,OAAO,KAAKL,UAAL,GAAkBM,MAAzB;IACA;IAED;AACD;AACA;AACA;AACA;;;;WACC,sCAA6B;MAC5B,OAAO,CAAP;IACA;IAED;AACD;AACA;AACA;AACA;;;;WACC,kBAASC,SAAT,EAAmB;MAAA;;MAClB,KAAKH,gBAAL,GAAwBG,SAAxB;MACA,OAAO,YAAM;QACZ,OAAO,KAAI,CAACH,gBAAZ;MACA,CAFD;IAGA;IAED;AACD;AACA;AACA;AACA;;;;WACC,kBAASI,SAAT,EAAmB;MAAA;;MAClB,KAAKC,gBAAL,GAAwBD,SAAxB;MACA,OAAO,YAAM;QACZ,OAAO,MAAI,CAACC,gBAAZ;MACA,CAFD;IAGA,C,CAED;IACA;;;;WACA,kCAAyB;MACxB,OAAO,KAAKA,gBAAL,EAAP;IACA;;;;;;SAtFmBV,mB"}
|
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
2
|
+
|
|
3
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
4
|
+
|
|
5
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
6
|
+
|
|
7
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
8
|
+
|
|
9
|
+
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
|
10
|
+
|
|
11
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
12
|
+
|
|
13
|
+
import VirtualScroller from '../VirtualScroller.js';
|
|
14
|
+
import Engine from './Engine.js';
|
|
15
|
+
var DEBUG = false;
|
|
16
|
+
|
|
17
|
+
var TestVirtualScroller = /*#__PURE__*/function () {
|
|
18
|
+
function TestVirtualScroller(_ref) {
|
|
19
|
+
var _this = this;
|
|
20
|
+
|
|
21
|
+
var scrollableContainerWidth = _ref.screenWidth,
|
|
22
|
+
scrollableContainerHeight = _ref.screenHeight,
|
|
23
|
+
columnsCount = _ref.columnsCount,
|
|
24
|
+
verticalSpacing = _ref.verticalSpacing,
|
|
25
|
+
items = _ref.items,
|
|
26
|
+
initialState = _ref.state;
|
|
27
|
+
|
|
28
|
+
_classCallCheck(this, TestVirtualScroller);
|
|
29
|
+
|
|
30
|
+
this.expectedStateUpdates = [];
|
|
31
|
+
var scrollableContainerElement = {
|
|
32
|
+
width: scrollableContainerWidth,
|
|
33
|
+
height: scrollableContainerHeight
|
|
34
|
+
};
|
|
35
|
+
var containerElement = {
|
|
36
|
+
paddingTop: 0,
|
|
37
|
+
paddingBottom: 0,
|
|
38
|
+
width: scrollableContainerElement.width,
|
|
39
|
+
children: []
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
this.setScrollableContainerWidth = function (width) {
|
|
43
|
+
scrollableContainerElement.width = width;
|
|
44
|
+
containerElement.width = width;
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
this.setScrollableContainerHeight = function (height) {
|
|
48
|
+
scrollableContainerElement.height = height;
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
var getItemsContainerElement = function getItemsContainerElement() {
|
|
52
|
+
return containerElement;
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
this.__columnsCount = columnsCount;
|
|
56
|
+
|
|
57
|
+
var getColumnsCount = function getColumnsCount() {
|
|
58
|
+
return _this.__columnsCount;
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
var getItemWidth = function getItemWidth() {
|
|
62
|
+
return scrollableContainerElement.width / getColumnsCount();
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
this.hasPausedStateUpdates = undefined;
|
|
66
|
+
this.pausedStateUpdate = undefined;
|
|
67
|
+
this.pausedStateUpdateAction = undefined;
|
|
68
|
+
|
|
69
|
+
var onBeforeUpdateState = function onBeforeUpdateState(stateUpdate) {
|
|
70
|
+
if (_this.expectedStateUpdates.length > 0) {
|
|
71
|
+
var expectedStateUpdate = _this.expectedStateUpdates.shift();
|
|
72
|
+
|
|
73
|
+
expect(stateUpdate).to.deep.equal(expectedStateUpdate.stateUpdate);
|
|
74
|
+
|
|
75
|
+
if (expectedStateUpdate.callback) {
|
|
76
|
+
expectedStateUpdate.callback();
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
var render = function render() {
|
|
82
|
+
var _this$virtualScroller = _this.virtualScroller.getState(),
|
|
83
|
+
items = _this$virtualScroller.items,
|
|
84
|
+
beforeItemsHeight = _this$virtualScroller.beforeItemsHeight,
|
|
85
|
+
afterItemsHeight = _this$virtualScroller.afterItemsHeight,
|
|
86
|
+
firstShownItemIndex = _this$virtualScroller.firstShownItemIndex,
|
|
87
|
+
lastShownItemIndex = _this$virtualScroller.lastShownItemIndex;
|
|
88
|
+
|
|
89
|
+
console.log('~ Render List ~');
|
|
90
|
+
containerElement.paddingTop = beforeItemsHeight;
|
|
91
|
+
containerElement.paddingBottom = afterItemsHeight;
|
|
92
|
+
containerElement.children = items.slice(firstShownItemIndex, lastShownItemIndex + 1).map(function (item) {
|
|
93
|
+
return {
|
|
94
|
+
width: getItemWidth(),
|
|
95
|
+
height: item.area / getItemWidth(),
|
|
96
|
+
marginTop: verticalSpacing
|
|
97
|
+
};
|
|
98
|
+
});
|
|
99
|
+
};
|
|
100
|
+
|
|
101
|
+
this.virtualScroller = new VirtualScroller(getItemsContainerElement, items, {
|
|
102
|
+
scrollableContainer: scrollableContainerElement,
|
|
103
|
+
engine: Engine,
|
|
104
|
+
_waitForScrollingToStop: false,
|
|
105
|
+
getColumnsCount: getColumnsCount,
|
|
106
|
+
state: initialState,
|
|
107
|
+
onStateChange: function onStateChange(state) {
|
|
108
|
+
if (DEBUG) {
|
|
109
|
+
console.log('~ Updated State ~');
|
|
110
|
+
console.log(state);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
var state = this.virtualScroller.getInitialState();
|
|
115
|
+
this.virtualScroller.useState({
|
|
116
|
+
getState: function getState() {
|
|
117
|
+
return state;
|
|
118
|
+
},
|
|
119
|
+
updateState: function updateState(stateUpdate) {
|
|
120
|
+
var stateUpdateAction = function stateUpdateAction(stateUpdate) {
|
|
121
|
+
// Is only used in tests.
|
|
122
|
+
if (onBeforeUpdateState) {
|
|
123
|
+
onBeforeUpdateState(stateUpdate);
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
state = _objectSpread(_objectSpread({}, state), stateUpdate);
|
|
127
|
+
render();
|
|
128
|
+
|
|
129
|
+
_this.virtualScroller.onRender();
|
|
130
|
+
};
|
|
131
|
+
|
|
132
|
+
if (_this.hasPausedStateUpdates) {
|
|
133
|
+
_this.pausedStateUpdate = _objectSpread(_objectSpread({}, _this.pausedStateUpdate), stateUpdate);
|
|
134
|
+
_this.pausedStateUpdateAction = stateUpdateAction;
|
|
135
|
+
} else {
|
|
136
|
+
stateUpdateAction(stateUpdate);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
});
|
|
140
|
+
render();
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
_createClass(TestVirtualScroller, [{
|
|
144
|
+
key: "pauseStateUpdates",
|
|
145
|
+
value: function pauseStateUpdates() {
|
|
146
|
+
if (this.hasPausedStateUpdates) {
|
|
147
|
+
throw new Error('[virtual-scroller] State updates have already been paused');
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
this.hasPausedStateUpdates = true;
|
|
151
|
+
}
|
|
152
|
+
}, {
|
|
153
|
+
key: "resumeStateUpdates",
|
|
154
|
+
value: function resumeStateUpdates() {
|
|
155
|
+
if (this.pausedStateUpdate) {
|
|
156
|
+
this.pausedStateUpdateAction(this.pausedStateUpdate);
|
|
157
|
+
this.pausedStateUpdate = undefined;
|
|
158
|
+
this.pausedStateUpdateAction = undefined;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
this.hasPausedStateUpdates = false;
|
|
162
|
+
}
|
|
163
|
+
}, {
|
|
164
|
+
key: "verifyState",
|
|
165
|
+
value: function verifyState(expectedState) {
|
|
166
|
+
// `mocha`/`chai`.
|
|
167
|
+
this.virtualScroller.getState().should.deep.include(expectedState);
|
|
168
|
+
}
|
|
169
|
+
}, {
|
|
170
|
+
key: "expectStateUpdate",
|
|
171
|
+
value: function expectStateUpdate(stateUpdate, callback) {
|
|
172
|
+
this.expectedStateUpdates.push({
|
|
173
|
+
stateUpdate: stateUpdate,
|
|
174
|
+
callback: callback
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
}, {
|
|
178
|
+
key: "getFirstNonMeasuredItemIndex",
|
|
179
|
+
value: function getFirstNonMeasuredItemIndex() {
|
|
180
|
+
return this.virtualScroller.firstNonMeasuredItemIndex;
|
|
181
|
+
}
|
|
182
|
+
}, {
|
|
183
|
+
key: "getScrollY",
|
|
184
|
+
value: function getScrollY() {
|
|
185
|
+
return this.virtualScroller.scrollableContainer.getScrollY();
|
|
186
|
+
}
|
|
187
|
+
}, {
|
|
188
|
+
key: "scrollTo",
|
|
189
|
+
value: function scrollTo(scrollPosition) {
|
|
190
|
+
this.virtualScroller.scrollableContainer.scrollToY(scrollPosition);
|
|
191
|
+
}
|
|
192
|
+
}, {
|
|
193
|
+
key: "resize",
|
|
194
|
+
value: function resize(_ref2) {
|
|
195
|
+
var scrollableContainerWidth = _ref2.screenWidth,
|
|
196
|
+
scrollableContainerHeight = _ref2.screenHeight,
|
|
197
|
+
columnsCount = _ref2.columnsCount;
|
|
198
|
+
// Resize scrollable container.
|
|
199
|
+
this.setScrollableContainerWidth(scrollableContainerWidth);
|
|
200
|
+
this.setScrollableContainerHeight(scrollableContainerHeight); // Update columns count.
|
|
201
|
+
|
|
202
|
+
this.__columnsCount = columnsCount;
|
|
203
|
+
} // Returns a `Promise`.
|
|
204
|
+
|
|
205
|
+
}, {
|
|
206
|
+
key: "triggerResize",
|
|
207
|
+
value: function triggerResize(_ref3) {
|
|
208
|
+
var screenWidth = _ref3.screenWidth,
|
|
209
|
+
screenHeight = _ref3.screenHeight,
|
|
210
|
+
columnsCount = _ref3.columnsCount,
|
|
211
|
+
verticalSpacing = _ref3.verticalSpacing;
|
|
212
|
+
this.resize({
|
|
213
|
+
screenWidth: screenWidth,
|
|
214
|
+
screenHeight: screenHeight,
|
|
215
|
+
columnsCount: columnsCount,
|
|
216
|
+
verticalSpacing: verticalSpacing
|
|
217
|
+
}); // Call "on resize" listener.
|
|
218
|
+
|
|
219
|
+
return this.virtualScroller.scrollableContainer._triggerResizeListener();
|
|
220
|
+
}
|
|
221
|
+
}, {
|
|
222
|
+
key: "stop",
|
|
223
|
+
value: function stop() {
|
|
224
|
+
if (this.expectedStateUpdates.length > 0) {
|
|
225
|
+
throw new Error("[virtual-scroller] Expected ".concat(this.expectedStateUpdates.length, " state updates which didn't happen:\n").concat(JSON.stringify(this.expectedStateUpdates, null, 2)));
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
if (this.pausedStateUpdate) {
|
|
229
|
+
throw new Error('[virtual-scroller] State updates were paused and haven\'t been resumed afterwards');
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
this.virtualScroller.stop();
|
|
233
|
+
}
|
|
234
|
+
}, {
|
|
235
|
+
key: "start",
|
|
236
|
+
value: function start() {
|
|
237
|
+
this.virtualScroller.start();
|
|
238
|
+
}
|
|
239
|
+
}, {
|
|
240
|
+
key: "getState",
|
|
241
|
+
value: function getState() {
|
|
242
|
+
return this.virtualScroller.getState();
|
|
243
|
+
}
|
|
244
|
+
}, {
|
|
245
|
+
key: "updateLayout",
|
|
246
|
+
value: function updateLayout() {
|
|
247
|
+
this.virtualScroller.updateLayout();
|
|
248
|
+
}
|
|
249
|
+
}, {
|
|
250
|
+
key: "getItemScrollPosition",
|
|
251
|
+
value: function getItemScrollPosition(i) {
|
|
252
|
+
return this.virtualScroller.getItemScrollPosition(i);
|
|
253
|
+
}
|
|
254
|
+
}, {
|
|
255
|
+
key: "getAverageItemHeight",
|
|
256
|
+
value: function getAverageItemHeight() {
|
|
257
|
+
return this.virtualScroller.itemHeights.getAverage();
|
|
258
|
+
}
|
|
259
|
+
}, {
|
|
260
|
+
key: "setItems",
|
|
261
|
+
value: function setItems(newItems, options) {
|
|
262
|
+
this.virtualScroller.setItems(newItems, options);
|
|
263
|
+
}
|
|
264
|
+
}]);
|
|
265
|
+
|
|
266
|
+
return TestVirtualScroller;
|
|
267
|
+
}();
|
|
268
|
+
|
|
269
|
+
export { TestVirtualScroller as default };
|
|
270
|
+
//# sourceMappingURL=VirtualScroller.js.map
|