@chayns-components/emoji-input 5.0.0-beta.95 → 5.0.0-beta.98

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.
@@ -5,137 +5,8 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.convertEmojisToUnicode = exports.addSkinToneToEmoji = void 0;
7
7
  var _dataByEmoji = _interopRequireDefault(require("unicode-emoji-json/data-by-emoji.json"));
8
+ var _emoji = require("../constants/emoji");
8
9
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
- const asciiList = {
10
- '*\\0/*': '1f646',
11
- '*\\O/*': '1f646',
12
- '-___-': '1f611',
13
- ":'-)": '1f602',
14
- "':-)": '1f605',
15
- "':-D": '1f605',
16
- '>:-)': '1f606',
17
- "':-(": '1f613',
18
- '>:-(': '1f620',
19
- ":'-(": '1f622',
20
- 'O:-)': '1f607',
21
- '0:-3': '1f607',
22
- '0:-)': '1f607',
23
- '0;^)': '1f607',
24
- 'O;-)': '1f607',
25
- '0;-)': '1f607',
26
- 'O:-3': '1f607',
27
- '-__-': '1f611',
28
- ':-Þ': '1f61b',
29
- '</3': '1f494',
30
- ":')": '1f602',
31
- ':-D': '1f603',
32
- "':)": '1f605',
33
- "'=)": '1f605',
34
- "':D": '1f605',
35
- "'=D": '1f605',
36
- '>:)': '1f606',
37
- '>;)': '1f606',
38
- '>=)': '1f606',
39
- ';-)': '1f609',
40
- '*-)': '1f609',
41
- ';-]': '1f609',
42
- ';^)': '1f609',
43
- "':(": '1f613',
44
- "'=(": '1f613',
45
- ':-*': '1f618',
46
- ':^*': '1f618',
47
- '>:P': '1f61c',
48
- 'X-P': '1f61c',
49
- '>:[': '1f61e',
50
- ':-(': '1f61e',
51
- ':-[': '1f61e',
52
- '>:(': '1f620',
53
- ":'(": '1f622',
54
- ';-(': '1f622',
55
- '>.<': '1f623',
56
- '#-)': '1f635',
57
- '%-)': '1f635',
58
- 'X-)': '1f635',
59
- '\\0/': '1f646',
60
- '\\O/': '1f646',
61
- '0:3': '1f607',
62
- '0:)': '1f607',
63
- 'O:)': '1f607',
64
- 'O=)': '1f607',
65
- 'O:3': '1f607',
66
- 'B-)': '1f60e',
67
- '8-)': '1f60e',
68
- 'B-D': '1f60e',
69
- '8-D': '1f60e',
70
- '-_-': '1f611',
71
- '>:\\': '1f615',
72
- '>:/': '1f615',
73
- ':-/': '1f615',
74
- ':-.': '1f615',
75
- ':-P': '1f61b',
76
- ':Þ': '1f61b',
77
- ':-b': '1f61b',
78
- ':-O': '1f62e',
79
- O_O: '1f62e',
80
- '>:O': '1f62e',
81
- ':-X': '1f636',
82
- ':-#': '1f636',
83
- ':-)': '1f642',
84
- '(y)': '1f44d',
85
- '<3': '2764-fe0f',
86
- '=D': '1f603',
87
- ';)': '1f609',
88
- '*)': '1f609',
89
- ';]': '1f609',
90
- ';D': '1f609',
91
- ':*': '1f618',
92
- '=*': '1f618',
93
- ':(': '1f61e',
94
- ':[': '1f61e',
95
- '=(': '1f61e',
96
- ':@': '1f620',
97
- ';(': '1f622',
98
- 'D:': '1f628',
99
- ':$': '1f633',
100
- '=$': '1f633',
101
- '#)': '1f635',
102
- '%)': '1f635',
103
- 'X)': '1f635',
104
- 'B)': '1f60e',
105
- '8)': '1f60e',
106
- ':/': '1f615',
107
- ':\\': '1f615',
108
- '=/': '1f615',
109
- '=\\': '1f615',
110
- ':L': '1f615',
111
- '=L': '1f615',
112
- ':P': '1f61b',
113
- '=P': '1f61b',
114
- ':b': '1f61b',
115
- ':O': '1f62e',
116
- ':X': '1f636',
117
- ':#': '1f636',
118
- '=X': '1f636',
119
- '=#': '1f636',
120
- ':)': '1f642',
121
- '=]': '1f642',
122
- '=)': '1f642',
123
- ':]': '1f642',
124
- ':D': '1f604'
125
- };
126
- const asciiRegexp = "(\\*\\\\0\\/\\*|\\*\\\\O\\/\\*|\\-___\\-|\\:'\\-\\)|'\\:\\-\\)|'\\:\\-D|\\>\\:\\-\\)|>\\:\\-\\)|'\\:\\-\\(|\\>\\:\\-\\(|>\\:\\-\\(|\\:'\\-\\(|O\\:\\-\\)|0\\:\\-3|0\\:\\-\\)|0;\\^\\)|O;\\-\\)|0;\\-\\)|O\\:\\-3|\\-__\\-|\\:\\-Þ|\\:\\-Þ|\\<\\/3|<\\/3|\\:'\\)|\\:\\-D|'\\:\\)|'\\=\\)|'\\:D|'\\=D|\\>\\:\\)|>\\:\\)|\\>;\\)|>;\\)|\\>\\=\\)|>\\=\\)|;\\-\\)|\\*\\-\\)|;\\-\\]|;\\^\\)|'\\:\\(|'\\=\\(|\\:\\-\\*|\\:\\^\\*|\\>\\:P|>\\:P|X\\-P|\\>\\:\\[|>\\:\\[|\\:\\-\\(|\\:\\-\\[|\\>\\:\\(|>\\:\\(|\\:'\\(|;\\-\\(|\\>\\.\\<|>\\.<|#\\-\\)|%\\-\\)|X\\-\\)|\\\\0\\/|\\\\O\\/|0\\:3|0\\:\\)|O\\:\\)|O\\=\\)|O\\:3|B\\-\\)|8\\-\\)|B\\-D|8\\-D|\\-_\\-|\\>\\:\\\\|>\\:\\\\|\\>\\:\\/|>\\:\\/|\\:\\-\\/|\\:\\-\\.|\\:\\-P|\\:Þ|\\:Þ|\\:\\-b|\\:\\-O|O_O|\\>\\:O|>\\:O|\\:\\-X|\\:\\-#|\\:\\-\\)|\\(y\\)|\\<3|<3|\\=D|;\\)|\\*\\)|;\\]|;D|\\:\\*|\\=\\*|\\:\\(|\\:\\[|\\=\\(|\\:@|;\\(|D\\:|\\:\\$|\\=\\$|#\\)|%\\)|X\\)|B\\)|8\\)|\\:\\/|\\:\\\\|\\=\\/|\\=\\\\|\\:L|\\=L|\\:P|\\=P|\\:b|\\:O|\\:X|\\:#|\\=X|\\=#|\\:\\)|\\=\\]|\\=\\)|\\:\\]|\\:D)";
127
- const regAscii = new RegExp(`<object[^>]*>.*?</object>|<span[^>]*>.*?</span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|((\\s|^)${asciiRegexp}(?=\\s|$|[!,.?]))`, 'gi');
128
- const shortNameList = {};
129
- let shortnameRegexp = '';
130
- Object.entries(_dataByEmoji.default).forEach((_ref, index) => {
131
- let [unicode, {
132
- slug
133
- }] = _ref;
134
- const shortname = `:${slug}:`;
135
- shortNameList[shortname] = unicode;
136
- shortnameRegexp += `${index !== 0 ? '|' : ''}${shortname}`;
137
- });
138
- const regShortnames = new RegExp(`<object[^>]*>.*?</object>|<span[^>]*>.*?</span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|(${shortnameRegexp})`, 'gi');
139
10
  const convert = unicode => {
140
11
  if (unicode.indexOf('-') > -1) {
141
12
  const parts = [];
@@ -187,18 +58,20 @@ const unescapeHTML = text => {
187
58
  };
188
59
  const convertEmojisToUnicode = text => {
189
60
  let result = text;
190
- result = result.replace(regShortnames, shortname => {
61
+ result = result.replace(/https?:\/\/.*?(?=$|\s)/gi, fullMatch => fullMatch.replace(/:/g, '%3A'));
62
+ result = result.replace(_emoji.regShortnames, shortname => {
191
63
  if (shortname) {
192
- const unicode = shortNameList[shortname];
64
+ const unicode = _emoji.shortNameList[shortname];
193
65
  if (unicode) {
194
- return unicode;
66
+ return convert(unicode.toUpperCase());
195
67
  }
196
68
  }
197
69
  return shortname;
198
70
  });
199
- result = result.replace(regAscii, (fullMatch, m1, m2, m3) => {
71
+ result = result.replace(/https?%3A\/\/.*?(?=$|\s)/gi, fullMatch => fullMatch.replace(/%3A/g, ':'));
72
+ result = result.replace(_emoji.regAscii, (fullMatch, m1, m2, m3) => {
200
73
  if (typeof m3 === 'string' && m3 !== '') {
201
- const unicode = asciiList[unescapeHTML(m3)];
74
+ const unicode = _emoji.asciiList[unescapeHTML(m3)];
202
75
  if (unicode) {
203
76
  return m2 + convert(unicode.toUpperCase());
204
77
  }
@@ -1 +1 @@
1
- {"version":3,"file":"emoji.js","names":["_dataByEmoji","_interopRequireDefault","require","obj","__esModule","default","asciiList","O_O","asciiRegexp","regAscii","RegExp","shortNameList","shortnameRegexp","Object","entries","emojiList","forEach","_ref","index","unicode","slug","shortname","regShortnames","convert","indexOf","parts","s","split","i","length","part","parseInt","hi","Math","floor","lo","String","fromCharCode","push","join","unescapeHTML","text","unescaped","replace","match","_unescaped$match","convertEmojisToUnicode","result","fullMatch","m1","m2","m3","toUpperCase","exports","addSkinToneToEmoji","emoji","skinTone","map","rawEmoji","_emojiList$rawEmoji","skin_tone_support"],"sources":["../../src/utils/emoji.ts"],"sourcesContent":["import emojiList from 'unicode-emoji-json/data-by-emoji.json';\n\nconst asciiList: { [key: string]: string } = {\n '*\\\\0/*': '1f646',\n '*\\\\O/*': '1f646',\n '-___-': '1f611',\n \":'-)\": '1f602',\n \"':-)\": '1f605',\n \"':-D\": '1f605',\n '>:-)': '1f606',\n \"':-(\": '1f613',\n '>:-(': '1f620',\n \":'-(\": '1f622',\n 'O:-)': '1f607',\n '0:-3': '1f607',\n '0:-)': '1f607',\n '0;^)': '1f607',\n 'O;-)': '1f607',\n '0;-)': '1f607',\n 'O:-3': '1f607',\n '-__-': '1f611',\n ':-Þ': '1f61b',\n '</3': '1f494',\n \":')\": '1f602',\n ':-D': '1f603',\n \"':)\": '1f605',\n \"'=)\": '1f605',\n \"':D\": '1f605',\n \"'=D\": '1f605',\n '>:)': '1f606',\n '>;)': '1f606',\n '>=)': '1f606',\n ';-)': '1f609',\n '*-)': '1f609',\n ';-]': '1f609',\n ';^)': '1f609',\n \"':(\": '1f613',\n \"'=(\": '1f613',\n ':-*': '1f618',\n ':^*': '1f618',\n '>:P': '1f61c',\n 'X-P': '1f61c',\n '>:[': '1f61e',\n ':-(': '1f61e',\n ':-[': '1f61e',\n '>:(': '1f620',\n \":'(\": '1f622',\n ';-(': '1f622',\n '>.<': '1f623',\n '#-)': '1f635',\n '%-)': '1f635',\n 'X-)': '1f635',\n '\\\\0/': '1f646',\n '\\\\O/': '1f646',\n '0:3': '1f607',\n '0:)': '1f607',\n 'O:)': '1f607',\n 'O=)': '1f607',\n 'O:3': '1f607',\n 'B-)': '1f60e',\n '8-)': '1f60e',\n 'B-D': '1f60e',\n '8-D': '1f60e',\n '-_-': '1f611',\n '>:\\\\': '1f615',\n '>:/': '1f615',\n ':-/': '1f615',\n ':-.': '1f615',\n ':-P': '1f61b',\n ':Þ': '1f61b',\n ':-b': '1f61b',\n ':-O': '1f62e',\n O_O: '1f62e',\n '>:O': '1f62e',\n ':-X': '1f636',\n ':-#': '1f636',\n ':-)': '1f642',\n '(y)': '1f44d',\n '<3': '2764-fe0f',\n '=D': '1f603',\n ';)': '1f609',\n '*)': '1f609',\n ';]': '1f609',\n ';D': '1f609',\n ':*': '1f618',\n '=*': '1f618',\n ':(': '1f61e',\n ':[': '1f61e',\n '=(': '1f61e',\n ':@': '1f620',\n ';(': '1f622',\n 'D:': '1f628',\n ':$': '1f633',\n '=$': '1f633',\n '#)': '1f635',\n '%)': '1f635',\n 'X)': '1f635',\n 'B)': '1f60e',\n '8)': '1f60e',\n ':/': '1f615',\n ':\\\\': '1f615',\n '=/': '1f615',\n '=\\\\': '1f615',\n ':L': '1f615',\n '=L': '1f615',\n ':P': '1f61b',\n '=P': '1f61b',\n ':b': '1f61b',\n ':O': '1f62e',\n ':X': '1f636',\n ':#': '1f636',\n '=X': '1f636',\n '=#': '1f636',\n ':)': '1f642',\n '=]': '1f642',\n '=)': '1f642',\n ':]': '1f642',\n ':D': '1f604',\n};\n\nconst asciiRegexp =\n \"(\\\\*\\\\\\\\0\\\\/\\\\*|\\\\*\\\\\\\\O\\\\/\\\\*|\\\\-___\\\\-|\\\\:'\\\\-\\\\)|'\\\\:\\\\-\\\\)|'\\\\:\\\\-D|\\\\>\\\\:\\\\-\\\\)|>\\\\:\\\\-\\\\)|'\\\\:\\\\-\\\\(|\\\\>\\\\:\\\\-\\\\(|>\\\\:\\\\-\\\\(|\\\\:'\\\\-\\\\(|O\\\\:\\\\-\\\\)|0\\\\:\\\\-3|0\\\\:\\\\-\\\\)|0;\\\\^\\\\)|O;\\\\-\\\\)|0;\\\\-\\\\)|O\\\\:\\\\-3|\\\\-__\\\\-|\\\\:\\\\-Þ|\\\\:\\\\-Þ|\\\\<\\\\/3|<\\\\/3|\\\\:'\\\\)|\\\\:\\\\-D|'\\\\:\\\\)|'\\\\=\\\\)|'\\\\:D|'\\\\=D|\\\\>\\\\:\\\\)|>\\\\:\\\\)|\\\\>;\\\\)|>;\\\\)|\\\\>\\\\=\\\\)|>\\\\=\\\\)|;\\\\-\\\\)|\\\\*\\\\-\\\\)|;\\\\-\\\\]|;\\\\^\\\\)|'\\\\:\\\\(|'\\\\=\\\\(|\\\\:\\\\-\\\\*|\\\\:\\\\^\\\\*|\\\\>\\\\:P|>\\\\:P|X\\\\-P|\\\\>\\\\:\\\\[|>\\\\:\\\\[|\\\\:\\\\-\\\\(|\\\\:\\\\-\\\\[|\\\\>\\\\:\\\\(|>\\\\:\\\\(|\\\\:'\\\\(|;\\\\-\\\\(|\\\\>\\\\.\\\\<|>\\\\.<|#\\\\-\\\\)|%\\\\-\\\\)|X\\\\-\\\\)|\\\\\\\\0\\\\/|\\\\\\\\O\\\\/|0\\\\:3|0\\\\:\\\\)|O\\\\:\\\\)|O\\\\=\\\\)|O\\\\:3|B\\\\-\\\\)|8\\\\-\\\\)|B\\\\-D|8\\\\-D|\\\\-_\\\\-|\\\\>\\\\:\\\\\\\\|>\\\\:\\\\\\\\|\\\\>\\\\:\\\\/|>\\\\:\\\\/|\\\\:\\\\-\\\\/|\\\\:\\\\-\\\\.|\\\\:\\\\-P|\\\\:Þ|\\\\:Þ|\\\\:\\\\-b|\\\\:\\\\-O|O_O|\\\\>\\\\:O|>\\\\:O|\\\\:\\\\-X|\\\\:\\\\-#|\\\\:\\\\-\\\\)|\\\\(y\\\\)|\\\\<3|<3|\\\\=D|;\\\\)|\\\\*\\\\)|;\\\\]|;D|\\\\:\\\\*|\\\\=\\\\*|\\\\:\\\\(|\\\\:\\\\[|\\\\=\\\\(|\\\\:@|;\\\\(|D\\\\:|\\\\:\\\\$|\\\\=\\\\$|#\\\\)|%\\\\)|X\\\\)|B\\\\)|8\\\\)|\\\\:\\\\/|\\\\:\\\\\\\\|\\\\=\\\\/|\\\\=\\\\\\\\|\\\\:L|\\\\=L|\\\\:P|\\\\=P|\\\\:b|\\\\:O|\\\\:X|\\\\:#|\\\\=X|\\\\=#|\\\\:\\\\)|\\\\=\\\\]|\\\\=\\\\)|\\\\:\\\\]|\\\\:D)\";\n\nconst regAscii = new RegExp(\n `<object[^>]*>.*?</object>|<span[^>]*>.*?</span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|((\\\\s|^)${asciiRegexp}(?=\\\\s|$|[!,.?]))`,\n 'gi'\n);\n\nconst shortNameList: { [key: string]: string } = {};\n\nlet shortnameRegexp = '';\n\nObject.entries(emojiList).forEach(([unicode, { slug }], index) => {\n const shortname = `:${slug}:`;\n\n shortNameList[shortname] = unicode;\n shortnameRegexp += `${index !== 0 ? '|' : ''}${shortname}`;\n});\n\nconst regShortnames = new RegExp(\n `<object[^>]*>.*?</object>|<span[^>]*>.*?</span>|<(?:object|embed|svg|img|div|span|p|a)[^>]*>|(${shortnameRegexp})`,\n 'gi'\n);\n\nconst convert = (unicode: string) => {\n if (unicode.indexOf('-') > -1) {\n const parts = [];\n\n const s = unicode.split('-');\n\n for (let i = 0; i < s.length; i++) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n let part: number | string = parseInt(s[i]!, 16);\n\n if (part >= 0x10000 && part <= 0x10ffff) {\n const hi = Math.floor((part - 0x10000) / 0x400) + 0xd800;\n const lo = ((part - 0x10000) % 0x400) + 0xdc00;\n\n part = String.fromCharCode(hi) + String.fromCharCode(lo);\n } else {\n part = String.fromCharCode(part);\n }\n\n parts.push(part);\n }\n\n return parts.join('');\n }\n\n const s = parseInt(unicode, 16);\n\n if (s >= 0x10000 && s <= 0x10ffff) {\n const hi = Math.floor((s - 0x10000) / 0x400) + 0xd800;\n const lo = ((s - 0x10000) % 0x400) + 0xdc00;\n\n return String.fromCharCode(hi) + String.fromCharCode(lo);\n }\n\n return String.fromCharCode(s);\n};\n\nconst unescapeHTML = (text: string) => {\n const unescaped: { [key: string]: string } = {\n '&amp;': '&',\n '&#38;': '&',\n '&#x26;': '&',\n '&lt;': '<',\n '&#60;': '<',\n '&#x3C;': '<',\n '&gt;': '>',\n '&#62;': '>',\n '&#x3E;': '>',\n '&quot;': '\"',\n '&#34;': '\"',\n '&#x22;': '\"',\n '&apos;': \"'\",\n '&#39;': \"'\",\n '&#x27;': \"'\",\n };\n\n return text.replace(\n /&(?:amp|#38|#x26|lt|#60|#x3C|gt|#62|#x3E|apos|#39|#x27|quot|#34|#x22);/gi,\n (match) => unescaped[match] ?? match\n );\n};\n\nexport const convertEmojisToUnicode = (text: string): string => {\n let result = text;\n\n result = result.replace(regShortnames, (shortname) => {\n if (shortname) {\n const unicode = shortNameList[shortname];\n\n if (unicode) {\n return unicode;\n }\n }\n\n return shortname;\n });\n\n result = result.replace(regAscii, (fullMatch, m1, m2, m3) => {\n if (typeof m3 === 'string' && m3 !== '') {\n const unicode = asciiList[unescapeHTML(m3)];\n\n if (unicode) {\n return (m2 as string) + convert(unicode.toUpperCase());\n }\n }\n\n return fullMatch;\n });\n\n return result;\n};\n\nexport const addSkinToneToEmoji = (emoji: string, skinTone: string): string =>\n emoji\n .split('\\u{200D}')\n .map((rawEmoji) => {\n const parts = [rawEmoji.replace(/\\ufe0f/, '')];\n\n // @ts-expect-error: Difficult to type external json file\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (emojiList[rawEmoji]?.skin_tone_support) {\n parts.push(skinTone);\n }\n\n return parts.join('');\n })\n .join('\\u{200D}');\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA8D,SAAAD,uBAAAE,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAE9D,MAAMG,SAAoC,GAAG;EACzC,QAAQ,EAAE,OAAO;EACjB,QAAQ,EAAE,OAAO;EACjB,OAAO,EAAE,OAAO;EAChB,MAAM,EAAE,OAAO;EACf,MAAM,EAAE,OAAO;EACf,MAAM,EAAE,OAAO;EACf,MAAM,EAAE,OAAO;EACf,MAAM,EAAE,OAAO;EACf,MAAM,EAAE,OAAO;EACf,MAAM,EAAE,OAAO;EACf,MAAM,EAAE,OAAO;EACf,MAAM,EAAE,OAAO;EACf,MAAM,EAAE,OAAO;EACf,MAAM,EAAE,OAAO;EACf,MAAM,EAAE,OAAO;EACf,MAAM,EAAE,OAAO;EACf,MAAM,EAAE,OAAO;EACf,MAAM,EAAE,OAAO;EACf,KAAK,EAAE,OAAO;EACd,KAAK,EAAE,OAAO;EACd,KAAK,EAAE,OAAO;EACd,KAAK,EAAE,OAAO;EACd,KAAK,EAAE,OAAO;EACd,KAAK,EAAE,OAAO;EACd,KAAK,EAAE,OAAO;EACd,KAAK,EAAE,OAAO;EACd,KAAK,EAAE,OAAO;EACd,KAAK,EAAE,OAAO;EACd,KAAK,EAAE,OAAO;EACd,KAAK,EAAE,OAAO;EACd,KAAK,EAAE,OAAO;EACd,KAAK,EAAE,OAAO;EACd,KAAK,EAAE,OAAO;EACd,KAAK,EAAE,OAAO;EACd,KAAK,EAAE,OAAO;EACd,KAAK,EAAE,OAAO;EACd,KAAK,EAAE,OAAO;EACd,KAAK,EAAE,OAAO;EACd,KAAK,EAAE,OAAO;EACd,KAAK,EAAE,OAAO;EACd,KAAK,EAAE,OAAO;EACd,KAAK,EAAE,OAAO;EACd,KAAK,EAAE,OAAO;EACd,KAAK,EAAE,OAAO;EACd,KAAK,EAAE,OAAO;EACd,KAAK,EAAE,OAAO;EACd,KAAK,EAAE,OAAO;EACd,KAAK,EAAE,OAAO;EACd,KAAK,EAAE,OAAO;EACd,MAAM,EAAE,OAAO;EACf,MAAM,EAAE,OAAO;EACf,KAAK,EAAE,OAAO;EACd,KAAK,EAAE,OAAO;EACd,KAAK,EAAE,OAAO;EACd,KAAK,EAAE,OAAO;EACd,KAAK,EAAE,OAAO;EACd,KAAK,EAAE,OAAO;EACd,KAAK,EAAE,OAAO;EACd,KAAK,EAAE,OAAO;EACd,KAAK,EAAE,OAAO;EACd,KAAK,EAAE,OAAO;EACd,MAAM,EAAE,OAAO;EACf,KAAK,EAAE,OAAO;EACd,KAAK,EAAE,OAAO;EACd,KAAK,EAAE,OAAO;EACd,KAAK,EAAE,OAAO;EACd,IAAI,EAAE,OAAO;EACb,KAAK,EAAE,OAAO;EACd,KAAK,EAAE,OAAO;EACdC,GAAG,EAAE,OAAO;EACZ,KAAK,EAAE,OAAO;EACd,KAAK,EAAE,OAAO;EACd,KAAK,EAAE,OAAO;EACd,KAAK,EAAE,OAAO;EACd,KAAK,EAAE,OAAO;EACd,IAAI,EAAE,WAAW;EACjB,IAAI,EAAE,OAAO;EACb,IAAI,EAAE,OAAO;EACb,IAAI,EAAE,OAAO;EACb,IAAI,EAAE,OAAO;EACb,IAAI,EAAE,OAAO;EACb,IAAI,EAAE,OAAO;EACb,IAAI,EAAE,OAAO;EACb,IAAI,EAAE,OAAO;EACb,IAAI,EAAE,OAAO;EACb,IAAI,EAAE,OAAO;EACb,IAAI,EAAE,OAAO;EACb,IAAI,EAAE,OAAO;EACb,IAAI,EAAE,OAAO;EACb,IAAI,EAAE,OAAO;EACb,IAAI,EAAE,OAAO;EACb,IAAI,EAAE,OAAO;EACb,IAAI,EAAE,OAAO;EACb,IAAI,EAAE,OAAO;EACb,IAAI,EAAE,OAAO;EACb,IAAI,EAAE,OAAO;EACb,IAAI,EAAE,OAAO;EACb,KAAK,EAAE,OAAO;EACd,IAAI,EAAE,OAAO;EACb,KAAK,EAAE,OAAO;EACd,IAAI,EAAE,OAAO;EACb,IAAI,EAAE,OAAO;EACb,IAAI,EAAE,OAAO;EACb,IAAI,EAAE,OAAO;EACb,IAAI,EAAE,OAAO;EACb,IAAI,EAAE,OAAO;EACb,IAAI,EAAE,OAAO;EACb,IAAI,EAAE,OAAO;EACb,IAAI,EAAE,OAAO;EACb,IAAI,EAAE,OAAO;EACb,IAAI,EAAE,OAAO;EACb,IAAI,EAAE,OAAO;EACb,IAAI,EAAE,OAAO;EACb,IAAI,EAAE,OAAO;EACb,IAAI,EAAE;AACV,CAAC;AAED,MAAMC,WAAW,GACb,u/BAAu/B;AAE3/B,MAAMC,QAAQ,GAAG,IAAIC,MAAM,CACtB,wGAAuGF,WAAY,mBAAkB,EACtI,IAAI,CACP;AAED,MAAMG,aAAwC,GAAG,CAAC,CAAC;AAEnD,IAAIC,eAAe,GAAG,EAAE;AAExBC,MAAM,CAACC,OAAO,CAACC,oBAAS,CAAC,CAACC,OAAO,CAAC,CAAAC,IAAA,EAAsBC,KAAK,KAAK;EAAA,IAA/B,CAACC,OAAO,EAAE;IAAEC;EAAK,CAAC,CAAC,GAAAH,IAAA;EAClD,MAAMI,SAAS,GAAI,IAAGD,IAAK,GAAE;EAE7BT,aAAa,CAACU,SAAS,CAAC,GAAGF,OAAO;EAClCP,eAAe,IAAK,GAAEM,KAAK,KAAK,CAAC,GAAG,GAAG,GAAG,EAAG,GAAEG,SAAU,EAAC;AAC9D,CAAC,CAAC;AAEF,MAAMC,aAAa,GAAG,IAAIZ,MAAM,CAC3B,iGAAgGE,eAAgB,GAAE,EACnH,IAAI,CACP;AAED,MAAMW,OAAO,GAAIJ,OAAe,IAAK;EACjC,IAAIA,OAAO,CAACK,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;IAC3B,MAAMC,KAAK,GAAG,EAAE;IAEhB,MAAMC,CAAC,GAAGP,OAAO,CAACQ,KAAK,CAAC,GAAG,CAAC;IAE5B,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,CAAC,CAACG,MAAM,EAAED,CAAC,EAAE,EAAE;MAC/B;MACA,IAAIE,IAAqB,GAAGC,QAAQ,CAACL,CAAC,CAACE,CAAC,CAAC,EAAG,EAAE,CAAC;MAE/C,IAAIE,IAAI,IAAI,OAAO,IAAIA,IAAI,IAAI,QAAQ,EAAE;QACrC,MAAME,EAAE,GAAGC,IAAI,CAACC,KAAK,CAAC,CAACJ,IAAI,GAAG,OAAO,IAAI,KAAK,CAAC,GAAG,MAAM;QACxD,MAAMK,EAAE,GAAI,CAACL,IAAI,GAAG,OAAO,IAAI,KAAK,GAAI,MAAM;QAE9CA,IAAI,GAAGM,MAAM,CAACC,YAAY,CAACL,EAAE,CAAC,GAAGI,MAAM,CAACC,YAAY,CAACF,EAAE,CAAC;MAC5D,CAAC,MAAM;QACHL,IAAI,GAAGM,MAAM,CAACC,YAAY,CAACP,IAAI,CAAC;MACpC;MAEAL,KAAK,CAACa,IAAI,CAACR,IAAI,CAAC;IACpB;IAEA,OAAOL,KAAK,CAACc,IAAI,CAAC,EAAE,CAAC;EACzB;EAEA,MAAMb,CAAC,GAAGK,QAAQ,CAACZ,OAAO,EAAE,EAAE,CAAC;EAE/B,IAAIO,CAAC,IAAI,OAAO,IAAIA,CAAC,IAAI,QAAQ,EAAE;IAC/B,MAAMM,EAAE,GAAGC,IAAI,CAACC,KAAK,CAAC,CAACR,CAAC,GAAG,OAAO,IAAI,KAAK,CAAC,GAAG,MAAM;IACrD,MAAMS,EAAE,GAAI,CAACT,CAAC,GAAG,OAAO,IAAI,KAAK,GAAI,MAAM;IAE3C,OAAOU,MAAM,CAACC,YAAY,CAACL,EAAE,CAAC,GAAGI,MAAM,CAACC,YAAY,CAACF,EAAE,CAAC;EAC5D;EAEA,OAAOC,MAAM,CAACC,YAAY,CAACX,CAAC,CAAC;AACjC,CAAC;AAED,MAAMc,YAAY,GAAIC,IAAY,IAAK;EACnC,MAAMC,SAAoC,GAAG;IACzC,OAAO,EAAE,GAAG;IACZ,OAAO,EAAE,GAAG;IACZ,QAAQ,EAAE,GAAG;IACb,MAAM,EAAE,GAAG;IACX,OAAO,EAAE,GAAG;IACZ,QAAQ,EAAE,GAAG;IACb,MAAM,EAAE,GAAG;IACX,OAAO,EAAE,GAAG;IACZ,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,GAAG;IACb,OAAO,EAAE,GAAG;IACZ,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,GAAG;IACb,OAAO,EAAE,GAAG;IACZ,QAAQ,EAAE;EACd,CAAC;EAED,OAAOD,IAAI,CAACE,OAAO,CACf,0EAA0E,EACzEC,KAAK;IAAA,IAAAC,gBAAA;IAAA,QAAAA,gBAAA,GAAKH,SAAS,CAACE,KAAK,CAAC,cAAAC,gBAAA,cAAAA,gBAAA,GAAID,KAAK;EAAA,EACvC;AACL,CAAC;AAEM,MAAME,sBAAsB,GAAIL,IAAY,IAAa;EAC5D,IAAIM,MAAM,GAAGN,IAAI;EAEjBM,MAAM,GAAGA,MAAM,CAACJ,OAAO,CAACrB,aAAa,EAAGD,SAAS,IAAK;IAClD,IAAIA,SAAS,EAAE;MACX,MAAMF,OAAO,GAAGR,aAAa,CAACU,SAAS,CAAC;MAExC,IAAIF,OAAO,EAAE;QACT,OAAOA,OAAO;MAClB;IACJ;IAEA,OAAOE,SAAS;EACpB,CAAC,CAAC;EAEF0B,MAAM,GAAGA,MAAM,CAACJ,OAAO,CAAClC,QAAQ,EAAE,CAACuC,SAAS,EAAEC,EAAE,EAAEC,EAAE,EAAEC,EAAE,KAAK;IACzD,IAAI,OAAOA,EAAE,KAAK,QAAQ,IAAIA,EAAE,KAAK,EAAE,EAAE;MACrC,MAAMhC,OAAO,GAAGb,SAAS,CAACkC,YAAY,CAACW,EAAE,CAAC,CAAC;MAE3C,IAAIhC,OAAO,EAAE;QACT,OAAQ+B,EAAE,GAAc3B,OAAO,CAACJ,OAAO,CAACiC,WAAW,EAAE,CAAC;MAC1D;IACJ;IAEA,OAAOJ,SAAS;EACpB,CAAC,CAAC;EAEF,OAAOD,MAAM;AACjB,CAAC;AAACM,OAAA,CAAAP,sBAAA,GAAAA,sBAAA;AAEK,MAAMQ,kBAAkB,GAAGA,CAACC,KAAa,EAAEC,QAAgB,KAC9DD,KAAK,CACA5B,KAAK,CAAC,UAAU,CAAC,CACjB8B,GAAG,CAAEC,QAAQ,IAAK;EAAA,IAAAC,mBAAA;EACf,MAAMlC,KAAK,GAAG,CAACiC,QAAQ,CAACf,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;;EAE9C;EACA;EACA,KAAAgB,mBAAA,GAAI5C,oBAAS,CAAC2C,QAAQ,CAAC,cAAAC,mBAAA,eAAnBA,mBAAA,CAAqBC,iBAAiB,EAAE;IACxCnC,KAAK,CAACa,IAAI,CAACkB,QAAQ,CAAC;EACxB;EAEA,OAAO/B,KAAK,CAACc,IAAI,CAAC,EAAE,CAAC;AACzB,CAAC,CAAC,CACDA,IAAI,CAAC,UAAU,CAAC;AAACc,OAAA,CAAAC,kBAAA,GAAAA,kBAAA"}
1
+ {"version":3,"file":"emoji.js","names":["_dataByEmoji","_interopRequireDefault","require","_emoji","obj","__esModule","default","convert","unicode","indexOf","parts","s","split","i","length","part","parseInt","hi","Math","floor","lo","String","fromCharCode","push","join","unescapeHTML","text","unescaped","replace","match","_unescaped$match","convertEmojisToUnicode","result","fullMatch","regShortnames","shortname","shortNameList","toUpperCase","regAscii","m1","m2","m3","asciiList","exports","addSkinToneToEmoji","emoji","skinTone","map","rawEmoji","_emojiList$rawEmoji","emojiList","skin_tone_support"],"sources":["../../src/utils/emoji.ts"],"sourcesContent":["import emojiList from 'unicode-emoji-json/data-by-emoji.json';\nimport { asciiList, regAscii, regShortnames, shortNameList } from '../constants/emoji';\n\nconst convert = (unicode: string) => {\n if (unicode.indexOf('-') > -1) {\n const parts = [];\n\n const s = unicode.split('-');\n\n for (let i = 0; i < s.length; i++) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n let part: number | string = parseInt(s[i]!, 16);\n\n if (part >= 0x10000 && part <= 0x10ffff) {\n const hi = Math.floor((part - 0x10000) / 0x400) + 0xd800;\n const lo = ((part - 0x10000) % 0x400) + 0xdc00;\n\n part = String.fromCharCode(hi) + String.fromCharCode(lo);\n } else {\n part = String.fromCharCode(part);\n }\n\n parts.push(part);\n }\n\n return parts.join('');\n }\n\n const s = parseInt(unicode, 16);\n\n if (s >= 0x10000 && s <= 0x10ffff) {\n const hi = Math.floor((s - 0x10000) / 0x400) + 0xd800;\n const lo = ((s - 0x10000) % 0x400) + 0xdc00;\n\n return String.fromCharCode(hi) + String.fromCharCode(lo);\n }\n\n return String.fromCharCode(s);\n};\n\nconst unescapeHTML = (text: string) => {\n const unescaped: { [key: string]: string } = {\n '&amp;': '&',\n '&#38;': '&',\n '&#x26;': '&',\n '&lt;': '<',\n '&#60;': '<',\n '&#x3C;': '<',\n '&gt;': '>',\n '&#62;': '>',\n '&#x3E;': '>',\n '&quot;': '\"',\n '&#34;': '\"',\n '&#x22;': '\"',\n '&apos;': \"'\",\n '&#39;': \"'\",\n '&#x27;': \"'\",\n };\n\n return text.replace(\n /&(?:amp|#38|#x26|lt|#60|#x3C|gt|#62|#x3E|apos|#39|#x27|quot|#34|#x22);/gi,\n (match) => unescaped[match] ?? match\n );\n};\n\nexport const convertEmojisToUnicode = (text: string): string => {\n let result = text;\n\n result = result.replace(/https?:\\/\\/.*?(?=$|\\s)/gi, (fullMatch) =>\n fullMatch.replace(/:/g, '%3A')\n );\n\n result = result.replace(regShortnames, (shortname) => {\n if (shortname) {\n const unicode = shortNameList[shortname];\n\n if (unicode) {\n return convert(unicode.toUpperCase());\n }\n }\n\n return shortname;\n });\n\n result = result.replace(/https?%3A\\/\\/.*?(?=$|\\s)/gi, (fullMatch) =>\n fullMatch.replace(/%3A/g, ':')\n );\n\n result = result.replace(regAscii, (fullMatch, m1, m2, m3) => {\n if (typeof m3 === 'string' && m3 !== '') {\n const unicode = asciiList[unescapeHTML(m3)];\n\n if (unicode) {\n return (m2 as string) + convert(unicode.toUpperCase());\n }\n }\n\n return fullMatch;\n });\n\n return result;\n};\n\nexport const addSkinToneToEmoji = (emoji: string, skinTone: string): string =>\n emoji\n .split('\\u{200D}')\n .map((rawEmoji) => {\n const parts = [rawEmoji.replace(/\\ufe0f/, '')];\n\n // @ts-expect-error: Difficult to type external json file\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (emojiList[rawEmoji]?.skin_tone_support) {\n parts.push(skinTone);\n }\n\n return parts.join('');\n })\n .join('\\u{200D}');\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chayns-components/emoji-input",
3
- "version": "5.0.0-beta.95",
3
+ "version": "5.0.0-beta.98",
4
4
  "description": "Input field that supports HTML elements and emojis",
5
5
  "keywords": [
6
6
  "chayns",
@@ -37,7 +37,7 @@
37
37
  },
38
38
  "devDependencies": {
39
39
  "@babel/cli": "^7.21.0",
40
- "@babel/core": "^7.21.0",
40
+ "@babel/core": "^7.21.3",
41
41
  "@babel/preset-env": "^7.20.2",
42
42
  "@babel/preset-react": "^7.18.6",
43
43
  "@babel/preset-typescript": "^7.21.0",
@@ -52,12 +52,12 @@
52
52
  "typescript": "^4.9.5"
53
53
  },
54
54
  "dependencies": {
55
- "@chayns-components/core": "^5.0.0-beta.90",
55
+ "@chayns-components/core": "^5.0.0-beta.98",
56
56
  "@chayns/colors": "^2.0.0",
57
57
  "clsx": "^1.2.1",
58
- "emojilib": "^3.0.8",
58
+ "emojilib": "^3.0.9",
59
59
  "framer-motion": "^6.5.1",
60
- "styled-components": "^5.3.8",
60
+ "styled-components": "^5.3.9",
61
61
  "unicode-emoji-json": "^0.5.0",
62
62
  "uuid": "^9.0.0"
63
63
  },
@@ -68,5 +68,5 @@
68
68
  "publishConfig": {
69
69
  "access": "public"
70
70
  },
71
- "gitHead": "316e8935c4dc608d5b69dda6909b37531e3c46d0"
71
+ "gitHead": "ee7237bbc5e9a51e98268f74989f98da251255c1"
72
72
  }