hnschat-web/assets/js/zwj.js

279 lines
5.5 KiB
JavaScript
Raw Permalink Normal View History

2024-04-17 08:26:30 +10:00
function nameToUnicode(unicode) {
const skinColors = ["🏻", "🏼", "🏽", "🏾", "🏿"];
const tonedEmojis = [
"❤",
"💋",
"😶",
"😮",
"😵",
"👶",
"🧒",
"👦",
"👧",
"🧑",
"👱",
"👨",
"🧔",
"👨‍🦰",
"👨‍🦱",
"👨‍🦳",
"👨‍🦲",
"👩",
"👩‍🦰",
"🧑‍🦰",
"👩‍🦱",
"🧑‍🦱",
"👩‍🦳",
"🧑‍🦳",
"👩‍🦲",
"🧑‍🦲",
"🧓",
"👴",
"👵",
"🙍",
"🙎",
"🙅",
"🙆",
"💁",
"🙋",
"🧏",
"🙇",
"🤦",
"🤷",
"🧑‍🎓",
"👨‍🎓",
"👩‍🎓",
"🧑‍🏫",
"👨‍🏫",
"👩‍🏫",
"🧑‍🌾",
"👨‍🌾",
"👩‍🌾",
"🧑‍🍳",
"👨‍🍳",
"👩‍🍳",
"🧑‍🔧",
"👨‍🔧",
"👩‍🔧",
"🧑‍🏭",
"👨‍🏭",
"👩‍🏭",
"🧑‍💼",
"👨‍💼",
"👩‍💼",
"🧑‍🔬",
"👨‍🔬",
"👩‍🔬",
"🧑‍💻",
"👨‍💻",
"👩‍💻",
"🧑‍🎤",
"👨‍🎤",
"👩‍🎤",
"🧑‍🎨",
"👨‍🎨",
"👩‍🎨",
"🧑‍✈",
"👨‍✈",
"👩‍✈",
"🧑‍🚀",
"👨‍🚀",
"👩‍🚀",
"🧑‍🚒",
"👨‍🚒",
"👩‍🚒",
"👮",
"🕵",
"💂",
"🥷",
"👷",
"🤴",
"👸",
"👳",
"👲",
"🧕",
"🤵",
"👰",
"🤰",
"🤱",
"👩‍🍼",
"👨‍🍼",
"🧑‍🍼",
"👼",
"🎅",
"🤶",
"🧑‍🎄",
"🦸",
"🦹",
"🧙",
"🧚",
"🧛",
"🧜",
"🧝",
"🧞",
"🧟",
"💆",
"💇",
"🫅",
"🫃",
"🫄",
"🚶",
"🧍",
"🧎",
"🧑‍🦯",
"👨‍🦯",
"👩‍🦯",
"🧑‍🦼",
"👨‍🦼",
"👩‍🦼",
"🧑‍🦽",
"👨‍🦽",
"👩‍🦽",
"🏃",
"💃",
"🕺",
"👯",
"🧖",
"🧘",
"🧑‍🤝‍🧑",
"👭",
"👫",
"👬",
"💏",
"👩‍❤️‍💋‍👨",
"👨‍❤️‍💋‍👨",
"👩‍❤️‍💋‍👩",
"💑",
"👩‍❤️‍👨",
"👨‍❤️‍👨",
"👩‍❤️‍👩",
"👪",
"👨‍👩‍👦",
"👨‍👩‍👧",
"👨‍👩‍👧‍👦",
"👨‍👩‍👦‍👦",
"👨‍👩‍👧‍👧",
"👨‍👨‍👦",
"👨‍👨‍👧",
"👨‍👨‍👧‍👦",
"👨‍👨‍👦‍👦",
"👨‍👨‍👧‍👧",
"👩‍👩‍👦",
"👩‍👩‍👧",
"👩‍👩‍👧‍👦",
"👩‍👩‍👦‍👦",
"👩‍👩‍👧‍👧",
"👨‍👦",
"👨‍👦‍👦",
"👨‍👧",
"👨‍👧‍👦",
"👨‍👧‍👧",
"👩‍👦",
"👩‍👦‍👦",
"👩‍👧",
"👩‍👧‍👦",
"👩‍👧‍👧",
"🕴",
"🧗",
"🧗",
"🧗",
"🤺",
"🏇",
"⛷",
"🏂",
"🏌",
"🏄",
"🚣",
"🏊",
"⛹",
"🏋",
"🚴",
"🚵",
"🤸",
"🤼",
"🤽",
"🤾",
"🤹",
"🧘",
"👋",
"🤚",
"🖐",
"✋",
"🫱",
"🫲",
"🫳",
"🫴",
"🫰",
"🫵",
"🫶",
"🖖",
"👌",
"🤌",
"🤏",
"✌",
"🤞",
"🤟",
"🤘",
"🤙",
"👈",
"👉",
"👆",
"🖕",
"👇",
"☝",
"👍",
"👎",
"✊",
"👊",
"🤛",
"🤜",
"👏",
"🙌",
"👐",
"🤲",
"🤝",
"🙏",
"✍",
"💅",
"🤳",
"💪",
"🦵",
"🦶",
"👂",
"🦻",
"👃",
"🛌",
"🛀",
"🏳",
"🏴",
"👁",
"🐈",
"🐦",
"🐕",
"🦺",
"🐻"
];
const allChars = tonedEmojis.concat(skinColors);
let chars = [];
let i = 0;
for (let c of unicode) {
// remove last zwj if the next one is a skin color
if (skinColors.includes(c)) chars.pop();
// add emoji
chars.push(c);
// add zwj
if (allChars.includes(c)) chars.push("\u200d");
i++;
}
// remove last element if zwj
if (chars[chars.length - 1] === "\u200d") chars.pop();
// combine to string
return chars.join("");
}