{"ast":null,"code":"import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"className\", \"height\", \"itemHeight\", \"fullHeight\", \"style\", \"data\", \"children\", \"itemKey\", \"virtual\", \"direction\", \"scrollWidth\", \"component\", \"onScroll\", \"onVirtualScroll\", \"onVisibleChange\", \"innerProps\", \"extraRender\", \"styles\"];\nimport * as React from 'react';\nimport { useRef, useState } from 'react';\nimport { flushSync } from 'react-dom';\nimport classNames from 'classnames';\nimport ResizeObserver from 'rc-resize-observer';\nimport Filler from \"./Filler\";\nimport ScrollBar from \"./ScrollBar\";\nimport useChildren from \"./hooks/useChildren\";\nimport useHeights from \"./hooks/useHeights\";\nimport useScrollTo from \"./hooks/useScrollTo\";\nimport useDiffItem from \"./hooks/useDiffItem\";\nimport useFrameWheel from \"./hooks/useFrameWheel\";\nimport useMobileTouchMove from \"./hooks/useMobileTouchMove\";\nimport useOriginScroll from \"./hooks/useOriginScroll\";\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport { getSpinSize } from \"./utils/scrollbarUtil\";\nimport { useEvent } from 'rc-util';\nimport { useGetSize } from \"./hooks/useGetSize\";\nvar EMPTY_DATA = [];\nvar ScrollStyle = {\n  overflowY: 'auto',\n  overflowAnchor: 'none'\n};\nexport function RawList(props, ref) {\n  var _props$prefixCls = props.prefixCls,\n    prefixCls = _props$prefixCls === void 0 ? 'rc-virtual-list' : _props$prefixCls,\n    className = props.className,\n    height = props.height,\n    itemHeight = props.itemHeight,\n    _props$fullHeight = props.fullHeight,\n    fullHeight = _props$fullHeight === void 0 ? true : _props$fullHeight,\n    style = props.style,\n    data = props.data,\n    children = props.children,\n    itemKey = props.itemKey,\n    virtual = props.virtual,\n    direction = props.direction,\n    scrollWidth = props.scrollWidth,\n    _props$component = props.component,\n    Component = _props$component === void 0 ? 'div' : _props$component,\n    onScroll = props.onScroll,\n    onVirtualScroll = props.onVirtualScroll,\n    onVisibleChange = props.onVisibleChange,\n    innerProps = props.innerProps,\n    extraRender = props.extraRender,\n    styles = props.styles,\n    restProps = _objectWithoutProperties(props, _excluded);\n\n  // =============================== Item Key ===============================\n  var getKey = React.useCallback(function (item) {\n    if (typeof itemKey === 'function') {\n      return itemKey(item);\n    }\n    return item === null || item === void 0 ? void 0 : item[itemKey];\n  }, [itemKey]);\n\n  // ================================ Height ================================\n  var _useHeights = useHeights(getKey, null, null),\n    _useHeights2 = _slicedToArray(_useHeights, 4),\n    setInstanceRef = _useHeights2[0],\n    collectHeight = _useHeights2[1],\n    heights = _useHeights2[2],\n    heightUpdatedMark = _useHeights2[3];\n\n  // ================================= MISC =================================\n  var useVirtual = !!(virtual !== false && height && itemHeight);\n  var containerHeight = React.useMemo(function () {\n    return Object.values(heights.maps).reduce(function (total, curr) {\n      return total + curr;\n    }, 0);\n  }, [heights.id, heights.maps]);\n  var inVirtual = useVirtual && data && (Math.max(itemHeight * data.length, containerHeight) > height || !!scrollWidth);\n  var isRTL = direction === 'rtl';\n  var mergedClassName = classNames(prefixCls, _defineProperty({}, \"\".concat(prefixCls, \"-rtl\"), isRTL), className);\n  var mergedData = data || EMPTY_DATA;\n  var componentRef = useRef();\n  var fillerInnerRef = useRef();\n\n  // =============================== Item Key ===============================\n\n  var _useState = useState(0),\n    _useState2 = _slicedToArray(_useState, 2),\n    offsetTop = _useState2[0],\n    setOffsetTop = _useState2[1];\n  var _useState3 = useState(0),\n    _useState4 = _slicedToArray(_useState3, 2),\n    offsetLeft = _useState4[0],\n    setOffsetLeft = _useState4[1];\n  var _useState5 = useState(false),\n    _useState6 = _slicedToArray(_useState5, 2),\n    scrollMoving = _useState6[0],\n    setScrollMoving = _useState6[1];\n  var onScrollbarStartMove = function onScrollbarStartMove() {\n    setScrollMoving(true);\n  };\n  var onScrollbarStopMove = function onScrollbarStopMove() {\n    setScrollMoving(false);\n  };\n  var sharedConfig = {\n    getKey: getKey\n  };\n\n  // ================================ Scroll ================================\n  function syncScrollTop(newTop) {\n    setOffsetTop(function (origin) {\n      var value;\n      if (typeof newTop === 'function') {\n        value = newTop(origin);\n      } else {\n        value = newTop;\n      }\n      var alignedTop = keepInRange(value);\n      componentRef.current.scrollTop = alignedTop;\n      return alignedTop;\n    });\n  }\n\n  // ================================ Legacy ================================\n  // Put ref here since the range is generate by follow\n  var rangeRef = useRef({\n    start: 0,\n    end: mergedData.length\n  });\n  var diffItemRef = useRef();\n  var _useDiffItem = useDiffItem(mergedData, getKey),\n    _useDiffItem2 = _slicedToArray(_useDiffItem, 1),\n    diffItem = _useDiffItem2[0];\n  diffItemRef.current = diffItem;\n\n  // ========================== Visible Calculation =========================\n  var _React$useMemo = React.useMemo(function () {\n      if (!useVirtual) {\n        return {\n          scrollHeight: undefined,\n          start: 0,\n          end: mergedData.length - 1,\n          offset: undefined\n        };\n      }\n\n      // Always use virtual scroll bar in avoid shaking\n      if (!inVirtual) {\n        var _fillerInnerRef$curre;\n        return {\n          scrollHeight: ((_fillerInnerRef$curre = fillerInnerRef.current) === null || _fillerInnerRef$curre === void 0 ? void 0 : _fillerInnerRef$curre.offsetHeight) || 0,\n          start: 0,\n          end: mergedData.length - 1,\n          offset: undefined\n        };\n      }\n      var itemTop = 0;\n      var startIndex;\n      var startOffset;\n      var endIndex;\n      var dataLen = mergedData.length;\n      for (var i = 0; i < dataLen; i += 1) {\n        var _item = mergedData[i];\n        var key = getKey(_item);\n        var cacheHeight = heights.get(key);\n        var currentItemBottom = itemTop + (cacheHeight === undefined ? itemHeight : cacheHeight);\n\n        // Check item top in the range\n        if (currentItemBottom >= offsetTop && startIndex === undefined) {\n          startIndex = i;\n          startOffset = itemTop;\n        }\n\n        // Check item bottom in the range. We will render additional one item for motion usage\n        if (currentItemBottom > offsetTop + height && endIndex === undefined) {\n          endIndex = i;\n        }\n        itemTop = currentItemBottom;\n      }\n\n      // When scrollTop at the end but data cut to small count will reach this\n      if (startIndex === undefined) {\n        startIndex = 0;\n        startOffset = 0;\n        endIndex = Math.ceil(height / itemHeight);\n      }\n      if (endIndex === undefined) {\n        endIndex = mergedData.length - 1;\n      }\n\n      // Give cache to improve scroll experience\n      endIndex = Math.min(endIndex + 1, mergedData.length - 1);\n      return {\n        scrollHeight: itemTop,\n        start: startIndex,\n        end: endIndex,\n        offset: startOffset\n      };\n    }, [inVirtual, useVirtual, offsetTop, mergedData, heightUpdatedMark, height]),\n    scrollHeight = _React$useMemo.scrollHeight,\n    start = _React$useMemo.start,\n    end = _React$useMemo.end,\n    fillerOffset = _React$useMemo.offset;\n  rangeRef.current.start = start;\n  rangeRef.current.end = end;\n\n  // ================================= Size =================================\n  var _React$useState = React.useState({\n      width: 0,\n      height: height\n    }),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    size = _React$useState2[0],\n    setSize = _React$useState2[1];\n  var onHolderResize = function onHolderResize(sizeInfo) {\n    setSize({\n      width: sizeInfo.width || sizeInfo.offsetWidth,\n      height: sizeInfo.height || sizeInfo.offsetHeight\n    });\n  };\n\n  // Hack on scrollbar to enable flash call\n  var verticalScrollBarRef = useRef();\n  var horizontalScrollBarRef = useRef();\n  var horizontalScrollBarSpinSize = React.useMemo(function () {\n    return getSpinSize(size.width, scrollWidth);\n  }, [size.width, scrollWidth]);\n  var verticalScrollBarSpinSize = React.useMemo(function () {\n    return getSpinSize(size.height, scrollHeight);\n  }, [size.height, scrollHeight]);\n\n  // =============================== In Range ===============================\n  var maxScrollHeight = scrollHeight - height;\n  var maxScrollHeightRef = useRef(maxScrollHeight);\n  maxScrollHeightRef.current = maxScrollHeight;\n  function keepInRange(newScrollTop) {\n    var newTop = newScrollTop;\n    if (!Number.isNaN(maxScrollHeightRef.current)) {\n      newTop = Math.min(newTop, maxScrollHeightRef.current);\n    }\n    newTop = Math.max(newTop, 0);\n    return newTop;\n  }\n  var isScrollAtTop = offsetTop <= 0;\n  var isScrollAtBottom = offsetTop >= maxScrollHeight;\n  var originScroll = useOriginScroll(isScrollAtTop, isScrollAtBottom);\n\n  // ================================ Scroll ================================\n  var getVirtualScrollInfo = function getVirtualScrollInfo() {\n    return {\n      x: isRTL ? -offsetLeft : offsetLeft,\n      y: offsetTop\n    };\n  };\n  var lastVirtualScrollInfoRef = useRef(getVirtualScrollInfo());\n  var triggerScroll = useEvent(function () {\n    if (onVirtualScroll) {\n      var nextInfo = getVirtualScrollInfo();\n\n      // Trigger when offset changed\n      if (lastVirtualScrollInfoRef.current.x !== nextInfo.x || lastVirtualScrollInfoRef.current.y !== nextInfo.y) {\n        onVirtualScroll(nextInfo);\n        lastVirtualScrollInfoRef.current = nextInfo;\n      }\n    }\n  });\n  function onScrollBar(newScrollOffset, horizontal) {\n    var newOffset = newScrollOffset;\n    if (horizontal) {\n      flushSync(function () {\n        setOffsetLeft(newOffset);\n      });\n      triggerScroll();\n    } else {\n      syncScrollTop(newOffset);\n    }\n  }\n\n  // When data size reduce. It may trigger native scroll event back to fit scroll position\n  function onFallbackScroll(e) {\n    var newScrollTop = e.currentTarget.scrollTop;\n    if (newScrollTop !== offsetTop) {\n      syncScrollTop(newScrollTop);\n    }\n\n    // Trigger origin onScroll\n    onScroll === null || onScroll === void 0 || onScroll(e);\n    triggerScroll();\n  }\n  var keepInHorizontalRange = function keepInHorizontalRange(nextOffsetLeft) {\n    var tmpOffsetLeft = nextOffsetLeft;\n    var max = !!scrollWidth ? scrollWidth - size.width : 0;\n    tmpOffsetLeft = Math.max(tmpOffsetLeft, 0);\n    tmpOffsetLeft = Math.min(tmpOffsetLeft, max);\n    return tmpOffsetLeft;\n  };\n  var onWheelDelta = useEvent(function (offsetXY, fromHorizontal) {\n    if (fromHorizontal) {\n      // Horizontal scroll no need sync virtual position\n\n      flushSync(function () {\n        setOffsetLeft(function (left) {\n          var nextOffsetLeft = left + (isRTL ? -offsetXY : offsetXY);\n          return keepInHorizontalRange(nextOffsetLeft);\n        });\n      });\n      triggerScroll();\n    } else {\n      syncScrollTop(function (top) {\n        var newTop = top + offsetXY;\n        return newTop;\n      });\n    }\n  });\n\n  // Since this added in global,should use ref to keep update\n  var _useFrameWheel = useFrameWheel(useVirtual, isScrollAtTop, isScrollAtBottom, !!scrollWidth, onWheelDelta),\n    _useFrameWheel2 = _slicedToArray(_useFrameWheel, 2),\n    onRawWheel = _useFrameWheel2[0],\n    onFireFoxScroll = _useFrameWheel2[1];\n\n  // Mobile touch move\n  useMobileTouchMove(useVirtual, componentRef, function (deltaY, smoothOffset) {\n    if (originScroll(deltaY, smoothOffset)) {\n      return false;\n    }\n    onRawWheel({\n      preventDefault: function preventDefault() {},\n      deltaY: deltaY\n    });\n    return true;\n  });\n  useLayoutEffect(function () {\n    // Firefox only\n    function onMozMousePixelScroll(e) {\n      if (useVirtual) {\n        e.preventDefault();\n      }\n    }\n    var componentEle = componentRef.current;\n    componentEle.addEventListener('wheel', onRawWheel);\n    componentEle.addEventListener('DOMMouseScroll', onFireFoxScroll);\n    componentEle.addEventListener('MozMousePixelScroll', onMozMousePixelScroll);\n    return function () {\n      componentEle.removeEventListener('wheel', onRawWheel);\n      componentEle.removeEventListener('DOMMouseScroll', onFireFoxScroll);\n      componentEle.removeEventListener('MozMousePixelScroll', onMozMousePixelScroll);\n    };\n  }, [useVirtual]);\n\n  // Sync scroll left\n  useLayoutEffect(function () {\n    if (scrollWidth) {\n      setOffsetLeft(function (left) {\n        return keepInHorizontalRange(left);\n      });\n    }\n  }, [size.width, scrollWidth]);\n\n  // ================================= Ref ==================================\n  var delayHideScrollBar = function delayHideScrollBar() {\n    var _verticalScrollBarRef, _horizontalScrollBarR;\n    (_verticalScrollBarRef = verticalScrollBarRef.current) === null || _verticalScrollBarRef === void 0 || _verticalScrollBarRef.delayHidden();\n    (_horizontalScrollBarR = horizontalScrollBarRef.current) === null || _horizontalScrollBarR === void 0 || _horizontalScrollBarR.delayHidden();\n  };\n  var _scrollTo = useScrollTo(componentRef, mergedData, heights, itemHeight, getKey, function () {\n    return collectHeight(true);\n  }, syncScrollTop, delayHideScrollBar);\n  React.useImperativeHandle(ref, function () {\n    return {\n      getScrollInfo: getVirtualScrollInfo,\n      scrollTo: function scrollTo(config) {\n        function isPosScroll(arg) {\n          return arg && _typeof(arg) === 'object' && ('left' in arg || 'top' in arg);\n        }\n        if (isPosScroll(config)) {\n          // Scroll X\n          if (config.left !== undefined) {\n            setOffsetLeft(keepInHorizontalRange(config.left));\n          }\n\n          // Scroll Y\n          _scrollTo(config.top);\n        } else {\n          _scrollTo(config);\n        }\n      }\n    };\n  });\n\n  // ================================ Effect ================================\n  /** We need told outside that some list not rendered */\n  useLayoutEffect(function () {\n    if (onVisibleChange) {\n      var renderList = mergedData.slice(start, end + 1);\n      onVisibleChange(renderList, mergedData);\n    }\n  }, [start, end, mergedData]);\n\n  // ================================ Extra =================================\n  var getSize = useGetSize(mergedData, getKey, heights, itemHeight);\n  var extraContent = extraRender === null || extraRender === void 0 ? void 0 : extraRender({\n    start: start,\n    end: end,\n    virtual: inVirtual,\n    offsetX: offsetLeft,\n    offsetY: fillerOffset,\n    rtl: isRTL,\n    getSize: getSize\n  });\n\n  // ================================ Render ================================\n  var listChildren = useChildren(mergedData, start, end, scrollWidth, setInstanceRef, children, sharedConfig);\n  var componentStyle = null;\n  if (height) {\n    componentStyle = _objectSpread(_defineProperty({}, fullHeight ? 'height' : 'maxHeight', height), ScrollStyle);\n    if (useVirtual) {\n      componentStyle.overflowY = 'hidden';\n      if (scrollWidth) {\n        componentStyle.overflowX = 'hidden';\n      }\n      if (scrollMoving) {\n        componentStyle.pointerEvents = 'none';\n      }\n    }\n  }\n  var containerProps = {};\n  if (isRTL) {\n    containerProps.dir = 'rtl';\n  }\n  return /*#__PURE__*/React.createElement(\"div\", _extends({\n    style: _objectSpread(_objectSpread({}, style), {}, {\n      position: 'relative'\n    }),\n    className: mergedClassName\n  }, containerProps, restProps), /*#__PURE__*/React.createElement(ResizeObserver, {\n    onResize: onHolderResize\n  }, /*#__PURE__*/React.createElement(Component, {\n    className: \"\".concat(prefixCls, \"-holder\"),\n    style: componentStyle,\n    ref: componentRef,\n    onScroll: onFallbackScroll,\n    onMouseEnter: delayHideScrollBar\n  }, /*#__PURE__*/React.createElement(Filler, {\n    prefixCls: prefixCls,\n    height: scrollHeight,\n    offsetX: offsetLeft,\n    offsetY: fillerOffset,\n    scrollWidth: scrollWidth,\n    onInnerResize: collectHeight,\n    ref: fillerInnerRef,\n    innerProps: innerProps,\n    rtl: isRTL,\n    extra: extraContent\n  }, listChildren))), inVirtual && scrollHeight > height && /*#__PURE__*/React.createElement(ScrollBar, {\n    ref: verticalScrollBarRef,\n    prefixCls: prefixCls,\n    scrollOffset: offsetTop,\n    scrollRange: scrollHeight,\n    rtl: isRTL,\n    onScroll: onScrollBar,\n    onStartMove: onScrollbarStartMove,\n    onStopMove: onScrollbarStopMove,\n    spinSize: verticalScrollBarSpinSize,\n    containerSize: size.height,\n    style: styles === null || styles === void 0 ? void 0 : styles.verticalScrollBar,\n    thumbStyle: styles === null || styles === void 0 ? void 0 : styles.verticalScrollBarThumb\n  }), inVirtual && scrollWidth > size.width && /*#__PURE__*/React.createElement(ScrollBar, {\n    ref: horizontalScrollBarRef,\n    prefixCls: prefixCls,\n    scrollOffset: offsetLeft,\n    scrollRange: scrollWidth,\n    rtl: isRTL,\n    onScroll: onScrollBar,\n    onStartMove: onScrollbarStartMove,\n    onStopMove: onScrollbarStopMove,\n    spinSize: horizontalScrollBarSpinSize,\n    containerSize: size.width,\n    horizontal: true,\n    style: styles === null || styles === void 0 ? void 0 : styles.horizontalScrollBar,\n    thumbStyle: styles === null || styles === void 0 ? void 0 : styles.horizontalScrollBarThumb\n  }));\n}\nvar List = /*#__PURE__*/React.forwardRef(RawList);\nList.displayName = 'List';\nexport default List;","map":{"version":3,"names":["_extends","_objectSpread","_typeof","_defineProperty","_slicedToArray","_objectWithoutProperties","_excluded","React","useRef","useState","flushSync","classNames","ResizeObserver","Filler","ScrollBar","useChildren","useHeights","useScrollTo","useDiffItem","useFrameWheel","useMobileTouchMove","useOriginScroll","useLayoutEffect","getSpinSize","useEvent","useGetSize","EMPTY_DATA","ScrollStyle","overflowY","overflowAnchor","RawList","props","ref","_props$prefixCls","prefixCls","className","height","itemHeight","_props$fullHeight","fullHeight","style","data","children","itemKey","virtual","direction","scrollWidth","_props$component","component","Component","onScroll","onVirtualScroll","onVisibleChange","innerProps","extraRender","styles","restProps","getKey","useCallback","item","_useHeights","_useHeights2","setInstanceRef","collectHeight","heights","heightUpdatedMark","useVirtual","containerHeight","useMemo","Object","values","maps","reduce","total","curr","id","inVirtual","Math","max","length","isRTL","mergedClassName","concat","mergedData","componentRef","fillerInnerRef","_useState","_useState2","offsetTop","setOffsetTop","_useState3","_useState4","offsetLeft","setOffsetLeft","_useState5","_useState6","scrollMoving","setScrollMoving","onScrollbarStartMove","onScrollbarStopMove","sharedConfig","syncScrollTop","newTop","origin","value","alignedTop","keepInRange","current","scrollTop","rangeRef","start","end","diffItemRef","_useDiffItem","_useDiffItem2","diffItem","_React$useMemo","scrollHeight","undefined","offset","_fillerInnerRef$curre","offsetHeight","itemTop","startIndex","startOffset","endIndex","dataLen","i","_item","key","cacheHeight","get","currentItemBottom","ceil","min","fillerOffset","_React$useState","width","_React$useState2","size","setSize","onHolderResize","sizeInfo","offsetWidth","verticalScrollBarRef","horizontalScrollBarRef","horizontalScrollBarSpinSize","verticalScrollBarSpinSize","maxScrollHeight","maxScrollHeightRef","newScrollTop","Number","isNaN","isScrollAtTop","isScrollAtBottom","originScroll","getVirtualScrollInfo","x","y","lastVirtualScrollInfoRef","triggerScroll","nextInfo","onScrollBar","newScrollOffset","horizontal","newOffset","onFallbackScroll","e","currentTarget","keepInHorizontalRange","nextOffsetLeft","tmpOffsetLeft","onWheelDelta","offsetXY","fromHorizontal","left","top","_useFrameWheel","_useFrameWheel2","onRawWheel","onFireFoxScroll","deltaY","smoothOffset","preventDefault","onMozMousePixelScroll","componentEle","addEventListener","removeEventListener","delayHideScrollBar","_verticalScrollBarRef","_horizontalScrollBarR","delayHidden","_scrollTo","useImperativeHandle","getScrollInfo","scrollTo","config","isPosScroll","arg","renderList","slice","getSize","extraContent","offsetX","offsetY","rtl","listChildren","componentStyle","overflowX","pointerEvents","containerProps","dir","createElement","position","onResize","onMouseEnter","onInnerResize","extra","scrollOffset","scrollRange","onStartMove","onStopMove","spinSize","containerSize","verticalScrollBar","thumbStyle","verticalScrollBarThumb","horizontalScrollBar","horizontalScrollBarThumb","List","forwardRef","displayName"],"sources":["/var/www/gavt/react-demo/node_modules/rc-virtual-list/es/List.js"],"sourcesContent":["import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectSpread from \"@babel/runtime/helpers/esm/objectSpread2\";\nimport _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/esm/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nvar _excluded = [\"prefixCls\", \"className\", \"height\", \"itemHeight\", \"fullHeight\", \"style\", \"data\", \"children\", \"itemKey\", \"virtual\", \"direction\", \"scrollWidth\", \"component\", \"onScroll\", \"onVirtualScroll\", \"onVisibleChange\", \"innerProps\", \"extraRender\", \"styles\"];\nimport * as React from 'react';\nimport { useRef, useState } from 'react';\nimport { flushSync } from 'react-dom';\nimport classNames from 'classnames';\nimport ResizeObserver from 'rc-resize-observer';\nimport Filler from \"./Filler\";\nimport ScrollBar from \"./ScrollBar\";\nimport useChildren from \"./hooks/useChildren\";\nimport useHeights from \"./hooks/useHeights\";\nimport useScrollTo from \"./hooks/useScrollTo\";\nimport useDiffItem from \"./hooks/useDiffItem\";\nimport useFrameWheel from \"./hooks/useFrameWheel\";\nimport useMobileTouchMove from \"./hooks/useMobileTouchMove\";\nimport useOriginScroll from \"./hooks/useOriginScroll\";\nimport useLayoutEffect from \"rc-util/es/hooks/useLayoutEffect\";\nimport { getSpinSize } from \"./utils/scrollbarUtil\";\nimport { useEvent } from 'rc-util';\nimport { useGetSize } from \"./hooks/useGetSize\";\nvar EMPTY_DATA = [];\nvar ScrollStyle = {\n  overflowY: 'auto',\n  overflowAnchor: 'none'\n};\nexport function RawList(props, ref) {\n  var _props$prefixCls = props.prefixCls,\n    prefixCls = _props$prefixCls === void 0 ? 'rc-virtual-list' : _props$prefixCls,\n    className = props.className,\n    height = props.height,\n    itemHeight = props.itemHeight,\n    _props$fullHeight = props.fullHeight,\n    fullHeight = _props$fullHeight === void 0 ? true : _props$fullHeight,\n    style = props.style,\n    data = props.data,\n    children = props.children,\n    itemKey = props.itemKey,\n    virtual = props.virtual,\n    direction = props.direction,\n    scrollWidth = props.scrollWidth,\n    _props$component = props.component,\n    Component = _props$component === void 0 ? 'div' : _props$component,\n    onScroll = props.onScroll,\n    onVirtualScroll = props.onVirtualScroll,\n    onVisibleChange = props.onVisibleChange,\n    innerProps = props.innerProps,\n    extraRender = props.extraRender,\n    styles = props.styles,\n    restProps = _objectWithoutProperties(props, _excluded);\n\n  // =============================== Item Key ===============================\n  var getKey = React.useCallback(function (item) {\n    if (typeof itemKey === 'function') {\n      return itemKey(item);\n    }\n    return item === null || item === void 0 ? void 0 : item[itemKey];\n  }, [itemKey]);\n\n  // ================================ Height ================================\n  var _useHeights = useHeights(getKey, null, null),\n    _useHeights2 = _slicedToArray(_useHeights, 4),\n    setInstanceRef = _useHeights2[0],\n    collectHeight = _useHeights2[1],\n    heights = _useHeights2[2],\n    heightUpdatedMark = _useHeights2[3];\n\n  // ================================= MISC =================================\n  var useVirtual = !!(virtual !== false && height && itemHeight);\n  var containerHeight = React.useMemo(function () {\n    return Object.values(heights.maps).reduce(function (total, curr) {\n      return total + curr;\n    }, 0);\n  }, [heights.id, heights.maps]);\n  var inVirtual = useVirtual && data && (Math.max(itemHeight * data.length, containerHeight) > height || !!scrollWidth);\n  var isRTL = direction === 'rtl';\n  var mergedClassName = classNames(prefixCls, _defineProperty({}, \"\".concat(prefixCls, \"-rtl\"), isRTL), className);\n  var mergedData = data || EMPTY_DATA;\n  var componentRef = useRef();\n  var fillerInnerRef = useRef();\n\n  // =============================== Item Key ===============================\n\n  var _useState = useState(0),\n    _useState2 = _slicedToArray(_useState, 2),\n    offsetTop = _useState2[0],\n    setOffsetTop = _useState2[1];\n  var _useState3 = useState(0),\n    _useState4 = _slicedToArray(_useState3, 2),\n    offsetLeft = _useState4[0],\n    setOffsetLeft = _useState4[1];\n  var _useState5 = useState(false),\n    _useState6 = _slicedToArray(_useState5, 2),\n    scrollMoving = _useState6[0],\n    setScrollMoving = _useState6[1];\n  var onScrollbarStartMove = function onScrollbarStartMove() {\n    setScrollMoving(true);\n  };\n  var onScrollbarStopMove = function onScrollbarStopMove() {\n    setScrollMoving(false);\n  };\n  var sharedConfig = {\n    getKey: getKey\n  };\n\n  // ================================ Scroll ================================\n  function syncScrollTop(newTop) {\n    setOffsetTop(function (origin) {\n      var value;\n      if (typeof newTop === 'function') {\n        value = newTop(origin);\n      } else {\n        value = newTop;\n      }\n      var alignedTop = keepInRange(value);\n      componentRef.current.scrollTop = alignedTop;\n      return alignedTop;\n    });\n  }\n\n  // ================================ Legacy ================================\n  // Put ref here since the range is generate by follow\n  var rangeRef = useRef({\n    start: 0,\n    end: mergedData.length\n  });\n  var diffItemRef = useRef();\n  var _useDiffItem = useDiffItem(mergedData, getKey),\n    _useDiffItem2 = _slicedToArray(_useDiffItem, 1),\n    diffItem = _useDiffItem2[0];\n  diffItemRef.current = diffItem;\n\n  // ========================== Visible Calculation =========================\n  var _React$useMemo = React.useMemo(function () {\n      if (!useVirtual) {\n        return {\n          scrollHeight: undefined,\n          start: 0,\n          end: mergedData.length - 1,\n          offset: undefined\n        };\n      }\n\n      // Always use virtual scroll bar in avoid shaking\n      if (!inVirtual) {\n        var _fillerInnerRef$curre;\n        return {\n          scrollHeight: ((_fillerInnerRef$curre = fillerInnerRef.current) === null || _fillerInnerRef$curre === void 0 ? void 0 : _fillerInnerRef$curre.offsetHeight) || 0,\n          start: 0,\n          end: mergedData.length - 1,\n          offset: undefined\n        };\n      }\n      var itemTop = 0;\n      var startIndex;\n      var startOffset;\n      var endIndex;\n      var dataLen = mergedData.length;\n      for (var i = 0; i < dataLen; i += 1) {\n        var _item = mergedData[i];\n        var key = getKey(_item);\n        var cacheHeight = heights.get(key);\n        var currentItemBottom = itemTop + (cacheHeight === undefined ? itemHeight : cacheHeight);\n\n        // Check item top in the range\n        if (currentItemBottom >= offsetTop && startIndex === undefined) {\n          startIndex = i;\n          startOffset = itemTop;\n        }\n\n        // Check item bottom in the range. We will render additional one item for motion usage\n        if (currentItemBottom > offsetTop + height && endIndex === undefined) {\n          endIndex = i;\n        }\n        itemTop = currentItemBottom;\n      }\n\n      // When scrollTop at the end but data cut to small count will reach this\n      if (startIndex === undefined) {\n        startIndex = 0;\n        startOffset = 0;\n        endIndex = Math.ceil(height / itemHeight);\n      }\n      if (endIndex === undefined) {\n        endIndex = mergedData.length - 1;\n      }\n\n      // Give cache to improve scroll experience\n      endIndex = Math.min(endIndex + 1, mergedData.length - 1);\n      return {\n        scrollHeight: itemTop,\n        start: startIndex,\n        end: endIndex,\n        offset: startOffset\n      };\n    }, [inVirtual, useVirtual, offsetTop, mergedData, heightUpdatedMark, height]),\n    scrollHeight = _React$useMemo.scrollHeight,\n    start = _React$useMemo.start,\n    end = _React$useMemo.end,\n    fillerOffset = _React$useMemo.offset;\n  rangeRef.current.start = start;\n  rangeRef.current.end = end;\n\n  // ================================= Size =================================\n  var _React$useState = React.useState({\n      width: 0,\n      height: height\n    }),\n    _React$useState2 = _slicedToArray(_React$useState, 2),\n    size = _React$useState2[0],\n    setSize = _React$useState2[1];\n  var onHolderResize = function onHolderResize(sizeInfo) {\n    setSize({\n      width: sizeInfo.width || sizeInfo.offsetWidth,\n      height: sizeInfo.height || sizeInfo.offsetHeight\n    });\n  };\n\n  // Hack on scrollbar to enable flash call\n  var verticalScrollBarRef = useRef();\n  var horizontalScrollBarRef = useRef();\n  var horizontalScrollBarSpinSize = React.useMemo(function () {\n    return getSpinSize(size.width, scrollWidth);\n  }, [size.width, scrollWidth]);\n  var verticalScrollBarSpinSize = React.useMemo(function () {\n    return getSpinSize(size.height, scrollHeight);\n  }, [size.height, scrollHeight]);\n\n  // =============================== In Range ===============================\n  var maxScrollHeight = scrollHeight - height;\n  var maxScrollHeightRef = useRef(maxScrollHeight);\n  maxScrollHeightRef.current = maxScrollHeight;\n  function keepInRange(newScrollTop) {\n    var newTop = newScrollTop;\n    if (!Number.isNaN(maxScrollHeightRef.current)) {\n      newTop = Math.min(newTop, maxScrollHeightRef.current);\n    }\n    newTop = Math.max(newTop, 0);\n    return newTop;\n  }\n  var isScrollAtTop = offsetTop <= 0;\n  var isScrollAtBottom = offsetTop >= maxScrollHeight;\n  var originScroll = useOriginScroll(isScrollAtTop, isScrollAtBottom);\n\n  // ================================ Scroll ================================\n  var getVirtualScrollInfo = function getVirtualScrollInfo() {\n    return {\n      x: isRTL ? -offsetLeft : offsetLeft,\n      y: offsetTop\n    };\n  };\n  var lastVirtualScrollInfoRef = useRef(getVirtualScrollInfo());\n  var triggerScroll = useEvent(function () {\n    if (onVirtualScroll) {\n      var nextInfo = getVirtualScrollInfo();\n\n      // Trigger when offset changed\n      if (lastVirtualScrollInfoRef.current.x !== nextInfo.x || lastVirtualScrollInfoRef.current.y !== nextInfo.y) {\n        onVirtualScroll(nextInfo);\n        lastVirtualScrollInfoRef.current = nextInfo;\n      }\n    }\n  });\n  function onScrollBar(newScrollOffset, horizontal) {\n    var newOffset = newScrollOffset;\n    if (horizontal) {\n      flushSync(function () {\n        setOffsetLeft(newOffset);\n      });\n      triggerScroll();\n    } else {\n      syncScrollTop(newOffset);\n    }\n  }\n\n  // When data size reduce. It may trigger native scroll event back to fit scroll position\n  function onFallbackScroll(e) {\n    var newScrollTop = e.currentTarget.scrollTop;\n    if (newScrollTop !== offsetTop) {\n      syncScrollTop(newScrollTop);\n    }\n\n    // Trigger origin onScroll\n    onScroll === null || onScroll === void 0 || onScroll(e);\n    triggerScroll();\n  }\n  var keepInHorizontalRange = function keepInHorizontalRange(nextOffsetLeft) {\n    var tmpOffsetLeft = nextOffsetLeft;\n    var max = !!scrollWidth ? scrollWidth - size.width : 0;\n    tmpOffsetLeft = Math.max(tmpOffsetLeft, 0);\n    tmpOffsetLeft = Math.min(tmpOffsetLeft, max);\n    return tmpOffsetLeft;\n  };\n  var onWheelDelta = useEvent(function (offsetXY, fromHorizontal) {\n    if (fromHorizontal) {\n      // Horizontal scroll no need sync virtual position\n\n      flushSync(function () {\n        setOffsetLeft(function (left) {\n          var nextOffsetLeft = left + (isRTL ? -offsetXY : offsetXY);\n          return keepInHorizontalRange(nextOffsetLeft);\n        });\n      });\n      triggerScroll();\n    } else {\n      syncScrollTop(function (top) {\n        var newTop = top + offsetXY;\n        return newTop;\n      });\n    }\n  });\n\n  // Since this added in global,should use ref to keep update\n  var _useFrameWheel = useFrameWheel(useVirtual, isScrollAtTop, isScrollAtBottom, !!scrollWidth, onWheelDelta),\n    _useFrameWheel2 = _slicedToArray(_useFrameWheel, 2),\n    onRawWheel = _useFrameWheel2[0],\n    onFireFoxScroll = _useFrameWheel2[1];\n\n  // Mobile touch move\n  useMobileTouchMove(useVirtual, componentRef, function (deltaY, smoothOffset) {\n    if (originScroll(deltaY, smoothOffset)) {\n      return false;\n    }\n    onRawWheel({\n      preventDefault: function preventDefault() {},\n      deltaY: deltaY\n    });\n    return true;\n  });\n  useLayoutEffect(function () {\n    // Firefox only\n    function onMozMousePixelScroll(e) {\n      if (useVirtual) {\n        e.preventDefault();\n      }\n    }\n    var componentEle = componentRef.current;\n    componentEle.addEventListener('wheel', onRawWheel);\n    componentEle.addEventListener('DOMMouseScroll', onFireFoxScroll);\n    componentEle.addEventListener('MozMousePixelScroll', onMozMousePixelScroll);\n    return function () {\n      componentEle.removeEventListener('wheel', onRawWheel);\n      componentEle.removeEventListener('DOMMouseScroll', onFireFoxScroll);\n      componentEle.removeEventListener('MozMousePixelScroll', onMozMousePixelScroll);\n    };\n  }, [useVirtual]);\n\n  // Sync scroll left\n  useLayoutEffect(function () {\n    if (scrollWidth) {\n      setOffsetLeft(function (left) {\n        return keepInHorizontalRange(left);\n      });\n    }\n  }, [size.width, scrollWidth]);\n\n  // ================================= Ref ==================================\n  var delayHideScrollBar = function delayHideScrollBar() {\n    var _verticalScrollBarRef, _horizontalScrollBarR;\n    (_verticalScrollBarRef = verticalScrollBarRef.current) === null || _verticalScrollBarRef === void 0 || _verticalScrollBarRef.delayHidden();\n    (_horizontalScrollBarR = horizontalScrollBarRef.current) === null || _horizontalScrollBarR === void 0 || _horizontalScrollBarR.delayHidden();\n  };\n  var _scrollTo = useScrollTo(componentRef, mergedData, heights, itemHeight, getKey, function () {\n    return collectHeight(true);\n  }, syncScrollTop, delayHideScrollBar);\n  React.useImperativeHandle(ref, function () {\n    return {\n      getScrollInfo: getVirtualScrollInfo,\n      scrollTo: function scrollTo(config) {\n        function isPosScroll(arg) {\n          return arg && _typeof(arg) === 'object' && ('left' in arg || 'top' in arg);\n        }\n        if (isPosScroll(config)) {\n          // Scroll X\n          if (config.left !== undefined) {\n            setOffsetLeft(keepInHorizontalRange(config.left));\n          }\n\n          // Scroll Y\n          _scrollTo(config.top);\n        } else {\n          _scrollTo(config);\n        }\n      }\n    };\n  });\n\n  // ================================ Effect ================================\n  /** We need told outside that some list not rendered */\n  useLayoutEffect(function () {\n    if (onVisibleChange) {\n      var renderList = mergedData.slice(start, end + 1);\n      onVisibleChange(renderList, mergedData);\n    }\n  }, [start, end, mergedData]);\n\n  // ================================ Extra =================================\n  var getSize = useGetSize(mergedData, getKey, heights, itemHeight);\n  var extraContent = extraRender === null || extraRender === void 0 ? void 0 : extraRender({\n    start: start,\n    end: end,\n    virtual: inVirtual,\n    offsetX: offsetLeft,\n    offsetY: fillerOffset,\n    rtl: isRTL,\n    getSize: getSize\n  });\n\n  // ================================ Render ================================\n  var listChildren = useChildren(mergedData, start, end, scrollWidth, setInstanceRef, children, sharedConfig);\n  var componentStyle = null;\n  if (height) {\n    componentStyle = _objectSpread(_defineProperty({}, fullHeight ? 'height' : 'maxHeight', height), ScrollStyle);\n    if (useVirtual) {\n      componentStyle.overflowY = 'hidden';\n      if (scrollWidth) {\n        componentStyle.overflowX = 'hidden';\n      }\n      if (scrollMoving) {\n        componentStyle.pointerEvents = 'none';\n      }\n    }\n  }\n  var containerProps = {};\n  if (isRTL) {\n    containerProps.dir = 'rtl';\n  }\n  return /*#__PURE__*/React.createElement(\"div\", _extends({\n    style: _objectSpread(_objectSpread({}, style), {}, {\n      position: 'relative'\n    }),\n    className: mergedClassName\n  }, containerProps, restProps), /*#__PURE__*/React.createElement(ResizeObserver, {\n    onResize: onHolderResize\n  }, /*#__PURE__*/React.createElement(Component, {\n    className: \"\".concat(prefixCls, \"-holder\"),\n    style: componentStyle,\n    ref: componentRef,\n    onScroll: onFallbackScroll,\n    onMouseEnter: delayHideScrollBar\n  }, /*#__PURE__*/React.createElement(Filler, {\n    prefixCls: prefixCls,\n    height: scrollHeight,\n    offsetX: offsetLeft,\n    offsetY: fillerOffset,\n    scrollWidth: scrollWidth,\n    onInnerResize: collectHeight,\n    ref: fillerInnerRef,\n    innerProps: innerProps,\n    rtl: isRTL,\n    extra: extraContent\n  }, listChildren))), inVirtual && scrollHeight > height && /*#__PURE__*/React.createElement(ScrollBar, {\n    ref: verticalScrollBarRef,\n    prefixCls: prefixCls,\n    scrollOffset: offsetTop,\n    scrollRange: scrollHeight,\n    rtl: isRTL,\n    onScroll: onScrollBar,\n    onStartMove: onScrollbarStartMove,\n    onStopMove: onScrollbarStopMove,\n    spinSize: verticalScrollBarSpinSize,\n    containerSize: size.height,\n    style: styles === null || styles === void 0 ? void 0 : styles.verticalScrollBar,\n    thumbStyle: styles === null || styles === void 0 ? void 0 : styles.verticalScrollBarThumb\n  }), inVirtual && scrollWidth > size.width && /*#__PURE__*/React.createElement(ScrollBar, {\n    ref: horizontalScrollBarRef,\n    prefixCls: prefixCls,\n    scrollOffset: offsetLeft,\n    scrollRange: scrollWidth,\n    rtl: isRTL,\n    onScroll: onScrollBar,\n    onStartMove: onScrollbarStartMove,\n    onStopMove: onScrollbarStopMove,\n    spinSize: horizontalScrollBarSpinSize,\n    containerSize: size.width,\n    horizontal: true,\n    style: styles === null || styles === void 0 ? void 0 : styles.horizontalScrollBar,\n    thumbStyle: styles === null || styles === void 0 ? void 0 : styles.horizontalScrollBarThumb\n  }));\n}\nvar List = /*#__PURE__*/React.forwardRef(RawList);\nList.displayName = 'List';\nexport default List;"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}