@opentiny/utils 1.0.0 → 3.22.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -1
- package/dist/after-leave/__tests__/index.test.d.ts +1 -0
- package/dist/after-leave/index.d.ts +25 -0
- package/dist/array/__tests__/index.test.d.ts +1 -0
- package/dist/array/index.d.ts +118 -0
- package/dist/bigInt/__tests__/index.test.d.ts +1 -0
- package/dist/bigInt/index.d.ts +249 -0
- package/dist/calendar/__test__/index.test.d.ts +1 -0
- package/dist/calendar/index.d.ts +96 -0
- package/dist/common/__tests__/index.test.d.ts +1 -0
- package/dist/common/index.d.ts +67 -0
- package/dist/crypt/__tests__/crypt.test.d.ts +1 -0
- package/dist/crypt/index.d.ts +5 -0
- package/dist/dataset/index.d.ts +102 -0
- package/dist/date/__test__/index.test.d.ts +1 -0
- package/dist/date/index.d.ts +95 -0
- package/dist/date-util/fecha.d.ts +14 -0
- package/dist/date-util/index.d.ts +50 -0
- package/dist/debounce/__tests__/debounce.test.d.ts +12 -0
- package/dist/debounce/index.d.ts +26 -0
- package/dist/decimal/__tests__/index.test.d.ts +1 -0
- package/dist/decimal/index.d.ts +92 -0
- package/dist/dom/index.d.ts +159 -0
- package/dist/espace-ctrl/index.d.ts +2 -0
- package/dist/event/index.d.ts +38 -0
- package/dist/fastdom/async.d.ts +12 -0
- package/dist/fastdom/index.d.ts +4 -0
- package/dist/fastdom/sandbox.d.ts +12 -0
- package/dist/fastdom/singleton.d.ts +10 -0
- package/dist/fecha/index.d.ts +13 -0
- package/dist/form/index.d.ts +5 -0
- package/dist/fullscreen/apis.d.ts +21 -0
- package/dist/fullscreen/index.d.ts +3 -0
- package/dist/fullscreen/screenfull.d.ts +22 -0
- package/dist/function/index.d.ts +7 -0
- package/dist/globalConfig/index.d.ts +20 -0
- package/dist/index.d.ts +43 -0
- package/dist/index.es.js +5333 -0
- package/dist/logger/index.d.ts +3 -0
- package/dist/memorize/index.d.ts +22 -0
- package/dist/nanoid/index.d.ts +11 -0
- package/dist/nanoid/nanoid.d.ts +4 -0
- package/dist/object/index.d.ts +137 -0
- package/dist/popup-manager/index.d.ts +42 -0
- package/dist/resize-event/index.d.ts +13 -0
- package/dist/resize-observer/index.d.ts +13 -0
- package/dist/scroll-into-view/index.d.ts +12 -0
- package/dist/scroll-width/index.d.ts +12 -0
- package/dist/string/index.d.ts +376 -0
- package/dist/throttle/index.d.ts +35 -0
- package/dist/touch/index.d.ts +15 -0
- package/dist/touch-emulator/index.d.ts +1 -0
- package/dist/tree-model/index.d.ts +3 -0
- package/dist/tree-model/node.d.ts +58 -0
- package/dist/tree-model/tree-store.d.ts +44 -0
- package/dist/tree-model/util.d.ts +14 -0
- package/dist/type/__tests__/type.test.d.ts +1 -0
- package/dist/type/index.d.ts +212 -0
- package/dist/upload-ajax/index.d.ts +12 -0
- package/dist/validate/__test__/util.test.d.ts +1 -0
- package/dist/validate/index.d.ts +2 -0
- package/dist/validate/messages.d.ts +72 -0
- package/dist/validate/rules/enum.d.ts +12 -0
- package/dist/validate/rules/index.d.ts +15 -0
- package/dist/validate/rules/pattern.d.ts +12 -0
- package/dist/validate/rules/range.d.ts +1 -0
- package/dist/validate/rules/required.d.ts +21 -0
- package/dist/validate/rules/type.d.ts +12 -0
- package/dist/validate/rules/whitespace.d.ts +12 -0
- package/dist/validate/schema.d.ts +22 -0
- package/dist/validate/util.d.ts +80 -0
- package/dist/validate/validations/__test__/date.test.d.ts +12 -0
- package/dist/validate/validations/__test__/integer.test.d.ts +12 -0
- package/dist/validate/validations/__test__/number.test.d.ts +12 -0
- package/dist/validate/validations/__test__/pattern.test.d.ts +1 -0
- package/dist/validate/validations/__test__/required.test.d.ts +1 -0
- package/dist/validate/validations/array.d.ts +30 -0
- package/dist/validate/validations/date.d.ts +29 -0
- package/dist/validate/validations/enum.d.ts +30 -0
- package/dist/validate/validations/float.d.ts +29 -0
- package/dist/validate/validations/index.d.ts +43 -0
- package/dist/validate/validations/integer.d.ts +34 -0
- package/dist/validate/validations/method.d.ts +33 -0
- package/dist/validate/validations/number.d.ts +30 -0
- package/dist/validate/validations/pattern.d.ts +31 -0
- package/dist/validate/validations/required.d.ts +24 -0
- package/dist/validate/validations/string.d.ts +32 -0
- package/dist/validate/validations/type.d.ts +28 -0
- package/dist/xss/__tests__/xss.test.d.ts +1 -0
- package/dist/xss/index.d.ts +16 -0
- package/package.json +11 -6
- package/dist/opentiny-utils.es.js +0 -1011
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2022 - present TinyVue Authors.
|
|
3
|
+
* Copyright (c) 2022 - present Huawei Cloud Computing Technologies Co., Ltd.
|
|
4
|
+
*
|
|
5
|
+
* Use of this source code is governed by an MIT-style license.
|
|
6
|
+
*
|
|
7
|
+
* THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL,
|
|
8
|
+
* BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR
|
|
9
|
+
* A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS.
|
|
10
|
+
*
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* 判断年份是否为闰年。
|
|
14
|
+
*
|
|
15
|
+
* isLeapYear(2017) // false
|
|
16
|
+
* isLeapYear(2000) // true
|
|
17
|
+
*
|
|
18
|
+
* @param {Number} year 年份
|
|
19
|
+
* @returns {Boolean}
|
|
20
|
+
*/
|
|
21
|
+
export declare const isLeapYear: (year: any) => boolean;
|
|
22
|
+
/**
|
|
23
|
+
* 将字符串或数字转换成 Date 类型。
|
|
24
|
+
*
|
|
25
|
+
* toDate('2008/02/02') // new Date(2008, 1, 2)
|
|
26
|
+
* toDate(Date.UTC(2008, 1, 2)) // new Date(Date.UTC(2008, 1, 2))
|
|
27
|
+
* toDate('2008/2/2', 'yyyy/M/d') // new Date(2008, 1, 2)
|
|
28
|
+
* toDate('2008/02') // new Date(2008, 1, 1)
|
|
29
|
+
* toDate('02/2008') // new Date(2008, 1, 1)
|
|
30
|
+
* toDate('2008-02-01T20:08+08:00') // new Date(Date.UTC(2008, 0, 31, 16))
|
|
31
|
+
* toDate('2008-02-01T04:08-08:00') // new Date(Date.UTC(2008, 1, 1, 8))
|
|
32
|
+
*
|
|
33
|
+
* @param {String|Number} value 日期类型字符串或数字
|
|
34
|
+
* @param {String} [dateFormat] 转换格式
|
|
35
|
+
*
|
|
36
|
+
* 当 value 为字符串类型时,如果不提供,则尽可能按常见格式去解析。
|
|
37
|
+
* 常见格式为 yyyy[/-]MM[/-]dd hh:mm:ss.SSS, MM[/-]dd [/-]yyyy hh:mm:ss.SSS 及 ISO8601 时间格式。
|
|
38
|
+
*
|
|
39
|
+
* 如果提供,则按具体格式严格匹配解析,并且年份必须为4位。
|
|
40
|
+
* - yyyy 代表年份
|
|
41
|
+
* - M 或 MM 代表1位或2位的月份
|
|
42
|
+
* - d 或 dd 代表1位或2位的天数
|
|
43
|
+
* - h 或 hh 代表24小时的1位或2位的小时
|
|
44
|
+
* - m 或 mm 代表1位或2位的分钟,
|
|
45
|
+
* - s 或 ss 代表1位或2位的秒
|
|
46
|
+
* - S 或 SS 或 SSS 代表1位或2位或3位的毫秒
|
|
47
|
+
*
|
|
48
|
+
* @param {String} [minDate] 最小时间,默认为 0001-01-01 00:00:00.000
|
|
49
|
+
* @returns {Date}
|
|
50
|
+
*/
|
|
51
|
+
export declare const toDate: (value: any, dateFormat: any, minDate: any) => any;
|
|
52
|
+
/**
|
|
53
|
+
* 将 Date 实例转换成日期字符串
|
|
54
|
+
* @param date - Date 实例或日期字符串
|
|
55
|
+
* @param dateFormat - 转换格式,默认为 'yyyy/MM/dd hh:mm:ss'
|
|
56
|
+
* @param afterFormat - 转换后的格式(仅当date为字符串且有3个参数时有效)
|
|
57
|
+
* @returns 格式化后的日期字符串
|
|
58
|
+
*/
|
|
59
|
+
export declare const format: (date: Date | string, dateFormat?: string) => any;
|
|
60
|
+
/**
|
|
61
|
+
* 将当前操作的时间变更时区,主要用于转换一个其他时区的时间。
|
|
62
|
+
*
|
|
63
|
+
* var date = new Date(2017, 0, 1)
|
|
64
|
+
* getDateWithNewTimezone(date, 0, -2)
|
|
65
|
+
*
|
|
66
|
+
* @param {Date} date Date 实例或日期字符串
|
|
67
|
+
* @param {Number} otz 原时区 -12~13
|
|
68
|
+
* @param {Number} ntz 目标时区 -12~13 默认为当前时区
|
|
69
|
+
* @param {Boolean} TimezoneOffset 时区偏移量
|
|
70
|
+
* @returns {Date}
|
|
71
|
+
*/
|
|
72
|
+
export declare const getDateWithNewTimezone: (date: any, otz: any, ntz: any, timezoneOffset?: number) => Date | undefined;
|
|
73
|
+
/**
|
|
74
|
+
* 按时区将 Date 实例转换成字符串
|
|
75
|
+
* @param date - Date 实例或日期字符串
|
|
76
|
+
* @param dateFormat - 转换格式
|
|
77
|
+
* @param timezone - 时区
|
|
78
|
+
* @returns 格式化的日期字符串
|
|
79
|
+
*/
|
|
80
|
+
export declare const toDateStr: (date: Date | string, dateFormat: string, timezone?: number) => string;
|
|
81
|
+
/**
|
|
82
|
+
* 获取日期所在周的第一天,默认周一为第一天(可扩展周日为第一天)。
|
|
83
|
+
*
|
|
84
|
+
* getWeekOfFirstDay() // 返回当前日期所在周的周一同一时间
|
|
85
|
+
* getWeekOfFirstDay(true) // 返回当前日期所在周的周日同一时间
|
|
86
|
+
* getWeekOfFirstDay(new Date(2019, 8, 5)) // new Date(2019, 8, 2)
|
|
87
|
+
* getWeekOfFirstDay(new Date(2019, 8, 5)), true) // new Date(2019, 8, 1)
|
|
88
|
+
*
|
|
89
|
+
* @param {Date} [date=new Date()] date 日期实例,默认当天
|
|
90
|
+
* @param {Boolean} [isSunFirst] 是否设置周日为第一天,非必填
|
|
91
|
+
* @returns {Date}
|
|
92
|
+
*/
|
|
93
|
+
export declare const getWeekOfFirstDay: (date: any, isSunFirst: any) => Date;
|
|
94
|
+
export declare const getLocalTimezone: () => number;
|
|
95
|
+
export declare const getStrTimezone: (value: any) => any;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2022 - present TinyVue Authors.
|
|
3
|
+
* Copyright (c) 2022 - present Huawei Cloud Computing Technologies Co., Ltd.
|
|
4
|
+
*
|
|
5
|
+
* Use of this source code is governed by an MIT-style license.
|
|
6
|
+
*
|
|
7
|
+
* THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL,
|
|
8
|
+
* BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR
|
|
9
|
+
* A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS.
|
|
10
|
+
*
|
|
11
|
+
*/
|
|
12
|
+
/** 西班牙语的“日期,日子”,此处为日期辅助对象,其下有i18n,masks,format,parse等辅助方法 */
|
|
13
|
+
declare const fecha: {};
|
|
14
|
+
export { fecha };
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2022 - present TinyVue Authors.
|
|
3
|
+
* Copyright (c) 2022 - present Huawei Cloud Computing Technologies Co., Ltd.
|
|
4
|
+
*
|
|
5
|
+
* Use of this source code is governed by an MIT-style license.
|
|
6
|
+
*
|
|
7
|
+
* THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL,
|
|
8
|
+
* BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR
|
|
9
|
+
* A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS.
|
|
10
|
+
*
|
|
11
|
+
*/
|
|
12
|
+
export declare const getI18nSettings: (t: any) => {
|
|
13
|
+
dayNamesShort: any;
|
|
14
|
+
dayNames: any;
|
|
15
|
+
monthNamesShort: any;
|
|
16
|
+
monthNames: any;
|
|
17
|
+
amPm: string[];
|
|
18
|
+
};
|
|
19
|
+
export declare const isDate: (date: any) => boolean;
|
|
20
|
+
export declare const toDate: (date: any) => Date | null;
|
|
21
|
+
export declare const isDateObject: (val: any) => boolean;
|
|
22
|
+
export declare const formatDate: (date: any, format: any, t: any) => any;
|
|
23
|
+
export declare const parseDate: (string: any, format: any, t: any) => any;
|
|
24
|
+
export declare const getDayCountOfMonth: (year: any, month: any) => 31 | 28 | 30 | 29;
|
|
25
|
+
export declare const getDayCountOfYear: (year: any) => 366 | 365;
|
|
26
|
+
export declare const getFirstDayOfMonth: (date: any) => number;
|
|
27
|
+
export declare const prevDate: (date: any, amount?: number) => Date;
|
|
28
|
+
export declare const nextDate: (date: any, amount?: number) => Date;
|
|
29
|
+
export declare const getStartDateOfMonth: (year: any, month: any, offsetDay?: number) => Date;
|
|
30
|
+
export declare const getWeekNumber: (src: any) => number | null;
|
|
31
|
+
export declare const getRangeHours: (ranges?: never[]) => never[];
|
|
32
|
+
export declare const range: (length: any) => number[];
|
|
33
|
+
export declare const getMonthDays: (date: any) => number[];
|
|
34
|
+
export declare const getPrevMonthLastDays: (date: any, amount: any) => number[];
|
|
35
|
+
export declare const getRangeMinutes: (ranges: any, hour: any) => any[];
|
|
36
|
+
export declare const modifyDate: (date: any, y: any, m: any, d: any) => Date;
|
|
37
|
+
export declare const modifyTime: (date: any, h: any, m: any, s: any) => Date;
|
|
38
|
+
export declare const modifyWithTimeString: (date: any, time: any, t: any) => any;
|
|
39
|
+
export declare const clearTime: (date: any) => Date;
|
|
40
|
+
export declare const clearMilliseconds: (date: any) => Date;
|
|
41
|
+
export declare const limitTimeRange: (date: any, ranges: any, format?: any) => any;
|
|
42
|
+
export declare const timeWithinRange: (date: any, selectableRange: any, format: any) => boolean;
|
|
43
|
+
export declare const changeYearMonthAndClampDate: (date: any, year: any, month: any) => Date;
|
|
44
|
+
export declare const nextMonth: (date: any) => Date;
|
|
45
|
+
export declare const prevMonth: (date: any) => Date;
|
|
46
|
+
export declare const nextYear: (date: any, next?: number) => Date;
|
|
47
|
+
export declare const prevYear: (date: any, prev?: number) => Date;
|
|
48
|
+
export declare const extractTimeFormat: (dateFormat: any) => any;
|
|
49
|
+
export declare const extractDateFormat: (dateFormat: any) => any;
|
|
50
|
+
export declare const validateRangeInOneMonth: (startDate: any, endDate: any) => boolean;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2022 - present TinyVue Authors.
|
|
3
|
+
* Copyright (c) 2022 - present Huawei Cloud Computing Technologies Co., Ltd.
|
|
4
|
+
*
|
|
5
|
+
* Use of this source code is governed by an MIT-style license.
|
|
6
|
+
*
|
|
7
|
+
* THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL,
|
|
8
|
+
* BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR
|
|
9
|
+
* A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS.
|
|
10
|
+
*
|
|
11
|
+
*/
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2022 - present TinyVue Authors.
|
|
3
|
+
* Copyright (c) 2022 - present Huawei Cloud Computing Technologies Co., Ltd.
|
|
4
|
+
*
|
|
5
|
+
* Use of this source code is governed by an MIT-style license.
|
|
6
|
+
*
|
|
7
|
+
* THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL,
|
|
8
|
+
* BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR
|
|
9
|
+
* A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS.
|
|
10
|
+
*
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* 定义带有 _cancel 方法的防抖函数类型
|
|
14
|
+
*/
|
|
15
|
+
export interface DebounceFunction extends Function {
|
|
16
|
+
_cancel?: () => void;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* 防抖函数 - 将多次触发的函数执行延迟到最后一次触发后的指定时间才执行
|
|
20
|
+
*
|
|
21
|
+
* @param {number} delay - 延迟时间(毫秒)
|
|
22
|
+
* @param {boolean | Function} atBegin - 如果为布尔值,指定是否在延迟开始前执行;如果为函数,则作为回调函数
|
|
23
|
+
* @param {Function} [callback] - 需要防抖的回调函数
|
|
24
|
+
* @returns {DebounceFunction} 返回一个经过防抖处理的函数
|
|
25
|
+
*/
|
|
26
|
+
export declare function debounce(delay: number, atBegin: boolean | Function, callback?: Function): DebounceFunction;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { toFixed as roundFixed } from '../bigInt';
|
|
2
|
+
export { roundFixed };
|
|
3
|
+
/**
|
|
4
|
+
* Decimal 类的接口定义
|
|
5
|
+
*/
|
|
6
|
+
interface IDecimal {
|
|
7
|
+
internal: string;
|
|
8
|
+
asInt: {
|
|
9
|
+
value: string | number;
|
|
10
|
+
exp: number;
|
|
11
|
+
};
|
|
12
|
+
add: (target: number | string | IDecimal) => IDecimal;
|
|
13
|
+
sub: (target: number | string | IDecimal) => IDecimal;
|
|
14
|
+
mul: (target: number | string | IDecimal) => IDecimal;
|
|
15
|
+
div: (target: number | string | IDecimal) => IDecimal;
|
|
16
|
+
toString: () => string;
|
|
17
|
+
toNumber: () => number;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Decimal 类,解决 JS 的计算精度问题。
|
|
21
|
+
*
|
|
22
|
+
* // 加法运算 1.1 + 2.2 = 3.3000000000000003
|
|
23
|
+
* Decimal.add(1.1, 2.2).toNumber() // 3.3
|
|
24
|
+
* new Decimal('1.1').add('2.2').toString() // "3.3"
|
|
25
|
+
*
|
|
26
|
+
* // 减法运算 0.3 - 0.1 = 0.19999999999999998
|
|
27
|
+
* Decimal.sub(0.3, 0.1).toNumber() // 0.2
|
|
28
|
+
* new Decimal('0.3').sub('0.1').toString() // "0.2"
|
|
29
|
+
*
|
|
30
|
+
* // 乘法运算 4.01 * 2.01 = 8.060099999999998
|
|
31
|
+
* Decimal.mul(4.01, 2.01).toNumber() // 8.0601
|
|
32
|
+
* new Decimal('4.01').mul('2.01').toString() // "8.0601"
|
|
33
|
+
*
|
|
34
|
+
* // 除法运算 0.3 / 0.1 = 2.9999999999999996
|
|
35
|
+
* Decimal.div(0.3, 0.1).toNumber() // 3
|
|
36
|
+
* new Decimal('0.3').div('0.1').toString() // "3"
|
|
37
|
+
*
|
|
38
|
+
* @param {Number|String|IDecimal} num 数字或字符串代表的数字
|
|
39
|
+
* @returns {IDecimal} Decimal实例
|
|
40
|
+
*/
|
|
41
|
+
export declare function Decimal(this: IDecimal | null | undefined, num: number | string | IDecimal): IDecimal;
|
|
42
|
+
/**
|
|
43
|
+
* 使用定点表示法表示给定数字的字符串,解决 JS 的计算精度问题。
|
|
44
|
+
*
|
|
45
|
+
* toFixed(1.1 + 2.2, 2) // "3.30"
|
|
46
|
+
* toFixed(0.3 - 0.1, 2) // "0.20"
|
|
47
|
+
* toFixed(4.01 * 2.01, 4) // "8.0601"
|
|
48
|
+
* toFixed(0.3 / 0.1, 2) // "3.00"
|
|
49
|
+
* toFixed(0.0001, 2) // "0.00"
|
|
50
|
+
* toFixed(0.0001, 3) // "0.000"
|
|
51
|
+
* toFixed(0.0001, 4) // "0.0001"
|
|
52
|
+
* toFixed(0.0001, 5) // "0.00010"
|
|
53
|
+
* toFixed(-0.0001, 2) // "0.00"
|
|
54
|
+
* toFixed(-0.0001, 3) // "0.000"
|
|
55
|
+
* toFixed(-0.0001, 4) // "-0.0001"
|
|
56
|
+
* toFixed(-0.0001, 5) // "-0.00010"
|
|
57
|
+
*
|
|
58
|
+
* @param {number} num 需精确计算的数字
|
|
59
|
+
* @param {number} [fraction=0] 浮点数的小数部分,默认0位
|
|
60
|
+
* @returns {string} 格式化后的字符串
|
|
61
|
+
*/
|
|
62
|
+
export declare const toFixed: (num: number, fraction?: number) => string;
|
|
63
|
+
/**
|
|
64
|
+
* 格式化数字的接口
|
|
65
|
+
*/
|
|
66
|
+
interface FormatNumberOptions {
|
|
67
|
+
fraction?: number;
|
|
68
|
+
rounding?: string;
|
|
69
|
+
prefix?: string;
|
|
70
|
+
decimalSeparator?: string;
|
|
71
|
+
suffix?: string;
|
|
72
|
+
zeroize?: boolean;
|
|
73
|
+
secondaryGroupSize?: number;
|
|
74
|
+
groupSize?: number;
|
|
75
|
+
groupSeparator?: string;
|
|
76
|
+
fractionGroupSize?: number;
|
|
77
|
+
fractionGroupSeparator?: string;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* 格式化数字
|
|
81
|
+
* @param {number|string} value 要格式化的数值
|
|
82
|
+
* @param {FormatNumberOptions} format 格式化选项
|
|
83
|
+
* @returns {string} 格式化后的字符串
|
|
84
|
+
*/
|
|
85
|
+
export declare const formatNumber: (value: number | string, format?: FormatNumberOptions) => string;
|
|
86
|
+
/**
|
|
87
|
+
* 恢复数字
|
|
88
|
+
* @param {number|string} number 要恢复的数字
|
|
89
|
+
* @param {object} format 格式选项
|
|
90
|
+
* @returns {number} 恢复后的数字
|
|
91
|
+
*/
|
|
92
|
+
export declare const recoverNumber: (number: number | string, format?: FormatNumberOptions) => number;
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2022 - present TinyVue Authors.
|
|
3
|
+
* Copyright (c) 2022 - present Huawei Cloud Computing Technologies Co., Ltd.
|
|
4
|
+
*
|
|
5
|
+
* Use of this source code is governed by an MIT-style license.
|
|
6
|
+
*
|
|
7
|
+
* THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL,
|
|
8
|
+
* BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR
|
|
9
|
+
* A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS.
|
|
10
|
+
*
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* 为元素绑定事件监听器
|
|
14
|
+
* @param el 目标DOM元素
|
|
15
|
+
* @param event 事件名称
|
|
16
|
+
* @param handler 事件处理函数
|
|
17
|
+
* @param options 事件选项,默认为false
|
|
18
|
+
*/
|
|
19
|
+
export declare const on: (el: EventTarget, event: string, handler: (this: HTMLElement, ev: Event) => any, options?: boolean | AddEventListenerOptions) => void;
|
|
20
|
+
/**
|
|
21
|
+
* 移除元素的事件监听器
|
|
22
|
+
* @param el 目标DOM元素
|
|
23
|
+
* @param event 事件名称
|
|
24
|
+
* @param handler 事件处理函数
|
|
25
|
+
* @param options 事件选项,默认为false
|
|
26
|
+
*/
|
|
27
|
+
export declare const off: (el: EventTarget, event: string, handler: (this: HTMLElement, ev: Event) => any, options?: boolean | EventListenerOptions) => void;
|
|
28
|
+
/**
|
|
29
|
+
* 为元素绑定一次性事件,触发后自动移除
|
|
30
|
+
* @param el 目标DOM元素
|
|
31
|
+
* @param event 事件名称
|
|
32
|
+
* @param fn 事件处理函数
|
|
33
|
+
*/
|
|
34
|
+
export declare const once: (el: HTMLElement, event: string, fn: (this: HTMLElement, ev: Event) => any) => void;
|
|
35
|
+
/**
|
|
36
|
+
* 判断元素是否包含指定的类名
|
|
37
|
+
* 只能查询单个类名,且不能有空格
|
|
38
|
+
* @param el 目标DOM元素
|
|
39
|
+
* @param clazz 要检查的类名
|
|
40
|
+
* @returns 如果元素包含该类名则返回true,否则返回false
|
|
41
|
+
*/
|
|
42
|
+
export declare const hasClass: (el: HTMLElement, clazz: string) => boolean;
|
|
43
|
+
/**
|
|
44
|
+
* 为元素添加一个或多个类名
|
|
45
|
+
* clazz允许为用空格分隔的多个类名
|
|
46
|
+
* @param el 目标DOM元素
|
|
47
|
+
* @param clazz 要添加的类名,多个类名用空格分隔
|
|
48
|
+
*/
|
|
49
|
+
export declare const addClass: (el: HTMLElement, clazz?: string) => void;
|
|
50
|
+
/**
|
|
51
|
+
* 从元素移除一个或多个类名
|
|
52
|
+
* clazz允许为用空格分隔的多个类名
|
|
53
|
+
* @param el 目标DOM元素
|
|
54
|
+
* @param clazz 要移除的类名,多个类名用空格分隔
|
|
55
|
+
*/
|
|
56
|
+
export declare const removeClass: (el: HTMLElement, clazz: string) => void;
|
|
57
|
+
/**
|
|
58
|
+
* 获取元素的样式值
|
|
59
|
+
* 优先查找el.style,找不到则调用getComputedStyle(el)
|
|
60
|
+
* @param el 目标DOM元素
|
|
61
|
+
* @param styleName 样式属性名
|
|
62
|
+
* @returns 样式属性值
|
|
63
|
+
*/
|
|
64
|
+
export declare const getStyle: (el: HTMLElement, styleName: string) => string | null | undefined;
|
|
65
|
+
/**
|
|
66
|
+
* 设置元素的样式
|
|
67
|
+
* @param el 目标DOM元素
|
|
68
|
+
* @param name 样式属性名或样式对象。当它是对象时,遍历所有属性;当它是字符串时,需要传入第3个参数value
|
|
69
|
+
* @param value 样式属性值,当name为字符串时使用
|
|
70
|
+
*/
|
|
71
|
+
export declare const setStyle: (el: HTMLElement, name: string | Record<string, any>, value?: any) => void;
|
|
72
|
+
/**
|
|
73
|
+
* 判断元素是否有滚动样式
|
|
74
|
+
* @param el 目标DOM元素
|
|
75
|
+
* @param vertical true时只判断overflow-y属性;false时只判断overflow-x属性;不传入时只判断overflow属性
|
|
76
|
+
* @returns 如果元素有滚动样式则返回匹配结果,否则返回null或undefined
|
|
77
|
+
*/
|
|
78
|
+
export declare const isScroll: (el: HTMLElement, vertical?: boolean) => RegExpMatchArray | null | undefined;
|
|
79
|
+
/**
|
|
80
|
+
* 查找离元素最近的可滚动父元素
|
|
81
|
+
* @param el 目标DOM元素
|
|
82
|
+
* @param vertical true时只判断overflow-y属性;false时只判断overflow-x属性;不传入时只判断overflow属性
|
|
83
|
+
* @returns 最近的可滚动父元素,如果没有则返回元素自身
|
|
84
|
+
*/
|
|
85
|
+
export declare const getScrollContainer: (el: HTMLElement, vertical?: boolean) => Window | HTMLElement | undefined;
|
|
86
|
+
/**
|
|
87
|
+
* 判断元素是否完全在容器内部
|
|
88
|
+
* 四个边有重合都不行,必须完全在里面
|
|
89
|
+
* @param el 目标DOM元素
|
|
90
|
+
* @param container 容器元素
|
|
91
|
+
* @returns 如果元素完全在容器内部则返回true,否则返回false
|
|
92
|
+
*/
|
|
93
|
+
export declare const isInContainer: (el: HTMLElement, container: HTMLElement) => boolean;
|
|
94
|
+
/**
|
|
95
|
+
* 获取页面的位置和尺寸信息
|
|
96
|
+
* @returns 包含滚动位置和可视区域尺寸的对象
|
|
97
|
+
* - scrollTop: document或body的垂直滚动位置
|
|
98
|
+
* - scrollLeft: document或body的水平滚动位置
|
|
99
|
+
* - visibleHeight: 可视区高度(不含滚动条)
|
|
100
|
+
* - visibleWidth: 可视区宽度(不含滚动条)
|
|
101
|
+
*/
|
|
102
|
+
export declare const getDomNode: () => {
|
|
103
|
+
scrollTop: number;
|
|
104
|
+
scrollLeft: number;
|
|
105
|
+
visibleHeight: number;
|
|
106
|
+
visibleWidth: number;
|
|
107
|
+
};
|
|
108
|
+
/**
|
|
109
|
+
* 获取元素的垂直滚动位置
|
|
110
|
+
* 处理iOS滚动反弹导致的负scrollTop值
|
|
111
|
+
* @param el 目标DOM元素
|
|
112
|
+
* @returns 元素的垂直滚动位置,最小为0
|
|
113
|
+
*/
|
|
114
|
+
export declare const getScrollTop: (el: HTMLElement | Window) => number;
|
|
115
|
+
/**
|
|
116
|
+
* 阻止事件冒泡
|
|
117
|
+
* @param event 事件对象
|
|
118
|
+
*/
|
|
119
|
+
export declare const stopPropagation: (event: Event) => void;
|
|
120
|
+
/**
|
|
121
|
+
* 阻止事件默认行为
|
|
122
|
+
* @param event 事件对象
|
|
123
|
+
* @param isStopPropagation 是否同时阻止事件冒泡
|
|
124
|
+
*/
|
|
125
|
+
export declare const preventDefault: (event: Event, isStopPropagation?: boolean) => void;
|
|
126
|
+
/**
|
|
127
|
+
* 获取元素的可滚动父元素
|
|
128
|
+
* @param el 目标DOM元素
|
|
129
|
+
* @param root 根元素,默认为window
|
|
130
|
+
* @returns 可滚动的父元素,如果没有则返回root
|
|
131
|
+
*/
|
|
132
|
+
export declare const getScrollParent: (el: HTMLElement, root?: Window | HTMLElement | undefined) => Window | HTMLElement | null;
|
|
133
|
+
interface Hooks {
|
|
134
|
+
onMounted: (callback: () => void) => void;
|
|
135
|
+
ref: <T>() => {
|
|
136
|
+
value?: T;
|
|
137
|
+
};
|
|
138
|
+
watch: <T>(source: {
|
|
139
|
+
value?: T;
|
|
140
|
+
}, callback: () => void) => void;
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* 创建一个用于获取元素可滚动父元素的组合式函数
|
|
144
|
+
* @param hooks 包含onMounted、ref和watch的对象
|
|
145
|
+
* @returns 返回一个函数,该函数接收元素引用和根元素,返回可滚动父元素的ref
|
|
146
|
+
*/
|
|
147
|
+
export declare const useScrollParent: ({ onMounted, ref, watch }: Hooks) => <T extends HTMLElement>(elRef: {
|
|
148
|
+
value?: T | undefined;
|
|
149
|
+
}, root?: Window | HTMLElement | undefined) => {
|
|
150
|
+
value?: Window | HTMLElement | null | undefined;
|
|
151
|
+
};
|
|
152
|
+
/**
|
|
153
|
+
* 判断元素是否处于隐藏状态
|
|
154
|
+
* 递归检查元素及其父元素的display和position属性
|
|
155
|
+
* @param elm 目标DOM元素
|
|
156
|
+
* @returns 如果元素处于隐藏状态则返回true,否则返回false
|
|
157
|
+
*/
|
|
158
|
+
export declare const isDisplayNone: (elm: HTMLElement | null) => boolean;
|
|
159
|
+
export {};
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2022 - present TinyVue Authors.
|
|
3
|
+
* Copyright (c) 2022 - present Huawei Cloud Computing Technologies Co., Ltd.
|
|
4
|
+
*
|
|
5
|
+
* Use of this source code is governed by an MIT-style license.
|
|
6
|
+
*
|
|
7
|
+
* THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL,
|
|
8
|
+
* BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR
|
|
9
|
+
* A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS.
|
|
10
|
+
*
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* 触发事件,并返回是否在事件中执行了 preventDefault 方法,支持事件传递附加参数。
|
|
14
|
+
*
|
|
15
|
+
* // 触发事件,返回 false 则退出
|
|
16
|
+
* if (!emitEvent(emit, 'before', 1)) {
|
|
17
|
+
* return
|
|
18
|
+
* }
|
|
19
|
+
*
|
|
20
|
+
* // @before='before' 定义事件执行的函数
|
|
21
|
+
* function before(event, value) {
|
|
22
|
+
* // value: 1
|
|
23
|
+
* event.preventDefault() // 通知事件宿主停止执行
|
|
24
|
+
* }
|
|
25
|
+
*
|
|
26
|
+
* @param {Function} emit 触发事件的函数
|
|
27
|
+
* @param {String} name 事件的名称
|
|
28
|
+
* @returns {Boolean}
|
|
29
|
+
*/
|
|
30
|
+
export declare const emitEvent: (emit: any, name: any, ...args: any[]) => boolean;
|
|
31
|
+
/**
|
|
32
|
+
* webComponent中,有些事件的target会代理到webComponent根元素上,导致无法获取正确的target
|
|
33
|
+
*
|
|
34
|
+
* @param event 浏览器事件
|
|
35
|
+
* @returns 正确的target
|
|
36
|
+
*/
|
|
37
|
+
export declare const getActualTarget: (e: any) => any;
|
|
38
|
+
export declare const correctTarget: (event: any, target?: EventTarget) => void;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* FastDom
|
|
3
|
+
*
|
|
4
|
+
* Eliminates layout thrashing
|
|
5
|
+
* by batching DOM read/write
|
|
6
|
+
* interactions.
|
|
7
|
+
*
|
|
8
|
+
* @author Wilson Page <wilsonpage@me.com>
|
|
9
|
+
* @author Kornel Lesinski <kornel.lesinski@ft.com>
|
|
10
|
+
*/
|
|
11
|
+
declare const fastdomAsync: any;
|
|
12
|
+
export default fastdomAsync;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* FastDom
|
|
3
|
+
*
|
|
4
|
+
* Eliminates layout thrashing
|
|
5
|
+
* by batching DOM read/write
|
|
6
|
+
* interactions.
|
|
7
|
+
*
|
|
8
|
+
* @author Wilson Page <wilsonpage@me.com>
|
|
9
|
+
* @author Kornel Lesinski <kornel.lesinski@ft.com>
|
|
10
|
+
*/
|
|
11
|
+
declare const fastdomSandbox: any;
|
|
12
|
+
export default fastdomSandbox;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
declare class FastDom {
|
|
2
|
+
constructor();
|
|
3
|
+
runTasks(tasks: any): void;
|
|
4
|
+
measure(fn: any, ctx: any): any;
|
|
5
|
+
mutate(fn: any, ctx: any): any;
|
|
6
|
+
clear(task: any): boolean;
|
|
7
|
+
extend(props: any): any;
|
|
8
|
+
}
|
|
9
|
+
declare const fastdomSingleton: FastDom;
|
|
10
|
+
export default fastdomSingleton;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2022 - present TinyVue Authors.
|
|
3
|
+
* Copyright (c) 2022 - present Huawei Cloud Computing Technologies Co., Ltd.
|
|
4
|
+
*
|
|
5
|
+
* Use of this source code is governed by an MIT-style license.
|
|
6
|
+
*
|
|
7
|
+
* THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL,
|
|
8
|
+
* BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR
|
|
9
|
+
* A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS.
|
|
10
|
+
*
|
|
11
|
+
*/
|
|
12
|
+
declare const fecha: {};
|
|
13
|
+
export { fecha };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2022 - present TinyVue Authors.
|
|
3
|
+
* Copyright (c) 2022 - present Huawei Cloud Computing Technologies Co., Ltd.
|
|
4
|
+
*
|
|
5
|
+
* Use of this source code is governed by an MIT-style license.
|
|
6
|
+
*
|
|
7
|
+
* THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL,
|
|
8
|
+
* BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR
|
|
9
|
+
* A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS.
|
|
10
|
+
*
|
|
11
|
+
*/
|
|
12
|
+
declare const api: {
|
|
13
|
+
targetElement: null;
|
|
14
|
+
opts: null;
|
|
15
|
+
isEnabled: any;
|
|
16
|
+
isFullscreen: boolean;
|
|
17
|
+
toggle(target: any, options: any, force: any): Promise<unknown>;
|
|
18
|
+
request(targetEle: any, options: any): Promise<unknown>;
|
|
19
|
+
exit(): Promise<unknown>;
|
|
20
|
+
};
|
|
21
|
+
export default api;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2022 - present TinyVue Authors.
|
|
3
|
+
* Copyright (c) 2022 - present Huawei Cloud Computing Technologies Co., Ltd.
|
|
4
|
+
*
|
|
5
|
+
* Use of this source code is governed by an MIT-style license.
|
|
6
|
+
*
|
|
7
|
+
* THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL,
|
|
8
|
+
* BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR
|
|
9
|
+
* A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS.
|
|
10
|
+
*
|
|
11
|
+
*/
|
|
12
|
+
declare const screenfull: {
|
|
13
|
+
request(element: any, options: any): Promise<unknown>;
|
|
14
|
+
exit(): Promise<unknown>;
|
|
15
|
+
toggle(element: any, options: any): any;
|
|
16
|
+
onchange(callback: any): void;
|
|
17
|
+
onerror(callback: any): void;
|
|
18
|
+
on(event: any, callback: any): void;
|
|
19
|
+
off(event: any, callback: any): void;
|
|
20
|
+
raw: {};
|
|
21
|
+
};
|
|
22
|
+
export default screenfull;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export declare const globalConfig: {
|
|
2
|
+
viewportWindow: null;
|
|
3
|
+
};
|
|
4
|
+
export declare const getViewportWindow: () => Window & typeof globalThis;
|
|
5
|
+
export declare const isServer: boolean;
|
|
6
|
+
/** 分析浏览器的版本信息 */
|
|
7
|
+
export declare const browserInfo: {
|
|
8
|
+
name: string;
|
|
9
|
+
version: number;
|
|
10
|
+
isDoc: boolean;
|
|
11
|
+
isMobile: boolean;
|
|
12
|
+
isPC: boolean;
|
|
13
|
+
isNode: false;
|
|
14
|
+
chrome: boolean;
|
|
15
|
+
ie: boolean;
|
|
16
|
+
firefox: boolean;
|
|
17
|
+
safari: boolean;
|
|
18
|
+
opera: boolean;
|
|
19
|
+
edge: boolean;
|
|
20
|
+
} | null;
|