SHA256
53 lines
1.9 KiB
JavaScript
53 lines
1.9 KiB
JavaScript
import { TWEMOJI_GROUP_ACTIVITY } from './twemoji-activity.js?v=202607151545';
|
|
import { TWEMOJI_GROUP_ANIMALS_NATURE } from './twemoji-animals_nature.js?v=202607151545';
|
|
import { TWEMOJI_GROUP_FLAGS } from './twemoji-flags.js?v=202607151545';
|
|
import { TWEMOJI_GROUP_FOOD_DRINK } from './twemoji-food_drink.js?v=202607151545';
|
|
import { TWEMOJI_GROUP_OBJECTS } from './twemoji-objects.js?v=202607151545';
|
|
import { TWEMOJI_GROUP_PEOPLE } from './twemoji-people.js?v=202607151545';
|
|
import { TWEMOJI_GROUP_SMILEYS } from './twemoji-smileys.js?v=202607151545';
|
|
import { TWEMOJI_GROUP_SYMBOLS } from './twemoji-symbols.js?v=202607151545';
|
|
import { TWEMOJI_GROUP_TRAVEL_PLACES } from './twemoji-travel_places.js?v=202607151545';
|
|
|
|
const TWEMOJI_SVG_BASE_URL = 'https://cdn.jsdelivr.net/gh/twitter/twemoji@14.0.2/assets/svg/';
|
|
|
|
function getTwemojiCodepoint(emoji) {
|
|
return Array.from(String(emoji || ''))
|
|
.map((char) => char.codePointAt(0))
|
|
.filter((codepoint) => codepoint && codepoint !== 0xfe0f)
|
|
.map((codepoint) => codepoint.toString(16))
|
|
.join('-');
|
|
}
|
|
|
|
function withPreviewUrls(group) {
|
|
return {
|
|
...group,
|
|
items: group.items.map((item) => ({
|
|
...item,
|
|
name: item.name || String(item.emoji || ''),
|
|
previewUrl: getTwemojiPreviewUrl(item.emoji),
|
|
animatedUrl: getTwemojiAssetUrl(item.emoji),
|
|
})),
|
|
};
|
|
}
|
|
|
|
export const TWEMOJI_GROUPS = [
|
|
TWEMOJI_GROUP_SMILEYS,
|
|
TWEMOJI_GROUP_PEOPLE,
|
|
TWEMOJI_GROUP_ANIMALS_NATURE,
|
|
TWEMOJI_GROUP_FOOD_DRINK,
|
|
TWEMOJI_GROUP_TRAVEL_PLACES,
|
|
TWEMOJI_GROUP_ACTIVITY,
|
|
TWEMOJI_GROUP_OBJECTS,
|
|
TWEMOJI_GROUP_SYMBOLS,
|
|
TWEMOJI_GROUP_FLAGS,
|
|
].map(withPreviewUrls);
|
|
|
|
export function getTwemojiAssetUrl(emoji) {
|
|
return getTwemojiPreviewUrl(emoji);
|
|
}
|
|
|
|
export function getTwemojiPreviewUrl(emoji) {
|
|
const codepoint = getTwemojiCodepoint(emoji);
|
|
return codepoint ? `${TWEMOJI_SVG_BASE_URL}${codepoint}.svg` : '';
|
|
}
|