@dialpad/dialtone 9.39.0 → 9.41.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 (176) hide show
  1. package/README.md +19 -1
  2. package/dist/css/dialtone.css +15 -2
  3. package/dist/css/dialtone.min.css +1 -1
  4. package/dist/tokens/css/variables-dark.css +1 -1
  5. package/dist/tokens/css/variables-expressive-dark.css +1 -1
  6. package/dist/tokens/css/variables-expressive-light.css +1 -1
  7. package/dist/tokens/css/variables-expressive-sm-dark.css +1 -1
  8. package/dist/tokens/css/variables-expressive-sm-light.css +1 -1
  9. package/dist/tokens/css/variables-light.css +1 -1
  10. package/dist/tokens/css/variables-tmo-dark.css +1 -1
  11. package/dist/tokens/css/variables-tmo-light.css +1 -1
  12. package/dist/tokens/less/variables-dark.less +1 -1
  13. package/dist/tokens/less/variables-expressive-dark.less +1 -1
  14. package/dist/tokens/less/variables-expressive-light.less +1 -1
  15. package/dist/tokens/less/variables-expressive-sm-dark.less +1 -1
  16. package/dist/tokens/less/variables-expressive-sm-light.less +1 -1
  17. package/dist/tokens/less/variables-light.less +1 -1
  18. package/dist/tokens/less/variables-tmo-dark.less +1 -1
  19. package/dist/tokens/less/variables-tmo-light.less +1 -1
  20. package/dist/vue2/chunks/index-ODod4Oj_.js +175 -0
  21. package/dist/vue2/chunks/index-ODod4Oj_.js.map +1 -0
  22. package/dist/vue2/chunks/index-anN_sx1F.js +169 -0
  23. package/dist/vue2/chunks/index-anN_sx1F.js.map +1 -0
  24. package/dist/vue2/common/emoji.cjs +40 -163
  25. package/dist/vue2/common/emoji.cjs.map +1 -1
  26. package/dist/vue2/common/emoji.js +3 -146
  27. package/dist/vue2/common/emoji.js.map +1 -1
  28. package/dist/vue2/component-documentation.json +1 -1
  29. package/dist/vue2/dialtone-vue.cjs +2 -2
  30. package/dist/vue2/dialtone-vue.js +2 -2
  31. package/dist/vue2/dialtone-vue.js.map +1 -1
  32. package/dist/vue2/lib/badge.cjs +21 -1
  33. package/dist/vue2/lib/badge.cjs.map +1 -1
  34. package/dist/vue2/lib/badge.js +21 -1
  35. package/dist/vue2/lib/badge.js.map +1 -1
  36. package/dist/vue2/lib/contact-centers-row.cjs +1 -2
  37. package/dist/vue2/lib/contact-centers-row.cjs.map +1 -1
  38. package/dist/vue2/lib/contact-centers-row.js +1 -2
  39. package/dist/vue2/lib/contact-centers-row.js.map +1 -1
  40. package/dist/vue2/lib/contact-row.cjs +1 -2
  41. package/dist/vue2/lib/contact-row.cjs.map +1 -1
  42. package/dist/vue2/lib/contact-row.js +1 -2
  43. package/dist/vue2/lib/contact-row.js.map +1 -1
  44. package/dist/vue2/lib/editor.cjs +1 -2
  45. package/dist/vue2/lib/editor.cjs.map +1 -1
  46. package/dist/vue2/lib/editor.js +1 -2
  47. package/dist/vue2/lib/editor.js.map +1 -1
  48. package/dist/vue2/lib/emoji-row.cjs +1 -2
  49. package/dist/vue2/lib/emoji-row.cjs.map +1 -1
  50. package/dist/vue2/lib/emoji-row.js +1 -2
  51. package/dist/vue2/lib/emoji-row.js.map +1 -1
  52. package/dist/vue2/lib/emoji-text-wrapper.cjs +1 -2
  53. package/dist/vue2/lib/emoji-text-wrapper.cjs.map +1 -1
  54. package/dist/vue2/lib/emoji-text-wrapper.js +1 -2
  55. package/dist/vue2/lib/emoji-text-wrapper.js.map +1 -1
  56. package/dist/vue2/lib/emoji.cjs +1 -2
  57. package/dist/vue2/lib/emoji.cjs.map +1 -1
  58. package/dist/vue2/lib/emoji.js +1 -2
  59. package/dist/vue2/lib/emoji.js.map +1 -1
  60. package/dist/vue2/lib/general-row.cjs +3 -4
  61. package/dist/vue2/lib/general-row.cjs.map +1 -1
  62. package/dist/vue2/lib/general-row.js +3 -4
  63. package/dist/vue2/lib/general-row.js.map +1 -1
  64. package/dist/vue2/lib/group-row.cjs +1 -2
  65. package/dist/vue2/lib/group-row.cjs.map +1 -1
  66. package/dist/vue2/lib/group-row.js +1 -2
  67. package/dist/vue2/lib/group-row.js.map +1 -1
  68. package/dist/vue2/lib/message-input.cjs +1 -2
  69. package/dist/vue2/lib/message-input.cjs.map +1 -1
  70. package/dist/vue2/lib/message-input.js +1 -2
  71. package/dist/vue2/lib/message-input.js.map +1 -1
  72. package/dist/vue2/lib/rich-text-editor.cjs +11 -180
  73. package/dist/vue2/lib/rich-text-editor.cjs.map +1 -1
  74. package/dist/vue2/lib/rich-text-editor.js +11 -180
  75. package/dist/vue2/lib/rich-text-editor.js.map +1 -1
  76. package/dist/vue2/lib/tooltip.cjs +8 -7
  77. package/dist/vue2/lib/tooltip.cjs.map +1 -1
  78. package/dist/vue2/lib/tooltip.js +8 -7
  79. package/dist/vue2/lib/tooltip.js.map +1 -1
  80. package/dist/vue2/types/common/emoji/index.d.ts +3 -10
  81. package/dist/vue2/types/common/emoji/index.d.ts.map +1 -1
  82. package/dist/vue2/types/components/badge/badge.vue.d.ts +32 -0
  83. package/dist/vue2/types/components/badge/badge.vue.d.ts.map +1 -1
  84. package/dist/vue2/types/components/rich_text_editor/extensions/channels/channel.d.ts +0 -1
  85. package/dist/vue2/types/components/rich_text_editor/extensions/channels/channel.d.ts.map +1 -1
  86. package/dist/vue2/types/components/rich_text_editor/extensions/emoji/emoji.d.ts.map +1 -1
  87. package/dist/vue2/types/components/rich_text_editor/extensions/emoji/suggestion.d.ts +0 -1
  88. package/dist/vue2/types/components/rich_text_editor/extensions/emoji/suggestion.d.ts.map +1 -1
  89. package/dist/vue2/types/components/rich_text_editor/extensions/mentions/mention.d.ts +0 -1
  90. package/dist/vue2/types/components/rich_text_editor/extensions/mentions/mention.d.ts.map +1 -1
  91. package/dist/vue2/types/components/rich_text_editor/mention_suggestion.d.ts +2 -2
  92. package/dist/vue2/types/components/rich_text_editor/mention_suggestion.d.ts.map +1 -1
  93. package/dist/vue2/types/components/rich_text_editor/rich_text_editor.vue.d.ts +0 -10
  94. package/dist/vue2/types/components/rich_text_editor/rich_text_editor.vue.d.ts.map +1 -1
  95. package/dist/vue2/types/components/tooltip/tooltip.vue.d.ts +4 -2
  96. package/dist/vue2/types/components/tooltip/tooltip.vue.d.ts.map +1 -1
  97. package/dist/vue2/types/recipes/leftbar/general_row/general_row_constants.d.ts +1 -1
  98. package/dist/vue3/chunks/index-GVD15GIB.js +175 -0
  99. package/dist/vue3/chunks/index-GVD15GIB.js.map +1 -0
  100. package/dist/vue3/chunks/index-lu2o2f4r.js +169 -0
  101. package/dist/vue3/chunks/index-lu2o2f4r.js.map +1 -0
  102. package/dist/vue3/common/emoji.cjs +40 -163
  103. package/dist/vue3/common/emoji.cjs.map +1 -1
  104. package/dist/vue3/common/emoji.js +3 -146
  105. package/dist/vue3/common/emoji.js.map +1 -1
  106. package/dist/vue3/component-documentation.json +1 -1
  107. package/dist/vue3/dialtone-vue.cjs +2 -2
  108. package/dist/vue3/dialtone-vue.js +2 -2
  109. package/dist/vue3/dialtone-vue.js.map +1 -1
  110. package/dist/vue3/lib/badge.cjs +21 -1
  111. package/dist/vue3/lib/badge.cjs.map +1 -1
  112. package/dist/vue3/lib/badge.js +21 -1
  113. package/dist/vue3/lib/badge.js.map +1 -1
  114. package/dist/vue3/lib/contact-centers-row.cjs +1 -2
  115. package/dist/vue3/lib/contact-centers-row.cjs.map +1 -1
  116. package/dist/vue3/lib/contact-centers-row.js +1 -2
  117. package/dist/vue3/lib/contact-centers-row.js.map +1 -1
  118. package/dist/vue3/lib/contact-row.cjs +1 -2
  119. package/dist/vue3/lib/contact-row.cjs.map +1 -1
  120. package/dist/vue3/lib/contact-row.js +1 -2
  121. package/dist/vue3/lib/contact-row.js.map +1 -1
  122. package/dist/vue3/lib/editor.cjs +1 -2
  123. package/dist/vue3/lib/editor.cjs.map +1 -1
  124. package/dist/vue3/lib/editor.js +1 -2
  125. package/dist/vue3/lib/editor.js.map +1 -1
  126. package/dist/vue3/lib/emoji-row.cjs +1 -2
  127. package/dist/vue3/lib/emoji-row.cjs.map +1 -1
  128. package/dist/vue3/lib/emoji-row.js +1 -2
  129. package/dist/vue3/lib/emoji-row.js.map +1 -1
  130. package/dist/vue3/lib/emoji-text-wrapper.cjs +1 -2
  131. package/dist/vue3/lib/emoji-text-wrapper.cjs.map +1 -1
  132. package/dist/vue3/lib/emoji-text-wrapper.js +1 -2
  133. package/dist/vue3/lib/emoji-text-wrapper.js.map +1 -1
  134. package/dist/vue3/lib/emoji.cjs +1 -2
  135. package/dist/vue3/lib/emoji.cjs.map +1 -1
  136. package/dist/vue3/lib/emoji.js +1 -2
  137. package/dist/vue3/lib/emoji.js.map +1 -1
  138. package/dist/vue3/lib/general-row.cjs +3 -4
  139. package/dist/vue3/lib/general-row.cjs.map +1 -1
  140. package/dist/vue3/lib/general-row.js +3 -4
  141. package/dist/vue3/lib/general-row.js.map +1 -1
  142. package/dist/vue3/lib/group-row.cjs +1 -2
  143. package/dist/vue3/lib/group-row.cjs.map +1 -1
  144. package/dist/vue3/lib/group-row.js +1 -2
  145. package/dist/vue3/lib/group-row.js.map +1 -1
  146. package/dist/vue3/lib/message-input.cjs +1 -2
  147. package/dist/vue3/lib/message-input.cjs.map +1 -1
  148. package/dist/vue3/lib/message-input.js +1 -2
  149. package/dist/vue3/lib/message-input.js.map +1 -1
  150. package/dist/vue3/lib/rich-text-editor.cjs +11 -177
  151. package/dist/vue3/lib/rich-text-editor.cjs.map +1 -1
  152. package/dist/vue3/lib/rich-text-editor.js +11 -177
  153. package/dist/vue3/lib/rich-text-editor.js.map +1 -1
  154. package/dist/vue3/lib/tooltip.cjs +12 -15
  155. package/dist/vue3/lib/tooltip.cjs.map +1 -1
  156. package/dist/vue3/lib/tooltip.js +13 -16
  157. package/dist/vue3/lib/tooltip.js.map +1 -1
  158. package/dist/vue3/types/common/emoji/index.d.ts +1 -0
  159. package/dist/vue3/types/common/emoji/index.d.ts.map +1 -1
  160. package/dist/vue3/types/components/badge/badge.vue.d.ts +32 -0
  161. package/dist/vue3/types/components/badge/badge.vue.d.ts.map +1 -1
  162. package/dist/vue3/types/components/rich_text_editor/extensions/channels/channel.d.ts +0 -1
  163. package/dist/vue3/types/components/rich_text_editor/extensions/channels/channel.d.ts.map +1 -1
  164. package/dist/vue3/types/components/rich_text_editor/extensions/emoji/emoji.d.ts.map +1 -1
  165. package/dist/vue3/types/components/rich_text_editor/extensions/emoji/suggestion.d.ts +0 -1
  166. package/dist/vue3/types/components/rich_text_editor/extensions/emoji/suggestion.d.ts.map +1 -1
  167. package/dist/vue3/types/components/rich_text_editor/extensions/mentions/mention.d.ts +0 -1
  168. package/dist/vue3/types/components/rich_text_editor/extensions/mentions/mention.d.ts.map +1 -1
  169. package/dist/vue3/types/components/rich_text_editor/mention_suggestion.d.ts +2 -2
  170. package/dist/vue3/types/components/rich_text_editor/mention_suggestion.d.ts.map +1 -1
  171. package/dist/vue3/types/components/rich_text_editor/rich_text_editor.vue.d.ts +0 -10
  172. package/dist/vue3/types/components/rich_text_editor/rich_text_editor.vue.d.ts.map +1 -1
  173. package/dist/vue3/types/components/tooltip/tooltip.vue.d.ts +3 -4
  174. package/dist/vue3/types/components/tooltip/tooltip.vue.d.ts.map +1 -1
  175. package/dist/vue3/types/recipes/leftbar/general_row/general_row_constants.d.ts +1 -1
  176. package/package.json +3 -3
