Files
PixelandClaude Opus 4.8 266a74ef79 WIP: эмодзи-пикер (Telegram-набор) — чекпоинт незавершённой работы
- Эмодзи-пикер: js/components/emoji-picker.js + каталог telegram-emoji-*.js
  (smileys/people/animals_nature/food_drink/travel_places/activity/objects/
  symbols/flags) + 631 ассет в assets/emoji (7.2 МБ).
- Интеграция пикера: chat-view.js, app.js, index.html, styles/components.css.
- Дев-скрипты генерации превью + THIRD_PARTY_NOTICES.
- Работа НЕ завершена (WIP), сохранено как чекпоинт. С origin (+56) пока НЕ
  мержится — большой мерж будет после завершения, отдельным шагом.
- VERSION: client 1.2.263.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-15 21:28:45 +03:00

51 lines
2.2 KiB
JavaScript

import { TELEGRAM_EMOJI_GROUP_ACTIVITY } from './telegram-emoji-activity.js?v=202607151545';
import { TELEGRAM_EMOJI_GROUP_ANIMALS_NATURE } from './telegram-emoji-animals_nature.js?v=202607151545';
import { TELEGRAM_EMOJI_GROUP_FLAGS } from './telegram-emoji-flags.js?v=202607151545';
import { TELEGRAM_EMOJI_GROUP_FOOD_DRINK } from './telegram-emoji-food_drink.js?v=202607151545';
import { TELEGRAM_EMOJI_GROUP_OBJECTS } from './telegram-emoji-objects.js?v=202607151545';
import { TELEGRAM_EMOJI_GROUP_PEOPLE } from './telegram-emoji-people.js?v=202607151545';
import { TELEGRAM_EMOJI_GROUP_SMILEYS } from './telegram-emoji-smileys.js?v=202607151545';
import { TELEGRAM_EMOJI_GROUP_SYMBOLS } from './telegram-emoji-symbols.js?v=202607151545';
import { TELEGRAM_EMOJI_GROUP_TRAVEL_PLACES } from './telegram-emoji-travel_places.js?v=202607151545';
const TELEGRAM_EMOJI_ASSET_BASE_URL = 'https://raw.githubusercontent.com/Tarikul-Islam-Anik/Telegram-Animated-Emojis/main/';
const TELEGRAM_EMOJI_PREVIEW_BASE_URL = '/assets/emoji/telegram-previews/';
function getTelegramEmojiName(file) {
return String(file || '').split('/').pop()?.replace(/\.webp$/i, '') || '';
}
function withPreviewUrls(group) {
return {
...group,
items: group.items.map((item) => ({
...item,
name: item.name || getTelegramEmojiName(item.file),
previewUrl: getTelegramEmojiPreviewUrl(item.file),
animatedUrl: getTelegramEmojiAssetUrl(item.file),
})),
};
}
export const TELEGRAM_EMOJI_GROUPS = [
TELEGRAM_EMOJI_GROUP_SMILEYS,
TELEGRAM_EMOJI_GROUP_PEOPLE,
TELEGRAM_EMOJI_GROUP_ANIMALS_NATURE,
TELEGRAM_EMOJI_GROUP_FOOD_DRINK,
TELEGRAM_EMOJI_GROUP_TRAVEL_PLACES,
TELEGRAM_EMOJI_GROUP_ACTIVITY,
TELEGRAM_EMOJI_GROUP_OBJECTS,
TELEGRAM_EMOJI_GROUP_SYMBOLS,
TELEGRAM_EMOJI_GROUP_FLAGS,
].map(withPreviewUrls);
export function getTelegramEmojiAssetUrl(file) {
return `${TELEGRAM_EMOJI_ASSET_BASE_URL}${file.split('/').map((part) => encodeURIComponent(part)).join('/')}`;
}
export function getTelegramEmojiPreviewUrl(file) {
return `${TELEGRAM_EMOJI_PREVIEW_BASE_URL}${String(file || '').replace(/\.webp$/i, '.png').split('/').map((part) => encodeURIComponent(part)).join('/')}`;
}
export { TELEGRAM_EMOJI_ASSET_BASE_URL };