lyb-js 1.1.5 → 1.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +110 -47
- package/dist/Base/LibJsGetDataType/index.d.ts +1 -5
- package/dist/Base/LibJsGetDataType/index.js +2 -6
- package/dist/Base/LibJsPromiseTimeout/index.d.ts +1 -5
- package/dist/Base/LibJsPromiseTimeout/index.js +12 -15
- package/dist/Browser/LibJsColorConsole/index.d.ts +1 -7
- package/dist/Browser/LibJsColorConsole/index.js +23 -19
- package/dist/Browser/LibJsIsMobile/index.d.ts +1 -4
- package/dist/Browser/LibJsIsMobile/index.js +3 -6
- package/dist/Browser/LibJsIsPad/index.d.ts +1 -4
- package/dist/Browser/LibJsIsPad/index.js +9 -12
- package/dist/Browser/LibJsObjToUrlParams/index.d.ts +1 -4
- package/dist/Browser/LibJsObjToUrlParams/index.js +6 -6
- package/dist/Browser/LibJsPathParams/index.d.ts +1 -4
- package/dist/Browser/LibJsPathParams/index.js +6 -9
- package/dist/Browser/LibJsSetTitleIcon/index.d.ts +1 -3
- package/dist/Browser/LibJsSetTitleIcon/index.js +4 -6
- package/dist/Browser/LibJsTagTitleTip/index.d.ts +1 -3
- package/dist/Browser/LibJsTagTitleTip/index.js +6 -8
- package/dist/Data/LibJsChunkArray/index.d.ts +1 -4
- package/dist/Data/LibJsChunkArray/index.js +4 -7
- package/dist/Data/LibJsDeepJSONParse/index.d.ts +1 -4
- package/dist/Data/LibJsDeepJSONParse/index.js +6 -9
- package/dist/Data/LibJsGroupArrayByKey/index.d.ts +1 -4
- package/dist/Data/LibJsGroupArrayByKey/index.js +4 -6
- package/dist/Data/LibJsMatchEmail/index.d.ts +1 -4
- package/dist/Data/LibJsMatchEmail/index.js +5 -8
- package/dist/Data/LibJsShuffleArray/index.d.ts +1 -4
- package/dist/Data/LibJsShuffleArray/index.js +16 -9
- package/dist/Data/LibJsStepArray/index.d.ts +1 -4
- package/dist/Data/LibJsStepArray/index.js +4 -7
- package/dist/Data/LibReverseArrayFromIndex/index.d.ts +1 -4
- package/dist/Data/LibReverseArrayFromIndex/index.js +13 -7
- package/dist/File/LibJsDownloadImageLink/index.d.ts +1 -3
- package/dist/File/LibJsDownloadImageLink/index.js +6 -8
- package/dist/File/LibJsImageOptimizer/index.d.ts +1 -14
- package/dist/File/LibJsImageOptimizer/index.js +37 -50
- package/dist/File/LibJsSaveJson/index.d.ts +1 -4
- package/dist/File/LibJsSaveJson/index.js +5 -8
- package/dist/Formatter/LibJsFormatterByte/index.d.ts +1 -4
- package/dist/Formatter/LibJsFormatterByte/index.js +7 -10
- package/dist/Formatter/LibJsMaskPhoneNumber/index.d.ts +1 -4
- package/dist/Formatter/LibJsMaskPhoneNumber/index.js +3 -6
- package/dist/Formatter/LibJsNumComma/index.d.ts +1 -4
- package/dist/Formatter/LibJsNumComma/index.js +5 -7
- package/dist/Formatter/LibJsNumberUnit/index.d.ts +6 -9
- package/dist/Formatter/LibJsNumberUnit/index.js +18 -14
- package/dist/Formatter/LibJsSecondsFormatterChinese/index.d.ts +1 -6
- package/dist/Formatter/LibJsSecondsFormatterChinese/index.js +16 -21
- package/dist/Math/LibJsCalculateExpression/index.d.ts +1 -4
- package/dist/Math/LibJsCalculateExpression/index.js +33 -32
- package/dist/Math/LibJsConvertAngle/index.d.ts +1 -7
- package/dist/Math/LibJsConvertAngle/index.js +2 -8
- package/dist/Math/LibJsCoordsAngle/index.d.ts +1 -5
- package/dist/Math/LibJsCoordsAngle/index.js +6 -10
- package/dist/Math/LibJsCoordsDistance/index.d.ts +1 -5
- package/dist/Math/LibJsCoordsDistance/index.js +5 -9
- package/dist/Math/LibJsDecimal/index.d.ts +1 -5
- package/dist/Math/LibJsDecimal/index.js +9 -12
- package/dist/Misc/LibJsRegFormValidate/index.d.ts +1 -16
- package/dist/Misc/LibJsRegFormValidate/index.js +7 -22
- package/dist/Misc/LibJsRetryRequest/index.d.ts +1 -12
- package/dist/Misc/LibJsRetryRequest/index.js +8 -18
- package/dist/Misc/LibNumerStepper/index.d.ts +1 -6
- package/dist/Misc/LibNumerStepper/index.js +28 -35
- package/dist/Random/LibJsProbabilityResult/index.d.ts +1 -5
- package/dist/Random/LibJsProbabilityResult/index.js +4 -6
- package/dist/Random/LibJsRandom/index.d.ts +1 -4
- package/dist/Random/LibJsRandom/index.js +3 -5
- package/dist/Random/LibJsRandomColor/index.d.ts +1 -4
- package/dist/Random/LibJsRandomColor/index.js +7 -9
- package/dist/Random/LibJsUniqueRandomNumbers/index.d.ts +1 -4
- package/dist/Random/LibJsUniqueRandomNumbers/index.js +7 -9
- package/dist/Time/LibJsSameTimeCheck/index.d.ts +1 -5
- package/dist/Time/LibJsSameTimeCheck/index.js +4 -8
- package/dist/Time/LibJsTimeAgo/index.d.ts +1 -6
- package/dist/Time/LibJsTimeAgo/index.js +9 -13
- package/dist/Time/LibJsTimeGreeting/index.d.ts +1 -5
- package/dist/Time/LibJsTimeGreeting/index.js +5 -8
- package/dist/libJs.d.ts +42 -201
- package/dist/libJs.js +95 -256
- package/package.json +1 -1
- package/umd/lyb.js +3 -3
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
/** @description 网站标题交互,当从当前网页切换到其他网页,网站标题自动切换
|
|
2
2
|
* @param backTitle 从其他网页返回时显示的标题
|
|
3
3
|
* @param leaveTitle 从当前网页离开时显示的标题
|
|
4
|
-
* @link
|
|
5
|
-
* @example
|
|
6
|
-
* libJsTagTitleTip("欢迎回来", "来和妲己玩耍吧!");
|
|
4
|
+
* @link 使用方法:https://www.npmjs.com/package/lyb-js#LibJsTagTitleTip-网站标题交互
|
|
7
5
|
*/
|
|
8
|
-
export
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
window.addEventListener("visibilitychange", ()
|
|
6
|
+
export var libJsTagTitleTip = function (backTitle, leaveTitle) {
|
|
7
|
+
var document_title = "";
|
|
8
|
+
var timer;
|
|
9
|
+
window.addEventListener("visibilitychange", function () {
|
|
12
10
|
clearTimeout(timer);
|
|
13
11
|
if (document.hidden) {
|
|
14
12
|
if (document.title !== backTitle) {
|
|
@@ -18,7 +16,7 @@ export const libJsTagTitleTip = (backTitle, leaveTitle) => {
|
|
|
18
16
|
return;
|
|
19
17
|
}
|
|
20
18
|
document.title = backTitle;
|
|
21
|
-
timer = setTimeout(()
|
|
19
|
+
timer = setTimeout(function () {
|
|
22
20
|
document.title = document_title;
|
|
23
21
|
}, 1000);
|
|
24
22
|
});
|
|
@@ -2,9 +2,6 @@
|
|
|
2
2
|
* @description 将数组拆分成指定数组元素数量的多个数组
|
|
3
3
|
* @param arr 需要拆分的数组
|
|
4
4
|
* @param chunkSize 每个数组的元素数量
|
|
5
|
-
* @link
|
|
6
|
-
* @example
|
|
7
|
-
* const chunks = libJsChunkArray([1, 2, 3, 4, 5, 6], 2);
|
|
8
|
-
* console.log(chunks); //[[1, 2], [3, 4], [5, 6]]
|
|
5
|
+
* @link 使用方法:https://www.npmjs.com/package/lyb-js#LibJsChunkArray-数组拆分
|
|
9
6
|
*/
|
|
10
7
|
export declare const libJsChunkArray: <T>(arr: T[], chunkSize: number) => T[][];
|
|
@@ -2,14 +2,11 @@
|
|
|
2
2
|
* @description 将数组拆分成指定数组元素数量的多个数组
|
|
3
3
|
* @param arr 需要拆分的数组
|
|
4
4
|
* @param chunkSize 每个数组的元素数量
|
|
5
|
-
* @link
|
|
6
|
-
* @example
|
|
7
|
-
* const chunks = libJsChunkArray([1, 2, 3, 4, 5, 6], 2);
|
|
8
|
-
* console.log(chunks); //[[1, 2], [3, 4], [5, 6]]
|
|
5
|
+
* @link 使用方法:https://www.npmjs.com/package/lyb-js#LibJsChunkArray-数组拆分
|
|
9
6
|
*/
|
|
10
|
-
export
|
|
11
|
-
|
|
12
|
-
for (
|
|
7
|
+
export var libJsChunkArray = function (arr, chunkSize) {
|
|
8
|
+
var result = [];
|
|
9
|
+
for (var i = 0; i < arr.length; i += chunkSize) {
|
|
13
10
|
result.push(arr.slice(i, i + chunkSize));
|
|
14
11
|
}
|
|
15
12
|
return result;
|
|
@@ -1,7 +1,4 @@
|
|
|
1
1
|
/** @description 递归将JSON字符串深度解析为对象
|
|
2
|
-
* @link
|
|
3
|
-
* @example
|
|
4
|
-
* const obj = libJsDeepJSONParse('{"a": 1, "b": "{\"c\": 2}"}');
|
|
5
|
-
* console.log(obj); //{ a: 1, b: { c: 2 } }
|
|
2
|
+
* @link 使用方法:https://www.npmjs.com/package/lyb-js#LibJsDeepJSONParse-深度解析JSON
|
|
6
3
|
*/
|
|
7
4
|
export declare const libJsDeepJSONParse: <T>(data: any) => T;
|
|
@@ -1,29 +1,26 @@
|
|
|
1
1
|
/** @description 递归将JSON字符串深度解析为对象
|
|
2
|
-
* @link
|
|
3
|
-
* @example
|
|
4
|
-
* const obj = libJsDeepJSONParse('{"a": 1, "b": "{\"c\": 2}"}');
|
|
5
|
-
* console.log(obj); //{ a: 1, b: { c: 2 } }
|
|
2
|
+
* @link 使用方法:https://www.npmjs.com/package/lyb-js#LibJsDeepJSONParse-深度解析JSON
|
|
6
3
|
*/
|
|
7
|
-
export
|
|
4
|
+
export var libJsDeepJSONParse = function (data) {
|
|
8
5
|
//检查是否为字符串并尝试解析
|
|
9
6
|
if (typeof data === "string") {
|
|
10
7
|
try {
|
|
11
|
-
|
|
8
|
+
var parsed = JSON.parse(data);
|
|
12
9
|
//递归解析解析后的结果
|
|
13
10
|
return libJsDeepJSONParse(parsed);
|
|
14
11
|
}
|
|
15
|
-
catch {
|
|
12
|
+
catch (_a) {
|
|
16
13
|
//如果解析失败,返回原始字符串
|
|
17
14
|
return data;
|
|
18
15
|
}
|
|
19
16
|
}
|
|
20
17
|
//如果是数组,递归处理每个元素
|
|
21
18
|
if (Array.isArray(data)) {
|
|
22
|
-
return data.map((item)
|
|
19
|
+
return data.map(function (item) { return libJsDeepJSONParse(item); });
|
|
23
20
|
}
|
|
24
21
|
//如果是对象,递归处理每个属性值
|
|
25
22
|
if (data !== null && typeof data === "object") {
|
|
26
|
-
return Object.keys(data).reduce((acc, key)
|
|
23
|
+
return Object.keys(data).reduce(function (acc, key) {
|
|
27
24
|
acc[key] = libJsDeepJSONParse(data[key]);
|
|
28
25
|
return acc;
|
|
29
26
|
}, {});
|
|
@@ -3,9 +3,6 @@
|
|
|
3
3
|
* @param arr 要分组的数组
|
|
4
4
|
* @param key 分组的键
|
|
5
5
|
* @returns 分组后的对象
|
|
6
|
-
* @link
|
|
7
|
-
* @example
|
|
8
|
-
* const grouped = libJsGroupArrayByKey([{ id: 1, name: 'A' }, { id: 2, name: 'B' }, { id: 1, name: 'C' }], 'id');
|
|
9
|
-
* console.log(grouped); //{ 1: [{ id: 1, name: 'A' }, { id: 1, name: 'C' }], 2: [{ id: 2, name: 'B' }] }
|
|
6
|
+
* @link 使用方法:https://www.npmjs.com/package/lyb-js#LibJsGroupArrayByKey-分类汇总
|
|
10
7
|
*/
|
|
11
8
|
export declare const libJsGroupArrayByKey: (arr: any[] | undefined, key: string) => any;
|
|
@@ -3,14 +3,12 @@
|
|
|
3
3
|
* @param arr 要分组的数组
|
|
4
4
|
* @param key 分组的键
|
|
5
5
|
* @returns 分组后的对象
|
|
6
|
-
* @link
|
|
7
|
-
* @example
|
|
8
|
-
* const grouped = libJsGroupArrayByKey([{ id: 1, name: 'A' }, { id: 2, name: 'B' }, { id: 1, name: 'C' }], 'id');
|
|
9
|
-
* console.log(grouped); //{ 1: [{ id: 1, name: 'A' }, { id: 1, name: 'C' }], 2: [{ id: 2, name: 'B' }] }
|
|
6
|
+
* @link 使用方法:https://www.npmjs.com/package/lyb-js#LibJsGroupArrayByKey-分类汇总
|
|
10
7
|
*/
|
|
11
|
-
export
|
|
8
|
+
export var libJsGroupArrayByKey = function (arr, key) {
|
|
9
|
+
if (arr === void 0) { arr = []; }
|
|
12
10
|
return key
|
|
13
|
-
? arr.reduce((t, v)
|
|
11
|
+
? arr.reduce(function (t, v) {
|
|
14
12
|
if (!t[v[key]]) {
|
|
15
13
|
t[v[key]] = [];
|
|
16
14
|
}
|
|
@@ -3,9 +3,6 @@
|
|
|
3
3
|
* @param str 要匹配的字符串
|
|
4
4
|
* @param emailList 电子邮件后缀列表
|
|
5
5
|
* @returns 匹配结果数组
|
|
6
|
-
* @link
|
|
7
|
-
* @example
|
|
8
|
-
* const emails = libJsMatchEmail("user", ["@gmail.com", "@yahoo.com"]);
|
|
9
|
-
* console.log(emails); //["user@gmail.com", "user@yahoo.com"]
|
|
6
|
+
* @link 使用方法:https://www.npmjs.com/package/lyb-js#LibJsMatchEmail-匹配E-Mail
|
|
10
7
|
*/
|
|
11
8
|
export declare const libJsMatchEmail: (str: string, emailList: string[]) => string[];
|
|
@@ -3,15 +3,12 @@
|
|
|
3
3
|
* @param str 要匹配的字符串
|
|
4
4
|
* @param emailList 电子邮件后缀列表
|
|
5
5
|
* @returns 匹配结果数组
|
|
6
|
-
* @link
|
|
7
|
-
* @example
|
|
8
|
-
* const emails = libJsMatchEmail("user", ["@gmail.com", "@yahoo.com"]);
|
|
9
|
-
* console.log(emails); //["user@gmail.com", "user@yahoo.com"]
|
|
6
|
+
* @link 使用方法:https://www.npmjs.com/package/lyb-js#LibJsMatchEmail-匹配E-Mail
|
|
10
7
|
*/
|
|
11
|
-
export
|
|
8
|
+
export var libJsMatchEmail = function (str, emailList) {
|
|
12
9
|
return str.includes("@")
|
|
13
10
|
? emailList
|
|
14
|
-
.filter((item)
|
|
15
|
-
.map((item)
|
|
16
|
-
: emailList.map((item)
|
|
11
|
+
.filter(function (item) { return item.includes(str.slice(str.indexOf("@"))); })
|
|
12
|
+
.map(function (item) { return (str.includes("@") ? str.split("@")[0] : str) + item; })
|
|
13
|
+
: emailList.map(function (item) { return str + item; });
|
|
17
14
|
};
|
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
/** @description 将数组打乱顺序
|
|
2
2
|
* @param arr 需要乱序的数组
|
|
3
|
-
* @link
|
|
4
|
-
* @example
|
|
5
|
-
* const shuffled = libJsShuffleArray([1, 2, 3, 4, 5]);
|
|
6
|
-
* console.log(shuffled); //[3, 5, 2, 1, 4] (结果每次不同)
|
|
3
|
+
* @link 使用方法:https://www.npmjs.com/package/lyb-js#LibJsShuffleArray-数组乱序
|
|
7
4
|
*/
|
|
8
5
|
export declare const libJsShuffleArray: <T>(arr: T[]) => T[];
|
|
@@ -1,15 +1,22 @@
|
|
|
1
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
2
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
3
|
+
if (ar || !(i in from)) {
|
|
4
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
5
|
+
ar[i] = from[i];
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
9
|
+
};
|
|
1
10
|
/** @description 将数组打乱顺序
|
|
2
11
|
* @param arr 需要乱序的数组
|
|
3
|
-
* @link
|
|
4
|
-
* @example
|
|
5
|
-
* const shuffled = libJsShuffleArray([1, 2, 3, 4, 5]);
|
|
6
|
-
* console.log(shuffled); //[3, 5, 2, 1, 4] (结果每次不同)
|
|
12
|
+
* @link 使用方法:https://www.npmjs.com/package/lyb-js#LibJsShuffleArray-数组乱序
|
|
7
13
|
*/
|
|
8
|
-
export
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
14
|
+
export var libJsShuffleArray = function (arr) {
|
|
15
|
+
var _a;
|
|
16
|
+
var newArr = __spreadArray([], arr, true);
|
|
17
|
+
for (var i = newArr.length - 1; i > 0; i--) {
|
|
18
|
+
var j = Math.floor(Math.random() * (i + 1));
|
|
19
|
+
_a = [newArr[j], newArr[i]], newArr[i] = _a[0], newArr[j] = _a[1];
|
|
13
20
|
}
|
|
14
21
|
return newArr;
|
|
15
22
|
};
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
/** @description 数组元素整体步数移动
|
|
2
2
|
* @param arr 移动的数组
|
|
3
3
|
* @param step 负数为向后移动,正数为向前移动
|
|
4
|
-
|
|
5
|
-
* @example
|
|
6
|
-
* const moved = libJsStepArray([1, 2, 3, 4, 5], 2);
|
|
7
|
-
* console.log(moved); //[4, 5, 1, 2, 3]
|
|
4
|
+
* @link 使用方法:https://www.npmjs.com/package/lyb-js#LibJsStepArray-数组偏移
|
|
8
5
|
*/
|
|
9
6
|
export declare const libJsStepArray: <T>(arr: T[], step: number) => T[];
|
|
@@ -1,15 +1,12 @@
|
|
|
1
1
|
/** @description 数组元素整体步数移动
|
|
2
2
|
* @param arr 移动的数组
|
|
3
3
|
* @param step 负数为向后移动,正数为向前移动
|
|
4
|
-
|
|
5
|
-
* @example
|
|
6
|
-
* const moved = libJsStepArray([1, 2, 3, 4, 5], 2);
|
|
7
|
-
* console.log(moved); //[4, 5, 1, 2, 3]
|
|
4
|
+
* @link 使用方法:https://www.npmjs.com/package/lyb-js#LibJsStepArray-数组偏移
|
|
8
5
|
*/
|
|
9
|
-
export
|
|
10
|
-
|
|
6
|
+
export var libJsStepArray = function (arr, step) {
|
|
7
|
+
var length = arr.length;
|
|
11
8
|
if (length === 0 || step % length === 0)
|
|
12
9
|
return arr;
|
|
13
|
-
|
|
10
|
+
var normalizedStep = ((step % length) + length) % length;
|
|
14
11
|
return arr.slice(-normalizedStep).concat(arr.slice(0, -normalizedStep));
|
|
15
12
|
};
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
/** @description 翻转指定索引后面的数组
|
|
2
2
|
* @param arr 数组
|
|
3
3
|
* @param index 开始索引
|
|
4
|
-
* @link
|
|
5
|
-
* @example
|
|
6
|
-
* libReverseArrayFromIndex([1, 2, 3, 4, 5], 1);
|
|
7
|
-
* // [1, 2, 5, 4, 3]
|
|
4
|
+
* @link 使用方法:https://www.npmjs.com/package/lyb-js#LibReverseArrayFromIndex-数组定位翻转
|
|
8
5
|
*/
|
|
9
6
|
export declare const libReverseArrayFromIndex: <T>(arr: T[], index: number) => T[];
|
|
@@ -1,15 +1,21 @@
|
|
|
1
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
2
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
3
|
+
if (ar || !(i in from)) {
|
|
4
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
5
|
+
ar[i] = from[i];
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
9
|
+
};
|
|
1
10
|
/** @description 翻转指定索引后面的数组
|
|
2
11
|
* @param arr 数组
|
|
3
12
|
* @param index 开始索引
|
|
4
|
-
* @link
|
|
5
|
-
* @example
|
|
6
|
-
* libReverseArrayFromIndex([1, 2, 3, 4, 5], 1);
|
|
7
|
-
* // [1, 2, 5, 4, 3]
|
|
13
|
+
* @link 使用方法:https://www.npmjs.com/package/lyb-js#LibReverseArrayFromIndex-数组定位翻转
|
|
8
14
|
*/
|
|
9
|
-
export
|
|
15
|
+
export var libReverseArrayFromIndex = function (arr, index) {
|
|
10
16
|
if (index < 0 || index >= arr.length) {
|
|
11
17
|
throw new Error("Index out of bounds");
|
|
12
18
|
}
|
|
13
|
-
|
|
14
|
-
return [
|
|
19
|
+
var subArray = arr.slice(index + 1).reverse();
|
|
20
|
+
return __spreadArray(__spreadArray([], arr.slice(0, index + 1), true), subArray, true);
|
|
15
21
|
};
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
/** @description 将链接图片下载到本地
|
|
2
2
|
* @param link 图片链接
|
|
3
3
|
* @param name 图片名称
|
|
4
|
-
* @link
|
|
5
|
-
* @example
|
|
6
|
-
* libJsDownloadImageLink("https://example.com/image.jpg", "图片.jpg");
|
|
4
|
+
* @link 使用方法:https://www.npmjs.com/package/lyb-js#LibJsDownloadImageLink-图片下载
|
|
7
5
|
*/
|
|
8
6
|
export declare const libJsDownloadImageLink: (link: string, name: string) => void;
|
|
@@ -1,16 +1,14 @@
|
|
|
1
1
|
/** @description 将链接图片下载到本地
|
|
2
2
|
* @param link 图片链接
|
|
3
3
|
* @param name 图片名称
|
|
4
|
-
* @link
|
|
5
|
-
* @example
|
|
6
|
-
* libJsDownloadImageLink("https://example.com/image.jpg", "图片.jpg");
|
|
4
|
+
* @link 使用方法:https://www.npmjs.com/package/lyb-js#LibJsDownloadImageLink-图片下载
|
|
7
5
|
*/
|
|
8
|
-
export
|
|
6
|
+
export var libJsDownloadImageLink = function (link, name) {
|
|
9
7
|
fetch(link)
|
|
10
|
-
.then((res)
|
|
11
|
-
.then((blob)
|
|
12
|
-
|
|
13
|
-
|
|
8
|
+
.then(function (res) { return res.blob(); })
|
|
9
|
+
.then(function (blob) {
|
|
10
|
+
var a = document.createElement("a");
|
|
11
|
+
var url = window.URL.createObjectURL(blob);
|
|
14
12
|
a.href = url;
|
|
15
13
|
a.download = name;
|
|
16
14
|
a.click();
|
|
@@ -14,19 +14,6 @@ export type LibJsImageOptimizerOptionsParams = {
|
|
|
14
14
|
};
|
|
15
15
|
/** @description 图片压缩,支持png压缩,保留透明背景
|
|
16
16
|
* @param obj 压缩参数
|
|
17
|
-
* @link
|
|
18
|
-
* @example
|
|
19
|
-
* libJsImageOptimizerOptionsParams({
|
|
20
|
-
* file: myFile,
|
|
21
|
-
* ratio: 0.8,
|
|
22
|
-
* width: 800,
|
|
23
|
-
* maxSize: 1024,
|
|
24
|
-
* success: (formData, file, url) => {
|
|
25
|
-
* console.log('压缩成功', formData, file, url);
|
|
26
|
-
* },
|
|
27
|
-
* fail: (error) => {
|
|
28
|
-
* console.error('压缩失败', error);
|
|
29
|
-
* }
|
|
30
|
-
* });
|
|
17
|
+
* @link 使用方法:https://www.npmjs.com/package/lyb-js#LibJsImageOptimizer-图片压缩
|
|
31
18
|
*/
|
|
32
19
|
export declare const libJsImageOptimizer: (obj: LibJsImageOptimizerOptionsParams) => void;
|
|
@@ -1,80 +1,67 @@
|
|
|
1
1
|
/** @description 图片压缩,支持png压缩,保留透明背景
|
|
2
2
|
* @param obj 压缩参数
|
|
3
|
-
* @link
|
|
4
|
-
* @example
|
|
5
|
-
* libJsImageOptimizerOptionsParams({
|
|
6
|
-
* file: myFile,
|
|
7
|
-
* ratio: 0.8,
|
|
8
|
-
* width: 800,
|
|
9
|
-
* maxSize: 1024,
|
|
10
|
-
* success: (formData, file, url) => {
|
|
11
|
-
* console.log('压缩成功', formData, file, url);
|
|
12
|
-
* },
|
|
13
|
-
* fail: (error) => {
|
|
14
|
-
* console.error('压缩失败', error);
|
|
15
|
-
* }
|
|
16
|
-
* });
|
|
3
|
+
* @link 使用方法:https://www.npmjs.com/package/lyb-js#LibJsImageOptimizer-图片压缩
|
|
17
4
|
*/
|
|
18
|
-
export
|
|
19
|
-
|
|
5
|
+
export var libJsImageOptimizer = function (obj) {
|
|
6
|
+
var canvas = document.createElement("canvas");
|
|
20
7
|
canvas.classList.add("imageOptimizer");
|
|
21
8
|
document.body.appendChild(canvas);
|
|
22
|
-
|
|
9
|
+
var files = obj.file;
|
|
23
10
|
if (!files)
|
|
24
11
|
return;
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
12
|
+
var name = files.name;
|
|
13
|
+
var extension = name.split(".").pop().toLowerCase();
|
|
14
|
+
var ratio = obj.ratio || 1;
|
|
15
|
+
var maxSize = obj.maxSize || 1024;
|
|
16
|
+
var width = obj.width || 10000;
|
|
17
|
+
var mimeType = files.type;
|
|
31
18
|
function dataURLtoFile(dataURL, filename) {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
for (
|
|
19
|
+
var arr = dataURL.split(",");
|
|
20
|
+
var mime = arr[0].match(/:(.*?);/)[1];
|
|
21
|
+
var bstr = window.atob(arr[1]);
|
|
22
|
+
var n = bstr.length;
|
|
23
|
+
var u8arr = new Uint8Array(n);
|
|
24
|
+
for (var i = 0; i < n; i++) {
|
|
38
25
|
u8arr[i] = bstr.charCodeAt(i);
|
|
39
26
|
}
|
|
40
27
|
return new File([u8arr], filename, { type: mime });
|
|
41
28
|
}
|
|
42
29
|
function formData(file) {
|
|
43
|
-
|
|
30
|
+
var data = new FormData();
|
|
44
31
|
data.append("file", file);
|
|
45
32
|
return data;
|
|
46
33
|
}
|
|
47
|
-
|
|
34
|
+
var reader = new FileReader();
|
|
48
35
|
reader.readAsDataURL(files);
|
|
49
|
-
reader.onload = (e)
|
|
50
|
-
|
|
36
|
+
reader.onload = function (e) {
|
|
37
|
+
var result = e.target.result;
|
|
51
38
|
if (e.total / 1024 > maxSize) {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
39
|
+
var image_1 = new Image();
|
|
40
|
+
image_1.src = result;
|
|
41
|
+
image_1.onload = function () {
|
|
42
|
+
var context = canvas.getContext("2d");
|
|
43
|
+
var scale = width / image_1.width;
|
|
57
44
|
if (scale < 1) {
|
|
58
|
-
canvas.width =
|
|
59
|
-
canvas.height =
|
|
60
|
-
context.drawImage(
|
|
45
|
+
canvas.width = image_1.width * scale;
|
|
46
|
+
canvas.height = image_1.height * scale;
|
|
47
|
+
context.drawImage(image_1, 0, 0, image_1.width * scale, image_1.height * scale);
|
|
61
48
|
}
|
|
62
49
|
else {
|
|
63
|
-
canvas.width =
|
|
64
|
-
canvas.height =
|
|
65
|
-
context.drawImage(
|
|
50
|
+
canvas.width = image_1.width;
|
|
51
|
+
canvas.height = image_1.height;
|
|
52
|
+
context.drawImage(image_1, 0, 0, image_1.width, image_1.height);
|
|
66
53
|
}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
54
|
+
var dataUrl = canvas.toDataURL(mimeType, ratio);
|
|
55
|
+
var newName = "".concat(name.split(".")[0], ".").concat(extension);
|
|
56
|
+
var file = dataURLtoFile(dataUrl, newName);
|
|
70
57
|
obj.success(formData(file), file, dataUrl);
|
|
71
58
|
canvas.remove();
|
|
72
59
|
};
|
|
73
|
-
|
|
60
|
+
image_1.onerror = obj.fail;
|
|
74
61
|
}
|
|
75
62
|
else {
|
|
76
|
-
|
|
77
|
-
|
|
63
|
+
var newName = "".concat(name.split(".")[0], ".").concat(extension);
|
|
64
|
+
var file = dataURLtoFile(result, newName);
|
|
78
65
|
obj.success(formData(file), file, result);
|
|
79
66
|
canvas.remove();
|
|
80
67
|
}
|
|
@@ -2,9 +2,6 @@
|
|
|
2
2
|
* @description 保存文件到本地
|
|
3
3
|
* @param name 文件名
|
|
4
4
|
* @param data 要保存的数据
|
|
5
|
-
* @link
|
|
6
|
-
* @example
|
|
7
|
-
* libJsSaveJson("example.json", JSON.stringify({ key: "value" }));
|
|
8
|
-
* libJsSaveJson("example.txt", "Hellow World!");
|
|
5
|
+
* @link 使用方法:https://www.npmjs.com/package/lyb-js#LibJsSaveJson-保存文件
|
|
9
6
|
*/
|
|
10
7
|
export declare const libJsSaveJson: (name: string, data: BlobPart) => void;
|
|
@@ -2,15 +2,12 @@
|
|
|
2
2
|
* @description 保存文件到本地
|
|
3
3
|
* @param name 文件名
|
|
4
4
|
* @param data 要保存的数据
|
|
5
|
-
* @link
|
|
6
|
-
* @example
|
|
7
|
-
* libJsSaveJson("example.json", JSON.stringify({ key: "value" }));
|
|
8
|
-
* libJsSaveJson("example.txt", "Hellow World!");
|
|
5
|
+
* @link 使用方法:https://www.npmjs.com/package/lyb-js#LibJsSaveJson-保存文件
|
|
9
6
|
*/
|
|
10
|
-
export
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
7
|
+
export var libJsSaveJson = function (name, data) {
|
|
8
|
+
var urlObject = window.URL || window.webkitURL;
|
|
9
|
+
var exportBlob = new Blob([data]);
|
|
10
|
+
var saveLink = document.createElement("a");
|
|
14
11
|
saveLink.href = urlObject.createObjectURL(exportBlob);
|
|
15
12
|
saveLink.download = name;
|
|
16
13
|
saveLink.click();
|
|
@@ -2,9 +2,6 @@
|
|
|
2
2
|
* @description 格式化字节大小
|
|
3
3
|
* @param bytes 字节数
|
|
4
4
|
* @returns ['大小', '单位', '大小及单位']
|
|
5
|
-
* @link
|
|
6
|
-
* @example
|
|
7
|
-
* const [size, unit, formatted] = libJsFormatterByte(2048);
|
|
8
|
-
* console.log(size, unit, formatted); //2.00 KB 2.00 KB
|
|
5
|
+
* @link 使用方法:https://www.npmjs.com/package/lyb-js#LibJsFormatterByte-字节格式化
|
|
9
6
|
*/
|
|
10
7
|
export declare const libJsFormatterByte: (bytes: number) => (string | number)[];
|
|
@@ -2,17 +2,14 @@
|
|
|
2
2
|
* @description 格式化字节大小
|
|
3
3
|
* @param bytes 字节数
|
|
4
4
|
* @returns ['大小', '单位', '大小及单位']
|
|
5
|
-
* @link
|
|
6
|
-
* @example
|
|
7
|
-
* const [size, unit, formatted] = libJsFormatterByte(2048);
|
|
8
|
-
* console.log(size, unit, formatted); //2.00 KB 2.00 KB
|
|
5
|
+
* @link 使用方法:https://www.npmjs.com/package/lyb-js#LibJsFormatterByte-字节格式化
|
|
9
6
|
*/
|
|
10
|
-
export
|
|
7
|
+
export var libJsFormatterByte = function (bytes) {
|
|
11
8
|
if (bytes <= 0)
|
|
12
9
|
return [0, "B", "0 B"];
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
return [size, sizes[i],
|
|
10
|
+
var k = 1024;
|
|
11
|
+
var sizes = ["B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"];
|
|
12
|
+
var i = Math.min(Math.floor(Math.log(bytes) / Math.log(k)), sizes.length - 1);
|
|
13
|
+
var size = (bytes / Math.pow(k, i)).toFixed(2);
|
|
14
|
+
return [size, sizes[i], "".concat(size, " ").concat(sizes[i])];
|
|
18
15
|
};
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @description 隐藏手机号码中间的四位数字
|
|
3
3
|
* @param mobile 需要处理的手机号码
|
|
4
|
-
|
|
5
|
-
* @example
|
|
6
|
-
* const masked = libJsMaskPhoneNumber("13812345678");
|
|
7
|
-
* console.log(masked); //138****5678
|
|
4
|
+
* @link 使用方法:https://www.npmjs.com/package/lyb-js#LibJsMaskPhoneNumber-隐藏手机号码
|
|
8
5
|
*/
|
|
9
6
|
export declare const libJsMaskPhoneNumber: (mobile: number | string) => string;
|
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @description 隐藏手机号码中间的四位数字
|
|
3
3
|
* @param mobile 需要处理的手机号码
|
|
4
|
-
|
|
5
|
-
* @example
|
|
6
|
-
* const masked = libJsMaskPhoneNumber("13812345678");
|
|
7
|
-
* console.log(masked); //138****5678
|
|
4
|
+
* @link 使用方法:https://www.npmjs.com/package/lyb-js#LibJsMaskPhoneNumber-隐藏手机号码
|
|
8
5
|
*/
|
|
9
|
-
export
|
|
10
|
-
|
|
6
|
+
export var libJsMaskPhoneNumber = function (mobile) {
|
|
7
|
+
var m = mobile.toString();
|
|
11
8
|
return m.replace(/^(\d{3})\d{4}(\d{4})$/, "$1****$2");
|
|
12
9
|
};
|
|
@@ -2,9 +2,6 @@
|
|
|
2
2
|
* @description 数字每三位添加逗号
|
|
3
3
|
* @param num 需要格式化的数字
|
|
4
4
|
* @param reserve 保留小数位数
|
|
5
|
-
* @link
|
|
6
|
-
* @example
|
|
7
|
-
* const formatted = libJsNumComma(1234567.89);
|
|
8
|
-
* console.log(formatted); //1,234,567.89
|
|
5
|
+
* @link 使用方法:https://www.npmjs.com/package/lyb-js#LibJsNumComma-数字逗号
|
|
9
6
|
*/
|
|
10
7
|
export declare const libJsNumComma: (num: number, reserve?: number) => string;
|
|
@@ -2,13 +2,11 @@
|
|
|
2
2
|
* @description 数字每三位添加逗号
|
|
3
3
|
* @param num 需要格式化的数字
|
|
4
4
|
* @param reserve 保留小数位数
|
|
5
|
-
* @link
|
|
6
|
-
* @example
|
|
7
|
-
* const formatted = libJsNumComma(1234567.89);
|
|
8
|
-
* console.log(formatted); //1,234,567.89
|
|
5
|
+
* @link 使用方法:https://www.npmjs.com/package/lyb-js#LibJsNumComma-数字逗号
|
|
9
6
|
*/
|
|
10
|
-
export
|
|
11
|
-
|
|
12
|
-
|
|
7
|
+
export var libJsNumComma = function (num, reserve) {
|
|
8
|
+
if (reserve === void 0) { reserve = 2; }
|
|
9
|
+
var str = num.toFixed(reserve).toString();
|
|
10
|
+
var reg = str.indexOf(".") > -1 ? /(\d)(?=(\d{3})+\.)/g : /(\d)(?=(?:\d{3})+$)/g;
|
|
13
11
|
return str.replace(reg, "$1,");
|
|
14
12
|
};
|
|
@@ -1,13 +1,10 @@
|
|
|
1
|
-
export interface LibJsNumberUnitParams {
|
|
2
|
-
[unit: string]: number;
|
|
3
|
-
}
|
|
4
1
|
/** @description 将大于1000的数字使用k为单位
|
|
5
2
|
* @param num 数字
|
|
6
3
|
* @param units 单位组,key为单位,value为格式化阈值
|
|
7
|
-
* @
|
|
8
|
-
* @
|
|
9
|
-
* @
|
|
10
|
-
* const [value, unit] = libJsNumberUnit(1500, { K: 1000, M: 1000000 });
|
|
11
|
-
* console.log(value, unit); //1.50 K
|
|
4
|
+
* @param point 保留几位小数
|
|
5
|
+
* @returns [数字, 单位, 数字+单位]
|
|
6
|
+
* @link 使用方法:https://www.npmjs.com/package/lyb-js#LibJsNumberUnit-数字单位
|
|
12
7
|
*/
|
|
13
|
-
export declare const libJsNumberUnit: (num: number, units:
|
|
8
|
+
export declare const libJsNumberUnit: (num: number, units: {
|
|
9
|
+
string: number;
|
|
10
|
+
}, point?: number) => string[];
|