react-virtuoso 2.2.6-beta.2 → 2.2.9-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (139) hide show
  1. package/dist/Grid.d.ts +27 -30
  2. package/dist/List.d.ts +230 -206
  3. package/dist/__examples.cc6a8f9f.js +10236 -620
  4. package/dist/__examples.cc6a8f9f.js.map +1 -1
  5. package/dist/__examples.js +1 -1
  6. package/dist/__examples.js.map +1 -1
  7. package/dist/align-to-bottom.7fcd2087.js +206 -1
  8. package/dist/align-to-bottom.7fcd2087.js.map +1 -1
  9. package/dist/alignToBottomSystem.d.ts +21 -21
  10. package/dist/at-bottom-detection.a5d019c3.js +441 -0
  11. package/dist/at-bottom-detection.a5d019c3.js.map +1 -0
  12. package/dist/auto-prepend-items.bd7e9b90.js +206 -1
  13. package/dist/auto-prepend-items.bd7e9b90.js.map +1 -1
  14. package/dist/benchmark.66d31485.js +206 -1
  15. package/dist/benchmark.66d31485.js.map +1 -1
  16. package/dist/chat.d4f93b8b.js +206 -1
  17. package/dist/chat.d4f93b8b.js.map +1 -1
  18. package/dist/components.d.ts +8 -6
  19. package/dist/context.a45abc98.js +380 -0
  20. package/dist/context.a45abc98.js.map +1 -0
  21. package/dist/contextSystem.d.ts +4 -0
  22. package/dist/custom-components.5aeaa7ef.js +206 -1
  23. package/dist/custom-components.5aeaa7ef.js.map +1 -1
  24. package/dist/custom-scroller.b0240d14.js +206 -1
  25. package/dist/custom-scroller.b0240d14.js.map +1 -1
  26. package/dist/data.26707046.js +206 -1
  27. package/dist/data.26707046.js.map +1 -1
  28. package/dist/decrease-items.e2211e50.js +206 -1
  29. package/dist/decrease-items.e2211e50.js.map +1 -1
  30. package/dist/default-item-height.b77ada36.js +206 -1
  31. package/dist/default-item-height.b77ada36.js.map +1 -1
  32. package/dist/domIOSystem.d.ts +1 -4
  33. package/dist/empty-placeholder.00607a6e.js +206 -1
  34. package/dist/empty-placeholder.00607a6e.js.map +1 -1
  35. package/dist/end-reached.8531e5b1.js +206 -1
  36. package/dist/end-reached.8531e5b1.js.map +1 -1
  37. package/dist/endless-scrolling.bc4101f0.js +206 -1
  38. package/dist/endless-scrolling.bc4101f0.js.map +1 -1
  39. package/dist/expandable-cards.5439f51b.js +206 -1
  40. package/dist/expandable-cards.5439f51b.js.map +1 -1
  41. package/dist/follow-output.4e36fca8.js +206 -1
  42. package/dist/follow-output.4e36fca8.js.map +1 -1
  43. package/dist/followOutputSystem.d.ts +36 -12
  44. package/dist/grid-optimize-rendering.b49e36f5.js +206 -1
  45. package/dist/grid-optimize-rendering.b49e36f5.js.map +1 -1
  46. package/dist/grid-scroll-seek-placeholder.b2862006.js +415 -0
  47. package/dist/grid-scroll-seek-placeholder.b2862006.js.map +1 -0
  48. package/dist/grid.d5d77b6a.js +206 -1
  49. package/dist/grid.d5d77b6a.js.map +1 -1
  50. package/dist/gridSystem.d.ts +20 -19
  51. package/dist/grouped-endless-scrolling.24985a0f.js +206 -1
  52. package/dist/grouped-endless-scrolling.24985a0f.js.map +1 -1
  53. package/dist/grouped-load-more.bce8f6e4.js +206 -1
  54. package/dist/grouped-load-more.bce8f6e4.js.map +1 -1
  55. package/dist/grouped-topmost-item.34960f5e.js +206 -1
  56. package/dist/grouped-topmost-item.34960f5e.js.map +1 -1
  57. package/dist/grouped.a2908632.js +206 -1
  58. package/dist/grouped.a2908632.js.map +1 -1
  59. package/dist/groupedListSystem.d.ts +2 -2
  60. package/dist/header-footer.49733d45.js +206 -1
  61. package/dist/header-footer.49733d45.js.map +1 -1
  62. package/dist/hello.54765c26.js +206 -1
  63. package/dist/hello.54765c26.js.map +1 -1
  64. package/dist/hooks/useChangedChildSizes.d.ts +1 -1
  65. package/dist/hooks/useScrollTop.d.ts +1 -1
  66. package/dist/index.js +1 -1
  67. package/dist/index.js.map +1 -1
  68. package/dist/index.m.js +1 -1
  69. package/dist/index.m.js.map +1 -1
  70. package/dist/initial-from-zero.22ad1626.js +206 -1
  71. package/dist/initial-from-zero.22ad1626.js.map +1 -1
  72. package/dist/initial-scroll-top.90db1920.js +206 -1
  73. package/dist/initial-scroll-top.90db1920.js.map +1 -1
  74. package/dist/initial-topmost-item-default-height.43a95247.js +206 -1
  75. package/dist/initial-topmost-item-default-height.43a95247.js.map +1 -1
  76. package/dist/initial-topmost-item.61c0e169.js +206 -1
  77. package/dist/initial-topmost-item.61c0e169.js.map +1 -1
  78. package/dist/initialItemCountSystem.d.ts +17 -17
  79. package/dist/initialScrollTopSystem.d.ts +21 -21
  80. package/dist/initialTopMostItemIndexSystem.d.ts +4 -4
  81. package/dist/interfaces.d.ts +11 -5
  82. package/dist/listStateSystem.d.ts +16 -16
  83. package/dist/listSystem.d.ts +217 -193
  84. package/dist/long-last-item.b56ff89c.js +206 -2
  85. package/dist/long-last-item.b56ff89c.js.map +1 -1
  86. package/dist/prepend-items.f2bda34b.js +206 -1
  87. package/dist/prepend-items.f2bda34b.js.map +1 -1
  88. package/dist/prepend-last-tall-item.168a9e65.js +206 -1
  89. package/dist/prepend-last-tall-item.168a9e65.js.map +1 -1
  90. package/dist/react-beautiful-dnd-window-scroller.0a227511.js +206 -1
  91. package/dist/react-beautiful-dnd-window-scroller.0a227511.js.map +1 -1
  92. package/dist/react-beautiful-dnd.817e9251.js +206 -1
  93. package/dist/react-beautiful-dnd.817e9251.js.map +1 -1
  94. package/dist/rerender.ddd61b7c.js +206 -1
  95. package/dist/rerender.ddd61b7c.js.map +1 -1
  96. package/dist/resize-loop.309b1dac.js +206 -1
  97. package/dist/resize-loop.309b1dac.js.map +1 -1
  98. package/dist/resizing-items.c09b5e1b.js +206 -1
  99. package/dist/resizing-items.c09b5e1b.js.map +1 -1
  100. package/dist/scroll-into-view.39b77fe9.js +206 -1
  101. package/dist/scroll-into-view.39b77fe9.js.map +1 -1
  102. package/dist/scroll-seek-placeholder.69fb85c6.js +206 -1
  103. package/dist/scroll-seek-placeholder.69fb85c6.js.map +1 -1
  104. package/dist/scroll-to-index.e72249cf.js +206 -1
  105. package/dist/scroll-to-index.e72249cf.js.map +1 -1
  106. package/dist/scrollIntoViewSystem.d.ts +21 -21
  107. package/dist/scrollSeekSystem.d.ts +7 -7
  108. package/dist/scrollToIndexSystem.d.ts +2 -2
  109. package/dist/sizeRangeSystem.d.ts +3 -3
  110. package/dist/ssr.8f31b042.js +206 -1
  111. package/dist/ssr.8f31b042.js.map +1 -1
  112. package/dist/start-reached.2990ece7.js +206 -1
  113. package/dist/start-reached.2990ece7.js.map +1 -1
  114. package/dist/stateFlagsSystem.d.ts +8 -5
  115. package/dist/tall-item-reverse-scrolling.58bcd140.js +206 -1
  116. package/dist/tall-item-reverse-scrolling.58bcd140.js.map +1 -1
  117. package/dist/test-case-446.dce9595c.js +206 -1
  118. package/dist/test-case-446.dce9595c.js.map +1 -1
  119. package/dist/test-case-460.6d75ad1f.js +206 -1
  120. package/dist/test-case-460.6d75ad1f.js.map +1 -1
  121. package/dist/test-case-463.525f34ba.js +206 -1
  122. package/dist/test-case-463.525f34ba.js.map +1 -1
  123. package/dist/toggle-display-grouped.4f4ae058.js +206 -1
  124. package/dist/toggle-display-grouped.4f4ae058.js.map +1 -1
  125. package/dist/toggle.7047c23e.js +447 -0
  126. package/dist/toggle.7047c23e.js.map +1 -0
  127. package/dist/top-items.f724bf61.js +206 -1
  128. package/dist/top-items.f724bf61.js.map +1 -1
  129. package/dist/topItemCountSystem.d.ts +17 -17
  130. package/dist/totalListHeightSystem.d.ts +19 -19
  131. package/dist/upward-scroll.d49e0815.js +206 -1
  132. package/dist/upward-scroll.d49e0815.js.map +1 -1
  133. package/dist/upwardScrollFixSystem.d.ts +25 -25
  134. package/dist/window-grid.b22094fd.js +206 -1
  135. package/dist/window-grid.b22094fd.js.map +1 -1
  136. package/dist/window-scroller.a979c6d6.js +206 -1
  137. package/dist/window-scroller.a979c6d6.js.map +1 -1
  138. package/dist/windowScrollerSystem.d.ts +2 -2
  139. package/package.json +1 -1
