@opensig/opendesign
Version:
44 lines (43 loc) • 1.83 kB
TypeScript
import { ResizeObserverEntry } from '@vueuse/core';
import { Layout } from './types';
/**
* @description 虚拟列表子项组件——封装 ResizeObserver 监听,
* 不定高模式下向父组件 emit resize 事件以触发 meta 重算;
* 定高/按索引定高模式下 observeResize 为 false,回调触发但不 emit,
* 同时 useResizeObserver 自动随组件卸载清理,无需手动 unobserve。
*/
type __VLS_Props = {
/** 列表项索引 */
index: number;
/** 项主轴尺寸(定高/按索引定高模式传入 px 值;不定高模式不传) */
mainSize?: number;
/** 布局方向,决定尺寸写入 width 还是 height */
layout?: Layout;
/** 是否向父组件 emit resize 事件(仅不定高模式为 true) */
observeResize?: boolean;
};
declare function __VLS_template(): {
attrs: Partial<{}>;
slots: {
default?(_: {}): any;
};
refs: {
itemRef: HTMLDivElement;
};
rootEl: HTMLDivElement;
};
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
resize: (entry: ResizeObserverEntry, index: number) => any;
}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
onResize?: ((entry: ResizeObserverEntry, index: number) => any) | undefined;
}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
itemRef: HTMLDivElement;
}, HTMLDivElement>;
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
export default _default;
type __VLS_WithTemplateSlots<T, S> = T & {
new (): {
$slots: S;
};
};