import { default as EaBase } from '../../core/EaBase'; /** * @summary 树形控件,用于展示层次结构数据,支持展开折叠、复选框选择、右键菜单等功能。 * @status stable * @since 3.0 * * @dependency ea-checkbox * @dependency ea-icon * * @slot default - 默认插槽。 * * @event ea-node-click - 节点点击时触发,detail: `{ data: any }`。 * @event ea-node-contextmenu - 节点右键点击时触发,detail: `{ data: any, node: TreeNodeState }`。 * @event ea-node-select - 节点选中时触发,detail: `{ node: any, selected: boolean }`。 * @event ea-check-change - 复选框状态变化时触发,detail: `{ data: any, checked: boolean, hasCheckedChildren: boolean }`。 * @event ea-check - 复选框选中时触发,detail: `{ data: any, checkedState: { checkedNodes, checkedKeys, halfCheckedNodes, halfCheckedKeys } }`。 * @event ea-current-change - 当前选中节点变化时触发,detail: `{ data: any, node: TreeNodeState }`。 * @event ea-node-expand - 节点展开时触发,detail: `{ data: any, node: TreeNodeState, expanded: true }`。 * @event ea-node-collapse - 节点折叠时触发,detail: `{ data: any, node: TreeNodeState, expanded: false }`。 * * @csspart container - 树容器元素。 * * @cssproperty --ea-tree-font-size - 字体大小。 * @cssproperty --ea-tree-text-color - 文本颜色。 * @cssproperty --ea-tree-toggle-size - 展开图标尺寸。 * @cssproperty --ea-tree-cursor - 光标样式。 * @cssproperty --ea-tree-padding-vertical - 垂直内边距。 * @cssproperty --ea-tree-padding-horizontal - 水平内边距。 * @cssproperty --ea-tree-border-radius - 圆角大小。 * @cssproperty --ea-tree-transition - 过渡动画时长。 * @cssproperty --ea-tree-hover-bg - 悬停背景色。 * @cssproperty --ea-tree-selected-bg - 选中背景色。 * @cssproperty --ea-tree-selected-text-color - 选中文本色。 * @cssproperty --ea-tree-icon-color - 图标颜色。 * @cssproperty --ea-tree-icon-hover-color - 图标悬停颜色。 * @cssproperty --ea-tree-indent-size - 缩进大小。 */ export declare class EaTree extends EaBase { private _container; private _nodeStates; private _treeState; private _focusedPath; showCheckbox: boolean; checkStrictly: boolean; nodeKey: string; label: string; expandOnIconClick: boolean; data: any[]; dataProps: Record; defaultExpandedKeys: any[]; defaultCheckedKeys: any[]; /** 处理数据变化,重新构建节点状态和渲染树 */ private _handleDataChange; /** 递归构建节点状态 Map */ private _buildNodeStates; /** 生成节点状态类名 */ private _getNodeStateClasses; /** 渲染树 HTML */ private _renderTree; /** 从事件路径中查找 label 元素 */ private _findLabelInPath; /** 判断事件路径中是否包含 toggle-icon */ private _isToggleInPath; /** 判断事件路径中是否包含 checkbox */ private _isCheckboxInPath; /** 根据 path 获取节点 DOM 元素 */ private _getNodeElement; /** 根据 path 获取 label DOM 元素 */ private _getLabelElement; /** 根据 path 获取 checkbox 组件 */ private _getCheckboxElement; /** 根据 path 获取子节点容器 */ private _getChildrenElement; /** 更新单个节点的 DOM 状态 */ private _updateNodeDOM; /** 根据 key 查找节点路径 */ private _findPathByKey; /** 根据数据对象查找节点路径 */ private _findPathByData; /** 解析节点路径(支持 key 或数据对象) */ private _resolvePath; /** 处理默认展开的节点 */ private _handleDefaultExpandedKeys; /** 处理默认选中的节点 */ private _handleDefaultCheckedKeys; /** 展开指定路径的节点 */ private _expandPath; /** 折叠指定路径的节点 */ private _collapsePath; /** 切换展开/折叠 */ private _toggleExpand; /** 选中指定路径的节点 */ private _selectPath; /** 展开指定路径的所有祖先节点 */ private _expandAncestorPaths; /** 处理 checkbox 切换逻辑 */ private _handleCheckboxToggle; /** 设置所有子孙节点的选中状态 */ private _setDescendantsChecked; /** 向上更新祖先节点的选中/半选状态 */ private _updateAncestorsState; /** 获取直接子节点的路径列表 */ private _getDirectChildrenPaths; /** 更新所有节点的 checkbox DOM */ private _updateAllCheckboxDOM; /** 判断指定路径下是否有已选中的子孙节点 */ private _hasCheckedChildren; /** 派发 checkbox 相关事件 */ private _emitCheckEvents; /** 更新所有节点的 checkbox 可见性 */ private _updateCheckboxVisibility; /** 处理节点点击事件 */ private _handleClick; /** 处理 checkbox 变更事件 */ private _handleCheckboxChange; /** 处理节点右键菜单事件 */ private _handleContextmenu; /** 处理键盘导航 */ private _handleKeydown; /** 获取所有可见节点的路径列表 */ private _getVisiblePaths; /** 获取根节点路径列表 */ private _getRootPaths; /** 获取父节点路径 */ private _getParentPath; /** 移动焦点到指定路径的节点 */ private _moveFocus; /** 展开同级所有节点 */ private _expandSiblingNodes; /** 处理 type-ahead 查找 */ private _handleTypeAhead; html(): string; $mount(): void; /** 更新树容器的 ARIA 属性 */ private _updateTreeAriaAttrs; /** 更新容器类名 */ updateContainerClasslist(): string; /** 获取半选中节点数据数组 */ getHalfCheckedNodes(): any[]; /** 获取半选中节点键值数组 */ getHalfCheckedKeys(): any[]; /** 获取当前选中节点的键值 */ getCurrentKey(): any; /** 获取当前选中节点的数据 */ getCurrentNode(): any; /** * 更新指定节点的子节点数据 * @param key - 节点键值 * @param data - 新的子节点数据数组 * @returns 是否更新成功 */ updateKeyChildren(key: any, data: any[]): boolean; /** * 获取选中节点数据数组 * @param leafOnly - 是否仅返回叶子节点 * @param includeHalfChecked - 是否包含半选节点 * @returns 选中节点数据数组 */ getCheckedNodes(leafOnly?: boolean, includeHalfChecked?: boolean): any[]; /** * 通过节点数据设置选中状态 * @param nodes - 要选中的节点数据数组 * @returns 是否设置成功 */ setCheckedNodes(nodes: any[]): boolean; /** * 获取选中节点键值数组 * @param leafOnly - 是否仅返回叶子节点 * @returns 选中节点键值数组 */ getCheckedKeys(leafOnly?: boolean): any[]; /** * 通过键值设置选中状态 * @param keys - 要选中的节点键值数组 * @param leafOnly - 是否仅选中叶子节点 * @returns 是否设置成功 */ setCheckedKeys(keys: any[], leafOnly?: boolean): boolean; /** * 设置指定节点的选中状态 * @param keyOrData - 节点键值或数据对象 * @param checked - 是否选中 * @returns 是否设置成功 */ setChecked(keyOrData: any, checked: boolean): boolean; /** * 设置当前选中节点的键值 * @param key - 节点键值,传 null 取消选中 * @param shouldAutoExpandParent - 是否自动展开父节点 * @returns 是否设置成功 */ setCurrentKey(key: any, shouldAutoExpandParent?: boolean): boolean; /** * 设置当前选中节点 * @param node - 节点数据对象,传 null 取消选中 * @param shouldAutoExpandParent - 是否自动展开父节点 * @returns 是否设置成功 */ setCurrentNode(node: any, shouldAutoExpandParent?: boolean): boolean; /** * 获取节点信息 * @param data - 节点键值或数据对象 * @returns 节点信息对象,包含 label(节点状态)、child(子节点容器)、data(原始数据) */ getNode(data: any): any; } export default EaTree; //# sourceMappingURL=index.d.ts.map