@vexip-ui/utils
Advanced tools
Comparing version 1.3.0 to 1.4.0
@@ -0,19 +1,79 @@ | ||
/** | ||
* 为日期增减给定的天数 | ||
* | ||
* @param date 原始日期 | ||
* @param amount 增减的天数 | ||
*/ | ||
export declare function addDays(date: Dateable, amount: number): Date; | ||
/** | ||
* 为日期增减给定的半天数(12小时) | ||
* | ||
* @param date 原始日期 | ||
* @param amount 增减的半天数 | ||
*/ | ||
export declare function addHalfDays(date: Dateable, amount: number): Date; | ||
/** | ||
* 为日期增减给定的小时 | ||
* | ||
* @param date 原始日期 | ||
* @param amount 增减的小时 | ||
*/ | ||
export declare function addHours(date: Dateable, amount: number): Date; | ||
/** | ||
* 为日期增减给定的毫秒 | ||
* | ||
* @param date 原始日期 | ||
* @param amount 增减的毫秒 | ||
*/ | ||
export declare function addMilliseconds(date: Dateable, amount: number): Date; | ||
/** | ||
* 为日期增减给定的分钟 | ||
* | ||
* @param date 原始日期 | ||
* @param amount 增减的分钟 | ||
*/ | ||
export declare function addMinutes(date: Dateable, amount: number): Date; | ||
/** | ||
* 为日期增减给定的月数 | ||
* | ||
* @param date 原始日期 | ||
* @param amount 增减的月数 | ||
*/ | ||
export declare function addMonths(date: Dateable, amount: number): Date; | ||
/** | ||
* 为日期增减给定的季度(3个月) | ||
* | ||
* @param date 原始日期 | ||
* @param amount 增减的季度 | ||
*/ | ||
export declare function addQuarters(date: Dateable, amount: number): Date; | ||
/** | ||
* 为日期增减给定的秒 | ||
* | ||
* @param date 原始日期 | ||
* @param amount 增减的秒 | ||
*/ | ||
export declare function addSeconds(date: Dateable, amount: number): Date; | ||
/** | ||
* 为日期增减给定的周数 | ||
* | ||
* @param date 原始日期 | ||
* @param amount 增减的周数 | ||
*/ | ||
export declare function addWeeks(date: Dateable, amount: number): Date; | ||
/** | ||
* 为日期增减给定的年份 | ||
* | ||
* @param date 原始日期 | ||
* @param amount 增减的年份 | ||
*/ | ||
export declare function addYears(date: Dateable, amount: number): Date; | ||
@@ -23,2 +83,5 @@ | ||
/** | ||
* 将给定的常量字符串类型拓展为不区分大小写的任意组合 | ||
*/ | ||
export declare type AnyCase<S> = string extends S ? string : S extends `${infer F1}${infer F2}${infer R}` ? `${Uppercase<F1> | Lowercase<F1>}${Uppercase<F2> | Lowercase<F2>}${AnyCase<R>}` : S extends `${infer F}${infer R}` ? `${Uppercase<F> | Lowercase<F>}${AnyCase<R>}` : ''; | ||
@@ -34,8 +97,7 @@ | ||
/** | ||
* 将一个数字限定在指定的范围内 | ||
* @param number - 需要限定范围的数 | ||
* @param min - 边界最小值,包含该值 | ||
* @param max - 边界最大值,包含该值 | ||
* 将给定的数字限定在指定的范围内 | ||
* | ||
* @returns 限定了范围后的数 | ||
* @param number 需要限定范围的数 | ||
* @param min 边界最小值,包含该值 | ||
* @param max 边界最大值,包含该值 | ||
*/ | ||
@@ -50,5 +112,3 @@ export declare function boundRange(number: number | string, min: number, max: number): number; | ||
export declare type ColorName = keyof typeof NAMED_COLORS; | ||
export declare interface ColorObject { | ||
export declare interface ColorMeta { | ||
rgb: RGBColor; | ||
@@ -66,18 +126,20 @@ hsl: HSLColor; | ||
export declare function compareAsc(left: Dateable, right: Dateable): CompareAscResult; | ||
export declare type ColorName = keyof typeof NAMED_COLORS; | ||
export declare enum CompareAscResult { | ||
LESS_THEN = -1, | ||
EQUAL = 0, | ||
GREATER_THEN = 1 | ||
} | ||
/** | ||
* 升序比较两个日期大小,用于给数组的 sort 方法使用 | ||
* | ||
* @param left 原始日期 | ||
* @param right 原始日期 | ||
*/ | ||
export declare function compareAsc(left: Dateable, right: Dateable): number; | ||
export declare function compareDesc(left: Dateable, right: Dateable): CompareDescResult; | ||
/** | ||
* 降序比较两个日期大小,用于给数组的 sort 方法使用 | ||
* | ||
* @param left 原始日期 | ||
* @param right 原始日期 | ||
*/ | ||
export declare function compareDesc(left: Dateable, right: Dateable): number; | ||
export declare enum CompareDescResult { | ||
LESS_THEN = 1, | ||
EQUAL = 0, | ||
GREATER_THEN = -1 | ||
} | ||
export declare function createBITree(length: number, min?: number): BITree; | ||
@@ -101,6 +163,5 @@ | ||
* 将一个函数或方法进行防抖 | ||
* @param method - 需要防抖的方法,需自行绑定 this | ||
* @param delay - 防抖的限制时间,默认 300 ms | ||
* | ||
* @returns 防抖后的函数 | ||
* @param method 需要防抖的方法,需自行绑定 this | ||
* @param delay 防抖的限制时间,默认 300 ms | ||
*/ | ||
@@ -111,5 +172,4 @@ export declare function debounce<T extends (...args: any[]) => any>(method: T, delay?: number): (...args: Parameters<T>) => void; | ||
* 针对每一帧,将一个函数或方法进行防抖 | ||
* @param method - 需要防抖的方法,需自行绑定 this | ||
* | ||
* @returns 防抖后的函数 | ||
* @param method 需要防抖的方法,需自行绑定 this | ||
*/ | ||
@@ -120,5 +180,4 @@ export declare function debounceFrame<T extends (...args: any[]) => any>(method: T): (...args: Parameters<T>) => void; | ||
* 针对每个微任务,将一个函数或方法进行防抖 | ||
* @param method - 需要防抖的方法,需自行绑定 this | ||
* | ||
* @returns 防抖后的函数 | ||
* @param method 需要防抖的方法,需自行绑定 this | ||
*/ | ||
@@ -129,5 +188,4 @@ export declare function debounceMinor<T extends (...args: any[]) => any>(method: T): (...args: Parameters<T>) => void; | ||
* 深度拷贝对象或数组 (避免一层死循环) | ||
* @param obj - 需要拷贝的对象或数组 | ||
* | ||
* @returns 克隆后的对象或数组 | ||
* @param obj 需要拷贝的对象或数组 | ||
*/ | ||
@@ -138,36 +196,146 @@ export declare function deepClone<T>(obj: T): T; | ||
/** | ||
* 比较两个日期相差的天数 | ||
* | ||
* @param left 原始日期 | ||
* @param right 原始日期 | ||
*/ | ||
export declare function differenceDays(left: Dateable, right: Dateable): number; | ||
/** | ||
* 比较两个日期相差的完整天 | ||
* | ||
* @param left 原始日期 | ||
* @param right 原始日期 | ||
*/ | ||
export declare function differenceFullDays(left: Dateable, right: Dateable): number; | ||
/** | ||
* 比较两个日期相差的完整小时 | ||
* | ||
* @param left 原始日期 | ||
* @param right 原始日期 | ||
*/ | ||
export declare function differenceFullHours(left: Dateable, right: Dateable): number; | ||
/** | ||
* 比较两个日期相差的完整分钟 | ||
* | ||
* @param left 原始日期 | ||
* @param right 原始日期 | ||
*/ | ||
export declare function differenceFullMinutes(left: Dateable, right: Dateable): number; | ||
/** | ||
* 比较两个日期相差的完整月 | ||
* | ||
* @param left 原始日期 | ||
* @param right 原始日期 | ||
*/ | ||
export declare function differenceFullMonths(left: Dateable, right: Dateable): number; | ||
/** | ||
* 比较两个日期相差的完整季度 | ||
* | ||
* @param left 原始日期 | ||
* @param right 原始日期 | ||
*/ | ||
export declare function differenceFullQuarters(left: Dateable, right: Dateable): number; | ||
/** | ||
* 比较两个日期相差的完整秒 | ||
* | ||
* @param left 原始日期 | ||
* @param right 原始日期 | ||
*/ | ||
export declare function differenceFullSeconds(left: Dateable, right: Dateable): number; | ||
/** | ||
* 比较两个日期相差的完整周 | ||
* | ||
* @param left 原始日期 | ||
* @param right 原始日期 | ||
*/ | ||
export declare function differenceFullWeeks(left: Dateable, right: Dateable): number; | ||
/** | ||
* 比较两个日期相差的完整年份 | ||
* | ||
* @param left 原始日期 | ||
* @param right 原始日期 | ||
*/ | ||
export declare function differenceFullYears(left: Dateable, right: Dateable): number; | ||
/** | ||
* 比较两个日期相差的小时 | ||
* | ||
* @param left 原始日期 | ||
* @param right 原始日期 | ||
*/ | ||
export declare function differenceHours(left: Dateable, right: Dateable): number; | ||
/** | ||
* 比较两个日期相差的毫秒 | ||
* | ||
* @param left 原始日期 | ||
* @param right 原始日期 | ||
*/ | ||
export declare function differenceMilliseconds(left: Dateable, right: Dateable): number; | ||
/** | ||
* 比较两个日期相差的分钟 | ||
* | ||
* @param left 原始日期 | ||
* @param right 原始日期 | ||
*/ | ||
export declare function differenceMinutes(left: Dateable, right: Dateable): number; | ||
/** | ||
* 比较两个日期相差的月 | ||
* | ||
* @param left 原始日期 | ||
* @param right 原始日期 | ||
*/ | ||
export declare function differenceMonths(left: Dateable, right: Dateable): number; | ||
/** | ||
* 比较两个日期相差的季度 | ||
* | ||
* @param left 原始日期 | ||
* @param right 原始日期 | ||
*/ | ||
export declare function differenceQuarters(left: Dateable, right: Dateable): number; | ||
/** | ||
* 比较两个日期相差的秒 | ||
* | ||
* @param left 原始日期 | ||
* @param right 原始日期 | ||
*/ | ||
export declare function differenceSeconds(left: Dateable, right: Dateable): number; | ||
/** | ||
* 比较两个日期相差的周 | ||
* | ||
* @param left 原始日期 | ||
* @param right 原始日期 | ||
* @param weekStartOn 设定周的第一天,默认为周日 | ||
*/ | ||
export declare function differenceWeeks(left: Dateable, right: Dateable, weekStartOn?: number): number; | ||
/** | ||
* 比较两个日期相差的年份 | ||
* | ||
* @param left 原始日期 | ||
* @param right 原始日期 | ||
*/ | ||
export declare function differenceYears(left: Dateable, right: Dateable): number; | ||
/** | ||
* Return digits length of a number. | ||
* | ||
* @param number The input number | ||
*/ | ||
export declare function digitLength(number: number | string): number; | ||
export declare function disconnect(el: TransferNode, types: string | string[]): void; | ||
@@ -186,7 +354,20 @@ | ||
/** | ||
* 讲小于 10 整数 N 变成 `0N` 的字符串,方法不会对入参校验 | ||
* @param number - 需要处理的整数 | ||
* Accurate division. | ||
* | ||
* @param numbers The numbers to divide | ||
*/ | ||
export declare const divide: (...numbers: (number | string)[]) => number; | ||
/** | ||
* 将小于 10 整数 N 变成 `0N` 的字符串,方法不会对入参校验 | ||
* | ||
* @param number 需要处理的整数 | ||
*/ | ||
export declare function doubleDigits(number: number): string; | ||
/** | ||
* 获取给定日期所在天的结束日期 | ||
* | ||
* @param date 原始日期 | ||
*/ | ||
export declare function endOfDay(date: Dateable): Date; | ||
@@ -219,4 +400,5 @@ | ||
* 转换树形结构为扁平结构 | ||
* @param tree - 需要转换的树形数据 | ||
* @param options - 转化配置项 | ||
* | ||
* @param tree 需要转换的树形数据 | ||
* @param options 转化配置项 | ||
*/ | ||
@@ -227,6 +409,8 @@ export declare function flatTree<T = any>(tree: T[], options?: TreeOptions<keyof T>): T[]; | ||
* 将日期格式化成指定格式 | ||
* @param date - 需要格式化的Date对象 | ||
* @param format - 格式化结构 年-y 月-M 日-d 时-H 分-m 秒-s 季度-q | ||
* | ||
* @returns 格式化后的日期 | ||
* @param date 需要格式化的Date对象 | ||
* @param pattern 格式化结构 年-y 月-M 日-d 时-H 分-m 秒-s 季度-q | ||
* | ||
* @example format(new Date(), 'yyyy-MM-dd') | ||
* @example format(Date.now(), 'yyyy-MM-dd\'T\'HH:mm:ss\'Z\'') | ||
*/ | ||
@@ -236,10 +420,21 @@ export declare function format(date: Dateable, pattern?: string): string; | ||
/** | ||
* 根据传入的 Byte 数值,将其格式化成指定单位的大小 | ||
* @param byte - 需要计算的 Byte 数值 | ||
* @param unit - 格式化的单位 | ||
* 根据给定的 Byte 数值,将其格式化成指定单位的大小 | ||
* | ||
* @param byte 需要计算的 Byte 数值 | ||
* @param unit 格式化的单位 | ||
*/ | ||
export declare function formatByteSize(byte: number, unit?: SizeUnitWithAuto): number; | ||
/** | ||
* 获取中文星期 | ||
* | ||
* @param date 给定的日期 | ||
*/ | ||
export declare function getChineseWeek(date: Date): string; | ||
/** | ||
* 根据给定的日期获取上一个周日 | ||
* | ||
* @param date 原始日期 | ||
*/ | ||
export declare function getLastSunday(date: Date): Date; | ||
@@ -249,2 +444,7 @@ | ||
/** | ||
* 获取日期所在的季度 | ||
* | ||
* @param date 给定的日期 | ||
*/ | ||
export declare function getQuarter(date: Dateable): number; | ||
@@ -254,5 +454,4 @@ | ||
* 获取变量类型 | ||
* @param value - 任意变量 | ||
* | ||
* @returns 小写的类型名字 | ||
* @param value 任意变量 | ||
*/ | ||
@@ -263,4 +462,5 @@ export declare function getType(value: unknown): string; | ||
* 按照一定顺序的属性对数据进行分组 | ||
* @param list - 需要分数的数据 | ||
* @param props - 需要按顺序分组的属性 | ||
* | ||
* @param list 需要分数的数据 | ||
* @param props 需要按顺序分组的属性 | ||
*/ | ||
@@ -363,2 +563,7 @@ export declare function groupByProps<T = any>(list: T[], props?: Array<string | ((item: T) => any)> | string | ((item: T) => any)): Record<string, T[]>; | ||
/** | ||
* 判断给定的字符串是否为一个合法颜色值 | ||
* | ||
* @param value 原始字符串 | ||
*/ | ||
export declare function isColor(value: string): boolean; | ||
@@ -376,2 +581,7 @@ | ||
/** | ||
* 判断给定的年份是否为闰年 | ||
* | ||
* @param year 原始年份 | ||
*/ | ||
export declare function isLeepYear(year: number): boolean; | ||
@@ -404,9 +614,16 @@ | ||
* 将两个对象进行深度的动态合并 | ||
* | ||
* @param sourceObj 用于接收合并的源对象 | ||
* @param targetObj 被合并的对象,当属性名相同但值类型不同的情况,此对象的权重更高 | ||
* @param isNewObj 标记合并至一个全新的对象(深度的) | ||
* @returns 深度合并后的源对象 | ||
*/ | ||
export declare function mergeObjects<T extends Record<string, any>, U extends Record<string, any>>(sourceObj: T, targetObj: U, isNewObj?: boolean): T & U; | ||
/** | ||
* Accurate subtraction | ||
* | ||
* @param numbers The numbers to subtract | ||
*/ | ||
export declare const minus: (...numbers: (number | string)[]) => number; | ||
export declare const MINUTE_ON_MILLS: number; | ||
@@ -419,6 +636,7 @@ | ||
/** | ||
* 将一个实数扩大一定的倍数并保留一定的小数 | ||
* @param number - 要处理的实数 | ||
* @param multiple - 要扩大的倍数 | ||
* @param decimal - 要保留的小数 | ||
* 将给定的实数扩大一定的倍数并保留一定的小数 | ||
* | ||
* @param number 要处理的实数 | ||
* @param multiple 要扩大的倍数 | ||
* @param decimal 要保留的小数 | ||
*/ | ||
@@ -581,4 +799,5 @@ export declare function multipleFixed(number: number, multiple: number, decimal: number): number; | ||
* 在下一渲染帧,仅执行一次传入的方法 | ||
* @param method - 需要执行的方法 | ||
* @param args - 方法的额外参数,在方法调用前多次传入将会覆盖之前的参数 | ||
* | ||
* @param method 需要执行的方法 | ||
* @param args 方法的额外参数,在方法调用前多次传入将会覆盖之前的参数 | ||
*/ | ||
@@ -589,4 +808,5 @@ export declare function nextFrameOnce<T extends (...args: any[]) => any>(method: T, ...args: any[]): undefined; | ||
* 在下一微任务,仅执行一次传入的方法 | ||
* @param method - 需要执行的方法 | ||
* @param args - 方法的额外参数,在方法调用前多次传入将会覆盖之前的参数 | ||
* | ||
* @param method 需要执行的方法 | ||
* @param args 方法的额外参数,在方法调用前多次传入将会覆盖之前的参数 | ||
*/ | ||
@@ -597,18 +817,80 @@ export declare function nextTickOnce<T extends (...args: any[]) => any>(method: T, ...args: any[]): undefined; | ||
/** | ||
* 将原始透明度值标准化为 0 ~ 1 的值 | ||
* | ||
* @param a 0 ~ 1,0% ~ 100% | ||
*/ | ||
export declare function normalizeAlpha(a: number | string): number; | ||
export declare function normalizeHsl(h: number | string, s: number | string, l: number | string): HSLColor; | ||
/** | ||
* 将原始的 h、s、l 值标准化为 0 ~ 1 的值 | ||
* | ||
* @param h 0 ~ 360 | ||
* @param s 0 ~ 1,0% ~ 100% | ||
* @param l 0 ~ 1,0% ~ 100% | ||
*/ | ||
export declare function normalizeHsl(h: number | string, s: number | string, l: number | string): { | ||
h: number; | ||
s: number; | ||
l: number; | ||
}; | ||
export declare function normalizeHsv(h: number | string, s: number | string, v: number | string): HSVColor; | ||
/** | ||
* 将原始的 h、s、v 值标准化为 0 ~ 1 的值 | ||
* | ||
* @param h 0 ~ 360 | ||
* @param s 0 ~ 1,0% ~ 100% | ||
* @param v 0 ~ 1,0% ~ 100% | ||
*/ | ||
export declare function normalizeHsv(h: number | string, s: number | string, v: number | string): { | ||
h: number; | ||
s: number; | ||
v: number; | ||
}; | ||
export declare function normalizeRgb(r: number | string, g: number | string, b: number | string): RGBColor; | ||
/** | ||
* 将原始的 r、g、b 值标准化为 0 ~ 1 的值 | ||
* | ||
* @param r 0 ~ 255 | ||
* @param g 0 ~ 255 | ||
* @param b 0 ~ 255 | ||
*/ | ||
export declare function normalizeRgb(r: number | string, g: number | string, b: number | string): { | ||
r: number; | ||
g: number; | ||
b: number; | ||
}; | ||
export declare type ObjectColor = Exclude<Color, string>; | ||
export declare function observe(el: TransferNode, types: string | string[]): void; | ||
export declare function parseColor(color: Color): ColorObject; | ||
/** | ||
* 将给定的 {@link Color} 解析为 {@link ColorMeta} | ||
* | ||
* @param color 原始颜色值 | ||
*/ | ||
export declare function parseColor(color: Color): ColorMeta; | ||
/** | ||
* 将给定的 {@link Color} 解析为 {@link RGBAColor} | ||
* | ||
* @param originColor 原始颜色值 | ||
*/ | ||
export declare function parseColorToRgba(originColor: Color): RGBAColor; | ||
export declare function parseStringColor(color: string): Color | null; | ||
/** | ||
* 将给定的字符串转化为 {@link ObjectColor},无法转换时返回 null | ||
* | ||
* @param color 原始颜色字符串 | ||
*/ | ||
export declare function parseStringColor(color: string): ObjectColor | null; | ||
/** | ||
* Accurate addition. | ||
* | ||
* @param numbers The numbers to add | ||
*/ | ||
export declare const plus: (...numbers: (number | string)[]) => number; | ||
export declare const QUARTER_ON_MONTHS = 3; | ||
@@ -618,3 +900,4 @@ | ||
* 根据长度生成一串随机的字符串 | ||
* @param length - 字符串的长度 | ||
* | ||
* @param length 字符串的长度 | ||
*/ | ||
@@ -625,7 +908,6 @@ export declare function randomString(length?: number): string; | ||
* 生成一个 range 数组 | ||
* @param size - 大小 | ||
* @param start - 开始的数值,默认为 1 | ||
* @param step - 跨度,默认为 1 | ||
* | ||
* @returns range 后的数组 | ||
* @param size 大小 | ||
* @param start 开始的数值,默认为 1 | ||
* @param step 跨度,默认为 1 | ||
*/ | ||
@@ -635,6 +917,7 @@ export declare function range(size: number, start?: number, step?: number): number[]; | ||
/** | ||
* 生成一个日期 range | ||
* @param start - 开始日期 | ||
* @param size - range 的大小, 默认 42 (一般电子日历为 6 行 7 列) | ||
* @param step - range 的跨幅 | ||
* 生成一个日期 range 数组 | ||
* | ||
* @param start 开始日期 | ||
* @param size range 的大小, 默认 42 (一般电子日历为 6 行 7 列) | ||
* @param step range 的跨幅 | ||
*/ | ||
@@ -644,6 +927,7 @@ export declare function rangeDate(start: Dateable, size?: number, step?: number): Date[]; | ||
/** | ||
* 生成一个月份 range | ||
* @param start - 开始日期 | ||
* @param size - range 的大小, 默认 12 (一年) | ||
* @param step - range 的跨幅 | ||
* 生成一个月份 range 数组 | ||
* | ||
* @param start 开始日期 | ||
* @param size range 的大小, 默认 12 (一年) | ||
* @param step range 的跨幅 | ||
*/ | ||
@@ -654,5 +938,6 @@ export declare function rangeMonth(start: Dateable, size?: number, step?: number): Date[]; | ||
* 移除数组中的某个元素 | ||
* @param array - 需要被移除元素的数组 | ||
* @param item - 需要被移除的元素, 或一个查找方法,如果元素为函数时则需要做一层简单包装 | ||
* @param isFn - 标记数组的元素是否为函数 | ||
* | ||
* @param array 需要被移除元素的数组 | ||
* @param item 需要被移除的元素, 或一个查找方法,如果元素为函数时则需要做一层简单包装 | ||
* @param isFn 标记数组的元素是否为函数 | ||
*/ | ||
@@ -691,5 +976,6 @@ export declare function removeArrayItem<T = any>(array: T[], item: T | ((item: T) => boolean), isFn?: boolean): T | null; | ||
/** | ||
* 根据临界值对数字进行舍入 | ||
* @param number - 需要舍入的数 | ||
* @param criticalValue - 舍入的临界值 (0 ~ 1),达到临界值进位反之舍弃 | ||
* 根据临界值对给定的数字进行舍入 | ||
* | ||
* @param number 需要舍入的数 | ||
* @param criticalValue 舍入的临界值 (0 ~ 1),达到临界值进位反之舍弃 | ||
*/ | ||
@@ -701,6 +987,7 @@ export declare function round(number: number, criticalValue: number): number; | ||
/** | ||
* 将数字格式化为三位阶 | ||
* @param number - 需要格式化的数字 | ||
* @param segment - 分隔的位数,默认为 3 | ||
* @param separator - 分隔的符号,默认为 ',' | ||
* 将给定的数字格式化为三位阶 | ||
* | ||
* @param number 需要格式化的数字 | ||
* @param segment 分隔的位数,默认为 3 | ||
* @param separator 分隔的符号,默认为 ',' | ||
*/ | ||
@@ -715,4 +1002,5 @@ export declare function segmentNumber(number: number | string, segment?: number, separator?: string): string; | ||
* 根据依赖的属性逐层排序 | ||
* @param list - 需要排序的数组 | ||
* @param props - 排序依赖的属性 key-属性名 method-排序方法 accessor-数据获取方法 type-升降序 | ||
* | ||
* @param list 需要排序的数组 | ||
* @param props 排序依赖的属性 key-属性名 method-排序方法 accessor-数据获取方法 type-升降序 | ||
*/ | ||
@@ -729,23 +1017,50 @@ export declare function sortByProps<T = any>(list: T[], props: keyof T | SortOptions<keyof T> | (keyof T | SortOptions<keyof T>)[]): T[]; | ||
/** | ||
* 获取给定的日期所在天的开始日期 | ||
* | ||
* @param date 原始日期 | ||
*/ | ||
export declare function startOfDay(date: Dateable): Date; | ||
/** | ||
* 获取给定的日期所在小时的开始日期 (分钟归零) | ||
* | ||
* @param date 原始日期 | ||
*/ | ||
export declare function startOfHour(date: Dateable): Date; | ||
/** | ||
* 获取给定的日期所在分钟的开始日期 (秒归零) | ||
* | ||
* @param date 原始日期 | ||
*/ | ||
export declare function startOfMinute(date: Dateable): Date; | ||
/** | ||
* 获取当前时间所属月的第一天 | ||
* @param date - 需要解析的时间 | ||
* @param startOn - 设定一个月的第一天 | ||
* 获取给定的日期所在月份的第一天的开始日期 | ||
* | ||
* @param date 原始日期 | ||
* @param startOn 设定一个月的第一天,默认为 1 号 | ||
*/ | ||
export declare function startOfMonth(date: Dateable, startOn?: number): Date; | ||
/** | ||
* 获取给定日期所在季度的第一天的开始日期 | ||
* | ||
* @param date 原始日期 | ||
*/ | ||
export declare function startOfQuarter(date: Dateable): Date; | ||
/** | ||
* 获取给定的日期所在秒的开始日期(毫秒归零) | ||
* | ||
* @param date 原始日期 | ||
*/ | ||
export declare function startOfSecond(date: Dateable): Date; | ||
/** | ||
* 获取当前时间所属周的第一天 | ||
* @param date - 需要解析的时间 | ||
* @param startOn - 设定周的第一天 | ||
* 获取给定的日期所在周的第一天的开始日期 | ||
* | ||
* @param date 需要解析的时间 | ||
* @param startOn 设定周的第一天,默认为周日 | ||
*/ | ||
@@ -755,5 +1070,6 @@ export declare function startOfWeek(date: Dateable, startOn?: number): Date; | ||
/** | ||
* 获取当前时间所属年的第一天 | ||
* @param date - 需要解析的时间 | ||
* @param startOn - 设定年的开始月份 | ||
* 获取给定日期所在年份的第一天的开始日期 | ||
* | ||
* @param date 原始日期 | ||
* @param startOn 设定年的开始月份,默认为一月 | ||
*/ | ||
@@ -766,6 +1082,5 @@ export declare function startOfYear(date: Dateable, startOn?: number): Date; | ||
* 将一个函数或方法进行节流 | ||
* @param method - 需要节流的方法,需自行绑定 this | ||
* @param delay - 节流后的触发间隔,默认 16 ms (1 帧/秒) | ||
* | ||
* @returns 节流后的函数 | ||
* @param method 需要节流的方法,需自行绑定 this | ||
* @param delay 节流后的触发间隔,默认 16 ms (1 帧/秒) | ||
*/ | ||
@@ -775,4 +1090,12 @@ export declare function throttle<T extends (...args: any[]) => any>(method: T, delay?: number): (...args: Parameters<T>) => void; | ||
/** | ||
* Accurate multiplication. | ||
* | ||
* @param numbers The numbers to multiply | ||
*/ | ||
export declare const times: (...numbers: (number | string)[]) => number; | ||
/** | ||
* 将命名转换为驼峰命名 | ||
* @param value - 需要转换的命名 | ||
* | ||
* @param value 需要转换的命名 | ||
*/ | ||
@@ -783,12 +1106,20 @@ export declare function toCamelCase(value: string): string; | ||
* 将命名转换为全大写命名Capital | ||
* @param value - 需要转换的命名 | ||
* | ||
* @param value 需要转换的命名 | ||
*/ | ||
export declare function toCapitalCase(value: string): string; | ||
/** | ||
* 将任意可转为 Date 的变量转为一个新日期 | ||
* | ||
* @param any 任意可转换的值 | ||
* @param strict 是否在传入非法值时抛错 | ||
*/ | ||
export declare function toDate(any: Dateable, strict?: boolean): Date; | ||
/** | ||
* 讲一个实数保留一定的小数 | ||
* @param number - 需要处理的实数 | ||
* @param decimal - 需要保留的小数 | ||
* 将给定的实数保留一定的小数 | ||
* | ||
* @param number 需要处理的实数 | ||
* @param decimal 需要保留的小数 | ||
*/ | ||
@@ -799,3 +1130,4 @@ export declare function toFixed(number: number, decimal: number): number; | ||
* 将命名转换为短横线命名 | ||
* @param value - 需要转换的命名 | ||
* | ||
* @param value 需要转换的命名 | ||
*/ | ||
@@ -805,7 +1137,18 @@ export declare function toKebabCase(value: string): string; | ||
/** | ||
* 将任意值转成数字,NaN 的情况将会处理成 0 | ||
* @param value - 需要转化的值 | ||
* 将给定的值转成数字,NaN 的情况将会处理成 0 | ||
* | ||
* @param value 需要转化的值 | ||
*/ | ||
export declare function toNumber(value: unknown): number; | ||
/** | ||
* Correct the given number to specifying significant digits. | ||
* | ||
* @param number The input number | ||
* @param precision An integer specifying the number of significant digits | ||
* | ||
* @example toPrecision(0.09999999999999998) === 0.1 // true | ||
*/ | ||
export declare function toPrecision(number: number | string, precision?: number): number; | ||
export declare interface TransferNode extends Node { | ||
@@ -818,5 +1161,6 @@ __transferNode?: Node; | ||
* 根据数组元素中某个或多个属性的值转换为映射 | ||
* @param list - 需要被转换的数组 | ||
* @param prop - 需要被转换的属性或提供一个读取方法 | ||
* @param accessor - 映射的值的读取方法,默认返回元素本身 | ||
* | ||
* @param list 需要被转换的数组 | ||
* @param prop 需要被转换的属性或提供一个读取方法 | ||
* @param accessor 映射的值的读取方法,默认返回元素本身 | ||
*/ | ||
@@ -827,4 +1171,5 @@ export declare function transformListToMap<T = any, K = T>(list: T[], prop: keyof T | ((item: T) => any), accessor?: (item: T) => K): Record<string, K>; | ||
* 转换扁平结构为树形结构 | ||
* @param list - 需要转换的扁平数据 | ||
* @param options - 转化配置项 | ||
* | ||
* @param list 需要转换的扁平数据 | ||
* @param options 转化配置项 | ||
*/ | ||
@@ -831,0 +1176,0 @@ export declare function transformTree<T = any>(list: T[], options?: TreeOptions<keyof T>): T[]; |
@@ -354,4 +354,3 @@ var __defProp = Object.defineProperty; | ||
s: boundRange$1(isPercentage(s) ? parsePercentage(s) : s, 0, 1), | ||
l: boundRange$1(isPercentage(l) ? parsePercentage(l) : l, 0, 1), | ||
toString: toHslString | ||
l: boundRange$1(isPercentage(l) ? parsePercentage(l) : l, 0, 1) | ||
}; | ||
@@ -363,4 +362,3 @@ } | ||
g: boundRange$1(g, 0, 255) / 255, | ||
b: boundRange$1(b, 0, 255) / 255, | ||
toString: toRgbString | ||
b: boundRange$1(b, 0, 255) / 255 | ||
}; | ||
@@ -372,8 +370,7 @@ } | ||
s: boundRange$1(isPercentage(s) ? parsePercentage(s) : s, 0, 1), | ||
v: boundRange$1(isPercentage(v) ? parsePercentage(v) : v, 0, 1), | ||
toString: toHsvString | ||
v: boundRange$1(isPercentage(v) ? parsePercentage(v) : v, 0, 1) | ||
}; | ||
} | ||
function normalizeAlpha(a) { | ||
return boundRange$1(a, 0, 1); | ||
return boundRange$1(isPercentage(a) ? parsePercentage(a) : a, 0, 1); | ||
} | ||
@@ -772,8 +769,10 @@ function hslToRgb(h, s, l) { | ||
const nums = snum.replace(".", "").split(""); | ||
const datum = nums[pointPos + decimal]; | ||
const targetPos = pointPos + decimal; | ||
const datum = nums[targetPos]; | ||
if (!datum) | ||
return number; | ||
const length = snum.length; | ||
if (snum.charAt(length - 1) === "5") { | ||
snum = snum.substring(0, length - 1) + "6"; | ||
if (snum.charAt(targetPos + 1) === "5") { | ||
snum = snum.substring(0, targetPos + 1) + "6"; | ||
} else { | ||
snum = snum.substring(0, targetPos + 2); | ||
} | ||
@@ -835,2 +834,47 @@ return parseFloat(Number(snum).toFixed(decimal)); | ||
} | ||
function digitLength(number) { | ||
const eSplit = number.toString().split(/[eE]/); | ||
const len = (eSplit[0].split(".")[1] || "").length - +(eSplit[1] || 0); | ||
return len > 0 ? len : 0; | ||
} | ||
function toPrecision(number, precision = 15) { | ||
return +parseFloat(Number(number).toPrecision(precision)); | ||
} | ||
function multipleInt(number) { | ||
const snum = String(number); | ||
if (!snum.includes("e")) { | ||
return Number(snum.replace(".", "")); | ||
} | ||
const dLength = digitLength(number); | ||
return dLength > 0 ? toPrecision(Number(number) * 10 ** dLength) : Number(number); | ||
} | ||
function createOperation(operation) { | ||
return (...numbers) => { | ||
let result = numbers[0]; | ||
for (let i = 1, len = numbers.length; i < len; ++i) { | ||
result = operation(result, numbers[i]); | ||
} | ||
return result; | ||
}; | ||
} | ||
const times = createOperation((number1, number2) => { | ||
const int1 = multipleInt(number1); | ||
const int2 = multipleInt(number2); | ||
const base = digitLength(number1) + digitLength(number2); | ||
const int = int1 * int2; | ||
return int / 10 ** base; | ||
}); | ||
const plus = createOperation((number1, number2) => { | ||
const base = 10 ** Math.max(digitLength(number1), digitLength(number2)); | ||
return (times(number1, base) + times(number2, base)) / base; | ||
}); | ||
const minus = createOperation((number1, number2) => { | ||
const base = 10 ** Math.max(digitLength(number1), digitLength(number2)); | ||
return (times(number1, base) - times(number2, base)) / base; | ||
}); | ||
const divide = createOperation((number1, number2) => { | ||
const int1 = multipleInt(number1); | ||
const int2 = multipleInt(number2); | ||
return times(int1 / int2, toPrecision(10 ** (digitLength(number2) - digitLength(number1)))); | ||
}); | ||
const SECOND_ON_MILLS = 1e3; | ||
@@ -1127,14 +1171,2 @@ const MINUTE_ON_SECONDS = 60; | ||
} | ||
var CompareAscResult = /* @__PURE__ */ ((CompareAscResult2) => { | ||
CompareAscResult2[CompareAscResult2["LESS_THEN"] = -1] = "LESS_THEN"; | ||
CompareAscResult2[CompareAscResult2["EQUAL"] = 0] = "EQUAL"; | ||
CompareAscResult2[CompareAscResult2["GREATER_THEN"] = 1] = "GREATER_THEN"; | ||
return CompareAscResult2; | ||
})(CompareAscResult || {}); | ||
var CompareDescResult = /* @__PURE__ */ ((CompareDescResult2) => { | ||
CompareDescResult2[CompareDescResult2["LESS_THEN"] = 1] = "LESS_THEN"; | ||
CompareDescResult2[CompareDescResult2["EQUAL"] = 0] = "EQUAL"; | ||
CompareDescResult2[CompareDescResult2["GREATER_THEN"] = -1] = "GREATER_THEN"; | ||
return CompareDescResult2; | ||
})(CompareDescResult || {}); | ||
function compareAsc(left, right) { | ||
@@ -1718,2 +1750,2 @@ left = toDate(left); | ||
} | ||
export { CLICK_TYPE, COLOR_NAMES, CompareAscResult, CompareDescResult, DAY_ON_HOURS, DAY_ON_MILLIS, DAY_ON_MINUTES, DAY_ON_SECONDS, HEX_REG_3, HEX_REG_4, HEX_REG_6, HEX_REG_8, HOUR_ON_MILLS, HOUR_ON_MINUTES, HOUR_ON_SECONDS, HSLA_REG, HSL_REG, HSVA_REG, HSV_REG, MINUTE_ON_MILLS, MINUTE_ON_SECONDS, NAMED_COLORS, QUARTER_ON_MONTHS, RGBA_REG, RGB_REG, SECOND_ON_MILLS, USE_TOUCH, WEEK_ON_DAYS, WEEK_ON_HOURS, WEEK_ON_MILLIS, WEEK_ON_MINUTES, WEEK_ON_SECONDS, YEAR_ON_MONTHS, YEAR_ON_QUARTERS, addDays, addHalfDays, addHours, addMilliseconds, addMinutes, addMonths, addQuarters, addSeconds, addWeeks, addYears, adjustAlpha, boundRange, compareAsc, compareDesc, createBITree, createEvent, createEventEmitter, debounce, debounceFrame, debounceMinor, deepClone, destroyObject, differenceDays, differenceFullDays, differenceFullHours, differenceFullMinutes, differenceFullMonths, differenceFullQuarters, differenceFullSeconds, differenceFullWeeks, differenceFullYears, differenceHours, differenceMilliseconds, differenceMinutes, differenceMonths, differenceQuarters, differenceSeconds, differenceWeeks, differenceYears, disconnect, dispatchEvent, doubleDigits, endOfDay, escapeHtml, flatTree, format, formatByteSize, getChineseWeek, getLastSunday, getObservers, getQuarter, getType, groupByProps, has, hslToHsv, hslToRgb, hsvToHsl, hsvToRgb, is, isArray, isBigInt, isBoolean, isColor, isDate, isDefined, isEmpty, isFalse, isFunction, isLeepYear, isMap, isNaN, isNull, isNumber, isObject, isPromise, isRegExp, isSet, isString, isSymbol, isTrue, mergeObjects, mixColor, multipleFixed, nextFrameOnce, nextTickOnce, noop, normalizeAlpha, normalizeHsl, normalizeHsv, normalizeRgb, observe, parseColor, parseColorToRgba, parseStringColor, randomString, range, rangeDate, rangeMonth, removeArrayItem, rgbToHex, rgbToHsl, rgbToHsv, rgbaToHex, round, segmentNumber, sortByProps, startOfDay, startOfHour, startOfMinute, startOfMonth, startOfQuarter, startOfSecond, startOfWeek, startOfYear, supportFlexGap, throttle, toCamelCase, toCapitalCase, toDate, toFixed, toKebabCase, toNumber, transformListToMap, transformTree }; | ||
export { CLICK_TYPE, COLOR_NAMES, DAY_ON_HOURS, DAY_ON_MILLIS, DAY_ON_MINUTES, DAY_ON_SECONDS, HEX_REG_3, HEX_REG_4, HEX_REG_6, HEX_REG_8, HOUR_ON_MILLS, HOUR_ON_MINUTES, HOUR_ON_SECONDS, HSLA_REG, HSL_REG, HSVA_REG, HSV_REG, MINUTE_ON_MILLS, MINUTE_ON_SECONDS, NAMED_COLORS, QUARTER_ON_MONTHS, RGBA_REG, RGB_REG, SECOND_ON_MILLS, USE_TOUCH, WEEK_ON_DAYS, WEEK_ON_HOURS, WEEK_ON_MILLIS, WEEK_ON_MINUTES, WEEK_ON_SECONDS, YEAR_ON_MONTHS, YEAR_ON_QUARTERS, addDays, addHalfDays, addHours, addMilliseconds, addMinutes, addMonths, addQuarters, addSeconds, addWeeks, addYears, adjustAlpha, boundRange, compareAsc, compareDesc, createBITree, createEvent, createEventEmitter, debounce, debounceFrame, debounceMinor, deepClone, destroyObject, differenceDays, differenceFullDays, differenceFullHours, differenceFullMinutes, differenceFullMonths, differenceFullQuarters, differenceFullSeconds, differenceFullWeeks, differenceFullYears, differenceHours, differenceMilliseconds, differenceMinutes, differenceMonths, differenceQuarters, differenceSeconds, differenceWeeks, differenceYears, digitLength, disconnect, dispatchEvent, divide, doubleDigits, endOfDay, escapeHtml, flatTree, format, formatByteSize, getChineseWeek, getLastSunday, getObservers, getQuarter, getType, groupByProps, has, hslToHsv, hslToRgb, hsvToHsl, hsvToRgb, is, isArray, isBigInt, isBoolean, isColor, isDate, isDefined, isEmpty, isFalse, isFunction, isLeepYear, isMap, isNaN, isNull, isNumber, isObject, isPromise, isRegExp, isSet, isString, isSymbol, isTrue, mergeObjects, minus, mixColor, multipleFixed, nextFrameOnce, nextTickOnce, noop, normalizeAlpha, normalizeHsl, normalizeHsv, normalizeRgb, observe, parseColor, parseColorToRgba, parseStringColor, plus, randomString, range, rangeDate, rangeMonth, removeArrayItem, rgbToHex, rgbToHsl, rgbToHsv, rgbaToHex, round, segmentNumber, sortByProps, startOfDay, startOfHour, startOfMinute, startOfMonth, startOfQuarter, startOfSecond, startOfWeek, startOfYear, supportFlexGap, throttle, times, toCamelCase, toCapitalCase, toDate, toFixed, toKebabCase, toNumber, toPrecision, transformListToMap, transformTree }; |
{ | ||
"name": "@vexip-ui/utils", | ||
"version": "1.3.0", | ||
"version": "1.4.0", | ||
"license": "MIT", | ||
@@ -25,3 +25,3 @@ "author": "qmhc", | ||
"typescript": "4.6.4", | ||
"vite": "^2.9.9", | ||
"vite": "^2.9.13", | ||
"vite-plugin-dts": "^1.1.1" | ||
@@ -28,0 +28,0 @@ }, |
87156
2727