virtual-scroller 1.15.0 → 1.15.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/README.md +98 -8
  3. package/bundle/index-dom-bypass.html +3 -4
  4. package/bundle/index-dom-grid.html +3 -4
  5. package/bundle/index-dom-scrollableContainer.html +3 -4
  6. package/bundle/index-dom.html +3 -4
  7. package/bundle/index-react-bypass.html +56 -62
  8. package/bundle/index-react-grid.html +55 -61
  9. package/bundle/index-react-hook.html +209 -0
  10. package/bundle/index-react-scrollableContainer.html +56 -62
  11. package/bundle/index-react-strictMode.html +55 -61
  12. package/bundle/index-react-tbody-scrollableContainer.html +13 -15
  13. package/bundle/index-react-tbody.html +10 -12
  14. package/bundle/virtual-scroller-dom.js +1 -1
  15. package/bundle/virtual-scroller-dom.js.map +1 -1
  16. package/bundle/virtual-scroller-react.js +1 -1
  17. package/bundle/virtual-scroller-react.js.map +1 -1
  18. package/bundle/virtual-scroller.js +1 -1
  19. package/bundle/virtual-scroller.js.map +1 -1
  20. package/commonjs/VirtualScroller.constructor.js +3 -1
  21. package/commonjs/VirtualScroller.constructor.js.map +1 -1
  22. package/commonjs/VirtualScroller.items.js +19 -0
  23. package/commonjs/VirtualScroller.items.js.map +1 -1
  24. package/commonjs/react/VirtualScroller.js +69 -127
  25. package/commonjs/react/VirtualScroller.js.map +1 -1
  26. package/commonjs/react/useCreateVirtualScroller.js +64 -0
  27. package/commonjs/react/useCreateVirtualScroller.js.map +1 -0
  28. package/commonjs/react/useInstanceMethods.js +2 -2
  29. package/commonjs/react/useInstanceMethods.js.map +1 -1
  30. package/commonjs/react/useMergeRefs.js +52 -0
  31. package/commonjs/react/useMergeRefs.js.map +1 -0
  32. package/commonjs/react/{useVirtualScrollerStartStop.js → useStartStopVirtualScroller.js} +1 -1
  33. package/commonjs/react/{useVirtualScrollerStartStop.js.map → useStartStopVirtualScroller.js.map} +1 -1
  34. package/commonjs/react/useStyle.js +18 -0
  35. package/commonjs/react/useStyle.js.map +1 -1
  36. package/commonjs/react/useVirtualScroller.js +142 -43
  37. package/commonjs/react/useVirtualScroller.js.map +1 -1
  38. package/commonjs/test/VirtualScroller.js +17 -1
  39. package/commonjs/test/VirtualScroller.js.map +1 -1
  40. package/modules/VirtualScroller.constructor.js +3 -1
  41. package/modules/VirtualScroller.constructor.js.map +1 -1
  42. package/modules/VirtualScroller.items.js +19 -0
  43. package/modules/VirtualScroller.items.js.map +1 -1
  44. package/modules/react/VirtualScroller.js +68 -119
  45. package/modules/react/VirtualScroller.js.map +1 -1
  46. package/modules/react/useCreateVirtualScroller.js +53 -0
  47. package/modules/react/useCreateVirtualScroller.js.map +1 -0
  48. package/modules/react/useInstanceMethods.js +2 -2
  49. package/modules/react/useInstanceMethods.js.map +1 -1
  50. package/modules/react/useMergeRefs.js +44 -0
  51. package/modules/react/useMergeRefs.js.map +1 -0
  52. package/modules/react/{useVirtualScrollerStartStop.js → useStartStopVirtualScroller.js} +1 -1
  53. package/modules/react/{useVirtualScrollerStartStop.js.map → useStartStopVirtualScroller.js.map} +1 -1
  54. package/modules/react/useStyle.js +17 -0
  55. package/modules/react/useStyle.js.map +1 -1
  56. package/modules/react/useVirtualScroller.js +136 -43
  57. package/modules/react/useVirtualScroller.js.map +1 -1
  58. package/modules/test/VirtualScroller.js +17 -1
  59. package/modules/test/VirtualScroller.js.map +1 -1
  60. package/package.json +4 -1
  61. package/react/index.cjs +2 -1
  62. package/react/index.d.ts +51 -7
  63. package/react/index.js +1 -0
  64. package/rollup.config.mjs +15 -1
  65. package/source/VirtualScroller.constructor.js +3 -0
  66. package/source/VirtualScroller.items.js +14 -0
  67. package/source/react/VirtualScroller.js +66 -127
  68. package/source/react/useCreateVirtualScroller.js +65 -0
  69. package/source/react/useInstanceMethods.js +2 -2
  70. package/source/react/useMergeRefs.js +45 -0
  71. package/source/react/useStyle.js +15 -0
  72. package/source/react/useVirtualScroller.js +155 -48
  73. package/source/test/VirtualScroller.js +11 -1
  74. package/website/index-dom-bypass.html +3 -4
  75. package/website/index-dom-grid.html +3 -4
  76. package/website/index-dom-scrollableContainer.html +3 -4
  77. package/website/index-dom.html +3 -4
  78. package/website/index-react-bypass.html +56 -62
  79. package/website/index-react-grid.html +55 -61
  80. package/website/index-react-hook.html +209 -0
  81. package/website/index-react-scrollableContainer.html +56 -62
  82. package/website/index-react-strictMode.html +55 -61
  83. package/website/index-react-tbody-scrollableContainer.html +13 -15
  84. package/website/index-react-tbody.html +10 -12
  85. package/website/index-react.html +55 -61
  86. package/website/index.html +55 -61
  87. package/commonjs/react/useForwardedRef.js +0 -50
  88. package/commonjs/react/useForwardedRef.js.map +0 -1
  89. package/modules/react/useForwardedRef.js +0 -42
  90. package/modules/react/useForwardedRef.js.map +0 -1
  91. package/source/react/useForwardedRef.js +0 -39
  92. /package/source/react/{useVirtualScrollerStartStop.js → useStartStopVirtualScroller.js} +0 -0
