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.
Files changed (115) hide show
  1. package/.babelrc +17 -0
  2. package/.editorconfig +13 -0
  3. package/.eslintignore +7 -0
  4. package/.eslintrc.js +5 -0
  5. package/.nvmrc +1 -0
  6. package/.prettierrc.js +1 -0
  7. package/.yarnrc +12 -0
  8. package/CHANGELOG.md +7 -0
  9. package/README.md +11 -0
  10. package/jest.config.js +1 -0
  11. package/lib/api/interfaces/api/base.api.d.ts +48 -0
  12. package/lib/api/interfaces/api/base.api.js +3 -0
  13. package/lib/api/interfaces/api/base.api.js.map +1 -0
  14. package/lib/api/interfaces/models/basic.model.d.ts +4 -0
  15. package/lib/api/interfaces/models/basic.model.js +3 -0
  16. package/lib/api/interfaces/models/basic.model.js.map +1 -0
  17. package/lib/api/interfaces/models/pagination.model.d.ts +26 -0
  18. package/lib/api/interfaces/models/pagination.model.js +3 -0
  19. package/lib/api/interfaces/models/pagination.model.js.map +1 -0
  20. package/lib/api/interfaces/types.d.ts +7 -0
  21. package/lib/api/interfaces/types.js +3 -0
  22. package/lib/api/interfaces/types.js.map +1 -0
  23. package/lib/api/models/basic.model.d.ts +7 -0
  24. package/lib/api/models/basic.model.js +25 -0
  25. package/lib/api/models/basic.model.js.map +1 -0
  26. package/lib/api/models/pagination.model.d.ts +35 -0
  27. package/lib/api/models/pagination.model.js +113 -0
  28. package/lib/api/models/pagination.model.js.map +1 -0
  29. package/lib/common/enum-object.d.ts +48 -0
  30. package/lib/common/enum-object.js +84 -0
  31. package/lib/common/enum-object.js.map +1 -0
  32. package/lib/common/general.d.ts +28 -0
  33. package/lib/common/general.js +173 -0
  34. package/lib/common/general.js.map +1 -0
  35. package/lib/common/validator.d.ts +20 -0
  36. package/lib/common/validator.js +30 -0
  37. package/lib/common/validator.js.map +1 -0
  38. package/lib/dayjs/locales/zh-cn.d.ts +40 -0
  39. package/lib/dayjs/locales/zh-cn.js +73 -0
  40. package/lib/dayjs/locales/zh-cn.js.map +1 -0
  41. package/lib/formats/date.format.d.ts +30 -0
  42. package/lib/formats/date.format.js +78 -0
  43. package/lib/formats/date.format.js.map +1 -0
  44. package/lib/interfaces/common/general.d.ts +186 -0
  45. package/lib/interfaces/common/general.js +28 -0
  46. package/lib/interfaces/common/general.js.map +1 -0
  47. package/lib/interfaces/utils/basic-util.d.ts +22 -0
  48. package/lib/interfaces/utils/basic-util.js +3 -0
  49. package/lib/interfaces/utils/basic-util.js.map +1 -0
  50. package/lib/interfaces/utils/date-util.d.ts +12 -0
  51. package/lib/interfaces/utils/date-util.js +3 -0
  52. package/lib/interfaces/utils/date-util.js.map +1 -0
  53. package/lib/interfaces/utils/format-util.d.ts +7 -0
  54. package/lib/interfaces/utils/format-util.js +3 -0
  55. package/lib/interfaces/utils/format-util.js.map +1 -0
  56. package/lib/locales/en/index.d.ts +19 -0
  57. package/lib/locales/en/index.js +21 -0
  58. package/lib/locales/en/index.js.map +1 -0
  59. package/lib/locales/index.d.ts +0 -0
  60. package/lib/locales/index.js +2 -0
  61. package/lib/locales/index.js.map +1 -0
  62. package/lib/locales/zh-cn/index.d.ts +33 -0
  63. package/lib/locales/zh-cn/index.js +35 -0
  64. package/lib/locales/zh-cn/index.js.map +1 -0
  65. package/lib/utils/accurate.util.d.ts +28 -0
  66. package/lib/utils/accurate.util.js +123 -0
  67. package/lib/utils/accurate.util.js.map +1 -0
  68. package/lib/utils/basic.util.d.ts +83 -0
  69. package/lib/utils/basic.util.js +286 -0
  70. package/lib/utils/basic.util.js.map +1 -0
  71. package/lib/utils/crypto.util.d.ts +65 -0
  72. package/lib/utils/crypto.util.js +151 -0
  73. package/lib/utils/crypto.util.js.map +1 -0
  74. package/lib/utils/date.util.d.ts +52 -0
  75. package/lib/utils/date.util.js +211 -0
  76. package/lib/utils/date.util.js.map +1 -0
  77. package/lib/utils/format.util.d.ts +49 -0
  78. package/lib/utils/format.util.js +98 -0
  79. package/lib/utils/format.util.js.map +1 -0
  80. package/lib/utils/locale.util.d.ts +20 -0
  81. package/lib/utils/locale.util.js +206 -0
  82. package/lib/utils/locale.util.js.map +1 -0
  83. package/lib/utils/number.util.d.ts +21 -0
  84. package/lib/utils/number.util.js +33 -0
  85. package/lib/utils/number.util.js.map +1 -0
  86. package/package.json +102 -0
  87. package/templates/eslints/eggjs.project.js +15 -0
  88. package/templates/eslints/element-ui.project.js +4 -0
  89. package/templates/eslints/recommended.js +26 -0
  90. package/templates/eslints/rules/recommended.js +26 -0
  91. package/templates/eslints/rules/vue.js +12 -0
  92. package/templates/eslints/server.project.js +18 -0
  93. package/templates/eslints/uni-app-v8.project.js +43 -0
  94. package/templates/eslints/uni-app.project.js +45 -0
  95. package/templates/eslints/vue.project.js +39 -0
  96. package/templates/jest/element-ui.project.js +1 -0
  97. package/templates/jest/recommended.js +19 -0
  98. package/templates/jest/vue.project.js +44 -0
  99. package/templates/postcss/recommended.js +4 -0
  100. package/templates/postcss/uni-app.js +11 -0
  101. package/templates/prettiers/recommended.js +26 -0
  102. package/templates/stylelint/recommended.js +42 -0
  103. package/templates/stylelint/rules/recommended.js +22 -0
  104. package/templates/stylelint/uni-app.project.js +11 -0
  105. package/templates/tsconfigs/eggjs.json +31 -0
  106. package/templates/tsconfigs/element-ui.json +3 -0
  107. package/templates/tsconfigs/lib.json +15 -0
  108. package/templates/tsconfigs/quasar.json +25 -0
  109. package/templates/tsconfigs/recommended.json +43 -0
  110. package/templates/tsconfigs/server.json +23 -0
  111. package/templates/tsconfigs/uni-app.json +39 -0
  112. package/templates/tsconfigs/vue.json +45 -0
  113. package/templates/tslints/recommended.json +13 -0
  114. package/tsconfig.json +9 -0
  115. 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