@ivujs/i-utils 1.1.14 → 1.1.16

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 (213) hide show
  1. package/dist/cjs/ID-card/index.cjs +87 -0
  2. package/dist/cjs/array/index.cjs +470 -0
  3. package/dist/cjs/clipboard/index.cjs +128 -0
  4. package/dist/cjs/color/index.cjs +193 -0
  5. package/dist/cjs/constants/date.cjs +178 -0
  6. package/dist/cjs/constants/id-card.cjs +52 -0
  7. package/dist/cjs/constants/keycode.cjs +117 -0
  8. package/dist/cjs/constants/lang.cjs +13 -0
  9. package/dist/cjs/constants/math.cjs +13 -0
  10. package/dist/cjs/constants/regexp.cjs +53 -0
  11. package/dist/cjs/constants/sort.cjs +15 -0
  12. package/dist/cjs/cookie/index.cjs +70 -0
  13. package/dist/cjs/crypto/aes/aes.cjs +480 -0
  14. package/dist/cjs/crypto/aes/index.cjs +27 -0
  15. package/dist/cjs/crypto/base32/base32.cjs +357 -0
  16. package/dist/cjs/crypto/base32/index.cjs +41 -0
  17. package/dist/cjs/crypto/base64/base64.cjs +348 -0
  18. package/dist/cjs/crypto/base64/index.cjs +59 -0
  19. package/dist/cjs/crypto/des/des.cjs +257 -0
  20. package/dist/cjs/crypto/des/index.cjs +28 -0
  21. package/dist/cjs/crypto/md5/index.cjs +24 -0
  22. package/dist/cjs/crypto/md5/md5.cjs +897 -0
  23. package/dist/cjs/crypto/sha/sha1/index.cjs +24 -0
  24. package/dist/cjs/crypto/sha/sha1/sha1.cjs +529 -0
  25. package/dist/cjs/crypto/sha/sha256/index.cjs +43 -0
  26. package/dist/cjs/crypto/sha/sha256/sha256.cjs +595 -0
  27. package/dist/cjs/crypto/sha/sha3/index.cjs +41 -0
  28. package/dist/cjs/crypto/sha/sha3/sha3.cjs +624 -0
  29. package/dist/cjs/crypto/sha/sha512/index.cjs +81 -0
  30. package/dist/cjs/crypto/sha/sha512/sha512.cjs +950 -0
  31. package/dist/cjs/crypto/sm/lib/asn1.cjs +149 -0
  32. package/dist/cjs/crypto/sm/lib/ec.cjs +315 -0
  33. package/dist/cjs/crypto/sm/lib/jsbn.cjs +1608 -0
  34. package/dist/cjs/crypto/sm/lib/sm3.cjs +158 -0
  35. package/dist/cjs/crypto/sm/lib/utils.cjs +170 -0
  36. package/dist/cjs/crypto/sm/sm2/index.cjs +112 -0
  37. package/dist/cjs/crypto/sm/sm2/sm2.cjs +231 -0
  38. package/dist/cjs/crypto/sm/sm3/index.cjs +15 -0
  39. package/dist/cjs/crypto/sm/sm3/sm3.cjs +93 -0
  40. package/dist/cjs/crypto/sm/sm4/index.cjs +27 -0
  41. package/dist/cjs/crypto/sm/sm4/sm4.cjs +327 -0
  42. package/dist/cjs/crypto/tea/index.cjs +25 -0
  43. package/dist/cjs/crypto/tea/tea.cjs +187 -0
  44. package/dist/cjs/date/index.cjs +1266 -0
  45. package/dist/cjs/desensitized/index.cjs +75 -0
  46. package/dist/cjs/device/index.cjs +151 -0
  47. package/dist/cjs/dom/index.cjs +129 -0
  48. package/dist/cjs/file/index.cjs +333 -0
  49. package/dist/cjs/function/index.cjs +69 -0
  50. package/dist/cjs/id/index.cjs +1 -1
  51. package/dist/cjs/index.cjs +398 -47
  52. package/dist/cjs/keycode/index.cjs +33 -0
  53. package/dist/cjs/math/index.cjs +278 -0
  54. package/dist/cjs/number/index.cjs +31 -0
  55. package/dist/cjs/object/index.cjs +272 -0
  56. package/dist/cjs/pagination/index.cjs +131 -0
  57. package/dist/cjs/random/index.cjs +24 -0
  58. package/dist/cjs/regexp/index.cjs +100 -0
  59. package/dist/cjs/storage/index.cjs +11 -0
  60. package/dist/cjs/storage/localStorage.cjs +37 -0
  61. package/dist/cjs/storage/sessionStorage.cjs +37 -0
  62. package/dist/cjs/string/index.cjs +358 -0
  63. package/dist/cjs/url/index.cjs +258 -0
  64. package/dist/cjs/validate/index.cjs +468 -0
  65. package/dist/cjs/weapp/index.cjs +142 -0
  66. package/dist/es/ID-card/index.d.ts +31 -0
  67. package/dist/es/ID-card/index.mjs +81 -0
  68. package/dist/es/array/index.d.ts +203 -0
  69. package/dist/es/array/index.mjs +441 -0
  70. package/dist/es/clipboard/index.d.ts +29 -0
  71. package/dist/es/clipboard/index.mjs +122 -0
  72. package/dist/es/color/index.d.ts +52 -0
  73. package/dist/es/color/index.mjs +183 -0
  74. package/dist/es/constants/date.d.ts +174 -0
  75. package/dist/es/constants/date.mjs +176 -0
  76. package/dist/es/constants/id-card.d.ts +43 -0
  77. package/dist/es/constants/id-card.mjs +50 -0
  78. package/dist/es/constants/index.d.ts +7 -0
  79. package/dist/es/constants/keycode.d.ts +103 -0
  80. package/dist/es/constants/keycode.mjs +115 -0
  81. package/dist/es/constants/lang.d.ts +4 -0
  82. package/dist/es/constants/lang.mjs +11 -0
  83. package/dist/es/constants/math.d.ts +4 -0
  84. package/dist/es/constants/math.mjs +11 -0
  85. package/dist/es/constants/regexp.d.ts +24 -0
  86. package/dist/es/constants/regexp.mjs +51 -0
  87. package/dist/es/constants/sort.d.ts +5 -0
  88. package/dist/es/constants/sort.mjs +13 -0
  89. package/dist/es/cookie/index.d.ts +29 -0
  90. package/dist/es/cookie/index.mjs +64 -0
  91. package/dist/es/crypto/aes/aes.d.ts +156 -0
  92. package/dist/es/crypto/aes/aes.mjs +478 -0
  93. package/dist/es/crypto/aes/index.d.ts +16 -0
  94. package/dist/es/crypto/aes/index.mjs +24 -0
  95. package/dist/es/crypto/base32/base32.d.ts +3 -0
  96. package/dist/es/crypto/base32/base32.mjs +353 -0
  97. package/dist/es/crypto/base32/index.d.ts +24 -0
  98. package/dist/es/crypto/base32/index.mjs +36 -0
  99. package/dist/es/crypto/base64/base64.d.ts +5 -0
  100. package/dist/es/crypto/base64/base64.mjs +342 -0
  101. package/dist/es/crypto/base64/index.d.ts +36 -0
  102. package/dist/es/crypto/base64/index.mjs +52 -0
  103. package/dist/es/crypto/des/des.d.ts +52 -0
  104. package/dist/es/crypto/des/des.mjs +255 -0
  105. package/dist/es/crypto/des/index.d.ts +14 -0
  106. package/dist/es/crypto/des/index.mjs +25 -0
  107. package/dist/es/crypto/index.d.ts +8 -0
  108. package/dist/es/crypto/md5/index.d.ts +13 -0
  109. package/dist/es/crypto/md5/index.mjs +21 -0
  110. package/dist/es/crypto/md5/md5.d.ts +144 -0
  111. package/dist/es/crypto/md5/md5.mjs +894 -0
  112. package/dist/es/crypto/sha/index.d.ts +4 -0
  113. package/dist/es/crypto/sha/sha1/index.d.ts +13 -0
  114. package/dist/es/crypto/sha/sha1/index.mjs +21 -0
  115. package/dist/es/crypto/sha/sha1/sha1.d.ts +2 -0
  116. package/dist/es/crypto/sha/sha1/sha1.mjs +526 -0
  117. package/dist/es/crypto/sha/sha256/index.d.ts +26 -0
  118. package/dist/es/crypto/sha/sha256/index.mjs +38 -0
  119. package/dist/es/crypto/sha/sha256/sha256.d.ts +4 -0
  120. package/dist/es/crypto/sha/sha256/sha256.mjs +590 -0
  121. package/dist/es/crypto/sha/sha3/index.d.ts +24 -0
  122. package/dist/es/crypto/sha/sha3/index.mjs +36 -0
  123. package/dist/es/crypto/sha/sha3/sha3.d.ts +4 -0
  124. package/dist/es/crypto/sha/sha3/sha3.mjs +619 -0
  125. package/dist/es/crypto/sha/sha512/index.d.ts +52 -0
  126. package/dist/es/crypto/sha/sha512/index.mjs +72 -0
  127. package/dist/es/crypto/sha/sha512/sha512.d.ts +8 -0
  128. package/dist/es/crypto/sha/sha512/sha512.mjs +941 -0
  129. package/dist/es/crypto/sm/index.d.ts +3 -0
  130. package/dist/es/crypto/sm/lib/asn1.d.ts +12 -0
  131. package/dist/es/crypto/sm/lib/asn1.mjs +146 -0
  132. package/dist/es/crypto/sm/lib/ec.d.ts +126 -0
  133. package/dist/es/crypto/sm/lib/ec.mjs +312 -0
  134. package/dist/es/crypto/sm/lib/jsbn.d.ts +198 -0
  135. package/dist/es/crypto/sm/lib/jsbn.mjs +1605 -0
  136. package/dist/es/crypto/sm/lib/sm3.d.ts +5 -0
  137. package/dist/es/crypto/sm/lib/sm3.mjs +155 -0
  138. package/dist/es/crypto/sm/lib/utils.d.ts +53 -0
  139. package/dist/es/crypto/sm/lib/utils.mjs +158 -0
  140. package/dist/es/crypto/sm/sm2/index.d.ts +71 -0
  141. package/dist/es/crypto/sm/sm2/index.mjs +101 -0
  142. package/dist/es/crypto/sm/sm2/sm2.d.ts +34 -0
  143. package/dist/es/crypto/sm/sm2/sm2.mjs +220 -0
  144. package/dist/es/crypto/sm/sm3/index.d.ts +7 -0
  145. package/dist/es/crypto/sm/sm3/index.mjs +13 -0
  146. package/dist/es/crypto/sm/sm3/sm3.d.ts +1 -0
  147. package/dist/es/crypto/sm/sm3/sm3.mjs +91 -0
  148. package/dist/es/crypto/sm/sm4/index.d.ts +16 -0
  149. package/dist/es/crypto/sm/sm4/index.mjs +24 -0
  150. package/dist/es/crypto/sm/sm4/sm4.d.ts +2 -0
  151. package/dist/es/crypto/sm/sm4/sm4.mjs +324 -0
  152. package/dist/es/crypto/tea/index.d.ts +14 -0
  153. package/dist/es/crypto/tea/index.mjs +22 -0
  154. package/dist/es/crypto/tea/tea.d.ts +69 -0
  155. package/dist/es/crypto/tea/tea.mjs +185 -0
  156. package/dist/es/date/index.d.ts +547 -0
  157. package/dist/es/date/index.mjs +1179 -0
  158. package/dist/es/desensitized/index.d.ts +38 -0
  159. package/dist/es/desensitized/index.mjs +69 -0
  160. package/dist/es/device/index.d.ts +67 -0
  161. package/dist/es/device/index.mjs +137 -0
  162. package/dist/es/dom/index.d.ts +57 -0
  163. package/dist/es/dom/index.mjs +119 -0
  164. package/dist/es/file/index.d.ts +93 -0
  165. package/dist/es/file/index.mjs +317 -0
  166. package/dist/es/function/index.d.ts +23 -0
  167. package/dist/es/function/index.mjs +65 -0
  168. package/dist/es/id/index.mjs +1 -1
  169. package/dist/es/index.d.ts +25 -42
  170. package/dist/es/index.mjs +54 -40
  171. package/dist/es/keycode/index.d.ts +12 -0
  172. package/dist/es/keycode/index.mjs +30 -0
  173. package/dist/es/math/index.d.ts +66 -0
  174. package/dist/es/math/index.mjs +268 -0
  175. package/dist/es/number/index.d.ts +14 -0
  176. package/dist/es/number/index.mjs +28 -0
  177. package/dist/es/object/index.d.ts +83 -0
  178. package/dist/es/object/index.mjs +259 -0
  179. package/dist/es/pagination/index.d.ts +34 -0
  180. package/dist/es/pagination/index.mjs +125 -0
  181. package/dist/es/random/index.d.ts +15 -0
  182. package/dist/es/random/index.mjs +21 -0
  183. package/dist/es/regexp/index.d.ts +63 -0
  184. package/dist/es/regexp/index.mjs +89 -0
  185. package/dist/es/storage/index.d.ts +7 -0
  186. package/dist/es/storage/index.mjs +9 -0
  187. package/dist/es/storage/localStorage.d.ts +21 -0
  188. package/dist/es/storage/localStorage.mjs +32 -0
  189. package/dist/es/storage/sessionStorage.d.ts +21 -0
  190. package/dist/es/storage/sessionStorage.mjs +32 -0
  191. package/dist/es/string/index.d.ts +121 -0
  192. package/dist/es/string/index.mjs +339 -0
  193. package/dist/es/url/index.d.ts +118 -0
  194. package/dist/es/url/index.mjs +240 -0
  195. package/dist/es/validate/index.d.ts +228 -0
  196. package/dist/es/validate/index.mjs +431 -0
  197. package/dist/es/weapp/index.d.ts +57 -0
  198. package/dist/es/weapp/index.mjs +131 -0
  199. package/dist/index.d.ts +2850 -53
  200. package/dist/lib/index.full.cjs.js +14230 -67
  201. package/dist/lib/index.full.cjs.min.js +64 -2
  202. package/dist/lib/index.full.cjs.min.js.map +1 -1
  203. package/dist/lib/index.full.esm.js +13881 -63
  204. package/dist/lib/index.full.esm.min.js +59 -2
  205. package/dist/lib/index.full.esm.min.js.map +1 -1
  206. package/dist/lib/index.full.umd.js +14230 -67
  207. package/dist/lib/index.full.umd.min.js +64 -2
  208. package/dist/lib/index.full.umd.min.js.map +1 -1
  209. package/dist/resolver/auto-imports.cjs +337 -11
  210. package/dist/resolver/auto-imports.mjs +337 -11
  211. package/dist/resolver/index.cjs +1 -1
  212. package/dist/resolver/index.mjs +1 -1
  213. package/package.json +1 -1
