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.
Files changed (100) hide show
  1. package/.prettierignore +2 -2
  2. package/.prettierrc +50 -50
  3. package/README.md +5 -0
  4. package/apis/objectPath.md +129 -129
  5. package/index.d.ts +23 -4
  6. package/index.js +3 -3
  7. package/lib/_browser.js +10 -8
  8. package/lib/_clone.js +67 -62
  9. package/lib/_cookie.js +35 -32
  10. package/lib/_deepCopy.js +17 -29
  11. package/lib/_deepEqual.js +6 -13
  12. package/lib/_fastDeepEqual.js +28 -44
  13. package/lib/_flashSupport.js +13 -10
  14. package/lib/_forOwn.js +8 -7
  15. package/lib/_funcThrottle.js +16 -15
  16. package/lib/_isnode.js +2 -1
  17. package/lib/_list.js +55 -67
  18. package/lib/_object.assign.js +14 -24
  19. package/lib/_object.entries.js +6 -5
  20. package/lib/_object.values.js +5 -4
  21. package/lib/_omit.js +12 -12
  22. package/lib/_parseJson.js +7 -6
  23. package/lib/_pick.js +8 -7
  24. package/lib/_queue.js +24 -21
  25. package/lib/_shallowCopy.js +24 -23
  26. package/lib/_stringify.js +14 -17
  27. package/lib/_supportWs.js +5 -5
  28. package/lib/_trim.js +5 -4
  29. package/lib/_typeOfList.js +22 -21
  30. package/lib/_uuids.js +30 -35
  31. package/lib/amostool.js +14 -64
  32. package/lib/array2tree.js +9 -10
  33. package/lib/arrayFilter.js +17 -20
  34. package/lib/arrayUtils.js +13 -11
  35. package/lib/browser/Cookie.js +34 -35
  36. package/lib/browser/indexDB.js +71 -82
  37. package/lib/browserSupport.js +76 -71
  38. package/lib/completeUnit.js +7 -4
  39. package/lib/consts.js +2 -1
  40. package/lib/dom/canvas2img.js +61 -73
  41. package/lib/dom/canvasTools.js +9 -14
  42. package/lib/dom/downloadFile.js +15 -12
  43. package/lib/dom/eventHelper.js +8 -6
  44. package/lib/dom/fileBlob.js +14 -14
  45. package/lib/dom/fileSaveAs.js +54 -61
  46. package/lib/dom/getFontSize.js +7 -10
  47. package/lib/dom/minfyImg.js +30 -25
  48. package/lib/encrypt/_base64.js +32 -25
  49. package/lib/encrypt/_md5.js +68 -31
  50. package/lib/encrypt/des.js +426 -363
  51. package/lib/extra/_common.js +119 -166
  52. package/lib/extra/filterNull.js +3 -2
  53. package/lib/extra/find.js +10 -11
  54. package/lib/extra/index.js +4 -3
  55. package/lib/extra/memo.js +18 -0
  56. package/lib/extra/pathToTree.js +48 -42
  57. package/lib/extra/pwdStrength.js +4 -2
  58. package/lib/extra/sortBy.js +28 -30
  59. package/lib/flat.js +15 -0
  60. package/lib/locationParams.js +94 -99
  61. package/lib/log.js +22 -25
  62. package/lib/math/_keyColor.js +3 -1
  63. package/lib/math/addition.js +9 -7
  64. package/lib/math/amountCase.js +8 -12
  65. package/lib/math/coinFormat.js +7 -5
  66. package/lib/math/colorUtil.js +78 -86
  67. package/lib/math/dateTime.js +76 -94
  68. package/lib/math/operations.js +33 -37
  69. package/lib/math/pwdStrength.js +4 -2
  70. package/lib/math/randomColor.js +17 -5
  71. package/lib/math/subtraction.js +10 -9
  72. package/lib/merged.js +9 -9
  73. package/lib/objectPath.js +88 -95
  74. package/lib/parseText.js +8 -7
  75. package/lib/png/Identicon.js +36 -38
  76. package/lib/png/pnglib.js +58 -32
  77. package/lib/png/randomPic.js +9 -12
  78. package/lib/positionFactory.js +25 -80
  79. package/lib/pwdPolicy.js +27 -31
  80. package/lib/qs/_assign.js +7 -5
  81. package/lib/qs/_merge.js +19 -28
  82. package/lib/qs/_tools.js +3 -2
  83. package/lib/qs/formats.js +6 -5
  84. package/lib/qs/index.js +4 -4
  85. package/lib/qs/parse.js +55 -50
  86. package/lib/qs/stringify.js +55 -77
  87. package/lib/qs/utils.js +69 -88
  88. package/lib/random.js +5 -4
  89. package/lib/shallowEqual.js +24 -34
  90. package/lib/store.js +93 -98
  91. package/lib/strUtils.js +51 -42
  92. package/lib/tableFilter.js +178 -169
  93. package/lib/throttleDebounce.js +18 -22
  94. package/lib/url/encodeUrl.js +5 -4
  95. package/lib/url/restfulUrl.js +8 -7
  96. package/lib/utils.js +168 -223
  97. package/lib/xss/htmlEncode.js +3 -2
  98. package/lib/xss/implementEncode.js +36 -37
  99. package/lib/xss/index.js +4 -3
  100. package/package.json +9 -8
