@lobehub/ui
Version:
Lobe UI is an open-source UI component library for building AIGC web apps
46 lines (45 loc) • 1.44 kB
JavaScript
//#region src/FluentEmoji/utils.ts
function emojiToUnicode(emoji) {
return [...emoji].map((char) => char?.codePointAt(0)?.toString(16)).join("-");
}
function emojiAnimPkg(emoji) {
const mainPart = emojiToUnicode(emoji).split("-")[0];
if (mainPart < "1f469") return "@lobehub/fluent-emoji-anim-1";
else if (mainPart >= "1f469" && mainPart < "1f620") return "@lobehub/fluent-emoji-anim-2";
else if (mainPart >= "1f620" && mainPart < "1f9a0") return "@lobehub/fluent-emoji-anim-3";
else return "@lobehub/fluent-emoji-anim-4";
}
const genEmojiUrl = (emoji, type) => {
const ext = ["anim", "3d"].includes(type) ? "webp" : "svg";
switch (type) {
case "raw": return null;
case "anim": return {
path: `assets/${emojiToUnicode(emoji)}.${ext}`,
pkg: emojiAnimPkg(emoji),
version: "latest"
};
case "3d": return {
path: `assets/${emojiToUnicode(emoji)}.${ext}`,
pkg: "@lobehub/fluent-emoji-3d",
version: "latest"
};
case "flat": return {
path: `assets/${emojiToUnicode(emoji)}.${ext}`,
pkg: "@lobehub/fluent-emoji-flat",
version: "latest"
};
case "modern": return {
path: `assets/${emojiToUnicode(emoji)}.${ext}`,
pkg: "@lobehub/fluent-emoji-modern",
version: "latest"
};
case "mono": return {
path: `assets/${emojiToUnicode(emoji)}.${ext}`,
pkg: "@lobehub/fluent-emoji-mono",
version: "latest"
};
}
};
//#endregion
export { genEmojiUrl };
//# sourceMappingURL=utils.mjs.map