import * as _angular_core from '@angular/core'; import { TemplateRef, Signal, WritableSignal, ElementRef, OnChanges, SimpleChanges } from '@angular/core'; import * as _ng_nest_ui_core from '@ng-nest/ui/core'; import { XParentIdentityProperty, XDataArray, XSize, XNumber, XBoolean, XTrigger, XProperty } from '@ng-nest/ui/core'; /** * Menu * @selector x-menu * @decorator component */ declare const XMenuPrefix = "x-menu"; declare const XMenuProperty_base: new () => { config: _ng_nest_ui_core.XMenuConfig | undefined; }; /** * Menu Property */ declare class XMenuProperty extends XMenuProperty_base { /** * @zh_CN 节点数据 * @en_US Node data */ readonly data: _angular_core.InputSignalWithTransform>; /** * @zh_CN 布局方向 * @en_US Layout direction */ readonly layout: _angular_core.InputSignal; /** * @zh_CN 尺寸 * @en_US Size */ readonly size: _angular_core.InputSignal; /** * @zh_CN 宽度,只有布局 layout 为 'column' 生效 * @en_US Width, only layout layout is the 'column' */ readonly width: _angular_core.InputSignalWithTransform; /** * @zh_CN 缩起菜单 * @en_US Shrink menu */ readonly collapsed: _angular_core.InputSignalWithTransform; /** * @zh_CN 触发方式,只针对横向布局 * @en_US Trigger mode, only for horizontal layout */ readonly trigger: _angular_core.InputSignal; /** * @zh_CN 节点模板 * @en_US Node template */ readonly nodeTpl: _angular_core.InputSignal | undefined>; /** * @zh_CN 展开的所有层级,只对 layout 布局为 'column' 的生效 * @en_US All expanded levels are only effective for the layout of'column' */ readonly expandedAll: _angular_core.InputSignalWithTransform; /** * @zh_CN 默认展开的层级,只对 layout 布局为 'column' 的生效 * @en_US The level expanded by default is only valid for the layout of'column' */ readonly expandedLevel: _angular_core.InputSignalWithTransform; /** * @zh_CN 当前激活的节点 id * @en_US Currently active node id */ readonly activatedId: _angular_core.ModelSignal; /** * @zh_CN 滚动容器 * @en_US Rolling container */ readonly target: _angular_core.InputSignal; /** * @zh_CN 弹框的最小宽度 * @en_US Portal min-width */ readonly portalMinWidth: _angular_core.InputSignalWithTransform; /** * @zh_CN 节点点击的事件 * @en_US Node click event */ readonly nodeClick: _angular_core.OutputEmitterRef; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } /** * @zh_CN MenuNode 节点数据 * @en_US MenuNode node data */ interface XMenuNode extends XParentIdentityProperty { /** * @zh_CN 图标 * @en_US Icon */ icon?: string; /** * @zh_CN 展开 * @en_US Unfold */ open?: boolean; /** * @zh_CN 子节点已加载过 * @en_US Child node has been loaded */ childrenLoaded?: boolean; /** * @zh_CN 分类显示,设置值后节点显示成分类样式 * @en_US Category display, after setting the value, the node is displayed in a category style */ category?: string; /** * @zh_CN 分类节点,通过内部计算 * @en_US Classification node, through internal calculation */ categoryNode?: boolean; /** * @zh_CN 检查更新 * @en_US Check for updates */ change?: Function; /** * @zh_CN 路由 * @en_US Router */ routerLink?: string | any[]; } /** * @zh_CN 布局方式 * @en_US Layout */ type XMenuLayout = 'row' | 'column'; /** * @zh_CN 触发方式 * @en_US Trigger method */ type XMenuTrigger = XTrigger; /** * Menu Node * @selector x-menu-node * @decorator component */ declare const XMenuNodePrefix = "x-menu-node"; /** * Menu Node Property */ declare class XMenuNodeProperty extends XProperty { static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } interface XMenuContext { activatedId: Signal; activatedElementRef: WritableSignal | null>; setScrollTop(): void; onNodeClick(node: XMenuNode): void; rootIndexChange(index: number): void; onToggle(event: Event | null, node: XMenuNode, isDropdown?: boolean): void; setCategory(nodes: XMenuNode[]): void; setActivatedNode(nodes: XMenuNode[]): void; setParentOpen(nodes: XMenuNode[], node: XMenuNode): void; } declare class XMenuComponent extends XMenuProperty implements OnChanges, XMenuContext { showCategory: _angular_core.WritableSignal; get scroll(): HTMLElement; datas: _angular_core.WritableSignal; nodes: _angular_core.WritableSignal; rootIndex: _angular_core.WritableSignal; activated: _angular_core.WritableSignal; activatedElementRef: _angular_core.WritableSignal | null>; expanded: _angular_core.WritableSignal; private doc; private _target; classMap: _angular_core.Signal<{ [x: string]: boolean; "x-menu-collapsed": boolean; }>; nodeClassMap: _angular_core.Signal<{ [x: string]: boolean; }>; constructor(); ngOnChanges(changes: SimpleChanges): void; setScrollTop(): void; onNodeClick(node: XMenuNode): void; rootIndexChange(index: number): void; onToggle(event: Event | null, node: XMenuNode, isDropdown?: boolean): void; private setDataChange; private getRoot; setCategory(nodes: XMenuNode[]): XMenuNode[]; setActivatedNode(nodes: XMenuNode[]): void; setParentOpen(nodes: XMenuNode[], node: XMenuNode): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class XMenuNodeComponent extends XMenuNodeProperty { menu: XMenuContext; routerLink: _angular_core.InputSignal; leaf: _angular_core.InputSignal; icon: _angular_core.InputSignal; label: _angular_core.InputSignal; open: _angular_core.InputSignal; id: _angular_core.InputSignal; node: _angular_core.InputSignal; nodeTpl: _angular_core.InputSignal | undefined>; private elementRef; constructor(); static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class XMenuModule { static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵmod: _angular_core.ɵɵNgModuleDeclaration; static ɵinj: _angular_core.ɵɵInjectorDeclaration; } export { XMenuComponent, XMenuModule, XMenuNodeComponent, XMenuNodePrefix, XMenuNodeProperty, XMenuPrefix, XMenuProperty }; export type { XMenuLayout, XMenuNode, XMenuTrigger };