/**
 * ldesign v0.3.13
 * (c) 2023 ldesign
 * @license MIT
 */

import { computed, ref, onMounted, nextTick } from 'vue';
import observe from '../../_common/js/utils/observe.mjs';
import { isServer } from '../../utils/dom.mjs';
import '../../_chunks/dep-eba0ea6e.mjs';
import '../../_chunks/dep-876fb3ec.mjs';
import '../../_chunks/dep-469b4ae0.mjs';
import '../../_chunks/dep-255303ba.mjs';
import '../../_chunks/dep-b57180d0.mjs';
import '../../_chunks/dep-c8d7b6b4.mjs';
import '../../_chunks/dep-3da99438.mjs';
import '../../_chunks/dep-5717e263.mjs';
import '../../_chunks/dep-a8bcacea.mjs';
import '../../utils/easing.mjs';

function useLazyLoad(containerRef, childRef, params) {
  var tRowHeight = computed(function () {
    return Math.max(params.rowHeight || 48, 48);
  });
  var isInit = ref(params.rowIndex === 0);
  var hasLazyLoadHolder = computed(function () {
    return (params === null || params === void 0 ? void 0 : params.type) === "lazy" && !isInit.value;
  });
  var requestAnimationFrame = !isServer && window.requestAnimationFrame || function (cb) {
    return setTimeout(cb, 16.6);
  };
  var init = function init() {
    if (!isInit.value) {
      requestAnimationFrame(function () {
        isInit.value = true;
      });
    }
  };
  onMounted(function () {
    if ((params === null || params === void 0 ? void 0 : params.type) !== "lazy") return;
    nextTick(function () {
      var bufferSize = Math.max(10, params.bufferSize || 10);
      var height = tRowHeight.value * bufferSize;
      observe(childRef.value, containerRef.value, init, height);
    });
  });
  return {
    hasLazyLoadHolder: hasLazyLoadHolder,
    tRowHeight: tRowHeight
  };
}

export { useLazyLoad as default };
//# sourceMappingURL=useLazyLoad.mjs.map
