import { Component, ContextType, MouseEvent } from 'react'; import { ConfigContext } from '@befe/brick-core'; import { CollapseContextValue, CollapsePanelId } from './collapse-context'; export interface CollapseProps { /** * 自定义 class */ className?: string; /** * 尺寸 * use config context `baseSize` as default */ size?: 'sm' | 'md'; /** * 展开的面板 id 列表默认值 */ defaultExpandedIds?: CollapsePanelId[]; /** * 展开的面板 id 列表控制值 */ expandedIds?: CollapsePanelId[]; /** * 面板展开时的回调 */ onExpand?: (id: CollapsePanelId, expandedIds: CollapsePanelId[], currentExpandedIds: CollapsePanelId[]) => void; /** * 面板折叠时的回调 */ onCollapse?: (id: CollapsePanelId, expandedIds: CollapsePanelId[], currentExpandedIds: CollapsePanelId[]) => void; /** * expandedIds 变化时的回调 * expand / collapse 均会调用 */ onChange?: (expandedIds: CollapsePanelId[]) => void; /** * 展开图片位置 */ expandIconPosition?: 'left' | 'right'; /** * 同时只展一个 panel,aka 手风琴模式 */ singleExpanded?: boolean; /** * 整体设置 CollapsePanel 的 shouldExtraTriggerHeaderClick */ shouldExtraTriggerHeaderClick?: boolean; /** * 内容类型 * * - plain: 简单文本 * - common: 通用 */ contentType?: 'plain' | 'common'; /** * 是否销毁折叠面板时的内容节点 * * 设置为 false 可维持内容节点,可以维持内容中 uncontrolled components 的交互状态 */ shouldDestroyCollapsedPanelContent?: boolean; } interface CollapseSate { expandedIds: CollapsePanelId[]; } export declare class Collapse extends Component { static displayName: string; static defaultProps: { className: string; defaultExpandedIds: never[]; expandIconPosition: string; singleExpanded: boolean; contentType: string; shouldDestroyCollapsedPanelContent: boolean; }; static contextType: import("react").Context; context: ContextType; state: CollapseSate; static getDerivedStateFromProps(nextProps: CollapseProps): Partial | null; get className(): string; get size(): "sm" | "md"; get contextValue(): CollapseContextValue; handleClickPanelHeader: (e: MouseEvent, id: CollapsePanelId | undefined) => void; toggleExpanded(id: CollapsePanelId): void; setExpandedIds(expandedIds: CollapsePanelId[]): void; render(): import("react/jsx-runtime").JSX.Element; } export {};