12345678910111213141516171819202122232425262728293031323334353637383940 |
- import { mergeProps as _mergeProps, createVNode as _createVNode, Fragment as _Fragment } from "vue";
- // Composables
- import { makeComponentProps } from "../../composables/component.mjs";
- import { useResizeObserver } from "../../composables/resizeObserver.mjs"; // Utilities
- import { watch } from 'vue';
- import { genericComponent, propsFactory, useRender } from "../../util/index.mjs"; // Types
- export const makeVVirtualScrollItemProps = propsFactory({
- renderless: Boolean,
- ...makeComponentProps()
- }, 'VVirtualScrollItem');
- export const VVirtualScrollItem = genericComponent()({
- name: 'VVirtualScrollItem',
- inheritAttrs: false,
- props: makeVVirtualScrollItemProps(),
- emits: {
- 'update:height': height => true
- },
- setup(props, _ref) {
- let {
- attrs,
- emit,
- slots
- } = _ref;
- const {
- resizeRef,
- contentRect
- } = useResizeObserver(undefined, 'border');
- watch(() => contentRect.value?.height, height => {
- if (height != null) emit('update:height', height);
- });
- useRender(() => props.renderless ? _createVNode(_Fragment, null, [slots.default?.({
- itemRef: resizeRef
- })]) : _createVNode("div", _mergeProps({
- "ref": resizeRef,
- "class": ['v-virtual-scroll__item', props.class],
- "style": props.style
- }, attrs), [slots.default?.()]));
- }
- });
- //# sourceMappingURL=VVirtualScrollItem.mjs.map
|