@chayns-components/emoji-input 5.0.0-beta.1185 → 5.0.0-beta.1186

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 (35) hide show
  1. package/lib/cjs/components/emoji-input/EmojiInput.js +22 -11
  2. package/lib/cjs/components/emoji-input/EmojiInput.js.map +1 -1
  3. package/lib/cjs/constants/emoji.js +1 -3679
  4. package/lib/cjs/constants/emoji.js.map +1 -1
  5. package/lib/cjs/index.js +3 -3
  6. package/lib/cjs/index.js.map +1 -1
  7. package/lib/cjs/utils/asyncEmojiData.js +10 -0
  8. package/lib/cjs/utils/asyncEmojiData.js.map +1 -0
  9. package/lib/cjs/utils/convertEmojisToUnicodeAsync.js +33 -0
  10. package/lib/cjs/utils/convertEmojisToUnicodeAsync.js.map +1 -0
  11. package/lib/cjs/utils/emoji.js +3 -3
  12. package/lib/cjs/utils/emoji.js.map +1 -1
  13. package/lib/cjs/utils/emojiShortList.js +3685 -0
  14. package/lib/cjs/utils/emojiShortList.js.map +1 -0
  15. package/lib/esm/components/emoji-input/EmojiInput.js +22 -11
  16. package/lib/esm/components/emoji-input/EmojiInput.js.map +1 -1
  17. package/lib/esm/constants/emoji.js +0 -3678
  18. package/lib/esm/constants/emoji.js.map +1 -1
  19. package/lib/esm/index.js +1 -1
  20. package/lib/esm/index.js.map +1 -1
  21. package/lib/esm/utils/asyncEmojiData.js +2 -0
  22. package/lib/esm/utils/asyncEmojiData.js.map +1 -0
  23. package/lib/esm/utils/convertEmojisToUnicodeAsync.js +26 -0
  24. package/lib/esm/utils/convertEmojisToUnicodeAsync.js.map +1 -0
  25. package/lib/esm/utils/emoji.js +2 -2
  26. package/lib/esm/utils/emoji.js.map +1 -1
  27. package/lib/esm/utils/emojiShortList.js +3679 -0
  28. package/lib/esm/utils/emojiShortList.js.map +1 -0
  29. package/lib/types/constants/emoji.d.ts +0 -4
  30. package/lib/types/index.d.ts +1 -1
  31. package/lib/types/utils/asyncEmojiData.d.ts +1 -0
  32. package/lib/types/utils/convertEmojisToUnicodeAsync.d.ts +1 -0
  33. package/lib/types/utils/emoji.d.ts +3 -1
  34. package/lib/types/utils/emojiShortList.d.ts +4 -0
  35. package/package.json +2 -2
package/lib/cjs/index.js CHANGED
@@ -27,16 +27,16 @@ Object.defineProperty(exports, "PopupAlignment", {
27
27
  return _alignment.PopupAlignment;
28
28
  }
29
29
  });
