"use strict";
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const React = require("react");
const ReactDOM = require("react-dom");
const index = require("../../../../../../@tanstack_virtual-core@3.10.8/node_modules/@tanstack/virtual-core/dist/esm/index.cjs");
function _interopNamespaceDefault(e) {
  const n = Object.create(null, { [Symbol.toStringTag]: { value: "Module" } });
  if (e) {
    for (const k in e) {
      if (k !== "default") {
        const d = Object.getOwnPropertyDescriptor(e, k);
        Object.defineProperty(n, k, d.get ? d : {
          enumerable: true,
          get: () => e[k]
        });
      }
    }
  }
  n.default = e;
  return Object.freeze(n);
}
const React__namespace = /* @__PURE__ */ _interopNamespaceDefault(React);
const useIsomorphicLayoutEffect = typeof document !== "undefined" ? React__namespace.useLayoutEffect : React__namespace.useEffect;
function useVirtualizerBase(options) {
  const rerender = React__namespace.useReducer(() => ({}), {})[1];
  const resolvedOptions = {
    ...options,
    onChange: (instance2, sync) => {
      var _a;
      if (sync) {
        ReactDOM.flushSync(rerender);
      } else {
        rerender();
      }
      (_a = options.onChange) == null ? void 0 : _a.call(options, instance2, sync);
    }
  };
  const [instance] = React__namespace.useState(
    () => new index.Virtualizer(resolvedOptions)
  );
  instance.setOptions(resolvedOptions);
  React__namespace.useEffect(() => {
    return instance._didMount();
  }, []);
  useIsomorphicLayoutEffect(() => {
    return instance._willUpdate();
  });
  return instance;
}
function useVirtualizer(options) {
  return useVirtualizerBase({
    observeElementRect: index.observeElementRect,
    observeElementOffset: index.observeElementOffset,
    scrollToFn: index.elementScroll,
    ...options
  });
}
exports.Virtualizer = index.Virtualizer;
exports.defaultKeyExtractor = index.defaultKeyExtractor;
exports.defaultRangeExtractor = index.defaultRangeExtractor;
exports.elementScroll = index.elementScroll;
exports.measureElement = index.measureElement;
exports.observeElementOffset = index.observeElementOffset;
exports.observeElementRect = index.observeElementRect;
exports.useVirtualizer = useVirtualizer;
