sard-uniapp
Version:
sard-uniapp 是一套基于 Uniapp + Vue3 框架开发的兼容多端的 UI 组件库
227 lines (226 loc) • 8.02 kB
TypeScript
/**
* @description: 确保目标是一个数组
* @param {any} target
* @return {array}
*/
export declare function toArray(target: any): any[];
/**
* @description: 限定数值范围
* @param {number} n 被限定的值
* @param {number} min 最小值
* @param {number} max 最大值
* @return {number} 限定后的值
*/
export declare function minmax(n: number, min: number, max: number): number;
/**
* @description: 获取小数位数
* @param {number | string} n 要操作的数值
* @return {number}
*/
export declare function getDecimalsLength(n: number | string): number;
/**
* @description: 把一个数四舍五入到指定位数小数
* @param {number} n 要操作的数值
* @param {number} precision 精准度,即小数个数
* @return {number}
*/
export declare function round(n: number, precision?: number): number;
/**
* @description: 把一个数舍入到指定数的倍数
* @param {number} n 要舍入的数值
* @param {number} m 结果值的因数
* @return {number}
*/
export declare function mround(n: number, m: number): number;
/**
* @description: 生成唯一ID,用于设置元素的ID,以便获取
* @param {string} prefix
* @return {string}
*/
export declare function uniqid(prefix?: string): string;
/**
* @description: 获取阻尼值
* @param {number} value
* @param {number} min
* @param {number} max
* @param {number} damping
* @return {number}
*/
export declare function getDampingValue(value: number, min: number, max: number, damping: number): number;
/**
* @description: 获取矩形阻尼值
* @param {number} offset 当前的偏移量
* @param {number} areaSize 范围值
* @param {number} viewSize 范围内某个视图尺寸值
* @param {number} damping 阻尼系数
* @return {number}
*/
export declare function getRectDampingValue(offset: number, areaSize: number, viewSize: number, damping: number): number;
/**
* @description: 获取范围值
* @param {number} offset 当前的偏移量
* @param {number} areaSize 范围值
* @param {number} viewSize 范围内某个视图尺寸值
* @return {number}
*/
export declare function getInBoundValue(offset: number, areaSize: number, viewSize: number): number;
/**
* @description: 获取溢出值范围
* @param {number} overflow 最大溢出值
* @param {number} areaSize 范围值
* @param {number} viewSize 范围内某个视图尺寸值
* @return {*}
*/
export declare function getOverflowRangeInArea(overflow: number, areaSize: number, viewSize: number): [number, number];
/**
* @description: 扩散性遍历
* @param {any[]} array 要遍历的数组
* @param {(el: any, spreadIndex: number, index: number) => any} callback 回调函数,接收当前元素、扩散性下标、迭代下标作为参数,
* 如果返回true,则中止遍历
* @param {number} currIndex 遍历开始的下标
* @param {number} direction 开始遍历的方向
* @return {number} 扩散性下标、或开始下标
*/
export declare function spreadEach(array: any[], callback: (el: any, spreadIndex: number, index: number) => any, startIndex?: number, direction?: number): number;
/**
* @description: 深度克隆对象,仅克隆数组和无格式对象,其他类型会被直接返回
* @param {any} target
* @return {any}
*/
export declare function deepClone(target: any): any;
/**
* @description: 深拷贝其他对象到第一个对象
* @param args 任意长度参数对象
* @return 返回第一个参数对象
*/
export declare function extend(...args: any[]): any;
/**
* @description: 判断两数组是否相等,浅比较
* @param {any[]} arr1
* @param {any[]} arr2
* @return {boolean}
*/
export declare function arrayEqual(arr1: any[], arr2: any[]): boolean;
/**
* @description: 判断一个对象是否为看得到的空
* @param {any} target
* @return {boolean}
*/
export declare function isVisibleEmpty(target: any): boolean;
/**
* @description: 判断一个值是否为空
* @param {any} value
* @return {boolean}
*/
export declare function isEmptyValue(value: any, whitespace?: boolean): boolean;
/**
* @description: 判断一个值渲染到DOM中时是否可见
* @param {any} value
* @return {boolean}
*/
export declare function isRenderVisible(value: any): boolean;
/**
* @description: 判断是否绑定为空值
* @param {any} target
* @return {boolean}
*/
export declare function isEmptyBinding(target: any): target is '' | null | undefined;
export interface DebounceOptions {
leading?: boolean;
trailing?: boolean;
maxWait?: number;
}
export declare function debounce(func: (...args: any[]) => any, wait: any, options?: DebounceOptions): {
(this: any, ...args: any[]): any;
cancel: () => void;
flush: () => any;
pending: () => boolean;
};
export declare function throttle(func: (...args: any[]) => any, wait: any, options?: DebounceOptions): {
(this: any, ...args: any[]): any;
cancel: () => void;
flush: () => any;
pending: () => boolean;
};
/**
* @description: 获取页面范围
* @param {number} current 当前页码
* @param {number} pageCount 总页数
* @param {number} pageItemCount 要展示的页数
* @return {[number, number]}
*/
export declare function getPageRange(current: number, pageCount: number, pageItemCount: number): number[];
interface AnyObject {
[p: string]: any;
}
export declare function treeToMap(tree: AnyObject[], keyName: string, childrenName: string, parentName: string): {
[p: string]: AnyObject;
};
/**
* @description: 打乱数组
* @param {any[]} arr 要打乱的数组
* @param {boolean} inPlace 是否改变原数组
* @return {any[]}
*/
export declare function shuffle(arr: any[], inPlace?: boolean): any[];
interface Rect {
x: number;
y: number;
width: number;
height: number;
}
/**
* @description: 根据原始坐标尺寸和缩放后的坐标尺寸算出转换的原点
* @param {Rect} rect
* @param {Rect} scaleRect
* @return {[number, number]}
*/
export declare function getTransformOrigin(rect: Rect, scaleRect: Rect): number[];
/**
* @description: 将一个可选单位的字符串或数值拆分为数值和单位组成的数组
* @param {number | string} target
* @return {[number, string]}
*/
export declare function splitUnit(target: number | string): [number, string];
/**
* @description: 链式获取对象值
* @param object
* @param chain 通过点分割的字符串或者字符串数组
*/
export declare function chainGet(object: any, chain?: string | string[]): any;
/**
* @description: 链式设置对象值
* @param object
* @param chain 通过点分割的字符串或者字符串数组
* @param value 要设置的值
*/
export declare function chainSet(object: any, chain: string | string[], value: any): void;
/**
* @description: 移动数组中的元素
* @param array
* @param fromIndex
* @param toIndex
* @return 移动后的新数组
*/
export declare function arrayMove(array: any[], fromIndex: number, toIndex: number): any[];
export type StyleProp = string | Record<any, any> | null | undefined | false | StyleProp[];
export declare function stringifyStyle(...args: StyleProp[]): string;
export type ClassProp = string | number | null | undefined | Record<string, any> | ClassProp[];
export declare function classNames(...args: ClassProp[]): string;
export declare const noop: () => void;
export declare function nestedToMulti(nested: any[], values: (number | string)[], fieldKeys: {
value: string;
children: string;
}): any[];
export declare function random(min: number, max: number): number;
export declare function addSeparator(num: number | string, separator?: string, digit?: number): string;
export interface Coord {
x: number;
y: number;
}
export declare function getDistanceBetweenTwoPoints(c1: Coord, c2: Coord): number;
export declare function getMayPrimitiveOption(option: string | number | boolean | {
[key: PropertyKey]: any;
}, key: string): any;
export declare function sleep(time: number): Promise<unknown>;
export {};