ph-utils 0.2.22 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2021 Tenny
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,11 +1,11 @@
1
- ## ph-utils
2
-
3
- 整理了 js 前后端开发(web + nodejs)时常用的一些工具;[详细文档](https://gitee.com/towardly/ph/wikis/Home?sort_id=4035190)
4
-
5
- ### 后端(node server)
6
-
7
- 包含了一些 node 后端开发(web server) 时常用的工具类,包括 `index` 基础工具类(这个类里面的函数同样也适用于前端)、`date` 跟日期相关的工具类、`file` 文件操作相关工具类、`server` 一些只适用于后端的工具(使用了后端的 API 列表)、`validator` 数据验证
8
-
9
- ### 前端(web)
10
-
11
- 包含了一些前端网站开发时常用的工具类,包括 `index` 基础工具类(这个类里面的函数同样也适用于前端)、`date` 跟日期相关的工具类、`dom` 浏览器节点操作相关、`web` 一些只适用于前端相关的工具、`validator` 数据验证
1
+ ## ph-utils
2
+
3
+ 整理了 js 前后端开发(web + nodejs)时常用的一些工具;[详细文档](https://gitee.com/towardly/ph/wikis/Home?sort_id=4035190)
4
+
5
+ ### 后端(node server)
6
+
7
+ 包含了一些 node 后端开发(web server) 时常用的工具类,包括 `index` 基础工具类(这个类里面的函数同样也适用于前端)、`date` 跟日期相关的工具类、`file` 文件操作相关工具类、`server` 一些只适用于后端的工具(使用了后端的 API 列表)、`validator` 数据验证
8
+
9
+ ### 前端(web)
10
+
11
+ 包含了一些前端网站开发时常用的工具类,包括 `index` 基础工具类(这个类里面的函数同样也适用于前端)、`date` 跟日期相关的工具类、`dom` 浏览器节点操作相关、`web` 一些只适用于前端相关的工具、`validator` 数据验证
package/lib/date.d.ts CHANGED
@@ -1,34 +1,55 @@
1
- /**
2
- * 将日期格式化为指定形式的字符串
3
- * @param date 日期
4
- * @param pattern 格式化字符串 yyyy - 年, mm - 月, dd - 日, HH - 小时, MM - 分钟, ss - 秒
5
- */
6
- export declare function format(date?: Date | string | number, pattern?: string): string;
7
- /**
8
- * 将指定的参数解析为日期对象(Date)
9
- * 参考 dayjs 实现, 也可以参考 https://github.com/nomiddlename/date-format
10
- * @param date 待解析的日期参数
11
- */
12
- export declare function parse(date?: Date | string | number): Date;
13
- /**
14
- * 设置日期的开始或者结束的点
15
- * @param {Object} date 日期,能够被 parse 解析的日期
16
- * @param {String} unit 单位,H Hours, 默认为 H
17
- * @param {Boolean} isEnd true则为 endOf
18
- */
19
- export declare function startOf(date?: Date | string | number, unit?: string, isEnd?: boolean): Date;
20
- /**
21
- * 日期加上指定时间后的日期
22
- * @param date 指定的日期
23
- * @param num 需要添加的数字, 如果这个参数传递一个小于0的数字,则就是日期减去相应的数字
24
- * @param unit 需要添加的单位,date - 加减天数
25
- */
26
- export declare function add(date: Date | string | number | null, num: number, unit: string): Date;
27
- /**
28
- * 日期加上指定时间后的日期
29
- * @param date 指定的日期, 传递为 null ,则表示为当前日期
30
- * @param num 需要添加的数字, 如果这个参数传递一个小于0的数字,则就是日期减去相应的数字
31
- * @param unit 需要添加的单位,date - 加减天数
32
- * @param fmt 如果传递了格式化的单位,则返回格式化后的日期, 格式化字符串 yyyy - 年, mm - 月, dd - 日, HH - 小时, MM - 分钟, ss - 秒
33
- */
34
- export declare function add(date: Date | string | number | null, num: number, unit: string, fmt: string): string;
1
+ /**
2
+ * 将日期格式化为指定形式的字符串
3
+ * @param date 日期
4
+ * @param pattern 格式化字符串 yyyy - 年, mm - 月, dd - 日, HH - 小时, MM - 分钟, ss - 秒
5
+ */
6
+ export declare function format(date?: Date | string | number, pattern?: string): string;
7
+ /**
8
+ * 将指定的参数解析为日期对象(Date)
9
+ * 参考 dayjs 实现, 也可以参考 https://github.com/nomiddlename/date-format
10
+ * @param date 待解析的日期参数
11
+ */
12
+ export declare function parse(date?: Date | string | number): Date;
13
+ /**
14
+ * 设置日期的开始或者结束的点
15
+ * @param {Object} date 日期,能够被 parse 解析的日期
16
+ * @param {String} unit 单位,Date|date, 默认为 Date
17
+ * @param {Boolean} isEnd true则为 endOf
18
+ */
19
+ export declare function dateOf(date?: Date | string | number, unit?: string, isEnd?: boolean): Date;
20
+ /**
21
+ * 设置日期的开始的点
22
+ * @param date 日期,能够被 parse 解析的日期
23
+ * @param unit 单位,Date|date, 默认为 Date
24
+ * @returns
25
+ */
26
+ export declare function startOf(date?: Date | string | number, unit?: string): Date;
27
+ /**
28
+ * 设置日期的结束点
29
+ * @param date 日期,能够被 parse 解析的日期
30
+ * @param unit 单位,Date|date, 默认为 Date
31
+ * @returns
32
+ */
33
+ export declare function endOf(date?: Date | string | number, unit?: string): Date;
34
+ /**
35
+ * 获取时间戳
36
+ * @param ctime 时间
37
+ * @param unit 时间戳长度
38
+ * @returns
39
+ */
40
+ export declare function timeStamp(ctime?: Date | string | number, unit?: 's' | 'ms'): number;
41
+ /**
42
+ * 日期加上指定时间后的日期
43
+ * @param date 指定的日期
44
+ * @param num 需要添加的数字, 如果这个参数传递一个小于0的数字,则就是日期减去相应的数字
45
+ * @param unit 需要添加的单位,date - 加减天数
46
+ */
47
+ export declare function add(date: Date | string | number | null, num: number, unit: string): Date;
48
+ /**
49
+ * 日期加上指定时间后的日期
50
+ * @param date 指定的日期, 传递为 null ,则表示为当前日期
51
+ * @param num 需要添加的数字, 如果这个参数传递一个小于0的数字,则就是日期减去相应的数字
52
+ * @param unit 需要添加的单位,date - 加减天数
53
+ * @param fmt 如果传递了格式化的单位,则返回格式化后的日期, 格式化字符串 yyyy - 年, mm - 月, dd - 日, HH - 小时, MM - 分钟, ss - 秒
54
+ */
55
+ export declare function add(date: Date | string | number | null, num: number, unit: string, fmt: string): string;
package/lib/date.js CHANGED
@@ -1,126 +1,203 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.add = exports.startOf = exports.parse = exports.format = void 0;
4
- /**
5
- * node 和 web 端日期处理工具类
6
- */
7
- // 配置日期格式的正则表达式
8
- const REGEX_FORMAT = /yy(?:yy)?|([HMmds])\1?/g;
9
- // 由于 Date.parse() 不能正确解析 yyyy-dd-mm 格式的日期, 所以匹配手动解析
10
- const REGEX_PARSE = /^(\d{4})-?(\d{1,2})-?(\d{0,2})[^0-9]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?.?(\d{1,3})?$/;
11
- /**
12
- * 不足位数, 前位补 0
13
- * @param s 日期数字
14
- * @param l 截取位数
15
- * @returns {string} 补0后的日期数字
16
- */
17
- function p(s, l = 2) {
18
- /*
19
- * 由于年份最多为4为,所以前面先添3个0
20
- * slice() 从后开始提前字符串
21
- */
22
- return ('000' + s).slice(l * -1);
23
- }
24
- function getUnit(unit) {
25
- return unit.substring(0, 1).toUpperCase() + unit.substring(1);
26
- }
27
- /**
28
- * 将日期格式化为指定形式的字符串
29
- * @param date 日期
30
- * @param pattern 格式化字符串 yyyy - 年, mm - 月, dd - 日, HH - 小时, MM - 分钟, ss - 秒
31
- */
32
- function format(date, pattern = 'yyyy-mm-dd HH:MM') {
33
- date = parse(date);
34
- let d = date.getDate();
35
- let y = date.getFullYear();
36
- let m = date.getMonth();
37
- let H = date.getHours();
38
- let M = date.getMinutes();
39
- let s = date.getSeconds();
40
- let flags = {
41
- yy: p(y),
42
- yyyy: y,
43
- m: m + 1,
44
- mm: p(m + 1),
45
- d: d,
46
- dd: p(d),
47
- H: H,
48
- HH: p(H),
49
- M: M,
50
- MM: p(M),
51
- s: s,
52
- ss: p(s),
53
- };
54
- if (pattern != null) {
55
- return pattern.replace(REGEX_FORMAT, (flag) => {
56
- if (flag in flags) {
57
- return flags[flag];
58
- }
59
- return flag;
60
- });
61
- }
62
- return String(date.getTime());
63
- }
64
- exports.format = format;
65
- /**
66
- * 将指定的参数解析为日期对象(Date)
67
- * 参考 dayjs 实现, 也可以参考 https://github.com/nomiddlename/date-format
68
- * @param date 待解析的日期参数
69
- */
70
- function parse(date) {
71
- if (date == null)
72
- return new Date();
73
- if (date instanceof Date)
74
- return date;
75
- if (typeof date === 'string' && !/Z$/i.test(date)) {
76
- const d = date.match(REGEX_PARSE);
77
- if (d) {
78
- return new Date(d[1], d[2] - 1, d[3] || 1, d[4] || 0, d[5] || 0, d[6] || 0, d[7] || 0);
79
- }
80
- }
81
- return new Date(date);
82
- }
83
- exports.parse = parse;
84
- /**
85
- * 设置日期的开始或者结束的点
86
- * @param {Object} date 日期,能够被 parse 解析的日期
87
- * @param {String} unit 单位,H Hours, 默认为 H
88
- * @param {Boolean} isEnd true则为 endOf
89
- */
90
- function startOf(date, unit, isEnd = false) {
91
- const argumentStart = [0, 0, 0, 0];
92
- const argumentEnd = [23, 59, 59, 999];
93
- date = parse(date);
94
- let u = getUnit(unit || 'Hours');
95
- let fn = 'set' + u;
96
- let args = isEnd === true ? argumentEnd : argumentStart;
97
- Date.prototype[fn].apply(date, args);
98
- return date;
99
- }
100
- exports.startOf = startOf;
101
- /**
102
- * 日期加上指定时间后的日期
103
- * @param date 指定的日期
104
- * @param num 需要添加的数字, 如果这个参数传递一个小于0的数字,则就是日期减去相应的数字
105
- * @param unit 需要添加的单位,date - 加减天数
106
- * @param fmt 可选参数,如果传递了格式化的单位,则返回格式化后的日期, 格式化字符串 yyyy - 年, mm - 月, dd - 日, HH - 小时, MM - 分钟, ss - 秒
107
- * @returns {Date | string} 如果传递了 fmt 参数,则返回 string,否则返回 Date
108
- */
109
- function add(date, num, unit, fmt) {
110
- let sdate = new Date();
111
- if (date != null) {
112
- sdate = parse(date);
113
- }
114
- unit = getUnit(unit);
115
- let fn = 'set' + unit;
116
- let gn = 'get' + unit;
117
- let oldValue = Date.prototype[gn].apply(sdate);
118
- Date.prototype[fn].apply(sdate, [oldValue + num]);
119
- if (typeof fmt === 'string') {
120
- return format(sdate, fmt);
121
- }
122
- else {
123
- return sdate;
124
- }
125
- }
126
- exports.add = add;
1
+ /**
2
+ * node web 端日期处理工具类
3
+ */
4
+ // 配置日期格式的正则表达式
5
+ const REGEX_FORMAT = /yy(?:yy)?|([HMmds])\1?/g;
6
+ // 由于 Date.parse() 不能正确解析 yyyy-dd-mm 格式的日期, 所以匹配手动解析
7
+ const REGEX_PARSE = /^(\d{4})-?(\d{1,2})-?(\d{0,2})[^0-9]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?.?(\d{1,3})?$/;
8
+ const ofArgs = {
9
+ start: [0, 0, 1, 0, 0, 0, 0],
10
+ end: [0, 11, -2, 23, 59, 59, 999],
11
+ };
12
+ const units = {
13
+ Date: ['date', 'Date', 'day', 'Day', 'D', 'd'],
14
+ Month: ['Month', 'month', 'm'],
15
+ Year: ['Year', 'year', 'y'],
16
+ Hours: ['Hours', 'hours', 'H'],
17
+ Minutes: ['Minutes', 'Minute', 'minute', 'minutes', 'M'],
18
+ Seconds: ['Seconds', 'seconds', 'Second', 'second', 's'],
19
+ Milliseconds: ['Milliseconds', 'Millisecond', 'milliseconds', 'illisecond', 'S'],
20
+ };
21
+ /**
22
+ * 不足位数, 前位补 0
23
+ * @param s 日期数字
24
+ * @param l 截取位数
25
+ * @returns {string} 补0后的日期数字
26
+ */
27
+ function p(s, l = 2) {
28
+ /*
29
+ * 由于年份最多为4为,所以前面先添3个0
30
+ * slice() 从后开始提前字符串
31
+ */
32
+ return ('000' + s).slice(l * -1);
33
+ }
34
+ /**
35
+ * 将单位转换为首字母大写, 例如:hours -> Hours
36
+ * @param unit hours
37
+ * @returns
38
+ */
39
+ function getUnit(unit) {
40
+ let period = null;
41
+ for (let [key, value] of Object.entries(units)) {
42
+ if (value.includes(unit)) {
43
+ period = key;
44
+ break;
45
+ }
46
+ }
47
+ if (period == null) {
48
+ throw new Error(`Invalid unit: ${unit}`);
49
+ }
50
+ return period;
51
+ }
52
+ /**
53
+ * 获取指定日期某个月的最后一天
54
+ * @param date 日期
55
+ * @param month 月份, 如果不传, 则当前月的最后一天
56
+ * @returns
57
+ */
58
+ function getLastDayOfYear(date, month) {
59
+ // 获取下个月的第一天
60
+ const lastDate = new Date(date.getFullYear(), (month || date.getMonth()) + 1, 1);
61
+ // 将下个月的第一天的日期减去一天,得到当前月的最后一天
62
+ lastDate.setDate(lastDate.getDate() - 1);
63
+ // 返回最后一天的日期
64
+ return lastDate.getDate();
65
+ }
66
+ /**
67
+ * 将日期格式化为指定形式的字符串
68
+ * @param date 日期
69
+ * @param pattern 格式化字符串 yyyy - 年, mm - 月, dd - 日, HH - 小时, MM - 分钟, ss - 秒
70
+ */
71
+ export function format(date, pattern = 'yyyy-mm-dd HH:MM') {
72
+ // eslint-disable-next-line
73
+ date = parse(date);
74
+ let d = date.getDate();
75
+ let y = date.getFullYear();
76
+ let m = date.getMonth();
77
+ let H = date.getHours();
78
+ let M = date.getMinutes();
79
+ let s = date.getSeconds();
80
+ let flags = {
81
+ yy: p(y),
82
+ yyyy: y,
83
+ m: m + 1,
84
+ mm: p(m + 1),
85
+ d: d,
86
+ dd: p(d),
87
+ H: H,
88
+ HH: p(H),
89
+ M: M,
90
+ MM: p(M),
91
+ s: s,
92
+ ss: p(s),
93
+ };
94
+ if (pattern != null) {
95
+ return pattern.replace(REGEX_FORMAT, (flag) => {
96
+ if (flag in flags) {
97
+ return flags[flag];
98
+ }
99
+ return flag;
100
+ });
101
+ }
102
+ return String(date.getTime());
103
+ }
104
+ /**
105
+ * 将指定的参数解析为日期对象(Date)
106
+ * 参考 dayjs 实现, 也可以参考 https://github.com/nomiddlename/date-format
107
+ * @param date 待解析的日期参数
108
+ */
109
+ export function parse(date) {
110
+ if (date == null)
111
+ return new Date();
112
+ if (date instanceof Date)
113
+ return date;
114
+ if (typeof date === 'string' && !/Z$/i.test(date)) {
115
+ const d = date.match(REGEX_PARSE);
116
+ if (d) {
117
+ return new Date(d[1], d[2] - 1, d[3] || 1, d[4] || 0, d[5] || 0, d[6] || 0, d[7] || 0);
118
+ }
119
+ }
120
+ if (typeof date === 'number') {
121
+ return new Date(date <= 9999999999 ? date * 1000 : date);
122
+ }
123
+ return new Date();
124
+ }
125
+ /**
126
+ * 设置日期的开始或者结束的点
127
+ * @param {Object} date 日期,能够被 parse 解析的日期
128
+ * @param {String} unit 单位,Date|date, 默认为 Date
129
+ * @param {Boolean} isEnd true则为 endOf
130
+ */
131
+ export function dateOf(date, unit, isEnd = false) {
132
+ /* 如果是设置某一天的开始时刻, 就需要将时、分、秒、毫秒设置为0,依次类推设置 */
133
+ const periods = ['Year', 'Month', 'Date', 'Hours', 'Minutes', 'Seconds', 'Milliseconds'];
134
+ let index = periods.indexOf(getUnit(unit || 'Date'));
135
+ const clone = parse(date);
136
+ index++;
137
+ const setValues = ofArgs[isEnd === true ? 'end' : 'start'];
138
+ for (const len = periods.length; index < len; index++) {
139
+ let value = setValues[index];
140
+ if (value === -2) {
141
+ // 设置为某个月的最后一天的日期
142
+ value = getLastDayOfYear(clone);
143
+ }
144
+ Date.prototype['set' + periods[index]].apply(clone, [setValues[index]]);
145
+ }
146
+ return clone;
147
+ }
148
+ /**
149
+ * 设置日期的开始的点
150
+ * @param date 日期,能够被 parse 解析的日期
151
+ * @param unit 单位,Date|date, 默认为 Date
152
+ * @returns
153
+ */
154
+ export function startOf(date, unit) {
155
+ return dateOf(date, unit);
156
+ }
157
+ /**
158
+ * 设置日期的结束点
159
+ * @param date 日期,能够被 parse 解析的日期
160
+ * @param unit 单位,Date|date, 默认为 Date
161
+ * @returns
162
+ */
163
+ export function endOf(date, unit) {
164
+ return dateOf(date, unit, true);
165
+ }
166
+ /**
167
+ * 获取时间戳
168
+ * @param ctime 时间
169
+ * @param unit 时间戳长度
170
+ * @returns
171
+ */
172
+ export function timeStamp(ctime, unit = 's') {
173
+ let tm = parse(ctime).getTime();
174
+ return unit === 's' ? Math.floor(tm / 1000) : tm;
175
+ }
176
+ /**
177
+ * 日期加上指定时间后的日期
178
+ * @param date 指定的日期
179
+ * @param num 需要添加的数字, 如果这个参数传递一个小于0的数字,则就是日期减去相应的数字
180
+ * @param unit 需要添加的单位,date - 加减天数
181
+ * @param fmt 可选参数,如果传递了格式化的单位,则返回格式化后的日期, 格式化字符串 yyyy - 年, mm - 月, dd - 日, HH - 小时, MM - 分钟, ss - 秒
182
+ * @returns {Date | string} 如果传递了 fmt 参数,则返回 string,否则返回 Date
183
+ */
184
+ export function add(date, num, unit, fmt) {
185
+ let sdate = new Date();
186
+ if (date != null) {
187
+ sdate = parse(date);
188
+ }
189
+ // eslint-disable-next-line
190
+ unit = getUnit(unit);
191
+ let fn = 'set' + unit;
192
+ let gn = 'get' + unit;
193
+ // @ts-ignore
194
+ let oldValue = Date.prototype[gn].apply(sdate);
195
+ // @ts-ignore
196
+ Date.prototype[fn].apply(sdate, [oldValue + num]);
197
+ if (typeof fmt === 'string') {
198
+ return format(sdate, fmt);
199
+ }
200
+ else {
201
+ return sdate;
202
+ }
203
+ }
package/lib/dom.d.ts CHANGED
@@ -1,92 +1,92 @@
1
- /**
2
- * 根据选择器获取节点
3
- * @param {string} selector 选择器
4
- */
5
- export declare function elem(selector: string | HTMLElement, dom?: HTMLElement): NodeListOf<HTMLElement> | HTMLElement[];
6
- /**
7
- * 为节点添加 class
8
- * @param {HTMLElement} elem 待添加 class 的节点
9
- * @param {string} clazz 需要添加的 class
10
- */
11
- export declare function addClass(elem: HTMLElement, clazz: string): void;
12
- /**
13
- * 节点移除 class
14
- * @param {HTMLElement} elem 待移除 class 的节点
15
- * @param {string} clazz 需要移除的 class
16
- */
17
- export declare function removeClass(elem: HTMLElement, clazz: string): void;
18
- /**
19
- * 判断节点是否包含某个 class
20
- * @param elem 待判断 class 的节点
21
- * @param clazz 待判断的 class
22
- * @returns
23
- */
24
- export declare function hasClass(elem: HTMLElement, clazz: string): boolean;
25
- /**
26
- * 为节点添加 transition 属性,包括浏览器前缀
27
- * @param {HTMLElement} element 需要添加 css Transition 属性的节点
28
- * @param {string} value css transition 值
29
- */
30
- export declare function transition(element: HTMLElement, value: string): void;
31
- /**
32
- * 为节点添加 transform 属性,包括浏览器前缀
33
- * @param {HTMLElement} element 需要添加 css transform 属性的节点
34
- * @param {string} value css transform 值
35
- */
36
- export declare function transform(element: HTMLElement, value: string): void;
37
- /**
38
- * 为节点添加事件处理
39
- * @param {HTMLElement} element 添加事件的节点
40
- * @param {string} listener 事件名称
41
- * @param {function} event 事件处理函数
42
- * @param {boolean} onceOrConfig 是否是只运行一次的处理函数或者配置,其中 eventFlag 为 string,如果配置该项,则表明为委托事件
43
- */
44
- export declare function on<T extends Event>(element: HTMLElement, listener: string, fn: (e: T, target?: HTMLElement, flag?: string) => void, once?: boolean | {
45
- once?: boolean;
46
- eventFlag?: string;
47
- eventStop?: boolean;
48
- }): void;
49
- /**
50
- * 设置或获取节点的 innerHTML 属性
51
- * @param element
52
- * @param htmlstr 可选,如果传递该参数,则表示设置;否则表示获取
53
- * @returns
54
- */
55
- export declare function html(element: HTMLElement, htmlstr?: string): string;
56
- /**
57
- * 设置或获取节点的 textContent 属性
58
- * @param element
59
- * @param textstr 可选,如果传递该参数,则表示设置;否则表示获取
60
- * @returns
61
- */
62
- export declare function text(element: HTMLElement, textstr?: string): string;
63
- /**
64
- * 节点列表遍历
65
- * @param elems
66
- * @param fn 遍历到节点时的回调,回调第一个参数为遍历到的节点,第2个参数为 index;如果回调函数返回 true,则会终止遍历(break)
67
- */
68
- export declare function iterate(elems: NodeList | HTMLElement[], fn: (el: HTMLElement, index: number) => any): void;
69
- /**
70
- * 设置或获取节点 data-* 属性
71
- * @param elem
72
- * @param key data- 后面跟随的值
73
- * @param value 如果传递该值表示获取;否则表示设置
74
- * @returns
75
- */
76
- export declare function attr(elem: HTMLElement, key: string, value?: string): string;
77
- /**
78
- * 获取指定节点的父节点
79
- * @param el
80
- * @returns
81
- */
82
- export declare function parent(el: HTMLElement): HTMLElement;
83
- /**
84
- * 获取隐藏节点的尺寸
85
- * @param {string | HTMLElement} hideNode - The node to hide.
86
- * @param parent - 添加临时节点的父节点,默认为: body.
87
- * @returns The DOMRect of the element.
88
- */
89
- export declare function queryHideNodeSize(hideNode: string | HTMLElement, parent?: HTMLElement): {
90
- width: number;
91
- height: number;
92
- };
1
+ /**
2
+ * 根据选择器获取节点
3
+ * @param {string} selector 选择器
4
+ */
5
+ export declare function elem(selector: string | HTMLElement, dom?: HTMLElement): NodeListOf<HTMLElement> | HTMLElement[];
6
+ /**
7
+ * 为节点添加 class
8
+ * @param {HTMLElement} elem 待添加 class 的节点
9
+ * @param {string} clazz 需要添加的 class
10
+ */
11
+ export declare function addClass(elem: HTMLElement, clazz: string): void;
12
+ /**
13
+ * 节点移除 class
14
+ * @param {HTMLElement} elem 待移除 class 的节点
15
+ * @param {string} clazz 需要移除的 class
16
+ */
17
+ export declare function removeClass(elem: HTMLElement, clazz: string): void;
18
+ /**
19
+ * 判断节点是否包含某个 class
20
+ * @param elem 待判断 class 的节点
21
+ * @param clazz 待判断的 class
22
+ * @returns
23
+ */
24
+ export declare function hasClass(elem: HTMLElement, clazz: string): boolean;
25
+ /**
26
+ * 为节点添加 transition 属性,包括浏览器前缀
27
+ * @param {HTMLElement} element 需要添加 css Transition 属性的节点
28
+ * @param {string} value css transition 值
29
+ */
30
+ export declare function transition(element: HTMLElement, value: string): void;
31
+ /**
32
+ * 为节点添加 transform 属性,包括浏览器前缀
33
+ * @param {HTMLElement} element 需要添加 css transform 属性的节点
34
+ * @param {string} value css transform 值
35
+ */
36
+ export declare function transform(element: HTMLElement, value: string): void;
37
+ /**
38
+ * 为节点添加事件处理
39
+ * @param {HTMLElement} element 添加事件的节点
40
+ * @param {string} listener 事件名称
41
+ * @param {function} event 事件处理函数
42
+ * @param {boolean} onceOrConfig 是否是只运行一次的处理函数或者配置,其中 eventFlag 为 string,如果配置该项,则表明为委托事件
43
+ */
44
+ export declare function on<T extends Event>(element: HTMLElement, listener: string, fn: (e: T, target?: HTMLElement, flag?: string) => void, once?: boolean | {
45
+ once?: boolean;
46
+ eventFlag?: string;
47
+ eventStop?: boolean;
48
+ }): void;
49
+ /**
50
+ * 设置或获取节点的 innerHTML 属性
51
+ * @param element
52
+ * @param htmlstr 可选,如果传递该参数,则表示设置;否则表示获取
53
+ * @returns
54
+ */
55
+ export declare function html(element: HTMLElement, htmlstr?: string): string | undefined;
56
+ /**
57
+ * 设置或获取节点的 textContent 属性
58
+ * @param element
59
+ * @param textstr 可选,如果传递该参数,则表示设置;否则表示获取
60
+ * @returns
61
+ */
62
+ export declare function text(element: HTMLElement, textstr?: string): string | null | undefined;
63
+ /**
64
+ * 节点列表遍历
65
+ * @param elems
66
+ * @param fn 遍历到节点时的回调,回调第一个参数为遍历到的节点,第2个参数为 index;如果回调函数返回 true,则会终止遍历(break)
67
+ */
68
+ export declare function iterate(elems: NodeList | HTMLElement[], fn: (el: HTMLElement, index: number) => any): void;
69
+ /**
70
+ * 设置或获取节点 data-* 属性
71
+ * @param elem
72
+ * @param key data- 后面跟随的值
73
+ * @param value 如果传递该值表示获取;否则表示设置
74
+ * @returns
75
+ */
76
+ export declare function attr(elem: HTMLElement, key: string, value?: string): string | null | undefined;
77
+ /**
78
+ * 获取指定节点的父节点
79
+ * @param el
80
+ * @returns
81
+ */
82
+ export declare function parent(el: HTMLElement): HTMLElement;
83
+ /**
84
+ * 获取隐藏节点的尺寸
85
+ * @param {string | HTMLElement} hideNode - The node to hide.
86
+ * @param parent - 添加临时节点的父节点,默认为: body.
87
+ * @returns The DOMRect of the element.
88
+ */
89
+ export declare function queryHideNodeSize(hideNode: string | HTMLElement, parent?: HTMLElement): {
90
+ width: number;
91
+ height: number;
92
+ };