react-virtuoso 2.2.4 → 2.2.6-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/__examples.cc6a8f9f.js +162195 -0
- package/dist/__examples.cc6a8f9f.js.map +1 -0
- package/dist/__examples.html +27 -0
- package/dist/__examples.js +392 -0
- package/dist/__examples.js.map +1 -0
- package/dist/align-to-bottom.7fcd2087.js +196 -0
- package/dist/align-to-bottom.7fcd2087.js.map +1 -0
- package/dist/auto-prepend-items.bd7e9b90.js +263 -0
- package/dist/auto-prepend-items.bd7e9b90.js.map +1 -0
- package/dist/benchmark.66d31485.js +161 -0
- package/dist/benchmark.66d31485.js.map +1 -0
- package/dist/chat.d4f93b8b.js +365 -0
- package/dist/chat.d4f93b8b.js.map +1 -0
- package/dist/custom-components.5aeaa7ef.js +202 -0
- package/dist/custom-components.5aeaa7ef.js.map +1 -0
- package/dist/custom-scroller.b0240d14.js +180 -0
- package/dist/custom-scroller.b0240d14.js.map +1 -0
- package/dist/data.26707046.js +186 -0
- package/dist/data.26707046.js.map +1 -0
- package/dist/decrease-items.e2211e50.js +180 -0
- package/dist/decrease-items.e2211e50.js.map +1 -0
- package/dist/default-item-height.b77ada36.js +155 -0
- package/dist/default-item-height.b77ada36.js.map +1 -0
- package/dist/empty-placeholder.00607a6e.js +185 -0
- package/dist/empty-placeholder.00607a6e.js.map +1 -0
- package/dist/end-reached.8531e5b1.js +199 -0
- package/dist/end-reached.8531e5b1.js.map +1 -0
- package/dist/endless-scrolling.bc4101f0.js +205 -0
- package/dist/endless-scrolling.bc4101f0.js.map +1 -0
- package/dist/expandable-cards.5439f51b.js +222 -0
- package/dist/expandable-cards.5439f51b.js.map +1 -0
- package/dist/follow-output.4e36fca8.js +225 -0
- package/dist/follow-output.4e36fca8.js.map +1 -0
- package/dist/grid-optimize-rendering.b49e36f5.js +247 -0
- package/dist/grid-optimize-rendering.b49e36f5.js.map +1 -0
- package/dist/grid.d5d77b6a.js +244 -0
- package/dist/grid.d5d77b6a.js.map +1 -0
- package/dist/grouped-endless-scrolling.24985a0f.js +301 -0
- package/dist/grouped-endless-scrolling.24985a0f.js.map +1 -0
- package/dist/grouped-load-more.bce8f6e4.js +300 -0
- package/dist/grouped-load-more.bce8f6e4.js.map +1 -0
- package/dist/grouped-topmost-item.34960f5e.js +161 -0
- package/dist/grouped-topmost-item.34960f5e.js.map +1 -0
- package/dist/grouped.a2908632.js +160 -0
- package/dist/grouped.a2908632.js.map +1 -0
- package/dist/header-footer.49733d45.js +171 -0
- package/dist/header-footer.49733d45.js.map +1 -0
- package/dist/hello.54765c26.js +155 -0
- package/dist/hello.54765c26.js.map +1 -0
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.m.js +1 -1
- package/dist/index.m.js.map +1 -1
- package/dist/initial-from-zero.22ad1626.js +195 -0
- package/dist/initial-from-zero.22ad1626.js.map +1 -0
- package/dist/initial-scroll-top.90db1920.js +156 -0
- package/dist/initial-scroll-top.90db1920.js.map +1 -0
- package/dist/initial-topmost-item-default-height.43a95247.js +157 -0
- package/dist/initial-topmost-item-default-height.43a95247.js.map +1 -0
- package/dist/initial-topmost-item.61c0e169.js +158 -0
- package/dist/initial-topmost-item.61c0e169.js.map +1 -0
- package/dist/long-last-item.b56ff89c.js +157 -0
- package/dist/long-last-item.b56ff89c.js.map +1 -0
- package/dist/prepend-items.f2bda34b.js +188 -0
- package/dist/prepend-items.f2bda34b.js.map +1 -0
- package/dist/prepend-last-tall-item.168a9e65.js +175 -0
- package/dist/prepend-last-tall-item.168a9e65.js.map +1 -0
- package/dist/react-beautiful-dnd-window-scroller.0a227511.js +280 -0
- package/dist/react-beautiful-dnd-window-scroller.0a227511.js.map +1 -0
- package/dist/react-beautiful-dnd.817e9251.js +277 -0
- package/dist/react-beautiful-dnd.817e9251.js.map +1 -0
- package/dist/rerender.ddd61b7c.js +195 -0
- package/dist/rerender.ddd61b7c.js.map +1 -0
- package/dist/resize-loop.309b1dac.js +183 -0
- package/dist/resize-loop.309b1dac.js.map +1 -0
- package/dist/resizing-items.c09b5e1b.js +189 -0
- package/dist/resizing-items.c09b5e1b.js.map +1 -0
- package/dist/scroll-into-view.39b77fe9.js +203 -0
- package/dist/scroll-into-view.39b77fe9.js.map +1 -0
- package/dist/scroll-seek-placeholder.69fb85c6.js +179 -0
- package/dist/scroll-seek-placeholder.69fb85c6.js.map +1 -0
- package/dist/scroll-to-index.e72249cf.js +212 -0
- package/dist/scroll-to-index.e72249cf.js.map +1 -0
- package/dist/ssr.8f31b042.js +154 -0
- package/dist/ssr.8f31b042.js.map +1 -0
- package/dist/start-reached.2990ece7.js +219 -0
- package/dist/start-reached.2990ece7.js.map +1 -0
- package/dist/tall-item-reverse-scrolling.58bcd140.js +158 -0
- package/dist/tall-item-reverse-scrolling.58bcd140.js.map +1 -0
- package/dist/test-case-446.dce9595c.js +223 -0
- package/dist/test-case-446.dce9595c.js.map +1 -0
- package/dist/test-case-460.6d75ad1f.js +246 -0
- package/dist/test-case-460.6d75ad1f.js.map +1 -0
- package/dist/test-case-463.525f34ba.js +170 -0
- package/dist/test-case-463.525f34ba.js.map +1 -0
- package/dist/toggle-display-grouped.4f4ae058.js +184 -0
- package/dist/toggle-display-grouped.4f4ae058.js.map +1 -0
- package/dist/top-items.f724bf61.js +153 -0
- package/dist/top-items.f724bf61.js.map +1 -0
- package/dist/upward-scroll.d49e0815.js +157 -0
- package/dist/upward-scroll.d49e0815.js.map +1 -0
- package/dist/window-grid.b22094fd.js +234 -0
- package/dist/window-grid.b22094fd.js.map +1 -0
- package/dist/window-scroller.a979c6d6.js +163 -0
- package/dist/window-scroller.a979c6d6.js.map +1 -0
- package/package.json +6 -6
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
// modules are defined as an array
|
|
2
|
+
// [ module function, map of requires ]
|
|
3
|
+
//
|
|
4
|
+
// map of requires is short require name -> numeric require
|
|
5
|
+
//
|
|
6
|
+
// anything defined in a previous bundle is accessed via the
|
|
7
|
+
// orig method which is the require for previous bundles
|
|
8
|
+
parcelRequire = (function (modules, cache, entry, globalName) {
|
|
9
|
+
// Save the require from previous bundle to this closure if any
|
|
10
|
+
var previousRequire = typeof parcelRequire === 'function' && parcelRequire;
|
|
11
|
+
var nodeRequire = typeof require === 'function' && require;
|
|
12
|
+
|
|
13
|
+
function newRequire(name, jumped) {
|
|
14
|
+
if (!cache[name]) {
|
|
15
|
+
if (!modules[name]) {
|
|
16
|
+
// if we cannot find the module within our internal map or
|
|
17
|
+
// cache jump to the current global require ie. the last bundle
|
|
18
|
+
// that was added to the page.
|
|
19
|
+
var currentRequire = typeof parcelRequire === 'function' && parcelRequire;
|
|
20
|
+
if (!jumped && currentRequire) {
|
|
21
|
+
return currentRequire(name, true);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
// If there are other bundles on this page the require from the
|
|
25
|
+
// previous one is saved to 'previousRequire'. Repeat this as
|
|
26
|
+
// many times as there are bundles until the module is found or
|
|
27
|
+
// we exhaust the require chain.
|
|
28
|
+
if (previousRequire) {
|
|
29
|
+
return previousRequire(name, true);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
// Try the node require function if it exists.
|
|
33
|
+
if (nodeRequire && typeof name === 'string') {
|
|
34
|
+
return nodeRequire(name);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
var err = new Error('Cannot find module \'' + name + '\'');
|
|
38
|
+
err.code = 'MODULE_NOT_FOUND';
|
|
39
|
+
throw err;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
localRequire.resolve = resolve;
|
|
43
|
+
localRequire.cache = {};
|
|
44
|
+
|
|
45
|
+
var module = cache[name] = new newRequire.Module(name);
|
|
46
|
+
|
|
47
|
+
modules[name][0].call(module.exports, localRequire, module, module.exports, this);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
return cache[name].exports;
|
|
51
|
+
|
|
52
|
+
function localRequire(x){
|
|
53
|
+
return newRequire(localRequire.resolve(x));
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
function resolve(x){
|
|
57
|
+
return modules[name][1][x] || x;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
function Module(moduleName) {
|
|
62
|
+
this.id = moduleName;
|
|
63
|
+
this.bundle = newRequire;
|
|
64
|
+
this.exports = {};
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
newRequire.isParcelRequire = true;
|
|
68
|
+
newRequire.Module = Module;
|
|
69
|
+
newRequire.modules = modules;
|
|
70
|
+
newRequire.cache = cache;
|
|
71
|
+
newRequire.parent = previousRequire;
|
|
72
|
+
newRequire.register = function (id, exports) {
|
|
73
|
+
modules[id] = [function (require, module) {
|
|
74
|
+
module.exports = exports;
|
|
75
|
+
}, {}];
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
var error;
|
|
79
|
+
for (var i = 0; i < entry.length; i++) {
|
|
80
|
+
try {
|
|
81
|
+
newRequire(entry[i]);
|
|
82
|
+
} catch (e) {
|
|
83
|
+
// Save first error but execute all entries
|
|
84
|
+
if (!error) {
|
|
85
|
+
error = e;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
if (entry.length) {
|
|
91
|
+
// Expose entry point to Node, AMD or browser globals
|
|
92
|
+
// Based on https://github.com/ForbesLindesay/umd/blob/master/template.js
|
|
93
|
+
var mainExports = newRequire(entry[entry.length - 1]);
|
|
94
|
+
|
|
95
|
+
// CommonJS
|
|
96
|
+
if (typeof exports === "object" && typeof module !== "undefined") {
|
|
97
|
+
module.exports = mainExports;
|
|
98
|
+
|
|
99
|
+
// RequireJS
|
|
100
|
+
} else if (typeof define === "function" && define.amd) {
|
|
101
|
+
define(function () {
|
|
102
|
+
return mainExports;
|
|
103
|
+
});
|
|
104
|
+
|
|
105
|
+
// <script>
|
|
106
|
+
} else if (globalName) {
|
|
107
|
+
this[globalName] = mainExports;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
// Override the current require with this new one
|
|
112
|
+
parcelRequire = newRequire;
|
|
113
|
+
|
|
114
|
+
if (error) {
|
|
115
|
+
// throw error from earlier, _after updating parcelRequire_
|
|
116
|
+
throw error;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
return newRequire;
|
|
120
|
+
})({"endless-scrolling.tsx":[function(require,module,exports) {
|
|
121
|
+
"use strict";
|
|
122
|
+
|
|
123
|
+
Object.defineProperty(exports, "__esModule", {
|
|
124
|
+
value: true
|
|
125
|
+
});
|
|
126
|
+
exports.default = App;
|
|
127
|
+
|
|
128
|
+
var React = _interopRequireWildcard(require("react"));
|
|
129
|
+
|
|
130
|
+
var _src = require("../src");
|
|
131
|
+
|
|
132
|
+
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
|
|
133
|
+
|
|
134
|
+
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
135
|
+
|
|
136
|
+
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
137
|
+
|
|
138
|
+
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
139
|
+
|
|
140
|
+
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); }
|
|
141
|
+
|
|
142
|
+
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
143
|
+
|
|
144
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
145
|
+
|
|
146
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
147
|
+
|
|
148
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
149
|
+
|
|
150
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
151
|
+
|
|
152
|
+
function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
153
|
+
|
|
154
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
155
|
+
|
|
156
|
+
function generateItems(length, startIndex) {
|
|
157
|
+
return Array.from({
|
|
158
|
+
length: length
|
|
159
|
+
}, function (_, index) {
|
|
160
|
+
return "My Item ".concat(index + startIndex, ", gen: ").concat(startIndex);
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
var itemContent = function itemContent(_, data) {
|
|
165
|
+
return React.createElement("div", {
|
|
166
|
+
style: {
|
|
167
|
+
height: 30
|
|
168
|
+
}
|
|
169
|
+
}, data);
|
|
170
|
+
};
|
|
171
|
+
|
|
172
|
+
function App() {
|
|
173
|
+
var _useState = (0, React.useState)(function () {
|
|
174
|
+
return [];
|
|
175
|
+
}),
|
|
176
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
177
|
+
items = _useState2[0],
|
|
178
|
+
setItems = _useState2[1];
|
|
179
|
+
|
|
180
|
+
var loadMore = (0, React.useCallback)(function () {
|
|
181
|
+
console.log('loading...');
|
|
182
|
+
return setTimeout(function () {
|
|
183
|
+
console.log('loaded');
|
|
184
|
+
setItems(function (items) {
|
|
185
|
+
return [].concat(_toConsumableArray(items), _toConsumableArray(generateItems(100, items.length)));
|
|
186
|
+
});
|
|
187
|
+
}, 0);
|
|
188
|
+
}, [setItems]);
|
|
189
|
+
(0, React.useEffect)(function () {
|
|
190
|
+
var timeout = loadMore();
|
|
191
|
+
return function () {
|
|
192
|
+
return clearTimeout(timeout);
|
|
193
|
+
};
|
|
194
|
+
}, [loadMore]);
|
|
195
|
+
return React.createElement("div", null, items.length ? React.createElement(_src.Virtuoso, {
|
|
196
|
+
data: items,
|
|
197
|
+
initialItemCount: items.length,
|
|
198
|
+
endReached: loadMore,
|
|
199
|
+
itemContent: itemContent,
|
|
200
|
+
style: {
|
|
201
|
+
height: 300
|
|
202
|
+
}
|
|
203
|
+
}) : React.createElement("div", null, "Loading"));
|
|
204
|
+
}
|
|
205
|
+
},{"react":"../node_modules/react/index.js","../src":"../src/index.tsx"}]},{},[], null)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["endless-scrolling.tsx"],"names":[],"mappings":";;;;;;;AAAA;;AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,SAAS,aAAT,CAAuB,MAAvB,EAAuC,UAAvC,EAAyD;AACvD,SAAO,KAAK,CAAC,IAAN,CAAW;AAAE,IAAA,MAAM,EAAN;AAAF,GAAX,EAAuB,UAAC,CAAD,EAAI,KAAJ;AAAA,6BAAyB,KAAK,GAAG,UAAjC,oBAAqD,UAArD;AAAA,GAAvB,CAAP;AACD;;AAED,IAAM,WAAW,GAAG,SAAd,WAAc,CAAC,CAAD,EAAY,IAAZ,EAA4B;AAC9C,SAAO,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,IAAA,KAAK,EAAE;AAAE,MAAA,MAAM,EAAE;AAAV;AAAZ,GAAA,EAA6B,IAA7B,CAAP;AACD,CAFD;;AAIc,SAAU,GAAV,GAAa;AAAA,kBACC,oBAAmB;AAAA,WAAM,EAAN;AAAA,GAAnB,CADD;AAAA;AAAA,MAClB,KADkB;AAAA,MACX,QADW;;AAGzB,MAAM,QAAQ,GAAG,uBAAY,YAAK;AAChC,IAAA,OAAO,CAAC,GAAR,CAAY,YAAZ;AACA,WAAO,UAAU,CAAC,YAAK;AACrB,MAAA,OAAO,CAAC,GAAR,CAAY,QAAZ;AAEA,MAAA,QAAQ,CAAC,UAAC,KAAD;AAAA,4CAAe,KAAf,sBAAyB,aAAa,CAAC,GAAD,EAAM,KAAK,CAAC,MAAZ,CAAtC;AAAA,OAAD,CAAR;AACD,KAJgB,EAId,CAJc,CAAjB;AAKD,GAPgB,EAOd,CAAC,QAAD,CAPc,CAAjB;AASA,uBAAU,YAAK;AACb,QAAM,OAAO,GAAG,QAAQ,EAAxB;AACA,WAAO;AAAA,aAAM,YAAY,CAAC,OAAD,CAAlB;AAAA,KAAP;AACD,GAHD,EAGG,CAAC,QAAD,CAHH;AAKA,SACE,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,IAAA,EACG,KAAK,CAAC,MAAN,GACC,KAAA,CAAA,aAAA,CAAC,aAAD,EAAS;AAAC,IAAA,IAAI,EAAE,KAAP;AAAc,IAAA,gBAAgB,EAAE,KAAK,CAAC,MAAtC;AAA8C,IAAA,UAAU,EAAE,QAA1D;AAAoE,IAAA,WAAW,EAAE,WAAjF;AAA8F,IAAA,KAAK,EAAE;AAAE,MAAA,MAAM,EAAE;AAAV;AAArG,GAAT,CADD,GAGC,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA,IAAA,EAAA,SAAA,CAJJ,CADF;AASD","file":"endless-scrolling.bc4101f0.js","sourceRoot":"../e2e","sourcesContent":["import * as React from 'react'\nimport { useState, useEffect, useCallback } from 'react'\nimport { Virtuoso } from '../src'\n\nfunction generateItems(length: number, startIndex: number) {\n return Array.from({ length }, (_, index) => `My Item ${index + startIndex}, gen: ${startIndex}`)\n}\n\nconst itemContent = (_: number, data: string) => {\n return <div style={{ height: 30 }}>{data}</div>\n}\n\nexport default function App() {\n const [items, setItems] = useState<string[]>(() => [])\n\n const loadMore = useCallback(() => {\n console.log('loading...')\n return setTimeout(() => {\n console.log('loaded')\n\n setItems((items) => [...items, ...generateItems(100, items.length)])\n }, 0)\n }, [setItems])\n\n useEffect(() => {\n const timeout = loadMore()\n return () => clearTimeout(timeout)\n }, [loadMore])\n\n return (\n <div>\n {items.length ? (\n <Virtuoso data={items} initialItemCount={items.length} endReached={loadMore} itemContent={itemContent} style={{ height: 300 }} />\n ) : (\n <div>Loading</div>\n )}\n </div>\n )\n}\n"]}
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
// modules are defined as an array
|
|
2
|
+
// [ module function, map of requires ]
|
|
3
|
+
//
|
|
4
|
+
// map of requires is short require name -> numeric require
|
|
5
|
+
//
|
|
6
|
+
// anything defined in a previous bundle is accessed via the
|
|
7
|
+
// orig method which is the require for previous bundles
|
|
8
|
+
parcelRequire = (function (modules, cache, entry, globalName) {
|
|
9
|
+
// Save the require from previous bundle to this closure if any
|
|
10
|
+
var previousRequire = typeof parcelRequire === 'function' && parcelRequire;
|
|
11
|
+
var nodeRequire = typeof require === 'function' && require;
|
|
12
|
+
|
|
13
|
+
function newRequire(name, jumped) {
|
|
14
|
+
if (!cache[name]) {
|
|
15
|
+
if (!modules[name]) {
|
|
16
|
+
// if we cannot find the module within our internal map or
|
|
17
|
+
// cache jump to the current global require ie. the last bundle
|
|
18
|
+
// that was added to the page.
|
|
19
|
+
var currentRequire = typeof parcelRequire === 'function' && parcelRequire;
|
|
20
|
+
if (!jumped && currentRequire) {
|
|
21
|
+
return currentRequire(name, true);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
// If there are other bundles on this page the require from the
|
|
25
|
+
// previous one is saved to 'previousRequire'. Repeat this as
|
|
26
|
+
// many times as there are bundles until the module is found or
|
|
27
|
+
// we exhaust the require chain.
|
|
28
|
+
if (previousRequire) {
|
|
29
|
+
return previousRequire(name, true);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
// Try the node require function if it exists.
|
|
33
|
+
if (nodeRequire && typeof name === 'string') {
|
|
34
|
+
return nodeRequire(name);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
var err = new Error('Cannot find module \'' + name + '\'');
|
|
38
|
+
err.code = 'MODULE_NOT_FOUND';
|
|
39
|
+
throw err;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
localRequire.resolve = resolve;
|
|
43
|
+
localRequire.cache = {};
|
|
44
|
+
|
|
45
|
+
var module = cache[name] = new newRequire.Module(name);
|
|
46
|
+
|
|
47
|
+
modules[name][0].call(module.exports, localRequire, module, module.exports, this);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
return cache[name].exports;
|
|
51
|
+
|
|
52
|
+
function localRequire(x){
|
|
53
|
+
return newRequire(localRequire.resolve(x));
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
function resolve(x){
|
|
57
|
+
return modules[name][1][x] || x;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
function Module(moduleName) {
|
|
62
|
+
this.id = moduleName;
|
|
63
|
+
this.bundle = newRequire;
|
|
64
|
+
this.exports = {};
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
newRequire.isParcelRequire = true;
|
|
68
|
+
newRequire.Module = Module;
|
|
69
|
+
newRequire.modules = modules;
|
|
70
|
+
newRequire.cache = cache;
|
|
71
|
+
newRequire.parent = previousRequire;
|
|
72
|
+
newRequire.register = function (id, exports) {
|
|
73
|
+
modules[id] = [function (require, module) {
|
|
74
|
+
module.exports = exports;
|
|
75
|
+
}, {}];
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
var error;
|
|
79
|
+
for (var i = 0; i < entry.length; i++) {
|
|
80
|
+
try {
|
|
81
|
+
newRequire(entry[i]);
|
|
82
|
+
} catch (e) {
|
|
83
|
+
// Save first error but execute all entries
|
|
84
|
+
if (!error) {
|
|
85
|
+
error = e;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
if (entry.length) {
|
|
91
|
+
// Expose entry point to Node, AMD or browser globals
|
|
92
|
+
// Based on https://github.com/ForbesLindesay/umd/blob/master/template.js
|
|
93
|
+
var mainExports = newRequire(entry[entry.length - 1]);
|
|
94
|
+
|
|
95
|
+
// CommonJS
|
|
96
|
+
if (typeof exports === "object" && typeof module !== "undefined") {
|
|
97
|
+
module.exports = mainExports;
|
|
98
|
+
|
|
99
|
+
// RequireJS
|
|
100
|
+
} else if (typeof define === "function" && define.amd) {
|
|
101
|
+
define(function () {
|
|
102
|
+
return mainExports;
|
|
103
|
+
});
|
|
104
|
+
|
|
105
|
+
// <script>
|
|
106
|
+
} else if (globalName) {
|
|
107
|
+
this[globalName] = mainExports;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
// Override the current require with this new one
|
|
112
|
+
parcelRequire = newRequire;
|
|
113
|
+
|
|
114
|
+
if (error) {
|
|
115
|
+
// throw error from earlier, _after updating parcelRequire_
|
|
116
|
+
throw error;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
return newRequire;
|
|
120
|
+
})({"expandable-cards.tsx":[function(require,module,exports) {
|
|
121
|
+
"use strict";
|
|
122
|
+
|
|
123
|
+
Object.defineProperty(exports, "__esModule", {
|
|
124
|
+
value: true
|
|
125
|
+
});
|
|
126
|
+
exports.default = App;
|
|
127
|
+
|
|
128
|
+
var React = _interopRequireWildcard(require("react"));
|
|
129
|
+
|
|
130
|
+
var _src = require("../src");
|
|
131
|
+
|
|
132
|
+
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
|
|
133
|
+
|
|
134
|
+
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
135
|
+
|
|
136
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
137
|
+
|
|
138
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
139
|
+
|
|
140
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
141
|
+
|
|
142
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
143
|
+
|
|
144
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
145
|
+
|
|
146
|
+
function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
147
|
+
|
|
148
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
149
|
+
|
|
150
|
+
var Row = function Row(props) {
|
|
151
|
+
var rowIndex = props.rowIndex,
|
|
152
|
+
expanded = props.expanded,
|
|
153
|
+
setExpanded = props.setExpanded;
|
|
154
|
+
|
|
155
|
+
var _useState = (0, React.useState)(expanded),
|
|
156
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
157
|
+
ex = _useState2[0],
|
|
158
|
+
setEx = _useState2[1];
|
|
159
|
+
|
|
160
|
+
var color = Math.floor(Math.abs(Math.sin(rowIndex) * 16777215) % 16777215).toString(16);
|
|
161
|
+
return React.createElement("div", {
|
|
162
|
+
style: {}
|
|
163
|
+
}, React.createElement("div", {
|
|
164
|
+
style: {
|
|
165
|
+
background: 'grey',
|
|
166
|
+
padding: '40px 0px',
|
|
167
|
+
border: '4px solid black'
|
|
168
|
+
},
|
|
169
|
+
onClick: function onClick() {
|
|
170
|
+
setExpanded(!expanded);
|
|
171
|
+
setEx(!ex);
|
|
172
|
+
}
|
|
173
|
+
}, "This is row #", rowIndex, " rendered at ", Date.now(), React.createElement("div", {
|
|
174
|
+
style: {
|
|
175
|
+
height: ex ? '100%' : rowIndex % 2 === 0 ? '2px' : '35px',
|
|
176
|
+
overflow: 'hidden'
|
|
177
|
+
}
|
|
178
|
+
}, React.createElement("div", {
|
|
179
|
+
style: {
|
|
180
|
+
background: "#".concat(color),
|
|
181
|
+
height: '250px'
|
|
182
|
+
}
|
|
183
|
+
}))));
|
|
184
|
+
};
|
|
185
|
+
|
|
186
|
+
function App() {
|
|
187
|
+
var _useState3 = (0, React.useState)({}),
|
|
188
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
189
|
+
expanded = _useState4[0],
|
|
190
|
+
_setExpanded = _useState4[1];
|
|
191
|
+
|
|
192
|
+
var itemsRendered = function itemsRendered(x) {
|
|
193
|
+
return console.log(x.map(function (y) {
|
|
194
|
+
return "".concat(y.originalIndex, ": ").concat(y.offset);
|
|
195
|
+
}));
|
|
196
|
+
};
|
|
197
|
+
|
|
198
|
+
var itemContent = function itemContent(rowIndex) {
|
|
199
|
+
return React.createElement(Row, {
|
|
200
|
+
rowIndex: rowIndex,
|
|
201
|
+
expanded: !!expanded[rowIndex],
|
|
202
|
+
setExpanded: function setExpanded(expanded) {
|
|
203
|
+
console.log('set expanded', expanded, 'row Index:', rowIndex);
|
|
204
|
+
|
|
205
|
+
_setExpanded(function (old) {
|
|
206
|
+
return Object.assign(old, _defineProperty({}, rowIndex, expanded));
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
});
|
|
210
|
+
};
|
|
211
|
+
|
|
212
|
+
return React.createElement(_src.Virtuoso, {
|
|
213
|
+
style: {
|
|
214
|
+
height: 900
|
|
215
|
+
},
|
|
216
|
+
itemsRendered: itemsRendered,
|
|
217
|
+
totalCount: 500,
|
|
218
|
+
itemContent: itemContent,
|
|
219
|
+
initialTopMostItemIndex: 100
|
|
220
|
+
});
|
|
221
|
+
}
|
|
222
|
+
},{"react":"../node_modules/react/index.js","../src":"../src/index.tsx"}]},{},[], null)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["expandable-cards.tsx"],"names":[],"mappings":";;;;;;;AAEA;;AAEA;;;;;;;;;;;;;;;;;;;;AAEA,IAAM,GAAG,GAAG,SAAN,GAAM,CAAC,KAAD,EAAe;AAAA,MACjB,QADiB,GACmB,KADnB,CACjB,QADiB;AAAA,MACP,QADO,GACmB,KADnB,CACP,QADO;AAAA,MACG,WADH,GACmB,KADnB,CACG,WADH;;AAAA,kBAEL,oBAAS,QAAT,CAFK;AAAA;AAAA,MAElB,EAFkB;AAAA,MAEd,KAFc;;AAGzB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAL,CAAW,IAAI,CAAC,GAAL,CAAS,IAAI,CAAC,GAAL,CAAS,QAAT,IAAqB,QAA9B,IAA0C,QAArD,EAA+D,QAA/D,CAAwE,EAAxE,CAAd;AACA,SACE,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,IAAA,KAAK,EAAE;AAAZ,GAAA,EACE,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AACE,IAAA,KAAK,EAAE;AACL,MAAA,UAAU,EAAE,MADP;AAEL,MAAA,OAAO,EAAE,UAFJ;AAGL,MAAA,MAAM,EAAE;AAHH,KADT;AAME,IAAA,OAAO,EAAE,mBAAK;AACZ,MAAA,WAAW,CAAC,CAAC,QAAF,CAAX;AACA,MAAA,KAAK,CAAC,CAAC,EAAF,CAAL;AACD;AATH,GAAA,iBAAA,EAWgB,QAXhB,iBAAA,EAWuC,IAAI,CAAC,GAAL,EAXvC,EAYE,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,IAAA,KAAK,EAAE;AAAE,MAAA,MAAM,EAAE,EAAE,GAAG,MAAH,GAAY,QAAQ,GAAG,CAAX,KAAiB,CAAjB,GAAqB,KAArB,GAA6B,MAArD;AAA6D,MAAA,QAAQ,EAAE;AAAvE;AAAZ,GAAA,EACE,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AACE,IAAA,KAAK,EAAE;AACL,MAAA,UAAU,aAAM,KAAN,CADL;AAEL,MAAA,MAAM,EAAE;AAFH;AADT,GAAA,CADF,CAZF,CADF,CADF;AAyBD,CA7BD;;AAiCc,SAAU,GAAV,GAAa;AAAA,mBACO,oBAAoB,EAApB,CADP;AAAA;AAAA,MAClB,QADkB;AAAA,MACR,YADQ;;AAGzB,MAAM,aAAa,GAAG,SAAhB,aAAgB,CAAC,CAAD;AAAA,WACpB,OAAO,CAAC,GAAR,CAAY,CAAC,CAAC,GAAF,CAAM,UAAC,CAAD;AAAA,uBAAqD,CAAC,CAAC,aAAvD,eAAyE,CAAC,CAAC,MAA3E;AAAA,KAAN,CAAZ,CADoB;AAAA,GAAtB;;AAGA,MAAM,WAAW,GAAG,SAAd,WAAc,CAAC,QAAD;AAAA,WAClB,KAAA,CAAA,aAAA,CAAC,GAAD,EAAI;AACF,MAAA,QAAQ,EAAE,QADR;AAEF,MAAA,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAD,CAFlB;AAGF,MAAA,WAAW,EAAE,qBAAC,QAAD,EAAsB;AACjC,QAAA,OAAO,CAAC,GAAR,CAAY,cAAZ,EAA4B,QAA5B,EAAsC,YAAtC,EAAoD,QAApD;;AACA,QAAA,YAAW,CAAC,UAAC,GAAD;AAAA,iBAAS,MAAM,CAAC,MAAP,CAAc,GAAd,sBAAsB,QAAtB,EAAiC,QAAjC,EAAT;AAAA,SAAD,CAAX;AACD;AANC,KAAJ,CADkB;AAAA,GAApB;;AAUA,SACE,KAAA,CAAA,aAAA,CAAC,aAAD,EAAS;AACP,IAAA,KAAK,EAAE;AAAE,MAAA,MAAM,EAAE;AAAV,KADA;AAEP,IAAA,aAAa,EAAE,aAFR;AAGP,IAAA,UAAU,EAAE,GAHL;AAIP,IAAA,WAAW,EAAE,WAJN;AAKP,IAAA,uBAAuB,EAAE;AALlB,GAAT,CADF;AASD","file":"expandable-cards.5439f51b.js","sourceRoot":"../e2e","sourcesContent":["/* eslint-disable @typescript-eslint/no-unsafe-call */\n/* eslint-disable @typescript-eslint/no-unsafe-assignment */\nimport * as React from 'react'\nimport { useState } from 'react'\nimport { Virtuoso } from '../src'\n\nconst Row = (props: any) => {\n const { rowIndex, expanded, setExpanded } = props\n const [ex, setEx] = useState(expanded)\n const color = Math.floor(Math.abs(Math.sin(rowIndex) * 16777215) % 16777215).toString(16)\n return (\n <div style={{}}>\n <div\n style={{\n background: 'grey',\n padding: '40px 0px',\n border: '4px solid black',\n }}\n onClick={() => {\n setExpanded(!expanded)\n setEx(!ex)\n }}\n >\n This is row #{rowIndex} rendered at {Date.now()}\n <div style={{ height: ex ? '100%' : rowIndex % 2 === 0 ? '2px' : '35px', overflow: 'hidden' }}>\n <div\n style={{\n background: `#${color}`,\n height: '250px',\n }}\n />\n </div>\n </div>\n </div>\n )\n}\ninterface IExpanded {\n [key: number]: boolean\n}\nexport default function App() {\n const [expanded, setExpanded] = useState<IExpanded>({})\n\n const itemsRendered = (x: any[]) =>\n console.log(x.map((y: { originalIndex: number; offset: number }) => `${y.originalIndex}: ${y.offset}`))\n\n const itemContent = (rowIndex: number) => (\n <Row\n rowIndex={rowIndex}\n expanded={!!expanded[rowIndex]}\n setExpanded={(expanded: boolean) => {\n console.log('set expanded', expanded, 'row Index:', rowIndex)\n setExpanded((old) => Object.assign(old, { [rowIndex]: expanded }))\n }}\n />\n )\n return (\n <Virtuoso\n style={{ height: 900 }}\n itemsRendered={itemsRendered}\n totalCount={500}\n itemContent={itemContent}\n initialTopMostItemIndex={100}\n />\n )\n}\n"]}
|
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
// modules are defined as an array
|
|
2
|
+
// [ module function, map of requires ]
|
|
3
|
+
//
|
|
4
|
+
// map of requires is short require name -> numeric require
|
|
5
|
+
//
|
|
6
|
+
// anything defined in a previous bundle is accessed via the
|
|
7
|
+
// orig method which is the require for previous bundles
|
|
8
|
+
parcelRequire = (function (modules, cache, entry, globalName) {
|
|
9
|
+
// Save the require from previous bundle to this closure if any
|
|
10
|
+
var previousRequire = typeof parcelRequire === 'function' && parcelRequire;
|
|
11
|
+
var nodeRequire = typeof require === 'function' && require;
|
|
12
|
+
|
|
13
|
+
function newRequire(name, jumped) {
|
|
14
|
+
if (!cache[name]) {
|
|
15
|
+
if (!modules[name]) {
|
|
16
|
+
// if we cannot find the module within our internal map or
|
|
17
|
+
// cache jump to the current global require ie. the last bundle
|
|
18
|
+
// that was added to the page.
|
|
19
|
+
var currentRequire = typeof parcelRequire === 'function' && parcelRequire;
|
|
20
|
+
if (!jumped && currentRequire) {
|
|
21
|
+
return currentRequire(name, true);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
// If there are other bundles on this page the require from the
|
|
25
|
+
// previous one is saved to 'previousRequire'. Repeat this as
|
|
26
|
+
// many times as there are bundles until the module is found or
|
|
27
|
+
// we exhaust the require chain.
|
|
28
|
+
if (previousRequire) {
|
|
29
|
+
return previousRequire(name, true);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
// Try the node require function if it exists.
|
|
33
|
+
if (nodeRequire && typeof name === 'string') {
|
|
34
|
+
return nodeRequire(name);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
var err = new Error('Cannot find module \'' + name + '\'');
|
|
38
|
+
err.code = 'MODULE_NOT_FOUND';
|
|
39
|
+
throw err;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
localRequire.resolve = resolve;
|
|
43
|
+
localRequire.cache = {};
|
|
44
|
+
|
|
45
|
+
var module = cache[name] = new newRequire.Module(name);
|
|
46
|
+
|
|
47
|
+
modules[name][0].call(module.exports, localRequire, module, module.exports, this);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
return cache[name].exports;
|
|
51
|
+
|
|
52
|
+
function localRequire(x){
|
|
53
|
+
return newRequire(localRequire.resolve(x));
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
function resolve(x){
|
|
57
|
+
return modules[name][1][x] || x;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
function Module(moduleName) {
|
|
62
|
+
this.id = moduleName;
|
|
63
|
+
this.bundle = newRequire;
|
|
64
|
+
this.exports = {};
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
newRequire.isParcelRequire = true;
|
|
68
|
+
newRequire.Module = Module;
|
|
69
|
+
newRequire.modules = modules;
|
|
70
|
+
newRequire.cache = cache;
|
|
71
|
+
newRequire.parent = previousRequire;
|
|
72
|
+
newRequire.register = function (id, exports) {
|
|
73
|
+
modules[id] = [function (require, module) {
|
|
74
|
+
module.exports = exports;
|
|
75
|
+
}, {}];
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
var error;
|
|
79
|
+
for (var i = 0; i < entry.length; i++) {
|
|
80
|
+
try {
|
|
81
|
+
newRequire(entry[i]);
|
|
82
|
+
} catch (e) {
|
|
83
|
+
// Save first error but execute all entries
|
|
84
|
+
if (!error) {
|
|
85
|
+
error = e;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
if (entry.length) {
|
|
91
|
+
// Expose entry point to Node, AMD or browser globals
|
|
92
|
+
// Based on https://github.com/ForbesLindesay/umd/blob/master/template.js
|
|
93
|
+
var mainExports = newRequire(entry[entry.length - 1]);
|
|
94
|
+
|
|
95
|
+
// CommonJS
|
|
96
|
+
if (typeof exports === "object" && typeof module !== "undefined") {
|
|
97
|
+
module.exports = mainExports;
|
|
98
|
+
|
|
99
|
+
// RequireJS
|
|
100
|
+
} else if (typeof define === "function" && define.amd) {
|
|
101
|
+
define(function () {
|
|
102
|
+
return mainExports;
|
|
103
|
+
});
|
|
104
|
+
|
|
105
|
+
// <script>
|
|
106
|
+
} else if (globalName) {
|
|
107
|
+
this[globalName] = mainExports;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
// Override the current require with this new one
|
|
112
|
+
parcelRequire = newRequire;
|
|
113
|
+
|
|
114
|
+
if (error) {
|
|
115
|
+
// throw error from earlier, _after updating parcelRequire_
|
|
116
|
+
throw error;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
return newRequire;
|
|
120
|
+
})({"follow-output.tsx":[function(require,module,exports) {
|
|
121
|
+
"use strict";
|
|
122
|
+
|
|
123
|
+
Object.defineProperty(exports, "__esModule", {
|
|
124
|
+
value: true
|
|
125
|
+
});
|
|
126
|
+
exports.default = App;
|
|
127
|
+
|
|
128
|
+
var React = _interopRequireWildcard(require("react"));
|
|
129
|
+
|
|
130
|
+
var _src = require("../src");
|
|
131
|
+
|
|
132
|
+
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
|
|
133
|
+
|
|
134
|
+
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
135
|
+
|
|
136
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
|
137
|
+
|
|
138
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
139
|
+
|
|
140
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
141
|
+
|
|
142
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
143
|
+
|
|
144
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
145
|
+
|
|
146
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
147
|
+
|
|
148
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
149
|
+
|
|
150
|
+
function _iterableToArrayLimit(arr, i) { if (typeof Symbol === "undefined" || !(Symbol.iterator in Object(arr))) return; var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
|
|
151
|
+
|
|
152
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
153
|
+
|
|
154
|
+
function App() {
|
|
155
|
+
var _useState = (0, React.useState)(100),
|
|
156
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
157
|
+
count = _useState2[0],
|
|
158
|
+
setCount = _useState2[1];
|
|
159
|
+
|
|
160
|
+
var appendInterval = (0, React.useRef)();
|
|
161
|
+
|
|
162
|
+
var _useState3 = (0, React.useState)(300),
|
|
163
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
164
|
+
listHeight = _useState4[0],
|
|
165
|
+
setListHeight = _useState4[1];
|
|
166
|
+
|
|
167
|
+
var _useState5 = (0, React.useState)({}),
|
|
168
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
169
|
+
itemHeights = _useState6[0],
|
|
170
|
+
setItemHeights = _useState6[1];
|
|
171
|
+
|
|
172
|
+
var itemContent = (0, React.useCallback)(function (index) {
|
|
173
|
+
var _itemHeights$index;
|
|
174
|
+
|
|
175
|
+
var height = (_itemHeights$index = itemHeights[index]) !== null && _itemHeights$index !== void 0 ? _itemHeights$index : index % 2 ? 30 : 40;
|
|
176
|
+
return React.createElement("div", {
|
|
177
|
+
style: {
|
|
178
|
+
height: height,
|
|
179
|
+
background: 'white'
|
|
180
|
+
}
|
|
181
|
+
}, "Item ", index, React.createElement("button", {
|
|
182
|
+
onClick: function onClick() {
|
|
183
|
+
setItemHeights(function (heights) {
|
|
184
|
+
return _objectSpread(_objectSpread({}, heights), {}, _defineProperty({}, index, 160));
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
}, "*"));
|
|
188
|
+
}, [itemHeights, setItemHeights]);
|
|
189
|
+
return React.createElement(React.Fragment, null, React.createElement("div", null, React.createElement("button", {
|
|
190
|
+
onClick: function onClick() {
|
|
191
|
+
return setCount(function (count) {
|
|
192
|
+
return count + 4;
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
}, "Append Items"), " |", ' ', React.createElement("button", {
|
|
196
|
+
onClick: function onClick() {
|
|
197
|
+
return setListHeight(function (height) {
|
|
198
|
+
return height + 40;
|
|
199
|
+
});
|
|
200
|
+
}
|
|
201
|
+
}, "Increase container"), " |", ' ', React.createElement("button", {
|
|
202
|
+
onClick: function onClick() {
|
|
203
|
+
return setListHeight(function (height) {
|
|
204
|
+
return height - 40;
|
|
205
|
+
});
|
|
206
|
+
}
|
|
207
|
+
}, "Decrease container")), React.createElement(_src.Virtuoso, {
|
|
208
|
+
totalCount: count,
|
|
209
|
+
initialTopMostItemIndex: 99,
|
|
210
|
+
followOutput: 'smooth',
|
|
211
|
+
itemContent: itemContent,
|
|
212
|
+
style: {
|
|
213
|
+
height: listHeight
|
|
214
|
+
},
|
|
215
|
+
atBottomStateChange: function atBottomStateChange(atBottom) {
|
|
216
|
+
clearInterval(appendInterval.current);
|
|
217
|
+
|
|
218
|
+
if (atBottom) {
|
|
219
|
+
appendInterval.current = setInterval(function () {// setCount((count) => count + 3)
|
|
220
|
+
}, 100);
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
}));
|
|
224
|
+
}
|
|
225
|
+
},{"react":"../node_modules/react/index.js","../src":"../src/index.tsx"}]},{},[], null)
|
|
@@ -0,0 +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"]}
|