@alifd/next
Version:
A configurable component library for web built on React.
82 lines (81 loc) • 4.76 kB
TypeScript
import React, { Component, type LegacyRef, type ReactNodeArray, type ComponentRef } from 'react';
import PropTypes from 'prop-types';
import Menu, { type MenuProps } from '../menu';
import VirtualList from '../virtual-list';
import type { CascaderMenuProps } from './types';
export default class CascaderMenu extends Component<CascaderMenuProps> {
static propTypes: {
prefix: PropTypes.Requireable<string>;
className: PropTypes.Requireable<string>;
useVirtual: PropTypes.Requireable<boolean>;
children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
};
virtualEl: InstanceType<typeof VirtualList> | null;
menuEl: HTMLDivElement;
componentDidMount(): void;
scrollToSelectedItem(): void;
renderMenu(items: ReactNodeArray, ref: LegacyRef<ComponentRef<typeof Menu>> | undefined, props: MenuProps): React.JSX.Element;
saveMenuRef: (ref: HTMLDivElement) => void;
saveVirtualRef: (ref: import("../config-provider/types").ConfiguredComponent<import("../virtual-list").VirtualListProps & import("../config-provider/types").ComponentCommonProps, {
cache: {
[key: number]: number;
};
cacheAdd: {
[key: number]: number;
};
cachedScroll: number | null;
unstable: boolean;
updateCounter: number;
updateCounterTimeoutId?: number | undefined;
el: HTMLElement | null;
items: React.ReactInstance | null;
defaultItemHeight: number;
scrollParent: Window | HTMLElement;
componentDidMount(): void;
componentDidUpdate(prevProps: import("../virtual-list").VirtualListProps): void;
componentWillUnmount(): void;
maybeSetState(b: import("../virtual-list/types").VirtualListState, cb: () => void): void;
getEl(): {};
getScrollParent(): (Window & typeof globalThis) | HTMLElement;
getScroll(): number;
setScroll(offset: number): void;
getViewportSize(): number;
getScrollSize(): number;
getStartAndEnd(threshold?: number | undefined): {
start: number;
end: number;
};
updateFrameAndClearCache(cb: () => void): void;
updateFrame(cb?: (() => void) | undefined): void;
updateScrollParent(): void;
updateVariableFrame(cb: () => void): void;
getSpaceBefore(index: number, cache?: {
[key: number]: number;
}): number;
cacheSizes(): void;
getSizeOf(index: number): number | void;
scrollTo(index: number): void;
renderMenuItems(): React.ReactNode;
render(): React.JSX.Element;
context: any;
setState<K extends keyof import("../virtual-list/types").VirtualListState>(state: import("../virtual-list/types").VirtualListState | ((prevState: Readonly<import("../virtual-list/types").VirtualListState>, props: Readonly<import("../virtual-list").VirtualListProps>) => import("../virtual-list/types").VirtualListState | Pick<import("../virtual-list/types").VirtualListState, K> | null) | Pick<import("../virtual-list/types").VirtualListState, K> | null, callback?: (() => void) | undefined): void;
forceUpdate(callback?: (() => void) | undefined): void;
readonly props: Readonly<import("../virtual-list").VirtualListProps> & Readonly<{
children?: React.ReactNode;
}>;
state: Readonly<import("../virtual-list/types").VirtualListState>;
refs: {
[key: string]: React.ReactInstance;
};
shouldComponentUpdate?(nextProps: Readonly<import("../virtual-list").VirtualListProps>, nextState: Readonly<import("../virtual-list/types").VirtualListState>, nextContext: any): boolean;
componentDidCatch?(error: Error, errorInfo: React.ErrorInfo): void;
getSnapshotBeforeUpdate?(prevProps: Readonly<import("../virtual-list").VirtualListProps>, prevState: Readonly<import("../virtual-list/types").VirtualListState>): any;
componentWillMount?(): void;
UNSAFE_componentWillMount?(): void;
componentWillReceiveProps?(nextProps: Readonly<import("../virtual-list").VirtualListProps>, nextContext: any): void;
UNSAFE_componentWillReceiveProps?(nextProps: Readonly<import("../virtual-list").VirtualListProps>, nextContext: any): void;
componentWillUpdate?(nextProps: Readonly<import("../virtual-list").VirtualListProps>, nextState: Readonly<import("../virtual-list/types").VirtualListState>, nextContext: any): void;
UNSAFE_componentWillUpdate?(nextProps: Readonly<import("../virtual-list").VirtualListProps>, nextState: Readonly<import("../virtual-list/types").VirtualListState>, nextContext: any): void;
}>) => void;
render(): React.JSX.Element;
}