amos-tool 1.4.7 → 1.4.8
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/.prettierignore +2 -2
- package/.prettierrc +50 -50
- package/README.md +667 -667
- package/apis/objectPath.md +129 -129
- package/index.d.ts +11 -2
- package/index.js +3 -3
- package/lib/_browser.js +10 -8
- package/lib/_clone.js +68 -57
- package/lib/_cookie.js +50 -47
- package/lib/_deepCopy.js +14 -19
- package/lib/_deepEqual.js +7 -8
- package/lib/_fastDeepEqual.js +26 -34
- package/lib/_flashSupport.js +13 -10
- package/lib/_forOwn.js +8 -7
- package/lib/_funcThrottle.js +16 -15
- package/lib/_isnode.js +2 -1
- package/lib/_list.js +74 -79
- package/lib/_object.assign.js +19 -19
- package/lib/_object.entries.js +8 -7
- package/lib/_object.values.js +8 -7
- package/lib/_omit.js +12 -11
- package/lib/_parseJson.js +7 -6
- package/lib/_pick.js +8 -7
- package/lib/_queue.js +24 -21
- package/lib/_shallowCopy.js +24 -23
- package/lib/_stringify.js +13 -10
- package/lib/_supportWs.js +5 -5
- package/lib/_trim.js +5 -4
- package/lib/_typeOfList.js +22 -21
- package/lib/_uuids.js +30 -35
- package/lib/amostool.js +4 -66
- package/lib/array2tree.js +9 -9
- package/lib/arrayFilter.js +18 -19
- package/lib/arrayUtils.js +10 -8
- package/lib/browser/Cookie.js +35 -36
- package/lib/browser/indexDB.js +72 -71
- package/lib/browserSupport.js +76 -71
- package/lib/completeUnit.js +7 -4
- package/lib/consts.js +2 -1
- package/lib/dom/canvas2img.js +61 -72
- package/lib/dom/canvasTools.js +11 -16
- package/lib/dom/downloadFile.js +17 -12
- package/lib/dom/eventHelper.js +8 -6
- package/lib/dom/fileBlob.js +14 -14
- package/lib/dom/fileSaveAs.js +54 -61
- package/lib/dom/getFontSize.js +7 -10
- package/lib/dom/minfyImg.js +27 -24
- package/lib/encrypt/_base64.js +32 -25
- package/lib/encrypt/_md5.js +68 -31
- package/lib/encrypt/des.js +430 -366
- package/lib/extra/_common.js +120 -161
- package/lib/extra/filterNull.js +5 -4
- package/lib/extra/find.js +10 -11
- package/lib/extra/index.js +4 -3
- package/lib/extra/memo.js +18 -0
- package/lib/extra/pathToTree.js +49 -36
- package/lib/extra/pwdStrength.js +4 -2
- package/lib/extra/sortBy.js +28 -30
- package/lib/flat.js +9 -13
- package/lib/locationParams.js +93 -95
- package/lib/log.js +20 -26
- package/lib/math/_keyColor.js +3 -1
- package/lib/math/addition.js +9 -7
- package/lib/math/amountCase.js +8 -12
- package/lib/math/coinFormat.js +6 -4
- package/lib/math/colorUtil.js +91 -94
- package/lib/math/dateTime.js +79 -97
- package/lib/math/operations.js +33 -37
- package/lib/math/pwdStrength.js +4 -2
- package/lib/math/randomColor.js +17 -5
- package/lib/math/subtraction.js +10 -9
- package/lib/merged.js +9 -9
- package/lib/objectPath.js +81 -82
- package/lib/parseText.js +8 -7
- package/lib/png/Identicon.js +32 -28
- package/lib/png/pnglib.js +59 -34
- package/lib/png/randomPic.js +8 -14
- package/lib/positionFactory.js +28 -28
- package/lib/pwdPolicy.js +27 -31
- package/lib/qs/_assign.js +7 -5
- package/lib/qs/_merge.js +20 -23
- package/lib/qs/_tools.js +3 -2
- package/lib/qs/formats.js +6 -5
- package/lib/qs/index.js +4 -4
- package/lib/qs/parse.js +56 -51
- package/lib/qs/stringify.js +54 -69
- package/lib/qs/utils.js +70 -83
- package/lib/random.js +5 -4
- package/lib/shallowEqual.js +25 -29
- package/lib/store.js +93 -95
- package/lib/strUtils.js +52 -43
- package/lib/tableFilter.js +178 -169
- package/lib/throttleDebounce.js +18 -22
- package/lib/url/encodeUrl.js +5 -4
- package/lib/url/restfulUrl.js +8 -7
- package/lib/utils.js +171 -222
- package/lib/xss/htmlEncode.js +3 -2
- package/lib/xss/implementEncode.js +36 -37
- package/lib/xss/index.js +4 -3
- package/package.json +4 -4
- package/docs/Logger.html +0 -189
- package/docs/fonts/Montserrat/Montserrat-Bold.eot +0 -0
- package/docs/fonts/Montserrat/Montserrat-Bold.ttf +0 -0
- package/docs/fonts/Montserrat/Montserrat-Bold.woff +0 -0
- package/docs/fonts/Montserrat/Montserrat-Bold.woff2 +0 -0
- package/docs/fonts/Montserrat/Montserrat-Regular.eot +0 -0
- package/docs/fonts/Montserrat/Montserrat-Regular.ttf +0 -0
- package/docs/fonts/Montserrat/Montserrat-Regular.woff +0 -0
- package/docs/fonts/Montserrat/Montserrat-Regular.woff2 +0 -0
- package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.eot +0 -0
- package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.svg +0 -978
- package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.ttf +0 -0
- package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.woff +0 -0
- package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.woff2 +0 -0
- package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.eot +0 -0
- package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.svg +0 -1049
- package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.ttf +0 -0
- package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.woff +0 -0
- package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.woff2 +0 -0
- package/docs/global.html +0 -14535
- package/docs/index.html +0 -791
- package/docs/scripts/collapse.js +0 -20
- package/docs/scripts/linenumber.js +0 -25
- package/docs/scripts/nav.js +0 -12
- package/docs/scripts/polyfill.js +0 -4
- package/docs/scripts/prettify/Apache-License-2.0.txt +0 -202
- package/docs/scripts/prettify/lang-css.js +0 -2
- package/docs/scripts/prettify/prettify.js +0 -28
- package/docs/scripts/search.js +0 -83
- package/docs/styles/jsdoc.css +0 -765
- package/docs/styles/prettify.css +0 -79
package/lib/locationParams.js
CHANGED
|
@@ -1,105 +1,103 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
getValue: function(n) {
|
|
12
|
-
e.forEach(function(t) {
|
|
13
|
-
t = t.split("=");
|
|
14
|
-
if (t[0] === n) return t[1]
|
|
15
|
-
})
|
|
16
|
-
},
|
|
17
|
-
getParameters: function() {
|
|
18
|
-
var n = [];
|
|
19
|
-
return e.forEach(function(t) {
|
|
20
|
-
n.push(t.split("=")[0])
|
|
21
|
-
}), n
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
},
|
|
25
|
-
_LocationSearch = {
|
|
26
|
-
_keyValuePairs: [],
|
|
27
|
-
init: function() {
|
|
28
|
-
var t = window.location.search;
|
|
29
|
-
if (utils.isEmpty(t)) throw new Error("the [window.location.search] not empty!");
|
|
30
|
-
t = 1 < t.length ? t.substring(1) : null;
|
|
31
|
-
return utils.isNull(t) || (_LocationSearch._keyValuePairs = [].slice.call(t.split("&"))), this
|
|
32
|
-
},
|
|
2
|
+
|
|
3
|
+
var utils = require("./utils"), _LSFN = function() {
|
|
4
|
+
var t = [];
|
|
5
|
+
return function() {
|
|
6
|
+
var n = window.location.search;
|
|
7
|
+
if (utils.isEmpty(n)) throw new Error("the [window.location.search] not empty!");
|
|
8
|
+
var e = n.length > 1 ? n.substring(1) : null;
|
|
9
|
+
utils.isNull(e) || (t = [].slice.call(e.split("&")));
|
|
10
|
+
}(), {
|
|
33
11
|
getValue: function(n) {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
if (
|
|
37
|
-
})
|
|
12
|
+
t.forEach((function(t) {
|
|
13
|
+
var e = t.split("=");
|
|
14
|
+
if (e[0] === n) return e[1];
|
|
15
|
+
}));
|
|
38
16
|
},
|
|
39
17
|
getParameters: function() {
|
|
40
18
|
var n = [];
|
|
41
|
-
return
|
|
42
|
-
n.push(t.split("=")[0])
|
|
43
|
-
}), n
|
|
19
|
+
return t.forEach((function(t) {
|
|
20
|
+
n.push(t.split("=")[0]);
|
|
21
|
+
})), n;
|
|
44
22
|
}
|
|
23
|
+
};
|
|
24
|
+
}, _LocationSearch = {
|
|
25
|
+
_keyValuePairs: [],
|
|
26
|
+
init: function() {
|
|
27
|
+
var t = window.location.search;
|
|
28
|
+
if (utils.isEmpty(t)) throw new Error("the [window.location.search] not empty!");
|
|
29
|
+
var n = t.length > 1 ? t.substring(1) : null;
|
|
30
|
+
return utils.isNull(n) || (_LocationSearch._keyValuePairs = [].slice.call(n.split("&"))),
|
|
31
|
+
this;
|
|
45
32
|
},
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
var
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
33
|
+
getValue: function(t) {
|
|
34
|
+
_LocationSearch._keyValuePairs.forEach((function(n) {
|
|
35
|
+
var e = n.split("=");
|
|
36
|
+
if (e[0] === t) return e[1];
|
|
37
|
+
}));
|
|
38
|
+
},
|
|
39
|
+
getParameters: function() {
|
|
40
|
+
var t = [];
|
|
41
|
+
return _LocationSearch._keyValuePairs.forEach((function(n) {
|
|
42
|
+
t.push(n.split("=")[0]);
|
|
43
|
+
})), t;
|
|
44
|
+
}
|
|
45
|
+
}, LocationParam = {
|
|
46
|
+
parse: function(t) {
|
|
47
|
+
var n, e, i, r, o;
|
|
48
|
+
t || (t = window.location.search);
|
|
49
|
+
var a = {}, c = [];
|
|
50
|
+
if (!utils.isEmpty(t) && t.length > 1) for (r = 0, o = (c = t.slice(1 + t.indexOf("?"), t.length).split("&")).length; r < o; r++) n = (e = (e = c[r]).split("="))[0],
|
|
51
|
+
i = e[1], n in a ? (utils.isArray(a[n]) || (a[n] = [ a[n] ]), a[n].push(decodeURIComponent(i))) : a[n] = decodeURIComponent(i);
|
|
52
|
+
return a;
|
|
53
|
+
},
|
|
54
|
+
paramSearch: function(t, n) {
|
|
55
|
+
if (utils.isUndefined(n) || utils.isNull(n)) {
|
|
56
|
+
if (n = window.location.search, utils.isUndefined(t) || utils.isNull(t)) {
|
|
57
|
+
for (var e = n.substr(1, n.length - 1).split("&"), i = {}, r = 0; r < e.length; r++) {
|
|
58
|
+
var o = e[r].split("=");
|
|
59
|
+
1 === o.length ? i[o[0]] = "" : 2 === o.length ? i[o[0]] = decodeURIComponent(o[1]) : console.log("there is something wrong when use [paramSearch]!");
|
|
69
60
|
}
|
|
61
|
+
return i;
|
|
70
62
|
}
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
var o = i.indexOf("?");
|
|
77
|
-
if (o < -1) console.log("the location.href is invalid!");
|
|
78
|
-
else
|
|
79
|
-
for (var r = (i = i.substr(o + 1)).split("&"), a = 0; a < r.length; a++) 0 < (o = r[a].indexOf("=")) && (t = r[a].substring(0, o), n = r[a].substr(o + 1), e[t] = decodeURIComponent(n))
|
|
63
|
+
try {
|
|
64
|
+
var a = new RegExp(t + "=([^&]+)?");
|
|
65
|
+
return decodeURIComponent(n.match(a)[1]);
|
|
66
|
+
} catch (t) {
|
|
67
|
+
return null;
|
|
80
68
|
}
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
n =
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
getLocationParams: function() {
|
|
72
|
+
var t, n, e = {}, i = window.location.href;
|
|
73
|
+
if (!utils.isEmpty(i)) {
|
|
74
|
+
var r = i.indexOf("?");
|
|
75
|
+
if (r < -1) console.log("the location.href is invalid!"); else for (var o = (i = i.substr(r + 1)).split("&"), a = 0; a < o.length; a++) (r = o[a].indexOf("=")) > 0 && (t = o[a].substring(0, r),
|
|
76
|
+
n = o[a].substr(r + 1), e[t] = decodeURIComponent(n));
|
|
77
|
+
}
|
|
78
|
+
return e;
|
|
79
|
+
},
|
|
80
|
+
getLocationParamByName: function(t) {
|
|
81
|
+
var n = new RegExp("(^|&)" + t + "=([^&]*)(&|$)"), e = window.location.search.substr(1).match(n);
|
|
82
|
+
return null != e ? decodeURIComponent(e[2]) : null;
|
|
83
|
+
},
|
|
84
|
+
getParameter: function(t, n) {
|
|
85
|
+
var e = new RegExp("(\\?|#|&)" + n + "=([^&#]*)(&|#|$)"), i = t.match(e);
|
|
86
|
+
return i ? i[2] : "";
|
|
87
|
+
},
|
|
88
|
+
extractParam: function(t, n) {
|
|
89
|
+
var e = new RegExp("(^|&?)".concat(n, "=([^&]*)(&|$)"), "i"), i = t.substr(1).match(e);
|
|
90
|
+
return utils.isNil(i) ? null : decodeURIComponent(i[2]);
|
|
91
|
+
},
|
|
92
|
+
completeParam: function(t, n) {
|
|
93
|
+
n || (n = window.location.href);
|
|
94
|
+
var e = (Object.keys(t) || []).reduce((function(n, e) {
|
|
95
|
+
return n += "&".concat(e, "=").concat(t[e]);
|
|
96
|
+
}), "");
|
|
97
|
+
return e ? (e = e.slice(1), -1 !== n.indexOf("?") ? n.endsWith("?") ? "".concat(n).concat(e) : "".concat(n, "&").concat(e) : "".concat(n, "?").concat(e)) : n;
|
|
98
|
+
},
|
|
99
|
+
LocationSearch: _LocationSearch,
|
|
100
|
+
LSFN: _LSFN
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
module.exports = LocationParam;
|
package/lib/log.js
CHANGED
|
@@ -1,38 +1,32 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var Logger = function() {
|
|
3
|
-
var s = this,
|
|
4
|
-
o = 0,
|
|
5
|
-
i = 1,
|
|
6
|
-
t = 2,
|
|
7
|
-
n = 3,
|
|
8
|
-
r = 4,
|
|
9
|
-
g = 5,
|
|
10
|
-
l = ["TRACE", "DEBUG", "INFO", "WARN", "ERROR", "FATAL"];
|
|
11
2
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
3
|
+
var Logger = function() {
|
|
4
|
+
var o = this, i = 0, t = 1, n = 2, r = 3, s = 4, g = 5, l = [ "TRACE", "DEBUG", "INFO", "WARN", "ERROR", "FATAL" ];
|
|
5
|
+
function c(i, t) {
|
|
6
|
+
var n = [];
|
|
7
|
+
for (var r in n.push(i), t) n.push(t[r]);
|
|
8
|
+
o.log.apply(o, n);
|
|
16
9
|
}
|
|
17
10
|
this.log = function() {
|
|
18
|
-
var o =
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
var t =
|
|
22
|
-
throw new Error(t.join(","))
|
|
11
|
+
var o = arguments[0], i = o === s;
|
|
12
|
+
if (o = arguments[0] = "[" + l[o] + "] ", window.LogConfig && window.LogConfig.isDebug && (console.log.apply(console, arguments),
|
|
13
|
+
i)) try {
|
|
14
|
+
var t = Array.prototype.slice.call(arguments);
|
|
15
|
+
throw t = t.slice(1), new Error(t.join(","));
|
|
23
16
|
} catch (o) {}
|
|
24
17
|
}, this.trace = function() {
|
|
25
|
-
this.log && c(
|
|
18
|
+
this.log && c(i, arguments);
|
|
26
19
|
}, this.debug = function() {
|
|
27
|
-
this.log && c(
|
|
20
|
+
this.log && c(t, arguments);
|
|
28
21
|
}, this.info = function() {
|
|
29
|
-
this.log && c(
|
|
22
|
+
this.log && c(n, arguments);
|
|
30
23
|
}, this.warn = function() {
|
|
31
|
-
this.log && c(
|
|
24
|
+
this.log && c(r, arguments);
|
|
32
25
|
}, this.error = function() {
|
|
33
|
-
this.log && c(
|
|
26
|
+
this.log && c(s, arguments);
|
|
34
27
|
}, this.fatal = function() {
|
|
35
|
-
this.log && c(g, arguments)
|
|
36
|
-
}
|
|
28
|
+
this.log && c(g, arguments);
|
|
29
|
+
};
|
|
37
30
|
};
|
|
38
|
-
|
|
31
|
+
|
|
32
|
+
module.exports = new Logger;
|
package/lib/math/_keyColor.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
|
|
2
3
|
var colorKeyWordsHexStr = {
|
|
3
4
|
aliceblue: "#f0f8ff",
|
|
4
5
|
antiquewhite: "#faebd7",
|
|
@@ -149,4 +150,5 @@ var colorKeyWordsHexStr = {
|
|
|
149
150
|
yellow: "#ffff00",
|
|
150
151
|
yellowgreen: "#9acd32"
|
|
151
152
|
};
|
|
152
|
-
|
|
153
|
+
|
|
154
|
+
module.exports = colorKeyWordsHexStr;
|
package/lib/math/addition.js
CHANGED
|
@@ -1,19 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
|
|
2
3
|
var pow = function(t) {
|
|
3
|
-
return Math.pow(10, t)
|
|
4
|
+
return Math.pow(10, t);
|
|
4
5
|
};
|
|
6
|
+
|
|
5
7
|
module.exports = function(t, r) {
|
|
6
8
|
var n, o;
|
|
7
9
|
try {
|
|
8
|
-
n = t.toString().split(".")[1].length
|
|
10
|
+
n = t.toString().split(".")[1].length;
|
|
9
11
|
} catch (t) {
|
|
10
|
-
n = 0
|
|
12
|
+
n = 0;
|
|
11
13
|
}
|
|
12
14
|
try {
|
|
13
|
-
o = r.toString().split(".")[1].length
|
|
15
|
+
o = r.toString().split(".")[1].length;
|
|
14
16
|
} catch (t) {
|
|
15
|
-
o = 0
|
|
17
|
+
o = 0;
|
|
16
18
|
}
|
|
17
19
|
var a = pow(Math.max(n, o));
|
|
18
|
-
return Number((t * a + r * a) / a)
|
|
19
|
-
};
|
|
20
|
+
return Number((t * a + r * a) / a);
|
|
21
|
+
};
|
package/lib/math/amountCase.js
CHANGED
|
@@ -1,18 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
|
|
2
3
|
module.exports = function(r) {
|
|
3
|
-
var e = ["角", "分", "厘"],
|
|
4
|
-
a = ["零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"],
|
|
5
|
-
o = [
|
|
6
|
-
["元", "万", "亿"],
|
|
7
|
-
["", "拾", "佰", "仟"]
|
|
8
|
-
],
|
|
9
|
-
t = r < 0 ? "欠人民币" : "人民币";
|
|
4
|
+
var e = [ "角", "分", "厘" ], a = [ "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" ], o = [ [ "元", "万", "亿" ], [ "", "拾", "佰", "仟" ] ], t = r < 0 ? "欠人民币" : "人民币";
|
|
10
5
|
r = Math.abs(r);
|
|
11
6
|
for (var l = "", h = 0; h < e.length; h++) l += (a[Math.floor(10 * r * Math.pow(10, h)) % 10] + e[h]).replace(/零./, "");
|
|
12
7
|
l = l || "整", r = Math.floor(r);
|
|
13
|
-
for (h = 0; h < o[0].length &&
|
|
14
|
-
for (var f = "", c = 0; c < o[1].length &&
|
|
15
|
-
|
|
8
|
+
for (h = 0; h < o[0].length && r > 0; h++) {
|
|
9
|
+
for (var f = "", c = 0; c < o[1].length && r > 0; c++) f = a[r % 10] + o[1][c] + f,
|
|
10
|
+
r = Math.floor(r / 10);
|
|
11
|
+
l = f + o[0][h] + l;
|
|
16
12
|
}
|
|
17
|
-
return t + l.replace(/(零.)*零元/, "元").replace(/(零.)+/g, "零").replace(/^整$/, "零元整")
|
|
18
|
-
};
|
|
13
|
+
return t + l.replace(/(零.)*零元/, "元").replace(/(零.)+/g, "零").replace(/^整$/, "零元整");
|
|
14
|
+
};
|
package/lib/math/coinFormat.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
|
|
2
3
|
var utils = require("./../utils");
|
|
4
|
+
|
|
3
5
|
module.exports = function(t, i, e) {
|
|
4
|
-
var r =
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
};
|
|
6
|
+
var r, o = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : "$", s = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : "";
|
|
7
|
+
return !isNaN(parseFloat(t)) && isFinite(t) ? (t = Number(t), (r = (t = (utils.isNil(i) ? t : (Math.round(t * Math.pow(10, i)) / Math.pow(10, i)).toFixed(i)).toString()).split("."))[0] = r[0].toString().replace(/(\d)(?=(\d{3})+(?!\d))/g, "$1" + (e || ",")),
|
|
8
|
+
o + r.join(".") + s) : "";
|
|
9
|
+
};
|
package/lib/math/colorUtil.js
CHANGED
|
@@ -1,137 +1,134 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
}
|
|
14
|
-
if (!colorRegex.test(r)) return r;
|
|
15
|
-
var s = r.replace(/#/, "").split("");
|
|
16
|
-
if (6 === s.length) return r;
|
|
17
|
-
if (3 === s.length) {
|
|
18
|
-
for (var l = "#", u = 0; u < s.length; u += 1) l += s[u] + s[u];
|
|
19
|
-
return l
|
|
2
|
+
|
|
3
|
+
var utils = require("./../utils"), colorKeyWordsHexStr = require("./_keyColor"), strRGBA = function(r) {
|
|
4
|
+
return r.a || 0 === r.a ? "rgba(" + r.r + "," + r.g + "," + r.b + "," + r.a + ")" : "rgb(" + r.r + "," + r.g + "," + r.b + ")";
|
|
5
|
+
}, colorRegex = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/, rgbaRegex = /(?:\(|\)|rgba?|RGBA?)*/g, toStringHexColor = function(r) {
|
|
6
|
+
if (/^(rgba?|RGBA?)/.test(r)) {
|
|
7
|
+
for (var e = r.replace(rgbaRegex, "").split(","), t = "#", o = 0; o < e.length; o++) if (3 === o) {
|
|
8
|
+
var n = Number(e[o]);
|
|
9
|
+
n < 1 && (t += n = n.toString(16).substring(2, 4));
|
|
10
|
+
} else {
|
|
11
|
+
var s = Number(e[o]).toString(16);
|
|
12
|
+
1 === s.length && (s = s.repeat(2)), t += s;
|
|
20
13
|
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
14
|
+
return 7 !== t.length && 9 !== t.length && (t = r), t;
|
|
15
|
+
}
|
|
16
|
+
if (!colorRegex.test(r)) return r;
|
|
17
|
+
var l = r.replace(/#/, "").split("");
|
|
18
|
+
if (6 === l.length) return r;
|
|
19
|
+
if (3 === l.length) {
|
|
20
|
+
for (var u = "#", i = 0; i < l.length; i += 1) u += l[i] + l[i];
|
|
21
|
+
return u;
|
|
22
|
+
}
|
|
23
|
+
}, toHexColor = function(r) {
|
|
24
|
+
if (isHexColor(r)) return r;
|
|
25
|
+
if (isKeyColor(r)) return colorKeyWordsHexStr[r];
|
|
26
|
+
var e = r;
|
|
27
|
+
r.indexOf("rgb") > -1 && (e = e.replace(rgbaRegex, ""));
|
|
28
|
+
for (var t = e.split(","), o = "#", n = 0; n < t.length; n++) if (n < 3) {
|
|
29
|
+
var s = Number(t[n]).toString(16);
|
|
30
|
+
1 === s.length && (s = s.repeat(2)), o += s;
|
|
31
|
+
}
|
|
32
|
+
return o.length > 7 && (o = r), o;
|
|
33
|
+
}, toRGBcolor = function(r) {
|
|
34
|
+
var e = r.toLowerCase();
|
|
35
|
+
if (e && colorRegex.test(e)) {
|
|
36
|
+
if (4 === e.length) {
|
|
37
|
+
for (var t = "#", o = 1; o < 4; o += 1) t += e.slice(o, o + 1).concat(e.slice(o, o + 1));
|
|
38
|
+
e = t;
|
|
37
39
|
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
40
|
+
for (var n = [], s = 1; s < 7; s += 2) n.push(parseInt("0x" + e.slice(s, s + 2)));
|
|
41
|
+
return "rgb(" + n.join(",") + ")";
|
|
42
|
+
}
|
|
43
|
+
return e;
|
|
44
|
+
}, transformColor = function(r) {
|
|
45
|
+
var e = /#([a-zA-Z0-9]{6})/.exec(r), t = "rgb(";
|
|
46
|
+
if (e && 2 == e.length) {
|
|
47
|
+
var o = e[1];
|
|
48
|
+
t += parseInt("0x" + o.substr(0, 2)) + ",", t += parseInt("0x" + o.substr(2, 2)) + ",",
|
|
49
|
+
t += parseInt("0x" + o.substr(4, 2)), t += ")";
|
|
50
|
+
} else t = "rgb(147, 147, 147)";
|
|
51
|
+
return t;
|
|
52
|
+
};
|
|
45
53
|
|
|
46
54
|
function isRgbColor(r) {
|
|
47
55
|
var e = r.replace(rgbaRegex, "").split(",");
|
|
48
|
-
return !/^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/.test(r) &&
|
|
56
|
+
return !/^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/.test(r) && e.length >= 3;
|
|
49
57
|
}
|
|
50
58
|
|
|
51
59
|
function isHexColor(r) {
|
|
52
|
-
return /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/.test(r)
|
|
60
|
+
return /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/.test(r);
|
|
53
61
|
}
|
|
54
62
|
|
|
55
63
|
function isKeyColor(r) {
|
|
56
|
-
return !!colorKeyWordsHexStr[r]
|
|
64
|
+
return !!colorKeyWordsHexStr[r];
|
|
57
65
|
}
|
|
58
66
|
|
|
59
67
|
function keyColorToHex(r) {
|
|
60
|
-
return colorKeyWordsHexStr[r] || r
|
|
68
|
+
return colorKeyWordsHexStr[r] || r;
|
|
61
69
|
}
|
|
62
70
|
|
|
63
71
|
function rgb2object(r) {
|
|
64
72
|
if (isRgbColor(r)) {
|
|
65
|
-
|
|
66
|
-
if (3 ==
|
|
67
|
-
r:
|
|
68
|
-
g:
|
|
69
|
-
b:
|
|
73
|
+
var e = r.replace(rgbaRegex, "").split(",");
|
|
74
|
+
if (3 == e.length) return {
|
|
75
|
+
r: e[0],
|
|
76
|
+
g: e[1],
|
|
77
|
+
b: e[2],
|
|
70
78
|
a: "1"
|
|
71
79
|
};
|
|
72
|
-
if (
|
|
73
|
-
r:
|
|
74
|
-
g:
|
|
75
|
-
b:
|
|
76
|
-
a:
|
|
77
|
-
}
|
|
80
|
+
if (e.length > 3) return {
|
|
81
|
+
r: e[0],
|
|
82
|
+
g: e[1],
|
|
83
|
+
b: e[2],
|
|
84
|
+
a: e[3] || "1"
|
|
85
|
+
};
|
|
78
86
|
}
|
|
79
87
|
return {
|
|
80
88
|
r: "0",
|
|
81
89
|
g: "0",
|
|
82
90
|
b: "0",
|
|
83
91
|
a: "1"
|
|
84
|
-
}
|
|
92
|
+
};
|
|
85
93
|
}
|
|
86
94
|
|
|
87
95
|
function objRGB2str(r) {
|
|
88
|
-
return utils.isObject(r) && utils.isKeyInObject(["r", "g", "b"], r) ? strRGBA(r) : strRGBA({
|
|
96
|
+
return utils.isObject(r) && utils.isKeyInObject([ "r", "g", "b" ], r) ? strRGBA(r) : strRGBA({
|
|
89
97
|
r: 0,
|
|
90
98
|
g: 0,
|
|
91
99
|
b: 0
|
|
92
|
-
})
|
|
100
|
+
});
|
|
93
101
|
}
|
|
94
102
|
|
|
95
|
-
function gradientColor(r,
|
|
96
|
-
function
|
|
97
|
-
var e = /rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/.exec(r),
|
|
98
|
-
|
|
99
|
-
o = /#([a-zA-Z0-9]{6})/.exec(r),
|
|
100
|
-
r = [];
|
|
101
|
-
if (e && 4 == e.length || t && 4 == t.length) r = e && 4 == e.length ? e : t;
|
|
102
|
-
else {
|
|
103
|
+
function gradientColor(r, e, t) {
|
|
104
|
+
var o = function(r) {
|
|
105
|
+
var e = /rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/.exec(r), t = /rgba\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*/.exec(r), o = /#([a-zA-Z0-9]{6})/.exec(r), n = [];
|
|
106
|
+
if (e && 4 == e.length || t && 4 == t.length) n = e && 4 == e.length ? e : t; else {
|
|
103
107
|
if (!o || 2 != o.length) return null;
|
|
104
|
-
|
|
105
|
-
|
|
108
|
+
var s = o[1];
|
|
109
|
+
n.push(""), n.push(parseInt("0x" + s.substr(0, 2))), n.push(parseInt("0x" + s.substr(2, 2))),
|
|
110
|
+
n.push(parseInt("0x" + s.substr(4, 2)));
|
|
106
111
|
}
|
|
107
112
|
return {
|
|
108
|
-
r: Number(
|
|
109
|
-
g: Number(
|
|
110
|
-
b: Number(
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
function
|
|
115
|
-
return
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
function l(r, e) {
|
|
119
|
-
return null == e || e < 0 || "number" != typeof e ? r : (e = Math.round(e), Math.round(r * Math.pow(10, e)) / Math.pow(10, e))
|
|
120
|
-
}
|
|
121
|
-
var u = e(r.from),
|
|
122
|
-
g = e(r.to);
|
|
113
|
+
r: Number(n[1]),
|
|
114
|
+
g: Number(n[2]),
|
|
115
|
+
b: Number(n[3])
|
|
116
|
+
};
|
|
117
|
+
}, n = o(r.from), s = o(r.to), l = function(r, e, t) {
|
|
118
|
+
return Math.round(r + (e - r) * t / 100);
|
|
119
|
+
}, u = function(r, e) {
|
|
120
|
+
return null == e || e < 0 || "number" != typeof e ? r : (e = Math.round(e), Math.round(r * Math.pow(10, e)) / Math.pow(10, e));
|
|
121
|
+
};
|
|
123
122
|
return function(r) {
|
|
124
|
-
var
|
|
125
|
-
t = s(u.r, g.r, 100 * l(e, 2)),
|
|
126
|
-
r = s(u.g, g.g, 100 * l(e, 2)),
|
|
127
|
-
e = s(u.b, g.b, 100 * l(e, 2));
|
|
123
|
+
var o = t == e ? 0 : (r.value - e) / (t - e), i = l(n.r, s.r, 100 * u(o, 2)), a = l(n.g, s.g, 100 * u(o, 2)), g = l(n.b, s.b, 100 * u(o, 2));
|
|
128
124
|
return strRGBA({
|
|
129
|
-
r:
|
|
130
|
-
g:
|
|
131
|
-
b:
|
|
132
|
-
})
|
|
133
|
-
}
|
|
125
|
+
r: i,
|
|
126
|
+
g: a,
|
|
127
|
+
b: g
|
|
128
|
+
});
|
|
129
|
+
};
|
|
134
130
|
}
|
|
131
|
+
|
|
135
132
|
module.exports = {
|
|
136
133
|
toStringHexColor: toStringHexColor,
|
|
137
134
|
toHexColor: toHexColor,
|
|
@@ -144,4 +141,4 @@ module.exports = {
|
|
|
144
141
|
objRGB2str: objRGB2str,
|
|
145
142
|
keyColorToHex: keyColorToHex,
|
|
146
143
|
gradientColor: gradientColor
|
|
147
|
-
};
|
|
144
|
+
};
|