(() => { function $parcel$export(e, n, v, s) { Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true}); } function $parcel$interopDefault(a) { return a && a.__esModule ? a.default : a; } var $parcel$global = globalThis; var parcelRequire = $parcel$global["parcelRequire2d1f"]; var parcelRegister = parcelRequire.register; parcelRegister("dCav9", function(module, exports) { $parcel$export(module.exports, "Dropdown", () => $f45dd14ce0054273$export$931cbfb6bfb85fc); var $lAN3N = parcelRequire("lAN3N"); var $63SH6 = parcelRequire("63SH6"); var $6j6Xp = parcelRequire("6j6Xp"); var $4WfNn = parcelRequire("4WfNn"); var $bTIRf = parcelRequire("bTIRf"); const $f45dd14ce0054273$export$931cbfb6bfb85fc = (prop)=>{ const local = (0, $4WfNn.useLocal)({ open: false, search: "", searchChanged: false, status: "init", itemsCache: prop.items, activeIdx: -1, listEl: null, listElTimeout: null, scrolled: false }); (0, $63SH6.useEffect)(()=>{ if (!local.open) { local.scrolled = false; local.render(); } }, [ local.open ]); const resetInputValue = ()=>{ if (prop.items) { const val = prop.value || ""; let idx = 0; for (const item of prop.items){ if (typeof item === "string" && item === val) { local.search = item; local.activeIdx = idx; } else if (typeof item === "object" && item.value === val) { local.search = item.label; local.activeIdx = idx; } local.searchChanged = false; idx++; } } }; if (local.status === "init" || prop.items !== local.itemsCache) { local.status = "ready"; local.itemsCache = prop.items; resetInputValue(); } const elProp = { ...prop }; delete elProp["value"]; delete elProp["items"]; delete elProp["onChange"]; delete elProp["popover"]; let items = prop.items || []; if (local.searchChanged) { local.searchChanged = false; const search = local.search.toLowerCase().replace(/\W/, ""); if (search) { items = []; for (const item of prop.items || []){ if (typeof item === "string" && item.toLowerCase().replace(/\W/, "").includes(search)) items.push(item); else if (typeof item === "object" && (item.label.toLowerCase().replace(/\W/, "").includes(search) || item.value.toLowerCase().replace(/\W/, "").includes(search))) items.push(item); } } } return /*#__PURE__*/ (0, $lAN3N.jsx)((0, $bTIRf.Popover), { open: local.open, onOpenChange: (open)=>{ local.open = open; local.render(); }, autoFocus: false, placement: "bottom-start", backdrop: false, arrow: false, offset: 0, popoverClassName: cx("bg-white border", prop.popover?.className), content: /*#__PURE__*/ (0, $lAN3N.jsx)((0, $lAN3N.Fragment), { children: items.length > 0 ? /*#__PURE__*/ (0, $lAN3N.jsx)((0, $6j6Xp.Virtuoso), { className: `${items.length > 3 ? "min-h-[140px] max-h-[350px]" : items.length === 3 ? "min-h-[85px]" : items.length === 1 ? "min-h-[30px]" : "min-h-[57px]"} min-w-[200px] flex-1 w-full`, data: items, ref: (el)=>{ if (el && !local.scrolled) { clearTimeout(local.listElTimeout); local.listElTimeout = setTimeout(()=>{ local.scrolled = true; local.listEl = el; el.scrollToIndex(local.activeIdx - 2); }, 50); } }, itemContent: (idx, e)=>{ return /*#__PURE__*/ (0, $lAN3N.jsx)("div", { className: cx("cursor-pointer", prop.value === (typeof e === "string" ? e : e.value) && "active", prop.popover?.itemClassName ? prop.popover?.itemClassName : "hover:bg-blue-100 border-b px-2 whitespace-nowrap select-none"), onClick: ()=>{ local.open = false; local.status; if (prop.onChange) prop.onChange(typeof e === "string" ? e : e.value, idx, e); local.render(); }, children: prop.popover?.renderItem ? prop.popover.renderItem(e, idx) : typeof e === "string" ? e : e.label }, typeof e === "string" ? e : e.value); } }) : /*#__PURE__*/ (0, $lAN3N.jsx)("div", { className: "min-h-[100px] min-w-[250px] flex-1 w-full" }) }), ...elProp, className: cx("dropdown bg-white px-2 relative flex items-stretch", elProp.className), children: /*#__PURE__*/ (0, $lAN3N.jsxs)((0, $lAN3N.Fragment), { children: [ /*#__PURE__*/ (0, $lAN3N.jsx)("div", { className: "pointer-events-none absolute right-0 bottom-0 top-0 bg-white flex items-center justify-center w-[30px] ", children: /*#__PURE__*/ (0, $lAN3N.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", width: "15", height: "15", fill: "none", viewBox: "0 0 15 15", children: /*#__PURE__*/ (0, $lAN3N.jsx)("path", { fill: "currentColor", fillRule: "evenodd", d: "M3.135 6.158a.5.5 0 01.707-.023L7.5 9.565l3.658-3.43a.5.5 0 01.684.73l-4 3.75a.5.5 0 01-.684 0l-4-3.75a.5.5 0 01-.023-.707z", clipRule: "evenodd" }) }) }), /*#__PURE__*/ (0, $lAN3N.jsx)("input", { className: cx("cursor-pointer outline-none input flex-1"), type: "string", placeholder: elProp.placeholder, spellCheck: false, value: local.search, onChange: (e)=>{ local.search = e.currentTarget.value; local.searchChanged = true; local.render(); }, onFocus: ()=>{ local.open = true; local.render(); } }) ] }) }); }; }); parcelRegister("6j6Xp", function(module, exports) { $parcel$export(module.exports, "Virtuoso", () => $ed43cc03b55b9961$export$ea50ab61e1198ee3); var $63SH6 = parcelRequire("63SH6"); var $grDIR = parcelRequire("grDIR"); const $ed43cc03b55b9961$var$PUBLISH = 0; const $ed43cc03b55b9961$var$SUBSCRIBE = 1; const $ed43cc03b55b9961$var$RESET = 2; const $ed43cc03b55b9961$var$VALUE = 4; function $ed43cc03b55b9961$var$compose(a, b) { return (arg)=>a(b(arg)); } function $ed43cc03b55b9961$var$thrush(arg, proc) { return proc(arg); } function $ed43cc03b55b9961$var$curry2to1(proc, arg1) { return (arg2)=>proc(arg1, arg2); } function $ed43cc03b55b9961$var$curry1to0(proc, arg) { return ()=>proc(arg); } function $ed43cc03b55b9961$var$tap(arg, proc) { proc(arg); return arg; } function $ed43cc03b55b9961$var$tup(...args) { return args; } function $ed43cc03b55b9961$var$call(proc) { proc(); } function $ed43cc03b55b9961$var$always(value) { return ()=>value; } function $ed43cc03b55b9961$var$joinProc(...procs) { return ()=>{ procs.map($ed43cc03b55b9961$var$call); }; } function $ed43cc03b55b9961$var$isDefined(arg) { return arg !== void 0; } function $ed43cc03b55b9961$var$noop() {} function $ed43cc03b55b9961$var$subscribe(emitter, subscription) { return emitter($ed43cc03b55b9961$var$SUBSCRIBE, subscription); } function $ed43cc03b55b9961$var$publish(publisher, value) { publisher($ed43cc03b55b9961$var$PUBLISH, value); } function $ed43cc03b55b9961$var$reset(emitter) { emitter($ed43cc03b55b9961$var$RESET); } function $ed43cc03b55b9961$var$getValue(depot) { return depot($ed43cc03b55b9961$var$VALUE); } function $ed43cc03b55b9961$var$connect(emitter, publisher) { return $ed43cc03b55b9961$var$subscribe(emitter, $ed43cc03b55b9961$var$curry2to1(publisher, $ed43cc03b55b9961$var$PUBLISH)); } function $ed43cc03b55b9961$var$handleNext(emitter, subscription) { const unsub = emitter($ed43cc03b55b9961$var$SUBSCRIBE, (value)=>{ unsub(); subscription(value); }); return unsub; } function $ed43cc03b55b9961$var$stream() { const subscriptions = []; return (action, arg)=>{ switch(action){ case $ed43cc03b55b9961$var$RESET: subscriptions.splice(0, subscriptions.length); return; case $ed43cc03b55b9961$var$SUBSCRIBE: subscriptions.push(arg); return ()=>{ const indexOf = subscriptions.indexOf(arg); if (indexOf > -1) subscriptions.splice(indexOf, 1); }; case $ed43cc03b55b9961$var$PUBLISH: subscriptions.slice().forEach((subscription)=>{ subscription(arg); }); return; default: throw new Error(`unrecognized action ${action}`); } }; } function $ed43cc03b55b9961$var$statefulStream(initial) { let value = initial; const innerSubject = $ed43cc03b55b9961$var$stream(); return (action, arg)=>{ switch(action){ case $ed43cc03b55b9961$var$SUBSCRIBE: const subscription = arg; subscription(value); break; case $ed43cc03b55b9961$var$PUBLISH: value = arg; break; case $ed43cc03b55b9961$var$VALUE: return value; } return innerSubject(action, arg); }; } function $ed43cc03b55b9961$var$eventHandler(emitter) { let unsub; let currentSubscription; const cleanup = ()=>unsub && unsub(); return function(action, subscription) { switch(action){ case $ed43cc03b55b9961$var$SUBSCRIBE: if (subscription) { if (currentSubscription === subscription) return; cleanup(); currentSubscription = subscription; unsub = $ed43cc03b55b9961$var$subscribe(emitter, subscription); return unsub; } else { cleanup(); return $ed43cc03b55b9961$var$noop; } case $ed43cc03b55b9961$var$RESET: cleanup(); currentSubscription = null; return; default: throw new Error(`unrecognized action ${action}`); } }; } function $ed43cc03b55b9961$var$streamFromEmitter(emitter) { return $ed43cc03b55b9961$var$tap($ed43cc03b55b9961$var$stream(), (stream2)=>$ed43cc03b55b9961$var$connect(emitter, stream2)); } function $ed43cc03b55b9961$var$statefulStreamFromEmitter(emitter, initial) { return $ed43cc03b55b9961$var$tap($ed43cc03b55b9961$var$statefulStream(initial), (stream2)=>$ed43cc03b55b9961$var$connect(emitter, stream2)); } function $ed43cc03b55b9961$var$combineOperators(...operators) { return (subscriber)=>{ return operators.reduceRight($ed43cc03b55b9961$var$thrush, subscriber); }; } function $ed43cc03b55b9961$var$pipe(source, ...operators) { const project = $ed43cc03b55b9961$var$combineOperators(...operators); return (action, subscription)=>{ switch(action){ case $ed43cc03b55b9961$var$SUBSCRIBE: return $ed43cc03b55b9961$var$subscribe(source, project(subscription)); case $ed43cc03b55b9961$var$RESET: $ed43cc03b55b9961$var$reset(source); return; } }; } function $ed43cc03b55b9961$var$defaultComparator(previous, next) { return previous === next; } function $ed43cc03b55b9961$var$distinctUntilChanged(comparator = $ed43cc03b55b9961$var$defaultComparator) { let current; return (done)=>(next)=>{ if (!comparator(current, next)) { current = next; done(next); } }; } function $ed43cc03b55b9961$var$filter(predicate) { return (done)=>(value)=>{ predicate(value) && done(value); }; } function $ed43cc03b55b9961$var$map(project) { return (done)=>$ed43cc03b55b9961$var$compose(done, project); } function $ed43cc03b55b9961$var$mapTo(value) { return (done)=>()=>done(value); } function $ed43cc03b55b9961$var$scan(scanner, initial) { return (done)=>(value)=>done(initial = scanner(initial, value)); } function $ed43cc03b55b9961$var$skip(times) { return (done)=>(value)=>{ times > 0 ? times-- : done(value); }; } function $ed43cc03b55b9961$var$throttleTime(interval) { let currentValue = null; let timeout; return (done)=>(value)=>{ currentValue = value; if (timeout) return; timeout = setTimeout(()=>{ timeout = void 0; done(currentValue); }, interval); }; } function $ed43cc03b55b9961$var$debounceTime(interval) { let currentValue; let timeout; return (done)=>(value)=>{ currentValue = value; if (timeout) clearTimeout(timeout); timeout = setTimeout(()=>{ done(currentValue); }, interval); }; } function $ed43cc03b55b9961$var$withLatestFrom(...sources) { const values = new Array(sources.length); let called = 0; let pendingCall = null; const allCalled = Math.pow(2, sources.length) - 1; sources.forEach((source, index)=>{ const bit = Math.pow(2, index); $ed43cc03b55b9961$var$subscribe(source, (value)=>{ const prevCalled = called; called = called | bit; values[index] = value; if (prevCalled !== allCalled && called === allCalled && pendingCall) { pendingCall(); pendingCall = null; } }); }); return (done)=>(value)=>{ const call2 = ()=>done([ value ].concat(values)); if (called === allCalled) call2(); else pendingCall = call2; }; } function $ed43cc03b55b9961$var$merge(...sources) { return function(action, subscription) { switch(action){ case $ed43cc03b55b9961$var$SUBSCRIBE: return $ed43cc03b55b9961$var$joinProc(...sources.map((source)=>$ed43cc03b55b9961$var$subscribe(source, subscription))); case $ed43cc03b55b9961$var$RESET: return; default: throw new Error(`unrecognized action ${action}`); } }; } function $ed43cc03b55b9961$var$duc(source, comparator = $ed43cc03b55b9961$var$defaultComparator) { return $ed43cc03b55b9961$var$pipe(source, $ed43cc03b55b9961$var$distinctUntilChanged(comparator)); } function $ed43cc03b55b9961$var$combineLatest(...emitters) { const innerSubject = $ed43cc03b55b9961$var$stream(); const values = new Array(emitters.length); let called = 0; const allCalled = Math.pow(2, emitters.length) - 1; emitters.forEach((source, index)=>{ const bit = Math.pow(2, index); $ed43cc03b55b9961$var$subscribe(source, (value)=>{ values[index] = value; called = called | bit; if (called === allCalled) $ed43cc03b55b9961$var$publish(innerSubject, values); }); }); return function(action, subscription) { switch(action){ case $ed43cc03b55b9961$var$SUBSCRIBE: if (called === allCalled) subscription(values); return $ed43cc03b55b9961$var$subscribe(innerSubject, subscription); case $ed43cc03b55b9961$var$RESET: return $ed43cc03b55b9961$var$reset(innerSubject); default: throw new Error(`unrecognized action ${action}`); } }; } function $ed43cc03b55b9961$var$system(constructor, dependencies = [], { singleton: singleton } = { singleton: true }) { return { id: $ed43cc03b55b9961$var$id(), constructor: constructor, dependencies: dependencies, singleton: singleton }; } const $ed43cc03b55b9961$var$id = ()=>Symbol(); function $ed43cc03b55b9961$var$init(systemSpec) { const singletons = /* @__PURE__ */ new Map(); const _init = ({ id: id2, constructor: constructor, dependencies: dependencies, singleton: singleton })=>{ if (singleton && singletons.has(id2)) return singletons.get(id2); const system2 = constructor(dependencies.map((e)=>_init(e))); if (singleton) singletons.set(id2, system2); return system2; }; return _init(systemSpec); } function $ed43cc03b55b9961$var$omit(keys, obj) { const result = {}; const index = {}; let idx = 0; const len = keys.length; while(idx < len){ index[keys[idx]] = 1; idx += 1; } for(const prop in obj)if (!index.hasOwnProperty(prop)) result[prop] = obj[prop]; return result; } const $ed43cc03b55b9961$var$useIsomorphicLayoutEffect$2 = typeof document !== "undefined" ? (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).useLayoutEffect : (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).useEffect; function $ed43cc03b55b9961$var$systemToComponent(systemSpec, map2, Root) { const requiredPropNames = Object.keys(map2.required || {}); const optionalPropNames = Object.keys(map2.optional || {}); const methodNames = Object.keys(map2.methods || {}); const eventNames = Object.keys(map2.events || {}); const Context = (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).createContext({}); function applyPropsToSystem(system2, props) { if (system2["propsReady"]) $ed43cc03b55b9961$var$publish(system2["propsReady"], false); for (const requiredPropName of requiredPropNames){ const stream2 = system2[map2.required[requiredPropName]]; $ed43cc03b55b9961$var$publish(stream2, props[requiredPropName]); } for (const optionalPropName of optionalPropNames)if (optionalPropName in props) { const stream2 = system2[map2.optional[optionalPropName]]; $ed43cc03b55b9961$var$publish(stream2, props[optionalPropName]); } if (system2["propsReady"]) $ed43cc03b55b9961$var$publish(system2["propsReady"], true); } function buildMethods(system2) { return methodNames.reduce((acc, methodName)=>{ acc[methodName] = (value)=>{ const stream2 = system2[map2.methods[methodName]]; $ed43cc03b55b9961$var$publish(stream2, value); }; return acc; }, {}); } function buildEventHandlers(system2) { return eventNames.reduce((handlers, eventName)=>{ handlers[eventName] = $ed43cc03b55b9961$var$eventHandler(system2[map2.events[eventName]]); return handlers; }, {}); } const Component = (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).forwardRef((propsWithChildren, ref)=>{ const { children: children, ...props } = propsWithChildren; const [system2] = (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).useState(()=>{ return $ed43cc03b55b9961$var$tap($ed43cc03b55b9961$var$init(systemSpec), (system22)=>applyPropsToSystem(system22, props)); }); const [handlers] = (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).useState($ed43cc03b55b9961$var$curry1to0(buildEventHandlers, system2)); $ed43cc03b55b9961$var$useIsomorphicLayoutEffect$2(()=>{ for (const eventName of eventNames)if (eventName in props) $ed43cc03b55b9961$var$subscribe(handlers[eventName], props[eventName]); return ()=>{ Object.values(handlers).map($ed43cc03b55b9961$var$reset); }; }, [ props, handlers, system2 ]); $ed43cc03b55b9961$var$useIsomorphicLayoutEffect$2(()=>{ applyPropsToSystem(system2, props); }); (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).useImperativeHandle(ref, $ed43cc03b55b9961$var$always(buildMethods(system2))); return (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).createElement(Context.Provider, { value: system2 }, Root ? (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).createElement(Root, $ed43cc03b55b9961$var$omit([ ...requiredPropNames, ...optionalPropNames, ...eventNames ], props), children) : children); }); const usePublisher2 = (key)=>{ return (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).useCallback($ed43cc03b55b9961$var$curry2to1($ed43cc03b55b9961$var$publish, (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).useContext(Context)[key]), [ key ]); }; const useEmitterValue2 = (key)=>{ const system2 = (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).useContext(Context); const source = system2[key]; const [value, setValue] = (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).useState($ed43cc03b55b9961$var$curry1to0($ed43cc03b55b9961$var$getValue, source)); $ed43cc03b55b9961$var$useIsomorphicLayoutEffect$2(()=>$ed43cc03b55b9961$var$subscribe(source, (next)=>{ if (next !== value) setValue($ed43cc03b55b9961$var$always(next)); }), [ source, value ]); return value; }; const useEmitter2 = (key, callback)=>{ const context = (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).useContext(Context); const source = context[key]; $ed43cc03b55b9961$var$useIsomorphicLayoutEffect$2(()=>$ed43cc03b55b9961$var$subscribe(source, callback), [ callback, source ]); }; return { Component: Component, usePublisher: usePublisher2, useEmitterValue: useEmitterValue2, useEmitter: useEmitter2 }; } const $ed43cc03b55b9961$var$useIsomorphicLayoutEffect = typeof document !== "undefined" ? (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).useLayoutEffect : (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).useEffect; const $ed43cc03b55b9961$var$useIsomorphicLayoutEffect$1 = $ed43cc03b55b9961$var$useIsomorphicLayoutEffect; var $ed43cc03b55b9961$export$243e62d78d3b544d = /* @__PURE__ */ ((LogLevel2)=>{ LogLevel2[LogLevel2["DEBUG"] = 0] = "DEBUG"; LogLevel2[LogLevel2["INFO"] = 1] = "INFO"; LogLevel2[LogLevel2["WARN"] = 2] = "WARN"; LogLevel2[LogLevel2["ERROR"] = 3] = "ERROR"; return LogLevel2; })($ed43cc03b55b9961$export$243e62d78d3b544d || {}); const $ed43cc03b55b9961$var$CONSOLE_METHOD_MAP = { [0]: "debug", [1]: "log", [2]: "warn", [3]: "error" }; const $ed43cc03b55b9961$var$getGlobalThis = ()=>typeof globalThis === "undefined" ? window : globalThis; const $ed43cc03b55b9961$var$loggerSystem = $ed43cc03b55b9961$var$system(()=>{ const logLevel = $ed43cc03b55b9961$var$statefulStream(3); const log = $ed43cc03b55b9961$var$statefulStream((label, message, level = 1)=>{ var _a; const currentLevel = (_a = $ed43cc03b55b9961$var$getGlobalThis()["VIRTUOSO_LOG_LEVEL"]) != null ? _a : $ed43cc03b55b9961$var$getValue(logLevel); if (level >= currentLevel) console[$ed43cc03b55b9961$var$CONSOLE_METHOD_MAP[level]]("%creact-virtuoso: %c%s %o", "color: #0253b3; font-weight: bold", "color: initial", label, message); }); return { log: log, logLevel: logLevel }; }, [], { singleton: true }); function $ed43cc03b55b9961$var$useSizeWithElRef(callback, enabled = true) { const ref = (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).useRef(null); let callbackRef = (_el)=>{}; if (typeof ResizeObserver !== "undefined") { const observer = (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).useMemo(()=>{ return new ResizeObserver((entries)=>{ const element = entries[0].target; if (element.offsetParent !== null) callback(element); }); }, [ callback ]); callbackRef = (elRef)=>{ if (elRef && enabled) { observer.observe(elRef); ref.current = elRef; } else { if (ref.current) observer.unobserve(ref.current); ref.current = null; } }; } return { ref: ref, callbackRef: callbackRef }; } function $ed43cc03b55b9961$var$useSize(callback, enabled = true) { return $ed43cc03b55b9961$var$useSizeWithElRef(callback, enabled).callbackRef; } function $ed43cc03b55b9961$var$useChangedListContentsSizes(callback, itemSize, enabled, scrollContainerStateCallback, log, gap, customScrollParent) { const memoedCallback = (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).useCallback((el)=>{ const ranges = $ed43cc03b55b9961$var$getChangedChildSizes(el.children, itemSize, "offsetHeight", log); let scrollableElement = el.parentElement; while(!scrollableElement.dataset["virtuosoScroller"])scrollableElement = scrollableElement.parentElement; const windowScrolling = scrollableElement.lastElementChild.dataset["viewportType"] === "window"; const scrollTop = customScrollParent ? customScrollParent.scrollTop : windowScrolling ? window.pageYOffset || document.documentElement.scrollTop : scrollableElement.scrollTop; const scrollHeight = customScrollParent ? customScrollParent.scrollHeight : windowScrolling ? document.documentElement.scrollHeight : scrollableElement.scrollHeight; const viewportHeight = customScrollParent ? customScrollParent.offsetHeight : windowScrolling ? window.innerHeight : scrollableElement.offsetHeight; scrollContainerStateCallback({ scrollTop: Math.max(scrollTop, 0), scrollHeight: scrollHeight, viewportHeight: viewportHeight }); gap == null || gap($ed43cc03b55b9961$var$resolveGapValue$1("row-gap", getComputedStyle(el).rowGap, log)); if (ranges !== null) callback(ranges); }, [ callback, itemSize, log, gap, customScrollParent, scrollContainerStateCallback ]); return $ed43cc03b55b9961$var$useSizeWithElRef(memoedCallback, enabled); } function $ed43cc03b55b9961$var$getChangedChildSizes(children, itemSize, field, log) { const length = children.length; if (length === 0) return null; const results = []; for(let i = 0; i < length; i++){ const child = children.item(i); if (!child || child.dataset.index === void 0) continue; const index = parseInt(child.dataset.index); const knownSize = parseFloat(child.dataset.knownSize); const size = itemSize(child, field); if (size === 0) log("Zero-sized element, this should not happen", { child: child }, $ed43cc03b55b9961$export$243e62d78d3b544d.ERROR); if (size === knownSize) continue; const lastResult = results[results.length - 1]; if (results.length === 0 || lastResult.size !== size || lastResult.endIndex !== index - 1) results.push({ startIndex: index, endIndex: index, size: size }); else results[results.length - 1].endIndex++; } return results; } function $ed43cc03b55b9961$var$resolveGapValue$1(property, value, log) { if (value !== "normal" && !(value == null ? void 0 : value.endsWith("px"))) log(`${property} was not resolved to pixel value correctly`, value, $ed43cc03b55b9961$export$243e62d78d3b544d.WARN); if (value === "normal") return 0; return parseInt(value != null ? value : "0", 10); } function $ed43cc03b55b9961$var$correctItemSize(el, dimension) { return Math.round(el.getBoundingClientRect()[dimension]); } function $ed43cc03b55b9961$var$approximatelyEqual(num1, num2) { return Math.abs(num1 - num2) < 1.01; } function $ed43cc03b55b9961$var$useScrollTop(scrollContainerStateCallback, smoothScrollTargetReached, scrollerElement, scrollerRefCallback = $ed43cc03b55b9961$var$noop, customScrollParent) { const scrollerRef = (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).useRef(null); const scrollTopTarget = (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).useRef(null); const timeoutRef = (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).useRef(null); const handler = (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).useCallback((ev)=>{ const el = ev.target; const windowScroll = el === window || el === document; const scrollTop = windowScroll ? window.pageYOffset || document.documentElement.scrollTop : el.scrollTop; const scrollHeight = windowScroll ? document.documentElement.scrollHeight : el.scrollHeight; const viewportHeight = windowScroll ? window.innerHeight : el.offsetHeight; const call2 = ()=>{ scrollContainerStateCallback({ scrollTop: Math.max(scrollTop, 0), scrollHeight: scrollHeight, viewportHeight: viewportHeight }); }; if (ev.suppressFlushSync) call2(); else (0, (/*@__PURE__*/$parcel$interopDefault($grDIR))).flushSync(call2); if (scrollTopTarget.current !== null) { if (scrollTop === scrollTopTarget.current || scrollTop <= 0 || scrollTop === scrollHeight - viewportHeight) { scrollTopTarget.current = null; smoothScrollTargetReached(true); if (timeoutRef.current) { clearTimeout(timeoutRef.current); timeoutRef.current = null; } } } }, [ scrollContainerStateCallback, smoothScrollTargetReached ]); (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).useEffect(()=>{ const localRef = customScrollParent ? customScrollParent : scrollerRef.current; scrollerRefCallback(customScrollParent ? customScrollParent : scrollerRef.current); handler({ target: localRef, suppressFlushSync: true }); localRef.addEventListener("scroll", handler, { passive: true }); return ()=>{ scrollerRefCallback(null); localRef.removeEventListener("scroll", handler); }; }, [ scrollerRef, handler, scrollerElement, scrollerRefCallback, customScrollParent ]); function scrollToCallback(location) { const scrollerElement2 = scrollerRef.current; if (!scrollerElement2 || "offsetHeight" in scrollerElement2 && scrollerElement2.offsetHeight === 0) return; const isSmooth = location.behavior === "smooth"; let offsetHeight; let scrollHeight; let scrollTop; if (scrollerElement2 === window) { scrollHeight = Math.max($ed43cc03b55b9961$var$correctItemSize(document.documentElement, "height"), document.documentElement.scrollHeight); offsetHeight = window.innerHeight; scrollTop = document.documentElement.scrollTop; } else { scrollHeight = scrollerElement2.scrollHeight; offsetHeight = $ed43cc03b55b9961$var$correctItemSize(scrollerElement2, "height"); scrollTop = scrollerElement2.scrollTop; } const maxScrollTop = scrollHeight - offsetHeight; location.top = Math.ceil(Math.max(Math.min(maxScrollTop, location.top), 0)); if ($ed43cc03b55b9961$var$approximatelyEqual(offsetHeight, scrollHeight) || location.top === scrollTop) { scrollContainerStateCallback({ scrollTop: scrollTop, scrollHeight: scrollHeight, viewportHeight: offsetHeight }); if (isSmooth) smoothScrollTargetReached(true); return; } if (isSmooth) { scrollTopTarget.current = location.top; if (timeoutRef.current) clearTimeout(timeoutRef.current); timeoutRef.current = setTimeout(()=>{ timeoutRef.current = null; scrollTopTarget.current = null; smoothScrollTargetReached(true); }, 1e3); } else scrollTopTarget.current = null; scrollerElement2.scrollTo(location); } function scrollByCallback(location) { scrollerRef.current.scrollBy(location); } return { scrollerRef: scrollerRef, scrollByCallback: scrollByCallback, scrollToCallback: scrollToCallback }; } const $ed43cc03b55b9961$var$domIOSystem = $ed43cc03b55b9961$var$system(()=>{ const scrollContainerState = $ed43cc03b55b9961$var$stream(); const scrollTop = $ed43cc03b55b9961$var$stream(); const deviation = $ed43cc03b55b9961$var$statefulStream(0); const smoothScrollTargetReached = $ed43cc03b55b9961$var$stream(); const statefulScrollTop = $ed43cc03b55b9961$var$statefulStream(0); const viewportHeight = $ed43cc03b55b9961$var$stream(); const scrollHeight = $ed43cc03b55b9961$var$stream(); const headerHeight = $ed43cc03b55b9961$var$statefulStream(0); const fixedHeaderHeight = $ed43cc03b55b9961$var$statefulStream(0); const fixedFooterHeight = $ed43cc03b55b9961$var$statefulStream(0); const footerHeight = $ed43cc03b55b9961$var$statefulStream(0); const scrollTo = $ed43cc03b55b9961$var$stream(); const scrollBy = $ed43cc03b55b9961$var$stream(); const scrollingInProgress = $ed43cc03b55b9961$var$statefulStream(false); $ed43cc03b55b9961$var$connect($ed43cc03b55b9961$var$pipe(scrollContainerState, $ed43cc03b55b9961$var$map(({ scrollTop: scrollTop2 })=>scrollTop2)), scrollTop); $ed43cc03b55b9961$var$connect($ed43cc03b55b9961$var$pipe(scrollContainerState, $ed43cc03b55b9961$var$map(({ scrollHeight: scrollHeight2 })=>scrollHeight2)), scrollHeight); $ed43cc03b55b9961$var$connect(scrollTop, statefulScrollTop); return { scrollContainerState: // input scrollContainerState, scrollTop: scrollTop, viewportHeight: viewportHeight, headerHeight: headerHeight, fixedHeaderHeight: fixedHeaderHeight, fixedFooterHeight: fixedFooterHeight, footerHeight: footerHeight, scrollHeight: scrollHeight, smoothScrollTargetReached: smoothScrollTargetReached, scrollTo: // signals scrollTo, scrollBy: scrollBy, statefulScrollTop: // state statefulScrollTop, deviation: deviation, scrollingInProgress: scrollingInProgress }; }, [], { singleton: true }); const $ed43cc03b55b9961$var$NIL_NODE = { lvl: 0 }; function $ed43cc03b55b9961$var$newAANode(k, v, lvl, l = $ed43cc03b55b9961$var$NIL_NODE, r = $ed43cc03b55b9961$var$NIL_NODE) { return { k: k, v: v, lvl: lvl, l: l, r: r }; } function $ed43cc03b55b9961$var$empty(node) { return node === $ed43cc03b55b9961$var$NIL_NODE; } function $ed43cc03b55b9961$var$newTree() { return $ed43cc03b55b9961$var$NIL_NODE; } function $ed43cc03b55b9961$var$remove(node, key) { if ($ed43cc03b55b9961$var$empty(node)) return $ed43cc03b55b9961$var$NIL_NODE; const { k: k, l: l, r: r } = node; if (key === k) { if ($ed43cc03b55b9961$var$empty(l)) return r; else if ($ed43cc03b55b9961$var$empty(r)) return l; else { const [lastKey, lastValue] = $ed43cc03b55b9961$var$last(l); return $ed43cc03b55b9961$var$adjust($ed43cc03b55b9961$var$clone(node, { k: lastKey, v: lastValue, l: $ed43cc03b55b9961$var$deleteLast(l) })); } } else if (key < k) return $ed43cc03b55b9961$var$adjust($ed43cc03b55b9961$var$clone(node, { l: $ed43cc03b55b9961$var$remove(l, key) })); else return $ed43cc03b55b9961$var$adjust($ed43cc03b55b9961$var$clone(node, { r: $ed43cc03b55b9961$var$remove(r, key) })); } function $ed43cc03b55b9961$var$find(node, key) { if ($ed43cc03b55b9961$var$empty(node)) return; if (key === node.k) return node.v; else if (key < node.k) return $ed43cc03b55b9961$var$find(node.l, key); else return $ed43cc03b55b9961$var$find(node.r, key); } function $ed43cc03b55b9961$var$findMaxKeyValue(node, value, field = "k") { if ($ed43cc03b55b9961$var$empty(node)) return [ -Infinity, void 0 ]; if (Number(node[field]) === value) return [ node.k, node.v ]; if (Number(node[field]) < value) { const r = $ed43cc03b55b9961$var$findMaxKeyValue(node.r, value, field); if (r[0] === -Infinity) return [ node.k, node.v ]; else return r; } return $ed43cc03b55b9961$var$findMaxKeyValue(node.l, value, field); } function $ed43cc03b55b9961$var$insert(node, k, v) { if ($ed43cc03b55b9961$var$empty(node)) return $ed43cc03b55b9961$var$newAANode(k, v, 1); if (k === node.k) return $ed43cc03b55b9961$var$clone(node, { k: k, v: v }); else if (k < node.k) return $ed43cc03b55b9961$var$rebalance($ed43cc03b55b9961$var$clone(node, { l: $ed43cc03b55b9961$var$insert(node.l, k, v) })); else return $ed43cc03b55b9961$var$rebalance($ed43cc03b55b9961$var$clone(node, { r: $ed43cc03b55b9961$var$insert(node.r, k, v) })); } function $ed43cc03b55b9961$var$walkWithin(node, start, end) { if ($ed43cc03b55b9961$var$empty(node)) return []; const { k: k, v: v, l: l, r: r } = node; let result = []; if (k > start) result = result.concat($ed43cc03b55b9961$var$walkWithin(l, start, end)); if (k >= start && k <= end) result.push({ k: k, v: v }); if (k <= end) result = result.concat($ed43cc03b55b9961$var$walkWithin(r, start, end)); return result; } function $ed43cc03b55b9961$var$walk(node) { if ($ed43cc03b55b9961$var$empty(node)) return []; return [ ...$ed43cc03b55b9961$var$walk(node.l), { k: node.k, v: node.v }, ...$ed43cc03b55b9961$var$walk(node.r) ]; } function $ed43cc03b55b9961$var$last(node) { return $ed43cc03b55b9961$var$empty(node.r) ? [ node.k, node.v ] : $ed43cc03b55b9961$var$last(node.r); } function $ed43cc03b55b9961$var$deleteLast(node) { return $ed43cc03b55b9961$var$empty(node.r) ? node.l : $ed43cc03b55b9961$var$adjust($ed43cc03b55b9961$var$clone(node, { r: $ed43cc03b55b9961$var$deleteLast(node.r) })); } function $ed43cc03b55b9961$var$clone(node, args) { return $ed43cc03b55b9961$var$newAANode(args.k !== void 0 ? args.k : node.k, args.v !== void 0 ? args.v : node.v, args.lvl !== void 0 ? args.lvl : node.lvl, args.l !== void 0 ? args.l : node.l, args.r !== void 0 ? args.r : node.r); } function $ed43cc03b55b9961$var$isSingle(node) { return $ed43cc03b55b9961$var$empty(node) || node.lvl > node.r.lvl; } function $ed43cc03b55b9961$var$rebalance(node) { return $ed43cc03b55b9961$var$split($ed43cc03b55b9961$var$skew(node)); } function $ed43cc03b55b9961$var$adjust(node) { const { l: l, r: r, lvl: lvl } = node; if (r.lvl >= lvl - 1 && l.lvl >= lvl - 1) return node; else if (lvl > r.lvl + 1) { if ($ed43cc03b55b9961$var$isSingle(l)) return $ed43cc03b55b9961$var$skew($ed43cc03b55b9961$var$clone(node, { lvl: lvl - 1 })); else { if (!$ed43cc03b55b9961$var$empty(l) && !$ed43cc03b55b9961$var$empty(l.r)) return $ed43cc03b55b9961$var$clone(l.r, { l: $ed43cc03b55b9961$var$clone(l, { r: l.r.l }), r: $ed43cc03b55b9961$var$clone(node, { l: l.r.r, lvl: lvl - 1 }), lvl: lvl }); else throw new Error("Unexpected empty nodes"); } } else { if ($ed43cc03b55b9961$var$isSingle(node)) return $ed43cc03b55b9961$var$split($ed43cc03b55b9961$var$clone(node, { lvl: lvl - 1 })); else { if (!$ed43cc03b55b9961$var$empty(r) && !$ed43cc03b55b9961$var$empty(r.l)) { const rl = r.l; const rlvl = $ed43cc03b55b9961$var$isSingle(rl) ? r.lvl - 1 : r.lvl; return $ed43cc03b55b9961$var$clone(rl, { l: $ed43cc03b55b9961$var$clone(node, { r: rl.l, lvl: lvl - 1 }), r: $ed43cc03b55b9961$var$split($ed43cc03b55b9961$var$clone(r, { l: rl.r, lvl: rlvl })), lvl: rl.lvl + 1 }); } else throw new Error("Unexpected empty nodes"); } } } function $ed43cc03b55b9961$var$rangesWithin(node, startIndex, endIndex) { if ($ed43cc03b55b9961$var$empty(node)) return []; const adjustedStart = $ed43cc03b55b9961$var$findMaxKeyValue(node, startIndex)[0]; return $ed43cc03b55b9961$var$toRanges($ed43cc03b55b9961$var$walkWithin(node, adjustedStart, endIndex)); } function $ed43cc03b55b9961$var$arrayToRanges(items, parser) { const length = items.length; if (length === 0) return []; let { index: start, value: value } = parser(items[0]); const result = []; for(let i = 1; i < length; i++){ const { index: nextIndex, value: nextValue } = parser(items[i]); result.push({ start: start, end: nextIndex - 1, value: value }); start = nextIndex; value = nextValue; } result.push({ start: start, end: Infinity, value: value }); return result; } function $ed43cc03b55b9961$var$toRanges(nodes) { return $ed43cc03b55b9961$var$arrayToRanges(nodes, ({ k: index, v: value })=>({ index: index, value: value })); } function $ed43cc03b55b9961$var$split(node) { const { r: r, lvl: lvl } = node; return !$ed43cc03b55b9961$var$empty(r) && !$ed43cc03b55b9961$var$empty(r.r) && r.lvl === lvl && r.r.lvl === lvl ? $ed43cc03b55b9961$var$clone(r, { l: $ed43cc03b55b9961$var$clone(node, { r: r.l }), lvl: lvl + 1 }) : node; } function $ed43cc03b55b9961$var$skew(node) { const { l: l } = node; return !$ed43cc03b55b9961$var$empty(l) && l.lvl === node.lvl ? $ed43cc03b55b9961$var$clone(l, { r: $ed43cc03b55b9961$var$clone(node, { l: l.r }) }) : node; } function $ed43cc03b55b9961$var$findIndexOfClosestSmallerOrEqual(items, value, comparator, start = 0) { let end = items.length - 1; while(start <= end){ const index = Math.floor((start + end) / 2); const item = items[index]; const match = comparator(item, value); if (match === 0) return index; if (match === -1) { if (end - start < 2) return index - 1; end = index - 1; } else { if (end === start) return index; start = index + 1; } } throw new Error(`Failed binary finding record in array - ${items.join(",")}, searched for ${value}`); } function $ed43cc03b55b9961$var$findClosestSmallerOrEqual(items, value, comparator) { return items[$ed43cc03b55b9961$var$findIndexOfClosestSmallerOrEqual(items, value, comparator)]; } function $ed43cc03b55b9961$var$findRange(items, startValue, endValue, comparator) { const startIndex = $ed43cc03b55b9961$var$findIndexOfClosestSmallerOrEqual(items, startValue, comparator); const endIndex = $ed43cc03b55b9961$var$findIndexOfClosestSmallerOrEqual(items, endValue, comparator, startIndex); return items.slice(startIndex, endIndex + 1); } const $ed43cc03b55b9961$var$recalcSystem = $ed43cc03b55b9961$var$system(()=>{ const recalcInProgress = $ed43cc03b55b9961$var$statefulStream(false); return { recalcInProgress: recalcInProgress }; }, [], { singleton: true }); function $ed43cc03b55b9961$var$rangeIncludes(refRange) { const { size: size, startIndex: startIndex, endIndex: endIndex } = refRange; return (range)=>{ return range.start === startIndex && (range.end === endIndex || range.end === Infinity) && range.value === size; }; } function $ed43cc03b55b9961$var$affectedGroupCount(offset, groupIndices) { let recognizedOffsetItems = 0; let groupIndex = 0; while(recognizedOffsetItems < offset){ recognizedOffsetItems += groupIndices[groupIndex + 1] - groupIndices[groupIndex] - 1; groupIndex++; } const offsetIsExact = recognizedOffsetItems === offset; return groupIndex - (offsetIsExact ? 0 : 1); } function $ed43cc03b55b9961$var$insertRanges(sizeTree, ranges) { let syncStart = $ed43cc03b55b9961$var$empty(sizeTree) ? 0 : Infinity; for (const range of ranges){ const { size: size, startIndex: startIndex, endIndex: endIndex } = range; syncStart = Math.min(syncStart, startIndex); if ($ed43cc03b55b9961$var$empty(sizeTree)) { sizeTree = $ed43cc03b55b9961$var$insert(sizeTree, 0, size); continue; } const overlappingRanges = $ed43cc03b55b9961$var$rangesWithin(sizeTree, startIndex - 1, endIndex + 1); if (overlappingRanges.some($ed43cc03b55b9961$var$rangeIncludes(range))) continue; let firstPassDone = false; let shouldInsert = false; for (const { start: rangeStart, end: rangeEnd, value: rangeValue } of overlappingRanges){ if (!firstPassDone) { shouldInsert = rangeValue !== size; firstPassDone = true; } else if (endIndex >= rangeStart || size === rangeValue) sizeTree = $ed43cc03b55b9961$var$remove(sizeTree, rangeStart); if (rangeEnd > endIndex && endIndex >= rangeStart) { if (rangeValue !== size) sizeTree = $ed43cc03b55b9961$var$insert(sizeTree, endIndex + 1, rangeValue); } } if (shouldInsert) sizeTree = $ed43cc03b55b9961$var$insert(sizeTree, startIndex, size); } return [ sizeTree, syncStart ]; } function $ed43cc03b55b9961$var$initialSizeState() { return { offsetTree: [], sizeTree: $ed43cc03b55b9961$var$newTree(), groupOffsetTree: $ed43cc03b55b9961$var$newTree(), lastIndex: 0, lastOffset: 0, lastSize: 0, groupIndices: [] }; } function $ed43cc03b55b9961$var$indexComparator({ index: itemIndex }, index) { return index === itemIndex ? 0 : index < itemIndex ? -1 : 1; } function $ed43cc03b55b9961$var$offsetComparator({ offset: itemOffset }, offset) { return offset === itemOffset ? 0 : offset < itemOffset ? -1 : 1; } function $ed43cc03b55b9961$var$offsetPointParser(point) { return { index: point.index, value: point }; } function $ed43cc03b55b9961$var$rangesWithinOffsets(tree, startOffset, endOffset, minStartIndex = 0) { if (minStartIndex > 0) startOffset = Math.max(startOffset, $ed43cc03b55b9961$var$findClosestSmallerOrEqual(tree, minStartIndex, $ed43cc03b55b9961$var$indexComparator).offset); return $ed43cc03b55b9961$var$arrayToRanges($ed43cc03b55b9961$var$findRange(tree, startOffset, endOffset, $ed43cc03b55b9961$var$offsetComparator), $ed43cc03b55b9961$var$offsetPointParser); } function $ed43cc03b55b9961$var$createOffsetTree(prevOffsetTree, syncStart, sizeTree, gap) { let offsetTree = prevOffsetTree; let prevIndex = 0; let prevSize = 0; let prevOffset = 0; let startIndex = 0; if (syncStart !== 0) { startIndex = $ed43cc03b55b9961$var$findIndexOfClosestSmallerOrEqual(offsetTree, syncStart - 1, $ed43cc03b55b9961$var$indexComparator); const offsetInfo = offsetTree[startIndex]; prevOffset = offsetInfo.offset; const kv = $ed43cc03b55b9961$var$findMaxKeyValue(sizeTree, syncStart - 1); prevIndex = kv[0]; prevSize = kv[1]; if (offsetTree.length && offsetTree[startIndex].size === $ed43cc03b55b9961$var$findMaxKeyValue(sizeTree, syncStart)[1]) startIndex -= 1; offsetTree = offsetTree.slice(0, startIndex + 1); } else offsetTree = []; for (const { start: startIndex2, value: value } of $ed43cc03b55b9961$var$rangesWithin(sizeTree, syncStart, Infinity)){ const indexOffset = startIndex2 - prevIndex; const aOffset = indexOffset * prevSize + prevOffset + indexOffset * gap; offsetTree.push({ offset: aOffset, size: value, index: startIndex2 }); prevIndex = startIndex2; prevOffset = aOffset; prevSize = value; } return { offsetTree: offsetTree, lastIndex: prevIndex, lastOffset: prevOffset, lastSize: prevSize }; } function $ed43cc03b55b9961$var$sizeStateReducer(state, [ranges, groupIndices, log, gap]) { if (ranges.length > 0) log("received item sizes", ranges, $ed43cc03b55b9961$export$243e62d78d3b544d.DEBUG); const sizeTree = state.sizeTree; let newSizeTree = sizeTree; let syncStart = 0; if (groupIndices.length > 0 && $ed43cc03b55b9961$var$empty(sizeTree) && ranges.length === 2) { const groupSize = ranges[0].size; const itemSize = ranges[1].size; newSizeTree = groupIndices.reduce((tree, groupIndex)=>{ return $ed43cc03b55b9961$var$insert($ed43cc03b55b9961$var$insert(tree, groupIndex, groupSize), groupIndex + 1, itemSize); }, newSizeTree); } else [newSizeTree, syncStart] = $ed43cc03b55b9961$var$insertRanges(newSizeTree, ranges); if (newSizeTree === sizeTree) return state; const { offsetTree: newOffsetTree, lastIndex: lastIndex, lastSize: lastSize, lastOffset: lastOffset } = $ed43cc03b55b9961$var$createOffsetTree(state.offsetTree, syncStart, newSizeTree, gap); return { sizeTree: newSizeTree, offsetTree: newOffsetTree, lastIndex: lastIndex, lastOffset: lastOffset, lastSize: lastSize, groupOffsetTree: groupIndices.reduce((tree, index)=>{ return $ed43cc03b55b9961$var$insert(tree, index, $ed43cc03b55b9961$var$offsetOf(index, newOffsetTree, gap)); }, $ed43cc03b55b9961$var$newTree()), groupIndices: groupIndices }; } function $ed43cc03b55b9961$var$offsetOf(index, tree, gap) { if (tree.length === 0) return 0; const { offset: offset, index: startIndex, size: size } = $ed43cc03b55b9961$var$findClosestSmallerOrEqual(tree, index, $ed43cc03b55b9961$var$indexComparator); const itemCount = index - startIndex; const top = size * itemCount + (itemCount - 1) * gap + offset; return top > 0 ? top + gap : top; } function $ed43cc03b55b9961$var$isGroupLocation(location) { return typeof location.groupIndex !== "undefined"; } function $ed43cc03b55b9961$var$originalIndexFromLocation(location, sizes, lastIndex) { if ($ed43cc03b55b9961$var$isGroupLocation(location)) return sizes.groupIndices[location.groupIndex] + 1; else { const numericIndex = location.index === "LAST" ? lastIndex : location.index; let result = $ed43cc03b55b9961$var$originalIndexFromItemIndex(numericIndex, sizes); result = Math.max(0, result, Math.min(lastIndex, result)); return result; } } function $ed43cc03b55b9961$var$originalIndexFromItemIndex(itemIndex, sizes) { if (!$ed43cc03b55b9961$var$hasGroups(sizes)) return itemIndex; let groupOffset = 0; while(sizes.groupIndices[groupOffset] <= itemIndex + groupOffset)groupOffset++; return itemIndex + groupOffset; } function $ed43cc03b55b9961$var$hasGroups(sizes) { return !$ed43cc03b55b9961$var$empty(sizes.groupOffsetTree); } function $ed43cc03b55b9961$var$sizeTreeToRanges(sizeTree) { return $ed43cc03b55b9961$var$walk(sizeTree).map(({ k: startIndex, v: size }, index, sizeArray)=>{ const nextSize = sizeArray[index + 1]; const endIndex = nextSize ? nextSize.k - 1 : Infinity; return { startIndex: startIndex, endIndex: endIndex, size: size }; }); } const $ed43cc03b55b9961$var$SIZE_MAP = { offsetHeight: "height", offsetWidth: "width" }; const $ed43cc03b55b9961$var$sizeSystem = $ed43cc03b55b9961$var$system(([{ log: log }, { recalcInProgress: recalcInProgress }])=>{ const sizeRanges = $ed43cc03b55b9961$var$stream(); const totalCount = $ed43cc03b55b9961$var$stream(); const statefulTotalCount = $ed43cc03b55b9961$var$statefulStreamFromEmitter(totalCount, 0); const unshiftWith = $ed43cc03b55b9961$var$stream(); const shiftWith = $ed43cc03b55b9961$var$stream(); const firstItemIndex = $ed43cc03b55b9961$var$statefulStream(0); const groupIndices = $ed43cc03b55b9961$var$statefulStream([]); const fixedItemSize = $ed43cc03b55b9961$var$statefulStream(void 0); const defaultItemSize = $ed43cc03b55b9961$var$statefulStream(void 0); const itemSize = $ed43cc03b55b9961$var$statefulStream((el, field)=>$ed43cc03b55b9961$var$correctItemSize(el, $ed43cc03b55b9961$var$SIZE_MAP[field])); const data = $ed43cc03b55b9961$var$statefulStream(void 0); const gap = $ed43cc03b55b9961$var$statefulStream(0); const initial = $ed43cc03b55b9961$var$initialSizeState(); const sizes = $ed43cc03b55b9961$var$statefulStreamFromEmitter($ed43cc03b55b9961$var$pipe(sizeRanges, $ed43cc03b55b9961$var$withLatestFrom(groupIndices, log, gap), $ed43cc03b55b9961$var$scan($ed43cc03b55b9961$var$sizeStateReducer, initial), $ed43cc03b55b9961$var$distinctUntilChanged()), initial); const prevGroupIndices = $ed43cc03b55b9961$var$statefulStreamFromEmitter($ed43cc03b55b9961$var$pipe(groupIndices, $ed43cc03b55b9961$var$distinctUntilChanged(), $ed43cc03b55b9961$var$scan((prev, curr)=>({ prev: prev.current, current: curr }), { prev: [], current: [] }), $ed43cc03b55b9961$var$map(({ prev: prev })=>prev)), []); $ed43cc03b55b9961$var$connect($ed43cc03b55b9961$var$pipe(groupIndices, $ed43cc03b55b9961$var$filter((indexes)=>indexes.length > 0), $ed43cc03b55b9961$var$withLatestFrom(sizes, gap), $ed43cc03b55b9961$var$map(([groupIndices2, sizes2, gap2])=>{ const groupOffsetTree = groupIndices2.reduce((tree, index, idx)=>{ return $ed43cc03b55b9961$var$insert(tree, index, $ed43cc03b55b9961$var$offsetOf(index, sizes2.offsetTree, gap2) || idx); }, $ed43cc03b55b9961$var$newTree()); return { ...sizes2, groupIndices: groupIndices2, groupOffsetTree: groupOffsetTree }; })), sizes); $ed43cc03b55b9961$var$connect($ed43cc03b55b9961$var$pipe(totalCount, $ed43cc03b55b9961$var$withLatestFrom(sizes), $ed43cc03b55b9961$var$filter(([totalCount2, { lastIndex: lastIndex }])=>{ return totalCount2 < lastIndex; }), $ed43cc03b55b9961$var$map(([totalCount2, { lastIndex: lastIndex, lastSize: lastSize }])=>{ return [ { startIndex: totalCount2, endIndex: lastIndex, size: lastSize } ]; })), sizeRanges); $ed43cc03b55b9961$var$connect(fixedItemSize, defaultItemSize); const trackItemSizes = $ed43cc03b55b9961$var$statefulStreamFromEmitter($ed43cc03b55b9961$var$pipe(fixedItemSize, $ed43cc03b55b9961$var$map((size)=>size === void 0)), true); $ed43cc03b55b9961$var$connect($ed43cc03b55b9961$var$pipe(defaultItemSize, $ed43cc03b55b9961$var$filter((value)=>{ return value !== void 0 && $ed43cc03b55b9961$var$empty($ed43cc03b55b9961$var$getValue(sizes).sizeTree); }), $ed43cc03b55b9961$var$map((size)=>[ { startIndex: 0, endIndex: 0, size: size } ])), sizeRanges); const listRefresh = $ed43cc03b55b9961$var$streamFromEmitter($ed43cc03b55b9961$var$pipe(sizeRanges, $ed43cc03b55b9961$var$withLatestFrom(sizes), $ed43cc03b55b9961$var$scan(({ sizes: oldSizes }, [_, newSizes])=>{ return { changed: newSizes !== oldSizes, sizes: newSizes }; }, { changed: false, sizes: initial }), $ed43cc03b55b9961$var$map((value)=>value.changed))); $ed43cc03b55b9961$var$subscribe($ed43cc03b55b9961$var$pipe(firstItemIndex, $ed43cc03b55b9961$var$scan((prev, next)=>{ return { diff: prev.prev - next, prev: next }; }, { diff: 0, prev: 0 }), $ed43cc03b55b9961$var$map((val)=>val.diff)), (offset)=>{ const { groupIndices: groupIndices2 } = $ed43cc03b55b9961$var$getValue(sizes); if (offset > 0) { $ed43cc03b55b9961$var$publish(recalcInProgress, true); $ed43cc03b55b9961$var$publish(unshiftWith, offset + $ed43cc03b55b9961$var$affectedGroupCount(offset, groupIndices2)); } else if (offset < 0) { const prevGroupIndicesValue = $ed43cc03b55b9961$var$getValue(prevGroupIndices); if (prevGroupIndicesValue.length > 0) offset -= $ed43cc03b55b9961$var$affectedGroupCount(-offset, prevGroupIndicesValue); $ed43cc03b55b9961$var$publish(shiftWith, offset); } }); $ed43cc03b55b9961$var$subscribe($ed43cc03b55b9961$var$pipe(firstItemIndex, $ed43cc03b55b9961$var$withLatestFrom(log)), ([index, log2])=>{ if (index < 0) log2("`firstItemIndex` prop should not be set to less than zero. If you don't know the total count, just use a very high value", { firstItemIndex: firstItemIndex }, $ed43cc03b55b9961$export$243e62d78d3b544d.ERROR); }); const beforeUnshiftWith = $ed43cc03b55b9961$var$streamFromEmitter(unshiftWith); $ed43cc03b55b9961$var$connect($ed43cc03b55b9961$var$pipe(unshiftWith, $ed43cc03b55b9961$var$withLatestFrom(sizes), $ed43cc03b55b9961$var$map(([unshiftWith2, sizes2])=>{ const groupedMode = sizes2.groupIndices.length > 0; const initialRanges = []; const defaultSize = sizes2.lastSize; if (groupedMode) { const firstGroupSize = $ed43cc03b55b9961$var$find(sizes2.sizeTree, 0); let prependedGroupItemsCount = 0; let groupIndex = 0; while(prependedGroupItemsCount < unshiftWith2){ const theGroupIndex = sizes2.groupIndices[groupIndex]; const groupItemCount = sizes2.groupIndices.length === groupIndex + 1 ? Infinity : sizes2.groupIndices[groupIndex + 1] - theGroupIndex - 1; initialRanges.push({ startIndex: theGroupIndex, endIndex: theGroupIndex, size: firstGroupSize }); initialRanges.push({ startIndex: theGroupIndex + 1, endIndex: theGroupIndex + 1 + groupItemCount - 1, size: defaultSize }); groupIndex++; prependedGroupItemsCount += groupItemCount + 1; } const sizeTreeKV = $ed43cc03b55b9961$var$walk(sizes2.sizeTree); const firstGroupIsExpanded = prependedGroupItemsCount !== unshiftWith2; if (firstGroupIsExpanded) sizeTreeKV.shift(); return sizeTreeKV.reduce((acc, { k: index, v: size })=>{ let ranges = acc.ranges; if (acc.prevSize !== 0) ranges = [ ...acc.ranges, { startIndex: acc.prevIndex, endIndex: index + unshiftWith2 - 1, size: acc.prevSize } ]; return { ranges: ranges, prevIndex: index + unshiftWith2, prevSize: size }; }, { ranges: initialRanges, prevIndex: unshiftWith2, prevSize: 0 }).ranges; } return $ed43cc03b55b9961$var$walk(sizes2.sizeTree).reduce((acc, { k: index, v: size })=>{ return { ranges: [ ...acc.ranges, { startIndex: acc.prevIndex, endIndex: index + unshiftWith2 - 1, size: acc.prevSize } ], prevIndex: index + unshiftWith2, prevSize: size }; }, { ranges: [], prevIndex: 0, prevSize: defaultSize }).ranges; })), sizeRanges); const shiftWithOffset = $ed43cc03b55b9961$var$streamFromEmitter($ed43cc03b55b9961$var$pipe(shiftWith, $ed43cc03b55b9961$var$withLatestFrom(sizes, gap), $ed43cc03b55b9961$var$map(([shiftWith2, { offsetTree: offsetTree }, gap2])=>{ const newFirstItemIndex = -shiftWith2; return $ed43cc03b55b9961$var$offsetOf(newFirstItemIndex, offsetTree, gap2); }))); $ed43cc03b55b9961$var$connect($ed43cc03b55b9961$var$pipe(shiftWith, $ed43cc03b55b9961$var$withLatestFrom(sizes, gap), $ed43cc03b55b9961$var$map(([shiftWith2, sizes2, gap2])=>{ const groupedMode = sizes2.groupIndices.length > 0; if (groupedMode) { if ($ed43cc03b55b9961$var$empty(sizes2.sizeTree)) return sizes2; let newSizeTree = $ed43cc03b55b9961$var$newTree(); const prevGroupIndicesValue = $ed43cc03b55b9961$var$getValue(prevGroupIndices); let removedItemsCount = 0; let groupIndex = 0; let groupOffset = 0; while(removedItemsCount < -shiftWith2){ groupOffset = prevGroupIndicesValue[groupIndex]; const groupItemCount = prevGroupIndicesValue[groupIndex + 1] - groupOffset - 1; groupIndex++; removedItemsCount += groupItemCount + 1; } newSizeTree = $ed43cc03b55b9961$var$walk(sizes2.sizeTree).reduce((acc, { k: k, v: v })=>{ return $ed43cc03b55b9961$var$insert(acc, Math.max(0, k + shiftWith2), v); }, newSizeTree); const aGroupIsShrunk = removedItemsCount !== -shiftWith2; if (aGroupIsShrunk) { const firstGroupSize = $ed43cc03b55b9961$var$find(sizes2.sizeTree, groupOffset); newSizeTree = $ed43cc03b55b9961$var$insert(newSizeTree, 0, firstGroupSize); const nextItemSize = $ed43cc03b55b9961$var$findMaxKeyValue(sizes2.sizeTree, -shiftWith2 + 1)[1]; newSizeTree = $ed43cc03b55b9961$var$insert(newSizeTree, 1, nextItemSize); } return { ...sizes2, sizeTree: newSizeTree, ...$ed43cc03b55b9961$var$createOffsetTree(sizes2.offsetTree, 0, newSizeTree, gap2) }; } else { const newSizeTree = $ed43cc03b55b9961$var$walk(sizes2.sizeTree).reduce((acc, { k: k, v: v })=>{ return $ed43cc03b55b9961$var$insert(acc, Math.max(0, k + shiftWith2), v); }, $ed43cc03b55b9961$var$newTree()); return { ...sizes2, sizeTree: newSizeTree, ...$ed43cc03b55b9961$var$createOffsetTree(sizes2.offsetTree, 0, newSizeTree, gap2) }; } })), sizes); return { data: // input data, totalCount: totalCount, sizeRanges: sizeRanges, groupIndices: groupIndices, defaultItemSize: defaultItemSize, fixedItemSize: fixedItemSize, unshiftWith: unshiftWith, shiftWith: shiftWith, shiftWithOffset: shiftWithOffset, beforeUnshiftWith: beforeUnshiftWith, firstItemIndex: firstItemIndex, gap: gap, sizes: // output sizes, listRefresh: listRefresh, statefulTotalCount: statefulTotalCount, trackItemSizes: trackItemSizes, itemSize: itemSize }; }, $ed43cc03b55b9961$var$tup($ed43cc03b55b9961$var$loggerSystem, $ed43cc03b55b9961$var$recalcSystem), { singleton: true }); const $ed43cc03b55b9961$var$SUPPORTS_SCROLL_TO_OPTIONS = typeof document !== "undefined" && "scrollBehavior" in document.documentElement.style; function $ed43cc03b55b9961$var$normalizeIndexLocation(location) { const result = typeof location === "number" ? { index: location } : location; if (!result.align) result.align = "start"; if (!result.behavior || !$ed43cc03b55b9961$var$SUPPORTS_SCROLL_TO_OPTIONS) result.behavior = "auto"; if (!result.offset) result.offset = 0; return result; } const $ed43cc03b55b9961$var$scrollToIndexSystem = $ed43cc03b55b9961$var$system(([{ sizes: sizes, totalCount: totalCount, listRefresh: listRefresh, gap: gap }, { scrollingInProgress: scrollingInProgress, viewportHeight: viewportHeight, scrollTo: scrollTo, smoothScrollTargetReached: smoothScrollTargetReached, headerHeight: headerHeight, footerHeight: footerHeight, fixedHeaderHeight: fixedHeaderHeight, fixedFooterHeight: fixedFooterHeight }, { log: log }])=>{ const scrollToIndex = $ed43cc03b55b9961$var$stream(); const topListHeight = $ed43cc03b55b9961$var$statefulStream(0); let unsubscribeNextListRefresh = null; let cleartTimeoutRef = null; let unsubscribeListRefresh = null; function cleanup() { if (unsubscribeNextListRefresh) { unsubscribeNextListRefresh(); unsubscribeNextListRefresh = null; } if (unsubscribeListRefresh) { unsubscribeListRefresh(); unsubscribeListRefresh = null; } if (cleartTimeoutRef) { clearTimeout(cleartTimeoutRef); cleartTimeoutRef = null; } $ed43cc03b55b9961$var$publish(scrollingInProgress, false); } $ed43cc03b55b9961$var$connect($ed43cc03b55b9961$var$pipe(scrollToIndex, $ed43cc03b55b9961$var$withLatestFrom(sizes, viewportHeight, totalCount, topListHeight, headerHeight, footerHeight, log), $ed43cc03b55b9961$var$withLatestFrom(gap, fixedHeaderHeight, fixedFooterHeight), $ed43cc03b55b9961$var$map(([[location, sizes2, viewportHeight2, totalCount2, topListHeight2, headerHeight2, footerHeight2, log2], gap2, fixedHeaderHeight2, fixedFooterHeight2])=>{ const normalLocation = $ed43cc03b55b9961$var$normalizeIndexLocation(location); const { align: align, behavior: behavior, offset: offset } = normalLocation; const lastIndex = totalCount2 - 1; const index = $ed43cc03b55b9961$var$originalIndexFromLocation(normalLocation, sizes2, lastIndex); let top = $ed43cc03b55b9961$var$offsetOf(index, sizes2.offsetTree, gap2) + headerHeight2; if (align === "end") { top += fixedHeaderHeight2 + $ed43cc03b55b9961$var$findMaxKeyValue(sizes2.sizeTree, index)[1] - viewportHeight2 + fixedFooterHeight2; if (index === lastIndex) top += footerHeight2; } else if (align === "center") top += (fixedHeaderHeight2 + $ed43cc03b55b9961$var$findMaxKeyValue(sizes2.sizeTree, index)[1] - viewportHeight2 + fixedFooterHeight2) / 2; else top -= topListHeight2; if (offset) top += offset; const retry = (listChanged)=>{ cleanup(); if (listChanged) { log2("retrying to scroll to", { location: location }, $ed43cc03b55b9961$export$243e62d78d3b544d.DEBUG); $ed43cc03b55b9961$var$publish(scrollToIndex, location); } else log2("list did not change, scroll successful", {}, $ed43cc03b55b9961$export$243e62d78d3b544d.DEBUG); }; cleanup(); if (behavior === "smooth") { let listChanged = false; unsubscribeListRefresh = $ed43cc03b55b9961$var$subscribe(listRefresh, (changed)=>{ listChanged = listChanged || changed; }); unsubscribeNextListRefresh = $ed43cc03b55b9961$var$handleNext(smoothScrollTargetReached, ()=>{ retry(listChanged); }); } else unsubscribeNextListRefresh = $ed43cc03b55b9961$var$handleNext($ed43cc03b55b9961$var$pipe(listRefresh, $ed43cc03b55b9961$var$watchChangesFor(150)), retry); cleartTimeoutRef = setTimeout(()=>{ cleanup(); }, 1200); $ed43cc03b55b9961$var$publish(scrollingInProgress, true); log2("scrolling from index to", { index: index, top: top, behavior: behavior }, $ed43cc03b55b9961$export$243e62d78d3b544d.DEBUG); return { top: top, behavior: behavior }; })), scrollTo); return { scrollToIndex: scrollToIndex, topListHeight: topListHeight }; }, $ed43cc03b55b9961$var$tup($ed43cc03b55b9961$var$sizeSystem, $ed43cc03b55b9961$var$domIOSystem, $ed43cc03b55b9961$var$loggerSystem), { singleton: true }); function $ed43cc03b55b9961$var$watchChangesFor(limit) { return (done)=>{ const timeoutRef = setTimeout(()=>{ done(false); }, limit); return (value)=>{ if (value) { done(true); clearTimeout(timeoutRef); } }; }; } const $ed43cc03b55b9961$var$UP = "up"; const $ed43cc03b55b9961$var$DOWN = "down"; const $ed43cc03b55b9961$var$NONE$1 = "none"; const $ed43cc03b55b9961$var$INITIAL_BOTTOM_STATE = { atBottom: false, notAtBottomBecause: "NOT_SHOWING_LAST_ITEM", state: { offsetBottom: 0, scrollTop: 0, viewportHeight: 0, scrollHeight: 0 } }; const $ed43cc03b55b9961$var$DEFAULT_AT_TOP_THRESHOLD = 0; const $ed43cc03b55b9961$var$stateFlagsSystem = $ed43cc03b55b9961$var$system(([{ scrollContainerState: scrollContainerState, scrollTop: scrollTop, viewportHeight: viewportHeight, headerHeight: headerHeight, footerHeight: footerHeight, scrollBy: scrollBy }])=>{ const isAtBottom = $ed43cc03b55b9961$var$statefulStream(false); const isAtTop = $ed43cc03b55b9961$var$statefulStream(true); const atBottomStateChange = $ed43cc03b55b9961$var$stream(); const atTopStateChange = $ed43cc03b55b9961$var$stream(); const atBottomThreshold = $ed43cc03b55b9961$var$statefulStream(4); const atTopThreshold = $ed43cc03b55b9961$var$statefulStream($ed43cc03b55b9961$var$DEFAULT_AT_TOP_THRESHOLD); const isScrolling = $ed43cc03b55b9961$var$statefulStreamFromEmitter($ed43cc03b55b9961$var$pipe($ed43cc03b55b9961$var$merge($ed43cc03b55b9961$var$pipe($ed43cc03b55b9961$var$duc(scrollTop), $ed43cc03b55b9961$var$skip(1), $ed43cc03b55b9961$var$mapTo(true)), $ed43cc03b55b9961$var$pipe($ed43cc03b55b9961$var$duc(scrollTop), $ed43cc03b55b9961$var$skip(1), $ed43cc03b55b9961$var$mapTo(false), $ed43cc03b55b9961$var$debounceTime(100))), $ed43cc03b55b9961$var$distinctUntilChanged()), false); const isScrollingBy = $ed43cc03b55b9961$var$statefulStreamFromEmitter($ed43cc03b55b9961$var$pipe($ed43cc03b55b9961$var$merge($ed43cc03b55b9961$var$pipe(scrollBy, $ed43cc03b55b9961$var$mapTo(true)), $ed43cc03b55b9961$var$pipe(scrollBy, $ed43cc03b55b9961$var$mapTo(false), $ed43cc03b55b9961$var$debounceTime(200))), $ed43cc03b55b9961$var$distinctUntilChanged()), false); $ed43cc03b55b9961$var$connect($ed43cc03b55b9961$var$pipe($ed43cc03b55b9961$var$combineLatest($ed43cc03b55b9961$var$duc(scrollTop), $ed43cc03b55b9961$var$duc(atTopThreshold)), $ed43cc03b55b9961$var$map(([top, atTopThreshold2])=>top <= atTopThreshold2), $ed43cc03b55b9961$var$distinctUntilChanged()), isAtTop); $ed43cc03b55b9961$var$connect($ed43cc03b55b9961$var$pipe(isAtTop, $ed43cc03b55b9961$var$throttleTime(50)), atTopStateChange); const atBottomState = $ed43cc03b55b9961$var$streamFromEmitter($ed43cc03b55b9961$var$pipe($ed43cc03b55b9961$var$combineLatest(scrollContainerState, $ed43cc03b55b9961$var$duc(viewportHeight), $ed43cc03b55b9961$var$duc(headerHeight), $ed43cc03b55b9961$var$duc(footerHeight), $ed43cc03b55b9961$var$duc(atBottomThreshold)), $ed43cc03b55b9961$var$scan((current, [{ scrollTop: scrollTop2, scrollHeight: scrollHeight }, viewportHeight2, _headerHeight, _footerHeight, atBottomThreshold2])=>{ const isAtBottom2 = scrollTop2 + viewportHeight2 - scrollHeight > -atBottomThreshold2; const state = { viewportHeight: viewportHeight2, scrollTop: scrollTop2, scrollHeight: scrollHeight }; if (isAtBottom2) { let atBottomBecause; let scrollTopDelta; if (scrollTop2 > current.state.scrollTop) { atBottomBecause = "SCROLLED_DOWN"; scrollTopDelta = current.state.scrollTop - scrollTop2; } else { atBottomBecause = "SIZE_DECREASED"; scrollTopDelta = current.state.scrollTop - scrollTop2 || current.scrollTopDelta; } return { atBottom: true, state: state, atBottomBecause: atBottomBecause, scrollTopDelta: scrollTopDelta }; } let notAtBottomBecause; if (state.scrollHeight > current.state.scrollHeight) notAtBottomBecause = "SIZE_INCREASED"; else if (viewportHeight2 < current.state.viewportHeight) notAtBottomBecause = "VIEWPORT_HEIGHT_DECREASING"; else if (scrollTop2 < current.state.scrollTop) notAtBottomBecause = "SCROLLING_UPWARDS"; else notAtBottomBecause = "NOT_FULLY_SCROLLED_TO_LAST_ITEM_BOTTOM"; return { atBottom: false, notAtBottomBecause: notAtBottomBecause, state: state }; }, $ed43cc03b55b9961$var$INITIAL_BOTTOM_STATE), $ed43cc03b55b9961$var$distinctUntilChanged((prev, next)=>{ return prev && prev.atBottom === next.atBottom; }))); const lastJumpDueToItemResize = $ed43cc03b55b9961$var$statefulStreamFromEmitter($ed43cc03b55b9961$var$pipe(scrollContainerState, $ed43cc03b55b9961$var$scan((current, { scrollTop: scrollTop2, scrollHeight: scrollHeight, viewportHeight: viewportHeight2 })=>{ if (!$ed43cc03b55b9961$var$approximatelyEqual(current.scrollHeight, scrollHeight)) { const atBottom = scrollHeight - (scrollTop2 + viewportHeight2) < 1; if (current.scrollTop !== scrollTop2 && atBottom) return { scrollHeight: scrollHeight, scrollTop: scrollTop2, jump: current.scrollTop - scrollTop2, changed: true }; else return { scrollHeight: scrollHeight, scrollTop: scrollTop2, jump: 0, changed: true }; } else return { scrollTop: scrollTop2, scrollHeight: scrollHeight, jump: 0, changed: false }; }, { scrollHeight: 0, jump: 0, scrollTop: 0, changed: false }), $ed43cc03b55b9961$var$filter((value)=>value.changed), $ed43cc03b55b9961$var$map((value)=>value.jump)), 0); $ed43cc03b55b9961$var$connect($ed43cc03b55b9961$var$pipe(atBottomState, $ed43cc03b55b9961$var$map((state)=>state.atBottom)), isAtBottom); $ed43cc03b55b9961$var$connect($ed43cc03b55b9961$var$pipe(isAtBottom, $ed43cc03b55b9961$var$throttleTime(50)), atBottomStateChange); const scrollDirection = $ed43cc03b55b9961$var$statefulStream($ed43cc03b55b9961$var$DOWN); $ed43cc03b55b9961$var$connect($ed43cc03b55b9961$var$pipe(scrollContainerState, $ed43cc03b55b9961$var$map(({ scrollTop: scrollTop2 })=>scrollTop2), $ed43cc03b55b9961$var$distinctUntilChanged(), $ed43cc03b55b9961$var$scan((acc, scrollTop2)=>{ if ($ed43cc03b55b9961$var$getValue(isScrollingBy)) return { direction: acc.direction, prevScrollTop: scrollTop2 }; return { direction: scrollTop2 < acc.prevScrollTop ? $ed43cc03b55b9961$var$UP : $ed43cc03b55b9961$var$DOWN, prevScrollTop: scrollTop2 }; }, { direction: $ed43cc03b55b9961$var$DOWN, prevScrollTop: 0 }), $ed43cc03b55b9961$var$map((value)=>value.direction)), scrollDirection); $ed43cc03b55b9961$var$connect($ed43cc03b55b9961$var$pipe(scrollContainerState, $ed43cc03b55b9961$var$throttleTime(50), $ed43cc03b55b9961$var$mapTo($ed43cc03b55b9961$var$NONE$1)), scrollDirection); const scrollVelocity = $ed43cc03b55b9961$var$statefulStream(0); $ed43cc03b55b9961$var$connect($ed43cc03b55b9961$var$pipe(isScrolling, $ed43cc03b55b9961$var$filter((value)=>!value), // eslint-disable-next-line @typescript-eslint/no-unsafe-argument $ed43cc03b55b9961$var$mapTo(0)), scrollVelocity); $ed43cc03b55b9961$var$connect($ed43cc03b55b9961$var$pipe(scrollTop, $ed43cc03b55b9961$var$throttleTime(100), $ed43cc03b55b9961$var$withLatestFrom(isScrolling), $ed43cc03b55b9961$var$filter(([_, isScrolling2])=>!!isScrolling2), $ed43cc03b55b9961$var$scan(([_, prev], [next])=>[ prev, next ], [ 0, 0 ]), $ed43cc03b55b9961$var$map(([prev, next])=>next - prev)), scrollVelocity); return { isScrolling: isScrolling, isAtTop: isAtTop, isAtBottom: isAtBottom, atBottomState: atBottomState, atTopStateChange: atTopStateChange, atBottomStateChange: atBottomStateChange, scrollDirection: scrollDirection, atBottomThreshold: atBottomThreshold, atTopThreshold: atTopThreshold, scrollVelocity: scrollVelocity, lastJumpDueToItemResize: lastJumpDueToItemResize }; }, $ed43cc03b55b9961$var$tup($ed43cc03b55b9961$var$domIOSystem)); const $ed43cc03b55b9961$var$propsReadySystem = $ed43cc03b55b9961$var$system(([{ log: log }])=>{ const propsReady = $ed43cc03b55b9961$var$statefulStream(false); const didMount = $ed43cc03b55b9961$var$streamFromEmitter($ed43cc03b55b9961$var$pipe(propsReady, $ed43cc03b55b9961$var$filter((ready)=>ready), $ed43cc03b55b9961$var$distinctUntilChanged())); $ed43cc03b55b9961$var$subscribe(propsReady, (value)=>{ value && $ed43cc03b55b9961$var$getValue(log)("props updated", {}, $ed43cc03b55b9961$export$243e62d78d3b544d.DEBUG); }); return { propsReady: propsReady, didMount: didMount }; }, $ed43cc03b55b9961$var$tup($ed43cc03b55b9961$var$loggerSystem), { singleton: true }); function $ed43cc03b55b9961$var$skipFrames(frameCount, callback) { if (frameCount == 0) callback(); else requestAnimationFrame(()=>$ed43cc03b55b9961$var$skipFrames(frameCount - 1, callback)); } function $ed43cc03b55b9961$var$getInitialTopMostItemIndexNumber(location, totalCount) { const lastIndex = totalCount - 1; const index = typeof location === "number" ? location : location.index === "LAST" ? lastIndex : location.index; return index; } const $ed43cc03b55b9961$var$initialTopMostItemIndexSystem = $ed43cc03b55b9961$var$system(([{ sizes: sizes, listRefresh: listRefresh, defaultItemSize: defaultItemSize }, { scrollTop: scrollTop }, { scrollToIndex: scrollToIndex }, { didMount: didMount }])=>{ const scrolledToInitialItem = $ed43cc03b55b9961$var$statefulStream(true); const initialTopMostItemIndex = $ed43cc03b55b9961$var$statefulStream(0); const scrollScheduled = $ed43cc03b55b9961$var$statefulStream(false); $ed43cc03b55b9961$var$connect($ed43cc03b55b9961$var$pipe(didMount, $ed43cc03b55b9961$var$withLatestFrom(initialTopMostItemIndex), $ed43cc03b55b9961$var$filter(([_, location])=>!!location), $ed43cc03b55b9961$var$mapTo(false)), scrolledToInitialItem); $ed43cc03b55b9961$var$subscribe($ed43cc03b55b9961$var$pipe($ed43cc03b55b9961$var$combineLatest(listRefresh, didMount), $ed43cc03b55b9961$var$withLatestFrom(scrolledToInitialItem, sizes, defaultItemSize, scrollScheduled), $ed43cc03b55b9961$var$filter(([[, didMount2], scrolledToInitialItem2, { sizeTree: sizeTree }, defaultItemSize2, scrollScheduled2])=>{ return didMount2 && (!$ed43cc03b55b9961$var$empty(sizeTree) || $ed43cc03b55b9961$var$isDefined(defaultItemSize2)) && !scrolledToInitialItem2 && !scrollScheduled2; }), $ed43cc03b55b9961$var$withLatestFrom(initialTopMostItemIndex)), ([, initialTopMostItemIndex2])=>{ $ed43cc03b55b9961$var$publish(scrollScheduled, true); $ed43cc03b55b9961$var$skipFrames(3, ()=>{ $ed43cc03b55b9961$var$handleNext(scrollTop, ()=>$ed43cc03b55b9961$var$publish(scrolledToInitialItem, true)); $ed43cc03b55b9961$var$publish(scrollToIndex, initialTopMostItemIndex2); }); }); return { scrolledToInitialItem: scrolledToInitialItem, initialTopMostItemIndex: initialTopMostItemIndex }; }, $ed43cc03b55b9961$var$tup($ed43cc03b55b9961$var$sizeSystem, $ed43cc03b55b9961$var$domIOSystem, $ed43cc03b55b9961$var$scrollToIndexSystem, $ed43cc03b55b9961$var$propsReadySystem), { singleton: true }); function $ed43cc03b55b9961$var$normalizeFollowOutput(follow) { if (!follow) return false; return follow === "smooth" ? "smooth" : "auto"; } const $ed43cc03b55b9961$var$behaviorFromFollowOutput = (follow, isAtBottom)=>{ if (typeof follow === "function") return $ed43cc03b55b9961$var$normalizeFollowOutput(follow(isAtBottom)); return isAtBottom && $ed43cc03b55b9961$var$normalizeFollowOutput(follow); }; const $ed43cc03b55b9961$var$followOutputSystem = $ed43cc03b55b9961$var$system(([{ totalCount: totalCount, listRefresh: listRefresh }, { isAtBottom: isAtBottom, atBottomState: atBottomState }, { scrollToIndex: scrollToIndex }, { scrolledToInitialItem: scrolledToInitialItem }, { propsReady: propsReady, didMount: didMount }, { log: log }, { scrollingInProgress: scrollingInProgress }])=>{ const followOutput = $ed43cc03b55b9961$var$statefulStream(false); const autoscrollToBottom = $ed43cc03b55b9961$var$stream(); let pendingScrollHandle = null; function scrollToBottom(followOutputBehavior) { $ed43cc03b55b9961$var$publish(scrollToIndex, { index: "LAST", align: "end", behavior: followOutputBehavior }); } $ed43cc03b55b9961$var$subscribe($ed43cc03b55b9961$var$pipe($ed43cc03b55b9961$var$combineLatest($ed43cc03b55b9961$var$pipe($ed43cc03b55b9961$var$duc(totalCount), $ed43cc03b55b9961$var$skip(1)), didMount), $ed43cc03b55b9961$var$withLatestFrom($ed43cc03b55b9961$var$duc(followOutput), isAtBottom, scrolledToInitialItem, scrollingInProgress), $ed43cc03b55b9961$var$map(([[totalCount2, didMount2], followOutput2, isAtBottom2, scrolledToInitialItem2, scrollingInProgress2])=>{ let shouldFollow = didMount2 && scrolledToInitialItem2; let followOutputBehavior = "auto"; if (shouldFollow) { followOutputBehavior = $ed43cc03b55b9961$var$behaviorFromFollowOutput(followOutput2, isAtBottom2 || scrollingInProgress2); shouldFollow = shouldFollow && !!followOutputBehavior; } return { totalCount: totalCount2, shouldFollow: shouldFollow, followOutputBehavior: followOutputBehavior }; }), $ed43cc03b55b9961$var$filter(({ shouldFollow: shouldFollow })=>shouldFollow)), ({ totalCount: totalCount2, followOutputBehavior: followOutputBehavior })=>{ if (pendingScrollHandle) { pendingScrollHandle(); pendingScrollHandle = null; } pendingScrollHandle = $ed43cc03b55b9961$var$handleNext(listRefresh, ()=>{ $ed43cc03b55b9961$var$getValue(log)("following output to ", { totalCount: totalCount2 }, $ed43cc03b55b9961$export$243e62d78d3b544d.DEBUG); scrollToBottom(followOutputBehavior); pendingScrollHandle = null; }); }); function trapNextSizeIncrease(followOutput2) { const cancel = $ed43cc03b55b9961$var$handleNext(atBottomState, (state)=>{ if (followOutput2 && !state.atBottom && state.notAtBottomBecause === "SIZE_INCREASED" && !pendingScrollHandle) { $ed43cc03b55b9961$var$getValue(log)("scrolling to bottom due to increased size", {}, $ed43cc03b55b9961$export$243e62d78d3b544d.DEBUG); scrollToBottom("auto"); } }); setTimeout(cancel, 100); } $ed43cc03b55b9961$var$subscribe($ed43cc03b55b9961$var$pipe($ed43cc03b55b9961$var$combineLatest($ed43cc03b55b9961$var$duc(followOutput), totalCount, propsReady), $ed43cc03b55b9961$var$filter(([follow, , ready])=>follow && ready), $ed43cc03b55b9961$var$scan(({ value: value }, [, next])=>{ return { refreshed: value === next, value: next }; }, { refreshed: false, value: 0 }), $ed43cc03b55b9961$var$filter(({ refreshed: refreshed })=>refreshed), $ed43cc03b55b9961$var$withLatestFrom(followOutput, totalCount)), ([, followOutput2])=>{ trapNextSizeIncrease(followOutput2 !== false); }); $ed43cc03b55b9961$var$subscribe(autoscrollToBottom, ()=>{ trapNextSizeIncrease($ed43cc03b55b9961$var$getValue(followOutput) !== false); }); $ed43cc03b55b9961$var$subscribe($ed43cc03b55b9961$var$combineLatest($ed43cc03b55b9961$var$duc(followOutput), atBottomState), ([followOutput2, state])=>{ if (followOutput2 && !state.atBottom && state.notAtBottomBecause === "VIEWPORT_HEIGHT_DECREASING") scrollToBottom("auto"); }); return { followOutput: followOutput, autoscrollToBottom: autoscrollToBottom }; }, $ed43cc03b55b9961$var$tup($ed43cc03b55b9961$var$sizeSystem, $ed43cc03b55b9961$var$stateFlagsSystem, $ed43cc03b55b9961$var$scrollToIndexSystem, $ed43cc03b55b9961$var$initialTopMostItemIndexSystem, $ed43cc03b55b9961$var$propsReadySystem, $ed43cc03b55b9961$var$loggerSystem, $ed43cc03b55b9961$var$domIOSystem)); function $ed43cc03b55b9961$var$groupCountsToIndicesAndCount(counts) { return counts.reduce((acc, groupCount)=>{ acc.groupIndices.push(acc.totalCount); acc.totalCount += groupCount + 1; return acc; }, { totalCount: 0, groupIndices: [] }); } const $ed43cc03b55b9961$var$groupedListSystem = $ed43cc03b55b9961$var$system(([{ totalCount: totalCount, groupIndices: groupIndices, sizes: sizes }, { scrollTop: scrollTop, headerHeight: headerHeight }])=>{ const groupCounts = $ed43cc03b55b9961$var$stream(); const topItemsIndexes = $ed43cc03b55b9961$var$stream(); const groupIndicesAndCount = $ed43cc03b55b9961$var$streamFromEmitter($ed43cc03b55b9961$var$pipe(groupCounts, $ed43cc03b55b9961$var$map($ed43cc03b55b9961$var$groupCountsToIndicesAndCount))); $ed43cc03b55b9961$var$connect($ed43cc03b55b9961$var$pipe(groupIndicesAndCount, $ed43cc03b55b9961$var$map((value)=>value.totalCount)), totalCount); $ed43cc03b55b9961$var$connect($ed43cc03b55b9961$var$pipe(groupIndicesAndCount, $ed43cc03b55b9961$var$map((value)=>value.groupIndices)), groupIndices); $ed43cc03b55b9961$var$connect($ed43cc03b55b9961$var$pipe($ed43cc03b55b9961$var$combineLatest(scrollTop, sizes, headerHeight), $ed43cc03b55b9961$var$filter(([_, sizes2])=>$ed43cc03b55b9961$var$hasGroups(sizes2)), $ed43cc03b55b9961$var$map(([scrollTop2, state, headerHeight2])=>$ed43cc03b55b9961$var$findMaxKeyValue(state.groupOffsetTree, Math.max(scrollTop2 - headerHeight2, 0), "v")[0]), $ed43cc03b55b9961$var$distinctUntilChanged(), $ed43cc03b55b9961$var$map((index)=>[ index ])), topItemsIndexes); return { groupCounts: groupCounts, topItemsIndexes: topItemsIndexes }; }, $ed43cc03b55b9961$var$tup($ed43cc03b55b9961$var$sizeSystem, $ed43cc03b55b9961$var$domIOSystem)); function $ed43cc03b55b9961$var$tupleComparator(prev, current) { return !!(prev && prev[0] === current[0] && prev[1] === current[1]); } function $ed43cc03b55b9961$var$rangeComparator(prev, next) { return !!(prev && prev.startIndex === next.startIndex && prev.endIndex === next.endIndex); } const $ed43cc03b55b9961$var$TOP = "top"; const $ed43cc03b55b9961$var$BOTTOM = "bottom"; const $ed43cc03b55b9961$var$NONE = "none"; function $ed43cc03b55b9961$var$getOverscan(overscan, end, direction) { if (typeof overscan === "number") return direction === $ed43cc03b55b9961$var$UP && end === $ed43cc03b55b9961$var$TOP || direction === $ed43cc03b55b9961$var$DOWN && end === $ed43cc03b55b9961$var$BOTTOM ? overscan : 0; else { if (direction === $ed43cc03b55b9961$var$UP) return end === $ed43cc03b55b9961$var$TOP ? overscan.main : overscan.reverse; else return end === $ed43cc03b55b9961$var$BOTTOM ? overscan.main : overscan.reverse; } } function $ed43cc03b55b9961$var$getViewportIncrease(value, end) { return typeof value === "number" ? value : value[end] || 0; } const $ed43cc03b55b9961$var$sizeRangeSystem = $ed43cc03b55b9961$var$system(([{ scrollTop: scrollTop, viewportHeight: viewportHeight, deviation: deviation, headerHeight: headerHeight, fixedHeaderHeight: fixedHeaderHeight }])=>{ const listBoundary = $ed43cc03b55b9961$var$stream(); const topListHeight = $ed43cc03b55b9961$var$statefulStream(0); const increaseViewportBy = $ed43cc03b55b9961$var$statefulStream(0); const overscan = $ed43cc03b55b9961$var$statefulStream(0); const visibleRange = $ed43cc03b55b9961$var$statefulStreamFromEmitter($ed43cc03b55b9961$var$pipe($ed43cc03b55b9961$var$combineLatest($ed43cc03b55b9961$var$duc(scrollTop), $ed43cc03b55b9961$var$duc(viewportHeight), $ed43cc03b55b9961$var$duc(headerHeight), $ed43cc03b55b9961$var$duc(listBoundary, $ed43cc03b55b9961$var$tupleComparator), $ed43cc03b55b9961$var$duc(overscan), $ed43cc03b55b9961$var$duc(topListHeight), $ed43cc03b55b9961$var$duc(fixedHeaderHeight), $ed43cc03b55b9961$var$duc(deviation), $ed43cc03b55b9961$var$duc(increaseViewportBy)), $ed43cc03b55b9961$var$map(([scrollTop2, viewportHeight2, headerHeight2, [listTop, listBottom], overscan2, topListHeight2, fixedHeaderHeight2, deviation2, increaseViewportBy2])=>{ const top = scrollTop2 - deviation2; const stickyHeaderHeight = topListHeight2 + fixedHeaderHeight2; const headerVisible = Math.max(headerHeight2 - top, 0); let direction = $ed43cc03b55b9961$var$NONE; const topViewportAddition = $ed43cc03b55b9961$var$getViewportIncrease(increaseViewportBy2, $ed43cc03b55b9961$var$TOP); const bottomViewportAddition = $ed43cc03b55b9961$var$getViewportIncrease(increaseViewportBy2, $ed43cc03b55b9961$var$BOTTOM); listTop -= deviation2; listTop += headerHeight2 + fixedHeaderHeight2; listBottom += headerHeight2 + fixedHeaderHeight2; listBottom -= deviation2; if (listTop > scrollTop2 + stickyHeaderHeight - topViewportAddition) direction = $ed43cc03b55b9961$var$UP; if (listBottom < scrollTop2 - headerVisible + viewportHeight2 + bottomViewportAddition) direction = $ed43cc03b55b9961$var$DOWN; if (direction !== $ed43cc03b55b9961$var$NONE) return [ Math.max(top - headerHeight2 - $ed43cc03b55b9961$var$getOverscan(overscan2, $ed43cc03b55b9961$var$TOP, direction) - topViewportAddition, 0), top - headerVisible - fixedHeaderHeight2 + viewportHeight2 + $ed43cc03b55b9961$var$getOverscan(overscan2, $ed43cc03b55b9961$var$BOTTOM, direction) + bottomViewportAddition ]; return null; }), $ed43cc03b55b9961$var$filter((value)=>value != null), $ed43cc03b55b9961$var$distinctUntilChanged($ed43cc03b55b9961$var$tupleComparator)), [ 0, 0 ]); return { listBoundary: // input listBoundary, overscan: overscan, topListHeight: topListHeight, increaseViewportBy: increaseViewportBy, visibleRange: // output visibleRange }; }, $ed43cc03b55b9961$var$tup($ed43cc03b55b9961$var$domIOSystem), { singleton: true }); function $ed43cc03b55b9961$var$probeItemSet(index, sizes, data) { if ($ed43cc03b55b9961$var$hasGroups(sizes)) { const itemIndex = $ed43cc03b55b9961$var$originalIndexFromItemIndex(index, sizes); const groupIndex = $ed43cc03b55b9961$var$findMaxKeyValue(sizes.groupOffsetTree, itemIndex)[0]; return [ { index: groupIndex, size: 0, offset: 0 }, { index: itemIndex, size: 0, offset: 0, data: data && data[0] } ]; } return [ { index: index, size: 0, offset: 0, data: data && data[0] } ]; } const $ed43cc03b55b9961$var$EMPTY_LIST_STATE = { items: [], topItems: [], offsetTop: 0, offsetBottom: 0, top: 0, bottom: 0, topListHeight: 0, totalCount: 0, firstItemIndex: 0 }; function $ed43cc03b55b9961$var$transposeItems(items, sizes, firstItemIndex) { if (items.length === 0) return []; if (!$ed43cc03b55b9961$var$hasGroups(sizes)) return items.map((item)=>({ ...item, index: item.index + firstItemIndex, originalIndex: item.index })); const startIndex = items[0].index; const endIndex = items[items.length - 1].index; const transposedItems = []; const groupRanges = $ed43cc03b55b9961$var$rangesWithin(sizes.groupOffsetTree, startIndex, endIndex); let currentRange = void 0; let currentGroupIndex = 0; for (const item of items){ if (!currentRange || currentRange.end < item.index) { currentRange = groupRanges.shift(); currentGroupIndex = sizes.groupIndices.indexOf(currentRange.start); } let transposedItem; if (item.index === currentRange.start) transposedItem = { type: "group", index: currentGroupIndex }; else transposedItem = { index: item.index - (currentGroupIndex + 1) + firstItemIndex, groupIndex: currentGroupIndex }; transposedItems.push({ ...transposedItem, size: item.size, offset: item.offset, originalIndex: item.index, data: item.data }); } return transposedItems; } function $ed43cc03b55b9961$var$buildListState(items, topItems, totalCount, gap, sizes, firstItemIndex) { const { lastSize: lastSize, lastOffset: lastOffset, lastIndex: lastIndex } = sizes; let offsetTop = 0; let bottom = 0; if (items.length > 0) { offsetTop = items[0].offset; const lastItem = items[items.length - 1]; bottom = lastItem.offset + lastItem.size; } const itemCount = totalCount - lastIndex; const total = lastOffset + itemCount * lastSize + (itemCount - 1) * gap; const top = offsetTop; const offsetBottom = total - bottom; return { items: $ed43cc03b55b9961$var$transposeItems(items, sizes, firstItemIndex), topItems: $ed43cc03b55b9961$var$transposeItems(topItems, sizes, firstItemIndex), topListHeight: topItems.reduce((height, item)=>item.size + height, 0), offsetTop: offsetTop, offsetBottom: offsetBottom, top: top, bottom: bottom, totalCount: totalCount, firstItemIndex: firstItemIndex }; } function $ed43cc03b55b9961$var$buildListStateFromItemCount(itemCount, initialTopMostItemIndex, sizes, firstItemIndex, gap, data) { let includedGroupsCount = 0; if (sizes.groupIndices.length > 0) for (const index of sizes.groupIndices){ if (index - includedGroupsCount >= itemCount) break; includedGroupsCount++; } const adjustedCount = itemCount + includedGroupsCount; const initialTopMostItemIndexNumber = $ed43cc03b55b9961$var$getInitialTopMostItemIndexNumber(initialTopMostItemIndex, adjustedCount); const items = Array.from({ length: adjustedCount }).map((_, index)=>({ index: index + initialTopMostItemIndexNumber, size: 0, offset: 0, data: data[index + initialTopMostItemIndexNumber] })); return $ed43cc03b55b9961$var$buildListState(items, [], adjustedCount, gap, sizes, firstItemIndex); } const $ed43cc03b55b9961$var$listStateSystem = $ed43cc03b55b9961$var$system(([{ sizes: sizes, totalCount: totalCount, data: data, firstItemIndex: firstItemIndex, gap: gap }, groupedListSystem2, { visibleRange: visibleRange, listBoundary: listBoundary, topListHeight: rangeTopListHeight }, { scrolledToInitialItem: scrolledToInitialItem, initialTopMostItemIndex: initialTopMostItemIndex }, { topListHeight: topListHeight }, stateFlags, { didMount: didMount }, { recalcInProgress: recalcInProgress }])=>{ const topItemsIndexes = $ed43cc03b55b9961$var$statefulStream([]); const initialItemCount = $ed43cc03b55b9961$var$statefulStream(0); const itemsRendered = $ed43cc03b55b9961$var$stream(); $ed43cc03b55b9961$var$connect(groupedListSystem2.topItemsIndexes, topItemsIndexes); const listState = $ed43cc03b55b9961$var$statefulStreamFromEmitter($ed43cc03b55b9961$var$pipe($ed43cc03b55b9961$var$combineLatest(didMount, recalcInProgress, $ed43cc03b55b9961$var$duc(visibleRange, $ed43cc03b55b9961$var$tupleComparator), $ed43cc03b55b9961$var$duc(totalCount), $ed43cc03b55b9961$var$duc(sizes), $ed43cc03b55b9961$var$duc(initialTopMostItemIndex), scrolledToInitialItem, $ed43cc03b55b9961$var$duc(topItemsIndexes), $ed43cc03b55b9961$var$duc(firstItemIndex), $ed43cc03b55b9961$var$duc(gap), data), $ed43cc03b55b9961$var$filter(([mount, recalcInProgress2, , totalCount2, , , , , , , data2])=>{ const dataChangeInProgress = data2 && data2.length !== totalCount2; return mount && !recalcInProgress2 && !dataChangeInProgress; }), $ed43cc03b55b9961$var$map(([, , [startOffset, endOffset], totalCount2, sizes2, initialTopMostItemIndex2, scrolledToInitialItem2, topItemsIndexes2, firstItemIndex2, gap2, data2])=>{ const sizesValue = sizes2; const { sizeTree: sizeTree, offsetTree: offsetTree } = sizesValue; const initialItemCountValue = $ed43cc03b55b9961$var$getValue(initialItemCount); if (totalCount2 === 0) return { ...$ed43cc03b55b9961$var$EMPTY_LIST_STATE, totalCount: totalCount2 }; if (startOffset === 0 && endOffset === 0) { if (initialItemCountValue === 0) return { ...$ed43cc03b55b9961$var$EMPTY_LIST_STATE, totalCount: totalCount2 }; else return $ed43cc03b55b9961$var$buildListStateFromItemCount(initialItemCountValue, initialTopMostItemIndex2, sizes2, firstItemIndex2, gap2, data2 || []); } if ($ed43cc03b55b9961$var$empty(sizeTree)) { if (initialItemCountValue > 0) return null; const state = $ed43cc03b55b9961$var$buildListState($ed43cc03b55b9961$var$probeItemSet($ed43cc03b55b9961$var$getInitialTopMostItemIndexNumber(initialTopMostItemIndex2, totalCount2), sizesValue, data2), [], totalCount2, gap2, sizesValue, firstItemIndex2); return state; } const topItems = []; if (topItemsIndexes2.length > 0) { const startIndex = topItemsIndexes2[0]; const endIndex = topItemsIndexes2[topItemsIndexes2.length - 1]; let offset = 0; for (const range of $ed43cc03b55b9961$var$rangesWithin(sizeTree, startIndex, endIndex)){ const size = range.value; const rangeStartIndex = Math.max(range.start, startIndex); const rangeEndIndex = Math.min(range.end, endIndex); for(let i = rangeStartIndex; i <= rangeEndIndex; i++){ topItems.push({ index: i, size: size, offset: offset, data: data2 && data2[i] }); offset += size; } } } if (!scrolledToInitialItem2) return $ed43cc03b55b9961$var$buildListState([], topItems, totalCount2, gap2, sizesValue, firstItemIndex2); const minStartIndex = topItemsIndexes2.length > 0 ? topItemsIndexes2[topItemsIndexes2.length - 1] + 1 : 0; const offsetPointRanges = $ed43cc03b55b9961$var$rangesWithinOffsets(offsetTree, startOffset, endOffset, minStartIndex); if (offsetPointRanges.length === 0) return null; const maxIndex = totalCount2 - 1; const items = $ed43cc03b55b9961$var$tap([], (result)=>{ for (const range of offsetPointRanges){ const point = range.value; let offset = point.offset; let rangeStartIndex = range.start; const size = point.size; if (point.offset < startOffset) { rangeStartIndex += Math.floor((startOffset - point.offset + gap2) / (size + gap2)); const itemCount = rangeStartIndex - range.start; offset += itemCount * size + itemCount * gap2; } if (rangeStartIndex < minStartIndex) { offset += (minStartIndex - rangeStartIndex) * size; rangeStartIndex = minStartIndex; } const endIndex = Math.min(range.end, maxIndex); for(let i = rangeStartIndex; i <= endIndex; i++){ if (offset >= endOffset) break; result.push({ index: i, size: size, offset: offset, data: data2 && data2[i] }); offset += size + gap2; } } }); return $ed43cc03b55b9961$var$buildListState(items, topItems, totalCount2, gap2, sizesValue, firstItemIndex2); }), //@ts-expect-error filter needs to be fixed $ed43cc03b55b9961$var$filter((value)=>value !== null), $ed43cc03b55b9961$var$distinctUntilChanged()), $ed43cc03b55b9961$var$EMPTY_LIST_STATE); $ed43cc03b55b9961$var$connect($ed43cc03b55b9961$var$pipe(data, $ed43cc03b55b9961$var$filter($ed43cc03b55b9961$var$isDefined), $ed43cc03b55b9961$var$map((data2)=>data2 == null ? void 0 : data2.length)), totalCount); $ed43cc03b55b9961$var$connect($ed43cc03b55b9961$var$pipe(listState, $ed43cc03b55b9961$var$map((value)=>value.topListHeight)), topListHeight); $ed43cc03b55b9961$var$connect(topListHeight, rangeTopListHeight); $ed43cc03b55b9961$var$connect($ed43cc03b55b9961$var$pipe(listState, $ed43cc03b55b9961$var$map((state)=>[ state.top, state.bottom ])), listBoundary); $ed43cc03b55b9961$var$connect($ed43cc03b55b9961$var$pipe(listState, $ed43cc03b55b9961$var$map((state)=>state.items)), itemsRendered); const endReached = $ed43cc03b55b9961$var$streamFromEmitter($ed43cc03b55b9961$var$pipe(listState, $ed43cc03b55b9961$var$filter(({ items: items })=>items.length > 0), $ed43cc03b55b9961$var$withLatestFrom(totalCount, data), $ed43cc03b55b9961$var$filter(([{ items: items }, totalCount2])=>items[items.length - 1].originalIndex === totalCount2 - 1), $ed43cc03b55b9961$var$map(([, totalCount2, data2])=>[ totalCount2 - 1, data2 ]), $ed43cc03b55b9961$var$distinctUntilChanged($ed43cc03b55b9961$var$tupleComparator), $ed43cc03b55b9961$var$map(([count])=>count))); const startReached = $ed43cc03b55b9961$var$streamFromEmitter($ed43cc03b55b9961$var$pipe(listState, $ed43cc03b55b9961$var$throttleTime(200), $ed43cc03b55b9961$var$filter(({ items: items, topItems: topItems })=>{ return items.length > 0 && items[0].originalIndex === topItems.length; }), $ed43cc03b55b9961$var$map(({ items: items })=>items[0].index), $ed43cc03b55b9961$var$distinctUntilChanged())); const rangeChanged = $ed43cc03b55b9961$var$streamFromEmitter($ed43cc03b55b9961$var$pipe(listState, $ed43cc03b55b9961$var$filter(({ items: items })=>items.length > 0), $ed43cc03b55b9961$var$map(({ items: items })=>{ let startIndex = 0; let endIndex = items.length - 1; while(items[startIndex].type === "group" && startIndex < endIndex)startIndex++; while(items[endIndex].type === "group" && endIndex > startIndex)endIndex--; return { startIndex: items[startIndex].index, endIndex: items[endIndex].index }; }), $ed43cc03b55b9961$var$distinctUntilChanged($ed43cc03b55b9961$var$rangeComparator))); return { listState: listState, topItemsIndexes: topItemsIndexes, endReached: endReached, startReached: startReached, rangeChanged: rangeChanged, itemsRendered: itemsRendered, initialItemCount: initialItemCount, ...stateFlags }; }, $ed43cc03b55b9961$var$tup($ed43cc03b55b9961$var$sizeSystem, $ed43cc03b55b9961$var$groupedListSystem, $ed43cc03b55b9961$var$sizeRangeSystem, $ed43cc03b55b9961$var$initialTopMostItemIndexSystem, $ed43cc03b55b9961$var$scrollToIndexSystem, $ed43cc03b55b9961$var$stateFlagsSystem, $ed43cc03b55b9961$var$propsReadySystem, $ed43cc03b55b9961$var$recalcSystem), { singleton: true }); const $ed43cc03b55b9961$var$initialItemCountSystem = $ed43cc03b55b9961$var$system(([{ sizes: sizes, firstItemIndex: firstItemIndex, data: data, gap: gap }, { initialTopMostItemIndex: initialTopMostItemIndex }, { initialItemCount: initialItemCount, listState: listState }, { didMount: didMount }])=>{ $ed43cc03b55b9961$var$connect($ed43cc03b55b9961$var$pipe(didMount, $ed43cc03b55b9961$var$withLatestFrom(initialItemCount), $ed43cc03b55b9961$var$filter(([, count])=>count !== 0), $ed43cc03b55b9961$var$withLatestFrom(initialTopMostItemIndex, sizes, firstItemIndex, gap, data), $ed43cc03b55b9961$var$map(([[, count], initialTopMostItemIndexValue, sizes2, firstItemIndex2, gap2, data2 = []])=>{ return $ed43cc03b55b9961$var$buildListStateFromItemCount(count, initialTopMostItemIndexValue, sizes2, firstItemIndex2, gap2, data2); })), listState); return {}; }, $ed43cc03b55b9961$var$tup($ed43cc03b55b9961$var$sizeSystem, $ed43cc03b55b9961$var$initialTopMostItemIndexSystem, $ed43cc03b55b9961$var$listStateSystem, $ed43cc03b55b9961$var$propsReadySystem), { singleton: true }); const $ed43cc03b55b9961$var$scrollSeekSystem = $ed43cc03b55b9961$var$system(([{ scrollVelocity: scrollVelocity }])=>{ const isSeeking = $ed43cc03b55b9961$var$statefulStream(false); const rangeChanged = $ed43cc03b55b9961$var$stream(); const scrollSeekConfiguration = $ed43cc03b55b9961$var$statefulStream(false); $ed43cc03b55b9961$var$connect($ed43cc03b55b9961$var$pipe(scrollVelocity, $ed43cc03b55b9961$var$withLatestFrom(scrollSeekConfiguration, isSeeking, rangeChanged), $ed43cc03b55b9961$var$filter(([_, config])=>!!config), $ed43cc03b55b9961$var$map(([speed, config, isSeeking2, range])=>{ const { exit: exit, enter: enter } = config; if (isSeeking2) { if (exit(speed, range)) return false; } else { if (enter(speed, range)) return true; } return isSeeking2; }), $ed43cc03b55b9961$var$distinctUntilChanged()), isSeeking); $ed43cc03b55b9961$var$subscribe($ed43cc03b55b9961$var$pipe($ed43cc03b55b9961$var$combineLatest(isSeeking, scrollVelocity, rangeChanged), $ed43cc03b55b9961$var$withLatestFrom(scrollSeekConfiguration)), ([[isSeeking2, velocity, range], config])=>isSeeking2 && config && config.change && config.change(velocity, range)); return { isSeeking: isSeeking, scrollSeekConfiguration: scrollSeekConfiguration, scrollVelocity: scrollVelocity, scrollSeekRangeChanged: rangeChanged }; }, $ed43cc03b55b9961$var$tup($ed43cc03b55b9961$var$stateFlagsSystem), { singleton: true }); const $ed43cc03b55b9961$var$topItemCountSystem = $ed43cc03b55b9961$var$system(([{ topItemsIndexes: topItemsIndexes }])=>{ const topItemCount = $ed43cc03b55b9961$var$statefulStream(0); $ed43cc03b55b9961$var$connect($ed43cc03b55b9961$var$pipe(topItemCount, $ed43cc03b55b9961$var$filter((length)=>length > 0), $ed43cc03b55b9961$var$map((length)=>Array.from({ length: length }).map((_, index)=>index))), topItemsIndexes); return { topItemCount: topItemCount }; }, $ed43cc03b55b9961$var$tup($ed43cc03b55b9961$var$listStateSystem)); const $ed43cc03b55b9961$var$totalListHeightSystem = $ed43cc03b55b9961$var$system(([{ footerHeight: footerHeight, headerHeight: headerHeight, fixedHeaderHeight: fixedHeaderHeight, fixedFooterHeight: fixedFooterHeight }, { listState: listState }])=>{ const totalListHeightChanged = $ed43cc03b55b9961$var$stream(); const totalListHeight = $ed43cc03b55b9961$var$statefulStreamFromEmitter($ed43cc03b55b9961$var$pipe($ed43cc03b55b9961$var$combineLatest(footerHeight, fixedFooterHeight, headerHeight, fixedHeaderHeight, listState), $ed43cc03b55b9961$var$map(([footerHeight2, fixedFooterHeight2, headerHeight2, fixedHeaderHeight2, listState2])=>{ return footerHeight2 + fixedFooterHeight2 + headerHeight2 + fixedHeaderHeight2 + listState2.offsetBottom + listState2.bottom; })), 0); $ed43cc03b55b9961$var$connect($ed43cc03b55b9961$var$duc(totalListHeight), totalListHeightChanged); return { totalListHeight: totalListHeight, totalListHeightChanged: totalListHeightChanged }; }, $ed43cc03b55b9961$var$tup($ed43cc03b55b9961$var$domIOSystem, $ed43cc03b55b9961$var$listStateSystem), { singleton: true }); function $ed43cc03b55b9961$var$simpleMemoize(func) { let called = false; let result; return ()=>{ if (!called) { called = true; result = func(); } return result; }; } const $ed43cc03b55b9961$var$isMobileSafari = $ed43cc03b55b9961$var$simpleMemoize(()=>{ return /iP(ad|od|hone)/i.test(navigator.userAgent) && /WebKit/i.test(navigator.userAgent); }); const $ed43cc03b55b9961$var$upwardScrollFixSystem = $ed43cc03b55b9961$var$system(([{ scrollBy: scrollBy, scrollTop: scrollTop, deviation: deviation, scrollingInProgress: scrollingInProgress }, { isScrolling: isScrolling, isAtBottom: isAtBottom, scrollDirection: scrollDirection, lastJumpDueToItemResize: lastJumpDueToItemResize }, { listState: listState }, { beforeUnshiftWith: beforeUnshiftWith, shiftWithOffset: shiftWithOffset, sizes: sizes, gap: gap }, { log: log }, { recalcInProgress: recalcInProgress }])=>{ const deviationOffset = $ed43cc03b55b9961$var$streamFromEmitter($ed43cc03b55b9961$var$pipe(listState, $ed43cc03b55b9961$var$withLatestFrom(lastJumpDueToItemResize), $ed43cc03b55b9961$var$scan(([, prevItems, prevTotalCount, prevTotalHeight], [{ items: items, totalCount: totalCount, bottom: bottom, offsetBottom: offsetBottom }, lastJumpDueToItemResize2])=>{ const totalHeight = bottom + offsetBottom; let newDev = 0; if (prevTotalCount === totalCount) { if (prevItems.length > 0 && items.length > 0) { const atStart = items[0].originalIndex === 0 && prevItems[0].originalIndex === 0; if (!atStart) { newDev = totalHeight - prevTotalHeight; if (newDev !== 0) newDev += lastJumpDueToItemResize2; } } } return [ newDev, items, totalCount, totalHeight ]; }, [ 0, [], 0, 0 ]), $ed43cc03b55b9961$var$filter(([amount])=>amount !== 0), $ed43cc03b55b9961$var$withLatestFrom(scrollTop, scrollDirection, scrollingInProgress, isAtBottom, log, recalcInProgress), $ed43cc03b55b9961$var$filter(([, scrollTop2, scrollDirection2, scrollingInProgress2, , , recalcInProgress2])=>{ return !recalcInProgress2 && !scrollingInProgress2 && scrollTop2 !== 0 && scrollDirection2 === $ed43cc03b55b9961$var$UP; }), $ed43cc03b55b9961$var$map(([[amount], , , , , log2])=>{ log2("Upward scrolling compensation", { amount: amount }, $ed43cc03b55b9961$export$243e62d78d3b544d.DEBUG); return amount; }))); function scrollByWith(offset) { if (offset > 0) { $ed43cc03b55b9961$var$publish(scrollBy, { top: -offset, behavior: "auto" }); $ed43cc03b55b9961$var$publish(deviation, 0); } else { $ed43cc03b55b9961$var$publish(deviation, 0); $ed43cc03b55b9961$var$publish(scrollBy, { top: -offset, behavior: "auto" }); } } $ed43cc03b55b9961$var$subscribe($ed43cc03b55b9961$var$pipe(deviationOffset, $ed43cc03b55b9961$var$withLatestFrom(deviation, isScrolling)), ([offset, deviationAmount, isScrolling2])=>{ if (isScrolling2 && $ed43cc03b55b9961$var$isMobileSafari()) $ed43cc03b55b9961$var$publish(deviation, deviationAmount - offset); else scrollByWith(-offset); }); $ed43cc03b55b9961$var$subscribe($ed43cc03b55b9961$var$pipe($ed43cc03b55b9961$var$combineLatest($ed43cc03b55b9961$var$statefulStreamFromEmitter(isScrolling, false), deviation, recalcInProgress), $ed43cc03b55b9961$var$filter(([is, deviation2, recalc])=>!is && !recalc && deviation2 !== 0), $ed43cc03b55b9961$var$map(([_, deviation2])=>deviation2), $ed43cc03b55b9961$var$throttleTime(1)), scrollByWith); $ed43cc03b55b9961$var$connect($ed43cc03b55b9961$var$pipe(shiftWithOffset, $ed43cc03b55b9961$var$map((offset)=>{ return { top: -offset }; })), scrollBy); $ed43cc03b55b9961$var$subscribe($ed43cc03b55b9961$var$pipe(beforeUnshiftWith, $ed43cc03b55b9961$var$withLatestFrom(sizes, gap), $ed43cc03b55b9961$var$map(([offset, { lastSize: defaultItemSize, groupIndices: groupIndices, sizeTree: sizeTree }, gap2])=>{ function getItemOffset(itemCount) { return itemCount * (defaultItemSize + gap2); } if (groupIndices.length === 0) return getItemOffset(offset); else { let amount = 0; const defaultGroupSize = $ed43cc03b55b9961$var$find(sizeTree, 0); let recognizedOffsetItems = 0; let groupIndex = 0; while(recognizedOffsetItems < offset){ recognizedOffsetItems++; amount += defaultGroupSize; let groupItemCount = groupIndices.length === groupIndex + 1 ? Infinity : groupIndices[groupIndex + 1] - groupIndices[groupIndex] - 1; if (recognizedOffsetItems + groupItemCount > offset) { amount -= defaultGroupSize; groupItemCount = offset - recognizedOffsetItems + 1; } recognizedOffsetItems += groupItemCount; amount += getItemOffset(groupItemCount); groupIndex++; } return amount; } })), (offset)=>{ $ed43cc03b55b9961$var$publish(deviation, offset); requestAnimationFrame(()=>{ $ed43cc03b55b9961$var$publish(scrollBy, { top: offset }); requestAnimationFrame(()=>{ $ed43cc03b55b9961$var$publish(deviation, 0); $ed43cc03b55b9961$var$publish(recalcInProgress, false); }); }); }); return { deviation: deviation }; }, $ed43cc03b55b9961$var$tup($ed43cc03b55b9961$var$domIOSystem, $ed43cc03b55b9961$var$stateFlagsSystem, $ed43cc03b55b9961$var$listStateSystem, $ed43cc03b55b9961$var$sizeSystem, $ed43cc03b55b9961$var$loggerSystem, $ed43cc03b55b9961$var$recalcSystem)); const $ed43cc03b55b9961$var$initialScrollTopSystem = $ed43cc03b55b9961$var$system(([{ didMount: didMount }, { scrollTo: scrollTo }, { listState: listState }])=>{ const initialScrollTop = $ed43cc03b55b9961$var$statefulStream(0); $ed43cc03b55b9961$var$subscribe($ed43cc03b55b9961$var$pipe(didMount, $ed43cc03b55b9961$var$withLatestFrom(initialScrollTop), $ed43cc03b55b9961$var$filter(([, offset])=>offset !== 0), $ed43cc03b55b9961$var$map(([, offset])=>({ top: offset }))), (location)=>{ $ed43cc03b55b9961$var$handleNext($ed43cc03b55b9961$var$pipe(listState, $ed43cc03b55b9961$var$skip(1), $ed43cc03b55b9961$var$filter((state)=>state.items.length > 1)), ()=>{ requestAnimationFrame(()=>{ $ed43cc03b55b9961$var$publish(scrollTo, location); }); }); }); return { initialScrollTop: initialScrollTop }; }, $ed43cc03b55b9961$var$tup($ed43cc03b55b9961$var$propsReadySystem, $ed43cc03b55b9961$var$domIOSystem, $ed43cc03b55b9961$var$listStateSystem), { singleton: true }); const $ed43cc03b55b9961$var$alignToBottomSystem = $ed43cc03b55b9961$var$system(([{ viewportHeight: viewportHeight }, { totalListHeight: totalListHeight }])=>{ const alignToBottom = $ed43cc03b55b9961$var$statefulStream(false); const paddingTopAddition = $ed43cc03b55b9961$var$statefulStreamFromEmitter($ed43cc03b55b9961$var$pipe($ed43cc03b55b9961$var$combineLatest(alignToBottom, viewportHeight, totalListHeight), $ed43cc03b55b9961$var$filter(([enabled])=>enabled), $ed43cc03b55b9961$var$map(([, viewportHeight2, totalListHeight2])=>{ return Math.max(0, viewportHeight2 - totalListHeight2); }), $ed43cc03b55b9961$var$throttleTime(0), $ed43cc03b55b9961$var$distinctUntilChanged()), 0); return { alignToBottom: alignToBottom, paddingTopAddition: paddingTopAddition }; }, $ed43cc03b55b9961$var$tup($ed43cc03b55b9961$var$domIOSystem, $ed43cc03b55b9961$var$totalListHeightSystem), { singleton: true }); const $ed43cc03b55b9961$var$windowScrollerSystem = $ed43cc03b55b9961$var$system(([{ scrollTo: scrollTo, scrollContainerState: scrollContainerState }])=>{ const windowScrollContainerState = $ed43cc03b55b9961$var$stream(); const windowViewportRect = $ed43cc03b55b9961$var$stream(); const windowScrollTo = $ed43cc03b55b9961$var$stream(); const useWindowScroll = $ed43cc03b55b9961$var$statefulStream(false); const customScrollParent = $ed43cc03b55b9961$var$statefulStream(void 0); $ed43cc03b55b9961$var$connect($ed43cc03b55b9961$var$pipe($ed43cc03b55b9961$var$combineLatest(windowScrollContainerState, windowViewportRect), $ed43cc03b55b9961$var$map(([{ viewportHeight: viewportHeight, scrollTop: windowScrollTop, scrollHeight: scrollHeight }, { offsetTop: offsetTop }])=>{ return { scrollTop: Math.max(0, windowScrollTop - offsetTop), scrollHeight: scrollHeight, viewportHeight: viewportHeight }; })), scrollContainerState); $ed43cc03b55b9961$var$connect($ed43cc03b55b9961$var$pipe(scrollTo, $ed43cc03b55b9961$var$withLatestFrom(windowViewportRect), $ed43cc03b55b9961$var$map(([scrollTo2, { offsetTop: offsetTop }])=>{ return { ...scrollTo2, top: scrollTo2.top + offsetTop }; })), windowScrollTo); return { useWindowScroll: // config useWindowScroll, customScrollParent: customScrollParent, windowScrollContainerState: // input windowScrollContainerState, windowViewportRect: windowViewportRect, windowScrollTo: // signals windowScrollTo }; }, $ed43cc03b55b9961$var$tup($ed43cc03b55b9961$var$domIOSystem)); const $ed43cc03b55b9961$var$defaultCalculateViewLocation = ({ itemTop: itemTop2, itemBottom: itemBottom, viewportTop: viewportTop, viewportBottom: viewportBottom, locationParams: { behavior: behavior, align: align, ...rest } })=>{ if (itemTop2 < viewportTop) return { ...rest, behavior: behavior, align: align != null ? align : "start" }; if (itemBottom > viewportBottom) return { ...rest, behavior: behavior, align: align != null ? align : "end" }; return null; }; const $ed43cc03b55b9961$var$scrollIntoViewSystem = $ed43cc03b55b9961$var$system(([{ sizes: sizes, totalCount: totalCount, gap: gap }, { scrollTop: scrollTop, viewportHeight: viewportHeight, headerHeight: headerHeight, fixedHeaderHeight: fixedHeaderHeight, fixedFooterHeight: fixedFooterHeight, scrollingInProgress: scrollingInProgress }, { scrollToIndex: scrollToIndex }])=>{ const scrollIntoView = $ed43cc03b55b9961$var$stream(); $ed43cc03b55b9961$var$connect($ed43cc03b55b9961$var$pipe(scrollIntoView, $ed43cc03b55b9961$var$withLatestFrom(sizes, viewportHeight, totalCount, headerHeight, fixedHeaderHeight, fixedFooterHeight, scrollTop), $ed43cc03b55b9961$var$withLatestFrom(gap), $ed43cc03b55b9961$var$map(([[viewLocation, sizes2, viewportHeight2, totalCount2, headerHeight2, fixedHeaderHeight2, fixedFooterHeight2, scrollTop2], gap2])=>{ const { done: done, behavior: behavior, align: align, calculateViewLocation: calculateViewLocation = $ed43cc03b55b9961$var$defaultCalculateViewLocation, ...rest } = viewLocation; const actualIndex = $ed43cc03b55b9961$var$originalIndexFromLocation(viewLocation, sizes2, totalCount2 - 1); const itemTop2 = $ed43cc03b55b9961$var$offsetOf(actualIndex, sizes2.offsetTree, gap2) + headerHeight2 + fixedHeaderHeight2; const itemBottom = itemTop2 + $ed43cc03b55b9961$var$findMaxKeyValue(sizes2.sizeTree, actualIndex)[1]; const viewportTop = scrollTop2 + fixedHeaderHeight2; const viewportBottom = scrollTop2 + viewportHeight2 - fixedFooterHeight2; const location = calculateViewLocation({ itemTop: itemTop2, itemBottom: itemBottom, viewportTop: viewportTop, viewportBottom: viewportBottom, locationParams: { behavior: behavior, align: align, ...rest } }); if (location) done && $ed43cc03b55b9961$var$handleNext($ed43cc03b55b9961$var$pipe(scrollingInProgress, $ed43cc03b55b9961$var$filter((value)=>value === false), // skips the initial publish of false, and the cleanup call. // but if scrollingInProgress is true, we skip the initial publish. $ed43cc03b55b9961$var$skip($ed43cc03b55b9961$var$getValue(scrollingInProgress) ? 1 : 2)), done); else done && done(); return location; }), $ed43cc03b55b9961$var$filter((value)=>value !== null)), scrollToIndex); return { scrollIntoView: scrollIntoView }; }, $ed43cc03b55b9961$var$tup($ed43cc03b55b9961$var$sizeSystem, $ed43cc03b55b9961$var$domIOSystem, $ed43cc03b55b9961$var$scrollToIndexSystem, $ed43cc03b55b9961$var$listStateSystem, $ed43cc03b55b9961$var$loggerSystem), { singleton: true }); const $ed43cc03b55b9961$var$stateLoadSystem = $ed43cc03b55b9961$var$system(([{ sizes: sizes, sizeRanges: sizeRanges }, { scrollTop: scrollTop }, { initialTopMostItemIndex: initialTopMostItemIndex }, { didMount: didMount }, { useWindowScroll: useWindowScroll, windowScrollContainerState: windowScrollContainerState, windowViewportRect: windowViewportRect }])=>{ const getState = $ed43cc03b55b9961$var$stream(); const restoreStateFrom = $ed43cc03b55b9961$var$statefulStream(void 0); const statefulWindowScrollContainerState = $ed43cc03b55b9961$var$statefulStream(null); const statefulWindowViewportRect = $ed43cc03b55b9961$var$statefulStream(null); $ed43cc03b55b9961$var$connect(windowScrollContainerState, statefulWindowScrollContainerState); $ed43cc03b55b9961$var$connect(windowViewportRect, statefulWindowViewportRect); $ed43cc03b55b9961$var$subscribe($ed43cc03b55b9961$var$pipe(getState, $ed43cc03b55b9961$var$withLatestFrom(sizes, scrollTop, useWindowScroll, statefulWindowScrollContainerState, statefulWindowViewportRect)), ([callback, sizes2, scrollTop2, useWindowScroll2, windowScrollContainerState2, windowViewportRect2])=>{ const ranges = $ed43cc03b55b9961$var$sizeTreeToRanges(sizes2.sizeTree); if (useWindowScroll2 && windowScrollContainerState2 !== null && windowViewportRect2 !== null) scrollTop2 = windowScrollContainerState2.scrollTop - windowViewportRect2.offsetTop; callback({ ranges: ranges, scrollTop: scrollTop2 }); }); $ed43cc03b55b9961$var$connect($ed43cc03b55b9961$var$pipe(restoreStateFrom, $ed43cc03b55b9961$var$filter($ed43cc03b55b9961$var$isDefined), $ed43cc03b55b9961$var$map($ed43cc03b55b9961$var$locationFromSnapshot)), initialTopMostItemIndex); $ed43cc03b55b9961$var$connect($ed43cc03b55b9961$var$pipe(didMount, $ed43cc03b55b9961$var$withLatestFrom(restoreStateFrom), $ed43cc03b55b9961$var$filter(([, state])=>state !== void 0), $ed43cc03b55b9961$var$distinctUntilChanged(), $ed43cc03b55b9961$var$map(([, snapshot])=>{ return snapshot.ranges; })), sizeRanges); return { getState: getState, restoreStateFrom: restoreStateFrom }; }, $ed43cc03b55b9961$var$tup($ed43cc03b55b9961$var$sizeSystem, $ed43cc03b55b9961$var$domIOSystem, $ed43cc03b55b9961$var$initialTopMostItemIndexSystem, $ed43cc03b55b9961$var$propsReadySystem, $ed43cc03b55b9961$var$windowScrollerSystem)); function $ed43cc03b55b9961$var$locationFromSnapshot(snapshot) { return { offset: snapshot.scrollTop, index: 0, align: "start" }; } const $ed43cc03b55b9961$var$featureGroup1System = $ed43cc03b55b9961$var$system(([sizeRange, initialItemCount, propsReady, scrollSeek, totalListHeight, initialScrollTopSystem2, alignToBottom, windowScroller, scrollIntoView, logger])=>{ return { ...sizeRange, ...initialItemCount, ...propsReady, ...scrollSeek, ...totalListHeight, ...initialScrollTopSystem2, ...alignToBottom, ...windowScroller, ...scrollIntoView, ...logger }; }, $ed43cc03b55b9961$var$tup($ed43cc03b55b9961$var$sizeRangeSystem, $ed43cc03b55b9961$var$initialItemCountSystem, $ed43cc03b55b9961$var$propsReadySystem, $ed43cc03b55b9961$var$scrollSeekSystem, $ed43cc03b55b9961$var$totalListHeightSystem, $ed43cc03b55b9961$var$initialScrollTopSystem, $ed43cc03b55b9961$var$alignToBottomSystem, $ed43cc03b55b9961$var$windowScrollerSystem, $ed43cc03b55b9961$var$scrollIntoViewSystem, $ed43cc03b55b9961$var$loggerSystem)); const $ed43cc03b55b9961$var$listSystem = $ed43cc03b55b9961$var$system(([{ totalCount: totalCount, sizeRanges: sizeRanges, fixedItemSize: fixedItemSize, defaultItemSize: defaultItemSize, trackItemSizes: trackItemSizes, itemSize: itemSize, data: data, firstItemIndex: firstItemIndex, groupIndices: groupIndices, statefulTotalCount: statefulTotalCount, gap: gap, sizes: sizes }, { initialTopMostItemIndex: initialTopMostItemIndex, scrolledToInitialItem: scrolledToInitialItem }, domIO, stateLoad, followOutput, { listState: listState, topItemsIndexes: topItemsIndexes, ...flags }, { scrollToIndex: scrollToIndex }, _, { topItemCount: topItemCount }, { groupCounts: groupCounts }, featureGroup1])=>{ $ed43cc03b55b9961$var$connect(flags.rangeChanged, featureGroup1.scrollSeekRangeChanged); $ed43cc03b55b9961$var$connect($ed43cc03b55b9961$var$pipe(featureGroup1.windowViewportRect, $ed43cc03b55b9961$var$map((value)=>value.visibleHeight)), domIO.viewportHeight); return { totalCount: // input totalCount, data: data, firstItemIndex: firstItemIndex, sizeRanges: sizeRanges, initialTopMostItemIndex: initialTopMostItemIndex, scrolledToInitialItem: scrolledToInitialItem, topItemsIndexes: topItemsIndexes, topItemCount: topItemCount, groupCounts: groupCounts, fixedItemHeight: fixedItemSize, defaultItemHeight: defaultItemSize, gap: gap, ...followOutput, statefulTotalCount: // output statefulTotalCount, listState: listState, scrollToIndex: scrollToIndex, trackItemSizes: trackItemSizes, itemSize: itemSize, groupIndices: groupIndices, // exported from stateFlagsSystem ...flags, // the bag of IO from featureGroup1System ...featureGroup1, ...domIO, sizes: sizes, ...stateLoad }; }, $ed43cc03b55b9961$var$tup($ed43cc03b55b9961$var$sizeSystem, $ed43cc03b55b9961$var$initialTopMostItemIndexSystem, $ed43cc03b55b9961$var$domIOSystem, $ed43cc03b55b9961$var$stateLoadSystem, $ed43cc03b55b9961$var$followOutputSystem, $ed43cc03b55b9961$var$listStateSystem, $ed43cc03b55b9961$var$scrollToIndexSystem, $ed43cc03b55b9961$var$upwardScrollFixSystem, $ed43cc03b55b9961$var$topItemCountSystem, $ed43cc03b55b9961$var$groupedListSystem, $ed43cc03b55b9961$var$featureGroup1System)); const $ed43cc03b55b9961$var$WEBKIT_STICKY = "-webkit-sticky"; const $ed43cc03b55b9961$var$STICKY = "sticky"; const $ed43cc03b55b9961$var$positionStickyCssValue = $ed43cc03b55b9961$var$simpleMemoize(()=>{ if (typeof document === "undefined") return $ed43cc03b55b9961$var$STICKY; const node = document.createElement("div"); node.style.position = $ed43cc03b55b9961$var$WEBKIT_STICKY; return node.style.position === $ed43cc03b55b9961$var$WEBKIT_STICKY ? $ed43cc03b55b9961$var$WEBKIT_STICKY : $ed43cc03b55b9961$var$STICKY; }); function $ed43cc03b55b9961$var$useWindowViewportRectRef(callback, customScrollParent) { const viewportInfo = (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).useRef(null); const calculateInfo = (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).useCallback((element)=>{ if (element === null || !element.offsetParent) return; const rect = element.getBoundingClientRect(); const visibleWidth = rect.width; let visibleHeight, offsetTop; if (customScrollParent) { const customScrollParentRect = customScrollParent.getBoundingClientRect(); const deltaTop = rect.top - customScrollParentRect.top; visibleHeight = customScrollParentRect.height - Math.max(0, deltaTop); offsetTop = deltaTop + customScrollParent.scrollTop; } else { visibleHeight = window.innerHeight - Math.max(0, rect.top); offsetTop = rect.top + window.pageYOffset; } viewportInfo.current = { offsetTop: offsetTop, visibleHeight: visibleHeight, visibleWidth: visibleWidth }; callback(viewportInfo.current); }, [ callback, customScrollParent ]); const { callbackRef: callbackRef, ref: ref } = $ed43cc03b55b9961$var$useSizeWithElRef(calculateInfo); const scrollAndResizeEventHandler = (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).useCallback(()=>{ calculateInfo(ref.current); }, [ calculateInfo, ref ]); (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).useEffect(()=>{ if (customScrollParent) { customScrollParent.addEventListener("scroll", scrollAndResizeEventHandler); const observer = new ResizeObserver(scrollAndResizeEventHandler); observer.observe(customScrollParent); return ()=>{ customScrollParent.removeEventListener("scroll", scrollAndResizeEventHandler); observer.unobserve(customScrollParent); }; } else { window.addEventListener("scroll", scrollAndResizeEventHandler); window.addEventListener("resize", scrollAndResizeEventHandler); return ()=>{ window.removeEventListener("scroll", scrollAndResizeEventHandler); window.removeEventListener("resize", scrollAndResizeEventHandler); }; } }, [ scrollAndResizeEventHandler, customScrollParent ]); return callbackRef; } const $ed43cc03b55b9961$export$99e9d54e386aea7b = (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).createContext(void 0); const $ed43cc03b55b9961$export$81e3217b4b7a890f = (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).createContext(void 0); function $ed43cc03b55b9961$var$identity(value) { return value; } const $ed43cc03b55b9961$var$listComponentPropsSystem = /* @__PURE__ */ $ed43cc03b55b9961$var$system(()=>{ const itemContent = $ed43cc03b55b9961$var$statefulStream((index)=>`Item ${index}`); const context = $ed43cc03b55b9961$var$statefulStream(null); const groupContent = $ed43cc03b55b9961$var$statefulStream((index)=>`Group ${index}`); const components = $ed43cc03b55b9961$var$statefulStream({}); const computeItemKey = $ed43cc03b55b9961$var$statefulStream($ed43cc03b55b9961$var$identity); const headerFooterTag = $ed43cc03b55b9961$var$statefulStream("div"); const scrollerRef = $ed43cc03b55b9961$var$statefulStream($ed43cc03b55b9961$var$noop); const distinctProp = (propName, defaultValue = null)=>{ return $ed43cc03b55b9961$var$statefulStreamFromEmitter($ed43cc03b55b9961$var$pipe(components, $ed43cc03b55b9961$var$map((components2)=>components2[propName]), $ed43cc03b55b9961$var$distinctUntilChanged()), defaultValue); }; return { context: context, itemContent: itemContent, groupContent: groupContent, components: components, computeItemKey: computeItemKey, headerFooterTag: headerFooterTag, scrollerRef: scrollerRef, FooterComponent: distinctProp("Footer"), HeaderComponent: distinctProp("Header"), TopItemListComponent: distinctProp("TopItemList"), ListComponent: distinctProp("List", "div"), ItemComponent: distinctProp("Item", "div"), GroupComponent: distinctProp("Group", "div"), ScrollerComponent: distinctProp("Scroller", "div"), EmptyPlaceholder: distinctProp("EmptyPlaceholder"), ScrollSeekPlaceholder: distinctProp("ScrollSeekPlaceholder") }; }); const $ed43cc03b55b9961$var$combinedSystem$2 = /* @__PURE__ */ $ed43cc03b55b9961$var$system(([listSystem2, propsSystem])=>{ return { ...listSystem2, ...propsSystem }; }, $ed43cc03b55b9961$var$tup($ed43cc03b55b9961$var$listSystem, $ed43cc03b55b9961$var$listComponentPropsSystem)); const $ed43cc03b55b9961$var$DefaultScrollSeekPlaceholder$1 = ({ height: height })=>/* @__PURE__ */ (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).createElement("div", { style: { height: height } }); const $ed43cc03b55b9961$var$GROUP_STYLE = { position: $ed43cc03b55b9961$var$positionStickyCssValue(), zIndex: 1, overflowAnchor: "none" }; const $ed43cc03b55b9961$var$ITEM_STYLE$1 = { overflowAnchor: "none" }; const $ed43cc03b55b9961$var$Items$1 = /* @__PURE__ */ (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).memo(function VirtuosoItems({ showTopList: showTopList = false }) { const listState = $ed43cc03b55b9961$var$useEmitterValue$2("listState"); const sizeRanges = $ed43cc03b55b9961$var$usePublisher$2("sizeRanges"); const useWindowScroll = $ed43cc03b55b9961$var$useEmitterValue$2("useWindowScroll"); const customScrollParent = $ed43cc03b55b9961$var$useEmitterValue$2("customScrollParent"); const windowScrollContainerStateCallback = $ed43cc03b55b9961$var$usePublisher$2("windowScrollContainerState"); const _scrollContainerStateCallback = $ed43cc03b55b9961$var$usePublisher$2("scrollContainerState"); const scrollContainerStateCallback = customScrollParent || useWindowScroll ? windowScrollContainerStateCallback : _scrollContainerStateCallback; const itemContent = $ed43cc03b55b9961$var$useEmitterValue$2("itemContent"); const context = $ed43cc03b55b9961$var$useEmitterValue$2("context"); const groupContent = $ed43cc03b55b9961$var$useEmitterValue$2("groupContent"); const trackItemSizes = $ed43cc03b55b9961$var$useEmitterValue$2("trackItemSizes"); const itemSize = $ed43cc03b55b9961$var$useEmitterValue$2("itemSize"); const log = $ed43cc03b55b9961$var$useEmitterValue$2("log"); const listGap = $ed43cc03b55b9961$var$usePublisher$2("gap"); const { callbackRef: callbackRef } = $ed43cc03b55b9961$var$useChangedListContentsSizes(sizeRanges, itemSize, trackItemSizes, showTopList ? $ed43cc03b55b9961$var$noop : scrollContainerStateCallback, log, listGap, customScrollParent); const [deviation, setDeviation] = (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).useState(0); $ed43cc03b55b9961$var$useEmitter$2("deviation", (value)=>{ if (deviation !== value) setDeviation(value); }); const EmptyPlaceholder = $ed43cc03b55b9961$var$useEmitterValue$2("EmptyPlaceholder"); const ScrollSeekPlaceholder = $ed43cc03b55b9961$var$useEmitterValue$2("ScrollSeekPlaceholder") || $ed43cc03b55b9961$var$DefaultScrollSeekPlaceholder$1; const ListComponent = $ed43cc03b55b9961$var$useEmitterValue$2("ListComponent"); const ItemComponent = $ed43cc03b55b9961$var$useEmitterValue$2("ItemComponent"); const GroupComponent = $ed43cc03b55b9961$var$useEmitterValue$2("GroupComponent"); const computeItemKey = $ed43cc03b55b9961$var$useEmitterValue$2("computeItemKey"); const isSeeking = $ed43cc03b55b9961$var$useEmitterValue$2("isSeeking"); const hasGroups2 = $ed43cc03b55b9961$var$useEmitterValue$2("groupIndices").length > 0; const paddingTopAddition = $ed43cc03b55b9961$var$useEmitterValue$2("paddingTopAddition"); const scrolledToInitialItem = $ed43cc03b55b9961$var$useEmitterValue$2("scrolledToInitialItem"); const containerStyle = showTopList ? {} : { boxSizing: "border-box", paddingTop: listState.offsetTop + paddingTopAddition, paddingBottom: listState.offsetBottom, marginTop: deviation, ...scrolledToInitialItem ? {} : { visibility: "hidden" } }; if (!showTopList && listState.totalCount === 0 && EmptyPlaceholder) return (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).createElement(EmptyPlaceholder, $ed43cc03b55b9961$var$contextPropIfNotDomElement(EmptyPlaceholder, context)); return (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).createElement(ListComponent, { ...$ed43cc03b55b9961$var$contextPropIfNotDomElement(ListComponent, context), ref: callbackRef, style: containerStyle, "data-test-id": showTopList ? "virtuoso-top-item-list" : "virtuoso-item-list" }, (showTopList ? listState.topItems : listState.items).map((item)=>{ const index = item.originalIndex; const key = computeItemKey(index + listState.firstItemIndex, item.data, context); if (isSeeking) return (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).createElement(ScrollSeekPlaceholder, { ...$ed43cc03b55b9961$var$contextPropIfNotDomElement(ScrollSeekPlaceholder, context), key: key, index: item.index, height: item.size, type: item.type || "item", ...item.type === "group" ? {} : { groupIndex: item.groupIndex } }); if (item.type === "group") return (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).createElement(GroupComponent, { ...$ed43cc03b55b9961$var$contextPropIfNotDomElement(GroupComponent, context), key: key, "data-index": index, "data-known-size": item.size, "data-item-index": item.index, style: $ed43cc03b55b9961$var$GROUP_STYLE }, groupContent(item.index, context)); else return (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).createElement(ItemComponent, { ...$ed43cc03b55b9961$var$contextPropIfNotDomElement(ItemComponent, context), ...$ed43cc03b55b9961$var$itemPropIfNotDomElement(ItemComponent, item.data), key: key, "data-index": index, "data-known-size": item.size, "data-item-index": item.index, "data-item-group-index": item.groupIndex, style: $ed43cc03b55b9961$var$ITEM_STYLE$1 }, hasGroups2 ? itemContent(item.index, item.groupIndex, item.data, context) : itemContent(item.index, item.data, context)); })); }); const $ed43cc03b55b9961$var$scrollerStyle = { height: "100%", outline: "none", overflowY: "auto", position: "relative", WebkitOverflowScrolling: "touch" }; const $ed43cc03b55b9961$var$viewportStyle = { width: "100%", height: "100%", position: "absolute", top: 0 }; const $ed43cc03b55b9961$var$topItemListStyle = { width: "100%", position: $ed43cc03b55b9961$var$positionStickyCssValue(), top: 0, zIndex: 1 }; function $ed43cc03b55b9961$var$contextPropIfNotDomElement(element, context) { if (typeof element === "string") return void 0; return { context: context }; } function $ed43cc03b55b9961$var$itemPropIfNotDomElement(element, item) { return { item: typeof element === "string" ? void 0 : item }; } const $ed43cc03b55b9961$var$Header$1 = /* @__PURE__ */ (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).memo(function VirtuosoHeader() { const Header2 = $ed43cc03b55b9961$var$useEmitterValue$2("HeaderComponent"); const headerHeight = $ed43cc03b55b9961$var$usePublisher$2("headerHeight"); const headerFooterTag = $ed43cc03b55b9961$var$useEmitterValue$2("headerFooterTag"); const ref = $ed43cc03b55b9961$var$useSize((el)=>headerHeight($ed43cc03b55b9961$var$correctItemSize(el, "height"))); const context = $ed43cc03b55b9961$var$useEmitterValue$2("context"); return Header2 ? (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).createElement(headerFooterTag, { ref: ref }, (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).createElement(Header2, $ed43cc03b55b9961$var$contextPropIfNotDomElement(Header2, context))) : null; }); const $ed43cc03b55b9961$var$Footer$1 = /* @__PURE__ */ (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).memo(function VirtuosoFooter() { const Footer2 = $ed43cc03b55b9961$var$useEmitterValue$2("FooterComponent"); const footerHeight = $ed43cc03b55b9961$var$usePublisher$2("footerHeight"); const headerFooterTag = $ed43cc03b55b9961$var$useEmitterValue$2("headerFooterTag"); const ref = $ed43cc03b55b9961$var$useSize((el)=>footerHeight($ed43cc03b55b9961$var$correctItemSize(el, "height"))); const context = $ed43cc03b55b9961$var$useEmitterValue$2("context"); return Footer2 ? (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).createElement(headerFooterTag, { ref: ref }, (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).createElement(Footer2, $ed43cc03b55b9961$var$contextPropIfNotDomElement(Footer2, context))) : null; }); function $ed43cc03b55b9961$var$buildScroller({ usePublisher: usePublisher2, useEmitter: useEmitter2, useEmitterValue: useEmitterValue2 }) { const Scroller2 = (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).memo(function VirtuosoScroller({ style: style, children: children, ...props }) { const scrollContainerStateCallback = usePublisher2("scrollContainerState"); const ScrollerComponent = useEmitterValue2("ScrollerComponent"); const smoothScrollTargetReached = usePublisher2("smoothScrollTargetReached"); const scrollerRefCallback = useEmitterValue2("scrollerRef"); const context = useEmitterValue2("context"); const { scrollerRef: scrollerRef, scrollByCallback: scrollByCallback, scrollToCallback: scrollToCallback } = $ed43cc03b55b9961$var$useScrollTop(scrollContainerStateCallback, smoothScrollTargetReached, ScrollerComponent, scrollerRefCallback); useEmitter2("scrollTo", scrollToCallback); useEmitter2("scrollBy", scrollByCallback); return (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).createElement(ScrollerComponent, { ref: scrollerRef, style: { ...$ed43cc03b55b9961$var$scrollerStyle, ...style }, "data-test-id": "virtuoso-scroller", "data-virtuoso-scroller": true, tabIndex: 0, ...props, ...$ed43cc03b55b9961$var$contextPropIfNotDomElement(ScrollerComponent, context) }, children); }); return Scroller2; } function $ed43cc03b55b9961$var$buildWindowScroller({ usePublisher: usePublisher2, useEmitter: useEmitter2, useEmitterValue: useEmitterValue2 }) { const Scroller2 = (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).memo(function VirtuosoWindowScroller({ style: style, children: children, ...props }) { const scrollContainerStateCallback = usePublisher2("windowScrollContainerState"); const ScrollerComponent = useEmitterValue2("ScrollerComponent"); const smoothScrollTargetReached = usePublisher2("smoothScrollTargetReached"); const totalListHeight = useEmitterValue2("totalListHeight"); const deviation = useEmitterValue2("deviation"); const customScrollParent = useEmitterValue2("customScrollParent"); const context = useEmitterValue2("context"); const { scrollerRef: scrollerRef, scrollByCallback: scrollByCallback, scrollToCallback: scrollToCallback } = $ed43cc03b55b9961$var$useScrollTop(scrollContainerStateCallback, smoothScrollTargetReached, ScrollerComponent, $ed43cc03b55b9961$var$noop, customScrollParent); $ed43cc03b55b9961$var$useIsomorphicLayoutEffect$1(()=>{ scrollerRef.current = customScrollParent ? customScrollParent : window; return ()=>{ scrollerRef.current = null; }; }, [ scrollerRef, customScrollParent ]); useEmitter2("windowScrollTo", scrollToCallback); useEmitter2("scrollBy", scrollByCallback); return (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).createElement(ScrollerComponent, { style: { position: "relative", ...style, ...totalListHeight !== 0 ? { height: totalListHeight + deviation } : {} }, "data-virtuoso-scroller": true, ...props, ...$ed43cc03b55b9961$var$contextPropIfNotDomElement(ScrollerComponent, context) }, children); }); return Scroller2; } const $ed43cc03b55b9961$var$Viewport$2 = ({ children: children })=>{ const ctx = (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).useContext($ed43cc03b55b9961$export$99e9d54e386aea7b); const viewportHeight = $ed43cc03b55b9961$var$usePublisher$2("viewportHeight"); const fixedItemHeight = $ed43cc03b55b9961$var$usePublisher$2("fixedItemHeight"); const viewportRef = $ed43cc03b55b9961$var$useSize($ed43cc03b55b9961$var$compose(viewportHeight, (el)=>$ed43cc03b55b9961$var$correctItemSize(el, "height"))); (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).useEffect(()=>{ if (ctx) { viewportHeight(ctx.viewportHeight); fixedItemHeight(ctx.itemHeight); } }, [ ctx, viewportHeight, fixedItemHeight ]); return /* @__PURE__ */ (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).createElement("div", { style: $ed43cc03b55b9961$var$viewportStyle, ref: viewportRef, "data-viewport-type": "element" }, children); }; const $ed43cc03b55b9961$var$WindowViewport$2 = ({ children: children })=>{ const ctx = (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).useContext($ed43cc03b55b9961$export$99e9d54e386aea7b); const windowViewportRect = $ed43cc03b55b9961$var$usePublisher$2("windowViewportRect"); const fixedItemHeight = $ed43cc03b55b9961$var$usePublisher$2("fixedItemHeight"); const customScrollParent = $ed43cc03b55b9961$var$useEmitterValue$2("customScrollParent"); const viewportRef = $ed43cc03b55b9961$var$useWindowViewportRectRef(windowViewportRect, customScrollParent); (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).useEffect(()=>{ if (ctx) { fixedItemHeight(ctx.itemHeight); windowViewportRect({ offsetTop: 0, visibleHeight: ctx.viewportHeight, visibleWidth: 100 }); } }, [ ctx, windowViewportRect, fixedItemHeight ]); return /* @__PURE__ */ (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).createElement("div", { ref: viewportRef, style: $ed43cc03b55b9961$var$viewportStyle, "data-viewport-type": "window" }, children); }; const $ed43cc03b55b9961$var$TopItemListContainer = ({ children: children })=>{ const TopItemList = $ed43cc03b55b9961$var$useEmitterValue$2("TopItemListComponent"); const headerHeight = $ed43cc03b55b9961$var$useEmitterValue$2("headerHeight"); const style = { ...$ed43cc03b55b9961$var$topItemListStyle, marginTop: `${headerHeight}px` }; const context = $ed43cc03b55b9961$var$useEmitterValue$2("context"); return (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).createElement(TopItemList || "div", { style: style, context: context }, children); }; const $ed43cc03b55b9961$var$ListRoot = /* @__PURE__ */ (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).memo(function VirtuosoRoot(props) { const useWindowScroll = $ed43cc03b55b9961$var$useEmitterValue$2("useWindowScroll"); const showTopList = $ed43cc03b55b9961$var$useEmitterValue$2("topItemsIndexes").length > 0; const customScrollParent = $ed43cc03b55b9961$var$useEmitterValue$2("customScrollParent"); const TheScroller = customScrollParent || useWindowScroll ? $ed43cc03b55b9961$var$WindowScroller$2 : $ed43cc03b55b9961$var$Scroller$2; const TheViewport = customScrollParent || useWindowScroll ? $ed43cc03b55b9961$var$WindowViewport$2 : $ed43cc03b55b9961$var$Viewport$2; return /* @__PURE__ */ (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).createElement(TheScroller, { ...props }, showTopList && /* @__PURE__ */ (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).createElement($ed43cc03b55b9961$var$TopItemListContainer, null, /* @__PURE__ */ (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).createElement($ed43cc03b55b9961$var$Items$1, { showTopList: true })), /* @__PURE__ */ (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).createElement(TheViewport, null, /* @__PURE__ */ (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).createElement($ed43cc03b55b9961$var$Header$1, null), /* @__PURE__ */ (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).createElement($ed43cc03b55b9961$var$Items$1, null), /* @__PURE__ */ (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).createElement($ed43cc03b55b9961$var$Footer$1, null))); }); const { Component: $ed43cc03b55b9961$var$List, usePublisher: $ed43cc03b55b9961$var$usePublisher$2, useEmitterValue: $ed43cc03b55b9961$var$useEmitterValue$2, useEmitter: $ed43cc03b55b9961$var$useEmitter$2 } = /* @__PURE__ */ $ed43cc03b55b9961$var$systemToComponent($ed43cc03b55b9961$var$combinedSystem$2, { required: {}, optional: { restoreStateFrom: "restoreStateFrom", context: "context", followOutput: "followOutput", itemContent: "itemContent", groupContent: "groupContent", overscan: "overscan", increaseViewportBy: "increaseViewportBy", totalCount: "totalCount", groupCounts: "groupCounts", topItemCount: "topItemCount", firstItemIndex: "firstItemIndex", initialTopMostItemIndex: "initialTopMostItemIndex", components: "components", atBottomThreshold: "atBottomThreshold", atTopThreshold: "atTopThreshold", computeItemKey: "computeItemKey", defaultItemHeight: "defaultItemHeight", fixedItemHeight: "fixedItemHeight", itemSize: "itemSize", scrollSeekConfiguration: "scrollSeekConfiguration", headerFooterTag: "headerFooterTag", data: "data", initialItemCount: "initialItemCount", initialScrollTop: "initialScrollTop", alignToBottom: "alignToBottom", useWindowScroll: "useWindowScroll", customScrollParent: "customScrollParent", scrollerRef: "scrollerRef", logLevel: "logLevel" }, methods: { scrollToIndex: "scrollToIndex", scrollIntoView: "scrollIntoView", scrollTo: "scrollTo", scrollBy: "scrollBy", autoscrollToBottom: "autoscrollToBottom", getState: "getState" }, events: { isScrolling: "isScrolling", endReached: "endReached", startReached: "startReached", rangeChanged: "rangeChanged", atBottomStateChange: "atBottomStateChange", atTopStateChange: "atTopStateChange", totalListHeightChanged: "totalListHeightChanged", itemsRendered: "itemsRendered", groupIndices: "groupIndices" } }, $ed43cc03b55b9961$var$ListRoot); const $ed43cc03b55b9961$var$Scroller$2 = /* @__PURE__ */ $ed43cc03b55b9961$var$buildScroller({ usePublisher: $ed43cc03b55b9961$var$usePublisher$2, useEmitterValue: $ed43cc03b55b9961$var$useEmitterValue$2, useEmitter: $ed43cc03b55b9961$var$useEmitter$2 }); const $ed43cc03b55b9961$var$WindowScroller$2 = /* @__PURE__ */ $ed43cc03b55b9961$var$buildWindowScroller({ usePublisher: $ed43cc03b55b9961$var$usePublisher$2, useEmitterValue: $ed43cc03b55b9961$var$useEmitterValue$2, useEmitter: $ed43cc03b55b9961$var$useEmitter$2 }); const $ed43cc03b55b9961$export$ea50ab61e1198ee3 = $ed43cc03b55b9961$var$List; const $ed43cc03b55b9961$export$41737384f976dee3 = $ed43cc03b55b9961$var$List; const $ed43cc03b55b9961$var$INITIAL_GRID_STATE = { items: [], offsetBottom: 0, offsetTop: 0, top: 0, bottom: 0, itemHeight: 0, itemWidth: 0 }; const $ed43cc03b55b9961$var$PROBE_GRID_STATE = { items: [ { index: 0 } ], offsetBottom: 0, offsetTop: 0, top: 0, bottom: 0, itemHeight: 0, itemWidth: 0 }; const { round: $ed43cc03b55b9961$var$round, ceil: $ed43cc03b55b9961$var$ceil, floor: $ed43cc03b55b9961$var$floor, min: $ed43cc03b55b9961$var$min, max: $ed43cc03b55b9961$var$max } = Math; function $ed43cc03b55b9961$var$buildProbeGridState(items) { return { ...$ed43cc03b55b9961$var$PROBE_GRID_STATE, items: items }; } function $ed43cc03b55b9961$var$buildItems(startIndex, endIndex, data) { return Array.from({ length: endIndex - startIndex + 1 }).map((_, i)=>{ const dataItem = data === null ? null : data[i + startIndex]; return { index: i + startIndex, data: dataItem }; }); } function $ed43cc03b55b9961$var$gapComparator(prev, next) { return prev && prev.column === next.column && prev.row === next.row; } function $ed43cc03b55b9961$var$dimensionComparator(prev, next) { return prev && prev.width === next.width && prev.height === next.height; } const $ed43cc03b55b9961$var$gridSystem = /* @__PURE__ */ $ed43cc03b55b9961$var$system(([{ overscan: overscan, visibleRange: visibleRange, listBoundary: listBoundary }, { scrollTop: scrollTop, viewportHeight: viewportHeight, scrollBy: scrollBy, scrollTo: scrollTo, smoothScrollTargetReached: smoothScrollTargetReached, scrollContainerState: scrollContainerState, footerHeight: footerHeight, headerHeight: headerHeight }, stateFlags, scrollSeek, { propsReady: propsReady, didMount: didMount }, { windowViewportRect: windowViewportRect, useWindowScroll: useWindowScroll, customScrollParent: customScrollParent, windowScrollContainerState: windowScrollContainerState, windowScrollTo: windowScrollTo }, log])=>{ const totalCount = $ed43cc03b55b9961$var$statefulStream(0); const initialItemCount = $ed43cc03b55b9961$var$statefulStream(0); const gridState = $ed43cc03b55b9961$var$statefulStream($ed43cc03b55b9961$var$INITIAL_GRID_STATE); const viewportDimensions = $ed43cc03b55b9961$var$statefulStream({ height: 0, width: 0 }); const itemDimensions = $ed43cc03b55b9961$var$statefulStream({ height: 0, width: 0 }); const scrollToIndex = $ed43cc03b55b9961$var$stream(); const scrollHeight = $ed43cc03b55b9961$var$stream(); const deviation = $ed43cc03b55b9961$var$statefulStream(0); const data = $ed43cc03b55b9961$var$statefulStream(null); const gap = $ed43cc03b55b9961$var$statefulStream({ row: 0, column: 0 }); const stateChanged = $ed43cc03b55b9961$var$stream(); const restoreStateFrom = $ed43cc03b55b9961$var$stream(); const stateRestoreInProgress = $ed43cc03b55b9961$var$statefulStream(false); const initialTopMostItemIndex = $ed43cc03b55b9961$var$statefulStream(0); const scrolledToInitialItem = $ed43cc03b55b9961$var$statefulStream(true); const scrollScheduled = $ed43cc03b55b9961$var$statefulStream(false); $ed43cc03b55b9961$var$subscribe($ed43cc03b55b9961$var$pipe(didMount, $ed43cc03b55b9961$var$withLatestFrom(initialTopMostItemIndex), $ed43cc03b55b9961$var$filter(([_, location])=>!!location)), ()=>{ $ed43cc03b55b9961$var$publish(scrolledToInitialItem, false); $ed43cc03b55b9961$var$publish(initialItemCount, 0); }); $ed43cc03b55b9961$var$subscribe($ed43cc03b55b9961$var$pipe($ed43cc03b55b9961$var$combineLatest(didMount, scrolledToInitialItem, itemDimensions, viewportDimensions, initialTopMostItemIndex, scrollScheduled), $ed43cc03b55b9961$var$filter(([didMount2, scrolledToInitialItem2, itemDimensions2, viewportDimensions2, , scrollScheduled2])=>{ return didMount2 && !scrolledToInitialItem2 && itemDimensions2.height !== 0 && viewportDimensions2.height !== 0 && !scrollScheduled2; })), ([, , , , initialTopMostItemIndex2])=>{ $ed43cc03b55b9961$var$publish(scrollScheduled, true); $ed43cc03b55b9961$var$skipFrames(1, ()=>{ $ed43cc03b55b9961$var$publish(scrollToIndex, initialTopMostItemIndex2); }); $ed43cc03b55b9961$var$handleNext($ed43cc03b55b9961$var$pipe(scrollTop), ()=>{ $ed43cc03b55b9961$var$publish(listBoundary, [ 0, 0 ]); $ed43cc03b55b9961$var$publish(scrolledToInitialItem, true); }); }); $ed43cc03b55b9961$var$connect($ed43cc03b55b9961$var$pipe(restoreStateFrom, $ed43cc03b55b9961$var$filter((value)=>value !== void 0 && value !== null && value.scrollTop > 0), $ed43cc03b55b9961$var$mapTo(0)), initialItemCount); $ed43cc03b55b9961$var$subscribe($ed43cc03b55b9961$var$pipe(didMount, $ed43cc03b55b9961$var$withLatestFrom(restoreStateFrom), $ed43cc03b55b9961$var$filter(([, snapshot])=>snapshot !== void 0 && snapshot !== null)), ([, snapshot])=>{ if (!snapshot) return; $ed43cc03b55b9961$var$publish(viewportDimensions, snapshot.viewport), $ed43cc03b55b9961$var$publish(itemDimensions, snapshot == null ? void 0 : snapshot.item); $ed43cc03b55b9961$var$publish(gap, snapshot.gap); if (snapshot.scrollTop > 0) { $ed43cc03b55b9961$var$publish(stateRestoreInProgress, true); $ed43cc03b55b9961$var$handleNext($ed43cc03b55b9961$var$pipe(scrollTop, $ed43cc03b55b9961$var$skip(1)), (_value)=>{ $ed43cc03b55b9961$var$publish(stateRestoreInProgress, false); }); $ed43cc03b55b9961$var$publish(scrollTo, { top: snapshot.scrollTop }); } }); $ed43cc03b55b9961$var$connect($ed43cc03b55b9961$var$pipe(viewportDimensions, $ed43cc03b55b9961$var$map(({ height: height })=>height)), viewportHeight); $ed43cc03b55b9961$var$connect($ed43cc03b55b9961$var$pipe($ed43cc03b55b9961$var$combineLatest($ed43cc03b55b9961$var$duc(viewportDimensions, $ed43cc03b55b9961$var$dimensionComparator), $ed43cc03b55b9961$var$duc(itemDimensions, $ed43cc03b55b9961$var$dimensionComparator), $ed43cc03b55b9961$var$duc(gap, (prev, next)=>prev && prev.column === next.column && prev.row === next.row), $ed43cc03b55b9961$var$duc(scrollTop)), $ed43cc03b55b9961$var$map(([viewport, item, gap2, scrollTop2])=>({ viewport: viewport, item: item, gap: gap2, scrollTop: scrollTop2 }))), stateChanged); $ed43cc03b55b9961$var$connect($ed43cc03b55b9961$var$pipe($ed43cc03b55b9961$var$combineLatest($ed43cc03b55b9961$var$duc(totalCount), visibleRange, $ed43cc03b55b9961$var$duc(gap, $ed43cc03b55b9961$var$gapComparator), $ed43cc03b55b9961$var$duc(itemDimensions, $ed43cc03b55b9961$var$dimensionComparator), $ed43cc03b55b9961$var$duc(viewportDimensions, $ed43cc03b55b9961$var$dimensionComparator), $ed43cc03b55b9961$var$duc(data), $ed43cc03b55b9961$var$duc(initialItemCount), $ed43cc03b55b9961$var$duc(stateRestoreInProgress), $ed43cc03b55b9961$var$duc(scrolledToInitialItem), $ed43cc03b55b9961$var$duc(initialTopMostItemIndex)), $ed43cc03b55b9961$var$filter(([, , , , , , , stateRestoreInProgress2])=>{ return !stateRestoreInProgress2; }), $ed43cc03b55b9961$var$map(([totalCount2, [startOffset, endOffset], gap2, item, viewport, data2, initialItemCount2, , scrolledToInitialItem2, initialTopMostItemIndex2])=>{ const { row: rowGap, column: columnGap } = gap2; const { height: itemHeight, width: itemWidth } = item; const { width: viewportWidth } = viewport; if (initialItemCount2 === 0 && (totalCount2 === 0 || viewportWidth === 0)) return $ed43cc03b55b9961$var$INITIAL_GRID_STATE; if (itemWidth === 0) { const startIndex2 = $ed43cc03b55b9961$var$getInitialTopMostItemIndexNumber(initialTopMostItemIndex2, totalCount2); const endIndex2 = startIndex2 === 0 ? Math.max(initialItemCount2 - 1, 0) : startIndex2; return $ed43cc03b55b9961$var$buildProbeGridState($ed43cc03b55b9961$var$buildItems(startIndex2, endIndex2, data2)); } const perRow = $ed43cc03b55b9961$var$itemsPerRow(viewportWidth, itemWidth, columnGap); let startIndex; let endIndex; if (!scrolledToInitialItem2) { startIndex = 0; endIndex = -1; } else if (startOffset === 0 && endOffset === 0 && initialItemCount2 > 0) { startIndex = 0; endIndex = initialItemCount2 - 1; } else { startIndex = perRow * $ed43cc03b55b9961$var$floor((startOffset + rowGap) / (itemHeight + rowGap)); endIndex = perRow * $ed43cc03b55b9961$var$ceil((endOffset + rowGap) / (itemHeight + rowGap)) - 1; endIndex = $ed43cc03b55b9961$var$min(totalCount2 - 1, $ed43cc03b55b9961$var$max(endIndex, perRow - 1)); startIndex = $ed43cc03b55b9961$var$min(endIndex, $ed43cc03b55b9961$var$max(0, startIndex)); } const items = $ed43cc03b55b9961$var$buildItems(startIndex, endIndex, data2); const { top: top, bottom: bottom } = $ed43cc03b55b9961$var$gridLayout(viewport, gap2, item, items); const rowCount = $ed43cc03b55b9961$var$ceil(totalCount2 / perRow); const totalHeight = rowCount * itemHeight + (rowCount - 1) * rowGap; const offsetBottom = totalHeight - bottom; return { items: items, offsetTop: top, offsetBottom: offsetBottom, top: top, bottom: bottom, itemHeight: itemHeight, itemWidth: itemWidth }; })), gridState); $ed43cc03b55b9961$var$connect($ed43cc03b55b9961$var$pipe(data, $ed43cc03b55b9961$var$filter((data2)=>data2 !== null), $ed43cc03b55b9961$var$map((data2)=>data2.length)), totalCount); $ed43cc03b55b9961$var$connect($ed43cc03b55b9961$var$pipe($ed43cc03b55b9961$var$combineLatest(viewportDimensions, itemDimensions, gridState, gap), $ed43cc03b55b9961$var$filter(([viewportDimensions2, itemDimensions2, { items: items }])=>{ return items.length > 0 && itemDimensions2.height !== 0 && viewportDimensions2.height !== 0; }), $ed43cc03b55b9961$var$map(([viewportDimensions2, itemDimensions2, { items: items }, gap2])=>{ const { top: top, bottom: bottom } = $ed43cc03b55b9961$var$gridLayout(viewportDimensions2, gap2, itemDimensions2, items); return [ top, bottom ]; }), $ed43cc03b55b9961$var$distinctUntilChanged($ed43cc03b55b9961$var$tupleComparator)), listBoundary); const hasScrolled = $ed43cc03b55b9961$var$statefulStream(false); $ed43cc03b55b9961$var$connect($ed43cc03b55b9961$var$pipe(scrollTop, $ed43cc03b55b9961$var$withLatestFrom(hasScrolled), $ed43cc03b55b9961$var$map(([scrollTop2, hasScrolled2])=>{ return hasScrolled2 || scrollTop2 !== 0; })), hasScrolled); const endReached = $ed43cc03b55b9961$var$streamFromEmitter($ed43cc03b55b9961$var$pipe($ed43cc03b55b9961$var$duc(gridState), $ed43cc03b55b9961$var$filter(({ items: items })=>items.length > 0), $ed43cc03b55b9961$var$withLatestFrom(totalCount, hasScrolled), $ed43cc03b55b9961$var$filter(([{ items: items }, totalCount2, hasScrolled2])=>hasScrolled2 && items[items.length - 1].index === totalCount2 - 1), $ed43cc03b55b9961$var$map(([, totalCount2])=>totalCount2 - 1), $ed43cc03b55b9961$var$distinctUntilChanged())); const startReached = $ed43cc03b55b9961$var$streamFromEmitter($ed43cc03b55b9961$var$pipe($ed43cc03b55b9961$var$duc(gridState), $ed43cc03b55b9961$var$filter(({ items: items })=>{ return items.length > 0 && items[0].index === 0; }), // eslint-disable-next-line @typescript-eslint/no-unsafe-argument $ed43cc03b55b9961$var$mapTo(0), $ed43cc03b55b9961$var$distinctUntilChanged())); const rangeChanged = $ed43cc03b55b9961$var$streamFromEmitter($ed43cc03b55b9961$var$pipe($ed43cc03b55b9961$var$duc(gridState), $ed43cc03b55b9961$var$withLatestFrom(stateRestoreInProgress), $ed43cc03b55b9961$var$filter(([{ items: items }, stateRestoreInProgress2])=>items.length > 0 && !stateRestoreInProgress2), $ed43cc03b55b9961$var$map(([{ items: items }])=>{ return { startIndex: items[0].index, endIndex: items[items.length - 1].index }; }), $ed43cc03b55b9961$var$distinctUntilChanged($ed43cc03b55b9961$var$rangeComparator), $ed43cc03b55b9961$var$throttleTime(0))); $ed43cc03b55b9961$var$connect(rangeChanged, scrollSeek.scrollSeekRangeChanged); $ed43cc03b55b9961$var$connect($ed43cc03b55b9961$var$pipe(scrollToIndex, $ed43cc03b55b9961$var$withLatestFrom(viewportDimensions, itemDimensions, totalCount, gap), $ed43cc03b55b9961$var$map(([location, viewportDimensions2, itemDimensions2, totalCount2, gap2])=>{ const normalLocation = $ed43cc03b55b9961$var$normalizeIndexLocation(location); const { align: align, behavior: behavior, offset: offset } = normalLocation; let index = normalLocation.index; if (index === "LAST") index = totalCount2 - 1; index = $ed43cc03b55b9961$var$max(0, index, $ed43cc03b55b9961$var$min(totalCount2 - 1, index)); let top = $ed43cc03b55b9961$var$itemTop(viewportDimensions2, gap2, itemDimensions2, index); if (align === "end") top = $ed43cc03b55b9961$var$round(top - viewportDimensions2.height + itemDimensions2.height); else if (align === "center") top = $ed43cc03b55b9961$var$round(top - viewportDimensions2.height / 2 + itemDimensions2.height / 2); if (offset) top += offset; return { top: top, behavior: behavior }; })), scrollTo); const totalListHeight = $ed43cc03b55b9961$var$statefulStreamFromEmitter($ed43cc03b55b9961$var$pipe(gridState, $ed43cc03b55b9961$var$map((gridState2)=>{ return gridState2.offsetBottom + gridState2.bottom; })), 0); $ed43cc03b55b9961$var$connect($ed43cc03b55b9961$var$pipe(windowViewportRect, $ed43cc03b55b9961$var$map((viewportInfo)=>({ width: viewportInfo.visibleWidth, height: viewportInfo.visibleHeight }))), viewportDimensions); return { data: // input data, totalCount: totalCount, viewportDimensions: viewportDimensions, itemDimensions: itemDimensions, scrollTop: scrollTop, scrollHeight: scrollHeight, overscan: overscan, scrollBy: scrollBy, scrollTo: scrollTo, scrollToIndex: scrollToIndex, smoothScrollTargetReached: smoothScrollTargetReached, windowViewportRect: windowViewportRect, windowScrollTo: windowScrollTo, useWindowScroll: useWindowScroll, customScrollParent: customScrollParent, windowScrollContainerState: windowScrollContainerState, deviation: deviation, scrollContainerState: scrollContainerState, footerHeight: footerHeight, headerHeight: headerHeight, initialItemCount: initialItemCount, gap: gap, restoreStateFrom: restoreStateFrom, ...scrollSeek, initialTopMostItemIndex: initialTopMostItemIndex, gridState: // output gridState, totalListHeight: totalListHeight, ...stateFlags, startReached: startReached, endReached: endReached, rangeChanged: rangeChanged, stateChanged: stateChanged, propsReady: propsReady, stateRestoreInProgress: stateRestoreInProgress, ...log }; }, $ed43cc03b55b9961$var$tup($ed43cc03b55b9961$var$sizeRangeSystem, $ed43cc03b55b9961$var$domIOSystem, $ed43cc03b55b9961$var$stateFlagsSystem, $ed43cc03b55b9961$var$scrollSeekSystem, $ed43cc03b55b9961$var$propsReadySystem, $ed43cc03b55b9961$var$windowScrollerSystem, $ed43cc03b55b9961$var$loggerSystem)); function $ed43cc03b55b9961$var$gridLayout(viewport, gap, item, items) { const { height: itemHeight } = item; if (itemHeight === void 0 || items.length === 0) return { top: 0, bottom: 0 }; const top = $ed43cc03b55b9961$var$itemTop(viewport, gap, item, items[0].index); const bottom = $ed43cc03b55b9961$var$itemTop(viewport, gap, item, items[items.length - 1].index) + itemHeight; return { top: top, bottom: bottom }; } function $ed43cc03b55b9961$var$itemTop(viewport, gap, item, index) { const perRow = $ed43cc03b55b9961$var$itemsPerRow(viewport.width, item.width, gap.column); const rowCount = $ed43cc03b55b9961$var$floor(index / perRow); const top = rowCount * item.height + $ed43cc03b55b9961$var$max(0, rowCount - 1) * gap.row; return top > 0 ? top + gap.row : top; } function $ed43cc03b55b9961$var$itemsPerRow(viewportWidth, itemWidth, gap) { return $ed43cc03b55b9961$var$max(1, $ed43cc03b55b9961$var$floor((viewportWidth + gap) / ($ed43cc03b55b9961$var$floor(itemWidth) + gap))); } const $ed43cc03b55b9961$var$gridComponentPropsSystem = /* @__PURE__ */ $ed43cc03b55b9961$var$system(()=>{ const itemContent = $ed43cc03b55b9961$var$statefulStream((index)=>`Item ${index}`); const components = $ed43cc03b55b9961$var$statefulStream({}); const context = $ed43cc03b55b9961$var$statefulStream(null); const itemClassName = $ed43cc03b55b9961$var$statefulStream("virtuoso-grid-item"); const listClassName = $ed43cc03b55b9961$var$statefulStream("virtuoso-grid-list"); const computeItemKey = $ed43cc03b55b9961$var$statefulStream($ed43cc03b55b9961$var$identity); const headerFooterTag = $ed43cc03b55b9961$var$statefulStream("div"); const scrollerRef = $ed43cc03b55b9961$var$statefulStream($ed43cc03b55b9961$var$noop); const distinctProp = (propName, defaultValue = null)=>{ return $ed43cc03b55b9961$var$statefulStreamFromEmitter($ed43cc03b55b9961$var$pipe(components, $ed43cc03b55b9961$var$map((components2)=>components2[propName]), $ed43cc03b55b9961$var$distinctUntilChanged()), defaultValue); }; return { context: context, itemContent: itemContent, components: components, computeItemKey: computeItemKey, itemClassName: itemClassName, listClassName: listClassName, headerFooterTag: headerFooterTag, scrollerRef: scrollerRef, FooterComponent: distinctProp("Footer"), HeaderComponent: distinctProp("Header"), ListComponent: distinctProp("List", "div"), ItemComponent: distinctProp("Item", "div"), ScrollerComponent: distinctProp("Scroller", "div"), ScrollSeekPlaceholder: distinctProp("ScrollSeekPlaceholder", "div") }; }); const $ed43cc03b55b9961$var$combinedSystem$1 = /* @__PURE__ */ $ed43cc03b55b9961$var$system(([gridSystem2, gridComponentPropsSystem2])=>{ return { ...gridSystem2, ...gridComponentPropsSystem2 }; }, $ed43cc03b55b9961$var$tup($ed43cc03b55b9961$var$gridSystem, $ed43cc03b55b9961$var$gridComponentPropsSystem)); const $ed43cc03b55b9961$var$GridItems = /* @__PURE__ */ (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).memo(function GridItems2() { const gridState = $ed43cc03b55b9961$var$useEmitterValue$1("gridState"); const listClassName = $ed43cc03b55b9961$var$useEmitterValue$1("listClassName"); const itemClassName = $ed43cc03b55b9961$var$useEmitterValue$1("itemClassName"); const itemContent = $ed43cc03b55b9961$var$useEmitterValue$1("itemContent"); const computeItemKey = $ed43cc03b55b9961$var$useEmitterValue$1("computeItemKey"); const isSeeking = $ed43cc03b55b9961$var$useEmitterValue$1("isSeeking"); const scrollHeightCallback = $ed43cc03b55b9961$var$usePublisher$1("scrollHeight"); const ItemComponent = $ed43cc03b55b9961$var$useEmitterValue$1("ItemComponent"); const ListComponent = $ed43cc03b55b9961$var$useEmitterValue$1("ListComponent"); const ScrollSeekPlaceholder = $ed43cc03b55b9961$var$useEmitterValue$1("ScrollSeekPlaceholder"); const context = $ed43cc03b55b9961$var$useEmitterValue$1("context"); const itemDimensions = $ed43cc03b55b9961$var$usePublisher$1("itemDimensions"); const gridGap = $ed43cc03b55b9961$var$usePublisher$1("gap"); const log = $ed43cc03b55b9961$var$useEmitterValue$1("log"); const stateRestoreInProgress = $ed43cc03b55b9961$var$useEmitterValue$1("stateRestoreInProgress"); const listRef = $ed43cc03b55b9961$var$useSize((el)=>{ const scrollHeight = el.parentElement.parentElement.scrollHeight; scrollHeightCallback(scrollHeight); const firstItem = el.firstChild; if (firstItem) { const { width: width, height: height } = firstItem.getBoundingClientRect(); itemDimensions({ width: width, height: height }); } gridGap({ row: $ed43cc03b55b9961$var$resolveGapValue("row-gap", getComputedStyle(el).rowGap, log), column: $ed43cc03b55b9961$var$resolveGapValue("column-gap", getComputedStyle(el).columnGap, log) }); }); if (stateRestoreInProgress) return null; return (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).createElement(ListComponent, { ref: listRef, className: listClassName, ...$ed43cc03b55b9961$var$contextPropIfNotDomElement(ListComponent, context), style: { paddingTop: gridState.offsetTop, paddingBottom: gridState.offsetBottom }, "data-test-id": "virtuoso-item-list" }, gridState.items.map((item)=>{ const key = computeItemKey(item.index, item.data, context); return isSeeking ? (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).createElement(ScrollSeekPlaceholder, { key: key, ...$ed43cc03b55b9961$var$contextPropIfNotDomElement(ScrollSeekPlaceholder, context), index: item.index, height: gridState.itemHeight, width: gridState.itemWidth }) : (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).createElement(ItemComponent, { ...$ed43cc03b55b9961$var$contextPropIfNotDomElement(ItemComponent, context), className: itemClassName, "data-index": item.index, key: key }, itemContent(item.index, item.data, context)); })); }); const $ed43cc03b55b9961$var$Header = (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).memo(function VirtuosoHeader2() { const Header2 = $ed43cc03b55b9961$var$useEmitterValue$1("HeaderComponent"); const headerHeight = $ed43cc03b55b9961$var$usePublisher$1("headerHeight"); const headerFooterTag = $ed43cc03b55b9961$var$useEmitterValue$1("headerFooterTag"); const ref = $ed43cc03b55b9961$var$useSize((el)=>headerHeight($ed43cc03b55b9961$var$correctItemSize(el, "height"))); const context = $ed43cc03b55b9961$var$useEmitterValue$1("context"); return Header2 ? (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).createElement(headerFooterTag, { ref: ref }, (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).createElement(Header2, $ed43cc03b55b9961$var$contextPropIfNotDomElement(Header2, context))) : null; }); const $ed43cc03b55b9961$var$Footer = (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).memo(function VirtuosoGridFooter() { const Footer2 = $ed43cc03b55b9961$var$useEmitterValue$1("FooterComponent"); const footerHeight = $ed43cc03b55b9961$var$usePublisher$1("footerHeight"); const headerFooterTag = $ed43cc03b55b9961$var$useEmitterValue$1("headerFooterTag"); const ref = $ed43cc03b55b9961$var$useSize((el)=>footerHeight($ed43cc03b55b9961$var$correctItemSize(el, "height"))); const context = $ed43cc03b55b9961$var$useEmitterValue$1("context"); return Footer2 ? (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).createElement(headerFooterTag, { ref: ref }, (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).createElement(Footer2, $ed43cc03b55b9961$var$contextPropIfNotDomElement(Footer2, context))) : null; }); const $ed43cc03b55b9961$var$Viewport$1 = ({ children: children })=>{ const ctx = (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).useContext($ed43cc03b55b9961$export$81e3217b4b7a890f); const itemDimensions = $ed43cc03b55b9961$var$usePublisher$1("itemDimensions"); const viewportDimensions = $ed43cc03b55b9961$var$usePublisher$1("viewportDimensions"); const viewportRef = $ed43cc03b55b9961$var$useSize((el)=>{ viewportDimensions(el.getBoundingClientRect()); }); (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).useEffect(()=>{ if (ctx) { viewportDimensions({ height: ctx.viewportHeight, width: ctx.viewportWidth }); itemDimensions({ height: ctx.itemHeight, width: ctx.itemWidth }); } }, [ ctx, viewportDimensions, itemDimensions ]); return /* @__PURE__ */ (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).createElement("div", { style: $ed43cc03b55b9961$var$viewportStyle, ref: viewportRef }, children); }; const $ed43cc03b55b9961$var$WindowViewport$1 = ({ children: children })=>{ const ctx = (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).useContext($ed43cc03b55b9961$export$81e3217b4b7a890f); const windowViewportRect = $ed43cc03b55b9961$var$usePublisher$1("windowViewportRect"); const itemDimensions = $ed43cc03b55b9961$var$usePublisher$1("itemDimensions"); const customScrollParent = $ed43cc03b55b9961$var$useEmitterValue$1("customScrollParent"); const viewportRef = $ed43cc03b55b9961$var$useWindowViewportRectRef(windowViewportRect, customScrollParent); (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).useEffect(()=>{ if (ctx) { itemDimensions({ height: ctx.itemHeight, width: ctx.itemWidth }); windowViewportRect({ offsetTop: 0, visibleHeight: ctx.viewportHeight, visibleWidth: ctx.viewportWidth }); } }, [ ctx, windowViewportRect, itemDimensions ]); return /* @__PURE__ */ (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).createElement("div", { ref: viewportRef, style: $ed43cc03b55b9961$var$viewportStyle }, children); }; const $ed43cc03b55b9961$var$GridRoot = /* @__PURE__ */ (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).memo(function GridRoot2({ ...props }) { const useWindowScroll = $ed43cc03b55b9961$var$useEmitterValue$1("useWindowScroll"); const customScrollParent = $ed43cc03b55b9961$var$useEmitterValue$1("customScrollParent"); const TheScroller = customScrollParent || useWindowScroll ? $ed43cc03b55b9961$var$WindowScroller$1 : $ed43cc03b55b9961$var$Scroller$1; const TheViewport = customScrollParent || useWindowScroll ? $ed43cc03b55b9961$var$WindowViewport$1 : $ed43cc03b55b9961$var$Viewport$1; return /* @__PURE__ */ (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).createElement(TheScroller, { ...props }, /* @__PURE__ */ (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).createElement(TheViewport, null, /* @__PURE__ */ (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).createElement($ed43cc03b55b9961$var$Header, null), /* @__PURE__ */ (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).createElement($ed43cc03b55b9961$var$GridItems, null), /* @__PURE__ */ (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).createElement($ed43cc03b55b9961$var$Footer, null))); }); const { Component: $ed43cc03b55b9961$var$Grid, usePublisher: $ed43cc03b55b9961$var$usePublisher$1, useEmitterValue: $ed43cc03b55b9961$var$useEmitterValue$1, useEmitter: $ed43cc03b55b9961$var$useEmitter$1 } = /* @__PURE__ */ $ed43cc03b55b9961$var$systemToComponent($ed43cc03b55b9961$var$combinedSystem$1, { optional: { context: "context", totalCount: "totalCount", overscan: "overscan", itemContent: "itemContent", components: "components", computeItemKey: "computeItemKey", data: "data", initialItemCount: "initialItemCount", scrollSeekConfiguration: "scrollSeekConfiguration", headerFooterTag: "headerFooterTag", listClassName: "listClassName", itemClassName: "itemClassName", useWindowScroll: "useWindowScroll", customScrollParent: "customScrollParent", scrollerRef: "scrollerRef", logLevel: "logLevel", restoreStateFrom: "restoreStateFrom", initialTopMostItemIndex: "initialTopMostItemIndex" }, methods: { scrollTo: "scrollTo", scrollBy: "scrollBy", scrollToIndex: "scrollToIndex" }, events: { isScrolling: "isScrolling", endReached: "endReached", startReached: "startReached", rangeChanged: "rangeChanged", atBottomStateChange: "atBottomStateChange", atTopStateChange: "atTopStateChange", stateChanged: "stateChanged" } }, $ed43cc03b55b9961$var$GridRoot); const $ed43cc03b55b9961$var$Scroller$1 = /* @__PURE__ */ $ed43cc03b55b9961$var$buildScroller({ usePublisher: $ed43cc03b55b9961$var$usePublisher$1, useEmitterValue: $ed43cc03b55b9961$var$useEmitterValue$1, useEmitter: $ed43cc03b55b9961$var$useEmitter$1 }); const $ed43cc03b55b9961$var$WindowScroller$1 = /* @__PURE__ */ $ed43cc03b55b9961$var$buildWindowScroller({ usePublisher: $ed43cc03b55b9961$var$usePublisher$1, useEmitterValue: $ed43cc03b55b9961$var$useEmitterValue$1, useEmitter: $ed43cc03b55b9961$var$useEmitter$1 }); function $ed43cc03b55b9961$var$resolveGapValue(property, value, log) { if (value !== "normal" && !(value == null ? void 0 : value.endsWith("px"))) log(`${property} was not resolved to pixel value correctly`, value, $ed43cc03b55b9961$export$243e62d78d3b544d.WARN); if (value === "normal") return 0; return parseInt(value != null ? value : "0", 10); } const $ed43cc03b55b9961$export$eef3fd285144b65e = $ed43cc03b55b9961$var$Grid; const $ed43cc03b55b9961$var$tableComponentPropsSystem = /* @__PURE__ */ $ed43cc03b55b9961$var$system(()=>{ const itemContent = $ed43cc03b55b9961$var$statefulStream((index)=>/* @__PURE__ */ (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).createElement("td", null, "Item $", index)); const context = $ed43cc03b55b9961$var$statefulStream(null); const fixedHeaderContent = $ed43cc03b55b9961$var$statefulStream(null); const fixedFooterContent = $ed43cc03b55b9961$var$statefulStream(null); const components = $ed43cc03b55b9961$var$statefulStream({}); const computeItemKey = $ed43cc03b55b9961$var$statefulStream($ed43cc03b55b9961$var$identity); const scrollerRef = $ed43cc03b55b9961$var$statefulStream($ed43cc03b55b9961$var$noop); const distinctProp = (propName, defaultValue = null)=>{ return $ed43cc03b55b9961$var$statefulStreamFromEmitter($ed43cc03b55b9961$var$pipe(components, $ed43cc03b55b9961$var$map((components2)=>components2[propName]), $ed43cc03b55b9961$var$distinctUntilChanged()), defaultValue); }; return { context: context, itemContent: itemContent, fixedHeaderContent: fixedHeaderContent, fixedFooterContent: fixedFooterContent, components: components, computeItemKey: computeItemKey, scrollerRef: scrollerRef, TableComponent: distinctProp("Table", "table"), TableHeadComponent: distinctProp("TableHead", "thead"), TableFooterComponent: distinctProp("TableFoot", "tfoot"), TableBodyComponent: distinctProp("TableBody", "tbody"), TableRowComponent: distinctProp("TableRow", "tr"), ScrollerComponent: distinctProp("Scroller", "div"), EmptyPlaceholder: distinctProp("EmptyPlaceholder"), ScrollSeekPlaceholder: distinctProp("ScrollSeekPlaceholder"), FillerRow: distinctProp("FillerRow") }; }); const $ed43cc03b55b9961$var$combinedSystem = /* @__PURE__ */ $ed43cc03b55b9961$var$system(([listSystem2, propsSystem])=>{ return { ...listSystem2, ...propsSystem }; }, $ed43cc03b55b9961$var$tup($ed43cc03b55b9961$var$listSystem, $ed43cc03b55b9961$var$tableComponentPropsSystem)); const $ed43cc03b55b9961$var$DefaultScrollSeekPlaceholder = ({ height: height })=>/* @__PURE__ */ (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).createElement("tr", null, /* @__PURE__ */ (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).createElement("td", { style: { height: height } })); const $ed43cc03b55b9961$var$DefaultFillerRow = ({ height: height })=>/* @__PURE__ */ (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).createElement("tr", null, /* @__PURE__ */ (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).createElement("td", { style: { height: height, padding: 0, border: 0 } })); const $ed43cc03b55b9961$var$ITEM_STYLE = { overflowAnchor: "none" }; const $ed43cc03b55b9961$var$Items = /* @__PURE__ */ (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).memo(function VirtuosoItems2() { const listState = $ed43cc03b55b9961$var$useEmitterValue("listState"); const sizeRanges = $ed43cc03b55b9961$var$usePublisher("sizeRanges"); const useWindowScroll = $ed43cc03b55b9961$var$useEmitterValue("useWindowScroll"); const customScrollParent = $ed43cc03b55b9961$var$useEmitterValue("customScrollParent"); const windowScrollContainerStateCallback = $ed43cc03b55b9961$var$usePublisher("windowScrollContainerState"); const _scrollContainerStateCallback = $ed43cc03b55b9961$var$usePublisher("scrollContainerState"); const scrollContainerStateCallback = customScrollParent || useWindowScroll ? windowScrollContainerStateCallback : _scrollContainerStateCallback; const itemContent = $ed43cc03b55b9961$var$useEmitterValue("itemContent"); const trackItemSizes = $ed43cc03b55b9961$var$useEmitterValue("trackItemSizes"); const itemSize = $ed43cc03b55b9961$var$useEmitterValue("itemSize"); const log = $ed43cc03b55b9961$var$useEmitterValue("log"); const { callbackRef: callbackRef, ref: ref } = $ed43cc03b55b9961$var$useChangedListContentsSizes(sizeRanges, itemSize, trackItemSizes, scrollContainerStateCallback, log, void 0, customScrollParent); const [deviation, setDeviation] = (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).useState(0); $ed43cc03b55b9961$var$useEmitter("deviation", (value)=>{ if (deviation !== value) { ref.current.style.marginTop = `${value}px`; setDeviation(value); } }); const EmptyPlaceholder = $ed43cc03b55b9961$var$useEmitterValue("EmptyPlaceholder"); const ScrollSeekPlaceholder = $ed43cc03b55b9961$var$useEmitterValue("ScrollSeekPlaceholder") || $ed43cc03b55b9961$var$DefaultScrollSeekPlaceholder; const FillerRow = $ed43cc03b55b9961$var$useEmitterValue("FillerRow") || $ed43cc03b55b9961$var$DefaultFillerRow; const TableBodyComponent = $ed43cc03b55b9961$var$useEmitterValue("TableBodyComponent"); const TableRowComponent = $ed43cc03b55b9961$var$useEmitterValue("TableRowComponent"); const computeItemKey = $ed43cc03b55b9961$var$useEmitterValue("computeItemKey"); const isSeeking = $ed43cc03b55b9961$var$useEmitterValue("isSeeking"); const paddingTopAddition = $ed43cc03b55b9961$var$useEmitterValue("paddingTopAddition"); const firstItemIndex = $ed43cc03b55b9961$var$useEmitterValue("firstItemIndex"); const statefulTotalCount = $ed43cc03b55b9961$var$useEmitterValue("statefulTotalCount"); const context = $ed43cc03b55b9961$var$useEmitterValue("context"); if (statefulTotalCount === 0 && EmptyPlaceholder) return (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).createElement(EmptyPlaceholder, $ed43cc03b55b9961$var$contextPropIfNotDomElement(EmptyPlaceholder, context)); const paddingTop = listState.offsetTop + paddingTopAddition + deviation; const paddingBottom = listState.offsetBottom; const paddingTopEl = paddingTop > 0 ? /* @__PURE__ */ (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).createElement(FillerRow, { height: paddingTop, key: "padding-top", context: context }) : null; const paddingBottomEl = paddingBottom > 0 ? /* @__PURE__ */ (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).createElement(FillerRow, { height: paddingBottom, key: "padding-bottom", context: context }) : null; const items = listState.items.map((item)=>{ const index = item.originalIndex; const key = computeItemKey(index + firstItemIndex, item.data, context); if (isSeeking) return (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).createElement(ScrollSeekPlaceholder, { ...$ed43cc03b55b9961$var$contextPropIfNotDomElement(ScrollSeekPlaceholder, context), key: key, index: item.index, height: item.size, type: item.type || "item" }); return (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).createElement(TableRowComponent, { ...$ed43cc03b55b9961$var$contextPropIfNotDomElement(TableRowComponent, context), ...$ed43cc03b55b9961$var$itemPropIfNotDomElement(TableRowComponent, item.data), key: key, "data-index": index, "data-known-size": item.size, "data-item-index": item.index, style: $ed43cc03b55b9961$var$ITEM_STYLE }, itemContent(item.index, item.data, context)); }); return (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).createElement(TableBodyComponent, { ref: callbackRef, "data-test-id": "virtuoso-item-list", ...$ed43cc03b55b9961$var$contextPropIfNotDomElement(TableBodyComponent, context) }, [ paddingTopEl, ...items, paddingBottomEl ]); }); const $ed43cc03b55b9961$var$Viewport = ({ children: children })=>{ const ctx = (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).useContext($ed43cc03b55b9961$export$99e9d54e386aea7b); const viewportHeight = $ed43cc03b55b9961$var$usePublisher("viewportHeight"); const fixedItemHeight = $ed43cc03b55b9961$var$usePublisher("fixedItemHeight"); const viewportRef = $ed43cc03b55b9961$var$useSize($ed43cc03b55b9961$var$compose(viewportHeight, (el)=>$ed43cc03b55b9961$var$correctItemSize(el, "height"))); (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).useEffect(()=>{ if (ctx) { viewportHeight(ctx.viewportHeight); fixedItemHeight(ctx.itemHeight); } }, [ ctx, viewportHeight, fixedItemHeight ]); return /* @__PURE__ */ (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).createElement("div", { style: $ed43cc03b55b9961$var$viewportStyle, ref: viewportRef, "data-viewport-type": "element" }, children); }; const $ed43cc03b55b9961$var$WindowViewport = ({ children: children })=>{ const ctx = (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).useContext($ed43cc03b55b9961$export$99e9d54e386aea7b); const windowViewportRect = $ed43cc03b55b9961$var$usePublisher("windowViewportRect"); const fixedItemHeight = $ed43cc03b55b9961$var$usePublisher("fixedItemHeight"); const customScrollParent = $ed43cc03b55b9961$var$useEmitterValue("customScrollParent"); const viewportRef = $ed43cc03b55b9961$var$useWindowViewportRectRef(windowViewportRect, customScrollParent); (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).useEffect(()=>{ if (ctx) { fixedItemHeight(ctx.itemHeight); windowViewportRect({ offsetTop: 0, visibleHeight: ctx.viewportHeight, visibleWidth: 100 }); } }, [ ctx, windowViewportRect, fixedItemHeight ]); return /* @__PURE__ */ (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).createElement("div", { ref: viewportRef, style: $ed43cc03b55b9961$var$viewportStyle, "data-viewport-type": "window" }, children); }; const $ed43cc03b55b9961$var$TableRoot = /* @__PURE__ */ (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).memo(function TableVirtuosoRoot(props) { const useWindowScroll = $ed43cc03b55b9961$var$useEmitterValue("useWindowScroll"); const customScrollParent = $ed43cc03b55b9961$var$useEmitterValue("customScrollParent"); const fixedHeaderHeight = $ed43cc03b55b9961$var$usePublisher("fixedHeaderHeight"); const fixedFooterHeight = $ed43cc03b55b9961$var$usePublisher("fixedFooterHeight"); const fixedHeaderContent = $ed43cc03b55b9961$var$useEmitterValue("fixedHeaderContent"); const fixedFooterContent = $ed43cc03b55b9961$var$useEmitterValue("fixedFooterContent"); const context = $ed43cc03b55b9961$var$useEmitterValue("context"); const theadRef = $ed43cc03b55b9961$var$useSize($ed43cc03b55b9961$var$compose(fixedHeaderHeight, (el)=>$ed43cc03b55b9961$var$correctItemSize(el, "height"))); const tfootRef = $ed43cc03b55b9961$var$useSize($ed43cc03b55b9961$var$compose(fixedFooterHeight, (el)=>$ed43cc03b55b9961$var$correctItemSize(el, "height"))); const TheScroller = customScrollParent || useWindowScroll ? $ed43cc03b55b9961$var$WindowScroller : $ed43cc03b55b9961$var$Scroller; const TheViewport = customScrollParent || useWindowScroll ? $ed43cc03b55b9961$var$WindowViewport : $ed43cc03b55b9961$var$Viewport; const TheTable = $ed43cc03b55b9961$var$useEmitterValue("TableComponent"); const TheTHead = $ed43cc03b55b9961$var$useEmitterValue("TableHeadComponent"); const TheTFoot = $ed43cc03b55b9961$var$useEmitterValue("TableFooterComponent"); const theHead = fixedHeaderContent ? (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).createElement(TheTHead, { key: "TableHead", style: { zIndex: 2, position: "sticky", top: 0 }, ref: theadRef, ...$ed43cc03b55b9961$var$contextPropIfNotDomElement(TheTHead, context) }, fixedHeaderContent()) : null; const theFoot = fixedFooterContent ? (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).createElement(TheTFoot, { key: "TableFoot", style: { zIndex: 1, position: "sticky", bottom: 0 }, ref: tfootRef, ...$ed43cc03b55b9961$var$contextPropIfNotDomElement(TheTFoot, context) }, fixedFooterContent()) : null; return /* @__PURE__ */ (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).createElement(TheScroller, { ...props }, /* @__PURE__ */ (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).createElement(TheViewport, null, (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).createElement(TheTable, { style: { borderSpacing: 0, overflowAnchor: "none" }, ...$ed43cc03b55b9961$var$contextPropIfNotDomElement(TheTable, context) }, [ theHead, /* @__PURE__ */ (0, (/*@__PURE__*/$parcel$interopDefault($63SH6))).createElement($ed43cc03b55b9961$var$Items, { key: "TableBody" }), theFoot ]))); }); const { Component: $ed43cc03b55b9961$var$Table, usePublisher: $ed43cc03b55b9961$var$usePublisher, useEmitterValue: $ed43cc03b55b9961$var$useEmitterValue, useEmitter: $ed43cc03b55b9961$var$useEmitter } = /* @__PURE__ */ $ed43cc03b55b9961$var$systemToComponent($ed43cc03b55b9961$var$combinedSystem, { required: {}, optional: { restoreStateFrom: "restoreStateFrom", context: "context", followOutput: "followOutput", firstItemIndex: "firstItemIndex", itemContent: "itemContent", fixedHeaderContent: "fixedHeaderContent", fixedFooterContent: "fixedFooterContent", overscan: "overscan", increaseViewportBy: "increaseViewportBy", totalCount: "totalCount", topItemCount: "topItemCount", initialTopMostItemIndex: "initialTopMostItemIndex", components: "components", groupCounts: "groupCounts", atBottomThreshold: "atBottomThreshold", atTopThreshold: "atTopThreshold", computeItemKey: "computeItemKey", defaultItemHeight: "defaultItemHeight", fixedItemHeight: "fixedItemHeight", itemSize: "itemSize", scrollSeekConfiguration: "scrollSeekConfiguration", data: "data", initialItemCount: "initialItemCount", initialScrollTop: "initialScrollTop", alignToBottom: "alignToBottom", useWindowScroll: "useWindowScroll", customScrollParent: "customScrollParent", scrollerRef: "scrollerRef", logLevel: "logLevel" }, methods: { scrollToIndex: "scrollToIndex", scrollIntoView: "scrollIntoView", scrollTo: "scrollTo", scrollBy: "scrollBy", getState: "getState" }, events: { isScrolling: "isScrolling", endReached: "endReached", startReached: "startReached", rangeChanged: "rangeChanged", atBottomStateChange: "atBottomStateChange", atTopStateChange: "atTopStateChange", totalListHeightChanged: "totalListHeightChanged", itemsRendered: "itemsRendered", groupIndices: "groupIndices" } }, $ed43cc03b55b9961$var$TableRoot); const $ed43cc03b55b9961$var$Scroller = /* @__PURE__ */ $ed43cc03b55b9961$var$buildScroller({ usePublisher: $ed43cc03b55b9961$var$usePublisher, useEmitterValue: $ed43cc03b55b9961$var$useEmitterValue, useEmitter: $ed43cc03b55b9961$var$useEmitter }); const $ed43cc03b55b9961$var$WindowScroller = /* @__PURE__ */ $ed43cc03b55b9961$var$buildWindowScroller({ usePublisher: $ed43cc03b55b9961$var$usePublisher, useEmitterValue: $ed43cc03b55b9961$var$useEmitterValue, useEmitter: $ed43cc03b55b9961$var$useEmitter }); const $ed43cc03b55b9961$export$3631598018434e6e = $ed43cc03b55b9961$var$Table; }); })(); //# sourceMappingURL=Side.d0586ad5.js.map