UNPKG

winbox-ui-next

Version:

We Design Vue 2.0: A Vue.js 3 UI Library

42 lines (41 loc) 1.17 kB
import { defineComponent, getCurrentInstance, ref, onMounted, cloneVNode } from "vue"; import { getFirstComponent } from "../../_utils/vue-utils.js"; var VirtualListItem = defineComponent({ name: "VirtualListItem", props: { hasItemSize: { type: Function, required: true }, setItemSize: { type: Function, required: true } }, setup(props, { slots }) { var _a; const key = (_a = getCurrentInstance()) == null ? void 0 : _a.vnode.key; const itemRef = ref(); const setItemSize = () => { var _a2, _b; const ele = (_b = (_a2 = itemRef.value) == null ? void 0 : _a2.$el) != null ? _b : itemRef.value; if (!props.hasItemSize(key) && (ele == null ? void 0 : ele.offsetHeight)) { props.setItemSize(key, ele.offsetHeight); } }; onMounted(() => setItemSize()); return () => { var _a2; const child = getFirstComponent((_a2 = slots.default) == null ? void 0 : _a2.call(slots)); if (child) { return cloneVNode(child, { ref: itemRef }, true); } return null; }; } }); export { VirtualListItem as default };