UNPKG

chowa

Version:

UI component library based on React

57 lines (56 loc) 1.99 kB
/** * @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;