export type IAnyObject = Record; /** * @function 深拷贝 * @param value {*} * @return {*} */ export declare const cloneDeep: (value: T) => T; /** * @function 2个对象值进行比较 * @param objectA * @param objectB * @return {boolean} */ export declare const objectEqual: (objectA?: IAnyObject, objectB?: IAnyObject) => boolean; /** * 节流 * @param fn {Function} 方法 * @param delay {Number} 延迟执行时间 * @return {function(): void} */ export declare function throttle(fn: Function, delay: number): (this: unknown, ...args: unknown[]) => void; /** * * @param fn * @param wait * @param immediate * @return {function(): *} */ export declare const debounce: any>(fn: T, wait: number, immediate: boolean) => (...args: Parameters) => any; /** * 大写第一位字符串 * @param str {String} 字符串 * @return {string} */ export declare const toUpperFirstCase: (str: string) => string; /** * 平铺数组转换为树状结构 * @param list {Array} 数组列表 * @param parentKey {String} 父节点名称 * @param root {Number} 根节点值 * @return {boolean} */ export declare const toTreeData: (list: Array, parentKey?: string, root?: number) => IAnyObject[]; /** * 判断值是否为undefined或null * @param value {*} 待判断值 * @return {boolean} */ export declare const isEmpty: (value: unknown) => boolean; /** * 判断值是否为undefined或null或空字符串 * @param value {*} 待判断值 * @return {boolean} */ export declare const isInputEmpty: (value: unknown) => boolean; /** * 判断值是否不为undefined或null * @param value {*} 待判断值 * @return {boolean} */ export declare const isNotEmpty: (value: unknown) => boolean; /** * 是否为没有空对象 * @param value {Object} 待判断对象 * @return {boolean} */ export declare const isEmptyObject: (value: IAnyObject) => boolean; /** * 判断值是否为数组 * @param value {*} * @return {boolean} */ export declare const isArray: (value: unknown) => boolean; /** * 判断是否对象 * @param value * @return {boolean} */ export declare const isObject: (value: unknown) => boolean; /** * 判断是否为字符串 * @param value * @return {boolean} */ export declare const isString: (value: unknown) => boolean; /** * 判断是否为数字 * @param value * @return {boolean} */ export declare const isNumber: (value: unknown) => boolean; /** * 判断值是否为JSON String * @param value * @return {boolean} */ export declare const isJson: (value: string) => boolean; /** * 下载文件 * @param href {String} base64地址或远程地址 * @param filename {String} 文件名 */ export declare const downloadFile: (href: string, filename: string) => void; /** * 删除一条数据后返回下一条数据 * @param itemList 列表 * @param index 待删除数据 * @return {{}} */ export declare const getNextItem: (itemList: IAnyObject[], index: number) => {}; /** * @description: 耗时格式化 * @param {*} time 毫秒 * @return {*} timeStr eg: 22时22分22秒 */ export declare const durationTimeFormat: (time: number) => string; /** * 根据url获取query中key对应的值 * @param key * @param url * @return {string|null} */ export declare const getQueryString: (key: string, url: string) => string | null; /** * 拼接url和query的值 * @param url String * @param query Object * @return {string} */ export declare const setUrlQuery: (url: string, query: Record) => string; export declare const getLabelByValue: (value: unknown, options: IAnyObject[], optionProps: { value: string; label: string; }) => unknown; type PropType = string extends Path ? unknown : Path extends keyof T ? T[Path] : Path extends `${infer K}.${infer R}` ? K extends keyof T ? PropType : unknown : unknown; type GetFieldValue = PropType; export declare const getFieldValue: (target: TObject, propertyName: P) => PropType; /** * 向对象添加一个property * @param target {Object} 目标对象 * @param propertyName {String} 属性名 * @param value {*} * @param hasArray {String} */ export declare const setFieldValue: (target: TObject, propertyName: P, value: PropType, hasArray?: boolean) => void; /** * 判断值是否为Map类型 * @param value * @return {boolean} */ export declare const isMap: (value: unknown) => boolean; /** * 根据key获取mapping中的value * @param key * @param mapping * @return {*} */ export declare const getValueByKey: (key: string, mapping: IAnyObject | Map) => unknown; /** * 根据value获取mapping中的key * @param value * @param mapping * @return {string|*} */ export declare const getKeyByValue: (value: unknown, mapping: IAnyObject | Map) => unknown; /** * 值根据映射关系和方向进行转换 * @param value {*} 待转换值 * @param mapping {Object} 映射关系 * @param valueType {String} 转换方向 value-转为值 key-转为键 */ export declare const getValueMapping: (value: unknown, mapping: IAnyObject | Map | undefined, valueType: 'value' | string) => unknown; type TTreeChildren = C extends `${infer U}` ? U extends keyof T ? U : undefined : 'children'; export declare const depthFirstSearchTree: (tree: T, value: T[K], key: K, children?: C, depth?: number) => Omit>[] | undefined; export declare const depthFirstSearchTree2: (tree: T[], value: T[K], key: K, children?: C, depth?: number) => T[] | undefined; export declare const depthFirstSearchIndexTree: (tree: T[], value: T[K], key: K, children?: C, depth?: number) => undefined | number[]; export declare const getPropertyKeyByPath: (path: number[], treeProps: { children: string; }) => string; export declare const getUsingConfig: (...args: unknown[]) => unknown; /** * 判断当前处于什么设备中 */ export declare const getEquipmentType: () => "mobile" | "pc"; /** * 数字添加千分位分隔符 * @param {Number} number 数字 * @param {String} separator 分隔符 * @return {string} */ export declare const addThousandSeparator: (number: number, separator?: string) => string; export declare const getValueByTemplate: (template: unknown, object: Record) => unknown; export declare class Strategy { strategies: Record void>; message: string; constructor({ strategies, message }?: { strategies?: Record void>; message?: string; }); setStrategy(type: string, strategy: () => void): void; execute(type: string, ...args: unknown[]): void; } export declare const subStr: (string: unknown, start: number, end: number) => string; export {};