wechat-emojis 1.0.0

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 (120) hide show
  1. package/API.md +228 -0
  2. package/REACT_USAGE.md +456 -0
  3. package/README.md +251 -0
  4. package/assets/animal//345/217/221/346/212/226.png +0 -0
  5. package/assets/animal//347/214/252/345/244/264.png +0 -0
  6. package/assets/animal//350/267/263/350/267/263.png +0 -0
  7. package/assets/animal//350/275/254/345/234/210.png +0 -0
  8. package/assets/blessing//345/272/206/347/245/235.png +0 -0
  9. package/assets/blessing//347/203/237/350/212/261.png +0 -0
  10. package/assets/blessing//347/210/206/347/253/271.png +0 -0
  11. package/assets/blessing//347/231/274.png +0 -0
  12. package/assets/blessing//347/244/274/347/211/251.png +0 -0
  13. package/assets/blessing//347/246/217.png +0 -0
  14. package/assets/blessing//347/272/242/345/214/205.png +0 -0
  15. package/assets/face/666.png +0 -0
  16. package/assets/face/Emm.png +0 -0
  17. package/assets/face//344/272/262/344/272/262.png +0 -0
  18. package/assets/face//345/201/267/347/254/221.png +0 -0
  19. package/assets/face//345/202/262/346/205/242.png +0 -0
  20. package/assets/face//345/206/215/350/247/201.png +0 -0
  21. package/assets/face//345/212/240/346/262/271.png +0 -0
  22. package/assets/face//345/217/221/345/221/206.png +0 -0
  23. package/assets/face//345/217/221/346/200/222.png +0 -0
  24. package/assets/face//345/217/257/346/200/234.png +0 -0
  25. package/assets/face//345/217/263/345/223/274/345/223/274.png +0 -0
  26. package/assets/face//345/217/271/346/260/224.png +0 -0
  27. package/assets/face//345/220/203/347/223/234.png +0 -0
  28. package/assets/face//345/220/220.png +0 -0
  29. package/assets/face//345/221/262/347/211/231.png +0 -0
  30. package/assets/face//345/222/222/351/252/202.png +0 -0
  31. package/assets/face//345/223/207.png +0 -0
  32. package/assets/face//345/230/230.png +0 -0
  33. package/assets/face//345/230/277/345/223/210.png +0 -0
  34. package/assets/face//345/233/247.png +0 -0
  35. package/assets/face//345/233/260.png +0 -0
  36. package/assets/face//345/235/217/347/254/221.png +0 -0
  37. package/assets/face//345/244/247/345/223/255.png +0 -0
  38. package/assets/face//345/244/251/345/225/212.png +0 -0
  39. package/assets/face//345/244/261/346/234/233.png +0 -0
  40. package/assets/face//345/245/270/347/254/221.png +0 -0
  41. package/assets/face//345/245/275/347/232/204.png +0 -0
  42. package/assets/face//345/247/224/345/261/210.png +0 -0
  43. package/assets/face//345/256/263/347/276/236.png +0 -0
  44. package/assets/face//345/260/264/345/260/254.png +0 -0
  45. package/assets/face//345/276/227/346/204/217.png +0 -0
  46. package/assets/face//345/276/256/347/254/221.png +0 -0
  47. package/assets/face//345/277/253/345/223/255/344/272/206.png +0 -0
  48. package/assets/face//346/201/220/346/203/247.png +0 -0
  49. package/assets/face//346/202/240/351/227/262.png +0 -0
  50. package/assets/face//346/203/212/346/201/220.png +0 -0
  51. package/assets/face//346/203/212/350/256/266.png +0 -0
  52. package/assets/face//346/204/211/345/277/253.png +0 -0
  53. package/assets/face//346/206/250/347/254/221.png +0 -0
  54. package/assets/face//346/211/223/350/204/270.png +0 -0
  55. package/assets/face//346/212/223/347/213/202.png +0 -0
  56. package/assets/face//346/212/240/351/274/273.png +0 -0
  57. package/assets/face//346/215/202/350/204/270.png +0 -0
  58. package/assets/face//346/222/207/345/230/264.png +0 -0
  59. package/assets/face//346/223/246/346/261/227.png +0 -0
  60. package/assets/face//346/225/262/346/211/223.png +0 -0
  61. package/assets/face//346/227/240/350/257/255.png +0 -0
  62. package/assets/face//346/227/272/346/237/264.png +0 -0
  63. package/assets/face//346/231/225.png +0 -0
  64. package/assets/face//346/234/272/346/231/272.png +0 -0
  65. package/assets/face//346/261/227.png +0 -0
  66. package/assets/face//346/265/201/346/263/252.png +0 -0
  67. package/assets/face//347/224/237/347/227/205.png +0 -0
  68. package/assets/face//347/226/221/351/227/256.png +0 -0
  69. package/assets/face//347/231/275/347/234/274.png +0 -0
  70. package/assets/face//347/232/261/347/234/211.png +0 -0
  71. package/assets/face//347/235/241.png +0 -0
  72. package/assets/face//347/240/264/346/266/225/344/270/272/347/254/221.png +0 -0
  73. package/assets/face//347/244/276/344/274/232.png +0 -0
  74. package/assets/face//347/254/221/350/204/270.png +0 -0
  75. package/assets/face//347/277/273/347/231/275/347/234/274.png +0 -0
  76. package/assets/face//350/200/266.png +0 -0
  77. package/assets/face//350/204/270/347/272/242.png +0 -0
  78. package/assets/face//350/211/262.png +0 -0
  79. package/assets/face//350/213/246/346/266/251.png +0 -0
  80. package/assets/face//350/241/260.png +0 -0
  81. package/assets/face//350/243/202/345/274/200.png +0 -0
  82. package/assets/face//350/256/251/346/210/221/347/234/213/347/234/213.png +0 -0
  83. package/assets/face//350/260/203/347/232/256.png +0 -0
  84. package/assets/face//351/204/231/350/247/206.png +0 -0
  85. package/assets/face//351/227/255/345/230/264.png +0 -0
  86. package/assets/face//351/230/264/351/231/251.png +0 -0
  87. package/assets/face//351/232/276/350/277/207.png +0 -0
  88. package/assets/face//351/252/267/351/253/205.png +0 -0
  89. package/assets/face//351/274/223/346/216/214.png +0 -0
  90. package/assets/gesture/OK.png +0 -0
  91. package/assets/gesture//345/213/276/345/274/225.png +0 -0
  92. package/assets/gesture//345/220/210/345/215/201.png +0 -0
  93. package/assets/gesture//345/274/261.png +0 -0
  94. package/assets/gesture//345/274/272.png +0 -0
  95. package/assets/gesture//345/276/227/346/204/217.png +0 -0
  96. package/assets/gesture//346/212/261/346/213/263.png +0 -0
  97. package/assets/gesture//346/213/245/346/212/261.png +0 -0
  98. package/assets/gesture//346/213/263/345/244/264.png +0 -0
  99. package/assets/gesture//346/217/241/346/211/213.png +0 -0
  100. package/assets/gesture//350/200/266.png +0 -0
  101. package/assets/gesture//350/203/234/345/210/251.png +0 -0
  102. package/assets/other//344/276/277/344/276/277.png +0 -0
  103. package/assets/other//345/207/213/350/260/242.png +0 -0
  104. package/assets/other//345/222/226/345/225/241.png +0 -0
  105. package/assets/other//345/225/244/351/205/222.png +0 -0
  106. package/assets/other//345/230/264/345/224/207.png +0 -0
  107. package/assets/other//345/244/252/351/230/263.png +0 -0
  108. package/assets/other//345/245/213/346/226/227.png +0 -0
  109. package/assets/other//345/277/203/347/242/216.png +0 -0
  110. package/assets/other//346/231/232/345/256/211.png +0 -0
  111. package/assets/other//347/202/270/345/274/271.png +0 -0
  112. package/assets/other//347/210/206/347/217/240.png +0 -0
  113. package/assets/other//347/210/206/347/253/271.png +0 -0
  114. package/assets/other//347/210/261/345/277/203.png +0 -0
  115. package/assets/other//350/217/234/345/210/200.png +0 -0
  116. package/assets/other//350/233/213/347/263/225.png +0 -0
  117. package/assets/other//351/262/234/350/212/261.png +0 -0
  118. package/package.json +49 -0
  119. package/wechatEmoji.js +314 -0
  120. package/wechatEmoji.ts +364 -0