@@ -1,2 +1,2 @@
1
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("react"),require("prop-types")):"function"==typeof define&&define.amd?define(["react","prop-types"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).VirtualScroller=t(e.React,e.PropTypes)}(this,(function(e,t){"use strict";function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var r=n(e),i=n(t);function o(e){return function(e){if(Array.isArray(e))return a(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return a(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return a(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function s(){if(h()){for(var e,t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];(e=console).log.apply(e,o(["[virtual-scroller]"].concat(n)))}}function l(){for(var e,t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];if(f())return c.apply(this,n);(e=console).warn.apply(e,o(["[virtual-scroller]"].concat(n)))}function u(){for(var e,t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];(e=console).error.apply(e,o(["[virtual-scroller]"].concat(n)))}function c(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var r=function(){return new Error(["[virtual-scroller]"].concat(t).join(" "))};if("undefined"!=typeof window)u.apply(this,["ERROR"].concat(t)),setTimeout((function(){throw r()}),0);else{var i=m("VirtualScrollerCatchError");if(i)return i(r());if(m("VirtualScrollerThrowErrors"))throw r();u.apply(this,["ERROR"].concat(t))}}function h(){var e=m("VirtualScrollerDebug");if(void 0!==e)return!0===e||"debug"===e}function f(){return m("VirtualScrollerWarningsAreErrors")}function m(e){return"undefined"!=typeof window?window[e]:"undefined"!=typeof global?global[e]:void 0}function d(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function g(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?d(Object(n),!0).forEach((function(t){p(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):d(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function p(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function I(e){var t=g({},e);return e.itemHeights&&(t.itemHeights=e.itemHeights.slice()),e.itemStates&&(t.itemStates=e.itemStates.slice()),e.beforeResize&&(t.beforeResize=g({},e.beforeResize),t.beforeResize.itemHeights=e.beforeResize.itemHeights.slice()),t}function y(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,i,o=[],a=!0,s=!1;try{for(n=n.call(e);!(a=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);a=!0);}catch(e){s=!0,i=e}finally{try{a||null==n.return||n.return()}finally{if(s)throw i}}return o}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return v(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return v(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function v(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function S(t,n,r){if(!Array.isArray(r))throw new Error("Dependencies argument must be an array");var i,o=(i=e.useRef(!1),{onEffect:e.useCallback((function(){var e=i.current;return i.current=!0,{isInitialRun:!e}}),[])}).onEffect,a=function(t){var n=e.useRef(t),r=e.useCallback((function(e){var t=n.current;return n.current=e,t}),[]);return{onChange:r}}(r),s=a.onChange;t((function(){var e=o().isInitialRun,t=s(r);if((e||!function(e,t){if(e.length!==t.length)return!1;var n=0;for(;n<e.length;){if(e[n]!==t[n])return!1;n++}return!0}(t,r))&&"function"==typeof n())throw new Error("An effect can't return a clean-up function when used with `useEffectDontMountTwiceInStrictMode()` because the clean-up function won't behave correctly in that case")}),r)}function b(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,i,o=[],a=!0,s=!1;try{for(n=n.call(e);!(a=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);a=!0);}catch(e){s=!0,i=e}finally{try{a||null==n.return||n.return()}finally{if(s)throw i}}return o}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return w(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return w(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function w(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function C(t){var n,r,i=t.initialState,o=t.onRender,a=function(t){var n=e.useRef(t),r=y(e.useState(t),2);r[0];var i=r[1];return[n.current,e.useCallback((function(e){if("function"==typeof e)throw new Error("Function argument of `setState()` function is not supported by this hook");n.current=e,i(e)}),[])]}(i),l=b(a,2),u=l[0],c=l[1],f=e.useRef(i),m=e.useCallback((function(){return f.current}),[]),d=e.useCallback((function(e){f.current=e}),[]);return n=function(){h()&&(s("React: ~ The requested state is about to be applied in DOM. Setting it as the `VirtualScroller` state. ~"),s(I(u))),d(u)},r=[u],S(e.useInsertionEffect,n,r),function(t,n){S(e.useLayoutEffect,t,n)}((function(){o()}),[u]),{stateToRender:u,getState:m,setState:c}}function O(e){return O="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},O(e)}function R(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function H(e,t){if(t&&("object"===O(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}function x(e){var t="function"==typeof Map?new Map:void 0;return x=function(e){if(null===e||(n=e,-1===Function.toString.call(n).indexOf("[native code]")))return e;var n;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return P(e,arguments,j(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),E(r,e)},x(e)}function P(e,t,n){return P=T()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var i=new(Function.bind.apply(e,r));return n&&E(i,n.prototype),i},P.apply(null,arguments)}function T(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}function E(e,t){return E=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},E(e,t)}function j(e){return j=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},j(e)}var M=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&E(e,t)}(s,e);var t,n,r,i,o,a=(t=s,n=T(),function(){var e,r=j(t);if(n){var i=j(this).constructor;e=Reflect.construct(r,arguments,i)}else e=r.apply(this,arguments);return H(this,e)});function s(e){var t=e.renderedElementIndex,n=e.renderedElementsCount,r=e.message;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,s),a.call(this,r||function(e){var t=e.renderedElementIndex,n=e.renderedElementsCount;return"Element with index ".concat(t," was not found in the list of Rendered Item Elements in the Items Container of Virtual Scroller. There're only ").concat(n," Elements there.")}({renderedElementIndex:t,renderedElementsCount:n}))}return r=s,i&&R(r.prototype,i),o&&R(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r}(x(Error));function B(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var L=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.getElement=t}var t,n,r;return t=e,(n=[{key:"_getNthRenderedItemElement",value:function(e){var t=this.getElement().childNodes;if(e>t.length-1)throw new M({renderedElementIndex:e,renderedElementsCount:t.length});return t[e]}},{key:"getNthRenderedItemTopOffset",value:function(e){return this._getNthRenderedItemElement(e).getBoundingClientRect().top-this.getElement().getBoundingClientRect().top}},{key:"getNthRenderedItemHeight",value:function(e){return this._getNthRenderedItemElement(e).getBoundingClientRect().height}},{key:"getHeight",value:function(){return this.getElement().getBoundingClientRect().height}},{key:"clear",value:function(){for(;this.getElement().firstChild;)this.getElement().removeChild(this.getElement().firstChild)}}])&&B(t.prototype,n),r&&B(t,r),Object.defineProperty(t,"prototype",{writable:!1}),e}();function A(e){return A="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},A(e)}function z(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function k(e,t){if(t&&("object"===A(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}function V(e){var t="function"==typeof Map?new Map:void 0;return V=function(e){if(null===e||(n=e,-1===Function.toString.call(n).indexOf("[native code]")))return e;var n;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return _(e,arguments,W(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),D(r,e)},V(e)}function _(e,t,n){return _=N()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var i=new(Function.bind.apply(e,r));return n&&D(i,n.prototype),i},_.apply(null,arguments)}function N(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}function D(e,t){return D=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},D(e,t)}function W(e){return W=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},W(e)}var F=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&D(e,t)}(s,e);var t,n,r,i,o,a=(t=s,n=N(),function(){var e,r=W(t);if(n){var i=W(this).constructor;e=Reflect.construct(r,arguments,i)}else e=r.apply(this,arguments);return k(this,e)});function s(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,s),a.call(this,"[virtual-scroller] Scrollable container not found")}return r=s,i&&z(r.prototype,i),o&&z(r,o),Object.defineProperty(r,"prototype",{writable:!1}),r}(V(Error));function U(e){return U="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},U(e)}function q(e,t){return q=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},q(e,t)}function Y(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=$(e);if(t){var i=$(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return K(this,n)}}function K(e,t){if(t&&("object"===U(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}function $(e){return $=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},$(e)}function G(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function J(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function X(e,t,n){return t&&J(e.prototype,t),n&&J(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}var Q=function(){function e(t,n){G(this,e),this.getElement=t,this.getItemsContainerElement=n}return X(e,[{key:"getScrollY",value:function(){return this.getElement().scrollTop}},{key:"scrollToY",value:function(e){this.getElement().scrollTo?this.getElement().scrollTo(0,e):this.getElement().scrollTop=e}},{key:"getWidth",value:function(){if(!this.getElement())throw new F;return this.getElement().offsetWidth}},{key:"getHeight",value:function(){if(!this.getElement())throw new F;return this.getElement().offsetHeight}},{key:"getItemsContainerTopOffset",value:function(){var e=this.getElement().getBoundingClientRect().top,t=this.getElement().clientTop;return this.getItemsContainerElement().getBoundingClientRect().top-e+this.getScrollY()-t}},{key:"onScroll",value:function(e){var t=this.getElement();return t.addEventListener("scroll",e),function(){return t.removeEventListener("scroll",e)}}},{key:"onResize",value:function(e){var t;if("undefined"!=typeof ResizeObserver){var n=new ResizeObserver((function(t){t[0],e()})),r=this.getElement();n.observe(r),t=function(){return n.unobserve(r)}}var i=ee(e,{itemsContainerElement:this.getItemsContainerElement()});return function(){t&&t(),i()}}}]),e}(),Z=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&q(e,t)}(n,e);var t=Y(n);function n(e){return G(this,n),t.call(this,(function(){return window}),e)}return X(n,[{key:"getScrollY",value:function(){return window.pageYOffset}},{key:"getWidth",value:function(){return window.innerWidth}},{key:"getHeight",value:function(){return window.innerHeight}},{key:"getItemsContainerTopOffset",value:function(){var e=document.clientTop||document.body.clientTop||0;return this.getItemsContainerElement().getBoundingClientRect().top+this.getScrollY()-e}},{key:"onResize",value:function(e){return ee(e,{itemsContainerElement:this.getItemsContainerElement()})}}]),n}(Q);function ee(e,t){var n=t.itemsContainerElement,r=function(){document.fullscreenElement&&!document.fullscreenElement.contains(n)||e()};return window.addEventListener("resize",r),function(){return window.removeEventListener("resize",r)}}for(var te="undefined"==typeof window?global:window,ne=["moz","webkit"],re="AnimationFrame",ie=te["request"+re],oe=te["cancel"+re]||te["cancelRequest"+re],ae=0;!ie&&ae<ne.length;ae++)ie=te[ne[ae]+"Request"+re],oe=te[ne[ae]+"Cancel"+re]||te[ne[ae]+"CancelRequest"+re];if(!ie||!oe){var se=0,le=0,ue=[];ie=function(e){if(0===ue.length){var t=Date.now(),n=Math.max(0,16.666666666666668-(t-se));se=n+t,setTimeout((function(){var e=ue.slice(0);ue.length=0;for(var t=0;t<e.length;t++)if(!e[t].cancelled)try{e[t].callback(se)}catch(e){setTimeout((function(){throw e}),0)}}),Math.round(n))}return ue.push({handle:++le,callback:e,cancelled:!1}),le},oe=function(e){for(var t=0;t<ue.length;t++)ue[t].handle===e&&(ue[t].cancelled=!0)}}function ce(e){return ie.call(te,e)}function he(e,t){var n=Date.now(),r=ce((function i(){Date.now()-n>=t?e():r=ce(i)}));return{clear:function(){return function(){oe.apply(te,arguments)}(r)}}}function fe(e){e&&e.clear()}function me(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var de=function(){function e(t){var n=t.getListTopOffset,r=t.onListTopOffsetChange;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.getListTopOffset=n,this.onListTopOffsetChange=r}var t,n,r;return t=e,(n=[{key:"onListTopOffset",value:function(e){void 0===this.listTopOffsetInsideScrollableContainer&&this.start(),this.listTopOffsetInsideScrollableContainer=e}},{key:"start",value:function(){this._isActive=!0,this.watchListTopOffset()}},{key:"isStarted",value:function(){return this._isActive}},{key:"stop",value:function(){this._isActive=!1,this.watchListTopOffsetTimer&&(fe(this.watchListTopOffsetTimer),this.watchListTopOffsetTimer=void 0)}},{key:"watchListTopOffset",value:function(){var e=this,t=Date.now();!function n(){e._isActive&&(void 0!==e.listTopOffsetInsideScrollableContainer&&e.getListTopOffset()!==e.listTopOffsetInsideScrollableContainer&&e.onListTopOffsetChange(),Date.now()-t<3e3&&(e.watchListTopOffsetTimer=he(n,500)))}()}}])&&me(t.prototype,n),r&&me(t,r),Object.defineProperty(t,"prototype",{writable:!1}),e}(),ge={createItemsContainer:function(e){return new L(e)},createScrollableContainer:function(e,t){return e?new Q(e,t):"undefined"!=typeof window?new Z(t):void 0},watchListTopOffset:function(e){var t=e.getListTopOffset,n=e.onListTopOffsetChange;return new de({getListTopOffset:t,onListTopOffsetChange:n})}};function pe(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ie(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?pe(Object(n),!0).forEach((function(t){ye(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):pe(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function ye(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ve(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var Se=function(){function e(t){var n=t.isInBypassMode,r=t.getEstimatedVisibleItemRowsCountForInitialRender,i=t.measureItemsBatchSize,o=t.getPrerenderMargin,a=t.getPrerenderMarginRatio,s=t.getVerticalSpacing,l=t.getVerticalSpacingBeforeResize,u=t.getColumnsCount,c=t.getColumnsCountBeforeResize,h=t.getItemHeight,f=t.getItemHeightBeforeResize,m=t.getBeforeResizeItemsCount,d=t.getAverageItemHeight,g=t.getMaxVisibleAreaHeight,p=t.getPreviouslyCalculatedLayout;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.isInBypassMode=n,this.getEstimatedVisibleItemRowsCountForInitialRender=r,this.measureItemsBatchSize=i,this.getPrerenderMargin=o,this.getPrerenderMarginRatio=a,this.getVerticalSpacing=s,this.getVerticalSpacingBeforeResize=l,this.getColumnsCount=u,this.getColumnsCountBeforeResize=c,this.getItemHeight=h,this.getItemHeightBeforeResize=f,this.getBeforeResizeItemsCount=m,this.getAverageItemHeight=d,this.getMaxVisibleAreaHeight=g,this.getPreviouslyCalculatedLayout=p}var t,n,r;return t=e,n=[{key:"getInitialLayoutValueWithFallback",value:function(e,t,n){try{return t()}catch(t){if(t instanceof F)return s('Scrollable container size is not known at this point, so "'.concat(e,"\" can't be calculated yet. Default to"),n),n;throw t}}},{key:"getInitialLayoutValues",value:function(e){var t,n,r=this,i=e.itemsCount,o=e.columnsCount,a=e.beforeStart,s=0,l=0;if(i>0){var u=function(){return r.getInitialLastShownItemIndex({itemsCount:i,columnsCount:o,firstShownItemIndex:t})};t=0,n=a?this.getInitialLayoutValueWithFallback("lastShownItemIndex",u,t):u();var c=this.getAverageItemHeight(),h=this.getVerticalSpacing(),f=t,m=i-(n+1);s=Math.ceil(f/o)*(h+c),l=Math.ceil(m/o)*(h+c)}return{beforeItemsHeight:s,afterItemsHeight:l,firstShownItemIndex:t,lastShownItemIndex:n}}},{key:"getInitialLastShownItemIndex",value:function(e){var t=e.itemsCount,n=e.columnsCount,r=e.firstShownItemIndex;return this.isInBypassMode()?t-1:Math.min(r+(this.getInitialRenderedRowsCount()*n-1),t-1)}},{key:"getInitialRenderedRowsCount",value:function(){var e=this.getEstimatedVisibleItemRowsCount();return"number"==typeof e?Math.ceil(e*(1+this.getPrerenderMarginRatio())):1}},{key:"getEstimatedVisibleItemRowsCount",value:function(){var e=this.getMaxVisibleAreaHeight();if("number"==typeof e){var t=this.getEstimatedRowsCountForHeight(e);if("number"==typeof t)return t}if(this.getEstimatedVisibleItemRowsCountForInitialRender){var n=this.getEstimatedVisibleItemRowsCountForInitialRender();if("number"==typeof n)return n;throw new Error("[virtual-scroller] `getEstimatedVisibleItemRowsCount()` must return a number")}}},{key:"getEstimatedRowsCountForHeight",value:function(e){var t=this.getAverageItemHeight(),n=this.getVerticalSpacing();if(t+n>0)return Math.ceil((e+n)/(t+n))}},{key:"getLayoutUpdateForItemsDiff",value:function(e,t,n){var r=e.firstShownItemIndex,i=e.lastShownItemIndex,o=e.beforeItemsHeight,a=e.afterItemsHeight,s=t.prependedItemsCount,u=t.appendedItemsCount,c=n.itemsCount,h=n.columnsCount,f=n.shouldRestoreScrollPosition,m=n.onResetGridLayout,d=this.getAverageItemHeight(),g=this.getVerticalSpacing();if(u>0&&(a+=Math.ceil(u/h)*(g+d)),s>0&&(r+=s,i+=s,o+=Math.ceil(s/h)*(d+g),f&&(r=0,o=0),s%h>0)){m(),l("~ Prepended items count",s,"is not divisible by Columns Count",h,"~"),l("Layout reset required");var p=i-r+1;if(r=0,o=0,!f&&s>p){var I=c-((i=this.getInitialLastShownItemIndex({itemsCount:c,columnsCount:h,firstShownItemIndex:r}))+1);a=Math.ceil(I/h)*(g+d)}}return{beforeItemsHeight:o,afterItemsHeight:a,firstShownItemIndex:r,lastShownItemIndex:i}}},{key:"getItemNotMeasuredIndexes",value:function(e,t){var n=this,r=t.itemsCount,i=t.firstShownItemIndex,o=t.nonMeasuredAreaHeight,a=t.indexOfTheFirstItemInTheRow;s("Item index",e,"height is required for calculations but hasn't been measured yet. Mark the item as \"shown\", rerender the list, measure the item's height and redo the layout.");var l,u=this.getColumnsCount(),c=Math.min(("number"==typeof(l=n.getEstimatedRowsCountForHeight(o))?l:Math.ceil(r/u))*u,this.measureItemsBatchSize||1/0);return void 0===i&&(i=a),{firstNonMeasuredItemIndex:e,firstShownItemIndex:i,lastShownItemIndex:Math.min(a+c-1,r-1)}}},{key:"getShownItemIndexes",value:function(e){var t=e.itemsCount,n=e.visibleAreaInsideTheList,r=this._getShownItemIndex({itemsCount:t,fromIndex:0,visibleAreaInsideTheList:n,findFirstShownItemIndex:!0});if(null===r)return this.getNonVisibleListShownItemIndexes();if(void 0!==r.firstNonMeasuredItemIndex)return r;var i=r,o=i.firstShownItemIndex,a=i.beforeItemsHeight;return null===(r=this._getShownItemIndex({itemsCount:t,fromIndex:o,beforeItemsHeight:a,visibleAreaInsideTheList:n,findLastShownItemIndex:!0}))?this.getNonVisibleListShownItemIndexes():void 0!==r.firstNonMeasuredItemIndex?r:{firstShownItemIndex:o,lastShownItemIndex:r.lastShownItemIndex}}},{key:"_getShownItemIndex",value:function(e){var t=e.beforeResize,n=e.itemsCount,r=e.visibleAreaInsideTheList,i=e.findFirstShownItemIndex,o=e.findLastShownItemIndex,a=e.fromIndex,s=e.beforeItemsHeight;if(0===a&&(s=0),void 0===s)throw new Error("[virtual-scroller] `beforeItemsHeight` not passed to `Layout.getShownItemIndexes()` when starting from index "+a);if(!t){var u=this.getBeforeResizeItemsCount();if(u>a){var c=this._getShownItemIndex(Ie(Ie({},e),{},{beforeResize:!0,itemsCount:u})),h=c.notFound,f=c.beforeItemsHeight,m=c.firstShownItemIndex,d=c.lastShownItemIndex;if(!h){var g=this.getColumnsCount();return{firstShownItemIndex:void 0===m?void 0:Math.floor(m/g)*g,lastShownItemIndex:void 0===d?void 0:Math.floor(d/g)*g,beforeItemsHeight:f}}s=f,a+=u}}for(var p=t?this.getColumnsCountBeforeResize():this.getColumnsCount(),I=t?this.getVerticalSpacingBeforeResize():this.getVerticalSpacing(),y=a;y<n;){for(var v=y,S=n>v+p?I:0,b=0,w=0;w<p&&y<n;){var C=t?this.getItemHeightBeforeResize(y):this.getItemHeight(y);if(void 0===C)return this.getItemNotMeasuredIndexes(y,{itemsCount:n,firstShownItemIndex:o?a:void 0,indexOfTheFirstItemInTheRow:v,nonMeasuredAreaHeight:r.bottom+this.getPrerenderMargin()-s});b=Math.max(b,C),w++,y++}var O=s+b,R=O>r.top-this.getPrerenderMargin(),H=O+S>=r.bottom+this.getPrerenderMargin();if(i){if(R)return{firstShownItemIndex:v,beforeItemsHeight:s}}else if(o&&H)return{lastShownItemIndex:Math.min(v+p-1,n-1)};s+=b+S}return t?{notFound:!0,beforeItemsHeight:s}:i?(l("The list is supposed to be visible but no visible item has been found"),null):o?{lastShownItemIndex:n-1}:void 0}},{key:"getNonVisibleListShownItemIndexes",value:function(){var e={firstShownItemIndex:0,lastShownItemIndex:0};return void 0===this.getItemHeight(0)&&(e.firstNonMeasuredItemIndex=0),e}},{key:"getBeforeItemsHeight",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.beforeResize,r=0,i=0;if(!n){var o=this.getBeforeResizeItemsCount();o>0&&(r=this.getBeforeItemsHeight(Math.min(e,o),{beforeResize:!0}),i=o)}for(var a=n?this.getColumnsCountBeforeResize():this.getColumnsCount(),s=n?this.getVerticalSpacingBeforeResize():this.getVerticalSpacing();i<e;){for(var l=0,u=0;u<a;){var c=n?this.getItemHeightBeforeResize(i):this.getItemHeight(i);void 0===c&&(c=this.getAverageItemHeight()),l=Math.max(l,c),i++,u++}r+=l,r+=s}return r}},{key:"getAfterItemsHeight",value:function(e,t){for(var n=this.getColumnsCount(),r=0,i=e+1;i<t;){for(var o=0,a=0;a<n&&i<t;){var s=this.getItemHeight(i);void 0===s&&(s=this.getAverageItemHeight()),o=Math.max(o,s),i++,a++}r+=this.getVerticalSpacing(),r+=o}return r}},{key:"getItemTopOffset",value:function(e){for(var t=0,n=this.getBeforeResizeItemsCount(),r=0===n?0:Math.ceil(n/this.getColumnsCountBeforeResize()),i=e<n?Math.floor(e/this.getColumnsCountBeforeResize()):r,o=0;o<i;)t+=this.getItemHeightBeforeResize(o*this.getColumnsCountBeforeResize()),t+=this.getVerticalSpacingBeforeResize(),o++;for(var a=Math.floor((e-n)/this.getColumnsCount()),s=0;s<a;){for(var l=0,u=0;u<this.getColumnsCount();){var c=this.getItemHeight(n+s*this.getColumnsCount()+u);if(void 0===c)return;l=Math.max(l,c),u++}t+=l,t+=this.getVerticalSpacing(),s++}return t}}],n&&ve(t.prototype,n),r&&ve(t,r),Object.defineProperty(t,"prototype",{writable:!1}),e}(),be="scroll",we="stopped scrolling",Ce="manual",Oe="started",Re="non-measured item heights have been measured",He="viewport width changed",xe="viewport height changed",Pe="viewport size unchanged",Te="item height changed",Ee="items changed",je="list top offset changed";function Me(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var Be=function(){function e(t){var n,r,i,o=this,a=t.isInBypassMode,s=t.getWidth,l=t.getHeight,u=t.listenForResize,c=t.onResizeStart,h=t.onResizeStop,f=t.onHeightChange,m=t.onWidthChange,d=t.onNoChange;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),i=function(){if(o.isActive){var e=o.width,t=o.height;o.width=o.getWidth(),o.height=o.getHeight(),o.width===e?o.height===t?o.onNoChange():o.onHeightChange(t,o.height):o.onWidthChange(e,o.width)}},(r="_onResize")in(n=this)?Object.defineProperty(n,r,{value:i,enumerable:!0,configurable:!0,writable:!0}):n[r]=i,this.isInBypassMode=a,this.onHeightChange=f,this.onWidthChange=m,this.onNoChange=d,this.getWidth=s,this.getHeight=l,this.listenForResize=u,this.onResize=function(e,t){var n,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=r.onStart,o=r.onStop;return function(){for(var r=this,a=arguments.length,s=new Array(a),l=0;l<a;l++)s[l]=arguments[l];return new Promise((function(a){n?fe(n):i&&i(),n=he((function(){n=void 0,o&&o(),e.apply(r,s),a()}),t)}))}}(this._onResize,Le,{onStart:c,onStop:h})}var t,n,r;return t=e,(n=[{key:"start",value:function(){this.isActive=!0,this.isInBypassMode()||(this.width=this.getWidth(),this.height=this.getHeight(),this.unlistenResize=this.listenForResize(this.onResize))}},{key:"stop",value:function(){this.isActive=!1,this.width=void 0,this.height=void 0,this.unlistenResize&&(this.unlistenResize(),this.unlistenResize=void 0)}}])&&Me(t.prototype,n),r&&Me(t,r),Object.defineProperty(t,"prototype",{writable:!1}),e}(),Le=250;function Ae(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ze(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ae(Object(n),!0).forEach((function(t){ke(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ae(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function ke(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ve(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var _e=function(){function e(t){var n=t.getState,r=t.getVerticalSpacing,i=t.getColumnsCount;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.getState=n,this.getVerticalSpacing=r,this.getColumnsCount=i}var t,n,r;return t=e,n=[{key:"initializeFromState",value:function(e){this._includesBeforeResizeInState=Boolean(e.beforeResize)}},{key:"cleanUpBeforeResizeItemHeights",value:function(){var e=this.getState(),t=e.firstShownItemIndex,n=e.lastShownItemIndex,r=e.itemHeights,i=e.beforeResize;if(i&&t<i.itemHeights.length){s('~ Clean up "before resize" item heights and correct scroll position ~');for(var o=0,a=Math.floor(i.itemHeights.length/this.getColumnsCount()),l=Math.min(a*this.getColumnsCount()-1,n),u=t;u<=l;){for(var c=0,h=0;h<this.getColumnsCount()&&u<=l;){var f=r[u];void 0===f&&(f=this.getAverageItemHeight()),c=Math.max(c,f),u++,h++}o+=c,o+=this.getVerticalSpacing()}for(var m=0,d=Math.min(i.itemHeights.length,n+1),g=Math.ceil(d/i.columnsCount),p=0===t?0:Math.floor((t-1)/i.columnsCount)+1;p<g;)m+=i.itemHeights[p*i.columnsCount],m+=i.verticalSpacing,p++;if(0===t)s('Drop all "before resize" item heights');else{var I=t,y=i.itemHeights.length-1;I===y?s("For item index",I,'— drop "before resize" height',i.itemHeights[I]):s("For item indexes from",I,"to",y,'— drop "before resize" heights',i.itemHeights.slice(I))}return i.itemHeights.splice(t,i.itemHeights.length-t),{scrollBy:o-m,beforeResize:0===t?void 0:ze({},i)}}}},{key:"snapshotBeforeResizeItemHeights",value:function(e){var t=e.firstShownItemIndex,n=e.newFirstShownItemIndex,r=this.getColumnsCount(),i=this.getVerticalSpacing();this._includesBeforeResizeInState=!0;var o=this.getState(),a=o.beforeResize,s=o.itemHeights,l=a?a.itemHeights.length:0;if(l>0){if(a.columnsCount!==r||a.verticalSpacing!==i){for(var u=0,c=Math.ceil(l/a.columnsCount),h=0;h<c;)u+=a.itemHeights[h*a.columnsCount],u+=a.verticalSpacing,h++;for(var f=0,m=t;m<n;){for(var d=0,g=0;g<r&&m<n;)d=Math.max(d,s[m]),g++,m++;f+=d,f+=i}var p=u+f,I=Math.ceil(n/r);return new Array(n).fill(Math.max(0,p/I-i))}return a.itemHeights.concat(Ne(s,n,r).slice(a.itemHeights.length))}return Ne(s,n,r)}},{key:"shouldIncludeBeforeResizeValuesInState",value:function(){return this._includesBeforeResizeInState}}],n&&Ve(t.prototype,n),r&&Ve(t,r),Object.defineProperty(t,"prototype",{writable:!1}),e}();function Ne(e,t,n){e=e.slice(0,Math.ceil(t/n)*n);for(var r=0;r*n<t;){for(var i=0,o=0;o<n;)i=Math.max(i,e[r*n+o]),o++;for(o=0;o<n;)e[r*n+o]=i,o++;r++}return e.slice(0,t)}function De(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function We(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Fe=function(){function e(t){var n=this,r=t.isInBypassMode,i=t.scrollableContainer,o=t.itemsContainer,a=t.onScroll,l=t.initialScrollPosition,u=t.onScrollPositionChange,c=t.isImmediateLayoutScheduled,h=t.hasNonRenderedItemsAtTheTop,f=t.hasNonRenderedItemsAtTheBottom,m=t.getLatestLayoutVisibleArea,d=t.getListTopOffset,g=t.getPrerenderMargin,p=t.onScrolledToTop,I=t.waitForScrollingToStop;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),We(this,"scrollByY",(function(e){n.scrollToY(n.getScrollY()+e)})),We(this,"onScrollListener",(function(){if(n.onScrollPositionChange&&n.onScrollPositionChange(n.getScrollY()),n.onScrolledToTop&&n.getScrollY()<n.getListTopOffset()&&n.onScrolledToTop(),!n.isInBypassMode()&&!n.ignoreScrollEvents){n.cancelOnStopScrollingTimer();var e=n.getLatestLayoutVisibleArea()&&(n.getScrollY()<n.getLatestLayoutVisibleArea().top-n.getPrerenderMargin()&&n.hasNonRenderedItemsAtTheTop()||n.getScrollY()+n.scrollableContainer.getHeight()>n.getLatestLayoutVisibleArea().bottom+n.getPrerenderMargin()&&n.hasNonRenderedItemsAtTheBottom());if(s(e?"The user has scrolled far enough: perform a re-layout":"The user is scrolling: perform a re-layout when they stop scrolling"),e||!1===n.waitForScrollingToStop)return n.onScroll();n.isImmediateLayoutScheduled()||(n.shouldCallOnScrollListenerWhenStopsScrolling=!0,n.watchOnStopScrolling())}})),this.isInBypassMode=r,this.scrollableContainer=i,this.itemsContainer=o,this.onScroll=a,this.initialScrollPosition=l,this.onScrollPositionChange=u,this.isImmediateLayoutScheduled=c,this.hasNonRenderedItemsAtTheTop=h,this.hasNonRenderedItemsAtTheBottom=f,this.getLatestLayoutVisibleArea=m,this.getListTopOffset=d,this.getPrerenderMargin=g,this.onScrolledToTop=p,this.waitForScrollingToStop=I}var t,n,r;return t=e,(n=[{key:"start",value:function(){void 0!==this.initialScrollPosition&&(this.scrollToY(this.initialScrollPosition),this.initialScrollPosition=void 0),this.onScrollPositionChange&&this.onScrollPositionChange(this.getScrollY()),this.stopListeningToScroll=this.scrollableContainer.onScroll(this.onScrollListener)}},{key:"stop",value:function(){this.stopListeningToScroll(),this.stopListeningToScroll=void 0,this.shouldCallOnScrollListenerWhenStopsScrolling=void 0,this.cancelOnStopScrollingTimer()}},{key:"scrollToY",value:function(e){this.ignoreScrollEvents=!0,this.scrollableContainer.scrollToY(e),this.ignoreScrollEvents=void 0}},{key:"getScrollY",value:function(){return this.scrollableContainer.getScrollY()}},{key:"cancelOnStopScrollingTimer",value:function(){this.onStopScrollingTimer&&(fe(this.onStopScrollingTimer),this.onStopScrollingTimer=void 0)}},{key:"cancelScheduledLayout",value:function(){this.cancelOnStopScrollingTimer()}},{key:"watchOnStopScrolling",value:function(){var e=this;this.onStopScrollingTimer=he((function(){e.onStopScrollingTimer=void 0,e.shouldCallOnScrollListenerWhenStopsScrolling&&(e.shouldCallOnScrollListenerWhenStopsScrolling=void 0,e.onScroll({delayed:!0}))}),Ue)}},{key:"getVisibleAreaBounds",value:function(){var e=this.getScrollY();return{top:e,bottom:e+this.scrollableContainer.getHeight()}}}])&&De(t.prototype,n),r&&De(t,r),Object.defineProperty(t,"prototype",{writable:!1}),e}(),Ue=100;function qe(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var Ye=function(){function e(t){var n=t.itemsContainer,r=t.getListTopOffset;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.itemsContainer=n,this.getListTopOffset=r}var t,n,r;return t=e,(n=[{key:"snapshotListHeightBeforeAddingNewItems",value:function(e){var t=e.previousItems,n=e.newItems,r=e.prependedItemsCount;0!==t.length&&0!==r&&(this._snapshot={previousItems:t,newItems:n,itemIndex:r,itemTopOffset:this.itemsContainer.getNthRenderedItemTopOffset(0),listTopOffset:this.getListTopOffset()})}},{key:"getAnchorItemIndex",value:function(){return this._snapshot.itemIndex}},{key:"hasSnapshot",value:function(){return void 0!==this._snapshot}},{key:"getListBottomOffsetChange",value:function(){var e=this._snapshot,t=e.itemIndex,n=e.itemTopOffset,r=e.listTopOffset;return this.itemsContainer.getNthRenderedItemTopOffset(t)-n+(this.getListTopOffset()-r)}},{key:"reset",value:function(){this._snapshot=void 0}}])&&qe(t.prototype,n),r&&qe(t,r),Object.defineProperty(t,"prototype",{writable:!1}),e}();function Ke(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var $e=function(){function e(t){var n=t.container,r=t.getItemHeight,i=t.setItemHeight;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.container=n,this._get=r,this._set=i,this.reset()}var t,n,r;return t=e,n=[{key:"reset",value:function(){this.measuredItemsHeight=0,this.firstMeasuredItemIndex=void 0,this.lastMeasuredItemIndex=void 0}},{key:"readItemHeightsFromState",value:function(e){for(var t=e.itemHeights,n=0;n<t.length;){if(void 0===t[n]){if(void 0!==this.firstMeasuredItemIndex){this.lastMeasuredItemIndex=n-1;break}}else void 0===this.firstMeasuredItemIndex&&(this.firstMeasuredItemIndex=n),this.measuredItemsHeight+=t[n];n++}}},{key:"_measureItemHeight",value:function(e,t){return this.container.getNthRenderedItemHeight(e-t)}},{key:"measureItemHeights",value:function(e,t){if(s("~ Measure item heights ~"),void 0!==e){void 0!==this.firstMeasuredItemIndex&&(e>this.lastMeasuredItemIndex+1||t<this.firstMeasuredItemIndex-1)&&(s("Non-measured items gap detected. Reset first and last measured item indexes."),this.reset());for(var n=[],r=this.firstMeasuredItemIndex,i=this.lastMeasuredItemIndex,o=!1,a=e;a<=t;){if(void 0===this._get(a)){n.push(a);var u=this._measureItemHeight(a,e);s("Item index",a,"height",u),this._set(a,u),(void 0===r||a<r)&&(this.measuredItemsHeight+=u,o||(this.firstMeasuredItemIndex=a,o=!0)),(void 0===i||a>i)&&(void 0!==i&&(this.measuredItemsHeight+=u),this.lastMeasuredItemIndex=a)}else{var c=this._get(a),h=this._measureItemHeight(a,e);c!==h&&(l("Item index",a,"height changed unexpectedly: it was",c,"before, but now it is",h,'. Whenever an item\'s height changes for whatever reason, a developer must call `onItemHeightDidChange(item)` right after that change. If you are calling `onItemHeightDidChange(item)` correctly, then there\'re several other possible causes. For example, perhaps you forgot to persist the item\'s "state" by calling `setItemState(item, newState)` when that "state" did change, and so the item\'s "state" got lost when the item element was unmounted, which resulted in a different item height when the item was shown again with no previous "state". Or perhaps you\'re running your application in "devleopment" mode and `VirtualScroller` has initially rendered the list before your CSS styles or custom fonts have loaded, resulting in different item height measurements "before" and "after" the page has fully loaded.'),this._set(a,h))}a++}return n}}},{key:"remeasureItemHeight",value:function(e,t){var n=this._get(e),r=this._measureItemHeight(e,t);return this._set(e,r),this.measuredItemsHeight+=r-n,r}},{key:"getAverageItemHeight",value:function(){if(void 0!==this.lastMeasuredItemIndex)return this.measuredItemsHeight/(this.lastMeasuredItemIndex-this.firstMeasuredItemIndex+1)}},{key:"onPrepend",value:function(e){void 0!==this.firstMeasuredItemIndex&&(this.firstMeasuredItemIndex+=e,this.lastMeasuredItemIndex+=e)}}],n&&Ke(t.prototype,n),r&&Ke(t,r),Object.defineProperty(t,"prototype",{writable:!1}),e}();function Ge(e,t){for(var n=0;n<e.length;)e[n]=t(n),n++;return e}function Je(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Xe(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Je(Object(n),!0).forEach((function(t){Qe(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Je(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Qe(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ze(e){var t=this,n=e.state,r=e.getInitialItemState,i=e.onStateChange,o=e.render,a=e.items;function u(){return this.state}function f(e){this.state=e}function m(e,t){this.state=e,o(this.state,this.previousState),this.onRender()}function d(e){var t=e.getInitialItemState,n=a,r=Xe(Xe({},p.call(this,n,{beforeStart:!0})),{},{items:n,itemStates:Ge(new Array(n.length),(function(e){return t(n[e])}))});return h()&&s("Initial state (autogenerated)",I(r)),s("First shown item index",r.firstShownItemIndex),s("Last shown item index",r.lastShownItemIndex),r}function g(e){return h()&&s("Restore state",I(e)),function(e,t){var n=t.columnsCount,r=e.columnsCount||1;if(r!==n)return l("~ Columns Count changed from",r,"to",n,"~"),!0;if(Math.floor(e.firstShownItemIndex/n)*n!==e.firstShownItemIndex)return l("~ First Shown Item Index",e.firstShownItemIndex,"is not divisible by Columns Count",n,"~"),!0}(e=Xe(Xe({},e=function(e){return e.beforeResize&&0===e.beforeResize.itemHeights.length&&(e.beforeResize=void 0),e}(e)),{},{verticalSpacing:void 0}),{columnsCount:this.getActualColumnsCount()})&&(l("Reset Layout"),e=Xe(Xe({},e),p.call(this,e.items,{beforeStart:!1}))),e}function p(e,t){var n=t.beforeStart,r=e.length,i=this.layout.getInitialLayoutValues({itemsCount:r,columnsCount:this.getActualColumnsCount(),beforeStart:n}),o=i.firstShownItemIndex,a=i.lastShownItemIndex,s=i.beforeItemsHeight,l=i.afterItemsHeight,u=new Array(r);return this.onBeforeShowItems(e,u,o,a),{itemHeights:u,columnsCount:this.getActualColumnsCountForState(),verticalSpacing:this.verticalSpacing,firstShownItemIndex:o,lastShownItemIndex:a,beforeItemsHeight:s,afterItemsHeight:l}}this.onStateChange=i,this._render=o,this.getInitialItemState=r,this._setItemState=function(e,n){var r=t._getItemIndexByItemOrIndex(e);void 0!==r&&(h()&&(s("~ Item state changed ~"),s("Item index",r),s("Previous state\n"+JSON.stringify(t.getState().itemStates[r],null,2)),s("New state\n"+JSON.stringify(n,null,2))),t.getState().itemStates[r]=n,t.newItemsWillBeRendered&&(t.itemStatesThatChangedWhileNewItemsWereBeingRendered||(t.itemStatesThatChangedWhileNewItemsWereBeingRendered={}),t.itemStatesThatChangedWhileNewItemsWereBeingRendered[String(r)]=n))},this.getState=function(){return t._getState()},this.updateState=function(e){h()&&(s("~ Set state ~"),s(I(e))),e.items&&(t._isSettingNewItems||c("A `stateUpdate` can only contain `items` property as a result of calling `.setItems()`")),t._isSettingNewItems=void 0,t.waitingForRender=!0,t.previousState=t.getState(),t.mostRecentSetStateValue||(t.mostRecentSetStateValue=t.getState()),t.mostRecentSetStateValue=Xe(Xe({},t.mostRecentSetStateValue),e),t._setState(t.mostRecentSetStateValue,e)},this.getInitialState=function(){return n?g.call(t,n):d.call(t,{getInitialItemState:r})},this.useState=function(e){var n=e.getState,r=e.setState,i=e.updateState;if(t._isActive)throw new Error("[virtual-scroller] `VirtualScroller` has already been started");if(t._getState)throw new Error("[virtual-scroller] Custom state storage has already been configured");if(o)throw new Error("[virtual-scroller] Creating a `VirtualScroller` class instance with a `render()` parameter implies using the default (internal) state storage");if(r&&i)throw new Error("[virtual-scroller] When using a custom state storage, one must supply either `setState()` or `updateState()` function but not both");if(!n||!r&&!i)throw new Error("[virtual-scroller] When using a custom state storage, one must supply both `getState()` and `setState()`/`updateState()` functions");t._usesCustomStateStorage=!0,t._getState=n,t._setState=function(e,t){r?r(e):i(t)}},this.useDefaultStateStorage=function(){if(!o)throw new Error("[virtual-scroller] When using the default (internal) state management, one must supply a `render(state, prevState)` function parameter");t._getState=u.bind(t),t._setState=m.bind(t),f.bind(t)(t.getInitialState())},this.setUpState=function(){t._usesCustomStateStorage||t.useDefaultStateStorage()}}var et=.9;function tt(e){var t=this,n=e.getEstimatedInterItemVerticalSpacing;function r(){var e=this.getState(),t=e.firstShownItemIndex,n=e.lastShownItemIndex;s("~ Measure item vertical spacing ~");var r=function(e){var t=e.itemsContainer,n=e.renderedItemsCount;if(n>1)for(var r=t.getNthRenderedItemTopOffset(0),i=t.getNthRenderedItemHeight(0),o=1;o<n;){var a=t.getNthRenderedItemTopOffset(o),s=t.getNthRenderedItemHeight(o);if(a+et>=r+i){var l=a-(r+i);return Math.max(0,l)}i=Math.max(i,s),o++}}({itemsContainer:this.itemsContainer,renderedItemsCount:n-t+1});if(void 0!==r)return s("Item vertical spacing",r),r;s("Not enough items rendered to measure vertical spacing")}this.getVerticalSpacing=function(){var e=t.verticalSpacing;return"number"==typeof e?e:t.getEstimatedInterItemVerticalSpacing()},this.getVerticalSpacingBeforeResize=function(){var e=t.getState().beforeResize;if(e){var n=e.verticalSpacing;return"number"==typeof n?n:t.getEstimatedInterItemVerticalSpacing()}},this.getEstimatedInterItemVerticalSpacing=function(){if(n){var e=n();if("number"==typeof e)return e;throw new Error("[virtual-scroller] `getEstimatedInterItemVerticalSpacing()` must return a number")}return 0},this.measureVerticalSpacingIfNotMeasured=function(){if(void 0===t.verticalSpacing)return t.verticalSpacing=r.call(t),t.verticalSpacing}}function nt(e){var t=this,n=e.getColumnsCount;if(n){var r={getWidth:function(){return t.scrollableContainer.getWidth()}};this.getActualColumnsCountForState=function(){var e=n(r);if(1!==e)return e}}else this.getActualColumnsCountForState=function(){};this.getActualColumnsCount=function(){return t.getActualColumnsCountForState()||1},this.getColumnsCount=function(){return t.getState()&&t.getState().columnsCount||1}}function rt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function it(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?rt(Object(n),!0).forEach((function(t){ot(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):rt(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function ot(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function at(){var e=this;function t(e){var n=e.stateUpdate,o=Date.now(),a=r.call(this),u=a.firstShownItemIndex,c=a.lastShownItemIndex,f=a.shownItemsHeight,m=a.firstNonMeasuredItemIndex;if(this.listHeightMeasurement.hasSnapshot()&&(c<this.listHeightMeasurement.getAnchorItemIndex()&&(c=this.listHeightMeasurement.getAnchorItemIndex()),m=void 0),!i.call(this,u,c))return s("~ Because some of the will-be-hidden item heights (listed above) have changed since they've last been measured, redo layout. ~"),t.call(this,{stateUpdate:n});var d=this.layout.getBeforeItemsHeight(u),g=this.layout.getAfterItemsHeight(c,this.getItemsCount()),p=Date.now()-o;s("~ Calculated Layout"+(this.isInBypassMode()?" (bypass)":"")+" ~"),p<st||l("Layout calculated in",p,"ms"),this.getColumnsCount()&&s("Columns count",this.getColumnsCount()),s("First shown item index",u),s("Last shown item index",c),s("Before items height",d),s("After items height (actual or estimated)",g),s("Average item height (used for estimated after items height calculation)",this.getAverageItemHeight()),h()&&(s("Item heights",this.getState().itemHeights.slice()),s("Item states",this.getState().itemStates.slice())),this.onBeforeShowItems(this.getState().items,this.getState().itemHeights,u,c),this.firstNonMeasuredItemIndex=m,this.previouslyCalculatedLayout=void 0===f?void 0:{firstShownItemIndex:u,lastShownItemIndex:c,beforeItemsHeight:d,shownItemsHeight:f},this.updateState(it({firstShownItemIndex:u,lastShownItemIndex:c,beforeItemsHeight:d,afterItemsHeight:g},n))}function n(){var e=this.scroll.getVisibleAreaBounds();this.latestLayoutVisibleArea=e;var t=this.getListTopOffsetInsideScrollableContainer();return{top:e.top-t,bottom:e.bottom-t}}function r(){var e=this.getItemsCount(),t=n.call(this);return this.isInBypassMode()?{firstShownItemIndex:0,lastShownItemIndex:e-1}:t.top<this.itemsContainer.getHeight()+this.layout.getPrerenderMargin()&&t.bottom>0-this.layout.getPrerenderMargin()?this.layout.getShownItemIndexes({itemsCount:this.getItemsCount(),visibleAreaInsideTheList:t}):(s("The entire list is off-screen. No items are visible."),this.layout.getNonVisibleListShownItemIndexes())}function i(e,t){for(var n=!0,r=this.getState().firstShownItemIndex;r<=this.getState().lastShownItemIndex;){if(r>=e&&r<=t);else{var i=this.getState().itemHeights[r],u=o.call(this,r);u!==i&&(n&&(s("~ Validate will-be-hidden item heights. ~"),a.call(this,r,i,u)),n=!1,l("Item index",r,"is no longer visible and will be unmounted. Its height has changed from",i,"to",u,"since it was last measured. This is not necessarily a bug, and could happen, for example, on screen width change, or when there're several `onItemHeightDidChange(item)` calls issued at the same time, and the first one triggers a re-layout before the rest of them have had a chance to be executed."))}r++}return n}function o(e){var t=this.getState().firstShownItemIndex;return this.itemHeights.remeasureItemHeight(e,t)}function a(e,t,n){var r=this.previouslyCalculatedLayout;if(r){var i=n-t;e<r.firstShownItemIndex?r.beforeItemsHeight+=i:e>r.lastShownItemIndex?void 0!==r.afterItemsHeight&&(r.afterItemsHeight+=i):r.shownItemsHeight+=n-t}}this.onUpdateShownItemIndexes=function(n){var r=n.reason,i=n.stateUpdate,o=function(){i&&e.updateState(i)};return e.newItemsWillBeRendered||e.widthHasChanged||e._isResizing||0===e.getItemsCount()?o():(e.scroll.cancelScheduledLayout(),i=e.cancelLayoutTimer({stateUpdate:i}),s("~ Update Layout (on ".concat(r,") ~")),void t.call(e,{stateUpdate:i}))},this.getListTopOffsetInsideScrollableContainer=function(){var t=e.scrollableContainer.getItemsContainerTopOffset();return e.listTopOffsetWatcher&&e.listTopOffsetWatcher.onListTopOffset(t),t},this._onItemHeightDidChange=function(t){var n=e._getItemIndexByItemOrIndex(t);if(void 0!==n){var r=e.getState(),i=r.itemHeights,u=r.firstShownItemIndex,h=r.lastShownItemIndex;if(s("~ On Item Height Did Change was called ~"),s("Item index",n),!(n>=u&&n<=h))return l("The item is no longer rendered. This is not necessarily a bug, and could happen, for example, when when a developer calls `onItemHeightDidChange(item)` while looping through a batch of items.");var f=i[n];if(void 0!==f){var m;s("~ Re-measure item height ~");try{m=o.call(e,n)}catch(e){if(e instanceof M)return c('"onItemHeightDidChange()" has been called for item index '.concat(n," but the item is not currently rendered and can't be measured. The exact error was: ").concat(e.message))}s("Previous height",f),s("New height",m),f!==m&&(s("~ Item height has changed. Should update layout. ~"),a.call(e,n,f,m),e._isActive&&(e.waitingForRender?(s("~ Another state update is already waiting to be rendered. Delay the layout update until then. ~"),e.updateLayoutAfterRenderBecauseItemHeightChanged=!0):e.onUpdateShownItemIndexes({reason:Te})),e.newItemsWillBeRendered&&(e.itemHeightsThatChangedWhileNewItemsWereBeingRendered||(e.itemHeightsThatChangedWhileNewItemsWereBeingRendered={}),e.itemHeightsThatChangedWhileNewItemsWereBeingRendered[String(n)]=m))}}},this.getPrerenderMargin=function(){return e.scrollableContainer.getHeight()*e.getPrerenderMarginRatio()},this.getPrerenderMarginRatio=function(){return 1},this.onBeforeShowItems=function(t,n,r,i){if(e.onItemInitialRender)for(var o=r;o<=i;)void 0===n[o]&&e.onItemInitialRender(t[o]),o++},this.measureItemHeightsAndSpacing=function(){e.itemHeights.measureItemHeights(e.getState().firstShownItemIndex,e.getState().lastShownItemIndex);var t=e.measureVerticalSpacingIfNotMeasured();if(t&&0!==t)return{verticalSpacing:t}},this.cancelLayoutTimer=function(t){var n=t.stateUpdate;return e.layoutTimer?(fe(e.layoutTimer),e.layoutTimer=void 0,n||e.layoutTimerStateUpdate?(n=it(it({},e.layoutTimerStateUpdate),n),e.layoutTimerStateUpdate=void 0,n):void 0):n},this.scheduleLayoutTimer=function(t){var n=t.reason,r=t.stateUpdate;e.layoutTimerStateUpdate=r,e.layoutTimer=he((function(){e.layoutTimerStateUpdate=void 0,e.layoutTimer=void 0,e.onUpdateShownItemIndexes({reason:n,stateUpdate:r})}),0)}}var st=15;function lt(e){return lt="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},lt(e)}var ut=Object.prototype.hasOwnProperty;function ct(e,t){return e===t?0!==e||0!==t||1/e==1/t:e!=e&&t!=t}function ht(e,t){if(ct(e,t))return!0;if("object"!==lt(e)||null===e||"object"!==lt(t)||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(var i=0;i<n.length;i++)if(!ut.call(t,n[i])||!ct(e[n[i]],t[n[i]]))return!1;return!0}function ft(e){return(e%1==0?e:e.toFixed(2))+"px"}function mt(){return!("undefined"!=typeof window&&Boolean(window.document.documentMode))}var dt="VirtualScroller",gt="VirtualScrollerStyle";function pt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function It(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?pt(Object(n),!0).forEach((function(t){yt(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):pt(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function yt(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function vt(){var e=this;function t(e,t){if(e){var n=e.prependedItemsCount;e.appendedItemsCount;var r=this.getState(),i=r.itemHeights,o=r.itemStates;if(this.itemHeightsThatChangedWhileNewItemsWereBeingRendered)for(var a=0,u=Object.keys(this.itemHeightsThatChangedWhileNewItemsWereBeingRendered);a<u.length;a++){var c=u[a];i[n+Number(c)]=this.itemHeightsThatChangedWhileNewItemsWereBeingRendered[c]}if(this.itemStatesThatChangedWhileNewItemsWereBeingRendered)for(var h=0,f=Object.keys(this.itemStatesThatChangedWhileNewItemsWereBeingRendered);h<f.length;h++){var m=f[h];o[n+Number(m)]=this.itemStatesThatChangedWhileNewItemsWereBeingRendered[m]}if(0===n)return this.previouslyCalculatedLayout&&(this.previouslyCalculatedLayout.firstShownItemIndex===t.firstShownItemIndex&&this.previouslyCalculatedLayout.lastShownItemIndex===t.lastShownItemIndex||(l('Unexpected (non-matching) "firstShownItemIndex" or "lastShownItemIndex" encountered in "onRender()" after appending items'),l("Previously calculated layout",this.previouslyCalculatedLayout),l("New layout",t),this.previouslyCalculatedLayout=void 0)),"SEAMLESS_APPEND";if(this.listHeightMeasurement.hasSnapshot()){if(0===t.firstShownItemIndex){s("~ Restore Scroll Position ~");var d=this.listHeightMeasurement.getListBottomOffsetChange({beforeItemsHeight:t.beforeItemsHeight});return this.listHeightMeasurement.reset(),d?(s("Scroll down by",d),this.scroll.scrollByY(d)):s("Scroll position hasn't changed"),this.previouslyCalculatedLayout&&(0===this.previouslyCalculatedLayout.firstShownItemIndex&&this.previouslyCalculatedLayout.lastShownItemIndex===t.lastShownItemIndex-n?this.previouslyCalculatedLayout={beforeItemsHeight:0,shownItemsHeight:this.previouslyCalculatedLayout.shownItemsHeight+d,firstShownItemIndex:0,lastShownItemIndex:t.lastShownItemIndex}:(l('Unexpected (non-matching) "firstShownItemIndex" or "lastShownItemIndex" encountered in "onRender()" after prepending items'),l("Previously calculated layout",this.previouslyCalculatedLayout),l("New layout",t),this.previouslyCalculatedLayout=void 0)),"SEAMLESS_PREPEND"}l('Unexpected "firstShownItemIndex" '.concat(t.firstShownItemIndex,' encountered in "onRender()" after prepending items. Expected 0.'))}}this.previouslyCalculatedLayout=void 0}function n(e){var t=e.reason,n=e.stateUpdate;this._useTimeoutInRenderLoop?(n=this.cancelLayoutTimer({stateUpdate:n}),this.scheduleLayoutTimer({reason:t,stateUpdate:n})):this.onUpdateShownItemIndexes({reason:t,stateUpdate:n})}function r(){var e=Boolean(this.widthHasChanged);this.widthHasChanged=void 0;var t=void 0!==this.firstNonMeasuredItemIndex;t&&s("Non-measured item index",this.firstNonMeasuredItemIndex),this.firstNonMeasuredItemIndex=void 0,this.newItemsWillBeRendered=void 0,this.itemHeightsThatChangedWhileNewItemsWereBeingRendered=void 0,this.itemStatesThatChangedWhileNewItemsWereBeingRendered=void 0;var n=this.updateLayoutAfterRenderBecauseItemHeightChanged;return this.updateLayoutAfterRenderBecauseItemHeightChanged=void 0,{nonMeasuredItemsHaveBeenRendered:t,itemHeightHasChanged:n,widthHasChanged:e}}this._onRender=function(i,o){var a,u,f;e.waitingForRender=!1,s("~ Rendered ~"),h()&&s("State",I(i)),e.onStateChange&&(ht(i,o)||e.onStateChange(i)),e.isItemsContainerElementTableBody()&&(a=e.getItemsContainerElement(),u=i.beforeItemsHeight,f=i.afterItemsHeight,a.style.setProperty("--VirtualScroller-paddingTop",ft(u)),a.style.setProperty("--VirtualScroller-paddingBottom",ft(f))),e.mostRecentSetStateValue&&(ht(i,e.mostRecentSetStateValue)||(l("The most recent state that was set",I(e.mostRecentSetStateValue)),c("`VirtualScroller` has been rendered with a `state` that is not equal to the most recently set one")));var m,d=r.call(e),g=d.nonMeasuredItemsHaveBeenRendered,p=d.itemHeightHasChanged,y=d.widthHasChanged;if(p&&(m=Te),o||m){if(g&&(m=Re),y&&(m=He,e.itemHeights.reset(),e.verticalSpacing=void 0),o){var v=o.items,S=i.items;if(S!==v){var b=e.getItemsDiff(v,S);if(b){var w=b.prependedItemsCount;e.itemHeights.onPrepend(w)}else e.itemHeights.reset();y||"SEAMLESS_PREPEND"!==t.call(e,b,i)&&(m=Ee)}}var C;if(o&&(i.firstShownItemIndex!==o.firstShownItemIndex||i.lastShownItemIndex!==o.lastShownItemIndex||i.items!==o.items)||y){var O=e.measureItemHeightsAndSpacing();O&&(C=It(It({},C),O))}var R=e.beforeResize.cleanUpBeforeResizeItemHeights();if(void 0!==R){var H=R.scrollBy,x=R.beforeResize;s("Correct scroll position by",H),e.scroll.scrollByY(H),C=It(It({},C),{},{beforeResize:x})}e._isActive?m?n.call(e,{stateUpdate:C,reason:m}):C?e.updateState(C):s("~ Finished Layout ~"):e._afterRenderStateUpdateThatWasStopped=C}}}function St(){var e=this;this.onContainerResize=function(){e.previouslyCalculatedLayout=void 0,e.listHeightMeasurement.reset();var t=e.newItemsWillBeRendered?e.newItemsWillBeRendered.count:e.getState().itemHeights.length,n=e.newItemsWillBeRendered?e.newItemsWillBeRendered.layout:e.getState(),r={scrollableContainerWidth:e.scrollableContainer.getWidth(),firstShownItemIndex:n.firstShownItemIndex,lastShownItemIndex:n.lastShownItemIndex,beforeItemsHeight:n.beforeItemsHeight,afterItemsHeight:n.afterItemsHeight,itemHeights:new Array(t),columnsCount:e.getActualColumnsCountForState(),verticalSpacing:void 0},i=n.firstShownItemIndex,o=n.lastShownItemIndex,a=e.getActualColumnsCount(),l=Math.floor(i/a)*a,u=Math.min(Math.ceil((o+1)/a)*a,t)-1;l!==i&&(s("Columns Count changed from",e.getState().columnsCount||1,"to",a),s("First Shown Item Index needs to change from",i,"to",l)),r.firstShownItemIndex=l,r.lastShownItemIndex=u;var c=e.getVerticalSpacing(),h=e.getColumnsCount();e.shouldDiscardBeforeResizeItemHeights()||0===l?e.beforeResize.shouldIncludeBeforeResizeValuesInState()&&(r.beforeResize=void 0):r.beforeResize={verticalSpacing:c,columnsCount:h,itemHeights:e.beforeResize.snapshotBeforeResizeItemHeights({firstShownItemIndex:i,newFirstShownItemIndex:l})},e.widthHasChanged={stateUpdate:r},e.updateState(r)},this.shouldDiscardBeforeResizeItemHeights=function(){if(e.newItemsWillBeRendered){var t=e.newItemsWillBeRendered,n=t.prepend,r=t.replace;return n||r}}}function bt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function wt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?bt(Object(n),!0).forEach((function(t){Ct(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):bt(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Ct(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ot(){var e=this;this.getItemsCount=function(){return e.getState().items.length},this._getItemIndexByItemOrIndex=function(t){var n=t,r=e.getState().items,i=r.indexOf(n);if(i>=0)return i;if("number"==typeof t){var o=t;if(o>=0&&o<r.length)return o}c("Item not found: ".concat(JSON.stringify(n)))},this._setItems=function(t){var n,r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=e.getState(),a=o.items,l=e.getState(),u=l.itemStates,c=e.widthHasChanged?e.widthHasChanged.stateUpdate:e.getState(),h=c.itemHeights;s("~ Update items ~");var f=e.getItemsDiff(a,t);if(f){var m,d=e.widthHasChanged?e.widthHasChanged.stateUpdate:e.getState(),g=d.firstShownItemIndex,p=d.lastShownItemIndex,I=d.beforeItemsHeight,y=d.afterItemsHeight,v=0===g&&(i.preserveScrollPositionOnPrependItems||i.preserveScrollPosition),S=f.prependedItemsCount,b=f.appendedItemsCount;n=e.layout.getLayoutUpdateForItemsDiff({firstShownItemIndex:g,lastShownItemIndex:p,beforeItemsHeight:I,afterItemsHeight:y},{prependedItemsCount:S,appendedItemsCount:b},{itemsCount:t.length,columnsCount:e.getActualColumnsCount(),shouldRestoreScrollPosition:v,onResetGridLayout:function(){return m=!0}}),S>0&&(s("Prepend",S,"items"),h=new Array(S).concat(h),u=Ge(new Array(S),(function(n){return e.getInitialItemState(t[n])})).concat(u),v?(s("Will restore scroll position"),e.listHeightMeasurement.snapshotListHeightBeforeAddingNewItems({previousItems:a,newItems:t,prependedItemsCount:S}),void 0!==e.firstNonMeasuredItemIndex&&(e.firstNonMeasuredItemIndex+=S)):(s("Reset layout"),m?(s("Reason: Prepended items count",S,"is not divisible by Columns Count",e.getActualColumnsCount()),h=new Array(t.length)):s("Reason: Prepended items' heights are unknown"),n=e.layout.getInitialLayoutValues({itemsCount:t.length,columnsCount:e.getActualColumnsCount()}),e.firstNonMeasuredItemIndex=void 0)),b>0&&(s("Append",b,"items"),h=h.concat(new Array(b)),u=u.concat(Ge(new Array(b),(function(n){return e.getInitialItemState(t[S+a.length+n])})))),r={prepend:S>0,append:b>0}}else s("Items have changed, and",f?"a re-layout from scratch has been requested.":"it's not a simple append and/or prepend.","Rerender the entire list from scratch."),s("Previous items",a),s("New items",t),h=new Array(t.length),u=Ge(new Array(t.length),(function(n){return e.getInitialItemState(t[n])})),n=e.layout.getInitialLayoutValues({itemsCount:t.length,columnsCount:e.getActualColumnsCount()}),e.firstNonMeasuredItemIndex=void 0,e.listHeightMeasurement.reset(),r={replace:!0};s("~ Update state ~"),s("First shown item index",n.firstShownItemIndex),s("Last shown item index",n.lastShownItemIndex),s("Before items height",n.beforeItemsHeight),s("After items height (actual or estimated)",n.afterItemsHeight),e.onBeforeShowItems(t,h,n.firstShownItemIndex,n.lastShownItemIndex),e.newItemsWillBeRendered=wt(wt({},r),{},{count:t.length,layout:n});var w=wt(wt({},n),{},{items:t,itemStates:u,itemHeights:h});e.beforeResize.shouldIncludeBeforeResizeValuesInState()&&(e.shouldDiscardBeforeResizeItemHeights()?w.beforeResize=void 0:w.beforeResize=e.widthHasChanged?e.widthHasChanged.stateUpdate.beforeResize:e.getState().beforeResize),e._isSettingNewItems=!0,e.updateState(w)},this.getItemsDiff=function(t,n){return function(e,t,n){var r=-1,i=-1;if(e.length>0&&(r=function(e,t,n){for(var r=0;r<e.length;){if(n(e[r],t))return r;r++}return-1}(t,e[0],n),r>=0&&function(e,t,n,r){for(var i=0;i<e.length;){if(t.length<=n+i||!r(t[n+i],e[i]))return!1;i++}return!0}(e,t,r,n)&&(i=r+e.length-1)),r>=0&&i>=0)return{prependedItemsCount:r,appendedItemsCount:t.length-(i+1)}}(t,n,e.isItemEqual)}}function Rt(e,t){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=r.bypass,o=r.render,a=r.state,u=r.getInitialItemState,c=void 0===u?function(){}:u,h=r.onStateChange,f=r.initialScrollPosition,m=r.onScrollPositionChange,d=r.scrollableContainer,g=r.measureItemsBatchSize,p=void 0===g?50:g,I=r.getColumnsCount,y=r.getItemId,v=r.estimatedItemHeight,S=r.getEstimatedVisibleItemRowsCount,b=r.getEstimatedInterItemVerticalSpacing,w=r.onItemInitialRender,C=r.onItemFirstRender,O=r._useTimeoutInRenderLoop,R=r._waitForScrollingToStop,H=r.engine,x=r.getEstimatedItemHeight,P=r.getScrollableContainer;if(s("~ Initialize ~"),this.engine=H||ge,x||"number"!=typeof v||(x=function(){return v}),!P&&d&&(P=function(){return d}),this.getItemsContainerElement=e,r.getState||r.setState)throw new Error("[virtual-scroller] `getState`/`setState` options usage has changed in the new version. See the readme for more details.");i&&s('~ "bypass" mode ~'),this._bypass=i,this._useTimeoutInRenderLoop=O,this.isItemEqual=y?function(e,t){return y(e)===y(t)}:function(e,t){return e===t},w?this.onItemInitialRender=w:C&&(this.onItemInitialRender=function(e){l("`onItemFirstRender(i)` is deprecated, use `onItemInitialRender(item)` instead.");var t=n.getState().items.indexOf(e);t>=0&&C(t)}),a&&(t=a.items),s("Items count",t.length),x&&s("Estimated item height",x()),Ze.call(this,{state:a,getInitialItemState:c,onStateChange:h,render:o,items:t}),tt.call(this,{getEstimatedInterItemVerticalSpacing:b}),nt.call(this,{getColumnsCount:I}),at.call(this),vt.call(this),St.call(this),Ot.call(this),Ht.call(this,{getScrollableContainer:P,getEstimatedItemHeight:x,getEstimatedVisibleItemRowsCount:S,measureItemsBatchSize:p,initialScrollPosition:f,onScrollPositionChange:m,waitForScrollingToStop:R}),a&&(this.itemHeights.readItemHeightsFromState(a),this.beforeResize.initializeFromState(a))}function Ht(e){var t=this,n=e.getScrollableContainer,r=e.getEstimatedItemHeight,i=e.getEstimatedVisibleItemRowsCount,o=e.measureItemsBatchSize,a=e.initialScrollPosition,l=e.onScrollPositionChange,u=e.waitForScrollingToStop;this.itemsContainer=this.engine.createItemsContainer(this.getItemsContainerElement),this.getItemsContainerElement()&&this.itemsContainer.clear(),this.isItemsContainerElementTableBody=function(){return t.engine===ge&&"TBODY"===t.getItemsContainerElement().tagName},this.isInBypassMode=function(){return t._bypass},this.scrollableContainer=this.engine.createScrollableContainer(n,this.getItemsContainerElement),this.itemHeights=new $e({container:this.itemsContainer,getItemHeight:function(e){return t.getState().itemHeights[e]},setItemHeight:function(e,n){return t.getState().itemHeights[e]=n}}),this.getAverageItemHeight=function(){var e=t.itemHeights.getAverageItemHeight();return"number"==typeof e?e:t.getEstimatedItemHeight()},this.getEstimatedItemHeight=function(){if(r){var e=r();if("number"==typeof e)return e;throw new Error("[virtual-scroller] `getEstimatedItemHeight()` must return a number")}return 0},this.layout=new Se({isInBypassMode:this.isInBypassMode,getEstimatedVisibleItemRowsCountForInitialRender:i,measureItemsBatchSize:o,getPrerenderMargin:function(){return t.getPrerenderMargin()},getPrerenderMarginRatio:function(){return t.getPrerenderMarginRatio()},getVerticalSpacing:function(){return t.getVerticalSpacing()},getVerticalSpacingBeforeResize:function(){return t.getVerticalSpacingBeforeResize()},getColumnsCount:function(){return t.getColumnsCount()},getColumnsCountBeforeResize:function(){return t.getState().beforeResize&&t.getState().beforeResize.columnsCount},getItemHeight:function(e){return t.getState().itemHeights[e]},getItemHeightBeforeResize:function(e){return t.getState().beforeResize&&t.getState().beforeResize.itemHeights[e]},getBeforeResizeItemsCount:function(){return t.getState().beforeResize?t.getState().beforeResize.itemHeights.length:0},getAverageItemHeight:function(){return t.getAverageItemHeight()},getMaxVisibleAreaHeight:function(){return t.scrollableContainer&&t.scrollableContainer.getHeight()},getPreviouslyCalculatedLayout:function(){return t.previouslyCalculatedLayout}}),this.scrollableContainerResizeHandler=new Be({isInBypassMode:this.isInBypassMode,getWidth:function(){return t.scrollableContainer.getWidth()},getHeight:function(){return t.scrollableContainer.getHeight()},listenForResize:function(e){return t.scrollableContainer.onResize(e)},onResizeStart:function(){s("~ Scrollable container resize started ~"),t._isResizing=!0},onResizeStop:function(){s("~ Scrollable container resize finished ~"),t._isResizing=void 0},onNoChange:function(){t.onUpdateShownItemIndexes({reason:Pe})},onHeightChange:function(){return t.onUpdateShownItemIndexes({reason:xe})},onWidthChange:function(e,n){s("~ Scrollable container width changed from",e,"to",n,"~"),t.onContainerResize()}}),this.scroll=new Fe({isInBypassMode:this.isInBypassMode,scrollableContainer:this.scrollableContainer,itemsContainer:this.itemsContainer,waitForScrollingToStop:u,onScroll:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.delayed;t.onUpdateShownItemIndexes({reason:n?we:be})},initialScrollPosition:a,onScrollPositionChange:l,isImmediateLayoutScheduled:function(){return Boolean(t.layoutTimer)},hasNonRenderedItemsAtTheTop:function(){return t.getState().firstShownItemIndex>0},hasNonRenderedItemsAtTheBottom:function(){return t.getState().lastShownItemIndex<t.getItemsCount()-1},getLatestLayoutVisibleArea:function(){return t.latestLayoutVisibleArea},getListTopOffset:this.getListTopOffsetInsideScrollableContainer,getPrerenderMargin:function(){return t.getPrerenderMargin()}}),this.listHeightMeasurement=new Ye({itemsContainer:this.itemsContainer,getListTopOffset:this.getListTopOffsetInsideScrollableContainer}),this.engine.watchListTopOffset&&(this.listTopOffsetWatcher=this.engine.watchListTopOffset({getListTopOffset:this.getListTopOffsetInsideScrollableContainer,onListTopOffsetChange:function(e){return e.reason,t.onUpdateShownItemIndexes({reason:je})}})),this.beforeResize=new _e({getState:this.getState,getVerticalSpacing:this.getVerticalSpacing,getColumnsCount:this.getColumnsCount})}function xt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Pt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?xt(Object(n),!0).forEach((function(t){jt(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):xt(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function Tt(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Et(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function jt(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Mt=function(){function e(t,n){var r=this,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};Tt(this,e),jt(this,"stop",(function(){if(!r._isActive)throw new Error("[virtual-scroller] Can't stop a `VirtualScroller` that hasn't been started");r._isActive=!1,s("~ Stop ~"),r.scrollableContainerResizeHandler.stop(),r.scroll.stop(),r.listTopOffsetWatcher&&r.listTopOffsetWatcher.isStarted()&&r.listTopOffsetWatcher.stop(),r.cancelLayoutTimer({})})),jt(this,"updateLayout",(function(){r.hasToBeStarted(),r.onUpdateShownItemIndexes({reason:Ce})})),jt(this,"onRender",(function(){r._onRender(r.getState(),r.previousState)})),Rt.call(this,t,n,i)}var t,n,r;return t=e,n=[{key:"start",value:function(){if(this._isActive)throw new Error("[virtual-scroller] `VirtualScroller` has already been started");var e=!1===this._isActive;e||(this.setUpState(),this.waitingForRender=!0,this._render&&this._render(this.getState())),s(e?"~ Start (restart) ~":"~ Start ~"),this._isActive=!0,this.listHeightMeasurement.reset(),this._isResizing=void 0,this._isSettingNewItems=void 0,this.isInBypassMode()||this.isItemsContainerElementTableBody()&&(mt()?this.getItemsContainerElement().classList.contains(dt)&&Boolean(document.getElementById(gt))||(s("~ <tbody/> container ~"),function(e){e.classList.add(dt);var t=document.createElement("style");t.id=gt,t.innerText="\n\t\ttbody.".concat(dt,":before {\n\t\t\tcontent: '';\n\t\t\tdisplay: table-row;\n\t\t\theight: var(--VirtualScroller-paddingTop);\n\t\t}\n\t\ttbody.").concat(dt,":after {\n\t\t\tcontent: '';\n\t\t\tdisplay: table-row;\n\t\t\theight: var(--VirtualScroller-paddingBottom);\n\t\t}\n\t").replace(/[\n\t]/g,""),document.head.appendChild(t)}(this.getItemsContainerElement())):(s("~ <tbody/> container not supported ~"),c("It looks like you're using Internet Explorer which doesn't support CSS variables required for a <tbody/> container. VirtualScroller has been switched into \"bypass\" mode (render all items). See: https://gitlab.com/catamphetamine/virtual-scroller/-/issues/1"),s('~ enter "bypass" mode ~'),this._bypass=!0));var t=this._afterRenderStateUpdateThatWasStopped;this._afterRenderStateUpdateThatWasStopped=void 0,this.verticalSpacing=void 0;var n=this.measureItemHeightsAndSpacing();if(n&&(t=Pt(Pt({},t),n)),this.scrollableContainerResizeHandler.start(),this.scroll.start(),void 0===this.getState().scrollableContainerWidth){var r=this.scrollableContainer.getWidth();t=Pt(Pt({},t),{},{scrollableContainerWidth:r})}else{var i=this.scrollableContainer.getWidth(),o=this.getState().scrollableContainerWidth;if(i!==o)return s("~ Scrollable container width changed from",o,"to",i,"~"),this.onContainerResize()}if(this._usesCustomStateStorage&&this.getActualColumnsCount()!==(this.getState().columnsCount||1))return this.onContainerResize();this.onUpdateShownItemIndexes({reason:Oe,stateUpdate:t})}},{key:"hasToBeStarted",value:function(){if(!this._isActive)throw new Error("[virtual-scroller] `VirtualScroller` hasn't been started")}},{key:"getItemScrollPosition",value:function(e){var t=this._getItemIndexByItemOrIndex(e);if(void 0!==t){var n=this.layout.getItemTopOffset(t);if(void 0!==n)return this.getListTopOffsetInsideScrollableContainer()+n}}},{key:"onItemHeightChange",value:function(e){l("`.onItemHeightChange(item)` method was renamed to `.onItemHeightDidChange(item)`"),this.onItemHeightDidChange(e)}},{key:"onItemHeightDidChange",value:function(e){this._onItemHeightDidChange(e)}},{key:"setItemState",value:function(e,t){this._setItemState(e,t)}},{key:"onItemStateChange",value:function(e,t){this.setItemState(e,t)}},{key:"setItems",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.hasToBeStarted(),this._setItems(e,t)}}],n&&Et(t.prototype,n),r&&Et(t,r),Object.defineProperty(t,"prototype",{writable:!1}),e}();function Bt(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(n)return(n=n.call(e)).next.bind(n);if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return Lt(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Lt(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0;return function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function Lt(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function At(t){var n=t.getItemId,r=e.useMemo((function(){return[]}),[]),i=e.useCallback((function(e){r.push(e)}),[]),o=e.useRef(),a=e.useMemo((function(){var e=0;return function(){o.current=String(function(){if(e===Number.MAX_SAFE_INTEGER){for(var t,n=Bt(r);!(t=n()).done;)(0,t.value)();e=0}return++e}())}}),[o,r]);e.useMemo((function(){a()}),[]);var l=!n,u=e.useCallback((function(){l&&(a(),s("React: ~ Item key prefix:",o.current))}),[l,a]),c=e.useCallback((function(e,t){return n?String(n(e)):"".concat(o.current,":").concat(t)}),[n,o]);return{getItemKey:c,onItemKeysReset:i,usesAutogeneratedItemKeys:l,updateItemKeysForNewItems:u}}function zt(t,n){var r=e.useRef(t),i=r.current;r.current=t,t!==i&&n(t,i)}function kt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Vt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?kt(Object(n),!0).forEach((function(t){_t(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):kt(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function _t(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Nt=["as","items","itemComponent","itemComponentProps","itemsContainerComponent","itemsContainerComponentProps","itemsContainerRef","estimatedItemHeight","getEstimatedItemHeight","getEstimatedVisibleItemRowsCount","getEstimatedInterItemVerticalSpacing","onMount","tbody","readyToStart","className","bypass","preserveScrollPosition","preserveScrollPositionOnPrependItems","measureItemsBatchSize","scrollableContainer","getScrollableContainer","getColumnsCount","getItemId","onItemFirstRender","onItemInitialRender","initialScrollPosition","onScrollPositionChange","initialState","getInitialItemState","onStateChange"];function Dt(){return Dt=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Dt.apply(this,arguments)}function Wt(e,t){if(null==e)return{};var n,r,i=function(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function Ft(t,n){var i=t.as,o=t.items,a=t.itemComponent,u=t.itemComponentProps,h=t.itemsContainerComponent,f=t.itemsContainerComponentProps,m=t.itemsContainerRef,d=t.estimatedItemHeight,g=t.getEstimatedItemHeight,p=t.getEstimatedVisibleItemRowsCount,I=t.getEstimatedInterItemVerticalSpacing,y=t.onMount,v=t.tbody,S=t.readyToStart,b=t.className,w=t.bypass,O=t.preserveScrollPosition,R=t.preserveScrollPositionOnPrependItems,H=t.measureItemsBatchSize,x=t.scrollableContainer,P=t.getScrollableContainer,T=t.getColumnsCount,E=t.getItemId,j=t.onItemFirstRender,M=t.onItemInitialRender,B=t.initialScrollPosition,L=t.onScrollPositionChange,A=t.initialState,z=t.getInitialItemState,k=t.onStateChange,V=Wt(t,Nt);h||(h=i||"div"),void 0===v&&(v="tbody"===h);var _=function(t){var n=e.useRef();return{setRef:e.useCallback((function(e){n.current=e,t&&("function"==typeof t?t(e):t.current=e)}),[t]),internalRef:n}}(m),N=_.setRef,D=function(t,n){var r=t.items,i=t.estimatedItemHeight,o=t.getEstimatedItemHeight,a=t.getEstimatedVisibleItemRowsCount,s=t.getEstimatedInterItemVerticalSpacing,l=t.bypass,u=t.onItemInitialRender,c=t.onItemFirstRender,h=t.initialScrollPosition,f=t.onScrollPositionChange,m=t.measureItemsBatchSize,d=t.scrollableContainer,g=t.getScrollableContainer,p=t.getColumnsCount,I=t.getItemId,y=t.initialState,v=t.getInitialItemState,S=t.onStateChange,b=n.itemsContainer;return e.useMemo((function(){return new Mt((function(){return b.current}),r,{_useTimeoutInRenderLoop:!0,estimatedItemHeight:i,getEstimatedItemHeight:o,getEstimatedVisibleItemRowsCount:a,getEstimatedInterItemVerticalSpacing:s,bypass:l,onItemInitialRender:u,onItemFirstRender:c,initialScrollPosition:h,onScrollPositionChange:f,measureItemsBatchSize:m,scrollableContainer:d,getScrollableContainer:g,getColumnsCount:p,getItemId:I,state:y,getInitialItemState:v,onStateChange:S})}),[])}({items:o,estimatedItemHeight:d,getEstimatedItemHeight:g,getEstimatedVisibleItemRowsCount:p,getEstimatedInterItemVerticalSpacing:I,bypass:w,onItemInitialRender:M,onItemFirstRender:j,initialScrollPosition:B,onScrollPositionChange:L,measureItemsBatchSize:H,scrollableContainer:x,getScrollableContainer:P,getColumnsCount:T,getItemId:E,initialState:A,getInitialItemState:z,onStateChange:k},{itemsContainer:_.internalRef}),W=C({initialState:e.useMemo((function(){return D.getInitialState()}),[]),onRender:D.onRender}),F=W.getState,U=W.setState,q=W.stateToRender;e.useMemo((function(){D.useState({getState:F,setState:U})}),[]),function(t,n){var r=n.readyToStart,i=e.useRef(!1),o=function(){i.current||(!1===r?s("Could've started but isn't ready to start"):(i.current=!0,t.start()))},a=function(){i.current&&(t.stop(),i.current=!1)};e.useLayoutEffect((function(){return o(),a}),[]);var l=e.useRef(r);e.useEffect((function(){!1===l.current&&!1!==r&&(l.current=r,s("Is ready to start"),o())}),[r])}(D,{readyToStart:S});var Y=At({getItemId:E}),K=Y.getItemKey,$=Y.onItemKeysReset,G=Y.usesAutogeneratedItemKeys,J=Y.updateItemKeysForNewItems,X=function(t){var n=t.getItemKey,r=t.onItemKeysReset,i=t.virtualScroller,o=e.useMemo((function(){return{}}),[]),a=e.useRef(o);return e.useMemo((function(){r((function(){a.current={}}))}),[]),e.useCallback((function(e){var t=n(e);return a.current[t]||(a.current[t]=function(t){i.setItemState(e,t)}),a.current[t]}),[i,n,a])}({getItemKey:K,onItemKeysReset:$,virtualScroller:D}),Q=function(t){var n=t.getItemKey,r=t.onItemKeysReset,i=t.virtualScroller,o=e.useMemo((function(){return{}}),[]),a=e.useRef(o);return e.useMemo((function(){r((function(){a.current={}}))}),[]),e.useCallback((function(e){var t=n(e);return a.current[t]||(a.current[t]=function(){i.onItemHeightDidChange(e)}),a.current[t]}),[i,n,a])}({getItemKey:K,onItemKeysReset:$,virtualScroller:D});!function(e,t){var n=t.virtualScroller,r=t.preserveScrollPosition,i=t.preserveScrollPositionOnPrependItems;zt(e,(function(e,t){s("React: ~ Different `items` property has been passed",e);var o=!0,a=n.getItemsDiff(t,e);if(a){var l=a.prependedItemsCount,u=a.appendedItemsCount;0===l&&0===u&&(s("React: ~ The `items` elements are identical to the previous ones"),o=!1)}o&&n.setItems(e,{preserveScrollPositionOnPrependItems:i||r})}))}(o,{virtualScroller:D,preserveScrollPosition:O,preserveScrollPositionOnPrependItems:R}),function(e,t){var n=t.virtualScroller,r=t.usesAutogeneratedItemKeys,i=t.updateItemKeysForNewItems;zt(e,(function(e,t){if(r){s("React: ~ Different `items` are about to be rendered",e);var o=!0,a=n.getItemsDiff(t,e);if(a){var l=a.prependedItemsCount,u=a.appendedItemsCount;0===l&&0===u?(s("React: ~ The `items` elements to be rendered are identical to the previously rendered ones"),o=!1):0===l&&u>0&&(s("React: ~ The `items` elements order hasn't changed:",u,"items have been appended"),o=!1)}o&&(s("React: ~ Update item `key`s"),i())}}))}(q.items,{virtualScroller:D,usesAutogeneratedItemKeys:G,updateItemKeysForNewItems:J}),function(t,n){var r=n.virtualScroller;e.useImperativeHandle(t,(function(){return{updateLayout:function(){r.updateLayout()},layout:function(){r.updateLayout()},updateItem:function(e){c('[virtual-scroller] ".updateItem(i)" method of React <VirtualScroller/> has been removed')},renderItem:function(e){c('[virtual-scroller] ".renderItem(i)" method of React <VirtualScroller/> has been removed')}}}),[r])}(n,{virtualScroller:D}),e.useLayoutEffect((function(){y&&(l("`onMount` property is deprecated"),y())}),[]),function(t){var n=t.virtualScroller,r=t.tbody;e.useEffect((function(){n.isItemsContainerElementTableBody()&&!r&&console.error('[virtual-scroller] When using `<tbody/>` as a container for list items, `itemsContainerComponent` property must be `"tbody"`')}),[])}({virtualScroller:D,tbody:v});var Z=function(e,t){return t.tbody?e?e+" "+dt:dt:e}(b||f&&f.className,{tbody:v}),ee=function(e,t){var n=t.tbody,r=t.state;if(n)return e;var i=r.beforeItemsHeight,o=r.afterItemsHeight;return Vt(Vt({},e),{},{paddingTop:ft(i),paddingBottom:ft(o)})}(f&&f.style,{tbody:v,state:q}),te=q.items,ne=q.itemStates,re=q.firstShownItemIndex,ie=q.lastShownItemIndex;return r.default.createElement(h,Dt({},f,V,{ref:N,className:Z,style:ee}),te.map((function(e,t){return t>=re&&t<=ie?r.default.createElement(a,Dt({item:e,itemIndex:t},u,{key:K(e,t),state:ne&&ne[t],setState:X(t),onStateChange:X(t),onHeightChange:Q(t),onHeightDidChange:Q(t)}),e):null})))}var Ut=Ft=r.default.forwardRef(Ft),qt=i.default.elementType||i.default.oneOfType([i.default.string,i.default.func,i.default.object]);return Ft.propTypes={as:qt,items:i.default.arrayOf(i.default.any).isRequired,itemComponent:qt.isRequired,itemComponentProps:i.default.object,itemsContainerComponent:qt,itemsContainerComponentProps:i.default.object,itemsContainerRef:i.default.oneOfType([i.default.func,i.default.shape({current:i.default.object})]),estimatedItemHeight:i.default.number,getEstimatedItemHeight:i.default.func,getEstimatedVisibleItemRowsCount:i.default.func,getEstimatedInterItemVerticalSpacing:i.default.func,bypass:i.default.bool,preserveScrollPositionOnPrependItems:i.default.bool,preserveScrollPosition:i.default.bool,measureItemsBatchSize:i.default.number,scrollableContainer:i.default.any,getScrollableContainer:i.default.func,getColumnsCount:i.default.func,getItemId:i.default.func,className:i.default.string,readyToStart:i.default.bool,onMount:i.default.func,onItemInitialRender:i.default.func,onItemFirstRender:i.default.func,initialScrollPosition:i.default.number,onScrollPositionChange:i.default.func,onStateChange:i.default.func,initialState:i.default.shape({items:i.default.arrayOf(i.default.object).isRequired,itemStates:i.default.arrayOf(i.default.any).isRequired,firstShownItemIndex:i.default.number.isRequired,lastShownItemIndex:i.default.number.isRequired,beforeItemsHeight:i.default.number.isRequired,afterItemsHeight:i.default.number.isRequired,itemHeights:i.default.arrayOf(i.default.number).isRequired,columnsCount:i.default.number,verticalSpacing:i.default.number}),getInitialItemState:i.default.func},Ut}));
1
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t(require("react"),require("prop-types")):"function"==typeof define&&define.amd?define(["react","prop-types"],t):(e="undefined"!=typeof globalThis?globalThis:e||self).VirtualScroller=t(e.React,e.PropTypes)}(this,function(e,t){"use strict";function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var r=n(e),i=n(t);function o(e){return function(e){if(Array.isArray(e))return a(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return a(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return a(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function a(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function s(){if(h()){for(var e,t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];(e=console).log.apply(e,o(["[virtual-scroller]"].concat(n)))}}function l(){for(var e,t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];if(f("VirtualScrollerWarningsAreErrors"))return c.apply(this,n);(e=console).warn.apply(e,o(["[virtual-scroller]"].concat(n)))}function u(){for(var e,t=arguments.length,n=new Array(t),r=0;r<t;r++)n[r]=arguments[r];(e=console).error.apply(e,o(["[virtual-scroller]"].concat(n)))}function c(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];var r=function(){return new Error(["[virtual-scroller]"].concat(t).join(" "))};if("undefined"!=typeof window)u.apply(this,["ERROR"].concat(t)),setTimeout(function(){throw r()},0);else{var i=f("VirtualScrollerCatchError");if(i)return i(r());if(f("VirtualScrollerThrowErrors"))throw r();u.apply(this,["ERROR"].concat(t))}}function h(){var e=f("VirtualScrollerDebug");if(void 0!==e)return!0===e||"debug"===e}function f(e){return"undefined"!=typeof window?window[e]:"undefined"!=typeof global?global[e]:void 0}function m(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function d(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?m(Object(n),!0).forEach(function(t){g(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):m(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function g(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function p(e){var t=d({},e);return e.itemHeights&&(t.itemHeights=e.itemHeights.slice()),e.itemStates&&(t.itemStates=e.itemStates.slice()),e.beforeResize&&(t.beforeResize=d({},e.beforeResize),t.beforeResize.itemHeights=e.beforeResize.itemHeights.slice()),t}function I(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,i,o=[],a=!0,s=!1;try{for(n=n.call(e);!(a=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);a=!0);}catch(e){s=!0,i=e}finally{try{a||null==n.return||n.return()}finally{if(s)throw i}}return o}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return y(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return y(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function y(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function v(t,n,r){if(!Array.isArray(r))throw new Error("Dependencies argument must be an array");var i=function(){var t=e.useRef(!1),n=e.useCallback(function(){var e=t.current;return t.current=!0,{isInitialRun:!e}},[]);return{onEffect:n}}(),o=i.onEffect,a=function(t){var n=e.useRef(t),r=e.useCallback(function(e){var t=n.current;return n.current=e,t},[]);return{onChange:r}}(r),s=a.onChange;t(function(){var e=o().isInitialRun,t=s(r);if((e||!function(e,t){if(e.length!==t.length)return!1;var n=0;for(;n<e.length;){if(e[n]!==t[n])return!1;n++}return!0}(t,r))&&"function"==typeof n())throw new Error("An effect can't return a clean-up function when used with `useEffectDontMountTwiceInStrictMode()` because the clean-up function won't behave correctly in that case")},r)}function S(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,i,o=[],a=!0,s=!1;try{for(n=n.call(e);!(a=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);a=!0);}catch(e){s=!0,i=e}finally{try{a||null==n.return||n.return()}finally{if(s)throw i}}return o}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return b(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return b(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function b(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function w(t){var n,r,i=t.initialState,o=t.onRender,a=function(t){var n=e.useRef(t),r=I(e.useState(t),2);r[0];var i=r[1];return[n.current,e.useCallback(function(e){if("function"==typeof e)throw new Error("Function argument of `setState()` function is not supported by this hook");n.current=e,i(e)},[])]}(i),l=S(a,2),u=l[0],c=l[1],f=e.useRef(i),m=e.useCallback(function(){return f.current},[]),d=e.useCallback(function(e){f.current=e},[]);return n=function(){h()&&(s("React: ~ The requested state is about to be applied in DOM. Setting it as the `VirtualScroller` state. ~"),s(p(u))),d(u)},r=[u],v(e.useInsertionEffect,n,r),function(t,n){v(e.useLayoutEffect,t,n)}(function(){o()},[u]),{stateToRender:u,getState:m,setState:c}}function C(e){return C="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},C(e)}function O(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function R(e){var t=P();return function(){var n,r=E(e);if(t){var i=E(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return function(e,t){if(t&&("object"===C(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(this,n)}}function H(e){var t="function"==typeof Map?new Map:void 0;return H=function(e){if(null===e||(n=e,-1===Function.toString.call(n).indexOf("[native code]")))return e;var n;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return x(e,arguments,E(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),T(r,e)},H(e)}function x(e,t,n){return x=P()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var i=new(Function.bind.apply(e,r));return n&&T(i,n.prototype),i},x.apply(null,arguments)}function P(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(e){return!1}}function T(e,t){return T=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},T(e,t)}function E(e){return E=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},E(e)}var j=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&T(e,t)}(o,e);var t,n,r,i=R(o);function o(e){var t=e.renderedElementIndex,n=e.renderedElementsCount,r=e.message;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,o),i.call(this,r||function(e){var t=e.renderedElementIndex,n=e.renderedElementsCount;return"Element with index ".concat(t," was not found in the list of Rendered Item Elements in the Items Container of Virtual Scroller. There're only ").concat(n," Elements there.")}({renderedElementIndex:t,renderedElementsCount:n}))}return t=o,n&&O(t.prototype,n),r&&O(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t}(H(Error));function M(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var B=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.getElement=t}var t,n,r;return t=e,(n=[{key:"_getNthRenderedItemElement",value:function(e){var t=this.getElement().childNodes;if(e>t.length-1)throw new j({renderedElementIndex:e,renderedElementsCount:t.length});return t[e]}},{key:"getNthRenderedItemTopOffset",value:function(e){return this._getNthRenderedItemElement(e).getBoundingClientRect().top-this.getElement().getBoundingClientRect().top}},{key:"getNthRenderedItemHeight",value:function(e){return this._getNthRenderedItemElement(e).getBoundingClientRect().height}},{key:"getHeight",value:function(){return this.getElement().getBoundingClientRect().height}},{key:"clear",value:function(){for(;this.getElement().firstChild;)this.getElement().removeChild(this.getElement().firstChild)}}])&&M(t.prototype,n),r&&M(t,r),Object.defineProperty(t,"prototype",{writable:!1}),e}();function L(e){return L="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},L(e)}function A(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function z(e){var t=_();return function(){var n,r=D(e);if(t){var i=D(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return function(e,t){if(t&&("object"===L(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(this,n)}}function V(e){var t="function"==typeof Map?new Map:void 0;return V=function(e){if(null===e||(n=e,-1===Function.toString.call(n).indexOf("[native code]")))return e;var n;if("function"!=typeof e)throw new TypeError("Super expression must either be null or a function");if(void 0!==t){if(t.has(e))return t.get(e);t.set(e,r)}function r(){return k(e,arguments,D(this).constructor)}return r.prototype=Object.create(e.prototype,{constructor:{value:r,enumerable:!1,writable:!0,configurable:!0}}),N(r,e)},V(e)}function k(e,t,n){return k=_()?Reflect.construct:function(e,t,n){var r=[null];r.push.apply(r,t);var i=new(Function.bind.apply(e,r));return n&&N(i,n.prototype),i},k.apply(null,arguments)}function _(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(e){return!1}}function N(e,t){return N=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},N(e,t)}function D(e){return D=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},D(e)}var W=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&N(e,t)}(o,e);var t,n,r,i=z(o);function o(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,o),i.call(this,"[virtual-scroller] Scrollable container not found")}return t=o,n&&A(t.prototype,n),r&&A(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t}(V(Error));function F(e){return F="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},F(e)}function U(e,t){return U=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},U(e,t)}function q(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(e){return!1}}();return function(){var n,r=Y(e);if(t){var i=Y(this).constructor;n=Reflect.construct(r,arguments,i)}else n=r.apply(this,arguments);return function(e,t){if(t&&("object"===F(t)||"function"==typeof t))return t;if(void 0!==t)throw new TypeError("Derived constructors may only return object or undefined");return function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(e)}(this,n)}}function Y(e){return Y=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},Y(e)}function K(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function $(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function G(e,t,n){return t&&$(e.prototype,t),n&&$(e,n),Object.defineProperty(e,"prototype",{writable:!1}),e}var J=function(){function e(t,n){K(this,e),this.getElement=t,this.getItemsContainerElement=n}return G(e,[{key:"getScrollY",value:function(){return this.getElement().scrollTop}},{key:"scrollToY",value:function(e){this.getElement().scrollTo?this.getElement().scrollTo(0,e):this.getElement().scrollTop=e}},{key:"getWidth",value:function(){if(!this.getElement())throw new W;return this.getElement().offsetWidth}},{key:"getHeight",value:function(){if(!this.getElement())throw new W;return this.getElement().offsetHeight}},{key:"getItemsContainerTopOffset",value:function(){var e=this.getElement().getBoundingClientRect().top,t=this.getElement().clientTop;return this.getItemsContainerElement().getBoundingClientRect().top-e+this.getScrollY()-t}},{key:"onScroll",value:function(e){var t=this.getElement();return t.addEventListener("scroll",e),function(){return t.removeEventListener("scroll",e)}}},{key:"onResize",value:function(e){var t;if("undefined"!=typeof ResizeObserver){var n=new ResizeObserver(function(t){t[0],e()}),r=this.getElement();n.observe(r),t=function(){return n.unobserve(r)}}var i=Q(e,{itemsContainerElement:this.getItemsContainerElement()});return function(){t&&t(),i()}}}]),e}(),X=function(e){!function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&U(e,t)}(n,e);var t=q(n);function n(e){return K(this,n),t.call(this,function(){return window},e)}return G(n,[{key:"getScrollY",value:function(){return window.pageYOffset}},{key:"getWidth",value:function(){return window.innerWidth}},{key:"getHeight",value:function(){return window.innerHeight}},{key:"getItemsContainerTopOffset",value:function(){var e=document.clientTop||document.body.clientTop||0;return this.getItemsContainerElement().getBoundingClientRect().top+this.getScrollY()-e}},{key:"onResize",value:function(e){return Q(e,{itemsContainerElement:this.getItemsContainerElement()})}}]),n}(J);function Q(e,t){var n=t.itemsContainerElement,r=function(){document.fullscreenElement&&!document.fullscreenElement.contains(n)||e()};return window.addEventListener("resize",r),function(){return window.removeEventListener("resize",r)}}for(var Z="undefined"==typeof window?global:window,ee=["moz","webkit"],te="AnimationFrame",ne=Z["request"+te],re=Z["cancel"+te]||Z["cancelRequest"+te],ie=0;!ne&&ie<ee.length;ie++)ne=Z[ee[ie]+"Request"+te],re=Z[ee[ie]+"Cancel"+te]||Z[ee[ie]+"CancelRequest"+te];if(!ne||!re){var oe=0,ae=0,se=[],le=1e3/60;ne=function(e){if(0===se.length){var t=Date.now(),n=Math.max(0,le-(t-oe));oe=n+t,setTimeout(function(){var e=se.slice(0);se.length=0;for(var t=0;t<e.length;t++)if(!e[t].cancelled)try{e[t].callback(oe)}catch(e){setTimeout(function(){throw e},0)}},Math.round(n))}return se.push({handle:++ae,callback:e,cancelled:!1}),ae},re=function(e){for(var t=0;t<se.length;t++)se[t].handle===e&&(se[t].cancelled=!0)}}function ue(e){return ne.call(Z,e)}function ce(e,t){var n=Date.now(),r=ue(function i(){Date.now()-n>=t?e():r=ue(i)});return{clear:function(){return function(){re.apply(Z,arguments)}(r)}}}function he(e){e&&e.clear()}function fe(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var me=function(){function e(t){var n=t.getListTopOffset,r=t.onListTopOffsetChange;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.getListTopOffset=n,this.onListTopOffsetChange=r}var t,n,r;return t=e,(n=[{key:"onListTopOffset",value:function(e){void 0===this.listTopOffsetInsideScrollableContainer&&this.start(),this.listTopOffsetInsideScrollableContainer=e}},{key:"start",value:function(){this._isActive=!0,this.watchListTopOffset()}},{key:"isStarted",value:function(){return this._isActive}},{key:"stop",value:function(){this._isActive=!1,this.watchListTopOffsetTimer&&(he(this.watchListTopOffsetTimer),this.watchListTopOffsetTimer=void 0)}},{key:"watchListTopOffset",value:function(){var e=this,t=Date.now();!function n(){e._isActive&&(void 0!==e.listTopOffsetInsideScrollableContainer&&e.getListTopOffset()!==e.listTopOffsetInsideScrollableContainer&&e.onListTopOffsetChange(),Date.now()-t<3e3&&(e.watchListTopOffsetTimer=ce(n,500)))}()}}])&&fe(t.prototype,n),r&&fe(t,r),Object.defineProperty(t,"prototype",{writable:!1}),e}(),de={createItemsContainer:function(e){return new B(e)},createScrollableContainer:function(e,t){return e?new J(e,t):"undefined"!=typeof window?new X(t):void 0},watchListTopOffset:function(e){var t=e.getListTopOffset,n=e.onListTopOffsetChange;return new me({getListTopOffset:t,onListTopOffsetChange:n})}};function ge(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function pe(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ge(Object(n),!0).forEach(function(t){Ie(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ge(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Ie(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ye(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var ve=function(){function e(t){var n=t.isInBypassMode,r=t.getEstimatedVisibleItemRowsCountForInitialRender,i=t.measureItemsBatchSize,o=t.getPrerenderMargin,a=t.getPrerenderMarginRatio,s=t.getVerticalSpacing,l=t.getVerticalSpacingBeforeResize,u=t.getColumnsCount,c=t.getColumnsCountBeforeResize,h=t.getItemHeight,f=t.getItemHeightBeforeResize,m=t.getBeforeResizeItemsCount,d=t.getAverageItemHeight,g=t.getMaxVisibleAreaHeight,p=t.getPreviouslyCalculatedLayout;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.isInBypassMode=n,this.getEstimatedVisibleItemRowsCountForInitialRender=r,this.measureItemsBatchSize=i,this.getPrerenderMargin=o,this.getPrerenderMarginRatio=a,this.getVerticalSpacing=s,this.getVerticalSpacingBeforeResize=l,this.getColumnsCount=u,this.getColumnsCountBeforeResize=c,this.getItemHeight=h,this.getItemHeightBeforeResize=f,this.getBeforeResizeItemsCount=m,this.getAverageItemHeight=d,this.getMaxVisibleAreaHeight=g,this.getPreviouslyCalculatedLayout=p}var t,n,r;return t=e,n=[{key:"getInitialLayoutValueWithFallback",value:function(e,t,n){try{return t()}catch(t){if(t instanceof W)return s('Scrollable container size is not known at this point, so "'.concat(e,"\" can't be calculated yet. Default to"),n),n;throw t}}},{key:"getInitialLayoutValues",value:function(e){var t,n,r=this,i=e.itemsCount,o=e.columnsCount,a=e.beforeStart,s=0,l=0;if(i>0){var u=function(){return r.getInitialLastShownItemIndex({itemsCount:i,columnsCount:o,firstShownItemIndex:t})};t=0,n=a?this.getInitialLayoutValueWithFallback("lastShownItemIndex",u,t):u();var c=this.getAverageItemHeight(),h=this.getVerticalSpacing(),f=t,m=i-(n+1);s=Math.ceil(f/o)*(h+c),l=Math.ceil(m/o)*(h+c)}return{beforeItemsHeight:s,afterItemsHeight:l,firstShownItemIndex:t,lastShownItemIndex:n}}},{key:"getInitialLastShownItemIndex",value:function(e){var t=e.itemsCount,n=e.columnsCount,r=e.firstShownItemIndex;return this.isInBypassMode()?t-1:Math.min(r+(this.getInitialRenderedRowsCount()*n-1),t-1)}},{key:"getInitialRenderedRowsCount",value:function(){var e=this.getEstimatedVisibleItemRowsCount();return"number"==typeof e?Math.ceil(e*(1+this.getPrerenderMarginRatio())):1}},{key:"getEstimatedVisibleItemRowsCount",value:function(){var e=this.getMaxVisibleAreaHeight();if("number"==typeof e){var t=this.getEstimatedRowsCountForHeight(e);if("number"==typeof t)return t}if(this.getEstimatedVisibleItemRowsCountForInitialRender){var n=this.getEstimatedVisibleItemRowsCountForInitialRender();if("number"==typeof n)return n;throw new Error("[virtual-scroller] `getEstimatedVisibleItemRowsCount()` must return a number")}}},{key:"getEstimatedRowsCountForHeight",value:function(e){var t=this.getAverageItemHeight(),n=this.getVerticalSpacing();if(t+n>0)return Math.ceil((e+n)/(t+n))}},{key:"getLayoutUpdateForItemsDiff",value:function(e,t,n){var r=e.firstShownItemIndex,i=e.lastShownItemIndex,o=e.beforeItemsHeight,a=e.afterItemsHeight,s=t.prependedItemsCount,u=t.appendedItemsCount,c=n.itemsCount,h=n.columnsCount,f=n.shouldRestoreScrollPosition,m=n.onResetGridLayout,d=this.getAverageItemHeight(),g=this.getVerticalSpacing();if(u>0&&(a+=Math.ceil(u/h)*(g+d)),s>0&&(r+=s,i+=s,o+=Math.ceil(s/h)*(d+g),f&&(r=0,o=0),s%h>0)){m(),l("~ Prepended items count",s,"is not divisible by Columns Count",h,"~"),l("Layout reset required");var p=i-r+1;if(r=0,o=0,!f&&s>p){var I=c-((i=this.getInitialLastShownItemIndex({itemsCount:c,columnsCount:h,firstShownItemIndex:r}))+1);a=Math.ceil(I/h)*(g+d)}}return{beforeItemsHeight:o,afterItemsHeight:a,firstShownItemIndex:r,lastShownItemIndex:i}}},{key:"getItemNotMeasuredIndexes",value:function(e,t){var n=this,r=t.itemsCount,i=t.firstShownItemIndex,o=t.nonMeasuredAreaHeight,a=t.indexOfTheFirstItemInTheRow;s("Item index",e,"height is required for calculations but hasn't been measured yet. Mark the item as \"shown\", rerender the list, measure the item's height and redo the layout.");var l,u=this.getColumnsCount(),c=Math.min(("number"==typeof(l=n.getEstimatedRowsCountForHeight(o))?l:Math.ceil(r/u))*u,this.measureItemsBatchSize||1/0);return void 0===i&&(i=a),{firstNonMeasuredItemIndex:e,firstShownItemIndex:i,lastShownItemIndex:Math.min(a+c-1,r-1)}}},{key:"getShownItemIndexes",value:function(e){var t=e.itemsCount,n=e.visibleAreaInsideTheList,r=this._getShownItemIndex({itemsCount:t,fromIndex:0,visibleAreaInsideTheList:n,findFirstShownItemIndex:!0});if(null===r)return this.getNonVisibleListShownItemIndexes();if(void 0!==r.firstNonMeasuredItemIndex)return r;var i=r,o=i.firstShownItemIndex,a=i.beforeItemsHeight;return null===(r=this._getShownItemIndex({itemsCount:t,fromIndex:o,beforeItemsHeight:a,visibleAreaInsideTheList:n,findLastShownItemIndex:!0}))?this.getNonVisibleListShownItemIndexes():void 0!==r.firstNonMeasuredItemIndex?r:{firstShownItemIndex:o,lastShownItemIndex:r.lastShownItemIndex}}},{key:"_getShownItemIndex",value:function(e){var t=e.beforeResize,n=e.itemsCount,r=e.visibleAreaInsideTheList,i=e.findFirstShownItemIndex,o=e.findLastShownItemIndex,a=e.fromIndex,s=e.beforeItemsHeight;if(0===a&&(s=0),void 0===s)throw new Error("[virtual-scroller] `beforeItemsHeight` not passed to `Layout.getShownItemIndexes()` when starting from index "+a);if(!t){var u=this.getBeforeResizeItemsCount();if(u>a){var c=this._getShownItemIndex(pe(pe({},e),{},{beforeResize:!0,itemsCount:u})),h=c.notFound,f=c.beforeItemsHeight,m=c.firstShownItemIndex,d=c.lastShownItemIndex;if(!h){var g=this.getColumnsCount();return{firstShownItemIndex:void 0===m?void 0:Math.floor(m/g)*g,lastShownItemIndex:void 0===d?void 0:Math.floor(d/g)*g,beforeItemsHeight:f}}s=f,a+=u}}for(var p=t?this.getColumnsCountBeforeResize():this.getColumnsCount(),I=t?this.getVerticalSpacingBeforeResize():this.getVerticalSpacing(),y=a;y<n;){for(var v=y,S=n>v+p?I:0,b=0,w=0;w<p&&y<n;){var C=t?this.getItemHeightBeforeResize(y):this.getItemHeight(y);if(void 0===C)return this.getItemNotMeasuredIndexes(y,{itemsCount:n,firstShownItemIndex:o?a:void 0,indexOfTheFirstItemInTheRow:v,nonMeasuredAreaHeight:r.bottom+this.getPrerenderMargin()-s});b=Math.max(b,C),w++,y++}var O=s+b,R=O>r.top-this.getPrerenderMargin(),H=O+S>=r.bottom+this.getPrerenderMargin();if(i){if(R)return{firstShownItemIndex:v,beforeItemsHeight:s}}else if(o&&H)return{lastShownItemIndex:Math.min(v+p-1,n-1)};s+=b+S}return t?{notFound:!0,beforeItemsHeight:s}:i?(l("The list is supposed to be visible but no visible item has been found"),null):o?{lastShownItemIndex:n-1}:void 0}},{key:"getNonVisibleListShownItemIndexes",value:function(){var e={firstShownItemIndex:0,lastShownItemIndex:0};return void 0===this.getItemHeight(0)&&(e.firstNonMeasuredItemIndex=0),e}},{key:"getBeforeItemsHeight",value:function(e){var t=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).beforeResize,n=0,r=0;if(!t){var i=this.getBeforeResizeItemsCount();i>0&&(n=this.getBeforeItemsHeight(Math.min(e,i),{beforeResize:!0}),r=i)}for(var o=t?this.getColumnsCountBeforeResize():this.getColumnsCount(),a=t?this.getVerticalSpacingBeforeResize():this.getVerticalSpacing();r<e;){for(var s=0,l=0;l<o;){var u=t?this.getItemHeightBeforeResize(r):this.getItemHeight(r);void 0===u&&(u=this.getAverageItemHeight()),s=Math.max(s,u),r++,l++}n+=s,n+=a}return n}},{key:"getAfterItemsHeight",value:function(e,t){for(var n=this.getColumnsCount(),r=0,i=e+1;i<t;){for(var o=0,a=0;a<n&&i<t;){var s=this.getItemHeight(i);void 0===s&&(s=this.getAverageItemHeight()),o=Math.max(o,s),i++,a++}r+=this.getVerticalSpacing(),r+=o}return r}},{key:"getItemTopOffset",value:function(e){for(var t=0,n=this.getBeforeResizeItemsCount(),r=0===n?0:Math.ceil(n/this.getColumnsCountBeforeResize()),i=e<n?Math.floor(e/this.getColumnsCountBeforeResize()):r,o=0;o<i;)t+=this.getItemHeightBeforeResize(o*this.getColumnsCountBeforeResize()),t+=this.getVerticalSpacingBeforeResize(),o++;for(var a=Math.floor((e-n)/this.getColumnsCount()),s=0;s<a;){for(var l=0,u=0;u<this.getColumnsCount();){var c=this.getItemHeight(n+s*this.getColumnsCount()+u);if(void 0===c)return;l=Math.max(l,c),u++}t+=l,t+=this.getVerticalSpacing(),s++}return t}}],n&&ye(t.prototype,n),r&&ye(t,r),Object.defineProperty(t,"prototype",{writable:!1}),e}(),Se="scroll",be="stopped scrolling",we="manual",Ce="started",Oe="non-measured item heights have been measured",Re="viewport width changed",He="viewport height changed",xe="viewport size unchanged",Pe="item height changed",Te="items changed",Ee="list top offset changed";function je(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var Me=function(){function e(t){var n,r,i,o=this,a=t.isInBypassMode,s=t.getWidth,l=t.getHeight,u=t.listenForResize,c=t.onResizeStart,h=t.onResizeStop,f=t.onHeightChange,m=t.onWidthChange,d=t.onNoChange;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),i=function(){if(o.isActive){var e=o.width,t=o.height;o.width=o.getWidth(),o.height=o.getHeight(),o.width===e?o.height===t?o.onNoChange():o.onHeightChange(t,o.height):o.onWidthChange(e,o.width)}},(r="_onResize")in(n=this)?Object.defineProperty(n,r,{value:i,enumerable:!0,configurable:!0,writable:!0}):n[r]=i,this.isInBypassMode=a,this.onHeightChange=f,this.onWidthChange=m,this.onNoChange=d,this.getWidth=s,this.getHeight=l,this.listenForResize=u,this.onResize=function(e,t){var n,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=r.onStart,o=r.onStop;return function(){for(var r=this,a=arguments.length,s=new Array(a),l=0;l<a;l++)s[l]=arguments[l];return new Promise(function(a){n?he(n):i&&i(),n=ce(function(){n=void 0,o&&o(),e.apply(r,s),a()},t)})}}(this._onResize,Be,{onStart:c,onStop:h})}var t,n,r;return t=e,(n=[{key:"start",value:function(){this.isActive=!0,this.isInBypassMode()||(this.width=this.getWidth(),this.height=this.getHeight(),this.unlistenResize=this.listenForResize(this.onResize))}},{key:"stop",value:function(){this.isActive=!1,this.width=void 0,this.height=void 0,this.unlistenResize&&(this.unlistenResize(),this.unlistenResize=void 0)}}])&&je(t.prototype,n),r&&je(t,r),Object.defineProperty(t,"prototype",{writable:!1}),e}(),Be=250;function Le(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Ae(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Le(Object(n),!0).forEach(function(t){ze(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Le(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function ze(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ve(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var ke=function(){function e(t){var n=t.getState,r=t.getVerticalSpacing,i=t.getColumnsCount;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.getState=n,this.getVerticalSpacing=r,this.getColumnsCount=i}var t,n,r;return t=e,n=[{key:"initializeFromState",value:function(e){this._includesBeforeResizeInState=Boolean(e.beforeResize)}},{key:"cleanUpBeforeResizeItemHeights",value:function(){var e=this.getState(),t=e.firstShownItemIndex,n=e.lastShownItemIndex,r=e.itemHeights,i=e.beforeResize;if(i&&t<i.itemHeights.length){s('~ Clean up "before resize" item heights and correct scroll position ~');for(var o=0,a=Math.floor(i.itemHeights.length/this.getColumnsCount()),l=Math.min(a*this.getColumnsCount()-1,n),u=t;u<=l;){for(var c=0,h=0;h<this.getColumnsCount()&&u<=l;){var f=r[u];void 0===f&&(f=this.getAverageItemHeight()),c=Math.max(c,f),u++,h++}o+=c,o+=this.getVerticalSpacing()}for(var m=0,d=Math.min(i.itemHeights.length,n+1),g=Math.ceil(d/i.columnsCount),p=0===t?0:Math.floor((t-1)/i.columnsCount)+1;p<g;)m+=i.itemHeights[p*i.columnsCount],m+=i.verticalSpacing,p++;if(0===t)s('Drop all "before resize" item heights');else{var I=t,y=i.itemHeights.length-1;I===y?s("For item index",I,'— drop "before resize" height',i.itemHeights[I]):s("For item indexes from",I,"to",y,'— drop "before resize" heights',i.itemHeights.slice(I))}return i.itemHeights.splice(t,i.itemHeights.length-t),{scrollBy:o-m,beforeResize:0===t?void 0:Ae({},i)}}}},{key:"snapshotBeforeResizeItemHeights",value:function(e){var t=e.firstShownItemIndex,n=e.newFirstShownItemIndex,r=this.getColumnsCount(),i=this.getVerticalSpacing();this._includesBeforeResizeInState=!0;var o=this.getState(),a=o.beforeResize,s=o.itemHeights,l=a?a.itemHeights.length:0;if(l>0){if(a.columnsCount!==r||a.verticalSpacing!==i){for(var u=0,c=Math.ceil(l/a.columnsCount),h=0;h<c;)u+=a.itemHeights[h*a.columnsCount],u+=a.verticalSpacing,h++;for(var f=0,m=t;m<n;){for(var d=0,g=0;g<r&&m<n;)d=Math.max(d,s[m]),g++,m++;f+=d,f+=i}var p=u+f,I=Math.ceil(n/r);return new Array(n).fill(Math.max(0,p/I-i))}return a.itemHeights.concat(_e(s,n,r).slice(a.itemHeights.length))}return _e(s,n,r)}},{key:"shouldIncludeBeforeResizeValuesInState",value:function(){return this._includesBeforeResizeInState}}],n&&Ve(t.prototype,n),r&&Ve(t,r),Object.defineProperty(t,"prototype",{writable:!1}),e}();function _e(e,t,n){e=e.slice(0,Math.ceil(t/n)*n);for(var r=0;r*n<t;){for(var i=0,o=0;o<n;)i=Math.max(i,e[r*n+o]),o++;for(o=0;o<n;)e[r*n+o]=i,o++;r++}return e.slice(0,t)}function Ne(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function De(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var We=function(){function e(t){var n=this,r=t.isInBypassMode,i=t.scrollableContainer,o=t.itemsContainer,a=t.onScroll,l=t.initialScrollPosition,u=t.onScrollPositionChange,c=t.isImmediateLayoutScheduled,h=t.hasNonRenderedItemsAtTheTop,f=t.hasNonRenderedItemsAtTheBottom,m=t.getLatestLayoutVisibleArea,d=t.getListTopOffset,g=t.getPrerenderMargin,p=t.onScrolledToTop,I=t.waitForScrollingToStop;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),De(this,"scrollByY",function(e){n.scrollToY(n.getScrollY()+e)}),De(this,"onScrollListener",function(){if(n.onScrollPositionChange&&n.onScrollPositionChange(n.getScrollY()),n.onScrolledToTop&&n.getScrollY()<n.getListTopOffset()&&n.onScrolledToTop(),!n.isInBypassMode()&&!n.ignoreScrollEvents){n.cancelOnStopScrollingTimer();var e=n.getLatestLayoutVisibleArea()&&(n.getScrollY()<n.getLatestLayoutVisibleArea().top-n.getPrerenderMargin()&&n.hasNonRenderedItemsAtTheTop()||n.getScrollY()+n.scrollableContainer.getHeight()>n.getLatestLayoutVisibleArea().bottom+n.getPrerenderMargin()&&n.hasNonRenderedItemsAtTheBottom());if(s(e?"The user has scrolled far enough: perform a re-layout":"The user is scrolling: perform a re-layout when they stop scrolling"),e||!1===n.waitForScrollingToStop)return n.onScroll();n.isImmediateLayoutScheduled()||(n.shouldCallOnScrollListenerWhenStopsScrolling=!0,n.watchOnStopScrolling())}}),this.isInBypassMode=r,this.scrollableContainer=i,this.itemsContainer=o,this.onScroll=a,this.initialScrollPosition=l,this.onScrollPositionChange=u,this.isImmediateLayoutScheduled=c,this.hasNonRenderedItemsAtTheTop=h,this.hasNonRenderedItemsAtTheBottom=f,this.getLatestLayoutVisibleArea=m,this.getListTopOffset=d,this.getPrerenderMargin=g,this.onScrolledToTop=p,this.waitForScrollingToStop=I}var t,n,r;return t=e,(n=[{key:"start",value:function(){void 0!==this.initialScrollPosition&&(this.scrollToY(this.initialScrollPosition),this.initialScrollPosition=void 0),this.onScrollPositionChange&&this.onScrollPositionChange(this.getScrollY()),this.stopListeningToScroll=this.scrollableContainer.onScroll(this.onScrollListener)}},{key:"stop",value:function(){this.stopListeningToScroll(),this.stopListeningToScroll=void 0,this.shouldCallOnScrollListenerWhenStopsScrolling=void 0,this.cancelOnStopScrollingTimer()}},{key:"scrollToY",value:function(e){this.ignoreScrollEvents=!0,this.scrollableContainer.scrollToY(e),this.ignoreScrollEvents=void 0}},{key:"getScrollY",value:function(){return this.scrollableContainer.getScrollY()}},{key:"cancelOnStopScrollingTimer",value:function(){this.onStopScrollingTimer&&(he(this.onStopScrollingTimer),this.onStopScrollingTimer=void 0)}},{key:"cancelScheduledLayout",value:function(){this.cancelOnStopScrollingTimer()}},{key:"watchOnStopScrolling",value:function(){var e=this;this.onStopScrollingTimer=ce(function(){e.onStopScrollingTimer=void 0,e.shouldCallOnScrollListenerWhenStopsScrolling&&(e.shouldCallOnScrollListenerWhenStopsScrolling=void 0,e.onScroll({delayed:!0}))},Fe)}},{key:"getVisibleAreaBounds",value:function(){var e=this.getScrollY();return{top:e,bottom:e+this.scrollableContainer.getHeight()}}}])&&Ne(t.prototype,n),r&&Ne(t,r),Object.defineProperty(t,"prototype",{writable:!1}),e}(),Fe=100;function Ue(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var qe=function(){function e(t){var n=t.itemsContainer,r=t.getListTopOffset;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.itemsContainer=n,this.getListTopOffset=r}var t,n,r;return t=e,(n=[{key:"snapshotListHeightBeforeAddingNewItems",value:function(e){var t=e.previousItems,n=e.newItems,r=e.prependedItemsCount;0!==t.length&&0!==r&&(this._snapshot={previousItems:t,newItems:n,itemIndex:r,itemTopOffset:this.itemsContainer.getNthRenderedItemTopOffset(0),listTopOffset:this.getListTopOffset()})}},{key:"getAnchorItemIndex",value:function(){return this._snapshot.itemIndex}},{key:"hasSnapshot",value:function(){return void 0!==this._snapshot}},{key:"getListBottomOffsetChange",value:function(){var e=this._snapshot,t=e.itemIndex,n=e.itemTopOffset,r=e.listTopOffset;return this.itemsContainer.getNthRenderedItemTopOffset(t)-n+(this.getListTopOffset()-r)}},{key:"reset",value:function(){this._snapshot=void 0}}])&&Ue(t.prototype,n),r&&Ue(t,r),Object.defineProperty(t,"prototype",{writable:!1}),e}();function Ye(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var Ke=function(){function e(t){var n=t.container,r=t.getItemHeight,i=t.setItemHeight;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.container=n,this._get=r,this._set=i,this.reset()}var t,n,r;return t=e,n=[{key:"reset",value:function(){this.measuredItemsHeight=0,this.firstMeasuredItemIndex=void 0,this.lastMeasuredItemIndex=void 0}},{key:"readItemHeightsFromState",value:function(e){for(var t=e.itemHeights,n=0;n<t.length;){if(void 0===t[n]){if(void 0!==this.firstMeasuredItemIndex){this.lastMeasuredItemIndex=n-1;break}}else void 0===this.firstMeasuredItemIndex&&(this.firstMeasuredItemIndex=n),this.measuredItemsHeight+=t[n];n++}}},{key:"_measureItemHeight",value:function(e,t){return this.container.getNthRenderedItemHeight(e-t)}},{key:"measureItemHeights",value:function(e,t){if(s("~ Measure item heights ~"),void 0!==e){void 0!==this.firstMeasuredItemIndex&&(e>this.lastMeasuredItemIndex+1||t<this.firstMeasuredItemIndex-1)&&(s("Non-measured items gap detected. Reset first and last measured item indexes."),this.reset());for(var n=[],r=this.firstMeasuredItemIndex,i=this.lastMeasuredItemIndex,o=!1,a=e;a<=t;){if(void 0===this._get(a)){n.push(a);var u=this._measureItemHeight(a,e);s("Item index",a,"height",u),this._set(a,u),(void 0===r||a<r)&&(this.measuredItemsHeight+=u,o||(this.firstMeasuredItemIndex=a,o=!0)),(void 0===i||a>i)&&(void 0!==i&&(this.measuredItemsHeight+=u),this.lastMeasuredItemIndex=a)}else{var c=this._get(a),h=this._measureItemHeight(a,e);c!==h&&(l("Item index",a,"height changed unexpectedly: it was",c,"before, but now it is",h,'. Whenever an item\'s height changes for whatever reason, a developer must call `onItemHeightDidChange(item)` right after that change. If you are calling `onItemHeightDidChange(item)` correctly, then there\'re several other possible causes. For example, perhaps you forgot to persist the item\'s "state" by calling `setItemState(item, newState)` when that "state" did change, and so the item\'s "state" got lost when the item element was unmounted, which resulted in a different item height when the item was shown again with no previous "state". Or perhaps you\'re running your application in "devleopment" mode and `VirtualScroller` has initially rendered the list before your CSS styles or custom fonts have loaded, resulting in different item height measurements "before" and "after" the page has fully loaded.'),this._set(a,h))}a++}return n}}},{key:"remeasureItemHeight",value:function(e,t){var n=this._get(e),r=this._measureItemHeight(e,t);return this._set(e,r),this.measuredItemsHeight+=r-n,r}},{key:"getAverageItemHeight",value:function(){if(void 0!==this.lastMeasuredItemIndex)return this.measuredItemsHeight/(this.lastMeasuredItemIndex-this.firstMeasuredItemIndex+1)}},{key:"onPrepend",value:function(e){void 0!==this.firstMeasuredItemIndex&&(this.firstMeasuredItemIndex+=e,this.lastMeasuredItemIndex+=e)}}],n&&Ye(t.prototype,n),r&&Ye(t,r),Object.defineProperty(t,"prototype",{writable:!1}),e}();function $e(e,t){for(var n=0;n<e.length;)e[n]=t(n),n++;return e}function Ge(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Je(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ge(Object(n),!0).forEach(function(t){Xe(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ge(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Xe(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Qe(e){var t=this,n=e.state,r=e.getInitialItemState,i=e.onStateChange,o=e.render,a=e.items;function u(){return this.state}function f(e){this.state=e}function m(e,t){this.state=e,o(this.state,this.previousState),this.onRender()}function d(e){var t=e.getInitialItemState,n=a,r=Je(Je({},I.call(this,n,{beforeStart:!0})),{},{items:n,itemStates:$e(new Array(n.length),function(e){return t(n[e])})});return h()&&s("Initial state (autogenerated)",p(r)),s("First shown item index",r.firstShownItemIndex),s("Last shown item index",r.lastShownItemIndex),r}function g(e){return h()&&s("Restore state",p(e)),function(e,t){var n=t.columnsCount,r=e.columnsCount||1;if(r!==n)return l("~ Columns Count changed from",r,"to",n,"~"),!0;var i=Math.floor(e.firstShownItemIndex/n)*n;if(i!==e.firstShownItemIndex)return l("~ First Shown Item Index",e.firstShownItemIndex,"is not divisible by Columns Count",n,"~"),!0}(e=Je(Je({},e=function(e){return e.beforeResize&&0===e.beforeResize.itemHeights.length&&(e.beforeResize=void 0),e}(e)),{},{verticalSpacing:void 0}),{columnsCount:this.getActualColumnsCount()})&&(l("Reset Layout"),e=Je(Je({},e),I.call(this,e.items,{beforeStart:!1}))),e}function I(e,t){var n=t.beforeStart,r=e.length,i=this.layout.getInitialLayoutValues({itemsCount:r,columnsCount:this.getActualColumnsCount(),beforeStart:n}),o=i.firstShownItemIndex,a=i.lastShownItemIndex,s=i.beforeItemsHeight,l=i.afterItemsHeight,u=new Array(r);return this.onBeforeShowItems(e,u,o,a),{itemHeights:u,columnsCount:this.getActualColumnsCountForState(),verticalSpacing:this.verticalSpacing,firstShownItemIndex:o,lastShownItemIndex:a,beforeItemsHeight:s,afterItemsHeight:l}}this.onStateChange=i,this._render=o,this.getInitialItemState=r,this._setItemState=function(e,n){var r=t._getItemIndexByItemOrIndex(e);void 0!==r&&(h()&&(s("~ Item state changed ~"),s("Item index",r),s("Previous state\n"+JSON.stringify(t.getState().itemStates[r],null,2)),s("New state\n"+JSON.stringify(n,null,2))),t.getState().itemStates[r]=n,t.newItemsWillBeRendered&&(t.itemStatesThatChangedWhileNewItemsWereBeingRendered||(t.itemStatesThatChangedWhileNewItemsWereBeingRendered={}),t.itemStatesThatChangedWhileNewItemsWereBeingRendered[String(r)]=n))},this.getState=function(){return t._getState()},this.updateState=function(e){h()&&(s("~ Set state ~"),s(p(e))),e.items&&(t._isSettingNewItems||c("A `stateUpdate` can only contain `items` property as a result of calling `.setItems()`")),t._isSettingNewItems=void 0,t.waitingForRender=!0,t.previousState=t.getState(),t.mostRecentSetStateValue||(t.mostRecentSetStateValue=t.getState()),t.mostRecentSetStateValue=Je(Je({},t.mostRecentSetStateValue),e),t._setState(t.mostRecentSetStateValue,e)},this.getInitialState=function(){return n?g.call(t,n):d.call(t,{getInitialItemState:r})},this.useState=function(e){var n=e.getState,r=e.setState,i=e.updateState;if(t._isActive)throw new Error("[virtual-scroller] `VirtualScroller` has already been started");if(t._getState)throw new Error("[virtual-scroller] Custom state storage has already been configured");if(o)throw new Error("[virtual-scroller] Creating a `VirtualScroller` class instance with a `render()` parameter implies using the default (internal) state storage");if(r&&i)throw new Error("[virtual-scroller] When using a custom state storage, one must supply either `setState()` or `updateState()` function but not both");if(!n||!r&&!i)throw new Error("[virtual-scroller] When using a custom state storage, one must supply both `getState()` and `setState()`/`updateState()` functions");t._usesCustomStateStorage=!0,t._getState=n,t._setState=function(e,t){r?r(e):i(t)}},this.useDefaultStateStorage=function(){if(!o)throw new Error("[virtual-scroller] When using the default (internal) state management, one must supply a `render(state, prevState)` function parameter");t._getState=u.bind(t),t._setState=m.bind(t),f.bind(t)(t.getInitialState())},this.setUpState=function(){t._usesCustomStateStorage||t.useDefaultStateStorage()}}var Ze=.9;function et(e){var t=this,n=e.getEstimatedInterItemVerticalSpacing;function r(){var e=this.getState(),t=e.firstShownItemIndex,n=e.lastShownItemIndex;s("~ Measure item vertical spacing ~");var r=function(e){var t=e.itemsContainer,n=e.renderedItemsCount;if(n>1)for(var r=t.getNthRenderedItemTopOffset(0),i=t.getNthRenderedItemHeight(0),o=1;o<n;){var a=t.getNthRenderedItemTopOffset(o),s=t.getNthRenderedItemHeight(o);if(a+Ze>=r+i){var l=a-(r+i);return Math.max(0,l)}i=Math.max(i,s),o++}}({itemsContainer:this.itemsContainer,renderedItemsCount:n-t+1});if(void 0!==r)return s("Item vertical spacing",r),r;s("Not enough items rendered to measure vertical spacing")}this.getVerticalSpacing=function(){var e=t.verticalSpacing;return"number"==typeof e?e:t.getEstimatedInterItemVerticalSpacing()},this.getVerticalSpacingBeforeResize=function(){var e=t.getState().beforeResize;if(e){var n=e.verticalSpacing;return"number"==typeof n?n:t.getEstimatedInterItemVerticalSpacing()}},this.getEstimatedInterItemVerticalSpacing=function(){if(n){var e=n();if("number"==typeof e)return e;throw new Error("[virtual-scroller] `getEstimatedInterItemVerticalSpacing()` must return a number")}return 0},this.measureVerticalSpacingIfNotMeasured=function(){if(void 0===t.verticalSpacing)return t.verticalSpacing=r.call(t),t.verticalSpacing}}function tt(e){var t=this,n=e.getColumnsCount;if(n){var r={getWidth:function(){return t.scrollableContainer.getWidth()}};this.getActualColumnsCountForState=function(){var e=n(r);if(1!==e)return e}}else this.getActualColumnsCountForState=function(){};this.getActualColumnsCount=function(){return t.getActualColumnsCountForState()||1},this.getColumnsCount=function(){return t.getState()&&t.getState().columnsCount||1}}function nt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function rt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?nt(Object(n),!0).forEach(function(t){it(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):nt(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function it(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ot(){var e=this;function t(e){var n=e.stateUpdate,o=Date.now(),a=r.call(this),u=a.firstShownItemIndex,c=a.lastShownItemIndex,f=a.shownItemsHeight,m=a.firstNonMeasuredItemIndex;if(this.listHeightMeasurement.hasSnapshot()&&(c<this.listHeightMeasurement.getAnchorItemIndex()&&(c=this.listHeightMeasurement.getAnchorItemIndex()),m=void 0),!i.call(this,u,c))return s("~ Because some of the will-be-hidden item heights (listed above) have changed since they've last been measured, redo layout. ~"),t.call(this,{stateUpdate:n});var d=this.layout.getBeforeItemsHeight(u),g=this.layout.getAfterItemsHeight(c,this.getItemsCount()),p=Date.now()-o;s("~ Calculated Layout"+(this.isInBypassMode()?" (bypass)":"")+" ~"),p<at||l("Layout calculated in",p,"ms"),this.getColumnsCount()&&s("Columns count",this.getColumnsCount()),s("First shown item index",u),s("Last shown item index",c),s("Before items height",d),s("After items height (actual or estimated)",g),s("Average item height (used for estimated after items height calculation)",this.getAverageItemHeight()),h()&&(s("Item heights",this.getState().itemHeights.slice()),s("Item states",this.getState().itemStates.slice())),this.onBeforeShowItems(this.getState().items,this.getState().itemHeights,u,c),this.firstNonMeasuredItemIndex=m,this.previouslyCalculatedLayout=void 0===f?void 0:{firstShownItemIndex:u,lastShownItemIndex:c,beforeItemsHeight:d,shownItemsHeight:f},this.updateState(rt({firstShownItemIndex:u,lastShownItemIndex:c,beforeItemsHeight:d,afterItemsHeight:g},n))}function n(){var e=this.scroll.getVisibleAreaBounds();this.latestLayoutVisibleArea=e;var t=this.getListTopOffsetInsideScrollableContainer();return{top:e.top-t,bottom:e.bottom-t}}function r(){var e=this.getItemsCount(),t=n.call(this);return this.isInBypassMode()?{firstShownItemIndex:0,lastShownItemIndex:e-1}:t.top<this.itemsContainer.getHeight()+this.layout.getPrerenderMargin()&&t.bottom>0-this.layout.getPrerenderMargin()?this.layout.getShownItemIndexes({itemsCount:this.getItemsCount(),visibleAreaInsideTheList:t}):(s("The entire list is off-screen. No items are visible."),this.layout.getNonVisibleListShownItemIndexes())}function i(e,t){for(var n=!0,r=this.getState().firstShownItemIndex;r<=this.getState().lastShownItemIndex;){if(r>=e&&r<=t);else{var i=this.getState().itemHeights[r],u=o.call(this,r);u!==i&&(n&&(s("~ Validate will-be-hidden item heights. ~"),a.call(this,r,i,u)),n=!1,l("Item index",r,"is no longer visible and will be unmounted. Its height has changed from",i,"to",u,"since it was last measured. This is not necessarily a bug, and could happen, for example, on screen width change, or when there're several `onItemHeightDidChange(item)` calls issued at the same time, and the first one triggers a re-layout before the rest of them have had a chance to be executed."))}r++}return n}function o(e){var t=this.getState().firstShownItemIndex;return this.itemHeights.remeasureItemHeight(e,t)}function a(e,t,n){var r=this.previouslyCalculatedLayout;if(r){var i=n-t;e<r.firstShownItemIndex?r.beforeItemsHeight+=i:e>r.lastShownItemIndex?void 0!==r.afterItemsHeight&&(r.afterItemsHeight+=i):r.shownItemsHeight+=n-t}}this.onUpdateShownItemIndexes=function(n){var r=n.reason,i=n.stateUpdate,o=function(){i&&e.updateState(i)};return e.newItemsWillBeRendered||e.widthHasChanged||e._isResizing||0===e.getItemsCount()?o():(e.scroll.cancelScheduledLayout(),i=e.cancelLayoutTimer({stateUpdate:i}),s("~ Update Layout (on ".concat(r,") ~")),void t.call(e,{stateUpdate:i}))},this.getListTopOffsetInsideScrollableContainer=function(){var t=e.scrollableContainer.getItemsContainerTopOffset();return e.listTopOffsetWatcher&&e.listTopOffsetWatcher.onListTopOffset(t),t},this._onItemHeightDidChange=function(t){var n=e._getItemIndexByItemOrIndex(t);if(void 0!==n){var r=e.getState(),i=r.itemHeights,u=r.firstShownItemIndex,h=r.lastShownItemIndex;if(s("~ On Item Height Did Change was called ~"),s("Item index",n),!(n>=u&&n<=h))return l("The item is no longer rendered. This is not necessarily a bug, and could happen, for example, when when a developer calls `onItemHeightDidChange(item)` while looping through a batch of items.");var f=i[n];if(void 0!==f){var m;s("~ Re-measure item height ~");try{m=o.call(e,n)}catch(e){if(e instanceof j)return c('"onItemHeightDidChange()" has been called for item index '.concat(n," but the item is not currently rendered and can't be measured. The exact error was: ").concat(e.message))}s("Previous height",f),s("New height",m),f!==m&&(s("~ Item height has changed. Should update layout. ~"),a.call(e,n,f,m),e._isActive&&(e.waitingForRender?(s("~ Another state update is already waiting to be rendered. Delay the layout update until then. ~"),e.updateLayoutAfterRenderBecauseItemHeightChanged=!0):e.onUpdateShownItemIndexes({reason:Pe})),e.newItemsWillBeRendered&&(e.itemHeightsThatChangedWhileNewItemsWereBeingRendered||(e.itemHeightsThatChangedWhileNewItemsWereBeingRendered={}),e.itemHeightsThatChangedWhileNewItemsWereBeingRendered[String(n)]=m))}}},this.getPrerenderMargin=function(){return e.scrollableContainer.getHeight()*e.getPrerenderMarginRatio()},this.getPrerenderMarginRatio=function(){return 1},this.onBeforeShowItems=function(t,n,r,i){if(e.onItemInitialRender)for(var o=r;o<=i;)void 0===n[o]&&e.onItemInitialRender(t[o]),o++},this.measureItemHeightsAndSpacing=function(){e.itemHeights.measureItemHeights(e.getState().firstShownItemIndex,e.getState().lastShownItemIndex);var t=e.measureVerticalSpacingIfNotMeasured();if(t&&0!==t)return{verticalSpacing:t}},this.cancelLayoutTimer=function(t){var n=t.stateUpdate;return e.layoutTimer?(he(e.layoutTimer),e.layoutTimer=void 0,n||e.layoutTimerStateUpdate?(n=rt(rt({},e.layoutTimerStateUpdate),n),e.layoutTimerStateUpdate=void 0,n):void 0):n},this.scheduleLayoutTimer=function(t){var n=t.reason,r=t.stateUpdate;e.layoutTimerStateUpdate=r,e.layoutTimer=ce(function(){e.layoutTimerStateUpdate=void 0,e.layoutTimer=void 0,e.onUpdateShownItemIndexes({reason:n,stateUpdate:r})},0)}}var at=15;function st(e){return st="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},st(e)}var lt=Object.prototype.hasOwnProperty;function ut(e,t){return e===t?0!==e||0!==t||1/e==1/t:e!=e&&t!=t}function ct(e,t){if(ut(e,t))return!0;if("object"!==st(e)||null===e||"object"!==st(t)||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(var i=0;i<n.length;i++)if(!lt.call(t,n[i])||!ut(e[n[i]],t[n[i]]))return!1;return!0}function ht(e){return(e%1==0?e:e.toFixed(2))+"px"}function ft(){return!("undefined"!=typeof window&&Boolean(window.document.documentMode))}var mt="VirtualScroller",dt="VirtualScrollerStyle";function gt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function pt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?gt(Object(n),!0).forEach(function(t){It(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):gt(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function It(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function yt(){var e=this;function t(e,t){if(e){var n=e.prependedItemsCount;e.appendedItemsCount;var r=this.getState(),i=r.itemHeights,o=r.itemStates;if(this.itemHeightsThatChangedWhileNewItemsWereBeingRendered)for(var a=0,u=Object.keys(this.itemHeightsThatChangedWhileNewItemsWereBeingRendered);a<u.length;a++){var c=u[a];i[n+Number(c)]=this.itemHeightsThatChangedWhileNewItemsWereBeingRendered[c]}if(this.itemStatesThatChangedWhileNewItemsWereBeingRendered)for(var h=0,f=Object.keys(this.itemStatesThatChangedWhileNewItemsWereBeingRendered);h<f.length;h++){var m=f[h];o[n+Number(m)]=this.itemStatesThatChangedWhileNewItemsWereBeingRendered[m]}if(0===n)return this.previouslyCalculatedLayout&&(this.previouslyCalculatedLayout.firstShownItemIndex===t.firstShownItemIndex&&this.previouslyCalculatedLayout.lastShownItemIndex===t.lastShownItemIndex||(l('Unexpected (non-matching) "firstShownItemIndex" or "lastShownItemIndex" encountered in "onRender()" after appending items'),l("Previously calculated layout",this.previouslyCalculatedLayout),l("New layout",t),this.previouslyCalculatedLayout=void 0)),"SEAMLESS_APPEND";if(this.listHeightMeasurement.hasSnapshot()){if(0===t.firstShownItemIndex){s("~ Restore Scroll Position ~");var d=this.listHeightMeasurement.getListBottomOffsetChange({beforeItemsHeight:t.beforeItemsHeight});return this.listHeightMeasurement.reset(),d?(s("Scroll down by",d),this.scroll.scrollByY(d)):s("Scroll position hasn't changed"),this.previouslyCalculatedLayout&&(0===this.previouslyCalculatedLayout.firstShownItemIndex&&this.previouslyCalculatedLayout.lastShownItemIndex===t.lastShownItemIndex-n?this.previouslyCalculatedLayout={beforeItemsHeight:0,shownItemsHeight:this.previouslyCalculatedLayout.shownItemsHeight+d,firstShownItemIndex:0,lastShownItemIndex:t.lastShownItemIndex}:(l('Unexpected (non-matching) "firstShownItemIndex" or "lastShownItemIndex" encountered in "onRender()" after prepending items'),l("Previously calculated layout",this.previouslyCalculatedLayout),l("New layout",t),this.previouslyCalculatedLayout=void 0)),"SEAMLESS_PREPEND"}l('Unexpected "firstShownItemIndex" '.concat(t.firstShownItemIndex,' encountered in "onRender()" after prepending items. Expected 0.'))}}this.previouslyCalculatedLayout=void 0}function n(e){var t=e.reason,n=e.stateUpdate;this._useTimeoutInRenderLoop?(n=this.cancelLayoutTimer({stateUpdate:n}),this.scheduleLayoutTimer({reason:t,stateUpdate:n})):this.onUpdateShownItemIndexes({reason:t,stateUpdate:n})}function r(){var e=Boolean(this.widthHasChanged);this.widthHasChanged=void 0;var t=void 0!==this.firstNonMeasuredItemIndex;t&&s("Non-measured item index",this.firstNonMeasuredItemIndex),this.firstNonMeasuredItemIndex=void 0,this.newItemsWillBeRendered=void 0,this.itemHeightsThatChangedWhileNewItemsWereBeingRendered=void 0,this.itemStatesThatChangedWhileNewItemsWereBeingRendered=void 0;var n=this.updateLayoutAfterRenderBecauseItemHeightChanged;return this.updateLayoutAfterRenderBecauseItemHeightChanged=void 0,{nonMeasuredItemsHaveBeenRendered:t,itemHeightHasChanged:n,widthHasChanged:e}}this._onRender=function(i,o){var a,u,f;e.waitingForRender=!1,s("~ Rendered ~"),h()&&s("State",p(i)),e.onStateChange&&(ct(i,o)||e.onStateChange(i)),e.isItemsContainerElementTableBody()&&(a=e.getItemsContainerElement(),u=i.beforeItemsHeight,f=i.afterItemsHeight,a.style.setProperty("--VirtualScroller-paddingTop",ht(u)),a.style.setProperty("--VirtualScroller-paddingBottom",ht(f))),e.mostRecentSetStateValue&&(ct(i,e.mostRecentSetStateValue)||(l("The most recent state that was set",p(e.mostRecentSetStateValue)),c("`VirtualScroller` has been rendered with a `state` that is not equal to the most recently set one")));var m,d=r.call(e),g=d.nonMeasuredItemsHaveBeenRendered,I=d.itemHeightHasChanged,y=d.widthHasChanged;if(I&&(m=Pe),o||m){if(g&&(m=Oe),y&&(m=Re,e.itemHeights.reset(),e.verticalSpacing=void 0),o){var v=o.items,S=i.items;if(S!==v){var b=e.getItemsDiff(v,S);if(b){var w=b.prependedItemsCount;e.itemHeights.onPrepend(w)}else e.itemHeights.reset();y||"SEAMLESS_PREPEND"!==t.call(e,b,i)&&(m=Te)}}var C;if(o&&(i.firstShownItemIndex!==o.firstShownItemIndex||i.lastShownItemIndex!==o.lastShownItemIndex||i.items!==o.items)||y){var O=e.measureItemHeightsAndSpacing();O&&(C=pt(pt({},C),O))}var R=e.beforeResize.cleanUpBeforeResizeItemHeights();if(void 0!==R){var H=R.scrollBy,x=R.beforeResize;s("Correct scroll position by",H),e.scroll.scrollByY(H),C=pt(pt({},C),{},{beforeResize:x})}e._isActive?m?n.call(e,{stateUpdate:C,reason:m}):C?e.updateState(C):s("~ Finished Layout ~"):e._afterRenderStateUpdateThatWasStopped=C}}}function vt(){var e=this;this.onContainerResize=function(){e.previouslyCalculatedLayout=void 0,e.listHeightMeasurement.reset();var t=e.newItemsWillBeRendered?e.newItemsWillBeRendered.count:e.getState().itemHeights.length,n=e.newItemsWillBeRendered?e.newItemsWillBeRendered.layout:e.getState(),r={scrollableContainerWidth:e.scrollableContainer.getWidth(),firstShownItemIndex:n.firstShownItemIndex,lastShownItemIndex:n.lastShownItemIndex,beforeItemsHeight:n.beforeItemsHeight,afterItemsHeight:n.afterItemsHeight,itemHeights:new Array(t),columnsCount:e.getActualColumnsCountForState(),verticalSpacing:void 0},i=n.firstShownItemIndex,o=n.lastShownItemIndex,a=e.getActualColumnsCount(),l=Math.floor(i/a)*a,u=Math.min(Math.ceil((o+1)/a)*a,t)-1;l!==i&&(s("Columns Count changed from",e.getState().columnsCount||1,"to",a),s("First Shown Item Index needs to change from",i,"to",l)),r.firstShownItemIndex=l,r.lastShownItemIndex=u;var c=e.getVerticalSpacing(),h=e.getColumnsCount();e.shouldDiscardBeforeResizeItemHeights()||0===l?e.beforeResize.shouldIncludeBeforeResizeValuesInState()&&(r.beforeResize=void 0):r.beforeResize={verticalSpacing:c,columnsCount:h,itemHeights:e.beforeResize.snapshotBeforeResizeItemHeights({firstShownItemIndex:i,newFirstShownItemIndex:l})},e.widthHasChanged={stateUpdate:r},e.updateState(r)},this.shouldDiscardBeforeResizeItemHeights=function(){if(e.newItemsWillBeRendered){var t=e.newItemsWillBeRendered,n=t.prepend,r=t.replace;return n||r}}}function St(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function bt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?St(Object(n),!0).forEach(function(t){wt(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):St(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function wt(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ct(){var e=this;this.getItemsCount=function(){return e.getState().items.length},this._getItemIndexByItemOrIndex=function(t){var n=t,r=e.getState().items,i=r.indexOf(n);if(i>=0)return i;if("number"==typeof t){var o=t;if(o>=0&&o<r.length)return o}else{var a=e._getItemId;if(a){var s=a(n),l=r.findIndex(function(e){return a(e)===s});if(l>=0)return l}}c("Item not found: ".concat(JSON.stringify(n)))},this._setItems=function(t){var n,r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=e.getState().items,a=e.getState().itemStates,l=(e.widthHasChanged?e.widthHasChanged.stateUpdate:e.getState()).itemHeights;s("~ Update items ~");var u=e.getItemsDiff(o,t);if(u){var c,h=e.widthHasChanged?e.widthHasChanged.stateUpdate:e.getState(),f=h.firstShownItemIndex,m=h.lastShownItemIndex,d=h.beforeItemsHeight,g=h.afterItemsHeight,p=0===f&&(i.preserveScrollPositionOnPrependItems||i.preserveScrollPosition),I=u.prependedItemsCount,y=u.appendedItemsCount;n=e.layout.getLayoutUpdateForItemsDiff({firstShownItemIndex:f,lastShownItemIndex:m,beforeItemsHeight:d,afterItemsHeight:g},{prependedItemsCount:I,appendedItemsCount:y},{itemsCount:t.length,columnsCount:e.getActualColumnsCount(),shouldRestoreScrollPosition:p,onResetGridLayout:function(){return c=!0}}),I>0&&(s("Prepend",I,"items"),l=new Array(I).concat(l),a=$e(new Array(I),function(n){return e.getInitialItemState(t[n])}).concat(a),p?(s("Will restore scroll position"),e.listHeightMeasurement.snapshotListHeightBeforeAddingNewItems({previousItems:o,newItems:t,prependedItemsCount:I}),void 0!==e.firstNonMeasuredItemIndex&&(e.firstNonMeasuredItemIndex+=I)):(s("Reset layout"),c?(s("Reason: Prepended items count",I,"is not divisible by Columns Count",e.getActualColumnsCount()),l=new Array(t.length)):s("Reason: Prepended items' heights are unknown"),n=e.layout.getInitialLayoutValues({itemsCount:t.length,columnsCount:e.getActualColumnsCount()}),e.firstNonMeasuredItemIndex=void 0)),y>0&&(s("Append",y,"items"),l=l.concat(new Array(y)),a=a.concat($e(new Array(y),function(n){return e.getInitialItemState(t[I+o.length+n])}))),r={prepend:I>0,append:y>0}}else s("Items have changed, and",u?"a re-layout from scratch has been requested.":"it's not a simple append and/or prepend.","Rerender the entire list from scratch."),s("Previous items",o),s("New items",t),l=new Array(t.length),a=$e(new Array(t.length),function(n){return e.getInitialItemState(t[n])}),n=e.layout.getInitialLayoutValues({itemsCount:t.length,columnsCount:e.getActualColumnsCount()}),e.firstNonMeasuredItemIndex=void 0,e.listHeightMeasurement.reset(),r={replace:!0};s("~ Update state ~"),s("First shown item index",n.firstShownItemIndex),s("Last shown item index",n.lastShownItemIndex),s("Before items height",n.beforeItemsHeight),s("After items height (actual or estimated)",n.afterItemsHeight),e.onBeforeShowItems(t,l,n.firstShownItemIndex,n.lastShownItemIndex),e.newItemsWillBeRendered=bt(bt({},r),{},{count:t.length,layout:n});var v=bt(bt({},n),{},{items:t,itemStates:a,itemHeights:l});e.beforeResize.shouldIncludeBeforeResizeValuesInState()&&(e.shouldDiscardBeforeResizeItemHeights()?v.beforeResize=void 0:v.beforeResize=e.widthHasChanged?e.widthHasChanged.stateUpdate.beforeResize:e.getState().beforeResize),e._isSettingNewItems=!0,e.updateState(v)},this.getItemsDiff=function(t,n){return function(e,t,n){var r=-1,i=-1;if(e.length>0&&(r=function(e,t,n){for(var r=0;r<e.length;){if(n(e[r],t))return r;r++}return-1}(t,e[0],n),r>=0&&function(e,t,n,r){for(var i=0;i<e.length;){if(t.length<=n+i||!r(t[n+i],e[i]))return!1;i++}return!0}(e,t,r,n)&&(i=r+e.length-1)),r>=0&&i>=0)return{prependedItemsCount:r,appendedItemsCount:t.length-(i+1)}}(t,n,e.isItemEqual)}}function Ot(e,t){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},i=r.bypass,o=r.render,a=r.state,u=r.getInitialItemState,c=void 0===u?function(){}:u,h=r.onStateChange,f=r.initialScrollPosition,m=r.onScrollPositionChange,d=r.scrollableContainer,g=r.measureItemsBatchSize,p=void 0===g?50:g,I=r.getColumnsCount,y=r.getItemId,v=r.estimatedItemHeight,S=r.getEstimatedVisibleItemRowsCount,b=r.getEstimatedInterItemVerticalSpacing,w=r.onItemInitialRender,C=r.onItemFirstRender,O=r._useTimeoutInRenderLoop,R=r._waitForScrollingToStop,H=r.engine,x=r.getEstimatedItemHeight,P=r.getScrollableContainer;if(s("~ Initialize ~"),this.engine=H||de,x||"number"!=typeof v||(x=function(){return v}),!P&&d&&(P=function(){return d}),this.getItemsContainerElement=e,r.getState||r.setState)throw new Error("[virtual-scroller] `getState`/`setState` options usage has changed in the new version. See the readme for more details.");i&&s('~ "bypass" mode ~'),this._bypass=i,this._useTimeoutInRenderLoop=O,this._getItemId=y,this.isItemEqual=y?function(e,t){return y(e)===y(t)}:function(e,t){return e===t},w?this.onItemInitialRender=w:C&&(this.onItemInitialRender=function(e){l("`onItemFirstRender(i)` is deprecated, use `onItemInitialRender(item)` instead.");var t=n.getState().items.indexOf(e);t>=0&&C(t)}),a&&(t=a.items),s("Items count",t.length),x&&s("Estimated item height",x()),Qe.call(this,{state:a,getInitialItemState:c,onStateChange:h,render:o,items:t}),et.call(this,{getEstimatedInterItemVerticalSpacing:b}),tt.call(this,{getColumnsCount:I}),ot.call(this),yt.call(this),vt.call(this),Ct.call(this),Rt.call(this,{getScrollableContainer:P,getEstimatedItemHeight:x,getEstimatedVisibleItemRowsCount:S,measureItemsBatchSize:p,initialScrollPosition:f,onScrollPositionChange:m,waitForScrollingToStop:R}),a&&(this.itemHeights.readItemHeightsFromState(a),this.beforeResize.initializeFromState(a))}function Rt(e){var t=this,n=e.getScrollableContainer,r=e.getEstimatedItemHeight,i=e.getEstimatedVisibleItemRowsCount,o=e.measureItemsBatchSize,a=e.initialScrollPosition,l=e.onScrollPositionChange,u=e.waitForScrollingToStop;this.itemsContainer=this.engine.createItemsContainer(this.getItemsContainerElement),this.getItemsContainerElement()&&this.itemsContainer.clear(),this.isItemsContainerElementTableBody=function(){return t.engine===de&&"TBODY"===t.getItemsContainerElement().tagName},this.isInBypassMode=function(){return t._bypass},this.scrollableContainer=this.engine.createScrollableContainer(n,this.getItemsContainerElement),this.itemHeights=new Ke({container:this.itemsContainer,getItemHeight:function(e){return t.getState().itemHeights[e]},setItemHeight:function(e,n){return t.getState().itemHeights[e]=n}}),this.getAverageItemHeight=function(){var e=t.itemHeights.getAverageItemHeight();return"number"==typeof e?e:t.getEstimatedItemHeight()},this.getEstimatedItemHeight=function(){if(r){var e=r();if("number"==typeof e)return e;throw new Error("[virtual-scroller] `getEstimatedItemHeight()` must return a number")}return 0},this.layout=new ve({isInBypassMode:this.isInBypassMode,getEstimatedVisibleItemRowsCountForInitialRender:i,measureItemsBatchSize:o,getPrerenderMargin:function(){return t.getPrerenderMargin()},getPrerenderMarginRatio:function(){return t.getPrerenderMarginRatio()},getVerticalSpacing:function(){return t.getVerticalSpacing()},getVerticalSpacingBeforeResize:function(){return t.getVerticalSpacingBeforeResize()},getColumnsCount:function(){return t.getColumnsCount()},getColumnsCountBeforeResize:function(){return t.getState().beforeResize&&t.getState().beforeResize.columnsCount},getItemHeight:function(e){return t.getState().itemHeights[e]},getItemHeightBeforeResize:function(e){return t.getState().beforeResize&&t.getState().beforeResize.itemHeights[e]},getBeforeResizeItemsCount:function(){return t.getState().beforeResize?t.getState().beforeResize.itemHeights.length:0},getAverageItemHeight:function(){return t.getAverageItemHeight()},getMaxVisibleAreaHeight:function(){return t.scrollableContainer&&t.scrollableContainer.getHeight()},getPreviouslyCalculatedLayout:function(){return t.previouslyCalculatedLayout}}),this.scrollableContainerResizeHandler=new Me({isInBypassMode:this.isInBypassMode,getWidth:function(){return t.scrollableContainer.getWidth()},getHeight:function(){return t.scrollableContainer.getHeight()},listenForResize:function(e){return t.scrollableContainer.onResize(e)},onResizeStart:function(){s("~ Scrollable container resize started ~"),t._isResizing=!0},onResizeStop:function(){s("~ Scrollable container resize finished ~"),t._isResizing=void 0},onNoChange:function(){t.onUpdateShownItemIndexes({reason:xe})},onHeightChange:function(){return t.onUpdateShownItemIndexes({reason:He})},onWidthChange:function(e,n){s("~ Scrollable container width changed from",e,"to",n,"~"),t.onContainerResize()}}),this.scroll=new We({isInBypassMode:this.isInBypassMode,scrollableContainer:this.scrollableContainer,itemsContainer:this.itemsContainer,waitForScrollingToStop:u,onScroll:function(){var e=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).delayed;t.onUpdateShownItemIndexes({reason:e?be:Se})},initialScrollPosition:a,onScrollPositionChange:l,isImmediateLayoutScheduled:function(){return Boolean(t.layoutTimer)},hasNonRenderedItemsAtTheTop:function(){return t.getState().firstShownItemIndex>0},hasNonRenderedItemsAtTheBottom:function(){return t.getState().lastShownItemIndex<t.getItemsCount()-1},getLatestLayoutVisibleArea:function(){return t.latestLayoutVisibleArea},getListTopOffset:this.getListTopOffsetInsideScrollableContainer,getPrerenderMargin:function(){return t.getPrerenderMargin()}}),this.listHeightMeasurement=new qe({itemsContainer:this.itemsContainer,getListTopOffset:this.getListTopOffsetInsideScrollableContainer}),this.engine.watchListTopOffset&&(this.listTopOffsetWatcher=this.engine.watchListTopOffset({getListTopOffset:this.getListTopOffsetInsideScrollableContainer,onListTopOffsetChange:function(e){return e.reason,t.onUpdateShownItemIndexes({reason:Ee})}})),this.beforeResize=new ke({getState:this.getState,getVerticalSpacing:this.getVerticalSpacing,getColumnsCount:this.getColumnsCount})}function Ht(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function xt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ht(Object(n),!0).forEach(function(t){Tt(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ht(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Pt(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function Tt(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Et=function(){function e(t,n){var r=this,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),Tt(this,"stop",function(){if(!r._isActive)throw new Error("[virtual-scroller] Can't stop a `VirtualScroller` that hasn't been started");r._isActive=!1,s("~ Stop ~"),r.scrollableContainerResizeHandler.stop(),r.scroll.stop(),r.listTopOffsetWatcher&&r.listTopOffsetWatcher.isStarted()&&r.listTopOffsetWatcher.stop(),r.cancelLayoutTimer({})}),Tt(this,"updateLayout",function(){r.hasToBeStarted(),r.onUpdateShownItemIndexes({reason:we})}),Tt(this,"onRender",function(){r._onRender(r.getState(),r.previousState)}),Ot.call(this,t,n,i)}var t,n,r;return t=e,n=[{key:"start",value:function(){if(this._isActive)throw new Error("[virtual-scroller] `VirtualScroller` has already been started");var e=!1===this._isActive;e||(this.setUpState(),this.waitingForRender=!0,this._render&&this._render(this.getState())),s(e?"~ Start (restart) ~":"~ Start ~"),this._isActive=!0,this.listHeightMeasurement.reset(),this._isResizing=void 0,this._isSettingNewItems=void 0,this.isInBypassMode()||this.isItemsContainerElementTableBody()&&(ft()?this.getItemsContainerElement().classList.contains(mt)&&Boolean(document.getElementById(dt))||(s("~ <tbody/> container ~"),function(e){e.classList.add(mt);var t=document.createElement("style");t.id=dt,t.innerText="\n\t\ttbody.".concat(mt,":before {\n\t\t\tcontent: '';\n\t\t\tdisplay: table-row;\n\t\t\theight: var(--VirtualScroller-paddingTop);\n\t\t}\n\t\ttbody.").concat(mt,":after {\n\t\t\tcontent: '';\n\t\t\tdisplay: table-row;\n\t\t\theight: var(--VirtualScroller-paddingBottom);\n\t\t}\n\t").replace(/[\n\t]/g,""),document.head.appendChild(t)}(this.getItemsContainerElement())):(s("~ <tbody/> container not supported ~"),c("It looks like you're using Internet Explorer which doesn't support CSS variables required for a <tbody/> container. VirtualScroller has been switched into \"bypass\" mode (render all items). See: https://gitlab.com/catamphetamine/virtual-scroller/-/issues/1"),s('~ enter "bypass" mode ~'),this._bypass=!0));var t=this._afterRenderStateUpdateThatWasStopped;this._afterRenderStateUpdateThatWasStopped=void 0,this.verticalSpacing=void 0;var n=this.measureItemHeightsAndSpacing();if(n&&(t=xt(xt({},t),n)),this.scrollableContainerResizeHandler.start(),this.scroll.start(),void 0===this.getState().scrollableContainerWidth){var r=this.scrollableContainer.getWidth();t=xt(xt({},t),{},{scrollableContainerWidth:r})}else{var i=this.scrollableContainer.getWidth(),o=this.getState().scrollableContainerWidth;if(i!==o)return s("~ Scrollable container width changed from",o,"to",i,"~"),this.onContainerResize()}if(this._usesCustomStateStorage&&this.getActualColumnsCount()!==(this.getState().columnsCount||1))return this.onContainerResize();this.onUpdateShownItemIndexes({reason:Ce,stateUpdate:t})}},{key:"hasToBeStarted",value:function(){if(!this._isActive)throw new Error("[virtual-scroller] `VirtualScroller` hasn't been started")}},{key:"getItemScrollPosition",value:function(e){var t=this._getItemIndexByItemOrIndex(e);if(void 0!==t){var n=this.layout.getItemTopOffset(t);if(void 0!==n)return this.getListTopOffsetInsideScrollableContainer()+n}}},{key:"onItemHeightChange",value:function(e){l("`.onItemHeightChange(item)` method was renamed to `.onItemHeightDidChange(item)`"),this.onItemHeightDidChange(e)}},{key:"onItemHeightDidChange",value:function(e){this._onItemHeightDidChange(e)}},{key:"setItemState",value:function(e,t){this._setItemState(e,t)}},{key:"onItemStateChange",value:function(e,t){this.setItemState(e,t)}},{key:"setItems",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.hasToBeStarted(),this._setItems(e,t)}}],n&&Pt(t.prototype,n),r&&Pt(t,r),Object.defineProperty(t,"prototype",{writable:!1}),e}();function jt(t,n){var r=e.useRef(t),i=r.current;r.current=t,t!==i&&n(t,i)}function Mt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Bt(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Mt(Object(n),!0).forEach(function(t){Lt(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Mt(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function Lt(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function At(t){var n=t.items,r=t.tbody,i=t.readyToStart,o=t.style,a=t.className,l=t.bypass,u=t.preserveScrollPosition,h=t.preserveScrollPositionOnPrependItems,f=t.measureItemsBatchSize,m=t.scrollableContainer,d=t.getScrollableContainer,g=t.getColumnsCount,p=t.getItemId,I=t.onItemFirstRender,y=t.onItemInitialRender,v=t.initialScrollPosition,S=t.onScrollPositionChange,b=t.initialState,C=t.getInitialItemState,O=t.onStateChange,R=t.getEstimatedItemHeight,H=t.getEstimatedVisibleItemRowsCount,x=t.getEstimatedInterItemVerticalSpacing,P=e.useRef(),T=e.useRef(!1);e.useLayoutEffect(function(){T.current=!0},[]);var E=function(t,n){var r=t.items,i=t.estimatedItemHeight,o=t.getEstimatedItemHeight,a=t.getEstimatedVisibleItemRowsCount,s=t.getEstimatedInterItemVerticalSpacing,l=t.bypass,u=t.onItemInitialRender,c=t.onItemFirstRender,h=t.initialScrollPosition,f=t.onScrollPositionChange,m=t.measureItemsBatchSize,d=t.scrollableContainer,g=t.getScrollableContainer,p=t.getColumnsCount,I=t.getItemId,y=t.initialState,v=t.getInitialItemState,S=t.onStateChange,b=n.getItemsContainerElement;return e.useMemo(function(){return new Et(b,r,{_useTimeoutInRenderLoop:!0,estimatedItemHeight:i,getEstimatedItemHeight:o,getEstimatedVisibleItemRowsCount:a,getEstimatedInterItemVerticalSpacing:s,bypass:l,onItemInitialRender:u,onItemFirstRender:c,initialScrollPosition:h,onScrollPositionChange:f,measureItemsBatchSize:m,scrollableContainer:d,getScrollableContainer:g,getColumnsCount:p,getItemId:I,state:y,getInitialItemState:v,onStateChange:S})},[])}({items:n,getEstimatedItemHeight:R,getEstimatedVisibleItemRowsCount:H,getEstimatedInterItemVerticalSpacing:x,bypass:l,onItemInitialRender:y,onItemFirstRender:I,initialScrollPosition:v,onScrollPositionChange:S,measureItemsBatchSize:f,scrollableContainer:m,getScrollableContainer:d,getColumnsCount:g,getItemId:p,initialState:b,getInitialItemState:C,onStateChange:O},{getItemsContainerElement:function(){if(T.current&&!P.current)throw new Error("[virtual-scroller] Did you forget to pass the returned `itemsContainerRef` property as the items container component's `ref`?");return P.current}}),j=w({initialState:e.useMemo(function(){return E.getInitialState()},[]),onRender:E.onRender}),M=j.getState,B=j.setState,L=j.stateToRender;e.useMemo(function(){E.useState({getState:M,setState:B})},[]),function(t,n){var r=n.readyToStart,i=e.useRef(!1),o=function(){i.current||(!1===r?s("Could've started but isn't ready to start"):(i.current=!0,t.start()))},a=function(){i.current&&(t.stop(),i.current=!1)};e.useLayoutEffect(function(){return o(),a},[]);var l=e.useRef(r);e.useEffect(function(){!1===l.current&&!1!==r&&(l.current=r,s("Is ready to start"),o())},[r])}(E,{readyToStart:i}),function(e,t){var n=t.virtualScroller,r=t.preserveScrollPosition,i=t.preserveScrollPositionOnPrependItems;jt(e,function(e,t){s("React: ~ Different `items` property has been passed",e);var o=!0,a=n.getItemsDiff(t,e);if(a){var l=a.prependedItemsCount,u=a.appendedItemsCount;0===l&&0===u&&(s("React: ~ The `items` elements are identical to the previous ones"),o=!1)}o&&n.setItems(e,{preserveScrollPositionOnPrependItems:i||r})})}(n,{virtualScroller:E,preserveScrollPosition:u,preserveScrollPositionOnPrependItems:h}),function(t){var n=t.virtualScroller,r=t.tbody;e.useEffect(function(){n.isItemsContainerElementTableBody()&&!r&&console.error('[virtual-scroller] When using `<tbody/>` as a container for list items, `itemsContainerComponent` property must be `"tbody"`')},[])}({virtualScroller:E,tbody:r});var A=function(e,t){return t.tbody?e?e+" "+mt:mt:e}(a,{tbody:r}),z=function(e,t){var n=t.tbody,r=t.state;if(n)return e;e&&("number"==typeof e.padding&&c("`style` property can't include any `padding`"),"number"==typeof e.paddingTop&&c("`style` property can't include any `paddingTop`"),"number"==typeof e.paddingBottom&&c("`style` property can't include any `paddingBottom`"));var i=r.beforeItemsHeight,o=r.afterItemsHeight;return Bt(Bt({},e),{},{paddingTop:ht(i),paddingBottom:ht(o)})}(o,{tbody:r,state:L});return{state:L,style:z,className:A,itemsContainerRef:P,virtualScroller:E}}function zt(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(n)return(n=n.call(e)).next.bind(n);if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return Vt(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Vt(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0;return function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function Vt(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function kt(t){var n=t.getItemId,r=e.useMemo(function(){return[]},[]),i=e.useCallback(function(e){r.push(e)},[]),o=e.useRef(),a=e.useMemo(function(){var e=0;return function(){o.current=String(function(){if(e===Number.MAX_SAFE_INTEGER){for(var t,n=zt(r);!(t=n()).done;)(0,t.value)();e=0}return++e}())}},[o,r]);e.useMemo(function(){a()},[]);var l=!n,u=e.useCallback(function(){l&&(a(),s("React: ~ Item key prefix:",o.current))},[l,a]),c=e.useCallback(function(e,t){return n?String(n(e)):"".concat(o.current,":").concat(t)},[n,o]);return{getItemKey:c,onItemKeysReset:i,usesAutogeneratedItemKeys:l,updateItemKeysForNewItems:u}}function _t(e,t){e&&("function"==typeof e?e(t):e.current=t)}var Nt=["as","items","itemComponent","itemComponentProps","itemsContainerComponent","itemsContainerComponentProps","itemsContainerRef","onMount","tbody","readyToStart","className","bypass","preserveScrollPosition","preserveScrollPositionOnPrependItems","measureItemsBatchSize","scrollableContainer","getScrollableContainer","getColumnsCount","getItemId","onItemFirstRender","onItemInitialRender","initialScrollPosition","onScrollPositionChange","initialState","getInitialItemState","onStateChange","estimatedItemHeight","getEstimatedItemHeight","getEstimatedVisibleItemRowsCount","getEstimatedInterItemVerticalSpacing"];function Dt(){return Dt=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Dt.apply(this,arguments)}function Wt(e,t){if(null==e)return{};var n,r,i=function(e,t){if(null==e)return{};var n,r,i={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function Ft(t,n){var i=t.as,o=t.items,a=t.itemComponent,u=t.itemComponentProps,h=t.itemsContainerComponent,f=t.itemsContainerComponentProps,m=t.itemsContainerRef,d=t.onMount,g=t.tbody,p=t.readyToStart,I=t.className,y=t.bypass,v=t.preserveScrollPosition,S=t.preserveScrollPositionOnPrependItems,b=t.measureItemsBatchSize,w=t.scrollableContainer,C=t.getScrollableContainer,O=t.getColumnsCount,R=t.getItemId,H=t.onItemFirstRender,x=t.onItemInitialRender,P=t.initialScrollPosition,T=t.onScrollPositionChange,E=t.initialState,j=t.getInitialItemState,M=t.onStateChange,B=t.estimatedItemHeight,L=t.getEstimatedItemHeight,A=t.getEstimatedVisibleItemRowsCount,z=t.getEstimatedInterItemVerticalSpacing,V=Wt(t,Nt);h||(h=i||"div"),void 0===g&&(g="tbody"===h);var k=At({items:o,tbody:g,readyToStart:p,style:f&&f.style,className:I||f&&f.className,bypass:y,preserveScrollPosition:v,preserveScrollPositionOnPrependItems:S,measureItemsBatchSize:b,scrollableContainer:w,getScrollableContainer:C,getColumnsCount:O,getItemId:R,onItemFirstRender:H,onItemInitialRender:x,initialScrollPosition:P,onScrollPositionChange:T,initialState:E,getInitialItemState:j,onStateChange:M,getEstimatedItemHeight:L||("number"==typeof B?function(){return B}:void 0),getEstimatedVisibleItemRowsCount:A,getEstimatedInterItemVerticalSpacing:z}),_=k.state,N=k.style,D=k.className,W=k.itemsContainerRef,F=k.virtualScroller,U=function(t,n,r,i){if(i)throw new Error("A maximum of 3 refs is supported");return e.useCallback(function(e){_t(t,e),_t(n,e),_t(r,e)},[t,n,r])}(W,m),q=kt({getItemId:R}),Y=q.getItemKey,K=q.onItemKeysReset,$=q.usesAutogeneratedItemKeys,G=q.updateItemKeysForNewItems;!function(e,t){var n=t.virtualScroller,r=t.usesAutogeneratedItemKeys,i=t.updateItemKeysForNewItems;jt(e,function(e,t){if(r){s("React: ~ Different `items` are about to be rendered",e);var o=!0,a=n.getItemsDiff(t,e);if(a){var l=a.prependedItemsCount,u=a.appendedItemsCount;0===l&&0===u?(s("React: ~ The `items` elements to be rendered are identical to the previously rendered ones"),o=!1):0===l&&u>0&&(s("React: ~ The `items` elements order hasn't changed:",u,"items have been appended"),o=!1)}o&&(s("React: ~ Update item `key`s"),i())}})}(_.items,{virtualScroller:F,usesAutogeneratedItemKeys:$,updateItemKeysForNewItems:G});var J=function(t){var n=t.getItemKey,r=t.onItemKeysReset,i=t.virtualScroller,o=e.useMemo(function(){return{}},[]),a=e.useRef(o);return e.useMemo(function(){r(function(){a.current={}})},[]),e.useCallback(function(e){var t=n(e);return a.current[t]||(a.current[t]=function(t){i.setItemState(e,t)}),a.current[t]},[i,n,a])}({getItemKey:Y,onItemKeysReset:K,virtualScroller:F}),X=function(t){var n=t.getItemKey,r=t.onItemKeysReset,i=t.virtualScroller,o=e.useMemo(function(){return{}},[]),a=e.useRef(o);return e.useMemo(function(){r(function(){a.current={}})},[]),e.useCallback(function(e){var t=n(e);return a.current[t]||(a.current[t]=function(){i.onItemHeightDidChange(e)}),a.current[t]},[i,n,a])}({getItemKey:Y,onItemKeysReset:K,virtualScroller:F});!function(t,n){var r=n.virtualScroller;e.useImperativeHandle(t,function(){return{updateLayout:function(){r.updateLayout()},layout:function(){r.updateLayout()},updateItem:function(e){c('".updateItem(i)" method of React <VirtualScroller/> has been removed')},renderItem:function(e){c('".renderItem(i)" method of React <VirtualScroller/> has been removed')}}},[r])}(n,{virtualScroller:F}),e.useLayoutEffect(function(){d&&(l("`onMount` property is deprecated"),d())},[]);var Q=_.items,Z=_.itemStates,ee=_.firstShownItemIndex,te=_.lastShownItemIndex;return r.default.createElement(h,Dt({},f,V,{ref:U,className:D,style:N}),Q.map(function(e,t){return t>=ee&&t<=te?r.default.createElement(a,Dt({item:e,itemIndex:t},u,{key:Y(e,t),state:Z&&Z[t],setState:J(t),onStateChange:J(t),onHeightChange:X(t),onHeightDidChange:X(t)}),e):null}))}var Ut=Ft=r.default.forwardRef(Ft),qt=i.default.elementType||i.default.oneOfType([i.default.string,i.default.func,i.default.object]);return Ft.propTypes={as:qt,items:i.default.arrayOf(i.default.any).isRequired,itemComponent:qt.isRequired,itemComponentProps:i.default.object,itemsContainerComponent:qt,itemsContainerComponentProps:i.default.object,itemsContainerRef:i.default.oneOfType([i.default.func,i.default.shape({current:i.default.object})]),estimatedItemHeight:i.default.number,getEstimatedItemHeight:i.default.func,getEstimatedVisibleItemRowsCount:i.default.func,getEstimatedInterItemVerticalSpacing:i.default.func,bypass:i.default.bool,tbody:i.default.bool,preserveScrollPositionOnPrependItems:i.default.bool,preserveScrollPosition:i.default.bool,measureItemsBatchSize:i.default.number,scrollableContainer:i.default.any,getScrollableContainer:i.default.func,getColumnsCount:i.default.func,getItemId:i.default.func,className:i.default.string,readyToStart:i.default.bool,onMount:i.default.func,onItemInitialRender:i.default.func,onItemFirstRender:i.default.func,initialScrollPosition:i.default.number,onScrollPositionChange:i.default.func,onStateChange:i.default.func,initialState:i.default.shape({items:i.default.arrayOf(i.default.object).isRequired,itemStates:i.default.arrayOf(i.default.any).isRequired,firstShownItemIndex:i.default.number.isRequired,lastShownItemIndex:i.default.number.isRequired,beforeItemsHeight:i.default.number.isRequired,afterItemsHeight:i.default.number.isRequired,itemHeights:i.default.arrayOf(i.default.number).isRequired,columnsCount:i.default.number,verticalSpacing:i.default.number}),getInitialItemState:i.default.func},Ft.useVirtualScroller=At,Ut});
2
2
  //# sourceMappingURL=virtual-scroller-react.js.map