element-plus
Version:
A Component Library for Vue 3
35 lines (34 loc) • 1.06 kB
TypeScript
import type { InjectionKey, UnwrapRef, VNode } from 'vue';
export type Layout = 'horizontal' | 'vertical';
export type PanelItemState = UnwrapRef<{
uid: number;
getVnode: () => VNode;
el: HTMLElement;
collapsible: {
start?: boolean;
end?: boolean;
};
max?: number | string;
min?: number | string;
resizable: boolean;
size?: number | string;
setIndex: (val: number) => void;
}>;
export interface SplitterRootContext {
panels: PanelItemState[];
layout: Layout;
containerSize: number;
movingIndex: {
index: number;
confirmed: boolean;
} | null;
percentSizes: number[];
pxSizes: number[];
registerPanel: (pane: PanelItemState) => void;
unregisterPanel: (pane: PanelItemState) => void;
onCollapse: (index: number, type: 'start' | 'end') => void;
onMoveEnd: () => void;
onMoveStart: (index: number) => void;
onMoving: (index: number, offset: number) => void;
}
export declare const splitterRootContextKey: InjectionKey<SplitterRootContext>;