vexip-ui
Version:
A Vue 3 UI library, Highly customizability, full TypeScript, performance pretty good
43 lines (42 loc) • 1.55 kB
TypeScript
import { Ref } from 'vue';
import { ScrollMode } from './symbol';
export declare function useScrollWrapper({ mode, disabled, width, height, scrollX, scrollY, onResize, onBeforeRefresh, onAfterRefresh, }: {
mode: Ref<Exclude<ScrollMode, 'horizontal-exact'>>;
disabled: Ref<boolean>;
width: Ref<number | string>;
height: Ref<number | string>;
scrollX: Ref<number>;
scrollY: Ref<number>;
onResize?: (entry: ResizeObserverEntry) => void;
onBeforeRefresh?: () => void;
onAfterRefresh?: () => void;
}): {
wrapperEl: Ref<HTMLElement | undefined, HTMLElement | undefined>;
contentEl: Ref<HTMLElement | undefined, HTMLElement | undefined>;
wrapper: {
el: HTMLElement | undefined;
width: number;
height: number;
};
content: {
el: HTMLElement | undefined;
width: number;
height: number;
};
isReady: Ref<boolean, boolean>;
x: Ref<number, number>;
y: Ref<number, number>;
percentX: Ref<number, number>;
percentY: Ref<number, number>;
xScrollLimit: import('vue').ComputedRef<number>;
yScrollLimit: import('vue').ComputedRef<number>;
enableXScroll: import('vue').ComputedRef<boolean>;
enableYScroll: import('vue').ComputedRef<boolean>;
xBarLength: import('vue').ComputedRef<number>;
yBarLength: import('vue').ComputedRef<number>;
handleResize: (entity: ResizeObserverEntry) => void;
verifyScroll: () => void;
computePercent: () => void;
refresh: () => Promise<void>;
triggerUpdate: () => void;
};