virtual-scroller 1.9.0 → 1.9.1
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/bundle/virtual-scroller-react.js +1 -1
- package/bundle/virtual-scroller-react.js.map +1 -1
- package/commonjs/react/VirtualScroller.js +10 -4
- package/commonjs/react/VirtualScroller.js.map +1 -1
- package/modules/react/VirtualScroller.js +2 -2
- package/modules/react/VirtualScroller.js.map +1 -1
- package/package.json +1 -1
- package/source/react/VirtualScroller.js +1 -1
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
4
|
+
|
|
3
5
|
Object.defineProperty(exports, "__esModule", {
|
|
4
6
|
value: true
|
|
5
7
|
});
|
|
6
8
|
exports["default"] = void 0;
|
|
7
9
|
|
|
8
|
-
var _react = require("react");
|
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
11
|
|
|
10
12
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
13
|
|
|
@@ -33,6 +35,10 @@ var _excluded = ["as", "items", "itemComponent", "itemComponentProps", "estimate
|
|
|
33
35
|
|
|
34
36
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
35
37
|
|
|
38
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
39
|
+
|
|
40
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
41
|
+
|
|
36
42
|
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
37
43
|
|
|
38
44
|
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
@@ -184,13 +190,13 @@ function VirtualScroller(_ref, ref) {
|
|
|
184
190
|
firstShownItemIndex = _virtualScroller$getS.firstShownItemIndex,
|
|
185
191
|
lastShownItemIndex = _virtualScroller$getS.lastShownItemIndex;
|
|
186
192
|
|
|
187
|
-
return /*#__PURE__*/
|
|
193
|
+
return /*#__PURE__*/_react["default"].createElement(AsComponent, _extends({}, rest, {
|
|
188
194
|
ref: container,
|
|
189
195
|
className: className,
|
|
190
196
|
style: style
|
|
191
197
|
}), renderedItems.map(function (item, i) {
|
|
192
198
|
if (i >= firstShownItemIndex && i <= lastShownItemIndex) {
|
|
193
|
-
return /*#__PURE__*/
|
|
199
|
+
return /*#__PURE__*/_react["default"].createElement(Component, _extends({}, itemComponentProps, {
|
|
194
200
|
key: getItemKey(item, i),
|
|
195
201
|
state: itemStates && itemStates[i],
|
|
196
202
|
onStateChange: getOnItemStateChange(i),
|
|
@@ -202,7 +208,7 @@ function VirtualScroller(_ref, ref) {
|
|
|
202
208
|
}));
|
|
203
209
|
}
|
|
204
210
|
|
|
205
|
-
VirtualScroller =
|
|
211
|
+
VirtualScroller = /*#__PURE__*/_react["default"].forwardRef(VirtualScroller);
|
|
206
212
|
var _default = VirtualScroller; // `PropTypes.elementType` is available in some version of `prop-types`.
|
|
207
213
|
// https://github.com/facebook/prop-types/issues/200
|
|
208
214
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VirtualScroller.js","names":["VirtualScroller","ref","AsComponent","as","items","Component","itemComponent","itemComponentProps","estimatedItemHeight","bypass","tbody","preserveScrollPosition","preserveScrollPositionOnPrependItems","measureItemsBatchSize","scrollableContainer","getScrollableContainer","getColumnsCount","getItemId","className","onMount","onItemFirstRender","onItemInitialRender","initialScrollPosition","onScrollPositionChange","onStateChange","initialState","rest","container","useRef","virtualScroller","useVirtualScroller","_initialState","useMemo","getInitialState","useState","onRender","getState","updateState","useVirtualScrollerStartStop","useItemKeys","getItemKey","updateItemKeysForNewItems","getOnItemStateChange","useOnItemStateChange","getOnItemHeightChange","useOnItemHeightChange","useHandleItemsChange","useInstanceMethods","useLayoutEffect","useClassName","style","useStyle","renderedItems","itemStates","firstShownItemIndex","lastShownItemIndex","map","item","i","React","forwardRef","elementType","PropTypes","oneOfType","string","func","object","propTypes","arrayOf","any","isRequired","number","bool","shape","beforeItemsHeight","afterItemsHeight","itemHeights","columnsCount","verticalSpacing","defaultProps"],"sources":["../../source/react/VirtualScroller.js"],"sourcesContent":["import { useRef, useMemo, useLayoutEffect } from 'react'\r\nimport PropTypes from 'prop-types'\r\n\r\nimport useState from './useState.js'\r\nimport useVirtualScroller from './useVirtualScroller.js'\r\nimport useVirtualScrollerStartStop from './useVirtualScrollerStartStop.js'\r\nimport useInstanceMethods from './useInstanceMethods.js'\r\nimport useItemKeys from './useItemKeys.js'\r\nimport useOnItemStateChange from './useOnItemStateChange.js'\r\nimport useOnItemHeightChange from './useOnItemHeightChange.js'\r\nimport useHandleItemsChange from './useHandleItemsChange.js'\r\nimport useClassName from './useClassName.js'\r\nimport useStyle from './useStyle.js'\r\n\r\nfunction VirtualScroller({\r\n\tas: AsComponent,\r\n\titems,\r\n\titemComponent: Component,\r\n\titemComponentProps,\r\n\testimatedItemHeight,\r\n\tbypass,\r\n\ttbody,\r\n\t// `preserveScrollPosition` property name is deprecated,\r\n\t// use `preserveScrollPositionOnPrependItems` property instead.\r\n\tpreserveScrollPosition,\r\n\tpreserveScrollPositionOnPrependItems,\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\tclassName,\r\n\tonMount,\r\n\t// `onItemFirstRender(i)` is deprecated, use `onItemInitialRender(item)` instead.\r\n\tonItemFirstRender,\r\n\tonItemInitialRender,\r\n\tinitialScrollPosition,\r\n\tonScrollPositionChange,\r\n\tonStateChange,\r\n\tinitialState,\r\n\t...rest\r\n}, ref) {\r\n\t// List items \"container\" DOM Element reference.\r\n\tconst container = useRef()\r\n\r\n\t// Create a `VirtualScroller` instance.\r\n\tconst virtualScroller = useVirtualScroller({\r\n\t\titems,\r\n\t\testimatedItemHeight,\r\n\t\tbypass,\r\n\t\t// bypassBatchSize,\r\n\t\ttbody,\r\n\t\tonItemInitialRender,\r\n\t\t// `onItemFirstRender(i)` is deprecated, use `onItemInitialRender(item)` instead.\r\n\t\tonItemFirstRender,\r\n\t\tinitialScrollPosition,\r\n\t\tonScrollPositionChange,\r\n\t\tmeasureItemsBatchSize,\r\n\t\t// `scrollableContainer` property is deprecated.\r\n\t\t// Use `getScrollableContainer()` property instead.\r\n\t\tscrollableContainer,\r\n\t\tgetScrollableContainer,\r\n\t\tgetColumnsCount,\r\n\t\tgetItemId,\r\n\t\tAsComponent,\r\n\t\tinitialState,\r\n\t\tonStateChange\r\n\t}, {\r\n\t\tcontainer\r\n\t})\r\n\r\n\t// Only compute the initial state once.\r\n\tconst _initialState = useMemo(() => {\r\n\t\treturn virtualScroller.getInitialState()\r\n\t}, [])\r\n\r\n\t// Create state management functions.\r\n\tconst {\r\n\t\tgetState,\r\n\t\tupdateState\r\n\t} = useState({\r\n\t\tinitialState: _initialState,\r\n\t\tonRender: virtualScroller.onRender,\r\n\t\titems\r\n\t})\r\n\r\n\t// Use custom (external) state storage in the `VirtualScroller`.\r\n\tuseMemo(() => {\r\n\t\tvirtualScroller.useState({\r\n\t\t\tgetState,\r\n\t\t\tupdateState\r\n\t\t})\r\n\t}, [])\r\n\r\n\t// Start `VirtualScroller` on mount.\r\n\t// Stop `VirtualScroller` on unmount.\r\n\tuseVirtualScrollerStartStop(virtualScroller)\r\n\r\n\t// List items are rendered with `key`s so that React doesn't\r\n\t// \"reuse\" `itemComponent`s in cases when `items` are changed.\r\n\tconst {\r\n\t\tgetItemKey,\r\n\t\tupdateItemKeysForNewItems\r\n\t} = useItemKeys({\r\n\t\tgetItemId\r\n\t})\r\n\r\n\t// Cache per-item `onItemStateChange` functions' \"references\"\r\n\t// so that item components don't get re-rendered needlessly.\r\n\tconst getOnItemStateChange = useOnItemStateChange({\r\n\t\titems,\r\n\t\tvirtualScroller\r\n\t})\r\n\r\n\t// Cache per-item `onItemHeightChange` functions' \"references\"\r\n\t// so that item components don't get re-rendered needlessly.\r\n\tconst getOnItemHeightChange = useOnItemHeightChange({\r\n\t\titems,\r\n\t\tvirtualScroller\r\n\t})\r\n\r\n\t// Detect if `items` have changed.\r\n\tuseHandleItemsChange(items, {\r\n\t\tvirtualScroller,\r\n\t\t// `preserveScrollPosition` property name is deprecated,\r\n\t\t// use `preserveScrollPositionOnPrependItems` property instead.\r\n\t\tpreserveScrollPosition,\r\n\t\tpreserveScrollPositionOnPrependItems,\r\n\t\tupdateItemKeysForNewItems\r\n\t})\r\n\r\n\t// Add instance methods to the React component.\r\n\tuseInstanceMethods(ref, {\r\n\t\tvirtualScroller\r\n\t})\r\n\r\n\tuseLayoutEffect(() => {\r\n\t\t// (deprecated)\r\n\t\t// `onMount()` option is deprecated due to no longer being used.\r\n\t\t// If someone thinks there's a valid use case for it, create an issue.\r\n\t\tif (onMount) {\r\n\t\t\tonMount()\r\n\t\t}\r\n\t}, [])\r\n\r\n\t// `willRender()` function is no longer used.\r\n\t//\r\n\t// // `getSnapshotBeforeUpdate()` is called right before `componentDidUpdate()`.\r\n\t// // A hook equivalent/workaround for `getSnapshotBeforeUpdate()`:\r\n\t// // https://github.com/facebook/react/issues/15221#issuecomment-583448887\r\n\t// //\r\n\t// getSnapshotBeforeUpdate(prevProps, prevState) {\r\n\t// \tif (this.state !== prevState) {\r\n\t// \t\tthis.willRender(this.state, prevState)\r\n\t// \t}\r\n\t// \t// Returns `null` to avoid React warning:\r\n\t// \t// \"A snapshot value (or null) must be returned. You have returned undefined\".\r\n\t// \treturn null\r\n\t// }\r\n\r\n\tclassName = useClassName(className, {\r\n\t\ttbody\r\n\t})\r\n\r\n\tconst style = useStyle({\r\n\t\ttbody,\r\n\t\tvirtualScroller\r\n\t})\r\n\r\n\tconst {\r\n\t\titems: renderedItems,\r\n\t\titemStates,\r\n\t\tfirstShownItemIndex,\r\n\t\tlastShownItemIndex\r\n\t} = virtualScroller.getState()\r\n\r\n\treturn (\r\n\t\t<AsComponent\r\n\t\t\t{...rest}\r\n\t\t\tref={container}\r\n\t\t\tclassName={className}\r\n\t\t\tstyle={style}>\r\n\t\t\t{renderedItems.map((item, i) => {\r\n\t\t\t\tif (i >= firstShownItemIndex && i <= lastShownItemIndex) {\r\n\t\t\t\t\treturn (\r\n\t\t\t\t\t\t<Component\r\n\t\t\t\t\t\t\t{...itemComponentProps}\r\n\t\t\t\t\t\t\tkey={getItemKey(item, i)}\r\n\t\t\t\t\t\t\tstate={itemStates && itemStates[i]}\r\n\t\t\t\t\t\t\tonStateChange={getOnItemStateChange(i)}\r\n\t\t\t\t\t\t\tonHeightChange={getOnItemHeightChange(i)}>\r\n\t\t\t\t\t\t\t{item}\r\n\t\t\t\t\t\t</Component>\r\n\t\t\t\t\t)\r\n\t\t\t\t}\r\n\t\t\t\treturn null\r\n\t\t\t})}\r\n\t\t</AsComponent>\r\n\t)\r\n}\r\n\r\nVirtualScroller = React.forwardRef(VirtualScroller)\r\n\r\nexport default VirtualScroller\r\n\r\n// `PropTypes.elementType` is available in some version of `prop-types`.\r\n// https://github.com/facebook/prop-types/issues/200\r\nconst elementType = PropTypes.elementType || PropTypes.oneOfType([\r\n\tPropTypes.string,\r\n\tPropTypes.func,\r\n\tPropTypes.object\r\n])\r\n\r\nVirtualScroller.propTypes = {\r\n\tas: elementType,\r\n\titems: PropTypes.arrayOf(PropTypes.any).isRequired,\r\n\titemComponent: elementType.isRequired,\r\n\titemComponentProps: PropTypes.object,\r\n\testimatedItemHeight: PropTypes.number,\r\n\tbypass: PropTypes.bool,\r\n\t// bypassBatchSize: PropTypes.number,\r\n\ttbody: PropTypes.bool,\r\n\tpreserveScrollPositionOnPrependItems: PropTypes.bool,\r\n\t// `preserveScrollPosition` property name is deprecated,\r\n\t// use `preserveScrollPositionOnPrependItems` instead.\r\n\tpreserveScrollPosition: PropTypes.bool,\r\n\tmeasureItemsBatchSize: PropTypes.number,\r\n\t// `scrollableContainer` property is deprecated.\r\n\t// Use `getScrollableContainer()` property instead.\r\n\tscrollableContainer: PropTypes.any,\r\n\tgetScrollableContainer: PropTypes.func,\r\n\tgetColumnsCount: PropTypes.func,\r\n\tgetItemId: PropTypes.func,\r\n\tclassName: PropTypes.string,\r\n\tonMount: PropTypes.func,\r\n\tonItemInitialRender: PropTypes.func,\r\n\t// `onItemFirstRender(i)` is deprecated, use `onItemInitialRender(item)` instead.\r\n\tonItemFirstRender: PropTypes.func,\r\n\tinitialScrollPosition: PropTypes.number,\r\n\tonScrollPositionChange: PropTypes.func,\r\n\tonStateChange: PropTypes.func,\r\n\tinitialState: PropTypes.shape({\r\n\t\titems: PropTypes.arrayOf(PropTypes.object).isRequired,\r\n\t\titemStates: PropTypes.arrayOf(PropTypes.any),\r\n\t\tfirstShownItemIndex: PropTypes.number.isRequired,\r\n\t\tlastShownItemIndex: PropTypes.number.isRequired,\r\n\t\tbeforeItemsHeight: PropTypes.number.isRequired,\r\n\t\tafterItemsHeight: PropTypes.number.isRequired,\r\n\t\titemHeights: PropTypes.arrayOf(PropTypes.number).isRequired,\r\n\t\tcolumnsCount: PropTypes.number,\r\n\t\tverticalSpacing: PropTypes.number\r\n\t})\r\n}\r\n\r\nVirtualScroller.defaultProps = {\r\n\tas: 'div'\r\n}\r\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"VirtualScroller.js","names":["VirtualScroller","ref","AsComponent","as","items","Component","itemComponent","itemComponentProps","estimatedItemHeight","bypass","tbody","preserveScrollPosition","preserveScrollPositionOnPrependItems","measureItemsBatchSize","scrollableContainer","getScrollableContainer","getColumnsCount","getItemId","className","onMount","onItemFirstRender","onItemInitialRender","initialScrollPosition","onScrollPositionChange","onStateChange","initialState","rest","container","useRef","virtualScroller","useVirtualScroller","_initialState","useMemo","getInitialState","useState","onRender","getState","updateState","useVirtualScrollerStartStop","useItemKeys","getItemKey","updateItemKeysForNewItems","getOnItemStateChange","useOnItemStateChange","getOnItemHeightChange","useOnItemHeightChange","useHandleItemsChange","useInstanceMethods","useLayoutEffect","useClassName","style","useStyle","renderedItems","itemStates","firstShownItemIndex","lastShownItemIndex","map","item","i","React","forwardRef","elementType","PropTypes","oneOfType","string","func","object","propTypes","arrayOf","any","isRequired","number","bool","shape","beforeItemsHeight","afterItemsHeight","itemHeights","columnsCount","verticalSpacing","defaultProps"],"sources":["../../source/react/VirtualScroller.js"],"sourcesContent":["import React, { useRef, useMemo, useLayoutEffect } from 'react'\r\nimport PropTypes from 'prop-types'\r\n\r\nimport useState from './useState.js'\r\nimport useVirtualScroller from './useVirtualScroller.js'\r\nimport useVirtualScrollerStartStop from './useVirtualScrollerStartStop.js'\r\nimport useInstanceMethods from './useInstanceMethods.js'\r\nimport useItemKeys from './useItemKeys.js'\r\nimport useOnItemStateChange from './useOnItemStateChange.js'\r\nimport useOnItemHeightChange from './useOnItemHeightChange.js'\r\nimport useHandleItemsChange from './useHandleItemsChange.js'\r\nimport useClassName from './useClassName.js'\r\nimport useStyle from './useStyle.js'\r\n\r\nfunction VirtualScroller({\r\n\tas: AsComponent,\r\n\titems,\r\n\titemComponent: Component,\r\n\titemComponentProps,\r\n\testimatedItemHeight,\r\n\tbypass,\r\n\ttbody,\r\n\t// `preserveScrollPosition` property name is deprecated,\r\n\t// use `preserveScrollPositionOnPrependItems` property instead.\r\n\tpreserveScrollPosition,\r\n\tpreserveScrollPositionOnPrependItems,\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\tclassName,\r\n\tonMount,\r\n\t// `onItemFirstRender(i)` is deprecated, use `onItemInitialRender(item)` instead.\r\n\tonItemFirstRender,\r\n\tonItemInitialRender,\r\n\tinitialScrollPosition,\r\n\tonScrollPositionChange,\r\n\tonStateChange,\r\n\tinitialState,\r\n\t...rest\r\n}, ref) {\r\n\t// List items \"container\" DOM Element reference.\r\n\tconst container = useRef()\r\n\r\n\t// Create a `VirtualScroller` instance.\r\n\tconst virtualScroller = useVirtualScroller({\r\n\t\titems,\r\n\t\testimatedItemHeight,\r\n\t\tbypass,\r\n\t\t// bypassBatchSize,\r\n\t\ttbody,\r\n\t\tonItemInitialRender,\r\n\t\t// `onItemFirstRender(i)` is deprecated, use `onItemInitialRender(item)` instead.\r\n\t\tonItemFirstRender,\r\n\t\tinitialScrollPosition,\r\n\t\tonScrollPositionChange,\r\n\t\tmeasureItemsBatchSize,\r\n\t\t// `scrollableContainer` property is deprecated.\r\n\t\t// Use `getScrollableContainer()` property instead.\r\n\t\tscrollableContainer,\r\n\t\tgetScrollableContainer,\r\n\t\tgetColumnsCount,\r\n\t\tgetItemId,\r\n\t\tAsComponent,\r\n\t\tinitialState,\r\n\t\tonStateChange\r\n\t}, {\r\n\t\tcontainer\r\n\t})\r\n\r\n\t// Only compute the initial state once.\r\n\tconst _initialState = useMemo(() => {\r\n\t\treturn virtualScroller.getInitialState()\r\n\t}, [])\r\n\r\n\t// Create state management functions.\r\n\tconst {\r\n\t\tgetState,\r\n\t\tupdateState\r\n\t} = useState({\r\n\t\tinitialState: _initialState,\r\n\t\tonRender: virtualScroller.onRender,\r\n\t\titems\r\n\t})\r\n\r\n\t// Use custom (external) state storage in the `VirtualScroller`.\r\n\tuseMemo(() => {\r\n\t\tvirtualScroller.useState({\r\n\t\t\tgetState,\r\n\t\t\tupdateState\r\n\t\t})\r\n\t}, [])\r\n\r\n\t// Start `VirtualScroller` on mount.\r\n\t// Stop `VirtualScroller` on unmount.\r\n\tuseVirtualScrollerStartStop(virtualScroller)\r\n\r\n\t// List items are rendered with `key`s so that React doesn't\r\n\t// \"reuse\" `itemComponent`s in cases when `items` are changed.\r\n\tconst {\r\n\t\tgetItemKey,\r\n\t\tupdateItemKeysForNewItems\r\n\t} = useItemKeys({\r\n\t\tgetItemId\r\n\t})\r\n\r\n\t// Cache per-item `onItemStateChange` functions' \"references\"\r\n\t// so that item components don't get re-rendered needlessly.\r\n\tconst getOnItemStateChange = useOnItemStateChange({\r\n\t\titems,\r\n\t\tvirtualScroller\r\n\t})\r\n\r\n\t// Cache per-item `onItemHeightChange` functions' \"references\"\r\n\t// so that item components don't get re-rendered needlessly.\r\n\tconst getOnItemHeightChange = useOnItemHeightChange({\r\n\t\titems,\r\n\t\tvirtualScroller\r\n\t})\r\n\r\n\t// Detect if `items` have changed.\r\n\tuseHandleItemsChange(items, {\r\n\t\tvirtualScroller,\r\n\t\t// `preserveScrollPosition` property name is deprecated,\r\n\t\t// use `preserveScrollPositionOnPrependItems` property instead.\r\n\t\tpreserveScrollPosition,\r\n\t\tpreserveScrollPositionOnPrependItems,\r\n\t\tupdateItemKeysForNewItems\r\n\t})\r\n\r\n\t// Add instance methods to the React component.\r\n\tuseInstanceMethods(ref, {\r\n\t\tvirtualScroller\r\n\t})\r\n\r\n\tuseLayoutEffect(() => {\r\n\t\t// (deprecated)\r\n\t\t// `onMount()` option is deprecated due to no longer being used.\r\n\t\t// If someone thinks there's a valid use case for it, create an issue.\r\n\t\tif (onMount) {\r\n\t\t\tonMount()\r\n\t\t}\r\n\t}, [])\r\n\r\n\t// `willRender()` function is no longer used.\r\n\t//\r\n\t// // `getSnapshotBeforeUpdate()` is called right before `componentDidUpdate()`.\r\n\t// // A hook equivalent/workaround for `getSnapshotBeforeUpdate()`:\r\n\t// // https://github.com/facebook/react/issues/15221#issuecomment-583448887\r\n\t// //\r\n\t// getSnapshotBeforeUpdate(prevProps, prevState) {\r\n\t// \tif (this.state !== prevState) {\r\n\t// \t\tthis.willRender(this.state, prevState)\r\n\t// \t}\r\n\t// \t// Returns `null` to avoid React warning:\r\n\t// \t// \"A snapshot value (or null) must be returned. You have returned undefined\".\r\n\t// \treturn null\r\n\t// }\r\n\r\n\tclassName = useClassName(className, {\r\n\t\ttbody\r\n\t})\r\n\r\n\tconst style = useStyle({\r\n\t\ttbody,\r\n\t\tvirtualScroller\r\n\t})\r\n\r\n\tconst {\r\n\t\titems: renderedItems,\r\n\t\titemStates,\r\n\t\tfirstShownItemIndex,\r\n\t\tlastShownItemIndex\r\n\t} = virtualScroller.getState()\r\n\r\n\treturn (\r\n\t\t<AsComponent\r\n\t\t\t{...rest}\r\n\t\t\tref={container}\r\n\t\t\tclassName={className}\r\n\t\t\tstyle={style}>\r\n\t\t\t{renderedItems.map((item, i) => {\r\n\t\t\t\tif (i >= firstShownItemIndex && i <= lastShownItemIndex) {\r\n\t\t\t\t\treturn (\r\n\t\t\t\t\t\t<Component\r\n\t\t\t\t\t\t\t{...itemComponentProps}\r\n\t\t\t\t\t\t\tkey={getItemKey(item, i)}\r\n\t\t\t\t\t\t\tstate={itemStates && itemStates[i]}\r\n\t\t\t\t\t\t\tonStateChange={getOnItemStateChange(i)}\r\n\t\t\t\t\t\t\tonHeightChange={getOnItemHeightChange(i)}>\r\n\t\t\t\t\t\t\t{item}\r\n\t\t\t\t\t\t</Component>\r\n\t\t\t\t\t)\r\n\t\t\t\t}\r\n\t\t\t\treturn null\r\n\t\t\t})}\r\n\t\t</AsComponent>\r\n\t)\r\n}\r\n\r\nVirtualScroller = React.forwardRef(VirtualScroller)\r\n\r\nexport default VirtualScroller\r\n\r\n// `PropTypes.elementType` is available in some version of `prop-types`.\r\n// https://github.com/facebook/prop-types/issues/200\r\nconst elementType = PropTypes.elementType || PropTypes.oneOfType([\r\n\tPropTypes.string,\r\n\tPropTypes.func,\r\n\tPropTypes.object\r\n])\r\n\r\nVirtualScroller.propTypes = {\r\n\tas: elementType,\r\n\titems: PropTypes.arrayOf(PropTypes.any).isRequired,\r\n\titemComponent: elementType.isRequired,\r\n\titemComponentProps: PropTypes.object,\r\n\testimatedItemHeight: PropTypes.number,\r\n\tbypass: PropTypes.bool,\r\n\t// bypassBatchSize: PropTypes.number,\r\n\ttbody: PropTypes.bool,\r\n\tpreserveScrollPositionOnPrependItems: PropTypes.bool,\r\n\t// `preserveScrollPosition` property name is deprecated,\r\n\t// use `preserveScrollPositionOnPrependItems` instead.\r\n\tpreserveScrollPosition: PropTypes.bool,\r\n\tmeasureItemsBatchSize: PropTypes.number,\r\n\t// `scrollableContainer` property is deprecated.\r\n\t// Use `getScrollableContainer()` property instead.\r\n\tscrollableContainer: PropTypes.any,\r\n\tgetScrollableContainer: PropTypes.func,\r\n\tgetColumnsCount: PropTypes.func,\r\n\tgetItemId: PropTypes.func,\r\n\tclassName: PropTypes.string,\r\n\tonMount: PropTypes.func,\r\n\tonItemInitialRender: PropTypes.func,\r\n\t// `onItemFirstRender(i)` is deprecated, use `onItemInitialRender(item)` instead.\r\n\tonItemFirstRender: PropTypes.func,\r\n\tinitialScrollPosition: PropTypes.number,\r\n\tonScrollPositionChange: PropTypes.func,\r\n\tonStateChange: PropTypes.func,\r\n\tinitialState: PropTypes.shape({\r\n\t\titems: PropTypes.arrayOf(PropTypes.object).isRequired,\r\n\t\titemStates: PropTypes.arrayOf(PropTypes.any),\r\n\t\tfirstShownItemIndex: PropTypes.number.isRequired,\r\n\t\tlastShownItemIndex: PropTypes.number.isRequired,\r\n\t\tbeforeItemsHeight: PropTypes.number.isRequired,\r\n\t\tafterItemsHeight: PropTypes.number.isRequired,\r\n\t\titemHeights: PropTypes.arrayOf(PropTypes.number).isRequired,\r\n\t\tcolumnsCount: PropTypes.number,\r\n\t\tverticalSpacing: PropTypes.number\r\n\t})\r\n}\r\n\r\nVirtualScroller.defaultProps = {\r\n\tas: 'div'\r\n}\r\n"],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@ function _objectWithoutProperties(source, excluded) { if (source == null) return
|
|
|
6
6
|
|
|
7
7
|
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
8
8
|
|
|
9
|
-
import { useRef, useMemo, useLayoutEffect } from 'react';
|
|
9
|
+
import React, { useRef, useMemo, useLayoutEffect } from 'react';
|
|
10
10
|
import PropTypes from 'prop-types';
|
|
11
11
|
import useState from './useState.js';
|
|
12
12
|
import useVirtualScroller from './useVirtualScroller.js';
|
|
@@ -182,7 +182,7 @@ function VirtualScroller(_ref, ref) {
|
|
|
182
182
|
}));
|
|
183
183
|
}
|
|
184
184
|
|
|
185
|
-
VirtualScroller = React.forwardRef(VirtualScroller);
|
|
185
|
+
VirtualScroller = /*#__PURE__*/React.forwardRef(VirtualScroller);
|
|
186
186
|
export default VirtualScroller; // `PropTypes.elementType` is available in some version of `prop-types`.
|
|
187
187
|
// https://github.com/facebook/prop-types/issues/200
|
|
188
188
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VirtualScroller.js","names":["useRef","useMemo","useLayoutEffect","PropTypes","useState","useVirtualScroller","useVirtualScrollerStartStop","useInstanceMethods","useItemKeys","useOnItemStateChange","useOnItemHeightChange","useHandleItemsChange","useClassName","useStyle","VirtualScroller","ref","AsComponent","as","items","Component","itemComponent","itemComponentProps","estimatedItemHeight","bypass","tbody","preserveScrollPosition","preserveScrollPositionOnPrependItems","measureItemsBatchSize","scrollableContainer","getScrollableContainer","getColumnsCount","getItemId","className","onMount","onItemFirstRender","onItemInitialRender","initialScrollPosition","onScrollPositionChange","onStateChange","initialState","rest","container","virtualScroller","_initialState","getInitialState","onRender","getState","updateState","getItemKey","updateItemKeysForNewItems","getOnItemStateChange","getOnItemHeightChange","style","renderedItems","itemStates","firstShownItemIndex","lastShownItemIndex","map","item","i","React","forwardRef","elementType","oneOfType","string","func","object","propTypes","arrayOf","any","isRequired","number","bool","shape","beforeItemsHeight","afterItemsHeight","itemHeights","columnsCount","verticalSpacing","defaultProps"],"sources":["../../source/react/VirtualScroller.js"],"sourcesContent":["import { useRef, useMemo, useLayoutEffect } from 'react'\r\nimport PropTypes from 'prop-types'\r\n\r\nimport useState from './useState.js'\r\nimport useVirtualScroller from './useVirtualScroller.js'\r\nimport useVirtualScrollerStartStop from './useVirtualScrollerStartStop.js'\r\nimport useInstanceMethods from './useInstanceMethods.js'\r\nimport useItemKeys from './useItemKeys.js'\r\nimport useOnItemStateChange from './useOnItemStateChange.js'\r\nimport useOnItemHeightChange from './useOnItemHeightChange.js'\r\nimport useHandleItemsChange from './useHandleItemsChange.js'\r\nimport useClassName from './useClassName.js'\r\nimport useStyle from './useStyle.js'\r\n\r\nfunction VirtualScroller({\r\n\tas: AsComponent,\r\n\titems,\r\n\titemComponent: Component,\r\n\titemComponentProps,\r\n\testimatedItemHeight,\r\n\tbypass,\r\n\ttbody,\r\n\t// `preserveScrollPosition` property name is deprecated,\r\n\t// use `preserveScrollPositionOnPrependItems` property instead.\r\n\tpreserveScrollPosition,\r\n\tpreserveScrollPositionOnPrependItems,\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\tclassName,\r\n\tonMount,\r\n\t// `onItemFirstRender(i)` is deprecated, use `onItemInitialRender(item)` instead.\r\n\tonItemFirstRender,\r\n\tonItemInitialRender,\r\n\tinitialScrollPosition,\r\n\tonScrollPositionChange,\r\n\tonStateChange,\r\n\tinitialState,\r\n\t...rest\r\n}, ref) {\r\n\t// List items \"container\" DOM Element reference.\r\n\tconst container = useRef()\r\n\r\n\t// Create a `VirtualScroller` instance.\r\n\tconst virtualScroller = useVirtualScroller({\r\n\t\titems,\r\n\t\testimatedItemHeight,\r\n\t\tbypass,\r\n\t\t// bypassBatchSize,\r\n\t\ttbody,\r\n\t\tonItemInitialRender,\r\n\t\t// `onItemFirstRender(i)` is deprecated, use `onItemInitialRender(item)` instead.\r\n\t\tonItemFirstRender,\r\n\t\tinitialScrollPosition,\r\n\t\tonScrollPositionChange,\r\n\t\tmeasureItemsBatchSize,\r\n\t\t// `scrollableContainer` property is deprecated.\r\n\t\t// Use `getScrollableContainer()` property instead.\r\n\t\tscrollableContainer,\r\n\t\tgetScrollableContainer,\r\n\t\tgetColumnsCount,\r\n\t\tgetItemId,\r\n\t\tAsComponent,\r\n\t\tinitialState,\r\n\t\tonStateChange\r\n\t}, {\r\n\t\tcontainer\r\n\t})\r\n\r\n\t// Only compute the initial state once.\r\n\tconst _initialState = useMemo(() => {\r\n\t\treturn virtualScroller.getInitialState()\r\n\t}, [])\r\n\r\n\t// Create state management functions.\r\n\tconst {\r\n\t\tgetState,\r\n\t\tupdateState\r\n\t} = useState({\r\n\t\tinitialState: _initialState,\r\n\t\tonRender: virtualScroller.onRender,\r\n\t\titems\r\n\t})\r\n\r\n\t// Use custom (external) state storage in the `VirtualScroller`.\r\n\tuseMemo(() => {\r\n\t\tvirtualScroller.useState({\r\n\t\t\tgetState,\r\n\t\t\tupdateState\r\n\t\t})\r\n\t}, [])\r\n\r\n\t// Start `VirtualScroller` on mount.\r\n\t// Stop `VirtualScroller` on unmount.\r\n\tuseVirtualScrollerStartStop(virtualScroller)\r\n\r\n\t// List items are rendered with `key`s so that React doesn't\r\n\t// \"reuse\" `itemComponent`s in cases when `items` are changed.\r\n\tconst {\r\n\t\tgetItemKey,\r\n\t\tupdateItemKeysForNewItems\r\n\t} = useItemKeys({\r\n\t\tgetItemId\r\n\t})\r\n\r\n\t// Cache per-item `onItemStateChange` functions' \"references\"\r\n\t// so that item components don't get re-rendered needlessly.\r\n\tconst getOnItemStateChange = useOnItemStateChange({\r\n\t\titems,\r\n\t\tvirtualScroller\r\n\t})\r\n\r\n\t// Cache per-item `onItemHeightChange` functions' \"references\"\r\n\t// so that item components don't get re-rendered needlessly.\r\n\tconst getOnItemHeightChange = useOnItemHeightChange({\r\n\t\titems,\r\n\t\tvirtualScroller\r\n\t})\r\n\r\n\t// Detect if `items` have changed.\r\n\tuseHandleItemsChange(items, {\r\n\t\tvirtualScroller,\r\n\t\t// `preserveScrollPosition` property name is deprecated,\r\n\t\t// use `preserveScrollPositionOnPrependItems` property instead.\r\n\t\tpreserveScrollPosition,\r\n\t\tpreserveScrollPositionOnPrependItems,\r\n\t\tupdateItemKeysForNewItems\r\n\t})\r\n\r\n\t// Add instance methods to the React component.\r\n\tuseInstanceMethods(ref, {\r\n\t\tvirtualScroller\r\n\t})\r\n\r\n\tuseLayoutEffect(() => {\r\n\t\t// (deprecated)\r\n\t\t// `onMount()` option is deprecated due to no longer being used.\r\n\t\t// If someone thinks there's a valid use case for it, create an issue.\r\n\t\tif (onMount) {\r\n\t\t\tonMount()\r\n\t\t}\r\n\t}, [])\r\n\r\n\t// `willRender()` function is no longer used.\r\n\t//\r\n\t// // `getSnapshotBeforeUpdate()` is called right before `componentDidUpdate()`.\r\n\t// // A hook equivalent/workaround for `getSnapshotBeforeUpdate()`:\r\n\t// // https://github.com/facebook/react/issues/15221#issuecomment-583448887\r\n\t// //\r\n\t// getSnapshotBeforeUpdate(prevProps, prevState) {\r\n\t// \tif (this.state !== prevState) {\r\n\t// \t\tthis.willRender(this.state, prevState)\r\n\t// \t}\r\n\t// \t// Returns `null` to avoid React warning:\r\n\t// \t// \"A snapshot value (or null) must be returned. You have returned undefined\".\r\n\t// \treturn null\r\n\t// }\r\n\r\n\tclassName = useClassName(className, {\r\n\t\ttbody\r\n\t})\r\n\r\n\tconst style = useStyle({\r\n\t\ttbody,\r\n\t\tvirtualScroller\r\n\t})\r\n\r\n\tconst {\r\n\t\titems: renderedItems,\r\n\t\titemStates,\r\n\t\tfirstShownItemIndex,\r\n\t\tlastShownItemIndex\r\n\t} = virtualScroller.getState()\r\n\r\n\treturn (\r\n\t\t<AsComponent\r\n\t\t\t{...rest}\r\n\t\t\tref={container}\r\n\t\t\tclassName={className}\r\n\t\t\tstyle={style}>\r\n\t\t\t{renderedItems.map((item, i) => {\r\n\t\t\t\tif (i >= firstShownItemIndex && i <= lastShownItemIndex) {\r\n\t\t\t\t\treturn (\r\n\t\t\t\t\t\t<Component\r\n\t\t\t\t\t\t\t{...itemComponentProps}\r\n\t\t\t\t\t\t\tkey={getItemKey(item, i)}\r\n\t\t\t\t\t\t\tstate={itemStates && itemStates[i]}\r\n\t\t\t\t\t\t\tonStateChange={getOnItemStateChange(i)}\r\n\t\t\t\t\t\t\tonHeightChange={getOnItemHeightChange(i)}>\r\n\t\t\t\t\t\t\t{item}\r\n\t\t\t\t\t\t</Component>\r\n\t\t\t\t\t)\r\n\t\t\t\t}\r\n\t\t\t\treturn null\r\n\t\t\t})}\r\n\t\t</AsComponent>\r\n\t)\r\n}\r\n\r\nVirtualScroller = React.forwardRef(VirtualScroller)\r\n\r\nexport default VirtualScroller\r\n\r\n// `PropTypes.elementType` is available in some version of `prop-types`.\r\n// https://github.com/facebook/prop-types/issues/200\r\nconst elementType = PropTypes.elementType || PropTypes.oneOfType([\r\n\tPropTypes.string,\r\n\tPropTypes.func,\r\n\tPropTypes.object\r\n])\r\n\r\nVirtualScroller.propTypes = {\r\n\tas: elementType,\r\n\titems: PropTypes.arrayOf(PropTypes.any).isRequired,\r\n\titemComponent: elementType.isRequired,\r\n\titemComponentProps: PropTypes.object,\r\n\testimatedItemHeight: PropTypes.number,\r\n\tbypass: PropTypes.bool,\r\n\t// bypassBatchSize: PropTypes.number,\r\n\ttbody: PropTypes.bool,\r\n\tpreserveScrollPositionOnPrependItems: PropTypes.bool,\r\n\t// `preserveScrollPosition` property name is deprecated,\r\n\t// use `preserveScrollPositionOnPrependItems` instead.\r\n\tpreserveScrollPosition: PropTypes.bool,\r\n\tmeasureItemsBatchSize: PropTypes.number,\r\n\t// `scrollableContainer` property is deprecated.\r\n\t// Use `getScrollableContainer()` property instead.\r\n\tscrollableContainer: PropTypes.any,\r\n\tgetScrollableContainer: PropTypes.func,\r\n\tgetColumnsCount: PropTypes.func,\r\n\tgetItemId: PropTypes.func,\r\n\tclassName: PropTypes.string,\r\n\tonMount: PropTypes.func,\r\n\tonItemInitialRender: PropTypes.func,\r\n\t// `onItemFirstRender(i)` is deprecated, use `onItemInitialRender(item)` instead.\r\n\tonItemFirstRender: PropTypes.func,\r\n\tinitialScrollPosition: PropTypes.number,\r\n\tonScrollPositionChange: PropTypes.func,\r\n\tonStateChange: PropTypes.func,\r\n\tinitialState: PropTypes.shape({\r\n\t\titems: PropTypes.arrayOf(PropTypes.object).isRequired,\r\n\t\titemStates: PropTypes.arrayOf(PropTypes.any),\r\n\t\tfirstShownItemIndex: PropTypes.number.isRequired,\r\n\t\tlastShownItemIndex: PropTypes.number.isRequired,\r\n\t\tbeforeItemsHeight: PropTypes.number.isRequired,\r\n\t\tafterItemsHeight: PropTypes.number.isRequired,\r\n\t\titemHeights: PropTypes.arrayOf(PropTypes.number).isRequired,\r\n\t\tcolumnsCount: PropTypes.number,\r\n\t\tverticalSpacing: PropTypes.number\r\n\t})\r\n}\r\n\r\nVirtualScroller.defaultProps = {\r\n\tas: 'div'\r\n}\r\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"VirtualScroller.js","names":["React","useRef","useMemo","useLayoutEffect","PropTypes","useState","useVirtualScroller","useVirtualScrollerStartStop","useInstanceMethods","useItemKeys","useOnItemStateChange","useOnItemHeightChange","useHandleItemsChange","useClassName","useStyle","VirtualScroller","ref","AsComponent","as","items","Component","itemComponent","itemComponentProps","estimatedItemHeight","bypass","tbody","preserveScrollPosition","preserveScrollPositionOnPrependItems","measureItemsBatchSize","scrollableContainer","getScrollableContainer","getColumnsCount","getItemId","className","onMount","onItemFirstRender","onItemInitialRender","initialScrollPosition","onScrollPositionChange","onStateChange","initialState","rest","container","virtualScroller","_initialState","getInitialState","onRender","getState","updateState","getItemKey","updateItemKeysForNewItems","getOnItemStateChange","getOnItemHeightChange","style","renderedItems","itemStates","firstShownItemIndex","lastShownItemIndex","map","item","i","forwardRef","elementType","oneOfType","string","func","object","propTypes","arrayOf","any","isRequired","number","bool","shape","beforeItemsHeight","afterItemsHeight","itemHeights","columnsCount","verticalSpacing","defaultProps"],"sources":["../../source/react/VirtualScroller.js"],"sourcesContent":["import React, { useRef, useMemo, useLayoutEffect } from 'react'\r\nimport PropTypes from 'prop-types'\r\n\r\nimport useState from './useState.js'\r\nimport useVirtualScroller from './useVirtualScroller.js'\r\nimport useVirtualScrollerStartStop from './useVirtualScrollerStartStop.js'\r\nimport useInstanceMethods from './useInstanceMethods.js'\r\nimport useItemKeys from './useItemKeys.js'\r\nimport useOnItemStateChange from './useOnItemStateChange.js'\r\nimport useOnItemHeightChange from './useOnItemHeightChange.js'\r\nimport useHandleItemsChange from './useHandleItemsChange.js'\r\nimport useClassName from './useClassName.js'\r\nimport useStyle from './useStyle.js'\r\n\r\nfunction VirtualScroller({\r\n\tas: AsComponent,\r\n\titems,\r\n\titemComponent: Component,\r\n\titemComponentProps,\r\n\testimatedItemHeight,\r\n\tbypass,\r\n\ttbody,\r\n\t// `preserveScrollPosition` property name is deprecated,\r\n\t// use `preserveScrollPositionOnPrependItems` property instead.\r\n\tpreserveScrollPosition,\r\n\tpreserveScrollPositionOnPrependItems,\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\tclassName,\r\n\tonMount,\r\n\t// `onItemFirstRender(i)` is deprecated, use `onItemInitialRender(item)` instead.\r\n\tonItemFirstRender,\r\n\tonItemInitialRender,\r\n\tinitialScrollPosition,\r\n\tonScrollPositionChange,\r\n\tonStateChange,\r\n\tinitialState,\r\n\t...rest\r\n}, ref) {\r\n\t// List items \"container\" DOM Element reference.\r\n\tconst container = useRef()\r\n\r\n\t// Create a `VirtualScroller` instance.\r\n\tconst virtualScroller = useVirtualScroller({\r\n\t\titems,\r\n\t\testimatedItemHeight,\r\n\t\tbypass,\r\n\t\t// bypassBatchSize,\r\n\t\ttbody,\r\n\t\tonItemInitialRender,\r\n\t\t// `onItemFirstRender(i)` is deprecated, use `onItemInitialRender(item)` instead.\r\n\t\tonItemFirstRender,\r\n\t\tinitialScrollPosition,\r\n\t\tonScrollPositionChange,\r\n\t\tmeasureItemsBatchSize,\r\n\t\t// `scrollableContainer` property is deprecated.\r\n\t\t// Use `getScrollableContainer()` property instead.\r\n\t\tscrollableContainer,\r\n\t\tgetScrollableContainer,\r\n\t\tgetColumnsCount,\r\n\t\tgetItemId,\r\n\t\tAsComponent,\r\n\t\tinitialState,\r\n\t\tonStateChange\r\n\t}, {\r\n\t\tcontainer\r\n\t})\r\n\r\n\t// Only compute the initial state once.\r\n\tconst _initialState = useMemo(() => {\r\n\t\treturn virtualScroller.getInitialState()\r\n\t}, [])\r\n\r\n\t// Create state management functions.\r\n\tconst {\r\n\t\tgetState,\r\n\t\tupdateState\r\n\t} = useState({\r\n\t\tinitialState: _initialState,\r\n\t\tonRender: virtualScroller.onRender,\r\n\t\titems\r\n\t})\r\n\r\n\t// Use custom (external) state storage in the `VirtualScroller`.\r\n\tuseMemo(() => {\r\n\t\tvirtualScroller.useState({\r\n\t\t\tgetState,\r\n\t\t\tupdateState\r\n\t\t})\r\n\t}, [])\r\n\r\n\t// Start `VirtualScroller` on mount.\r\n\t// Stop `VirtualScroller` on unmount.\r\n\tuseVirtualScrollerStartStop(virtualScroller)\r\n\r\n\t// List items are rendered with `key`s so that React doesn't\r\n\t// \"reuse\" `itemComponent`s in cases when `items` are changed.\r\n\tconst {\r\n\t\tgetItemKey,\r\n\t\tupdateItemKeysForNewItems\r\n\t} = useItemKeys({\r\n\t\tgetItemId\r\n\t})\r\n\r\n\t// Cache per-item `onItemStateChange` functions' \"references\"\r\n\t// so that item components don't get re-rendered needlessly.\r\n\tconst getOnItemStateChange = useOnItemStateChange({\r\n\t\titems,\r\n\t\tvirtualScroller\r\n\t})\r\n\r\n\t// Cache per-item `onItemHeightChange` functions' \"references\"\r\n\t// so that item components don't get re-rendered needlessly.\r\n\tconst getOnItemHeightChange = useOnItemHeightChange({\r\n\t\titems,\r\n\t\tvirtualScroller\r\n\t})\r\n\r\n\t// Detect if `items` have changed.\r\n\tuseHandleItemsChange(items, {\r\n\t\tvirtualScroller,\r\n\t\t// `preserveScrollPosition` property name is deprecated,\r\n\t\t// use `preserveScrollPositionOnPrependItems` property instead.\r\n\t\tpreserveScrollPosition,\r\n\t\tpreserveScrollPositionOnPrependItems,\r\n\t\tupdateItemKeysForNewItems\r\n\t})\r\n\r\n\t// Add instance methods to the React component.\r\n\tuseInstanceMethods(ref, {\r\n\t\tvirtualScroller\r\n\t})\r\n\r\n\tuseLayoutEffect(() => {\r\n\t\t// (deprecated)\r\n\t\t// `onMount()` option is deprecated due to no longer being used.\r\n\t\t// If someone thinks there's a valid use case for it, create an issue.\r\n\t\tif (onMount) {\r\n\t\t\tonMount()\r\n\t\t}\r\n\t}, [])\r\n\r\n\t// `willRender()` function is no longer used.\r\n\t//\r\n\t// // `getSnapshotBeforeUpdate()` is called right before `componentDidUpdate()`.\r\n\t// // A hook equivalent/workaround for `getSnapshotBeforeUpdate()`:\r\n\t// // https://github.com/facebook/react/issues/15221#issuecomment-583448887\r\n\t// //\r\n\t// getSnapshotBeforeUpdate(prevProps, prevState) {\r\n\t// \tif (this.state !== prevState) {\r\n\t// \t\tthis.willRender(this.state, prevState)\r\n\t// \t}\r\n\t// \t// Returns `null` to avoid React warning:\r\n\t// \t// \"A snapshot value (or null) must be returned. You have returned undefined\".\r\n\t// \treturn null\r\n\t// }\r\n\r\n\tclassName = useClassName(className, {\r\n\t\ttbody\r\n\t})\r\n\r\n\tconst style = useStyle({\r\n\t\ttbody,\r\n\t\tvirtualScroller\r\n\t})\r\n\r\n\tconst {\r\n\t\titems: renderedItems,\r\n\t\titemStates,\r\n\t\tfirstShownItemIndex,\r\n\t\tlastShownItemIndex\r\n\t} = virtualScroller.getState()\r\n\r\n\treturn (\r\n\t\t<AsComponent\r\n\t\t\t{...rest}\r\n\t\t\tref={container}\r\n\t\t\tclassName={className}\r\n\t\t\tstyle={style}>\r\n\t\t\t{renderedItems.map((item, i) => {\r\n\t\t\t\tif (i >= firstShownItemIndex && i <= lastShownItemIndex) {\r\n\t\t\t\t\treturn (\r\n\t\t\t\t\t\t<Component\r\n\t\t\t\t\t\t\t{...itemComponentProps}\r\n\t\t\t\t\t\t\tkey={getItemKey(item, i)}\r\n\t\t\t\t\t\t\tstate={itemStates && itemStates[i]}\r\n\t\t\t\t\t\t\tonStateChange={getOnItemStateChange(i)}\r\n\t\t\t\t\t\t\tonHeightChange={getOnItemHeightChange(i)}>\r\n\t\t\t\t\t\t\t{item}\r\n\t\t\t\t\t\t</Component>\r\n\t\t\t\t\t)\r\n\t\t\t\t}\r\n\t\t\t\treturn null\r\n\t\t\t})}\r\n\t\t</AsComponent>\r\n\t)\r\n}\r\n\r\nVirtualScroller = React.forwardRef(VirtualScroller)\r\n\r\nexport default VirtualScroller\r\n\r\n// `PropTypes.elementType` is available in some version of `prop-types`.\r\n// https://github.com/facebook/prop-types/issues/200\r\nconst elementType = PropTypes.elementType || PropTypes.oneOfType([\r\n\tPropTypes.string,\r\n\tPropTypes.func,\r\n\tPropTypes.object\r\n])\r\n\r\nVirtualScroller.propTypes = {\r\n\tas: elementType,\r\n\titems: PropTypes.arrayOf(PropTypes.any).isRequired,\r\n\titemComponent: elementType.isRequired,\r\n\titemComponentProps: PropTypes.object,\r\n\testimatedItemHeight: PropTypes.number,\r\n\tbypass: PropTypes.bool,\r\n\t// bypassBatchSize: PropTypes.number,\r\n\ttbody: PropTypes.bool,\r\n\tpreserveScrollPositionOnPrependItems: PropTypes.bool,\r\n\t// `preserveScrollPosition` property name is deprecated,\r\n\t// use `preserveScrollPositionOnPrependItems` instead.\r\n\tpreserveScrollPosition: PropTypes.bool,\r\n\tmeasureItemsBatchSize: PropTypes.number,\r\n\t// `scrollableContainer` property is deprecated.\r\n\t// Use `getScrollableContainer()` property instead.\r\n\tscrollableContainer: PropTypes.any,\r\n\tgetScrollableContainer: PropTypes.func,\r\n\tgetColumnsCount: PropTypes.func,\r\n\tgetItemId: PropTypes.func,\r\n\tclassName: PropTypes.string,\r\n\tonMount: PropTypes.func,\r\n\tonItemInitialRender: PropTypes.func,\r\n\t// `onItemFirstRender(i)` is deprecated, use `onItemInitialRender(item)` instead.\r\n\tonItemFirstRender: PropTypes.func,\r\n\tinitialScrollPosition: PropTypes.number,\r\n\tonScrollPositionChange: PropTypes.func,\r\n\tonStateChange: PropTypes.func,\r\n\tinitialState: PropTypes.shape({\r\n\t\titems: PropTypes.arrayOf(PropTypes.object).isRequired,\r\n\t\titemStates: PropTypes.arrayOf(PropTypes.any),\r\n\t\tfirstShownItemIndex: PropTypes.number.isRequired,\r\n\t\tlastShownItemIndex: PropTypes.number.isRequired,\r\n\t\tbeforeItemsHeight: PropTypes.number.isRequired,\r\n\t\tafterItemsHeight: PropTypes.number.isRequired,\r\n\t\titemHeights: PropTypes.arrayOf(PropTypes.number).isRequired,\r\n\t\tcolumnsCount: PropTypes.number,\r\n\t\tverticalSpacing: PropTypes.number\r\n\t})\r\n}\r\n\r\nVirtualScroller.defaultProps = {\r\n\tas: 'div'\r\n}\r\n"],"mappings":"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"}
|
package/package.json
CHANGED