@chayns-components/emoji-input 5.0.0-beta.130 → 5.0.0-beta.131
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.
- package/lib/constants/regex.d.ts +0 -1
- package/lib/constants/regex.js +1 -3
- package/lib/constants/regex.js.map +1 -1
- package/lib/utils/emoji.d.ts +1 -0
- package/lib/utils/emoji.js +2 -1
- package/lib/utils/emoji.js.map +1 -1
- package/lib/utils/text.d.ts +0 -1
- package/lib/utils/text.js +3 -15
- package/lib/utils/text.js.map +1 -1
- package/package.json +2 -2
package/lib/constants/regex.d.ts
CHANGED
package/lib/constants/regex.js
CHANGED
|
@@ -3,11 +3,9 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.HTML_LC_MENTION_REGEX = exports.BB_LC_MENTION_REGEX = void 0;
|
|
7
7
|
const BB_LC_MENTION_REGEX = /\[lc_mention.+?id="([^"]+?)"](.+?)\[\/lc_mention]/g;
|
|
8
8
|
exports.BB_LC_MENTION_REGEX = BB_LC_MENTION_REGEX;
|
|
9
9
|
const HTML_LC_MENTION_REGEX = /<lc_mention.+?id="([^"]+?)">(?:<span.*?<\/span>)*(.+?)<\/lc_mention>/g;
|
|
10
10
|
exports.HTML_LC_MENTION_REGEX = HTML_LC_MENTION_REGEX;
|
|
11
|
-
const QUOTE_REGEX = /(?<![<[])(?<!\[[^]]*)(?<!<[^&]*)(?<=\s|\S)"(?=\S|\s)(?![^[]*\])(?![^&]*>)/g;
|
|
12
|
-
exports.QUOTE_REGEX = QUOTE_REGEX;
|
|
13
11
|
//# sourceMappingURL=regex.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"regex.js","names":["BB_LC_MENTION_REGEX","exports","HTML_LC_MENTION_REGEX"
|
|
1
|
+
{"version":3,"file":"regex.js","names":["BB_LC_MENTION_REGEX","exports","HTML_LC_MENTION_REGEX"],"sources":["../../src/constants/regex.ts"],"sourcesContent":["export const BB_LC_MENTION_REGEX = /\\[lc_mention.+?id=\"([^\"]+?)\"](.+?)\\[\\/lc_mention]/g;\n\nexport const HTML_LC_MENTION_REGEX =\n /<lc_mention.+?id=\"([^\"]+?)\">(?:<span.*?<\\/span>)*(.+?)<\\/lc_mention>/g;\n"],"mappings":";;;;;;AAAO,MAAMA,mBAAmB,GAAG,oDAAoD;AAACC,OAAA,CAAAD,mBAAA,GAAAA,mBAAA;AAEjF,MAAME,qBAAqB,GAC9B,uEAAuE;AAACD,OAAA,CAAAC,qBAAA,GAAAA,qBAAA"}
|
package/lib/utils/emoji.d.ts
CHANGED
package/lib/utils/emoji.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.convertEmojisToUnicode = exports.addSkinToneToEmoji = void 0;
|
|
6
|
+
exports.unescapeHTML = exports.convertEmojisToUnicode = exports.addSkinToneToEmoji = void 0;
|
|
7
7
|
var _dataByEmoji = _interopRequireDefault(require("unicode-emoji-json/data-by-emoji.json"));
|
|
8
8
|
var _emoji = require("../constants/emoji");
|
|
9
9
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
@@ -56,6 +56,7 @@ const unescapeHTML = text => {
|
|
|
56
56
|
return (_unescaped$match = unescaped[match]) !== null && _unescaped$match !== void 0 ? _unescaped$match : match;
|
|
57
57
|
});
|
|
58
58
|
};
|
|
59
|
+
exports.unescapeHTML = unescapeHTML;
|
|
59
60
|
const convertEmojisToUnicode = text => {
|
|
60
61
|
let result = text;
|
|
61
62
|
result = result.replace(/https?:\/\/.*?(?=$|\s)/gi, fullMatch => fullMatch.replace(/:/g, '%3A'));
|
package/lib/utils/emoji.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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","regAsciiRisky","m1","m2","m3","asciiList","
|
|
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","exports","convertEmojisToUnicode","result","fullMatch","regShortnames","shortname","shortNameList","toUpperCase","regAsciiRisky","m1","m2","m3","asciiList","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, regAsciiRisky, 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 '&': '&',\n '&': '&',\n '&': '&',\n '<': '<',\n '<': '<',\n '<': '<',\n '>': '>',\n '>': '>',\n '>': '>',\n '"': '\"',\n '"': '\"',\n '"': '\"',\n ''': \"'\",\n ''': \"'\",\n ''': \"'\",\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(regAsciiRisky, (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/lib/utils/text.d.ts
CHANGED
package/lib/utils/text.js
CHANGED
|
@@ -3,8 +3,9 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.convertHTMLToBBCodes = exports.convertBBCodesToHTML = void 0;
|
|
7
7
|
var _regex = require("../constants/regex");
|
|
8
|
+
var _emoji = require("./emoji");
|
|
8
9
|
const convertBBCodesToHTML = text => {
|
|
9
10
|
let result = text;
|
|
10
11
|
result = result.replace(_regex.BB_LC_MENTION_REGEX, '<lc_mention contenteditable="false" id="$1"><span>@</span>$2</lc_mention>');
|
|
@@ -14,21 +15,8 @@ exports.convertBBCodesToHTML = convertBBCodesToHTML;
|
|
|
14
15
|
const convertHTMLToBBCodes = text => {
|
|
15
16
|
let result = text;
|
|
16
17
|
result = result.replace(_regex.HTML_LC_MENTION_REGEX, '[lc_mention id="$1"]$2[/lc_mention]');
|
|
18
|
+
result = (0, _emoji.unescapeHTML)(result);
|
|
17
19
|
return result;
|
|
18
20
|
};
|
|
19
21
|
exports.convertHTMLToBBCodes = convertHTMLToBBCodes;
|
|
20
|
-
const convertQuotes = text => {
|
|
21
|
-
console.log(text);
|
|
22
|
-
const regexForQuoteStart = /„(\s|$)/g;
|
|
23
|
-
const formattedQuotes = text.replace(_regex.QUOTE_REGEX, match => {
|
|
24
|
-
console.log('match', match);
|
|
25
|
-
if (match.startsWith(' ') || text.startsWith(match)) {
|
|
26
|
-
return match.startsWith(' ') ? ` ${String.fromCharCode(8222)}` : String.fromCharCode(8222);
|
|
27
|
-
}
|
|
28
|
-
return String.fromCharCode(8220);
|
|
29
|
-
});
|
|
30
|
-
return formattedQuotes;
|
|
31
|
-
// return formattedQuotes.replace(regexForQuoteStart, '"');
|
|
32
|
-
};
|
|
33
|
-
exports.convertQuotes = convertQuotes;
|
|
34
22
|
//# sourceMappingURL=text.js.map
|
package/lib/utils/text.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text.js","names":["_regex","require","convertBBCodesToHTML","text","result","replace","BB_LC_MENTION_REGEX","exports","convertHTMLToBBCodes","HTML_LC_MENTION_REGEX","
|
|
1
|
+
{"version":3,"file":"text.js","names":["_regex","require","_emoji","convertBBCodesToHTML","text","result","replace","BB_LC_MENTION_REGEX","exports","convertHTMLToBBCodes","HTML_LC_MENTION_REGEX","unescapeHTML"],"sources":["../../src/utils/text.ts"],"sourcesContent":["import { BB_LC_MENTION_REGEX, HTML_LC_MENTION_REGEX } from '../constants/regex';\nimport { unescapeHTML } from './emoji';\n\nexport const convertBBCodesToHTML = (text: string) => {\n let result = text;\n\n result = result.replace(\n BB_LC_MENTION_REGEX,\n '<lc_mention contenteditable=\"false\" id=\"$1\"><span>@</span>$2</lc_mention>'\n );\n\n return result;\n};\n\nexport const convertHTMLToBBCodes = (text: string) => {\n let result = text;\n\n result = result.replace(HTML_LC_MENTION_REGEX, '[lc_mention id=\"$1\"]$2[/lc_mention]');\n\n result = unescapeHTML(result);\n\n return result;\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAEO,MAAME,oBAAoB,GAAIC,IAAY,IAAK;EAClD,IAAIC,MAAM,GAAGD,IAAI;EAEjBC,MAAM,GAAGA,MAAM,CAACC,OAAO,CACnBC,0BAAmB,EACnB,2EAA2E,CAC9E;EAED,OAAOF,MAAM;AACjB,CAAC;AAACG,OAAA,CAAAL,oBAAA,GAAAA,oBAAA;AAEK,MAAMM,oBAAoB,GAAIL,IAAY,IAAK;EAClD,IAAIC,MAAM,GAAGD,IAAI;EAEjBC,MAAM,GAAGA,MAAM,CAACC,OAAO,CAACI,4BAAqB,EAAE,qCAAqC,CAAC;EAErFL,MAAM,GAAG,IAAAM,mBAAY,EAACN,MAAM,CAAC;EAE7B,OAAOA,MAAM;AACjB,CAAC;AAACG,OAAA,CAAAC,oBAAA,GAAAA,oBAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@chayns-components/emoji-input",
|
|
3
|
-
"version": "5.0.0-beta.
|
|
3
|
+
"version": "5.0.0-beta.131",
|
|
4
4
|
"description": "Input field that supports HTML elements and emojis",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"chayns",
|
|
@@ -68,5 +68,5 @@
|
|
|
68
68
|
"publishConfig": {
|
|
69
69
|
"access": "public"
|
|
70
70
|
},
|
|
71
|
-
"gitHead": "
|
|
71
|
+
"gitHead": "e1da3016de1a46a19ebfae97c8938c204e1b5375"
|
|
72
72
|
}
|