almighty-tool 0.0.1
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/.babelrc +17 -0
- package/.editorconfig +13 -0
- package/.eslintignore +7 -0
- package/.eslintrc.js +5 -0
- package/.nvmrc +1 -0
- package/.prettierrc.js +1 -0
- package/.yarnrc +12 -0
- package/CHANGELOG.md +7 -0
- package/README.md +11 -0
- package/jest.config.js +1 -0
- package/lib/api/interfaces/api/base.api.d.ts +48 -0
- package/lib/api/interfaces/api/base.api.js +3 -0
- package/lib/api/interfaces/api/base.api.js.map +1 -0
- package/lib/api/interfaces/models/basic.model.d.ts +4 -0
- package/lib/api/interfaces/models/basic.model.js +3 -0
- package/lib/api/interfaces/models/basic.model.js.map +1 -0
- package/lib/api/interfaces/models/pagination.model.d.ts +26 -0
- package/lib/api/interfaces/models/pagination.model.js +3 -0
- package/lib/api/interfaces/models/pagination.model.js.map +1 -0
- package/lib/api/interfaces/types.d.ts +7 -0
- package/lib/api/interfaces/types.js +3 -0
- package/lib/api/interfaces/types.js.map +1 -0
- package/lib/api/models/basic.model.d.ts +7 -0
- package/lib/api/models/basic.model.js +25 -0
- package/lib/api/models/basic.model.js.map +1 -0
- package/lib/api/models/pagination.model.d.ts +35 -0
- package/lib/api/models/pagination.model.js +113 -0
- package/lib/api/models/pagination.model.js.map +1 -0
- package/lib/common/enum-object.d.ts +48 -0
- package/lib/common/enum-object.js +84 -0
- package/lib/common/enum-object.js.map +1 -0
- package/lib/common/general.d.ts +28 -0
- package/lib/common/general.js +173 -0
- package/lib/common/general.js.map +1 -0
- package/lib/common/validator.d.ts +20 -0
- package/lib/common/validator.js +30 -0
- package/lib/common/validator.js.map +1 -0
- package/lib/dayjs/locales/zh-cn.d.ts +40 -0
- package/lib/dayjs/locales/zh-cn.js +73 -0
- package/lib/dayjs/locales/zh-cn.js.map +1 -0
- package/lib/formats/date.format.d.ts +30 -0
- package/lib/formats/date.format.js +78 -0
- package/lib/formats/date.format.js.map +1 -0
- package/lib/interfaces/common/general.d.ts +186 -0
- package/lib/interfaces/common/general.js +28 -0
- package/lib/interfaces/common/general.js.map +1 -0
- package/lib/interfaces/utils/basic-util.d.ts +22 -0
- package/lib/interfaces/utils/basic-util.js +3 -0
- package/lib/interfaces/utils/basic-util.js.map +1 -0
- package/lib/interfaces/utils/date-util.d.ts +12 -0
- package/lib/interfaces/utils/date-util.js +3 -0
- package/lib/interfaces/utils/date-util.js.map +1 -0
- package/lib/interfaces/utils/format-util.d.ts +7 -0
- package/lib/interfaces/utils/format-util.js +3 -0
- package/lib/interfaces/utils/format-util.js.map +1 -0
- package/lib/locales/en/index.d.ts +19 -0
- package/lib/locales/en/index.js +21 -0
- package/lib/locales/en/index.js.map +1 -0
- package/lib/locales/index.d.ts +0 -0
- package/lib/locales/index.js +2 -0
- package/lib/locales/index.js.map +1 -0
- package/lib/locales/zh-cn/index.d.ts +33 -0
- package/lib/locales/zh-cn/index.js +35 -0
- package/lib/locales/zh-cn/index.js.map +1 -0
- package/lib/utils/accurate.util.d.ts +28 -0
- package/lib/utils/accurate.util.js +123 -0
- package/lib/utils/accurate.util.js.map +1 -0
- package/lib/utils/basic.util.d.ts +83 -0
- package/lib/utils/basic.util.js +286 -0
- package/lib/utils/basic.util.js.map +1 -0
- package/lib/utils/crypto.util.d.ts +65 -0
- package/lib/utils/crypto.util.js +151 -0
- package/lib/utils/crypto.util.js.map +1 -0
- package/lib/utils/date.util.d.ts +52 -0
- package/lib/utils/date.util.js +211 -0
- package/lib/utils/date.util.js.map +1 -0
- package/lib/utils/format.util.d.ts +49 -0
- package/lib/utils/format.util.js +98 -0
- package/lib/utils/format.util.js.map +1 -0
- package/lib/utils/locale.util.d.ts +20 -0
- package/lib/utils/locale.util.js +206 -0
- package/lib/utils/locale.util.js.map +1 -0
- package/lib/utils/number.util.d.ts +21 -0
- package/lib/utils/number.util.js +33 -0
- package/lib/utils/number.util.js.map +1 -0
- package/package.json +102 -0
- package/templates/eslints/eggjs.project.js +15 -0
- package/templates/eslints/element-ui.project.js +4 -0
- package/templates/eslints/recommended.js +26 -0
- package/templates/eslints/rules/recommended.js +26 -0
- package/templates/eslints/rules/vue.js +12 -0
- package/templates/eslints/server.project.js +18 -0
- package/templates/eslints/uni-app-v8.project.js +43 -0
- package/templates/eslints/uni-app.project.js +45 -0
- package/templates/eslints/vue.project.js +39 -0
- package/templates/jest/element-ui.project.js +1 -0
- package/templates/jest/recommended.js +19 -0
- package/templates/jest/vue.project.js +44 -0
- package/templates/postcss/recommended.js +4 -0
- package/templates/postcss/uni-app.js +11 -0
- package/templates/prettiers/recommended.js +26 -0
- package/templates/stylelint/recommended.js +42 -0
- package/templates/stylelint/rules/recommended.js +22 -0
- package/templates/stylelint/uni-app.project.js +11 -0
- package/templates/tsconfigs/eggjs.json +31 -0
- package/templates/tsconfigs/element-ui.json +3 -0
- package/templates/tsconfigs/lib.json +15 -0
- package/templates/tsconfigs/quasar.json +25 -0
- package/templates/tsconfigs/recommended.json +43 -0
- package/templates/tsconfigs/server.json +23 -0
- package/templates/tsconfigs/uni-app.json +39 -0
- package/templates/tsconfigs/vue.json +45 -0
- package/templates/tslints/recommended.json +13 -0
- package/tsconfig.json +9 -0
- package/types/index.d.ts +0 -0
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
/**
|
|
4
|
+
* 日期相关的方法封装
|
|
5
|
+
*/
|
|
6
|
+
var dateUtil = {
|
|
7
|
+
/** 是否为闰年 */
|
|
8
|
+
isLeapYear: function (date) {
|
|
9
|
+
return dateUtil.isLeap(date.getFullYear());
|
|
10
|
+
},
|
|
11
|
+
isLeap: function (year) {
|
|
12
|
+
return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;
|
|
13
|
+
},
|
|
14
|
+
/** 是否是一个月的最后一天 */
|
|
15
|
+
isLastDayOfMonth: function (date) {
|
|
16
|
+
var year = date.getFullYear();
|
|
17
|
+
var month = date.getMonth() + 1;
|
|
18
|
+
var day = date.getDate();
|
|
19
|
+
var isLeapYear = dateUtil.isLeap(year);
|
|
20
|
+
switch (month) {
|
|
21
|
+
case 2:
|
|
22
|
+
return (isLeapYear && day === 29) || (!isLeapYear && day === 28);
|
|
23
|
+
case 1:
|
|
24
|
+
case 3:
|
|
25
|
+
case 5:
|
|
26
|
+
case 7:
|
|
27
|
+
case 8:
|
|
28
|
+
case 10:
|
|
29
|
+
case 12:
|
|
30
|
+
return day === 31;
|
|
31
|
+
default:
|
|
32
|
+
return day === 30;
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
/** 获取日期的最后一天 */
|
|
36
|
+
getLastDayOfMonth: function (date) {
|
|
37
|
+
var year = date.getFullYear();
|
|
38
|
+
var month = date.getMonth() + 1;
|
|
39
|
+
var isLeapYear = dateUtil.isLeap(year);
|
|
40
|
+
switch (month) {
|
|
41
|
+
case 2:
|
|
42
|
+
return isLeapYear ? 29 : 28;
|
|
43
|
+
case 1:
|
|
44
|
+
case 3:
|
|
45
|
+
case 5:
|
|
46
|
+
case 7:
|
|
47
|
+
case 8:
|
|
48
|
+
case 10:
|
|
49
|
+
case 12:
|
|
50
|
+
return 31;
|
|
51
|
+
default:
|
|
52
|
+
return 30;
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
/**
|
|
56
|
+
* 时间相减
|
|
57
|
+
*
|
|
58
|
+
* @param date 原始时间
|
|
59
|
+
* @param amount 数量
|
|
60
|
+
* @param unit 单位
|
|
61
|
+
* @param fixMonthDay 是否修复月份里的日期
|
|
62
|
+
*/
|
|
63
|
+
subtract: function (date, amount, unit, fixMonthDay) {
|
|
64
|
+
if (unit === void 0) { unit = 'seconds'; }
|
|
65
|
+
if (fixMonthDay === void 0) { fixMonthDay = true; }
|
|
66
|
+
var value = date.valueOf();
|
|
67
|
+
var newDate;
|
|
68
|
+
var newYear;
|
|
69
|
+
var newMonth;
|
|
70
|
+
var newDay;
|
|
71
|
+
switch (unit) {
|
|
72
|
+
case 'year':
|
|
73
|
+
case 'years':
|
|
74
|
+
case 'y':
|
|
75
|
+
newDate = new Date(value);
|
|
76
|
+
newYear = date.getFullYear() - amount;
|
|
77
|
+
newMonth = newDate.getMonth() + 1;
|
|
78
|
+
newDay = newDate.getDate();
|
|
79
|
+
// 如果是平年的2月29日,则调整为2月28日
|
|
80
|
+
if (!dateUtil.isLeap(newYear) && newMonth === 2 && newDay === 29) {
|
|
81
|
+
newDate.setDate(28);
|
|
82
|
+
}
|
|
83
|
+
newDate.setFullYear(newYear);
|
|
84
|
+
return newDate;
|
|
85
|
+
case 'month':
|
|
86
|
+
case 'months':
|
|
87
|
+
case 'M':
|
|
88
|
+
newDate = new Date(value);
|
|
89
|
+
if (fixMonthDay) {
|
|
90
|
+
var day = newDate.getDate();
|
|
91
|
+
newDate.setDate(1);
|
|
92
|
+
newDate.setFullYear(date.getFullYear() - parseInt("".concat(amount / 12)));
|
|
93
|
+
newDate.setMonth(date.getMonth() - parseInt("".concat(amount % 12)));
|
|
94
|
+
var lastDay = dateUtil.getLastDayOfMonth(newDate);
|
|
95
|
+
if (lastDay < day) {
|
|
96
|
+
newDate.setDate(lastDay);
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
newDate.setDate(day);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
newDate.setFullYear(date.getFullYear() - parseInt("".concat(amount / 12)));
|
|
104
|
+
newDate.setMonth(date.getMonth() - parseInt("".concat(amount % 12)));
|
|
105
|
+
}
|
|
106
|
+
return newDate;
|
|
107
|
+
case 'week':
|
|
108
|
+
case 'weeks':
|
|
109
|
+
case 'w':
|
|
110
|
+
newDate = new Date(value - amount * 3600 * 24 * 1000 * 7);
|
|
111
|
+
return newDate;
|
|
112
|
+
case 'day':
|
|
113
|
+
case 'days':
|
|
114
|
+
case 'd':
|
|
115
|
+
newDate = new Date(value - amount * 3600 * 24 * 1000);
|
|
116
|
+
return newDate;
|
|
117
|
+
case 'hour':
|
|
118
|
+
case 'hours':
|
|
119
|
+
case 'h':
|
|
120
|
+
newDate = new Date(value - amount * 3600 * 1000);
|
|
121
|
+
return newDate;
|
|
122
|
+
case 'minute':
|
|
123
|
+
case 'minutes':
|
|
124
|
+
case 'm':
|
|
125
|
+
newDate = new Date(value - amount * 60 * 1000);
|
|
126
|
+
return newDate;
|
|
127
|
+
case 'second':
|
|
128
|
+
case 'seconds':
|
|
129
|
+
case 's':
|
|
130
|
+
newDate = new Date(value - amount * 1000);
|
|
131
|
+
return newDate;
|
|
132
|
+
case 'millisecond':
|
|
133
|
+
case 'milliseconds':
|
|
134
|
+
case 'ms':
|
|
135
|
+
newDate = new Date(value - amount);
|
|
136
|
+
return newDate;
|
|
137
|
+
default:
|
|
138
|
+
newDate = new Date(value - amount * 1000);
|
|
139
|
+
return newDate;
|
|
140
|
+
}
|
|
141
|
+
},
|
|
142
|
+
/** 加时间 */
|
|
143
|
+
add: function (date, amount, unit) {
|
|
144
|
+
return dateUtil.subtract(date, -amount, unit);
|
|
145
|
+
},
|
|
146
|
+
/**
|
|
147
|
+
* 将字符串解析为Date类型
|
|
148
|
+
*
|
|
149
|
+
* eg.
|
|
150
|
+
*
|
|
151
|
+
* - '2020-02-28T05:29:10.000Z' ← '2020-02-28 13:29:10'
|
|
152
|
+
* - '2020-02-27T16:00:00.000Z' ← '2020-02-28'
|
|
153
|
+
* - '2020-02-27T16:00:00.000Z' ← '2020/02/28'
|
|
154
|
+
* - '2020-02-27T16:00:00.000Z' ← '2020/2/28'
|
|
155
|
+
* - '2020-02-07T16:00:00.000Z' ← '2020/2/8'
|
|
156
|
+
* - '2020-02-27T16:00:00.000Z' ← '2020年02月28日'
|
|
157
|
+
* - '2020-02-28T05:29:10.000Z' ← '2020年02月28日 13:29:10'
|
|
158
|
+
* - '2020-02-28T05:29:10.000Z' ← '2020年02月28日 13:29:10'
|
|
159
|
+
*/
|
|
160
|
+
parse: function (value) {
|
|
161
|
+
if (typeof value === 'object') {
|
|
162
|
+
return value;
|
|
163
|
+
}
|
|
164
|
+
else if (typeof value === 'string' && value) {
|
|
165
|
+
try {
|
|
166
|
+
if (value.includes('T') && value.endsWith('Z')) {
|
|
167
|
+
return new Date(value);
|
|
168
|
+
}
|
|
169
|
+
else {
|
|
170
|
+
return new Date(Date.parse(value
|
|
171
|
+
.replace(/-|年|月/g, '/')
|
|
172
|
+
.replace(/日$/g, '')
|
|
173
|
+
.replace(/日\s+/g, ' ')
|
|
174
|
+
.replace(/\.\d+$/g, '')));
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
catch (error) {
|
|
178
|
+
console.warn("dateUtil.parse(".concat(value, ") fail: "), error);
|
|
179
|
+
return null;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
else {
|
|
183
|
+
return null;
|
|
184
|
+
}
|
|
185
|
+
},
|
|
186
|
+
/**
|
|
187
|
+
* 是否是同一年
|
|
188
|
+
*/
|
|
189
|
+
isSameYear: function (value, value2) {
|
|
190
|
+
if (value2 === void 0) { value2 = new Date(); }
|
|
191
|
+
return value.getFullYear() === value2.getFullYear();
|
|
192
|
+
},
|
|
193
|
+
/**
|
|
194
|
+
* 是否是同一月
|
|
195
|
+
*/
|
|
196
|
+
isSameMonth: function (value, value2) {
|
|
197
|
+
if (value2 === void 0) { value2 = new Date(); }
|
|
198
|
+
return value.getFullYear() === value2.getFullYear() && value.getMonth() === value2.getMonth();
|
|
199
|
+
},
|
|
200
|
+
/**
|
|
201
|
+
* 是否是同一天
|
|
202
|
+
*/
|
|
203
|
+
isSameDate: function (value, value2) {
|
|
204
|
+
if (value2 === void 0) { value2 = new Date(); }
|
|
205
|
+
return (value.getFullYear() === value2.getFullYear() &&
|
|
206
|
+
value.getMonth() === value2.getMonth() &&
|
|
207
|
+
value.getDate() === value2.getDate());
|
|
208
|
+
},
|
|
209
|
+
};
|
|
210
|
+
exports.default = dateUtil;
|
|
211
|
+
//# sourceMappingURL=date.util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"date.util.js","sourceRoot":"","sources":["../../src/utils/date.util.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
export declare const DEFAULT_LOCALE: string;
|
|
2
|
+
export declare type DATETIME_TYPE = 'long' | 'date' | 'shortDate' | 'shortTime' | 'time';
|
|
3
|
+
export declare type DATETIME_LANG = 'en-US' | 'zh-CN';
|
|
4
|
+
/** URL正则 */
|
|
5
|
+
export declare const URL_REG_EXP: RegExp;
|
|
6
|
+
/** 邮箱正则 */
|
|
7
|
+
export declare const EMAIL_REG_EXP: RegExp;
|
|
8
|
+
/** 国内身份证15位正则 */
|
|
9
|
+
export declare const CN_ID_CARD_REG_EXP15: RegExp;
|
|
10
|
+
/** 国内身份证18位正则 */
|
|
11
|
+
export declare const CN_ID_CARD_REG_EXP18: RegExp;
|
|
12
|
+
/** 国内手机号码正则 */
|
|
13
|
+
export declare const CN_MOBILE_PHONE_REG_EXP: RegExp;
|
|
14
|
+
declare const _default: {
|
|
15
|
+
/** 正则表达式清单 */
|
|
16
|
+
regExps: {
|
|
17
|
+
/** 链接 */
|
|
18
|
+
url: RegExp;
|
|
19
|
+
/** 邮箱 */
|
|
20
|
+
email: RegExp;
|
|
21
|
+
/** 身份证15位 */
|
|
22
|
+
cnIdCard15: RegExp;
|
|
23
|
+
/** 身份证18位 */
|
|
24
|
+
cnIdCard18: RegExp;
|
|
25
|
+
/** 国内手机号码正则 */
|
|
26
|
+
cnMobilePhone: RegExp;
|
|
27
|
+
};
|
|
28
|
+
/** 判断是否是手机号码 */
|
|
29
|
+
isMobileNumber(mobileNumber: string, locale?: string): boolean;
|
|
30
|
+
/** 是否是纯数字 */
|
|
31
|
+
isPureNumber(str: string): boolean;
|
|
32
|
+
/**
|
|
33
|
+
* 是否是邮箱格式
|
|
34
|
+
*
|
|
35
|
+
* - 参考:http://emailregex.com/
|
|
36
|
+
*/
|
|
37
|
+
isEmail(str: string): boolean;
|
|
38
|
+
/** 是否是中国大陆的身份证 */
|
|
39
|
+
isChinaIDCard(str: string, type?: 15 | 18): boolean;
|
|
40
|
+
/** 是否是链接 */
|
|
41
|
+
isUrl(str: string): boolean;
|
|
42
|
+
/** 转为中横线命名 */
|
|
43
|
+
toHyphenName(value: string): string;
|
|
44
|
+
/** 转为中横线命名 */
|
|
45
|
+
toHumpName(value: string): string;
|
|
46
|
+
/** 将对象类型的css样式转化为字符串 */
|
|
47
|
+
cssStyleObjectToString(style: Record<string, string>): string;
|
|
48
|
+
};
|
|
49
|
+
export default _default;
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CN_MOBILE_PHONE_REG_EXP = exports.CN_ID_CARD_REG_EXP18 = exports.CN_ID_CARD_REG_EXP15 = exports.EMAIL_REG_EXP = exports.URL_REG_EXP = exports.DEFAULT_LOCALE = void 0;
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
5
|
+
var lodash_1 = (0, tslib_1.__importDefault)(require("lodash"));
|
|
6
|
+
exports.DEFAULT_LOCALE = process.env.DEFAULT_LOCALE || 'zh-CN';
|
|
7
|
+
/** URL正则 */
|
|
8
|
+
exports.URL_REG_EXP = /^(?!mailto:)(?:(?:http|https|ftp):\/\/|\/\/)(?:\S+(?::\S*)?@)?(?:(?:(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[0-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]+-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]+-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})))|localhost)(?::\d{2,5})?(?:(\/|\?|#)[^\s]*)?$/i;
|
|
9
|
+
/** 邮箱正则 */
|
|
10
|
+
exports.EMAIL_REG_EXP = /^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/;
|
|
11
|
+
/** 国内身份证15位正则 */
|
|
12
|
+
exports.CN_ID_CARD_REG_EXP15 = /^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{2}[0-9Xx]$/;
|
|
13
|
+
/** 国内身份证18位正则 */
|
|
14
|
+
exports.CN_ID_CARD_REG_EXP18 = /[1-9]\d{5}(((1[89]|20)\d{2}(((0[13578]|1[0-2])(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)(0[1-9]|[12][0-9]|30))|(02(0[1-9]|[1][0-9]|2[0-8]))))|((((1[89]|20)(0[48]|[2468][048]|[13579][26]))|((19|20)00))0229))\d{3}(\d|X|x)/;
|
|
15
|
+
/** 国内手机号码正则 */
|
|
16
|
+
exports.CN_MOBILE_PHONE_REG_EXP = /^1[3456789]\d{9}$/;
|
|
17
|
+
exports.default = {
|
|
18
|
+
/** 正则表达式清单 */
|
|
19
|
+
regExps: {
|
|
20
|
+
/** 链接 */
|
|
21
|
+
url: exports.URL_REG_EXP,
|
|
22
|
+
/** 邮箱 */
|
|
23
|
+
email: exports.EMAIL_REG_EXP,
|
|
24
|
+
/** 身份证15位 */
|
|
25
|
+
cnIdCard15: exports.CN_ID_CARD_REG_EXP15,
|
|
26
|
+
/** 身份证18位 */
|
|
27
|
+
cnIdCard18: exports.CN_ID_CARD_REG_EXP18,
|
|
28
|
+
/** 国内手机号码正则 */
|
|
29
|
+
cnMobilePhone: exports.CN_MOBILE_PHONE_REG_EXP,
|
|
30
|
+
},
|
|
31
|
+
/** 判断是否是手机号码 */
|
|
32
|
+
isMobileNumber: function (mobileNumber, locale) {
|
|
33
|
+
if (locale === void 0) { locale = exports.DEFAULT_LOCALE; }
|
|
34
|
+
if (locale === 'zh-CN') {
|
|
35
|
+
return exports.CN_MOBILE_PHONE_REG_EXP.test(mobileNumber);
|
|
36
|
+
}
|
|
37
|
+
else {
|
|
38
|
+
/** 其他的暂不支持 */
|
|
39
|
+
return false;
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
/** 是否是纯数字 */
|
|
43
|
+
isPureNumber: function (str) {
|
|
44
|
+
return /^\d{1,}$/.test(str);
|
|
45
|
+
},
|
|
46
|
+
/**
|
|
47
|
+
* 是否是邮箱格式
|
|
48
|
+
*
|
|
49
|
+
* - 参考:http://emailregex.com/
|
|
50
|
+
*/
|
|
51
|
+
isEmail: function (str) {
|
|
52
|
+
return exports.EMAIL_REG_EXP.test(str);
|
|
53
|
+
},
|
|
54
|
+
/** 是否是中国大陆的身份证 */
|
|
55
|
+
isChinaIDCard: function (str, type) {
|
|
56
|
+
if (type === void 0) { type = 18; }
|
|
57
|
+
if (type === 15 && str.length === 15) {
|
|
58
|
+
return exports.CN_ID_CARD_REG_EXP15.test(str);
|
|
59
|
+
}
|
|
60
|
+
if (type === 18 && str.length === 18) {
|
|
61
|
+
return exports.CN_ID_CARD_REG_EXP18.test(str);
|
|
62
|
+
}
|
|
63
|
+
return false;
|
|
64
|
+
},
|
|
65
|
+
/** 是否是链接 */
|
|
66
|
+
isUrl: function (str) {
|
|
67
|
+
return exports.URL_REG_EXP.test(str);
|
|
68
|
+
},
|
|
69
|
+
/** 转为中横线命名 */
|
|
70
|
+
toHyphenName: function (value) {
|
|
71
|
+
if (value) {
|
|
72
|
+
return value
|
|
73
|
+
.trim()
|
|
74
|
+
.replace(/([A-Z])/g, '-$1')
|
|
75
|
+
.toLowerCase();
|
|
76
|
+
}
|
|
77
|
+
return '';
|
|
78
|
+
},
|
|
79
|
+
/** 转为中横线命名 */
|
|
80
|
+
toHumpName: function (value) {
|
|
81
|
+
if (value) {
|
|
82
|
+
return value.replace(/-(\w)/g, function (_all, letter) {
|
|
83
|
+
return letter.toUpperCase();
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
return '';
|
|
87
|
+
},
|
|
88
|
+
/** 将对象类型的css样式转化为字符串 */
|
|
89
|
+
cssStyleObjectToString: function (style) {
|
|
90
|
+
var _this = this;
|
|
91
|
+
var styles = [];
|
|
92
|
+
lodash_1.default.keys(style).forEach(function (key) {
|
|
93
|
+
styles.push([_this.toHyphenName(key), style[key]].join(': '));
|
|
94
|
+
});
|
|
95
|
+
return styles.join('; ');
|
|
96
|
+
},
|
|
97
|
+
};
|
|
98
|
+
//# sourceMappingURL=format.util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format.util.js","sourceRoot":"","sources":["../../src/utils/format.util.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
interface IReturnValue {
|
|
2
|
+
keyword?: string;
|
|
3
|
+
language: string;
|
|
4
|
+
variant?: string;
|
|
5
|
+
country?: string;
|
|
6
|
+
script?: string;
|
|
7
|
+
}
|
|
8
|
+
export declare function setDefaultLocale(key: string): void;
|
|
9
|
+
export declare function getDefaultLocale(): string;
|
|
10
|
+
export default function parse(locale?: string): IReturnValue | undefined;
|
|
11
|
+
export declare function getLanguage(locale: string): string | undefined;
|
|
12
|
+
export declare function getCountry(locale: string): string | undefined;
|
|
13
|
+
export declare function getScript(locale: string): string | undefined;
|
|
14
|
+
export declare function getVariant(locale: string): string | undefined;
|
|
15
|
+
export declare function getKeyword(locale: string): string | undefined;
|
|
16
|
+
export declare function normalize(locale: string, delimeter?: string): string | undefined;
|
|
17
|
+
export declare function normalizeAcceptLanguage(acceptLanguage: string): string[];
|
|
18
|
+
export declare function prepareSupported(supported: string[] | string): {};
|
|
19
|
+
export declare function getBest(supported: string[] | string, locale: string | null | undefined, defaultLocale?: string | null, getAnyCountry?: boolean): string | null | undefined;
|
|
20
|
+
export {};
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.getBest = exports.prepareSupported = exports.normalizeAcceptLanguage = exports.normalize = exports.getKeyword = exports.getVariant = exports.getScript = exports.getCountry = exports.getLanguage = exports.getDefaultLocale = exports.setDefaultLocale = void 0;
|
|
5
|
+
var tslib_1 = require("tslib");
|
|
6
|
+
// flow
|
|
7
|
+
var capitalize_1 = (0, tslib_1.__importDefault)(require("lodash/capitalize"));
|
|
8
|
+
var forEach_1 = (0, tslib_1.__importDefault)(require("lodash/forEach"));
|
|
9
|
+
var isArray_1 = (0, tslib_1.__importDefault)(require("lodash/isArray"));
|
|
10
|
+
var debug_1 = (0, tslib_1.__importDefault)(require("debug"));
|
|
11
|
+
var general_1 = (0, tslib_1.__importDefault)(require("../common/general"));
|
|
12
|
+
var log = (0, debug_1.default)('locale-id');
|
|
13
|
+
var DEFAULT_LOCALE_MEMORY_KEY = 'almighty-tool/locale.util#default-locale';
|
|
14
|
+
var DEFAULT_LOCALE = (_a = process.env.DEFAULT_LOCALE) !== null && _a !== void 0 ? _a : 'zh-cn';
|
|
15
|
+
function setDefaultLocale(key) {
|
|
16
|
+
return general_1.default.setDefault(DEFAULT_LOCALE_MEMORY_KEY, key);
|
|
17
|
+
}
|
|
18
|
+
exports.setDefaultLocale = setDefaultLocale;
|
|
19
|
+
function getDefaultLocale() {
|
|
20
|
+
var _a;
|
|
21
|
+
return (_a = general_1.default.getDefault(DEFAULT_LOCALE_MEMORY_KEY)) !== null && _a !== void 0 ? _a : DEFAULT_LOCALE;
|
|
22
|
+
}
|
|
23
|
+
exports.getDefaultLocale = getDefaultLocale;
|
|
24
|
+
// http://userguide.icu-project.org/locale
|
|
25
|
+
function parse(locale) {
|
|
26
|
+
if (!locale) {
|
|
27
|
+
return undefined;
|
|
28
|
+
}
|
|
29
|
+
// extract keyword
|
|
30
|
+
var stringLocale = String(locale);
|
|
31
|
+
var keywordPos = stringLocale.indexOf('@');
|
|
32
|
+
var keyword = keywordPos !== -1 ? stringLocale.substr(keywordPos + 1) : undefined;
|
|
33
|
+
var localeWithoutKeyword = keywordPos !== -1 ? stringLocale.substr(0, keywordPos) : stringLocale;
|
|
34
|
+
// en-us => en_us
|
|
35
|
+
var parts = String(localeWithoutKeyword).replace(/-/g, '_').split('_');
|
|
36
|
+
if (!parts.length || parts.length > 4) {
|
|
37
|
+
return undefined;
|
|
38
|
+
}
|
|
39
|
+
var language = parts.shift();
|
|
40
|
+
if (!language) {
|
|
41
|
+
return undefined;
|
|
42
|
+
}
|
|
43
|
+
var retVar = {
|
|
44
|
+
keyword: keyword,
|
|
45
|
+
language: language.toLowerCase(),
|
|
46
|
+
};
|
|
47
|
+
if (!parts.length) {
|
|
48
|
+
return retVar;
|
|
49
|
+
}
|
|
50
|
+
if (parts.length === 3) {
|
|
51
|
+
var variant = parts.pop();
|
|
52
|
+
if (variant) {
|
|
53
|
+
retVar.variant = variant.toUpperCase();
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
var country = parts.pop();
|
|
57
|
+
if (country && country.length > 3) {
|
|
58
|
+
retVar.keyword = country;
|
|
59
|
+
country = parts.pop();
|
|
60
|
+
}
|
|
61
|
+
if (country) {
|
|
62
|
+
retVar.country = country.toUpperCase();
|
|
63
|
+
}
|
|
64
|
+
if (!parts.length) {
|
|
65
|
+
return retVar;
|
|
66
|
+
}
|
|
67
|
+
var script = parts.pop();
|
|
68
|
+
if (script) {
|
|
69
|
+
retVar.script = (0, capitalize_1.default)(script.toLowerCase());
|
|
70
|
+
}
|
|
71
|
+
return retVar;
|
|
72
|
+
}
|
|
73
|
+
exports.default = parse;
|
|
74
|
+
function getLanguage(locale) {
|
|
75
|
+
var obj = parse(locale);
|
|
76
|
+
return obj && obj.language;
|
|
77
|
+
}
|
|
78
|
+
exports.getLanguage = getLanguage;
|
|
79
|
+
function getCountry(locale) {
|
|
80
|
+
var obj = parse(locale);
|
|
81
|
+
return obj && obj.country;
|
|
82
|
+
}
|
|
83
|
+
exports.getCountry = getCountry;
|
|
84
|
+
function getScript(locale) {
|
|
85
|
+
var obj = parse(locale);
|
|
86
|
+
return obj && obj.script;
|
|
87
|
+
}
|
|
88
|
+
exports.getScript = getScript;
|
|
89
|
+
function getVariant(locale) {
|
|
90
|
+
var obj = parse(locale);
|
|
91
|
+
return obj && obj.variant;
|
|
92
|
+
}
|
|
93
|
+
exports.getVariant = getVariant;
|
|
94
|
+
function getKeyword(locale) {
|
|
95
|
+
var obj = parse(locale);
|
|
96
|
+
return obj && obj.keyword;
|
|
97
|
+
}
|
|
98
|
+
exports.getKeyword = getKeyword;
|
|
99
|
+
function normalize(locale, delimeter) {
|
|
100
|
+
if (delimeter === void 0) { delimeter = '_'; }
|
|
101
|
+
var obj = parse(locale);
|
|
102
|
+
if (!obj) {
|
|
103
|
+
return obj;
|
|
104
|
+
}
|
|
105
|
+
var result = obj.language;
|
|
106
|
+
if (obj.script) {
|
|
107
|
+
result += "".concat(delimeter).concat(obj.script);
|
|
108
|
+
}
|
|
109
|
+
if (obj.country) {
|
|
110
|
+
result += "".concat(delimeter).concat(obj.country);
|
|
111
|
+
}
|
|
112
|
+
return result;
|
|
113
|
+
}
|
|
114
|
+
exports.normalize = normalize;
|
|
115
|
+
var splitAcceptLanguageRegEx = /([a-z]{1,8}(-[a-z]{1,8})?)\s*(;\s*q\s*=\s*(1|0\.[0-9]+))?/gi;
|
|
116
|
+
var acceptLanguageItemRegEx = /^([a-z]{1,8}(-[a-z]{1,8})?)/i;
|
|
117
|
+
function normalizeAcceptLanguage(acceptLanguage) {
|
|
118
|
+
var returnItems = [];
|
|
119
|
+
if (!acceptLanguage) {
|
|
120
|
+
return returnItems;
|
|
121
|
+
}
|
|
122
|
+
var items = acceptLanguage.match(splitAcceptLanguageRegEx) || [];
|
|
123
|
+
(0, forEach_1.default)(items, function (acceptLanguageItem) {
|
|
124
|
+
var _a;
|
|
125
|
+
var matches = acceptLanguageItem.match(acceptLanguageItemRegEx) || [];
|
|
126
|
+
var locale = normalize((_a = matches[0]) !== null && _a !== void 0 ? _a : '');
|
|
127
|
+
if (locale) {
|
|
128
|
+
returnItems.push(locale);
|
|
129
|
+
}
|
|
130
|
+
});
|
|
131
|
+
return returnItems;
|
|
132
|
+
}
|
|
133
|
+
exports.normalizeAcceptLanguage = normalizeAcceptLanguage;
|
|
134
|
+
function prepareSupported(supported) {
|
|
135
|
+
var lgs = {};
|
|
136
|
+
(0, forEach_1.default)(supported, function (supportedLocale) {
|
|
137
|
+
var parsed = parse(supportedLocale);
|
|
138
|
+
if (parsed) {
|
|
139
|
+
var language = parsed.language, country = parsed.country;
|
|
140
|
+
if (!language) {
|
|
141
|
+
throw new Error("Locale ".concat(supportedLocale, " is not parsable"));
|
|
142
|
+
}
|
|
143
|
+
if (!Reflect.get(lgs, language)) {
|
|
144
|
+
Reflect.set(lgs, language, {
|
|
145
|
+
countries: {},
|
|
146
|
+
firstCountry: undefined,
|
|
147
|
+
main: undefined,
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
var lg = Reflect.get(lgs, language);
|
|
151
|
+
if (lg) {
|
|
152
|
+
if (country) {
|
|
153
|
+
lg.countries[country] = supportedLocale;
|
|
154
|
+
if (!lg.firstCountry) {
|
|
155
|
+
lg.firstCountry = supportedLocale;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
lg.main = supportedLocale;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
});
|
|
164
|
+
return lgs;
|
|
165
|
+
}
|
|
166
|
+
exports.prepareSupported = prepareSupported;
|
|
167
|
+
function getBest(supported, locale, defaultLocale, getAnyCountry) {
|
|
168
|
+
var lgs = (0, isArray_1.default)(supported) ? prepareSupported(supported) : supported;
|
|
169
|
+
// return defaultLocale if current locale is undefined
|
|
170
|
+
if (!locale && defaultLocale) {
|
|
171
|
+
return getBest(supported, defaultLocale, undefined, getAnyCountry);
|
|
172
|
+
}
|
|
173
|
+
if (!locale) {
|
|
174
|
+
log("Locale ".concat(locale, " is not supported"));
|
|
175
|
+
return undefined;
|
|
176
|
+
}
|
|
177
|
+
var parsed = parse(locale);
|
|
178
|
+
if (!parsed) {
|
|
179
|
+
return undefined;
|
|
180
|
+
}
|
|
181
|
+
var language = parsed.language, country = parsed.country;
|
|
182
|
+
if (!language) {
|
|
183
|
+
return defaultLocale;
|
|
184
|
+
}
|
|
185
|
+
// selected locale is not supported
|
|
186
|
+
if (!Reflect.get(lgs, language)) {
|
|
187
|
+
log("Locale ".concat(locale, " is not supported"));
|
|
188
|
+
if (locale === defaultLocale) {
|
|
189
|
+
return undefined;
|
|
190
|
+
}
|
|
191
|
+
return getBest(supported, defaultLocale, null, getAnyCountry);
|
|
192
|
+
}
|
|
193
|
+
var _a = Reflect.get(lgs, language), countries = _a.countries, _b = _a.main, main = _b === void 0 ? defaultLocale : _b, firstCountry = _a.firstCountry;
|
|
194
|
+
if (!countries || !country) {
|
|
195
|
+
if (getAnyCountry && firstCountry) {
|
|
196
|
+
return firstCountry;
|
|
197
|
+
}
|
|
198
|
+
return main;
|
|
199
|
+
}
|
|
200
|
+
if (getAnyCountry && firstCountry) {
|
|
201
|
+
return countries[country] ? countries[country] : firstCountry;
|
|
202
|
+
}
|
|
203
|
+
return countries[country] ? countries[country] : main;
|
|
204
|
+
}
|
|
205
|
+
exports.getBest = getBest;
|
|
206
|
+
//# sourceMappingURL=locale.util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"locale.util.js","sourceRoot":"","sources":["../../src/utils/locale.util.ts"],"names":[],"mappings":";;;;;AAAA,OAAO;AACP,8EAA2C;AAC3C,wEAAqC;AACrC,wEAAqC;AACrC,6DAA0B;AAC1B,2EAAwC;AAExC,IAAM,GAAG,GAAG,IAAA,eAAK,EAAC,WAAW,CAAC,CAAC;AAU/B,IAAM,yBAAyB,GAAG,0CAA0C,CAAC;AAC7E,IAAM,cAAc,GAAG,MAAA,OAAO,CAAC,GAAG,CAAC,cAAc,mCAAI,OAAO,CAAC;AAE7D,SAAgB,gBAAgB,CAAC,GAAW;IAC1C,OAAO,iBAAO,CAAC,UAAU,CAAC,yBAAyB,EAAE,GAAG,CAAC,CAAC;AAC5D,CAAC;AAFD,4CAEC;AAED,SAAgB,gBAAgB;;IAC9B,OAAO,MAAA,iBAAO,CAAC,UAAU,CAAS,yBAAyB,CAAC,mCAAI,cAAc,CAAC;AACjF,CAAC;AAFD,4CAEC;AAED,0CAA0C;AAC1C,SAAwB,KAAK,CAAC,MAAe;IAC3C,IAAI,CAAC,MAAM,EAAE;QACX,OAAO,SAAS,CAAC;KAClB;IAED,kBAAkB;IAClB,IAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;IACpC,IAAM,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC7C,IAAM,OAAO,GAAG,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACpF,IAAM,oBAAoB,GAAG,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;IAEnG,iBAAiB;IACjB,IAAM,KAAK,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAEzE,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;QACrC,OAAO,SAAS,CAAC;KAClB;IAED,IAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC;IAC/B,IAAI,CAAC,QAAQ,EAAE;QACb,OAAO,SAAS,CAAC;KAClB;IAED,IAAM,MAAM,GAAiB;QAC3B,OAAO,SAAA;QACP,QAAQ,EAAE,QAAQ,CAAC,WAAW,EAAE;KACjC,CAAC;IAEF,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;QACjB,OAAO,MAAM,CAAC;KACf;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;QACtB,IAAM,OAAO,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;QAC5B,IAAI,OAAO,EAAE;YACX,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;SACxC;KACF;IAED,IAAI,OAAO,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;IAE1B,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;QACjC,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;QAEzB,OAAO,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;KACvB;IAED,IAAI,OAAO,EAAE;QACX,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;KACxC;IAED,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;QACjB,OAAO,MAAM,CAAC;KACf;IAED,IAAM,MAAM,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;IAE3B,IAAI,MAAM,EAAE;QACV,MAAM,CAAC,MAAM,GAAG,IAAA,oBAAU,EAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;KAClD;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AA9DD,wBA8DC;AAED,SAAgB,WAAW,CAAC,MAAc;IACxC,IAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;IAC1B,OAAO,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC;AAC7B,CAAC;AAHD,kCAGC;AAED,SAAgB,UAAU,CAAC,MAAc;IACvC,IAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;IAC1B,OAAO,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC;AAC5B,CAAC;AAHD,gCAGC;AAED,SAAgB,SAAS,CAAC,MAAc;IACtC,IAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;IAC1B,OAAO,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC;AAC3B,CAAC;AAHD,8BAGC;AAED,SAAgB,UAAU,CAAC,MAAc;IACvC,IAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;IAC1B,OAAO,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC;AAC5B,CAAC;AAHD,gCAGC;AAED,SAAgB,UAAU,CAAC,MAAc;IACvC,IAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;IAC1B,OAAO,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC;AAC5B,CAAC;AAHD,gCAGC;AAED,SAAgB,SAAS,CAAC,MAAc,EAAE,SAAe;IAAf,0BAAA,EAAA,eAAe;IACvD,IAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;IAC1B,IAAI,CAAC,GAAG,EAAE;QACR,OAAO,GAAG,CAAC;KACZ;IAED,IAAI,MAAM,GAAG,GAAG,CAAC,QAAQ,CAAC;IAE1B,IAAI,GAAG,CAAC,MAAM,EAAE;QACd,MAAM,IAAI,UAAG,SAAS,SAAG,GAAG,CAAC,MAAM,CAAE,CAAC;KACvC;IAED,IAAI,GAAG,CAAC,OAAO,EAAE;QACf,MAAM,IAAI,UAAG,SAAS,SAAG,GAAG,CAAC,OAAO,CAAE,CAAC;KACxC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAjBD,8BAiBC;AAED,IAAM,wBAAwB,GAAG,6DAA6D,CAAC;AAC/F,IAAM,uBAAuB,GAAG,8BAA8B,CAAC;AAE/D,SAAgB,uBAAuB,CAAC,cAAsB;IAC5D,IAAM,WAAW,GAAa,EAAE,CAAC;IACjC,IAAI,CAAC,cAAc,EAAE;QACnB,OAAO,WAAW,CAAC;KACpB;IAED,IAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,wBAAwB,CAAC,IAAI,EAAE,CAAC;IACnE,IAAA,iBAAO,EAAC,KAAK,EAAE,UAAC,kBAAkB;;QAChC,IAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,CAAC,uBAAuB,CAAC,IAAI,EAAE,CAAC;QACxE,IAAM,MAAM,GAAG,SAAS,CAAC,MAAA,OAAO,CAAC,CAAC,CAAC,mCAAI,EAAE,CAAC,CAAC;QAC3C,IAAI,MAAM,EAAE;YACV,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC1B;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,WAAW,CAAC;AACrB,CAAC;AAhBD,0DAgBC;AAED,SAAgB,gBAAgB,CAAC,SAA4B;IAC3D,IAAM,GAAG,GAAG,EAAE,CAAC;IAEf,IAAA,iBAAO,EAAC,SAAS,EAAE,UAAC,eAAe;QACjC,IAAM,MAAM,GAAG,KAAK,CAAC,eAAe,CAAC,CAAC;QAEtC,IAAI,MAAM,EAAE;YACF,IAAA,QAAQ,GAAc,MAAM,SAApB,EAAE,OAAO,GAAK,MAAM,QAAX,CAAY;YAErC,IAAI,CAAC,QAAQ,EAAE;gBACb,MAAM,IAAI,KAAK,CAAC,iBAAU,eAAe,qBAAkB,CAAC,CAAC;aAC9D;YAED,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE;gBAC/B,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,EAAE;oBACzB,SAAS,EAAE,EAAE;oBACb,YAAY,EAAE,SAAS;oBACvB,IAAI,EAAE,SAAS;iBAChB,CAAC,CAAC;aACJ;YAED,IAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;YAEtC,IAAI,EAAE,EAAE;gBACN,IAAI,OAAO,EAAE;oBACX,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,eAAe,CAAC;oBAExC,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE;wBACpB,EAAE,CAAC,YAAY,GAAG,eAAe,CAAC;qBACnC;iBACF;qBAAM;oBACL,EAAE,CAAC,IAAI,GAAG,eAAe,CAAC;iBAC3B;aACF;SACF;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,GAAG,CAAC;AACb,CAAC;AAtCD,4CAsCC;AAED,SAAgB,OAAO,CACrB,SAA4B,EAC5B,MAAiC,EACjC,aAA6B,EAC7B,aAAuB;IAEvB,IAAM,GAAG,GAAG,IAAA,iBAAO,EAAC,SAAS,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAEzE,sDAAsD;IACtD,IAAI,CAAC,MAAM,IAAI,aAAa,EAAE;QAC5B,OAAO,OAAO,CAAC,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;KACpE;IAED,IAAI,CAAC,MAAM,EAAE;QACX,GAAG,CAAC,iBAAU,MAAM,sBAAmB,CAAC,CAAC;QACzC,OAAO,SAAS,CAAC;KAClB;IAED,IAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;IAE7B,IAAI,CAAC,MAAM,EAAE;QACX,OAAO,SAAS,CAAC;KAClB;IAEO,IAAA,QAAQ,GAAc,MAAM,SAApB,EAAE,OAAO,GAAK,MAAM,QAAX,CAAY;IAErC,IAAI,CAAC,QAAQ,EAAE;QACb,OAAO,aAAa,CAAC;KACtB;IAED,mCAAmC;IACnC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE;QAC/B,GAAG,CAAC,iBAAU,MAAM,sBAAmB,CAAC,CAAC;QAEzC,IAAI,MAAM,KAAK,aAAa,EAAE;YAC5B,OAAO,SAAS,CAAC;SAClB;QAED,OAAO,OAAO,CAAC,SAAS,EAAE,aAAa,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC;KAC/D;IAEK,IAAA,KAAoD,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,EAA5E,SAAS,eAAA,EAAE,YAAoB,EAApB,IAAI,mBAAG,aAAa,KAAA,EAAE,YAAY,kBAA+B,CAAC;IAErF,IAAI,CAAC,SAAS,IAAI,CAAC,OAAO,EAAE;QAC1B,IAAI,aAAa,IAAI,YAAY,EAAE;YACjC,OAAO,YAAY,CAAC;SACrB;QAED,OAAO,IAAI,CAAC;KACb;IAED,IAAI,aAAa,IAAI,YAAY,EAAE;QACjC,OAAO,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;KAC/D;IAED,OAAO,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACxD,CAAC;AAxDD,0BAwDC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export interface ISplitFloatOptions {
|
|
2
|
+
/** 忽略尾部的0: 默认为true */
|
|
3
|
+
ignoreTailZeros?: boolean;
|
|
4
|
+
/** 最大的小数部分位数: 默认为2 */
|
|
5
|
+
maxTailsCount?: number;
|
|
6
|
+
}
|
|
7
|
+
export interface ISplitFloatResult {
|
|
8
|
+
/** 整数部分 */
|
|
9
|
+
integer: string;
|
|
10
|
+
/** 小数部分 */
|
|
11
|
+
float: string;
|
|
12
|
+
/** 小数点 */
|
|
13
|
+
point: string;
|
|
14
|
+
}
|
|
15
|
+
declare const numberUtil: {
|
|
16
|
+
/** 格式化1个浮点数 */
|
|
17
|
+
formatFloat(value: number | string, options?: ISplitFloatOptions): string;
|
|
18
|
+
/** 分割一个浮点数 */
|
|
19
|
+
splitFloat(value: number | string, options?: ISplitFloatOptions): ISplitFloatResult;
|
|
20
|
+
};
|
|
21
|
+
export default numberUtil;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var tslib_1 = require("tslib");
|
|
4
|
+
var lodash_1 = (0, tslib_1.__importDefault)(require("lodash"));
|
|
5
|
+
var numberUtil = {
|
|
6
|
+
/** 格式化1个浮点数 */
|
|
7
|
+
formatFloat: function (value, options) {
|
|
8
|
+
if (options === void 0) { options = {}; }
|
|
9
|
+
var splitResult = this.splitFloat(value, options);
|
|
10
|
+
return [splitResult.integer, splitResult.point, splitResult.float]
|
|
11
|
+
.filter(function (part) {
|
|
12
|
+
return part.length > 0;
|
|
13
|
+
})
|
|
14
|
+
.join('');
|
|
15
|
+
},
|
|
16
|
+
/** 分割一个浮点数 */
|
|
17
|
+
splitFloat: function (value, options) {
|
|
18
|
+
var _a;
|
|
19
|
+
if (options === void 0) { options = {}; }
|
|
20
|
+
// 默认为true
|
|
21
|
+
var ignoreTailZeros = options.ignoreTailZeros !== false;
|
|
22
|
+
var maxTailsCount = (_a = options.maxTailsCount) !== null && _a !== void 0 ? _a : 2;
|
|
23
|
+
var s = (value || '0').toString().trim().split('.');
|
|
24
|
+
var floatPart = (ignoreTailZeros ? s[1] || '' : lodash_1.default.padEnd(s[1] || '', maxTailsCount, '0')).slice(0, maxTailsCount);
|
|
25
|
+
return {
|
|
26
|
+
integer: s[0] || '0',
|
|
27
|
+
float: floatPart,
|
|
28
|
+
point: floatPart.length ? '.' : '',
|
|
29
|
+
};
|
|
30
|
+
},
|
|
31
|
+
};
|
|
32
|
+
exports.default = numberUtil;
|
|
33
|
+
//# sourceMappingURL=number.util.js.map
|