// Copyright (c) 2022-2024 Niko Bonnieure, Par le Peuple, NextGraph.org developers // All rights reserved. // Licensed under the Apache License, Version 2.0 // // or the MIT license , // at your option. All files in the project carrying such // notice may not be copied, modified, or distributed except // according to those terms. export type Emoji = { hexcode: string; shortcode: string; code: string; svg?: any; }; let face = [ { hexcode: "1f600", shortcode: "grinning_face", code: "happy", svg: "", }, { hexcode: "1f602", shortcode: "face_with_tears_of_joy", code: "happy_tears", }, { hexcode: "1f607", shortcode: "smiling_face_with_halo", code: "halo", }, { hexcode: "1f970", shortcode: "smiling_face_with_hearts", code: "three_hearts", }, { hexcode: "1f60d", shortcode: "smiling_face_with_heart_eyes", code: "with_two_hearts", }, { hexcode: "1f618", shortcode: "face_blowing_a_kiss", code: "one_heart", }, { hexcode: "1f61d", shortcode: "squinting_face_with_tongue", code: "with_tongue", }, { hexcode: "1f917", shortcode: "hugging_face", code: "with_two_hands", }, { hexcode: "1f92d", shortcode: "face_with_hand_over_mouth", code: "one_hand", }, { hexcode: "1f910", shortcode: "zipper_mouth_face", code: "silenced", }, { hexcode: "1f973", shortcode: "partying_face", code: "celebrating", }, { hexcode: "1f60e", shortcode: "smiling_face_with_sunglasses", code: "sunglasses", }, { hexcode: "1f644", shortcode: "face_with_rolling_eyes", code: "eyes_up", }, { hexcode: "1f9d0", shortcode: "face_with_monocle", code: "monocle", }, { hexcode: "1f634", shortcode: "sleeping_face", code: "sleeping", }, ]; let face_unwell = [ { hexcode: "1f637", shortcode: "face_with_medical_mask", svg: "", code: "mask", }, { hexcode: "1f912", shortcode: "face_with_thermometer", code: "fever", }, { hexcode: "1f915", shortcode: "face_with_head_bandage", code: "bandage", }, { hexcode: "1f92e", shortcode: "face_vomiting", code: "vomit", }, { hexcode: "1f927", shortcode: "sneezing_face", code: "tissue", }, { hexcode: "1f915", shortcode: "hot_face", code: "hot", }, { hexcode: "1f976", shortcode: "cold_face", code: "cold", }, { hexcode: "1f635", shortcode: "knocked_out_face", code: "crossed_eyes", }, { hexcode: "1f92f", shortcode: "exploding_head", code: "exploding", }, { hexcode: "2639", shortcode: "frowning_face", code: "sad", }, { hexcode: "1f925", shortcode: "lying_face", code: "long_nose", }, { hexcode: "1f62d", shortcode: "loudly_crying_face", code: "many_tears", }, { hexcode: "1f631", shortcode: "face_screaming_in_fear", code: "fear", }, { hexcode: "1f971", shortcode: "yawning_face", code: "tired", }, { hexcode: "1f624", shortcode: "face_with_steam_from_nose", code: "annoyed", }, ]; let face_costume = [ { hexcode: "1f921", shortcode: "clown_face", code: "clown", svg: "", }, { hexcode: "1f47b", shortcode: "ghost", code: "ghost", }, { hexcode: "1f436", shortcode: "dog_face", code: "dog", }, { hexcode: "1f638", shortcode: "grinning_cat_with_smiling_eyes", code: "happy_cat", }, { hexcode: "1f640", shortcode: "weary_cat", code: "scared_cat", }, { hexcode: "1f63f", shortcode: "crying_cat", code: "sad_cat", }, { hexcode: "1f648", shortcode: "see_no_evil_monkey", code: "monkey_no_see", }, { hexcode: "1f649", shortcode: "hear_no_evil_monkey", code: "monkey_no_hear", }, { hexcode: "1f64a", shortcode: "speak_no_evil_monkey", code: "monkey_no_talk", }, { hexcode: "1f477", shortcode: "construction_worker", code: "builder", }, { hexcode: "1f478", shortcode: "princess", code: "princess", }, { hexcode: "1f9d1_200d_1f692", shortcode: "firefighter", code: "firefighter", }, { hexcode: "1f9d9", shortcode: "mage", code: "mage", }, { hexcode: "1f9dc", shortcode: "merperson", code: "mermaid", }, { hexcode: "1f9da", shortcode: "fairy", code: "fairy", }, ]; let emotion = [ { hexcode: "1f48c", shortcode: "love_letter", code: "letter_heart", svg: "", }, { hexcode: "2764", shortcode: "red_heart", code: "red_heart", }, { hexcode: "1f495", shortcode: "two_hearts", code: "two_hearts", }, { hexcode: "1f48b", shortcode: "kiss_mark", code: "kiss", }, { hexcode: "1f4af", shortcode: "hundred_points", code: "hundred", }, { hexcode: "1f4a5", shortcode: "collision", code: "explosion", }, { hexcode: "1f4a6", shortcode: "sweat_droplets", code: "drops", }, { hexcode: "1f91d", shortcode: "handshake", code: "handshake", }, { hexcode: "1f590", shortcode: "hand_with_fingers_splayed", code: "hand_five_fingers", }, { hexcode: "270c", shortcode: "victory_hand", code: "hand_two_fingers", }, { hexcode: "1f44d", shortcode: "thumbs_up", code: "thumbs_up", }, { hexcode: "270a", shortcode: "raised_fist", code: "fist", }, { hexcode: "1f450", shortcode: "open_hands", code: "two_hands", }, { hexcode: "270d", shortcode: "writing_hand", code: "writing", }, { hexcode: "1f64f", shortcode: "folded_hands", code: "praying", }, ]; let body = [ { hexcode: "1f4aa", shortcode: "flexed_biceps", code: "arm", svg: "", }, { hexcode: "1f9b5", shortcode: "leg", code: "leg", }, { hexcode: "1f9b6", shortcode: "foot", code: "foot", }, { hexcode: "1f442", shortcode: "ear", code: "ear", }, { hexcode: "1f443", shortcode: "nose", code: "nose", }, { hexcode: "1f9e0", shortcode: "brain", code: "brain", }, { hexcode: "1f9b7", shortcode: "tooth", code: "tooth", }, { hexcode: "1f9b4", shortcode: "bone", code: "bone", }, { hexcode: "1f441", shortcode: "eye", code: "eye", }, { hexcode: "1f445", shortcode: "tongue", code: "tongue", }, { hexcode: "1f444", shortcode: "mouth", code: "mouth", }, { hexcode: "1f455", shortcode: "t_shirt", code: "shirt", }, { hexcode: "1f456", shortcode: "jeans", code: "pants", }, { hexcode: "1f457", shortcode: "dress", code: "dress", }, { hexcode: "1f45f", shortcode: "running_shoe", code: "shoe", }, ]; let sport = [ { hexcode: "1f93a", shortcode: "person_fencing", code: "fencing", svg: "", }, { hexcode: "1f3c7", shortcode: "horse_racing", code: "horse_riding", }, { hexcode: "26f7", shortcode: "skier", code: "ski", }, { hexcode: "1f6a3", shortcode: "person_rowing_boat", code: "rowing_boat", }, { hexcode: "1f3ca", shortcode: "person_swimming", code: "swim", }, { hexcode: "1f3c4", shortcode: "person_surfing", code: "surf", }, { hexcode: "1f3cb", shortcode: "person_lifting_weights", code: "gym", }, { hexcode: "1f93c", shortcode: "people_wrestling", code: "wrestling", }, { hexcode: "1f6b4", shortcode: "person_biking", code: "bike", }, { hexcode: "1fa82", shortcode: "parachute", code: "parachute", }, { hexcode: "26bd", shortcode: "soccer_ball", code: "football", }, { hexcode: "1f3c0", shortcode: "basketball", code: "basketball", }, { hexcode: "1f3be", shortcode: "tennis", code: "tennis", }, { hexcode: "1f3d3", shortcode: "ping_pong", code: "ping_pong", }, { hexcode: "1f94b", shortcode: "martial_arts_uniform", code: "martial", }, ]; let bigger_animal = [ { hexcode: "1f981", shortcode: "lion", code: "lion", svg: "", }, { hexcode: "1f406", shortcode: "leopard", code: "leopard", }, { hexcode: "1f434", shortcode: "horse_face", code: "horse", }, { hexcode: "1f993", shortcode: "zebra", code: "zebra", }, { hexcode: "1f416", shortcode: "pig", code: "pig", }, { hexcode: "1f410", shortcode: "goat", code: "goat", }, { hexcode: "1f411", shortcode: "ewe", code: "sheep", }, { hexcode: "1f42a", shortcode: "camel", code: "camel", }, { hexcode: "1f992", shortcode: "giraffe", code: "giraffe", }, { hexcode: "1f418", shortcode: "elephant", code: "elephant", }, { hexcode: "1f98f", shortcode: "rhinoceros", code: "rhinoceros", }, { hexcode: "1f9a9", shortcode: "flamingo", code: "flamingo", }, { hexcode: "1f433", shortcode: "spouting_whale", code: "whale", }, { hexcode: "1f42c", shortcode: "dolphin", code: "dolphin", }, { hexcode: "1f43b_200d_2744", shortcode: "polar_bear", code: "bear", }, ]; let smaller_animal = [ { hexcode: "1f413", shortcode: "rooster", code: "rooster", svg: "", }, { hexcode: "1f423", shortcode: "hatching_chick", code: "chick", }, { hexcode: "1f985", shortcode: "eagle", code: "eagle", }, { hexcode: "1f986", shortcode: "duck", code: "duck", }, { hexcode: "1f989", shortcode: "owl", code: "owl", }, { hexcode: "1f407", shortcode: "rabbit", code: "rabbit", }, { hexcode: "1f427", shortcode: "penguin", code: "penguin", }, { hexcode: "1f98e", shortcode: "lizard", code: "lizard", }, { hexcode: "1f422", shortcode: "turtle", code: "turtle", }, { hexcode: "1f40d", shortcode: "snake", code: "snake", }, { hexcode: "1f994", shortcode: "hedgehog", code: "hedgehog", }, { hexcode: "1f987", shortcode: "bat", code: "bat", }, { hexcode: "1f41f", shortcode: "fish", code: "fish", }, { hexcode: "1f41a", shortcode: "spiral_shell", code: "shell", }, { hexcode: "1f419", shortcode: "octopus", code: "octopus", }, ]; let plants = [ { hexcode: "1f40c", shortcode: "snail", code: "snail", svg: "", }, { hexcode: "1f98b", shortcode: "butterfly", code: "butterfly", }, { hexcode: "1f41c", shortcode: "ant", code: "ant", }, { hexcode: "1f41d", shortcode: "honeybee", code: "bee", }, { hexcode: "1f41e", shortcode: "lady_beetle", code: "beetle", }, { hexcode: "1f339", shortcode: "rose", code: "rose", }, { hexcode: "1f33b", shortcode: "sunflower", code: "sunflower", }, { hexcode: "1f332", shortcode: "evergreen_tree", code: "fir", }, { hexcode: "1f334", shortcode: "palm_tree", code: "palm_tree", }, { hexcode: "1f335", shortcode: "cactus", code: "cactus", }, { hexcode: "1f340", shortcode: "four_leaf_clover", code: "clover", }, { hexcode: "1fab4", shortcode: "potted_plant", code: "potted_plant", }, { hexcode: "1f490", shortcode: "bouquet", code: "bouquet", }, { hexcode: "1f342", shortcode: "fallen_leaf", code: "three_leaves", }, { hexcode: "1f344", shortcode: "mushroom", code: "mushroom", }, ]; let fruits = [ { hexcode: "1f347", shortcode: "grapes", code: "grapes", svg: "", }, { hexcode: "1f349", shortcode: "watermelon", code: "watermelon", }, { hexcode: "1f34b", shortcode: "lemon", code: "lemon", }, { hexcode: "1f34c", shortcode: "banana", code: "banana", }, { hexcode: "1f34d", shortcode: "pineapple", code: "pineapple", }, { hexcode: "1f34e", shortcode: "red_apple", code: "apple", }, { hexcode: "1f352", shortcode: "cherries", code: "cherries", }, { hexcode: "1f353", shortcode: "strawberry", code: "strawberry", }, { hexcode: "1fad0", shortcode: "blueberries", code: "three_blueberries", }, { hexcode: "1f95d", shortcode: "kiwi_fruit", code: "kiwi", }, { hexcode: "1f951", shortcode: "avocado", code: "avocado", }, { hexcode: "1f346", shortcode: "eggplant", code: "eggplant", }, { hexcode: "1f955", shortcode: "carrot", code: "carrot", }, { hexcode: "1f33d", shortcode: "ear_of_corn", code: "corn", }, { hexcode: "1f336", shortcode: "hot_pepper", code: "pepper", }, ]; let food = [ { hexcode: "1f950", shortcode: "croissant", code: "croissant", svg: "", }, { hexcode: "1f956", shortcode: "baguette_bread", code: "bread", }, { hexcode: "1f968", shortcode: "pretzel", code: "pretzel", }, { hexcode: "1f9c0", shortcode: "cheese_wedge", code: "cheese", }, { hexcode: "1f355", shortcode: "pizza", code: "pizza", }, { hexcode: "1f373", shortcode: "cooking", code: "egg", }, { hexcode: "1f366", shortcode: "soft_ice_cream", code: "ice_cream", }, { hexcode: "1f36a", shortcode: "cookie", code: "cookie", }, { hexcode: "1f370", shortcode: "shortcake", code: "cake", }, { hexcode: "1f36b", shortcode: "chocolate_bar", code: "chocolate", }, { hexcode: "1f36c", shortcode: "candy", code: "sweet", }, { hexcode: "2615", shortcode: "hot_beverage", code: "coffee", }, { hexcode: "1f37e", shortcode: "bottle_with_popping_cork", code: "champagne_bottle", }, { hexcode: "1f377", shortcode: "wine_glass", code: "glass_wine", }, { hexcode: "1f942", shortcode: "clinking_glasses", code: "two_glasses", }, ]; let travel = [ { hexcode: "1f3d4", shortcode: "snow_capped_mountain", code: "mountain", svg: "", }, { hexcode: "1f3d5", shortcode: "camping", code: "camping", }, { hexcode: "1f3d6", shortcode: "beach_with_umbrella", code: "beach", }, { hexcode: "1f9ed", shortcode: "compass", code: "compass", }, { hexcode: "1f3db", shortcode: "classical_building", code: "museum", }, { hexcode: "1f3e1", shortcode: "house_with_garden", code: "house", }, { hexcode: "26f2", shortcode: "fountain", code: "fountain", }, { hexcode: "1f3aa", shortcode: "circus_tent", code: "circus", }, { hexcode: "1f682", shortcode: "locomotive", code: "train", }, { hexcode: "1f695", shortcode: "taxi", code: "taxi", }, { hexcode: "1f3cd", shortcode: "motorcycle", code: "motorcycle", }, { hexcode: "26f5", shortcode: "sailboat", code: "sailboat", }, { hexcode: "2708", shortcode: "airplane", code: "airplane", }, { hexcode: "1f681", shortcode: "helicopter", code: "helicopter", }, { hexcode: "1f680", shortcode: "rocket", code: "rocket", }, ]; let sky = [ { hexcode: "2600", shortcode: "sun", code: "sun", svg: "", }, { hexcode: "1f319", shortcode: "crescent_moon", code: "moon", }, { hexcode: "1fa90", shortcode: "ringed_planet", code: "planet", }, { hexcode: "2b50", shortcode: "star", code: "star", }, { hexcode: "1f30c", shortcode: "milky_way", code: "night_sky", }, { hexcode: "1f327", shortcode: "cloud_with_rain", code: "cloud", }, { hexcode: "2614", shortcode: "umbrella_with_rain_drops", code: "umbrella", }, { hexcode: "26a1", shortcode: "high_voltage", code: "lightning", }, { hexcode: "2744", shortcode: "snowflake", code: "snowflake", }, { hexcode: "26c4", shortcode: "snowman_without_snow", code: "snowman", }, { hexcode: "1f321", shortcode: "thermometer", code: "thermometer", }, { hexcode: "1f525", shortcode: "fire", code: "fire", }, { hexcode: "1f388", shortcode: "balloon", code: "balloon", }, { hexcode: "1fa81", shortcode: "kite", code: "kite", }, { hexcode: "1f308", shortcode: "rainbow", code: "rainbow", }, ]; let play = [ { hexcode: "1f3b8", shortcode: "guitar", code: "guitar", svg: "", }, { hexcode: "1f3b7", shortcode: "saxophone", code: "saxophone", }, { hexcode: "1f3b5", shortcode: "musical_note", code: "music", }, { hexcode: "1f3a8", shortcode: "artist_palette", code: "painting", }, { hexcode: "265f", shortcode: "chess_pawn", code: "chess", }, { hexcode: "1f381", shortcode: "wrapped_gift", code: "gift", }, { hexcode: "1f3b2", shortcode: "game_die", code: "die", }, { hexcode: "1f9e9", shortcode: "puzzle_piece", code: "puzzle", }, { hexcode: "1f9f8", shortcode: "teddy_bear", code: "teddy_bear", }, { hexcode: "1f9e8", shortcode: "firecracker", code: "firecracker", }, { hexcode: "1f3af", shortcode: "bullseye", code: "bullseye", }, { hexcode: "1f6fc", shortcode: "roller_skate", code: "roller_skate", }, { hexcode: "1f6f4", shortcode: "kick_scooter", code: "kick_scooter", }, { hexcode: "2693", shortcode: "anchor", code: "anchor", }, { hexcode: "1f93f", shortcode: "diving_mask", code: "scuba_diving", }, ]; let house = [ { hexcode: "1f9f9", shortcode: "broom", code: "broom", svg: "", }, { hexcode: "1f50d", shortcode: "magnifying_glass_tilted_left", code: "magnifying_glass", }, { hexcode: "1f4a1", shortcode: "light_bulb", code: "bulb", }, { hexcode: "1f4da", shortcode: "books", code: "three_books", }, { hexcode: "1f4e6", shortcode: "package", code: "package", }, { hexcode: "270f", shortcode: "pencil", code: "pencil", }, { hexcode: "1f4cc", shortcode: "pushpin", code: "pin", }, { hexcode: "1f4ce", shortcode: "paperclip", code: "paperclip", }, { hexcode: "2702", shortcode: "scissors", code: "scissors", }, { hexcode: "1f511", shortcode: "key", code: "key", }, { hexcode: "1f513", shortcode: "unlocked", code: "lock", }, { hexcode: "1fa91", shortcode: "chair", code: "chair", }, { hexcode: "1f6c1", shortcode: "bathtub", code: "bathtub", }, { hexcode: "1f9fd", shortcode: "sponge", code: "sponge", }, { hexcode: "1f6d2", shortcode: "shopping_cart", code: "shopping_cart", }, ]; let svgs_loaded = Promise.resolve(false); /** Loads SVGs if they are not yet. TODO: This could probably be sped up by not awaiting sequentially. */ export async function load_svg() { if (await svgs_loaded) { return; } svgs_loaded = new Promise(async (resolve) => { face[0].svg = await import("./assets/pazzle/emoji_u1f600.svg?component"); face[1].svg = await import("./assets/pazzle/emoji_u1f602.svg?component"); face[2].svg = await import("./assets/pazzle/emoji_u1f607.svg?component"); face[3].svg = await import("./assets/pazzle/emoji_u1f970.svg?component"); face[4].svg = await import("./assets/pazzle/emoji_u1f60d.svg?component"); face[5].svg = await import("./assets/pazzle/emoji_u1f618.svg?component"); face[6].svg = await import("./assets/pazzle/emoji_u1f61d.svg?component"); face[7].svg = await import("./assets/pazzle/emoji_u1f917.svg?component"); face[8].svg = await import("./assets/pazzle/emoji_u1f92d.svg?component"); face[9].svg = await import("./assets/pazzle/emoji_u1f910.svg?component"); face[10].svg = await import("./assets/pazzle/emoji_u1f973.svg?component"); face[11].svg = await import("./assets/pazzle/emoji_u1f60e.svg?component"); face[12].svg = await import("./assets/pazzle/emoji_u1f644.svg?component"); face[13].svg = await import("./assets/pazzle/emoji_u1f9d0.svg?component"); face[14].svg = await import("./assets/pazzle/emoji_u1f634.svg?component"); /***************** FACE UNWELL ******************/ face_unwell[0].svg = await import( "./assets/pazzle/emoji_u1f637.svg?component" ); face_unwell[1].svg = await import( "./assets/pazzle/emoji_u1f912.svg?component" ); face_unwell[2].svg = await import( "./assets/pazzle/emoji_u1f915.svg?component" ); face_unwell[3].svg = await import( "./assets/pazzle/emoji_u1f92e.svg?component" ); face_unwell[4].svg = await import( "./assets/pazzle/emoji_u1f927.svg?component" ); face_unwell[5].svg = await import( "./assets/pazzle/emoji_u1f975.svg?component" ); face_unwell[6].svg = await import( "./assets/pazzle/emoji_u1f976.svg?component" ); face_unwell[7].svg = await import( "./assets/pazzle/emoji_u1f635.svg?component" ); face_unwell[8].svg = await import( "./assets/pazzle/emoji_u1f92f.svg?component" ); face_unwell[9].svg = await import( "./assets/pazzle/emoji_u2639.svg?component" ); face_unwell[10].svg = await import( "./assets/pazzle/emoji_u1f925.svg?component" ); face_unwell[11].svg = await import( "./assets/pazzle/emoji_u1f62d.svg?component" ); face_unwell[12].svg = await import( "./assets/pazzle/emoji_u1f631.svg?component" ); face_unwell[13].svg = await import( "./assets/pazzle/emoji_u1f971.svg?component" ); face_unwell[14].svg = await import( "./assets/pazzle/emoji_u1f624.svg?component" ); /****************** FACE COSTUME *****************/ face_costume[0].svg = await import( "./assets/pazzle/emoji_u1f921.svg?component" ); face_costume[1].svg = await import( "./assets/pazzle/emoji_u1f47b.svg?component" ); face_costume[2].svg = await import( "./assets/pazzle/emoji_u1f436.svg?component" ); face_costume[3].svg = await import( "./assets/pazzle/emoji_u1f638.svg?component" ); face_costume[4].svg = await import( "./assets/pazzle/emoji_u1f640.svg?component" ); face_costume[5].svg = await import( "./assets/pazzle/emoji_u1f63f.svg?component" ); face_costume[6].svg = await import( "./assets/pazzle/emoji_u1f648.svg?component" ); face_costume[7].svg = await import( "./assets/pazzle/emoji_u1f649.svg?component" ); face_costume[8].svg = await import( "./assets/pazzle/emoji_u1f64a.svg?component" ); face_costume[9].svg = await import( "./assets/pazzle/emoji_u1f477.svg?component" ); face_costume[10].svg = await import( "./assets/pazzle/emoji_u1f478.svg?component" ); face_costume[11].svg = await import( "./assets/pazzle/emoji_u1f9d1_200d_1f692.svg?component" ); face_costume[12].svg = await import( "./assets/pazzle/emoji_u1f9d9.svg?component" ); face_costume[13].svg = await import( "./assets/pazzle/emoji_u1f9dc.svg?component" ); face_costume[14].svg = await import( "./assets/pazzle/emoji_u1f9da.svg?component" ); /************** EMOTION *********************/ emotion[0].svg = await import("./assets/pazzle/emoji_u1f48c.svg?component"); emotion[1].svg = await import("./assets/pazzle/emoji_u2764.svg?component"); emotion[2].svg = await import("./assets/pazzle/emoji_u1f495.svg?component"); emotion[3].svg = await import("./assets/pazzle/emoji_u1f48b.svg?component"); emotion[4].svg = await import("./assets/pazzle/emoji_u1f4af.svg?component"); emotion[5].svg = await import("./assets/pazzle/emoji_u1f4a5.svg?component"); emotion[6].svg = await import("./assets/pazzle/emoji_u1f4a6.svg?component"); emotion[7].svg = await import("./assets/pazzle/emoji_u1f91d.svg?component"); emotion[8].svg = await import("./assets/pazzle/emoji_u1f590.svg?component"); emotion[9].svg = await import("./assets/pazzle/emoji_u270c.svg?component"); emotion[10].svg = await import( "./assets/pazzle/emoji_u1f44d.svg?component" ); emotion[11].svg = await import("./assets/pazzle/emoji_u270a.svg?component"); emotion[12].svg = await import( "./assets/pazzle/emoji_u1f450.svg?component" ); emotion[13].svg = await import("./assets/pazzle/emoji_u270d.svg?component"); emotion[14].svg = await import( "./assets/pazzle/emoji_u1f64f.svg?component" ); /************** BODY *********************/ body[0].svg = await import("./assets/pazzle/emoji_u1f4aa.svg?component"); body[1].svg = await import("./assets/pazzle/emoji_u1f9b5.svg?component"); body[2].svg = await import("./assets/pazzle/emoji_u1f9b6.svg?component"); body[3].svg = await import("./assets/pazzle/emoji_u1f442.svg?component"); body[4].svg = await import("./assets/pazzle/emoji_u1f443.svg?component"); body[5].svg = await import("./assets/pazzle/emoji_u1f9e0.svg?component"); body[6].svg = await import("./assets/pazzle/emoji_u1f9b7.svg?component"); body[7].svg = await import("./assets/pazzle/emoji_u1f9b4.svg?component"); body[8].svg = await import("./assets/pazzle/emoji_u1f441.svg?component"); body[9].svg = await import("./assets/pazzle/emoji_u1f445.svg?component"); body[10].svg = await import("./assets/pazzle/emoji_u1f444.svg?component"); body[11].svg = await import("./assets/pazzle/emoji_u1f455.svg?component"); body[12].svg = await import("./assets/pazzle/emoji_u1f456.svg?component"); body[13].svg = await import("./assets/pazzle/emoji_u1f457.svg?component"); body[14].svg = await import("./assets/pazzle/emoji_u1f45f.svg?component"); /************** SPORT *********************/ sport[0].svg = await import("./assets/pazzle/emoji_u1f93a.svg?component"); sport[1].svg = await import("./assets/pazzle/emoji_u1f3c7.svg?component"); sport[2].svg = await import("./assets/pazzle/emoji_u26f7.svg?component"); sport[3].svg = await import("./assets/pazzle/emoji_u1f6a3.svg?component"); sport[4].svg = await import("./assets/pazzle/emoji_u1f3ca.svg?component"); sport[5].svg = await import("./assets/pazzle/emoji_u1f3c4.svg?component"); sport[6].svg = await import("./assets/pazzle/emoji_u1f3cb.svg?component"); sport[7].svg = await import("./assets/pazzle/emoji_u1f93c.svg?component"); sport[8].svg = await import("./assets/pazzle/emoji_u1f6b4.svg?component"); sport[9].svg = await import("./assets/pazzle/emoji_u1fa82.svg?component"); sport[10].svg = await import("./assets/pazzle/emoji_u26bd.svg?component"); sport[11].svg = await import("./assets/pazzle/emoji_u1f3c0.svg?component"); sport[12].svg = await import("./assets/pazzle/emoji_u1f3be.svg?component"); sport[13].svg = await import("./assets/pazzle/emoji_u1f3d3.svg?component"); sport[14].svg = await import("./assets/pazzle/emoji_u1f94b.svg?component"); /************** BIGGER ANIMAL *********************/ bigger_animal[0].svg = await import( "./assets/pazzle/emoji_u1f981.svg?component" ); bigger_animal[1].svg = await import( "./assets/pazzle/emoji_u1f406.svg?component" ); bigger_animal[2].svg = await import( "./assets/pazzle/emoji_u1f434.svg?component" ); bigger_animal[3].svg = await import( "./assets/pazzle/emoji_u1f993.svg?component" ); bigger_animal[4].svg = await import( "./assets/pazzle/emoji_u1f416.svg?component" ); bigger_animal[5].svg = await import( "./assets/pazzle/emoji_u1f410.svg?component" ); bigger_animal[6].svg = await import( "./assets/pazzle/emoji_u1f411.svg?component" ); bigger_animal[7].svg = await import( "./assets/pazzle/emoji_u1f42a.svg?component" ); bigger_animal[8].svg = await import( "./assets/pazzle/emoji_u1f992.svg?component" ); bigger_animal[9].svg = await import( "./assets/pazzle/emoji_u1f418.svg?component" ); bigger_animal[10].svg = await import( "./assets/pazzle/emoji_u1f98f.svg?component" ); bigger_animal[11].svg = await import( "./assets/pazzle/emoji_u1f9a9.svg?component" ); bigger_animal[12].svg = await import( "./assets/pazzle/emoji_u1f433.svg?component" ); bigger_animal[13].svg = await import( "./assets/pazzle/emoji_u1f42c.svg?component" ); bigger_animal[14].svg = await import( "./assets/pazzle/emoji_u1f43b_200d_2744.svg?component" ); /************** SMALLER ANIMAL *********************/ smaller_animal[0].svg = await import( "./assets/pazzle/emoji_u1f413.svg?component" ); smaller_animal[1].svg = await import( "./assets/pazzle/emoji_u1f423.svg?component" ); smaller_animal[2].svg = await import( "./assets/pazzle/emoji_u1f985.svg?component" ); smaller_animal[3].svg = await import( "./assets/pazzle/emoji_u1f986.svg?component" ); smaller_animal[4].svg = await import( "./assets/pazzle/emoji_u1f989.svg?component" ); smaller_animal[5].svg = await import( "./assets/pazzle/emoji_u1f407.svg?component" ); smaller_animal[6].svg = await import( "./assets/pazzle/emoji_u1f427.svg?component" ); smaller_animal[7].svg = await import( "./assets/pazzle/emoji_u1f98e.svg?component" ); smaller_animal[8].svg = await import( "./assets/pazzle/emoji_u1f422.svg?component" ); smaller_animal[9].svg = await import( "./assets/pazzle/emoji_u1f40d.svg?component" ); smaller_animal[10].svg = await import( "./assets/pazzle/emoji_u1f994.svg?component" ); smaller_animal[11].svg = await import( "./assets/pazzle/emoji_u1f987.svg?component" ); smaller_animal[12].svg = await import( "./assets/pazzle/emoji_u1f41f.svg?component" ); smaller_animal[13].svg = await import( "./assets/pazzle/emoji_u1f41a.svg?component" ); smaller_animal[14].svg = await import( "./assets/pazzle/emoji_u1f419.svg?component" ); /************** PLANTS *********************/ plants[0].svg = await import("./assets/pazzle/emoji_u1f40c.svg?component"); plants[1].svg = await import("./assets/pazzle/emoji_u1f98b.svg?component"); plants[2].svg = await import("./assets/pazzle/emoji_u1f41c.svg?component"); plants[3].svg = await import("./assets/pazzle/emoji_u1f41d.svg?component"); plants[4].svg = await import("./assets/pazzle/emoji_u1f41e.svg?component"); plants[5].svg = await import("./assets/pazzle/emoji_u1f339.svg?component"); plants[6].svg = await import("./assets/pazzle/emoji_u1f33b.svg?component"); plants[7].svg = await import("./assets/pazzle/emoji_u1f332.svg?component"); plants[8].svg = await import("./assets/pazzle/emoji_u1f334.svg?component"); plants[9].svg = await import("./assets/pazzle/emoji_u1f335.svg?component"); plants[10].svg = await import("./assets/pazzle/emoji_u1f340.svg?component"); plants[11].svg = await import("./assets/pazzle/emoji_u1fab4.svg?component"); plants[12].svg = await import("./assets/pazzle/emoji_u1f490.svg?component"); plants[13].svg = await import("./assets/pazzle/emoji_u1f342.svg?component"); plants[14].svg = await import("./assets/pazzle/emoji_u1f344.svg?component"); /************** FRUITS *********************/ fruits[0].svg = await import("./assets/pazzle/emoji_u1f347.svg?component"); fruits[1].svg = await import("./assets/pazzle/emoji_u1f349.svg?component"); fruits[2].svg = await import("./assets/pazzle/emoji_u1f34b.svg?component"); fruits[3].svg = await import("./assets/pazzle/emoji_u1f34c.svg?component"); fruits[4].svg = await import("./assets/pazzle/emoji_u1f34d.svg?component"); fruits[5].svg = await import("./assets/pazzle/emoji_u1f34e.svg?component"); fruits[6].svg = await import("./assets/pazzle/emoji_u1f352.svg?component"); fruits[7].svg = await import("./assets/pazzle/emoji_u1f353.svg?component"); fruits[8].svg = await import("./assets/pazzle/emoji_u1fad0.svg?component"); fruits[9].svg = await import("./assets/pazzle/emoji_u1f95d.svg?component"); fruits[10].svg = await import("./assets/pazzle/emoji_u1f951.svg?component"); fruits[11].svg = await import("./assets/pazzle/emoji_u1f346.svg?component"); fruits[12].svg = await import("./assets/pazzle/emoji_u1f955.svg?component"); fruits[13].svg = await import("./assets/pazzle/emoji_u1f33d.svg?component"); fruits[14].svg = await import("./assets/pazzle/emoji_u1f336.svg?component"); /************** FOOD *********************/ food[0].svg = await import("./assets/pazzle/emoji_u1f950.svg?component"); food[1].svg = await import("./assets/pazzle/emoji_u1f956.svg?component"); food[2].svg = await import("./assets/pazzle/emoji_u1f968.svg?component"); food[3].svg = await import("./assets/pazzle/emoji_u1f9c0.svg?component"); food[4].svg = await import("./assets/pazzle/emoji_u1f355.svg?component"); food[5].svg = await import("./assets/pazzle/emoji_u1f373.svg?component"); food[6].svg = await import("./assets/pazzle/emoji_u1f366.svg?component"); food[7].svg = await import("./assets/pazzle/emoji_u1f36a.svg?component"); food[8].svg = await import("./assets/pazzle/emoji_u1f370.svg?component"); food[9].svg = await import("./assets/pazzle/emoji_u1f36b.svg?component"); food[10].svg = await import("./assets/pazzle/emoji_u1f36c.svg?component"); food[11].svg = await import("./assets/pazzle/emoji_u2615.svg?component"); food[12].svg = await import("./assets/pazzle/emoji_u1f37e.svg?component"); food[13].svg = await import("./assets/pazzle/emoji_u1f377.svg?component"); food[14].svg = await import("./assets/pazzle/emoji_u1f942.svg?component"); /************** TRAVEL *********************/ travel[0].svg = await import("./assets/pazzle/emoji_u1f3d4.svg?component"); travel[1].svg = await import("./assets/pazzle/emoji_u1f3d5.svg?component"); travel[2].svg = await import("./assets/pazzle/emoji_u1f3d6.svg?component"); travel[3].svg = await import("./assets/pazzle/emoji_u1f9ed.svg?component"); travel[4].svg = await import("./assets/pazzle/emoji_u1f3db.svg?component"); travel[5].svg = await import("./assets/pazzle/emoji_u1f3e1.svg?component"); travel[6].svg = await import("./assets/pazzle/emoji_u26f2.svg?component"); travel[7].svg = await import("./assets/pazzle/emoji_u1f3aa.svg?component"); travel[8].svg = await import("./assets/pazzle/emoji_u1f682.svg?component"); travel[9].svg = await import("./assets/pazzle/emoji_u1f695.svg?component"); travel[10].svg = await import("./assets/pazzle/emoji_u1f3cd.svg?component"); travel[11].svg = await import("./assets/pazzle/emoji_u26f5.svg?component"); travel[12].svg = await import("./assets/pazzle/emoji_u2708.svg?component"); travel[13].svg = await import("./assets/pazzle/emoji_u1f681.svg?component"); travel[14].svg = await import("./assets/pazzle/emoji_u1f680.svg?component"); /************** SKY *********************/ sky[0].svg = await import("./assets/pazzle/emoji_u2600.svg?component"); sky[1].svg = await import("./assets/pazzle/emoji_u1f319.svg?component"); sky[2].svg = await import("./assets/pazzle/emoji_u1fa90.svg?component"); sky[3].svg = await import("./assets/pazzle/emoji_u2b50.svg?component"); sky[4].svg = await import("./assets/pazzle/emoji_u1f30c.svg?component"); sky[5].svg = await import("./assets/pazzle/emoji_u1f327.svg?component"); sky[6].svg = await import("./assets/pazzle/emoji_u2614.svg?component"); sky[7].svg = await import("./assets/pazzle/emoji_u26a1.svg?component"); sky[8].svg = await import("./assets/pazzle/emoji_u2744.svg?component"); sky[9].svg = await import("./assets/pazzle/emoji_u26c4.svg?component"); sky[10].svg = await import("./assets/pazzle/emoji_u1f321.svg?component"); sky[11].svg = await import("./assets/pazzle/emoji_u1f525.svg?component"); sky[12].svg = await import("./assets/pazzle/emoji_u1f388.svg?component"); sky[13].svg = await import("./assets/pazzle/emoji_u1fa81.svg?component"); sky[14].svg = await import("./assets/pazzle/emoji_u1f308.svg?component"); /************** PLAY *********************/ play[0].svg = await import("./assets/pazzle/emoji_u1f3b8.svg?component"); play[1].svg = await import("./assets/pazzle/emoji_u1f3b7.svg?component"); play[2].svg = await import("./assets/pazzle/emoji_u1f3b5.svg?component"); play[3].svg = await import("./assets/pazzle/emoji_u1f3a8.svg?component"); play[4].svg = await import("./assets/pazzle/emoji_u265f.svg?component"); play[5].svg = await import("./assets/pazzle/emoji_u1f381.svg?component"); play[6].svg = await import("./assets/pazzle/emoji_u1f3b2.svg?component"); play[7].svg = await import("./assets/pazzle/emoji_u1f9e9.svg?component"); play[8].svg = await import("./assets/pazzle/emoji_u1f9f8.svg?component"); play[9].svg = await import("./assets/pazzle/emoji_u1f9e8.svg?component"); play[10].svg = await import("./assets/pazzle/emoji_u1f3af.svg?component"); play[11].svg = await import("./assets/pazzle/emoji_u1f6fc.svg?component"); play[12].svg = await import("./assets/pazzle/emoji_u1f6f4.svg?component"); play[13].svg = await import("./assets/pazzle/emoji_u2693.svg?component"); play[14].svg = await import("./assets/pazzle/emoji_u1f93f.svg?component"); /************** HOUSE *********************/ house[0].svg = await import("./assets/pazzle/emoji_u1f9f9.svg?component"); house[1].svg = await import("./assets/pazzle/emoji_u1f50d.svg?component"); house[2].svg = await import("./assets/pazzle/emoji_u1f4a1.svg?component"); house[3].svg = await import("./assets/pazzle/emoji_u1f4da.svg?component"); house[4].svg = await import("./assets/pazzle/emoji_u1f4e6.svg?component"); house[5].svg = await import("./assets/pazzle/emoji_u270f.svg?component"); house[6].svg = await import("./assets/pazzle/emoji_u1f4cc.svg?component"); house[7].svg = await import("./assets/pazzle/emoji_u1f4ce.svg?component"); house[8].svg = await import("./assets/pazzle/emoji_u2702.svg?component"); house[9].svg = await import("./assets/pazzle/emoji_u1f511.svg?component"); house[10].svg = await import("./assets/pazzle/emoji_u1f513.svg?component"); house[11].svg = await import("./assets/pazzle/emoji_u1fa91.svg?component"); house[12].svg = await import("./assets/pazzle/emoji_u1f6c1.svg?component"); house[13].svg = await import("./assets/pazzle/emoji_u1f9fd.svg?component"); house[14].svg = await import("./assets/pazzle/emoji_u1f6d2.svg?component"); resolve(true); }); } export const emojis: Record = { face, face_unwell, face_costume, emotion, body, sport, bigger_animal, smaller_animal, plants, fruits, food, travel, sky, play, house, }; export const emoji_cat = [ "face", "sport", "bigger_animal", "smaller_animal", "plants", "fruits", "food", "travel", "sky", "body", "face_unwell", "house", "play", "face_costume", "emotion", ]; export function display_pazzle(pazzle: number[]) { let res = []; for (const emoji of pazzle) { let cat = (emoji & 240) >> 4; let idx = emoji & 15; res.push(emoji_cat[cat] + ": " + emojis[emoji_cat[cat]][idx].code); } return res; } export function emojis_from_pazzle_ids(pazzle: number[]) { return pazzle.map((emoji_id) => { const cat_id = (emoji_id & 240) >> 4; const cat_name = emoji_cat[cat_id]; let idx = emoji_id & 15; return { cat: cat_name, ...emojis[cat_name][idx] }; }); } /* import en_annotations from "./locales/en_annotations.json"; import de_annotations from "./locales/de_annotations.json"; import fr_annotations from "./locales/fr_annotations.json"; import ru_annotations from "./locales/ru_annotations.json"; import es_annotations from "./locales/es_annotations.json"; import it_annotations from "./locales/it_annotations.json"; import zh_annotations from "./locales/zh_annotations.json"; import pt_annotations from "./locales/pt_annotations.json"; function i18n_for_emoji(annotations, emoji: Emoji) { const char = String.fromCodePoint(Number.parseInt(emoji.hexcode, 16)); return annotations.annotations.annotations[char]?.tts[0]; } function match_codes(annotations, emojis: Record) { const not_found = []; const map: Record = {}; for (const cat in emojis) { for (const emoji of emojis[cat]) { const name = i18n_for_emoji(annotations, emoji); if (!name) { not_found.push(emoji); } else { map[emoji.code] = name; } } } if (not_found.length > 0) { console.log("Not found: ", not_found); } return map; } export function to_debug() { const en = match_codes(en_annotations, emojis); const de = match_codes(de_annotations, emojis); const fr = match_codes(fr_annotations, emojis); const ru = match_codes(ru_annotations, emojis); const es = match_codes(es_annotations, emojis); const it = match_codes(it_annotations, emojis); const zh = match_codes(zh_annotations, emojis); const pt = match_codes(pt_annotations, emojis); console.debug("en", JSON.stringify(en)); console.debug("de", JSON.stringify(de)); console.debug("fr", JSON.stringify(fr)); console.debug("ru", JSON.stringify(ru)); console.debug("es", JSON.stringify(es)); console.debug("it", JSON.stringify(it)); console.debug("zh", JSON.stringify(zh)); console.debug("pt", JSON.stringify(pt)); } */