amos-tool 1.4.6 → 1.4.9
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 +5 -0
- package/apis/objectPath.md +129 -129
- package/index.d.ts +23 -4
- package/index.js +3 -3
- package/lib/_browser.js +10 -8
- package/lib/_clone.js +67 -62
- package/lib/_cookie.js +35 -32
- package/lib/_deepCopy.js +17 -29
- package/lib/_deepEqual.js +6 -13
- package/lib/_fastDeepEqual.js +28 -44
- 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 +55 -67
- package/lib/_object.assign.js +14 -24
- package/lib/_object.entries.js +6 -5
- package/lib/_object.values.js +5 -4
- package/lib/_omit.js +12 -12
- 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 +14 -17
- 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 +14 -64
- package/lib/array2tree.js +9 -10
- package/lib/arrayFilter.js +17 -20
- package/lib/arrayUtils.js +13 -11
- package/lib/browser/Cookie.js +34 -35
- package/lib/browser/indexDB.js +71 -82
- package/lib/browserSupport.js +76 -71
- package/lib/completeUnit.js +7 -4
- package/lib/consts.js +2 -1
- package/lib/dom/canvas2img.js +61 -73
- package/lib/dom/canvasTools.js +9 -14
- package/lib/dom/downloadFile.js +15 -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 +30 -25
- package/lib/encrypt/_base64.js +32 -25
- package/lib/encrypt/_md5.js +68 -31
- package/lib/encrypt/des.js +426 -363
- package/lib/extra/_common.js +119 -166
- package/lib/extra/filterNull.js +3 -2
- 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 +48 -42
- package/lib/extra/pwdStrength.js +4 -2
- package/lib/extra/sortBy.js +28 -30
- package/lib/flat.js +15 -0
- package/lib/locationParams.js +94 -99
- package/lib/log.js +22 -25
- 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 +7 -5
- package/lib/math/colorUtil.js +78 -86
- package/lib/math/dateTime.js +76 -94
- 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 +88 -95
- package/lib/parseText.js +8 -7
- package/lib/png/Identicon.js +36 -38
- package/lib/png/pnglib.js +58 -32
- package/lib/png/randomPic.js +9 -12
- package/lib/positionFactory.js +25 -80
- package/lib/pwdPolicy.js +27 -31
- package/lib/qs/_assign.js +7 -5
- package/lib/qs/_merge.js +19 -28
- 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 +55 -50
- package/lib/qs/stringify.js +55 -77
- package/lib/qs/utils.js +69 -88
- package/lib/random.js +5 -4
- package/lib/shallowEqual.js +24 -34
- package/lib/store.js +93 -98
- package/lib/strUtils.js +51 -42
- 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 +168 -223
- package/lib/xss/htmlEncode.js +3 -2
- package/lib/xss/implementEncode.js +36 -37
- package/lib/xss/index.js +4 -3
- package/package.json +9 -8
package/lib/browser/Cookie.js
CHANGED
|
@@ -3,60 +3,59 @@
|
|
|
3
3
|
function extend() {
|
|
4
4
|
for (var e = 0, t = {}; e < arguments.length; e++) {
|
|
5
5
|
var n = arguments[e];
|
|
6
|
-
for (var r in n) t[r] = n[r]
|
|
6
|
+
for (var r in n) t[r] = n[r];
|
|
7
7
|
}
|
|
8
|
-
return t
|
|
8
|
+
return t;
|
|
9
9
|
}
|
|
10
10
|
|
|
11
11
|
function decode(e) {
|
|
12
|
-
return e.replace(/(%[0-9A-Z]{2})+/g, decodeURIComponent)
|
|
12
|
+
return e.replace(/(%[0-9A-Z]{2})+/g, decodeURIComponent);
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
-
function init(
|
|
16
|
-
function
|
|
17
|
-
|
|
18
|
-
function n(e, t, n) {
|
|
15
|
+
function init(e) {
|
|
16
|
+
function t() {}
|
|
17
|
+
function n(t, n, r) {
|
|
19
18
|
if ("undefined" != typeof document) {
|
|
20
|
-
"number" == typeof(
|
|
19
|
+
"number" == typeof (r = extend({
|
|
21
20
|
path: "/"
|
|
22
|
-
}, api.defaults,
|
|
21
|
+
}, api.defaults, r)).expires && (r.expires = new Date(1 * new Date + 864e5 * r.expires)),
|
|
22
|
+
r.expires = r.expires ? r.expires.toUTCString() : "";
|
|
23
23
|
try {
|
|
24
|
-
var
|
|
25
|
-
/^[\{\[]/.test(
|
|
24
|
+
var o = JSON.stringify(n);
|
|
25
|
+
/^[\{\[]/.test(o) && (n = o);
|
|
26
26
|
} catch (e) {}
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
27
|
+
n = e.write ? e.write(n, t) : encodeURIComponent(String(n)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent),
|
|
28
|
+
t = encodeURIComponent(String(t)).replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent).replace(/[\(\)]/g, escape);
|
|
29
|
+
var i = "";
|
|
30
|
+
for (var c in r) r[c] && (i += "; " + c, !0 !== r[c] && (i += "=" + r[c].split(";")[0]));
|
|
31
|
+
return document.cookie = t + "=" + n + i;
|
|
31
32
|
}
|
|
32
33
|
}
|
|
33
|
-
|
|
34
|
-
function t(e, t) {
|
|
34
|
+
function r(t, n) {
|
|
35
35
|
if ("undefined" != typeof document) {
|
|
36
|
-
for (var
|
|
37
|
-
var
|
|
38
|
-
|
|
39
|
-
t || '"' !== c.charAt(0) || (c = c.slice(1, -1));
|
|
36
|
+
for (var r = {}, o = document.cookie ? document.cookie.split("; ") : [], i = 0; i < o.length; i++) {
|
|
37
|
+
var c = o[i].split("="), d = c.slice(1).join("=");
|
|
38
|
+
n || '"' !== d.charAt(0) || (d = d.slice(1, -1));
|
|
40
39
|
try {
|
|
41
|
-
var
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
c = JSON.parse(c)
|
|
40
|
+
var u = decode(c[0]);
|
|
41
|
+
if (d = (e.read || e)(d, u) || decode(d), n) try {
|
|
42
|
+
d = JSON.parse(d);
|
|
45
43
|
} catch (e) {}
|
|
46
|
-
if (
|
|
44
|
+
if (r[u] = d, t === u) break;
|
|
47
45
|
} catch (e) {}
|
|
48
46
|
}
|
|
49
|
-
return
|
|
47
|
+
return t ? r[t] : r;
|
|
50
48
|
}
|
|
51
49
|
}
|
|
52
|
-
return
|
|
53
|
-
return
|
|
54
|
-
},
|
|
55
|
-
return
|
|
56
|
-
},
|
|
50
|
+
return t.set = n, t.get = function(e) {
|
|
51
|
+
return r(e, !1);
|
|
52
|
+
}, t.getJSON = function(e) {
|
|
53
|
+
return r(e, !0);
|
|
54
|
+
}, t.remove = function(e, t) {
|
|
57
55
|
n(e, "", extend(t, {
|
|
58
56
|
expires: -1
|
|
59
|
-
}))
|
|
60
|
-
},
|
|
57
|
+
}));
|
|
58
|
+
}, t.defaults = {}, t.withConverter = init, t;
|
|
61
59
|
}
|
|
62
|
-
|
|
60
|
+
|
|
61
|
+
module.exports = init((function() {}));
|
package/lib/browser/indexDB.js
CHANGED
|
@@ -1,91 +1,80 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
if (!(e instanceof t)) throw new TypeError("Cannot call a class as a function")
|
|
5
|
-
}
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
6
4
|
|
|
7
|
-
function _defineProperties(e, t) {
|
|
8
|
-
for (var n = 0; n < t.length; n++) {
|
|
9
|
-
var a = t[n];
|
|
10
|
-
a.enumerable = a.enumerable || !1, a.configurable = !0, "value" in a && (a.writable = !0), Object.defineProperty(e, a.key, a)
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
function _createClass(e, t, n) {
|
|
15
|
-
return t && _defineProperties(e.prototype, t), n && _defineProperties(e, n), e
|
|
16
|
-
}
|
|
17
5
|
Object.defineProperty(exports, "__esModule", {
|
|
18
6
|
value: !0
|
|
19
7
|
}), exports.default = void 0;
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
8
|
+
|
|
9
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")), _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")), InvalidStorageDB = function() {
|
|
10
|
+
function e() {
|
|
11
|
+
(0, _classCallCheck2.default)(this, e);
|
|
12
|
+
}
|
|
13
|
+
return (0, _createClass2.default)(e, [ {
|
|
14
|
+
key: "init",
|
|
15
|
+
value: function() {}
|
|
16
|
+
}, {
|
|
17
|
+
key: "get",
|
|
18
|
+
value: function() {}
|
|
19
|
+
}, {
|
|
20
|
+
key: "set",
|
|
21
|
+
value: function() {}
|
|
22
|
+
}, {
|
|
23
|
+
key: "clear",
|
|
24
|
+
value: function() {}
|
|
25
|
+
} ]), e;
|
|
26
|
+
}(), StorageDB = function() {
|
|
27
|
+
function e(t) {
|
|
28
|
+
(0, _classCallCheck2.default)(this, e);
|
|
29
|
+
var a = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB;
|
|
30
|
+
if (void 0 === a) return console.warn("Storage: IndexedDB not available."), new InvalidStorageDB;
|
|
31
|
+
this._name = t.name || "amostool-db", this.version = t.version || 1, this.storeName = t.storeName || "item",
|
|
32
|
+
this.database, this.indexedDB = a, this.performance = window.performance || {
|
|
33
|
+
now: function() {}
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
return (0, _createClass2.default)(e, [ {
|
|
37
|
+
key: "init",
|
|
38
|
+
value: function(e) {
|
|
39
|
+
var t = this, a = t.storeName, n = t.indexedDB.open(t._name, t.version);
|
|
40
|
+
n.onupgradeneeded = function(e) {
|
|
41
|
+
var t = e.target.result;
|
|
42
|
+
!1 === t.objectStoreNames.contains(a) && t.createObjectStore(a);
|
|
43
|
+
}, n.onsuccess = function(a) {
|
|
44
|
+
t.database = a.target.result, e && e();
|
|
45
|
+
}, n.onerror = function(e) {
|
|
46
|
+
console.error("IndexedDB", e);
|
|
47
|
+
};
|
|
23
48
|
}
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
key: "set",
|
|
32
|
-
value: function() {}
|
|
33
|
-
}, {
|
|
34
|
-
key: "clear",
|
|
35
|
-
value: function() {}
|
|
36
|
-
}]), e
|
|
37
|
-
}(),
|
|
38
|
-
StorageDB = function() {
|
|
39
|
-
function n(e) {
|
|
40
|
-
_classCallCheck(this, n);
|
|
41
|
-
var t = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB;
|
|
42
|
-
if (void 0 === t) return console.warn("Storage: IndexedDB not available."), new InvalidStorageDB;
|
|
43
|
-
this._name = e.name || "amostool-db", this.version = e.version || 1, this.storeName = e.storeName || "item", this.database, this.indexedDB = t, this.performance = window.performance || {
|
|
44
|
-
now: function() {}
|
|
45
|
-
}
|
|
49
|
+
}, {
|
|
50
|
+
key: "get",
|
|
51
|
+
value: function(e) {
|
|
52
|
+
var t = this.storeName;
|
|
53
|
+
this.database.transaction([ t ], "readwrite").objectStore(t).get(0).onsuccess = function(t) {
|
|
54
|
+
e && e(t.target.result);
|
|
55
|
+
};
|
|
46
56
|
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
var e = this.storeName;
|
|
66
|
-
this.database.transaction([e], "readwrite").objectStore(e).get(0).onsuccess = function(e) {
|
|
67
|
-
t && t(e.target.result)
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
}, {
|
|
71
|
-
key: "set",
|
|
72
|
-
value: function(e, t) {
|
|
73
|
-
var n = this,
|
|
74
|
-
a = n.performance.now(),
|
|
75
|
-
o = n.storeName;
|
|
76
|
-
n.database.transaction([o], "readwrite").objectStore(o).put(e, 0).onsuccess = function(e) {
|
|
77
|
-
console.log("[".concat(/\d\d\:\d\d\:\d\d/.exec(new Date)[0], "]"), "Saved item to IndexedDB. ".concat((n.performance.now() - a).toFixed(2), "ms")), t && t(e.target.result)
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
}, {
|
|
81
|
-
key: "clear",
|
|
82
|
-
value: function() {
|
|
83
|
-
var e, t = this;
|
|
84
|
-
void 0 !== t.database && (e = t.storeName, t.database.transaction([e], "readwrite").objectStore(e).clear().onsuccess = function(e) {
|
|
85
|
-
console.log("[".concat(/\d\d\:\d\d\:\d\d/.exec(new Date)[0], "]"), "Cleared IndexedDB.")
|
|
86
|
-
})
|
|
57
|
+
}, {
|
|
58
|
+
key: "set",
|
|
59
|
+
value: function(e, t) {
|
|
60
|
+
var a = this, n = a.performance.now(), r = a.storeName;
|
|
61
|
+
a.database.transaction([ r ], "readwrite").objectStore(r).put(e, 0).onsuccess = function(e) {
|
|
62
|
+
console.log("[".concat(/\d\d\:\d\d\:\d\d/.exec(new Date)[0], "]"), "Saved item to IndexedDB. ".concat((a.performance.now() - n).toFixed(2), "ms")),
|
|
63
|
+
t && t(e.target.result);
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
}, {
|
|
67
|
+
key: "clear",
|
|
68
|
+
value: function() {
|
|
69
|
+
var e = this;
|
|
70
|
+
if (void 0 !== e.database) {
|
|
71
|
+
var t = e.storeName;
|
|
72
|
+
e.database.transaction([ t ], "readwrite").objectStore(t).clear().onsuccess = function(e) {
|
|
73
|
+
console.log("[".concat(/\d\d\:\d\d\:\d\d/.exec(new Date)[0], "]"), "Cleared IndexedDB.");
|
|
74
|
+
};
|
|
87
75
|
}
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
|
|
76
|
+
}
|
|
77
|
+
} ]), e;
|
|
78
|
+
}(), _default = StorageDB;
|
|
79
|
+
|
|
80
|
+
exports.default = _default;
|
package/lib/browserSupport.js
CHANGED
|
@@ -1,73 +1,78 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
var
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
2
|
+
|
|
3
|
+
var _utils = require("./utils"), _consts = require("./consts"), _defaultBrowsers = [ "firefox/51.0", "chrome/56" ], _muiltBrowsers = [ "firefox/", "chrome/" ], calcIeSerails = function(s, e, r, i) {
|
|
4
|
+
var t, o = s.indexOf("compatible") > -1 && s.indexOf("msie") > -1, n = s.indexOf("edge") > -1 && !o, a = s.indexOf("trident") > -1 && s.indexOf("rv:11.0") > -1, c = !1;
|
|
5
|
+
if (o) {
|
|
6
|
+
new RegExp("msie (\\d+\\.\\d+);").test(s);
|
|
7
|
+
var l = parseFloat(RegExp.$1);
|
|
8
|
+
t = 7 == l ? 7 : 8 == l ? 8 : 9 == l ? 9 : 10 == l ? 10 : 6;
|
|
9
|
+
} else t = n ? 12 : a ? 11 : -1;
|
|
10
|
+
switch (r) {
|
|
11
|
+
case _consts.GREATER:
|
|
12
|
+
c = t > i;
|
|
13
|
+
break;
|
|
14
|
+
|
|
15
|
+
case _consts.EQUAL:
|
|
16
|
+
c = t == i;
|
|
17
|
+
break;
|
|
18
|
+
|
|
19
|
+
case _consts.LESS:
|
|
20
|
+
c = t < i;
|
|
21
|
+
break;
|
|
22
|
+
|
|
23
|
+
case _consts.GREATER_EQUAL:
|
|
24
|
+
c = t >= i;
|
|
25
|
+
break;
|
|
26
|
+
|
|
27
|
+
case _consts.LESS_EQUAL:
|
|
28
|
+
c = t <= i;
|
|
29
|
+
}
|
|
30
|
+
return c;
|
|
31
|
+
}, calcBrowserVersion = function(s, e, r, i) {
|
|
32
|
+
var t = !1;
|
|
33
|
+
if (s.indexOf(e) > -1) switch (r) {
|
|
34
|
+
case _consts.GREATER:
|
|
35
|
+
t = s.split(e)[1].split(".")[0] > i;
|
|
36
|
+
break;
|
|
37
|
+
|
|
38
|
+
case _consts.EQUAL:
|
|
39
|
+
t = s.split(e)[1].split(".")[0] == i;
|
|
40
|
+
break;
|
|
41
|
+
|
|
42
|
+
case _consts.LESS:
|
|
43
|
+
t = s.split(e)[1].split(".")[0] < i;
|
|
44
|
+
break;
|
|
45
|
+
|
|
46
|
+
case _consts.GREATER_EQUAL:
|
|
47
|
+
t = s.split(e)[1].split(".")[0] >= i;
|
|
48
|
+
break;
|
|
49
|
+
|
|
50
|
+
case _consts.LESS_EQUAL:
|
|
51
|
+
t = s.split(e)[1].split(".")[0] <= i;
|
|
52
|
+
} else t = calcIeSerails(s, e, r, i);
|
|
53
|
+
return console.log("supported:", t), t;
|
|
54
|
+
}, browserSupport = function(s, e) {
|
|
55
|
+
if (navigator) {
|
|
56
|
+
var r = navigator.userAgent;
|
|
57
|
+
if (!_utils.isEmpty(r)) if (r = r.toLowerCase(), _utils.isEmpty(e)) {
|
|
58
|
+
var i = s || _defaultBrowsers;
|
|
59
|
+
if (!_utils.isEmpty(i)) {
|
|
60
|
+
if (_utils.isArray(i)) return _utils.some(i, (function(s) {
|
|
61
|
+
return console.log("non matchs. target browser is:", s), r.indexOf(s) > -1;
|
|
62
|
+
}));
|
|
63
|
+
if (_utils.isString(i)) return r.indexOf(i) > -1;
|
|
64
|
+
}
|
|
65
|
+
} else {
|
|
66
|
+
var t = s || _muiltBrowsers;
|
|
67
|
+
if (!_utils.isEmpty(t)) {
|
|
68
|
+
if (_utils.isArray(t)) return _utils.some(t, (function(s) {
|
|
69
|
+
return console.log("matchs. target browser is:", s), calcBrowserVersion(r, s, e[s].limit, e[s].version);
|
|
70
|
+
}));
|
|
71
|
+
if (_utils.isString(t)) return calcBrowserVersion(r, t, e.limit, e.version);
|
|
72
|
+
}
|
|
26
73
|
}
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
case _consts.GREATER:
|
|
33
|
-
i = s.split(e)[1].split(".")[0] > t;
|
|
34
|
-
break;
|
|
35
|
-
case _consts.EQUAL:
|
|
36
|
-
i = s.split(e)[1].split(".")[0] == t;
|
|
37
|
-
break;
|
|
38
|
-
case _consts.LESS:
|
|
39
|
-
i = s.split(e)[1].split(".")[0] < t;
|
|
40
|
-
break;
|
|
41
|
-
case _consts.GREATER_EQUAL:
|
|
42
|
-
i = s.split(e)[1].split(".")[0] >= t;
|
|
43
|
-
break;
|
|
44
|
-
case _consts.LESS_EQUAL:
|
|
45
|
-
i = s.split(e)[1].split(".")[0] <= t
|
|
46
|
-
} else i = calcIeSerails(s, e, r, t);
|
|
47
|
-
return console.log("supported:", i), i
|
|
48
|
-
},
|
|
49
|
-
browserSupport = function(s, e) {
|
|
50
|
-
if (navigator) {
|
|
51
|
-
var r = navigator.userAgent;
|
|
52
|
-
if (!_utils.isEmpty(r))
|
|
53
|
-
if (r = r.toLowerCase(), _utils.isEmpty(e)) {
|
|
54
|
-
var t = s || _defaultBrowsers;
|
|
55
|
-
if (!_utils.isEmpty(t)) {
|
|
56
|
-
if (_utils.isArray(t)) return _utils.some(t, function(s) {
|
|
57
|
-
return console.log("non matchs. target browser is:", s), -1 < r.indexOf(s)
|
|
58
|
-
});
|
|
59
|
-
if (_utils.isString(t)) return -1 < r.indexOf(t)
|
|
60
|
-
}
|
|
61
|
-
} else {
|
|
62
|
-
var i = s || _muiltBrowsers;
|
|
63
|
-
if (!_utils.isEmpty(i)) {
|
|
64
|
-
if (_utils.isArray(i)) return _utils.some(i, function(s) {
|
|
65
|
-
return console.log("matchs. target browser is:", s), calcBrowserVersion(r, s, e[s].limit, e[s].version)
|
|
66
|
-
});
|
|
67
|
-
if (_utils.isString(i)) return calcBrowserVersion(r, i, e.limit, e.version)
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
return !1
|
|
72
|
-
};
|
|
73
|
-
module.exports = browserSupport;
|
|
74
|
+
}
|
|
75
|
+
return !1;
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
module.exports = browserSupport;
|
package/lib/completeUnit.js
CHANGED
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
|
|
2
3
|
var utils = require("./utils");
|
|
3
4
|
|
|
4
5
|
function completeUnit(e) {
|
|
5
|
-
var t =
|
|
6
|
-
return utils.isString(e) || (e += ""), e.endsWith(t) ? e : "".concat(e).concat(t)
|
|
6
|
+
var t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : "px";
|
|
7
|
+
return utils.isString(e) || (e += ""), e.endsWith(t) ? e : "".concat(e).concat(t);
|
|
7
8
|
}
|
|
8
9
|
|
|
9
10
|
function toPixel(e) {
|
|
10
11
|
var t = e;
|
|
11
|
-
return e && (utils.isNumber(e) ? t = completeUnit(Number(e)) : utils.isString(e) && e.endsWith("%") ? t = completeUnit(Number(e.replace("%", "")), "%") : utils.isString(e) && e.endsWith("px") ? t = completeUnit(Number(e.replace("px", "")), "px") : utils.isString(e) && e.endsWith("vh") ? t = completeUnit(Number(e.replace("vh", "")), "vh") : utils.isString(e) && e.endsWith("vw") ? t = completeUnit(Number(e.replace("vw", "")), "vw") : utils.isString(e) && e.endsWith("rem") ? t = completeUnit(Number(e.replace("rem", "")), "rem") : utils.isString(e) && e.endsWith("em") && (t = completeUnit(Number(e.replace("em", "")), "em"))),
|
|
12
|
+
return e && (utils.isNumber(e) ? t = completeUnit(Number(e)) : utils.isString(e) && e.endsWith("%") ? t = completeUnit(Number(e.replace("%", "")), "%") : utils.isString(e) && e.endsWith("px") ? t = completeUnit(Number(e.replace("px", "")), "px") : utils.isString(e) && e.endsWith("vh") ? t = completeUnit(Number(e.replace("vh", "")), "vh") : utils.isString(e) && e.endsWith("vw") ? t = completeUnit(Number(e.replace("vw", "")), "vw") : utils.isString(e) && e.endsWith("rem") ? t = completeUnit(Number(e.replace("rem", "")), "rem") : utils.isString(e) && e.endsWith("em") && (t = completeUnit(Number(e.replace("em", "")), "em"))),
|
|
13
|
+
t;
|
|
12
14
|
}
|
|
13
|
-
|
|
15
|
+
|
|
16
|
+
module.exports = completeUnit, module.exports.toPixel = toPixel;
|
package/lib/consts.js
CHANGED
package/lib/dom/canvas2img.js
CHANGED
|
@@ -1,132 +1,120 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
var e, t;
|
|
6
|
-
|
|
2
|
+
|
|
3
|
+
var utils = require("./../utils"), $support = {}, support = function() {
|
|
4
|
+
if (utils.isEmpty($support)) {
|
|
5
|
+
var e = document.createElement("canvas"), t = e.getContext("2d");
|
|
6
|
+
$support = {
|
|
7
7
|
canvas: !!t,
|
|
8
8
|
imageData: !!t.getImageData,
|
|
9
9
|
dataURL: !!e.toDataURL,
|
|
10
10
|
btoa: !!window.btoa
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
return $support;
|
|
14
|
+
}, downloadMime = "image/octet-stream";
|
|
14
15
|
|
|
15
16
|
function scaleCanvas(e, t, a) {
|
|
16
|
-
var n = e.width,
|
|
17
|
-
r = e.height;
|
|
17
|
+
var n = e.width, r = e.height;
|
|
18
18
|
null == t && (t = n), null == a && (a = r);
|
|
19
|
-
var o = document.createElement("canvas"),
|
|
20
|
-
|
|
21
|
-
return o.width = t, o.height = a, g.drawImage(e, 0, 0, n, r, 0, 0, t, a), o
|
|
19
|
+
var o = document.createElement("canvas"), g = o.getContext("2d");
|
|
20
|
+
return o.width = t, o.height = a, g.drawImage(e, 0, 0, n, r, 0, 0, t, a), o;
|
|
22
21
|
}
|
|
23
22
|
|
|
24
23
|
function getDataURL(e, t, a, n) {
|
|
25
|
-
return (e = scaleCanvas(e, a, n)).toDataURL(t)
|
|
24
|
+
return (e = scaleCanvas(e, a, n)).toDataURL(t);
|
|
26
25
|
}
|
|
27
26
|
|
|
28
27
|
function getBlob(e, t, a) {
|
|
29
|
-
var n = a.type || "image/png",
|
|
30
|
-
|
|
31
|
-
o = a.height,
|
|
32
|
-
g = a.encoderOptions || 1;
|
|
33
|
-
return (e = scaleCanvas(e, r, o)).toBlob(t, n, g)
|
|
28
|
+
var n = a.type || "image/png", r = a.width, o = a.height, g = a.encoderOptions || 1;
|
|
29
|
+
return (e = scaleCanvas(e, r, o)).toBlob(t, n, g);
|
|
34
30
|
}
|
|
35
31
|
|
|
36
32
|
function saveFile(e) {
|
|
37
|
-
document.location.href = e
|
|
33
|
+
document.location.href = e;
|
|
38
34
|
}
|
|
39
35
|
|
|
40
36
|
function genImage(e) {
|
|
41
37
|
var t = document.createElement("img");
|
|
42
|
-
return t.src = e, t
|
|
38
|
+
return t.src = e, t;
|
|
43
39
|
}
|
|
44
40
|
|
|
45
41
|
function fixType(e) {
|
|
46
|
-
return "image/" + (e = e.toLowerCase().replace(/jpg/i, "jpeg")).match(/png|jpeg|bmp|gif/)[0]
|
|
42
|
+
return "image/" + (e = e.toLowerCase().replace(/jpg/i, "jpeg")).match(/png|jpeg|bmp|gif/)[0];
|
|
47
43
|
}
|
|
48
44
|
|
|
49
45
|
function encodeData(e) {
|
|
50
46
|
if (!window.btoa) throw new Error("btoa undefined");
|
|
51
47
|
var t = "";
|
|
52
|
-
if ("string" == typeof e) t = e;
|
|
53
|
-
|
|
54
|
-
for (var a = 0; a < e.length; a++) t += String.fromCharCode(e[a]);
|
|
55
|
-
return btoa(t)
|
|
48
|
+
if ("string" == typeof e) t = e; else for (var a = 0; a < e.length; a++) t += String.fromCharCode(e[a]);
|
|
49
|
+
return btoa(t);
|
|
56
50
|
}
|
|
57
51
|
|
|
58
52
|
function getImageData(e) {
|
|
59
|
-
var t = e.width,
|
|
60
|
-
|
|
61
|
-
return e.getContext("2d").getImageData(0, 0, t, a)
|
|
53
|
+
var t = e.width, a = e.height;
|
|
54
|
+
return e.getContext("2d").getImageData(0, 0, t, a);
|
|
62
55
|
}
|
|
63
56
|
|
|
64
57
|
function makeURI(e, t) {
|
|
65
|
-
return "data:" + t + ";base64," + e
|
|
58
|
+
return "data:" + t + ";base64," + e;
|
|
66
59
|
}
|
|
60
|
+
|
|
67
61
|
var genBitmapImage = function(e) {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
g = [40, 0, 0, 0, 255 & t, t >> 8 & 255, t >> 16 & 255, t >> 24 & 255, 255 & a, a >> 8 & 255, a >> 16 & 255, a >> 24 & 255, 1, 0, 24, 0, 0, 0, 0, 0, 255 & n, n >> 8 & 255, n >> 16 & 255, n >> 24 & 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
|
74
|
-
i = (4 - 3 * t % 4) % 4,
|
|
75
|
-
s = e.data,
|
|
76
|
-
u = "",
|
|
77
|
-
c = t << 2,
|
|
78
|
-
m = a,
|
|
79
|
-
v = String.fromCharCode;
|
|
80
|
-
do {
|
|
81
|
-
for (var p = c * (m - 1), d = "", f = 0; f < t; f++) {
|
|
82
|
-
var l = f << 2;
|
|
83
|
-
d += v(s[p + l + 2]) + v(s[p + l + 1]) + v(s[p + l])
|
|
84
|
-
}
|
|
85
|
-
for (var I = 0; I < i; I++) d += String.fromCharCode(0);
|
|
86
|
-
u += d
|
|
87
|
-
} while (--m);
|
|
88
|
-
return encodeData(o.concat(g)) + encodeData(u)
|
|
89
|
-
},
|
|
90
|
-
saveAsImage = function(e, t, a, n) {
|
|
91
|
-
var r;
|
|
92
|
-
support().canvas && support().dataURL && ("string" == typeof e && (e = document.getElementById(e)), null == n && (n = "png"), n = fixType(n), /bmp/.test(n) ? (r = getImageData(scaleCanvas(e, t, a)), saveFile(makeURI(genBitmapImage(r), downloadMime))) : saveFile(getDataURL(e, n, t, a).replace(n, downloadMime)))
|
|
93
|
-
},
|
|
94
|
-
convert2Image = function(e, t, a, n) {
|
|
95
|
-
if (support().canvas && support().dataURL) {
|
|
96
|
-
if ("string" == typeof e && (e = document.getElementById(e)), null == n && (n = "png"), n = fixType(n), /bmp/.test(n)) {
|
|
97
|
-
var r = getImageData(scaleCanvas(e, t, a));
|
|
98
|
-
return genImage(makeURI(genBitmapImage(r), "image/bmp"))
|
|
99
|
-
}
|
|
100
|
-
return genImage(getDataURL(e, n, t, a))
|
|
62
|
+
var t = e.width, a = e.height, n = t * a * 3, r = n + 54, o = [ 66, 77, 255 & r, r >> 8 & 255, r >> 16 & 255, r >> 24 & 255, 0, 0, 0, 0, 54, 0, 0, 0 ], g = [ 40, 0, 0, 0, 255 & t, t >> 8 & 255, t >> 16 & 255, t >> 24 & 255, 255 & a, a >> 8 & 255, a >> 16 & 255, a >> 24 & 255, 1, 0, 24, 0, 0, 0, 0, 0, 255 & n, n >> 8 & 255, n >> 16 & 255, n >> 24 & 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], i = (4 - 3 * t % 4) % 4, s = e.data, u = "", c = t << 2, m = a, v = String.fromCharCode;
|
|
63
|
+
do {
|
|
64
|
+
for (var p = c * (m - 1), f = "", d = 0; d < t; d++) {
|
|
65
|
+
var l = d << 2;
|
|
66
|
+
f += v(s[p + l + 2]) + v(s[p + l + 1]) + v(s[p + l]);
|
|
101
67
|
}
|
|
102
|
-
|
|
68
|
+
for (var I = 0; I < i; I++) f += String.fromCharCode(0);
|
|
69
|
+
u += f;
|
|
70
|
+
} while (--m);
|
|
71
|
+
return encodeData(o.concat(g)) + encodeData(u);
|
|
72
|
+
}, saveAsImage = function(e, t, a, n) {
|
|
73
|
+
if (support().canvas && support().dataURL) if ("string" == typeof e && (e = document.getElementById(e)),
|
|
74
|
+
null == n && (n = "png"), n = fixType(n), /bmp/.test(n)) {
|
|
75
|
+
var r = getImageData(scaleCanvas(e, t, a));
|
|
76
|
+
saveFile(makeURI(genBitmapImage(r), downloadMime));
|
|
77
|
+
} else {
|
|
78
|
+
saveFile(getDataURL(e, n, t, a).replace(n, downloadMime));
|
|
79
|
+
}
|
|
80
|
+
}, convert2Image = function(e, t, a, n) {
|
|
81
|
+
if (support().canvas && support().dataURL) {
|
|
82
|
+
if ("string" == typeof e && (e = document.getElementById(e)), null == n && (n = "png"),
|
|
83
|
+
n = fixType(n), /bmp/.test(n)) {
|
|
84
|
+
var r = getImageData(scaleCanvas(e, t, a));
|
|
85
|
+
return genImage(makeURI(genBitmapImage(r), "image/bmp"));
|
|
86
|
+
}
|
|
87
|
+
return genImage(getDataURL(e, n, t, a));
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
|
|
103
91
|
module.exports = {
|
|
104
92
|
saveAsImage: saveAsImage,
|
|
105
93
|
saveAsPNG: function(e, t, a) {
|
|
106
|
-
return saveAsImage(e, t, a, "png")
|
|
94
|
+
return saveAsImage(e, t, a, "png");
|
|
107
95
|
},
|
|
108
96
|
saveAsJPEG: function(e, t, a) {
|
|
109
|
-
return saveAsImage(e, t, a, "jpeg")
|
|
97
|
+
return saveAsImage(e, t, a, "jpeg");
|
|
110
98
|
},
|
|
111
99
|
saveAsGIF: function(e, t, a) {
|
|
112
|
-
return saveAsImage(e, t, a, "gif")
|
|
100
|
+
return saveAsImage(e, t, a, "gif");
|
|
113
101
|
},
|
|
114
102
|
saveAsBMP: function(e, t, a) {
|
|
115
|
-
return saveAsImage(e, t, a, "bmp")
|
|
103
|
+
return saveAsImage(e, t, a, "bmp");
|
|
116
104
|
},
|
|
117
105
|
convert2Image: convert2Image,
|
|
118
106
|
convert2data: getDataURL,
|
|
119
107
|
convert2Blob: getBlob,
|
|
120
108
|
convert2PNG: function(e, t, a) {
|
|
121
|
-
return convert2Image(e, t, a, "png")
|
|
109
|
+
return convert2Image(e, t, a, "png");
|
|
122
110
|
},
|
|
123
111
|
convert2JPEG: function(e, t, a) {
|
|
124
|
-
return convert2Image(e, t, a, "jpeg")
|
|
112
|
+
return convert2Image(e, t, a, "jpeg");
|
|
125
113
|
},
|
|
126
114
|
convert2GIF: function(e, t, a) {
|
|
127
|
-
return convert2Image(e, t, a, "gif")
|
|
115
|
+
return convert2Image(e, t, a, "gif");
|
|
128
116
|
},
|
|
129
117
|
convert2BMP: function(e, t, a) {
|
|
130
|
-
return convert2Image(e, t, a, "bmp")
|
|
118
|
+
return convert2Image(e, t, a, "bmp");
|
|
131
119
|
}
|
|
132
|
-
};
|
|
120
|
+
};
|