@@ -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(u) {
16
- function e() {}
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(n = extend({
19
+ "number" == typeof (r = extend({
21
20
  path: "/"
22
- }, api.defaults, n)).expires && (n.expires = new Date(+new Date + 864e5 * n.expires)), n.expires = n.expires ? n.expires.toUTCString() : "";
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 r = JSON.stringify(t);
25
- /^[\{\[]/.test(r) && (t = r)
24
+ var o = JSON.stringify(n);
25
+ /^[\{\[]/.test(o) && (n = o);
26
26
  } catch (e) {}
27
- t = u.write ? u.write(t, e) : encodeURIComponent(String(t)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent), e = encodeURIComponent(String(e)).replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent).replace(/[\(\)]/g, escape);
28
- var o = "";
29
- for (var i in n) n[i] && (o += "; " + i, !0 !== n[i] && (o += "=" + n[i].split(";")[0]));
30
- return document.cookie = e + "=" + t + o
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 n = {}, r = document.cookie ? document.cookie.split("; ") : [], o = 0; o < r.length; o++) {
37
- var i = r[o].split("="),
38
- c = i.slice(1).join("=");
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 d = decode(i[0]),
42
- c = (u.read || u)(c, d) || decode(c);
43
- if (t) try {
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 (n[d] = c, e === d) break
44
+ if (r[u] = d, t === u) break;
47
45
  } catch (e) {}
48
46
  }
49
- return e ? n[e] : n
47
+ return t ? r[t] : r;
50
48
  }
51
49
  }
52
- return e.set = n, e.get = function(e) {
53
- return t(e, !1)
54
- }, e.getJSON = function(e) {
55
- return t(e, !0)
56
- }, e.remove = function(e, t) {
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
- }, e.defaults = {}, e.withConverter = init, e
57
+ }));
58
+ }, t.defaults = {}, t.withConverter = init, t;
61
59
  }
62
- module.exports = init(function() {});
60
+
61
+ module.exports = init((function() {}));
@@ -1,91 +1,80 @@
1
1
  "use strict";
2
2
 
3
- function _classCallCheck(e, t) {
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
- var InvalidStorageDB = function() {
21
- function e() {
22
- _classCallCheck(this, e)
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
- return _createClass(e, [{
25
- key: "init",
26
- value: function() {}
27
- }, {
28
- key: "get",
29
- value: function() {}
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
- return _createClass(n, [{
48
- key: "init",
49
- value: function(t) {
50
- var n = this,
51
- a = n.storeName,
52
- e = n.indexedDB.open(n._name, n.version);
53
- e.onupgradeneeded = function(e) {
54
- var t = e.target.result;
55
- !1 === t.objectStoreNames.contains(a) && t.createObjectStore(a)
56
- }, e.onsuccess = function(e) {
57
- n.database = e.target.result, t && t()
58
- }, e.onerror = function(e) {
59
- console.error("IndexedDB", e)
60
- }
61
- }
62
- }, {
63
- key: "get",
64
- value: function(t) {
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
- }]), n
89
- }(),
90
- _default = StorageDB;
91
- exports.default = StorageDB, module.exports = exports.default;
76
+ }
77
+ } ]), e;
78
+ }(), _default = StorageDB;
79
+
80
+ exports.default = _default;
@@ -1,73 +1,78 @@
1
1
  "use strict";
2
- var _utils = require("./utils"),
3
- _consts = require("./consts"),
4
- _defaultBrowsers = ["firefox/51.0", "chrome/56"],
5
- _muiltBrowsers = ["firefox/", "chrome/"],
6
- calcIeSerails = function(s, e, r, t) {
7
- var i, o, n = -1 < s.indexOf("compatible") && -1 < s.indexOf("msie"),
8
- c = -1 < s.indexOf("edge") && !n,
9
- a = -1 < s.indexOf("trident") && -1 < s.indexOf("rv:11.0"),
10
- l = !1;
11
- switch (o = n ? (new RegExp("msie (\\d+\\.\\d+);").test(s), 7 == (i = parseFloat(RegExp.$1)) ? 7 : 8 == i ? 8 : 9 == i ? 9 : 10 == i ? 10 : 6) : c ? 12 : a ? 11 : -1, r) {
12
- case _consts.GREATER:
13
- l = t < o;
14
- break;
15
- case _consts.EQUAL:
16
- l = o == t;
17
- break;
18
- case _consts.LESS:
19
- l = o < t;
20
- break;
21
- case _consts.GREATER_EQUAL:
22
- l = t <= o;
23
- break;
24
- case _consts.LESS_EQUAL:
25
- l = o <= t
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
- return l
28
- },
29
- calcBrowserVersion = function(s, e, r, t) {
30
- var i = !1;
31
- if (-1 < s.indexOf(e)) switch (r) {
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;
@@ -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 = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : "px";
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"))), t
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
- module.exports = completeUnit, module.exports.toPixel = toPixel;
15
+
16
+ module.exports = completeUnit, module.exports.toPixel = toPixel;
package/lib/consts.js CHANGED
@@ -1,8 +1,9 @@
1
1
  "use strict";
2
+
2
3
  module.exports = {
3
4
  GREATER: 1,
4
5
  EQUAL: 2,
5
6
  LESS: 3,
6
7
  GREATER_EQUAL: 4,
7
8
  LESS_EQUAL: 5
8
- };
9
+ };
@@ -1,132 +1,120 @@
1
1
  "use strict";
2
- var utils = require("./../utils"),
3
- $support = {},
4
- support = function() {
5
- var e, t;
6
- return utils.isEmpty($support) && (t = (e = document.createElement("canvas")).getContext("2d"), $support = {
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
- }), $support
12
- },
13
- downloadMime = "image/octet-stream";
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
- g = o.getContext("2d");
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
- r = a.width,
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
- else
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
- a = e.height;
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
- var t = e.width,
69
- a = e.height,
70
- n = t * a * 3,
71
- r = 54 + n,
72
- o = [66, 77, 255 & r, r >> 8 & 255, r >> 16 & 255, r >> 24 & 255, 0, 0, 0, 0, 54, 0, 0, 0],
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
+ };