UNPKG

react-render-wave

Version:

A compact React hook and component for progressive rendering of large datasets with optional scroll virtualization.

765 lines (764 loc) 47.1 kB
import aA, { useState as eA, useRef as IA, useEffect as X, useCallback as nA, forwardRef as jA, useImperativeHandle as LA } from "react"; var V = { exports: {} }, T = {}; /** * @license React * react-jsx-runtime.production.js * * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ var oA; function xA() { if (oA) return T; oA = 1; var A = Symbol.for("react.transitional.element"), g = Symbol.for("react.fragment"); function B(C, Q, e) { var t = null; if (e !== void 0 && (t = "" + e), Q.key !== void 0 && (t = "" + Q.key), "key" in Q) { e = {}; for (var r in Q) r !== "key" && (e[r] = Q[r]); } else e = Q; return Q = e.ref, { $$typeof: A, type: C, key: t, ref: Q !== void 0 ? Q : null, props: e }; } return T.Fragment = g, T.jsx = B, T.jsxs = B, T; } var Z = {}; /** * @license React * react-jsx-runtime.development.js * * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ var rA; function TA() { return rA || (rA = 1, process.env.NODE_ENV !== "production" && function() { function A(I) { if (I == null) return null; if (typeof I == "function") return I.$$typeof === S ? null : I.displayName || I.name || null; if (typeof I == "string") return I; switch (I) { case k: return "Fragment"; case F: return "Profiler"; case m: return "StrictMode"; case f: return "Suspense"; case CA: return "SuspenseList"; case W: return "Activity"; } if (typeof I == "object") switch (typeof I.tag == "number" && console.error( "Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue." ), I.$$typeof) { case K: return "Portal"; case gA: return (I.displayName || "Context") + ".Provider"; case H: return (I._context.displayName || "Context") + ".Consumer"; case BA: var E = I.render; return I = I.displayName, I || (I = E.displayName || E.name || "", I = I !== "" ? "ForwardRef(" + I + ")" : "ForwardRef"), I; case tA: return E = I.displayName || null, E !== null ? E : A(I.type) || "Memo"; case QA: E = I._payload, I = I._init; try { return A(I(E)); } catch { } } return null; } function g(I) { return "" + I; } function B(I) { try { g(I); var E = !1; } catch { E = !0; } if (E) { E = console; var n = E.error, i = typeof Symbol == "function" && Symbol.toStringTag && I[Symbol.toStringTag] || I.constructor.name || "Object"; return n.call( E, "The provided key is an unsupported type %s. This value must be coerced to a string before using it here.", i ), g(I); } } function C(I) { if (I === k) return "<>"; if (typeof I == "object" && I !== null && I.$$typeof === QA) return "<...>"; try { var E = A(I); return E ? "<" + E + ">" : "<...>"; } catch { return "<...>"; } } function Q() { var I = R.A; return I === null ? null : I.getOwner(); } function e() { return Error("react-stack-top-frame"); } function t(I) { if (v.call(I, "key")) { var E = Object.getOwnPropertyDescriptor(I, "key").get; if (E && E.isReactWarning) return !1; } return I.key !== void 0; } function r(I, E) { function n() { _ || (_ = !0, console.error( "%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)", E )); } n.isReactWarning = !0, Object.defineProperty(I, "key", { get: n, configurable: !0 }); } function a() { var I = A(this.type); return U[I] || (U[I] = !0, console.error( "Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release." )), I = this.props.ref, I !== void 0 ? I : null; } function l(I, E, n, i, w, c, L, x) { return n = c.ref, I = { $$typeof: p, type: I, key: E, props: c, _owner: w }, (n !== void 0 ? n : null) !== null ? Object.defineProperty(I, "ref", { enumerable: !1, get: a }) : Object.defineProperty(I, "ref", { enumerable: !1, value: null }), I._store = {}, Object.defineProperty(I._store, "validated", { configurable: !1, enumerable: !1, writable: !0, value: 0 }), Object.defineProperty(I, "_debugInfo", { configurable: !1, enumerable: !1, writable: !0, value: null }), Object.defineProperty(I, "_debugStack", { configurable: !1, enumerable: !1, writable: !0, value: L }), Object.defineProperty(I, "_debugTask", { configurable: !1, enumerable: !1, writable: !0, value: x }), Object.freeze && (Object.freeze(I.props), Object.freeze(I)), I; } function M(I, E, n, i, w, c, L, x) { var s = E.children; if (s !== void 0) if (i) if (O(s)) { for (i = 0; i < s.length; i++) u(s[i]); Object.freeze && Object.freeze(s); } else console.error( "React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead." ); else u(s); if (v.call(E, "key")) { s = A(I); var h = Object.keys(E).filter(function(UA) { return UA !== "key"; }); i = 0 < h.length ? "{key: someKey, " + h.join(": ..., ") + ": ...}" : "{key: someKey}", o[s + i] || (h = 0 < h.length ? "{" + h.join(": ..., ") + ": ...}" : "{}", console.error( `A props object containing a "key" prop is being spread into JSX: let props = %s; <%s {...props} /> React keys must be passed directly to JSX without using spread: let props = %s; <%s key={someKey} {...props} />`, i, s, h, s ), o[s + i] = !0); } if (s = null, n !== void 0 && (B(n), s = "" + n), t(E) && (B(E.key), s = "" + E.key), "key" in E) { n = {}; for (var EA in E) EA !== "key" && (n[EA] = E[EA]); } else n = E; return s && r( n, typeof I == "function" ? I.displayName || I.name || "Unknown" : I ), l( I, s, c, w, Q(), n, L, x ); } function u(I) { typeof I == "object" && I !== null && I.$$typeof === p && I._store && (I._store.validated = 1); } var Y = aA, p = Symbol.for("react.transitional.element"), K = Symbol.for("react.portal"), k = Symbol.for("react.fragment"), m = Symbol.for("react.strict_mode"), F = Symbol.for("react.profiler"), H = Symbol.for("react.consumer"), gA = Symbol.for("react.context"), BA = Symbol.for("react.forward_ref"), f = Symbol.for("react.suspense"), CA = Symbol.for("react.suspense_list"), tA = Symbol.for("react.memo"), QA = Symbol.for("react.lazy"), W = Symbol.for("react.activity"), S = Symbol.for("react.client.reference"), R = Y.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, v = Object.prototype.hasOwnProperty, O = Array.isArray, G = console.createTask ? console.createTask : function() { return null; }; Y = { "react-stack-bottom-frame": function(I) { return I(); } }; var _, U = {}, q = Y["react-stack-bottom-frame"].bind( Y, e )(), j = G(C(e)), o = {}; Z.Fragment = k, Z.jsx = function(I, E, n, i, w) { var c = 1e4 > R.recentlyCreatedOwnerStacks++; return M( I, E, n, !1, i, w, c ? Error("react-stack-top-frame") : q, c ? G(C(I)) : j ); }, Z.jsxs = function(I, E, n, i, w) { var c = 1e4 > R.recentlyCreatedOwnerStacks++; return M( I, E, n, !0, i, w, c ? Error("react-stack-top-frame") : q, c ? G(C(I)) : j ); }; }()), Z; } var iA; function ZA() { return iA || (iA = 1, process.env.NODE_ENV === "production" ? V.exports = xA() : V.exports = TA()), V.exports; } var N = ZA(); function DA({ length: A, batchSize: g = 20, interval: B = 50, startIndex: C = 0 }) { const [Q, e] = eA(C), t = IA(null), r = IA(null); return X(() => { let a = !0; const l = () => { e((M) => { const u = Math.min(M + g, A); return u < A && a && (t.current = setTimeout(() => { r.current = requestAnimationFrame(l); }, B)), u; }); }; return l(), () => { a = !1, t.current && clearTimeout(t.current), r.current && cancelAnimationFrame(r.current); }; }, [A, g, B]), Array.from({ length: Q - C }, (a, l) => l + C); } function DI({ items: A, batchSize: g, interval: B, startIndex: C, renderItem: Q }) { const e = DA({ length: A.length, batchSize: g, interval: B, startIndex: C }); return /* @__PURE__ */ N.jsx(N.Fragment, { children: e.map((t) => Q(A[t], t)) }); } function XA({ itemCount: A, itemSize: g = 45, horizontal: B = !1, preRenderedItemCount: C = 0 }) { const Q = IA(null), e = IA(null), t = B ? "scrollLeft" : "scrollTop"; X(() => { e.current && (B ? e.current.style.width = `${A * g}px` : e.current.style.height = `${A * g}px`); }, [A, g, B]); const r = nA( (l) => { Q.current && (Q.current[t] = l); }, [t] ), a = nA( (l) => { const M = l * g; r(M); }, [g, r] ); return { outerContainerRef: Q, innerContainerRef: e, scrollToOffset: r, scrollToItem: a }; } const pA = "data:application/wasm;base64,AGFzbQEAAAAByAEfYAJ/fwBgAn9/AX9gA39/fwF/YAF/AGADf39/AGAEf39/fwF/YAAAYAV/f39/fwBgBH9/f38AYAZ/f39/f38Bf2AFf39/f38Bf2AAAn9/YAJ/bwBgAn9/AW9gAXwBb2ACb38Bb2ABbwF/YAABb2ACb28Bf2ADb29vAW9gAX8Bf2AAAX9gBn9/f39/fwBgBH9/f38Cf39gBX9/fH9/AGAEf3x/fwBgBX9/fn9/AGAEf35/fwBgBX9/fX9/AGAEf31/fwBgAW8BbwLIBAoeLi9yZWFjdF9yZW5kZXJfd2F2ZV93YXNtX2JnLmpzFV9fd2JpbmRnZW5fc3RyaW5nX2dldAAMHi4vcmVhY3RfcmVuZGVyX3dhdmVfd2FzbV9iZy5qcxVfX3diaW5kZ2VuX3N0cmluZ19uZXcADR4uL3JlYWN0X3JlbmRlcl93YXZlX3dhc21fYmcuanMVX193YmluZGdlbl9udW1iZXJfbmV3AA4eLi9yZWFjdF9yZW5kZXJfd2F2ZV93YXNtX2JnLmpzGl9fd2JnX2dldF9iOWI5MzA0N2ZlM2NmNDViAA8eLi9yZWFjdF9yZW5kZXJfd2F2ZV93YXNtX2JnLmpzHV9fd2JnX2xlbmd0aF9lMmQyYTQ5MTMyYzFiMjU2ABAeLi9yZWFjdF9yZW5kZXJfd2F2ZV93YXNtX2JnLmpzGl9fd2JnX25ld181ZTBiZTczNTIxYmM4YzE3ABEeLi9yZWFjdF9yZW5kZXJfd2F2ZV93YXNtX2JnLmpzGl9fd2JnX2hhc183NmNhNjZlMmYyNWQxYzQ5ABIeLi9yZWFjdF9yZW5kZXJfd2F2ZV93YXNtX2JnLmpzGl9fd2JnX3NldF84ZmM2YmY4YTViMTA3MWQxABMeLi9yZWFjdF9yZW5kZXJfd2F2ZV93YXNtX2JnLmpzEF9fd2JpbmRnZW5fdGhyb3cAAB4uL3JlYWN0X3JlbmRlcl93YXZlX3dhc21fYmcuanMfX193YmluZGdlbl9pbml0X2V4dGVybnJlZl90YWJsZQAGAz8+FAIDAgABFQABAAYABAkABwMWCAEAAgIAAAAFAQIAFwUJAQcYChocAwgCAwQeAwEFBAIBAAAAAQABBgEAAAAECQJwAR8fbwCAAQUDAQARBgkBfwFBgIDAAAsHwwEKBm1lbW9y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JCADQiA3AhwgA0EANgIUIANBADYCDAJ/AkACQAJAIAIoAhAiCkUEQCACKAIMIgBFDQEgAigCCCIBIABBA3RqIQQgAEEBa0H/////AXFBAWohByACKAIAIQADQCAAQQRqKAIAIgUEQCADKAIoIAAoAgAgBSADKAIsKAIMEQIADQQLIAEoAgAgA0EMaiABQQRqKAIAEQEADQMgAEEIaiEAIAFBCGoiASAERw0ACwwBCyACKAIUIgBFDQAgAEEFdCELIABBAWtB////P3FBAWohByACKAIIIQUgAigCACEAA0AgAEEEaigCACIBBEAgAygCKCAAKAIAIAEgAygCLCgCDBECAA0DCyADIAggCmoiAUEQaigCADYCHCADIAFBHGotAAA6ACQgAyABQRhqKAIANgIgIAFBDGooAgAhBEEAIQlBACEGAkACQAJAIAFBCGooAgBBAWsOAgACAQsgBEEDdCAFaiIMKAIADQEgDCgCBCEEC0EBIQYLIAMgBDYCECADIAY2AgwgAUEEaigCACEEAkACQAJAIAEoAgBBAWsOAgACAQsgBEEDdCAFaiIGKAIADQEgBigCBCEEC0EBIQkLIAMgBDYCGCADIAk2AhQgBSABQRRqKAIAQQN0aiIBKAIAIANBDGogAUEEaigCABEBAA0CIABBCGohACALIAhBIGoiCEcNAAsLIAcgAigCBE8NASADKAIoIAIoAgAgB0EDdGoiACgCACAAKAIEIAMoAiwoAgwRAgBFDQELQQEMAQtBAAsgA0EwaiQAC/kDAQJ/IAAgAWohAgJAAkAgACgCBCIDQQFxDQAgA0ECcUUNASAAKAIAIgMgAWohASAAIANrIgBBmJDAACgCAEYEQCACKAIEQQNxQQNHDQFBkJDAACABNgIAIAIgAigCBEF+cTYCBCAAIAFBAXI2AgQgAiABNgIADAILIAAgAxARCwJAAkACQCACKAIEIgNBAnFFBEAgAkGckMAAKAIARg0CIAJBmJDAACgCAEYNAyACIANBeHEiAhARIAAgASACaiIBQQFyNgIEIAAgAWogATYCACAAQZiQwAAoAgBHDQFBkJDAACABNgIADwsgAiADQX5xNgIEIAAgAUEBcjYCBCAAIAFqIAE2AgALIAFBgAJPBEAgACABEBMPCyABQfgBcUGAjsAAaiECAn9BiJDAACgCACIDQQEgAUED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gBA3AgAgAkEIaiIDIAFBCGoiASgCADYCACABQQA2AgBB0YzAAC0AABogAiAFNwMAQQxBBBA8IgFFBEBBBEEMEEYACyABIAIpAwA3AgAgAUEIaiADKAIANgIAIABB1InAADYCBCAAIAE2AgAgAkFAayQAC9QBAgR/AX4jAEEgayIDJAACQAJAIAEgASACaiICSwRAQQAhAQwBC0EAIQFBCCACIAAoAgAiBUEBdCIEIAIgBEsbIgIgAkEITRsiBK0iB0IgiFBFDQAgB6ciBkH/////B0sNACADIAUEfyADIAU2AhwgAyAAKAIENgIUQQEFQQALNgIYIANBCGpBASAGIANBFGoQHCADKAIIQQFHDQEgAygCECECIAMoAgwhAQsgASACQaiHwAAQNQALIAMoAgwhASAAIAQ2AgAgACABNgIEIANBIGokAAveAQACQAJAAkACQAJAAkACQAJAIAEOCgcGBgQFBgEDAAIGCyAAKQAAQtDCnavG6Nu77gBSDQUgAiADaiICIAUgAiAFSRshAgwFCyAAQeSCwABBBhAfDQQgAiADayIDQQAgAiADTxshAgwECyAAQeqCwABBCRAfDQMgAiAEaiICIAUgAiAFSRshAgwDCyAAQfOCwABBBxAfDQIgAiAEayIDQQAgAiADTxshAgwCCyACIAUgAEH6gsAAQQMQHxshAgwBCyACQQAgACgAAEHI3rWrBkcbIQILIAAgARBBCyACC8EBAgN/AX4jAEEwayICJAAgASgCAEGAgICAeEYEQCABKAIMIQMgAkEUaiIEQQA2AgAgAkKAgICAEDcCDCACQSBqIAMoAgAiA0EIaikCADcDACACQShqIANBEGopAgA3AwAgAiADKQIANwMYIAJBDGpBuIfAACACQRhqEA0aIAJBCGogBCgCACIDNgIAIAIgAikCDCIFNwMAIAFBCGogAzYCACABIAU3AgALIABB1InAADYCBCAAIAE2AgAgAkEwaiQAC5YCAQJ/IwBBIGsiBSQAQeyMwABB7IzAACgCACIGQQFqNgIAAkACf0EAIAZBAEgNABpBAUG4kMAALQAADQAaQbiQwABBAToAAEG0kMAAQbSQwAAoAgBBAWo2AgBBAgtB/wFxIgZBAkcEQCAGQQFxRQ0BIAVBCGogACABKAIYEQAAAAtB4IzAACgCACIGQQBIDQBB4IzAACAGQQFqNgIAQeCMwABB5IzAACgCAAR/IAUgACABKAIUEQAAIAUgBDoAHSAFIAM6ABwgBSACNgIYIAUgBSkDADcCEEHkjMAAKAIAIAVBEGpB6IzAACgCACgCFBEAAEHgjMAAKAIAQQFrBSAGCzYCAEG4kMAAQQA6AAAgA0UNAAALAAvcAQEFfwJAAkAgAEGEAUkNACAA0G8mARAUQcSMwAAoAgAhBEHIjMAAKAIAIQFBxIzAAEIANwIAQcCMwAAoAgAhAkG8jMAAKAIAIQNBvIzAAEIENwIAQbiMwAAoAgAhBUG4jMAAQQA2AgAgACABSQ0BIAAgAWsiACACTw0BIAMgAEECdGogBDYCAEHIjMAAIAE2AgBBxIzAACAANgIAQcCMwAAgAjYCAEG8jMAAKAIAQbyMwAAgAzYCAEG4jMAAKAIAIQBBuIzAACAFNgIAIABFDQAgAEECdBBBCw8LAAuhAQEBfyMAQRBrIgYkAAJAIAEEQCAGQQRqIAEgAyAEIAUgAigCEBEHAAJAIAYoAgQiAiAGKAIMIgFNBEAgBigCCCEFDAELIAJBAnQhAiAGKAIIIQMgAUUEQEEEIQUgAyACEEEMAQsgAyACQQQgAUECdCICEDkiBUUNAgsgACABNgIEIAAgBTYCACAGQRBqJAAPCxBDAAtBBCACQfCDwAAQNQALiQEBAX8CQCACQQBOBEACfyADKAIEBEACQCADKAIIIgRFBEAMAQsgAygCACAEIAEgAhA5DAILCyABIAJFDQAaQdGMwAAtAAAaIAIgARA8CyIDBEAgACACNgIIIAAgAzYCBCAAQQA2AgAPCyAAIAI2AgggACABNgIEDAELIABBADYCBAsgAEEBNgIAC3kBAX8jAEEgayICJAACfyAAKAIAQYCAgIB4RwRAIAEgACgCBCAAKAIIEDsMAQsgAkEQaiAAKAIMKAIAIgBBCGopAgA3AwAgAkEYaiAAQRBqKQIANwMAIAIgACkCADcDCCABKAIcIAEoAiAgAkEIahANCyACQSBqJAALZgAjAEEwayIAJABB0IzAAC0AAARAIABBAjYCDCAAQZyJwAA2AgggAEIBNwIUIAAgATYCLCAAIABBLGqtQoCAgIDgAYQ3AyAgACAAQSBqNgIQIABBCGpBxInAABAnAAsgAEEwaiQAC0MBA38CQCACRQ0AA0AgAC0AACIEIAEtAAAiBUYEQCAAQQFqIQAgAUEBaiEBIAJBAWsiAg0BDAILCyAEIAVrIQMLIAMLQQEBfyACIAAoAgAgACgCCCIDa0sEQCAAIAMgAhAWIAAoAgghAwsgACgCBCADaiABIAIQCxogACACIANqNgIIQQALTQIBfwFvIAEoAgQiAiABKAIITwR/QQAFIAEgAkEBajYCBCABKAIAKAIAJQEgAhADIQMQECIBIAMmAUEBCyECIAAgATYCBCAAIAI2AgALTQECf0HRjMAALQAAGiABKAIEIQIgASgCACEDQQhBBBA8IgFFBEBBBEEIEEYACyABIAI2AgQgASADNgIAIABB5InAADYCBCAAIAE2AgALQQEBfyMAQSBrIgIkACACQQA2AhAgAkEBNgIEIAJCBDcCCCACQS42AhwgAiAANgIYIAIgAkEYajYCACACIAEQJwALOAACQCACQYCAxABGDQAgACACIAEoAhARAQBFDQBBAQ8LIANFBEBBAA8LIAAgA0EAIAEoAgwRAgALKwACQCAAIAEQK0UNACAABEBB0YzAAC0AABogACABEDwiAUUNAQsgAQ8LAAtSACABIAJsIgFFBEAjAEEgayIAJAAgAEEANgIYIABBATYCDCAAQayMwAA2AgggAEIENwIQIABBCGpB1ILAABAnAAsgAUEBdiAAaiIAIAAgAXBrC/oBAgJ/AX4jAEEQayICJAAgAkEBOwEMIAIgATYCCCACIAA2AgQjAEEQayIBJAAgAkEEaiIAKQIAIQQgASAANgIMIAEgBDcCBCMAQRBrIgAkACABQQRqIgEoAgAiAigCDCEDAkACQAJAAkAgAigCBA4CAAECCyADDQFBASECQQAhAwwCCyADDQAgAigCACICKAIEIQMgAigCACECDAELIABBgICAgHg2AgAgACABNgIMIABBkIrAACABKAIEIAEoAggiAC0ACCAALQAJEBkACyAAIAM2AgQgACACNgIAIABB9InAACABKAIEIAEoAggiAC0ACCAALQAJEBkAC8IFAQ5/IwBBEGsiDCQAIwBBEGsiBiQAIAIgA0ECdCIHaiERAkACQAJAA0AgBCAHRg0BIAIgBGogBEEEaiEEKAIAIgUgAEkgASAFTXINAAtB0YzAAC0AABpBEEEEEDwiB0UNASACIARqIQQgByAFNgIAIAZBATYCDCAGIAc2AgggBkEENgIEQQEhCANAIAQgEUcEQCAEKAIAIQ4gBEEEaiEEIAEgDk0gACAOS3INASAGKAIEIAhGBEBBACEKIwBBIGsiCSQAAkACQCAIQQFqIgcgBkEEaiIPKAIAIg1BAXQiBSAFIAdJGyIFQf////8DSw0AQQQgBSAFQQRNGyIHQQJ0IgtB/P///wdLDQAgCSANBH8gCSANQQJ0NgIcIAkgDygCBDYCFEEEBUEACzYCGCAJQQhqIQoCfyAJQRRqIg0oAgQEQCANKAIIIgVFBEBBBCALRQ0CGkHRjMAALQAAGiALQQQQPAwCCyANKAIAIAVBBCALEDkMAQtBBCALRQ0AGkHRjMAALQAAGiALQQQQPAshBSAKIAs2AgggCiAFQQQgBRs2AgQgCiAFRTYCACAJKAIIQQFHDQEgCSgCECEQIAkoAgwhCgsgCiAQQcyAwAAQNQALIAkoAgwhBSAPIAc2AgAgDyAFNgIEIAlBIGokACAGKAIIIQcLIAcgCEECdGogDjYCACAGIAhBAWoiCDYCDAwBCwsgBigCCCEAIAYoAgQhBAwCC0EEIQBBACEEDAELQQRBEEG0gcAAEDUACyADBEAgAiADQQJ0EEELAkACQAJAIAQgCE0EQCAAIQQMAQsgBEECdCEBIAhFBEBBBCEEIAAgARBBDAELIAAgAUEEIAhBAnQiABA5IgRFDQELIAwgCDYCBCAMIAQ2AgAgBkEQaiQADAELQQQgAEG4gsAAEDUACyAMKAIAIAwoAgQgDEEQaiQACx8AAkAgASADECsEQCAAIAEgAyACEDkiAA0BCwALIAALHQAgAEUEQBBDAAsgACACIAMgBCAFIAEoAhARCgALGQEBf0GAgICAeCABayAATyACIAFpQQFGGwsbACAARQRAEEMACyAAIAIgAyAEIAEoAhARCAALGwAgAEUEQBBDAAsgACACIAMgBCABKAIQERkACxsAIABFBEAQQwALIAAgAiADIAQgASgCEBEFAAsbACAARQRAEEMACyAAIAIgAyAEIAEoAhARGwALGwAgAEUEQBBDAAsgACACIAMgBCABKAIQER0ACyUBAX8gACgCACIBQYCAgIB4ckGAgICAeEcEQCAAKAIEIAEQQQsLGQAgAEUEQBBDAAsgACACIAMgASgCEBEEAAsXACAARQRAEEMACyAAIAIgASgCEBEBAAsXAQF/IAAoAgAiAQRAIAAoAgQgARBBCwtBACAARQRAIwBBIGsiACQAIABBADYCGCAAQQE2AgwgAEHAisAANgIIIABCBDcCECAAQQhqIAIQJwALIAAgARBGAAvgAwEHfxAQIgIgACYBIwBBQGoiASQAIAEgAjYCIBAFIQAQECICIAAmASABIAI2AiQgAUEoaiIDIAFBIGoiBCgCACUBEAQ2AgggA0EANgIEIAMgBDYCACABQQA2AjQgAUEYaiADECEgASgCGARAIAEoAhwhBANAIAEgASgCNCIGQQFqNgI0IAFBEGogBCUBEAACfyABKAIQIgNFBEBBASEDQQAMAQsgASgCFAshAiABIAMgAhA4NgI8IAFBJGooAgAlASABQTxqKAIAJQEQBkEARyEHIAEoAjwhBQJAIAdFBEAgBUGEAU8EQCAFEBoLIAEgAyACEDg2AjggAgRAIAMgAhBBCyAGuBACIQAQECICIAAmASABIAI2AjwgAUEkaigCACUBIAFBOGooAgAlASABQTxqKAIAJQEQByEAEBAiAiAAJgEgAkGEAU8EQCACEBoLIAEoAjwiAkGEAU8EQCACEBoLIAEoAjgiAkGEAUkNASACEBoMAQsgBUGEAU8EQCAFEBoLIAJFDQAgAyACEEELIARBhAFPBEAgBBAaCyABQQhqIAFBKGoQISABKAIMIQQgASgCCA0ACyABKAIkIQILIAEoAiAiA0GEAU8EQCADEBoLIAFBQGskACACJQEgAhAaCxwAIABBADYCECAAQgA3AgggAEKAgICAwAA3AgALFgEBbyAAIAEQASECEBAiACACJgEgAAvOBgEGfwJ/AkACQAJAAkACQCAAQQRrIgUoAgAiBkF4cSIEQQRBCCAGQQNxIgcbIAFqTwRAIAdBACABQSdqIgkgBEkbDQECQAJAIAJBCU8EQCACIAMQDyIIDQFBAAwJCyADQcz/e0sNAUEQIANBC2pBeHEgA0ELSRshAQJAIAdFBEAgAUGAAkkgBCABQQRySXIgBCABa0GBgAhPcg0BDAkLIABBCGsiAiAEaiEHAkACQAJAAkAgASAESwRAIAdBnJDAACgCAEYNBCAHQZiQwAAoAgBGDQIgBygCBCIGQQJxDQUgBkF4cSIGIARqIgQgAUkNBSAHIAYQESAEIAFrIgNBEEkNASAFIAEgBSgCAEEBcXJBAnI2AgAgASACaiIBIANBA3I2AgQgAiAEaiICIAIoAgRBAXI2AgQgASADEA4MDQsgBCABayIDQQ9LDQIMDAsgBSAEIAUoAgBBAXFyQQJyNgIAIAIgBGoiASABKAIEQQFyNgIEDAsLQZCQwAAoAgAgBGoiBCABSQ0CAkAgBCABayIDQQ9NBEAgBSAGQQFxIARyQQJyNgIAIAIgBGoiASABKAIEQQFyNgIEQQAhA0EAIQEMAQsgBSABIAZBAXFyQQJyNgIAIAEgAmoiASADQQFyNgIEIAIgBGoiAiADNgIAIAIgAigCBEF+cTYCBAtBmJDAACABNgIAQZCQwAAgAzYCAAwKCyAFIAEgBkEBcXJBAnI2AgAgASACaiIBIANBA3I2AgQgByAHKAIEQQFyNgIEIAEgAxAODAkLQZSQwAAoAgAgBGoiBCABSw0HCyADEAoiAUUNASABIABBfEF4IAUoAgAiAUEDcRsgAUF4cWoiASADIAEgA0kbEAsgABAMDAgLIAggACADIAEgASADSxsQCxogBSgCACICQXhxIgMgAUEEQQggAkEDcSICG2pJDQMgAkEAIAMgCUsbDQQgABAMCyAIDAYLQfmHwABBqIjAABAjAAtBuIjAAEHoiMAAECMAC0H5h8AAQaiIwAAQIwALQbiIwABB6IjAABAjAAsgBSABIAZBAXFyQQJyNgIAIAEgAmoiAiAEIAFrIgFBAXI2AgRBlJDAACABNgIAQZyQwAAgAjYCACAADAELIAALCw0AIAEEQCAAIAEQQQsLFgAgACgCHCABIAIgACgCICgCDBECAAsZAAJ/IAFBCU8EQCABIAAQDwwBCyAAEAoLCyAAIABC4+DWofail51WNwMIIABC0Jamw5Le7cA3NwMACyIAIABC7bqtts2F1PXjADcDCCAAQviCmb2V7sbFuX83AwALEwAgAEHkicAANgIEIAAgATYCAAsQACABIAAoAgAgACgCBBA7C1sBAn8CQAJAIABBBGsoAgAiAkF4cSIDQQRBCCACQQNxIgIbIAFqTwRAIAJBACADIAFBJ2pLGw0BIAAQDAwCC0H5h8AAQaiIwAAQIwALQbiIwABB6IjAABAjAAsL7QYBC38gACgCACEGIAEhAiMAQRBrIgkkAEEKIQMgBiIAQegHTwRAIAAhAQNAIAlBBmogA2oiBEEDayABIAFBkM4AbiIAQZDOAGxrIgdB//8DcUHkAG4iBUEBdCIIQcmKwABqLQAAOgAAIARBBGsgCEHIisAAai0AADoAACAEQQFrIAcgBUHkAGxrQf//A3FBAXQiB0HJisAAai0AADoAACAEQQJrIAdByIrAAGotAAA6AAAgA0EEayEDIAFB/6ziBEsgACEBDQALCwJAIABBCU0EQCAAIQEMAQsgAyAJakEFaiAAIABB//8DcUHkAG4iAUHkAGxrQf//A3FBAXQiAEHJisAAai0AADoAACADQQJrIgMgCUEGamogAEHIisAAai0AADoAAAtBACAGIAEbRQRAIANBAWsiAyAJQQZqaiABQQF0QR5xQcmKwABqLQAAOgAACwJ/IAlBBmogA2ohBEEKIANrIQZBK0GAgMQAIAIoAhQiAEEBcSIBGyEDIABBBHFFRSEHIAIoAgBFBEBBASACKAIcIgAgAigCICIBIAMgBxAkDQEaIAAgBCAGIAEoAgwRAgAMAQsCQAJAAkAgAigCBCIFIAEgBmoiCE0EQCACKAIcIgAgAigCICIBIAMgBxAkRQ0BQQEMBAsgAEEIcUUNASACKAIQIQsgAkEwNgIQIAItABghDEEBIQEgAkEBOgAYIAIoAhwiACACKAIgIgogAyAHECQNAiAFIAhrQQFqIQECQANAIAFBAWsiAUUNASAAQTAgCigCEBEBAEUNAAtBAQwEC0EBIAAgBCAGIAooAgwRAgANAxogAiAMOgAYIAIgCzYCEEEADAMLIAAgBCAGIAEoAgwRAgAhAQwBCyAFIAhrIQACQAJAAkBBASACLQAYIgEgAUEDRhsiAUEBaw4CAAECCyAAIQFBACEADAELIABBAXYhASAAQQFqQQF2IQALIAFBAWohASACKAIQIQggAigCICEFIAIoAhwhAgJAA0AgAUEBayIBRQ0BIAIgCCAFKAIQEQEARQ0AC0EBDAILQQEhASACIAUgAyAHECQNACACIAQgBiAFKAIMEQIADQBBACEBA0BBACAAIAFGDQIaIAFBAWohASACIAggBSgCEBEBAEUNAAsgAUEBayAASQwBCyABCyAJQRBqJAALDABBgITAAEEyEAgACw0AIABBuIfAACABEA0LDAAgACABKQIANwMACxkAIAAgAUHcjMAAKAIAIgBBDyAAGxEAAAALCQAgAEEANgIACwvEDAIAQYCAwAALsQwvcnVzdGMvMDVmOTg0NmY4OTNiMDlhMWJlMWZjODU2MGUzM2ZjM2M4MTVjZmVjYi9saWJyYXJ5L2FsbG9jL3NyYy9yYXdfdmVjLnJzAAAQAEwAAAAqAgAAEQAAAC9ydXN0Yy8wNWY5ODQ2Zjg5M2IwOWExYmUxZmM4NTYwZTMzZmMzYzgxNWNmZWNiL2xpYnJhcnkvY29yZS9zcmMvaXRlci90cmFpdHMvaXRlcmF0b3IucnNcABAAWAAAALMHAAAJAAAAQzpcVXNlcnNcQ2hyaXN0b3NcLmNhcmdvXHJlZ2lzdHJ5XHNyY1xpbmRleC5jcmF0ZXMuaW8tMTk0OWNmOGM2YjViNTU3Zlx3YXNtLWJpbmRnZW4tMC4yLjEwMFxzcmNcY29udmVydFxzbGljZXMucnMAAADEABAAcQAAACQBAAAOAAAAc3JjXGxpYi5ycwAASAEQAAoAAAAPAAAAFwAAAFBhZ2VVcEFycm93RG93bkFycm93VXBFbmRDOlxVc2Vyc1xDaHJpc3Rvc1wuY2FyZ29ccmVnaXN0cnlcc3JjXGluZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmXHdhc20tYmluZGdlbi0wLjIuMTAwXHNyY1xjb252ZXJ0XHNsaWNlcy5ycwAAfQEQAHEAAAAkAQAADgAAAGNsb3N1cmUgaW52b2tlZCByZWN1cnNpdmVseSBvciBhZnRlciBiZWluZyBkcm9wcGVkTGF6eSBpbnN0YW5jZSBoYXMgcHJldmlvdXNseSBiZWVuIHBvaXNvbmVkMgIQACoAAABDOlxVc2Vyc1xDaHJpc3Rvc1wuY2FyZ29ccmVnaXN0cnlcc3JjXGluZGV4LmNyYXRlcy5pby0xOTQ5Y2Y4YzZiNWI1NTdmXG9uY2VfY2VsbC0xLjIxLjNcc3JjXGxpYi5ycwAAZAIQAGIAAAAIAwAAGQAAAHJlZW50cmFudCBpbml0AADYAhAADgAAAGQCEABiAAAAegIAAA0AAAAvcnVzdGMvMDVmOTg0NmY4OTNiMDlhMWJlMWZjODU2MGUzM2ZjM2M4MTVjZmVjYi9saWJyYXJ5L2FsbG9jL3NyYy9zdHJpbmcucnMAAAMQAEsAAACNBQAAGwAAAC9ydXN0Yy8wNWY5ODQ2Zjg5M2IwOWExYmUxZmM4NTYwZTMzZmMzYzgxNWNmZWNiL2xpYnJhcnkvYWxsb2Mvc3JjL3Jhd192ZWMucnNcAxAATAAAACoCAAARAAAAEAAAAAwAAAAEAAAAEQAAABIAAAATAAAAL3J1c3QvZGVwcy9kbG1hbGxvYy0wLjIuNy9zcmMvZGxtYWxsb2MucnNhc3NlcnRpb24gZmFpbGVkOiBwc2l6ZSA+PSBzaXplICsgbWluX292ZXJoZWFkANADEAApAAAAqAQAAAkAAABhc3NlcnRpb24gZmFpbGVkOiBwc2l6ZSA8PSBzaXplICsgbWF4X292ZXJoZWFkAADQAxAAKQAAAK4EAAANAAAAbWVtb3J5IGFsbG9jYXRpb24gb2YgIGJ5dGVzIGZhaWxlZAAAeAQQABUAAACNBBAADQAAAGxpYnJhcnkvc3RkL3NyYy9hbGxvYy5yc6wEEAAYAAAAYwEAAAkAAAAQAAAADAAAAAQAAAAUAAAAAAAAAAgAAAAEAAAAFQAAAAAAAAAIAAAABAAAABYAAAAXAAAAGAAAABkAAAAaAAAAEAAAAAQAAAAbAAAAHAAAAB0AAAAeAAAAY2FwYWNpdHkgb3ZlcmZsb3cAAAAsBRAAEQAAADAwMDEwMjAzMDQwNTA2MDcwODA5MTAxMTEyMTMxNDE1MTYxNzE4MTkyMDIxMjIyMzI0MjUyNjI3MjgyOTMwMzEzMjMzMzQzNTM2MzczODM5NDA0MTQyNDM0NDQ1NDY0NzQ4NDk1MDUxNTI1MzU0NTU1NjU3NTg1OTYwNjE2MjYzNjQ2NTY2Njc2ODY5NzA3MTcyNzM3NDc1NzY3Nzc4Nzk4MDgxODI4Mzg0ODU4Njg3ODg4OTkwOTE5MjkzOTQ5NTk2OTc5ODk5YXR0ZW1wdCB0byBkaXZpZGUgYnkgemVybwAAABAGEAAZAEHMjMAACwENAHwJcHJvZHVjZXJzAghsYW5ndWFnZQEEUnVzdAAMcHJvY2Vzc2VkLWJ5AwVydXN0Yx0xLjg2LjAgKDA1Zjk4NDZmOCAyMDI1LTAzLTMxKQZ3YWxydXMGMC4yMy4zDHdhc20tYmluZGdlbhMwLjIuMTAwICgyNDA1ZWMyYjQpAEkPdGFyZ2V0X2ZlYXR1cmVzBCsPbXV0YWJsZS1nbG9iYWxzKwhzaWduLWV4dCsPcmVmZXJlbmNlLXR5cGVzKwptdWx0aXZhbHVl", KA = async (A = {}, g) => { let B; if (g.startsWith("data:")) { const C = g.replace(/^data:.*?base64,/, ""); let Q; if (typeof Buffer == "function" && typeof Buffer.from == "function") Q = Buffer.from(C, "base64"); else if (typeof atob == "function") { const e = atob(C); Q = new Uint8Array(e.length); for (let t = 0; t < e.length; t++) Q[t] = e.charCodeAt(t); } else throw new Error("Cannot decode base64-encoded data URL"); B = await WebAssembly.instantiate(Q, A); } else { const C = await fetch(g), Q = C.headers.get("Content-Type") || ""; if ("instantiateStreaming" in WebAssembly && Q.startsWith("application/wasm")) B = await WebAssembly.instantiateStreaming(C, A); else { const e = await C.arrayBuffer(); B = await WebAssembly.instantiate(e, A); } } return B.instance.exports; }; let D; function wA(A) { D = A; } let J = 0, z = null; function $() { return (z === null || z.byteLength === 0) && (z = new Uint8Array(D.memory.buffer)), z; } const HA = typeof TextEncoder > "u" ? (0, module.require)("util").TextEncoder : TextEncoder; let AA = new HA("utf-8"); const WA = typeof AA.encodeInto == "function" ? function(A, g) { return AA.encodeInto(A, g); } : function(A, g) { const B = AA.encode(A); return g.set(B), { read: A.length, written: B.length }; }; function lA(A, g, B) { if (B === void 0) { const r = AA.encode(A), a = g(r.length, 1) >>> 0; return $().subarray(a, a + r.length).set(r), J = r.length, a; } let C = A.length, Q = g(C, 1) >>> 0; const e = $(); let t = 0; for (; t < C; t++) { const r = A.charCodeAt(t); if (r > 127) break; e[Q + t] = r; } if (t !== C) { t !== 0 && (A = A.slice(t)), Q = B(Q, C, C = t + A.length * 3, 1) >>> 0; const r = $().subarray(Q + t, Q + C), a = WA(A, r); t += a.written, Q = B(Q, C, t, 1) >>> 0; } return J = t, Q; } function vA(A) { return A == null; } let b = null; function cA() { return (b === null || b.buffer.detached === !0 || b.buffer.detached === void 0 && b.buffer !== D.memory.buffer) && (b = new DataView(D.memory.buffer)), b; } const OA = typeof TextDecoder > "u" ? (0, module.require)("util").TextDecoder : TextDecoder; let fA = new OA("utf-8", { ignoreBOM: !0, fatal: !0 }); fA.decode(); function NA(A, g) { return A = A >>> 0, fA.decode($().subarray(A, A + g)); } let P = null; function yA() { return (P === null || P.byteLength === 0) && (P = new Uint32Array(D.memory.buffer)), P; } function qA(A, g) { const B = g(A.length * 4, 4) >>> 0; return yA().set(A, B / 4), J = A.length, B; } function VA(A, g) { return A = A >>> 0, yA().subarray(A / 4, A / 4 + g); } function uA(A, g, B) { const C = qA(B, D.__wbindgen_malloc), Q = J, e = D.get_visible_indexes(A, g, C, Q); var t = VA(e[0], e[1]).slice(); return D.__wbindgen_free(e[0], e[1] * 4, 4), t; } function MA(A, g, B) { return D.snap_to_batch_offset(A, g, B) >>> 0; } function FA(A, g, B, C, Q) { const e = lA(A, D.__wbindgen_malloc, D.__wbindgen_realloc), t = J; return D.compute_scroll_target(e, t, g, B, C, Q) >>> 0; } function GA(A, g) { return A[g >>> 0]; } function dA(A, g) { return A.has(g); } function YA(A) { return A.length; } function kA() { return /* @__PURE__ */ new Map(); } function RA(A, g, B) { return A.set(g, B); } function hA() { const A = D.__wbindgen_export_0, g = A.grow(4); A.set(0, void 0), A.set(g + 0, void 0), A.set(g + 1, null), A.set(g + 2, !0), A.set(g + 3, !1); } function bA(A) { return A; } function JA(A, g) { const B = g, C = typeof B == "string" ? B : void 0; var Q = vA(C) ? 0 : lA(C, D.__wbindgen_malloc, D.__wbindgen_realloc), e = J; cA().setInt32(A + 4 * 1, e, !0), cA().setInt32(A + 4 * 0, Q, !0); } function mA(A, g) { return NA(A, g); } function SA(A, g) { throw new Error(NA(A, g)); } URL = globalThis.URL; const y = await KA({ "./react_render_wave_wasm_bg.js": { __wbindgen_string_get: JA, __wbindgen_string_new: mA, __wbindgen_number_new: bA, __wbg_get_b9b93047fe3cf45b: GA, __wbg_length_e2d2a49132c1b256: YA, __wbg_new_5e0be73521bc8c17: kA, __wbg_has_76ca66e2f25d1c49: dA, __wbg_set_8fc6bf8a5b1071d1: RA, __wbindgen_throw: SA, __wbindgen_init_externref_table: hA } }, pA), zA = y.memory, PA = y.get_visible_indexes, $A = y.snap_to_batch_offset, AI = y.group_indexes, II = y.compute_scroll_target, gI = y.__wbindgen_export_0, BI = y.__wbindgen_malloc, CI = y.__wbindgen_realloc, QI = y.__wbindgen_free, _A = y.__wbindgen_start, EI = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ __proto__: null, __wbindgen_export_0: gI, __wbindgen_free: QI, __wbindgen_malloc: BI, __wbindgen_realloc: CI, __wbindgen_start: _A, compute_scroll_target: II, get_visible_indexes: PA, group_indexes: AI, memory: zA, snap_to_batch_offset: $A }, Symbol.toStringTag, { value: "Module" })); wA(EI); _A(); const eI = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ __proto__: null, __wbg_get_b9b93047fe3cf45b: GA, __wbg_has_76ca66e2f25d1c49: dA, __wbg_length_e2d2a49132c1b256: YA, __wbg_new_5e0be73521bc8c17: kA, __wbg_set_8fc6bf8a5b1071d1: RA, __wbg_set_wasm: wA, __wbindgen_init_externref_table: hA, __wbindgen_number_new: bA, __wbindgen_string_get: JA, __wbindgen_string_new: mA, __wbindgen_throw: SA, compute_scroll_target: FA, get_visible_indexes: uA, snap_to_batch_offset: MA }, Symbol.toStringTag, { value: "Module" })); let sA = !1, d = !1; async function tI() { if (sA) return d; try { await Promise.resolve().then(() => eI), d = !0; } catch (A) { console.warn("WASM init failed, falling back to JS:", A), d = !1; } return sA = !0, d; } function nI(A, g, B) { if (d) try { const C = new Uint32Array(B), Q = uA(A, g, C); return Array.from(Q); } catch (C) { console.warn("WASM execution failed, fallback to JS:", C); } return B.filter((C) => C >= A && C < g); } function oI(A, g, B) { if (d) try { return MA(A, g, B); } catch { console.warn("WASM snap failed, using JS fallback"); } const C = g * B; return Math.round(A / C) * B * g; } function rI(A, g, B, C, Q) { if (d) try { return FA( A, g, B, C, Q ); } catch { console.warn("WASM scrollTarget failed, fallback to JS"); } switch (A) { case "PageDown": return Math.min(g + B, Q); case "PageUp": return Math.max(g - B, 0); case "ArrowDown": return Math.min(g + C, Q); case "ArrowUp": return Math.max(g - C, 0); case "Home": return 0; case "End": return Q; default: return g; } } function iI(A, g) { if (g) return typeof g == "function" ? g(A) : A[g]; } function cI(A, g, B, C) { const Q = Math.floor(A / g); return iI(B[Q], C); } function sI({ items: A, itemHeight: g, containerHeight: B = 400, batchSize: C = 20, interval: Q = 60, overscan: e = 5, startIndex: t = 0, className: r, style: a, renderItem: l, renderSkeleton: M, scrollToIndex: u, outerElement: Y, innerElement: p, transition: K = !1, snapToBatch: k = !1, onEndReached: m, keyboardNavigation: F = !1, renderStickyHeader: H, groupByKey: gA }, BA) { X(() => { tI(); }, []); const { outerContainerRef: f, innerContainerRef: CA, scrollToOffset: tA, scrollToItem: QA } = XA({ itemCount: A.length, itemSize: g, preRenderedItemCount: 0 }), W = DA({ length: A.length, batchSize: C, interval: Q, startIndex: t }), [S, R] = eA(0), [v, O] = eA(B), G = Math.max(0, Math.floor(S / g) - e), _ = Math.min( A.length, Math.ceil((S + v) / g) + e ); LA(BA, () => ({ scrollTo: (o) => { const I = o * g; f.current?.scrollTo({ top: I, behavior: "smooth" }); }, scrollToOffset: (o) => { f.current?.scrollTo({ top: o, behavior: "smooth" }); }, getVisibleIndexes: () => nI(G, _, W) })), X(() => { const o = f.current; if (!o) return; let I = null; const E = () => { R(o.scrollTop), k && (I && clearTimeout(I), I = setTimeout(() => { const w = oI( o.scrollTop, g, C ); o.scrollTo({ top: w, behavior: "smooth" }); }, 150)), m && o.scrollTop + o.clientHeight >= o.scrollHeight - 10 && m(); }, n = (w) => { if (!F) return; const c = f.current; if (!c || !c.contains(document.activeElement)) return; const L = c.scrollHeight - c.clientHeight, x = rI( w.key, c.scrollTop, c.clientHeight, g, L ); c.scrollTo({ top: x, behavior: "smooth" }); }, i = new ResizeObserver(() => { O(o.clientHeight); }); return o.addEventListener("scroll", E), F && window.addEventListener("keydown", n), i.observe(o), R(o.scrollTop), O(o.clientHeight), () => { o.removeEventListener("scroll", E), F && window.removeEventListener("keydown", n), i.disconnect(), I && clearTimeout(I); }; }, [ f, k, g, C, m, F ]), X(() => { if (typeof u == "number" && f.current) { const o = u * g; f.current.scrollTo({ top: o }); } }, [u, g]); const U = cI(S, g, A, gA), q = Array.from({ length: _ - G }, (o, I) => { const E = G + I, n = W.includes(E); return /* @__PURE__ */ N.jsx( "div", { role: "listitem", style: { position: "absolute", top: E * g, left: 0, right: 0, opacity: K ? 0 : void 0, animation: K && n ? "fadeIn 0.3s ease forwards" : void 0 }, children: n ? l(A[E], E) : M?.(E) ?? null }, E ); }), j = (o, I) => typeof o == "string" ? aA.createElement(o, { ref: I.ref, role: "list", style: I.style, className: I.className, children: I.children, tabIndex: F ? 0 : void 0 }) : /* @__PURE__ */ N.jsx(o, { ...I }); return /* @__PURE__ */ N.jsxs(N.Fragment, { children: [ /* @__PURE__ */ N.jsx("style", { children: ` @keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } } ` }), j(Y || "div", { ref: f, className: r, style: { position: "relative", overflowY: "auto", height: B, ...a }, children: /* @__PURE__ */ N.jsxs(N.Fragment, { children: [ H && U && /* @__PURE__ */ N.jsx( "div", { style: { position: "sticky", top: 0, zIndex: 1, background: "white", borderBottom: "1px solid #ddd" }, children: H(U) } ), j(p || "div", { ref: CA, style: { position: "relative", height: A.length * g, width: "100%" }, children: q }) ] }) }) ] }); } const wI = jA(sI); export { DI as RenderWave, wI as VirtualRenderWave, rI as computeScrollTargetSafe, nI as getVisibleIndexesSafe, tI as initWasm, oI as snapToOffsetSafe, DA as useRenderWave, XA as useVirtualScrollCore };