@lark-project/ui-kit-plugin
Version:
Lark Project UI Kit Plugin
50 lines (49 loc) • 1.93 kB
TypeScript
/**
* Copyright (c) 2024 Lark Technologies Pte. Ltd.
*
* Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted,provided that the above copyright notice and this permission notice appear in all copies.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
* IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO
* EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
* DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
* ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
import type { ISelectOption } from '../../../../../trigger';
/**
* 带有分组的 tree list ,拍平成 simple list,舍弃带有 children 的元素
* @param list
* @returns
*/
export declare function flattenOptions<DATA extends Record<string, any> = Record<string, any>>(list: ISelectOption<DATA>[]): [ISelectOption<DATA>, number[]][];
/**
* 当前聚焦选项索引管理
* 1. 支持分组
* 2. 支持键盘上下切换
* @param params
* @returns
*/
export declare function useActiveIndex(params: {
options: ISelectOption<any>[];
disabledIds?: string[];
}): {
activeIndex: number[];
setActiveIndex: import("react").Dispatch<import("react").SetStateAction<number[]>>;
switchActive: (code: string) => void;
};
/**
* 查找返回列表上一个item
* @param list
* @param value
* @returns
*/
export declare function listUp<T, V>(list: T[], value?: V, match?: (a: T) => boolean): T;
/**
* 查找返回列表下一个item
* @param list
* @param value
* @returns
*/
export declare function listDown<T, V>(list: T[], value?: V, match?: (a: T) => boolean): T;