(function () { if (window.__fdIconPickerRegistered) return; window.__fdIconPickerRegistered = true; var TONES = ['', '\u{1F3FB}', '\u{1F3FC}', '\u{1F3FD}', '\u{1F3FE}', '\u{1F3FF}']; var TONEABLE = {}; ['๐Ÿ‘‹','๐Ÿคš','๐Ÿ–๏ธ','โœ‹','๐Ÿ––','๐Ÿ‘Œ','๐ŸคŒ','๐Ÿค','โœŒ๏ธ','๐Ÿคž','๐ŸคŸ','๐Ÿค˜','๐Ÿค™','๐Ÿ‘ˆ','๐Ÿ‘‰','๐Ÿ‘†','๐Ÿ‘‡','โ˜๏ธ','๐Ÿ‘','๐Ÿ‘Ž','โœŠ','๐Ÿ‘Š','๐Ÿค›','๐Ÿคœ','๐Ÿ‘','๐Ÿ™Œ','๐Ÿซถ','๐Ÿ‘','๐Ÿคฒ','๐Ÿค','๐Ÿ™','๐Ÿ’ช','๐Ÿฆต','๐Ÿฆถ','๐Ÿ‘‚','๐Ÿ‘ƒ','๐Ÿ‘ถ','๐Ÿง’','๐Ÿ‘ฆ','๐Ÿ‘ง','๐Ÿง‘','๐Ÿ‘จ','๐Ÿ‘ฉ','๐Ÿง“','๐Ÿ‘ด','๐Ÿ‘ต','๐Ÿ™','๐Ÿ™Ž','๐Ÿ™…','๐Ÿ™†','๐Ÿ’','๐Ÿ™‹','๐Ÿง','๐Ÿ™‡','๐Ÿคฆ','๐Ÿคท','๐Ÿ‘ฎ','๐Ÿ•ต๏ธ','๐Ÿ’‚','๐Ÿ‘ท','๐Ÿคด','๐Ÿ‘ธ','๐Ÿ‘ณ','๐Ÿ‘ฒ','๐Ÿง•','๐Ÿคต','๐Ÿ‘ฐ','๐Ÿคฐ','๐Ÿคฑ','๐Ÿ‘ผ','๐ŸŽ…','๐Ÿคถ','๐Ÿฆธ','๐Ÿฆน','๐Ÿง™','๐Ÿงš','๐Ÿง›','๐Ÿงœ','๐Ÿง','๐Ÿ’†','๐Ÿ’‡','๐Ÿšถ','๐Ÿง','๐ŸงŽ','๐Ÿƒ','๐Ÿ’ƒ','๐Ÿ•บ','๐Ÿ‘ฏ','๐Ÿง–','๐Ÿง—','๐Ÿ‡','โ›ท๏ธ','๐Ÿ‚','๐ŸŒ๏ธ','๐Ÿ„','๐Ÿšฃ','๐ŸŠ','โ›น๏ธ','๐Ÿ‹๏ธ','๐Ÿšด','๐Ÿšต','๐Ÿคธ','๐Ÿคผ','๐Ÿคฝ','๐Ÿคพ','๐Ÿคน','๐Ÿง˜','๐Ÿ›€','๐Ÿ›Œ'].forEach(function (e) { TONEABLE[e] = true; }); var CATS = [ { id: 'people', label: 'People', items: [ ['๐Ÿ˜€','grinning face smile happy'],['๐Ÿ˜ƒ','smiley happy'],['๐Ÿ˜„','smile laugh happy'],['๐Ÿ˜','grin happy'],['๐Ÿ˜†','laughing happy'],['๐Ÿ˜…','sweat smile'],['๐Ÿคฃ','rofl rolling laugh'],['๐Ÿ˜‚','joy tears laugh'],['๐Ÿ™‚','slight smile'],['๐Ÿ™ƒ','upside down'],['๐Ÿ˜‰','wink'],['๐Ÿ˜Š','blush smile happy'],['๐Ÿ˜‡','innocent halo angel'],['๐Ÿฅฐ','love hearts'],['๐Ÿ˜','heart eyes love'],['๐Ÿคฉ','star struck wow'],['๐Ÿ˜˜','kiss love'],['๐Ÿ˜—','kissing'],['๐Ÿ˜š','kissing'],['๐Ÿ˜™','kissing'],['๐Ÿฅฒ','tear smile happy'],['๐Ÿ˜‹','yum tasty'],['๐Ÿ˜›','tongue'],['๐Ÿ˜œ','wink tongue'],['๐Ÿคช','crazy zany'],['๐Ÿ˜','tongue'],['๐Ÿค‘','money rich'],['๐Ÿค—','hug'],['๐Ÿคญ','giggle'],['๐Ÿคซ','shush quiet'],['๐Ÿค”','thinking'],['๐Ÿค','zip quiet'],['๐Ÿคจ','raised eyebrow'],['๐Ÿ˜','neutral'],['๐Ÿ˜‘','expressionless'],['๐Ÿ˜ถ','no mouth'],['๐Ÿ˜','smirk'],['๐Ÿ˜’','unamused'],['๐Ÿ™„','roll eyes'],['๐Ÿ˜ฌ','grimace'],['๐Ÿคฅ','lying'],['๐Ÿ˜Œ','relieved'],['๐Ÿ˜”','pensive sad'],['๐Ÿ˜ช','sleepy'],['๐Ÿคค','drool'],['๐Ÿ˜ด','sleeping'],['๐Ÿ˜ท','mask sick'],['๐Ÿค’','sick thermometer'],['๐Ÿค•','hurt bandage'],['๐Ÿคข','nauseated'],['๐Ÿคฎ','vomit'],['๐Ÿคง','sneeze'],['๐Ÿฅต','hot'],['๐Ÿฅถ','cold'],['๐Ÿฅด','woozy'],['๐Ÿ˜ต','dizzy'],['๐Ÿคฏ','mind blown'],['๐Ÿค ','cowboy'],['๐Ÿฅณ','party'],['๐Ÿฅบ','pleading'],['๐Ÿ˜Ž','cool sunglasses'],['๐Ÿค“','nerd'],['๐Ÿง','monocle'],['๐Ÿ˜•','confused'],['๐Ÿ˜Ÿ','worried'],['๐Ÿ™','frown'],['โ˜น๏ธ','frown sad'],['๐Ÿ˜ฎ','surprised'],['๐Ÿ˜ฏ','hushed'],['๐Ÿ˜ฒ','astonished'],['๐Ÿ˜ณ','flushed'],['๐Ÿ˜จ','fearful'],['๐Ÿ˜ฐ','anxious'],['๐Ÿ˜ฅ','sad'],['๐Ÿ˜ข','cry'],['๐Ÿ˜ญ','sob cry'],['๐Ÿ˜ฑ','scream fear'],['๐Ÿ˜–','confounded'],['๐Ÿ˜ฃ','persevere'],['๐Ÿ˜ž','disappointed'],['๐Ÿ˜“','sweat'],['๐Ÿ˜ฉ','weary'],['๐Ÿ˜ซ','tired'],['๐Ÿฅฑ','yawn'],['๐Ÿ˜ค','triumph'],['๐Ÿ˜ก','angry'],['๐Ÿ˜ ','rage'],['๐Ÿคฌ','cursing'],['๐Ÿ˜ˆ','devil'],['๐Ÿ‘ฟ','imp'],['๐Ÿ’€','skull'],['๐Ÿ’ฉ','poop'],['๐Ÿคก','clown'],['๐Ÿ‘ป','ghost'],['๐Ÿ‘ฝ','alien'],['๐Ÿค–','robot'],['๐Ÿ˜บ','cat'],['๐Ÿ™ˆ','monkey see'],['๐Ÿ™‰','monkey hear'],['๐Ÿ™Š','monkey speak'],['๐Ÿ‘‹','wave hand'],['๐Ÿคš','raised hand'],['๐Ÿ–๏ธ','hand'],['โœ‹','raised hand'],['๐Ÿ––','vulcan'],['๐Ÿ‘Œ','ok'],['๐ŸคŒ','pinched'],['๐Ÿค','pinch'],['โœŒ๏ธ','peace'],['๐Ÿคž','cross fingers luck'],['๐ŸคŸ','love you'],['๐Ÿค˜','rock'],['๐Ÿค™','call me'],['๐Ÿ‘ˆ','point left'],['๐Ÿ‘‰','point right'],['๐Ÿ‘†','point up'],['๐Ÿ‘‡','point down'],['โ˜๏ธ','point up'],['๐Ÿ‘','thumbs up like'],['๐Ÿ‘Ž','thumbs down dislike'],['โœŠ','fist'],['๐Ÿ‘Š','fist bump'],['๐Ÿค›','fist'],['๐Ÿคœ','fist'],['๐Ÿ‘','clap'],['๐Ÿ™Œ','raise hands celebrate'],['๐Ÿซถ','heart hands'],['๐Ÿ‘','open hands'],['๐Ÿคฒ','palms'],['๐Ÿค','handshake'],['๐Ÿ™','pray thanks'],['๐Ÿ’ช','muscle strong'],['๐Ÿ‘‚','ear'],['๐Ÿ‘ƒ','nose'],['๐Ÿ‘€','eyes look'],['๐Ÿ‘๏ธ','eye'],['๐Ÿง ','brain'],['๐Ÿ‘ถ','baby'],['๐Ÿง’','child'],['๐Ÿ‘ฆ','boy'],['๐Ÿ‘ง','girl'],['๐Ÿง‘','person'],['๐Ÿ‘จ','man'],['๐Ÿ‘ฉ','woman'],['๐Ÿง“','older person'],['๐Ÿ‘ด','old man'],['๐Ÿ‘ต','old woman'],['๐Ÿ‘ฎ','police'],['๐Ÿ•ต๏ธ','detective'],['๐Ÿ’‚','guard'],['๐Ÿ‘ท','worker'],['๐Ÿคด','prince'],['๐Ÿ‘ธ','princess'],['๐Ÿ‘ณ','turban'],['๐Ÿง•','hijab'],['๐Ÿคต','tuxedo'],['๐Ÿ‘ฐ','bride'],['๐Ÿคฐ','pregnant'],['๐Ÿคฑ','breastfeeding'],['๐Ÿ‘ผ','angel'],['๐ŸŽ…','santa'],['๐Ÿคถ','mrs claus'],['๐Ÿฆธ','superhero'],['๐Ÿฆน','supervillain'],['๐Ÿง™','mage wizard'],['๐Ÿงš','fairy'],['๐Ÿง›','vampire'],['๐Ÿงœ','mermaid'],['๐Ÿง','elf'],['๐Ÿ’†','massage'],['๐Ÿ’‡','haircut'],['๐Ÿšถ','walk'],['๐Ÿƒ','run'],['๐Ÿ’ƒ','dance'],['๐Ÿ•บ','dance'],['๐Ÿ‘ฏ','people dancing'],['๐Ÿง—','climb'],['๐Ÿ‡','horse race'],['๐Ÿ‚','snowboard'],['๐Ÿ„','surf'],['๐Ÿšฃ','row'],['๐ŸŠ','swim'],['๐Ÿšด','bike'],['๐Ÿšต','mountain bike'],['๐Ÿคธ','cartwheel'],['๐Ÿคผ','wrestle'],['๐Ÿคฝ','water polo'],['๐Ÿคพ','handball'],['๐Ÿคน','juggle'],['๐Ÿง˜','meditate yoga'],['๐Ÿ›Œ','sleeping bed'],['๐Ÿ’‹','kiss mark'],['๐Ÿ’Œ','love letter'],['โค๏ธ','heart love red'],['๐Ÿงก','orange heart'],['๐Ÿ’›','yellow heart'],['๐Ÿ’š','green heart'],['๐Ÿ’™','blue heart'],['๐Ÿ’œ','purple heart'],['๐Ÿ–ค','black heart'],['๐Ÿค','white heart'],['๐ŸคŽ','brown heart'],['๐Ÿ’”','broken heart'],['โฃ๏ธ','heart exclamation'],['๐Ÿ’•','two hearts'],['๐Ÿ’ž','revolving hearts'],['๐Ÿ’“','beating heart'],['๐Ÿ’—','growing heart'],['๐Ÿ’–','sparkling heart'],['๐Ÿ’˜','cupid heart'],['๐Ÿ’','heart gift'],['โœจ','sparkles'],['โญ','star'],['๐ŸŒŸ','glowing star'],['๐Ÿ’ซ','dizzy star'],['๐Ÿ’ฅ','boom'],['๐Ÿ’ฏ','hundred perfect'] ]}, { id: 'nature', label: 'Nature', items: [ ['๐Ÿถ','dog'],['๐Ÿฑ','cat'],['๐Ÿญ','mouse'],['๐Ÿน','hamster'],['๐Ÿฐ','rabbit'],['๐ŸฆŠ','fox'],['๐Ÿป','bear'],['๐Ÿผ','panda'],['๐Ÿจ','koala'],['๐Ÿฏ','tiger'],['๐Ÿฆ','lion'],['๐Ÿฎ','cow'],['๐Ÿท','pig'],['๐Ÿธ','frog'],['๐Ÿต','monkey'],['๐Ÿ”','chicken'],['๐Ÿง','penguin'],['๐Ÿฆ','bird'],['๐Ÿค','chick'],['๐Ÿฆ†','duck'],['๐Ÿฆ…','eagle'],['๐Ÿฆ‰','owl'],['๐Ÿฆ‡','bat'],['๐Ÿบ','wolf'],['๐Ÿ—','boar'],['๐Ÿด','horse'],['๐Ÿฆ„','unicorn'],['๐Ÿ','bee'],['๐Ÿ›','bug'],['๐Ÿฆ‹','butterfly'],['๐ŸŒ','snail'],['๐Ÿž','ladybug'],['๐Ÿœ','ant'],['๐Ÿฆ—','cricket'],['๐Ÿ•ท๏ธ','spider'],['๐Ÿฆ‚','scorpion'],['๐Ÿข','turtle'],['๐Ÿ','snake'],['๐ŸฆŽ','lizard'],['๐Ÿฆ–','dinosaur'],['๐Ÿ™','octopus'],['๐Ÿฆ‘','squid'],['๐Ÿฆ','shrimp'],['๐Ÿฆ€','crab'],['๐Ÿก','fish'],['๐Ÿ ','fish'],['๐ŸŸ','fish'],['๐Ÿฌ','dolphin'],['๐Ÿณ','whale'],['๐Ÿฆˆ','shark'],['๐ŸŠ','crocodile'],['๐ŸŒต','cactus'],['๐ŸŽ„','tree christmas'],['๐ŸŒฒ','tree evergreen'],['๐ŸŒณ','tree'],['๐ŸŒด','palm tree'],['๐ŸŒฑ','seedling plant'],['๐ŸŒฟ','herb leaf'],['โ˜˜๏ธ','shamrock'],['๐Ÿ€','clover luck'],['๐ŸŽ','bamboo'],['๐ŸŒพ','wheat'],['๐ŸŒท','tulip flower'],['๐ŸŒน','rose flower'],['๐ŸŒบ','hibiscus flower'],['๐ŸŒธ','cherry blossom'],['๐ŸŒผ','flower'],['๐ŸŒป','sunflower'],['๐ŸŒž','sun'],['๐ŸŒ','moon'],['๐ŸŒš','moon'],['๐ŸŒ™','moon crescent'],['โญ','star'],['๐ŸŒŸ','star'],['โ˜€๏ธ','sun sunny'],['โ›…','cloud sun'],['โ˜๏ธ','cloud'],['๐ŸŒง๏ธ','rain'],['โ›ˆ๏ธ','storm'],['๐ŸŒฉ๏ธ','lightning'],['โ„๏ธ','snowflake'],['โ˜ƒ๏ธ','snowman'],['โ›„','snowman'],['๐Ÿ”ฅ','fire'],['๐Ÿ’ง','droplet water'],['๐ŸŒŠ','wave water'],['๐ŸŒˆ','rainbow'],['๐ŸŒ','earth globe'],['๐ŸŒŽ','earth globe'],['๐ŸŒ','earth globe'] ]}, { id: 'food', label: 'Food', items: [ ['๐Ÿ','apple green'],['๐ŸŽ','apple red'],['๐Ÿ','pear'],['๐ŸŠ','orange tangerine'],['๐Ÿ‹','lemon'],['๐ŸŒ','banana'],['๐Ÿ‰','watermelon'],['๐Ÿ‡','grapes'],['๐Ÿ“','strawberry'],['๐Ÿซ','blueberry'],['๐Ÿˆ','melon'],['๐Ÿ’','cherry'],['๐Ÿ‘','peach'],['๐Ÿฅญ','mango'],['๐Ÿ','pineapple'],['๐Ÿฅฅ','coconut'],['๐Ÿฅ','kiwi'],['๐Ÿ…','tomato'],['๐Ÿ†','eggplant'],['๐Ÿฅ‘','avocado'],['๐Ÿฅฆ','broccoli'],['๐Ÿฅฌ','lettuce'],['๐Ÿฅ’','cucumber'],['๐ŸŒถ๏ธ','pepper hot'],['๐ŸŒฝ','corn'],['๐Ÿฅ•','carrot'],['๐Ÿง„','garlic'],['๐Ÿง…','onion'],['๐Ÿฅ”','potato'],['๐Ÿ ','sweet potato'],['๐Ÿฅ','croissant'],['๐Ÿฅฏ','bagel'],['๐Ÿž','bread'],['๐Ÿฅ–','baguette'],['๐Ÿง€','cheese'],['๐Ÿฅš','egg'],['๐Ÿณ','cooking egg'],['๐Ÿฅ“','bacon'],['๐Ÿฅฉ','meat steak'],['๐Ÿ—','chicken leg'],['๐Ÿ–','meat'],['๐ŸŒญ','hot dog'],['๐Ÿ”','burger'],['๐ŸŸ','fries'],['๐Ÿ•','pizza'],['๐Ÿฅช','sandwich'],['๐Ÿฅ™','pita'],['๐ŸŒฎ','taco'],['๐ŸŒฏ','burrito'],['๐Ÿฅ—','salad'],['๐Ÿ','pasta spaghetti'],['๐Ÿœ','ramen noodles'],['๐Ÿฒ','stew'],['๐Ÿ›','curry rice'],['๐Ÿฃ','sushi'],['๐Ÿฑ','bento'],['๐ŸฅŸ','dumpling'],['๐Ÿค','shrimp fried'],['๐Ÿ™','rice ball'],['๐Ÿš','rice'],['๐Ÿ˜','rice cracker'],['๐Ÿฅ','fish cake'],['๐Ÿฅ ','fortune cookie'],['๐Ÿข','oden'],['๐Ÿก','dango'],['๐Ÿง','shaved ice'],['๐Ÿจ','ice cream'],['๐Ÿฆ','ice cream'],['๐Ÿฅง','pie'],['๐Ÿง','cupcake'],['๐Ÿฐ','cake'],['๐ŸŽ‚','birthday cake'],['๐Ÿฎ','custard'],['๐Ÿญ','lollipop'],['๐Ÿฌ','candy'],['๐Ÿซ','chocolate'],['๐Ÿฟ','popcorn'],['๐Ÿฉ','donut'],['๐Ÿช','cookie'],['โ˜•','coffee'],['๐Ÿต','tea'],['๐Ÿงƒ','juice'],['๐Ÿฅค','cup drink'],['๐Ÿบ','beer'],['๐Ÿป','beers cheers'],['๐Ÿฅ‚','champagne'],['๐Ÿท','wine'],['๐Ÿฅƒ','whiskey'],['๐Ÿธ','cocktail'],['๐Ÿน','tropical drink'],['๐Ÿง‰','mate'],['๐Ÿพ','champagne bottle'] ]}, { id: 'activity', label: 'Activity', items: [ ['โšฝ','soccer football'],['๐Ÿ€','basketball'],['๐Ÿˆ','football'],['โšพ','baseball'],['๐ŸฅŽ','softball'],['๐ŸŽพ','tennis'],['๐Ÿ','volleyball'],['๐Ÿ‰','rugby'],['๐Ÿฅ','frisbee'],['๐ŸŽฑ','pool billiards'],['๐Ÿช€','yo-yo'],['๐Ÿ“','ping pong'],['๐Ÿธ','badminton'],['๐Ÿ’','hockey'],['๐Ÿ‘','field hockey'],['๐Ÿฅ','lacrosse'],['๐Ÿ','cricket'],['๐Ÿฅ…','goal'],['โ›ณ','golf'],['๐Ÿน','archery'],['๐ŸŽฃ','fishing'],['๐ŸฅŠ','boxing'],['๐Ÿฅ‹','martial arts'],['๐ŸŽฝ','running shirt'],['๐Ÿ›น','skateboard'],['๐Ÿ›ผ','roller skate'],['๐Ÿ›ท','sled'],['โ›ธ๏ธ','ice skate'],['๐ŸฅŒ','curling'],['๐ŸŽฟ','ski'],['โ›ท๏ธ','ski'],['๐Ÿ‚','snowboard'],['๐Ÿ‹๏ธ','weight lift'],['๐Ÿคผ','wrestle'],['๐Ÿคธ','cartwheel'],['โ›น๏ธ','basketball'],['๐Ÿคบ','fencing'],['๐Ÿคพ','handball'],['๐ŸŒ๏ธ','golf'],['๐Ÿ‡','horse race'],['๐Ÿง˜','yoga meditate'],['๐Ÿ„','surf'],['๐ŸŠ','swim'],['๐Ÿคฝ','water polo'],['๐Ÿšฃ','row'],['๐Ÿง—','climb'],['๐Ÿšด','bike'],['๐Ÿšต','mountain bike'],['๐ŸŽช','circus'],['๐ŸŽญ','theater masks'],['๐ŸŽจ','art palette'],['๐ŸŽฌ','clapper film'],['๐ŸŽค','microphone'],['๐ŸŽง','headphones'],['๐ŸŽผ','music score'],['๐ŸŽน','piano'],['๐Ÿฅ','drum'],['๐ŸŽท','saxophone'],['๐ŸŽบ','trumpet'],['๐ŸŽธ','guitar'],['๐Ÿช•','banjo'],['๐ŸŽป','violin'],['๐ŸŽฒ','dice random game'],['โ™Ÿ๏ธ','chess'],['๐ŸŽฏ','target dart'],['๐ŸŽณ','bowling'],['๐ŸŽฎ','game controller'],['๐ŸŽฐ','slot machine'],['๐Ÿงฉ','puzzle'],['๐Ÿ†','trophy win'],['๐Ÿฅ‡','gold medal first'],['๐Ÿฅˆ','silver medal'],['๐Ÿฅ‰','bronze medal'],['๐Ÿ…','medal'],['๐ŸŽ–๏ธ','military medal'],['๐ŸŽ—๏ธ','reminder ribbon'],['๐ŸŽซ','ticket'],['๐ŸŽŸ๏ธ','tickets'],['๐ŸŽ','gift present'],['๐ŸŽ‰','party popper celebrate'],['๐ŸŽŠ','confetti'],['๐ŸŽˆ','balloon'],['๐ŸŽ‚','cake birthday'],['๐ŸŽƒ','pumpkin halloween'],['๐ŸŽ„','christmas tree'],['๐ŸŽ†','fireworks'],['๐ŸŽ‡','fireworks'],['๐Ÿงจ','firecracker'],['โœจ','sparkles'],['๐ŸŽ“','graduation cap'] ]}, { id: 'travel', label: 'Travel', items: [ ['๐Ÿš—','car'],['๐Ÿš•','taxi'],['๐Ÿš™','car suv'],['๐ŸšŒ','bus'],['๐ŸšŽ','trolley bus'],['๐ŸŽ๏ธ','race car'],['๐Ÿš“','police car'],['๐Ÿš‘','ambulance'],['๐Ÿš’','fire truck'],['๐Ÿš','van'],['๐Ÿ›ป','pickup truck'],['๐Ÿšš','truck'],['๐Ÿš›','truck'],['๐Ÿšœ','tractor'],['๐Ÿ๏ธ','motorcycle'],['๐Ÿ›ต','scooter'],['๐Ÿšฒ','bicycle'],['๐Ÿ›ด','kick scooter'],['๐Ÿšจ','police light'],['๐Ÿš”','police car'],['๐Ÿš','bus'],['๐Ÿš','monorail'],['๐Ÿš„','train'],['๐Ÿš…','train bullet'],['๐Ÿšˆ','train'],['๐Ÿš‚','locomotive train'],['๐Ÿš†','train'],['๐Ÿš‡','metro subway'],['๐ŸšŠ','tram'],['๐Ÿš‰','station'],['โœˆ๏ธ','airplane flight'],['๐Ÿ›ซ','airplane takeoff'],['๐Ÿ›ฌ','airplane landing'],['๐Ÿ›ฉ๏ธ','plane'],['๐Ÿ’บ','seat'],['๐Ÿš','helicopter'],['๐Ÿ›ธ','ufo'],['๐Ÿš€','rocket launch'],['๐Ÿ›ฐ๏ธ','satellite'],['๐Ÿšข','ship'],['โ›ต','sailboat'],['๐Ÿ›ฅ๏ธ','motor boat'],['๐Ÿšค','speedboat'],['โ›ด๏ธ','ferry'],['๐Ÿ›ณ๏ธ','cruise ship'],['โš“','anchor'],['๐Ÿšง','construction'],['โ›ฝ','fuel gas'],['๐Ÿš','bus stop'],['๐Ÿ—บ๏ธ','map world'],['๐Ÿ—ฟ','moai'],['๐Ÿ—ฝ','statue liberty'],['๐Ÿ—ผ','tokyo tower'],['๐Ÿฐ','castle'],['๐Ÿฏ','castle japanese'],['๐ŸŸ๏ธ','stadium'],['๐ŸŽก','ferris wheel'],['๐ŸŽข','roller coaster'],['๐ŸŽ ','carousel'],['โ›ฒ','fountain'],['โ›ฑ๏ธ','beach umbrella'],['๐Ÿ–๏ธ','beach'],['๐Ÿ๏ธ','island'],['๐Ÿœ๏ธ','desert'],['๐ŸŒ‹','volcano'],['โ›ฐ๏ธ','mountain'],['๐Ÿ”๏ธ','snow mountain'],['๐Ÿ—ป','mount fuji'],['๐Ÿ•๏ธ','camping'],['๐Ÿ ','house home'],['๐Ÿก','house garden'],['๐Ÿข','office building'],['๐Ÿฅ','hospital'],['๐Ÿฆ','bank'],['๐Ÿจ','hotel'],['๐Ÿซ','school'],['๐Ÿญ','factory'],['๐Ÿ›๏ธ','classical building'],['โ›ช','church'],['๐Ÿ•Œ','mosque'],['๐Ÿ•','synagogue'],['๐Ÿ›•','temple'],['๐Ÿ—ผ','tower'],['๐ŸŒ†','city sunset'],['๐ŸŒƒ','night city'],['๐ŸŒ‰','bridge night'],['๐ŸŒŒ','milky way'],['๐ŸŒ ','shooting star'],['๐ŸŒ…','sunrise'],['๐ŸŒ„','sunrise mountain'],['๐ŸŒ‡','sunset city'] ]}, { id: 'objects', label: 'Objects', items: [ ['โŒš','watch'],['๐Ÿ“ฑ','phone mobile'],['๐Ÿ’ป','laptop computer'],['โŒจ๏ธ','keyboard'],['๐Ÿ–ฅ๏ธ','desktop computer'],['๐Ÿ–จ๏ธ','printer'],['๐Ÿ–ฑ๏ธ','mouse computer'],['๐Ÿ’ฝ','minidisc'],['๐Ÿ’พ','floppy disk save'],['๐Ÿ’ฟ','cd disk'],['๐Ÿ“€','dvd'],['๐Ÿงฎ','abacus'],['๐ŸŽฅ','movie camera'],['๐ŸŽž๏ธ','film frames'],['๐Ÿ“ฝ๏ธ','projector'],['๐Ÿ“บ','tv television'],['๐Ÿ“ท','camera'],['๐Ÿ“ธ','camera flash'],['๐Ÿ“น','video camera'],['๐Ÿ“ผ','videocassette'],['๐Ÿ”','magnifying search'],['๐Ÿ”Ž','magnifying search'],['๐Ÿ•ฏ๏ธ','candle'],['๐Ÿ’ก','bulb idea'],['๐Ÿ”ฆ','flashlight'],['๐Ÿฎ','lantern'],['๐Ÿช”','lamp diya'],['๐Ÿ“”','notebook'],['๐Ÿ“•','book closed'],['๐Ÿ“–','book open'],['๐Ÿ“—','book green'],['๐Ÿ“˜','book blue'],['๐Ÿ“™','book orange'],['๐Ÿ“š','books library'],['๐Ÿ““','notebook'],['๐Ÿ“’','ledger'],['๐Ÿ“ƒ','page'],['๐Ÿ“œ','scroll'],['๐Ÿ“„','page document'],['๐Ÿ“ฐ','newspaper'],['๐Ÿ—ž๏ธ','newspaper'],['๐Ÿ“‘','bookmark tabs'],['๐Ÿ”–','bookmark'],['๐Ÿท๏ธ','label tag'],['๐Ÿ’ฐ','money bag'],['๐Ÿช™','coin'],['๐Ÿ’ด','yen'],['๐Ÿ’ต','dollar'],['๐Ÿ’ถ','euro'],['๐Ÿ’ท','pound'],['๐Ÿ’ธ','money wings'],['๐Ÿ’ณ','credit card'],['๐Ÿงพ','receipt'],['โœ‰๏ธ','envelope mail'],['๐Ÿ“ง','email'],['๐Ÿ“จ','envelope'],['๐Ÿ“ฉ','envelope'],['๐Ÿ“ค','outbox'],['๐Ÿ“ฅ','inbox'],['๐Ÿ“ฆ','package box'],['๐Ÿ“ซ','mailbox'],['๐Ÿ“ช','mailbox'],['๐Ÿ“ฌ','mailbox'],['๐Ÿ“ญ','mailbox'],['๐Ÿ“ฎ','postbox'],['๐Ÿ—ณ๏ธ','ballot box'],['โœ๏ธ','pencil'],['โœ’๏ธ','pen nib'],['๐Ÿ–‹๏ธ','pen'],['๐Ÿ–Š๏ธ','pen'],['๐Ÿ–Œ๏ธ','paintbrush'],['๐Ÿ–๏ธ','crayon'],['๐Ÿ“','memo note write'],['๐Ÿ’ผ','briefcase work'],['๐Ÿ“','folder'],['๐Ÿ“‚','folder open'],['๐Ÿ—‚๏ธ','card index'],['๐Ÿ“…','calendar date'],['๐Ÿ“†','calendar'],['๐Ÿ—’๏ธ','notepad'],['๐Ÿ—“๏ธ','calendar'],['๐Ÿ“‡','card index'],['๐Ÿ“ˆ','chart up trending'],['๐Ÿ“‰','chart down'],['๐Ÿ“Š','bar chart stats'],['๐Ÿ“‹','clipboard'],['๐Ÿ“Œ','pushpin'],['๐Ÿ“','pin location'],['๐Ÿ“Ž','paperclip attach'],['๐Ÿ–‡๏ธ','paperclips'],['๐Ÿ“','ruler'],['๐Ÿ“','triangle ruler'],['โœ‚๏ธ','scissors cut'],['๐Ÿ—ƒ๏ธ','file box'],['๐Ÿ—„๏ธ','file cabinet'],['๐Ÿ—‘๏ธ','trash waste'],['๐Ÿ”’','lock locked'],['๐Ÿ”“','lock open'],['๐Ÿ”‘','key'],['๐Ÿ—๏ธ','old key'],['๐Ÿ”จ','hammer'],['๐Ÿช“','axe'],['โ›๏ธ','pick'],['โš’๏ธ','tools'],['๐Ÿ› ๏ธ','tools'],['๐Ÿ”ง','wrench'],['๐Ÿ”ฉ','bolt nut'],['โš™๏ธ','gear settings'],['๐Ÿงฐ','toolbox'],['๐Ÿงฒ','magnet'],['๐Ÿ”ซ','water gun'],['๐Ÿ’ฃ','bomb'],['๐Ÿงช','test tube science'],['๐Ÿงซ','petri dish'],['๐Ÿงฌ','dna'],['๐Ÿ”ฌ','microscope'],['๐Ÿ”ญ','telescope'],['๐Ÿ“ก','satellite antenna'],['๐Ÿ’‰','syringe'],['๐Ÿ’Š','pill medicine'],['๐Ÿฉน','bandage'],['๐Ÿฉบ','stethoscope'],['๐Ÿšช','door'],['๐Ÿ›๏ธ','bed'],['๐Ÿ›‹๏ธ','couch'],['๐Ÿช‘','chair'],['๐Ÿšฝ','toilet'],['๐Ÿšฟ','shower'],['๐Ÿ›','bathtub'],['๐Ÿงด','lotion'],['๐Ÿงท','safety pin'],['๐Ÿงน','broom'],['๐Ÿงบ','basket'],['๐Ÿงป','toilet paper'],['๐Ÿงผ','soap'],['๐Ÿช’','razor'],['๐Ÿงฝ','sponge'],['๐Ÿงฏ','extinguisher'],['๐Ÿ›’','cart shopping'],['๐Ÿšฌ','cigarette'],['โšฐ๏ธ','coffin'],['๐Ÿชฆ','headstone'],['โšฑ๏ธ','urn'] ]}, { id: 'symbols', label: 'Symbols', items: [ ['โค๏ธ','heart love'],['๐Ÿงก','orange heart'],['๐Ÿ’›','yellow heart'],['๐Ÿ’š','green heart'],['๐Ÿ’™','blue heart'],['๐Ÿ’œ','purple heart'],['๐Ÿ–ค','black heart'],['๐Ÿค','white heart'],['๐ŸคŽ','brown heart'],['๐Ÿ’”','broken heart'],['โฃ๏ธ','heart'],['๐Ÿ’•','hearts'],['๐Ÿ’ž','hearts'],['๐Ÿ’“','heartbeat'],['๐Ÿ’—','heart'],['๐Ÿ’–','heart'],['๐Ÿ’˜','heart arrow'],['๐Ÿ’','heart gift'],['๐Ÿ’Ÿ','heart decoration'],['โ˜ฎ๏ธ','peace'],['โœ๏ธ','cross'],['โ˜ช๏ธ','star crescent'],['๐Ÿ•‰๏ธ','om'],['โ˜ธ๏ธ','dharma'],['โœก๏ธ','star david'],['๐Ÿ”ฏ','star'],['๐Ÿ•Ž','menorah'],['โ˜ฏ๏ธ','yin yang'],['โ˜ฆ๏ธ','orthodox cross'],['๐Ÿ›','worship'],['โ›Ž','ophiuchus'],['โ™ˆ','aries'],['โ™‰','taurus'],['โ™Š','gemini'],['โ™‹','cancer'],['โ™Œ','leo'],['โ™','virgo'],['โ™Ž','libra'],['โ™','scorpio'],['โ™','sagittarius'],['โ™‘','capricorn'],['โ™’','aquarius'],['โ™“','pisces'],['๐Ÿ†”','id'],['โš›๏ธ','atom'],['๐Ÿ‰‘','accept'],['โ˜ข๏ธ','radioactive'],['โ˜ฃ๏ธ','biohazard'],['๐Ÿ“ด','phone off'],['๐Ÿ“ณ','vibrate'],['๐Ÿ“ต','no phone'],['๐Ÿšญ','no smoking'],['โ—','exclamation'],['โ•','exclamation'],['โ“','question'],['โ”','question'],['โ€ผ๏ธ','double exclamation'],['โ‰๏ธ','exclamation question'],['๐Ÿ”…','dim'],['๐Ÿ”†','bright'],['ใ€ฝ๏ธ','part alternation'],['โš ๏ธ','warning'],['๐Ÿšธ','children crossing'],['๐Ÿ”ฑ','trident'],['โšœ๏ธ','fleur de lis'],['๐Ÿ”ฐ','beginner'],['โ™ป๏ธ','recycle'],['โœ…','check done'],['๐Ÿˆฏ','reserved'],['๐Ÿ’น','chart yen'],['โ‡๏ธ','sparkle'],['โœณ๏ธ','asterisk'],['โŽ','cross mark'],['๐ŸŒ','globe'],['๐Ÿ’ ','diamond'],['โ“‚๏ธ','m'],['๐ŸŒ€','cyclone'],['๐Ÿ’ค','zzz sleep'],['๐Ÿง','atm'],['๐Ÿšพ','wc'],['โ™ฟ','wheelchair'],['๐Ÿ…ฟ๏ธ','parking'],['๐Ÿˆณ','vacancy'],['๐Ÿˆ‚๏ธ','sa'],['๐Ÿ›‚','passport control'],['๐Ÿ›ƒ','customs'],['๐Ÿ›„','baggage'],['๐Ÿ›…','left luggage'],['๐Ÿšน','men'],['๐Ÿšบ','women'],['๐Ÿšผ','baby'],['๐Ÿšป','restroom'],['๐Ÿšฎ','litter'],['๐ŸŽฆ','cinema'],['๐Ÿ“ถ','signal'],['๐Ÿˆ','here'],['๐Ÿ”ฃ','symbols'],['โ„น๏ธ','info'],['๐Ÿ”ค','abc'],['๐Ÿ”ก','abcd'],['๐Ÿ” ','abcd'],['๐Ÿ†–','ng'],['๐Ÿ†—','ok'],['๐Ÿ†™','up'],['๐Ÿ†’','cool'],['๐Ÿ†•','new'],['๐Ÿ†“','free'],['0๏ธโƒฃ','zero'],['1๏ธโƒฃ','one'],['2๏ธโƒฃ','two'],['3๏ธโƒฃ','three'],['4๏ธโƒฃ','four'],['5๏ธโƒฃ','five'],['6๏ธโƒฃ','six'],['7๏ธโƒฃ','seven'],['8๏ธโƒฃ','eight'],['9๏ธโƒฃ','nine'],['๐Ÿ”Ÿ','ten'],['๐Ÿ”ข','numbers'],['#๏ธโƒฃ','hash'],['*๏ธโƒฃ','asterisk'],['โ๏ธ','eject'],['โ–ถ๏ธ','play'],['โธ๏ธ','pause'],['โน๏ธ','stop'],['โบ๏ธ','record'],['โญ๏ธ','next'],['โฎ๏ธ','previous'],['โฉ','fast forward'],['โช','rewind'],['โซ','up'],['โฌ','down'],['โ—€๏ธ','left'],['๐Ÿ”ผ','up'],['๐Ÿ”ฝ','down'],['โžก๏ธ','right'],['โฌ…๏ธ','left'],['โฌ†๏ธ','up'],['โฌ‡๏ธ','down'],['โ†—๏ธ','up right'],['โ†˜๏ธ','down right'],['โ†™๏ธ','down left'],['โ†–๏ธ','up left'],['โ†•๏ธ','up down'],['โ†”๏ธ','left right'],['โ†ฉ๏ธ','return'],['โ†ช๏ธ','redo'],['โคด๏ธ','up'],['โคต๏ธ','down'],['๐Ÿ”€','shuffle'],['๐Ÿ”','repeat'],['๐Ÿ”‚','repeat one'],['๐Ÿ”„','refresh'],['๐Ÿ”ƒ','refresh'],['๐ŸŽต','music note'],['๐ŸŽถ','music notes'],['โž•','plus'],['โž–','minus'],['โž—','divide'],['โœ–๏ธ','multiply'],['โ™พ๏ธ','infinity'],['๐Ÿ’ฒ','dollar'],['๐Ÿ’ฑ','currency'],['โ„ข๏ธ','tm'],['ยฉ๏ธ','copyright'],['ยฎ๏ธ','registered'],['ใ€ฐ๏ธ','wavy'],['โžฐ','curly loop'],['โžฟ','double loop'],['๐Ÿ”š','end'],['๐Ÿ”™','back'],['๐Ÿ”›','on'],['๐Ÿ”','top'],['๐Ÿ”œ','soon'],['โœ”๏ธ','check'],['โ˜‘๏ธ','checkbox'],['๐Ÿ”˜','radio'],['๐Ÿ”ด','red circle'],['๐ŸŸ ','orange circle'],['๐ŸŸก','yellow circle'],['๐ŸŸข','green circle'],['๐Ÿ”ต','blue circle'],['๐ŸŸฃ','purple circle'],['โšซ','black circle'],['โšช','white circle'],['๐ŸŸค','brown circle'],['๐Ÿ”บ','red triangle'],['๐Ÿ”ป','red triangle'],['๐Ÿ”ธ','orange diamond'],['๐Ÿ”น','blue diamond'],['๐Ÿ”ถ','orange diamond'],['๐Ÿ”ท','blue diamond'],['๐Ÿ”ณ','white square'],['๐Ÿ”ฒ','black square'],['โ–ช๏ธ','black square'],['โ–ซ๏ธ','white square'],['โ—พ','black square'],['โ—ฝ','white square'],['โ—ผ๏ธ','black square'],['โ—ป๏ธ','white square'],['๐ŸŸฅ','red square'],['๐ŸŸง','orange square'],['๐ŸŸจ','yellow square'],['๐ŸŸฉ','green square'],['๐ŸŸฆ','blue square'],['๐ŸŸช','purple square'],['โฌ›','black square'],['โฌœ','white square'],['๐ŸŸซ','brown square'],['๐Ÿ”ˆ','speaker'],['๐Ÿ”‡','mute'],['๐Ÿ”‰','speaker'],['๐Ÿ”Š','speaker loud'],['๐Ÿ””','bell'],['๐Ÿ”•','bell off'],['๐Ÿ“ฃ','megaphone'],['๐Ÿ“ข','loudspeaker'],['๐Ÿ’ฌ','speech bubble'],['๐Ÿ’ญ','thought bubble'],['๐Ÿ—ฏ๏ธ','anger bubble'],['โ™ ๏ธ','spade'],['โ™ฃ๏ธ','club'],['โ™ฅ๏ธ','heart suit'],['โ™ฆ๏ธ','diamond suit'],['๐Ÿƒ','joker'],['๐ŸŽด','flower cards'],['๐Ÿ€„','mahjong'] ]}, { id: 'flags', label: 'Flags', items: [ ['๐Ÿ','chequered flag finish'],['๐Ÿšฉ','triangular flag'],['๐ŸŽŒ','crossed flags'],['๐Ÿด','black flag'],['๐Ÿณ๏ธ','white flag'],['๐Ÿณ๏ธโ€๐ŸŒˆ','rainbow flag pride'],['๐Ÿดโ€โ˜ ๏ธ','pirate flag'],['๐Ÿ‡บ๐Ÿ‡ธ','usa united states'],['๐Ÿ‡ฌ๐Ÿ‡ง','uk united kingdom'],['๐Ÿ‡ซ๐Ÿ‡ท','france french'],['๐Ÿ‡ฉ๐Ÿ‡ช','germany german'],['๐Ÿ‡ช๐Ÿ‡ธ','spain spanish'],['๐Ÿ‡ฎ๐Ÿ‡น','italy italian'],['๐Ÿ‡ต๐Ÿ‡น','portugal'],['๐Ÿ‡ณ๐Ÿ‡ฑ','netherlands'],['๐Ÿ‡ง๐Ÿ‡ช','belgium'],['๐Ÿ‡จ๐Ÿ‡ญ','switzerland'],['๐Ÿ‡ฆ๐Ÿ‡น','austria'],['๐Ÿ‡ธ๐Ÿ‡ช','sweden'],['๐Ÿ‡ณ๐Ÿ‡ด','norway'],['๐Ÿ‡ฉ๐Ÿ‡ฐ','denmark'],['๐Ÿ‡ซ๐Ÿ‡ฎ','finland'],['๐Ÿ‡ฎ๐Ÿ‡ช','ireland'],['๐Ÿ‡ต๐Ÿ‡ฑ','poland'],['๐Ÿ‡ฌ๐Ÿ‡ท','greece'],['๐Ÿ‡ท๐Ÿ‡บ','russia'],['๐Ÿ‡บ๐Ÿ‡ฆ','ukraine'],['๐Ÿ‡น๐Ÿ‡ท','turkey'],['๐Ÿ‡จ๐Ÿ‡ฆ','canada'],['๐Ÿ‡ฒ๐Ÿ‡ฝ','mexico'],['๐Ÿ‡ง๐Ÿ‡ท','brazil'],['๐Ÿ‡ฆ๐Ÿ‡ท','argentina'],['๐Ÿ‡จ๐Ÿ‡ฑ','chile'],['๐Ÿ‡จ๐Ÿ‡ด','colombia'],['๐Ÿ‡จ๐Ÿ‡ณ','china chinese'],['๐Ÿ‡ฏ๐Ÿ‡ต','japan japanese'],['๐Ÿ‡ฐ๐Ÿ‡ท','korea south'],['๐Ÿ‡ฎ๐Ÿ‡ณ','india'],['๐Ÿ‡ฆ๐Ÿ‡บ','australia'],['๐Ÿ‡ณ๐Ÿ‡ฟ','new zealand'],['๐Ÿ‡ฟ๐Ÿ‡ฆ','south africa'],['๐Ÿ‡ช๐Ÿ‡ฌ','egypt'],['๐Ÿ‡ฒ๐Ÿ‡ฆ','morocco'],['๐Ÿ‡ณ๐Ÿ‡ฌ','nigeria'],['๐Ÿ‡ฐ๐Ÿ‡ช','kenya'],['๐Ÿ‡ธ๐Ÿ‡ฆ','saudi arabia'],['๐Ÿ‡ฆ๐Ÿ‡ช','uae emirates'],['๐Ÿ‡ฎ๐Ÿ‡ฑ','israel'],['๐Ÿ‡ธ๐Ÿ‡ฌ','singapore'],['๐Ÿ‡น๐Ÿ‡ญ','thailand'],['๐Ÿ‡ป๐Ÿ‡ณ','vietnam'],['๐Ÿ‡ฎ๐Ÿ‡ฉ','indonesia'],['๐Ÿ‡ต๐Ÿ‡ญ','philippines'],['๐Ÿ‡ฒ๐Ÿ‡พ','malaysia'],['๐Ÿ‡ต๐Ÿ‡ฐ','pakistan'],['๐Ÿ‡ง๐Ÿ‡ฉ','bangladesh'],['๐Ÿ‡บ๐Ÿ‡ณ','united nations'] ]} ]; document.addEventListener('alpine:init', function () { if (window.Alpine && window.Alpine.__fdIconPicker) return; if (window.Alpine) window.Alpine.__fdIconPicker = true; Alpine.store('fdIconPicker', { open: false, x: 0, y: 0, tab: 'emoji', query: '', category: 'people', title: '', skinTone: 0, toneOpen: false, recent: [], custom: [], customLoaded: false, customModal: false, customName: '', customPreview: '', customFile: null, customBusy: false, onPick: null, onRemove: null, _cx: 0, _cy: 0, cats: CATS, openFor(opts) { opts = opts || {}; this.onPick = opts.onPick || null; this.onRemove = opts.onRemove || null; // v7.64 : mode ยซ rรฉaction ยป โ€” en-tรชte = texte sรฉlectionnรฉ, emoji only this.title = opts.title || ''; if (this.title) { this.tab = 'emoji'; this.category = 'people'; } this.query = ''; this.toneOpen = false; this.customModal = false; this._cx = (opts.x != null) ? opts.x : 240; this._cy = (opts.y != null) ? opts.y : 200; this.x = this._cx; this.y = this._cy; this.open = true; var self = this; var place = function () { var el = document.querySelector('.fd-icon-picker'); if (!el) return; var w = el.offsetWidth || 344, h = el.offsetHeight || 440; var vw = window.innerWidth, vh = window.innerHeight; var nx = self._cx, ny = self._cy; if (nx + w > vw - 8) nx = vw - w - 8; if (ny + h > vh - 8) ny = vh - h - 8; self.x = Math.max(8, nx); self.y = Math.max(8, ny); }; if (window.Alpine && Alpine.nextTick) Alpine.nextTick(place); else setTimeout(place, 0); this.loadRecent(); this.loadCustom(); }, close() { this.open = false; this.title = ''; this.customModal = false; this.toneOpen = false; this.onPick = null; this.onRemove = null; }, matches(name) { var q = (this.query || '').trim().toLowerCase(); if (!q) return true; return name.toLowerCase().indexOf(q) >= 0; }, items() { var q = (this.query || '').trim().toLowerCase(); if (q) { var out = []; this.cats.forEach(function (c) { c.items.forEach(function (it) { if ((it[1] || '').toLowerCase().indexOf(q) >= 0 || it[0].indexOf(q) >= 0) out.push(it[0]); }); }); return out; } if (this.category === 'recent') return this.recent; var found = []; for (var i = 0; i < this.cats.length; i++) { if (this.cats[i].id === this.category) { found = this.cats[i].items.map(function (it) { return it[0]; }); break; } } return found; }, withTone(e) { if (!this.skinTone) return e; if (TONEABLE[e]) return e + TONES[this.skinTone]; return e; }, pick(v) { v = (v || '').trim(); if (!v) return; this.pushRecent(v); var fn = this.onPick; if (fn) { try { fn(v); } catch (e) { console.error('fdIconPicker.pick', e); } } this.close(); }, remove() { var fn = this.onRemove || this.onPick; if (fn) { try { fn(''); } catch { /* volontaire */ } } this.close(); }, random() { var pool = []; this.cats.forEach(function (c) { c.items.forEach(function (it) { pool.push(it[0]); }); }); if (!pool.length) return; this.pick(pool[Math.floor(Math.random() * pool.length)]); }, setTone(i) { this.skinTone = i; this.toneOpen = false; }, setCategory(id) { this.category = id; this.tab = 'emoji'; this.query = ''; }, setTab(t) { this.tab = t; this.query = ''; if (t === 'upload') this.loadCustom(); }, loadRecent() { try { this.recent = JSON.parse(localStorage.getItem('fd_icon_recent') || '[]'); } catch { this.recent = []; } }, pushRecent(e) { try { var r = this.recent.filter(function (x) { return x !== e; }); r.unshift(e); this.recent = r.slice(0, 32); localStorage.setItem('fd_icon_recent', JSON.stringify(this.recent)); } catch { /* volontaire */ } }, async loadCustom() { try { var r = await fetch('/api/custom-emojis', { credentials: 'same-origin' }); var d = await r.json(); this.custom = (d && d.emojis) || []; this.customLoaded = true; } catch { this.custom = []; } }, openCustomModal() { this.customModal = true; this.customName = ''; this.customPreview = ''; this.customFile = null; this.tab = 'upload'; }, closeCustomModal() { this.customModal = false; }, onCustomFile(ev) { var f = ev.target.files && ev.target.files[0]; if (!f) return; this.customFile = f; var self = this; var fr = new FileReader(); fr.onload = function () { self.customPreview = fr.result; }; fr.readAsDataURL(f); if (!this.customName) this.customName = (f.name || '').replace(/\.[^.]+$/, '').slice(0, 40); }, async saveCustom() { if (!this.customFile || this.customBusy) return; this.customBusy = true; try { var fd = new FormData(); fd.append('name', this.customName || 'emoji'); fd.append('file', this.customFile); var csrf = getCsrf(); var r = await fetch('/api/custom-emojis', { method: 'POST', headers: { 'X-CSRF-Token': csrf }, body: fd, credentials: 'same-origin' }); var d = await r.json(); if (d && d.emoji) { this.custom.unshift(d.emoji); this.customModal = false; this.pick(d.emoji.url); } } catch { if (window.showToast) window.showToast('Emoji upload failed', 'error'); } this.customBusy = false; }, async deleteCustom(id) { try { var csrf = getCsrf(); await fetch('/api/custom-emojis/' + id, { method: 'DELETE', headers: { 'X-CSRF-Token': csrf }, credentials: 'same-origin' }); this.custom = this.custom.filter(function (e) { return e.id !== id; }); } catch { /* volontaire */ } } }); }); window.FDIconPicker = { openFor: function (opts) { var s = window.Alpine && Alpine.store('fdIconPicker'); if (s) s.openFor(opts); } }; })();