jattac.libs.web.responsive-table 0.2.4 → 0.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +68 -62
- package/dist/Plugins/IResponsiveTablePlugin.d.ts +2 -0
- package/dist/Plugins/SortPlugin.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
# ResponsiveTable: A Modern and Flexible React Table Component
|
|
2
2
|
|
|
3
3
|
ResponsiveTable is a powerful, lightweight, and fully responsive React component for creating beautiful and functional tables. It’s designed to look great on any device, adapting from a traditional table layout on desktops to a clean, card-based view on mobile screens.
|
|
4
4
|
|
|
@@ -82,7 +82,9 @@ const AnimatedTable = () => {
|
|
|
82
82
|
}, 2000);
|
|
83
83
|
}, []);
|
|
84
84
|
|
|
85
|
-
return
|
|
85
|
+
return (
|
|
86
|
+
<ResponsiveTable columnDefinitions={columns} data={data} animationProps={{ isLoading, animateOnLoad: true }} />
|
|
87
|
+
);
|
|
86
88
|
};
|
|
87
89
|
```
|
|
88
90
|
|
|
@@ -258,9 +260,7 @@ const NonStickyHeaderTable = () => {
|
|
|
258
260
|
|
|
259
261
|
return (
|
|
260
262
|
<div>
|
|
261
|
-
<h1 style={{ height: '50vh', display: 'flex', alignItems: 'center' }}>
|
|
262
|
-
Scroll down to see the table
|
|
263
|
-
</h1>
|
|
263
|
+
<h1 style={{ height: '50vh', display: 'flex', alignItems: 'center' }}>Scroll down to see the table</h1>
|
|
264
264
|
<ResponsiveTable
|
|
265
265
|
columnDefinitions={columns}
|
|
266
266
|
data={data}
|
|
@@ -290,7 +290,12 @@ import ResponsiveTable, { FilterPlugin } from 'jattac.libs.web.responsive-table'
|
|
|
290
290
|
const MyTableWithPlugins = () => {
|
|
291
291
|
const columns = [
|
|
292
292
|
{ displayLabel: 'Name', dataKey: 'name', cellRenderer: (row) => row.name, getFilterableValue: (row) => row.name },
|
|
293
|
-
{
|
|
293
|
+
{
|
|
294
|
+
displayLabel: 'Age',
|
|
295
|
+
dataKey: 'age',
|
|
296
|
+
cellRenderer: (row) => row.age,
|
|
297
|
+
getFilterableValue: (row) => row.age.toString(),
|
|
298
|
+
},
|
|
294
299
|
];
|
|
295
300
|
|
|
296
301
|
const data = [
|
|
@@ -304,7 +309,7 @@ const MyTableWithPlugins = () => {
|
|
|
304
309
|
columnDefinitions={columns}
|
|
305
310
|
data={data}
|
|
306
311
|
// Enable built-in filter plugin via props
|
|
307
|
-
filterProps={{ showFilter: true, filterPlaceholder:
|
|
312
|
+
filterProps={{ showFilter: true, filterPlaceholder: 'Search by name or age...' }}
|
|
308
313
|
// Or provide a custom instance of the plugin
|
|
309
314
|
// plugins={[new FilterPlugin()]}
|
|
310
315
|
/>
|
|
@@ -360,8 +365,8 @@ const UserTable = ({ users }) => (
|
|
|
360
365
|
|
|
361
366
|
A column is made sortable by adding either a `sortComparer` or a `getSortableValue` property to its definition.
|
|
362
367
|
|
|
363
|
-
|
|
364
|
-
|
|
368
|
+
- `sortComparer`: A function that defines the exact comparison logic. This is the most powerful option and should be used for complex data types or custom logic.
|
|
369
|
+
- `getSortableValue`: A simpler function that just returns the primitive value (string, number, etc.) to be used in a default comparison.
|
|
365
370
|
|
|
366
371
|
**Example 1: Using Type-Safe Comparer Helpers**
|
|
367
372
|
|
|
@@ -438,20 +443,20 @@ const columnDefinitions: IResponsiveTableColumnDefinition<User>[] = [
|
|
|
438
443
|
|
|
439
444
|
**Plugin Options (via `new SortPlugin(options)`):**
|
|
440
445
|
|
|
441
|
-
| Prop
|
|
442
|
-
|
|
|
443
|
-
| `initialSortColumn`
|
|
444
|
-
| `initialSortDirection
|
|
446
|
+
| Prop | Type (`keyof TData`) | Description |
|
|
447
|
+
| ---------------------- | -------------------- | ------------------------------------------------- |
|
|
448
|
+
| `initialSortColumn` | `string` | The `dataKey` of the column to sort by initially. |
|
|
449
|
+
| `initialSortDirection` | `'asc' \| 'desc'` | The direction for the initial sort. |
|
|
445
450
|
|
|
446
451
|
**`SortPlugin.comparers` API:**
|
|
447
452
|
|
|
448
453
|
The `comparers` object on your `SortPlugin` instance provides the following helper methods. Each method is a factory that takes a `dataKey` (which is type-checked against your data model) and returns a `sortComparer` function.
|
|
449
454
|
|
|
450
|
-
| Method
|
|
451
|
-
|
|
|
452
|
-
| `numeric(dataKey)`
|
|
453
|
-
| `caseInsensitiveString(dataKey)` | Performs a case-insensitive alphabetical sort.
|
|
454
|
-
| `date(dataKey)`
|
|
455
|
+
| Method | Description |
|
|
456
|
+
| -------------------------------- | ----------------------------------------------------------------------------- |
|
|
457
|
+
| `numeric(dataKey)` | Performs a standard numerical sort. |
|
|
458
|
+
| `caseInsensitiveString(dataKey)` | Performs a case-insensitive alphabetical sort. |
|
|
459
|
+
| `date(dataKey)` | Correctly sorts dates, assuming the data is a valid date string or timestamp. |
|
|
455
460
|
|
|
456
461
|
#### `FilterPlugin`
|
|
457
462
|
|
|
@@ -459,10 +464,10 @@ Provides a search input to filter table data. It can be enabled by setting `filt
|
|
|
459
464
|
|
|
460
465
|
**Props for `FilterPlugin` (via `filterProps` on `ResponsiveTable`):**
|
|
461
466
|
|
|
462
|
-
| Prop
|
|
463
|
-
|
|
|
464
|
-
| `showFilter`
|
|
465
|
-
| `filterPlaceholder
|
|
467
|
+
| Prop | Type | Description |
|
|
468
|
+
| ------------------- | --------- | --------------------------------------------------------------- |
|
|
469
|
+
| `showFilter` | `boolean` | If `true`, displays a filter input field above the table. |
|
|
470
|
+
| `filterPlaceholder` | `string` | Placeholder text for the filter input. Defaults to "Search...". |
|
|
466
471
|
|
|
467
472
|
**Example with `FilterPlugin`:**
|
|
468
473
|
|
|
@@ -488,7 +493,7 @@ const FilterableTable = () => {
|
|
|
488
493
|
<ResponsiveTable
|
|
489
494
|
columnDefinitions={columns}
|
|
490
495
|
data={initialData}
|
|
491
|
-
filterProps={{ showFilter: true, filterPlaceholder:
|
|
496
|
+
filterProps={{ showFilter: true, filterPlaceholder: 'Filter users...' }}
|
|
492
497
|
/>
|
|
493
498
|
);
|
|
494
499
|
};
|
|
@@ -500,13 +505,13 @@ Enables infinite scrolling for the table, loading more data as the user scrolls
|
|
|
500
505
|
|
|
501
506
|
**Props for `InfiniteScrollPlugin` (via `infiniteScrollProps` on `ResponsiveTable`):**
|
|
502
507
|
|
|
503
|
-
| Prop
|
|
504
|
-
|
|
|
505
|
-
| `enableInfiniteScroll
|
|
506
|
-
| `onLoadMore`
|
|
507
|
-
| `hasMore`
|
|
508
|
-
| `loadingMoreComponent
|
|
509
|
-
| `noMoreDataComponent`
|
|
508
|
+
| Prop | Type | Description |
|
|
509
|
+
| ---------------------- | ------------------------------------------ | ---------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- |
|
|
510
|
+
| `enableInfiniteScroll` | `boolean` | If `true`, enables infinite scrolling. |
|
|
511
|
+
| `onLoadMore` | `(currentData: TData[]) => Promise<TData[] | null>` | Callback function to load more data. Should return a Promise resolving to new data or `null`. |
|
|
512
|
+
| `hasMore` | `boolean` | Indicates if there is more data to load. |
|
|
513
|
+
| `loadingMoreComponent` | `ReactNode` | Custom component to display while loading more data. Defaults to "Loading more...". |
|
|
514
|
+
| `noMoreDataComponent` | `ReactNode` | Custom component to display when no more data is available. Defaults to "No more data.". |
|
|
510
515
|
|
|
511
516
|
**Example with `InfiniteScrollPlugin`:**
|
|
512
517
|
|
|
@@ -533,7 +538,7 @@ const InfiniteScrollTable = () => {
|
|
|
533
538
|
};
|
|
534
539
|
|
|
535
540
|
useEffect(() => {
|
|
536
|
-
fetchData(0).then(initialData => {
|
|
541
|
+
fetchData(0).then((initialData) => {
|
|
537
542
|
setData(initialData);
|
|
538
543
|
setPage(1);
|
|
539
544
|
});
|
|
@@ -558,7 +563,9 @@ const InfiniteScrollTable = () => {
|
|
|
558
563
|
];
|
|
559
564
|
|
|
560
565
|
return (
|
|
561
|
-
<div style={{ height: '300px' }}>
|
|
566
|
+
<div style={{ height: '300px' }}>
|
|
567
|
+
{' '}
|
|
568
|
+
{/* Container for scrollable table */}
|
|
562
569
|
<ResponsiveTable
|
|
563
570
|
columnDefinitions={columns}
|
|
564
571
|
data={data}
|
|
@@ -582,32 +589,32 @@ const InfiniteScrollTable = () => {
|
|
|
582
589
|
|
|
583
590
|
### `ResponsiveTable` Props
|
|
584
591
|
|
|
585
|
-
| Prop | Type | Required | Description
|
|
586
|
-
| ----------------------------- | ------------------------------------ | -------- |
|
|
587
|
-
| `columnDefinitions` | `IResponsiveTableColumnDefinition[]` | Yes | An array of objects defining the table columns.
|
|
588
|
-
| `data` | `TData[]` | Yes | An array of data objects to populate the table rows.
|
|
589
|
-
| `footerRows` | `IFooterRowDefinition[]` | No | An array of objects defining the table footer.
|
|
590
|
-
| `onRowClick` | `(item: TData) => void` | No | A callback function that is triggered when a row is clicked.
|
|
591
|
-
| `noDataComponent` | `ReactNode` | No | A custom component to display when there is no data.
|
|
592
|
-
| `maxHeight` | `string` | No | Sets a maximum height for the table body, making it scrollable.
|
|
593
|
-
| `mobileBreakpoint` | `number` | No | The pixel width at which the table switches to the mobile view. Defaults to `600`.
|
|
594
|
-
| `enablePageLevelStickyHeader` | `boolean` | No | If `false`, disables the header from sticking to the top of the page on scroll. Defaults to `true`.
|
|
595
|
-
| `plugins` | `IResponsiveTablePlugin<TData>[]` | No | An array of plugin instances to extend table functionality.
|
|
596
|
-
| `infiniteScrollProps` | `object` | No | Configuration for the built-in infinite scroll plugin.
|
|
597
|
-
| `filterProps` | `object` | No | Configuration for the built-in filter plugin.
|
|
598
|
-
| `animationProps` | `object` | No | Configuration for animations, including `isLoading` and `animateOnLoad`.
|
|
592
|
+
| Prop | Type | Required | Description |
|
|
593
|
+
| ----------------------------- | ------------------------------------ | -------- | --------------------------------------------------------------------------------------------------- |
|
|
594
|
+
| `columnDefinitions` | `IResponsiveTableColumnDefinition[]` | Yes | An array of objects defining the table columns. |
|
|
595
|
+
| `data` | `TData[]` | Yes | An array of data objects to populate the table rows. |
|
|
596
|
+
| `footerRows` | `IFooterRowDefinition[]` | No | An array of objects defining the table footer. |
|
|
597
|
+
| `onRowClick` | `(item: TData) => void` | No | A callback function that is triggered when a row is clicked. |
|
|
598
|
+
| `noDataComponent` | `ReactNode` | No | A custom component to display when there is no data. |
|
|
599
|
+
| `maxHeight` | `string` | No | Sets a maximum height for the table body, making it scrollable. |
|
|
600
|
+
| `mobileBreakpoint` | `number` | No | The pixel width at which the table switches to the mobile view. Defaults to `600`. |
|
|
601
|
+
| `enablePageLevelStickyHeader` | `boolean` | No | If `false`, disables the header from sticking to the top of the page on scroll. Defaults to `true`. |
|
|
602
|
+
| `plugins` | `IResponsiveTablePlugin<TData>[]` | No | An array of plugin instances to extend table functionality. |
|
|
603
|
+
| `infiniteScrollProps` | `object` | No | Configuration for the built-in infinite scroll plugin. |
|
|
604
|
+
| `filterProps` | `object` | No | Configuration for the built-in filter plugin. |
|
|
605
|
+
| `animationProps` | `object` | No | Configuration for animations, including `isLoading` and `animateOnLoad`. |
|
|
599
606
|
|
|
600
607
|
### `IResponsiveTableColumnDefinition<TData>`
|
|
601
608
|
|
|
602
|
-
| Property
|
|
603
|
-
|
|
|
604
|
-
| `displayLabel`
|
|
605
|
-
| `cellRenderer`
|
|
606
|
-
| `dataKey`
|
|
607
|
-
| `interactivity`
|
|
608
|
-
| `getFilterableValue
|
|
609
|
-
| `getSortableValue
|
|
610
|
-
| `sortComparer`
|
|
609
|
+
| Property | Type | Required | Description |
|
|
610
|
+
| -------------------- | ------------------------------------------------------------ | -------- | ---------------------------------------------------------------------------------------- |
|
|
611
|
+
| `displayLabel` | `ReactNode` | Yes | The label displayed in the table header (can be a string or any React component). |
|
|
612
|
+
| `cellRenderer` | `(row: TData) => ReactNode` | Yes | A function that returns the content to be rendered in the cell. |
|
|
613
|
+
| `dataKey` | `string` | No | A key to match the column to a property in the data object (required for sorting). |
|
|
614
|
+
| `interactivity` | `object` | No | An object to define header interactivity (`onHeaderClick`, `id`, `className`). |
|
|
615
|
+
| `getFilterableValue` | `(row: TData) => string \| number` | No | A function that returns the string or number value to be used for filtering this column. |
|
|
616
|
+
| `getSortableValue` | `(row: TData) => any` | No | A function that returns a primitive value from a row to be used for default sorting. |
|
|
617
|
+
| `sortComparer` | `(a: TData, b: TData, direction: 'asc' \| 'desc') => number` | No | A function that provides the precise comparison logic for sorting a column. |
|
|
611
618
|
|
|
612
619
|
### `IFooterRowDefinition`
|
|
613
620
|
|
|
@@ -617,15 +624,14 @@ const InfiniteScrollTable = () => {
|
|
|
617
624
|
|
|
618
625
|
### `IFooterColumnDefinition`
|
|
619
626
|
|
|
620
|
-
| Property | Type | Required | Description
|
|
621
|
-
| -------------- | ----------------- | -------- |
|
|
622
|
-
| `colSpan` | `number` | Yes | The number of columns the footer cell should span.
|
|
623
|
-
| `cellRenderer` | `() => ReactNode` | Yes | A function that returns the content for the footer cell.
|
|
627
|
+
| Property | Type | Required | Description |
|
|
628
|
+
| -------------- | ----------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
629
|
+
| `colSpan` | `number` | Yes | The number of columns the footer cell should span. |
|
|
630
|
+
| `cellRenderer` | `() => ReactNode` | Yes | A function that returns the content for the footer cell. |
|
|
624
631
|
| `displayLabel` | `ReactNode` | No | An optional, explicit label for the footer cell. In mobile view, if `colSpan` is 1 and this is not provided, the corresponding column header will be used as a fallback. This is required for `colSpan` > 1 if you want a label to be displayed. |
|
|
625
|
-
| `onCellClick` | `() => void` | No | An optional click handler for the footer cell.
|
|
626
|
-
| `className` | `string` | No | Optional class name for custom styling of the footer cell.
|
|
632
|
+
| `onCellClick` | `() => void` | No | An optional click handler for the footer cell. |
|
|
633
|
+
| `className` | `string` | No | Optional class name for custom styling of the footer cell. |
|
|
627
634
|
|
|
628
635
|
## License
|
|
629
636
|
|
|
630
637
|
This project is licensed under the MIT License.
|
|
631
|
-
''
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { ReactNode } from 'react';
|
|
2
2
|
import { ColumnDefinition } from '../UI/ResponsiveTable';
|
|
3
|
+
import IResponsiveTableColumnDefinition from '../Data/IResponsiveTableColumnDefinition';
|
|
3
4
|
export interface IResponsiveTablePlugin<TData> {
|
|
4
5
|
id: string;
|
|
5
6
|
renderHeader?: () => ReactNode;
|
|
6
7
|
renderFooter?: () => ReactNode;
|
|
7
8
|
processData?: (data: TData[]) => TData[];
|
|
8
9
|
onPluginInit?: (api: IPluginAPI<TData>) => void;
|
|
10
|
+
getHeaderProps?: (columnDefinition: IResponsiveTableColumnDefinition<TData>) => React.HTMLAttributes<HTMLElement>;
|
|
9
11
|
}
|
|
10
12
|
export interface IPluginAPI<TData> {
|
|
11
13
|
getData: () => TData[];
|
package/dist/index.js
CHANGED
|
@@ -1376,7 +1376,7 @@ class SortPlugin {
|
|
|
1376
1376
|
return {
|
|
1377
1377
|
onClick: onHeaderClick,
|
|
1378
1378
|
className: sortClassName,
|
|
1379
|
-
'aria-sort': this.sortColumn === dataKey ? (this.sortDirection === 'asc' ? 'ascending' : 'descending') : 'none',
|
|
1379
|
+
'aria-sort': (this.sortColumn === dataKey ? (this.sortDirection === 'asc' ? 'ascending' : 'descending') : 'none'),
|
|
1380
1380
|
};
|
|
1381
1381
|
};
|
|
1382
1382
|
this.sortColumn = (_a = options === null || options === void 0 ? void 0 : options.initialSortColumn) !== null && _a !== void 0 ? _a : null;
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../node_modules/style-inject/dist/style-inject.es.js","../src/Plugins/FilterPlugin.tsx","../node_modules/tslib/tslib.es6.js","../src/Plugins/InfiniteScrollPlugin.tsx","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/memoize-one/dist/memoize-one.esm.js","../node_modules/react-window/dist/index.esm.js","../src/UI/ResponsiveTable.tsx","../src/Plugins/SortPlugin.ts"],"sourcesContent":["function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n",null,"/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nvar ownKeys = function(o) {\r\n ownKeys = Object.getOwnPropertyNames || function (o) {\r\n var ar = [];\r\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\r\n return ar;\r\n };\r\n return ownKeys(o);\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n var r, s = 0;\r\n function next() {\r\n while (r = env.stack.pop()) {\r\n try {\r\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n if (r.dispose) {\r\n var result = r.dispose.call(r.value);\r\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n else s |= 1;\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\r\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\r\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\r\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\r\n });\r\n }\r\n return path;\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __esDecorate: __esDecorate,\r\n __runInitializers: __runInitializers,\r\n __propKey: __propKey,\r\n __setFunctionName: __setFunctionName,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n __rewriteRelativeImportExtension: __rewriteRelativeImportExtension,\r\n};\r\n",null,"function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","function _assertThisInitialized(e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n}\nexport { _assertThisInitialized as default };","function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inheritsLoose(t, o) {\n t.prototype = Object.create(o.prototype), t.prototype.constructor = t, setPrototypeOf(t, o);\n}\nexport { _inheritsLoose as default };","var safeIsNaN = Number.isNaN ||\n function ponyfill(value) {\n return typeof value === 'number' && value !== value;\n };\nfunction isEqual(first, second) {\n if (first === second) {\n return true;\n }\n if (safeIsNaN(first) && safeIsNaN(second)) {\n return true;\n }\n return false;\n}\nfunction areInputsEqual(newInputs, lastInputs) {\n if (newInputs.length !== lastInputs.length) {\n return false;\n }\n for (var i = 0; i < newInputs.length; i++) {\n if (!isEqual(newInputs[i], lastInputs[i])) {\n return false;\n }\n }\n return true;\n}\n\nfunction memoizeOne(resultFn, isEqual) {\n if (isEqual === void 0) { isEqual = areInputsEqual; }\n var lastThis;\n var lastArgs = [];\n var lastResult;\n var calledOnce = false;\n function memoized() {\n var newArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n newArgs[_i] = arguments[_i];\n }\n if (calledOnce && lastThis === this && isEqual(newArgs, lastArgs)) {\n return lastResult;\n }\n lastResult = resultFn.apply(this, newArgs);\n calledOnce = true;\n lastThis = this;\n lastArgs = newArgs;\n return lastResult;\n }\n return memoized;\n}\n\nexport default memoizeOne;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport memoizeOne from 'memoize-one';\nimport { createElement, PureComponent } from 'react';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\n\n// Animation frame based implementation of setTimeout.\n// Inspired by Joe Lambert, https://gist.github.com/joelambert/1002116#file-requesttimeout-js\nvar hasNativePerformanceNow = typeof performance === 'object' && typeof performance.now === 'function';\nvar now = hasNativePerformanceNow ? function () {\n return performance.now();\n} : function () {\n return Date.now();\n};\nfunction cancelTimeout(timeoutID) {\n cancelAnimationFrame(timeoutID.id);\n}\nfunction requestTimeout(callback, delay) {\n var start = now();\n\n function tick() {\n if (now() - start >= delay) {\n callback.call(null);\n } else {\n timeoutID.id = requestAnimationFrame(tick);\n }\n }\n\n var timeoutID = {\n id: requestAnimationFrame(tick)\n };\n return timeoutID;\n}\n\nvar size = -1; // This utility copied from \"dom-helpers\" package.\n\nfunction getScrollbarSize(recalculate) {\n if (recalculate === void 0) {\n recalculate = false;\n }\n\n if (size === -1 || recalculate) {\n var div = document.createElement('div');\n var style = div.style;\n style.width = '50px';\n style.height = '50px';\n style.overflow = 'scroll';\n document.body.appendChild(div);\n size = div.offsetWidth - div.clientWidth;\n document.body.removeChild(div);\n }\n\n return size;\n}\nvar cachedRTLResult = null; // TRICKY According to the spec, scrollLeft should be negative for RTL aligned elements.\n// Chrome does not seem to adhere; its scrollLeft values are positive (measured relative to the left).\n// Safari's elastic bounce makes detecting this even more complicated wrt potential false positives.\n// The safest way to check this is to intentionally set a negative offset,\n// and then verify that the subsequent \"scroll\" event matches the negative offset.\n// If it does not match, then we can assume a non-standard RTL scroll implementation.\n\nfunction getRTLOffsetType(recalculate) {\n if (recalculate === void 0) {\n recalculate = false;\n }\n\n if (cachedRTLResult === null || recalculate) {\n var outerDiv = document.createElement('div');\n var outerStyle = outerDiv.style;\n outerStyle.width = '50px';\n outerStyle.height = '50px';\n outerStyle.overflow = 'scroll';\n outerStyle.direction = 'rtl';\n var innerDiv = document.createElement('div');\n var innerStyle = innerDiv.style;\n innerStyle.width = '100px';\n innerStyle.height = '100px';\n outerDiv.appendChild(innerDiv);\n document.body.appendChild(outerDiv);\n\n if (outerDiv.scrollLeft > 0) {\n cachedRTLResult = 'positive-descending';\n } else {\n outerDiv.scrollLeft = 1;\n\n if (outerDiv.scrollLeft === 0) {\n cachedRTLResult = 'negative';\n } else {\n cachedRTLResult = 'positive-ascending';\n }\n }\n\n document.body.removeChild(outerDiv);\n return cachedRTLResult;\n }\n\n return cachedRTLResult;\n}\n\nvar IS_SCROLLING_DEBOUNCE_INTERVAL = 150;\n\nvar defaultItemKey = function defaultItemKey(_ref) {\n var columnIndex = _ref.columnIndex,\n data = _ref.data,\n rowIndex = _ref.rowIndex;\n return rowIndex + \":\" + columnIndex;\n}; // In DEV mode, this Set helps us only log a warning once per component instance.\n// This avoids spamming the console every time a render happens.\n\n\nvar devWarningsOverscanCount = null;\nvar devWarningsOverscanRowsColumnsCount = null;\nvar devWarningsTagName = null;\n\nif (process.env.NODE_ENV !== 'production') {\n if (typeof window !== 'undefined' && typeof window.WeakSet !== 'undefined') {\n devWarningsOverscanCount = /*#__PURE__*/new WeakSet();\n devWarningsOverscanRowsColumnsCount = /*#__PURE__*/new WeakSet();\n devWarningsTagName = /*#__PURE__*/new WeakSet();\n }\n}\n\nfunction createGridComponent(_ref2) {\n var _class;\n\n var getColumnOffset = _ref2.getColumnOffset,\n getColumnStartIndexForOffset = _ref2.getColumnStartIndexForOffset,\n getColumnStopIndexForStartIndex = _ref2.getColumnStopIndexForStartIndex,\n getColumnWidth = _ref2.getColumnWidth,\n getEstimatedTotalHeight = _ref2.getEstimatedTotalHeight,\n getEstimatedTotalWidth = _ref2.getEstimatedTotalWidth,\n getOffsetForColumnAndAlignment = _ref2.getOffsetForColumnAndAlignment,\n getOffsetForRowAndAlignment = _ref2.getOffsetForRowAndAlignment,\n getRowHeight = _ref2.getRowHeight,\n getRowOffset = _ref2.getRowOffset,\n getRowStartIndexForOffset = _ref2.getRowStartIndexForOffset,\n getRowStopIndexForStartIndex = _ref2.getRowStopIndexForStartIndex,\n initInstanceProps = _ref2.initInstanceProps,\n shouldResetStyleCacheOnItemSizeChange = _ref2.shouldResetStyleCacheOnItemSizeChange,\n validateProps = _ref2.validateProps;\n return _class = /*#__PURE__*/function (_PureComponent) {\n _inheritsLoose(Grid, _PureComponent);\n\n // Always use explicit constructor for React components.\n // It produces less code after transpilation. (#26)\n // eslint-disable-next-line no-useless-constructor\n function Grid(props) {\n var _this;\n\n _this = _PureComponent.call(this, props) || this;\n _this._instanceProps = initInstanceProps(_this.props, _assertThisInitialized(_this));\n _this._resetIsScrollingTimeoutId = null;\n _this._outerRef = void 0;\n _this.state = {\n instance: _assertThisInitialized(_this),\n isScrolling: false,\n horizontalScrollDirection: 'forward',\n scrollLeft: typeof _this.props.initialScrollLeft === 'number' ? _this.props.initialScrollLeft : 0,\n scrollTop: typeof _this.props.initialScrollTop === 'number' ? _this.props.initialScrollTop : 0,\n scrollUpdateWasRequested: false,\n verticalScrollDirection: 'forward'\n };\n _this._callOnItemsRendered = void 0;\n _this._callOnItemsRendered = memoizeOne(function (overscanColumnStartIndex, overscanColumnStopIndex, overscanRowStartIndex, overscanRowStopIndex, visibleColumnStartIndex, visibleColumnStopIndex, visibleRowStartIndex, visibleRowStopIndex) {\n return _this.props.onItemsRendered({\n overscanColumnStartIndex: overscanColumnStartIndex,\n overscanColumnStopIndex: overscanColumnStopIndex,\n overscanRowStartIndex: overscanRowStartIndex,\n overscanRowStopIndex: overscanRowStopIndex,\n visibleColumnStartIndex: visibleColumnStartIndex,\n visibleColumnStopIndex: visibleColumnStopIndex,\n visibleRowStartIndex: visibleRowStartIndex,\n visibleRowStopIndex: visibleRowStopIndex\n });\n });\n _this._callOnScroll = void 0;\n _this._callOnScroll = memoizeOne(function (scrollLeft, scrollTop, horizontalScrollDirection, verticalScrollDirection, scrollUpdateWasRequested) {\n return _this.props.onScroll({\n horizontalScrollDirection: horizontalScrollDirection,\n scrollLeft: scrollLeft,\n scrollTop: scrollTop,\n verticalScrollDirection: verticalScrollDirection,\n scrollUpdateWasRequested: scrollUpdateWasRequested\n });\n });\n _this._getItemStyle = void 0;\n\n _this._getItemStyle = function (rowIndex, columnIndex) {\n var _this$props = _this.props,\n columnWidth = _this$props.columnWidth,\n direction = _this$props.direction,\n rowHeight = _this$props.rowHeight;\n\n var itemStyleCache = _this._getItemStyleCache(shouldResetStyleCacheOnItemSizeChange && columnWidth, shouldResetStyleCacheOnItemSizeChange && direction, shouldResetStyleCacheOnItemSizeChange && rowHeight);\n\n var key = rowIndex + \":\" + columnIndex;\n var style;\n\n if (itemStyleCache.hasOwnProperty(key)) {\n style = itemStyleCache[key];\n } else {\n var _offset = getColumnOffset(_this.props, columnIndex, _this._instanceProps);\n\n var isRtl = direction === 'rtl';\n itemStyleCache[key] = style = {\n position: 'absolute',\n left: isRtl ? undefined : _offset,\n right: isRtl ? _offset : undefined,\n top: getRowOffset(_this.props, rowIndex, _this._instanceProps),\n height: getRowHeight(_this.props, rowIndex, _this._instanceProps),\n width: getColumnWidth(_this.props, columnIndex, _this._instanceProps)\n };\n }\n\n return style;\n };\n\n _this._getItemStyleCache = void 0;\n _this._getItemStyleCache = memoizeOne(function (_, __, ___) {\n return {};\n });\n\n _this._onScroll = function (event) {\n var _event$currentTarget = event.currentTarget,\n clientHeight = _event$currentTarget.clientHeight,\n clientWidth = _event$currentTarget.clientWidth,\n scrollLeft = _event$currentTarget.scrollLeft,\n scrollTop = _event$currentTarget.scrollTop,\n scrollHeight = _event$currentTarget.scrollHeight,\n scrollWidth = _event$currentTarget.scrollWidth;\n\n _this.setState(function (prevState) {\n if (prevState.scrollLeft === scrollLeft && prevState.scrollTop === scrollTop) {\n // Scroll position may have been updated by cDM/cDU,\n // In which case we don't need to trigger another render,\n // And we don't want to update state.isScrolling.\n return null;\n }\n\n var direction = _this.props.direction; // TRICKY According to the spec, scrollLeft should be negative for RTL aligned elements.\n // This is not the case for all browsers though (e.g. Chrome reports values as positive, measured relative to the left).\n // It's also easier for this component if we convert offsets to the same format as they would be in for ltr.\n // So the simplest solution is to determine which browser behavior we're dealing with, and convert based on it.\n\n var calculatedScrollLeft = scrollLeft;\n\n if (direction === 'rtl') {\n switch (getRTLOffsetType()) {\n case 'negative':\n calculatedScrollLeft = -scrollLeft;\n break;\n\n case 'positive-descending':\n calculatedScrollLeft = scrollWidth - clientWidth - scrollLeft;\n break;\n }\n } // Prevent Safari's elastic scrolling from causing visual shaking when scrolling past bounds.\n\n\n calculatedScrollLeft = Math.max(0, Math.min(calculatedScrollLeft, scrollWidth - clientWidth));\n var calculatedScrollTop = Math.max(0, Math.min(scrollTop, scrollHeight - clientHeight));\n return {\n isScrolling: true,\n horizontalScrollDirection: prevState.scrollLeft < scrollLeft ? 'forward' : 'backward',\n scrollLeft: calculatedScrollLeft,\n scrollTop: calculatedScrollTop,\n verticalScrollDirection: prevState.scrollTop < scrollTop ? 'forward' : 'backward',\n scrollUpdateWasRequested: false\n };\n }, _this._resetIsScrollingDebounced);\n };\n\n _this._outerRefSetter = function (ref) {\n var outerRef = _this.props.outerRef;\n _this._outerRef = ref;\n\n if (typeof outerRef === 'function') {\n outerRef(ref);\n } else if (outerRef != null && typeof outerRef === 'object' && outerRef.hasOwnProperty('current')) {\n outerRef.current = ref;\n }\n };\n\n _this._resetIsScrollingDebounced = function () {\n if (_this._resetIsScrollingTimeoutId !== null) {\n cancelTimeout(_this._resetIsScrollingTimeoutId);\n }\n\n _this._resetIsScrollingTimeoutId = requestTimeout(_this._resetIsScrolling, IS_SCROLLING_DEBOUNCE_INTERVAL);\n };\n\n _this._resetIsScrolling = function () {\n _this._resetIsScrollingTimeoutId = null;\n\n _this.setState({\n isScrolling: false\n }, function () {\n // Clear style cache after state update has been committed.\n // This way we don't break pure sCU for items that don't use isScrolling param.\n _this._getItemStyleCache(-1);\n });\n };\n\n return _this;\n }\n\n Grid.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {\n validateSharedProps(nextProps, prevState);\n validateProps(nextProps);\n return null;\n };\n\n var _proto = Grid.prototype;\n\n _proto.scrollTo = function scrollTo(_ref3) {\n var scrollLeft = _ref3.scrollLeft,\n scrollTop = _ref3.scrollTop;\n\n if (scrollLeft !== undefined) {\n scrollLeft = Math.max(0, scrollLeft);\n }\n\n if (scrollTop !== undefined) {\n scrollTop = Math.max(0, scrollTop);\n }\n\n this.setState(function (prevState) {\n if (scrollLeft === undefined) {\n scrollLeft = prevState.scrollLeft;\n }\n\n if (scrollTop === undefined) {\n scrollTop = prevState.scrollTop;\n }\n\n if (prevState.scrollLeft === scrollLeft && prevState.scrollTop === scrollTop) {\n return null;\n }\n\n return {\n horizontalScrollDirection: prevState.scrollLeft < scrollLeft ? 'forward' : 'backward',\n scrollLeft: scrollLeft,\n scrollTop: scrollTop,\n scrollUpdateWasRequested: true,\n verticalScrollDirection: prevState.scrollTop < scrollTop ? 'forward' : 'backward'\n };\n }, this._resetIsScrollingDebounced);\n };\n\n _proto.scrollToItem = function scrollToItem(_ref4) {\n var _ref4$align = _ref4.align,\n align = _ref4$align === void 0 ? 'auto' : _ref4$align,\n columnIndex = _ref4.columnIndex,\n rowIndex = _ref4.rowIndex;\n var _this$props2 = this.props,\n columnCount = _this$props2.columnCount,\n height = _this$props2.height,\n rowCount = _this$props2.rowCount,\n width = _this$props2.width;\n var _this$state = this.state,\n scrollLeft = _this$state.scrollLeft,\n scrollTop = _this$state.scrollTop;\n var scrollbarSize = getScrollbarSize();\n\n if (columnIndex !== undefined) {\n columnIndex = Math.max(0, Math.min(columnIndex, columnCount - 1));\n }\n\n if (rowIndex !== undefined) {\n rowIndex = Math.max(0, Math.min(rowIndex, rowCount - 1));\n }\n\n var estimatedTotalHeight = getEstimatedTotalHeight(this.props, this._instanceProps);\n var estimatedTotalWidth = getEstimatedTotalWidth(this.props, this._instanceProps); // The scrollbar size should be considered when scrolling an item into view,\n // to ensure it's fully visible.\n // But we only need to account for its size when it's actually visible.\n\n var horizontalScrollbarSize = estimatedTotalWidth > width ? scrollbarSize : 0;\n var verticalScrollbarSize = estimatedTotalHeight > height ? scrollbarSize : 0;\n this.scrollTo({\n scrollLeft: columnIndex !== undefined ? getOffsetForColumnAndAlignment(this.props, columnIndex, align, scrollLeft, this._instanceProps, verticalScrollbarSize) : scrollLeft,\n scrollTop: rowIndex !== undefined ? getOffsetForRowAndAlignment(this.props, rowIndex, align, scrollTop, this._instanceProps, horizontalScrollbarSize) : scrollTop\n });\n };\n\n _proto.componentDidMount = function componentDidMount() {\n var _this$props3 = this.props,\n initialScrollLeft = _this$props3.initialScrollLeft,\n initialScrollTop = _this$props3.initialScrollTop;\n\n if (this._outerRef != null) {\n var outerRef = this._outerRef;\n\n if (typeof initialScrollLeft === 'number') {\n outerRef.scrollLeft = initialScrollLeft;\n }\n\n if (typeof initialScrollTop === 'number') {\n outerRef.scrollTop = initialScrollTop;\n }\n }\n\n this._callPropsCallbacks();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n var direction = this.props.direction;\n var _this$state2 = this.state,\n scrollLeft = _this$state2.scrollLeft,\n scrollTop = _this$state2.scrollTop,\n scrollUpdateWasRequested = _this$state2.scrollUpdateWasRequested;\n\n if (scrollUpdateWasRequested && this._outerRef != null) {\n // TRICKY According to the spec, scrollLeft should be negative for RTL aligned elements.\n // This is not the case for all browsers though (e.g. Chrome reports values as positive, measured relative to the left).\n // So we need to determine which browser behavior we're dealing with, and mimic it.\n var outerRef = this._outerRef;\n\n if (direction === 'rtl') {\n switch (getRTLOffsetType()) {\n case 'negative':\n outerRef.scrollLeft = -scrollLeft;\n break;\n\n case 'positive-ascending':\n outerRef.scrollLeft = scrollLeft;\n break;\n\n default:\n var clientWidth = outerRef.clientWidth,\n scrollWidth = outerRef.scrollWidth;\n outerRef.scrollLeft = scrollWidth - clientWidth - scrollLeft;\n break;\n }\n } else {\n outerRef.scrollLeft = Math.max(0, scrollLeft);\n }\n\n outerRef.scrollTop = Math.max(0, scrollTop);\n }\n\n this._callPropsCallbacks();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this._resetIsScrollingTimeoutId !== null) {\n cancelTimeout(this._resetIsScrollingTimeoutId);\n }\n };\n\n _proto.render = function render() {\n var _this$props4 = this.props,\n children = _this$props4.children,\n className = _this$props4.className,\n columnCount = _this$props4.columnCount,\n direction = _this$props4.direction,\n height = _this$props4.height,\n innerRef = _this$props4.innerRef,\n innerElementType = _this$props4.innerElementType,\n innerTagName = _this$props4.innerTagName,\n itemData = _this$props4.itemData,\n _this$props4$itemKey = _this$props4.itemKey,\n itemKey = _this$props4$itemKey === void 0 ? defaultItemKey : _this$props4$itemKey,\n outerElementType = _this$props4.outerElementType,\n outerTagName = _this$props4.outerTagName,\n rowCount = _this$props4.rowCount,\n style = _this$props4.style,\n useIsScrolling = _this$props4.useIsScrolling,\n width = _this$props4.width;\n var isScrolling = this.state.isScrolling;\n\n var _this$_getHorizontalR = this._getHorizontalRangeToRender(),\n columnStartIndex = _this$_getHorizontalR[0],\n columnStopIndex = _this$_getHorizontalR[1];\n\n var _this$_getVerticalRan = this._getVerticalRangeToRender(),\n rowStartIndex = _this$_getVerticalRan[0],\n rowStopIndex = _this$_getVerticalRan[1];\n\n var items = [];\n\n if (columnCount > 0 && rowCount) {\n for (var _rowIndex = rowStartIndex; _rowIndex <= rowStopIndex; _rowIndex++) {\n for (var _columnIndex = columnStartIndex; _columnIndex <= columnStopIndex; _columnIndex++) {\n items.push(createElement(children, {\n columnIndex: _columnIndex,\n data: itemData,\n isScrolling: useIsScrolling ? isScrolling : undefined,\n key: itemKey({\n columnIndex: _columnIndex,\n data: itemData,\n rowIndex: _rowIndex\n }),\n rowIndex: _rowIndex,\n style: this._getItemStyle(_rowIndex, _columnIndex)\n }));\n }\n }\n } // Read this value AFTER items have been created,\n // So their actual sizes (if variable) are taken into consideration.\n\n\n var estimatedTotalHeight = getEstimatedTotalHeight(this.props, this._instanceProps);\n var estimatedTotalWidth = getEstimatedTotalWidth(this.props, this._instanceProps);\n return createElement(outerElementType || outerTagName || 'div', {\n className: className,\n onScroll: this._onScroll,\n ref: this._outerRefSetter,\n style: _extends({\n position: 'relative',\n height: height,\n width: width,\n overflow: 'auto',\n WebkitOverflowScrolling: 'touch',\n willChange: 'transform',\n direction: direction\n }, style)\n }, createElement(innerElementType || innerTagName || 'div', {\n children: items,\n ref: innerRef,\n style: {\n height: estimatedTotalHeight,\n pointerEvents: isScrolling ? 'none' : undefined,\n width: estimatedTotalWidth\n }\n }));\n };\n\n _proto._callPropsCallbacks = function _callPropsCallbacks() {\n var _this$props5 = this.props,\n columnCount = _this$props5.columnCount,\n onItemsRendered = _this$props5.onItemsRendered,\n onScroll = _this$props5.onScroll,\n rowCount = _this$props5.rowCount;\n\n if (typeof onItemsRendered === 'function') {\n if (columnCount > 0 && rowCount > 0) {\n var _this$_getHorizontalR2 = this._getHorizontalRangeToRender(),\n _overscanColumnStartIndex = _this$_getHorizontalR2[0],\n _overscanColumnStopIndex = _this$_getHorizontalR2[1],\n _visibleColumnStartIndex = _this$_getHorizontalR2[2],\n _visibleColumnStopIndex = _this$_getHorizontalR2[3];\n\n var _this$_getVerticalRan2 = this._getVerticalRangeToRender(),\n _overscanRowStartIndex = _this$_getVerticalRan2[0],\n _overscanRowStopIndex = _this$_getVerticalRan2[1],\n _visibleRowStartIndex = _this$_getVerticalRan2[2],\n _visibleRowStopIndex = _this$_getVerticalRan2[3];\n\n this._callOnItemsRendered(_overscanColumnStartIndex, _overscanColumnStopIndex, _overscanRowStartIndex, _overscanRowStopIndex, _visibleColumnStartIndex, _visibleColumnStopIndex, _visibleRowStartIndex, _visibleRowStopIndex);\n }\n }\n\n if (typeof onScroll === 'function') {\n var _this$state3 = this.state,\n _horizontalScrollDirection = _this$state3.horizontalScrollDirection,\n _scrollLeft = _this$state3.scrollLeft,\n _scrollTop = _this$state3.scrollTop,\n _scrollUpdateWasRequested = _this$state3.scrollUpdateWasRequested,\n _verticalScrollDirection = _this$state3.verticalScrollDirection;\n\n this._callOnScroll(_scrollLeft, _scrollTop, _horizontalScrollDirection, _verticalScrollDirection, _scrollUpdateWasRequested);\n }\n } // Lazily create and cache item styles while scrolling,\n // So that pure component sCU will prevent re-renders.\n // We maintain this cache, and pass a style prop rather than index,\n // So that List can clear cached styles and force item re-render if necessary.\n ;\n\n _proto._getHorizontalRangeToRender = function _getHorizontalRangeToRender() {\n var _this$props6 = this.props,\n columnCount = _this$props6.columnCount,\n overscanColumnCount = _this$props6.overscanColumnCount,\n overscanColumnsCount = _this$props6.overscanColumnsCount,\n overscanCount = _this$props6.overscanCount,\n rowCount = _this$props6.rowCount;\n var _this$state4 = this.state,\n horizontalScrollDirection = _this$state4.horizontalScrollDirection,\n isScrolling = _this$state4.isScrolling,\n scrollLeft = _this$state4.scrollLeft;\n var overscanCountResolved = overscanColumnCount || overscanColumnsCount || overscanCount || 1;\n\n if (columnCount === 0 || rowCount === 0) {\n return [0, 0, 0, 0];\n }\n\n var startIndex = getColumnStartIndexForOffset(this.props, scrollLeft, this._instanceProps);\n var stopIndex = getColumnStopIndexForStartIndex(this.props, startIndex, scrollLeft, this._instanceProps); // Overscan by one item in each direction so that tab/focus works.\n // If there isn't at least one extra item, tab loops back around.\n\n var overscanBackward = !isScrolling || horizontalScrollDirection === 'backward' ? Math.max(1, overscanCountResolved) : 1;\n var overscanForward = !isScrolling || horizontalScrollDirection === 'forward' ? Math.max(1, overscanCountResolved) : 1;\n return [Math.max(0, startIndex - overscanBackward), Math.max(0, Math.min(columnCount - 1, stopIndex + overscanForward)), startIndex, stopIndex];\n };\n\n _proto._getVerticalRangeToRender = function _getVerticalRangeToRender() {\n var _this$props7 = this.props,\n columnCount = _this$props7.columnCount,\n overscanCount = _this$props7.overscanCount,\n overscanRowCount = _this$props7.overscanRowCount,\n overscanRowsCount = _this$props7.overscanRowsCount,\n rowCount = _this$props7.rowCount;\n var _this$state5 = this.state,\n isScrolling = _this$state5.isScrolling,\n verticalScrollDirection = _this$state5.verticalScrollDirection,\n scrollTop = _this$state5.scrollTop;\n var overscanCountResolved = overscanRowCount || overscanRowsCount || overscanCount || 1;\n\n if (columnCount === 0 || rowCount === 0) {\n return [0, 0, 0, 0];\n }\n\n var startIndex = getRowStartIndexForOffset(this.props, scrollTop, this._instanceProps);\n var stopIndex = getRowStopIndexForStartIndex(this.props, startIndex, scrollTop, this._instanceProps); // Overscan by one item in each direction so that tab/focus works.\n // If there isn't at least one extra item, tab loops back around.\n\n var overscanBackward = !isScrolling || verticalScrollDirection === 'backward' ? Math.max(1, overscanCountResolved) : 1;\n var overscanForward = !isScrolling || verticalScrollDirection === 'forward' ? Math.max(1, overscanCountResolved) : 1;\n return [Math.max(0, startIndex - overscanBackward), Math.max(0, Math.min(rowCount - 1, stopIndex + overscanForward)), startIndex, stopIndex];\n };\n\n return Grid;\n }(PureComponent), _class.defaultProps = {\n direction: 'ltr',\n itemData: undefined,\n useIsScrolling: false\n }, _class;\n}\n\nvar validateSharedProps = function validateSharedProps(_ref5, _ref6) {\n var children = _ref5.children,\n direction = _ref5.direction,\n height = _ref5.height,\n innerTagName = _ref5.innerTagName,\n outerTagName = _ref5.outerTagName,\n overscanColumnsCount = _ref5.overscanColumnsCount,\n overscanCount = _ref5.overscanCount,\n overscanRowsCount = _ref5.overscanRowsCount,\n width = _ref5.width;\n var instance = _ref6.instance;\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof overscanCount === 'number') {\n if (devWarningsOverscanCount && !devWarningsOverscanCount.has(instance)) {\n devWarningsOverscanCount.add(instance);\n console.warn('The overscanCount prop has been deprecated. ' + 'Please use the overscanColumnCount and overscanRowCount props instead.');\n }\n }\n\n if (typeof overscanColumnsCount === 'number' || typeof overscanRowsCount === 'number') {\n if (devWarningsOverscanRowsColumnsCount && !devWarningsOverscanRowsColumnsCount.has(instance)) {\n devWarningsOverscanRowsColumnsCount.add(instance);\n console.warn('The overscanColumnsCount and overscanRowsCount props have been deprecated. ' + 'Please use the overscanColumnCount and overscanRowCount props instead.');\n }\n }\n\n if (innerTagName != null || outerTagName != null) {\n if (devWarningsTagName && !devWarningsTagName.has(instance)) {\n devWarningsTagName.add(instance);\n console.warn('The innerTagName and outerTagName props have been deprecated. ' + 'Please use the innerElementType and outerElementType props instead.');\n }\n }\n\n if (children == null) {\n throw Error('An invalid \"children\" prop has been specified. ' + 'Value should be a React component. ' + (\"\\\"\" + (children === null ? 'null' : typeof children) + \"\\\" was specified.\"));\n }\n\n switch (direction) {\n case 'ltr':\n case 'rtl':\n // Valid values\n break;\n\n default:\n throw Error('An invalid \"direction\" prop has been specified. ' + 'Value should be either \"ltr\" or \"rtl\". ' + (\"\\\"\" + direction + \"\\\" was specified.\"));\n }\n\n if (typeof width !== 'number') {\n throw Error('An invalid \"width\" prop has been specified. ' + 'Grids must specify a number for width. ' + (\"\\\"\" + (width === null ? 'null' : typeof width) + \"\\\" was specified.\"));\n }\n\n if (typeof height !== 'number') {\n throw Error('An invalid \"height\" prop has been specified. ' + 'Grids must specify a number for height. ' + (\"\\\"\" + (height === null ? 'null' : typeof height) + \"\\\" was specified.\"));\n }\n }\n};\n\nvar DEFAULT_ESTIMATED_ITEM_SIZE = 50;\n\nvar getEstimatedTotalHeight = function getEstimatedTotalHeight(_ref, _ref2) {\n var rowCount = _ref.rowCount;\n var rowMetadataMap = _ref2.rowMetadataMap,\n estimatedRowHeight = _ref2.estimatedRowHeight,\n lastMeasuredRowIndex = _ref2.lastMeasuredRowIndex;\n var totalSizeOfMeasuredRows = 0; // Edge case check for when the number of items decreases while a scroll is in progress.\n // https://github.com/bvaughn/react-window/pull/138\n\n if (lastMeasuredRowIndex >= rowCount) {\n lastMeasuredRowIndex = rowCount - 1;\n }\n\n if (lastMeasuredRowIndex >= 0) {\n var itemMetadata = rowMetadataMap[lastMeasuredRowIndex];\n totalSizeOfMeasuredRows = itemMetadata.offset + itemMetadata.size;\n }\n\n var numUnmeasuredItems = rowCount - lastMeasuredRowIndex - 1;\n var totalSizeOfUnmeasuredItems = numUnmeasuredItems * estimatedRowHeight;\n return totalSizeOfMeasuredRows + totalSizeOfUnmeasuredItems;\n};\n\nvar getEstimatedTotalWidth = function getEstimatedTotalWidth(_ref3, _ref4) {\n var columnCount = _ref3.columnCount;\n var columnMetadataMap = _ref4.columnMetadataMap,\n estimatedColumnWidth = _ref4.estimatedColumnWidth,\n lastMeasuredColumnIndex = _ref4.lastMeasuredColumnIndex;\n var totalSizeOfMeasuredRows = 0; // Edge case check for when the number of items decreases while a scroll is in progress.\n // https://github.com/bvaughn/react-window/pull/138\n\n if (lastMeasuredColumnIndex >= columnCount) {\n lastMeasuredColumnIndex = columnCount - 1;\n }\n\n if (lastMeasuredColumnIndex >= 0) {\n var itemMetadata = columnMetadataMap[lastMeasuredColumnIndex];\n totalSizeOfMeasuredRows = itemMetadata.offset + itemMetadata.size;\n }\n\n var numUnmeasuredItems = columnCount - lastMeasuredColumnIndex - 1;\n var totalSizeOfUnmeasuredItems = numUnmeasuredItems * estimatedColumnWidth;\n return totalSizeOfMeasuredRows + totalSizeOfUnmeasuredItems;\n};\n\nvar getItemMetadata = function getItemMetadata(itemType, props, index, instanceProps) {\n var itemMetadataMap, itemSize, lastMeasuredIndex;\n\n if (itemType === 'column') {\n itemMetadataMap = instanceProps.columnMetadataMap;\n itemSize = props.columnWidth;\n lastMeasuredIndex = instanceProps.lastMeasuredColumnIndex;\n } else {\n itemMetadataMap = instanceProps.rowMetadataMap;\n itemSize = props.rowHeight;\n lastMeasuredIndex = instanceProps.lastMeasuredRowIndex;\n }\n\n if (index > lastMeasuredIndex) {\n var offset = 0;\n\n if (lastMeasuredIndex >= 0) {\n var itemMetadata = itemMetadataMap[lastMeasuredIndex];\n offset = itemMetadata.offset + itemMetadata.size;\n }\n\n for (var i = lastMeasuredIndex + 1; i <= index; i++) {\n var size = itemSize(i);\n itemMetadataMap[i] = {\n offset: offset,\n size: size\n };\n offset += size;\n }\n\n if (itemType === 'column') {\n instanceProps.lastMeasuredColumnIndex = index;\n } else {\n instanceProps.lastMeasuredRowIndex = index;\n }\n }\n\n return itemMetadataMap[index];\n};\n\nvar findNearestItem = function findNearestItem(itemType, props, instanceProps, offset) {\n var itemMetadataMap, lastMeasuredIndex;\n\n if (itemType === 'column') {\n itemMetadataMap = instanceProps.columnMetadataMap;\n lastMeasuredIndex = instanceProps.lastMeasuredColumnIndex;\n } else {\n itemMetadataMap = instanceProps.rowMetadataMap;\n lastMeasuredIndex = instanceProps.lastMeasuredRowIndex;\n }\n\n var lastMeasuredItemOffset = lastMeasuredIndex > 0 ? itemMetadataMap[lastMeasuredIndex].offset : 0;\n\n if (lastMeasuredItemOffset >= offset) {\n // If we've already measured items within this range just use a binary search as it's faster.\n return findNearestItemBinarySearch(itemType, props, instanceProps, lastMeasuredIndex, 0, offset);\n } else {\n // If we haven't yet measured this high, fallback to an exponential search with an inner binary search.\n // The exponential search avoids pre-computing sizes for the full set of items as a binary search would.\n // The overall complexity for this approach is O(log n).\n return findNearestItemExponentialSearch(itemType, props, instanceProps, Math.max(0, lastMeasuredIndex), offset);\n }\n};\n\nvar findNearestItemBinarySearch = function findNearestItemBinarySearch(itemType, props, instanceProps, high, low, offset) {\n while (low <= high) {\n var middle = low + Math.floor((high - low) / 2);\n var currentOffset = getItemMetadata(itemType, props, middle, instanceProps).offset;\n\n if (currentOffset === offset) {\n return middle;\n } else if (currentOffset < offset) {\n low = middle + 1;\n } else if (currentOffset > offset) {\n high = middle - 1;\n }\n }\n\n if (low > 0) {\n return low - 1;\n } else {\n return 0;\n }\n};\n\nvar findNearestItemExponentialSearch = function findNearestItemExponentialSearch(itemType, props, instanceProps, index, offset) {\n var itemCount = itemType === 'column' ? props.columnCount : props.rowCount;\n var interval = 1;\n\n while (index < itemCount && getItemMetadata(itemType, props, index, instanceProps).offset < offset) {\n index += interval;\n interval *= 2;\n }\n\n return findNearestItemBinarySearch(itemType, props, instanceProps, Math.min(index, itemCount - 1), Math.floor(index / 2), offset);\n};\n\nvar getOffsetForIndexAndAlignment = function getOffsetForIndexAndAlignment(itemType, props, index, align, scrollOffset, instanceProps, scrollbarSize) {\n var size = itemType === 'column' ? props.width : props.height;\n var itemMetadata = getItemMetadata(itemType, props, index, instanceProps); // Get estimated total size after ItemMetadata is computed,\n // To ensure it reflects actual measurements instead of just estimates.\n\n var estimatedTotalSize = itemType === 'column' ? getEstimatedTotalWidth(props, instanceProps) : getEstimatedTotalHeight(props, instanceProps);\n var maxOffset = Math.max(0, Math.min(estimatedTotalSize - size, itemMetadata.offset));\n var minOffset = Math.max(0, itemMetadata.offset - size + scrollbarSize + itemMetadata.size);\n\n if (align === 'smart') {\n if (scrollOffset >= minOffset - size && scrollOffset <= maxOffset + size) {\n align = 'auto';\n } else {\n align = 'center';\n }\n }\n\n switch (align) {\n case 'start':\n return maxOffset;\n\n case 'end':\n return minOffset;\n\n case 'center':\n return Math.round(minOffset + (maxOffset - minOffset) / 2);\n\n case 'auto':\n default:\n if (scrollOffset >= minOffset && scrollOffset <= maxOffset) {\n return scrollOffset;\n } else if (minOffset > maxOffset) {\n // Because we only take into account the scrollbar size when calculating minOffset\n // this value can be larger than maxOffset when at the end of the list\n return minOffset;\n } else if (scrollOffset < minOffset) {\n return minOffset;\n } else {\n return maxOffset;\n }\n\n }\n};\n\nvar VariableSizeGrid = /*#__PURE__*/createGridComponent({\n getColumnOffset: function getColumnOffset(props, index, instanceProps) {\n return getItemMetadata('column', props, index, instanceProps).offset;\n },\n getColumnStartIndexForOffset: function getColumnStartIndexForOffset(props, scrollLeft, instanceProps) {\n return findNearestItem('column', props, instanceProps, scrollLeft);\n },\n getColumnStopIndexForStartIndex: function getColumnStopIndexForStartIndex(props, startIndex, scrollLeft, instanceProps) {\n var columnCount = props.columnCount,\n width = props.width;\n var itemMetadata = getItemMetadata('column', props, startIndex, instanceProps);\n var maxOffset = scrollLeft + width;\n var offset = itemMetadata.offset + itemMetadata.size;\n var stopIndex = startIndex;\n\n while (stopIndex < columnCount - 1 && offset < maxOffset) {\n stopIndex++;\n offset += getItemMetadata('column', props, stopIndex, instanceProps).size;\n }\n\n return stopIndex;\n },\n getColumnWidth: function getColumnWidth(props, index, instanceProps) {\n return instanceProps.columnMetadataMap[index].size;\n },\n getEstimatedTotalHeight: getEstimatedTotalHeight,\n getEstimatedTotalWidth: getEstimatedTotalWidth,\n getOffsetForColumnAndAlignment: function getOffsetForColumnAndAlignment(props, index, align, scrollOffset, instanceProps, scrollbarSize) {\n return getOffsetForIndexAndAlignment('column', props, index, align, scrollOffset, instanceProps, scrollbarSize);\n },\n getOffsetForRowAndAlignment: function getOffsetForRowAndAlignment(props, index, align, scrollOffset, instanceProps, scrollbarSize) {\n return getOffsetForIndexAndAlignment('row', props, index, align, scrollOffset, instanceProps, scrollbarSize);\n },\n getRowOffset: function getRowOffset(props, index, instanceProps) {\n return getItemMetadata('row', props, index, instanceProps).offset;\n },\n getRowHeight: function getRowHeight(props, index, instanceProps) {\n return instanceProps.rowMetadataMap[index].size;\n },\n getRowStartIndexForOffset: function getRowStartIndexForOffset(props, scrollTop, instanceProps) {\n return findNearestItem('row', props, instanceProps, scrollTop);\n },\n getRowStopIndexForStartIndex: function getRowStopIndexForStartIndex(props, startIndex, scrollTop, instanceProps) {\n var rowCount = props.rowCount,\n height = props.height;\n var itemMetadata = getItemMetadata('row', props, startIndex, instanceProps);\n var maxOffset = scrollTop + height;\n var offset = itemMetadata.offset + itemMetadata.size;\n var stopIndex = startIndex;\n\n while (stopIndex < rowCount - 1 && offset < maxOffset) {\n stopIndex++;\n offset += getItemMetadata('row', props, stopIndex, instanceProps).size;\n }\n\n return stopIndex;\n },\n initInstanceProps: function initInstanceProps(props, instance) {\n var _ref5 = props,\n estimatedColumnWidth = _ref5.estimatedColumnWidth,\n estimatedRowHeight = _ref5.estimatedRowHeight;\n var instanceProps = {\n columnMetadataMap: {},\n estimatedColumnWidth: estimatedColumnWidth || DEFAULT_ESTIMATED_ITEM_SIZE,\n estimatedRowHeight: estimatedRowHeight || DEFAULT_ESTIMATED_ITEM_SIZE,\n lastMeasuredColumnIndex: -1,\n lastMeasuredRowIndex: -1,\n rowMetadataMap: {}\n };\n\n instance.resetAfterColumnIndex = function (columnIndex, shouldForceUpdate) {\n if (shouldForceUpdate === void 0) {\n shouldForceUpdate = true;\n }\n\n instance.resetAfterIndices({\n columnIndex: columnIndex,\n shouldForceUpdate: shouldForceUpdate\n });\n };\n\n instance.resetAfterRowIndex = function (rowIndex, shouldForceUpdate) {\n if (shouldForceUpdate === void 0) {\n shouldForceUpdate = true;\n }\n\n instance.resetAfterIndices({\n rowIndex: rowIndex,\n shouldForceUpdate: shouldForceUpdate\n });\n };\n\n instance.resetAfterIndices = function (_ref6) {\n var columnIndex = _ref6.columnIndex,\n rowIndex = _ref6.rowIndex,\n _ref6$shouldForceUpda = _ref6.shouldForceUpdate,\n shouldForceUpdate = _ref6$shouldForceUpda === void 0 ? true : _ref6$shouldForceUpda;\n\n if (typeof columnIndex === 'number') {\n instanceProps.lastMeasuredColumnIndex = Math.min(instanceProps.lastMeasuredColumnIndex, columnIndex - 1);\n }\n\n if (typeof rowIndex === 'number') {\n instanceProps.lastMeasuredRowIndex = Math.min(instanceProps.lastMeasuredRowIndex, rowIndex - 1);\n } // We could potentially optimize further by only evicting styles after this index,\n // But since styles are only cached while scrolling is in progress-\n // It seems an unnecessary optimization.\n // It's unlikely that resetAfterIndex() will be called while a user is scrolling.\n\n\n instance._getItemStyleCache(-1);\n\n if (shouldForceUpdate) {\n instance.forceUpdate();\n }\n };\n\n return instanceProps;\n },\n shouldResetStyleCacheOnItemSizeChange: false,\n validateProps: function validateProps(_ref7) {\n var columnWidth = _ref7.columnWidth,\n rowHeight = _ref7.rowHeight;\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof columnWidth !== 'function') {\n throw Error('An invalid \"columnWidth\" prop has been specified. ' + 'Value should be a function. ' + (\"\\\"\" + (columnWidth === null ? 'null' : typeof columnWidth) + \"\\\" was specified.\"));\n } else if (typeof rowHeight !== 'function') {\n throw Error('An invalid \"rowHeight\" prop has been specified. ' + 'Value should be a function. ' + (\"\\\"\" + (rowHeight === null ? 'null' : typeof rowHeight) + \"\\\" was specified.\"));\n }\n }\n }\n});\n\nvar IS_SCROLLING_DEBOUNCE_INTERVAL$1 = 150;\n\nvar defaultItemKey$1 = function defaultItemKey(index, data) {\n return index;\n}; // In DEV mode, this Set helps us only log a warning once per component instance.\n// This avoids spamming the console every time a render happens.\n\n\nvar devWarningsDirection = null;\nvar devWarningsTagName$1 = null;\n\nif (process.env.NODE_ENV !== 'production') {\n if (typeof window !== 'undefined' && typeof window.WeakSet !== 'undefined') {\n devWarningsDirection = /*#__PURE__*/new WeakSet();\n devWarningsTagName$1 = /*#__PURE__*/new WeakSet();\n }\n}\n\nfunction createListComponent(_ref) {\n var _class;\n\n var getItemOffset = _ref.getItemOffset,\n getEstimatedTotalSize = _ref.getEstimatedTotalSize,\n getItemSize = _ref.getItemSize,\n getOffsetForIndexAndAlignment = _ref.getOffsetForIndexAndAlignment,\n getStartIndexForOffset = _ref.getStartIndexForOffset,\n getStopIndexForStartIndex = _ref.getStopIndexForStartIndex,\n initInstanceProps = _ref.initInstanceProps,\n shouldResetStyleCacheOnItemSizeChange = _ref.shouldResetStyleCacheOnItemSizeChange,\n validateProps = _ref.validateProps;\n return _class = /*#__PURE__*/function (_PureComponent) {\n _inheritsLoose(List, _PureComponent);\n\n // Always use explicit constructor for React components.\n // It produces less code after transpilation. (#26)\n // eslint-disable-next-line no-useless-constructor\n function List(props) {\n var _this;\n\n _this = _PureComponent.call(this, props) || this;\n _this._instanceProps = initInstanceProps(_this.props, _assertThisInitialized(_this));\n _this._outerRef = void 0;\n _this._resetIsScrollingTimeoutId = null;\n _this.state = {\n instance: _assertThisInitialized(_this),\n isScrolling: false,\n scrollDirection: 'forward',\n scrollOffset: typeof _this.props.initialScrollOffset === 'number' ? _this.props.initialScrollOffset : 0,\n scrollUpdateWasRequested: false\n };\n _this._callOnItemsRendered = void 0;\n _this._callOnItemsRendered = memoizeOne(function (overscanStartIndex, overscanStopIndex, visibleStartIndex, visibleStopIndex) {\n return _this.props.onItemsRendered({\n overscanStartIndex: overscanStartIndex,\n overscanStopIndex: overscanStopIndex,\n visibleStartIndex: visibleStartIndex,\n visibleStopIndex: visibleStopIndex\n });\n });\n _this._callOnScroll = void 0;\n _this._callOnScroll = memoizeOne(function (scrollDirection, scrollOffset, scrollUpdateWasRequested) {\n return _this.props.onScroll({\n scrollDirection: scrollDirection,\n scrollOffset: scrollOffset,\n scrollUpdateWasRequested: scrollUpdateWasRequested\n });\n });\n _this._getItemStyle = void 0;\n\n _this._getItemStyle = function (index) {\n var _this$props = _this.props,\n direction = _this$props.direction,\n itemSize = _this$props.itemSize,\n layout = _this$props.layout;\n\n var itemStyleCache = _this._getItemStyleCache(shouldResetStyleCacheOnItemSizeChange && itemSize, shouldResetStyleCacheOnItemSizeChange && layout, shouldResetStyleCacheOnItemSizeChange && direction);\n\n var style;\n\n if (itemStyleCache.hasOwnProperty(index)) {\n style = itemStyleCache[index];\n } else {\n var _offset = getItemOffset(_this.props, index, _this._instanceProps);\n\n var size = getItemSize(_this.props, index, _this._instanceProps); // TODO Deprecate direction \"horizontal\"\n\n var isHorizontal = direction === 'horizontal' || layout === 'horizontal';\n var isRtl = direction === 'rtl';\n var offsetHorizontal = isHorizontal ? _offset : 0;\n itemStyleCache[index] = style = {\n position: 'absolute',\n left: isRtl ? undefined : offsetHorizontal,\n right: isRtl ? offsetHorizontal : undefined,\n top: !isHorizontal ? _offset : 0,\n height: !isHorizontal ? size : '100%',\n width: isHorizontal ? size : '100%'\n };\n }\n\n return style;\n };\n\n _this._getItemStyleCache = void 0;\n _this._getItemStyleCache = memoizeOne(function (_, __, ___) {\n return {};\n });\n\n _this._onScrollHorizontal = function (event) {\n var _event$currentTarget = event.currentTarget,\n clientWidth = _event$currentTarget.clientWidth,\n scrollLeft = _event$currentTarget.scrollLeft,\n scrollWidth = _event$currentTarget.scrollWidth;\n\n _this.setState(function (prevState) {\n if (prevState.scrollOffset === scrollLeft) {\n // Scroll position may have been updated by cDM/cDU,\n // In which case we don't need to trigger another render,\n // And we don't want to update state.isScrolling.\n return null;\n }\n\n var direction = _this.props.direction;\n var scrollOffset = scrollLeft;\n\n if (direction === 'rtl') {\n // TRICKY According to the spec, scrollLeft should be negative for RTL aligned elements.\n // This is not the case for all browsers though (e.g. Chrome reports values as positive, measured relative to the left).\n // It's also easier for this component if we convert offsets to the same format as they would be in for ltr.\n // So the simplest solution is to determine which browser behavior we're dealing with, and convert based on it.\n switch (getRTLOffsetType()) {\n case 'negative':\n scrollOffset = -scrollLeft;\n break;\n\n case 'positive-descending':\n scrollOffset = scrollWidth - clientWidth - scrollLeft;\n break;\n }\n } // Prevent Safari's elastic scrolling from causing visual shaking when scrolling past bounds.\n\n\n scrollOffset = Math.max(0, Math.min(scrollOffset, scrollWidth - clientWidth));\n return {\n isScrolling: true,\n scrollDirection: prevState.scrollOffset < scrollOffset ? 'forward' : 'backward',\n scrollOffset: scrollOffset,\n scrollUpdateWasRequested: false\n };\n }, _this._resetIsScrollingDebounced);\n };\n\n _this._onScrollVertical = function (event) {\n var _event$currentTarget2 = event.currentTarget,\n clientHeight = _event$currentTarget2.clientHeight,\n scrollHeight = _event$currentTarget2.scrollHeight,\n scrollTop = _event$currentTarget2.scrollTop;\n\n _this.setState(function (prevState) {\n if (prevState.scrollOffset === scrollTop) {\n // Scroll position may have been updated by cDM/cDU,\n // In which case we don't need to trigger another render,\n // And we don't want to update state.isScrolling.\n return null;\n } // Prevent Safari's elastic scrolling from causing visual shaking when scrolling past bounds.\n\n\n var scrollOffset = Math.max(0, Math.min(scrollTop, scrollHeight - clientHeight));\n return {\n isScrolling: true,\n scrollDirection: prevState.scrollOffset < scrollOffset ? 'forward' : 'backward',\n scrollOffset: scrollOffset,\n scrollUpdateWasRequested: false\n };\n }, _this._resetIsScrollingDebounced);\n };\n\n _this._outerRefSetter = function (ref) {\n var outerRef = _this.props.outerRef;\n _this._outerRef = ref;\n\n if (typeof outerRef === 'function') {\n outerRef(ref);\n } else if (outerRef != null && typeof outerRef === 'object' && outerRef.hasOwnProperty('current')) {\n outerRef.current = ref;\n }\n };\n\n _this._resetIsScrollingDebounced = function () {\n if (_this._resetIsScrollingTimeoutId !== null) {\n cancelTimeout(_this._resetIsScrollingTimeoutId);\n }\n\n _this._resetIsScrollingTimeoutId = requestTimeout(_this._resetIsScrolling, IS_SCROLLING_DEBOUNCE_INTERVAL$1);\n };\n\n _this._resetIsScrolling = function () {\n _this._resetIsScrollingTimeoutId = null;\n\n _this.setState({\n isScrolling: false\n }, function () {\n // Clear style cache after state update has been committed.\n // This way we don't break pure sCU for items that don't use isScrolling param.\n _this._getItemStyleCache(-1, null);\n });\n };\n\n return _this;\n }\n\n List.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {\n validateSharedProps$1(nextProps, prevState);\n validateProps(nextProps);\n return null;\n };\n\n var _proto = List.prototype;\n\n _proto.scrollTo = function scrollTo(scrollOffset) {\n scrollOffset = Math.max(0, scrollOffset);\n this.setState(function (prevState) {\n if (prevState.scrollOffset === scrollOffset) {\n return null;\n }\n\n return {\n scrollDirection: prevState.scrollOffset < scrollOffset ? 'forward' : 'backward',\n scrollOffset: scrollOffset,\n scrollUpdateWasRequested: true\n };\n }, this._resetIsScrollingDebounced);\n };\n\n _proto.scrollToItem = function scrollToItem(index, align) {\n if (align === void 0) {\n align = 'auto';\n }\n\n var _this$props2 = this.props,\n itemCount = _this$props2.itemCount,\n layout = _this$props2.layout;\n var scrollOffset = this.state.scrollOffset;\n index = Math.max(0, Math.min(index, itemCount - 1)); // The scrollbar size should be considered when scrolling an item into view, to ensure it's fully visible.\n // But we only need to account for its size when it's actually visible.\n // This is an edge case for lists; normally they only scroll in the dominant direction.\n\n var scrollbarSize = 0;\n\n if (this._outerRef) {\n var outerRef = this._outerRef;\n\n if (layout === 'vertical') {\n scrollbarSize = outerRef.scrollWidth > outerRef.clientWidth ? getScrollbarSize() : 0;\n } else {\n scrollbarSize = outerRef.scrollHeight > outerRef.clientHeight ? getScrollbarSize() : 0;\n }\n }\n\n this.scrollTo(getOffsetForIndexAndAlignment(this.props, index, align, scrollOffset, this._instanceProps, scrollbarSize));\n };\n\n _proto.componentDidMount = function componentDidMount() {\n var _this$props3 = this.props,\n direction = _this$props3.direction,\n initialScrollOffset = _this$props3.initialScrollOffset,\n layout = _this$props3.layout;\n\n if (typeof initialScrollOffset === 'number' && this._outerRef != null) {\n var outerRef = this._outerRef; // TODO Deprecate direction \"horizontal\"\n\n if (direction === 'horizontal' || layout === 'horizontal') {\n outerRef.scrollLeft = initialScrollOffset;\n } else {\n outerRef.scrollTop = initialScrollOffset;\n }\n }\n\n this._callPropsCallbacks();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n var _this$props4 = this.props,\n direction = _this$props4.direction,\n layout = _this$props4.layout;\n var _this$state = this.state,\n scrollOffset = _this$state.scrollOffset,\n scrollUpdateWasRequested = _this$state.scrollUpdateWasRequested;\n\n if (scrollUpdateWasRequested && this._outerRef != null) {\n var outerRef = this._outerRef; // TODO Deprecate direction \"horizontal\"\n\n if (direction === 'horizontal' || layout === 'horizontal') {\n if (direction === 'rtl') {\n // TRICKY According to the spec, scrollLeft should be negative for RTL aligned elements.\n // This is not the case for all browsers though (e.g. Chrome reports values as positive, measured relative to the left).\n // So we need to determine which browser behavior we're dealing with, and mimic it.\n switch (getRTLOffsetType()) {\n case 'negative':\n outerRef.scrollLeft = -scrollOffset;\n break;\n\n case 'positive-ascending':\n outerRef.scrollLeft = scrollOffset;\n break;\n\n default:\n var clientWidth = outerRef.clientWidth,\n scrollWidth = outerRef.scrollWidth;\n outerRef.scrollLeft = scrollWidth - clientWidth - scrollOffset;\n break;\n }\n } else {\n outerRef.scrollLeft = scrollOffset;\n }\n } else {\n outerRef.scrollTop = scrollOffset;\n }\n }\n\n this._callPropsCallbacks();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this._resetIsScrollingTimeoutId !== null) {\n cancelTimeout(this._resetIsScrollingTimeoutId);\n }\n };\n\n _proto.render = function render() {\n var _this$props5 = this.props,\n children = _this$props5.children,\n className = _this$props5.className,\n direction = _this$props5.direction,\n height = _this$props5.height,\n innerRef = _this$props5.innerRef,\n innerElementType = _this$props5.innerElementType,\n innerTagName = _this$props5.innerTagName,\n itemCount = _this$props5.itemCount,\n itemData = _this$props5.itemData,\n _this$props5$itemKey = _this$props5.itemKey,\n itemKey = _this$props5$itemKey === void 0 ? defaultItemKey$1 : _this$props5$itemKey,\n layout = _this$props5.layout,\n outerElementType = _this$props5.outerElementType,\n outerTagName = _this$props5.outerTagName,\n style = _this$props5.style,\n useIsScrolling = _this$props5.useIsScrolling,\n width = _this$props5.width;\n var isScrolling = this.state.isScrolling; // TODO Deprecate direction \"horizontal\"\n\n var isHorizontal = direction === 'horizontal' || layout === 'horizontal';\n var onScroll = isHorizontal ? this._onScrollHorizontal : this._onScrollVertical;\n\n var _this$_getRangeToRend = this._getRangeToRender(),\n startIndex = _this$_getRangeToRend[0],\n stopIndex = _this$_getRangeToRend[1];\n\n var items = [];\n\n if (itemCount > 0) {\n for (var _index = startIndex; _index <= stopIndex; _index++) {\n items.push(createElement(children, {\n data: itemData,\n key: itemKey(_index, itemData),\n index: _index,\n isScrolling: useIsScrolling ? isScrolling : undefined,\n style: this._getItemStyle(_index)\n }));\n }\n } // Read this value AFTER items have been created,\n // So their actual sizes (if variable) are taken into consideration.\n\n\n var estimatedTotalSize = getEstimatedTotalSize(this.props, this._instanceProps);\n return createElement(outerElementType || outerTagName || 'div', {\n className: className,\n onScroll: onScroll,\n ref: this._outerRefSetter,\n style: _extends({\n position: 'relative',\n height: height,\n width: width,\n overflow: 'auto',\n WebkitOverflowScrolling: 'touch',\n willChange: 'transform',\n direction: direction\n }, style)\n }, createElement(innerElementType || innerTagName || 'div', {\n children: items,\n ref: innerRef,\n style: {\n height: isHorizontal ? '100%' : estimatedTotalSize,\n pointerEvents: isScrolling ? 'none' : undefined,\n width: isHorizontal ? estimatedTotalSize : '100%'\n }\n }));\n };\n\n _proto._callPropsCallbacks = function _callPropsCallbacks() {\n if (typeof this.props.onItemsRendered === 'function') {\n var itemCount = this.props.itemCount;\n\n if (itemCount > 0) {\n var _this$_getRangeToRend2 = this._getRangeToRender(),\n _overscanStartIndex = _this$_getRangeToRend2[0],\n _overscanStopIndex = _this$_getRangeToRend2[1],\n _visibleStartIndex = _this$_getRangeToRend2[2],\n _visibleStopIndex = _this$_getRangeToRend2[3];\n\n this._callOnItemsRendered(_overscanStartIndex, _overscanStopIndex, _visibleStartIndex, _visibleStopIndex);\n }\n }\n\n if (typeof this.props.onScroll === 'function') {\n var _this$state2 = this.state,\n _scrollDirection = _this$state2.scrollDirection,\n _scrollOffset = _this$state2.scrollOffset,\n _scrollUpdateWasRequested = _this$state2.scrollUpdateWasRequested;\n\n this._callOnScroll(_scrollDirection, _scrollOffset, _scrollUpdateWasRequested);\n }\n } // Lazily create and cache item styles while scrolling,\n // So that pure component sCU will prevent re-renders.\n // We maintain this cache, and pass a style prop rather than index,\n // So that List can clear cached styles and force item re-render if necessary.\n ;\n\n _proto._getRangeToRender = function _getRangeToRender() {\n var _this$props6 = this.props,\n itemCount = _this$props6.itemCount,\n overscanCount = _this$props6.overscanCount;\n var _this$state3 = this.state,\n isScrolling = _this$state3.isScrolling,\n scrollDirection = _this$state3.scrollDirection,\n scrollOffset = _this$state3.scrollOffset;\n\n if (itemCount === 0) {\n return [0, 0, 0, 0];\n }\n\n var startIndex = getStartIndexForOffset(this.props, scrollOffset, this._instanceProps);\n var stopIndex = getStopIndexForStartIndex(this.props, startIndex, scrollOffset, this._instanceProps); // Overscan by one item in each direction so that tab/focus works.\n // If there isn't at least one extra item, tab loops back around.\n\n var overscanBackward = !isScrolling || scrollDirection === 'backward' ? Math.max(1, overscanCount) : 1;\n var overscanForward = !isScrolling || scrollDirection === 'forward' ? Math.max(1, overscanCount) : 1;\n return [Math.max(0, startIndex - overscanBackward), Math.max(0, Math.min(itemCount - 1, stopIndex + overscanForward)), startIndex, stopIndex];\n };\n\n return List;\n }(PureComponent), _class.defaultProps = {\n direction: 'ltr',\n itemData: undefined,\n layout: 'vertical',\n overscanCount: 2,\n useIsScrolling: false\n }, _class;\n} // NOTE: I considered further wrapping individual items with a pure ListItem component.\n// This would avoid ever calling the render function for the same index more than once,\n// But it would also add the overhead of a lot of components/fibers.\n// I assume people already do this (render function returning a class component),\n// So my doing it would just unnecessarily double the wrappers.\n\nvar validateSharedProps$1 = function validateSharedProps(_ref2, _ref3) {\n var children = _ref2.children,\n direction = _ref2.direction,\n height = _ref2.height,\n layout = _ref2.layout,\n innerTagName = _ref2.innerTagName,\n outerTagName = _ref2.outerTagName,\n width = _ref2.width;\n var instance = _ref3.instance;\n\n if (process.env.NODE_ENV !== 'production') {\n if (innerTagName != null || outerTagName != null) {\n if (devWarningsTagName$1 && !devWarningsTagName$1.has(instance)) {\n devWarningsTagName$1.add(instance);\n console.warn('The innerTagName and outerTagName props have been deprecated. ' + 'Please use the innerElementType and outerElementType props instead.');\n }\n } // TODO Deprecate direction \"horizontal\"\n\n\n var isHorizontal = direction === 'horizontal' || layout === 'horizontal';\n\n switch (direction) {\n case 'horizontal':\n case 'vertical':\n if (devWarningsDirection && !devWarningsDirection.has(instance)) {\n devWarningsDirection.add(instance);\n console.warn('The direction prop should be either \"ltr\" (default) or \"rtl\". ' + 'Please use the layout prop to specify \"vertical\" (default) or \"horizontal\" orientation.');\n }\n\n break;\n\n case 'ltr':\n case 'rtl':\n // Valid values\n break;\n\n default:\n throw Error('An invalid \"direction\" prop has been specified. ' + 'Value should be either \"ltr\" or \"rtl\". ' + (\"\\\"\" + direction + \"\\\" was specified.\"));\n }\n\n switch (layout) {\n case 'horizontal':\n case 'vertical':\n // Valid values\n break;\n\n default:\n throw Error('An invalid \"layout\" prop has been specified. ' + 'Value should be either \"horizontal\" or \"vertical\". ' + (\"\\\"\" + layout + \"\\\" was specified.\"));\n }\n\n if (children == null) {\n throw Error('An invalid \"children\" prop has been specified. ' + 'Value should be a React component. ' + (\"\\\"\" + (children === null ? 'null' : typeof children) + \"\\\" was specified.\"));\n }\n\n if (isHorizontal && typeof width !== 'number') {\n throw Error('An invalid \"width\" prop has been specified. ' + 'Horizontal lists must specify a number for width. ' + (\"\\\"\" + (width === null ? 'null' : typeof width) + \"\\\" was specified.\"));\n } else if (!isHorizontal && typeof height !== 'number') {\n throw Error('An invalid \"height\" prop has been specified. ' + 'Vertical lists must specify a number for height. ' + (\"\\\"\" + (height === null ? 'null' : typeof height) + \"\\\" was specified.\"));\n }\n }\n};\n\nvar DEFAULT_ESTIMATED_ITEM_SIZE$1 = 50;\n\nvar getItemMetadata$1 = function getItemMetadata(props, index, instanceProps) {\n var _ref = props,\n itemSize = _ref.itemSize;\n var itemMetadataMap = instanceProps.itemMetadataMap,\n lastMeasuredIndex = instanceProps.lastMeasuredIndex;\n\n if (index > lastMeasuredIndex) {\n var offset = 0;\n\n if (lastMeasuredIndex >= 0) {\n var itemMetadata = itemMetadataMap[lastMeasuredIndex];\n offset = itemMetadata.offset + itemMetadata.size;\n }\n\n for (var i = lastMeasuredIndex + 1; i <= index; i++) {\n var size = itemSize(i);\n itemMetadataMap[i] = {\n offset: offset,\n size: size\n };\n offset += size;\n }\n\n instanceProps.lastMeasuredIndex = index;\n }\n\n return itemMetadataMap[index];\n};\n\nvar findNearestItem$1 = function findNearestItem(props, instanceProps, offset) {\n var itemMetadataMap = instanceProps.itemMetadataMap,\n lastMeasuredIndex = instanceProps.lastMeasuredIndex;\n var lastMeasuredItemOffset = lastMeasuredIndex > 0 ? itemMetadataMap[lastMeasuredIndex].offset : 0;\n\n if (lastMeasuredItemOffset >= offset) {\n // If we've already measured items within this range just use a binary search as it's faster.\n return findNearestItemBinarySearch$1(props, instanceProps, lastMeasuredIndex, 0, offset);\n } else {\n // If we haven't yet measured this high, fallback to an exponential search with an inner binary search.\n // The exponential search avoids pre-computing sizes for the full set of items as a binary search would.\n // The overall complexity for this approach is O(log n).\n return findNearestItemExponentialSearch$1(props, instanceProps, Math.max(0, lastMeasuredIndex), offset);\n }\n};\n\nvar findNearestItemBinarySearch$1 = function findNearestItemBinarySearch(props, instanceProps, high, low, offset) {\n while (low <= high) {\n var middle = low + Math.floor((high - low) / 2);\n var currentOffset = getItemMetadata$1(props, middle, instanceProps).offset;\n\n if (currentOffset === offset) {\n return middle;\n } else if (currentOffset < offset) {\n low = middle + 1;\n } else if (currentOffset > offset) {\n high = middle - 1;\n }\n }\n\n if (low > 0) {\n return low - 1;\n } else {\n return 0;\n }\n};\n\nvar findNearestItemExponentialSearch$1 = function findNearestItemExponentialSearch(props, instanceProps, index, offset) {\n var itemCount = props.itemCount;\n var interval = 1;\n\n while (index < itemCount && getItemMetadata$1(props, index, instanceProps).offset < offset) {\n index += interval;\n interval *= 2;\n }\n\n return findNearestItemBinarySearch$1(props, instanceProps, Math.min(index, itemCount - 1), Math.floor(index / 2), offset);\n};\n\nvar getEstimatedTotalSize = function getEstimatedTotalSize(_ref2, _ref3) {\n var itemCount = _ref2.itemCount;\n var itemMetadataMap = _ref3.itemMetadataMap,\n estimatedItemSize = _ref3.estimatedItemSize,\n lastMeasuredIndex = _ref3.lastMeasuredIndex;\n var totalSizeOfMeasuredItems = 0; // Edge case check for when the number of items decreases while a scroll is in progress.\n // https://github.com/bvaughn/react-window/pull/138\n\n if (lastMeasuredIndex >= itemCount) {\n lastMeasuredIndex = itemCount - 1;\n }\n\n if (lastMeasuredIndex >= 0) {\n var itemMetadata = itemMetadataMap[lastMeasuredIndex];\n totalSizeOfMeasuredItems = itemMetadata.offset + itemMetadata.size;\n }\n\n var numUnmeasuredItems = itemCount - lastMeasuredIndex - 1;\n var totalSizeOfUnmeasuredItems = numUnmeasuredItems * estimatedItemSize;\n return totalSizeOfMeasuredItems + totalSizeOfUnmeasuredItems;\n};\n\nvar VariableSizeList = /*#__PURE__*/createListComponent({\n getItemOffset: function getItemOffset(props, index, instanceProps) {\n return getItemMetadata$1(props, index, instanceProps).offset;\n },\n getItemSize: function getItemSize(props, index, instanceProps) {\n return instanceProps.itemMetadataMap[index].size;\n },\n getEstimatedTotalSize: getEstimatedTotalSize,\n getOffsetForIndexAndAlignment: function getOffsetForIndexAndAlignment(props, index, align, scrollOffset, instanceProps, scrollbarSize) {\n var direction = props.direction,\n height = props.height,\n layout = props.layout,\n width = props.width; // TODO Deprecate direction \"horizontal\"\n\n var isHorizontal = direction === 'horizontal' || layout === 'horizontal';\n var size = isHorizontal ? width : height;\n var itemMetadata = getItemMetadata$1(props, index, instanceProps); // Get estimated total size after ItemMetadata is computed,\n // To ensure it reflects actual measurements instead of just estimates.\n\n var estimatedTotalSize = getEstimatedTotalSize(props, instanceProps);\n var maxOffset = Math.max(0, Math.min(estimatedTotalSize - size, itemMetadata.offset));\n var minOffset = Math.max(0, itemMetadata.offset - size + itemMetadata.size + scrollbarSize);\n\n if (align === 'smart') {\n if (scrollOffset >= minOffset - size && scrollOffset <= maxOffset + size) {\n align = 'auto';\n } else {\n align = 'center';\n }\n }\n\n switch (align) {\n case 'start':\n return maxOffset;\n\n case 'end':\n return minOffset;\n\n case 'center':\n return Math.round(minOffset + (maxOffset - minOffset) / 2);\n\n case 'auto':\n default:\n if (scrollOffset >= minOffset && scrollOffset <= maxOffset) {\n return scrollOffset;\n } else if (scrollOffset < minOffset) {\n return minOffset;\n } else {\n return maxOffset;\n }\n\n }\n },\n getStartIndexForOffset: function getStartIndexForOffset(props, offset, instanceProps) {\n return findNearestItem$1(props, instanceProps, offset);\n },\n getStopIndexForStartIndex: function getStopIndexForStartIndex(props, startIndex, scrollOffset, instanceProps) {\n var direction = props.direction,\n height = props.height,\n itemCount = props.itemCount,\n layout = props.layout,\n width = props.width; // TODO Deprecate direction \"horizontal\"\n\n var isHorizontal = direction === 'horizontal' || layout === 'horizontal';\n var size = isHorizontal ? width : height;\n var itemMetadata = getItemMetadata$1(props, startIndex, instanceProps);\n var maxOffset = scrollOffset + size;\n var offset = itemMetadata.offset + itemMetadata.size;\n var stopIndex = startIndex;\n\n while (stopIndex < itemCount - 1 && offset < maxOffset) {\n stopIndex++;\n offset += getItemMetadata$1(props, stopIndex, instanceProps).size;\n }\n\n return stopIndex;\n },\n initInstanceProps: function initInstanceProps(props, instance) {\n var _ref4 = props,\n estimatedItemSize = _ref4.estimatedItemSize;\n var instanceProps = {\n itemMetadataMap: {},\n estimatedItemSize: estimatedItemSize || DEFAULT_ESTIMATED_ITEM_SIZE$1,\n lastMeasuredIndex: -1\n };\n\n instance.resetAfterIndex = function (index, shouldForceUpdate) {\n if (shouldForceUpdate === void 0) {\n shouldForceUpdate = true;\n }\n\n instanceProps.lastMeasuredIndex = Math.min(instanceProps.lastMeasuredIndex, index - 1); // We could potentially optimize further by only evicting styles after this index,\n // But since styles are only cached while scrolling is in progress-\n // It seems an unnecessary optimization.\n // It's unlikely that resetAfterIndex() will be called while a user is scrolling.\n\n instance._getItemStyleCache(-1);\n\n if (shouldForceUpdate) {\n instance.forceUpdate();\n }\n };\n\n return instanceProps;\n },\n shouldResetStyleCacheOnItemSizeChange: false,\n validateProps: function validateProps(_ref5) {\n var itemSize = _ref5.itemSize;\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof itemSize !== 'function') {\n throw Error('An invalid \"itemSize\" prop has been specified. ' + 'Value should be a function. ' + (\"\\\"\" + (itemSize === null ? 'null' : typeof itemSize) + \"\\\" was specified.\"));\n }\n }\n }\n});\n\nvar FixedSizeGrid = /*#__PURE__*/createGridComponent({\n getColumnOffset: function getColumnOffset(_ref, index) {\n var columnWidth = _ref.columnWidth;\n return index * columnWidth;\n },\n getColumnWidth: function getColumnWidth(_ref2, index) {\n var columnWidth = _ref2.columnWidth;\n return columnWidth;\n },\n getRowOffset: function getRowOffset(_ref3, index) {\n var rowHeight = _ref3.rowHeight;\n return index * rowHeight;\n },\n getRowHeight: function getRowHeight(_ref4, index) {\n var rowHeight = _ref4.rowHeight;\n return rowHeight;\n },\n getEstimatedTotalHeight: function getEstimatedTotalHeight(_ref5) {\n var rowCount = _ref5.rowCount,\n rowHeight = _ref5.rowHeight;\n return rowHeight * rowCount;\n },\n getEstimatedTotalWidth: function getEstimatedTotalWidth(_ref6) {\n var columnCount = _ref6.columnCount,\n columnWidth = _ref6.columnWidth;\n return columnWidth * columnCount;\n },\n getOffsetForColumnAndAlignment: function getOffsetForColumnAndAlignment(_ref7, columnIndex, align, scrollLeft, instanceProps, scrollbarSize) {\n var columnCount = _ref7.columnCount,\n columnWidth = _ref7.columnWidth,\n width = _ref7.width;\n var lastColumnOffset = Math.max(0, columnCount * columnWidth - width);\n var maxOffset = Math.min(lastColumnOffset, columnIndex * columnWidth);\n var minOffset = Math.max(0, columnIndex * columnWidth - width + scrollbarSize + columnWidth);\n\n if (align === 'smart') {\n if (scrollLeft >= minOffset - width && scrollLeft <= maxOffset + width) {\n align = 'auto';\n } else {\n align = 'center';\n }\n }\n\n switch (align) {\n case 'start':\n return maxOffset;\n\n case 'end':\n return minOffset;\n\n case 'center':\n // \"Centered\" offset is usually the average of the min and max.\n // But near the edges of the list, this doesn't hold true.\n var middleOffset = Math.round(minOffset + (maxOffset - minOffset) / 2);\n\n if (middleOffset < Math.ceil(width / 2)) {\n return 0; // near the beginning\n } else if (middleOffset > lastColumnOffset + Math.floor(width / 2)) {\n return lastColumnOffset; // near the end\n } else {\n return middleOffset;\n }\n\n case 'auto':\n default:\n if (scrollLeft >= minOffset && scrollLeft <= maxOffset) {\n return scrollLeft;\n } else if (minOffset > maxOffset) {\n // Because we only take into account the scrollbar size when calculating minOffset\n // this value can be larger than maxOffset when at the end of the list\n return minOffset;\n } else if (scrollLeft < minOffset) {\n return minOffset;\n } else {\n return maxOffset;\n }\n\n }\n },\n getOffsetForRowAndAlignment: function getOffsetForRowAndAlignment(_ref8, rowIndex, align, scrollTop, instanceProps, scrollbarSize) {\n var rowHeight = _ref8.rowHeight,\n height = _ref8.height,\n rowCount = _ref8.rowCount;\n var lastRowOffset = Math.max(0, rowCount * rowHeight - height);\n var maxOffset = Math.min(lastRowOffset, rowIndex * rowHeight);\n var minOffset = Math.max(0, rowIndex * rowHeight - height + scrollbarSize + rowHeight);\n\n if (align === 'smart') {\n if (scrollTop >= minOffset - height && scrollTop <= maxOffset + height) {\n align = 'auto';\n } else {\n align = 'center';\n }\n }\n\n switch (align) {\n case 'start':\n return maxOffset;\n\n case 'end':\n return minOffset;\n\n case 'center':\n // \"Centered\" offset is usually the average of the min and max.\n // But near the edges of the list, this doesn't hold true.\n var middleOffset = Math.round(minOffset + (maxOffset - minOffset) / 2);\n\n if (middleOffset < Math.ceil(height / 2)) {\n return 0; // near the beginning\n } else if (middleOffset > lastRowOffset + Math.floor(height / 2)) {\n return lastRowOffset; // near the end\n } else {\n return middleOffset;\n }\n\n case 'auto':\n default:\n if (scrollTop >= minOffset && scrollTop <= maxOffset) {\n return scrollTop;\n } else if (minOffset > maxOffset) {\n // Because we only take into account the scrollbar size when calculating minOffset\n // this value can be larger than maxOffset when at the end of the list\n return minOffset;\n } else if (scrollTop < minOffset) {\n return minOffset;\n } else {\n return maxOffset;\n }\n\n }\n },\n getColumnStartIndexForOffset: function getColumnStartIndexForOffset(_ref9, scrollLeft) {\n var columnWidth = _ref9.columnWidth,\n columnCount = _ref9.columnCount;\n return Math.max(0, Math.min(columnCount - 1, Math.floor(scrollLeft / columnWidth)));\n },\n getColumnStopIndexForStartIndex: function getColumnStopIndexForStartIndex(_ref10, startIndex, scrollLeft) {\n var columnWidth = _ref10.columnWidth,\n columnCount = _ref10.columnCount,\n width = _ref10.width;\n var left = startIndex * columnWidth;\n var numVisibleColumns = Math.ceil((width + scrollLeft - left) / columnWidth);\n return Math.max(0, Math.min(columnCount - 1, startIndex + numVisibleColumns - 1 // -1 is because stop index is inclusive\n ));\n },\n getRowStartIndexForOffset: function getRowStartIndexForOffset(_ref11, scrollTop) {\n var rowHeight = _ref11.rowHeight,\n rowCount = _ref11.rowCount;\n return Math.max(0, Math.min(rowCount - 1, Math.floor(scrollTop / rowHeight)));\n },\n getRowStopIndexForStartIndex: function getRowStopIndexForStartIndex(_ref12, startIndex, scrollTop) {\n var rowHeight = _ref12.rowHeight,\n rowCount = _ref12.rowCount,\n height = _ref12.height;\n var top = startIndex * rowHeight;\n var numVisibleRows = Math.ceil((height + scrollTop - top) / rowHeight);\n return Math.max(0, Math.min(rowCount - 1, startIndex + numVisibleRows - 1 // -1 is because stop index is inclusive\n ));\n },\n initInstanceProps: function initInstanceProps(props) {// Noop\n },\n shouldResetStyleCacheOnItemSizeChange: true,\n validateProps: function validateProps(_ref13) {\n var columnWidth = _ref13.columnWidth,\n rowHeight = _ref13.rowHeight;\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof columnWidth !== 'number') {\n throw Error('An invalid \"columnWidth\" prop has been specified. ' + 'Value should be a number. ' + (\"\\\"\" + (columnWidth === null ? 'null' : typeof columnWidth) + \"\\\" was specified.\"));\n }\n\n if (typeof rowHeight !== 'number') {\n throw Error('An invalid \"rowHeight\" prop has been specified. ' + 'Value should be a number. ' + (\"\\\"\" + (rowHeight === null ? 'null' : typeof rowHeight) + \"\\\" was specified.\"));\n }\n }\n }\n});\n\nvar FixedSizeList = /*#__PURE__*/createListComponent({\n getItemOffset: function getItemOffset(_ref, index) {\n var itemSize = _ref.itemSize;\n return index * itemSize;\n },\n getItemSize: function getItemSize(_ref2, index) {\n var itemSize = _ref2.itemSize;\n return itemSize;\n },\n getEstimatedTotalSize: function getEstimatedTotalSize(_ref3) {\n var itemCount = _ref3.itemCount,\n itemSize = _ref3.itemSize;\n return itemSize * itemCount;\n },\n getOffsetForIndexAndAlignment: function getOffsetForIndexAndAlignment(_ref4, index, align, scrollOffset, instanceProps, scrollbarSize) {\n var direction = _ref4.direction,\n height = _ref4.height,\n itemCount = _ref4.itemCount,\n itemSize = _ref4.itemSize,\n layout = _ref4.layout,\n width = _ref4.width;\n // TODO Deprecate direction \"horizontal\"\n var isHorizontal = direction === 'horizontal' || layout === 'horizontal';\n var size = isHorizontal ? width : height;\n var lastItemOffset = Math.max(0, itemCount * itemSize - size);\n var maxOffset = Math.min(lastItemOffset, index * itemSize);\n var minOffset = Math.max(0, index * itemSize - size + itemSize + scrollbarSize);\n\n if (align === 'smart') {\n if (scrollOffset >= minOffset - size && scrollOffset <= maxOffset + size) {\n align = 'auto';\n } else {\n align = 'center';\n }\n }\n\n switch (align) {\n case 'start':\n return maxOffset;\n\n case 'end':\n return minOffset;\n\n case 'center':\n {\n // \"Centered\" offset is usually the average of the min and max.\n // But near the edges of the list, this doesn't hold true.\n var middleOffset = Math.round(minOffset + (maxOffset - minOffset) / 2);\n\n if (middleOffset < Math.ceil(size / 2)) {\n return 0; // near the beginning\n } else if (middleOffset > lastItemOffset + Math.floor(size / 2)) {\n return lastItemOffset; // near the end\n } else {\n return middleOffset;\n }\n }\n\n case 'auto':\n default:\n if (scrollOffset >= minOffset && scrollOffset <= maxOffset) {\n return scrollOffset;\n } else if (scrollOffset < minOffset) {\n return minOffset;\n } else {\n return maxOffset;\n }\n\n }\n },\n getStartIndexForOffset: function getStartIndexForOffset(_ref5, offset) {\n var itemCount = _ref5.itemCount,\n itemSize = _ref5.itemSize;\n return Math.max(0, Math.min(itemCount - 1, Math.floor(offset / itemSize)));\n },\n getStopIndexForStartIndex: function getStopIndexForStartIndex(_ref6, startIndex, scrollOffset) {\n var direction = _ref6.direction,\n height = _ref6.height,\n itemCount = _ref6.itemCount,\n itemSize = _ref6.itemSize,\n layout = _ref6.layout,\n width = _ref6.width;\n // TODO Deprecate direction \"horizontal\"\n var isHorizontal = direction === 'horizontal' || layout === 'horizontal';\n var offset = startIndex * itemSize;\n var size = isHorizontal ? width : height;\n var numVisibleItems = Math.ceil((size + scrollOffset - offset) / itemSize);\n return Math.max(0, Math.min(itemCount - 1, startIndex + numVisibleItems - 1 // -1 is because stop index is inclusive\n ));\n },\n initInstanceProps: function initInstanceProps(props) {// Noop\n },\n shouldResetStyleCacheOnItemSizeChange: true,\n validateProps: function validateProps(_ref7) {\n var itemSize = _ref7.itemSize;\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof itemSize !== 'number') {\n throw Error('An invalid \"itemSize\" prop has been specified. ' + 'Value should be a number. ' + (\"\\\"\" + (itemSize === null ? 'null' : typeof itemSize) + \"\\\" was specified.\"));\n }\n }\n }\n});\n\n// Pulled from react-compat\n// https://github.com/developit/preact-compat/blob/7c5de00e7c85e2ffd011bf3af02899b63f699d3a/src/index.js#L349\nfunction shallowDiffers(prev, next) {\n for (var attribute in prev) {\n if (!(attribute in next)) {\n return true;\n }\n }\n\n for (var _attribute in next) {\n if (prev[_attribute] !== next[_attribute]) {\n return true;\n }\n }\n\n return false;\n}\n\nvar _excluded = [\"style\"],\n _excluded2 = [\"style\"];\n// It knows to compare individual style props and ignore the wrapper object.\n// See https://reactjs.org/docs/react-api.html#reactmemo\n\nfunction areEqual(prevProps, nextProps) {\n var prevStyle = prevProps.style,\n prevRest = _objectWithoutPropertiesLoose(prevProps, _excluded);\n\n var nextStyle = nextProps.style,\n nextRest = _objectWithoutPropertiesLoose(nextProps, _excluded2);\n\n return !shallowDiffers(prevStyle, nextStyle) && !shallowDiffers(prevRest, nextRest);\n}\n\n// It knows to compare individual style props and ignore the wrapper object.\n// See https://reactjs.org/docs/react-component.html#shouldcomponentupdate\n\nfunction shouldComponentUpdate(nextProps, nextState) {\n return !areEqual(this.props, nextProps) || shallowDiffers(this.state, nextState);\n}\n\nexport { FixedSizeGrid, FixedSizeList, VariableSizeGrid, VariableSizeList, areEqual, shouldComponentUpdate };\n//# sourceMappingURL=index.esm.js.map\n",null,null],"names":["setPrototypeOf","createElement","PureComponent","Component","createRef","List"],"mappings":"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","x_google_ignoreList":[0,2,4,5,6,7,8,9]}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../node_modules/style-inject/dist/style-inject.es.js","../src/Plugins/FilterPlugin.tsx","../node_modules/tslib/tslib.es6.js","../src/Plugins/InfiniteScrollPlugin.tsx","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/memoize-one/dist/memoize-one.esm.js","../node_modules/react-window/dist/index.esm.js","../src/UI/ResponsiveTable.tsx","../src/Plugins/SortPlugin.ts"],"sourcesContent":["function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n",null,"/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n var _, done = false;\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n var context = {};\r\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n if (kind === \"accessor\") {\r\n if (result === void 0) continue;\r\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n if (_ = accept(result.get)) descriptor.get = _;\r\n if (_ = accept(result.set)) descriptor.set = _;\r\n if (_ = accept(result.init)) initializers.unshift(_);\r\n }\r\n else if (_ = accept(result)) {\r\n if (kind === \"field\") initializers.unshift(_);\r\n else descriptor[key] = _;\r\n }\r\n }\r\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n var useValue = arguments.length > 2;\r\n for (var i = 0; i < initializers.length; i++) {\r\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n }\r\n return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n var desc = Object.getOwnPropertyDescriptor(m, k);\r\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n desc = { enumerable: true, get: function() { return m[k]; } };\r\n }\r\n Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nvar ownKeys = function(o) {\r\n ownKeys = Object.getOwnPropertyNames || function (o) {\r\n var ar = [];\r\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\r\n return ar;\r\n };\r\n return ownKeys(o);\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n if (value !== null && value !== void 0) {\r\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n var dispose, inner;\r\n if (async) {\r\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n dispose = value[Symbol.asyncDispose];\r\n }\r\n if (dispose === void 0) {\r\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n dispose = value[Symbol.dispose];\r\n if (async) inner = dispose;\r\n }\r\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n env.stack.push({ value: value, dispose: dispose, async: async });\r\n }\r\n else if (async) {\r\n env.stack.push({ async: true });\r\n }\r\n return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n var e = new Error(message);\r\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n function fail(e) {\r\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n env.hasError = true;\r\n }\r\n var r, s = 0;\r\n function next() {\r\n while (r = env.stack.pop()) {\r\n try {\r\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n if (r.dispose) {\r\n var result = r.dispose.call(r.value);\r\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n }\r\n else s |= 1;\r\n }\r\n catch (e) {\r\n fail(e);\r\n }\r\n }\r\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n if (env.hasError) throw env.error;\r\n }\r\n return next();\r\n}\r\n\r\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\r\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\r\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\r\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\r\n });\r\n }\r\n return path;\r\n}\r\n\r\nexport default {\r\n __extends: __extends,\r\n __assign: __assign,\r\n __rest: __rest,\r\n __decorate: __decorate,\r\n __param: __param,\r\n __esDecorate: __esDecorate,\r\n __runInitializers: __runInitializers,\r\n __propKey: __propKey,\r\n __setFunctionName: __setFunctionName,\r\n __metadata: __metadata,\r\n __awaiter: __awaiter,\r\n __generator: __generator,\r\n __createBinding: __createBinding,\r\n __exportStar: __exportStar,\r\n __values: __values,\r\n __read: __read,\r\n __spread: __spread,\r\n __spreadArrays: __spreadArrays,\r\n __spreadArray: __spreadArray,\r\n __await: __await,\r\n __asyncGenerator: __asyncGenerator,\r\n __asyncDelegator: __asyncDelegator,\r\n __asyncValues: __asyncValues,\r\n __makeTemplateObject: __makeTemplateObject,\r\n __importStar: __importStar,\r\n __importDefault: __importDefault,\r\n __classPrivateFieldGet: __classPrivateFieldGet,\r\n __classPrivateFieldSet: __classPrivateFieldSet,\r\n __classPrivateFieldIn: __classPrivateFieldIn,\r\n __addDisposableResource: __addDisposableResource,\r\n __disposeResources: __disposeResources,\r\n __rewriteRelativeImportExtension: __rewriteRelativeImportExtension,\r\n};\r\n",null,"function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","function _assertThisInitialized(e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n}\nexport { _assertThisInitialized as default };","function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inheritsLoose(t, o) {\n t.prototype = Object.create(o.prototype), t.prototype.constructor = t, setPrototypeOf(t, o);\n}\nexport { _inheritsLoose as default };","var safeIsNaN = Number.isNaN ||\n function ponyfill(value) {\n return typeof value === 'number' && value !== value;\n };\nfunction isEqual(first, second) {\n if (first === second) {\n return true;\n }\n if (safeIsNaN(first) && safeIsNaN(second)) {\n return true;\n }\n return false;\n}\nfunction areInputsEqual(newInputs, lastInputs) {\n if (newInputs.length !== lastInputs.length) {\n return false;\n }\n for (var i = 0; i < newInputs.length; i++) {\n if (!isEqual(newInputs[i], lastInputs[i])) {\n return false;\n }\n }\n return true;\n}\n\nfunction memoizeOne(resultFn, isEqual) {\n if (isEqual === void 0) { isEqual = areInputsEqual; }\n var lastThis;\n var lastArgs = [];\n var lastResult;\n var calledOnce = false;\n function memoized() {\n var newArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n newArgs[_i] = arguments[_i];\n }\n if (calledOnce && lastThis === this && isEqual(newArgs, lastArgs)) {\n return lastResult;\n }\n lastResult = resultFn.apply(this, newArgs);\n calledOnce = true;\n lastThis = this;\n lastArgs = newArgs;\n return lastResult;\n }\n return memoized;\n}\n\nexport default memoizeOne;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport memoizeOne from 'memoize-one';\nimport { createElement, PureComponent } from 'react';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\n\n// Animation frame based implementation of setTimeout.\n// Inspired by Joe Lambert, https://gist.github.com/joelambert/1002116#file-requesttimeout-js\nvar hasNativePerformanceNow = typeof performance === 'object' && typeof performance.now === 'function';\nvar now = hasNativePerformanceNow ? function () {\n return performance.now();\n} : function () {\n return Date.now();\n};\nfunction cancelTimeout(timeoutID) {\n cancelAnimationFrame(timeoutID.id);\n}\nfunction requestTimeout(callback, delay) {\n var start = now();\n\n function tick() {\n if (now() - start >= delay) {\n callback.call(null);\n } else {\n timeoutID.id = requestAnimationFrame(tick);\n }\n }\n\n var timeoutID = {\n id: requestAnimationFrame(tick)\n };\n return timeoutID;\n}\n\nvar size = -1; // This utility copied from \"dom-helpers\" package.\n\nfunction getScrollbarSize(recalculate) {\n if (recalculate === void 0) {\n recalculate = false;\n }\n\n if (size === -1 || recalculate) {\n var div = document.createElement('div');\n var style = div.style;\n style.width = '50px';\n style.height = '50px';\n style.overflow = 'scroll';\n document.body.appendChild(div);\n size = div.offsetWidth - div.clientWidth;\n document.body.removeChild(div);\n }\n\n return size;\n}\nvar cachedRTLResult = null; // TRICKY According to the spec, scrollLeft should be negative for RTL aligned elements.\n// Chrome does not seem to adhere; its scrollLeft values are positive (measured relative to the left).\n// Safari's elastic bounce makes detecting this even more complicated wrt potential false positives.\n// The safest way to check this is to intentionally set a negative offset,\n// and then verify that the subsequent \"scroll\" event matches the negative offset.\n// If it does not match, then we can assume a non-standard RTL scroll implementation.\n\nfunction getRTLOffsetType(recalculate) {\n if (recalculate === void 0) {\n recalculate = false;\n }\n\n if (cachedRTLResult === null || recalculate) {\n var outerDiv = document.createElement('div');\n var outerStyle = outerDiv.style;\n outerStyle.width = '50px';\n outerStyle.height = '50px';\n outerStyle.overflow = 'scroll';\n outerStyle.direction = 'rtl';\n var innerDiv = document.createElement('div');\n var innerStyle = innerDiv.style;\n innerStyle.width = '100px';\n innerStyle.height = '100px';\n outerDiv.appendChild(innerDiv);\n document.body.appendChild(outerDiv);\n\n if (outerDiv.scrollLeft > 0) {\n cachedRTLResult = 'positive-descending';\n } else {\n outerDiv.scrollLeft = 1;\n\n if (outerDiv.scrollLeft === 0) {\n cachedRTLResult = 'negative';\n } else {\n cachedRTLResult = 'positive-ascending';\n }\n }\n\n document.body.removeChild(outerDiv);\n return cachedRTLResult;\n }\n\n return cachedRTLResult;\n}\n\nvar IS_SCROLLING_DEBOUNCE_INTERVAL = 150;\n\nvar defaultItemKey = function defaultItemKey(_ref) {\n var columnIndex = _ref.columnIndex,\n data = _ref.data,\n rowIndex = _ref.rowIndex;\n return rowIndex + \":\" + columnIndex;\n}; // In DEV mode, this Set helps us only log a warning once per component instance.\n// This avoids spamming the console every time a render happens.\n\n\nvar devWarningsOverscanCount = null;\nvar devWarningsOverscanRowsColumnsCount = null;\nvar devWarningsTagName = null;\n\nif (process.env.NODE_ENV !== 'production') {\n if (typeof window !== 'undefined' && typeof window.WeakSet !== 'undefined') {\n devWarningsOverscanCount = /*#__PURE__*/new WeakSet();\n devWarningsOverscanRowsColumnsCount = /*#__PURE__*/new WeakSet();\n devWarningsTagName = /*#__PURE__*/new WeakSet();\n }\n}\n\nfunction createGridComponent(_ref2) {\n var _class;\n\n var getColumnOffset = _ref2.getColumnOffset,\n getColumnStartIndexForOffset = _ref2.getColumnStartIndexForOffset,\n getColumnStopIndexForStartIndex = _ref2.getColumnStopIndexForStartIndex,\n getColumnWidth = _ref2.getColumnWidth,\n getEstimatedTotalHeight = _ref2.getEstimatedTotalHeight,\n getEstimatedTotalWidth = _ref2.getEstimatedTotalWidth,\n getOffsetForColumnAndAlignment = _ref2.getOffsetForColumnAndAlignment,\n getOffsetForRowAndAlignment = _ref2.getOffsetForRowAndAlignment,\n getRowHeight = _ref2.getRowHeight,\n getRowOffset = _ref2.getRowOffset,\n getRowStartIndexForOffset = _ref2.getRowStartIndexForOffset,\n getRowStopIndexForStartIndex = _ref2.getRowStopIndexForStartIndex,\n initInstanceProps = _ref2.initInstanceProps,\n shouldResetStyleCacheOnItemSizeChange = _ref2.shouldResetStyleCacheOnItemSizeChange,\n validateProps = _ref2.validateProps;\n return _class = /*#__PURE__*/function (_PureComponent) {\n _inheritsLoose(Grid, _PureComponent);\n\n // Always use explicit constructor for React components.\n // It produces less code after transpilation. (#26)\n // eslint-disable-next-line no-useless-constructor\n function Grid(props) {\n var _this;\n\n _this = _PureComponent.call(this, props) || this;\n _this._instanceProps = initInstanceProps(_this.props, _assertThisInitialized(_this));\n _this._resetIsScrollingTimeoutId = null;\n _this._outerRef = void 0;\n _this.state = {\n instance: _assertThisInitialized(_this),\n isScrolling: false,\n horizontalScrollDirection: 'forward',\n scrollLeft: typeof _this.props.initialScrollLeft === 'number' ? _this.props.initialScrollLeft : 0,\n scrollTop: typeof _this.props.initialScrollTop === 'number' ? _this.props.initialScrollTop : 0,\n scrollUpdateWasRequested: false,\n verticalScrollDirection: 'forward'\n };\n _this._callOnItemsRendered = void 0;\n _this._callOnItemsRendered = memoizeOne(function (overscanColumnStartIndex, overscanColumnStopIndex, overscanRowStartIndex, overscanRowStopIndex, visibleColumnStartIndex, visibleColumnStopIndex, visibleRowStartIndex, visibleRowStopIndex) {\n return _this.props.onItemsRendered({\n overscanColumnStartIndex: overscanColumnStartIndex,\n overscanColumnStopIndex: overscanColumnStopIndex,\n overscanRowStartIndex: overscanRowStartIndex,\n overscanRowStopIndex: overscanRowStopIndex,\n visibleColumnStartIndex: visibleColumnStartIndex,\n visibleColumnStopIndex: visibleColumnStopIndex,\n visibleRowStartIndex: visibleRowStartIndex,\n visibleRowStopIndex: visibleRowStopIndex\n });\n });\n _this._callOnScroll = void 0;\n _this._callOnScroll = memoizeOne(function (scrollLeft, scrollTop, horizontalScrollDirection, verticalScrollDirection, scrollUpdateWasRequested) {\n return _this.props.onScroll({\n horizontalScrollDirection: horizontalScrollDirection,\n scrollLeft: scrollLeft,\n scrollTop: scrollTop,\n verticalScrollDirection: verticalScrollDirection,\n scrollUpdateWasRequested: scrollUpdateWasRequested\n });\n });\n _this._getItemStyle = void 0;\n\n _this._getItemStyle = function (rowIndex, columnIndex) {\n var _this$props = _this.props,\n columnWidth = _this$props.columnWidth,\n direction = _this$props.direction,\n rowHeight = _this$props.rowHeight;\n\n var itemStyleCache = _this._getItemStyleCache(shouldResetStyleCacheOnItemSizeChange && columnWidth, shouldResetStyleCacheOnItemSizeChange && direction, shouldResetStyleCacheOnItemSizeChange && rowHeight);\n\n var key = rowIndex + \":\" + columnIndex;\n var style;\n\n if (itemStyleCache.hasOwnProperty(key)) {\n style = itemStyleCache[key];\n } else {\n var _offset = getColumnOffset(_this.props, columnIndex, _this._instanceProps);\n\n var isRtl = direction === 'rtl';\n itemStyleCache[key] = style = {\n position: 'absolute',\n left: isRtl ? undefined : _offset,\n right: isRtl ? _offset : undefined,\n top: getRowOffset(_this.props, rowIndex, _this._instanceProps),\n height: getRowHeight(_this.props, rowIndex, _this._instanceProps),\n width: getColumnWidth(_this.props, columnIndex, _this._instanceProps)\n };\n }\n\n return style;\n };\n\n _this._getItemStyleCache = void 0;\n _this._getItemStyleCache = memoizeOne(function (_, __, ___) {\n return {};\n });\n\n _this._onScroll = function (event) {\n var _event$currentTarget = event.currentTarget,\n clientHeight = _event$currentTarget.clientHeight,\n clientWidth = _event$currentTarget.clientWidth,\n scrollLeft = _event$currentTarget.scrollLeft,\n scrollTop = _event$currentTarget.scrollTop,\n scrollHeight = _event$currentTarget.scrollHeight,\n scrollWidth = _event$currentTarget.scrollWidth;\n\n _this.setState(function (prevState) {\n if (prevState.scrollLeft === scrollLeft && prevState.scrollTop === scrollTop) {\n // Scroll position may have been updated by cDM/cDU,\n // In which case we don't need to trigger another render,\n // And we don't want to update state.isScrolling.\n return null;\n }\n\n var direction = _this.props.direction; // TRICKY According to the spec, scrollLeft should be negative for RTL aligned elements.\n // This is not the case for all browsers though (e.g. Chrome reports values as positive, measured relative to the left).\n // It's also easier for this component if we convert offsets to the same format as they would be in for ltr.\n // So the simplest solution is to determine which browser behavior we're dealing with, and convert based on it.\n\n var calculatedScrollLeft = scrollLeft;\n\n if (direction === 'rtl') {\n switch (getRTLOffsetType()) {\n case 'negative':\n calculatedScrollLeft = -scrollLeft;\n break;\n\n case 'positive-descending':\n calculatedScrollLeft = scrollWidth - clientWidth - scrollLeft;\n break;\n }\n } // Prevent Safari's elastic scrolling from causing visual shaking when scrolling past bounds.\n\n\n calculatedScrollLeft = Math.max(0, Math.min(calculatedScrollLeft, scrollWidth - clientWidth));\n var calculatedScrollTop = Math.max(0, Math.min(scrollTop, scrollHeight - clientHeight));\n return {\n isScrolling: true,\n horizontalScrollDirection: prevState.scrollLeft < scrollLeft ? 'forward' : 'backward',\n scrollLeft: calculatedScrollLeft,\n scrollTop: calculatedScrollTop,\n verticalScrollDirection: prevState.scrollTop < scrollTop ? 'forward' : 'backward',\n scrollUpdateWasRequested: false\n };\n }, _this._resetIsScrollingDebounced);\n };\n\n _this._outerRefSetter = function (ref) {\n var outerRef = _this.props.outerRef;\n _this._outerRef = ref;\n\n if (typeof outerRef === 'function') {\n outerRef(ref);\n } else if (outerRef != null && typeof outerRef === 'object' && outerRef.hasOwnProperty('current')) {\n outerRef.current = ref;\n }\n };\n\n _this._resetIsScrollingDebounced = function () {\n if (_this._resetIsScrollingTimeoutId !== null) {\n cancelTimeout(_this._resetIsScrollingTimeoutId);\n }\n\n _this._resetIsScrollingTimeoutId = requestTimeout(_this._resetIsScrolling, IS_SCROLLING_DEBOUNCE_INTERVAL);\n };\n\n _this._resetIsScrolling = function () {\n _this._resetIsScrollingTimeoutId = null;\n\n _this.setState({\n isScrolling: false\n }, function () {\n // Clear style cache after state update has been committed.\n // This way we don't break pure sCU for items that don't use isScrolling param.\n _this._getItemStyleCache(-1);\n });\n };\n\n return _this;\n }\n\n Grid.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {\n validateSharedProps(nextProps, prevState);\n validateProps(nextProps);\n return null;\n };\n\n var _proto = Grid.prototype;\n\n _proto.scrollTo = function scrollTo(_ref3) {\n var scrollLeft = _ref3.scrollLeft,\n scrollTop = _ref3.scrollTop;\n\n if (scrollLeft !== undefined) {\n scrollLeft = Math.max(0, scrollLeft);\n }\n\n if (scrollTop !== undefined) {\n scrollTop = Math.max(0, scrollTop);\n }\n\n this.setState(function (prevState) {\n if (scrollLeft === undefined) {\n scrollLeft = prevState.scrollLeft;\n }\n\n if (scrollTop === undefined) {\n scrollTop = prevState.scrollTop;\n }\n\n if (prevState.scrollLeft === scrollLeft && prevState.scrollTop === scrollTop) {\n return null;\n }\n\n return {\n horizontalScrollDirection: prevState.scrollLeft < scrollLeft ? 'forward' : 'backward',\n scrollLeft: scrollLeft,\n scrollTop: scrollTop,\n scrollUpdateWasRequested: true,\n verticalScrollDirection: prevState.scrollTop < scrollTop ? 'forward' : 'backward'\n };\n }, this._resetIsScrollingDebounced);\n };\n\n _proto.scrollToItem = function scrollToItem(_ref4) {\n var _ref4$align = _ref4.align,\n align = _ref4$align === void 0 ? 'auto' : _ref4$align,\n columnIndex = _ref4.columnIndex,\n rowIndex = _ref4.rowIndex;\n var _this$props2 = this.props,\n columnCount = _this$props2.columnCount,\n height = _this$props2.height,\n rowCount = _this$props2.rowCount,\n width = _this$props2.width;\n var _this$state = this.state,\n scrollLeft = _this$state.scrollLeft,\n scrollTop = _this$state.scrollTop;\n var scrollbarSize = getScrollbarSize();\n\n if (columnIndex !== undefined) {\n columnIndex = Math.max(0, Math.min(columnIndex, columnCount - 1));\n }\n\n if (rowIndex !== undefined) {\n rowIndex = Math.max(0, Math.min(rowIndex, rowCount - 1));\n }\n\n var estimatedTotalHeight = getEstimatedTotalHeight(this.props, this._instanceProps);\n var estimatedTotalWidth = getEstimatedTotalWidth(this.props, this._instanceProps); // The scrollbar size should be considered when scrolling an item into view,\n // to ensure it's fully visible.\n // But we only need to account for its size when it's actually visible.\n\n var horizontalScrollbarSize = estimatedTotalWidth > width ? scrollbarSize : 0;\n var verticalScrollbarSize = estimatedTotalHeight > height ? scrollbarSize : 0;\n this.scrollTo({\n scrollLeft: columnIndex !== undefined ? getOffsetForColumnAndAlignment(this.props, columnIndex, align, scrollLeft, this._instanceProps, verticalScrollbarSize) : scrollLeft,\n scrollTop: rowIndex !== undefined ? getOffsetForRowAndAlignment(this.props, rowIndex, align, scrollTop, this._instanceProps, horizontalScrollbarSize) : scrollTop\n });\n };\n\n _proto.componentDidMount = function componentDidMount() {\n var _this$props3 = this.props,\n initialScrollLeft = _this$props3.initialScrollLeft,\n initialScrollTop = _this$props3.initialScrollTop;\n\n if (this._outerRef != null) {\n var outerRef = this._outerRef;\n\n if (typeof initialScrollLeft === 'number') {\n outerRef.scrollLeft = initialScrollLeft;\n }\n\n if (typeof initialScrollTop === 'number') {\n outerRef.scrollTop = initialScrollTop;\n }\n }\n\n this._callPropsCallbacks();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n var direction = this.props.direction;\n var _this$state2 = this.state,\n scrollLeft = _this$state2.scrollLeft,\n scrollTop = _this$state2.scrollTop,\n scrollUpdateWasRequested = _this$state2.scrollUpdateWasRequested;\n\n if (scrollUpdateWasRequested && this._outerRef != null) {\n // TRICKY According to the spec, scrollLeft should be negative for RTL aligned elements.\n // This is not the case for all browsers though (e.g. Chrome reports values as positive, measured relative to the left).\n // So we need to determine which browser behavior we're dealing with, and mimic it.\n var outerRef = this._outerRef;\n\n if (direction === 'rtl') {\n switch (getRTLOffsetType()) {\n case 'negative':\n outerRef.scrollLeft = -scrollLeft;\n break;\n\n case 'positive-ascending':\n outerRef.scrollLeft = scrollLeft;\n break;\n\n default:\n var clientWidth = outerRef.clientWidth,\n scrollWidth = outerRef.scrollWidth;\n outerRef.scrollLeft = scrollWidth - clientWidth - scrollLeft;\n break;\n }\n } else {\n outerRef.scrollLeft = Math.max(0, scrollLeft);\n }\n\n outerRef.scrollTop = Math.max(0, scrollTop);\n }\n\n this._callPropsCallbacks();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this._resetIsScrollingTimeoutId !== null) {\n cancelTimeout(this._resetIsScrollingTimeoutId);\n }\n };\n\n _proto.render = function render() {\n var _this$props4 = this.props,\n children = _this$props4.children,\n className = _this$props4.className,\n columnCount = _this$props4.columnCount,\n direction = _this$props4.direction,\n height = _this$props4.height,\n innerRef = _this$props4.innerRef,\n innerElementType = _this$props4.innerElementType,\n innerTagName = _this$props4.innerTagName,\n itemData = _this$props4.itemData,\n _this$props4$itemKey = _this$props4.itemKey,\n itemKey = _this$props4$itemKey === void 0 ? defaultItemKey : _this$props4$itemKey,\n outerElementType = _this$props4.outerElementType,\n outerTagName = _this$props4.outerTagName,\n rowCount = _this$props4.rowCount,\n style = _this$props4.style,\n useIsScrolling = _this$props4.useIsScrolling,\n width = _this$props4.width;\n var isScrolling = this.state.isScrolling;\n\n var _this$_getHorizontalR = this._getHorizontalRangeToRender(),\n columnStartIndex = _this$_getHorizontalR[0],\n columnStopIndex = _this$_getHorizontalR[1];\n\n var _this$_getVerticalRan = this._getVerticalRangeToRender(),\n rowStartIndex = _this$_getVerticalRan[0],\n rowStopIndex = _this$_getVerticalRan[1];\n\n var items = [];\n\n if (columnCount > 0 && rowCount) {\n for (var _rowIndex = rowStartIndex; _rowIndex <= rowStopIndex; _rowIndex++) {\n for (var _columnIndex = columnStartIndex; _columnIndex <= columnStopIndex; _columnIndex++) {\n items.push(createElement(children, {\n columnIndex: _columnIndex,\n data: itemData,\n isScrolling: useIsScrolling ? isScrolling : undefined,\n key: itemKey({\n columnIndex: _columnIndex,\n data: itemData,\n rowIndex: _rowIndex\n }),\n rowIndex: _rowIndex,\n style: this._getItemStyle(_rowIndex, _columnIndex)\n }));\n }\n }\n } // Read this value AFTER items have been created,\n // So their actual sizes (if variable) are taken into consideration.\n\n\n var estimatedTotalHeight = getEstimatedTotalHeight(this.props, this._instanceProps);\n var estimatedTotalWidth = getEstimatedTotalWidth(this.props, this._instanceProps);\n return createElement(outerElementType || outerTagName || 'div', {\n className: className,\n onScroll: this._onScroll,\n ref: this._outerRefSetter,\n style: _extends({\n position: 'relative',\n height: height,\n width: width,\n overflow: 'auto',\n WebkitOverflowScrolling: 'touch',\n willChange: 'transform',\n direction: direction\n }, style)\n }, createElement(innerElementType || innerTagName || 'div', {\n children: items,\n ref: innerRef,\n style: {\n height: estimatedTotalHeight,\n pointerEvents: isScrolling ? 'none' : undefined,\n width: estimatedTotalWidth\n }\n }));\n };\n\n _proto._callPropsCallbacks = function _callPropsCallbacks() {\n var _this$props5 = this.props,\n columnCount = _this$props5.columnCount,\n onItemsRendered = _this$props5.onItemsRendered,\n onScroll = _this$props5.onScroll,\n rowCount = _this$props5.rowCount;\n\n if (typeof onItemsRendered === 'function') {\n if (columnCount > 0 && rowCount > 0) {\n var _this$_getHorizontalR2 = this._getHorizontalRangeToRender(),\n _overscanColumnStartIndex = _this$_getHorizontalR2[0],\n _overscanColumnStopIndex = _this$_getHorizontalR2[1],\n _visibleColumnStartIndex = _this$_getHorizontalR2[2],\n _visibleColumnStopIndex = _this$_getHorizontalR2[3];\n\n var _this$_getVerticalRan2 = this._getVerticalRangeToRender(),\n _overscanRowStartIndex = _this$_getVerticalRan2[0],\n _overscanRowStopIndex = _this$_getVerticalRan2[1],\n _visibleRowStartIndex = _this$_getVerticalRan2[2],\n _visibleRowStopIndex = _this$_getVerticalRan2[3];\n\n this._callOnItemsRendered(_overscanColumnStartIndex, _overscanColumnStopIndex, _overscanRowStartIndex, _overscanRowStopIndex, _visibleColumnStartIndex, _visibleColumnStopIndex, _visibleRowStartIndex, _visibleRowStopIndex);\n }\n }\n\n if (typeof onScroll === 'function') {\n var _this$state3 = this.state,\n _horizontalScrollDirection = _this$state3.horizontalScrollDirection,\n _scrollLeft = _this$state3.scrollLeft,\n _scrollTop = _this$state3.scrollTop,\n _scrollUpdateWasRequested = _this$state3.scrollUpdateWasRequested,\n _verticalScrollDirection = _this$state3.verticalScrollDirection;\n\n this._callOnScroll(_scrollLeft, _scrollTop, _horizontalScrollDirection, _verticalScrollDirection, _scrollUpdateWasRequested);\n }\n } // Lazily create and cache item styles while scrolling,\n // So that pure component sCU will prevent re-renders.\n // We maintain this cache, and pass a style prop rather than index,\n // So that List can clear cached styles and force item re-render if necessary.\n ;\n\n _proto._getHorizontalRangeToRender = function _getHorizontalRangeToRender() {\n var _this$props6 = this.props,\n columnCount = _this$props6.columnCount,\n overscanColumnCount = _this$props6.overscanColumnCount,\n overscanColumnsCount = _this$props6.overscanColumnsCount,\n overscanCount = _this$props6.overscanCount,\n rowCount = _this$props6.rowCount;\n var _this$state4 = this.state,\n horizontalScrollDirection = _this$state4.horizontalScrollDirection,\n isScrolling = _this$state4.isScrolling,\n scrollLeft = _this$state4.scrollLeft;\n var overscanCountResolved = overscanColumnCount || overscanColumnsCount || overscanCount || 1;\n\n if (columnCount === 0 || rowCount === 0) {\n return [0, 0, 0, 0];\n }\n\n var startIndex = getColumnStartIndexForOffset(this.props, scrollLeft, this._instanceProps);\n var stopIndex = getColumnStopIndexForStartIndex(this.props, startIndex, scrollLeft, this._instanceProps); // Overscan by one item in each direction so that tab/focus works.\n // If there isn't at least one extra item, tab loops back around.\n\n var overscanBackward = !isScrolling || horizontalScrollDirection === 'backward' ? Math.max(1, overscanCountResolved) : 1;\n var overscanForward = !isScrolling || horizontalScrollDirection === 'forward' ? Math.max(1, overscanCountResolved) : 1;\n return [Math.max(0, startIndex - overscanBackward), Math.max(0, Math.min(columnCount - 1, stopIndex + overscanForward)), startIndex, stopIndex];\n };\n\n _proto._getVerticalRangeToRender = function _getVerticalRangeToRender() {\n var _this$props7 = this.props,\n columnCount = _this$props7.columnCount,\n overscanCount = _this$props7.overscanCount,\n overscanRowCount = _this$props7.overscanRowCount,\n overscanRowsCount = _this$props7.overscanRowsCount,\n rowCount = _this$props7.rowCount;\n var _this$state5 = this.state,\n isScrolling = _this$state5.isScrolling,\n verticalScrollDirection = _this$state5.verticalScrollDirection,\n scrollTop = _this$state5.scrollTop;\n var overscanCountResolved = overscanRowCount || overscanRowsCount || overscanCount || 1;\n\n if (columnCount === 0 || rowCount === 0) {\n return [0, 0, 0, 0];\n }\n\n var startIndex = getRowStartIndexForOffset(this.props, scrollTop, this._instanceProps);\n var stopIndex = getRowStopIndexForStartIndex(this.props, startIndex, scrollTop, this._instanceProps); // Overscan by one item in each direction so that tab/focus works.\n // If there isn't at least one extra item, tab loops back around.\n\n var overscanBackward = !isScrolling || verticalScrollDirection === 'backward' ? Math.max(1, overscanCountResolved) : 1;\n var overscanForward = !isScrolling || verticalScrollDirection === 'forward' ? Math.max(1, overscanCountResolved) : 1;\n return [Math.max(0, startIndex - overscanBackward), Math.max(0, Math.min(rowCount - 1, stopIndex + overscanForward)), startIndex, stopIndex];\n };\n\n return Grid;\n }(PureComponent), _class.defaultProps = {\n direction: 'ltr',\n itemData: undefined,\n useIsScrolling: false\n }, _class;\n}\n\nvar validateSharedProps = function validateSharedProps(_ref5, _ref6) {\n var children = _ref5.children,\n direction = _ref5.direction,\n height = _ref5.height,\n innerTagName = _ref5.innerTagName,\n outerTagName = _ref5.outerTagName,\n overscanColumnsCount = _ref5.overscanColumnsCount,\n overscanCount = _ref5.overscanCount,\n overscanRowsCount = _ref5.overscanRowsCount,\n width = _ref5.width;\n var instance = _ref6.instance;\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof overscanCount === 'number') {\n if (devWarningsOverscanCount && !devWarningsOverscanCount.has(instance)) {\n devWarningsOverscanCount.add(instance);\n console.warn('The overscanCount prop has been deprecated. ' + 'Please use the overscanColumnCount and overscanRowCount props instead.');\n }\n }\n\n if (typeof overscanColumnsCount === 'number' || typeof overscanRowsCount === 'number') {\n if (devWarningsOverscanRowsColumnsCount && !devWarningsOverscanRowsColumnsCount.has(instance)) {\n devWarningsOverscanRowsColumnsCount.add(instance);\n console.warn('The overscanColumnsCount and overscanRowsCount props have been deprecated. ' + 'Please use the overscanColumnCount and overscanRowCount props instead.');\n }\n }\n\n if (innerTagName != null || outerTagName != null) {\n if (devWarningsTagName && !devWarningsTagName.has(instance)) {\n devWarningsTagName.add(instance);\n console.warn('The innerTagName and outerTagName props have been deprecated. ' + 'Please use the innerElementType and outerElementType props instead.');\n }\n }\n\n if (children == null) {\n throw Error('An invalid \"children\" prop has been specified. ' + 'Value should be a React component. ' + (\"\\\"\" + (children === null ? 'null' : typeof children) + \"\\\" was specified.\"));\n }\n\n switch (direction) {\n case 'ltr':\n case 'rtl':\n // Valid values\n break;\n\n default:\n throw Error('An invalid \"direction\" prop has been specified. ' + 'Value should be either \"ltr\" or \"rtl\". ' + (\"\\\"\" + direction + \"\\\" was specified.\"));\n }\n\n if (typeof width !== 'number') {\n throw Error('An invalid \"width\" prop has been specified. ' + 'Grids must specify a number for width. ' + (\"\\\"\" + (width === null ? 'null' : typeof width) + \"\\\" was specified.\"));\n }\n\n if (typeof height !== 'number') {\n throw Error('An invalid \"height\" prop has been specified. ' + 'Grids must specify a number for height. ' + (\"\\\"\" + (height === null ? 'null' : typeof height) + \"\\\" was specified.\"));\n }\n }\n};\n\nvar DEFAULT_ESTIMATED_ITEM_SIZE = 50;\n\nvar getEstimatedTotalHeight = function getEstimatedTotalHeight(_ref, _ref2) {\n var rowCount = _ref.rowCount;\n var rowMetadataMap = _ref2.rowMetadataMap,\n estimatedRowHeight = _ref2.estimatedRowHeight,\n lastMeasuredRowIndex = _ref2.lastMeasuredRowIndex;\n var totalSizeOfMeasuredRows = 0; // Edge case check for when the number of items decreases while a scroll is in progress.\n // https://github.com/bvaughn/react-window/pull/138\n\n if (lastMeasuredRowIndex >= rowCount) {\n lastMeasuredRowIndex = rowCount - 1;\n }\n\n if (lastMeasuredRowIndex >= 0) {\n var itemMetadata = rowMetadataMap[lastMeasuredRowIndex];\n totalSizeOfMeasuredRows = itemMetadata.offset + itemMetadata.size;\n }\n\n var numUnmeasuredItems = rowCount - lastMeasuredRowIndex - 1;\n var totalSizeOfUnmeasuredItems = numUnmeasuredItems * estimatedRowHeight;\n return totalSizeOfMeasuredRows + totalSizeOfUnmeasuredItems;\n};\n\nvar getEstimatedTotalWidth = function getEstimatedTotalWidth(_ref3, _ref4) {\n var columnCount = _ref3.columnCount;\n var columnMetadataMap = _ref4.columnMetadataMap,\n estimatedColumnWidth = _ref4.estimatedColumnWidth,\n lastMeasuredColumnIndex = _ref4.lastMeasuredColumnIndex;\n var totalSizeOfMeasuredRows = 0; // Edge case check for when the number of items decreases while a scroll is in progress.\n // https://github.com/bvaughn/react-window/pull/138\n\n if (lastMeasuredColumnIndex >= columnCount) {\n lastMeasuredColumnIndex = columnCount - 1;\n }\n\n if (lastMeasuredColumnIndex >= 0) {\n var itemMetadata = columnMetadataMap[lastMeasuredColumnIndex];\n totalSizeOfMeasuredRows = itemMetadata.offset + itemMetadata.size;\n }\n\n var numUnmeasuredItems = columnCount - lastMeasuredColumnIndex - 1;\n var totalSizeOfUnmeasuredItems = numUnmeasuredItems * estimatedColumnWidth;\n return totalSizeOfMeasuredRows + totalSizeOfUnmeasuredItems;\n};\n\nvar getItemMetadata = function getItemMetadata(itemType, props, index, instanceProps) {\n var itemMetadataMap, itemSize, lastMeasuredIndex;\n\n if (itemType === 'column') {\n itemMetadataMap = instanceProps.columnMetadataMap;\n itemSize = props.columnWidth;\n lastMeasuredIndex = instanceProps.lastMeasuredColumnIndex;\n } else {\n itemMetadataMap = instanceProps.rowMetadataMap;\n itemSize = props.rowHeight;\n lastMeasuredIndex = instanceProps.lastMeasuredRowIndex;\n }\n\n if (index > lastMeasuredIndex) {\n var offset = 0;\n\n if (lastMeasuredIndex >= 0) {\n var itemMetadata = itemMetadataMap[lastMeasuredIndex];\n offset = itemMetadata.offset + itemMetadata.size;\n }\n\n for (var i = lastMeasuredIndex + 1; i <= index; i++) {\n var size = itemSize(i);\n itemMetadataMap[i] = {\n offset: offset,\n size: size\n };\n offset += size;\n }\n\n if (itemType === 'column') {\n instanceProps.lastMeasuredColumnIndex = index;\n } else {\n instanceProps.lastMeasuredRowIndex = index;\n }\n }\n\n return itemMetadataMap[index];\n};\n\nvar findNearestItem = function findNearestItem(itemType, props, instanceProps, offset) {\n var itemMetadataMap, lastMeasuredIndex;\n\n if (itemType === 'column') {\n itemMetadataMap = instanceProps.columnMetadataMap;\n lastMeasuredIndex = instanceProps.lastMeasuredColumnIndex;\n } else {\n itemMetadataMap = instanceProps.rowMetadataMap;\n lastMeasuredIndex = instanceProps.lastMeasuredRowIndex;\n }\n\n var lastMeasuredItemOffset = lastMeasuredIndex > 0 ? itemMetadataMap[lastMeasuredIndex].offset : 0;\n\n if (lastMeasuredItemOffset >= offset) {\n // If we've already measured items within this range just use a binary search as it's faster.\n return findNearestItemBinarySearch(itemType, props, instanceProps, lastMeasuredIndex, 0, offset);\n } else {\n // If we haven't yet measured this high, fallback to an exponential search with an inner binary search.\n // The exponential search avoids pre-computing sizes for the full set of items as a binary search would.\n // The overall complexity for this approach is O(log n).\n return findNearestItemExponentialSearch(itemType, props, instanceProps, Math.max(0, lastMeasuredIndex), offset);\n }\n};\n\nvar findNearestItemBinarySearch = function findNearestItemBinarySearch(itemType, props, instanceProps, high, low, offset) {\n while (low <= high) {\n var middle = low + Math.floor((high - low) / 2);\n var currentOffset = getItemMetadata(itemType, props, middle, instanceProps).offset;\n\n if (currentOffset === offset) {\n return middle;\n } else if (currentOffset < offset) {\n low = middle + 1;\n } else if (currentOffset > offset) {\n high = middle - 1;\n }\n }\n\n if (low > 0) {\n return low - 1;\n } else {\n return 0;\n }\n};\n\nvar findNearestItemExponentialSearch = function findNearestItemExponentialSearch(itemType, props, instanceProps, index, offset) {\n var itemCount = itemType === 'column' ? props.columnCount : props.rowCount;\n var interval = 1;\n\n while (index < itemCount && getItemMetadata(itemType, props, index, instanceProps).offset < offset) {\n index += interval;\n interval *= 2;\n }\n\n return findNearestItemBinarySearch(itemType, props, instanceProps, Math.min(index, itemCount - 1), Math.floor(index / 2), offset);\n};\n\nvar getOffsetForIndexAndAlignment = function getOffsetForIndexAndAlignment(itemType, props, index, align, scrollOffset, instanceProps, scrollbarSize) {\n var size = itemType === 'column' ? props.width : props.height;\n var itemMetadata = getItemMetadata(itemType, props, index, instanceProps); // Get estimated total size after ItemMetadata is computed,\n // To ensure it reflects actual measurements instead of just estimates.\n\n var estimatedTotalSize = itemType === 'column' ? getEstimatedTotalWidth(props, instanceProps) : getEstimatedTotalHeight(props, instanceProps);\n var maxOffset = Math.max(0, Math.min(estimatedTotalSize - size, itemMetadata.offset));\n var minOffset = Math.max(0, itemMetadata.offset - size + scrollbarSize + itemMetadata.size);\n\n if (align === 'smart') {\n if (scrollOffset >= minOffset - size && scrollOffset <= maxOffset + size) {\n align = 'auto';\n } else {\n align = 'center';\n }\n }\n\n switch (align) {\n case 'start':\n return maxOffset;\n\n case 'end':\n return minOffset;\n\n case 'center':\n return Math.round(minOffset + (maxOffset - minOffset) / 2);\n\n case 'auto':\n default:\n if (scrollOffset >= minOffset && scrollOffset <= maxOffset) {\n return scrollOffset;\n } else if (minOffset > maxOffset) {\n // Because we only take into account the scrollbar size when calculating minOffset\n // this value can be larger than maxOffset when at the end of the list\n return minOffset;\n } else if (scrollOffset < minOffset) {\n return minOffset;\n } else {\n return maxOffset;\n }\n\n }\n};\n\nvar VariableSizeGrid = /*#__PURE__*/createGridComponent({\n getColumnOffset: function getColumnOffset(props, index, instanceProps) {\n return getItemMetadata('column', props, index, instanceProps).offset;\n },\n getColumnStartIndexForOffset: function getColumnStartIndexForOffset(props, scrollLeft, instanceProps) {\n return findNearestItem('column', props, instanceProps, scrollLeft);\n },\n getColumnStopIndexForStartIndex: function getColumnStopIndexForStartIndex(props, startIndex, scrollLeft, instanceProps) {\n var columnCount = props.columnCount,\n width = props.width;\n var itemMetadata = getItemMetadata('column', props, startIndex, instanceProps);\n var maxOffset = scrollLeft + width;\n var offset = itemMetadata.offset + itemMetadata.size;\n var stopIndex = startIndex;\n\n while (stopIndex < columnCount - 1 && offset < maxOffset) {\n stopIndex++;\n offset += getItemMetadata('column', props, stopIndex, instanceProps).size;\n }\n\n return stopIndex;\n },\n getColumnWidth: function getColumnWidth(props, index, instanceProps) {\n return instanceProps.columnMetadataMap[index].size;\n },\n getEstimatedTotalHeight: getEstimatedTotalHeight,\n getEstimatedTotalWidth: getEstimatedTotalWidth,\n getOffsetForColumnAndAlignment: function getOffsetForColumnAndAlignment(props, index, align, scrollOffset, instanceProps, scrollbarSize) {\n return getOffsetForIndexAndAlignment('column', props, index, align, scrollOffset, instanceProps, scrollbarSize);\n },\n getOffsetForRowAndAlignment: function getOffsetForRowAndAlignment(props, index, align, scrollOffset, instanceProps, scrollbarSize) {\n return getOffsetForIndexAndAlignment('row', props, index, align, scrollOffset, instanceProps, scrollbarSize);\n },\n getRowOffset: function getRowOffset(props, index, instanceProps) {\n return getItemMetadata('row', props, index, instanceProps).offset;\n },\n getRowHeight: function getRowHeight(props, index, instanceProps) {\n return instanceProps.rowMetadataMap[index].size;\n },\n getRowStartIndexForOffset: function getRowStartIndexForOffset(props, scrollTop, instanceProps) {\n return findNearestItem('row', props, instanceProps, scrollTop);\n },\n getRowStopIndexForStartIndex: function getRowStopIndexForStartIndex(props, startIndex, scrollTop, instanceProps) {\n var rowCount = props.rowCount,\n height = props.height;\n var itemMetadata = getItemMetadata('row', props, startIndex, instanceProps);\n var maxOffset = scrollTop + height;\n var offset = itemMetadata.offset + itemMetadata.size;\n var stopIndex = startIndex;\n\n while (stopIndex < rowCount - 1 && offset < maxOffset) {\n stopIndex++;\n offset += getItemMetadata('row', props, stopIndex, instanceProps).size;\n }\n\n return stopIndex;\n },\n initInstanceProps: function initInstanceProps(props, instance) {\n var _ref5 = props,\n estimatedColumnWidth = _ref5.estimatedColumnWidth,\n estimatedRowHeight = _ref5.estimatedRowHeight;\n var instanceProps = {\n columnMetadataMap: {},\n estimatedColumnWidth: estimatedColumnWidth || DEFAULT_ESTIMATED_ITEM_SIZE,\n estimatedRowHeight: estimatedRowHeight || DEFAULT_ESTIMATED_ITEM_SIZE,\n lastMeasuredColumnIndex: -1,\n lastMeasuredRowIndex: -1,\n rowMetadataMap: {}\n };\n\n instance.resetAfterColumnIndex = function (columnIndex, shouldForceUpdate) {\n if (shouldForceUpdate === void 0) {\n shouldForceUpdate = true;\n }\n\n instance.resetAfterIndices({\n columnIndex: columnIndex,\n shouldForceUpdate: shouldForceUpdate\n });\n };\n\n instance.resetAfterRowIndex = function (rowIndex, shouldForceUpdate) {\n if (shouldForceUpdate === void 0) {\n shouldForceUpdate = true;\n }\n\n instance.resetAfterIndices({\n rowIndex: rowIndex,\n shouldForceUpdate: shouldForceUpdate\n });\n };\n\n instance.resetAfterIndices = function (_ref6) {\n var columnIndex = _ref6.columnIndex,\n rowIndex = _ref6.rowIndex,\n _ref6$shouldForceUpda = _ref6.shouldForceUpdate,\n shouldForceUpdate = _ref6$shouldForceUpda === void 0 ? true : _ref6$shouldForceUpda;\n\n if (typeof columnIndex === 'number') {\n instanceProps.lastMeasuredColumnIndex = Math.min(instanceProps.lastMeasuredColumnIndex, columnIndex - 1);\n }\n\n if (typeof rowIndex === 'number') {\n instanceProps.lastMeasuredRowIndex = Math.min(instanceProps.lastMeasuredRowIndex, rowIndex - 1);\n } // We could potentially optimize further by only evicting styles after this index,\n // But since styles are only cached while scrolling is in progress-\n // It seems an unnecessary optimization.\n // It's unlikely that resetAfterIndex() will be called while a user is scrolling.\n\n\n instance._getItemStyleCache(-1);\n\n if (shouldForceUpdate) {\n instance.forceUpdate();\n }\n };\n\n return instanceProps;\n },\n shouldResetStyleCacheOnItemSizeChange: false,\n validateProps: function validateProps(_ref7) {\n var columnWidth = _ref7.columnWidth,\n rowHeight = _ref7.rowHeight;\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof columnWidth !== 'function') {\n throw Error('An invalid \"columnWidth\" prop has been specified. ' + 'Value should be a function. ' + (\"\\\"\" + (columnWidth === null ? 'null' : typeof columnWidth) + \"\\\" was specified.\"));\n } else if (typeof rowHeight !== 'function') {\n throw Error('An invalid \"rowHeight\" prop has been specified. ' + 'Value should be a function. ' + (\"\\\"\" + (rowHeight === null ? 'null' : typeof rowHeight) + \"\\\" was specified.\"));\n }\n }\n }\n});\n\nvar IS_SCROLLING_DEBOUNCE_INTERVAL$1 = 150;\n\nvar defaultItemKey$1 = function defaultItemKey(index, data) {\n return index;\n}; // In DEV mode, this Set helps us only log a warning once per component instance.\n// This avoids spamming the console every time a render happens.\n\n\nvar devWarningsDirection = null;\nvar devWarningsTagName$1 = null;\n\nif (process.env.NODE_ENV !== 'production') {\n if (typeof window !== 'undefined' && typeof window.WeakSet !== 'undefined') {\n devWarningsDirection = /*#__PURE__*/new WeakSet();\n devWarningsTagName$1 = /*#__PURE__*/new WeakSet();\n }\n}\n\nfunction createListComponent(_ref) {\n var _class;\n\n var getItemOffset = _ref.getItemOffset,\n getEstimatedTotalSize = _ref.getEstimatedTotalSize,\n getItemSize = _ref.getItemSize,\n getOffsetForIndexAndAlignment = _ref.getOffsetForIndexAndAlignment,\n getStartIndexForOffset = _ref.getStartIndexForOffset,\n getStopIndexForStartIndex = _ref.getStopIndexForStartIndex,\n initInstanceProps = _ref.initInstanceProps,\n shouldResetStyleCacheOnItemSizeChange = _ref.shouldResetStyleCacheOnItemSizeChange,\n validateProps = _ref.validateProps;\n return _class = /*#__PURE__*/function (_PureComponent) {\n _inheritsLoose(List, _PureComponent);\n\n // Always use explicit constructor for React components.\n // It produces less code after transpilation. (#26)\n // eslint-disable-next-line no-useless-constructor\n function List(props) {\n var _this;\n\n _this = _PureComponent.call(this, props) || this;\n _this._instanceProps = initInstanceProps(_this.props, _assertThisInitialized(_this));\n _this._outerRef = void 0;\n _this._resetIsScrollingTimeoutId = null;\n _this.state = {\n instance: _assertThisInitialized(_this),\n isScrolling: false,\n scrollDirection: 'forward',\n scrollOffset: typeof _this.props.initialScrollOffset === 'number' ? _this.props.initialScrollOffset : 0,\n scrollUpdateWasRequested: false\n };\n _this._callOnItemsRendered = void 0;\n _this._callOnItemsRendered = memoizeOne(function (overscanStartIndex, overscanStopIndex, visibleStartIndex, visibleStopIndex) {\n return _this.props.onItemsRendered({\n overscanStartIndex: overscanStartIndex,\n overscanStopIndex: overscanStopIndex,\n visibleStartIndex: visibleStartIndex,\n visibleStopIndex: visibleStopIndex\n });\n });\n _this._callOnScroll = void 0;\n _this._callOnScroll = memoizeOne(function (scrollDirection, scrollOffset, scrollUpdateWasRequested) {\n return _this.props.onScroll({\n scrollDirection: scrollDirection,\n scrollOffset: scrollOffset,\n scrollUpdateWasRequested: scrollUpdateWasRequested\n });\n });\n _this._getItemStyle = void 0;\n\n _this._getItemStyle = function (index) {\n var _this$props = _this.props,\n direction = _this$props.direction,\n itemSize = _this$props.itemSize,\n layout = _this$props.layout;\n\n var itemStyleCache = _this._getItemStyleCache(shouldResetStyleCacheOnItemSizeChange && itemSize, shouldResetStyleCacheOnItemSizeChange && layout, shouldResetStyleCacheOnItemSizeChange && direction);\n\n var style;\n\n if (itemStyleCache.hasOwnProperty(index)) {\n style = itemStyleCache[index];\n } else {\n var _offset = getItemOffset(_this.props, index, _this._instanceProps);\n\n var size = getItemSize(_this.props, index, _this._instanceProps); // TODO Deprecate direction \"horizontal\"\n\n var isHorizontal = direction === 'horizontal' || layout === 'horizontal';\n var isRtl = direction === 'rtl';\n var offsetHorizontal = isHorizontal ? _offset : 0;\n itemStyleCache[index] = style = {\n position: 'absolute',\n left: isRtl ? undefined : offsetHorizontal,\n right: isRtl ? offsetHorizontal : undefined,\n top: !isHorizontal ? _offset : 0,\n height: !isHorizontal ? size : '100%',\n width: isHorizontal ? size : '100%'\n };\n }\n\n return style;\n };\n\n _this._getItemStyleCache = void 0;\n _this._getItemStyleCache = memoizeOne(function (_, __, ___) {\n return {};\n });\n\n _this._onScrollHorizontal = function (event) {\n var _event$currentTarget = event.currentTarget,\n clientWidth = _event$currentTarget.clientWidth,\n scrollLeft = _event$currentTarget.scrollLeft,\n scrollWidth = _event$currentTarget.scrollWidth;\n\n _this.setState(function (prevState) {\n if (prevState.scrollOffset === scrollLeft) {\n // Scroll position may have been updated by cDM/cDU,\n // In which case we don't need to trigger another render,\n // And we don't want to update state.isScrolling.\n return null;\n }\n\n var direction = _this.props.direction;\n var scrollOffset = scrollLeft;\n\n if (direction === 'rtl') {\n // TRICKY According to the spec, scrollLeft should be negative for RTL aligned elements.\n // This is not the case for all browsers though (e.g. Chrome reports values as positive, measured relative to the left).\n // It's also easier for this component if we convert offsets to the same format as they would be in for ltr.\n // So the simplest solution is to determine which browser behavior we're dealing with, and convert based on it.\n switch (getRTLOffsetType()) {\n case 'negative':\n scrollOffset = -scrollLeft;\n break;\n\n case 'positive-descending':\n scrollOffset = scrollWidth - clientWidth - scrollLeft;\n break;\n }\n } // Prevent Safari's elastic scrolling from causing visual shaking when scrolling past bounds.\n\n\n scrollOffset = Math.max(0, Math.min(scrollOffset, scrollWidth - clientWidth));\n return {\n isScrolling: true,\n scrollDirection: prevState.scrollOffset < scrollOffset ? 'forward' : 'backward',\n scrollOffset: scrollOffset,\n scrollUpdateWasRequested: false\n };\n }, _this._resetIsScrollingDebounced);\n };\n\n _this._onScrollVertical = function (event) {\n var _event$currentTarget2 = event.currentTarget,\n clientHeight = _event$currentTarget2.clientHeight,\n scrollHeight = _event$currentTarget2.scrollHeight,\n scrollTop = _event$currentTarget2.scrollTop;\n\n _this.setState(function (prevState) {\n if (prevState.scrollOffset === scrollTop) {\n // Scroll position may have been updated by cDM/cDU,\n // In which case we don't need to trigger another render,\n // And we don't want to update state.isScrolling.\n return null;\n } // Prevent Safari's elastic scrolling from causing visual shaking when scrolling past bounds.\n\n\n var scrollOffset = Math.max(0, Math.min(scrollTop, scrollHeight - clientHeight));\n return {\n isScrolling: true,\n scrollDirection: prevState.scrollOffset < scrollOffset ? 'forward' : 'backward',\n scrollOffset: scrollOffset,\n scrollUpdateWasRequested: false\n };\n }, _this._resetIsScrollingDebounced);\n };\n\n _this._outerRefSetter = function (ref) {\n var outerRef = _this.props.outerRef;\n _this._outerRef = ref;\n\n if (typeof outerRef === 'function') {\n outerRef(ref);\n } else if (outerRef != null && typeof outerRef === 'object' && outerRef.hasOwnProperty('current')) {\n outerRef.current = ref;\n }\n };\n\n _this._resetIsScrollingDebounced = function () {\n if (_this._resetIsScrollingTimeoutId !== null) {\n cancelTimeout(_this._resetIsScrollingTimeoutId);\n }\n\n _this._resetIsScrollingTimeoutId = requestTimeout(_this._resetIsScrolling, IS_SCROLLING_DEBOUNCE_INTERVAL$1);\n };\n\n _this._resetIsScrolling = function () {\n _this._resetIsScrollingTimeoutId = null;\n\n _this.setState({\n isScrolling: false\n }, function () {\n // Clear style cache after state update has been committed.\n // This way we don't break pure sCU for items that don't use isScrolling param.\n _this._getItemStyleCache(-1, null);\n });\n };\n\n return _this;\n }\n\n List.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {\n validateSharedProps$1(nextProps, prevState);\n validateProps(nextProps);\n return null;\n };\n\n var _proto = List.prototype;\n\n _proto.scrollTo = function scrollTo(scrollOffset) {\n scrollOffset = Math.max(0, scrollOffset);\n this.setState(function (prevState) {\n if (prevState.scrollOffset === scrollOffset) {\n return null;\n }\n\n return {\n scrollDirection: prevState.scrollOffset < scrollOffset ? 'forward' : 'backward',\n scrollOffset: scrollOffset,\n scrollUpdateWasRequested: true\n };\n }, this._resetIsScrollingDebounced);\n };\n\n _proto.scrollToItem = function scrollToItem(index, align) {\n if (align === void 0) {\n align = 'auto';\n }\n\n var _this$props2 = this.props,\n itemCount = _this$props2.itemCount,\n layout = _this$props2.layout;\n var scrollOffset = this.state.scrollOffset;\n index = Math.max(0, Math.min(index, itemCount - 1)); // The scrollbar size should be considered when scrolling an item into view, to ensure it's fully visible.\n // But we only need to account for its size when it's actually visible.\n // This is an edge case for lists; normally they only scroll in the dominant direction.\n\n var scrollbarSize = 0;\n\n if (this._outerRef) {\n var outerRef = this._outerRef;\n\n if (layout === 'vertical') {\n scrollbarSize = outerRef.scrollWidth > outerRef.clientWidth ? getScrollbarSize() : 0;\n } else {\n scrollbarSize = outerRef.scrollHeight > outerRef.clientHeight ? getScrollbarSize() : 0;\n }\n }\n\n this.scrollTo(getOffsetForIndexAndAlignment(this.props, index, align, scrollOffset, this._instanceProps, scrollbarSize));\n };\n\n _proto.componentDidMount = function componentDidMount() {\n var _this$props3 = this.props,\n direction = _this$props3.direction,\n initialScrollOffset = _this$props3.initialScrollOffset,\n layout = _this$props3.layout;\n\n if (typeof initialScrollOffset === 'number' && this._outerRef != null) {\n var outerRef = this._outerRef; // TODO Deprecate direction \"horizontal\"\n\n if (direction === 'horizontal' || layout === 'horizontal') {\n outerRef.scrollLeft = initialScrollOffset;\n } else {\n outerRef.scrollTop = initialScrollOffset;\n }\n }\n\n this._callPropsCallbacks();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n var _this$props4 = this.props,\n direction = _this$props4.direction,\n layout = _this$props4.layout;\n var _this$state = this.state,\n scrollOffset = _this$state.scrollOffset,\n scrollUpdateWasRequested = _this$state.scrollUpdateWasRequested;\n\n if (scrollUpdateWasRequested && this._outerRef != null) {\n var outerRef = this._outerRef; // TODO Deprecate direction \"horizontal\"\n\n if (direction === 'horizontal' || layout === 'horizontal') {\n if (direction === 'rtl') {\n // TRICKY According to the spec, scrollLeft should be negative for RTL aligned elements.\n // This is not the case for all browsers though (e.g. Chrome reports values as positive, measured relative to the left).\n // So we need to determine which browser behavior we're dealing with, and mimic it.\n switch (getRTLOffsetType()) {\n case 'negative':\n outerRef.scrollLeft = -scrollOffset;\n break;\n\n case 'positive-ascending':\n outerRef.scrollLeft = scrollOffset;\n break;\n\n default:\n var clientWidth = outerRef.clientWidth,\n scrollWidth = outerRef.scrollWidth;\n outerRef.scrollLeft = scrollWidth - clientWidth - scrollOffset;\n break;\n }\n } else {\n outerRef.scrollLeft = scrollOffset;\n }\n } else {\n outerRef.scrollTop = scrollOffset;\n }\n }\n\n this._callPropsCallbacks();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this._resetIsScrollingTimeoutId !== null) {\n cancelTimeout(this._resetIsScrollingTimeoutId);\n }\n };\n\n _proto.render = function render() {\n var _this$props5 = this.props,\n children = _this$props5.children,\n className = _this$props5.className,\n direction = _this$props5.direction,\n height = _this$props5.height,\n innerRef = _this$props5.innerRef,\n innerElementType = _this$props5.innerElementType,\n innerTagName = _this$props5.innerTagName,\n itemCount = _this$props5.itemCount,\n itemData = _this$props5.itemData,\n _this$props5$itemKey = _this$props5.itemKey,\n itemKey = _this$props5$itemKey === void 0 ? defaultItemKey$1 : _this$props5$itemKey,\n layout = _this$props5.layout,\n outerElementType = _this$props5.outerElementType,\n outerTagName = _this$props5.outerTagName,\n style = _this$props5.style,\n useIsScrolling = _this$props5.useIsScrolling,\n width = _this$props5.width;\n var isScrolling = this.state.isScrolling; // TODO Deprecate direction \"horizontal\"\n\n var isHorizontal = direction === 'horizontal' || layout === 'horizontal';\n var onScroll = isHorizontal ? this._onScrollHorizontal : this._onScrollVertical;\n\n var _this$_getRangeToRend = this._getRangeToRender(),\n startIndex = _this$_getRangeToRend[0],\n stopIndex = _this$_getRangeToRend[1];\n\n var items = [];\n\n if (itemCount > 0) {\n for (var _index = startIndex; _index <= stopIndex; _index++) {\n items.push(createElement(children, {\n data: itemData,\n key: itemKey(_index, itemData),\n index: _index,\n isScrolling: useIsScrolling ? isScrolling : undefined,\n style: this._getItemStyle(_index)\n }));\n }\n } // Read this value AFTER items have been created,\n // So their actual sizes (if variable) are taken into consideration.\n\n\n var estimatedTotalSize = getEstimatedTotalSize(this.props, this._instanceProps);\n return createElement(outerElementType || outerTagName || 'div', {\n className: className,\n onScroll: onScroll,\n ref: this._outerRefSetter,\n style: _extends({\n position: 'relative',\n height: height,\n width: width,\n overflow: 'auto',\n WebkitOverflowScrolling: 'touch',\n willChange: 'transform',\n direction: direction\n }, style)\n }, createElement(innerElementType || innerTagName || 'div', {\n children: items,\n ref: innerRef,\n style: {\n height: isHorizontal ? '100%' : estimatedTotalSize,\n pointerEvents: isScrolling ? 'none' : undefined,\n width: isHorizontal ? estimatedTotalSize : '100%'\n }\n }));\n };\n\n _proto._callPropsCallbacks = function _callPropsCallbacks() {\n if (typeof this.props.onItemsRendered === 'function') {\n var itemCount = this.props.itemCount;\n\n if (itemCount > 0) {\n var _this$_getRangeToRend2 = this._getRangeToRender(),\n _overscanStartIndex = _this$_getRangeToRend2[0],\n _overscanStopIndex = _this$_getRangeToRend2[1],\n _visibleStartIndex = _this$_getRangeToRend2[2],\n _visibleStopIndex = _this$_getRangeToRend2[3];\n\n this._callOnItemsRendered(_overscanStartIndex, _overscanStopIndex, _visibleStartIndex, _visibleStopIndex);\n }\n }\n\n if (typeof this.props.onScroll === 'function') {\n var _this$state2 = this.state,\n _scrollDirection = _this$state2.scrollDirection,\n _scrollOffset = _this$state2.scrollOffset,\n _scrollUpdateWasRequested = _this$state2.scrollUpdateWasRequested;\n\n this._callOnScroll(_scrollDirection, _scrollOffset, _scrollUpdateWasRequested);\n }\n } // Lazily create and cache item styles while scrolling,\n // So that pure component sCU will prevent re-renders.\n // We maintain this cache, and pass a style prop rather than index,\n // So that List can clear cached styles and force item re-render if necessary.\n ;\n\n _proto._getRangeToRender = function _getRangeToRender() {\n var _this$props6 = this.props,\n itemCount = _this$props6.itemCount,\n overscanCount = _this$props6.overscanCount;\n var _this$state3 = this.state,\n isScrolling = _this$state3.isScrolling,\n scrollDirection = _this$state3.scrollDirection,\n scrollOffset = _this$state3.scrollOffset;\n\n if (itemCount === 0) {\n return [0, 0, 0, 0];\n }\n\n var startIndex = getStartIndexForOffset(this.props, scrollOffset, this._instanceProps);\n var stopIndex = getStopIndexForStartIndex(this.props, startIndex, scrollOffset, this._instanceProps); // Overscan by one item in each direction so that tab/focus works.\n // If there isn't at least one extra item, tab loops back around.\n\n var overscanBackward = !isScrolling || scrollDirection === 'backward' ? Math.max(1, overscanCount) : 1;\n var overscanForward = !isScrolling || scrollDirection === 'forward' ? Math.max(1, overscanCount) : 1;\n return [Math.max(0, startIndex - overscanBackward), Math.max(0, Math.min(itemCount - 1, stopIndex + overscanForward)), startIndex, stopIndex];\n };\n\n return List;\n }(PureComponent), _class.defaultProps = {\n direction: 'ltr',\n itemData: undefined,\n layout: 'vertical',\n overscanCount: 2,\n useIsScrolling: false\n }, _class;\n} // NOTE: I considered further wrapping individual items with a pure ListItem component.\n// This would avoid ever calling the render function for the same index more than once,\n// But it would also add the overhead of a lot of components/fibers.\n// I assume people already do this (render function returning a class component),\n// So my doing it would just unnecessarily double the wrappers.\n\nvar validateSharedProps$1 = function validateSharedProps(_ref2, _ref3) {\n var children = _ref2.children,\n direction = _ref2.direction,\n height = _ref2.height,\n layout = _ref2.layout,\n innerTagName = _ref2.innerTagName,\n outerTagName = _ref2.outerTagName,\n width = _ref2.width;\n var instance = _ref3.instance;\n\n if (process.env.NODE_ENV !== 'production') {\n if (innerTagName != null || outerTagName != null) {\n if (devWarningsTagName$1 && !devWarningsTagName$1.has(instance)) {\n devWarningsTagName$1.add(instance);\n console.warn('The innerTagName and outerTagName props have been deprecated. ' + 'Please use the innerElementType and outerElementType props instead.');\n }\n } // TODO Deprecate direction \"horizontal\"\n\n\n var isHorizontal = direction === 'horizontal' || layout === 'horizontal';\n\n switch (direction) {\n case 'horizontal':\n case 'vertical':\n if (devWarningsDirection && !devWarningsDirection.has(instance)) {\n devWarningsDirection.add(instance);\n console.warn('The direction prop should be either \"ltr\" (default) or \"rtl\". ' + 'Please use the layout prop to specify \"vertical\" (default) or \"horizontal\" orientation.');\n }\n\n break;\n\n case 'ltr':\n case 'rtl':\n // Valid values\n break;\n\n default:\n throw Error('An invalid \"direction\" prop has been specified. ' + 'Value should be either \"ltr\" or \"rtl\". ' + (\"\\\"\" + direction + \"\\\" was specified.\"));\n }\n\n switch (layout) {\n case 'horizontal':\n case 'vertical':\n // Valid values\n break;\n\n default:\n throw Error('An invalid \"layout\" prop has been specified. ' + 'Value should be either \"horizontal\" or \"vertical\". ' + (\"\\\"\" + layout + \"\\\" was specified.\"));\n }\n\n if (children == null) {\n throw Error('An invalid \"children\" prop has been specified. ' + 'Value should be a React component. ' + (\"\\\"\" + (children === null ? 'null' : typeof children) + \"\\\" was specified.\"));\n }\n\n if (isHorizontal && typeof width !== 'number') {\n throw Error('An invalid \"width\" prop has been specified. ' + 'Horizontal lists must specify a number for width. ' + (\"\\\"\" + (width === null ? 'null' : typeof width) + \"\\\" was specified.\"));\n } else if (!isHorizontal && typeof height !== 'number') {\n throw Error('An invalid \"height\" prop has been specified. ' + 'Vertical lists must specify a number for height. ' + (\"\\\"\" + (height === null ? 'null' : typeof height) + \"\\\" was specified.\"));\n }\n }\n};\n\nvar DEFAULT_ESTIMATED_ITEM_SIZE$1 = 50;\n\nvar getItemMetadata$1 = function getItemMetadata(props, index, instanceProps) {\n var _ref = props,\n itemSize = _ref.itemSize;\n var itemMetadataMap = instanceProps.itemMetadataMap,\n lastMeasuredIndex = instanceProps.lastMeasuredIndex;\n\n if (index > lastMeasuredIndex) {\n var offset = 0;\n\n if (lastMeasuredIndex >= 0) {\n var itemMetadata = itemMetadataMap[lastMeasuredIndex];\n offset = itemMetadata.offset + itemMetadata.size;\n }\n\n for (var i = lastMeasuredIndex + 1; i <= index; i++) {\n var size = itemSize(i);\n itemMetadataMap[i] = {\n offset: offset,\n size: size\n };\n offset += size;\n }\n\n instanceProps.lastMeasuredIndex = index;\n }\n\n return itemMetadataMap[index];\n};\n\nvar findNearestItem$1 = function findNearestItem(props, instanceProps, offset) {\n var itemMetadataMap = instanceProps.itemMetadataMap,\n lastMeasuredIndex = instanceProps.lastMeasuredIndex;\n var lastMeasuredItemOffset = lastMeasuredIndex > 0 ? itemMetadataMap[lastMeasuredIndex].offset : 0;\n\n if (lastMeasuredItemOffset >= offset) {\n // If we've already measured items within this range just use a binary search as it's faster.\n return findNearestItemBinarySearch$1(props, instanceProps, lastMeasuredIndex, 0, offset);\n } else {\n // If we haven't yet measured this high, fallback to an exponential search with an inner binary search.\n // The exponential search avoids pre-computing sizes for the full set of items as a binary search would.\n // The overall complexity for this approach is O(log n).\n return findNearestItemExponentialSearch$1(props, instanceProps, Math.max(0, lastMeasuredIndex), offset);\n }\n};\n\nvar findNearestItemBinarySearch$1 = function findNearestItemBinarySearch(props, instanceProps, high, low, offset) {\n while (low <= high) {\n var middle = low + Math.floor((high - low) / 2);\n var currentOffset = getItemMetadata$1(props, middle, instanceProps).offset;\n\n if (currentOffset === offset) {\n return middle;\n } else if (currentOffset < offset) {\n low = middle + 1;\n } else if (currentOffset > offset) {\n high = middle - 1;\n }\n }\n\n if (low > 0) {\n return low - 1;\n } else {\n return 0;\n }\n};\n\nvar findNearestItemExponentialSearch$1 = function findNearestItemExponentialSearch(props, instanceProps, index, offset) {\n var itemCount = props.itemCount;\n var interval = 1;\n\n while (index < itemCount && getItemMetadata$1(props, index, instanceProps).offset < offset) {\n index += interval;\n interval *= 2;\n }\n\n return findNearestItemBinarySearch$1(props, instanceProps, Math.min(index, itemCount - 1), Math.floor(index / 2), offset);\n};\n\nvar getEstimatedTotalSize = function getEstimatedTotalSize(_ref2, _ref3) {\n var itemCount = _ref2.itemCount;\n var itemMetadataMap = _ref3.itemMetadataMap,\n estimatedItemSize = _ref3.estimatedItemSize,\n lastMeasuredIndex = _ref3.lastMeasuredIndex;\n var totalSizeOfMeasuredItems = 0; // Edge case check for when the number of items decreases while a scroll is in progress.\n // https://github.com/bvaughn/react-window/pull/138\n\n if (lastMeasuredIndex >= itemCount) {\n lastMeasuredIndex = itemCount - 1;\n }\n\n if (lastMeasuredIndex >= 0) {\n var itemMetadata = itemMetadataMap[lastMeasuredIndex];\n totalSizeOfMeasuredItems = itemMetadata.offset + itemMetadata.size;\n }\n\n var numUnmeasuredItems = itemCount - lastMeasuredIndex - 1;\n var totalSizeOfUnmeasuredItems = numUnmeasuredItems * estimatedItemSize;\n return totalSizeOfMeasuredItems + totalSizeOfUnmeasuredItems;\n};\n\nvar VariableSizeList = /*#__PURE__*/createListComponent({\n getItemOffset: function getItemOffset(props, index, instanceProps) {\n return getItemMetadata$1(props, index, instanceProps).offset;\n },\n getItemSize: function getItemSize(props, index, instanceProps) {\n return instanceProps.itemMetadataMap[index].size;\n },\n getEstimatedTotalSize: getEstimatedTotalSize,\n getOffsetForIndexAndAlignment: function getOffsetForIndexAndAlignment(props, index, align, scrollOffset, instanceProps, scrollbarSize) {\n var direction = props.direction,\n height = props.height,\n layout = props.layout,\n width = props.width; // TODO Deprecate direction \"horizontal\"\n\n var isHorizontal = direction === 'horizontal' || layout === 'horizontal';\n var size = isHorizontal ? width : height;\n var itemMetadata = getItemMetadata$1(props, index, instanceProps); // Get estimated total size after ItemMetadata is computed,\n // To ensure it reflects actual measurements instead of just estimates.\n\n var estimatedTotalSize = getEstimatedTotalSize(props, instanceProps);\n var maxOffset = Math.max(0, Math.min(estimatedTotalSize - size, itemMetadata.offset));\n var minOffset = Math.max(0, itemMetadata.offset - size + itemMetadata.size + scrollbarSize);\n\n if (align === 'smart') {\n if (scrollOffset >= minOffset - size && scrollOffset <= maxOffset + size) {\n align = 'auto';\n } else {\n align = 'center';\n }\n }\n\n switch (align) {\n case 'start':\n return maxOffset;\n\n case 'end':\n return minOffset;\n\n case 'center':\n return Math.round(minOffset + (maxOffset - minOffset) / 2);\n\n case 'auto':\n default:\n if (scrollOffset >= minOffset && scrollOffset <= maxOffset) {\n return scrollOffset;\n } else if (scrollOffset < minOffset) {\n return minOffset;\n } else {\n return maxOffset;\n }\n\n }\n },\n getStartIndexForOffset: function getStartIndexForOffset(props, offset, instanceProps) {\n return findNearestItem$1(props, instanceProps, offset);\n },\n getStopIndexForStartIndex: function getStopIndexForStartIndex(props, startIndex, scrollOffset, instanceProps) {\n var direction = props.direction,\n height = props.height,\n itemCount = props.itemCount,\n layout = props.layout,\n width = props.width; // TODO Deprecate direction \"horizontal\"\n\n var isHorizontal = direction === 'horizontal' || layout === 'horizontal';\n var size = isHorizontal ? width : height;\n var itemMetadata = getItemMetadata$1(props, startIndex, instanceProps);\n var maxOffset = scrollOffset + size;\n var offset = itemMetadata.offset + itemMetadata.size;\n var stopIndex = startIndex;\n\n while (stopIndex < itemCount - 1 && offset < maxOffset) {\n stopIndex++;\n offset += getItemMetadata$1(props, stopIndex, instanceProps).size;\n }\n\n return stopIndex;\n },\n initInstanceProps: function initInstanceProps(props, instance) {\n var _ref4 = props,\n estimatedItemSize = _ref4.estimatedItemSize;\n var instanceProps = {\n itemMetadataMap: {},\n estimatedItemSize: estimatedItemSize || DEFAULT_ESTIMATED_ITEM_SIZE$1,\n lastMeasuredIndex: -1\n };\n\n instance.resetAfterIndex = function (index, shouldForceUpdate) {\n if (shouldForceUpdate === void 0) {\n shouldForceUpdate = true;\n }\n\n instanceProps.lastMeasuredIndex = Math.min(instanceProps.lastMeasuredIndex, index - 1); // We could potentially optimize further by only evicting styles after this index,\n // But since styles are only cached while scrolling is in progress-\n // It seems an unnecessary optimization.\n // It's unlikely that resetAfterIndex() will be called while a user is scrolling.\n\n instance._getItemStyleCache(-1);\n\n if (shouldForceUpdate) {\n instance.forceUpdate();\n }\n };\n\n return instanceProps;\n },\n shouldResetStyleCacheOnItemSizeChange: false,\n validateProps: function validateProps(_ref5) {\n var itemSize = _ref5.itemSize;\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof itemSize !== 'function') {\n throw Error('An invalid \"itemSize\" prop has been specified. ' + 'Value should be a function. ' + (\"\\\"\" + (itemSize === null ? 'null' : typeof itemSize) + \"\\\" was specified.\"));\n }\n }\n }\n});\n\nvar FixedSizeGrid = /*#__PURE__*/createGridComponent({\n getColumnOffset: function getColumnOffset(_ref, index) {\n var columnWidth = _ref.columnWidth;\n return index * columnWidth;\n },\n getColumnWidth: function getColumnWidth(_ref2, index) {\n var columnWidth = _ref2.columnWidth;\n return columnWidth;\n },\n getRowOffset: function getRowOffset(_ref3, index) {\n var rowHeight = _ref3.rowHeight;\n return index * rowHeight;\n },\n getRowHeight: function getRowHeight(_ref4, index) {\n var rowHeight = _ref4.rowHeight;\n return rowHeight;\n },\n getEstimatedTotalHeight: function getEstimatedTotalHeight(_ref5) {\n var rowCount = _ref5.rowCount,\n rowHeight = _ref5.rowHeight;\n return rowHeight * rowCount;\n },\n getEstimatedTotalWidth: function getEstimatedTotalWidth(_ref6) {\n var columnCount = _ref6.columnCount,\n columnWidth = _ref6.columnWidth;\n return columnWidth * columnCount;\n },\n getOffsetForColumnAndAlignment: function getOffsetForColumnAndAlignment(_ref7, columnIndex, align, scrollLeft, instanceProps, scrollbarSize) {\n var columnCount = _ref7.columnCount,\n columnWidth = _ref7.columnWidth,\n width = _ref7.width;\n var lastColumnOffset = Math.max(0, columnCount * columnWidth - width);\n var maxOffset = Math.min(lastColumnOffset, columnIndex * columnWidth);\n var minOffset = Math.max(0, columnIndex * columnWidth - width + scrollbarSize + columnWidth);\n\n if (align === 'smart') {\n if (scrollLeft >= minOffset - width && scrollLeft <= maxOffset + width) {\n align = 'auto';\n } else {\n align = 'center';\n }\n }\n\n switch (align) {\n case 'start':\n return maxOffset;\n\n case 'end':\n return minOffset;\n\n case 'center':\n // \"Centered\" offset is usually the average of the min and max.\n // But near the edges of the list, this doesn't hold true.\n var middleOffset = Math.round(minOffset + (maxOffset - minOffset) / 2);\n\n if (middleOffset < Math.ceil(width / 2)) {\n return 0; // near the beginning\n } else if (middleOffset > lastColumnOffset + Math.floor(width / 2)) {\n return lastColumnOffset; // near the end\n } else {\n return middleOffset;\n }\n\n case 'auto':\n default:\n if (scrollLeft >= minOffset && scrollLeft <= maxOffset) {\n return scrollLeft;\n } else if (minOffset > maxOffset) {\n // Because we only take into account the scrollbar size when calculating minOffset\n // this value can be larger than maxOffset when at the end of the list\n return minOffset;\n } else if (scrollLeft < minOffset) {\n return minOffset;\n } else {\n return maxOffset;\n }\n\n }\n },\n getOffsetForRowAndAlignment: function getOffsetForRowAndAlignment(_ref8, rowIndex, align, scrollTop, instanceProps, scrollbarSize) {\n var rowHeight = _ref8.rowHeight,\n height = _ref8.height,\n rowCount = _ref8.rowCount;\n var lastRowOffset = Math.max(0, rowCount * rowHeight - height);\n var maxOffset = Math.min(lastRowOffset, rowIndex * rowHeight);\n var minOffset = Math.max(0, rowIndex * rowHeight - height + scrollbarSize + rowHeight);\n\n if (align === 'smart') {\n if (scrollTop >= minOffset - height && scrollTop <= maxOffset + height) {\n align = 'auto';\n } else {\n align = 'center';\n }\n }\n\n switch (align) {\n case 'start':\n return maxOffset;\n\n case 'end':\n return minOffset;\n\n case 'center':\n // \"Centered\" offset is usually the average of the min and max.\n // But near the edges of the list, this doesn't hold true.\n var middleOffset = Math.round(minOffset + (maxOffset - minOffset) / 2);\n\n if (middleOffset < Math.ceil(height / 2)) {\n return 0; // near the beginning\n } else if (middleOffset > lastRowOffset + Math.floor(height / 2)) {\n return lastRowOffset; // near the end\n } else {\n return middleOffset;\n }\n\n case 'auto':\n default:\n if (scrollTop >= minOffset && scrollTop <= maxOffset) {\n return scrollTop;\n } else if (minOffset > maxOffset) {\n // Because we only take into account the scrollbar size when calculating minOffset\n // this value can be larger than maxOffset when at the end of the list\n return minOffset;\n } else if (scrollTop < minOffset) {\n return minOffset;\n } else {\n return maxOffset;\n }\n\n }\n },\n getColumnStartIndexForOffset: function getColumnStartIndexForOffset(_ref9, scrollLeft) {\n var columnWidth = _ref9.columnWidth,\n columnCount = _ref9.columnCount;\n return Math.max(0, Math.min(columnCount - 1, Math.floor(scrollLeft / columnWidth)));\n },\n getColumnStopIndexForStartIndex: function getColumnStopIndexForStartIndex(_ref10, startIndex, scrollLeft) {\n var columnWidth = _ref10.columnWidth,\n columnCount = _ref10.columnCount,\n width = _ref10.width;\n var left = startIndex * columnWidth;\n var numVisibleColumns = Math.ceil((width + scrollLeft - left) / columnWidth);\n return Math.max(0, Math.min(columnCount - 1, startIndex + numVisibleColumns - 1 // -1 is because stop index is inclusive\n ));\n },\n getRowStartIndexForOffset: function getRowStartIndexForOffset(_ref11, scrollTop) {\n var rowHeight = _ref11.rowHeight,\n rowCount = _ref11.rowCount;\n return Math.max(0, Math.min(rowCount - 1, Math.floor(scrollTop / rowHeight)));\n },\n getRowStopIndexForStartIndex: function getRowStopIndexForStartIndex(_ref12, startIndex, scrollTop) {\n var rowHeight = _ref12.rowHeight,\n rowCount = _ref12.rowCount,\n height = _ref12.height;\n var top = startIndex * rowHeight;\n var numVisibleRows = Math.ceil((height + scrollTop - top) / rowHeight);\n return Math.max(0, Math.min(rowCount - 1, startIndex + numVisibleRows - 1 // -1 is because stop index is inclusive\n ));\n },\n initInstanceProps: function initInstanceProps(props) {// Noop\n },\n shouldResetStyleCacheOnItemSizeChange: true,\n validateProps: function validateProps(_ref13) {\n var columnWidth = _ref13.columnWidth,\n rowHeight = _ref13.rowHeight;\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof columnWidth !== 'number') {\n throw Error('An invalid \"columnWidth\" prop has been specified. ' + 'Value should be a number. ' + (\"\\\"\" + (columnWidth === null ? 'null' : typeof columnWidth) + \"\\\" was specified.\"));\n }\n\n if (typeof rowHeight !== 'number') {\n throw Error('An invalid \"rowHeight\" prop has been specified. ' + 'Value should be a number. ' + (\"\\\"\" + (rowHeight === null ? 'null' : typeof rowHeight) + \"\\\" was specified.\"));\n }\n }\n }\n});\n\nvar FixedSizeList = /*#__PURE__*/createListComponent({\n getItemOffset: function getItemOffset(_ref, index) {\n var itemSize = _ref.itemSize;\n return index * itemSize;\n },\n getItemSize: function getItemSize(_ref2, index) {\n var itemSize = _ref2.itemSize;\n return itemSize;\n },\n getEstimatedTotalSize: function getEstimatedTotalSize(_ref3) {\n var itemCount = _ref3.itemCount,\n itemSize = _ref3.itemSize;\n return itemSize * itemCount;\n },\n getOffsetForIndexAndAlignment: function getOffsetForIndexAndAlignment(_ref4, index, align, scrollOffset, instanceProps, scrollbarSize) {\n var direction = _ref4.direction,\n height = _ref4.height,\n itemCount = _ref4.itemCount,\n itemSize = _ref4.itemSize,\n layout = _ref4.layout,\n width = _ref4.width;\n // TODO Deprecate direction \"horizontal\"\n var isHorizontal = direction === 'horizontal' || layout === 'horizontal';\n var size = isHorizontal ? width : height;\n var lastItemOffset = Math.max(0, itemCount * itemSize - size);\n var maxOffset = Math.min(lastItemOffset, index * itemSize);\n var minOffset = Math.max(0, index * itemSize - size + itemSize + scrollbarSize);\n\n if (align === 'smart') {\n if (scrollOffset >= minOffset - size && scrollOffset <= maxOffset + size) {\n align = 'auto';\n } else {\n align = 'center';\n }\n }\n\n switch (align) {\n case 'start':\n return maxOffset;\n\n case 'end':\n return minOffset;\n\n case 'center':\n {\n // \"Centered\" offset is usually the average of the min and max.\n // But near the edges of the list, this doesn't hold true.\n var middleOffset = Math.round(minOffset + (maxOffset - minOffset) / 2);\n\n if (middleOffset < Math.ceil(size / 2)) {\n return 0; // near the beginning\n } else if (middleOffset > lastItemOffset + Math.floor(size / 2)) {\n return lastItemOffset; // near the end\n } else {\n return middleOffset;\n }\n }\n\n case 'auto':\n default:\n if (scrollOffset >= minOffset && scrollOffset <= maxOffset) {\n return scrollOffset;\n } else if (scrollOffset < minOffset) {\n return minOffset;\n } else {\n return maxOffset;\n }\n\n }\n },\n getStartIndexForOffset: function getStartIndexForOffset(_ref5, offset) {\n var itemCount = _ref5.itemCount,\n itemSize = _ref5.itemSize;\n return Math.max(0, Math.min(itemCount - 1, Math.floor(offset / itemSize)));\n },\n getStopIndexForStartIndex: function getStopIndexForStartIndex(_ref6, startIndex, scrollOffset) {\n var direction = _ref6.direction,\n height = _ref6.height,\n itemCount = _ref6.itemCount,\n itemSize = _ref6.itemSize,\n layout = _ref6.layout,\n width = _ref6.width;\n // TODO Deprecate direction \"horizontal\"\n var isHorizontal = direction === 'horizontal' || layout === 'horizontal';\n var offset = startIndex * itemSize;\n var size = isHorizontal ? width : height;\n var numVisibleItems = Math.ceil((size + scrollOffset - offset) / itemSize);\n return Math.max(0, Math.min(itemCount - 1, startIndex + numVisibleItems - 1 // -1 is because stop index is inclusive\n ));\n },\n initInstanceProps: function initInstanceProps(props) {// Noop\n },\n shouldResetStyleCacheOnItemSizeChange: true,\n validateProps: function validateProps(_ref7) {\n var itemSize = _ref7.itemSize;\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof itemSize !== 'number') {\n throw Error('An invalid \"itemSize\" prop has been specified. ' + 'Value should be a number. ' + (\"\\\"\" + (itemSize === null ? 'null' : typeof itemSize) + \"\\\" was specified.\"));\n }\n }\n }\n});\n\n// Pulled from react-compat\n// https://github.com/developit/preact-compat/blob/7c5de00e7c85e2ffd011bf3af02899b63f699d3a/src/index.js#L349\nfunction shallowDiffers(prev, next) {\n for (var attribute in prev) {\n if (!(attribute in next)) {\n return true;\n }\n }\n\n for (var _attribute in next) {\n if (prev[_attribute] !== next[_attribute]) {\n return true;\n }\n }\n\n return false;\n}\n\nvar _excluded = [\"style\"],\n _excluded2 = [\"style\"];\n// It knows to compare individual style props and ignore the wrapper object.\n// See https://reactjs.org/docs/react-api.html#reactmemo\n\nfunction areEqual(prevProps, nextProps) {\n var prevStyle = prevProps.style,\n prevRest = _objectWithoutPropertiesLoose(prevProps, _excluded);\n\n var nextStyle = nextProps.style,\n nextRest = _objectWithoutPropertiesLoose(nextProps, _excluded2);\n\n return !shallowDiffers(prevStyle, nextStyle) && !shallowDiffers(prevRest, nextRest);\n}\n\n// It knows to compare individual style props and ignore the wrapper object.\n// See https://reactjs.org/docs/react-component.html#shouldcomponentupdate\n\nfunction shouldComponentUpdate(nextProps, nextState) {\n return !areEqual(this.props, nextProps) || shallowDiffers(this.state, nextState);\n}\n\nexport { FixedSizeGrid, FixedSizeList, VariableSizeGrid, VariableSizeList, areEqual, shouldComponentUpdate };\n//# sourceMappingURL=index.esm.js.map\n",null,null],"names":["setPrototypeOf","createElement","PureComponent","Component","createRef","List"],"mappings":"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","x_google_ignoreList":[0,2,4,5,6,7,8,9]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "jattac.libs.web.responsive-table",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.6",
|
|
4
4
|
"description": "A fully responsive, customizable, and lightweight React table component with a modern, mobile-first design and a powerful plugin system.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.es.js",
|
|
@@ -63,4 +63,4 @@
|
|
|
63
63
|
"react-window": "^1.8.11",
|
|
64
64
|
"tslib": "^2.6.2"
|
|
65
65
|
}
|
|
66
|
-
}
|
|
66
|
+
}
|