{"version":3,"sources":["webpack:///./node_modules/@tradera/blueprint/theme/icons2/language.svg","webpack:///./node_modules/react-virtualized-auto-sizer/dist/index.esm.js","webpack:///./node_modules/@tradera/blueprint/theme/icons2/shipping.svg","webpack:///./node_modules/@tradera/blueprint/theme/icons2/location.svg","webpack:///./node_modules/@tradera/blueprint/theme/icons2/arrow-down.svg","webpack:///./node_modules/@tradera/blueprint/theme/icons2/dropdown.svg","webpack:///./node_modules/memoize-one/dist/memoize-one.esm.js","webpack:///./node_modules/react-window/dist/index.esm.js"],"names":["_extends","target","i","arguments","length","source","key","Object","prototype","hasOwnProperty","call","apply","this","styles","props","React","createElement","viewBox","xmlns","d","createDetectElementResize","nonce","_window","window","self","global","cancel","raf","attachEvent","document","requestFrame","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","fn","setTimeout","cancelFrame","cancelAnimationFrame","mozCancelAnimationFrame","webkitCancelAnimationFrame","clearTimeout","id","resetTriggers","element","triggers","__resizeTriggers__","expand","firstElementChild","contract","lastElementChild","expandChild","scrollLeft","scrollWidth","scrollTop","scrollHeight","style","width","offsetWidth","height","offsetHeight","scrollListener","e","className","indexOf","__resizeRAF__","__resizeLast__","checkTriggers","__resizeListeners__","forEach","animation","keyframeprefix","animationstartevent","domPrefixes","split","startEvents","elm","undefined","animationName","toLowerCase","animationKeyframes","animationStyle","addResizeListener","doc","ownerDocument","elementStyle","getComputedStyle","position","getElementById","css","head","getElementsByTagName","type","setAttribute","styleSheet","cssText","appendChild","createTextNode","createStyles","innerHTML","addEventListener","__animationListener__","push","removeResizeListener","detachEvent","splice","removeEventListener","removeChild","classCallCheck","instance","Constructor","TypeError","createClass","defineProperties","descriptor","enumerable","configurable","writable","defineProperty","protoProps","staticProps","assign","possibleConstructorReturn","ReferenceError","AutoSizer","_React$PureComponent","_ref","_temp","_this","_len","args","Array","_key","__proto__","getPrototypeOf","concat","state","defaultHeight","defaultWidth","_onResize","_this$props","disableHeight","disableWidth","onResize","_parentNode","_height","_width","_style","paddingLeft","parseInt","paddingRight","paddingTop","paddingBottom","newHeight","newWidth","setState","_setRef","autoSizer","_autoSizer","subClass","superClass","create","constructor","value","setPrototypeOf","inherits","parentNode","defaultView","HTMLElement","_detectElementResize","_props","children","_state","outerStyle","overflow","childParams","bailoutOnChildren","ref","defaultProps","clipRule","fillRule","safeIsNaN","Number","isNaN","areInputsEqual","newInputs","lastInputs","first","second","resultFn","isEqual","lastThis","lastResult","lastArgs","calledOnce","newArgs","_i","now","performance","Date","cancelTimeout","timeoutID","requestTimeout","callback","delay","start","tick","cachedRTLResult","getRTLOffsetType","recalculate","outerDiv","direction","innerDiv","innerStyle","body","defaultItemKey$1","index","data","createListComponent","_class","getItemOffset","getEstimatedTotalSize","getItemSize","getOffsetForIndexAndAlignment","getStartIndexForOffset","getStopIndexForStartIndex","initInstanceProps","shouldResetStyleCacheOnItemSizeChange","validateProps","_PureComponent","List","_instanceProps","_outerRef","_resetIsScrollingTimeoutId","isScrolling","scrollDirection","scrollOffset","initialScrollOffset","scrollUpdateWasRequested","_callOnItemsRendered","overscanStartIndex","overscanStopIndex","visibleStartIndex","visibleStopIndex","onItemsRendered","_callOnScroll","onScroll","_getItemStyle","itemSize","layout","itemStyleCache","_getItemStyleCache","_offset","size","isHorizontal","isRtl","offsetHorizontal","left","right","top","_","__","___","_onScrollHorizontal","event","_event$currentTarget","currentTarget","clientWidth","prevState","Math","max","min","_resetIsScrollingDebounced","_onScrollVertical","_event$currentTarget2","clientHeight","_outerRefSetter","outerRef","current","_resetIsScrolling","getDerivedStateFromProps","nextProps","validateSharedProps$1","_proto","scrollTo","scrollToItem","align","itemCount","componentDidMount","_this$props2","_callPropsCallbacks","componentDidUpdate","_this$props3","_this$state","componentWillUnmount","render","_this$props4","innerRef","innerElementType","innerTagName","itemData","_this$props4$itemKey","itemKey","outerElementType","outerTagName","useIsScrolling","_this$_getRangeToRend","_getRangeToRender","startIndex","stopIndex","items","_index","estimatedTotalSize","WebkitOverflowScrolling","willChange","pointerEvents","_this$_getRangeToRend2","_overscanStartIndex","_overscanStopIndex","_visibleStartIndex","_visibleStopIndex","_this$state2","_scrollDirection","_scrollOffset","_scrollUpdateWasRequested","_this$props5","overscanCount","_this$state3","overscanBackward","overscanForward","_ref2","_ref3","FixedSizeList","_ref4","lastItemOffset","maxOffset","minOffset","middleOffset","round","ceil","floor","_ref5","offset","_ref6","numVisibleItems","_ref7"],"mappings":"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","file":"script/chunks/chunk.9.f590d24e19.js","sourcesContent":["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); }\n\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 16 16\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14.7 10c.2-.6.3-1.3.3-2s-.1-1.4-.3-2h-1.9c.1.6.2 1.3.2 2s-.1 1.4-.2 2zm-.3.9c-.2.1-.3.1-.4.1h-1.4c-.3 1.3-.9 2.4-1.5 3.3 1.4-.7 2.6-1.9 3.3-3.4zM9.9 10h1.9c.1-.6.2-1.3.2-2s-.1-1.4-.2-2H9.9c.1.6.1 1.3.1 2v.6c0 .5 0 1-.1 1.4zm0 1c-.2 1.5-.4 2.8-.8 3.7 1.1-.6 2-1.9 2.5-3.7zm-8.6-1h1.9C3.1 9.4 3 8.7 3 8s.1-1.4.2-2H1.3c-.2.6-.3 1.3-.3 2s.1 1.4.3 2zm.3.9c.7 1.5 1.8 2.6 3.3 3.3-.7-.9-1.2-2-1.5-3.3H2c-.1.1-.2.1-.4 0zm4.5-.9C6 9.5 6 8.9 6 8.3V8c0-.7 0-1.4.1-2H4.2c-.1.6-.2 1.3-.2 2s.1 1.4.2 2zm0 1H4.4c.5 1.8 1.4 3.2 2.5 3.7-.3-.9-.6-2.2-.8-3.7zm2.8-1c.1-.6.1-1.3.1-2s0-1.4-.1-2H7.1C7 6.6 7 7.3 7 8s0 1.4.1 2zm-.1 1H7.2c.1.9.2 1.7.4 2.4.1.5.3 1 .4 1.3.2-.3.3-.7.4-1.3.2-.7.4-1.5.4-2.4zm5.6-5.9c-.7-1.5-1.8-2.6-3.3-3.3.7.9 1.2 2 1.5 3.3H14c.1-.1.2-.1.4 0zM9.9 5h1.7c-.5-1.8-1.4-3.2-2.5-3.7.3.9.6 2.2.8 3.7zm-8.3.1c.2-.1.3-.1.4-.1h1.4c.3-1.3.9-2.4 1.5-3.3-1.4.7-2.6 1.9-3.3 3.4zM6.1 5c.2-1.5.4-2.8.8-3.7-1.1.5-2 1.9-2.5 3.7zm2.7 0c0-.9-.2-1.7-.4-2.4-.1-.5-.2-.9-.3-1.2L8 1.3l-.1.1c-.1.3-.2.7-.3 1.2-.2.7-.4 1.5-.4 2.4zM8 0c4.4 0 8 3.6 8 8s-3.6 8-8 8-8-3.6-8-8 3.6-8 8-8z\"\n})));","import { createElement, PureComponent } from 'react';\n\n/**\n * Detect Element Resize.\n * https://github.com/sdecima/javascript-detect-element-resize\n * Sebastian Decima\n *\n * Forked from version 0.5.3; includes the following modifications:\n * 1) Guard against unsafe 'window' and 'document' references (to support SSR).\n * 2) Defer initialization code via a top-level function wrapper (to support SSR).\n * 3) Avoid unnecessary reflows by not measuring size for scroll events bubbling from children.\n * 4) Add nonce for style element.\n **/\n\nfunction createDetectElementResize(nonce) {\n // Check `document` and `window` in case of server-side rendering\n var _window;\n if (typeof window !== 'undefined') {\n _window = window;\n } else if (typeof self !== 'undefined') {\n _window = self;\n } else {\n _window = global;\n }\n\n var attachEvent = typeof document !== 'undefined' && document.attachEvent;\n\n if (!attachEvent) {\n var requestFrame = function () {\n var raf = _window.requestAnimationFrame || _window.mozRequestAnimationFrame || _window.webkitRequestAnimationFrame || function (fn) {\n return _window.setTimeout(fn, 20);\n };\n return function (fn) {\n return raf(fn);\n };\n }();\n\n var cancelFrame = function () {\n var cancel = _window.cancelAnimationFrame || _window.mozCancelAnimationFrame || _window.webkitCancelAnimationFrame || _window.clearTimeout;\n return function (id) {\n return cancel(id);\n };\n }();\n\n var resetTriggers = function resetTriggers(element) {\n var triggers = element.__resizeTriggers__,\n expand = triggers.firstElementChild,\n contract = triggers.lastElementChild,\n expandChild = expand.firstElementChild;\n contract.scrollLeft = contract.scrollWidth;\n contract.scrollTop = contract.scrollHeight;\n expandChild.style.width = expand.offsetWidth + 1 + 'px';\n expandChild.style.height = expand.offsetHeight + 1 + 'px';\n expand.scrollLeft = expand.scrollWidth;\n expand.scrollTop = expand.scrollHeight;\n };\n\n var checkTriggers = function checkTriggers(element) {\n return element.offsetWidth != element.__resizeLast__.width || element.offsetHeight != element.__resizeLast__.height;\n };\n\n var scrollListener = function scrollListener(e) {\n // Don't measure (which forces) reflow for scrolls that happen inside of children!\n if (e.target.className.indexOf('contract-trigger') < 0 && e.target.className.indexOf('expand-trigger') < 0) {\n return;\n }\n\n var element = this;\n resetTriggers(this);\n if (this.__resizeRAF__) {\n cancelFrame(this.__resizeRAF__);\n }\n this.__resizeRAF__ = requestFrame(function () {\n if (checkTriggers(element)) {\n element.__resizeLast__.width = element.offsetWidth;\n element.__resizeLast__.height = element.offsetHeight;\n element.__resizeListeners__.forEach(function (fn) {\n fn.call(element, e);\n });\n }\n });\n };\n\n /* Detect CSS Animations support to detect element display/re-attach */\n var animation = false,\n keyframeprefix = '',\n animationstartevent = 'animationstart',\n domPrefixes = 'Webkit Moz O ms'.split(' '),\n startEvents = 'webkitAnimationStart animationstart oAnimationStart MSAnimationStart'.split(' '),\n pfx = '';\n {\n var elm = document.createElement('fakeelement');\n if (elm.style.animationName !== undefined) {\n animation = true;\n }\n\n if (animation === false) {\n for (var i = 0; i < domPrefixes.length; i++) {\n if (elm.style[domPrefixes[i] + 'AnimationName'] !== undefined) {\n pfx = domPrefixes[i];\n keyframeprefix = '-' + pfx.toLowerCase() + '-';\n animationstartevent = startEvents[i];\n animation = true;\n break;\n }\n }\n }\n }\n\n var animationName = 'resizeanim';\n var animationKeyframes = '@' + keyframeprefix + 'keyframes ' + animationName + ' { from { opacity: 0; } to { opacity: 0; } } ';\n var animationStyle = keyframeprefix + 'animation: 1ms ' + animationName + '; ';\n }\n\n var createStyles = function createStyles(doc) {\n if (!doc.getElementById('detectElementResize')) {\n //opacity:0 works around a chrome bug https://code.google.com/p/chromium/issues/detail?id=286360\n var css = (animationKeyframes ? animationKeyframes : '') + '.resize-triggers { ' + (animationStyle ? animationStyle : '') + 'visibility: hidden; opacity: 0; } ' + '.resize-triggers, .resize-triggers > div, .contract-trigger:before { content: \" \"; display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; z-index: -1; } .resize-triggers > div { background: #eee; overflow: auto; } .contract-trigger:before { width: 200%; height: 200%; }',\n head = doc.head || doc.getElementsByTagName('head')[0],\n style = doc.createElement('style');\n\n style.id = 'detectElementResize';\n style.type = 'text/css';\n\n if (nonce != null) {\n style.setAttribute('nonce', nonce);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(doc.createTextNode(css));\n }\n\n head.appendChild(style);\n }\n };\n\n var addResizeListener = function addResizeListener(element, fn) {\n if (attachEvent) {\n element.attachEvent('onresize', fn);\n } else {\n if (!element.__resizeTriggers__) {\n var doc = element.ownerDocument;\n var elementStyle = _window.getComputedStyle(element);\n if (elementStyle && elementStyle.position == 'static') {\n element.style.position = 'relative';\n }\n createStyles(doc);\n element.__resizeLast__ = {};\n element.__resizeListeners__ = [];\n (element.__resizeTriggers__ = doc.createElement('div')).className = 'resize-triggers';\n element.__resizeTriggers__.innerHTML = '
' + '
';\n element.appendChild(element.__resizeTriggers__);\n resetTriggers(element);\n element.addEventListener('scroll', scrollListener, true);\n\n /* Listen for a css animation to detect element display/re-attach */\n if (animationstartevent) {\n element.__resizeTriggers__.__animationListener__ = function animationListener(e) {\n if (e.animationName == animationName) {\n resetTriggers(element);\n }\n };\n element.__resizeTriggers__.addEventListener(animationstartevent, element.__resizeTriggers__.__animationListener__);\n }\n }\n element.__resizeListeners__.push(fn);\n }\n };\n\n var removeResizeListener = function removeResizeListener(element, fn) {\n if (attachEvent) {\n element.detachEvent('onresize', fn);\n } else {\n element.__resizeListeners__.splice(element.__resizeListeners__.indexOf(fn), 1);\n if (!element.__resizeListeners__.length) {\n element.removeEventListener('scroll', scrollListener, true);\n if (element.__resizeTriggers__.__animationListener__) {\n element.__resizeTriggers__.removeEventListener(animationstartevent, element.__resizeTriggers__.__animationListener__);\n element.__resizeTriggers__.__animationListener__ = null;\n }\n try {\n element.__resizeTriggers__ = !element.removeChild(element.__resizeTriggers__);\n } catch (e) {\n // Preact compat; see developit/preact-compat/issues/228\n }\n }\n }\n };\n\n return {\n addResizeListener: addResizeListener,\n removeResizeListener: removeResizeListener\n };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar inherits = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\nvar possibleConstructorReturn = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n};\n\nvar AutoSizer = function (_React$PureComponent) {\n inherits(AutoSizer, _React$PureComponent);\n\n function AutoSizer() {\n var _ref;\n\n var _temp, _this, _ret;\n\n classCallCheck(this, AutoSizer);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = possibleConstructorReturn(this, (_ref = AutoSizer.__proto__ || Object.getPrototypeOf(AutoSizer)).call.apply(_ref, [this].concat(args))), _this), _this.state = {\n height: _this.props.defaultHeight || 0,\n width: _this.props.defaultWidth || 0\n }, _this._onResize = function () {\n var _this$props = _this.props,\n disableHeight = _this$props.disableHeight,\n disableWidth = _this$props.disableWidth,\n onResize = _this$props.onResize;\n\n\n if (_this._parentNode) {\n // Guard against AutoSizer component being removed from the DOM immediately after being added.\n // This can result in invalid style values which can result in NaN values if we don't handle them.\n // See issue #150 for more context.\n\n var _height = _this._parentNode.offsetHeight || 0;\n var _width = _this._parentNode.offsetWidth || 0;\n\n var _style = window.getComputedStyle(_this._parentNode) || {};\n var paddingLeft = parseInt(_style.paddingLeft, 10) || 0;\n var paddingRight = parseInt(_style.paddingRight, 10) || 0;\n var paddingTop = parseInt(_style.paddingTop, 10) || 0;\n var paddingBottom = parseInt(_style.paddingBottom, 10) || 0;\n\n var newHeight = _height - paddingTop - paddingBottom;\n var newWidth = _width - paddingLeft - paddingRight;\n\n if (!disableHeight && _this.state.height !== newHeight || !disableWidth && _this.state.width !== newWidth) {\n _this.setState({\n height: _height - paddingTop - paddingBottom,\n width: _width - paddingLeft - paddingRight\n });\n\n onResize({ height: _height, width: _width });\n }\n }\n }, _this._setRef = function (autoSizer) {\n _this._autoSizer = autoSizer;\n }, _temp), possibleConstructorReturn(_this, _ret);\n }\n\n createClass(AutoSizer, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n var nonce = this.props.nonce;\n\n if (this._autoSizer && this._autoSizer.parentNode && this._autoSizer.parentNode.ownerDocument && this._autoSizer.parentNode.ownerDocument.defaultView && this._autoSizer.parentNode instanceof this._autoSizer.parentNode.ownerDocument.defaultView.HTMLElement) {\n // Delay access of parentNode until mount.\n // This handles edge-cases where the component has already been unmounted before its ref has been set,\n // As well as libraries like react-lite which have a slightly different lifecycle.\n this._parentNode = this._autoSizer.parentNode;\n\n // Defer requiring resize handler in order to support server-side rendering.\n // See issue #41\n this._detectElementResize = createDetectElementResize(nonce);\n this._detectElementResize.addResizeListener(this._parentNode, this._onResize);\n\n this._onResize();\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (this._detectElementResize && this._parentNode) {\n this._detectElementResize.removeResizeListener(this._parentNode, this._onResize);\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props,\n children = _props.children,\n className = _props.className,\n disableHeight = _props.disableHeight,\n disableWidth = _props.disableWidth,\n style = _props.style;\n var _state = this.state,\n height = _state.height,\n width = _state.width;\n\n // Outer div should not force width/height since that may prevent containers from shrinking.\n // Inner component should overflow and use calculated width/height.\n // See issue #68 for more information.\n\n var outerStyle = { overflow: 'visible' };\n var childParams = {};\n\n // Avoid rendering children before the initial measurements have been collected.\n // At best this would just be wasting cycles.\n var bailoutOnChildren = false;\n\n if (!disableHeight) {\n if (height === 0) {\n bailoutOnChildren = true;\n }\n outerStyle.height = 0;\n childParams.height = height;\n }\n\n if (!disableWidth) {\n if (width === 0) {\n bailoutOnChildren = true;\n }\n outerStyle.width = 0;\n childParams.width = width;\n }\n\n return createElement(\n 'div',\n {\n className: className,\n ref: this._setRef,\n style: _extends({}, outerStyle, style) },\n !bailoutOnChildren && children(childParams)\n );\n }\n }]);\n return AutoSizer;\n}(PureComponent);\n\nAutoSizer.defaultProps = {\n onResize: function onResize() {},\n disableHeight: false,\n disableWidth: false,\n style: {}\n};\n\nexport default AutoSizer;\n","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); }\n\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 16 16\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n clipRule: \"evenodd\",\n d: \"M2 3.5C2 2.7 2.7 2 3.5 2h5c.8 0 1.5.7 1.5 1.5V11H2zM11 8V5h1.8l1 3zm0 1h3v2h-3zm-1.4 3h-4c.1.3.2.6.2.9 0 1.1-.8 1.9-1.9 1.9S2 14 2 12.9c0-.3.1-.6.2-.9h-.7c-.3 0-.5-.2-.5-.5v-8C1 2.2 2.1 1 3.5 1h5C10 1 11 2 11 4h2.1c.2 0 .4.1.5.3L15 8.2v3.3c0 .1-.1.3-.1.4-.1.1-.2.1-.4.1h-1.6c.1.3.2.6.2.9 0 1.1-.8 1.9-1.9 1.9s-1.9-.8-1.9-1.9c.1-.3.1-.6.3-.9zm1.6 0c.5 0 .9.4.9.9s-.4.9-.9.9-.9-.4-.9-.9c.1-.5.5-.9.9-.9zm-7.4 0c-.5 0-.9.4-.9.9s.4.9.9.9.9-.4.9-.9-.4-.9-.9-.9z\",\n fillRule: \"evenodd\"\n})));","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); }\n\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 16 16\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n clipRule: \"evenodd\",\n d: \"M4 6.2C4 3.9 5.8 2 8 2s4 1.9 4 4.2c0 .4-.1.9-.4 1.6-.2.6-.6 1.3-.9 2.1-.8 1.5-1.7 3-2.3 3.9-.2.3-.5.3-.7 0-.6-1-1.6-2.4-2.3-3.9-.4-.7-.8-1.5-1-2.1-.3-.7-.4-1.2-.4-1.6zM8 1C5.2 1 3 3.3 3 6.1c0 .6.2 1.3.5 2s.6 1.5 1 2.3c.8 1.5 1.8 3.1 2.4 4.1.5.8 1.7.8 2.2 0 .6-1 1.6-2.5 2.4-4.1.4-.8.8-1.5 1-2.3.3-.7.4-1.4.4-2A4.9 4.9 0 008 1zM7 6c0-.6.4-1 1-1s1 .4 1 1-.4 1-1 1-1-.4-1-1zm1-2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\",\n fillRule: \"evenodd\"\n})));","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); }\n\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 16 16\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n clipRule: \"evenodd\",\n d: \"M8 9.2l4.9-5 1.4 1.4L8 12 1.7 5.6l1.4-1.4z\",\n fillRule: \"evenodd\"\n})));","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); }\n\nimport React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => /*#__PURE__*/React.createElement(\"svg\", _extends({\n viewBox: \"0 0 16 16\",\n xmlns: \"http://www.w3.org/2000/svg\"\n}, props), /*#__PURE__*/React.createElement(\"path\", {\n clipRule: \"evenodd\",\n d: \"M2.6 5.1c.2-.1.6-.1.8 0L8 9.8l4.6-4.6c.2-.2.5-.2.7 0s.2.5 0 .7l-5 5s-.2.1-.3.1-.3-.1-.4-.1l-5-5c-.1-.2-.1-.6 0-.8z\",\n fillRule: \"evenodd\"\n})));","var safeIsNaN = Number.isNaN ||\n function ponyfill(value) {\n return typeof value === 'number' && value !== value;\n };\nfunction isEqual(first, second) {\n if (first === second) {\n return true;\n }\n if (safeIsNaN(first) && safeIsNaN(second)) {\n return true;\n }\n return false;\n}\nfunction areInputsEqual(newInputs, lastInputs) {\n if (newInputs.length !== lastInputs.length) {\n return false;\n }\n for (var i = 0; i < newInputs.length; i++) {\n if (!isEqual(newInputs[i], lastInputs[i])) {\n return false;\n }\n }\n return true;\n}\n\nfunction memoizeOne(resultFn, isEqual) {\n if (isEqual === void 0) { isEqual = areInputsEqual; }\n var lastThis;\n var lastArgs = [];\n var lastResult;\n var calledOnce = false;\n function memoized() {\n var newArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n newArgs[_i] = arguments[_i];\n }\n if (calledOnce && lastThis === this && isEqual(newArgs, lastArgs)) {\n return lastResult;\n }\n lastResult = resultFn.apply(this, newArgs);\n calledOnce = true;\n lastThis = this;\n lastArgs = newArgs;\n return lastResult;\n }\n return memoized;\n}\n\nexport default memoizeOne;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport memoizeOne from 'memoize-one';\nimport { createElement, PureComponent } from 'react';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\n\n// Animation frame based implementation of setTimeout.\n// Inspired by Joe Lambert, https://gist.github.com/joelambert/1002116#file-requesttimeout-js\nvar hasNativePerformanceNow = typeof performance === 'object' && typeof performance.now === 'function';\nvar now = hasNativePerformanceNow ? function () {\n return performance.now();\n} : function () {\n return Date.now();\n};\nfunction cancelTimeout(timeoutID) {\n cancelAnimationFrame(timeoutID.id);\n}\nfunction requestTimeout(callback, delay) {\n var start = now();\n\n function tick() {\n if (now() - start >= delay) {\n callback.call(null);\n } else {\n timeoutID.id = requestAnimationFrame(tick);\n }\n }\n\n var timeoutID = {\n id: requestAnimationFrame(tick)\n };\n return timeoutID;\n}\n\nvar size = -1; // This utility copied from \"dom-helpers\" package.\n\nfunction getScrollbarSize(recalculate) {\n if (recalculate === void 0) {\n recalculate = false;\n }\n\n if (size === -1 || recalculate) {\n var div = document.createElement('div');\n var style = div.style;\n style.width = '50px';\n style.height = '50px';\n style.overflow = 'scroll';\n document.body.appendChild(div);\n size = div.offsetWidth - div.clientWidth;\n document.body.removeChild(div);\n }\n\n return size;\n}\nvar cachedRTLResult = null; // TRICKY According to the spec, scrollLeft should be negative for RTL aligned elements.\n// Chrome does not seem to adhere; its scrollLeft values are positive (measured relative to the left).\n// Safari's elastic bounce makes detecting this even more complicated wrt potential false positives.\n// The safest way to check this is to intentionally set a negative offset,\n// and then verify that the subsequent \"scroll\" event matches the negative offset.\n// If it does not match, then we can assume a non-standard RTL scroll implementation.\n\nfunction getRTLOffsetType(recalculate) {\n if (recalculate === void 0) {\n recalculate = false;\n }\n\n if (cachedRTLResult === null || recalculate) {\n var outerDiv = document.createElement('div');\n var outerStyle = outerDiv.style;\n outerStyle.width = '50px';\n outerStyle.height = '50px';\n outerStyle.overflow = 'scroll';\n outerStyle.direction = 'rtl';\n var innerDiv = document.createElement('div');\n var innerStyle = innerDiv.style;\n innerStyle.width = '100px';\n innerStyle.height = '100px';\n outerDiv.appendChild(innerDiv);\n document.body.appendChild(outerDiv);\n\n if (outerDiv.scrollLeft > 0) {\n cachedRTLResult = 'positive-descending';\n } else {\n outerDiv.scrollLeft = 1;\n\n if (outerDiv.scrollLeft === 0) {\n cachedRTLResult = 'negative';\n } else {\n cachedRTLResult = 'positive-ascending';\n }\n }\n\n document.body.removeChild(outerDiv);\n return cachedRTLResult;\n }\n\n return cachedRTLResult;\n}\n\nvar IS_SCROLLING_DEBOUNCE_INTERVAL = 150;\n\nvar defaultItemKey = function defaultItemKey(_ref) {\n var columnIndex = _ref.columnIndex,\n data = _ref.data,\n rowIndex = _ref.rowIndex;\n return rowIndex + \":\" + columnIndex;\n}; // In DEV mode, this Set helps us only log a warning once per component instance.\n// This avoids spamming the console every time a render happens.\n\n\nvar devWarningsOverscanCount = null;\nvar devWarningsOverscanRowsColumnsCount = null;\nvar devWarningsTagName = null;\n\nif (process.env.NODE_ENV !== 'production') {\n if (typeof window !== 'undefined' && typeof window.WeakSet !== 'undefined') {\n devWarningsOverscanCount =\n /*#__PURE__*/\n new WeakSet();\n devWarningsOverscanRowsColumnsCount =\n /*#__PURE__*/\n new WeakSet();\n devWarningsTagName =\n /*#__PURE__*/\n new WeakSet();\n }\n}\n\nfunction createGridComponent(_ref2) {\n var _class, _temp;\n\n var getColumnOffset = _ref2.getColumnOffset,\n getColumnStartIndexForOffset = _ref2.getColumnStartIndexForOffset,\n getColumnStopIndexForStartIndex = _ref2.getColumnStopIndexForStartIndex,\n getColumnWidth = _ref2.getColumnWidth,\n getEstimatedTotalHeight = _ref2.getEstimatedTotalHeight,\n getEstimatedTotalWidth = _ref2.getEstimatedTotalWidth,\n getOffsetForColumnAndAlignment = _ref2.getOffsetForColumnAndAlignment,\n getOffsetForRowAndAlignment = _ref2.getOffsetForRowAndAlignment,\n getRowHeight = _ref2.getRowHeight,\n getRowOffset = _ref2.getRowOffset,\n getRowStartIndexForOffset = _ref2.getRowStartIndexForOffset,\n getRowStopIndexForStartIndex = _ref2.getRowStopIndexForStartIndex,\n initInstanceProps = _ref2.initInstanceProps,\n shouldResetStyleCacheOnItemSizeChange = _ref2.shouldResetStyleCacheOnItemSizeChange,\n validateProps = _ref2.validateProps;\n return _temp = _class =\n /*#__PURE__*/\n function (_PureComponent) {\n _inheritsLoose(Grid, _PureComponent);\n\n // Always use explicit constructor for React components.\n // It produces less code after transpilation. (#26)\n // eslint-disable-next-line no-useless-constructor\n function Grid(props) {\n var _this;\n\n _this = _PureComponent.call(this, props) || this;\n _this._instanceProps = initInstanceProps(_this.props, _assertThisInitialized(_assertThisInitialized(_this)));\n _this._resetIsScrollingTimeoutId = null;\n _this._outerRef = void 0;\n _this.state = {\n instance: _assertThisInitialized(_assertThisInitialized(_this)),\n isScrolling: false,\n horizontalScrollDirection: 'forward',\n scrollLeft: typeof _this.props.initialScrollLeft === 'number' ? _this.props.initialScrollLeft : 0,\n scrollTop: typeof _this.props.initialScrollTop === 'number' ? _this.props.initialScrollTop : 0,\n scrollUpdateWasRequested: false,\n verticalScrollDirection: 'forward'\n };\n _this._callOnItemsRendered = void 0;\n _this._callOnItemsRendered = memoizeOne(function (overscanColumnStartIndex, overscanColumnStopIndex, overscanRowStartIndex, overscanRowStopIndex, visibleColumnStartIndex, visibleColumnStopIndex, visibleRowStartIndex, visibleRowStopIndex) {\n return _this.props.onItemsRendered({\n overscanColumnStartIndex: overscanColumnStartIndex,\n overscanColumnStopIndex: overscanColumnStopIndex,\n overscanRowStartIndex: overscanRowStartIndex,\n overscanRowStopIndex: overscanRowStopIndex,\n visibleColumnStartIndex: visibleColumnStartIndex,\n visibleColumnStopIndex: visibleColumnStopIndex,\n visibleRowStartIndex: visibleRowStartIndex,\n visibleRowStopIndex: visibleRowStopIndex\n });\n });\n _this._callOnScroll = void 0;\n _this._callOnScroll = memoizeOne(function (scrollLeft, scrollTop, horizontalScrollDirection, verticalScrollDirection, scrollUpdateWasRequested) {\n return _this.props.onScroll({\n horizontalScrollDirection: horizontalScrollDirection,\n scrollLeft: scrollLeft,\n scrollTop: scrollTop,\n verticalScrollDirection: verticalScrollDirection,\n scrollUpdateWasRequested: scrollUpdateWasRequested\n });\n });\n _this._getItemStyle = void 0;\n\n _this._getItemStyle = function (rowIndex, columnIndex) {\n var _this$props = _this.props,\n columnWidth = _this$props.columnWidth,\n direction = _this$props.direction,\n rowHeight = _this$props.rowHeight;\n\n var itemStyleCache = _this._getItemStyleCache(shouldResetStyleCacheOnItemSizeChange && columnWidth, shouldResetStyleCacheOnItemSizeChange && direction, shouldResetStyleCacheOnItemSizeChange && rowHeight);\n\n var key = rowIndex + \":\" + columnIndex;\n var style;\n\n if (itemStyleCache.hasOwnProperty(key)) {\n style = itemStyleCache[key];\n } else {\n var _offset = getColumnOffset(_this.props, columnIndex, _this._instanceProps);\n\n var isRtl = direction === 'rtl';\n itemStyleCache[key] = style = {\n position: 'absolute',\n left: isRtl ? undefined : _offset,\n right: isRtl ? _offset : undefined,\n top: getRowOffset(_this.props, rowIndex, _this._instanceProps),\n height: getRowHeight(_this.props, rowIndex, _this._instanceProps),\n width: getColumnWidth(_this.props, columnIndex, _this._instanceProps)\n };\n }\n\n return style;\n };\n\n _this._getItemStyleCache = void 0;\n _this._getItemStyleCache = memoizeOne(function (_, __, ___) {\n return {};\n });\n\n _this._onScroll = function (event) {\n var _event$currentTarget = event.currentTarget,\n clientHeight = _event$currentTarget.clientHeight,\n clientWidth = _event$currentTarget.clientWidth,\n scrollLeft = _event$currentTarget.scrollLeft,\n scrollTop = _event$currentTarget.scrollTop,\n scrollHeight = _event$currentTarget.scrollHeight,\n scrollWidth = _event$currentTarget.scrollWidth;\n\n _this.setState(function (prevState) {\n if (prevState.scrollLeft === scrollLeft && prevState.scrollTop === scrollTop) {\n // Scroll position may have been updated by cDM/cDU,\n // In which case we don't need to trigger another render,\n // And we don't want to update state.isScrolling.\n return null;\n }\n\n var direction = _this.props.direction; // TRICKY According to the spec, scrollLeft should be negative for RTL aligned elements.\n // This is not the case for all browsers though (e.g. Chrome reports values as positive, measured relative to the left).\n // It's also easier for this component if we convert offsets to the same format as they would be in for ltr.\n // So the simplest solution is to determine which browser behavior we're dealing with, and convert based on it.\n\n var calculatedScrollLeft = scrollLeft;\n\n if (direction === 'rtl') {\n switch (getRTLOffsetType()) {\n case 'negative':\n calculatedScrollLeft = -scrollLeft;\n break;\n\n case 'positive-descending':\n calculatedScrollLeft = scrollWidth - clientWidth - scrollLeft;\n break;\n }\n } // Prevent Safari's elastic scrolling from causing visual shaking when scrolling past bounds.\n\n\n calculatedScrollLeft = Math.max(0, Math.min(calculatedScrollLeft, scrollWidth - clientWidth));\n var calculatedScrollTop = Math.max(0, Math.min(scrollTop, scrollHeight - clientHeight));\n return {\n isScrolling: true,\n horizontalScrollDirection: prevState.scrollLeft < scrollLeft ? 'forward' : 'backward',\n scrollLeft: calculatedScrollLeft,\n scrollTop: calculatedScrollTop,\n verticalScrollDirection: prevState.scrollTop < scrollTop ? 'forward' : 'backward',\n scrollUpdateWasRequested: false\n };\n }, _this._resetIsScrollingDebounced);\n };\n\n _this._outerRefSetter = function (ref) {\n var outerRef = _this.props.outerRef;\n _this._outerRef = ref;\n\n if (typeof outerRef === 'function') {\n outerRef(ref);\n } else if (outerRef != null && typeof outerRef === 'object' && outerRef.hasOwnProperty('current')) {\n outerRef.current = ref;\n }\n };\n\n _this._resetIsScrollingDebounced = function () {\n if (_this._resetIsScrollingTimeoutId !== null) {\n cancelTimeout(_this._resetIsScrollingTimeoutId);\n }\n\n _this._resetIsScrollingTimeoutId = requestTimeout(_this._resetIsScrolling, IS_SCROLLING_DEBOUNCE_INTERVAL);\n };\n\n _this._resetIsScrolling = function () {\n _this._resetIsScrollingTimeoutId = null;\n\n _this.setState({\n isScrolling: false\n }, function () {\n // Clear style cache after state update has been committed.\n // This way we don't break pure sCU for items that don't use isScrolling param.\n _this._getItemStyleCache(-1);\n });\n };\n\n return _this;\n }\n\n Grid.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {\n validateSharedProps(nextProps, prevState);\n validateProps(nextProps);\n return null;\n };\n\n var _proto = Grid.prototype;\n\n _proto.scrollTo = function scrollTo(_ref3) {\n var scrollLeft = _ref3.scrollLeft,\n scrollTop = _ref3.scrollTop;\n\n if (scrollLeft !== undefined) {\n scrollLeft = Math.max(0, scrollLeft);\n }\n\n if (scrollTop !== undefined) {\n scrollTop = Math.max(0, scrollTop);\n }\n\n this.setState(function (prevState) {\n if (scrollLeft === undefined) {\n scrollLeft = prevState.scrollLeft;\n }\n\n if (scrollTop === undefined) {\n scrollTop = prevState.scrollTop;\n }\n\n if (prevState.scrollLeft === scrollLeft && prevState.scrollTop === scrollTop) {\n return null;\n }\n\n return {\n horizontalScrollDirection: prevState.scrollLeft < scrollLeft ? 'forward' : 'backward',\n scrollLeft: scrollLeft,\n scrollTop: scrollTop,\n scrollUpdateWasRequested: true,\n verticalScrollDirection: prevState.scrollTop < scrollTop ? 'forward' : 'backward'\n };\n }, this._resetIsScrollingDebounced);\n };\n\n _proto.scrollToItem = function scrollToItem(_ref4) {\n var _ref4$align = _ref4.align,\n align = _ref4$align === void 0 ? 'auto' : _ref4$align,\n columnIndex = _ref4.columnIndex,\n rowIndex = _ref4.rowIndex;\n var _this$props2 = this.props,\n columnCount = _this$props2.columnCount,\n height = _this$props2.height,\n rowCount = _this$props2.rowCount,\n width = _this$props2.width;\n var _this$state = this.state,\n scrollLeft = _this$state.scrollLeft,\n scrollTop = _this$state.scrollTop;\n var scrollbarSize = getScrollbarSize();\n\n if (columnIndex !== undefined) {\n columnIndex = Math.max(0, Math.min(columnIndex, columnCount - 1));\n }\n\n if (rowIndex !== undefined) {\n rowIndex = Math.max(0, Math.min(rowIndex, rowCount - 1));\n }\n\n var estimatedTotalHeight = getEstimatedTotalHeight(this.props, this._instanceProps);\n var estimatedTotalWidth = getEstimatedTotalWidth(this.props, this._instanceProps); // The scrollbar size should be considered when scrolling an item into view,\n // to ensure it's fully visible.\n // But we only need to account for its size when it's actually visible.\n\n var horizontalScrollbarSize = estimatedTotalWidth > width ? scrollbarSize : 0;\n var verticalScrollbarSize = estimatedTotalHeight > height ? scrollbarSize : 0;\n this.scrollTo({\n scrollLeft: columnIndex !== undefined ? getOffsetForColumnAndAlignment(this.props, columnIndex, align, scrollLeft, this._instanceProps, verticalScrollbarSize) : scrollLeft,\n scrollTop: rowIndex !== undefined ? getOffsetForRowAndAlignment(this.props, rowIndex, align, scrollTop, this._instanceProps, horizontalScrollbarSize) : scrollTop\n });\n };\n\n _proto.componentDidMount = function componentDidMount() {\n var _this$props3 = this.props,\n initialScrollLeft = _this$props3.initialScrollLeft,\n initialScrollTop = _this$props3.initialScrollTop;\n\n if (this._outerRef != null) {\n var outerRef = this._outerRef;\n\n if (typeof initialScrollLeft === 'number') {\n outerRef.scrollLeft = initialScrollLeft;\n }\n\n if (typeof initialScrollTop === 'number') {\n outerRef.scrollTop = initialScrollTop;\n }\n }\n\n this._callPropsCallbacks();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n var direction = this.props.direction;\n var _this$state2 = this.state,\n scrollLeft = _this$state2.scrollLeft,\n scrollTop = _this$state2.scrollTop,\n scrollUpdateWasRequested = _this$state2.scrollUpdateWasRequested;\n\n if (scrollUpdateWasRequested && this._outerRef != null) {\n // TRICKY According to the spec, scrollLeft should be negative for RTL aligned elements.\n // This is not the case for all browsers though (e.g. Chrome reports values as positive, measured relative to the left).\n // So we need to determine which browser behavior we're dealing with, and mimic it.\n var outerRef = this._outerRef;\n\n if (direction === 'rtl') {\n switch (getRTLOffsetType()) {\n case 'negative':\n outerRef.scrollLeft = -scrollLeft;\n break;\n\n case 'positive-ascending':\n outerRef.scrollLeft = scrollLeft;\n break;\n\n default:\n var clientWidth = outerRef.clientWidth,\n scrollWidth = outerRef.scrollWidth;\n outerRef.scrollLeft = scrollWidth - clientWidth - scrollLeft;\n break;\n }\n } else {\n outerRef.scrollLeft = Math.max(0, scrollLeft);\n }\n\n outerRef.scrollTop = Math.max(0, scrollTop);\n }\n\n this._callPropsCallbacks();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this._resetIsScrollingTimeoutId !== null) {\n cancelTimeout(this._resetIsScrollingTimeoutId);\n }\n };\n\n _proto.render = function render() {\n var _this$props4 = this.props,\n children = _this$props4.children,\n className = _this$props4.className,\n columnCount = _this$props4.columnCount,\n direction = _this$props4.direction,\n height = _this$props4.height,\n innerRef = _this$props4.innerRef,\n innerElementType = _this$props4.innerElementType,\n innerTagName = _this$props4.innerTagName,\n itemData = _this$props4.itemData,\n _this$props4$itemKey = _this$props4.itemKey,\n itemKey = _this$props4$itemKey === void 0 ? defaultItemKey : _this$props4$itemKey,\n outerElementType = _this$props4.outerElementType,\n outerTagName = _this$props4.outerTagName,\n rowCount = _this$props4.rowCount,\n style = _this$props4.style,\n useIsScrolling = _this$props4.useIsScrolling,\n width = _this$props4.width;\n var isScrolling = this.state.isScrolling;\n\n var _this$_getHorizontalR = this._getHorizontalRangeToRender(),\n columnStartIndex = _this$_getHorizontalR[0],\n columnStopIndex = _this$_getHorizontalR[1];\n\n var _this$_getVerticalRan = this._getVerticalRangeToRender(),\n rowStartIndex = _this$_getVerticalRan[0],\n rowStopIndex = _this$_getVerticalRan[1];\n\n var items = [];\n\n if (columnCount > 0 && rowCount) {\n for (var _rowIndex = rowStartIndex; _rowIndex <= rowStopIndex; _rowIndex++) {\n for (var _columnIndex = columnStartIndex; _columnIndex <= columnStopIndex; _columnIndex++) {\n items.push(createElement(children, {\n columnIndex: _columnIndex,\n data: itemData,\n isScrolling: useIsScrolling ? isScrolling : undefined,\n key: itemKey({\n columnIndex: _columnIndex,\n data: itemData,\n rowIndex: _rowIndex\n }),\n rowIndex: _rowIndex,\n style: this._getItemStyle(_rowIndex, _columnIndex)\n }));\n }\n }\n } // Read this value AFTER items have been created,\n // So their actual sizes (if variable) are taken into consideration.\n\n\n var estimatedTotalHeight = getEstimatedTotalHeight(this.props, this._instanceProps);\n var estimatedTotalWidth = getEstimatedTotalWidth(this.props, this._instanceProps);\n return createElement(outerElementType || outerTagName || 'div', {\n className: className,\n onScroll: this._onScroll,\n ref: this._outerRefSetter,\n style: _extends({\n position: 'relative',\n height: height,\n width: width,\n overflow: 'auto',\n WebkitOverflowScrolling: 'touch',\n willChange: 'transform',\n direction: direction\n }, style)\n }, createElement(innerElementType || innerTagName || 'div', {\n children: items,\n ref: innerRef,\n style: {\n height: estimatedTotalHeight,\n pointerEvents: isScrolling ? 'none' : undefined,\n width: estimatedTotalWidth\n }\n }));\n };\n\n _proto._callPropsCallbacks = function _callPropsCallbacks() {\n var _this$props5 = this.props,\n columnCount = _this$props5.columnCount,\n onItemsRendered = _this$props5.onItemsRendered,\n onScroll = _this$props5.onScroll,\n rowCount = _this$props5.rowCount;\n\n if (typeof onItemsRendered === 'function') {\n if (columnCount > 0 && rowCount > 0) {\n var _this$_getHorizontalR2 = this._getHorizontalRangeToRender(),\n _overscanColumnStartIndex = _this$_getHorizontalR2[0],\n _overscanColumnStopIndex = _this$_getHorizontalR2[1],\n _visibleColumnStartIndex = _this$_getHorizontalR2[2],\n _visibleColumnStopIndex = _this$_getHorizontalR2[3];\n\n var _this$_getVerticalRan2 = this._getVerticalRangeToRender(),\n _overscanRowStartIndex = _this$_getVerticalRan2[0],\n _overscanRowStopIndex = _this$_getVerticalRan2[1],\n _visibleRowStartIndex = _this$_getVerticalRan2[2],\n _visibleRowStopIndex = _this$_getVerticalRan2[3];\n\n this._callOnItemsRendered(_overscanColumnStartIndex, _overscanColumnStopIndex, _overscanRowStartIndex, _overscanRowStopIndex, _visibleColumnStartIndex, _visibleColumnStopIndex, _visibleRowStartIndex, _visibleRowStopIndex);\n }\n }\n\n if (typeof onScroll === 'function') {\n var _this$state3 = this.state,\n _horizontalScrollDirection = _this$state3.horizontalScrollDirection,\n _scrollLeft = _this$state3.scrollLeft,\n _scrollTop = _this$state3.scrollTop,\n _scrollUpdateWasRequested = _this$state3.scrollUpdateWasRequested,\n _verticalScrollDirection = _this$state3.verticalScrollDirection;\n\n this._callOnScroll(_scrollLeft, _scrollTop, _horizontalScrollDirection, _verticalScrollDirection, _scrollUpdateWasRequested);\n }\n }; // Lazily create and cache item styles while scrolling,\n // So that pure component sCU will prevent re-renders.\n // We maintain this cache, and pass a style prop rather than index,\n // So that List can clear cached styles and force item re-render if necessary.\n\n\n _proto._getHorizontalRangeToRender = function _getHorizontalRangeToRender() {\n var _this$props6 = this.props,\n columnCount = _this$props6.columnCount,\n overscanColumnCount = _this$props6.overscanColumnCount,\n overscanColumnsCount = _this$props6.overscanColumnsCount,\n overscanCount = _this$props6.overscanCount,\n rowCount = _this$props6.rowCount;\n var _this$state4 = this.state,\n horizontalScrollDirection = _this$state4.horizontalScrollDirection,\n isScrolling = _this$state4.isScrolling,\n scrollLeft = _this$state4.scrollLeft;\n var overscanCountResolved = overscanColumnCount || overscanColumnsCount || overscanCount || 1;\n\n if (columnCount === 0 || rowCount === 0) {\n return [0, 0, 0, 0];\n }\n\n var startIndex = getColumnStartIndexForOffset(this.props, scrollLeft, this._instanceProps);\n var stopIndex = getColumnStopIndexForStartIndex(this.props, startIndex, scrollLeft, this._instanceProps); // Overscan by one item in each direction so that tab/focus works.\n // If there isn't at least one extra item, tab loops back around.\n\n var overscanBackward = !isScrolling || horizontalScrollDirection === 'backward' ? Math.max(1, overscanCountResolved) : 1;\n var overscanForward = !isScrolling || horizontalScrollDirection === 'forward' ? Math.max(1, overscanCountResolved) : 1;\n return [Math.max(0, startIndex - overscanBackward), Math.max(0, Math.min(columnCount - 1, stopIndex + overscanForward)), startIndex, stopIndex];\n };\n\n _proto._getVerticalRangeToRender = function _getVerticalRangeToRender() {\n var _this$props7 = this.props,\n columnCount = _this$props7.columnCount,\n overscanCount = _this$props7.overscanCount,\n overscanRowCount = _this$props7.overscanRowCount,\n overscanRowsCount = _this$props7.overscanRowsCount,\n rowCount = _this$props7.rowCount;\n var _this$state5 = this.state,\n isScrolling = _this$state5.isScrolling,\n verticalScrollDirection = _this$state5.verticalScrollDirection,\n scrollTop = _this$state5.scrollTop;\n var overscanCountResolved = overscanRowCount || overscanRowsCount || overscanCount || 1;\n\n if (columnCount === 0 || rowCount === 0) {\n return [0, 0, 0, 0];\n }\n\n var startIndex = getRowStartIndexForOffset(this.props, scrollTop, this._instanceProps);\n var stopIndex = getRowStopIndexForStartIndex(this.props, startIndex, scrollTop, this._instanceProps); // Overscan by one item in each direction so that tab/focus works.\n // If there isn't at least one extra item, tab loops back around.\n\n var overscanBackward = !isScrolling || verticalScrollDirection === 'backward' ? Math.max(1, overscanCountResolved) : 1;\n var overscanForward = !isScrolling || verticalScrollDirection === 'forward' ? Math.max(1, overscanCountResolved) : 1;\n return [Math.max(0, startIndex - overscanBackward), Math.max(0, Math.min(rowCount - 1, stopIndex + overscanForward)), startIndex, stopIndex];\n };\n\n return Grid;\n }(PureComponent), _class.defaultProps = {\n direction: 'ltr',\n itemData: undefined,\n useIsScrolling: false\n }, _temp;\n}\n\nvar validateSharedProps = function validateSharedProps(_ref5, _ref6) {\n var children = _ref5.children,\n direction = _ref5.direction,\n height = _ref5.height,\n innerTagName = _ref5.innerTagName,\n outerTagName = _ref5.outerTagName,\n overscanColumnsCount = _ref5.overscanColumnsCount,\n overscanCount = _ref5.overscanCount,\n overscanRowsCount = _ref5.overscanRowsCount,\n width = _ref5.width;\n var instance = _ref6.instance;\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof overscanCount === 'number') {\n if (devWarningsOverscanCount && !devWarningsOverscanCount.has(instance)) {\n devWarningsOverscanCount.add(instance);\n console.warn('The overscanCount prop has been deprecated. ' + 'Please use the overscanColumnCount and overscanRowCount props instead.');\n }\n }\n\n if (typeof overscanColumnsCount === 'number' || typeof overscanRowsCount === 'number') {\n if (devWarningsOverscanRowsColumnsCount && !devWarningsOverscanRowsColumnsCount.has(instance)) {\n devWarningsOverscanRowsColumnsCount.add(instance);\n console.warn('The overscanColumnsCount and overscanRowsCount props have been deprecated. ' + 'Please use the overscanColumnCount and overscanRowCount props instead.');\n }\n }\n\n if (innerTagName != null || outerTagName != null) {\n if (devWarningsTagName && !devWarningsTagName.has(instance)) {\n devWarningsTagName.add(instance);\n console.warn('The innerTagName and outerTagName props have been deprecated. ' + 'Please use the innerElementType and outerElementType props instead.');\n }\n }\n\n if (children == null) {\n throw Error('An invalid \"children\" prop has been specified. ' + 'Value should be a React component. ' + (\"\\\"\" + (children === null ? 'null' : typeof children) + \"\\\" was specified.\"));\n }\n\n switch (direction) {\n case 'ltr':\n case 'rtl':\n // Valid values\n break;\n\n default:\n throw Error('An invalid \"direction\" prop has been specified. ' + 'Value should be either \"ltr\" or \"rtl\". ' + (\"\\\"\" + direction + \"\\\" was specified.\"));\n }\n\n if (typeof width !== 'number') {\n throw Error('An invalid \"width\" prop has been specified. ' + 'Grids must specify a number for width. ' + (\"\\\"\" + (width === null ? 'null' : typeof width) + \"\\\" was specified.\"));\n }\n\n if (typeof height !== 'number') {\n throw Error('An invalid \"height\" prop has been specified. ' + 'Grids must specify a number for height. ' + (\"\\\"\" + (height === null ? 'null' : typeof height) + \"\\\" was specified.\"));\n }\n }\n};\n\nvar DEFAULT_ESTIMATED_ITEM_SIZE = 50;\n\nvar getEstimatedTotalHeight = function getEstimatedTotalHeight(_ref, _ref2) {\n var rowCount = _ref.rowCount;\n var rowMetadataMap = _ref2.rowMetadataMap,\n estimatedRowHeight = _ref2.estimatedRowHeight,\n lastMeasuredRowIndex = _ref2.lastMeasuredRowIndex;\n var totalSizeOfMeasuredRows = 0; // Edge case check for when the number of items decreases while a scroll is in progress.\n // https://github.com/bvaughn/react-window/pull/138\n\n if (lastMeasuredRowIndex >= rowCount) {\n lastMeasuredRowIndex = rowCount - 1;\n }\n\n if (lastMeasuredRowIndex >= 0) {\n var itemMetadata = rowMetadataMap[lastMeasuredRowIndex];\n totalSizeOfMeasuredRows = itemMetadata.offset + itemMetadata.size;\n }\n\n var numUnmeasuredItems = rowCount - lastMeasuredRowIndex - 1;\n var totalSizeOfUnmeasuredItems = numUnmeasuredItems * estimatedRowHeight;\n return totalSizeOfMeasuredRows + totalSizeOfUnmeasuredItems;\n};\n\nvar getEstimatedTotalWidth = function getEstimatedTotalWidth(_ref3, _ref4) {\n var columnCount = _ref3.columnCount;\n var columnMetadataMap = _ref4.columnMetadataMap,\n estimatedColumnWidth = _ref4.estimatedColumnWidth,\n lastMeasuredColumnIndex = _ref4.lastMeasuredColumnIndex;\n var totalSizeOfMeasuredRows = 0; // Edge case check for when the number of items decreases while a scroll is in progress.\n // https://github.com/bvaughn/react-window/pull/138\n\n if (lastMeasuredColumnIndex >= columnCount) {\n lastMeasuredColumnIndex = columnCount - 1;\n }\n\n if (lastMeasuredColumnIndex >= 0) {\n var itemMetadata = columnMetadataMap[lastMeasuredColumnIndex];\n totalSizeOfMeasuredRows = itemMetadata.offset + itemMetadata.size;\n }\n\n var numUnmeasuredItems = columnCount - lastMeasuredColumnIndex - 1;\n var totalSizeOfUnmeasuredItems = numUnmeasuredItems * estimatedColumnWidth;\n return totalSizeOfMeasuredRows + totalSizeOfUnmeasuredItems;\n};\n\nvar getItemMetadata = function getItemMetadata(itemType, props, index, instanceProps) {\n var itemMetadataMap, itemSize, lastMeasuredIndex;\n\n if (itemType === 'column') {\n itemMetadataMap = instanceProps.columnMetadataMap;\n itemSize = props.columnWidth;\n lastMeasuredIndex = instanceProps.lastMeasuredColumnIndex;\n } else {\n itemMetadataMap = instanceProps.rowMetadataMap;\n itemSize = props.rowHeight;\n lastMeasuredIndex = instanceProps.lastMeasuredRowIndex;\n }\n\n if (index > lastMeasuredIndex) {\n var offset = 0;\n\n if (lastMeasuredIndex >= 0) {\n var itemMetadata = itemMetadataMap[lastMeasuredIndex];\n offset = itemMetadata.offset + itemMetadata.size;\n }\n\n for (var i = lastMeasuredIndex + 1; i <= index; i++) {\n var size = itemSize(i);\n itemMetadataMap[i] = {\n offset: offset,\n size: size\n };\n offset += size;\n }\n\n if (itemType === 'column') {\n instanceProps.lastMeasuredColumnIndex = index;\n } else {\n instanceProps.lastMeasuredRowIndex = index;\n }\n }\n\n return itemMetadataMap[index];\n};\n\nvar findNearestItem = function findNearestItem(itemType, props, instanceProps, offset) {\n var itemMetadataMap, lastMeasuredIndex;\n\n if (itemType === 'column') {\n itemMetadataMap = instanceProps.columnMetadataMap;\n lastMeasuredIndex = instanceProps.lastMeasuredColumnIndex;\n } else {\n itemMetadataMap = instanceProps.rowMetadataMap;\n lastMeasuredIndex = instanceProps.lastMeasuredRowIndex;\n }\n\n var lastMeasuredItemOffset = lastMeasuredIndex > 0 ? itemMetadataMap[lastMeasuredIndex].offset : 0;\n\n if (lastMeasuredItemOffset >= offset) {\n // If we've already measured items within this range just use a binary search as it's faster.\n return findNearestItemBinarySearch(itemType, props, instanceProps, lastMeasuredIndex, 0, offset);\n } else {\n // If we haven't yet measured this high, fallback to an exponential search with an inner binary search.\n // The exponential search avoids pre-computing sizes for the full set of items as a binary search would.\n // The overall complexity for this approach is O(log n).\n return findNearestItemExponentialSearch(itemType, props, instanceProps, Math.max(0, lastMeasuredIndex), offset);\n }\n};\n\nvar findNearestItemBinarySearch = function findNearestItemBinarySearch(itemType, props, instanceProps, high, low, offset) {\n while (low <= high) {\n var middle = low + Math.floor((high - low) / 2);\n var currentOffset = getItemMetadata(itemType, props, middle, instanceProps).offset;\n\n if (currentOffset === offset) {\n return middle;\n } else if (currentOffset < offset) {\n low = middle + 1;\n } else if (currentOffset > offset) {\n high = middle - 1;\n }\n }\n\n if (low > 0) {\n return low - 1;\n } else {\n return 0;\n }\n};\n\nvar findNearestItemExponentialSearch = function findNearestItemExponentialSearch(itemType, props, instanceProps, index, offset) {\n var itemCount = itemType === 'column' ? props.columnCount : props.rowCount;\n var interval = 1;\n\n while (index < itemCount && getItemMetadata(itemType, props, index, instanceProps).offset < offset) {\n index += interval;\n interval *= 2;\n }\n\n return findNearestItemBinarySearch(itemType, props, instanceProps, Math.min(index, itemCount - 1), Math.floor(index / 2), offset);\n};\n\nvar getOffsetForIndexAndAlignment = function getOffsetForIndexAndAlignment(itemType, props, index, align, scrollOffset, instanceProps, scrollbarSize) {\n var size = itemType === 'column' ? props.width : props.height;\n var itemMetadata = getItemMetadata(itemType, props, index, instanceProps); // Get estimated total size after ItemMetadata is computed,\n // To ensure it reflects actual measurements instead of just estimates.\n\n var estimatedTotalSize = itemType === 'column' ? getEstimatedTotalWidth(props, instanceProps) : getEstimatedTotalHeight(props, instanceProps);\n var maxOffset = Math.max(0, Math.min(estimatedTotalSize - size, itemMetadata.offset));\n var minOffset = Math.max(0, itemMetadata.offset - size + scrollbarSize + itemMetadata.size);\n\n if (align === 'smart') {\n if (scrollOffset >= minOffset - size && scrollOffset <= maxOffset + size) {\n align = 'auto';\n } else {\n align = 'center';\n }\n }\n\n switch (align) {\n case 'start':\n return maxOffset;\n\n case 'end':\n return minOffset;\n\n case 'center':\n return Math.round(minOffset + (maxOffset - minOffset) / 2);\n\n case 'auto':\n default:\n if (scrollOffset >= minOffset && scrollOffset <= maxOffset) {\n return scrollOffset;\n } else if (minOffset > maxOffset) {\n // Because we only take into account the scrollbar size when calculating minOffset\n // this value can be larger than maxOffset when at the end of the list\n return minOffset;\n } else if (scrollOffset < minOffset) {\n return minOffset;\n } else {\n return maxOffset;\n }\n\n }\n};\n\nvar VariableSizeGrid =\n/*#__PURE__*/\ncreateGridComponent({\n getColumnOffset: function getColumnOffset(props, index, instanceProps) {\n return getItemMetadata('column', props, index, instanceProps).offset;\n },\n getColumnStartIndexForOffset: function getColumnStartIndexForOffset(props, scrollLeft, instanceProps) {\n return findNearestItem('column', props, instanceProps, scrollLeft);\n },\n getColumnStopIndexForStartIndex: function getColumnStopIndexForStartIndex(props, startIndex, scrollLeft, instanceProps) {\n var columnCount = props.columnCount,\n width = props.width;\n var itemMetadata = getItemMetadata('column', props, startIndex, instanceProps);\n var maxOffset = scrollLeft + width;\n var offset = itemMetadata.offset + itemMetadata.size;\n var stopIndex = startIndex;\n\n while (stopIndex < columnCount - 1 && offset < maxOffset) {\n stopIndex++;\n offset += getItemMetadata('column', props, stopIndex, instanceProps).size;\n }\n\n return stopIndex;\n },\n getColumnWidth: function getColumnWidth(props, index, instanceProps) {\n return instanceProps.columnMetadataMap[index].size;\n },\n getEstimatedTotalHeight: getEstimatedTotalHeight,\n getEstimatedTotalWidth: getEstimatedTotalWidth,\n getOffsetForColumnAndAlignment: function getOffsetForColumnAndAlignment(props, index, align, scrollOffset, instanceProps, scrollbarSize) {\n return getOffsetForIndexAndAlignment('column', props, index, align, scrollOffset, instanceProps, scrollbarSize);\n },\n getOffsetForRowAndAlignment: function getOffsetForRowAndAlignment(props, index, align, scrollOffset, instanceProps, scrollbarSize) {\n return getOffsetForIndexAndAlignment('row', props, index, align, scrollOffset, instanceProps, scrollbarSize);\n },\n getRowOffset: function getRowOffset(props, index, instanceProps) {\n return getItemMetadata('row', props, index, instanceProps).offset;\n },\n getRowHeight: function getRowHeight(props, index, instanceProps) {\n return instanceProps.rowMetadataMap[index].size;\n },\n getRowStartIndexForOffset: function getRowStartIndexForOffset(props, scrollTop, instanceProps) {\n return findNearestItem('row', props, instanceProps, scrollTop);\n },\n getRowStopIndexForStartIndex: function getRowStopIndexForStartIndex(props, startIndex, scrollTop, instanceProps) {\n var rowCount = props.rowCount,\n height = props.height;\n var itemMetadata = getItemMetadata('row', props, startIndex, instanceProps);\n var maxOffset = scrollTop + height;\n var offset = itemMetadata.offset + itemMetadata.size;\n var stopIndex = startIndex;\n\n while (stopIndex < rowCount - 1 && offset < maxOffset) {\n stopIndex++;\n offset += getItemMetadata('row', props, stopIndex, instanceProps).size;\n }\n\n return stopIndex;\n },\n initInstanceProps: function initInstanceProps(props, instance) {\n var _ref5 = props,\n estimatedColumnWidth = _ref5.estimatedColumnWidth,\n estimatedRowHeight = _ref5.estimatedRowHeight;\n var instanceProps = {\n columnMetadataMap: {},\n estimatedColumnWidth: estimatedColumnWidth || DEFAULT_ESTIMATED_ITEM_SIZE,\n estimatedRowHeight: estimatedRowHeight || DEFAULT_ESTIMATED_ITEM_SIZE,\n lastMeasuredColumnIndex: -1,\n lastMeasuredRowIndex: -1,\n rowMetadataMap: {}\n };\n\n instance.resetAfterColumnIndex = function (columnIndex, shouldForceUpdate) {\n if (shouldForceUpdate === void 0) {\n shouldForceUpdate = true;\n }\n\n instance.resetAfterIndices({\n columnIndex: columnIndex,\n shouldForceUpdate: shouldForceUpdate\n });\n };\n\n instance.resetAfterRowIndex = function (rowIndex, shouldForceUpdate) {\n if (shouldForceUpdate === void 0) {\n shouldForceUpdate = true;\n }\n\n instance.resetAfterIndices({\n rowIndex: rowIndex,\n shouldForceUpdate: shouldForceUpdate\n });\n };\n\n instance.resetAfterIndices = function (_ref6) {\n var columnIndex = _ref6.columnIndex,\n rowIndex = _ref6.rowIndex,\n _ref6$shouldForceUpda = _ref6.shouldForceUpdate,\n shouldForceUpdate = _ref6$shouldForceUpda === void 0 ? true : _ref6$shouldForceUpda;\n\n if (typeof columnIndex === 'number') {\n instanceProps.lastMeasuredColumnIndex = Math.min(instanceProps.lastMeasuredColumnIndex, columnIndex - 1);\n }\n\n if (typeof rowIndex === 'number') {\n instanceProps.lastMeasuredRowIndex = Math.min(instanceProps.lastMeasuredRowIndex, rowIndex - 1);\n } // We could potentially optimize further by only evicting styles after this index,\n // But since styles are only cached while scrolling is in progress-\n // It seems an unnecessary optimization.\n // It's unlikely that resetAfterIndex() will be called while a user is scrolling.\n\n\n instance._getItemStyleCache(-1);\n\n if (shouldForceUpdate) {\n instance.forceUpdate();\n }\n };\n\n return instanceProps;\n },\n shouldResetStyleCacheOnItemSizeChange: false,\n validateProps: function validateProps(_ref7) {\n var columnWidth = _ref7.columnWidth,\n rowHeight = _ref7.rowHeight;\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof columnWidth !== 'function') {\n throw Error('An invalid \"columnWidth\" prop has been specified. ' + 'Value should be a function. ' + (\"\\\"\" + (columnWidth === null ? 'null' : typeof columnWidth) + \"\\\" was specified.\"));\n } else if (typeof rowHeight !== 'function') {\n throw Error('An invalid \"rowHeight\" prop has been specified. ' + 'Value should be a function. ' + (\"\\\"\" + (rowHeight === null ? 'null' : typeof rowHeight) + \"\\\" was specified.\"));\n }\n }\n }\n});\n\nvar IS_SCROLLING_DEBOUNCE_INTERVAL$1 = 150;\n\nvar defaultItemKey$1 = function defaultItemKey(index, data) {\n return index;\n}; // In DEV mode, this Set helps us only log a warning once per component instance.\n// This avoids spamming the console every time a render happens.\n\n\nvar devWarningsDirection = null;\nvar devWarningsTagName$1 = null;\n\nif (process.env.NODE_ENV !== 'production') {\n if (typeof window !== 'undefined' && typeof window.WeakSet !== 'undefined') {\n devWarningsDirection =\n /*#__PURE__*/\n new WeakSet();\n devWarningsTagName$1 =\n /*#__PURE__*/\n new WeakSet();\n }\n}\n\nfunction createListComponent(_ref) {\n var _class, _temp;\n\n var getItemOffset = _ref.getItemOffset,\n getEstimatedTotalSize = _ref.getEstimatedTotalSize,\n getItemSize = _ref.getItemSize,\n getOffsetForIndexAndAlignment = _ref.getOffsetForIndexAndAlignment,\n getStartIndexForOffset = _ref.getStartIndexForOffset,\n getStopIndexForStartIndex = _ref.getStopIndexForStartIndex,\n initInstanceProps = _ref.initInstanceProps,\n shouldResetStyleCacheOnItemSizeChange = _ref.shouldResetStyleCacheOnItemSizeChange,\n validateProps = _ref.validateProps;\n return _temp = _class =\n /*#__PURE__*/\n function (_PureComponent) {\n _inheritsLoose(List, _PureComponent);\n\n // Always use explicit constructor for React components.\n // It produces less code after transpilation. (#26)\n // eslint-disable-next-line no-useless-constructor\n function List(props) {\n var _this;\n\n _this = _PureComponent.call(this, props) || this;\n _this._instanceProps = initInstanceProps(_this.props, _assertThisInitialized(_assertThisInitialized(_this)));\n _this._outerRef = void 0;\n _this._resetIsScrollingTimeoutId = null;\n _this.state = {\n instance: _assertThisInitialized(_assertThisInitialized(_this)),\n isScrolling: false,\n scrollDirection: 'forward',\n scrollOffset: typeof _this.props.initialScrollOffset === 'number' ? _this.props.initialScrollOffset : 0,\n scrollUpdateWasRequested: false\n };\n _this._callOnItemsRendered = void 0;\n _this._callOnItemsRendered = memoizeOne(function (overscanStartIndex, overscanStopIndex, visibleStartIndex, visibleStopIndex) {\n return _this.props.onItemsRendered({\n overscanStartIndex: overscanStartIndex,\n overscanStopIndex: overscanStopIndex,\n visibleStartIndex: visibleStartIndex,\n visibleStopIndex: visibleStopIndex\n });\n });\n _this._callOnScroll = void 0;\n _this._callOnScroll = memoizeOne(function (scrollDirection, scrollOffset, scrollUpdateWasRequested) {\n return _this.props.onScroll({\n scrollDirection: scrollDirection,\n scrollOffset: scrollOffset,\n scrollUpdateWasRequested: scrollUpdateWasRequested\n });\n });\n _this._getItemStyle = void 0;\n\n _this._getItemStyle = function (index) {\n var _this$props = _this.props,\n direction = _this$props.direction,\n itemSize = _this$props.itemSize,\n layout = _this$props.layout;\n\n var itemStyleCache = _this._getItemStyleCache(shouldResetStyleCacheOnItemSizeChange && itemSize, shouldResetStyleCacheOnItemSizeChange && layout, shouldResetStyleCacheOnItemSizeChange && direction);\n\n var style;\n\n if (itemStyleCache.hasOwnProperty(index)) {\n style = itemStyleCache[index];\n } else {\n var _offset = getItemOffset(_this.props, index, _this._instanceProps);\n\n var size = getItemSize(_this.props, index, _this._instanceProps); // TODO Deprecate direction \"horizontal\"\n\n var isHorizontal = direction === 'horizontal' || layout === 'horizontal';\n var isRtl = direction === 'rtl';\n var offsetHorizontal = isHorizontal ? _offset : 0;\n itemStyleCache[index] = style = {\n position: 'absolute',\n left: isRtl ? undefined : offsetHorizontal,\n right: isRtl ? offsetHorizontal : undefined,\n top: !isHorizontal ? _offset : 0,\n height: !isHorizontal ? size : '100%',\n width: isHorizontal ? size : '100%'\n };\n }\n\n return style;\n };\n\n _this._getItemStyleCache = void 0;\n _this._getItemStyleCache = memoizeOne(function (_, __, ___) {\n return {};\n });\n\n _this._onScrollHorizontal = function (event) {\n var _event$currentTarget = event.currentTarget,\n clientWidth = _event$currentTarget.clientWidth,\n scrollLeft = _event$currentTarget.scrollLeft,\n scrollWidth = _event$currentTarget.scrollWidth;\n\n _this.setState(function (prevState) {\n if (prevState.scrollOffset === scrollLeft) {\n // Scroll position may have been updated by cDM/cDU,\n // In which case we don't need to trigger another render,\n // And we don't want to update state.isScrolling.\n return null;\n }\n\n var direction = _this.props.direction;\n var scrollOffset = scrollLeft;\n\n if (direction === 'rtl') {\n // TRICKY According to the spec, scrollLeft should be negative for RTL aligned elements.\n // This is not the case for all browsers though (e.g. Chrome reports values as positive, measured relative to the left).\n // It's also easier for this component if we convert offsets to the same format as they would be in for ltr.\n // So the simplest solution is to determine which browser behavior we're dealing with, and convert based on it.\n switch (getRTLOffsetType()) {\n case 'negative':\n scrollOffset = -scrollLeft;\n break;\n\n case 'positive-descending':\n scrollOffset = scrollWidth - clientWidth - scrollLeft;\n break;\n }\n } // Prevent Safari's elastic scrolling from causing visual shaking when scrolling past bounds.\n\n\n scrollOffset = Math.max(0, Math.min(scrollOffset, scrollWidth - clientWidth));\n return {\n isScrolling: true,\n scrollDirection: prevState.scrollOffset < scrollLeft ? 'forward' : 'backward',\n scrollOffset: scrollOffset,\n scrollUpdateWasRequested: false\n };\n }, _this._resetIsScrollingDebounced);\n };\n\n _this._onScrollVertical = function (event) {\n var _event$currentTarget2 = event.currentTarget,\n clientHeight = _event$currentTarget2.clientHeight,\n scrollHeight = _event$currentTarget2.scrollHeight,\n scrollTop = _event$currentTarget2.scrollTop;\n\n _this.setState(function (prevState) {\n if (prevState.scrollOffset === scrollTop) {\n // Scroll position may have been updated by cDM/cDU,\n // In which case we don't need to trigger another render,\n // And we don't want to update state.isScrolling.\n return null;\n } // Prevent Safari's elastic scrolling from causing visual shaking when scrolling past bounds.\n\n\n var scrollOffset = Math.max(0, Math.min(scrollTop, scrollHeight - clientHeight));\n return {\n isScrolling: true,\n scrollDirection: prevState.scrollOffset < scrollOffset ? 'forward' : 'backward',\n scrollOffset: scrollOffset,\n scrollUpdateWasRequested: false\n };\n }, _this._resetIsScrollingDebounced);\n };\n\n _this._outerRefSetter = function (ref) {\n var outerRef = _this.props.outerRef;\n _this._outerRef = ref;\n\n if (typeof outerRef === 'function') {\n outerRef(ref);\n } else if (outerRef != null && typeof outerRef === 'object' && outerRef.hasOwnProperty('current')) {\n outerRef.current = ref;\n }\n };\n\n _this._resetIsScrollingDebounced = function () {\n if (_this._resetIsScrollingTimeoutId !== null) {\n cancelTimeout(_this._resetIsScrollingTimeoutId);\n }\n\n _this._resetIsScrollingTimeoutId = requestTimeout(_this._resetIsScrolling, IS_SCROLLING_DEBOUNCE_INTERVAL$1);\n };\n\n _this._resetIsScrolling = function () {\n _this._resetIsScrollingTimeoutId = null;\n\n _this.setState({\n isScrolling: false\n }, function () {\n // Clear style cache after state update has been committed.\n // This way we don't break pure sCU for items that don't use isScrolling param.\n _this._getItemStyleCache(-1, null);\n });\n };\n\n return _this;\n }\n\n List.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {\n validateSharedProps$1(nextProps, prevState);\n validateProps(nextProps);\n return null;\n };\n\n var _proto = List.prototype;\n\n _proto.scrollTo = function scrollTo(scrollOffset) {\n scrollOffset = Math.max(0, scrollOffset);\n this.setState(function (prevState) {\n if (prevState.scrollOffset === scrollOffset) {\n return null;\n }\n\n return {\n scrollDirection: prevState.scrollOffset < scrollOffset ? 'forward' : 'backward',\n scrollOffset: scrollOffset,\n scrollUpdateWasRequested: true\n };\n }, this._resetIsScrollingDebounced);\n };\n\n _proto.scrollToItem = function scrollToItem(index, align) {\n if (align === void 0) {\n align = 'auto';\n }\n\n var itemCount = this.props.itemCount;\n var scrollOffset = this.state.scrollOffset;\n index = Math.max(0, Math.min(index, itemCount - 1));\n this.scrollTo(getOffsetForIndexAndAlignment(this.props, index, align, scrollOffset, this._instanceProps));\n };\n\n _proto.componentDidMount = function componentDidMount() {\n var _this$props2 = this.props,\n direction = _this$props2.direction,\n initialScrollOffset = _this$props2.initialScrollOffset,\n layout = _this$props2.layout;\n\n if (typeof initialScrollOffset === 'number' && this._outerRef != null) {\n var outerRef = this._outerRef; // TODO Deprecate direction \"horizontal\"\n\n if (direction === 'horizontal' || layout === 'horizontal') {\n outerRef.scrollLeft = initialScrollOffset;\n } else {\n outerRef.scrollTop = initialScrollOffset;\n }\n }\n\n this._callPropsCallbacks();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n var _this$props3 = this.props,\n direction = _this$props3.direction,\n layout = _this$props3.layout;\n var _this$state = this.state,\n scrollOffset = _this$state.scrollOffset,\n scrollUpdateWasRequested = _this$state.scrollUpdateWasRequested;\n\n if (scrollUpdateWasRequested && this._outerRef != null) {\n var outerRef = this._outerRef; // TODO Deprecate direction \"horizontal\"\n\n if (direction === 'horizontal' || layout === 'horizontal') {\n if (direction === 'rtl') {\n // TRICKY According to the spec, scrollLeft should be negative for RTL aligned elements.\n // This is not the case for all browsers though (e.g. Chrome reports values as positive, measured relative to the left).\n // So we need to determine which browser behavior we're dealing with, and mimic it.\n switch (getRTLOffsetType()) {\n case 'negative':\n outerRef.scrollLeft = -scrollOffset;\n break;\n\n case 'positive-ascending':\n outerRef.scrollLeft = scrollOffset;\n break;\n\n default:\n var clientWidth = outerRef.clientWidth,\n scrollWidth = outerRef.scrollWidth;\n outerRef.scrollLeft = scrollWidth - clientWidth - scrollOffset;\n break;\n }\n } else {\n outerRef.scrollLeft = scrollOffset;\n }\n } else {\n outerRef.scrollTop = scrollOffset;\n }\n }\n\n this._callPropsCallbacks();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this._resetIsScrollingTimeoutId !== null) {\n cancelTimeout(this._resetIsScrollingTimeoutId);\n }\n };\n\n _proto.render = function render() {\n var _this$props4 = this.props,\n children = _this$props4.children,\n className = _this$props4.className,\n direction = _this$props4.direction,\n height = _this$props4.height,\n innerRef = _this$props4.innerRef,\n innerElementType = _this$props4.innerElementType,\n innerTagName = _this$props4.innerTagName,\n itemCount = _this$props4.itemCount,\n itemData = _this$props4.itemData,\n _this$props4$itemKey = _this$props4.itemKey,\n itemKey = _this$props4$itemKey === void 0 ? defaultItemKey$1 : _this$props4$itemKey,\n layout = _this$props4.layout,\n outerElementType = _this$props4.outerElementType,\n outerTagName = _this$props4.outerTagName,\n style = _this$props4.style,\n useIsScrolling = _this$props4.useIsScrolling,\n width = _this$props4.width;\n var isScrolling = this.state.isScrolling; // TODO Deprecate direction \"horizontal\"\n\n var isHorizontal = direction === 'horizontal' || layout === 'horizontal';\n var onScroll = isHorizontal ? this._onScrollHorizontal : this._onScrollVertical;\n\n var _this$_getRangeToRend = this._getRangeToRender(),\n startIndex = _this$_getRangeToRend[0],\n stopIndex = _this$_getRangeToRend[1];\n\n var items = [];\n\n if (itemCount > 0) {\n for (var _index = startIndex; _index <= stopIndex; _index++) {\n items.push(createElement(children, {\n data: itemData,\n key: itemKey(_index, itemData),\n index: _index,\n isScrolling: useIsScrolling ? isScrolling : undefined,\n style: this._getItemStyle(_index)\n }));\n }\n } // Read this value AFTER items have been created,\n // So their actual sizes (if variable) are taken into consideration.\n\n\n var estimatedTotalSize = getEstimatedTotalSize(this.props, this._instanceProps);\n return createElement(outerElementType || outerTagName || 'div', {\n className: className,\n onScroll: onScroll,\n ref: this._outerRefSetter,\n style: _extends({\n position: 'relative',\n height: height,\n width: width,\n overflow: 'auto',\n WebkitOverflowScrolling: 'touch',\n willChange: 'transform',\n direction: direction\n }, style)\n }, createElement(innerElementType || innerTagName || 'div', {\n children: items,\n ref: innerRef,\n style: {\n height: isHorizontal ? '100%' : estimatedTotalSize,\n pointerEvents: isScrolling ? 'none' : undefined,\n width: isHorizontal ? estimatedTotalSize : '100%'\n }\n }));\n };\n\n _proto._callPropsCallbacks = function _callPropsCallbacks() {\n if (typeof this.props.onItemsRendered === 'function') {\n var itemCount = this.props.itemCount;\n\n if (itemCount > 0) {\n var _this$_getRangeToRend2 = this._getRangeToRender(),\n _overscanStartIndex = _this$_getRangeToRend2[0],\n _overscanStopIndex = _this$_getRangeToRend2[1],\n _visibleStartIndex = _this$_getRangeToRend2[2],\n _visibleStopIndex = _this$_getRangeToRend2[3];\n\n this._callOnItemsRendered(_overscanStartIndex, _overscanStopIndex, _visibleStartIndex, _visibleStopIndex);\n }\n }\n\n if (typeof this.props.onScroll === 'function') {\n var _this$state2 = this.state,\n _scrollDirection = _this$state2.scrollDirection,\n _scrollOffset = _this$state2.scrollOffset,\n _scrollUpdateWasRequested = _this$state2.scrollUpdateWasRequested;\n\n this._callOnScroll(_scrollDirection, _scrollOffset, _scrollUpdateWasRequested);\n }\n }; // Lazily create and cache item styles while scrolling,\n // So that pure component sCU will prevent re-renders.\n // We maintain this cache, and pass a style prop rather than index,\n // So that List can clear cached styles and force item re-render if necessary.\n\n\n _proto._getRangeToRender = function _getRangeToRender() {\n var _this$props5 = this.props,\n itemCount = _this$props5.itemCount,\n overscanCount = _this$props5.overscanCount;\n var _this$state3 = this.state,\n isScrolling = _this$state3.isScrolling,\n scrollDirection = _this$state3.scrollDirection,\n scrollOffset = _this$state3.scrollOffset;\n\n if (itemCount === 0) {\n return [0, 0, 0, 0];\n }\n\n var startIndex = getStartIndexForOffset(this.props, scrollOffset, this._instanceProps);\n var stopIndex = getStopIndexForStartIndex(this.props, startIndex, scrollOffset, this._instanceProps); // Overscan by one item in each direction so that tab/focus works.\n // If there isn't at least one extra item, tab loops back around.\n\n var overscanBackward = !isScrolling || scrollDirection === 'backward' ? Math.max(1, overscanCount) : 1;\n var overscanForward = !isScrolling || scrollDirection === 'forward' ? Math.max(1, overscanCount) : 1;\n return [Math.max(0, startIndex - overscanBackward), Math.max(0, Math.min(itemCount - 1, stopIndex + overscanForward)), startIndex, stopIndex];\n };\n\n return List;\n }(PureComponent), _class.defaultProps = {\n direction: 'ltr',\n itemData: undefined,\n layout: 'vertical',\n overscanCount: 2,\n useIsScrolling: false\n }, _temp;\n} // NOTE: I considered further wrapping individual items with a pure ListItem component.\n// This would avoid ever calling the render function for the same index more than once,\n// But it would also add the overhead of a lot of components/fibers.\n// I assume people already do this (render function returning a class component),\n// So my doing it would just unnecessarily double the wrappers.\n\nvar validateSharedProps$1 = function validateSharedProps(_ref2, _ref3) {\n var children = _ref2.children,\n direction = _ref2.direction,\n height = _ref2.height,\n layout = _ref2.layout,\n innerTagName = _ref2.innerTagName,\n outerTagName = _ref2.outerTagName,\n width = _ref2.width;\n var instance = _ref3.instance;\n\n if (process.env.NODE_ENV !== 'production') {\n if (innerTagName != null || outerTagName != null) {\n if (devWarningsTagName$1 && !devWarningsTagName$1.has(instance)) {\n devWarningsTagName$1.add(instance);\n console.warn('The innerTagName and outerTagName props have been deprecated. ' + 'Please use the innerElementType and outerElementType props instead.');\n }\n } // TODO Deprecate direction \"horizontal\"\n\n\n var isHorizontal = direction === 'horizontal' || layout === 'horizontal';\n\n switch (direction) {\n case 'horizontal':\n case 'vertical':\n if (devWarningsDirection && !devWarningsDirection.has(instance)) {\n devWarningsDirection.add(instance);\n console.warn('The direction prop should be either \"ltr\" (default) or \"rtl\". ' + 'Please use the layout prop to specify \"vertical\" (default) or \"horizontal\" orientation.');\n }\n\n break;\n\n case 'ltr':\n case 'rtl':\n // Valid values\n break;\n\n default:\n throw Error('An invalid \"direction\" prop has been specified. ' + 'Value should be either \"ltr\" or \"rtl\". ' + (\"\\\"\" + direction + \"\\\" was specified.\"));\n }\n\n switch (layout) {\n case 'horizontal':\n case 'vertical':\n // Valid values\n break;\n\n default:\n throw Error('An invalid \"layout\" prop has been specified. ' + 'Value should be either \"horizontal\" or \"vertical\". ' + (\"\\\"\" + layout + \"\\\" was specified.\"));\n }\n\n if (children == null) {\n throw Error('An invalid \"children\" prop has been specified. ' + 'Value should be a React component. ' + (\"\\\"\" + (children === null ? 'null' : typeof children) + \"\\\" was specified.\"));\n }\n\n if (isHorizontal && typeof width !== 'number') {\n throw Error('An invalid \"width\" prop has been specified. ' + 'Horizontal lists must specify a number for width. ' + (\"\\\"\" + (width === null ? 'null' : typeof width) + \"\\\" was specified.\"));\n } else if (!isHorizontal && typeof height !== 'number') {\n throw Error('An invalid \"height\" prop has been specified. ' + 'Vertical lists must specify a number for height. ' + (\"\\\"\" + (height === null ? 'null' : typeof height) + \"\\\" was specified.\"));\n }\n }\n};\n\nvar DEFAULT_ESTIMATED_ITEM_SIZE$1 = 50;\n\nvar getItemMetadata$1 = function getItemMetadata(props, index, instanceProps) {\n var _ref = props,\n itemSize = _ref.itemSize;\n var itemMetadataMap = instanceProps.itemMetadataMap,\n lastMeasuredIndex = instanceProps.lastMeasuredIndex;\n\n if (index > lastMeasuredIndex) {\n var offset = 0;\n\n if (lastMeasuredIndex >= 0) {\n var itemMetadata = itemMetadataMap[lastMeasuredIndex];\n offset = itemMetadata.offset + itemMetadata.size;\n }\n\n for (var i = lastMeasuredIndex + 1; i <= index; i++) {\n var size = itemSize(i);\n itemMetadataMap[i] = {\n offset: offset,\n size: size\n };\n offset += size;\n }\n\n instanceProps.lastMeasuredIndex = index;\n }\n\n return itemMetadataMap[index];\n};\n\nvar findNearestItem$1 = function findNearestItem(props, instanceProps, offset) {\n var itemMetadataMap = instanceProps.itemMetadataMap,\n lastMeasuredIndex = instanceProps.lastMeasuredIndex;\n var lastMeasuredItemOffset = lastMeasuredIndex > 0 ? itemMetadataMap[lastMeasuredIndex].offset : 0;\n\n if (lastMeasuredItemOffset >= offset) {\n // If we've already measured items within this range just use a binary search as it's faster.\n return findNearestItemBinarySearch$1(props, instanceProps, lastMeasuredIndex, 0, offset);\n } else {\n // If we haven't yet measured this high, fallback to an exponential search with an inner binary search.\n // The exponential search avoids pre-computing sizes for the full set of items as a binary search would.\n // The overall complexity for this approach is O(log n).\n return findNearestItemExponentialSearch$1(props, instanceProps, Math.max(0, lastMeasuredIndex), offset);\n }\n};\n\nvar findNearestItemBinarySearch$1 = function findNearestItemBinarySearch(props, instanceProps, high, low, offset) {\n while (low <= high) {\n var middle = low + Math.floor((high - low) / 2);\n var currentOffset = getItemMetadata$1(props, middle, instanceProps).offset;\n\n if (currentOffset === offset) {\n return middle;\n } else if (currentOffset < offset) {\n low = middle + 1;\n } else if (currentOffset > offset) {\n high = middle - 1;\n }\n }\n\n if (low > 0) {\n return low - 1;\n } else {\n return 0;\n }\n};\n\nvar findNearestItemExponentialSearch$1 = function findNearestItemExponentialSearch(props, instanceProps, index, offset) {\n var itemCount = props.itemCount;\n var interval = 1;\n\n while (index < itemCount && getItemMetadata$1(props, index, instanceProps).offset < offset) {\n index += interval;\n interval *= 2;\n }\n\n return findNearestItemBinarySearch$1(props, instanceProps, Math.min(index, itemCount - 1), Math.floor(index / 2), offset);\n};\n\nvar getEstimatedTotalSize = function getEstimatedTotalSize(_ref2, _ref3) {\n var itemCount = _ref2.itemCount;\n var itemMetadataMap = _ref3.itemMetadataMap,\n estimatedItemSize = _ref3.estimatedItemSize,\n lastMeasuredIndex = _ref3.lastMeasuredIndex;\n var totalSizeOfMeasuredItems = 0; // Edge case check for when the number of items decreases while a scroll is in progress.\n // https://github.com/bvaughn/react-window/pull/138\n\n if (lastMeasuredIndex >= itemCount) {\n lastMeasuredIndex = itemCount - 1;\n }\n\n if (lastMeasuredIndex >= 0) {\n var itemMetadata = itemMetadataMap[lastMeasuredIndex];\n totalSizeOfMeasuredItems = itemMetadata.offset + itemMetadata.size;\n }\n\n var numUnmeasuredItems = itemCount - lastMeasuredIndex - 1;\n var totalSizeOfUnmeasuredItems = numUnmeasuredItems * estimatedItemSize;\n return totalSizeOfMeasuredItems + totalSizeOfUnmeasuredItems;\n};\n\nvar VariableSizeList =\n/*#__PURE__*/\ncreateListComponent({\n getItemOffset: function getItemOffset(props, index, instanceProps) {\n return getItemMetadata$1(props, index, instanceProps).offset;\n },\n getItemSize: function getItemSize(props, index, instanceProps) {\n return instanceProps.itemMetadataMap[index].size;\n },\n getEstimatedTotalSize: getEstimatedTotalSize,\n getOffsetForIndexAndAlignment: function getOffsetForIndexAndAlignment(props, index, align, scrollOffset, instanceProps) {\n var direction = props.direction,\n height = props.height,\n layout = props.layout,\n width = props.width; // TODO Deprecate direction \"horizontal\"\n\n var isHorizontal = direction === 'horizontal' || layout === 'horizontal';\n var size = isHorizontal ? width : height;\n var itemMetadata = getItemMetadata$1(props, index, instanceProps); // Get estimated total size after ItemMetadata is computed,\n // To ensure it reflects actual measurements instead of just estimates.\n\n var estimatedTotalSize = getEstimatedTotalSize(props, instanceProps);\n var maxOffset = Math.max(0, Math.min(estimatedTotalSize - size, itemMetadata.offset));\n var minOffset = Math.max(0, itemMetadata.offset - size + itemMetadata.size);\n\n if (align === 'smart') {\n if (scrollOffset >= minOffset - size && scrollOffset <= maxOffset + size) {\n align = 'auto';\n } else {\n align = 'center';\n }\n }\n\n switch (align) {\n case 'start':\n return maxOffset;\n\n case 'end':\n return minOffset;\n\n case 'center':\n return Math.round(minOffset + (maxOffset - minOffset) / 2);\n\n case 'auto':\n default:\n if (scrollOffset >= minOffset && scrollOffset <= maxOffset) {\n return scrollOffset;\n } else if (scrollOffset < minOffset) {\n return minOffset;\n } else {\n return maxOffset;\n }\n\n }\n },\n getStartIndexForOffset: function getStartIndexForOffset(props, offset, instanceProps) {\n return findNearestItem$1(props, instanceProps, offset);\n },\n getStopIndexForStartIndex: function getStopIndexForStartIndex(props, startIndex, scrollOffset, instanceProps) {\n var direction = props.direction,\n height = props.height,\n itemCount = props.itemCount,\n layout = props.layout,\n width = props.width; // TODO Deprecate direction \"horizontal\"\n\n var isHorizontal = direction === 'horizontal' || layout === 'horizontal';\n var size = isHorizontal ? width : height;\n var itemMetadata = getItemMetadata$1(props, startIndex, instanceProps);\n var maxOffset = scrollOffset + size;\n var offset = itemMetadata.offset + itemMetadata.size;\n var stopIndex = startIndex;\n\n while (stopIndex < itemCount - 1 && offset < maxOffset) {\n stopIndex++;\n offset += getItemMetadata$1(props, stopIndex, instanceProps).size;\n }\n\n return stopIndex;\n },\n initInstanceProps: function initInstanceProps(props, instance) {\n var _ref4 = props,\n estimatedItemSize = _ref4.estimatedItemSize;\n var instanceProps = {\n itemMetadataMap: {},\n estimatedItemSize: estimatedItemSize || DEFAULT_ESTIMATED_ITEM_SIZE$1,\n lastMeasuredIndex: -1\n };\n\n instance.resetAfterIndex = function (index, shouldForceUpdate) {\n if (shouldForceUpdate === void 0) {\n shouldForceUpdate = true;\n }\n\n instanceProps.lastMeasuredIndex = Math.min(instanceProps.lastMeasuredIndex, index - 1); // We could potentially optimize further by only evicting styles after this index,\n // But since styles are only cached while scrolling is in progress-\n // It seems an unnecessary optimization.\n // It's unlikely that resetAfterIndex() will be called while a user is scrolling.\n\n instance._getItemStyleCache(-1);\n\n if (shouldForceUpdate) {\n instance.forceUpdate();\n }\n };\n\n return instanceProps;\n },\n shouldResetStyleCacheOnItemSizeChange: false,\n validateProps: function validateProps(_ref5) {\n var itemSize = _ref5.itemSize;\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof itemSize !== 'function') {\n throw Error('An invalid \"itemSize\" prop has been specified. ' + 'Value should be a function. ' + (\"\\\"\" + (itemSize === null ? 'null' : typeof itemSize) + \"\\\" was specified.\"));\n }\n }\n }\n});\n\nvar FixedSizeGrid =\n/*#__PURE__*/\ncreateGridComponent({\n getColumnOffset: function getColumnOffset(_ref, index) {\n var columnWidth = _ref.columnWidth;\n return index * columnWidth;\n },\n getColumnWidth: function getColumnWidth(_ref2, index) {\n var columnWidth = _ref2.columnWidth;\n return columnWidth;\n },\n getRowOffset: function getRowOffset(_ref3, index) {\n var rowHeight = _ref3.rowHeight;\n return index * rowHeight;\n },\n getRowHeight: function getRowHeight(_ref4, index) {\n var rowHeight = _ref4.rowHeight;\n return rowHeight;\n },\n getEstimatedTotalHeight: function getEstimatedTotalHeight(_ref5) {\n var rowCount = _ref5.rowCount,\n rowHeight = _ref5.rowHeight;\n return rowHeight * rowCount;\n },\n getEstimatedTotalWidth: function getEstimatedTotalWidth(_ref6) {\n var columnCount = _ref6.columnCount,\n columnWidth = _ref6.columnWidth;\n return columnWidth * columnCount;\n },\n getOffsetForColumnAndAlignment: function getOffsetForColumnAndAlignment(_ref7, columnIndex, align, scrollLeft, instanceProps, scrollbarSize) {\n var columnCount = _ref7.columnCount,\n columnWidth = _ref7.columnWidth,\n width = _ref7.width;\n var lastColumnOffset = Math.max(0, columnCount * columnWidth - width);\n var maxOffset = Math.min(lastColumnOffset, columnIndex * columnWidth);\n var minOffset = Math.max(0, columnIndex * columnWidth - width + scrollbarSize + columnWidth);\n\n if (align === 'smart') {\n if (scrollLeft >= minOffset - width && scrollLeft <= maxOffset + width) {\n align = 'auto';\n } else {\n align = 'center';\n }\n }\n\n switch (align) {\n case 'start':\n return maxOffset;\n\n case 'end':\n return minOffset;\n\n case 'center':\n // \"Centered\" offset is usually the average of the min and max.\n // But near the edges of the list, this doesn't hold true.\n var middleOffset = Math.round(minOffset + (maxOffset - minOffset) / 2);\n\n if (middleOffset < Math.ceil(width / 2)) {\n return 0; // near the beginning\n } else if (middleOffset > lastColumnOffset + Math.floor(width / 2)) {\n return lastColumnOffset; // near the end\n } else {\n return middleOffset;\n }\n\n case 'auto':\n default:\n if (scrollLeft >= minOffset && scrollLeft <= maxOffset) {\n return scrollLeft;\n } else if (minOffset > maxOffset) {\n // Because we only take into account the scrollbar size when calculating minOffset\n // this value can be larger than maxOffset when at the end of the list\n return minOffset;\n } else if (scrollLeft < minOffset) {\n return minOffset;\n } else {\n return maxOffset;\n }\n\n }\n },\n getOffsetForRowAndAlignment: function getOffsetForRowAndAlignment(_ref8, rowIndex, align, scrollTop, instanceProps, scrollbarSize) {\n var rowHeight = _ref8.rowHeight,\n height = _ref8.height,\n rowCount = _ref8.rowCount;\n var lastRowOffset = Math.max(0, rowCount * rowHeight - height);\n var maxOffset = Math.min(lastRowOffset, rowIndex * rowHeight);\n var minOffset = Math.max(0, rowIndex * rowHeight - height + scrollbarSize + rowHeight);\n\n if (align === 'smart') {\n if (scrollTop >= minOffset - height && scrollTop <= maxOffset + height) {\n align = 'auto';\n } else {\n align = 'center';\n }\n }\n\n switch (align) {\n case 'start':\n return maxOffset;\n\n case 'end':\n return minOffset;\n\n case 'center':\n // \"Centered\" offset is usually the average of the min and max.\n // But near the edges of the list, this doesn't hold true.\n var middleOffset = Math.round(minOffset + (maxOffset - minOffset) / 2);\n\n if (middleOffset < Math.ceil(height / 2)) {\n return 0; // near the beginning\n } else if (middleOffset > lastRowOffset + Math.floor(height / 2)) {\n return lastRowOffset; // near the end\n } else {\n return middleOffset;\n }\n\n case 'auto':\n default:\n if (scrollTop >= minOffset && scrollTop <= maxOffset) {\n return scrollTop;\n } else if (minOffset > maxOffset) {\n // Because we only take into account the scrollbar size when calculating minOffset\n // this value can be larger than maxOffset when at the end of the list\n return minOffset;\n } else if (scrollTop < minOffset) {\n return minOffset;\n } else {\n return maxOffset;\n }\n\n }\n },\n getColumnStartIndexForOffset: function getColumnStartIndexForOffset(_ref9, scrollLeft) {\n var columnWidth = _ref9.columnWidth,\n columnCount = _ref9.columnCount;\n return Math.max(0, Math.min(columnCount - 1, Math.floor(scrollLeft / columnWidth)));\n },\n getColumnStopIndexForStartIndex: function getColumnStopIndexForStartIndex(_ref10, startIndex, scrollLeft) {\n var columnWidth = _ref10.columnWidth,\n columnCount = _ref10.columnCount,\n width = _ref10.width;\n var left = startIndex * columnWidth;\n var numVisibleColumns = Math.ceil((width + scrollLeft - left) / columnWidth);\n return Math.max(0, Math.min(columnCount - 1, startIndex + numVisibleColumns - 1 // -1 is because stop index is inclusive\n ));\n },\n getRowStartIndexForOffset: function getRowStartIndexForOffset(_ref11, scrollTop) {\n var rowHeight = _ref11.rowHeight,\n rowCount = _ref11.rowCount;\n return Math.max(0, Math.min(rowCount - 1, Math.floor(scrollTop / rowHeight)));\n },\n getRowStopIndexForStartIndex: function getRowStopIndexForStartIndex(_ref12, startIndex, scrollTop) {\n var rowHeight = _ref12.rowHeight,\n rowCount = _ref12.rowCount,\n height = _ref12.height;\n var top = startIndex * rowHeight;\n var numVisibleRows = Math.ceil((height + scrollTop - top) / rowHeight);\n return Math.max(0, Math.min(rowCount - 1, startIndex + numVisibleRows - 1 // -1 is because stop index is inclusive\n ));\n },\n initInstanceProps: function initInstanceProps(props) {// Noop\n },\n shouldResetStyleCacheOnItemSizeChange: true,\n validateProps: function validateProps(_ref13) {\n var columnWidth = _ref13.columnWidth,\n rowHeight = _ref13.rowHeight;\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof columnWidth !== 'number') {\n throw Error('An invalid \"columnWidth\" prop has been specified. ' + 'Value should be a number. ' + (\"\\\"\" + (columnWidth === null ? 'null' : typeof columnWidth) + \"\\\" was specified.\"));\n }\n\n if (typeof rowHeight !== 'number') {\n throw Error('An invalid \"rowHeight\" prop has been specified. ' + 'Value should be a number. ' + (\"\\\"\" + (rowHeight === null ? 'null' : typeof rowHeight) + \"\\\" was specified.\"));\n }\n }\n }\n});\n\nvar FixedSizeList =\n/*#__PURE__*/\ncreateListComponent({\n getItemOffset: function getItemOffset(_ref, index) {\n var itemSize = _ref.itemSize;\n return index * itemSize;\n },\n getItemSize: function getItemSize(_ref2, index) {\n var itemSize = _ref2.itemSize;\n return itemSize;\n },\n getEstimatedTotalSize: function getEstimatedTotalSize(_ref3) {\n var itemCount = _ref3.itemCount,\n itemSize = _ref3.itemSize;\n return itemSize * itemCount;\n },\n getOffsetForIndexAndAlignment: function getOffsetForIndexAndAlignment(_ref4, index, align, scrollOffset) {\n var direction = _ref4.direction,\n height = _ref4.height,\n itemCount = _ref4.itemCount,\n itemSize = _ref4.itemSize,\n layout = _ref4.layout,\n width = _ref4.width;\n // TODO Deprecate direction \"horizontal\"\n var isHorizontal = direction === 'horizontal' || layout === 'horizontal';\n var size = isHorizontal ? width : height;\n var lastItemOffset = Math.max(0, itemCount * itemSize - size);\n var maxOffset = Math.min(lastItemOffset, index * itemSize);\n var minOffset = Math.max(0, index * itemSize - size + itemSize);\n\n if (align === 'smart') {\n if (scrollOffset >= minOffset - size && scrollOffset <= maxOffset + size) {\n align = 'auto';\n } else {\n align = 'center';\n }\n }\n\n switch (align) {\n case 'start':\n return maxOffset;\n\n case 'end':\n return minOffset;\n\n case 'center':\n {\n // \"Centered\" offset is usually the average of the min and max.\n // But near the edges of the list, this doesn't hold true.\n var middleOffset = Math.round(minOffset + (maxOffset - minOffset) / 2);\n\n if (middleOffset < Math.ceil(size / 2)) {\n return 0; // near the beginning\n } else if (middleOffset > lastItemOffset + Math.floor(size / 2)) {\n return lastItemOffset; // near the end\n } else {\n return middleOffset;\n }\n }\n\n case 'auto':\n default:\n if (scrollOffset >= minOffset && scrollOffset <= maxOffset) {\n return scrollOffset;\n } else if (scrollOffset < minOffset) {\n return minOffset;\n } else {\n return maxOffset;\n }\n\n }\n },\n getStartIndexForOffset: function getStartIndexForOffset(_ref5, offset) {\n var itemCount = _ref5.itemCount,\n itemSize = _ref5.itemSize;\n return Math.max(0, Math.min(itemCount - 1, Math.floor(offset / itemSize)));\n },\n getStopIndexForStartIndex: function getStopIndexForStartIndex(_ref6, startIndex, scrollOffset) {\n var direction = _ref6.direction,\n height = _ref6.height,\n itemCount = _ref6.itemCount,\n itemSize = _ref6.itemSize,\n layout = _ref6.layout,\n width = _ref6.width;\n // TODO Deprecate direction \"horizontal\"\n var isHorizontal = direction === 'horizontal' || layout === 'horizontal';\n var offset = startIndex * itemSize;\n var size = isHorizontal ? width : height;\n var numVisibleItems = Math.ceil((size + scrollOffset - offset) / itemSize);\n return Math.max(0, Math.min(itemCount - 1, startIndex + numVisibleItems - 1 // -1 is because stop index is inclusive\n ));\n },\n initInstanceProps: function initInstanceProps(props) {// Noop\n },\n shouldResetStyleCacheOnItemSizeChange: true,\n validateProps: function validateProps(_ref7) {\n var itemSize = _ref7.itemSize;\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof itemSize !== 'number') {\n throw Error('An invalid \"itemSize\" prop has been specified. ' + 'Value should be a number. ' + (\"\\\"\" + (itemSize === null ? 'null' : typeof itemSize) + \"\\\" was specified.\"));\n }\n }\n }\n});\n\n// Pulled from react-compat\n// https://github.com/developit/preact-compat/blob/7c5de00e7c85e2ffd011bf3af02899b63f699d3a/src/index.js#L349\nfunction shallowDiffers(prev, next) {\n for (var attribute in prev) {\n if (!(attribute in next)) {\n return true;\n }\n }\n\n for (var _attribute in next) {\n if (prev[_attribute] !== next[_attribute]) {\n return true;\n }\n }\n\n return false;\n}\n\n// It knows to compare individual style props and ignore the wrapper object.\n// See https://reactjs.org/docs/react-api.html#reactmemo\n\nfunction areEqual(prevProps, nextProps) {\n var prevStyle = prevProps.style,\n prevRest = _objectWithoutPropertiesLoose(prevProps, [\"style\"]);\n\n var nextStyle = nextProps.style,\n nextRest = _objectWithoutPropertiesLoose(nextProps, [\"style\"]);\n\n return !shallowDiffers(prevStyle, nextStyle) && !shallowDiffers(prevRest, nextRest);\n}\n\n// It knows to compare individual style props and ignore the wrapper object.\n// See https://reactjs.org/docs/react-component.html#shouldcomponentupdate\n\nfunction shouldComponentUpdate(nextProps, nextState) {\n return !areEqual(this.props, nextProps) || shallowDiffers(this.state, nextState);\n}\n\nexport { VariableSizeGrid, VariableSizeList, FixedSizeGrid, FixedSizeList, areEqual, shouldComponentUpdate };\n//# sourceMappingURL=index.esm.js.map\n"],"sourceRoot":""}