shineout
Version:
Shein 前端组件库
95 lines (94 loc) • 2.91 kB
TypeScript
import React from 'react';
import { Component } from '../component';
import { RootProps, Position } from './Props';
interface State {
hasOpen?: boolean;
scrollTop: number;
scrollLeft: number;
activeKey: null | string;
openKeys: Map<string, boolean>;
}
export declare const DefaultProps: {
data: never[];
level: number;
keygen: string;
mode: string;
inlineIndent: number;
renderItem: string;
defaultOpenKeys: never[];
onClick: () => boolean;
toggleDuration: number;
frontCaretType: string;
style: {};
disabled: (d: {
disabled: boolean;
}) => boolean;
};
declare class Root<U, T extends string> extends Component<RootProps<U, T>, State> {
static defaultProps: {
data: never[];
level: number;
keygen: string;
mode: string;
inlineIndent: number;
renderItem: string;
defaultOpenKeys: never[];
onClick: () => boolean;
toggleDuration: number;
frontCaretType: string;
style: {};
disabled: (d: {
disabled: boolean;
}) => boolean;
};
static displayName: string;
handleScrollLeft: any;
handleScrollTop: any;
items: {
[id: string]: <F, K>(checkActive: F, key: K) => void;
};
itemsOpen: {
[id: string]: <F>(checkOpen: F) => void;
};
itemsInPath: {
[id: string]: <F>(checkInPath: F) => void;
};
providerValue: {
bindItem: <Active, Open, InPath>(id: string, active: Active, open: Open, inPath: InPath) => [Active, Open, InPath];
unbindItem: (id: string) => void;
};
container: HTMLDivElement;
hasToggled: boolean;
wrapper: HTMLDivElement;
rootElement: HTMLUListElement;
constructor(props: RootProps<U, T>);
componentDidMount(): void;
componentDidUpdate(): void;
componentWillUnmount(): void;
getOpenKeys(): string[] | undefined;
bindRootElement(el: HTMLDivElement): void;
bindItem(id: string, updateActive: () => void, updateOpen: () => void, updateInPath: () => void): ((id: string, data: U) => boolean)[];
unbindItem(id: string): void;
checkActive(id: string, data: U): boolean;
checkOpen(id: string): boolean;
checkInPath(id: string): boolean;
updateState(): void;
updateActive(): void;
updateOpen(): void;
updateInPath(): void;
toggleOpenKeys(id: string, open: boolean): void;
handleScrollX(pos: Position, param: number): void;
handleScroll(top: number): void;
handleWheel(e: WheelEvent & {
axis: number;
wheelDelta: number;
wheelDeltaY: number;
wheelDeltaX: number;
HORIZONTAL_AXIS: number;
}): void;
handleClick(id: string, data: U): void;
renderItem(data: U, index: number): React.ReactNode;
renderScrollBar(): JSX.Element | null;
render(): JSX.Element;
}
export default Root;