package/wechatEmoji.js ADDED
@@ -0,0 +1,314 @@
1
+ "use strict";
2
+ /**
3
+ * 微信表情包 TypeScript 模块
4
+ * 提供类型安全的表情访问和图片路径获取功能
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.getRandomEmoji = exports.getEmojiNames = exports.hasEmoji = exports.searchEmojis = exports.getAllEmojis = exports.getEmojisByCategory = exports.getEmojiInfo = exports.getEmojiPath = exports.EMOJI_CATEGORIES = exports.EmojiCategory = void 0;
8
+ /**
9
+ * 表情类别枚举
10
+ */
11
+ var EmojiCategory;
12
+ (function (EmojiCategory) {
13
+ /** 人脸表情 */
14
+ EmojiCategory["FACE"] = "face";
15
+ /** 手势表情 */
16
+ EmojiCategory["GESTURE"] = "gesture";
17
+ /** 动物表情 */
18
+ EmojiCategory["ANIMAL"] = "animal";
19
+ /** 祝福表情 */
20
+ EmojiCategory["BLESSING"] = "blessing";
21
+ /** 其他表情 */
22
+ EmojiCategory["OTHER"] = "other";
23
+ })(EmojiCategory = exports.EmojiCategory || (exports.EmojiCategory = {}));
24
+ /**
25
+ * 表情数据映射
26
+ * 将表情名称映射到完整的表情信息
27
+ */
28
+ const EMOJI_DATA = {
29
+ // 人脸表情
30
+ '微笑': { name: '微笑', category: EmojiCategory.FACE, path: 'assets/face/微笑.png' },
31
+ '撇嘴': { name: '撇嘴', category: EmojiCategory.FACE, path: 'assets/face/撇嘴.png' },
32
+ '色': { name: '色', category: EmojiCategory.FACE, path: 'assets/face/色.png' },
33
+ '发呆': { name: '发呆', category: EmojiCategory.FACE, path: 'assets/face/发呆.png' },
34
+ '得意': { name: '得意', category: EmojiCategory.FACE, path: 'assets/face/得意.png' },
35
+ '流泪': { name: '流泪', category: EmojiCategory.FACE, path: 'assets/face/流泪.png' },
36
+ '害羞': { name: '害羞', category: EmojiCategory.FACE, path: 'assets/face/害羞.png' },
37
+ '闭嘴': { name: '闭嘴', category: EmojiCategory.FACE, path: 'assets/face/闭嘴.png' },
38
+ '睡': { name: '睡', category: EmojiCategory.FACE, path: 'assets/face/睡.png' },
39
+ '大哭': { name: '大哭', category: EmojiCategory.FACE, path: 'assets/face/大哭.png' },
40
+ '尴尬': { name: '尴尬', category: EmojiCategory.FACE, path: 'assets/face/尴尬.png' },
41
+ '发怒': { name: '发怒', category: EmojiCategory.FACE, path: 'assets/face/发怒.png' },
42
+ '调皮': { name: '调皮', category: EmojiCategory.FACE, path: 'assets/face/调皮.png' },
43
+ '呲牙': { name: '呲牙', category: EmojiCategory.FACE, path: 'assets/face/呲牙.png' },
44
+ '惊讶': { name: '惊讶', category: EmojiCategory.FACE, path: 'assets/face/惊讶.png' },
45
+ '难过': { name: '难过', category: EmojiCategory.FACE, path: 'assets/face/难过.png' },
46
+ '囧': { name: '囧', category: EmojiCategory.FACE, path: 'assets/face/囧.png' },
47
+ '抓狂': { name: '抓狂', category: EmojiCategory.FACE, path: 'assets/face/抓狂.png' },
48
+ '吐': { name: '吐', category: EmojiCategory.FACE, path: 'assets/face/吐.png' },
49
+ '偷笑': { name: '偷笑', category: EmojiCategory.FACE, path: 'assets/face/偷笑.png' },
50
+ '愉快': { name: '愉快', category: EmojiCategory.FACE, path: 'assets/face/愉快.png' },
51
+ '白眼': { name: '白眼', category: EmojiCategory.FACE, path: 'assets/face/白眼.png' },
52
+ '傲慢': { name: '傲慢', category: EmojiCategory.FACE, path: 'assets/face/傲慢.png' },
53
+ '困': { name: '困', category: EmojiCategory.FACE, path: 'assets/face/困.png' },
54
+ '惊恐': { name: '惊恐', category: EmojiCategory.FACE, path: 'assets/face/惊恐.png' },
55
+ '憨笑': { name: '憨笑', category: EmojiCategory.FACE, path: 'assets/face/憨笑.png' },
56
+ '悠闲': { name: '悠闲', category: EmojiCategory.FACE, path: 'assets/face/悠闲.png' },
57
+ '咒骂': { name: '咒骂', category: EmojiCategory.FACE, path: 'assets/face/咒骂.png' },
58
+ '疑问': { name: '疑问', category: EmojiCategory.FACE, path: 'assets/face/疑问.png' },
59
+ '嘘': { name: '嘘', category: EmojiCategory.FACE, path: 'assets/face/嘘.png' },
60
+ '晕': { name: '晕', category: EmojiCategory.FACE, path: 'assets/face/晕.png' },
61
+ '衰': { name: '衰', category: EmojiCategory.FACE, path: 'assets/face/衰.png' },
62
+ '骷髅': { name: '骷髅', category: EmojiCategory.FACE, path: 'assets/face/骷髅.png' },
63
+ '敲打': { name: '敲打', category: EmojiCategory.FACE, path: 'assets/face/敲打.png' },
64
+ '再见': { name: '再见', category: EmojiCategory.FACE, path: 'assets/face/再见.png' },
65
+ '擦汗': { name: '擦汗', category: EmojiCategory.FACE, path: 'assets/face/擦汗.png' },
66
+ '抠鼻': { name: '抠鼻', category: EmojiCategory.FACE, path: 'assets/face/抠鼻.png' },
67
+ '鼓掌': { name: '鼓掌', category: EmojiCategory.FACE, path: 'assets/face/鼓掌.png' },
68
+ '坏笑': { name: '坏笑', category: EmojiCategory.FACE, path: 'assets/face/坏笑.png' },
69
+ '右哼哼': { name: '右哼哼', category: EmojiCategory.FACE, path: 'assets/face/右哼哼.png' },
70
+ '鄙视': { name: '鄙视', category: EmojiCategory.FACE, path: 'assets/face/鄙视.png' },
71
+ '委屈': { name: '委屈', category: EmojiCategory.FACE, path: 'assets/face/委屈.png' },
72
+ '快哭了': { name: '快哭了', category: EmojiCategory.FACE, path: 'assets/face/快哭了.png' },
73
+ '阴险': { name: '阴险', category: EmojiCategory.FACE, path: 'assets/face/阴险.png' },
74
+ '亲亲': { name: '亲亲', category: EmojiCategory.FACE, path: 'assets/face/亲亲.png' },
75
+ '可怜': { name: '可怜', category: EmojiCategory.FACE, path: 'assets/face/可怜.png' },
76
+ '笑脸': { name: '笑脸', category: EmojiCategory.FACE, path: 'assets/face/笑脸.png' },
77
+ '生病': { name: '生病', category: EmojiCategory.FACE, path: 'assets/face/生病.png' },
78
+ '脸红': { name: '脸红', category: EmojiCategory.FACE, path: 'assets/face/脸红.png' },
79
+ '破涕为笑': { name: '破涕为笑', category: EmojiCategory.FACE, path: 'assets/face/破涕为笑.png' },
80
+ '恐惧': { name: '恐惧', category: EmojiCategory.FACE, path: 'assets/face/恐惧.png' },
81
+ '失望': { name: '失望', category: EmojiCategory.FACE, path: 'assets/face/失望.png' },
82
+ '无语': { name: '无语', category: EmojiCategory.FACE, path: 'assets/face/无语.png' },
83
+ '嘿哈': { name: '嘿哈', category: EmojiCategory.FACE, path: 'assets/face/嘿哈.png' },
84
+ '捂脸': { name: '捂脸', category: EmojiCategory.FACE, path: 'assets/face/捂脸.png' },
85
+ '机智': { name: '机智', category: EmojiCategory.FACE, path: 'assets/face/机智.png' },
86
+ '皱眉': { name: '皱眉', category: EmojiCategory.FACE, path: 'assets/face/皱眉.png' },
87
+ '耶': { name: '耶', category: EmojiCategory.FACE, path: 'assets/face/耶.png' },
88
+ '吃瓜': { name: '吃瓜', category: EmojiCategory.FACE, path: 'assets/face/吃瓜.png' },
89
+ '加油': { name: '加油', category: EmojiCategory.FACE, path: 'assets/face/加油.png' },
90
+ '汗': { name: '汗', category: EmojiCategory.FACE, path: 'assets/face/汗.png' },
91
+ '天啊': { name: '天啊', category: EmojiCategory.FACE, path: 'assets/face/天啊.png' },
92
+ 'Emm': { name: 'Emm', category: EmojiCategory.FACE, path: 'assets/face/Emm.png' },
93
+ '社会': { name: '社会', category: EmojiCategory.FACE, path: 'assets/face/社会.png' },
94
+ '旺柴': { name: '旺柴', category: EmojiCategory.FACE, path: 'assets/face/旺柴.png' },
95
+ '好的': { name: '好的', category: EmojiCategory.FACE, path: 'assets/face/好的.png' },
96
+ '打脸': { name: '打脸', category: EmojiCategory.FACE, path: 'assets/face/打脸.png' },
97
+ '哇': { name: '哇', category: EmojiCategory.FACE, path: 'assets/face/哇.png' },
98
+ '翻白眼': { name: '翻白眼', category: EmojiCategory.FACE, path: 'assets/face/翻白眼.png' },
99
+ '666': { name: '666', category: EmojiCategory.FACE, path: 'assets/face/666.png' },
100
+ '让我看看': { name: '让我看看', category: EmojiCategory.FACE, path: 'assets/face/让我看看.png' },
101
+ '叹气': { name: '叹气', category: EmojiCategory.FACE, path: 'assets/face/叹气.png' },
102
+ '苦涩': { name: '苦涩', category: EmojiCategory.FACE, path: 'assets/face/苦涩.png' },
103
+ '裂开': { name: '裂开', category: EmojiCategory.FACE, path: 'assets/face/裂开.png' },
104
+ '奸笑': { name: '奸笑', category: EmojiCategory.FACE, path: 'assets/face/奸笑.png' },
105
+ // 手势表情
106
+ '握手': { name: '握手', category: EmojiCategory.GESTURE, path: 'assets/gesture/握手.png' },
107
+ '胜利': { name: '胜利', category: EmojiCategory.GESTURE, path: 'assets/gesture/胜利.png' },
108
+ '抱拳': { name: '抱拳', category: EmojiCategory.GESTURE, path: 'assets/gesture/抱拳.png' },
109
+ '勾引': { name: '勾引', category: EmojiCategory.GESTURE, path: 'assets/gesture/勾引.png' },
110
+ '拳头': { name: '拳头', category: EmojiCategory.GESTURE, path: 'assets/gesture/拳头.png' },
111
+ 'OK': { name: 'OK', category: EmojiCategory.GESTURE, path: 'assets/gesture/OK.png' },
112
+ '合十': { name: '合十', category: EmojiCategory.GESTURE, path: 'assets/gesture/合十.png' },
113
+ '强': { name: '强', category: EmojiCategory.GESTURE, path: 'assets/gesture/强.png' },
114
+ '拥抱': { name: '拥抱', category: EmojiCategory.GESTURE, path: 'assets/gesture/拥抱.png' },
115
+ '弱': { name: '弱', category: EmojiCategory.GESTURE, path: 'assets/gesture/弱.png' },
116
+ // 动物表情
117
+ '猪头': { name: '猪头', category: EmojiCategory.ANIMAL, path: 'assets/animal/猪头.png' },
118
+ '跳跳': { name: '跳跳', category: EmojiCategory.ANIMAL, path: 'assets/animal/跳跳.png' },
119
+ '发抖': { name: '发抖', category: EmojiCategory.ANIMAL, path: 'assets/animal/发抖.png' },
120
+ '转圈': { name: '转圈', category: EmojiCategory.ANIMAL, path: 'assets/animal/转圈.png' },
121
+ // 祝福表情
122
+ '庆祝': { name: '庆祝', category: EmojiCategory.BLESSING, path: 'assets/blessing/庆祝.png' },
123
+ '礼物': { name: '礼物', category: EmojiCategory.BLESSING, path: 'assets/blessing/礼物.png' },
124
+ '红包': { name: '红包', category: EmojiCategory.BLESSING, path: 'assets/blessing/红包.png' },
125
+ '發': { name: '發', category: EmojiCategory.BLESSING, path: 'assets/blessing/發.png' },
126
+ '福': { name: '福', category: EmojiCategory.BLESSING, path: 'assets/blessing/福.png' },
127
+ '烟花': { name: '烟花', category: EmojiCategory.BLESSING, path: 'assets/blessing/烟花.png' },
128
+ '爆竹': { name: '爆竹', category: EmojiCategory.BLESSING, path: 'assets/blessing/爆竹.png' },
129
+ // 其他表情
130
+ '嘴唇': { name: '嘴唇', category: EmojiCategory.OTHER, path: 'assets/other/嘴唇.png' },
131
+ '爱心': { name: '爱心', category: EmojiCategory.OTHER, path: 'assets/other/爱心.png' },
132
+ '心碎': { name: '心碎', category: EmojiCategory.OTHER, path: 'assets/other/心碎.png' },
133
+ '啤酒': { name: '啤酒', category: EmojiCategory.OTHER, path: 'assets/other/啤酒.png' },
134
+ '咖啡': { name: '咖啡', category: EmojiCategory.OTHER, path: 'assets/other/咖啡.png' },
135
+ '蛋糕': { name: '蛋糕', category: EmojiCategory.OTHER, path: 'assets/other/蛋糕.png' },
136
+ '凋谢': { name: '凋谢', category: EmojiCategory.OTHER, path: 'assets/other/凋谢.png' },
137
+ '菜刀': { name: '菜刀', category: EmojiCategory.OTHER, path: 'assets/other/菜刀.png' },
138
+ '炸弹': { name: '炸弹', category: EmojiCategory.OTHER, path: 'assets/other/炸弹.png' },
139
+ '便便': { name: '便便', category: EmojiCategory.OTHER, path: 'assets/other/便便.png' },
140
+ '太阳': { name: '太阳', category: EmojiCategory.OTHER, path: 'assets/other/太阳.png' },
141
+ '晚安': { name: '晚安', category: EmojiCategory.OTHER, path: 'assets/other/晚安.png' },
142
+ '鲜花': { name: '鲜花', category: EmojiCategory.OTHER, path: 'assets/other/鲜花.png' }
143
+ };
144
+ /**
145
+ * 获取所有表情数据的辅助函数
146
+ */
147
+ function getAllEmojiData() {
148
+ const result = [];
149
+ for (const key in EMOJI_DATA) {
150
+ if (EMOJI_DATA.hasOwnProperty(key)) {
151
+ result.push(EMOJI_DATA[key]);
152
+ }
153
+ }
154
+ return result;
155
+ }
156
+ /**
157
+ * 按类别分组的表情数据
158
+ */
159
+ exports.EMOJI_CATEGORIES = {
160
+ [EmojiCategory.FACE]: getAllEmojiData().filter(emoji => emoji.category === EmojiCategory.FACE),
161
+ [EmojiCategory.GESTURE]: getAllEmojiData().filter(emoji => emoji.category === EmojiCategory.GESTURE),
162
+ [EmojiCategory.ANIMAL]: getAllEmojiData().filter(emoji => emoji.category === EmojiCategory.ANIMAL),
163
+ [EmojiCategory.BLESSING]: getAllEmojiData().filter(emoji => emoji.category === EmojiCategory.BLESSING),
164
+ [EmojiCategory.OTHER]: getAllEmojiData().filter(emoji => emoji.category === EmojiCategory.OTHER)
165
+ };
166
+ /**
167
+ * 获取表情图片路径
168
+ * @param name 表情名称
169
+ * @returns 图片路径,如果表情不存在则返回 null
170
+ *
171
+ * @example
172
+ * ```typescript
173
+ * const path = getEmojiPath('微笑'); // 'assets/face/微笑.png'
174
+ * const invalidPath = getEmojiPath('不存在'); // null
175
+ * ```
176
+ */
177
+ function getEmojiPath(name) {
178
+ const emoji = EMOJI_DATA[name];
179
+ return emoji ? emoji.path : null;
180
+ }
181
+ exports.getEmojiPath = getEmojiPath;
182
+ /**
183
+ * 获取表情信息
184
+ * @param name 表情名称
185
+ * @returns 表情信息对象,如果表情不存在则返回 null
186
+ *
187
+ * @example
188
+ * ```typescript
189
+ * const emoji = getEmojiInfo('微笑');
190
+ * // { name: '微笑', category: EmojiCategory.FACE, path: 'assets/face/微笑.png' }
191
+ * ```
192
+ */
193
+ function getEmojiInfo(name) {
194
+ return EMOJI_DATA[name] || null;
195
+ }
196
+ exports.getEmojiInfo = getEmojiInfo;
197
+ /**
198
+ * 根据类别获取表情列表
199
+ * @param category 表情类别
200
+ * @returns 该类别下的所有表情信息
201
+ *
202
+ * @example
203
+ * ```typescript
204
+ * const faceEmojis = getEmojisByCategory(EmojiCategory.FACE);
205
+ * ```
206
+ */
207
+ function getEmojisByCategory(category) {
208
+ return exports.EMOJI_CATEGORIES[category];
209
+ }
210
+ exports.getEmojisByCategory = getEmojisByCategory;
211
+ /**
212
+ * 获取所有表情信息
213
+ * @returns 所有表情的信息数组
214
+ *
215
+ * @example
216
+ * ```typescript
217
+ * const allEmojis = getAllEmojis();
218
+ * console.log(`总共有 ${allEmojis.length} 个表情`);
219
+ * ```
220
+ */
221
+ function getAllEmojis() {
222
+ return getAllEmojiData();
223
+ }
224
+ exports.getAllEmojis = getAllEmojis;
225
+ /**
226
+ * 搜索表情
227
+ * @param keyword 搜索关键词
228
+ * @returns 匹配的表情信息数组
229
+ *
230
+ * @example
231
+ * ```typescript
232
+ * const results = searchEmojis('笑');
233
+ * // 返回包含 '微笑', '偷笑', '坏笑' 等的表情
234
+ * ```
235
+ */
236
+ function searchEmojis(keyword) {
237
+ return getAllEmojiData().filter(emoji => emoji.name.indexOf(keyword) !== -1);
238
+ }
239
+ exports.searchEmojis = searchEmojis;
240
+ /**
241
+ * 检查表情是否存在
242
+ * @param name 表情名称
243
+ * @returns 是否存在该表情
244
+ *
245
+ * @example
246
+ * ```typescript
247
+ * const exists = hasEmoji('微笑'); // true
248
+ * const notExists = hasEmoji('不存在的表情'); // false
249
+ * ```
250
+ */
251
+ function hasEmoji(name) {
252
+ return name in EMOJI_DATA;
253
+ }
254
+ exports.hasEmoji = hasEmoji;
255
+ /**
256
+ * 获取表情名称列表
257
+ * @param category 可选的类别筛选
258
+ * @returns 表情名称数组
259
+ *
260
+ * @example
261
+ * ```typescript
262
+ * const allNames = getEmojiNames();
263
+ * const faceNames = getEmojiNames(EmojiCategory.FACE);
264
+ * ```
265
+ */
266
+ function getEmojiNames(category) {
267
+ if (category) {
268
+ return getEmojisByCategory(category).map(emoji => emoji.name);
269
+ }
270
+ const names = [];
271
+ for (const key in EMOJI_DATA) {
272
+ if (EMOJI_DATA.hasOwnProperty(key)) {
273
+ names.push(key);
274
+ }
275
+ }
276
+ return names;
277
+ }
278
+ exports.getEmojiNames = getEmojiNames;
279
+ /**
280
+ * 随机获取表情
281
+ * @param category 可选的类别筛选
282
+ * @returns 随机表情信息
283
+ *
284
+ * @example
285
+ * ```typescript
286
+ * const randomEmoji = getRandomEmoji();
287
+ * const randomFaceEmoji = getRandomEmoji(EmojiCategory.FACE);
288
+ * ```
289
+ */
290
+ function getRandomEmoji(category) {
291
+ const emojis = category ? getEmojisByCategory(category) : getAllEmojis();
292
+ const randomIndex = Math.floor(Math.random() * emojis.length);
293
+ return emojis[randomIndex];
294
+ }
295
+ exports.getRandomEmoji = getRandomEmoji;
296
+ /**
297
+ * 默认导出对象,包含所有主要功能
298
+ */
299
+ const WeChatEmojis = {
300
+ // 枚举和类型
301
+ EmojiCategory,
302
+ // 数据
303
+ EMOJI_CATEGORIES: exports.EMOJI_CATEGORIES,
304
+ // 工具函数
305
+ getEmojiPath,
306
+ getEmojiInfo,
307
+ getEmojisByCategory,
308
+ getAllEmojis,
309
+ searchEmojis,
310
+ hasEmoji,
311
+ getEmojiNames,
312
+ getRandomEmoji
313
+ };
314
+ exports.default = WeChatEmojis;