@@ -0,0 +1,122 @@
1
+ import { blobToText } from '../file/index.mjs';
2
+
3
+ /**
4
+ * 获得剪切板数据
5
+ * @description 获得的剪切板的数据是会返回多个可用的MIME类型,比如是纯文本就返回一个['text/plain'],是复制的html则会返回两个可用的['text/plain','text/html'],是复制的图片则是['image/png']
6
+ * @returns {Promise} 返回剪切板的数据,是数组形式,如果是文本则是字符串,否则是blob数据
7
+ */
8
+ function getClipboard() {
9
+ return new Promise((resolve, reject) => {
10
+ if (window.navigator.clipboard) {
11
+ window.navigator.clipboard.read().then((clipboardItems) => {
12
+ let list = [];
13
+ for (let item of clipboardItems) {
14
+ for (let type of item.types) {
15
+ item.getType(type).then(async (blob) => {
16
+ // 文本类型,可以直接输出为字符串
17
+ if (blob.type.includes("text")) {
18
+ let text = await blobToText(blob);
19
+ list.push({ type: blob.type, data: text });
20
+ }
21
+ // 图片和其他文件类型,返回blob对象
22
+ else {
23
+ list.push({ type: blob.type, data: blob });
24
+ }
25
+ });
26
+ }
27
+ }
28
+ resolve(list);
29
+ });
30
+ }
31
+ else {
32
+ console.warn("not support navigator clipboard!");
33
+ }
34
+ });
35
+ }
36
+ /**
37
+ * 获得剪切板文本
38
+ * @returns {Promise} 返回剪切板文本
39
+ */
40
+ function getClipboardText() {
41
+ return new Promise((resolve, reject) => {
42
+ if (window.navigator.clipboard) {
43
+ window.navigator.clipboard
44
+ .readText()
45
+ .then((text) => {
46
+ resolve(text);
47
+ })
48
+ .catch((error) => {
49
+ reject(error);
50
+ });
51
+ }
52
+ else {
53
+ console.warn("not support navigator clipboard!");
54
+ }
55
+ });
56
+ }
57
+ /**
58
+ * 设置剪切板数据
59
+ * @description 可以设置文本或者blob类型的数据
60
+ * @param {String,Blob} data 写入的数据,可以是文本或blob数据
61
+ * @returns {Promise} 返回结果
62
+ */
63
+ function setClipboard(data) {
64
+ return new Promise((resolve, reject) => {
65
+ // 现代浏览器
66
+ if (window.navigator.clipboard) {
67
+ let clipboardItem = null;
68
+ // 是文本类型
69
+ if (typeof data === "string") {
70
+ let blob = new Blob([data], { type: "text/plain" });
71
+ clipboardItem = new window.ClipboardItem({
72
+ ["text/plain"]: blob,
73
+ });
74
+ }
75
+ // 其他文件类型
76
+ else {
77
+ clipboardItem = new window.ClipboardItem({ [data.type]: data });
78
+ }
79
+ // 写入到剪切板中
80
+ window.navigator.clipboard.write([clipboardItem]).then((success) => {
81
+ resolve(true);
82
+ }, (failed) => {
83
+ reject(false);
84
+ });
85
+ }
86
+ else {
87
+ console.warn("not support navigator clipboard!");
88
+ }
89
+ });
90
+ }
91
+ /**
92
+ * 设置剪切板文本
93
+ * @param {String} text 写入的文本
94
+ * @returns {Promise} 返回结果
95
+ */
96
+ function setClipboardText(text) {
97
+ return new Promise((resolve, reject) => {
98
+ // 现代浏览器
99
+ if (window.navigator.clipboard) {
100
+ window.navigator.clipboard.writeText(text).then((success) => {
101
+ resolve(true);
102
+ }, (failed) => {
103
+ reject(false);
104
+ });
105
+ }
106
+ else {
107
+ console.warn("not support navigator clipboard!");
108
+ }
109
+ });
110
+ }
111
+ /**
112
+ * 清空剪切板
113
+ * @returns {Promise} 返回结果
114
+ */
115
+ function clearClipboard() {
116
+ return new Promise(async (resolve, reject) => {
117
+ await setClipboardText("");
118
+ resolve(true);
119
+ });
120
+ }
121
+
122
+ export { clearClipboard, getClipboard, getClipboardText, setClipboard, setClipboardText };
@@ -0,0 +1,52 @@
1
+ /**
2
+ * rgb颜色转hex
3
+ * @param {String} rgb rgb颜色字符串
4
+ * @returns {String} 返回生成的hex颜色
5
+ */
6
+ export function rgbToHex(rgb: string): string;
7
+ /**
8
+ * rgba颜色转hex
9
+ * @param {String} rgba rgba颜色字符串
10
+ * @returns {String} 返回生成的hex颜色
11
+ */
12
+ export function rgbaToHex(rgba: string): string;
13
+ /**
14
+ * rgba颜色转hsl
15
+ * @param {String} rgba rgb颜色字符串
16
+ * @returns {String} 返回生成的hsl颜色
17
+ */
18
+ export function rgbaToHsl(rgba: string): string;
19
+ /**
20
+ * hex颜色转rgb
21
+ * @param {String} hex hex颜色字符串
22
+ * @returns {String} 返回生成的rgb颜色
23
+ */
24
+ export function hexToRgb(hex: string): string;
25
+ /**
26
+ * hex颜色转rgba
27
+ * @param {String} hex hex颜色字符串
28
+ * @param {Number} opacity 透明度
29
+ * @returns {String} 返回生成的rgba颜色
30
+ */
31
+ export function hexToRgba(hex: string, opacity?: number): string;
32
+ /**
33
+ * hex颜色转hsl
34
+ * @param {String} hex hex颜色字符串
35
+ * @returns {String} 返回生成的hsl颜色
36
+ */
37
+ export function hexToHsl(hex: string): string;
38
+ /**
39
+ * 随机生成hex颜色
40
+ * @returns {String} 返回生成的十六进制颜色
41
+ */
42
+ export function getDrawHex(): string;
43
+ /**
44
+ * 随机生成rgb颜色
45
+ * @returns {String} 返回生成的 rgb 颜色
46
+ */
47
+ export function getDrawRgb(): string;
48
+ /**
49
+ * 随机生成rgba颜色
50
+ * @returns {String} 返回生成的 rgba 颜色
51
+ */
52
+ export function getDrawRgba(): string;
@@ -0,0 +1,183 @@
1
+ /**
2
+ * rgb颜色转hex
3
+ * @param {String} rgb rgb颜色字符串
4
+ * @returns {String} 返回生成的hex颜色
5
+ */
6
+ function rgbToHex(rgb) {
7
+ let arr = rgb.split(",");
8
+ let r = parseInt(arr[0].split("(")[1]);
9
+ let g = parseInt(arr[1]);
10
+ let b = parseInt(arr[2].split(")")[0]);
11
+ return "#" + _hex(r) + _hex(g) + _hex(b);
12
+ }
13
+ /**
14
+ * rgba颜色转hex
15
+ * @param {String} rgba rgba颜色字符串
16
+ * @returns {String} 返回生成的hex颜色
17
+ */
18
+ function rgbaToHex(rgba) {
19
+ let arr = rgba.split(",");
20
+ let r = parseInt(arr[0].split("(")[1]);
21
+ let g = parseInt(arr[1]);
22
+ let b = parseInt(arr[2]);
23
+ let a = parseFloat(arr[3].split(")")[0]);
24
+ return `#${_hex(Math.round(a * 256 - 1))}${_hex(r)}${_hex(g)}${_hex(b)}`;
25
+ }
26
+ /**
27
+ * rgba颜色转hsl
28
+ * @param {String} rgba rgb颜色字符串
29
+ * @returns {String} 返回生成的hsl颜色
30
+ */
31
+ function rgbaToHsl(rgba) {
32
+ let arr = rgba.split(",");
33
+ let r = parseInt(arr[0].split("(")[1]) / 255;
34
+ let g = parseInt(arr[1]) / 255;
35
+ let b = parseInt(arr[2]) / 255;
36
+ let a = parseFloat(arr[3] && arr[3].split(")")[0]);
37
+ let max = Math.max(r, g, b), min = Math.min(r, g, b);
38
+ let h, s, l = (max + min) / 2;
39
+ if (max === min) {
40
+ h = s = 0;
41
+ }
42
+ else {
43
+ let d = max - min;
44
+ s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
45
+ switch (max) {
46
+ case r:
47
+ h = (g - b) / d + (g < b ? 6 : 0);
48
+ break;
49
+ case g:
50
+ h = (b - r) / d + 2;
51
+ break;
52
+ case b:
53
+ h = (r - g) / d + 4;
54
+ break;
55
+ }
56
+ h /= 6;
57
+ }
58
+ if (a) {
59
+ return `hsla(${Math.round(h * 360)},${Math.round(s * 100)}%,${Math.round(l * 100)}%,${a})`;
60
+ }
61
+ return `hsl(${Math.round(h * 360)},${Math.round(s * 100)}%,${Math.round(l * 100)}%)`;
62
+ }
63
+ /**
64
+ * hex颜色转rgb
65
+ * @param {String} hex hex颜色字符串
66
+ * @returns {String} 返回生成的rgb颜色
67
+ */
68
+ function hexToRgb(hex) {
69
+ let color = {};
70
+ let rgx = /^#?([a-f\d])([a-f\d])([a-f\d])$/i;
71
+ let hexStr = hex.replace(rgx, function (m, r, g, b) {
72
+ return r + r + g + g + b + b;
73
+ });
74
+ let rgb = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hexStr);
75
+ color.r = parseInt(rgb[1], 16);
76
+ color.g = parseInt(rgb[2], 16);
77
+ color.b = parseInt(rgb[3], 16);
78
+ return `rgb(${color.r},${color.g},${color.b})`;
79
+ }
80
+ /**
81
+ * hex颜色转rgba
82
+ * @param {String} hex hex颜色字符串
83
+ * @param {Number} opacity 透明度
84
+ * @returns {String} 返回生成的rgba颜色
85
+ */
86
+ function hexToRgba(hex, opacity = 1) {
87
+ let color = {};
88
+ let rgx = /^#?([a-f\d])([a-f\d])([a-f\d])$/i;
89
+ let hexStr = hex.replace(rgx, function (m, r, g, b) {
90
+ return r + r + g + g + b + b;
91
+ });
92
+ let rgb = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hexStr);
93
+ color.r = parseInt(rgb[1], 16);
94
+ color.g = parseInt(rgb[2], 16);
95
+ color.b = parseInt(rgb[3], 16);
96
+ color.o = opacity;
97
+ return `rgba(${color.r},${color.g},${color.b},${color.o})`;
98
+ }
99
+ /**
100
+ * hex颜色转hsl
101
+ * @param {String} hex hex颜色字符串
102
+ * @returns {String} 返回生成的hsl颜色
103
+ */
104
+ function hexToHsl(hex) {
105
+ // 先解析为rgb
106
+ let rgx = /^#?([a-f\d])([a-f\d])([a-f\d])$/i;
107
+ let hexStr = hex.replace(rgx, function (m, r, g, b) {
108
+ return r + r + g + g + b + b;
109
+ });
110
+ let rgb = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hexStr);
111
+ // 再组装为hsl格式
112
+ let r = parseInt(rgb[1], 16) / 255;
113
+ let g = parseInt(rgb[2], 16) / 255;
114
+ let b = parseInt(rgb[3], 16) / 255;
115
+ let max = Math.max(r, g, b), min = Math.min(r, g, b);
116
+ let h, s, l = (max + min) / 2;
117
+ if (max === min) {
118
+ h = s = 0;
119
+ }
120
+ else {
121
+ let d = max - min;
122
+ s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
123
+ switch (max) {
124
+ case r:
125
+ h = (g - b) / d + (g < b ? 6 : 0);
126
+ break;
127
+ case g:
128
+ h = (b - r) / d + 2;
129
+ break;
130
+ case b:
131
+ h = (r - g) / d + 4;
132
+ break;
133
+ }
134
+ h /= 6;
135
+ }
136
+ return `hsl(${Math.round(h * 360)},${Math.round(s * 100)}%,${Math.round(l * 100)}%)`;
137
+ }
138
+ /**
139
+ * 随机生成hex颜色
140
+ * @returns {String} 返回生成的十六进制颜色
141
+ */
142
+ function getDrawHex() {
143
+ return ("#" +
144
+ (function (h) {
145
+ return new Array(7 - h.length).join("0") + h;
146
+ })(((Math.random() * 0x1000000) << 0).toString(16)));
147
+ }
148
+ /**
149
+ * 随机生成rgb颜色
150
+ * @returns {String} 返回生成的 rgb 颜色
151
+ */
152
+ function getDrawRgb() {
153
+ let r = Math.floor(Math.random() * 256);
154
+ let g = Math.floor(Math.random() * 256);
155
+ let b = Math.floor(Math.random() * 256);
156
+ return `rgb(${r},${g},${b})`;
157
+ }
158
+ /**
159
+ * 随机生成rgba颜色
160
+ * @returns {String} 返回生成的 rgba 颜色
161
+ */
162
+ function getDrawRgba() {
163
+ let r = Math.floor(Math.random() * 256);
164
+ let g = Math.floor(Math.random() * 256);
165
+ let b = Math.floor(Math.random() * 256);
166
+ let a = Number(Math.random()).toFixed(2);
167
+ return `rgba(${r},${g},${b},${a})`;
168
+ }
169
+ // 内部函数
170
+ /**
171
+ * 颜色值转换
172
+ * @param {Number} num 转换的值
173
+ * @returns
174
+ */
175
+ function _hex(num) {
176
+ if (num > 255) {
177
+ throw "'" + num + "'' is greater than 255(0xff);";
178
+ }
179
+ let str = Number(num).toString(16);
180
+ return ("0" + str).slice(-2);
181
+ }
182
+
183
+ export { getDrawHex, getDrawRgb, getDrawRgba, hexToHsl, hexToRgb, hexToRgba, rgbToHex, rgbaToHex, rgbaToHsl };
@@ -0,0 +1,174 @@
1
+ export namespace DATE {
2
+ namespace AM_PM {
3
+ namespace zh {
4
+ let AM: string;
5
+ let PM: string;
6
+ }
7
+ namespace en {
8
+ let AM_1: string;
9
+ export { AM_1 as AM };
10
+ let PM_1: string;
11
+ export { PM_1 as PM };
12
+ }
13
+ }
14
+ namespace WEEK {
15
+ export namespace zh_1 {
16
+ let FULL: string[];
17
+ let SHORT: string[];
18
+ let MINI: string[];
19
+ }
20
+ export { zh_1 as zh };
21
+ export namespace en_1 {
22
+ let FULL_1: string[];
23
+ export { FULL_1 as FULL };
24
+ let SHORT_1: string[];
25
+ export { SHORT_1 as SHORT };
26
+ let MINI_1: string[];
27
+ export { MINI_1 as MINI };
28
+ }
29
+ export { en_1 as en };
30
+ }
31
+ namespace MONTH {
32
+ export namespace zh_2 {
33
+ let FULL_2: string[];
34
+ export { FULL_2 as FULL };
35
+ let SHORT_2: string[];
36
+ export { SHORT_2 as SHORT };
37
+ }
38
+ export { zh_2 as zh };
39
+ export namespace en_2 {
40
+ let FULL_3: string[];
41
+ export { FULL_3 as FULL };
42
+ let SHORT_3: string[];
43
+ export { SHORT_3 as SHORT };
44
+ }
45
+ export { en_2 as en };
46
+ }
47
+ namespace QUARTER {
48
+ export namespace zh_3 {
49
+ let FULL_4: string[];
50
+ export { FULL_4 as FULL };
51
+ let SHORT_4: string[];
52
+ export { SHORT_4 as SHORT };
53
+ let MINI_2: string[];
54
+ export { MINI_2 as MINI };
55
+ }
56
+ export { zh_3 as zh };
57
+ export namespace en_3 {
58
+ let FULL_5: string[];
59
+ export { FULL_5 as FULL };
60
+ let SHORT_5: string[];
61
+ export { SHORT_5 as SHORT };
62
+ let MINI_3: string[];
63
+ export { MINI_3 as MINI };
64
+ }
65
+ export { en_3 as en };
66
+ }
67
+ namespace OVER_TIME {
68
+ export namespace zh_4 {
69
+ export let YEAR: string;
70
+ let MONTH_1: string;
71
+ export { MONTH_1 as MONTH };
72
+ export let DATE: string;
73
+ export let HOUR: string;
74
+ export let MINUTE: string;
75
+ export let SECOND: string;
76
+ export let MILLISECOND: string;
77
+ export let DAY: string;
78
+ let QUARTER_1: string;
79
+ export { QUARTER_1 as QUARTER };
80
+ }
81
+ export { zh_4 as zh };
82
+ export namespace en_4 {
83
+ let YEAR_1: string;
84
+ export { YEAR_1 as YEAR };
85
+ let MONTH_2: string;
86
+ export { MONTH_2 as MONTH };
87
+ let DATE_1: string;
88
+ export { DATE_1 as DATE };
89
+ let HOUR_1: string;
90
+ export { HOUR_1 as HOUR };
91
+ let MINUTE_1: string;
92
+ export { MINUTE_1 as MINUTE };
93
+ let SECOND_1: string;
94
+ export { SECOND_1 as SECOND };
95
+ let MILLISECOND_1: string;
96
+ export { MILLISECOND_1 as MILLISECOND };
97
+ let DAY_1: string;
98
+ export { DAY_1 as DAY };
99
+ let QUARTER_2: string;
100
+ export { QUARTER_2 as QUARTER };
101
+ }
102
+ export { en_4 as en };
103
+ }
104
+ namespace PASS_TIME {
105
+ export namespace zh_5 {
106
+ let YEAR_2: string;
107
+ export { YEAR_2 as YEAR };
108
+ let MONTH_3: string;
109
+ export { MONTH_3 as MONTH };
110
+ let DAY_2: string;
111
+ export { DAY_2 as DAY };
112
+ export let BEFORE_YESTERDAY: string;
113
+ export let YESTERDAY: string;
114
+ export let TODAY: string;
115
+ let HOUR_2: string;
116
+ export { HOUR_2 as HOUR };
117
+ let MINUTE_2: string;
118
+ export { MINUTE_2 as MINUTE };
119
+ export let JUST: string;
120
+ }
121
+ export { zh_5 as zh };
122
+ export namespace en_5 {
123
+ let YEAR_3: string;
124
+ export { YEAR_3 as YEAR };
125
+ let MONTH_4: string;
126
+ export { MONTH_4 as MONTH };
127
+ let DAY_3: string;
128
+ export { DAY_3 as DAY };
129
+ let BEFORE_YESTERDAY_1: string;
130
+ export { BEFORE_YESTERDAY_1 as BEFORE_YESTERDAY };
131
+ let YESTERDAY_1: string;
132
+ export { YESTERDAY_1 as YESTERDAY };
133
+ let TODAY_1: string;
134
+ export { TODAY_1 as TODAY };
135
+ let HOUR_3: string;
136
+ export { HOUR_3 as HOUR };
137
+ let MINUTE_3: string;
138
+ export { MINUTE_3 as MINUTE };
139
+ let JUST_1: string;
140
+ export { JUST_1 as JUST };
141
+ }
142
+ export { en_5 as en };
143
+ }
144
+ namespace HOLIDAY {
145
+ let zh_6: string[];
146
+ export { zh_6 as zh };
147
+ let en_6: string[];
148
+ export { en_6 as en };
149
+ }
150
+ namespace ZODIAC {
151
+ let zh_7: string[];
152
+ export { zh_7 as zh };
153
+ let en_7: string[];
154
+ export { en_7 as en };
155
+ }
156
+ namespace CHINESE_ZODIAC {
157
+ let zh_8: string[];
158
+ export { zh_8 as zh };
159
+ let en_8: string[];
160
+ export { en_8 as en };
161
+ }
162
+ namespace HEAVENLY_STEMS {
163
+ let zh_9: string[];
164
+ export { zh_9 as zh };
165
+ let en_9: string[];
166
+ export { en_9 as en };
167
+ }
168
+ namespace EARTHLY_BRANCHES {
169
+ let zh_10: string[];
170
+ export { zh_10 as zh };
171
+ let en_10: string[];
172
+ export { en_10 as en };
173
+ }
174
+ }
@@ -0,0 +1,176 @@
1
+ /**
2
+ * 日期
3
+ */
4
+ const DATE = {
5
+ // 上午和下午
6
+ AM_PM: {
7
+ zh: {
8
+ AM: "上午",
9
+ PM: "下午",
10
+ },
11
+ en: {
12
+ AM: "AM",
13
+ PM: "PM",
14
+ },
15
+ },
16
+ // 周
17
+ WEEK: {
18
+ zh: {
19
+ FULL: ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"],
20
+ SHORT: ["周日", "周一", "周二", "周三", "周四", "周五", "周六"],
21
+ MINI: ["日", "一", "二", "三", "四", "五", "六"],
22
+ },
23
+ en: {
24
+ FULL: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
25
+ SHORT: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
26
+ MINI: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"],
27
+ },
28
+ },
29
+ // 月
30
+ MONTH: {
31
+ zh: {
32
+ FULL: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"],
33
+ SHORT: ["一", "二", "三", "四", "五", "六", "七", "八", "九", "十", "十一", "十二"],
34
+ },
35
+ en: {
36
+ FULL: [
37
+ "January",
38
+ "February",
39
+ "March",
40
+ "April",
41
+ "May",
42
+ "June",
43
+ "July",
44
+ "August",
45
+ "September",
46
+ "October",
47
+ "November",
48
+ "December",
49
+ ],
50
+ SHORT: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
51
+ },
52
+ },
53
+ // 季度
54
+ QUARTER: {
55
+ zh: {
56
+ FULL: ["第一季度", "第二季度", "第三季度", "第四季度"],
57
+ SHORT: ["一季度", "二季度", "三季度", "四季度"],
58
+ MINI: ["一", "二", "三", "四"],
59
+ },
60
+ en: {
61
+ FULL: ["quarter 1st", "quarter 2nd", "quarter 3rd", "quarter 4th"],
62
+ SHORT: ["Q1th", "Q2nd", "Q3rd", "Q4th"],
63
+ MINI: ["Q1", "Q2", "Q3", "Q4"],
64
+ },
65
+ },
66
+ // 已过日期类型
67
+ OVER_TIME: {
68
+ zh: {
69
+ YEAR: "年",
70
+ MONTH: "月",
71
+ DATE: "日",
72
+ HOUR: "时",
73
+ MINUTE: "分",
74
+ SECOND: "秒",
75
+ MILLISECOND: "毫秒",
76
+ DAY: "天",
77
+ QUARTER: "季度",
78
+ },
79
+ en: {
80
+ YEAR: "year",
81
+ MONTH: "month",
82
+ DATE: "date",
83
+ HOUR: "hour",
84
+ MINUTE: "minute",
85
+ SECOND: "second",
86
+ MILLISECOND: "millisecond",
87
+ DAY: "day",
88
+ QUARTER: "quarter",
89
+ },
90
+ },
91
+ // 时间节点
92
+ PASS_TIME: {
93
+ zh: {
94
+ YEAR: "年前",
95
+ MONTH: "个月前",
96
+ DAY: "天前",
97
+ BEFORE_YESTERDAY: "前天",
98
+ YESTERDAY: "昨天",
99
+ TODAY: "今天",
100
+ HOUR: "小时前",
101
+ MINUTE: "分钟前",
102
+ JUST: "刚刚",
103
+ },
104
+ en: {
105
+ YEAR: " year ago",
106
+ MONTH: " month ago",
107
+ DAY: " day ago",
108
+ BEFORE_YESTERDAY: "before yesterday",
109
+ YESTERDAY: " yesterday",
110
+ TODAY: " today",
111
+ HOUR: " hour ago",
112
+ MINUTE: " minute ago",
113
+ JUST: " just",
114
+ },
115
+ },
116
+ // 节假日
117
+ HOLIDAY: {
118
+ zh: ["元旦", "春节", "清明节", "劳动节", "端午节", "中秋节", "国庆节"],
119
+ en: [
120
+ "New Year‘s Day",
121
+ "Spring Festival",
122
+ "Tomb Sweeping Day",
123
+ "Labor Day",
124
+ "Dragon Boat Festival",
125
+ "Mid-Autumn Day",
126
+ "National Day",
127
+ ],
128
+ },
129
+ // 星座
130
+ ZODIAC: {
131
+ zh: [
132
+ "摩羯座",
133
+ "水瓶座",
134
+ "双鱼座",
135
+ "白羊座",
136
+ "金牛座",
137
+ "双子座",
138
+ "巨蟹座",
139
+ "狮子座",
140
+ "处女座",
141
+ "天秤座",
142
+ "天蝎座",
143
+ "射手座",
144
+ ],
145
+ en: [
146
+ "Capricorn",
147
+ "Aquarius",
148
+ "Pisces",
149
+ "Aries",
150
+ "Taurus",
151
+ "Gemini",
152
+ "Cancer",
153
+ "Leo",
154
+ "Virgo",
155
+ "Libra",
156
+ "Scorpio",
157
+ "Sagittarius",
158
+ ],
159
+ },
160
+ // 生肖
161
+ CHINESE_ZODIAC: {
162
+ zh: ["鼠", "牛", "虎", "兔", "龙", "蛇", "马", "羊", "猴", "鸡", "狗", "猪"],
163
+ en: ["Rat", "Ox", "Tiger", "Rabbit", "Dragon", "Snake", "Horse", "Goat", "Monkey", "Rooster", "Dog", "Pig"],
164
+ },
165
+ // 天干地支
166
+ HEAVENLY_STEMS: {
167
+ zh: ["甲", "乙", "丙", "丁", "戊", "己", "庚", "辛", "壬", "癸"],
168
+ en: ["Jia", "Yi", "Bing", "Ding", "Wu", "Ji", "Geng", "Xin", "Ren", "Gui"],
169
+ },
170
+ EARTHLY_BRANCHES: {
171
+ zh: ["子", "丑", "寅", "卯", "辰", "巳", "午", "未", "申", "酉", "戌", "亥"],
172
+ en: ["Zi", "Chou", "Yin", "Mao", "Chen", "Si", "Wu", "Wei", "Shen", "You", "Xu", "Hai"],
173
+ },
174
+ };
175
+
176
+ export { DATE };