@@ -8,10 +8,10 @@ export declare const upwardScrollFixSystem: u.SystemSpec<[u.SystemSpec<never[],
8
8
  viewportHeight: u.Stream<number>;
9
9
  headerHeight: u.StatefulStream<number>;
10
10
  footerHeight: u.StatefulStream<number>;
11
+ scrollHeight: u.Stream<number>;
11
12
  smoothScrollTargetReached: u.Stream<true>;
12
13
  scrollTo: u.Stream<ScrollToOptions>;
13
14
  scrollBy: u.Stream<ScrollToOptions>;
14
- scrollDirection: u.StatefulStream<import("./domIOSystem").ScrollDirection>;
15
15
  statefulScrollTop: u.StatefulStream<number>;
16
16
  deviation: u.StatefulStream<number>;
17
17
  scrollingInProgress: u.StatefulStream<boolean>;
@@ -20,22 +20,22 @@ export declare const upwardScrollFixSystem: u.SystemSpec<[u.SystemSpec<never[],
20
20
  viewportHeight: u.Stream<number>;
21
21
  headerHeight: u.StatefulStream<number>;
22
22
  footerHeight: u.StatefulStream<number>;
23
+ scrollHeight: u.Stream<number>;
23
24
  smoothScrollTargetReached: u.Stream<true>;
24
25
  scrollTo: u.Stream<ScrollToOptions>;
25
26
  scrollBy: u.Stream<ScrollToOptions>;
26
- scrollDirection: u.StatefulStream<import("./domIOSystem").ScrollDirection>;
27
27
  statefulScrollTop: u.StatefulStream<number>;
28
28
  deviation: u.StatefulStream<number>;
29
29
  scrollingInProgress: u.StatefulStream<boolean>;
30
- }>], ([{ scrollTop, viewportHeight, headerHeight, footerHeight }]: [{
30
+ }>], ([{ scrollTop, viewportHeight, headerHeight, footerHeight, scrollHeight }]: [{
31
31
  scrollTop: u.Stream<number>;
32
32
  viewportHeight: u.Stream<number>;
33
33
  headerHeight: u.StatefulStream<number>;
34
34
  footerHeight: u.StatefulStream<number>;
35
+ scrollHeight: u.Stream<number>;
35
36
  smoothScrollTargetReached: u.Stream<true>;
36
37
  scrollTo: u.Stream<ScrollToOptions>;
37
38
  scrollBy: u.Stream<ScrollToOptions>;
38
- scrollDirection: u.StatefulStream<import("./domIOSystem").ScrollDirection>;
39
39
  statefulScrollTop: u.StatefulStream<number>;
40
40
  deviation: u.StatefulStream<number>;
41
41
  scrollingInProgress: u.StatefulStream<boolean>;
@@ -46,7 +46,7 @@ export declare const upwardScrollFixSystem: u.SystemSpec<[u.SystemSpec<never[],
46
46
  atBottomState: u.Stream<import("./stateFlagsSystem").AtBottomState>;
47
47
  atTopStateChange: u.Stream<boolean>;
48
48
  atBottomStateChange: u.Stream<boolean>;
49
- listStateListener: u.Stream<import("./stateFlagsSystem").ListBottomInfo>;
49
+ scrollDirection: u.StatefulStream<import("./stateFlagsSystem").ScrollDirection>;
50
50
  }>, u.SystemSpec<[u.SystemSpec<[u.SystemSpec<never[], () => {
51
51
  log: u.StatefulStream<import("./loggerSystem").Log>;
52
52
  logLevel: u.StatefulStream<LogLevel>;
@@ -92,10 +92,10 @@ export declare const upwardScrollFixSystem: u.SystemSpec<[u.SystemSpec<never[],
92
92
  viewportHeight: u.Stream<number>;
93
93
  headerHeight: u.StatefulStream<number>;
94
94
  footerHeight: u.StatefulStream<number>;
95
+ scrollHeight: u.Stream<number>;
95
96
  smoothScrollTargetReached: u.Stream<true>;
96
97
  scrollTo: u.Stream<ScrollToOptions>;
97
98
  scrollBy: u.Stream<ScrollToOptions>;
98
- scrollDirection: u.StatefulStream<import("./domIOSystem").ScrollDirection>;
99
99
  statefulScrollTop: u.StatefulStream<number>;
100
100
  deviation: u.StatefulStream<number>;
101
101
  scrollingInProgress: u.StatefulStream<boolean>;
@@ -118,10 +118,10 @@ export declare const upwardScrollFixSystem: u.SystemSpec<[u.SystemSpec<never[],
118
118
  viewportHeight: u.Stream<number>;
119
119
  headerHeight: u.StatefulStream<number>;
120
120
  footerHeight: u.StatefulStream<number>;
121
+ scrollHeight: u.Stream<number>;
121
122
  smoothScrollTargetReached: u.Stream<true>;
122
123
  scrollTo: u.Stream<ScrollToOptions>;
123
124
  scrollBy: u.Stream<ScrollToOptions>;
124
- scrollDirection: u.StatefulStream<import("./domIOSystem").ScrollDirection>;
125
125
  statefulScrollTop: u.StatefulStream<number>;
126
126
  deviation: u.StatefulStream<number>;
127
127
  scrollingInProgress: u.StatefulStream<boolean>;
@@ -133,10 +133,10 @@ export declare const upwardScrollFixSystem: u.SystemSpec<[u.SystemSpec<never[],
133
133
  viewportHeight: u.Stream<number>;
134
134
  headerHeight: u.StatefulStream<number>;
135
135
  footerHeight: u.StatefulStream<number>;
136
+ scrollHeight: u.Stream<number>;
136
137
  smoothScrollTargetReached: u.Stream<true>;
137
138
  scrollTo: u.Stream<ScrollToOptions>;
138
139
  scrollBy: u.Stream<ScrollToOptions>;
139
- scrollDirection: u.StatefulStream<import("./domIOSystem").ScrollDirection>;
140
140
  statefulScrollTop: u.StatefulStream<number>;
141
141
  deviation: u.StatefulStream<number>;
142
142
  scrollingInProgress: u.StatefulStream<boolean>;
@@ -145,10 +145,10 @@ export declare const upwardScrollFixSystem: u.SystemSpec<[u.SystemSpec<never[],
145
145
  viewportHeight: u.Stream<number>;
146
146
  headerHeight: u.StatefulStream<number>;
147
147
  footerHeight: u.StatefulStream<number>;
148
+ scrollHeight: u.Stream<number>;
148
149
  smoothScrollTargetReached: u.Stream<true>;
149
150
  scrollTo: u.Stream<ScrollToOptions>;
150
151
  scrollBy: u.Stream<ScrollToOptions>;
151
- scrollDirection: u.StatefulStream<import("./domIOSystem").ScrollDirection>;
152
152
  statefulScrollTop: u.StatefulStream<number>;
153
153
  deviation: u.StatefulStream<number>;
154
154
  scrollingInProgress: u.StatefulStream<boolean>;
@@ -183,10 +183,10 @@ export declare const upwardScrollFixSystem: u.SystemSpec<[u.SystemSpec<never[],
183
183
  viewportHeight: u.Stream<number>;
184
184
  headerHeight: u.StatefulStream<number>;
185
185
  footerHeight: u.StatefulStream<number>;
186
+ scrollHeight: u.Stream<number>;
186
187
  smoothScrollTargetReached: u.Stream<true>;
187
188
  scrollTo: u.Stream<ScrollToOptions>;
188
189
  scrollBy: u.Stream<ScrollToOptions>;
189
- scrollDirection: u.StatefulStream<import("./domIOSystem").ScrollDirection>;
190
190
  statefulScrollTop: u.StatefulStream<number>;
191
191
  deviation: u.StatefulStream<number>;
192
192
  scrollingInProgress: u.StatefulStream<boolean>;
@@ -215,10 +215,10 @@ export declare const upwardScrollFixSystem: u.SystemSpec<[u.SystemSpec<never[],
215
215
  viewportHeight: u.Stream<number>;
216
216
  headerHeight: u.StatefulStream<number>;
217
217
  footerHeight: u.StatefulStream<number>;
218
+ scrollHeight: u.Stream<number>;
218
219
  smoothScrollTargetReached: u.Stream<true>;
219
220
  scrollTo: u.Stream<ScrollToOptions>;
220
221
  scrollBy: u.Stream<ScrollToOptions>;
221
- scrollDirection: u.StatefulStream<import("./domIOSystem").ScrollDirection>;
222
222
  statefulScrollTop: u.StatefulStream<number>;
223
223
  deviation: u.StatefulStream<number>;
224
224
  scrollingInProgress: u.StatefulStream<boolean>;
@@ -244,10 +244,10 @@ export declare const upwardScrollFixSystem: u.SystemSpec<[u.SystemSpec<never[],
244
244
  viewportHeight: u.Stream<number>;
245
245
  headerHeight: u.StatefulStream<number>;
246
246
  footerHeight: u.StatefulStream<number>;
247
+ scrollHeight: u.Stream<number>;
247
248
  smoothScrollTargetReached: u.Stream<true>;
248
249
  scrollTo: u.Stream<ScrollToOptions>;
249
250
  scrollBy: u.Stream<ScrollToOptions>;
250
- scrollDirection: u.StatefulStream<import("./domIOSystem").ScrollDirection>;
251
251
  statefulScrollTop: u.StatefulStream<number>;
252
252
  deviation: u.StatefulStream<number>;
253
253
  scrollingInProgress: u.StatefulStream<boolean>;
@@ -285,10 +285,10 @@ export declare const upwardScrollFixSystem: u.SystemSpec<[u.SystemSpec<never[],
285
285
  viewportHeight: u.Stream<number>;
286
286
  headerHeight: u.StatefulStream<number>;
287
287
  footerHeight: u.StatefulStream<number>;
288
+ scrollHeight: u.Stream<number>;
288
289
  smoothScrollTargetReached: u.Stream<true>;
289
290
  scrollTo: u.Stream<ScrollToOptions>;
290
291
  scrollBy: u.Stream<ScrollToOptions>;
291
- scrollDirection: u.StatefulStream<import("./domIOSystem").ScrollDirection>;
292
292
  statefulScrollTop: u.StatefulStream<number>;
293
293
  deviation: u.StatefulStream<number>;
294
294
  scrollingInProgress: u.StatefulStream<boolean>;
@@ -326,10 +326,10 @@ export declare const upwardScrollFixSystem: u.SystemSpec<[u.SystemSpec<never[],
326
326
  viewportHeight: u.Stream<number>;
327
327
  headerHeight: u.StatefulStream<number>;
328
328
  footerHeight: u.StatefulStream<number>;
329
+ scrollHeight: u.Stream<number>;
329
330
  smoothScrollTargetReached: u.Stream<true>;
330
331
  scrollTo: u.Stream<ScrollToOptions>;
331
332
  scrollBy: u.Stream<ScrollToOptions>;
332
- scrollDirection: u.StatefulStream<import("./domIOSystem").ScrollDirection>;
333
333
  statefulScrollTop: u.StatefulStream<number>;
334
334
  deviation: u.StatefulStream<number>;
335
335
  scrollingInProgress: u.StatefulStream<boolean>;
@@ -355,10 +355,10 @@ export declare const upwardScrollFixSystem: u.SystemSpec<[u.SystemSpec<never[],
355
355
  viewportHeight: u.Stream<number>;
356
356
  headerHeight: u.StatefulStream<number>;
357
357
  footerHeight: u.StatefulStream<number>;
358
+ scrollHeight: u.Stream<number>;
358
359
  smoothScrollTargetReached: u.Stream<true>;
359
360
  scrollTo: u.Stream<ScrollToOptions>;
360
361
  scrollBy: u.Stream<ScrollToOptions>;
361
- scrollDirection: u.StatefulStream<import("./domIOSystem").ScrollDirection>;
362
362
  statefulScrollTop: u.StatefulStream<number>;
363
363
  deviation: u.StatefulStream<number>;
364
364
  scrollingInProgress: u.StatefulStream<boolean>;
@@ -373,22 +373,22 @@ export declare const upwardScrollFixSystem: u.SystemSpec<[u.SystemSpec<never[],
373
373
  viewportHeight: u.Stream<number>;
374
374
  headerHeight: u.StatefulStream<number>;
375
375
  footerHeight: u.StatefulStream<number>;
376
+ scrollHeight: u.Stream<number>;
376
377
  smoothScrollTargetReached: u.Stream<true>;
377
378
  scrollTo: u.Stream<ScrollToOptions>;
378
379
  scrollBy: u.Stream<ScrollToOptions>;
379
- scrollDirection: u.StatefulStream<import("./domIOSystem").ScrollDirection>;
380
380
  statefulScrollTop: u.StatefulStream<number>;
381
381
  deviation: u.StatefulStream<number>;
382
382
  scrollingInProgress: u.StatefulStream<boolean>;
383
- }>], ([{ scrollTop, viewportHeight, headerHeight, footerHeight }]: [{
383
+ }>], ([{ scrollTop, viewportHeight, headerHeight, footerHeight, scrollHeight }]: [{
384
384
  scrollTop: u.Stream<number>;
385
385
  viewportHeight: u.Stream<number>;
386
386
  headerHeight: u.StatefulStream<number>;
387
387
  footerHeight: u.StatefulStream<number>;
388
+ scrollHeight: u.Stream<number>;
388
389
  smoothScrollTargetReached: u.Stream<true>;
389
390
  scrollTo: u.Stream<ScrollToOptions>;
390
391
  scrollBy: u.Stream<ScrollToOptions>;
391
- scrollDirection: u.StatefulStream<import("./domIOSystem").ScrollDirection>;
392
392
  statefulScrollTop: u.StatefulStream<number>;
393
393
  deviation: u.StatefulStream<number>;
394
394
  scrollingInProgress: u.StatefulStream<boolean>;
@@ -399,7 +399,7 @@ export declare const upwardScrollFixSystem: u.SystemSpec<[u.SystemSpec<never[],
399
399
  atBottomState: u.Stream<import("./stateFlagsSystem").AtBottomState>;
400
400
  atTopStateChange: u.Stream<boolean>;
401
401
  atBottomStateChange: u.Stream<boolean>;
402
- listStateListener: u.Stream<import("./stateFlagsSystem").ListBottomInfo>;
402
+ scrollDirection: u.StatefulStream<import("./stateFlagsSystem").ScrollDirection>;
403
403
  }>, u.SystemSpec<[u.SystemSpec<never[], () => {
404
404
  log: u.StatefulStream<import("./loggerSystem").Log>;
405
405
  logLevel: u.StatefulStream<LogLevel>;
@@ -445,7 +445,7 @@ export declare const upwardScrollFixSystem: u.SystemSpec<[u.SystemSpec<never[],
445
445
  atBottomState: u.Stream<import("./stateFlagsSystem").AtBottomState>;
446
446
  atTopStateChange: u.Stream<boolean>;
447
447
  atBottomStateChange: u.Stream<boolean>;
448
- listStateListener: u.Stream<import("./stateFlagsSystem").ListBottomInfo>;
448
+ scrollDirection: u.StatefulStream<import("./stateFlagsSystem").ScrollDirection>;
449
449
  }, {
450
450
  propsReady: u.StatefulStream<boolean>;
451
451
  didMount: u.Stream<boolean>;
@@ -456,7 +456,7 @@ export declare const upwardScrollFixSystem: u.SystemSpec<[u.SystemSpec<never[],
456
456
  atBottomState: u.Stream<import("./stateFlagsSystem").AtBottomState>;
457
457
  atTopStateChange: u.Stream<boolean>;
458
458
  atBottomStateChange: u.Stream<boolean>;
459
- listStateListener: u.Stream<import("./stateFlagsSystem").ListBottomInfo>;
459
+ scrollDirection: u.StatefulStream<import("./stateFlagsSystem").ScrollDirection>;
460
460
  listState: u.StatefulStream<import("./listStateSystem").ListState>;
461
461
  topItemsIndexes: u.StatefulStream<number[]>;
462
462
  endReached: u.Stream<number>;
@@ -486,15 +486,15 @@ export declare const upwardScrollFixSystem: u.SystemSpec<[u.SystemSpec<never[],
486
486
  }>, u.SystemSpec<never[], () => {
487
487
  log: u.StatefulStream<import("./loggerSystem").Log>;
488
488
  logLevel: u.StatefulStream<LogLevel>;
489
- }>], ([{ scrollBy, scrollTop, scrollDirection, deviation, scrollingInProgress }, { isScrolling }, { listState }, { beforeUnshiftWith, sizes }, { log },]: [{
489
+ }>], ([{ scrollBy, scrollTop, deviation, scrollingInProgress }, { isScrolling, isAtBottom, scrollDirection }, { listState }, { beforeUnshiftWith, sizes }, { log },]: [{
490
490
  scrollTop: u.Stream<number>;
491
491
  viewportHeight: u.Stream<number>;
492
492
  headerHeight: u.StatefulStream<number>;
493
493
  footerHeight: u.StatefulStream<number>;
494
+ scrollHeight: u.Stream<number>;
494
495
  smoothScrollTargetReached: u.Stream<true>;
495
496
  scrollTo: u.Stream<ScrollToOptions>;
496
497
  scrollBy: u.Stream<ScrollToOptions>;
497
- scrollDirection: u.StatefulStream<import("./domIOSystem").ScrollDirection>;
498
498
  statefulScrollTop: u.StatefulStream<number>;
499
499
  deviation: u.StatefulStream<number>;
500
500
  scrollingInProgress: u.StatefulStream<boolean>;
@@ -505,7 +505,7 @@ export declare const upwardScrollFixSystem: u.SystemSpec<[u.SystemSpec<never[],
505
505
  atBottomState: u.Stream<import("./stateFlagsSystem").AtBottomState>;
506
506
  atTopStateChange: u.Stream<boolean>;
507
507
  atBottomStateChange: u.Stream<boolean>;
508
- listStateListener: u.Stream<import("./stateFlagsSystem").ListBottomInfo>;
508
+ scrollDirection: u.StatefulStream<import("./stateFlagsSystem").ScrollDirection>;
509
509
  }, {
510
510
  isScrolling: u.Stream<boolean>;
511
511
  isAtTop: u.StatefulStream<boolean>;
@@ -513,7 +513,7 @@ export declare const upwardScrollFixSystem: u.SystemSpec<[u.SystemSpec<never[],
513
513
  atBottomState: u.Stream<import("./stateFlagsSystem").AtBottomState>;
514
514
  atTopStateChange: u.Stream<boolean>;
515
515
  atBottomStateChange: u.Stream<boolean>;
516
- listStateListener: u.Stream<import("./stateFlagsSystem").ListBottomInfo>;
516
+ scrollDirection: u.StatefulStream<import("./stateFlagsSystem").ScrollDirection>;
517
517
  listState: u.StatefulStream<import("./listStateSystem").ListState>;
518
518
  topItemsIndexes: u.StatefulStream<number[]>;
519
519
  endReached: u.Stream<number>;
@@ -231,4 +231,209 @@ function App() {
231
231
  }
232
232
  }));
233
233
  }
234
- },{"react":"../node_modules/react/index.js","../src":"../src/index.tsx","@emotion/styled":"../node_modules/@emotion/styled/dist/styled.browser.esm.js"}]},{},[], null)
234
+ },{"react":"../node_modules/react/index.js","../src":"../src/index.tsx","@emotion/styled":"../node_modules/@emotion/styled/dist/styled.browser.esm.js"}],"../node_modules/parcel-bundler/src/builtins/hmr-runtime.js":[function(require,module,exports) {
235
+ var global = arguments[3];
236
+ var OVERLAY_ID = '__parcel__error__overlay__';
237
+ var OldModule = module.bundle.Module;
238
+
239
+ function Module(moduleName) {
240
+ OldModule.call(this, moduleName);
241
+ this.hot = {
242
+ data: module.bundle.hotData,
243
+ _acceptCallbacks: [],
244
+ _disposeCallbacks: [],
245
+ accept: function (fn) {
246
+ this._acceptCallbacks.push(fn || function () {});
247
+ },
248
+ dispose: function (fn) {
249
+ this._disposeCallbacks.push(fn);
250
+ }
251
+ };
252
+ module.bundle.hotData = null;
253
+ }
254
+
255
+ module.bundle.Module = Module;
256
+ var checkedAssets, assetsToAccept;
257
+ var parent = module.bundle.parent;
258
+
259
+ if ((!parent || !parent.isParcelRequire) && typeof WebSocket !== 'undefined') {
260
+ var hostname = "" || location.hostname;
261
+ var protocol = location.protocol === 'https:' ? 'wss' : 'ws';
262
+ var ws = new WebSocket(protocol + '://' + hostname + ':' + "53802" + '/');
263
+
264
+ ws.onmessage = function (event) {
265
+ checkedAssets = {};
266
+ assetsToAccept = [];
267
+ var data = JSON.parse(event.data);
268
+
269
+ if (data.type === 'update') {
270
+ var handled = false;
271
+ data.assets.forEach(function (asset) {
272
+ if (!asset.isNew) {
273
+ var didAccept = hmrAcceptCheck(global.parcelRequire, asset.id);
274
+
275
+ if (didAccept) {
276
+ handled = true;
277
+ }
278
+ }
279
+ }); // Enable HMR for CSS by default.
280
+
281
+ handled = handled || data.assets.every(function (asset) {
282
+ return asset.type === 'css' && asset.generated.js;
283
+ });
284
+
285
+ if (handled) {
286
+ console.clear();
287
+ data.assets.forEach(function (asset) {
288
+ hmrApply(global.parcelRequire, asset);
289
+ });
290
+ assetsToAccept.forEach(function (v) {
291
+ hmrAcceptRun(v[0], v[1]);
292
+ });
293
+ } else if (location.reload) {
294
+ // `location` global exists in a web worker context but lacks `.reload()` function.
295
+ location.reload();
296
+ }
297
+ }
298
+
299
+ if (data.type === 'reload') {
300
+ ws.close();
301
+
302
+ ws.onclose = function () {
303
+ location.reload();
304
+ };
305
+ }
306
+
307
+ if (data.type === 'error-resolved') {
308
+ console.log('[parcel] ✨ Error resolved');
309
+ removeErrorOverlay();
310
+ }
311
+
312
+ if (data.type === 'error') {
313
+ console.error('[parcel] 🚨 ' + data.error.message + '\n' + data.error.stack);
314
+ removeErrorOverlay();
315
+ var overlay = createErrorOverlay(data);
316
+ document.body.appendChild(overlay);
317
+ }
318
+ };
319
+ }
320
+
321
+ function removeErrorOverlay() {
322
+ var overlay = document.getElementById(OVERLAY_ID);
323
+
324
+ if (overlay) {
325
+ overlay.remove();
326
+ }
327
+ }
328
+
329
+ function createErrorOverlay(data) {
330
+ var overlay = document.createElement('div');
331
+ overlay.id = OVERLAY_ID; // html encode message and stack trace
332
+
333
+ var message = document.createElement('div');
334
+ var stackTrace = document.createElement('pre');
335
+ message.innerText = data.error.message;
336
+ stackTrace.innerText = data.error.stack;
337
+ overlay.innerHTML = '<div style="background: black; font-size: 16px; color: white; position: fixed; height: 100%; width: 100%; top: 0px; left: 0px; padding: 30px; opacity: 0.85; font-family: Menlo, Consolas, monospace; z-index: 9999;">' + '<span style="background: red; padding: 2px 4px; border-radius: 2px;">ERROR</span>' + '<span style="top: 2px; margin-left: 5px; position: relative;">🚨</span>' + '<div style="font-size: 18px; font-weight: bold; margin-top: 20px;">' + message.innerHTML + '</div>' + '<pre>' + stackTrace.innerHTML + '</pre>' + '</div>';
338
+ return overlay;
339
+ }
340
+
341
+ function getParents(bundle, id) {
342
+ var modules = bundle.modules;
343
+
344
+ if (!modules) {
345
+ return [];
346
+ }
347
+
348
+ var parents = [];
349
+ var k, d, dep;
350
+
351
+ for (k in modules) {
352
+ for (d in modules[k][1]) {
353
+ dep = modules[k][1][d];
354
+
355
+ if (dep === id || Array.isArray(dep) && dep[dep.length - 1] === id) {
356
+ parents.push(k);
357
+ }
358
+ }
359
+ }
360
+
361
+ if (bundle.parent) {
362
+ parents = parents.concat(getParents(bundle.parent, id));
363
+ }
364
+
365
+ return parents;
366
+ }
367
+
368
+ function hmrApply(bundle, asset) {
369
+ var modules = bundle.modules;
370
+
371
+ if (!modules) {
372
+ return;
373
+ }
374
+
375
+ if (modules[asset.id] || !bundle.parent) {
376
+ var fn = new Function('require', 'module', 'exports', asset.generated.js);
377
+ asset.isNew = !modules[asset.id];
378
+ modules[asset.id] = [fn, asset.deps];
379
+ } else if (bundle.parent) {
380
+ hmrApply(bundle.parent, asset);
381
+ }
382
+ }
383
+
384
+ function hmrAcceptCheck(bundle, id) {
385
+ var modules = bundle.modules;
386
+
387
+ if (!modules) {
388
+ return;
389
+ }
390
+
391
+ if (!modules[id] && bundle.parent) {
392
+ return hmrAcceptCheck(bundle.parent, id);
393
+ }
394
+
395
+ if (checkedAssets[id]) {
396
+ return;
397
+ }
398
+
399
+ checkedAssets[id] = true;
400
+ var cached = bundle.cache[id];
401
+ assetsToAccept.push([bundle, id]);
402
+
403
+ if (cached && cached.hot && cached.hot._acceptCallbacks.length) {
404
+ return true;
405
+ }
406
+
407
+ return getParents(global.parcelRequire, id).some(function (id) {
408
+ return hmrAcceptCheck(global.parcelRequire, id);
409
+ });
410
+ }
411
+
412
+ function hmrAcceptRun(bundle, id) {
413
+ var cached = bundle.cache[id];
414
+ bundle.hotData = {};
415
+
416
+ if (cached) {
417
+ cached.hot.data = bundle.hotData;
418
+ }
419
+
420
+ if (cached && cached.hot && cached.hot._disposeCallbacks.length) {
421
+ cached.hot._disposeCallbacks.forEach(function (cb) {
422
+ cb(bundle.hotData);
423
+ });
424
+ }
425
+
426
+ delete bundle.cache[id];
427
+ bundle(id);
428
+ cached = bundle.cache[id];
429
+
430
+ if (cached && cached.hot && cached.hot._acceptCallbacks.length) {
431
+ cached.hot._acceptCallbacks.forEach(function (cb) {
432
+ cb();
433
+ });
434
+
435
+ return true;
436
+ }
437
+ }
438
+ },{}]},{},["../node_modules/parcel-bundler/src/builtins/hmr-runtime.js"], null)
439
+ //# sourceMappingURL=/window-grid.b22094fd.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["window-grid.tsx"],"names":[],"mappings":";;;;;;;AAAA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,IAAM,aAAa,GAAG,gBAAO,GAAV,mBAAnB;;AAqBA,IAAM,WAAW,GAAG,gBAAO,GAAV,oBAAjB;;AAUA,IAAM,aAAa,GAAG,gBAAO,GAAV,oBAAnB;;AAKc,SAAU,GAAV,GAAa;AACzB,MAAM,GAAG,GAAG,KAAK,CAAC,SAAN,EAAZ;AAEA,SACE,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,IAAA,KAAK,EAAE;AAAE,MAAA,OAAO,EAAE;AAAX;AAAZ,GAAA,EACE,KAAA,CAAA,aAAA,CAAA,QAAA,EAAA;AAAQ,IAAA,EAAE,EAAC,UAAX;AAAsB,IAAA,OAAO,EAAE;AAAA,aAAM,GAAG,CAAC,OAAJ,CAAa,aAAb,CAA2B;AAAE,QAAA,KAAK,EAAE,EAAT;AAAa,QAAA,KAAK,EAAE;AAApB,OAA3B,CAAN;AAAA;AAA/B,GAAA,EAA8F,UAA9F,CADF,EAIE,KAAA,CAAA,aAAA,CAAA,QAAA,EAAA;AAAQ,IAAA,EAAE,EAAC,WAAX;AAAuB,IAAA,OAAO,EAAE;AAAA,aAAM,GAAG,CAAC,OAAJ,CAAa,aAAb,CAA2B;AAAE,QAAA,KAAK,EAAE,EAAT;AAAa,QAAA,KAAK,EAAE;AAApB,OAA3B,CAAN;AAAA;AAAhC,GAAA,EAAgG,WAAhG,CAJF,EAOE,KAAA,CAAA,aAAA,CAAA,QAAA,EAAA;AAAQ,IAAA,EAAE,EAAC,QAAX;AAAoB,IAAA,OAAO,EAAE;AAAA,aAAM,GAAG,CAAC,OAAJ,CAAa,aAAb,CAA2B;AAAE,QAAA,KAAK,EAAE,EAAT;AAAa,QAAA,KAAK,EAAE;AAApB,OAA3B,CAAN;AAAA;AAA7B,GAAA,EAA0F,QAA1F,CAPF,EAUE,KAAA,CAAA,aAAA,CAAC,iBAAD,EAAa;AACX,IAAA,eAAe,EAAA,IADJ;AAEX,IAAA,GAAG,EAAE,GAFM;AAGX,IAAA,UAAU,EAAE;AACV,MAAA,IAAI,EAAE,aADI;AAEV,MAAA,IAAI,EAAE,aAFI;AAGV,MAAA,qBAAqB,EAAE;AAAA,eACrB,KAAA,CAAA,aAAA,CAAC,aAAD,EAAc,IAAd,EACE,KAAA,CAAA,aAAA,CAAC,WAAD,EAAY,IAAZ,EAAY,aAAZ,CADF,CADqB;AAAA;AAHb,KAHD;AAYX,IAAA,UAAU,EAAE,IAZD;AAaX,IAAA,YAAY,EAAE;AAAA,aAAM,OAAO,CAAC,GAAR,CAAY,eAAZ,CAAN;AAAA,KAbH;AAcX,IAAA,UAAU,EAAE;AAAA,aAAM,OAAO,CAAC,GAAR,CAAY,aAAZ,CAAN;AAAA,KAdD;AAeX,IAAA,WAAW,EAAE,qBAAC,KAAD;AAAA,aAAW,KAAA,CAAA,aAAA,CAAC,WAAD,EAAY,IAAZ,SAAA,EAAmB,KAAnB,CAAX;AAAA,KAfF;AAgBX,IAAA,KAAK,EAAE;AAAE,MAAA,MAAM,EAAE,GAAV;AAAe,MAAA,KAAK,EAAE;AAAtB;AAhBI,GAAb,CAVF,CADF;AA+BD","file":"window-grid.b22094fd.js","sourceRoot":"../e2e","sourcesContent":["import * as React from 'react'\nimport { VirtuosoGrid, VirtuosoGridHandle, GridComponents } from '../src'\nimport styled from '@emotion/styled'\n\nconst ItemContainer = styled.div`\n box-sizing: border-box;\n padding: 5px;\n width: 25%;\n background: #f5f5f5;\n display: flex;\n flex: none;\n align-content: stretch;\n @media (max-width: 1024px) {\n width: 33%;\n }\n\n @media (max-width: 768px) {\n width: 50%;\n }\n\n @media (max-width: 480px) {\n width: 100%;\n }\n`\n\nconst ItemWrapper = styled.div`\n flex: 1;\n text-align: center;\n font-size: 80%;\n padding: 20px;\n box-shadow: 0 5px 6px -6px #777;\n background: white;\n }\n`\n\nconst ListContainer = styled.div`\n display: flex;\n flex-wrap: wrap;\n` as GridComponents['List']\n\nexport default function App() {\n const ref = React.createRef<VirtuosoGridHandle>()\n\n return (\n <div style={{ padding: '100px' }}>\n <button id=\"start-30\" onClick={() => ref.current!.scrollToIndex({ index: 30, align: 'start' })}>\n Start 30\n </button>\n <button id=\"center-50\" onClick={() => ref.current!.scrollToIndex({ index: 50, align: 'center' })}>\n Center 50\n </button>\n <button id=\"end-99\" onClick={() => ref.current!.scrollToIndex({ index: 99, align: 'end' })}>\n End 99\n </button>\n <VirtuosoGrid\n useWindowScroll\n ref={ref}\n components={{\n Item: ItemContainer,\n List: ListContainer,\n ScrollSeekPlaceholder: () => (\n <ItemContainer>\n <ItemWrapper>Placeholder</ItemWrapper>\n </ItemContainer>\n ),\n }}\n totalCount={1000}\n startReached={() => console.log('start reached')}\n endReached={() => console.log('end reached')}\n itemContent={(index) => <ItemWrapper>Item {index}</ItemWrapper>}\n style={{ height: 300, width: '100%' }}\n />\n </div>\n )\n}\n"]}
1
+ {"version":3,"sources":["window-grid.tsx","../node_modules/parcel-bundler/src/builtins/hmr-runtime.js"],"names":["OVERLAY_ID","OldModule","module","bundle","Module","moduleName","call","hot","data","hotData","_acceptCallbacks","_disposeCallbacks","accept","fn","push","dispose","checkedAssets","assetsToAccept","parent","isParcelRequire","WebSocket","hostname","location","protocol","ws","onmessage","event","JSON","parse","type","handled","assets","forEach","asset","isNew","didAccept","hmrAcceptCheck","global","parcelRequire","id","every","generated","js","console","clear","hmrApply","v","hmrAcceptRun","reload","close","onclose","log","removeErrorOverlay","error","message","stack","overlay","createErrorOverlay","document","body","appendChild","getElementById","remove","createElement","stackTrace","innerText","innerHTML","getParents","modules","parents","k","d","dep","Array","isArray","length","concat","Function","deps","cached","cache","some","cb"],"mappings":"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","file":"window-grid.b22094fd.js","sourceRoot":"../e2e","sourcesContent":["import * as React from 'react'\nimport { VirtuosoGrid, VirtuosoGridHandle, GridComponents } from '../src'\nimport styled from '@emotion/styled'\n\nconst ItemContainer = styled.div`\n box-sizing: border-box;\n padding: 5px;\n width: 25%;\n background: #f5f5f5;\n display: flex;\n flex: none;\n align-content: stretch;\n @media (max-width: 1024px) {\n width: 33%;\n }\n\n @media (max-width: 768px) {\n width: 50%;\n }\n\n @media (max-width: 480px) {\n width: 100%;\n }\n`\n\nconst ItemWrapper = styled.div`\n flex: 1;\n text-align: center;\n font-size: 80%;\n padding: 20px;\n box-shadow: 0 5px 6px -6px #777;\n background: white;\n }\n`\n\nconst ListContainer = styled.div`\n display: flex;\n flex-wrap: wrap;\n` as GridComponents['List']\n\nexport default function App() {\n const ref = React.createRef<VirtuosoGridHandle>()\n\n return (\n <div style={{ padding: '100px' }}>\n <button id=\"start-30\" onClick={() => ref.current!.scrollToIndex({ index: 30, align: 'start' })}>\n Start 30\n </button>\n <button id=\"center-50\" onClick={() => ref.current!.scrollToIndex({ index: 50, align: 'center' })}>\n Center 50\n </button>\n <button id=\"end-99\" onClick={() => ref.current!.scrollToIndex({ index: 99, align: 'end' })}>\n End 99\n </button>\n <VirtuosoGrid\n useWindowScroll\n ref={ref}\n components={{\n Item: ItemContainer,\n List: ListContainer,\n ScrollSeekPlaceholder: () => (\n <ItemContainer>\n <ItemWrapper>Placeholder</ItemWrapper>\n </ItemContainer>\n ),\n }}\n totalCount={1000}\n startReached={() => console.log('start reached')}\n endReached={() => console.log('end reached')}\n itemContent={(index) => <ItemWrapper>Item {index}</ItemWrapper>}\n style={{ height: 300, width: '100%' }}\n />\n </div>\n )\n}\n","var OVERLAY_ID = '__parcel__error__overlay__';\n\nvar OldModule = module.bundle.Module;\n\nfunction Module(moduleName) {\n OldModule.call(this, moduleName);\n this.hot = {\n data: module.bundle.hotData,\n _acceptCallbacks: [],\n _disposeCallbacks: [],\n accept: function (fn) {\n this._acceptCallbacks.push(fn || function () {});\n },\n dispose: function (fn) {\n this._disposeCallbacks.push(fn);\n }\n };\n\n module.bundle.hotData = null;\n}\n\nmodule.bundle.Module = Module;\nvar checkedAssets, assetsToAccept;\n\nvar parent = module.bundle.parent;\nif ((!parent || !parent.isParcelRequire) && typeof WebSocket !== 'undefined') {\n var hostname = process.env.HMR_HOSTNAME || location.hostname;\n var protocol = location.protocol === 'https:' ? 'wss' : 'ws';\n var ws = new WebSocket(protocol + '://' + hostname + ':' + process.env.HMR_PORT + '/');\n ws.onmessage = function(event) {\n checkedAssets = {};\n assetsToAccept = [];\n\n var data = JSON.parse(event.data);\n\n if (data.type === 'update') {\n var handled = false;\n data.assets.forEach(function(asset) {\n if (!asset.isNew) {\n var didAccept = hmrAcceptCheck(global.parcelRequire, asset.id);\n if (didAccept) {\n handled = true;\n }\n }\n });\n\n // Enable HMR for CSS by default.\n handled = handled || data.assets.every(function(asset) {\n return asset.type === 'css' && asset.generated.js;\n });\n\n if (handled) {\n console.clear();\n\n data.assets.forEach(function (asset) {\n hmrApply(global.parcelRequire, asset);\n });\n\n assetsToAccept.forEach(function (v) {\n hmrAcceptRun(v[0], v[1]);\n });\n } else if (location.reload) { // `location` global exists in a web worker context but lacks `.reload()` function.\n location.reload();\n }\n }\n\n if (data.type === 'reload') {\n ws.close();\n ws.onclose = function () {\n location.reload();\n }\n }\n\n if (data.type === 'error-resolved') {\n console.log('[parcel] ✨ Error resolved');\n\n removeErrorOverlay();\n }\n\n if (data.type === 'error') {\n console.error('[parcel] 🚨 ' + data.error.message + '\\n' + data.error.stack);\n\n removeErrorOverlay();\n\n var overlay = createErrorOverlay(data);\n document.body.appendChild(overlay);\n }\n };\n}\n\nfunction removeErrorOverlay() {\n var overlay = document.getElementById(OVERLAY_ID);\n if (overlay) {\n overlay.remove();\n }\n}\n\nfunction createErrorOverlay(data) {\n var overlay = document.createElement('div');\n overlay.id = OVERLAY_ID;\n\n // html encode message and stack trace\n var message = document.createElement('div');\n var stackTrace = document.createElement('pre');\n message.innerText = data.error.message;\n stackTrace.innerText = data.error.stack;\n\n overlay.innerHTML = (\n '<div style=\"background: black; font-size: 16px; color: white; position: fixed; height: 100%; width: 100%; top: 0px; left: 0px; padding: 30px; opacity: 0.85; font-family: Menlo, Consolas, monospace; z-index: 9999;\">' +\n '<span style=\"background: red; padding: 2px 4px; border-radius: 2px;\">ERROR</span>' +\n '<span style=\"top: 2px; margin-left: 5px; position: relative;\">🚨</span>' +\n '<div style=\"font-size: 18px; font-weight: bold; margin-top: 20px;\">' + message.innerHTML + '</div>' +\n '<pre>' + stackTrace.innerHTML + '</pre>' +\n '</div>'\n );\n\n return overlay;\n\n}\n\nfunction getParents(bundle, id) {\n var modules = bundle.modules;\n if (!modules) {\n return [];\n }\n\n var parents = [];\n var k, d, dep;\n\n for (k in modules) {\n for (d in modules[k][1]) {\n dep = modules[k][1][d];\n if (dep === id || (Array.isArray(dep) && dep[dep.length - 1] === id)) {\n parents.push(k);\n }\n }\n }\n\n if (bundle.parent) {\n parents = parents.concat(getParents(bundle.parent, id));\n }\n\n return parents;\n}\n\nfunction hmrApply(bundle, asset) {\n var modules = bundle.modules;\n if (!modules) {\n return;\n }\n\n if (modules[asset.id] || !bundle.parent) {\n var fn = new Function('require', 'module', 'exports', asset.generated.js);\n asset.isNew = !modules[asset.id];\n modules[asset.id] = [fn, asset.deps];\n } else if (bundle.parent) {\n hmrApply(bundle.parent, asset);\n }\n}\n\nfunction hmrAcceptCheck(bundle, id) {\n var modules = bundle.modules;\n if (!modules) {\n return;\n }\n\n if (!modules[id] && bundle.parent) {\n return hmrAcceptCheck(bundle.parent, id);\n }\n\n if (checkedAssets[id]) {\n return;\n }\n checkedAssets[id] = true;\n\n var cached = bundle.cache[id];\n\n assetsToAccept.push([bundle, id]);\n\n if (cached && cached.hot && cached.hot._acceptCallbacks.length) {\n return true;\n }\n\n return getParents(global.parcelRequire, id).some(function (id) {\n return hmrAcceptCheck(global.parcelRequire, id)\n });\n}\n\nfunction hmrAcceptRun(bundle, id) {\n var cached = bundle.cache[id];\n bundle.hotData = {};\n if (cached) {\n cached.hot.data = bundle.hotData;\n }\n\n if (cached && cached.hot && cached.hot._disposeCallbacks.length) {\n cached.hot._disposeCallbacks.forEach(function (cb) {\n cb(bundle.hotData);\n });\n }\n\n delete bundle.cache[id];\n bundle(id);\n\n cached = bundle.cache[id];\n if (cached && cached.hot && cached.hot._acceptCallbacks.length) {\n cached.hot._acceptCallbacks.forEach(function (cb) {\n cb();\n });\n return true;\n }\n}\n"]}