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
@@ -222,4 +222,209 @@ function App() {
222
222
  }
223
223
  }));
224
224
  }
225
- },{"react":"../node_modules/react/index.js","../src":"../src/index.tsx"}]},{},[], null)
225
+ },{"react":"../node_modules/react/index.js","../src":"../src/index.tsx"}],"../node_modules/parcel-bundler/src/builtins/hmr-runtime.js":[function(require,module,exports) {
226
+ var global = arguments[3];
227
+ var OVERLAY_ID = '__parcel__error__overlay__';
228
+ var OldModule = module.bundle.Module;
229
+
230
+ function Module(moduleName) {
231
+ OldModule.call(this, moduleName);
232
+ this.hot = {
233
+ data: module.bundle.hotData,
234
+ _acceptCallbacks: [],
235
+ _disposeCallbacks: [],
236
+ accept: function (fn) {
237
+ this._acceptCallbacks.push(fn || function () {});
238
+ },
239
+ dispose: function (fn) {
240
+ this._disposeCallbacks.push(fn);
241
+ }
242
+ };
243
+ module.bundle.hotData = null;
244
+ }
245
+
246
+ module.bundle.Module = Module;
247
+ var checkedAssets, assetsToAccept;
248
+ var parent = module.bundle.parent;
249
+
250
+ if ((!parent || !parent.isParcelRequire) && typeof WebSocket !== 'undefined') {
251
+ var hostname = "" || location.hostname;
252
+ var protocol = location.protocol === 'https:' ? 'wss' : 'ws';
253
+ var ws = new WebSocket(protocol + '://' + hostname + ':' + "53802" + '/');
254
+
255
+ ws.onmessage = function (event) {
256
+ checkedAssets = {};
257
+ assetsToAccept = [];
258
+ var data = JSON.parse(event.data);
259
+
260
+ if (data.type === 'update') {
261
+ var handled = false;
262
+ data.assets.forEach(function (asset) {
263
+ if (!asset.isNew) {
264
+ var didAccept = hmrAcceptCheck(global.parcelRequire, asset.id);
265
+
266
+ if (didAccept) {
267
+ handled = true;
268
+ }
269
+ }
270
+ }); // Enable HMR for CSS by default.
271
+
272
+ handled = handled || data.assets.every(function (asset) {
273
+ return asset.type === 'css' && asset.generated.js;
274
+ });
275
+
276
+ if (handled) {
277
+ console.clear();
278
+ data.assets.forEach(function (asset) {
279
+ hmrApply(global.parcelRequire, asset);
280
+ });
281
+ assetsToAccept.forEach(function (v) {
282
+ hmrAcceptRun(v[0], v[1]);
283
+ });
284
+ } else if (location.reload) {
285
+ // `location` global exists in a web worker context but lacks `.reload()` function.
286
+ location.reload();
287
+ }
288
+ }
289
+
290
+ if (data.type === 'reload') {
291
+ ws.close();
292
+
293
+ ws.onclose = function () {
294
+ location.reload();
295
+ };
296
+ }
297
+
298
+ if (data.type === 'error-resolved') {
299
+ console.log('[parcel] ✨ Error resolved');
300
+ removeErrorOverlay();
301
+ }
302
+
303
+ if (data.type === 'error') {
304
+ console.error('[parcel] 🚨 ' + data.error.message + '\n' + data.error.stack);
305
+ removeErrorOverlay();
306
+ var overlay = createErrorOverlay(data);
307
+ document.body.appendChild(overlay);
308
+ }
309
+ };
310
+ }
311
+
312
+ function removeErrorOverlay() {
313
+ var overlay = document.getElementById(OVERLAY_ID);
314
+
315
+ if (overlay) {
316
+ overlay.remove();
317
+ }
318
+ }
319
+
320
+ function createErrorOverlay(data) {
321
+ var overlay = document.createElement('div');
322
+ overlay.id = OVERLAY_ID; // html encode message and stack trace
323
+
324
+ var message = document.createElement('div');
325
+ var stackTrace = document.createElement('pre');
326
+ message.innerText = data.error.message;
327
+ stackTrace.innerText = data.error.stack;
328
+ 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>';
329
+ return overlay;
330
+ }
331
+
332
+ function getParents(bundle, id) {
333
+ var modules = bundle.modules;
334
+
335
+ if (!modules) {
336
+ return [];
337
+ }
338
+
339
+ var parents = [];
340
+ var k, d, dep;
341
+
342
+ for (k in modules) {
343
+ for (d in modules[k][1]) {
344
+ dep = modules[k][1][d];
345
+
346
+ if (dep === id || Array.isArray(dep) && dep[dep.length - 1] === id) {
347
+ parents.push(k);
348
+ }
349
+ }
350
+ }
351
+
352
+ if (bundle.parent) {
353
+ parents = parents.concat(getParents(bundle.parent, id));
354
+ }
355
+
356
+ return parents;
357
+ }
358
+
359
+ function hmrApply(bundle, asset) {
360
+ var modules = bundle.modules;
361
+
362
+ if (!modules) {
363
+ return;
364
+ }
365
+
366
+ if (modules[asset.id] || !bundle.parent) {
367
+ var fn = new Function('require', 'module', 'exports', asset.generated.js);
368
+ asset.isNew = !modules[asset.id];
369
+ modules[asset.id] = [fn, asset.deps];
370
+ } else if (bundle.parent) {
371
+ hmrApply(bundle.parent, asset);
372
+ }
373
+ }
374
+
375
+ function hmrAcceptCheck(bundle, id) {
376
+ var modules = bundle.modules;
377
+
378
+ if (!modules) {
379
+ return;
380
+ }
381
+
382
+ if (!modules[id] && bundle.parent) {
383
+ return hmrAcceptCheck(bundle.parent, id);
384
+ }
385
+
386
+ if (checkedAssets[id]) {
387
+ return;
388
+ }
389
+
390
+ checkedAssets[id] = true;
391
+ var cached = bundle.cache[id];
392
+ assetsToAccept.push([bundle, id]);
393
+
394
+ if (cached && cached.hot && cached.hot._acceptCallbacks.length) {
395
+ return true;
396
+ }
397
+
398
+ return getParents(global.parcelRequire, id).some(function (id) {
399
+ return hmrAcceptCheck(global.parcelRequire, id);
400
+ });
401
+ }
402
+
403
+ function hmrAcceptRun(bundle, id) {
404
+ var cached = bundle.cache[id];
405
+ bundle.hotData = {};
406
+
407
+ if (cached) {
408
+ cached.hot.data = bundle.hotData;
409
+ }
410
+
411
+ if (cached && cached.hot && cached.hot._disposeCallbacks.length) {
412
+ cached.hot._disposeCallbacks.forEach(function (cb) {
413
+ cb(bundle.hotData);
414
+ });
415
+ }
416
+
417
+ delete bundle.cache[id];
418
+ bundle(id);
419
+ cached = bundle.cache[id];
420
+
421
+ if (cached && cached.hot && cached.hot._acceptCallbacks.length) {
422
+ cached.hot._acceptCallbacks.forEach(function (cb) {
423
+ cb();
424
+ });
425
+
426
+ return true;
427
+ }
428
+ }
429
+ },{}]},{},["../node_modules/parcel-bundler/src/builtins/hmr-runtime.js"], null)
430
+ //# sourceMappingURL=/follow-output.4e36fca8.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["follow-output.tsx"],"names":[],"mappings":";;;;;;;AAAA;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;AAEc,SAAU,GAAV,GAAa;AAAA,kBACC,oBAAS,GAAT,CADD;AAAA;AAAA,MAClB,KADkB;AAAA,MACX,QADW;;AAEzB,MAAM,cAAc,GAAG,mBAAvB;;AAFyB,mBAGW,oBAAS,GAAT,CAHX;AAAA;AAAA,MAGlB,UAHkB;AAAA,MAGN,aAHM;;AAAA,mBAIa,oBAAiC,EAAjC,CAJb;AAAA;AAAA,MAIlB,WAJkB;AAAA,MAIL,cAJK;;AAKzB,MAAM,WAAW,GAAG,uBAClB,UAAC,KAAD,EAAkB;AAAA;;AAChB,QAAM,MAAM,yBAAG,WAAW,CAAC,KAAD,CAAd,mEAA0B,KAAK,GAAG,CAAR,GAAY,EAAZ,GAAiB,EAAvD;AACA,WACE,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,MAAA,KAAK,EAAE;AAAE,QAAA,MAAM,EAAN,MAAF;AAAU,QAAA,UAAU,EAAE;AAAtB;AAAZ,KAAA,SAAA,EACQ,KADR,EAEE,KAAA,CAAA,aAAA,CAAA,QAAA,EAAA;AACE,MAAA,OAAO,EAAE,mBAAK;AACZ,QAAA,cAAc,CAAC,UAAC,OAAD,EAAY;AACzB,iDACK,OADL,2BAEG,KAFH,EAEW,GAFX;AAID,SALa,CAAd;AAMD;AARH,KAAA,EAQG,GARH,CAFF,CADF;AAiBD,GApBiB,EAqBlB,CAAC,WAAD,EAAc,cAAd,CArBkB,CAApB;AAwBA,SACE,KAAA,CAAA,aAAA,CAAA,KAAA,CAAA,QAAA,EAAA,IAAA,EACE,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,IAAA,EACE,KAAA,CAAA,aAAA,CAAA,QAAA,EAAA;AAAQ,IAAA,OAAO,EAAE;AAAA,aAAM,QAAQ,CAAC,UAAC,KAAD;AAAA,eAAW,KAAK,GAAG,CAAnB;AAAA,OAAD,CAAd;AAAA;AAAjB,GAAA,EAAqD,cAArD,CADF,MAAA,EACiF,GADjF,EAEE,KAAA,CAAA,aAAA,CAAA,QAAA,EAAA;AAAQ,IAAA,OAAO,EAAE;AAAA,aAAM,aAAa,CAAC,UAAC,MAAD;AAAA,eAAY,MAAM,GAAG,EAArB;AAAA,OAAD,CAAnB;AAAA;AAAjB,GAAA,EAA6D,oBAA7D,CAFF,MAAA,EAE+F,GAF/F,EAGE,KAAA,CAAA,aAAA,CAAA,QAAA,EAAA;AAAQ,IAAA,OAAO,EAAE;AAAA,aAAM,aAAa,CAAC,UAAC,MAAD;AAAA,eAAY,MAAM,GAAG,EAArB;AAAA,OAAD,CAAnB;AAAA;AAAjB,GAAA,EAA6D,oBAA7D,CAHF,CADF,EAME,KAAA,CAAA,aAAA,CAAC,aAAD,EAAS;AACP,IAAA,UAAU,EAAE,KADL;AAEP,IAAA,uBAAuB,EAAE,EAFlB;AAGP,IAAA,YAAY,EAAE,QAHP;AAIP,IAAA,WAAW,EAAE,WAJN;AAKP,IAAA,KAAK,EAAE;AAAE,MAAA,MAAM,EAAE;AAAV,KALA;AAMP,IAAA,mBAAmB,EAAE,6BAAC,QAAD,EAAa;AAChC,MAAA,aAAa,CAAC,cAAc,CAAC,OAAhB,CAAb;;AACA,UAAI,QAAJ,EAAc;AACZ,QAAA,cAAc,CAAC,OAAf,GAAyB,WAAW,CAAC,YAAK,CACxC;AACD,SAFmC,EAEjC,GAFiC,CAApC;AAGD;AACF;AAbM,GAAT,CANF,CADF;AAwBD","file":"follow-output.4e36fca8.js","sourceRoot":"../e2e","sourcesContent":["import * as React from 'react'\nimport { useState, useRef, useCallback } from 'react'\nimport { Virtuoso } from '../src'\n\nexport default function App() {\n const [count, setCount] = useState(100)\n const appendInterval = useRef<NodeJS.Timeout>()\n const [listHeight, setListHeight] = useState(300)\n const [itemHeights, setItemHeights] = useState<Record<number, number>>({})\n const itemContent = useCallback(\n (index: number) => {\n const height = itemHeights[index] ?? (index % 2 ? 30 : 40)\n return (\n <div style={{ height, background: 'white' }}>\n Item {index}\n <button\n onClick={() => {\n setItemHeights((heights) => {\n return {\n ...heights,\n [index]: 160,\n }\n })\n }}\n >\n *\n </button>\n </div>\n )\n },\n [itemHeights, setItemHeights]\n )\n\n return (\n <>\n <div>\n <button onClick={() => setCount((count) => count + 4)}>Append Items</button> |{' '}\n <button onClick={() => setListHeight((height) => height + 40)}>Increase container</button> |{' '}\n <button onClick={() => setListHeight((height) => height - 40)}>Decrease container</button>\n </div>\n <Virtuoso\n totalCount={count}\n initialTopMostItemIndex={99}\n followOutput={'smooth'}\n itemContent={itemContent}\n style={{ height: listHeight }}\n atBottomStateChange={(atBottom) => {\n clearInterval(appendInterval.current!)\n if (atBottom) {\n appendInterval.current = setInterval(() => {\n // setCount((count) => count + 3)\n }, 100)\n }\n }}\n />\n </>\n )\n}\n"]}
1
+ {"version":3,"sources":["follow-output.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":"follow-output.4e36fca8.js","sourceRoot":"../e2e","sourcesContent":["import * as React from 'react'\nimport { useState, useRef, useCallback } from 'react'\nimport { Virtuoso } from '../src'\n\nexport default function App() {\n const [count, setCount] = useState(100)\n const appendInterval = useRef<NodeJS.Timeout>()\n const [listHeight, setListHeight] = useState(300)\n const [itemHeights, setItemHeights] = useState<Record<number, number>>({})\n const itemContent = useCallback(\n (index: number) => {\n const height = itemHeights[index] ?? (index % 2 ? 30 : 40)\n return (\n <div style={{ height, background: 'white' }}>\n Item {index}\n <button\n onClick={() => {\n setItemHeights((heights) => {\n return {\n ...heights,\n [index]: 160,\n }\n })\n }}\n >\n *\n </button>\n </div>\n )\n },\n [itemHeights, setItemHeights]\n )\n\n return (\n <>\n <div>\n <button onClick={() => setCount((count) => count + 4)}>Append Items</button> |{' '}\n <button onClick={() => setListHeight((height) => height + 40)}>Increase container</button> |{' '}\n <button onClick={() => setListHeight((height) => height - 40)}>Decrease container</button>\n </div>\n <Virtuoso\n totalCount={count}\n initialTopMostItemIndex={99}\n followOutput={'smooth'}\n itemContent={itemContent}\n style={{ height: listHeight }}\n atBottomStateChange={(atBottom) => {\n clearInterval(appendInterval.current!)\n if (atBottom) {\n appendInterval.current = setInterval(() => {\n // setCount((count) => count + 3)\n }, 100)\n }\n }}\n />\n </>\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"]}
@@ -26,22 +26,22 @@ export declare const followOutputSystem: u.SystemSpec<[u.SystemSpec<[u.SystemSpe
26
26
  viewportHeight: u.Stream<number>;
27
27
  headerHeight: u.StatefulStream<number>;
28
28
  footerHeight: u.StatefulStream<number>;
29
+ scrollHeight: u.Stream<number>;
29
30
  smoothScrollTargetReached: u.Stream<true>;
30
31
  scrollTo: u.Stream<ScrollToOptions>;
31
32
  scrollBy: u.Stream<ScrollToOptions>;
32
- scrollDirection: u.StatefulStream<import("./domIOSystem").ScrollDirection>;
33
33
  statefulScrollTop: u.StatefulStream<number>;
34
34
  deviation: u.StatefulStream<number>;
35
35
  scrollingInProgress: u.StatefulStream<boolean>;
36
- }>], ([{ scrollTop, viewportHeight, headerHeight, footerHeight }]: [{
36
+ }>], ([{ scrollTop, viewportHeight, headerHeight, footerHeight, scrollHeight }]: [{
37
37
  scrollTop: u.Stream<number>;
38
38
  viewportHeight: u.Stream<number>;
39
39
  headerHeight: u.StatefulStream<number>;
40
40
  footerHeight: u.StatefulStream<number>;
41
+ scrollHeight: u.Stream<number>;
41
42
  smoothScrollTargetReached: u.Stream<true>;
42
43
  scrollTo: u.Stream<ScrollToOptions>;
43
44
  scrollBy: u.Stream<ScrollToOptions>;
44
- scrollDirection: u.StatefulStream<import("./domIOSystem").ScrollDirection>;
45
45
  statefulScrollTop: u.StatefulStream<number>;
46
46
  deviation: u.StatefulStream<number>;
47
47
  scrollingInProgress: u.StatefulStream<boolean>;
@@ -52,7 +52,7 @@ export declare const followOutputSystem: u.SystemSpec<[u.SystemSpec<[u.SystemSpe
52
52
  atBottomState: u.Stream<import("./stateFlagsSystem").AtBottomState>;
53
53
  atTopStateChange: u.Stream<boolean>;
54
54
  atBottomStateChange: u.Stream<boolean>;
55
- listStateListener: u.Stream<import("./stateFlagsSystem").ListBottomInfo>;
55
+ scrollDirection: u.StatefulStream<import("./stateFlagsSystem").ScrollDirection>;
56
56
  }>, u.SystemSpec<[u.SystemSpec<[u.SystemSpec<never[], () => {
57
57
  log: u.StatefulStream<import("./loggerSystem").Log>;
58
58
  logLevel: u.StatefulStream<LogLevel>;
@@ -78,10 +78,10 @@ export declare const followOutputSystem: u.SystemSpec<[u.SystemSpec<[u.SystemSpe
78
78
  viewportHeight: u.Stream<number>;
79
79
  headerHeight: u.StatefulStream<number>;
80
80
  footerHeight: u.StatefulStream<number>;
81
+ scrollHeight: u.Stream<number>;
81
82
  smoothScrollTargetReached: u.Stream<true>;
82
83
  scrollTo: u.Stream<ScrollToOptions>;
83
84
  scrollBy: u.Stream<ScrollToOptions>;
84
- scrollDirection: u.StatefulStream<import("./domIOSystem").ScrollDirection>;
85
85
  statefulScrollTop: u.StatefulStream<number>;
86
86
  deviation: u.StatefulStream<number>;
87
87
  scrollingInProgress: u.StatefulStream<boolean>;
@@ -107,10 +107,10 @@ export declare const followOutputSystem: u.SystemSpec<[u.SystemSpec<[u.SystemSpe
107
107
  viewportHeight: u.Stream<number>;
108
108
  headerHeight: u.StatefulStream<number>;
109
109
  footerHeight: u.StatefulStream<number>;
110
+ scrollHeight: u.Stream<number>;
110
111
  smoothScrollTargetReached: u.Stream<true>;
111
112
  scrollTo: u.Stream<ScrollToOptions>;
112
113
  scrollBy: u.Stream<ScrollToOptions>;
113
- scrollDirection: u.StatefulStream<import("./domIOSystem").ScrollDirection>;
114
114
  statefulScrollTop: u.StatefulStream<number>;
115
115
  deviation: u.StatefulStream<number>;
116
116
  scrollingInProgress: u.StatefulStream<boolean>;
@@ -145,10 +145,10 @@ export declare const followOutputSystem: u.SystemSpec<[u.SystemSpec<[u.SystemSpe
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>;
@@ -177,10 +177,10 @@ export declare const followOutputSystem: u.SystemSpec<[u.SystemSpec<[u.SystemSpe
177
177
  viewportHeight: u.Stream<number>;
178
178
  headerHeight: u.StatefulStream<number>;
179
179
  footerHeight: u.StatefulStream<number>;
180
+ scrollHeight: u.Stream<number>;
180
181
  smoothScrollTargetReached: u.Stream<true>;
181
182
  scrollTo: u.Stream<ScrollToOptions>;
182
183
  scrollBy: u.Stream<ScrollToOptions>;
183
- scrollDirection: u.StatefulStream<import("./domIOSystem").ScrollDirection>;
184
184
  statefulScrollTop: u.StatefulStream<number>;
185
185
  deviation: u.StatefulStream<number>;
186
186
  scrollingInProgress: u.StatefulStream<boolean>;
@@ -206,10 +206,10 @@ export declare const followOutputSystem: u.SystemSpec<[u.SystemSpec<[u.SystemSpe
206
206
  viewportHeight: u.Stream<number>;
207
207
  headerHeight: u.StatefulStream<number>;
208
208
  footerHeight: u.StatefulStream<number>;
209
+ scrollHeight: u.Stream<number>;
209
210
  smoothScrollTargetReached: u.Stream<true>;
210
211
  scrollTo: u.Stream<ScrollToOptions>;
211
212
  scrollBy: u.Stream<ScrollToOptions>;
212
- scrollDirection: u.StatefulStream<import("./domIOSystem").ScrollDirection>;
213
213
  statefulScrollTop: u.StatefulStream<number>;
214
214
  deviation: u.StatefulStream<number>;
215
215
  scrollingInProgress: u.StatefulStream<boolean>;
@@ -247,10 +247,10 @@ export declare const followOutputSystem: u.SystemSpec<[u.SystemSpec<[u.SystemSpe
247
247
  viewportHeight: u.Stream<number>;
248
248
  headerHeight: u.StatefulStream<number>;
249
249
  footerHeight: u.StatefulStream<number>;
250
+ scrollHeight: u.Stream<number>;
250
251
  smoothScrollTargetReached: u.Stream<true>;
251
252
  scrollTo: u.Stream<ScrollToOptions>;
252
253
  scrollBy: u.Stream<ScrollToOptions>;
253
- scrollDirection: u.StatefulStream<import("./domIOSystem").ScrollDirection>;
254
254
  statefulScrollTop: u.StatefulStream<number>;
255
255
  deviation: u.StatefulStream<number>;
256
256
  scrollingInProgress: u.StatefulStream<boolean>;
@@ -275,7 +275,19 @@ export declare const followOutputSystem: u.SystemSpec<[u.SystemSpec<[u.SystemSpe
275
275
  }>, u.SystemSpec<never[], () => {
276
276
  log: u.StatefulStream<import("./loggerSystem").Log>;
277
277
  logLevel: u.StatefulStream<LogLevel>;
278
- }>], ([{ totalCount, listRefresh }, { isAtBottom, atBottomState }, { scrollToIndex }, { scrolledToInitialItem }, { propsReady, didMount }, { log },]: [{
278
+ }>, u.SystemSpec<never[], () => {
279
+ scrollTop: u.Stream<number>;
280
+ viewportHeight: u.Stream<number>;
281
+ headerHeight: u.StatefulStream<number>;
282
+ footerHeight: u.StatefulStream<number>;
283
+ scrollHeight: u.Stream<number>;
284
+ smoothScrollTargetReached: u.Stream<true>;
285
+ scrollTo: u.Stream<ScrollToOptions>;
286
+ scrollBy: u.Stream<ScrollToOptions>;
287
+ statefulScrollTop: u.StatefulStream<number>;
288
+ deviation: u.StatefulStream<number>;
289
+ scrollingInProgress: u.StatefulStream<boolean>;
290
+ }>], ([{ totalCount, listRefresh }, { isAtBottom, atBottomState }, { scrollToIndex }, { scrolledToInitialItem }, { propsReady, didMount }, { log }, { scrollingInProgress },]: [{
279
291
  data: u.StatefulStream<import("./sizeSystem").Data>;
280
292
  totalCount: u.Stream<number>;
281
293
  sizeRanges: u.Stream<import("./sizeSystem").SizeRange[]>;
@@ -296,7 +308,7 @@ export declare const followOutputSystem: u.SystemSpec<[u.SystemSpec<[u.SystemSpe
296
308
  atBottomState: u.Stream<import("./stateFlagsSystem").AtBottomState>;
297
309
  atTopStateChange: u.Stream<boolean>;
298
310
  atBottomStateChange: u.Stream<boolean>;
299
- listStateListener: u.Stream<import("./stateFlagsSystem").ListBottomInfo>;
311
+ scrollDirection: u.StatefulStream<import("./stateFlagsSystem").ScrollDirection>;
300
312
  }, {
301
313
  scrollToIndex: u.Stream<import("./scrollToIndexSystem").IndexLocation>;
302
314
  topListHeight: u.StatefulStream<number>;
@@ -309,6 +321,18 @@ export declare const followOutputSystem: u.SystemSpec<[u.SystemSpec<[u.SystemSpe
309
321
  }, {
310
322
  log: u.StatefulStream<import("./loggerSystem").Log>;
311
323
  logLevel: u.StatefulStream<LogLevel>;
324
+ }, {
325
+ scrollTop: u.Stream<number>;
326
+ viewportHeight: u.Stream<number>;
327
+ headerHeight: u.StatefulStream<number>;
328
+ footerHeight: u.StatefulStream<number>;
329
+ scrollHeight: u.Stream<number>;
330
+ smoothScrollTargetReached: u.Stream<true>;
331
+ scrollTo: u.Stream<ScrollToOptions>;
332
+ scrollBy: u.Stream<ScrollToOptions>;
333
+ statefulScrollTop: u.StatefulStream<number>;
334
+ deviation: u.StatefulStream<number>;
335
+ scrollingInProgress: u.StatefulStream<boolean>;
312
336
  }]) => {
313
337
  followOutput: u.StatefulStream<FollowOutput>;
314
338
  }>;
@@ -244,4 +244,209 @@ function App() {
244
244
  }
245
245
  }));
246
246
  }
247
- },{"react":"../node_modules/react/index.js","../src":"../src/index.tsx","@emotion/styled":"../node_modules/@emotion/styled/dist/styled.browser.esm.js"}]},{},[], null)
247
+ },{"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) {
248
+ var global = arguments[3];
249
+ var OVERLAY_ID = '__parcel__error__overlay__';
250
+ var OldModule = module.bundle.Module;
251
+
252
+ function Module(moduleName) {
253
+ OldModule.call(this, moduleName);
254
+ this.hot = {
255
+ data: module.bundle.hotData,
256
+ _acceptCallbacks: [],
257
+ _disposeCallbacks: [],
258
+ accept: function (fn) {
259
+ this._acceptCallbacks.push(fn || function () {});
260
+ },
261
+ dispose: function (fn) {
262
+ this._disposeCallbacks.push(fn);
263
+ }
264
+ };
265
+ module.bundle.hotData = null;
266
+ }
267
+
268
+ module.bundle.Module = Module;
269
+ var checkedAssets, assetsToAccept;
270
+ var parent = module.bundle.parent;
271
+
272
+ if ((!parent || !parent.isParcelRequire) && typeof WebSocket !== 'undefined') {
273
+ var hostname = "" || location.hostname;
274
+ var protocol = location.protocol === 'https:' ? 'wss' : 'ws';
275
+ var ws = new WebSocket(protocol + '://' + hostname + ':' + "53802" + '/');
276
+
277
+ ws.onmessage = function (event) {
278
+ checkedAssets = {};
279
+ assetsToAccept = [];
280
+ var data = JSON.parse(event.data);
281
+
282
+ if (data.type === 'update') {
283
+ var handled = false;
284
+ data.assets.forEach(function (asset) {
285
+ if (!asset.isNew) {
286
+ var didAccept = hmrAcceptCheck(global.parcelRequire, asset.id);
287
+
288
+ if (didAccept) {
289
+ handled = true;
290
+ }
291
+ }
292
+ }); // Enable HMR for CSS by default.
293
+
294
+ handled = handled || data.assets.every(function (asset) {
295
+ return asset.type === 'css' && asset.generated.js;
296
+ });
297
+
298
+ if (handled) {
299
+ console.clear();
300
+ data.assets.forEach(function (asset) {
301
+ hmrApply(global.parcelRequire, asset);
302
+ });
303
+ assetsToAccept.forEach(function (v) {
304
+ hmrAcceptRun(v[0], v[1]);
305
+ });
306
+ } else if (location.reload) {
307
+ // `location` global exists in a web worker context but lacks `.reload()` function.
308
+ location.reload();
309
+ }
310
+ }
311
+
312
+ if (data.type === 'reload') {
313
+ ws.close();
314
+
315
+ ws.onclose = function () {
316
+ location.reload();
317
+ };
318
+ }
319
+
320
+ if (data.type === 'error-resolved') {
321
+ console.log('[parcel] ✨ Error resolved');
322
+ removeErrorOverlay();
323
+ }
324
+
325
+ if (data.type === 'error') {
326
+ console.error('[parcel] 🚨 ' + data.error.message + '\n' + data.error.stack);
327
+ removeErrorOverlay();
328
+ var overlay = createErrorOverlay(data);
329
+ document.body.appendChild(overlay);
330
+ }
331
+ };
332
+ }
333
+
334
+ function removeErrorOverlay() {
335
+ var overlay = document.getElementById(OVERLAY_ID);
336
+
337
+ if (overlay) {
338
+ overlay.remove();
339
+ }
340
+ }
341
+
342
+ function createErrorOverlay(data) {
343
+ var overlay = document.createElement('div');
344
+ overlay.id = OVERLAY_ID; // html encode message and stack trace
345
+
346
+ var message = document.createElement('div');
347
+ var stackTrace = document.createElement('pre');
348
+ message.innerText = data.error.message;
349
+ stackTrace.innerText = data.error.stack;
350
+ 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>';
351
+ return overlay;
352
+ }
353
+
354
+ function getParents(bundle, id) {
355
+ var modules = bundle.modules;
356
+
357
+ if (!modules) {
358
+ return [];
359
+ }
360
+
361
+ var parents = [];
362
+ var k, d, dep;
363
+
364
+ for (k in modules) {
365
+ for (d in modules[k][1]) {
366
+ dep = modules[k][1][d];
367
+
368
+ if (dep === id || Array.isArray(dep) && dep[dep.length - 1] === id) {
369
+ parents.push(k);
370
+ }
371
+ }
372
+ }
373
+
374
+ if (bundle.parent) {
375
+ parents = parents.concat(getParents(bundle.parent, id));
376
+ }
377
+
378
+ return parents;
379
+ }
380
+
381
+ function hmrApply(bundle, asset) {
382
+ var modules = bundle.modules;
383
+
384
+ if (!modules) {
385
+ return;
386
+ }
387
+
388
+ if (modules[asset.id] || !bundle.parent) {
389
+ var fn = new Function('require', 'module', 'exports', asset.generated.js);
390
+ asset.isNew = !modules[asset.id];
391
+ modules[asset.id] = [fn, asset.deps];
392
+ } else if (bundle.parent) {
393
+ hmrApply(bundle.parent, asset);
394
+ }
395
+ }
396
+
397
+ function hmrAcceptCheck(bundle, id) {
398
+ var modules = bundle.modules;
399
+
400
+ if (!modules) {
401
+ return;
402
+ }
403
+
404
+ if (!modules[id] && bundle.parent) {
405
+ return hmrAcceptCheck(bundle.parent, id);
406
+ }
407
+
408
+ if (checkedAssets[id]) {
409
+ return;
410
+ }
411
+
412
+ checkedAssets[id] = true;
413
+ var cached = bundle.cache[id];
414
+ assetsToAccept.push([bundle, id]);
415
+
416
+ if (cached && cached.hot && cached.hot._acceptCallbacks.length) {
417
+ return true;
418
+ }
419
+
420
+ return getParents(global.parcelRequire, id).some(function (id) {
421
+ return hmrAcceptCheck(global.parcelRequire, id);
422
+ });
423
+ }
424
+
425
+ function hmrAcceptRun(bundle, id) {
426
+ var cached = bundle.cache[id];
427
+ bundle.hotData = {};
428
+
429
+ if (cached) {
430
+ cached.hot.data = bundle.hotData;
431
+ }
432
+
433
+ if (cached && cached.hot && cached.hot._disposeCallbacks.length) {
434
+ cached.hot._disposeCallbacks.forEach(function (cb) {
435
+ cb(bundle.hotData);
436
+ });
437
+ }
438
+
439
+ delete bundle.cache[id];
440
+ bundle(id);
441
+ cached = bundle.cache[id];
442
+
443
+ if (cached && cached.hot && cached.hot._acceptCallbacks.length) {
444
+ cached.hot._acceptCallbacks.forEach(function (cb) {
445
+ cb();
446
+ });
447
+
448
+ return true;
449
+ }
450
+ }
451
+ },{}]},{},["../node_modules/parcel-bundler/src/builtins/hmr-runtime.js"], null)
452
+ //# sourceMappingURL=/grid-optimize-rendering.b49e36f5.js.map