@@ -1,149 +1,5 @@
1
- import emojiRegex from "emoji-regex";
2
- import emojiJsonLocal from "emoji-toolkit/emoji_strategy.json";
3
- const emojiVersion = "8.0";
4
- const defaultEmojiAssetUrl = "https://cdn.jsdelivr.net/joypixels/assets/" + emojiVersion + "/png/unicode/32/";
5
- let customEmojiAssetUrl = null;
6
- let emojiImageUrlSmall = defaultEmojiAssetUrl;
7
- let emojiFileExtensionSmall = ".png";
8
- let emojiImageUrlLarge = defaultEmojiAssetUrl;
9
- let emojiFileExtensionLarge = ".png";
10
- const emojiJson = emojiJsonLocal;
11
- const emojiShortCodeRegex = new RegExp("(^| |(?<=:))(:\\w+:)", "g");
12
- function getEmojiData() {
13
- return emojiJson;
14
- }
15
- function setEmojiAssetUrlSmall(url, fileExtension = ".png") {
16
- if (!url.endsWith("/")) {
17
- url = url + "/";
18
- }
19
- emojiImageUrlSmall = url;
20
- emojiFileExtensionSmall = fileExtension;
21
- }
22
- function setEmojiAssetUrlLarge(url, fileExtension = ".svg") {
23
- if (!url.endsWith("/")) {
24
- url = url + "/";
25
- }
26
- emojiImageUrlLarge = url;
27
- emojiFileExtensionLarge = fileExtension;
28
- }
29
- function setCustomEmojiUrl(url) {
30
- customEmojiAssetUrl = url;
31
- }
32
- function setCustomEmojiJson(json) {
33
- validateCustomEmojiJson(json);
34
- }
35
- function validateCustomEmojiJson(json) {
36
- const customEmojiProps = ["extension", "custom"];
37
- const customEmojiRequiredProps = [
38
- "name",
39
- "category",
40
- "shortname",
41
- "extension",
42
- "custom"
43
- ];
44
- const _updateNativeEmojiData = (emojiData, propName, propValue) => {
45
- if (emojiData[propName] === void 0) {
46
- if (!customEmojiProps.includes(propName)) {
47
- return;
48
- }
49
- emojiData[propName] = propValue;
50
- } else {
51
- if (Array.isArray(emojiData[propName])) {
52
- emojiData[propName] = emojiData[propName].concat(propValue);
53
- } else {
54
- emojiData[propName] = propValue;
55
- }
56
- }
57
- };
58
- Object.entries(json).forEach((item) => {
59
- const [customEmojiKey, customEmojiValue] = item;
60
- if (customEmojiKey in emojiJson) {
61
- const emojiData = emojiJson[customEmojiKey];
62
- for (const customEmojiPropertyName in customEmojiValue) {
63
- const customEmojiPropertyValue = customEmojiValue[customEmojiPropertyName];
64
- _updateNativeEmojiData(emojiData, customEmojiPropertyName, customEmojiPropertyValue);
65
- }
66
- } else {
67
- const _validateRequiredProps = () => customEmojiRequiredProps.every((val) => {
68
- return customEmojiValue[val] !== void 0;
69
- });
70
- if (_validateRequiredProps()) {
71
- emojiJson[customEmojiKey] = customEmojiValue;
72
- } else {
73
- console.error(
74
- "The following custom emoji doesn't contain the required properties:",
75
- customEmojiValue
76
- );
77
- }
78
- }
79
- });
80
- }
81
- function shortcodeToEmojiData(shortcode) {
82
- function f(o, key) {
83
- if (!o || typeof o !== "object") {
84
- return;
85
- }
86
- if ("shortname" in o) {
87
- if (o.shortname === shortcode || o.shortname_alternates.includes(shortcode)) {
88
- o.key = key;
89
- reference = o;
90
- return true;
91
- }
92
- }
93
- Object.keys(o).some(function(k) {
94
- return f(o[k], k);
95
- });
96
- }
97
- let reference;
98
- f(getEmojiData(), null);
99
- return reference;
100
- }
101
- function unicodeToString(emoji) {
102
- let key = "";
103
- for (const codePoint of emoji) {
104
- const codepoint = codePoint.codePointAt(0).toString(16).padStart(4, "0");
105
- if (["200d", "fe0f"].includes(codepoint))
106
- continue;
107
- if (key !== "") {
108
- key = key + "-";
109
- }
110
- key = key + codepoint;
111
- }
112
- return key;
113
- }
114
- function stringToUnicode(str) {
115
- const uChars = str.split("-");
116
- let result = "";
117
- uChars.forEach((uChar) => {
118
- result = result + String.fromCodePoint(parseInt(uChar, 16));
119
- });
120
- return result;
121
- }
122
- function codeToEmojiData(code) {
123
- code = code == null ? void 0 : code.trim();
124
- if (code.startsWith(":") && code.endsWith(":")) {
125
- return shortcodeToEmojiData(code);
126
- } else {
127
- const unicodeString = unicodeToString(code);
128
- const result = emojiJson[unicodeString];
129
- if (result)
130
- result.key = unicodeString;
131
- return result;
132
- }
133
- }
134
- function findShortCodes(textContent) {
135
- const shortcodes = (textContent.match(emojiShortCodeRegex) || []).map((code) => code.trim());
136
- return filterValidShortCodes(shortcodes);
137
- }
138
- function filterValidShortCodes(shortcodes) {
139
- const filtered = shortcodes ? shortcodes.filter((code) => shortcodeToEmojiData(code)) : [];
140
- return new Set(filtered);
141
- }
142
- function findEmojis(textContent) {
143
- const matches = [...textContent.matchAll(emojiRegex())];
144
- const emojis = matches.length ? matches.map((match) => match[0]) : [];
145
- return new Set(emojis);
146
- }
1
+ import { codeToEmojiData, customEmojiAssetUrl, defaultEmojiAssetUrl, emojiFileExtensionLarge, emojiFileExtensionSmall, emojiImageUrlLarge, emojiImageUrlSmall, emojiJson, emojiRegex, emojiShortCodeRegex, emojiVersion, filterValidShortCodes, findEmojis, findShortCodes, getEmojiData, setCustomEmojiJson, setCustomEmojiUrl, setEmojiAssetUrlLarge, setEmojiAssetUrlSmall, shortcodeToEmojiData, stringToUnicode, unicodeToString, validateCustomEmojiJson } from "../chunks/index-ODod4Oj_.js";
2
+ import "emoji-toolkit/emoji_strategy.json";
147
3
  export {
148
4
  codeToEmojiData,
149
5
  customEmojiAssetUrl,
@@ -153,6 +9,7 @@ export {
153
9
  emojiImageUrlLarge,
154
10
  emojiImageUrlSmall,
155
11
  emojiJson,
12
+ emojiRegex,
156
13
  emojiShortCodeRegex,
157
14
  emojiVersion,
158
15
  filterValidShortCodes,
@@ -1 +1 @@
1
- {"version":3,"file":"emoji.js","sources":["../../common/emoji/index.js"],"sourcesContent":["import emojiRegex from 'emoji-regex';\nimport emojiJsonLocal from 'emoji-toolkit/emoji_strategy.json';\n\nexport const emojiVersion = '8.0';\nexport const defaultEmojiAssetUrl = 'https://cdn.jsdelivr.net/joypixels/assets/' + emojiVersion + '/png/unicode/32/';\nexport let customEmojiAssetUrl = null;\n\n// Used for emoji 16px and smaller\nexport let emojiImageUrlSmall = defaultEmojiAssetUrl;\nexport let emojiFileExtensionSmall = '.png';\n\n// Used for emoji larger than 16px\nexport let emojiImageUrlLarge = defaultEmojiAssetUrl;\nexport let emojiFileExtensionLarge = '.png';\n\nexport const emojiJson = emojiJsonLocal;\n\nexport const emojiShortCodeRegex = /(^| |(?<=:))(:\\w+:)/g;\n\nexport function getEmojiData () {\n return emojiJson;\n}\n\nexport function setEmojiAssetUrlSmall (url, fileExtension = '.png') {\n if (!url.endsWith('/')) {\n url = url + '/';\n }\n emojiImageUrlSmall = url;\n emojiFileExtensionSmall = fileExtension;\n}\n\nexport function setEmojiAssetUrlLarge (url, fileExtension = '.svg') {\n if (!url.endsWith('/')) {\n url = url + '/';\n }\n emojiImageUrlLarge = url;\n emojiFileExtensionLarge = fileExtension;\n}\n\nexport function setCustomEmojiUrl (url) {\n customEmojiAssetUrl = url;\n}\n\nexport function setCustomEmojiJson (json) {\n validateCustomEmojiJson(json);\n}\n\n/**\n * Validate custom emoji json\n */\nexport function validateCustomEmojiJson (json) {\n const customEmojiProps = ['extension', 'custom'];\n const customEmojiRequiredProps = [\n 'name',\n 'category',\n 'shortname',\n 'extension',\n 'custom',\n ];\n\n /**\n * Update single emoji properties.\n * If the property exists in emojiData, it'll add the values if the property is an array, otherwise will overwrite.\n * If not exists, will add the property to the emojiData object.\n */\n const _updateNativeEmojiData = (emojiData, propName, propValue) => {\n if (emojiData[propName] === undefined) {\n if (!customEmojiProps.includes(propName)) {\n return;\n }\n\n // new property to add\n emojiData[propName] = propValue;\n } else {\n if (Array.isArray(emojiData[propName])) {\n emojiData[propName] = emojiData[propName].concat(propValue);\n } else {\n emojiData[propName] = propValue;\n }\n }\n };\n\n Object.entries(json).forEach((item) => {\n const [customEmojiKey, customEmojiValue] = item;\n\n if (customEmojiKey in emojiJson) {\n // custom emoji exists in emoji json which means to update some data in the native emoji\n const emojiData = emojiJson[customEmojiKey];\n\n for (const customEmojiPropertyName in customEmojiValue) {\n const customEmojiPropertyValue = customEmojiValue[customEmojiPropertyName];\n\n _updateNativeEmojiData(emojiData, customEmojiPropertyName, customEmojiPropertyValue);\n }\n } else {\n // new custom emoji\n const _validateRequiredProps = () =>\n customEmojiRequiredProps.every((val) => {\n return customEmojiValue[val] !== undefined;\n });\n\n if (_validateRequiredProps()) {\n emojiJson[customEmojiKey] = customEmojiValue;\n } else {\n console.error(\n 'The following custom emoji doesn\\'t contain the required properties:',\n customEmojiValue,\n );\n }\n }\n });\n}\n\n// recursively searches the emoji data object containing data for all emojis\n// and returns the object with the specified shortcode.\nexport function shortcodeToEmojiData (shortcode) {\n // eslint-disable-next-line complexity\n function f (o, key) {\n if (!o || typeof o !== 'object') {\n return;\n }\n if ('shortname' in o) {\n if (o.shortname === shortcode || o.shortname_alternates.includes(shortcode)) {\n o.key = key;\n reference = o;\n return true;\n }\n }\n Object.keys(o).some(function (k) {\n return f(o[k], k);\n });\n }\n\n let reference;\n f(getEmojiData(), null);\n return reference;\n}\n\n// Takes in an emoji unicode character(s) and converts it to an emoji string in the format the emoji data object expects\n// as a key. There can be multiple unicode characters in an emoji to denote the emoji itself, skin tone, gender\n// and such. Note that this function does NOT return variation selectors (fe0f) or zero width joiners (200d), as these\n// are not included as part of the key in the emoji.json.\n//\n// Example:\n// return value for smile emoji (no skin tone): 1f600\n// return value for left facing fist (light skin tone): 1f91b-1f3fb\nexport function unicodeToString (emoji) {\n let key = '';\n for (const codePoint of emoji) {\n const codepoint = codePoint.codePointAt(0).toString(16).padStart(4, '0');\n\n // skip 200d and fe0f as these are not included in emoji_strategy.json keys\n if (['200d', 'fe0f'].includes(codepoint)) continue;\n if (key !== '') { key = key + '-'; }\n key = key + codepoint;\n }\n return key;\n}\n\n// Takes in unicode in string form ex: '1f91b-1f3fb' and converts it to an actual unicode character.\nexport function stringToUnicode (str) {\n const uChars = str.split('-');\n let result = '';\n uChars.forEach((uChar) => {\n result = result + String.fromCodePoint(parseInt(uChar, 16));\n });\n return result;\n}\n\n// Takes in a code (which could be unicode or shortcode) and returns the emoji data for it.\nexport function codeToEmojiData (code) {\n code = code?.trim();\n if (code.startsWith(':') && code.endsWith(':')) {\n return shortcodeToEmojiData(code);\n } else {\n const unicodeString = unicodeToString(code);\n\n const result = emojiJson[unicodeString];\n if (result) result.key = unicodeString;\n return result;\n }\n}\n\n// Finds every shortcode in slot text\n// filters only the existing codes in emojiJson\n// removes duplicates.\n// @returns {string[]}\nexport function findShortCodes (textContent) {\n const shortcodes = (\n textContent.match(emojiShortCodeRegex) || []\n ).map(code => code.trim());\n return filterValidShortCodes(shortcodes);\n}\n\nexport function filterValidShortCodes (shortcodes) {\n const filtered = shortcodes ? shortcodes.filter(code => shortcodeToEmojiData(code)) : [];\n return new Set(filtered);\n}\n\n// Finds every emoji in slot text\n// removes duplicates\n// @returns {string[]}\nexport function findEmojis (textContent) {\n const matches = [...textContent.matchAll(emojiRegex())];\n const emojis = matches.length ? matches.map(match => match[0]) : [];\n return new Set(emojis);\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"emoji.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}