30
- Object.defineProperty(exports, "convertEmojisToUnicode", {
30
+ Object.defineProperty(exports, "convertEmojisToUnicodeAsync", {
31
31
  enumerable: true,
32
32
  get: function () {
33
- return _emoji.convertEmojisToUnicode;
33
+ return _convertEmojisToUnicodeAsync.convertEmojisToUnicodeAsync;
34
34
  }
35
35
  });
36
36
  var _EmojiInput = _interopRequireDefault(require("./components/emoji-input/EmojiInput"));
37
37
  var _EmojiPickerPopup = _interopRequireDefault(require("./components/emoji-picker-popup/EmojiPickerPopup"));
38
38
  var _EmojiPicker = _interopRequireDefault(require("./components/emoji-picker/EmojiPicker"));
39
39
  var _alignment = require("./constants/alignment");
40
- var _emoji = require("./utils/emoji");
40
+ var _convertEmojisToUnicodeAsync = require("./utils/convertEmojisToUnicodeAsync");
41
41
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
42
42
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_EmojiInput","_interopRequireDefault","require","_EmojiPickerPopup","_EmojiPicker","_alignment","_emoji","e","__esModule","default"],"sources":["../../src/index.ts"],"sourcesContent":["export { default as EmojiInput } from './components/emoji-input/EmojiInput';\nexport type { EmojiInputRef } from './components/emoji-input/EmojiInput';\nexport { default as EmojiPickerPopup } from './components/emoji-picker-popup/EmojiPickerPopup';\nexport { default as EmojiPicker } from './components/emoji-picker/EmojiPicker';\nexport { PopupAlignment } from './constants/alignment';\nexport { convertEmojisToUnicode } from './utils/emoji';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,iBAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,YAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,UAAA,GAAAH,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AAAuD,SAAAD,uBAAAM,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["_EmojiInput","_interopRequireDefault","require","_EmojiPickerPopup","_EmojiPicker","_alignment","_convertEmojisToUnicodeAsync","e","__esModule","default"],"sources":["../../src/index.ts"],"sourcesContent":["export { default as EmojiInput } from './components/emoji-input/EmojiInput';\nexport type { EmojiInputRef } from './components/emoji-input/EmojiInput';\nexport { default as EmojiPickerPopup } from './components/emoji-picker-popup/EmojiPickerPopup';\nexport { default as EmojiPicker } from './components/emoji-picker/EmojiPicker';\nexport { PopupAlignment } from './constants/alignment';\nexport { convertEmojisToUnicodeAsync } from './utils/convertEmojisToUnicodeAsync';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEA,IAAAC,iBAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,YAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,UAAA,GAAAH,OAAA;AACA,IAAAI,4BAAA,GAAAJ,OAAA;AAAkF,SAAAD,uBAAAM,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA","ignoreList":[]}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.loadEmojiShortList = void 0;
7
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
8
+ const loadEmojiShortList = () => Promise.resolve().then(() => _interopRequireWildcard(require('./emojiShortList')));
9
+ exports.loadEmojiShortList = loadEmojiShortList;
10
+ //# sourceMappingURL=asyncEmojiData.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asyncEmojiData.js","names":["loadEmojiShortList","Promise","resolve","then","_interopRequireWildcard","require","exports"],"sources":["../../../src/utils/asyncEmojiData.ts"],"sourcesContent":["export const loadEmojiShortList = () => import('./emojiShortList');\n"],"mappings":";;;;;;;AAAO,MAAMA,kBAAkB,GAAGA,CAAA,KAAAC,OAAA,CAAAC,OAAA,GAAAC,IAAA,OAAAC,uBAAA,CAAAC,OAAA,CAAa,kBAAkB,GAAC;AAACC,OAAA,CAAAN,kBAAA,GAAAA,kBAAA","ignoreList":[]}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.convertEmojisToUnicodeAsync = void 0;
7
+ var _emoji = require("./emoji");
8
+ var _asyncEmojiData = require("./asyncEmojiData");
9
+ let regShortnames;
10
+ let shortNameList;
11
+ const getEmojiShortList = async () => {
12
+ if (regShortnames && shortNameList) return {
13
+ regShortnames,
14
+ shortNameList
15
+ };
16
+ ({
17
+ regShortnames,
18
+ shortNameList
19
+ } = await (0, _asyncEmojiData.loadEmojiShortList)());
20
+ return {
21
+ regShortnames,
22
+ shortNameList
23
+ };
24
+ };
25
+ const convertEmojisToUnicodeAsync = async text => {
26
+ const {
27
+ regShortnames: reg,
28
+ shortNameList: shortNames
29
+ } = await getEmojiShortList();
30
+ return (0, _emoji.convertEmojisToUnicode)(text, reg, shortNames);
31
+ };
32
+ exports.convertEmojisToUnicodeAsync = convertEmojisToUnicodeAsync;
33
+ //# sourceMappingURL=convertEmojisToUnicodeAsync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convertEmojisToUnicodeAsync.js","names":["_emoji","require","_asyncEmojiData","regShortnames","shortNameList","getEmojiShortList","loadEmojiShortList","convertEmojisToUnicodeAsync","text","reg","shortNames","convertEmojisToUnicode","exports"],"sources":["../../../src/utils/convertEmojisToUnicodeAsync.ts"],"sourcesContent":["import { convertEmojisToUnicode } from './emoji';\nimport { loadEmojiShortList } from './asyncEmojiData';\n\nlet regShortnames: RegExp | undefined;\nlet shortNameList: Record<string, string> | undefined;\n\nconst getEmojiShortList = async () => {\n if ( regShortnames && shortNameList ) return { regShortnames, shortNameList };\n ({ regShortnames, shortNameList } = await loadEmojiShortList());\n return { regShortnames, shortNameList };\n}\n\nexport const convertEmojisToUnicodeAsync = async (text: string) => {\n const {regShortnames: reg, shortNameList: shortNames} = await getEmojiShortList();\n return convertEmojisToUnicode(text, reg, shortNames);\n}\n"],"mappings":";;;;;;AAAC,IAAAA,MAAA,GAAAC,OAAA;AACD,IAAAC,eAAA,GAAAD,OAAA;AAEA,IAAIE,aAAiC;AACrC,IAAIC,aAAiD;AAErD,MAAMC,iBAAiB,GAAG,MAAAA,CAAA,KAAY;EAClC,IAAKF,aAAa,IAAKC,aAAa,EAAG,OAAO;IAAED,aAAa;IAAEC;EAAc,CAAC;EAC9E,CAAC;IAAED,aAAa;IAAEC;EAAc,CAAC,GAAG,MAAM,IAAAE,kCAAkB,EAAC,CAAC;EAC9D,OAAO;IAAEH,aAAa;IAAEC;EAAc,CAAC;AAC3C,CAAC;AAEM,MAAMG,2BAA2B,GAAG,MAAOC,IAAY,IAAK;EAC/D,MAAM;IAACL,aAAa,EAAEM,GAAG;IAAEL,aAAa,EAAEM;EAAU,CAAC,GAAG,MAAML,iBAAiB,CAAC,CAAC;EACjF,OAAO,IAAAM,6BAAsB,EAACH,IAAI,EAAEC,GAAG,EAAEC,UAAU,CAAC;AACxD,CAAC;AAAAE,OAAA,CAAAL,2BAAA,GAAAA,2BAAA","ignoreList":[]}
@@ -62,12 +62,12 @@ const escapeHTML = text => {
62
62
  return text.replace(/[&<>"']/g, match => escaped[match] ?? match);
63
63
  };
64
64
  exports.escapeHTML = escapeHTML;
65
- const convertEmojisToUnicode = text => {
65
+ const convertEmojisToUnicode = (text, regShortnames, shortNameList) => {
66
66
  let result = text;
67
67
  result = result.replace(/https?:\/\/.*?(?=$|\s)/gi, fullMatch => fullMatch.replace(/:/g, '%3A'));
68
- result = result.replace(_emoji.regShortnames, shortname => {
68
+ result = result.replace(regShortnames, shortname => {
69
69
  if (shortname) {
70
- const unicode = _emoji.shortNameList[shortname];
70
+ const unicode = shortNameList[shortname];
71
71
  if (unicode) {
72
72
  return convert(unicode.toUpperCase());
73
73
  }
@@ -1 +1 @@
1
- {"version":3,"file":"emoji.js","names":["_emoji","require","convert","unicode","indexOf","parts","s","split","i","length","part","parseInt","hi","Math","floor","lo","String","fromCharCode","push","join","unescapeHTML","text","unescaped","replace","match","exports","escapeHTML","escaped","convertEmojisToUnicode","result","fullMatch","regShortnames","shortname","shortNameList","toUpperCase","regAscii","m1","m2","m3","asciiList","addSkinToneToEmoji","emojiList","emoji","skinTone","map","rawEmoji","_emojiList$rawEmoji","skin_tone_support"],"sources":["../../../src/utils/emoji.ts"],"sourcesContent":["import { 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\nexport const 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 escapeHTML = (text: string) => {\n const escaped: { [key: string]: string } = {\n '<': '&lt;',\n '>': '&gt;',\n '\"': '&quot;',\n \"'\": '&apos;',\n };\n\n return text.replace(/[&<>\"']/g, (match) => escaped[match] ?? match);\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 = (\n emojiList: { [x: string]: { skin_tone_support: any } },\n emoji: string,\n skinTone: string,\n): string =>\n emoji\n .split('\\u{200D}')\n .map((rawEmoji) => {\n const parts = [rawEmoji.replace(/\\ufe0f/, '')];\n\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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","ignoreList":[]}
1
+ {"version":3,"file":"emoji.js","names":["_emoji","require","convert","unicode","indexOf","parts","s","split","i","length","part","parseInt","hi","Math","floor","lo","String","fromCharCode","push","join","unescapeHTML","text","unescaped","replace","match","exports","escapeHTML","escaped","convertEmojisToUnicode","regShortnames","shortNameList","result","fullMatch","shortname","toUpperCase","regAscii","m1","m2","m3","asciiList","addSkinToneToEmoji","emojiList","emoji","skinTone","map","rawEmoji","_emojiList$rawEmoji","skin_tone_support"],"sources":["../../../src/utils/emoji.ts"],"sourcesContent":["import { asciiList, regAscii } 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\nexport const 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 escapeHTML = (text: string) => {\n const escaped: { [key: string]: string } = {\n '<': '&lt;',\n '>': '&gt;',\n '\"': '&quot;',\n \"'\": '&apos;',\n };\n\n return text.replace(/[&<>\"']/g, (match) => escaped[match] ?? match);\n};\n\nexport const convertEmojisToUnicode = (text: string, regShortnames: RegExp, shortNameList: { [p: string]: 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 = (\n emojiList: { [x: string]: { skin_tone_support: any } },\n emoji: string,\n skinTone: string,\n): string =>\n emoji\n .split('\\u{200D}')\n .map((rawEmoji) => {\n const parts = [rawEmoji.replace(/\\ufe0f/, '')];\n\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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","ignoreList":[]}