chowa
Version:
UI component library based on React
57 lines (56 loc) • 1.99 kB
TypeScript
/**
* @license chowa v1.1.3
*
* Copyright (c) Chowa Techonlogies Co.,Ltd.(http://www.chowa.cn).
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
import * as React from 'react';
import { MenuItempProps } from './menu-item';
import { MenuGroupProps } from './menu-group';
import { MenuSubmenuProps } from './menu-submenu';
export interface CollapseManager {
[parentKey: string]: number[];
}
export interface Extras {
icon: React.ReactNode;
text: React.ReactNode;
hasWrapper: boolean;
}
export interface Item extends MenuItempProps {
tier: number;
type: 'item';
content: React.ReactNode;
extras: Extras;
}
export interface Group extends MenuGroupProps {
tier: number;
key: React.ReactText;
type: 'group';
data: Data;
}
export interface Submenu extends MenuSubmenuProps {
tier: number;
key: React.ReactText;
type: 'submenu';
inSubmenu: boolean;
parentKey: string;
collapseKey: number;
data: Data;
extras: Extras;
}
export declare type Record = Item | Group | Submenu;
export declare type Data = Record[];
export declare const tierSpace = 22;
export declare function computedIconAndText(children: React.ReactNode): {
icon: React.ReactNode;
text: React.ReactNode;
hasWrapper: boolean;
};
export declare function transformReactNodeToData(children: React.ReactNode, tier?: number, inSubmenu?: boolean, parentKey?: string): Data;
export declare function hasActiveRecord(data: Data, activeIndex: React.ReactText): any;
export declare function initCollapseManager(data: Data, accordion: boolean, activeIndex: React.ReactText): CollapseManager;
export declare function isActiveCollpase(manager: CollapseManager, parentKey: string, collapseKey: number): boolean;
export declare function cloneManager(manager: CollapseManager): CollapseManager;
export declare function mergeOuterItemToSubmenu(data: Data, index: number): Data;