tdesign-vue-next
Version:
TDesign Component for vue-next
1 lines • 3.1 kB
Source Map (JSON)
{"version":3,"file":"useLazyLoad.mjs","sources":["../../../../components/table/hooks/useLazyLoad.ts"],"sourcesContent":["import { ref, onMounted, computed, nextTick, Ref, UnwrapRef } from 'vue';\nimport observe from '@tdesign/common-js/utils/observe';\nimport { isServer } from '@tdesign/shared-utils';\n\nexport type UseLazyLoadParams = UnwrapRef<{\n type: 'lazy' | 'virtual';\n rowHeight?: number;\n bufferSize?: number;\n}>;\n\nexport default function useLazyLoad(\n containerRef: Ref<HTMLElement>,\n childRef: Ref<HTMLTableRowElement>,\n params: UseLazyLoadParams,\n) {\n const tRowHeight = computed(() => Math.max(params.rowHeight || 48, 48));\n const isInit = ref(false);\n const hasLazyLoadHolder = computed(() => params?.type === 'lazy' && !isInit.value);\n\n const requestAnimationFrame = (!isServer && window.requestAnimationFrame) || ((cb) => setTimeout(cb, 16.6));\n\n const init = () => {\n if (!isInit.value) {\n requestAnimationFrame(() => {\n isInit.value = true;\n });\n }\n };\n\n onMounted(() => {\n if (params?.type !== 'lazy') return;\n nextTick(() => {\n const bufferSize = Math.max(10, params.bufferSize || 10);\n const height = tRowHeight.value * bufferSize;\n if (!childRef?.value || !containerRef?.value) return;\n observe(childRef.value, containerRef.value, init, height);\n });\n });\n\n return {\n hasLazyLoadHolder,\n tRowHeight,\n };\n}\n"],"names":["useLazyLoad","containerRef","childRef","params","tRowHeight","computed","Math","max","rowHeight","isInit","ref","hasLazyLoadHolder","type","value","requestAnimationFrame","isServer","window","cb","setTimeout","init","onMounted","nextTick","bufferSize","height","observe"],"mappings":";;;;;;;;;;;;AAUwB,SAAAA,WAAAA,CACtBC,YACA,EAAAC,QAAA,EACAC,MACA,EAAA;EACM,IAAAC,UAAA,GAAaC,SAAS,YAAA;IAAA,OAAMC,IAAA,CAAKC,IAAIJ,MAAO,CAAAK,SAAA,IAAa,EAAI,EAAA,EAAE,CAAC,CAAA;GAAA,CAAA,CAAA;AAChE,EAAA,IAAAC,MAAA,GAASC,IAAI,KAAK,CAAA,CAAA;EAClB,IAAAC,iBAAA,GAAoBN,SAAS,YAAA;AAAA,IAAA,OAAM,CAAAF,MAAA,KAAAA,IAAAA,IAAAA,MAAA,uBAAAA,MAAA,CAAQS,UAAS,MAAU,IAAA,CAACH,OAAOI,KAAK,CAAA;GAAA,CAAA,CAAA;EAE3E,IAAAC,qBAAA,GAAyB,CAACC,QAAY,IAAAC,MAAA,CAAOF,yBAA2B,UAACG,EAAA,EAAA;AAAA,IAAA,OAAOC,UAAW,CAAAD,EAAA,EAAI,IAAI,CAAA,CAAA;GAAA,CAAA;AAEzG,EAAA,IAAME,OAAO,SAAPA,OAAa;AACb,IAAA,IAAA,CAACV,OAAOI,KAAO,EAAA;AACjBC,MAAAA,qBAAA,CAAsB,YAAM;QAC1BL,MAAA,CAAOI,KAAQ,GAAA,IAAA,CAAA;AACjB,OAAC,CAAA,CAAA;AACH,KAAA;GACF,CAAA;AAEAO,EAAAA,SAAA,CAAU,YAAM;IACd,IAAI,CAAAjB,mBAAAA,6BAAAA,OAAQS,IAAS,MAAA,MAAA,EAAQ,OAAA;AAC7BS,IAAAA,QAAA,CAAS,YAAM;AACb,MAAA,IAAMC,aAAahB,IAAK,CAAAC,GAAA,CAAI,EAAI,EAAAJ,MAAA,CAAOmB,cAAc,EAAE,CAAA,CAAA;AACjD,MAAA,IAAAC,MAAA,GAASnB,WAAWS,KAAQ,GAAAS,UAAA,CAAA;AAClC,MAAA,IAAI,EAACpB,QAAA,KAAA,IAAA,IAAAA,QAAA,KAAA,KAAA,CAAA,IAAAA,QAAA,CAAUW,KAAS,CAAA,IAAA,EAACZ,YAAc,KAAdA,IAAAA,IAAAA,YAAc,eAAdA,YAAc,CAAAY,KAAA,CAAO,EAAA,OAAA;AAC9CW,MAAAA,OAAA,CAAQtB,QAAS,CAAAW,KAAA,EAAOZ,YAAa,CAAAY,KAAA,EAAOM,MAAMI,MAAM,CAAA,CAAA;AAC1D,KAAC,CAAA,CAAA;AACH,GAAC,CAAA,CAAA;EAEM,OAAA;AACLZ,IAAAA,iBAAA,EAAAA,iBAAA;AACAP,IAAAA,UAAA,EAAAA,UAAAA;GACF,CAAA;AACF;;;;"}