From a5093c94f4ff6df5d1d612aff656b56b2f3dc928 Mon Sep 17 00:00:00 2001 From: Ian Morland Date: Tue, 8 Dec 2020 19:25:02 +0000 Subject: [PATCH] Fix ontouchstart issue --- js/dist/forum.js | 2 +- js/dist/forum.js.map | 2 +- js/src/forum/components/PostReactAction.js | 5 ++--- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/js/dist/forum.js b/js/dist/forum.js index ab055d4..8edff5c 100644 --- a/js/dist/forum.js +++ b/js/dist/forum.js @@ -1,2 +1,2 @@ -module.exports=function(f){var e={};function a(n){if(e[n])return e[n].exports;var o=e[n]={i:n,l:!1,exports:{}};return f[n].call(o.exports,o,o.exports,a),o.l=!0,o.exports}return a.m=f,a.c=e,a.d=function(f,e,n){a.o(f,e)||Object.defineProperty(f,e,{enumerable:!0,get:n})},a.r=function(f){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(f,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(f,"__esModule",{value:!0})},a.t=function(f,e){if(1&e&&(f=a(f)),8&e)return f;if(4&e&&"object"==typeof f&&f&&f.__esModule)return f;var n=Object.create(null);if(a.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:f}),2&e&&"string"!=typeof f)for(var o in f)a.d(n,o,function(e){return f[e]}.bind(null,o));return n},a.n=function(f){var e=f&&f.__esModule?function(){return f.default}:function(){return f};return a.d(e,"a",e),e},a.o=function(f,e){return Object.prototype.hasOwnProperty.call(f,e)},a.p="",a(a.s=42)}([function(f,e){f.exports=flarum.core.compat.Model},function(f,e,a){"use strict";function n(f,e){f.prototype=Object.create(e.prototype),f.prototype.constructor=f,f.__proto__=e}a.d(e,"a",(function(){return n}))},function(f,e){f.exports=flarum.core.compat.app},function(f,e){f.exports=flarum.core.compat.extend},function(f,e){f.exports=flarum.core.compat["components/Button"]},function(f,e,a){"use strict";var n=a(9),o=(a(10),function f(e,a){return void 0===a&&(a=1),e.reduce((function(e,n){return e.concat(a>1&&Array.isArray(n)?f(n,a-1):n)}),[])}(Object.values(n))),t=Object.entries(n),r=function(f){return String.fromCodePoint.apply(String,f.split("-").map((function(f){return"0x"+f})))},i=function(f){var e=n[f],a=-1,o=null;e?(a=1,o=f):Object.entries(n).forEach((function(e){for(var n=e[0],t=e[1],r=0;r<=t.length;++r){var i=t[r]||n,c=i===f,l=i.indexOf(f),s=f.indexOf(i),_=c&&f.length||0===l||0===s&&i.length>1?1:l>0||s>0?0:-1;if(_>a&&(o=n,a=_,1===_))return!1}})),this.score=a,this.emoji=o},c=new Map;e.a=function(f){if(!f)return{};var e,a=f.identifier||f;if(c.has(a))return c.get(a);if(o.includes(a)){var n=function(f){return t.find((function(e){return e[1].includes(f)}))}(a);e=n&&n[0]}else{var l=new i(a);l.score&&(e=l.emoji)}e&&(e=e.split("-")[0]);var s=e?{identifier:a,uc:r(e),url:"//cdn.jsdelivr.net/gh/twitter/twemoji@13/assets/72x72/"+e+".png",type:"emoji"}:{};return c.set(f,s),s||{}}},function(f,e){f.exports=flarum.core.compat["utils/mixin"]},,function(f,e){},function(f){f.exports=JSON.parse('{"2049":["interrobang","exclamation_question"],"2122":["tm"],"2139":["info"],"2194":["arrow_left_right"],"2195":["arrow_up_down"],"2196":["arrow_upper_left"],"2197":["arrow_upper_right"],"2198":["arrow_lower_right"],"2199":["arrow_lower_left"],"2328":["keyboard"],"2600":["sun"],"2601":["cloud"],"2602":["umbrella"],"2603":["snowy_snowman"],"2604":["comet"],"2611":["checked_ballot"],"2614":["umbrella_rain"],"2615":["coffee"],"2618":["shamrock"],"2620":["crossbones"],"2622":["radioactive"],"2623":["biohazard"],"2626":["orthodox_cross"],"2638":["wheel_of_dharma"],"2639":["sad","frowning"],"2640":["female","female_sign"],"2642":["male","male_sign"],"2648":["aries"],"2649":["taurus"],"2650":["sagittarius"],"2651":["capricorn"],"2652":["aquarius"],"2653":["pisces"],"2660":["spades"],"2663":["clubs"],"2665":["hearts"],"2666":["diamonds"],"2668":["hotsprings"],"2692":["hammer_pick"],"2693":["anchor"],"2694":["crossed_swords"],"2695":["medical"],"2696":["scales"],"2697":["alembic"],"2699":["gear"],"2702":["scissors"],"2705":["white_check_mark"],"2708":["airplane"],"2709":["envelope"],"2712":["black_nib"],"2714":["check_mark"],"2716":["multiplication"],"2721":["star_of_david"],"2728":["sparkles"],"2733":["eight_spoked_asterisk"],"2734":["eight_pointed_star"],"2744":["snowflake"],"2747":["sparkle"],"2753":["question"],"2754":["white_question"],"2755":["white_exclamation"],"2757":["exclamation"],"2763":["heart_exclamation"],"2764":["heart"],"2795":["plus"],"2796":["minus"],"2797":["division"],"2934":["arrow_heading_up"],"2935":["arrow_heading_down"],"3030":["wavy_dash"],"3297":["ja_congratulations"],"3299":["ja_secret"],"1f600":["gleeful"],"1f603":["glad","smile"],"1f604":["happy"],"1f601":["blissful","grin"],"1f606":["amused","laugh","lol"],"1f605":["embarassed","sweat_smile"],"1f923":["entertained","rofl"],"1f602":["joyful","haha"],"1f642":["pleased","slight_smile"],"1f643":["ecstatic","upside_down"],"1f609":["coy","wink"],"1f60a":["blush"],"1f607":["innocent","halo"],"1f970":["love"],"1f60d":["lovestruck"],"1f929":["starstruck"],"1f618":["flirty"],"1f617":["kiss"],"263a":["relaxed"],"1f61a":["loving_kiss"],"1f619":["happy_kiss"],"1f972":["tear_smile"],"1f60b":["yum","savour"],"1f61b":["playful","tongue_out"],"1f61c":["mischievous"],"1f92a":["crazy"],"1f61d":["facetious","lmao"],"1f911":["pretentious","money_mouth"],"1f917":["hugging"],"1f92d":["gasp"],"1f92b":["shushing"],"1f914":["curious","thinking"],"1f910":["silenced","zipper_mouth"],"1f928":["contempt"],"1f610":["indifferent","neutral"],"1f611":["apathetic","expressionless"],"1f636":["vacant","no_mouth"],"1f60f":["cocky","smirk"],"1f612":["unamused"],"1f644":["disbelief"],"1f62c":["grimaced"],"1f925":["lying"],"1f60c":["relieved"],"1f614":["pensive"],"1f62a":["sleepy"],"1f924":["drooling"],"1f634":["exhausted","sleeping"],"1f637":["ill","mask"],"1f912":["sick"],"1f915":["injured"],"1f922":["nauseated"],"1f92e":["vomiting"],"1f927":["sneezing"],"1f975":["overheating"],"1f976":["freezing"],"1f974":["woozy"],"1f635":["dizzy"],"1f92f":["shocked","exploding_head"],"1f920":["cowboy"],"1f973":["partying","celebrating"],"1f978":["disguised_face"],"1f60e":["confident"],"1f913":["nerd"],"1f9d0":["monocle"],"1f615":["confused"],"1f61f":["worried"],"1f641":["cheerless","slight_frown"],"1f62e":["surprised"],"1f62f":["hushed"],"1f632":["astonished"],"1f633":["flushed"],"1f97a":["pleading"],"1f626":["bored"],"1f627":["anguished","wtf"],"1f628":["fearful"],"1f630":["cold_sweat","anxious","frustrated"],"1f625":["hopeful"],"1f622":["upset","cry"],"1f62d":["distressed","sob"],"1f631":["frightened","scream"],"1f616":["confounded"],"1f623":["persevered"],"1f61e":["disappointed"],"1f613":["shamed"],"1f629":["weary"],"1f62b":["tired"],"1f971":["yawn"],"1f624":["annoyed","hrmph"],"1f621":["enraged","pout"],"1f620":["angry"],"1f92c":["censored"],"1f608":["imp"],"1f47f":["angry_imp"],"1f480":["skull"],"1f4a9":["poop"],"1f921":["clown"],"1f479":["ogre"],"1f47a":["goblin"],"1f47b":["ghost"],"1f47d":["alien"],"1f47e":["alien_monster","space_invader"],"1f916":["robot"],"1f63a":["smiling_cat"],"1f638":["grinning_cat"],"1f639":["joyful_cat"],"1f63b":["lovestruck_cat"],"1f63c":["smirking_cat"],"1f63d":["kissing_cat"],"1f640":["weary_cat"],"1f63f":["crying_cat"],"1f63e":["pouting_cat"],"1f648":["see_no_evil"],"1f649":["hear_no_evil"],"1f64a":["speak_no_evil"],"1f48b":["kiss_lips"],"1f48c":["love_letter"],"1f498":["cupid"],"1f49d":["heart_ribbon"],"1f496":["sparkling_heart"],"1f497":["heartpulse"],"1f493":["heartbeat"],"1f49e":["revolving_hearts"],"1f495":["two_hearts"],"1f49f":["heart_decoration"],"1f494":["broken_heart"],"1f9e1":["orange_heart"],"1f49b":["yellow_heart"],"1f49a":["green_heart"],"1f499":["blue_heart"],"1f49c":["purple_heart"],"1f90e":["brown_heart"],"1f5a4":["black_heart"],"1f90d":["white_heart"],"1f4af":["100"],"1f4a2":["anger"],"1f4a5":["boom","collision"],"1f4ab":["dizzy_star"],"1f4a6":["sweat_drops"],"1f4a8":["dash"],"1f573":["hole"],"1f4a3":["bomb"],"1f4ac":["speech"],"1f441-200d-1f5e8":["eye_bubble"],"1f5e8":["left_speech"],"1f5ef":["right_anger_speech"],"1f4ad":["thought"],"1f4a4":["zzz"],"1f44b":["wave"],"1f91a":["raised_backhand"],"1f590":["splayed_hand"],"270b":["raised_hand"],"1f596":["vulcan"],"1f44c":["ok_hand"],"1f90c":["pinched_fingers"],"1f90f":["pinch"],"270c":["victory"],"1f91e":["fingers_crossed"],"1f91f":["love_you_gesture"],"1f918":["metal"],"1f919":["call_me"],"1f448":["point_left"],"1f449":["point_right"],"1f446":["backhand_point_up"],"1f595":["middle_finger"],"1f447":["point_down"],"261d":["point_up"],"1f44d":["thumbsup","+1","yes"],"1f44e":["thumbsdown","-1","no"],"270a":["fist"],"1f44a":["punch"],"1f91b":["left_facing_fist"],"1f91c":["right_facing_fist"],"1f44f":["clap"],"1f64c":["raised_hands"],"1f450":["open_hands"],"1f932":["palms_up"],"1f91d":["handshake"],"1f64f":["pray"],"270d":["writing_hand"],"1f485":["nail_care"],"1f933":["selfie"],"1f4aa":["muscle","right_bicep"],"1f9be":["mech_arm"],"1f9bf":["mech_leg"],"1f9b5":["leg"],"1f9b6":["foot"],"1f442":["ear"],"1f9bb":["hearing_aid"],"1f443":["nose"],"1f9e0":["brain"],"1fac0":["anatomical_heart"],"1fac1":["lungs"],"1f9b7":["tooth"],"1f9b4":["bone"],"1f440":["eyes"],"1f441":["eye"],"1f445":["tongue"],"1f444":["lips"],"1f476":["baby"],"1f9d2":["child"],"1f466":["boy"],"1f467":["girl"],"1f9d1":["adult"],"1f471":["blond_person"],"1f468":["man"],"1f9d4":["bearded_person"],"1f468-200d-1f9b0":["red_haired_man"],"1f468-200d-1f9b1":["curly_haired_man"],"1f468-200d-1f9b3":["white_haired_man"],"1f468-200d-1f9b2":["bald_man"],"1f469":["woman"],"1f469-200d-1f9b0":["red_haired_woman"],"1f9d1-200d-1f9b0":["red_haired_person"],"1f469-200d-1f9b1":["curly_haired_woman"],"1f9d1-200d-1f9b1":["curly_haired_person"],"1f469-200d-1f9b3":["white_haired_woman"],"1f9d1-200d-1f9b3":["white_haired_person"],"1f469-200d-1f9b2":["bald_woman"],"1f9d1-200d-1f9b2":["bald_person"],"1f471-200d-2640-fe0f":["blond_woman"],"1f471-200d-2642-fe0f":["blond_man"],"1f9d3":["older_adult"],"1f474":["older_man"],"1f475":["older_woman"],"1f64d":["person_frowning"],"1f64d-200d-2642-fe0f":["man_frowning"],"1f64d-200d-2640-fe0f":["woman_frowning"],"1f64e":["person_pouting"],"1f64e-200d-2642-fe0f":["man_pouting"],"1f64e-200d-2640-fe0f":["woman_pouting"],"1f645":["person_gesturing_no"],"1f645-200d-2642-fe0f":["man_gesturing_no"],"1f645-200d-2640-fe0f":["woman_gesturing_no"],"1f646":["person_gesturing_ok"],"1f646-200d-2642-fe0f":["man_gesturing_ok"],"1f646-200d-2640-fe0f":["woman_gesturing_ok"],"1f481":["person_tipping_hand"],"1f481-200d-2642-fe0f":["man_tipping_hand"],"1f481-200d-2640-fe0f":["woman_tipping_hand"],"1f64b":["person_raising_hand"],"1f64b-200d-2642-fe0f":["man_raising_hand"],"1f64b-200d-2640-fe0f":["woman_raising_hand"],"1f9cf":["person_deaf"],"1f9cf-200d-2642-fe0f":["man_deaf"],"1f9cf-200d-2640-fe0f":["woman_deaf"],"1f647":["person_bowing"],"1f647-200d-2642-fe0f":["man_bowing"],"1f647-200d-2640-fe0f":["woman_bowing"],"1f926":["person_facepalming"],"1f926-200d-2642-fe0f":["man_facepalming"],"1f926-200d-2640-fe0f":["woman_facepalming"],"1f937":["person_shrugging"],"1f937-200d-2642-fe0f":["man_shrugging"],"1f937-200d-2640-fe0f":["woman_shrugging"],"1f9d1-200d-2695-fe0f":["person_health_worker"],"1f468-200d-2695-fe0f":["man_health_worker"],"1f469-200d-2695-fe0f":["woman_health_worker"],"1f9d1-200d-1f393":["person_student"],"1f468-200d-1f393":["man_student"],"1f469-200d-1f393":["woman_student"],"1f9d1-200d-1f3eb":["person_teacher"],"1f468-200d-1f3eb":["man_teacher"],"1f469-200d-1f3eb":["woman_teacher"],"1f9d1-200d-2696-fe0f":["person_judge"],"1f468-200d-2696-fe0f":["man_judge"],"1f469-200d-2696-fe0f":["woman_judge"],"1f9d1-200d-1f33e":["person_farmer"],"1f468-200d-1f33e":["man_farmer"],"1f469-200d-1f33e":["woman_farmer"],"1f9d1-200d-1f373":["person_cook"],"1f468-200d-1f373":["man_cook"],"1f469-200d-1f373":["woman_cook"],"1f9d1-200d-1f527":["person_mechanic"],"1f468-200d-1f527":["man_mechanic"],"1f469-200d-1f527":["woman_mechanic"],"1f9d1-200d-1f3ed":["person_factory_worker"],"1f468-200d-1f3ed":["man_factory_worker"],"1f469-200d-1f3ed":["woman_factory_worker"],"1f9d1-200d-1f4bc":["person_office_worker"],"1f468-200d-1f4bc":["man_office_worker"],"1f469-200d-1f4bc":["woman_office_worker"],"1f9d1-200d-1f52c":["person_scientist"],"1f468-200d-1f52c":["man_scientist"],"1f469-200d-1f52c":["woman_scientist"],"1f9d1-200d-1f4bb":["person_technologist"],"1f468-200d-1f4bb":["man_technologist"],"1f469-200d-1f4bb":["woman_technologist"],"1f9d1-200d-1f3a4":["person_singer"],"1f468-200d-1f3a4":["man_singer"],"1f469-200d-1f3a4":["woman_singer"],"1f9d1-200d-1f3a8":["person_artist"],"1f468-200d-1f3a8":["man_artist"],"1f469-200d-1f3a8":["woman_artist"],"1f9d1-200d-2708-fe0f":["person_pilot"],"1f468-200d-2708-fe0f":["man_pilot"],"1f469-200d-2708-fe0f":["woman_pilot"],"1f9d1-200d-1f680":["person_astronaut"],"1f468-200d-1f680":["man_astronaut"],"1f469-200d-1f680":["woman_astronaut"],"1f9d1-200d-1f692":["person_firefighter"],"1f468-200d-1f692":["man_firefighter"],"1f469-200d-1f692":["woman_firefighter"],"1f46e":["police_officer"],"1f46e-200d-2642-fe0f":["man_police_officer"],"1f46e-200d-2640-fe0f":["woman_police_officer"],"1f575":["detective"],"1f575-fe0f-200d-2642-fe0f":["man_detective"],"1f575-fe0f-200d-2640-fe0f":["woman_detective"],"1f482":["guard"],"1f482-200d-2642-fe0f":["man_guard"],"1f482-200d-2640-fe0f":["woman_guard"],"1f977":["ninja"],"1f477":["construction_worker"],"1f477-200d-2642-fe0f":["man_construction_worker"],"1f477-200d-2640-fe0f":["woman_construction_worker"],"1f934":["prince"],"1f478":["princess"],"1f473":["person_turban"],"1f473-200d-2642-fe0f":["man_turban"],"1f473-200d-2640-fe0f":["woman_turban"],"1f472":["man_chinese_cap"],"1f9d5":["woman_headscarf"],"1f935":["man_tuxedo"],"1f935-200d-2642-fe0f":["man_in_tuxedo"],"1f935-200d-2640-fe0f":["woman_in_tuxedo"],"1f470":["person_veiled_bride","bride_veil"],"1f470-200d-2642-fe0f":["man_veiled_bride"],"1f470-200d-2640-fe0f":["woman_veiled_bride"],"1f930":["pregnant_woman"],"1f931":["breast_feeding"],"1f469-200d-1f37c":["woman_feeding_baby"],"1f468-200d-1f37c":["man_feeding_baby"],"1f9d1-200d-1f37c":["person_feeding_baby"],"1f47c":["baby_angel"],"1f385":["santa"],"1f936":["mrs_claus"],"1f9d1-200d-1f384":["mx_claus"],"1f9b8":["hero","superhero"],"1f9b8-200d-2642-fe0f":["man_hero"],"1f9b8-200d-2640-fe0f":["woman_hero"],"1f9b9":["villain","supervillain"],"1f9b9-200d-2642-fe0f":["man_villain"],"1f9b9-200d-2640-fe0f":["woman_villain"],"1f9d9":["mage"],"1f9d9-200d-2642-fe0f":["man_mage"],"1f9d9-200d-2640-fe0f":["woman_mage"],"1f9da":["fairy"],"1f9da-200d-2642-fe0f":["man_fairy"],"1f9da-200d-2640-fe0f":["woman_fairy"],"1f9db":["vampire"],"1f9db-200d-2642-fe0f":["man_vampire"],"1f9db-200d-2640-fe0f":["woman_vampire"],"1f9dc":["merperson"],"1f9dc-200d-2642-fe0f":["merman"],"1f9dc-200d-2640-fe0f":["mermaid"],"1f9dd":["elf"],"1f9dd-200d-2642-fe0f":["man_elf"],"1f9dd-200d-2640-fe0f":["woman_elf"],"1f9de":["genie"],"1f9de-200d-2642-fe0f":["man_genie"],"1f9de-200d-2640-fe0f":["woman_genie"],"1f9df":["zombie"],"1f9df-200d-2642-fe0f":["man_zombie"],"1f9df-200d-2640-fe0f":["woman_zombie"],"1f486":["person_getting_massage"],"1f486-200d-2642-fe0f":["man_getting_face_massage"],"1f486-200d-2640-fe0f":["woman_getting_face_massage"],"1f487":["person_getting_haircut"],"1f487-200d-2642-fe0f":["man_getting_haircut"],"1f487-200d-2640-fe0f":["woman_getting_haircut"],"1f6b6":["person_walking"],"1f6b6-200d-2642-fe0f":["man_walking"],"1f6b6-200d-2640-fe0f":["woman_walking"],"1f9cd":["person_standing"],"1f9cd-200d-2642-fe0f":["man_standing"],"1f9cd-200d-2640-fe0f":["woman_standing"],"1f9ce":["person_kneeling"],"1f9ce-200d-2642-fe0f":["man_kneeling"],"1f9ce-200d-2640-fe0f":["woman_kneeling"],"1f9d1-200d-1f9af":["person_probing_cane"],"1f468-200d-1f9af":["man_probing_cane"],"1f469-200d-1f9af":["woman_probing_cane"],"1f9d1-200d-1f9bc":["person_motor_wheelchair"],"1f468-200d-1f9bc":["man_motor_wheelchair"],"1f469-200d-1f9bc":["woman_motor_wheelchair"],"1f9d1-200d-1f9bd":["person_wheelchair"],"1f468-200d-1f9bd":["man_wheelchair"],"1f469-200d-1f9bd":["woman_wheelchair"],"1f3c3":["person_running"],"1f3c3-200d-2642-fe0f":["man_running"],"1f3c3-200d-2640-fe0f":["woman_running"],"1f483":["dancer","woman_dancing"],"1f57a":["man_dancing"],"1f574":["levitate"],"1f46f":["people_bunny_ears_partying"],"1f46f-200d-2642-fe0f":["men_bunny_ears_partying"],"1f46f-200d-2640-fe0f":["women_bunny_ears_partying"],"1f9d6":["person_steamy_room"],"1f9d6-200d-2642-fe0f":["man_steamy_room"],"1f9d6-200d-2640-fe0f":["woman_steamy_room"],"1f9d7":["person_climbing"],"1f9d7-200d-2642-fe0f":["man_climbing"],"1f9d7-200d-2640-fe0f":["woman_climbing"],"1f93a":["person_fencing"],"1f3c7":["horse_racing"],"26f7":["skier"],"1f3c2":["snowboarder"],"1f3cc":["person_golfing"],"1f3cc-fe0f-200d-2642-fe0f":["man_golfing"],"1f3cc-fe0f-200d-2640-fe0f":["woman_golfing"],"1f3c4":["person_surfing"],"1f3c4-200d-2642-fe0f":["man_surfing"],"1f3c4-200d-2640-fe0f":["woman_surfing"],"1f6a3":["person_rowing_boat"],"1f6a3-200d-2642-fe0f":["man_rowing_boat"],"1f6a3-200d-2640-fe0f":["woman_rowing_boat"],"1f3ca":["person_swimming"],"1f3ca-200d-2642-fe0f":["man_swimming"],"1f3ca-200d-2640-fe0f":["woman_swimming"],"26f9":["person_bouncing_ball"],"26f9-fe0f-200d-2642-fe0f":["man_bouncing_ball"],"26f9-fe0f-200d-2640-fe0f":["woman_bouncing_ball"],"1f3cb":["person_lifting_weights"],"1f3cb-fe0f-200d-2642-fe0f":["man_lifting_weights"],"1f3cb-fe0f-200d-2640-fe0f":["woman_lifting_weights"],"1f6b4":["person_biking"],"1f6b4-200d-2642-fe0f":["man_biking"],"1f6b4-200d-2640-fe0f":["woman_biking"],"1f6b5":["person_mountain_biking"],"1f6b5-200d-2642-fe0f":["man_mountain_biking"],"1f6b5-200d-2640-fe0f":["woman_mountain_biking"],"1f938":["person_cartwheel"],"1f938-200d-2642-fe0f":["man_cartwheeling"],"1f938-200d-2640-fe0f":["woman_cartwheeling"],"1f93c":["people_wrestling"],"1f93c-200d-2642-fe0f":["men_wrestling"],"1f93c-200d-2640-fe0f":["women_wrestling"],"1f93d":["person_water_polo"],"1f93d-200d-2642-fe0f":["man_water_polo"],"1f93d-200d-2640-fe0f":["woman_water_polo"],"1f93e":["person_handball"],"1f93e-200d-2642-fe0f":["man_handball"],"1f93e-200d-2640-fe0f":["woman_handball"],"1f939":["person_juggling"],"1f939-200d-2642-fe0f":["man_juggling"],"1f939-200d-2640-fe0f":["woman_juggling"],"1f9d8":["person_lotus_position"],"1f9d8-200d-2642-fe0f":["man_lotus_position"],"1f9d8-200d-2640-fe0f":["woman_lotus_position"],"1f6c0":["bath"],"1f6cc":["in_bed"],"1f9d1-200d-1f91d-200d-1f9d1":["holding_hands_people"],"1f46d":["holding_hands_ww"],"1f46b":["holding_hands_mw","holding_hands_wm"],"1f46c":["holding_hands_mm"],"1f48f":["couple"],"1f469-200d-2764-fe0f-200d-1f48b-200d-1f468":["kiss_mw","kiss_wm"],"1f468-200d-2764-fe0f-200d-1f48b-200d-1f468":["kiss_mm"],"1f469-200d-2764-fe0f-200d-1f48b-200d-1f469":["kiss_ww"],"1f491":["couple_heart"],"1f469-200d-2764-fe0f-200d-1f468":["couple_mw","couple_wm"],"1f468-200d-2764-fe0f-200d-1f468":["couple_mm"],"1f469-200d-2764-fe0f-200d-1f469":["couple_ww"],"1f46a":["family"],"1f468-200d-1f469-200d-1f466":["family_mwb"],"1f468-200d-1f469-200d-1f467":["family_mwg"],"1f468-200d-1f469-200d-1f467-200d-1f466":["family_mwgb"],"1f468-200d-1f469-200d-1f466-200d-1f466":["family_mwbb"],"1f468-200d-1f469-200d-1f467-200d-1f467":["family_mwgg"],"1f468-200d-1f468-200d-1f466":["family_mmb"],"1f468-200d-1f468-200d-1f467":["family_mmg"],"1f468-200d-1f468-200d-1f467-200d-1f466":["family_mmgb"],"1f468-200d-1f468-200d-1f466-200d-1f466":["family_mmbb"],"1f468-200d-1f468-200d-1f467-200d-1f467":["family_mmgg"],"1f469-200d-1f469-200d-1f466":["family_wwb"],"1f469-200d-1f469-200d-1f467":["family_wwg"],"1f469-200d-1f469-200d-1f467-200d-1f466":["family_wwgb"],"1f469-200d-1f469-200d-1f466-200d-1f466":["family_wwbb"],"1f469-200d-1f469-200d-1f467-200d-1f467":["family_wwgg"],"1f468-200d-1f466":["family_mb"],"1f468-200d-1f466-200d-1f466":["family_mbb"],"1f468-200d-1f467":["family_mg"],"1f468-200d-1f467-200d-1f466":["family_mgb"],"1f468-200d-1f467-200d-1f467":["family_mgg"],"1f469-200d-1f466":["family_wb"],"1f469-200d-1f466-200d-1f466":["family_wbb"],"1f469-200d-1f467":["family_wg"],"1f469-200d-1f467-200d-1f466":["family_wgb"],"1f469-200d-1f467-200d-1f467":["family_wgg"],"1f5e3":["speaking_head"],"1f464":["bust_silhouette"],"1f465":["busts_silhouette"],"1fac2":["people_hugging"],"1f463":["footprints"],"1f3fb":["tone_light","tone1"],"1f3fc":["tone_medium_light","tone2"],"1f3fd":["tone_medium","tone3"],"1f3fe":["tone_medium_dark","tone4"],"1f3ff":["tone_dark","tone5"],"1f9b0":["red_hair"],"1f9b1":["curly_hair"],"1f9b3":["white_hair"],"1f9b2":["bald"],"1f435":["monkey_face"],"1f412":["monkey"],"1f98d":["gorilla"],"1f9a7":["orangutan"],"1f436":["dog_face"],"1f415":["dog"],"1f9ae":["guide_dog"],"1f415-200d-1f9ba":["service_dog"],"1f429":["poodle"],"1f43a":["wolf_face"],"1f98a":["fox_face"],"1f99d":["raccoon"],"1f431":["cat_face"],"1f408":["cat"],"1f408-200d-2b1b":["black_cat"],"1f981":["lion_face"],"1f42f":["tiger_face"],"1f405":["tiger"],"1f406":["leopard"],"1f434":["horse_face"],"1f40e":["horse"],"1f984":["unicorn_face"],"1f993":["zebra"],"1f98c":["deer"],"1f9ac":["bison"],"1f42e":["cow_face"],"1f402":["ox"],"1f403":["water_buffalo"],"1f404":["cow"],"1f437":["pig_face"],"1f416":["pig"],"1f417":["boar"],"1f43d":["pig_nose"],"1f40f":["ram"],"1f411":["sheep"],"1f410":["goat"],"1f42a":["camel"],"1f42b":["two_hump_camel"],"1f999":["llama"],"1f992":["giraffe"],"1f418":["elephant"],"1f9a3":["mammoth"],"1f98f":["rhino"],"1f99b":["hippo"],"1f42d":["mouse_face"],"1f401":["mouse"],"1f400":["rat"],"1f439":["hamster_face"],"1f430":["rabbit_face"],"1f407":["rabbit"],"1f43f":["chipmunk"],"1f9ab":["beaver"],"1f994":["hedgehog"],"1f987":["bat"],"1f43b":["bear_face"],"1f43b-200d-2744-fe0f":["polar_bear_face"],"1f428":["koala_face"],"1f43c":["panda_face"],"1f9a5":["sloth"],"1f9a6":["otter"],"1f9a8":["skunk"],"1f998":["kangaroo"],"1f9a1":["badger"],"1f43e":["feet"],"1f983":["turkey"],"1f414":["chicken"],"1f413":["rooster"],"1f423":["hatching_chick"],"1f424":["baby_chick"],"1f425":["hatched_chick"],"1f426":["bird"],"1f427":["penguin"],"1f54a":["dove"],"1f985":["eagle"],"1f986":["duck"],"1f9a2":["swan"],"1f989":["owl"],"1f9a4":["dodo"],"1fab6":["feather"],"1f9a9":["flamingo"],"1f99a":["peacock"],"1f99c":["parrot"],"1f438":["frog_face"],"1f40a":["crocodile"],"1f422":["turtle"],"1f98e":["lizard"],"1f40d":["snake"],"1f432":["dragon_face"],"1f409":["dragon"],"1f995":["sauropod"],"1f996":["trex"],"1f433":["spouting_whale"],"1f40b":["whale"],"1f42c":["dolphin"],"1f9ad":["seal"],"1f41f":["fish"],"1f420":["tropical_fish"],"1f421":["blowfish"],"1f988":["shark"],"1f419":["octopus"],"1f41a":["shell"],"1f40c":["snail"],"1f98b":["butterfly"],"1f41b":["bug"],"1f41c":["ant"],"1f41d":["bee"],"1fab2":["beetle"],"1f41e":["lady_bug"],"1f997":["cricket"],"1fab3":["cockroach"],"1f577":["spider"],"1f578":["spider_web"],"1f982":["scorpion"],"1f99f":["mosquito"],"1fab0":["fly"],"1fab1":["worm"],"1f9a0":["microbe","germ"],"1f490":["bouquet"],"1f338":["cherry_blossom"],"1f4ae":["white_flower"],"1f3f5":["rosette"],"1f339":["rose"],"1f940":["wilted_rose"],"1f33a":["hibiscus"],"1f33b":["sunflower"],"1f33c":["blossom"],"1f337":["tulip"],"1f331":["seedling"],"1fab4":["potted_plant"],"1f332":["evergreen_tree"],"1f333":["deciduous_tree"],"1f334":["palm_tree"],"1f335":["cactus"],"1f33e":["ear_of_rice"],"1f33f":["herb"],"1f340":["four_leaf_clover"],"1f341":["maple_leaf"],"1f342":["fallen_leaf"],"1f343":["leaves"],"1f347":["grapes"],"1f348":["melon"],"1f349":["watermelon"],"1f34a":["tangerine"],"1f34b":["lemon"],"1f34c":["banana"],"1f34d":["pineapple"],"1f96d":["mango"],"1f34e":["apple"],"1f34f":["green_apple"],"1f350":["pear"],"1f351":["peach"],"1f352":["cherries"],"1f353":["strawberry"],"1fad0":["blueberry"],"1f95d":["kiwi"],"1f345":["tomato"],"1fad2":["olive"],"1f965":["coconut"],"1f951":["avocado"],"1f346":["eggplant"],"1f954":["potato"],"1f955":["carrot"],"1f33d":["corn"],"1f336":["hot_pepper"],"1fad1":["bell_pepper"],"1f952":["cucumber"],"1f96c":["leafy_green"],"1f966":["broccoli"],"1f9c4":["garlic"],"1f9c5":["onion"],"1f344":["mushroom"],"1f95c":["peanuts"],"1f330":["chestnut"],"1f35e":["bread"],"1f950":["croissant"],"1f956":["french_bread"],"1fad3":["flatbread"],"1f968":["pretzel"],"1f96f":["bagel"],"1f95e":["pancakes"],"1f9c7":["waffle"],"1f9c0":["cheese"],"1f356":["meat_on_bone"],"1f357":["poultry_leg"],"1f969":["cut_of_meat"],"1f953":["bacon"],"1f354":["hamburger"],"1f35f":["fries"],"1f355":["pizza"],"1f32d":["hotdog"],"1f96a":["sandwich"],"1f32e":["taco"],"1f32f":["burrito"],"1fad4":["tamale"],"1f959":["stuffed_flatbread"],"1f9c6":["falafel"],"1f95a":["egg"],"1f373":["cooking"],"1f958":["shallow_pan_of_food"],"1f372":["stew"],"1fad5":["fondue"],"1f963":["bowl_spoon"],"1f957":["salad"],"1f37f":["popcorn"],"1f9c8":["butter"],"1f9c2":["salt"],"1f96b":["canned_food"],"1f371":["bento"],"1f358":["rice_cracker"],"1f359":["rice_ball"],"1f35a":["rice"],"1f35b":["curry"],"1f35c":["ramen"],"1f35d":["spaghetti"],"1f360":["sweet_potato"],"1f362":["oden"],"1f363":["sushi"],"1f364":["fried_shrimp"],"1f365":["fish_cake"],"1f96e":["moon_cake"],"1f361":["dango"],"1f95f":["dumpling"],"1f960":["fortune_cookie"],"1f961":["takeout_box"],"1f980":["crab"],"1f99e":["lobster"],"1f990":["shrimp"],"1f991":["squid"],"1f9aa":["oyster"],"1f366":["icecream"],"1f367":["shaved_ice"],"1f368":["ice_cream"],"1f369":["doughnut"],"1f36a":["cookie"],"1f382":["birthday"],"1f370":["cake"],"1f9c1":["cupcake"],"1f967":["pie"],"1f36b":["chocolate_bar"],"1f36c":["candy"],"1f36d":["lollipop"],"1f36e":["custard"],"1f36f":["honey_pot"],"1f37c":["baby_bottle"],"1f95b":["milk"],"1fad6":["teapot"],"1f375":["tea"],"1f376":["sake"],"1f37e":["champagne"],"1f377":["wine_glass"],"1f378":["cocktail"],"1f379":["tropical_drink"],"1f37a":["beer"],"1f37b":["beers"],"1f942":["champagne_glass"],"1f943":["tumbler_glass"],"1f964":["cup_straw"],"1f9cb":["bubble_tea","boba_drink"],"1f9c3":["beverage_box","juice_box"],"1f9c9":["mate","yerba_mate"],"1f9ca":["ice"],"1f962":["chopsticks"],"1f37d":["fork_knife_plate"],"1f374":["utensils"],"1f944":["spoon"],"1f52a":["knife"],"1f3fa":["amphora"],"1f30d":["earth_africa"],"1f30e":["earth_americas"],"1f30f":["earth_asia"],"1f310":["globe"],"1f5fa":["map"],"1f5fe":["japan"],"1f9ed":["compass"],"1f3d4":["snowy_mountain"],"26f0":["mountain"],"1f30b":["volcano"],"1f5fb":["mount_fuji"],"1f3d5":["camping"],"1f3d6":["beach"],"1f3dc":["desert"],"1f3dd":["island"],"1f3de":["park"],"1f3df":["stadium"],"1f3db":["classical_building"],"1f3d7":["construction_site"],"1f9f1":["brick"],"1faa8":["rock"],"1fab5":["wood"],"1f6d6":["hut"],"1f3d8":["homes"],"1f3da":["house_abandoned"],"1f3e0":["house"],"1f3e1":["house_garden"],"1f3e2":["office"],"1f3e3":["ja_post_office"],"1f3e4":["post_office"],"1f3e5":["hospital"],"1f3e6":["bank"],"1f3e8":["hotel"],"1f3e9":["love_hotel"],"1f3ea":["convenience_store"],"1f3eb":["school"],"1f3ec":["department_store"],"1f3ed":["factory"],"1f3ef":["japanese_castle"],"1f3f0":["castle","european_castle"],"1f492":["wedding"],"1f5fc":["tokyo_tower"],"1f5fd":["statue_of_liberty"],"26ea":["church"],"1f54c":["mosque"],"1f6d5":["hindu_temple"],"1f54d":["synagogue"],"26e9":["shinto_shrine"],"1f54b":["kaaba"],"26f2":["fountain"],"26fa":["tent"],"1f301":["foggy"],"1f303":["night_stars"],"1f3d9":["cityscape"],"1f304":["sunrise_over_mountains"],"1f305":["sunrise"],"1f306":["dusk"],"1f307":["sunset"],"1f309":["bridge_at_night"],"1f3a0":["carousel_horse"],"1f3a1":["ferris_wheel"],"1f3a2":["roller_coaster"],"1f488":["barber"],"1f3aa":["circus_tent"],"1f682":["steam_locomotive"],"1f683":["railway_car"],"1f684":["bullettrain_side"],"1f685":["bullettrain"],"1f686":["train"],"1f687":["metro"],"1f688":["light_rail"],"1f689":["station"],"1f68a":["tram"],"1f69d":["monorail"],"1f69e":["mountain_railway"],"1f68b":["tram_car"],"1f68c":["bus"],"1f68d":["oncoming_bus"],"1f68e":["trolleybus"],"1f690":["minibus"],"1f691":["ambulance"],"1f692":["fire_engine"],"1f693":["police_car"],"1f694":["oncoming_police_car"],"1f695":["taxi"],"1f696":["oncoming_taxi"],"1f697":["red_car","car"],"1f698":["oncoming_automobile"],"1f699":["blue_car"],"1f6fb":["pickup_truck"],"1f69a":["truck"],"1f69b":["lorry"],"1f69c":["tractor"],"1f3ce":["race_car"],"1f3cd":["motorcycle"],"1f6f5":["motor_scooter"],"1f9bd":["wheelchair"],"1f9bc":["motor_wheelchair"],"1f6fa":["auto_rickshaw"],"1f6b2":["bike"],"1f6f4":["scooter"],"1f6f9":["skateboard"],"1f6fc":["roller_skate"],"1f68f":["bus_stop"],"1f6e3":["motorway"],"1f6e4":["railway_track"],"1f6e2":["oil_drum"],"26fd":["fuel_pump"],"1f6a8":["rotating_light","police_light"],"1f6a5":["traffic_light"],"1f6a6":["vertical_traffic_light"],"1f6d1":["stop_sign","octagonal_sign"],"1f6a7":["construction"],"26f5":["sailboat"],"1f6f6":["canoe"],"1f6a4":["speedboat"],"1f6f3":["cruise_ship"],"26f4":["ferry"],"1f6e5":["motorboat"],"1f6a2":["ship"],"1f6e9":["small_airplane"],"1f6eb":["airplane_departure"],"1f6ec":["airplane_arriving"],"1fa82":["parachute"],"1f4ba":["seat"],"1f681":["helicopter"],"1f69f":["suspension_railway"],"1f6a0":["mountain_cableway"],"1f6a1":["aerial_tramway"],"1f6f0":["satellite"],"1f680":["rocket"],"1f6f8":["flying_saucer"],"1f6ce":["bellhop"],"1f9f3":["luggage"],"231b":["hourglass"],"23f3":["hourglass_flowing"],"231a":["watch"],"23f0":["alarm_clock"],"23f1":["stopwatch"],"23f2":["timer"],"1f570":["clock"],"1f55b":["clock12"],"1f567":["clock1230"],"1f550":["clock1"],"1f55c":["clock130"],"1f551":["clock2"],"1f55d":["clock230"],"1f552":["clock3"],"1f55e":["clock330"],"1f553":["clock4"],"1f55f":["clock430"],"1f554":["clock5"],"1f560":["clock530"],"1f555":["clock6"],"1f561":["clock630"],"1f556":["clock7"],"1f562":["clock730"],"1f557":["clock8"],"1f563":["clock830"],"1f558":["clock9"],"1f564":["clock930"],"1f559":["clock10"],"1f565":["clock1030"],"1f55a":["clock11"],"1f566":["clock1130"],"1f311":["new_moon"],"1f312":["waxing_crescent_moon"],"1f313":["first_quarter_moon"],"1f314":["waxing_gibbous_moon"],"1f315":["full_moon"],"1f316":["waning_gibbous_moon"],"1f317":["last_quarter_moon"],"1f318":["waning_crescent_moon"],"1f319":["crescent_moon"],"1f31a":["new_moon_face"],"1f31b":["first_quarter_moon_face"],"1f31c":["last_quarter_moon_face"],"1f321":["thermometer"],"1f31d":["full_moon_face"],"1f31e":["sun_face"],"1fa90":["ringed_planet","saturn"],"2b50":["star"],"1f31f":["star2","glowing_star"],"1f320":["star3","shooting_star"],"1f30c":["milky_way"],"26c5":["partly_sunny"],"26c8":["storm"],"1f324":["overcast"],"1f325":["cloudy"],"1f326":["sunshower"],"1f327":["rain"],"1f328":["snow"],"1f329":["lightning"],"1f32a":["tornado"],"1f32b":["fog"],"1f32c":["wind_face"],"1f300":["cyclone"],"1f308":["rainbow"],"1f302":["closed_umbrella"],"26f1":["beach_umbrella"],"26a1":["zap","high_voltage"],"26c4":["snowman"],"1f525":["fire"],"1f4a7":["droplet"],"1f30a":["ocean"],"1f383":["jack_o_lantern"],"1f384":["christmas_tree","xmas_tree"],"1f386":["fireworks"],"1f387":["sparkler"],"1f9e8":["firecracker"],"1f388":["balloon"],"1f389":["tada","party"],"1f38a":["confetti_ball"],"1f38b":["tanabata_tree"],"1f38d":["bamboo","pine_decor"],"1f38e":["dolls"],"1f38f":["carp_streamer"],"1f390":["wind_chime"],"1f391":["moon_ceremony","rice_scene"],"1f9e7":["red_envelope"],"1f380":["ribbon"],"1f381":["gift"],"1f397":["reminder_ribbon"],"1f39f":["tickets","admission"],"1f3ab":["ticket"],"1f396":["military_medal"],"1f3c6":["trophy"],"1f3c5":["medal"],"1f947":["first_place"],"1f948":["second_place"],"1f949":["third_place"],"26bd":["soccer"],"26be":["baseball"],"1f94e":["softball"],"1f3c0":["basketball"],"1f3d0":["volleyball"],"1f3c8":["football"],"1f3c9":["rugby"],"1f3be":["tennis"],"1f94f":["flying_disc"],"1f3b3":["bowling"],"1f3cf":["cricket_game"],"1f3d1":["field_hockey"],"1f3d2":["hockey"],"1f94d":["lacrosse"],"1f3d3":["ping_pong"],"1f3f8":["badminton"],"1f94a":["boxing_glove"],"1f94b":["gi","martial_arts_uniform"],"1f945":["goal"],"26f3":["golf"],"26f8":["ice_skate"],"1f3a3":["fishing_pole"],"1f93f":["diving_mask","scuba_mask"],"1f3bd":["running_shirt"],"1f3bf":["ski"],"1f6f7":["sled"],"1f94c":["curling_stone"],"1f3af":["dart"],"1fa80":["yoyo"],"1fa81":["kite"],"1f3b1":["8ball"],"1f52e":["crystal_ball"],"1fa84":["wand"],"1f9ff":["nazar_amulet"],"1f3ae":["video_game"],"1f579":["joystick"],"1f3b0":["slot_machine"],"1f3b2":["game_die"],"1f9e9":["jigsaw","puzzle_piece"],"1f9f8":["teddy_bear"],"1fa85":["pinata"],"1fa86":["nesting_dolls"],"265f":["chess_pawn"],"1f0cf":["black_joker"],"1f004":["mahjong"],"1f3b4":["flower_cards"],"1f3ad":["performing_arts"],"1f5bc":["frame_photo"],"1f3a8":["art","palette"],"1f9f5":["spool"],"1faa1":["sewing_needle"],"1f9f6":["yarn"],"1faa2":["knot"],"1f453":["glasses"],"1f576":["sunglasses"],"1f97d":["goggles"],"1f97c":["lab_coat"],"1f9ba":["safety_vest"],"1f454":["necktie","tie"],"1f455":["shirt"],"1f456":["jeans"],"1f9e3":["scarf"],"1f9e4":["gloves"],"1f9e5":["coat"],"1f9e6":["socks"],"1f457":["dress"],"1f458":["kimono"],"1f97b":["sari"],"1fa71":["one_piece_swimsuit"],"1fa72":["briefs"],"1fa73":["shorts"],"1f459":["bikini"],"1f45a":["blouse","womans_clothes"],"1f45b":["purse"],"1f45c":["handbag"],"1f45d":["pouch","clutch_bag"],"1f6cd":["shopping_bags"],"1f392":["backpack"],"1fa74":["sandal"],"1f45e":["dress_shoe","mans_shoe"],"1f45f":["sneaker","athletic_shoe"],"1f97e":["hiking_boot"],"1f97f":["flat_shoe"],"1f460":["high_heel"],"1f461":["womans_sandal"],"1fa70":["ballet_shoes"],"1f462":["womans_boot"],"1f451":["crown"],"1f452":["womans_hat"],"1f3a9":["top_hat"],"1f393":["graduation_cap"],"1f9e2":["billed_cap"],"1fa96":["military_helmet"],"26d1":["helmet_cross"],"1f4ff":["prayer_beads"],"1f484":["lipstick"],"1f48d":["ring"],"1f48e":["gem"],"1f507":["mute","no_sound"],"1f508":["speaker","low_sound"],"1f509":["sound"],"1f50a":["loud_sound"],"1f4e2":["loudspeaker"],"1f4e3":["megaphone"],"1f4ef":["postal_horn"],"1f514":["bell"],"1f515":["no_bell"],"1f3bc":["musical_score"],"1f3b5":["musical_note"],"1f3b6":["musical_notes"],"1f399":["studio_microphone"],"1f39a":["level_slider"],"1f39b":["control_knobs"],"1f3a4":["microphone"],"1f3a7":["headphones"],"1f4fb":["radio"],"1f3b7":["saxophone"],"1fa97":["accordion"],"1f3b8":["guitar"],"1f3b9":["musical_keyboard"],"1f3ba":["trumpet"],"1f3bb":["violin"],"1fa95":["banjo"],"1f941":["drum"],"1fa98":["long_drum"],"1f4f1":["mobile","iphone","android"],"1f4f2":["mobile_calling"],"260e":["telephone"],"1f4de":["telephone_receiver"],"1f4df":["pager"],"1f4e0":["fax"],"1f50b":["battery"],"1f50c":["electric_plug"],"1f4bb":["laptop"],"1f5a5":["desktop","computer"],"1f5a8":["printer"],"1f5b1":["computer_mouse"],"1f5b2":["trackball"],"1f4bd":["minidisc"],"1f4be":["floppy_disk"],"1f4bf":["cd","disk"],"1f4c0":["dvd"],"1f9ee":["abacus"],"1f3a5":["movie_camera"],"1f39e":["film_frames"],"1f4fd":["projector"],"1f3ac":["clapper"],"1f4fa":["tv"],"1f4f7":["camera"],"1f4f8":["camera_flash"],"1f4f9":["video_camera"],"1f4fc":["vhs"],"1f50d":["mag"],"1f50e":["mag_right"],"1f56f":["candle"],"1f4a1":["bulb","light_bulb"],"1f526":["flashlight"],"1f3ee":["red_lantern"],"1fa94":["diya_lamp"],"1f4d4":["decorative_notebook"],"1f4d5":["closed_book"],"1f4d6":["book"],"1f4d7":["green_book"],"1f4d8":["blue_book"],"1f4d9":["orange_book"],"1f4da":["books"],"1f4d3":["notebook"],"1f4d2":["ledger"],"1f4c3":["page_curl"],"1f4dc":["scroll"],"1f4c4":["page_facing_up"],"1f4f0":["newspaper"],"1f5de":["rolled_newspaper"],"1f4d1":["bookmark_tabs"],"1f516":["bookmark"],"1f3f7":["label"],"1f4b0":["moneybag"],"1fa99":["coin"],"1f4b4":["yen"],"1f4b5":["dollar"],"1f4b6":["euro"],"1f4b7":["pound"],"1f4b8":["money_wings"],"1f4b3":["credit_card"],"1f9fe":["receipt"],"1f4b9":["ja_chart"],"1f4e7":["email"],"1f4e8":["incoming_envelope"],"1f4e9":["envelope_arrow"],"1f4e4":["outbox_tray"],"1f4e5":["inbox_tray"],"1f4e6":["package"],"1f4eb":["mailbox"],"1f4ea":["mailbox_closed"],"1f4ec":["mailbox_mail"],"1f4ed":["mailbox_no_mail"],"1f4ee":["postbox"],"1f5f3":["ballot_box"],"270f":["pencil"],"1f58b":["fountain_pen"],"1f58a":["pen"],"1f58c":["paintbrush"],"1f58d":["crayon"],"1f4dd":["memo"],"1f4bc":["briefcase"],"1f4c1":["file_folder"],"1f4c2":["open_file_folder"],"1f5c2":["dividers"],"1f4c5":["date","calendar"],"1f4c6":["torn_calendar"],"1f5d2":["notepad_spiral"],"1f5d3":["calendar_spiral"],"1f4c7":["card_index"],"1f4c8":["chart_up"],"1f4c9":["chart_down"],"1f4ca":["bar_chart"],"1f4cb":["clipboard"],"1f4cc":["pushpin"],"1f4cd":["round_pushpin"],"1f4ce":["paperclip"],"1f587":["paperclips"],"1f4cf":["straight_ruler"],"1f4d0":["triangular_ruler"],"1f5c3":["card_box"],"1f5c4":["file_cabinet"],"1f5d1":["trashcan","wastebasket"],"1f512":["lock"],"1f513":["unlock"],"1f50f":["locked_pen"],"1f510":["locked_key"],"1f511":["key"],"1f5dd":["old_key"],"1f528":["hammer"],"1fa93":["axe"],"26cf":["pick"],"1f6e0":["tools","hammer_wrench"],"1f5e1":["dagger"],"1f52b":["gun","pistol"],"1fa83":["boomerang"],"1f3f9":["bow"],"1f6e1":["shield"],"1fa9a":["saw"],"1f527":["wrench"],"1fa9b":["screwdriver"],"1f529":["nut_and_bolt"],"1f5dc":["clamp","compression"],"1f9af":["probing_cane"],"1f517":["link"],"26d3":["chains"],"1fa9d":["hook"],"1f9f0":["toolbox"],"1f9f2":["magnet"],"1fa9c":["ladder"],"1f9ea":["test_tube"],"1f9eb":["petri_dish"],"1f9ec":["dna","double_helix"],"1f52c":["microscope"],"1f52d":["telescope"],"1f4e1":["satellite_antenna"],"1f489":["syringe"],"1fa78":["blood_drop"],"1f48a":["pill"],"1fa79":["bandaid","adhesive_bandage"],"1fa7a":["stethoscope"],"1f6aa":["door"],"1f6d7":["elevator"],"1fa9e":["mirror"],"1fa9f":["window"],"1f6cf":["bed"],"1f6cb":["couch"],"1fa91":["chair"],"1f6bd":["toilet"],"1faa0":["plunger"],"1f6bf":["shower"],"1f6c1":["bathtub"],"1faa4":["mouse_trap"],"1fa92":["razor"],"1f9f4":["lotion"],"1f9f7":["safety_pin"],"1f9f9":["broom"],"1f9fa":["basket"],"1f9fb":["toilet_paper"],"1faa3":["bucket"],"1f9fc":["soap"],"1faa5":["toothbrush"],"1f9fd":["sponge"],"1f9ef":["fire_extinguisher"],"1f6d2":["shopping_cart"],"1f6ac":["cigarette","smoking"],"26b0":["coffin"],"1faa6":["headstone"],"26b1":["urn"],"1f5ff":["moai"],"1faa7":["placard"],"1f3e7":["atm"],"1f6ae":["litter_bin"],"1f6b0":["potable_water"],"267f":["handicapped"],"1f6b9":["mens"],"1f6ba":["womens"],"1f6bb":["restroom","bathroom"],"1f6bc":["baby_symbol"],"1f6be":["wc"],"1f6c2":["passport_control"],"1f6c3":["customs"],"1f6c4":["baggage_claim"],"1f6c5":["left_luggage"],"26a0":["warning"],"1f6b8":["children_crossing"],"26d4":["no_entry"],"1f6ab":["no_entry_sign"],"1f6b3":["no_bicycles"],"1f6ad":["no_smoking"],"1f6af":["do_not_litter"],"1f6b1":["non_potable_water"],"1f6b7":["no_pedestrians"],"1f4f5":["no_mobile_phones"],"1f51e":["underage"],"2b06":["arrow_up"],"27a1":["arrow_right"],"2b07":["arrow_down"],"2b05":["arrow_left"],"21a9":["arrow_left_hook"],"21aa":["arrow_right_hook"],"1f503":["clockwise"],"1f504":["counter_clockwise"],"1f519":["back"],"1f51a":["end"],"1f51b":["on"],"1f51c":["soon"],"1f51d":["top"],"1f6d0":["place_of_worship"],"269b":["atom"],"1f549":["om_symbol"],"262f":["yin_yang"],"271d":["cross"],"262a":["star_and_crescent"],"262e":["peace"],"1f54e":["menorah"],"1f52f":["six_pointed_star"],"264a":["gemini"],"264b":["cancer"],"264c":["leo"],"264d":["virgo"],"264e":["libra"],"264f":["scorpius"],"26ce":["ophiuchus"],"1f500":["shuffle"],"1f501":["repeat"],"1f502":["repeat_single"],"25b6":["play"],"23e9":["fast_forward"],"23ed":["next_track"],"23ef":["play_pause"],"25c0":["reverse"],"23ea":["rewind"],"23ee":["previous_track"],"1f53c":["up_button"],"23eb":["fast_up_button"],"1f53d":["down_button"],"23ec":["fast_down_button"],"23f8":["pause"],"23f9":["stop"],"23fa":["record"],"23cf":["eject"],"1f3a6":["cinema"],"1f505":["dim","low_brightness"],"1f506":["bright","high_brightness"],"1f4f6":["signal_strength","antenna_bars"],"1f4f3":["vibration_mode"],"1f4f4":["mobile_phone_off"],"26a7":["trans"],"267e":["infinity"],"203c":["bangbang","double_exclamation"],"1f4b1":["currency_exchange"],"1f4b2":["dollar_sign"],"267b":["recycle"],"269c":["fleur-de-lis"],"1f531":["trident"],"1f4db":["name_badge"],"1f530":["ja_beginner"],"2b55":["o"],"274c":["x","cross_mark"],"274e":["cross_mark_button"],"27b0":["curly_loop"],"27bf":["double_curly_loop"],"303d":["part_alternation_mark"],"a9":["copyright"],"ae":["registered"],"23-20e3":["hash"],"2a-20e3":["asterisk"],"30-20e3":["zero"],"31-20e3":["one"],"32-20e3":["two"],"33-20e3":["three"],"34-20e3":["four"],"35-20e3":["five"],"36-20e3":["six"],"37-20e3":["seven"],"38-20e3":["eight"],"39-20e3":["nine"],"1f51f":["ten"],"1f520":["upper_abcd"],"1f521":["abcd"],"1f522":["1234"],"1f523":["symbols"],"1f524":["abc"],"1f170":["a_blood"],"1f18e":["ab_blood"],"1f171":["b_blood"],"1f191":["cl"],"1f192":["cool"],"1f193":["free"],"1f194":["id"],"24c2":["m"],"1f195":["new"],"1f196":["ng"],"1f17e":["o_blood"],"1f197":["ok"],"1f17f":["p"],"1f198":["sos"],"1f199":["up"],"1f19a":["vs"],"1f201":["ja_here","koko"],"1f202":["ja_service_charge"],"1f237":["ja_monthly_amount"],"1f236":["ja_not_free_of_carge"],"1f22f":["ja_reserved"],"1f250":["ja_bargain"],"1f239":["ja_discount"],"1f21a":["ja_free_of_charge"],"1f232":["ja_prohibited"],"1f251":["ja_acceptable"],"1f238":["ja_application"],"1f234":["ja_passing_grade"],"1f233":["ja_vacancy"],"1f23a":["ja_open_for_business"],"1f235":["ja_no_vacancy"],"1f534":["red_circle"],"1f7e0":["orange_circle"],"1f7e1":["yellow_circle"],"1f7e2":["green_circle"],"1f535":["blue_circle"],"1f7e3":["purple_circle"],"1f7e4":["brown_circle"],"26ab":["black_circle"],"26aa":["white_circle"],"1f7e5":["red_square"],"1f7e7":["orange_square"],"1f7e8":["yellow_square"],"1f7e9":["green_square"],"1f7e6":["blue_square"],"1f7ea":["purple_square"],"1f7eb":["brown_square"],"2b1b":["large_black_square"],"2b1c":["large_white_square"],"25fc":["medium_black_square"],"25fb":["medium_white_square"],"25fe":["medium_small_black_square"],"25fd":["medium_small_white_square"],"25aa":["small_black_square"],"25ab":["small_white_square"],"1f536":["large_orange_diamond"],"1f537":["large_blue_diamond"],"1f538":["small_orange_diamond"],"1f539":["small_blue_diamond"],"1f53a":["up_red_triangle"],"1f53b":["down_red_triangle"],"1f4a0":["diamond_dot"],"1f518":["radio_button"],"1f533":["white_square_button"],"1f532":["black_square_button"],"1f3c1":["checkered_flag"],"1f6a9":["triangle_flag"],"1f38c":["crossed_flags"],"1f3f4":["black_flag"],"1f3f3":["white_flag"],"1f3f3-fe0f-200d-1f308":["rainbow_flag"],"1f3f3-fe0f-200d-26a7-fe0f":["trans_flag"],"1f3f4-200d-2620-fe0f":["pirate_flag","jolly_roger"],"1f1e6-1f1e8":["flag_ac"],"1f1e6-1f1e9":["flag_ad"],"1f1e6-1f1ea":["flag_ae"],"1f1e6-1f1eb":["flag_af"],"1f1e6-1f1ec":["flag_ag"],"1f1e6-1f1ee":["flag_ai"],"1f1e6-1f1f1":["flag_al"],"1f1e6-1f1f2":["flag_am"],"1f1e6-1f1f4":["flag_ao"],"1f1e6-1f1f6":["flag_aq"],"1f1e6-1f1f7":["flag_ar"],"1f1e6-1f1f8":["flag_as"],"1f1e6-1f1f9":["flag_at"],"1f1e6-1f1fa":["flag_au"],"1f1e6-1f1fc":["flag_aw"],"1f1e6-1f1fd":["flag_ax"],"1f1e6-1f1ff":["flag_az"],"1f1e7-1f1e6":["flag_ba"],"1f1e7-1f1e7":["flag_bb"],"1f1e7-1f1e9":["flag_bd"],"1f1e7-1f1ea":["flag_be"],"1f1e7-1f1eb":["flag_bf"],"1f1e7-1f1ec":["flag_bg"],"1f1e7-1f1ed":["flag_bh"],"1f1e7-1f1ee":["flag_bi"],"1f1e7-1f1ef":["flag_bj"],"1f1e7-1f1f1":["flag_bl"],"1f1e7-1f1f2":["flag_bm"],"1f1e7-1f1f3":["flag_bn"],"1f1e7-1f1f4":["flag_bo"],"1f1e7-1f1f6":["flag_bq"],"1f1e7-1f1f7":["flag_br"],"1f1e7-1f1f8":["flag_bs"],"1f1e7-1f1f9":["flag_bt"],"1f1e7-1f1fb":["flag_bv"],"1f1e7-1f1fc":["flag_bw"],"1f1e7-1f1fe":["flag_by"],"1f1e7-1f1ff":["flag_bz"],"1f1e8-1f1e6":["flag_ca"],"1f1e8-1f1e8":["flag_cc"],"1f1e8-1f1e9":["flag_cd"],"1f1e8-1f1eb":["flag_cf"],"1f1e8-1f1ec":["flag_cg"],"1f1e8-1f1ed":["flag_ch"],"1f1e8-1f1ee":["flag_ci"],"1f1e8-1f1f0":["flag_ck"],"1f1e8-1f1f1":["flag_cl"],"1f1e8-1f1f2":["flag_cm"],"1f1e8-1f1f3":["flag_cn"],"1f1e8-1f1f4":["flag_co"],"1f1e8-1f1f5":["flag_cp"],"1f1e8-1f1f7":["flag_cr"],"1f1e8-1f1fa":["flag_cu"],"1f1e8-1f1fb":["flag_cv"],"1f1e8-1f1fc":["flag_cw"],"1f1e8-1f1fd":["flag_cx"],"1f1e8-1f1fe":["flag_cy"],"1f1e8-1f1ff":["flag_cz"],"1f1e9-1f1ea":["flag_de"],"1f1e9-1f1ec":["flag_dg"],"1f1e9-1f1ef":["flag_dj"],"1f1e9-1f1f0":["flag_dk"],"1f1e9-1f1f2":["flag_dm"],"1f1e9-1f1f4":["flag_do"],"1f1e9-1f1ff":["flag_dz"],"1f1ea-1f1e6":["flag_ea"],"1f1ea-1f1e8":["flag_ec"],"1f1ea-1f1ea":["flag_ee"],"1f1ea-1f1ec":["flag_eg"],"1f1ea-1f1ed":["flag_eh"],"1f1ea-1f1f7":["flag_er"],"1f1ea-1f1f8":["flag_es"],"1f1ea-1f1f9":["flag_et"],"1f1ea-1f1fa":["flag_eu"],"1f1eb-1f1ee":["flag_fi"],"1f1eb-1f1ef":["flag_fj"],"1f1eb-1f1f0":["flag_fk"],"1f1eb-1f1f2":["flag_fm"],"1f1eb-1f1f4":["flag_fo"],"1f1eb-1f1f7":["flag_fr"],"1f1ec-1f1e6":["flag_ga"],"1f1ec-1f1e7":["flag_gb"],"1f1ec-1f1e9":["flag_gd"],"1f1ec-1f1ea":["flag_ge"],"1f1ec-1f1eb":["flag_gf"],"1f1ec-1f1ec":["flag_gg"],"1f1ec-1f1ed":["flag_gh"],"1f1ec-1f1ee":["flag_gi"],"1f1ec-1f1f1":["flag_gl"],"1f1ec-1f1f2":["flag_gm"],"1f1ec-1f1f3":["flag_gn"],"1f1ec-1f1f5":["flag_gp"],"1f1ec-1f1f6":["flag_gq"],"1f1ec-1f1f7":["flag_gr"],"1f1ec-1f1f8":["flag_gs"],"1f1ec-1f1f9":["flag_gt"],"1f1ec-1f1fa":["flag_gu"],"1f1ec-1f1fc":["flag_gw"],"1f1ec-1f1fe":["flag_gy"],"1f1ed-1f1f0":["flag_hk"],"1f1ed-1f1f2":["flag_hm"],"1f1ed-1f1f3":["flag_hn"],"1f1ed-1f1f7":["flag_hr"],"1f1ed-1f1f9":["flag_ht"],"1f1ed-1f1fa":["flag_hu"],"1f1ee-1f1e8":["flag_ic"],"1f1ee-1f1e9":["flag_id"],"1f1ee-1f1ea":["flag_ie"],"1f1ee-1f1f1":["flag_il"],"1f1ee-1f1f2":["flag_im"],"1f1ee-1f1f3":["flag_in"],"1f1ee-1f1f4":["flag_io"],"1f1ee-1f1f6":["flag_iq"],"1f1ee-1f1f7":["flag_ir"],"1f1ee-1f1f8":["flag_is"],"1f1ee-1f1f9":["flag_it"],"1f1ef-1f1ea":["flag_je"],"1f1ef-1f1f2":["flag_jm"],"1f1ef-1f1f4":["flag_jo"],"1f1ef-1f1f5":["flag_jp"],"1f1f0-1f1ea":["flag_ke"],"1f1f0-1f1ec":["flag_kg"],"1f1f0-1f1ed":["flag_kh"],"1f1f0-1f1ee":["flag_ki"],"1f1f0-1f1f2":["flag_km"],"1f1f0-1f1f3":["flag_kn"],"1f1f0-1f1f5":["flag_kp"],"1f1f0-1f1f7":["flag_kr"],"1f1f0-1f1fc":["flag_kw"],"1f1f0-1f1fe":["flag_ky"],"1f1f0-1f1ff":["flag_kz"],"1f1f1-1f1e6":["flag_la"],"1f1f1-1f1e7":["flag_lb"],"1f1f1-1f1e8":["flag_lc"],"1f1f1-1f1ee":["flag_li"],"1f1f1-1f1f0":["flag_lk"],"1f1f1-1f1f7":["flag_lr"],"1f1f1-1f1f8":["flag_ls"],"1f1f1-1f1f9":["flag_lt"],"1f1f1-1f1fa":["flag_lu"],"1f1f1-1f1fb":["flag_lv"],"1f1f1-1f1fe":["flag_ly"],"1f1f2-1f1e6":["flag_ma"],"1f1f2-1f1e8":["flag_mc"],"1f1f2-1f1e9":["flag_md"],"1f1f2-1f1ea":["flag_me"],"1f1f2-1f1eb":["flag_mf"],"1f1f2-1f1ec":["flag_mg"],"1f1f2-1f1ed":["flag_mh"],"1f1f2-1f1f0":["flag_mk"],"1f1f2-1f1f1":["flag_ml"],"1f1f2-1f1f2":["flag_mm"],"1f1f2-1f1f3":["flag_mn"],"1f1f2-1f1f4":["flag_mo"],"1f1f2-1f1f5":["flag_mp"],"1f1f2-1f1f6":["flag_mq"],"1f1f2-1f1f7":["flag_mr"],"1f1f2-1f1f8":["flag_ms"],"1f1f2-1f1f9":["flag_mt"],"1f1f2-1f1fa":["flag_mu"],"1f1f2-1f1fb":["flag_mv"],"1f1f2-1f1fc":["flag_mw"],"1f1f2-1f1fd":["flag_mx"],"1f1f2-1f1fe":["flag_my"],"1f1f2-1f1ff":["flag_mz"],"1f1f3-1f1e6":["flag_na"],"1f1f3-1f1e8":["flag_nc"],"1f1f3-1f1ea":["flag_ne"],"1f1f3-1f1eb":["flag_nf"],"1f1f3-1f1ec":["flag_ng"],"1f1f3-1f1ee":["flag_ni"],"1f1f3-1f1f1":["flag_nl"],"1f1f3-1f1f4":["flag_no"],"1f1f3-1f1f5":["flag_np"],"1f1f3-1f1f7":["flag_nr"],"1f1f3-1f1fa":["flag_nu"],"1f1f3-1f1ff":["flag_nz"],"1f1f4-1f1f2":["flag_om"],"1f1f5-1f1e6":["flag_pa"],"1f1f5-1f1ea":["flag_pe"],"1f1f5-1f1eb":["flag_pf"],"1f1f5-1f1ec":["flag_pg"],"1f1f5-1f1ed":["flag_ph"],"1f1f5-1f1f0":["flag_pk"],"1f1f5-1f1f1":["flag_pl"],"1f1f5-1f1f2":["flag_pm"],"1f1f5-1f1f3":["flag_pn"],"1f1f5-1f1f7":["flag_pr"],"1f1f5-1f1f8":["flag_ps"],"1f1f5-1f1f9":["flag_pt"],"1f1f5-1f1fc":["flag_pw"],"1f1f5-1f1fe":["flag_py"],"1f1f6-1f1e6":["flag_qa"],"1f1f7-1f1ea":["flag_re"],"1f1f7-1f1f4":["flag_ro"],"1f1f7-1f1f8":["flag_rs"],"1f1f7-1f1fa":["flag_ru"],"1f1f7-1f1fc":["flag_rw"],"1f1f8-1f1e6":["flag_sa"],"1f1f8-1f1e7":["flag_sb"],"1f1f8-1f1e8":["flag_sc"],"1f1f8-1f1e9":["flag_sd"],"1f1f8-1f1ea":["flag_se"],"1f1f8-1f1ec":["flag_sg"],"1f1f8-1f1ed":["flag_sh"],"1f1f8-1f1ee":["flag_si"],"1f1f8-1f1ef":["flag_sj"],"1f1f8-1f1f0":["flag_sk"],"1f1f8-1f1f1":["flag_sl"],"1f1f8-1f1f2":["flag_sm"],"1f1f8-1f1f3":["flag_sn"],"1f1f8-1f1f4":["flag_so"],"1f1f8-1f1f7":["flag_sr"],"1f1f8-1f1f8":["flag_ss"],"1f1f8-1f1f9":["flag_st"],"1f1f8-1f1fb":["flag_sv"],"1f1f8-1f1fd":["flag_sx"],"1f1f8-1f1fe":["flag_sy"],"1f1f8-1f1ff":["flag_sz"],"1f1f9-1f1e6":["flag_ta"],"1f1f9-1f1e8":["flag_tc"],"1f1f9-1f1e9":["flag_td"],"1f1f9-1f1eb":["flag_tf"],"1f1f9-1f1ec":["flag_tg"],"1f1f9-1f1ed":["flag_th"],"1f1f9-1f1ef":["flag_tj"],"1f1f9-1f1f0":["flag_tk"],"1f1f9-1f1f1":["flag_tl"],"1f1f9-1f1f2":["flag_tm"],"1f1f9-1f1f3":["flag_tn"],"1f1f9-1f1f4":["flag_to"],"1f1f9-1f1f7":["flag_tr"],"1f1f9-1f1f9":["flag_tt"],"1f1f9-1f1fb":["flag_tv"],"1f1f9-1f1fc":["flag_tw"],"1f1f9-1f1ff":["flag_tz"],"1f1fa-1f1e6":["flag_ua"],"1f1fa-1f1ec":["flag_ug"],"1f1fa-1f1f2":["flag_um"],"1f1fa-1f1f3":["flag_un"],"1f1fa-1f1f8":["flag_us","usa"],"1f1fa-1f1fe":["flag_uy"],"1f1fa-1f1ff":["flag_uz"],"1f1fb-1f1e6":["flag_va"],"1f1fb-1f1e8":["flag_vc"],"1f1fb-1f1ea":["flag_ve"],"1f1fb-1f1ec":["flag_vg"],"1f1fb-1f1ee":["flag_vi"],"1f1fb-1f1f3":["flag_vn"],"1f1fb-1f1fa":["flag_vu"],"1f1fc-1f1eb":["flag_wf"],"1f1fc-1f1f8":["flag_ws"],"1f1fd-1f1f0":["flag_xk"],"1f1fe-1f1ea":["flag_ye"],"1f1fe-1f1f9":["flag_yt"],"1f1ff-1f1e6":["flag_za"],"1f1ff-1f1f2":["flag_zm"],"1f1ff-1f1fc":["flag_zw"],"1f3f4-e0067-e0062-e0065-e006e-e0067-e007f":["flag_gbeng","england"],"1f3f4-e0067-e0062-e0073-e0063-e0074-e007f":["flag_gbsct","scotland"],"1f3f4-e0067-e0062-e0077-e006c-e0073-e007f":["flag_gbwls","wales"]}')},function(f){f.exports=JSON.parse("{}")},function(f,e){f.exports=flarum.core.compat["models/Forum"]},function(f,e,a){"use strict";a.d(e,"a",(function(){return i}));var n=a(1),o=a(0),t=a.n(o),r=a(6),i=function(f){function e(){return f.apply(this,arguments)||this}return Object(n.a)(e,f),e}(a.n(r)()(t.a,{identifier:t.a.attribute("identifier"),display:t.a.attribute("display"),type:t.a.attribute("type"),enabled:t.a.attribute("enabled"),user_id:t.a.attribute("user_id"),post_id:t.a.attribute("post_id"),reaction_id:t.a.attribute("reaction_id")}))},,function(f,e){f.exports=flarum.core.compat["components/Alert"]},function(f,e){f.exports=flarum.core.compat.Component},function(f,e){f.exports=flarum.core.compat["models/Post"]},function(f,e){f.exports=flarum.core.compat["utils/extract"]},,,function(f,e,a){"use strict";var n=a(3),o=a(2),t=a.n(o),r=a(11),i=a.n(r),c=a(22),l=a.n(c),s=a(16),_=a.n(s),d=a(0),g=a.n(d),u=a(23),p=a.n(u),b=a(1),h=a(24),w=a.n(h),y=a(25),k=a.n(y),v=a(5),x=function(f){function e(){return f.apply(this,arguments)||this}Object(b.a)(e,f);var a=e.prototype;return a.icon=function(){return"fas fa-heart"},a.href=function(){return app.route.post(this.attrs.notification.subject())},a.content=function(){var f=this.attrs.notification,e=JSON.parse(f.content()),a=e.identifier,n=e.type,o=f.fromUser(),t="emoji"===n?m("img",{src:Object(v.a)(a).url,loading:"lazy",height:"14px"}):k()(a);return app.translator.trans("fof-reactions.forum.notification",{user:o,reaction:t})},a.excerpt=function(){return this.attrs.notification.subject().contentPlain()},e}(w.a),j=a(12),R=a(6),O=function(f){function e(){return f.apply(this,arguments)||this}return Object(b.a)(e,f),e}(a.n(R)()(g.a,{reaction:g.a.hasOne("reaction"),userId:g.a.attribute("userId"),postId:g.a.attribute("postId"),reactionId:g.a.attribute("reactionId"),user:g.a.hasOne("user"),post:g.a.hasOne("post")})),z=a(26),C=a.n(z),q=a(27),N=a.n(q),I=function(f){return app.store.find("posts",f,{include:"reactions"}).then((function(){return m.redraw()}))},M=[],S=function(f){var e=M[f];return e?e(f):(e=M[f]=C()(I,1500))(f)},P=a(28),B=a.n(P),A=(a(14),a(15)),T=a.n(A),L=a(29),E=a.n(L),G=a(4),U=a.n(G),Z=a(30),D=a.n(Z),F=a(31),J=a.n(F),W=function(f,e){return f.map("function"==typeof e?e:function(f){return f[e]}).reduce((function(e,a,n){return e[a]=(e[a]||[]).concat(f[n]),e}),{})};function H(){return(H=Object.assign||function(f){for(var e=1;e=f.length?{done:!0}:{done:!1,value:f[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(a=f[Symbol.iterator]()).next.bind(a)}function Y(f,e){(null==e||e>f.length)&&(e=f.length);for(var a=0,n=new Array(e);a1?m("span",{className:"count"},t):""))}}))),(!Object.keys(this.loading).length||this.loading.null)&&!this.reaction&&a&&m("div",{className:"Reactions--react"},this.reactButton(),m("div",{className:"CommentPost--Reactions",style:1===this.post.number()?"":"left: -28%;"},m("ul",{className:"Reactions--Ul"},D()(this.getReactions().toArray())))))},a.reactButton=function(){return m(U.a,{className:"Button Button--link Reactions--ShowReactions",type:"Button",title:"React",loading:this.loading.null},m("span",{className:"Button-label"},m("svg",{class:"button-react",width:"20px",height:"20px",viewBox:"0 0 18 18"},"/* Generator: Sketch 40.3 (33839) - http://www.bohemiancoding.com/sketch */",m("g",{id:"Page-1",stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},m("g",{id:"ic_reactions_grey_16px"},m("g",{id:"Group-2"},m("g",{id:"0:0:0:0"},m("rect",{id:"Rectangle-5",x:"0",y:"0",width:"18",height:"18"}),m("g",{id:"emoticon"}),m("path",{d:"M14.6332705,7.33333333 C14.6554304,7.55389388 14.6666667,7.77636769 14.6666667,8 C14.6666667,11.6818983 11.6818983,14.6666667 8,14.6666667 C6.23189007,14.6666667 4.53619732,13.9642877 3.28595479,12.7140452 C2.03571227,11.4638027 1.33333333,9.76810993 1.33333333,8 C1.33333333,4.33333333 4.31333333,1.33333333 8,1.33333333 L8,1.33333333 C8.22363231,1.33333333 8.44610612,1.3445696 8.66666667,1.36672949 L8.66666667,2.70847693 C8.44668912,2.68076722 8.22407146,2.66666667 8,2.66666667 C5.05448133,2.66666667 2.66666667,5.05448133 2.66666667,8 C2.66666667,10.9455187 5.05448133,13.3333333 8,13.3333333 C10.9455187,13.3333333 13.3333333,10.9455187 13.3333333,8 C13.3333333,7.77592854 13.3192328,7.55331088 13.2915231,7.33333333 L14.6332705,7.33333333 Z M8,11.6666667 C9.55333333,11.6666667 10.8666667,10.6933333 11.4066667,9.33333333 L4.59333333,9.33333333 C5.12666667,10.6933333 6.44666667,11.6666667 8,11.6666667 Z M10.3333333,7.33333333 C10.8856181,7.33333333 11.3333333,6.88561808 11.3333333,6.33333333 C11.3333333,5.78104858 10.8856181,5.33333333 10.3333333,5.33333333 C9.78104858,5.33333333 9.33333333,5.78104858 9.33333333,6.33333333 C9.33333333,6.88561808 9.78104858,7.33333333 10.3333333,7.33333333 L10.3333333,7.33333333 Z M5.66666667,7.33333333 C6.21895142,7.33333333 6.66666667,6.88561808 6.66666667,6.33333333 C6.66666667,5.78104858 6.21895142,5.33333333 5.66666667,5.33333333 C5.11438192,5.33333333 4.66666667,5.78104858 4.66666667,6.33333333 C4.66666667,6.88561808 5.11438192,7.33333333 5.66666667,7.33333333 Z",id:"Combined-Shape",fill:"#667c99"})),m("g",{id:"Group-15",transform:"translate(10.666667, 0.000000)",fill:"#667c99"},m("polygon",{id:"Path",points:"3.33333333 2 3.33333333 0 2 0 2 2 0 2 0 3.33333333 2 3.33333333 2 5.33333333 3.33333333 5.33333333 3.33333333 3.33333333 5.33333333 3.33333333 5.33333333 2"}))))))))},a.react=function(f,e){var a=this;if(e.target.blur(),app.session.user){if(!this.post.canReact())return app.alerts.show({type:"error"},app.translator.trans("core.lib.error.permission_denied_message"));var n=f?f.id():null,o=this.post.reactions();return this.loading[n]=!0,this.post.save({reaction:n}).then((function(e){delete a.loading[n];for(var t,r=X(o);!(t=r()).done;){var i=t.value;e.reactions().includes(i)||app.store.remove(i)}a.updateChosenReaction(),(void 0!==app.forum.data.relationships.ranks&&(app.forum.attribute("ReactionConverts")[0]===f||app.forum.attribute("ReactionConverts")[1]===f)||void 0!==a.post.data.relationships.likes&&app.forum.attribute("ReactionConverts")[2]===f)&&app.alerts.show({type:"warning"},app.translator.trans("fof-reactions.forum.warning",{reaction:f})),m.redraw.sync()})).catch((function(f){delete a.loading[n],$("body").append(f),m.redraw.sync()}))}app.modal.show(J.a)},a.updateChosenReaction=function(){var f=this.getPostReactions();return this.reaction=app.session.user&&f.filter((function(f){return f.userId()==app.session.user.id()}))[0]},a.getPostReactions=function(){var f=this;return this.post.reactions()||app.store.all("post_reactions").filter((function(e){return e&&e.postId()==f.post.id()}))},e}(T.a),ef=a(32),af=a.n(ef),nf=a(33),of=a.n(nf),tf=a(34),rf=a.n(tf),cf=a(35),lf=a.n(cf),sf=a(36),_f=a.n(sf),df=function(f){function e(){return f.apply(this,arguments)||this}Object(b.a)(e,f);var a=e.prototype;return a.className=function(){return"ReactionsModal Modal--small"},a.title=function(){return app.translator.trans("fof-reactions.forum.modal.title")},a.oninit=function(e){f.prototype.oninit.call(this,e),this.loading=!0,this.groupedReactions=W(this.attrs.post.reactions().filter(Boolean),(function(f){return f.reactionId()})),this.load()},a.content=function(){var f=this;return this.loading?m("div",{className:"Modal-body"},m(rf.a,null)):m("div",{className:"Modal-body"},m("ul",{className:"ReactionsModal-list"},Object.keys(this.groupedReactions).map((function(e){var a=app.store.getById("reactions",e),n=f.groupedReactions[e];if(n.length)return m("div",{className:"ReactionsModal-group"},m("legend",null,m(V,{reaction:a,className:"ReactionModal-reaction"}),m("label",{className:"ReactionsModal-display"},a.display()||a.identifier())),m("hr",{className:"ReactionsModal-delimiter"}),n.filter((function(f){return f.user()})).map((function(f){return m("li",null,m("a",{className:"ReactionsModal-user",href:app.route.user(f.user()),config:m.route},lf()(f.user(),{loading:"lazy"})," ",_f()(f.user())))})))}))))},a.load=function(){return app.request({method:"GET",url:app.forum.attribute("apiUrl")+this.attrs.post.apiEndpoint()+"/reactions",data:{include:"user"}}).then((function(f){return app.store.pushPayload(f)})).then(this.loaded.bind(this),this.loaded.bind(this))},e}(of.a);t.a.initializers.add("fof/reactions",(function(){t.a.store.models.reactions=j.a,t.a.store.models.post_reactions=O,t.a.notificationComponents.postReacted=x,_.a.prototype.canReact=g.a.attribute("canReact"),_.a.prototype.reactions=g.a.hasMany("reactions"),i.a.prototype.reactions=g.a.hasMany("reactions"),l.a.prototype.canSeeReactions=g.a.attribute("canSeeReactions"),Object(n.extend)(B.a.prototype,"actionItems",(function(f){var e=this.attrs.post;if(!e.isHidden()){var a=t.a.session.user&&Array.isArray(e.reactions())&&e.reactions().some((function(f){return f===t.a.session.user}));f.add("react",ff.component({post:e,reaction:a}),5)}})),Object(n.extend)(af.a,"moderationControls",(function(f,e){e.discussion().canSeeReactions()&&e.reactions()&&e.reactions().length&&f.add("viewReactions",m(U.a,{icon:"fas fa-heart",onclick:function(){return t.a.modal.show(df,{post:e})}},t.a.translator.trans("fof-reactions.forum.mod_item")))})),Object(n.extend)(N.a.prototype,"config",(function(f,e,a){e||app.pusher&&app.pusher.then((function(f){f.main.bind("newReaction",(function(f){var e=f.postId,a=f.reactionId,n=app.store.getById("reactions",a),o=app.store.getById("posts",e);n&&o&&S(e)})),f.main.bind("removedReaction",(function(f){var e=f.userId,a=f.postId,n=f.reactionId,o=app.store.all("post_reactions").filter((function(f){return f.userId()==e&&f.postId()==a&&f.reactionId()==n}))[0];o&&(app.store.remove(o),S(a),m.redraw())})),Object(n.extend)(a,"onunload",(function(){return f.main.unbind("newReaction")})),Object(n.extend)(a,"onunload",(function(){return f.main.unbind("removedReaction")}))}))})),Object(n.extend)(p.a.prototype,"notificationTypes",(function(f){f.add("postReacted",{name:"postReacted",icon:"far fa-smile",label:t.a.translator.trans("fof-reactions.forum.settings.notify_post_reacted_label")})}))}))},,function(f,e){f.exports=flarum.core.compat["models/Discussion"]},function(f,e){f.exports=flarum.core.compat["components/NotificationGrid"]},function(f,e){f.exports=flarum.core.compat["components/Notification"]},function(f,e){f.exports=flarum.core.compat["helpers/icon"]},function(f,e,a){(function(e){var a=/^\s+|\s+$/g,n=/^[-+]0x[0-9a-f]+$/i,o=/^0b[01]+$/i,t=/^0o[0-7]+$/i,r=parseInt,i="object"==typeof e&&e&&e.Object===Object&&e,c="object"==typeof self&&self&&self.Object===Object&&self,l=i||c||Function("return this")(),s=Object.prototype.toString,_=Math.max,d=Math.min,g=function(){return l.Date.now()};function u(f){var e=typeof f;return!!f&&("object"==e||"function"==e)}function m(f){if("number"==typeof f)return f;if(function(f){return"symbol"==typeof f||function(f){return!!f&&"object"==typeof f}(f)&&"[object Symbol]"==s.call(f)}(f))return NaN;if(u(f)){var e="function"==typeof f.valueOf?f.valueOf():f;f=u(e)?e+"":e}if("string"!=typeof f)return 0===f?f:+f;f=f.replace(a,"");var i=o.test(f);return i||t.test(f)?r(f.slice(2),i?2:8):n.test(f)?NaN:+f}f.exports=function(f,e,a){var n,o,t,r,i,c,l=0,s=!1,p=!1,b=!0;if("function"!=typeof f)throw new TypeError("Expected a function");function h(e){var a=n,t=o;return n=o=void 0,l=e,r=f.apply(t,a)}function w(f){return l=f,i=setTimeout(k,e),s?h(f):r}function y(f){var a=f-c;return void 0===c||a>=e||a<0||p&&f-l>=t}function k(){var f=g();if(y(f))return v(f);i=setTimeout(k,function(f){var a=e-(f-c);return p?d(a,t-(f-l)):a}(f))}function v(f){return i=void 0,b&&n?h(f):(n=o=void 0,r)}function x(){var f=g(),a=y(f);if(n=arguments,o=this,c=f,a){if(void 0===i)return w(c);if(p)return i=setTimeout(k,e),h(c)}return void 0===i&&(i=setTimeout(k,e)),r}return e=m(e)||0,u(a)&&(s=!!a.leading,t=(p="maxWait"in a)?_(m(a.maxWait)||0,e):t,b="trailing"in a?!!a.trailing:b),x.cancel=function(){void 0!==i&&clearTimeout(i),l=0,n=c=o=i=void 0},x.flush=function(){return void 0===i?r:v(g())},x}}).call(this,a(43))},function(f,e){f.exports=flarum.core.compat["components/DiscussionPage"]},function(f,e){f.exports=flarum.core.compat["components/CommentPost"]},function(f,e){f.exports=flarum.core.compat["utils/ItemList"]},function(f,e){f.exports=flarum.core.compat["helpers/listItems"]},function(f,e){f.exports=flarum.core.compat["components/LogInModal"]},function(f,e){f.exports=flarum.core.compat["utils/PostControls"]},function(f,e){f.exports=flarum.core.compat["components/Modal"]},function(f,e){f.exports=flarum.core.compat["components/LoadingIndicator"]},function(f,e){f.exports=flarum.core.compat["helpers/avatar"]},function(f,e){f.exports=flarum.core.compat["helpers/username"]},,,,,,function(f,e,a){"use strict";a.r(e);var n=a(8);for(var o in n)["default"].indexOf(o)<0&&function(f){a.d(e,f,(function(){return n[f]}))}(o);a(20)},function(f,e){var a;a=function(){return this}();try{a=a||new Function("return this")()}catch(f){"object"==typeof window&&(a=window)}f.exports=a}]); +module.exports=function(f){var e={};function a(n){if(e[n])return e[n].exports;var o=e[n]={i:n,l:!1,exports:{}};return f[n].call(o.exports,o,o.exports,a),o.l=!0,o.exports}return a.m=f,a.c=e,a.d=function(f,e,n){a.o(f,e)||Object.defineProperty(f,e,{enumerable:!0,get:n})},a.r=function(f){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(f,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(f,"__esModule",{value:!0})},a.t=function(f,e){if(1&e&&(f=a(f)),8&e)return f;if(4&e&&"object"==typeof f&&f&&f.__esModule)return f;var n=Object.create(null);if(a.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:f}),2&e&&"string"!=typeof f)for(var o in f)a.d(n,o,function(e){return f[e]}.bind(null,o));return n},a.n=function(f){var e=f&&f.__esModule?function(){return f.default}:function(){return f};return a.d(e,"a",e),e},a.o=function(f,e){return Object.prototype.hasOwnProperty.call(f,e)},a.p="",a(a.s=42)}([function(f,e){f.exports=flarum.core.compat.Model},function(f,e,a){"use strict";function n(f,e){f.prototype=Object.create(e.prototype),f.prototype.constructor=f,f.__proto__=e}a.d(e,"a",(function(){return n}))},function(f,e){f.exports=flarum.core.compat.app},function(f,e){f.exports=flarum.core.compat.extend},function(f,e){f.exports=flarum.core.compat["components/Button"]},function(f,e,a){"use strict";var n=a(9),o=(a(10),function f(e,a){return void 0===a&&(a=1),e.reduce((function(e,n){return e.concat(a>1&&Array.isArray(n)?f(n,a-1):n)}),[])}(Object.values(n))),t=Object.entries(n),r=function(f){return String.fromCodePoint.apply(String,f.split("-").map((function(f){return"0x"+f})))},i=function(f){var e=n[f],a=-1,o=null;e?(a=1,o=f):Object.entries(n).forEach((function(e){for(var n=e[0],t=e[1],r=0;r<=t.length;++r){var i=t[r]||n,c=i===f,l=i.indexOf(f),s=f.indexOf(i),_=c&&f.length||0===l||0===s&&i.length>1?1:l>0||s>0?0:-1;if(_>a&&(o=n,a=_,1===_))return!1}})),this.score=a,this.emoji=o},c=new Map;e.a=function(f){if(!f)return{};var e,a=f.identifier||f;if(c.has(a))return c.get(a);if(o.includes(a)){var n=function(f){return t.find((function(e){return e[1].includes(f)}))}(a);e=n&&n[0]}else{var l=new i(a);l.score&&(e=l.emoji)}e&&(e=e.split("-")[0]);var s=e?{identifier:a,uc:r(e),url:"//cdn.jsdelivr.net/gh/twitter/twemoji@13/assets/72x72/"+e+".png",type:"emoji"}:{};return c.set(f,s),s||{}}},function(f,e){f.exports=flarum.core.compat["utils/mixin"]},,function(f,e){},function(f){f.exports=JSON.parse('{"2049":["interrobang","exclamation_question"],"2122":["tm"],"2139":["info"],"2194":["arrow_left_right"],"2195":["arrow_up_down"],"2196":["arrow_upper_left"],"2197":["arrow_upper_right"],"2198":["arrow_lower_right"],"2199":["arrow_lower_left"],"2328":["keyboard"],"2600":["sun"],"2601":["cloud"],"2602":["umbrella"],"2603":["snowy_snowman"],"2604":["comet"],"2611":["checked_ballot"],"2614":["umbrella_rain"],"2615":["coffee"],"2618":["shamrock"],"2620":["crossbones"],"2622":["radioactive"],"2623":["biohazard"],"2626":["orthodox_cross"],"2638":["wheel_of_dharma"],"2639":["sad","frowning"],"2640":["female","female_sign"],"2642":["male","male_sign"],"2648":["aries"],"2649":["taurus"],"2650":["sagittarius"],"2651":["capricorn"],"2652":["aquarius"],"2653":["pisces"],"2660":["spades"],"2663":["clubs"],"2665":["hearts"],"2666":["diamonds"],"2668":["hotsprings"],"2692":["hammer_pick"],"2693":["anchor"],"2694":["crossed_swords"],"2695":["medical"],"2696":["scales"],"2697":["alembic"],"2699":["gear"],"2702":["scissors"],"2705":["white_check_mark"],"2708":["airplane"],"2709":["envelope"],"2712":["black_nib"],"2714":["check_mark"],"2716":["multiplication"],"2721":["star_of_david"],"2728":["sparkles"],"2733":["eight_spoked_asterisk"],"2734":["eight_pointed_star"],"2744":["snowflake"],"2747":["sparkle"],"2753":["question"],"2754":["white_question"],"2755":["white_exclamation"],"2757":["exclamation"],"2763":["heart_exclamation"],"2764":["heart"],"2795":["plus"],"2796":["minus"],"2797":["division"],"2934":["arrow_heading_up"],"2935":["arrow_heading_down"],"3030":["wavy_dash"],"3297":["ja_congratulations"],"3299":["ja_secret"],"1f600":["gleeful"],"1f603":["glad","smile"],"1f604":["happy"],"1f601":["blissful","grin"],"1f606":["amused","laugh","lol"],"1f605":["embarassed","sweat_smile"],"1f923":["entertained","rofl"],"1f602":["joyful","haha"],"1f642":["pleased","slight_smile"],"1f643":["ecstatic","upside_down"],"1f609":["coy","wink"],"1f60a":["blush"],"1f607":["innocent","halo"],"1f970":["love"],"1f60d":["lovestruck"],"1f929":["starstruck"],"1f618":["flirty"],"1f617":["kiss"],"263a":["relaxed"],"1f61a":["loving_kiss"],"1f619":["happy_kiss"],"1f972":["tear_smile"],"1f60b":["yum","savour"],"1f61b":["playful","tongue_out"],"1f61c":["mischievous"],"1f92a":["crazy"],"1f61d":["facetious","lmao"],"1f911":["pretentious","money_mouth"],"1f917":["hugging"],"1f92d":["gasp"],"1f92b":["shushing"],"1f914":["curious","thinking"],"1f910":["silenced","zipper_mouth"],"1f928":["contempt"],"1f610":["indifferent","neutral"],"1f611":["apathetic","expressionless"],"1f636":["vacant","no_mouth"],"1f60f":["cocky","smirk"],"1f612":["unamused"],"1f644":["disbelief"],"1f62c":["grimaced"],"1f925":["lying"],"1f60c":["relieved"],"1f614":["pensive"],"1f62a":["sleepy"],"1f924":["drooling"],"1f634":["exhausted","sleeping"],"1f637":["ill","mask"],"1f912":["sick"],"1f915":["injured"],"1f922":["nauseated"],"1f92e":["vomiting"],"1f927":["sneezing"],"1f975":["overheating"],"1f976":["freezing"],"1f974":["woozy"],"1f635":["dizzy"],"1f92f":["shocked","exploding_head"],"1f920":["cowboy"],"1f973":["partying","celebrating"],"1f978":["disguised_face"],"1f60e":["confident"],"1f913":["nerd"],"1f9d0":["monocle"],"1f615":["confused"],"1f61f":["worried"],"1f641":["cheerless","slight_frown"],"1f62e":["surprised"],"1f62f":["hushed"],"1f632":["astonished"],"1f633":["flushed"],"1f97a":["pleading"],"1f626":["bored"],"1f627":["anguished","wtf"],"1f628":["fearful"],"1f630":["cold_sweat","anxious","frustrated"],"1f625":["hopeful"],"1f622":["upset","cry"],"1f62d":["distressed","sob"],"1f631":["frightened","scream"],"1f616":["confounded"],"1f623":["persevered"],"1f61e":["disappointed"],"1f613":["shamed"],"1f629":["weary"],"1f62b":["tired"],"1f971":["yawn"],"1f624":["annoyed","hrmph"],"1f621":["enraged","pout"],"1f620":["angry"],"1f92c":["censored"],"1f608":["imp"],"1f47f":["angry_imp"],"1f480":["skull"],"1f4a9":["poop"],"1f921":["clown"],"1f479":["ogre"],"1f47a":["goblin"],"1f47b":["ghost"],"1f47d":["alien"],"1f47e":["alien_monster","space_invader"],"1f916":["robot"],"1f63a":["smiling_cat"],"1f638":["grinning_cat"],"1f639":["joyful_cat"],"1f63b":["lovestruck_cat"],"1f63c":["smirking_cat"],"1f63d":["kissing_cat"],"1f640":["weary_cat"],"1f63f":["crying_cat"],"1f63e":["pouting_cat"],"1f648":["see_no_evil"],"1f649":["hear_no_evil"],"1f64a":["speak_no_evil"],"1f48b":["kiss_lips"],"1f48c":["love_letter"],"1f498":["cupid"],"1f49d":["heart_ribbon"],"1f496":["sparkling_heart"],"1f497":["heartpulse"],"1f493":["heartbeat"],"1f49e":["revolving_hearts"],"1f495":["two_hearts"],"1f49f":["heart_decoration"],"1f494":["broken_heart"],"1f9e1":["orange_heart"],"1f49b":["yellow_heart"],"1f49a":["green_heart"],"1f499":["blue_heart"],"1f49c":["purple_heart"],"1f90e":["brown_heart"],"1f5a4":["black_heart"],"1f90d":["white_heart"],"1f4af":["100"],"1f4a2":["anger"],"1f4a5":["boom","collision"],"1f4ab":["dizzy_star"],"1f4a6":["sweat_drops"],"1f4a8":["dash"],"1f573":["hole"],"1f4a3":["bomb"],"1f4ac":["speech"],"1f441-200d-1f5e8":["eye_bubble"],"1f5e8":["left_speech"],"1f5ef":["right_anger_speech"],"1f4ad":["thought"],"1f4a4":["zzz"],"1f44b":["wave"],"1f91a":["raised_backhand"],"1f590":["splayed_hand"],"270b":["raised_hand"],"1f596":["vulcan"],"1f44c":["ok_hand"],"1f90c":["pinched_fingers"],"1f90f":["pinch"],"270c":["victory"],"1f91e":["fingers_crossed"],"1f91f":["love_you_gesture"],"1f918":["metal"],"1f919":["call_me"],"1f448":["point_left"],"1f449":["point_right"],"1f446":["backhand_point_up"],"1f595":["middle_finger"],"1f447":["point_down"],"261d":["point_up"],"1f44d":["thumbsup","+1","yes"],"1f44e":["thumbsdown","-1","no"],"270a":["fist"],"1f44a":["punch"],"1f91b":["left_facing_fist"],"1f91c":["right_facing_fist"],"1f44f":["clap"],"1f64c":["raised_hands"],"1f450":["open_hands"],"1f932":["palms_up"],"1f91d":["handshake"],"1f64f":["pray"],"270d":["writing_hand"],"1f485":["nail_care"],"1f933":["selfie"],"1f4aa":["muscle","right_bicep"],"1f9be":["mech_arm"],"1f9bf":["mech_leg"],"1f9b5":["leg"],"1f9b6":["foot"],"1f442":["ear"],"1f9bb":["hearing_aid"],"1f443":["nose"],"1f9e0":["brain"],"1fac0":["anatomical_heart"],"1fac1":["lungs"],"1f9b7":["tooth"],"1f9b4":["bone"],"1f440":["eyes"],"1f441":["eye"],"1f445":["tongue"],"1f444":["lips"],"1f476":["baby"],"1f9d2":["child"],"1f466":["boy"],"1f467":["girl"],"1f9d1":["adult"],"1f471":["blond_person"],"1f468":["man"],"1f9d4":["bearded_person"],"1f468-200d-1f9b0":["red_haired_man"],"1f468-200d-1f9b1":["curly_haired_man"],"1f468-200d-1f9b3":["white_haired_man"],"1f468-200d-1f9b2":["bald_man"],"1f469":["woman"],"1f469-200d-1f9b0":["red_haired_woman"],"1f9d1-200d-1f9b0":["red_haired_person"],"1f469-200d-1f9b1":["curly_haired_woman"],"1f9d1-200d-1f9b1":["curly_haired_person"],"1f469-200d-1f9b3":["white_haired_woman"],"1f9d1-200d-1f9b3":["white_haired_person"],"1f469-200d-1f9b2":["bald_woman"],"1f9d1-200d-1f9b2":["bald_person"],"1f471-200d-2640-fe0f":["blond_woman"],"1f471-200d-2642-fe0f":["blond_man"],"1f9d3":["older_adult"],"1f474":["older_man"],"1f475":["older_woman"],"1f64d":["person_frowning"],"1f64d-200d-2642-fe0f":["man_frowning"],"1f64d-200d-2640-fe0f":["woman_frowning"],"1f64e":["person_pouting"],"1f64e-200d-2642-fe0f":["man_pouting"],"1f64e-200d-2640-fe0f":["woman_pouting"],"1f645":["person_gesturing_no"],"1f645-200d-2642-fe0f":["man_gesturing_no"],"1f645-200d-2640-fe0f":["woman_gesturing_no"],"1f646":["person_gesturing_ok"],"1f646-200d-2642-fe0f":["man_gesturing_ok"],"1f646-200d-2640-fe0f":["woman_gesturing_ok"],"1f481":["person_tipping_hand"],"1f481-200d-2642-fe0f":["man_tipping_hand"],"1f481-200d-2640-fe0f":["woman_tipping_hand"],"1f64b":["person_raising_hand"],"1f64b-200d-2642-fe0f":["man_raising_hand"],"1f64b-200d-2640-fe0f":["woman_raising_hand"],"1f9cf":["person_deaf"],"1f9cf-200d-2642-fe0f":["man_deaf"],"1f9cf-200d-2640-fe0f":["woman_deaf"],"1f647":["person_bowing"],"1f647-200d-2642-fe0f":["man_bowing"],"1f647-200d-2640-fe0f":["woman_bowing"],"1f926":["person_facepalming"],"1f926-200d-2642-fe0f":["man_facepalming"],"1f926-200d-2640-fe0f":["woman_facepalming"],"1f937":["person_shrugging"],"1f937-200d-2642-fe0f":["man_shrugging"],"1f937-200d-2640-fe0f":["woman_shrugging"],"1f9d1-200d-2695-fe0f":["person_health_worker"],"1f468-200d-2695-fe0f":["man_health_worker"],"1f469-200d-2695-fe0f":["woman_health_worker"],"1f9d1-200d-1f393":["person_student"],"1f468-200d-1f393":["man_student"],"1f469-200d-1f393":["woman_student"],"1f9d1-200d-1f3eb":["person_teacher"],"1f468-200d-1f3eb":["man_teacher"],"1f469-200d-1f3eb":["woman_teacher"],"1f9d1-200d-2696-fe0f":["person_judge"],"1f468-200d-2696-fe0f":["man_judge"],"1f469-200d-2696-fe0f":["woman_judge"],"1f9d1-200d-1f33e":["person_farmer"],"1f468-200d-1f33e":["man_farmer"],"1f469-200d-1f33e":["woman_farmer"],"1f9d1-200d-1f373":["person_cook"],"1f468-200d-1f373":["man_cook"],"1f469-200d-1f373":["woman_cook"],"1f9d1-200d-1f527":["person_mechanic"],"1f468-200d-1f527":["man_mechanic"],"1f469-200d-1f527":["woman_mechanic"],"1f9d1-200d-1f3ed":["person_factory_worker"],"1f468-200d-1f3ed":["man_factory_worker"],"1f469-200d-1f3ed":["woman_factory_worker"],"1f9d1-200d-1f4bc":["person_office_worker"],"1f468-200d-1f4bc":["man_office_worker"],"1f469-200d-1f4bc":["woman_office_worker"],"1f9d1-200d-1f52c":["person_scientist"],"1f468-200d-1f52c":["man_scientist"],"1f469-200d-1f52c":["woman_scientist"],"1f9d1-200d-1f4bb":["person_technologist"],"1f468-200d-1f4bb":["man_technologist"],"1f469-200d-1f4bb":["woman_technologist"],"1f9d1-200d-1f3a4":["person_singer"],"1f468-200d-1f3a4":["man_singer"],"1f469-200d-1f3a4":["woman_singer"],"1f9d1-200d-1f3a8":["person_artist"],"1f468-200d-1f3a8":["man_artist"],"1f469-200d-1f3a8":["woman_artist"],"1f9d1-200d-2708-fe0f":["person_pilot"],"1f468-200d-2708-fe0f":["man_pilot"],"1f469-200d-2708-fe0f":["woman_pilot"],"1f9d1-200d-1f680":["person_astronaut"],"1f468-200d-1f680":["man_astronaut"],"1f469-200d-1f680":["woman_astronaut"],"1f9d1-200d-1f692":["person_firefighter"],"1f468-200d-1f692":["man_firefighter"],"1f469-200d-1f692":["woman_firefighter"],"1f46e":["police_officer"],"1f46e-200d-2642-fe0f":["man_police_officer"],"1f46e-200d-2640-fe0f":["woman_police_officer"],"1f575":["detective"],"1f575-fe0f-200d-2642-fe0f":["man_detective"],"1f575-fe0f-200d-2640-fe0f":["woman_detective"],"1f482":["guard"],"1f482-200d-2642-fe0f":["man_guard"],"1f482-200d-2640-fe0f":["woman_guard"],"1f977":["ninja"],"1f477":["construction_worker"],"1f477-200d-2642-fe0f":["man_construction_worker"],"1f477-200d-2640-fe0f":["woman_construction_worker"],"1f934":["prince"],"1f478":["princess"],"1f473":["person_turban"],"1f473-200d-2642-fe0f":["man_turban"],"1f473-200d-2640-fe0f":["woman_turban"],"1f472":["man_chinese_cap"],"1f9d5":["woman_headscarf"],"1f935":["man_tuxedo"],"1f935-200d-2642-fe0f":["man_in_tuxedo"],"1f935-200d-2640-fe0f":["woman_in_tuxedo"],"1f470":["person_veiled_bride","bride_veil"],"1f470-200d-2642-fe0f":["man_veiled_bride"],"1f470-200d-2640-fe0f":["woman_veiled_bride"],"1f930":["pregnant_woman"],"1f931":["breast_feeding"],"1f469-200d-1f37c":["woman_feeding_baby"],"1f468-200d-1f37c":["man_feeding_baby"],"1f9d1-200d-1f37c":["person_feeding_baby"],"1f47c":["baby_angel"],"1f385":["santa"],"1f936":["mrs_claus"],"1f9d1-200d-1f384":["mx_claus"],"1f9b8":["hero","superhero"],"1f9b8-200d-2642-fe0f":["man_hero"],"1f9b8-200d-2640-fe0f":["woman_hero"],"1f9b9":["villain","supervillain"],"1f9b9-200d-2642-fe0f":["man_villain"],"1f9b9-200d-2640-fe0f":["woman_villain"],"1f9d9":["mage"],"1f9d9-200d-2642-fe0f":["man_mage"],"1f9d9-200d-2640-fe0f":["woman_mage"],"1f9da":["fairy"],"1f9da-200d-2642-fe0f":["man_fairy"],"1f9da-200d-2640-fe0f":["woman_fairy"],"1f9db":["vampire"],"1f9db-200d-2642-fe0f":["man_vampire"],"1f9db-200d-2640-fe0f":["woman_vampire"],"1f9dc":["merperson"],"1f9dc-200d-2642-fe0f":["merman"],"1f9dc-200d-2640-fe0f":["mermaid"],"1f9dd":["elf"],"1f9dd-200d-2642-fe0f":["man_elf"],"1f9dd-200d-2640-fe0f":["woman_elf"],"1f9de":["genie"],"1f9de-200d-2642-fe0f":["man_genie"],"1f9de-200d-2640-fe0f":["woman_genie"],"1f9df":["zombie"],"1f9df-200d-2642-fe0f":["man_zombie"],"1f9df-200d-2640-fe0f":["woman_zombie"],"1f486":["person_getting_massage"],"1f486-200d-2642-fe0f":["man_getting_face_massage"],"1f486-200d-2640-fe0f":["woman_getting_face_massage"],"1f487":["person_getting_haircut"],"1f487-200d-2642-fe0f":["man_getting_haircut"],"1f487-200d-2640-fe0f":["woman_getting_haircut"],"1f6b6":["person_walking"],"1f6b6-200d-2642-fe0f":["man_walking"],"1f6b6-200d-2640-fe0f":["woman_walking"],"1f9cd":["person_standing"],"1f9cd-200d-2642-fe0f":["man_standing"],"1f9cd-200d-2640-fe0f":["woman_standing"],"1f9ce":["person_kneeling"],"1f9ce-200d-2642-fe0f":["man_kneeling"],"1f9ce-200d-2640-fe0f":["woman_kneeling"],"1f9d1-200d-1f9af":["person_probing_cane"],"1f468-200d-1f9af":["man_probing_cane"],"1f469-200d-1f9af":["woman_probing_cane"],"1f9d1-200d-1f9bc":["person_motor_wheelchair"],"1f468-200d-1f9bc":["man_motor_wheelchair"],"1f469-200d-1f9bc":["woman_motor_wheelchair"],"1f9d1-200d-1f9bd":["person_wheelchair"],"1f468-200d-1f9bd":["man_wheelchair"],"1f469-200d-1f9bd":["woman_wheelchair"],"1f3c3":["person_running"],"1f3c3-200d-2642-fe0f":["man_running"],"1f3c3-200d-2640-fe0f":["woman_running"],"1f483":["dancer","woman_dancing"],"1f57a":["man_dancing"],"1f574":["levitate"],"1f46f":["people_bunny_ears_partying"],"1f46f-200d-2642-fe0f":["men_bunny_ears_partying"],"1f46f-200d-2640-fe0f":["women_bunny_ears_partying"],"1f9d6":["person_steamy_room"],"1f9d6-200d-2642-fe0f":["man_steamy_room"],"1f9d6-200d-2640-fe0f":["woman_steamy_room"],"1f9d7":["person_climbing"],"1f9d7-200d-2642-fe0f":["man_climbing"],"1f9d7-200d-2640-fe0f":["woman_climbing"],"1f93a":["person_fencing"],"1f3c7":["horse_racing"],"26f7":["skier"],"1f3c2":["snowboarder"],"1f3cc":["person_golfing"],"1f3cc-fe0f-200d-2642-fe0f":["man_golfing"],"1f3cc-fe0f-200d-2640-fe0f":["woman_golfing"],"1f3c4":["person_surfing"],"1f3c4-200d-2642-fe0f":["man_surfing"],"1f3c4-200d-2640-fe0f":["woman_surfing"],"1f6a3":["person_rowing_boat"],"1f6a3-200d-2642-fe0f":["man_rowing_boat"],"1f6a3-200d-2640-fe0f":["woman_rowing_boat"],"1f3ca":["person_swimming"],"1f3ca-200d-2642-fe0f":["man_swimming"],"1f3ca-200d-2640-fe0f":["woman_swimming"],"26f9":["person_bouncing_ball"],"26f9-fe0f-200d-2642-fe0f":["man_bouncing_ball"],"26f9-fe0f-200d-2640-fe0f":["woman_bouncing_ball"],"1f3cb":["person_lifting_weights"],"1f3cb-fe0f-200d-2642-fe0f":["man_lifting_weights"],"1f3cb-fe0f-200d-2640-fe0f":["woman_lifting_weights"],"1f6b4":["person_biking"],"1f6b4-200d-2642-fe0f":["man_biking"],"1f6b4-200d-2640-fe0f":["woman_biking"],"1f6b5":["person_mountain_biking"],"1f6b5-200d-2642-fe0f":["man_mountain_biking"],"1f6b5-200d-2640-fe0f":["woman_mountain_biking"],"1f938":["person_cartwheel"],"1f938-200d-2642-fe0f":["man_cartwheeling"],"1f938-200d-2640-fe0f":["woman_cartwheeling"],"1f93c":["people_wrestling"],"1f93c-200d-2642-fe0f":["men_wrestling"],"1f93c-200d-2640-fe0f":["women_wrestling"],"1f93d":["person_water_polo"],"1f93d-200d-2642-fe0f":["man_water_polo"],"1f93d-200d-2640-fe0f":["woman_water_polo"],"1f93e":["person_handball"],"1f93e-200d-2642-fe0f":["man_handball"],"1f93e-200d-2640-fe0f":["woman_handball"],"1f939":["person_juggling"],"1f939-200d-2642-fe0f":["man_juggling"],"1f939-200d-2640-fe0f":["woman_juggling"],"1f9d8":["person_lotus_position"],"1f9d8-200d-2642-fe0f":["man_lotus_position"],"1f9d8-200d-2640-fe0f":["woman_lotus_position"],"1f6c0":["bath"],"1f6cc":["in_bed"],"1f9d1-200d-1f91d-200d-1f9d1":["holding_hands_people"],"1f46d":["holding_hands_ww"],"1f46b":["holding_hands_mw","holding_hands_wm"],"1f46c":["holding_hands_mm"],"1f48f":["couple"],"1f469-200d-2764-fe0f-200d-1f48b-200d-1f468":["kiss_mw","kiss_wm"],"1f468-200d-2764-fe0f-200d-1f48b-200d-1f468":["kiss_mm"],"1f469-200d-2764-fe0f-200d-1f48b-200d-1f469":["kiss_ww"],"1f491":["couple_heart"],"1f469-200d-2764-fe0f-200d-1f468":["couple_mw","couple_wm"],"1f468-200d-2764-fe0f-200d-1f468":["couple_mm"],"1f469-200d-2764-fe0f-200d-1f469":["couple_ww"],"1f46a":["family"],"1f468-200d-1f469-200d-1f466":["family_mwb"],"1f468-200d-1f469-200d-1f467":["family_mwg"],"1f468-200d-1f469-200d-1f467-200d-1f466":["family_mwgb"],"1f468-200d-1f469-200d-1f466-200d-1f466":["family_mwbb"],"1f468-200d-1f469-200d-1f467-200d-1f467":["family_mwgg"],"1f468-200d-1f468-200d-1f466":["family_mmb"],"1f468-200d-1f468-200d-1f467":["family_mmg"],"1f468-200d-1f468-200d-1f467-200d-1f466":["family_mmgb"],"1f468-200d-1f468-200d-1f466-200d-1f466":["family_mmbb"],"1f468-200d-1f468-200d-1f467-200d-1f467":["family_mmgg"],"1f469-200d-1f469-200d-1f466":["family_wwb"],"1f469-200d-1f469-200d-1f467":["family_wwg"],"1f469-200d-1f469-200d-1f467-200d-1f466":["family_wwgb"],"1f469-200d-1f469-200d-1f466-200d-1f466":["family_wwbb"],"1f469-200d-1f469-200d-1f467-200d-1f467":["family_wwgg"],"1f468-200d-1f466":["family_mb"],"1f468-200d-1f466-200d-1f466":["family_mbb"],"1f468-200d-1f467":["family_mg"],"1f468-200d-1f467-200d-1f466":["family_mgb"],"1f468-200d-1f467-200d-1f467":["family_mgg"],"1f469-200d-1f466":["family_wb"],"1f469-200d-1f466-200d-1f466":["family_wbb"],"1f469-200d-1f467":["family_wg"],"1f469-200d-1f467-200d-1f466":["family_wgb"],"1f469-200d-1f467-200d-1f467":["family_wgg"],"1f5e3":["speaking_head"],"1f464":["bust_silhouette"],"1f465":["busts_silhouette"],"1fac2":["people_hugging"],"1f463":["footprints"],"1f3fb":["tone_light","tone1"],"1f3fc":["tone_medium_light","tone2"],"1f3fd":["tone_medium","tone3"],"1f3fe":["tone_medium_dark","tone4"],"1f3ff":["tone_dark","tone5"],"1f9b0":["red_hair"],"1f9b1":["curly_hair"],"1f9b3":["white_hair"],"1f9b2":["bald"],"1f435":["monkey_face"],"1f412":["monkey"],"1f98d":["gorilla"],"1f9a7":["orangutan"],"1f436":["dog_face"],"1f415":["dog"],"1f9ae":["guide_dog"],"1f415-200d-1f9ba":["service_dog"],"1f429":["poodle"],"1f43a":["wolf_face"],"1f98a":["fox_face"],"1f99d":["raccoon"],"1f431":["cat_face"],"1f408":["cat"],"1f408-200d-2b1b":["black_cat"],"1f981":["lion_face"],"1f42f":["tiger_face"],"1f405":["tiger"],"1f406":["leopard"],"1f434":["horse_face"],"1f40e":["horse"],"1f984":["unicorn_face"],"1f993":["zebra"],"1f98c":["deer"],"1f9ac":["bison"],"1f42e":["cow_face"],"1f402":["ox"],"1f403":["water_buffalo"],"1f404":["cow"],"1f437":["pig_face"],"1f416":["pig"],"1f417":["boar"],"1f43d":["pig_nose"],"1f40f":["ram"],"1f411":["sheep"],"1f410":["goat"],"1f42a":["camel"],"1f42b":["two_hump_camel"],"1f999":["llama"],"1f992":["giraffe"],"1f418":["elephant"],"1f9a3":["mammoth"],"1f98f":["rhino"],"1f99b":["hippo"],"1f42d":["mouse_face"],"1f401":["mouse"],"1f400":["rat"],"1f439":["hamster_face"],"1f430":["rabbit_face"],"1f407":["rabbit"],"1f43f":["chipmunk"],"1f9ab":["beaver"],"1f994":["hedgehog"],"1f987":["bat"],"1f43b":["bear_face"],"1f43b-200d-2744-fe0f":["polar_bear_face"],"1f428":["koala_face"],"1f43c":["panda_face"],"1f9a5":["sloth"],"1f9a6":["otter"],"1f9a8":["skunk"],"1f998":["kangaroo"],"1f9a1":["badger"],"1f43e":["feet"],"1f983":["turkey"],"1f414":["chicken"],"1f413":["rooster"],"1f423":["hatching_chick"],"1f424":["baby_chick"],"1f425":["hatched_chick"],"1f426":["bird"],"1f427":["penguin"],"1f54a":["dove"],"1f985":["eagle"],"1f986":["duck"],"1f9a2":["swan"],"1f989":["owl"],"1f9a4":["dodo"],"1fab6":["feather"],"1f9a9":["flamingo"],"1f99a":["peacock"],"1f99c":["parrot"],"1f438":["frog_face"],"1f40a":["crocodile"],"1f422":["turtle"],"1f98e":["lizard"],"1f40d":["snake"],"1f432":["dragon_face"],"1f409":["dragon"],"1f995":["sauropod"],"1f996":["trex"],"1f433":["spouting_whale"],"1f40b":["whale"],"1f42c":["dolphin"],"1f9ad":["seal"],"1f41f":["fish"],"1f420":["tropical_fish"],"1f421":["blowfish"],"1f988":["shark"],"1f419":["octopus"],"1f41a":["shell"],"1f40c":["snail"],"1f98b":["butterfly"],"1f41b":["bug"],"1f41c":["ant"],"1f41d":["bee"],"1fab2":["beetle"],"1f41e":["lady_bug"],"1f997":["cricket"],"1fab3":["cockroach"],"1f577":["spider"],"1f578":["spider_web"],"1f982":["scorpion"],"1f99f":["mosquito"],"1fab0":["fly"],"1fab1":["worm"],"1f9a0":["microbe","germ"],"1f490":["bouquet"],"1f338":["cherry_blossom"],"1f4ae":["white_flower"],"1f3f5":["rosette"],"1f339":["rose"],"1f940":["wilted_rose"],"1f33a":["hibiscus"],"1f33b":["sunflower"],"1f33c":["blossom"],"1f337":["tulip"],"1f331":["seedling"],"1fab4":["potted_plant"],"1f332":["evergreen_tree"],"1f333":["deciduous_tree"],"1f334":["palm_tree"],"1f335":["cactus"],"1f33e":["ear_of_rice"],"1f33f":["herb"],"1f340":["four_leaf_clover"],"1f341":["maple_leaf"],"1f342":["fallen_leaf"],"1f343":["leaves"],"1f347":["grapes"],"1f348":["melon"],"1f349":["watermelon"],"1f34a":["tangerine"],"1f34b":["lemon"],"1f34c":["banana"],"1f34d":["pineapple"],"1f96d":["mango"],"1f34e":["apple"],"1f34f":["green_apple"],"1f350":["pear"],"1f351":["peach"],"1f352":["cherries"],"1f353":["strawberry"],"1fad0":["blueberry"],"1f95d":["kiwi"],"1f345":["tomato"],"1fad2":["olive"],"1f965":["coconut"],"1f951":["avocado"],"1f346":["eggplant"],"1f954":["potato"],"1f955":["carrot"],"1f33d":["corn"],"1f336":["hot_pepper"],"1fad1":["bell_pepper"],"1f952":["cucumber"],"1f96c":["leafy_green"],"1f966":["broccoli"],"1f9c4":["garlic"],"1f9c5":["onion"],"1f344":["mushroom"],"1f95c":["peanuts"],"1f330":["chestnut"],"1f35e":["bread"],"1f950":["croissant"],"1f956":["french_bread"],"1fad3":["flatbread"],"1f968":["pretzel"],"1f96f":["bagel"],"1f95e":["pancakes"],"1f9c7":["waffle"],"1f9c0":["cheese"],"1f356":["meat_on_bone"],"1f357":["poultry_leg"],"1f969":["cut_of_meat"],"1f953":["bacon"],"1f354":["hamburger"],"1f35f":["fries"],"1f355":["pizza"],"1f32d":["hotdog"],"1f96a":["sandwich"],"1f32e":["taco"],"1f32f":["burrito"],"1fad4":["tamale"],"1f959":["stuffed_flatbread"],"1f9c6":["falafel"],"1f95a":["egg"],"1f373":["cooking"],"1f958":["shallow_pan_of_food"],"1f372":["stew"],"1fad5":["fondue"],"1f963":["bowl_spoon"],"1f957":["salad"],"1f37f":["popcorn"],"1f9c8":["butter"],"1f9c2":["salt"],"1f96b":["canned_food"],"1f371":["bento"],"1f358":["rice_cracker"],"1f359":["rice_ball"],"1f35a":["rice"],"1f35b":["curry"],"1f35c":["ramen"],"1f35d":["spaghetti"],"1f360":["sweet_potato"],"1f362":["oden"],"1f363":["sushi"],"1f364":["fried_shrimp"],"1f365":["fish_cake"],"1f96e":["moon_cake"],"1f361":["dango"],"1f95f":["dumpling"],"1f960":["fortune_cookie"],"1f961":["takeout_box"],"1f980":["crab"],"1f99e":["lobster"],"1f990":["shrimp"],"1f991":["squid"],"1f9aa":["oyster"],"1f366":["icecream"],"1f367":["shaved_ice"],"1f368":["ice_cream"],"1f369":["doughnut"],"1f36a":["cookie"],"1f382":["birthday"],"1f370":["cake"],"1f9c1":["cupcake"],"1f967":["pie"],"1f36b":["chocolate_bar"],"1f36c":["candy"],"1f36d":["lollipop"],"1f36e":["custard"],"1f36f":["honey_pot"],"1f37c":["baby_bottle"],"1f95b":["milk"],"1fad6":["teapot"],"1f375":["tea"],"1f376":["sake"],"1f37e":["champagne"],"1f377":["wine_glass"],"1f378":["cocktail"],"1f379":["tropical_drink"],"1f37a":["beer"],"1f37b":["beers"],"1f942":["champagne_glass"],"1f943":["tumbler_glass"],"1f964":["cup_straw"],"1f9cb":["bubble_tea","boba_drink"],"1f9c3":["beverage_box","juice_box"],"1f9c9":["mate","yerba_mate"],"1f9ca":["ice"],"1f962":["chopsticks"],"1f37d":["fork_knife_plate"],"1f374":["utensils"],"1f944":["spoon"],"1f52a":["knife"],"1f3fa":["amphora"],"1f30d":["earth_africa"],"1f30e":["earth_americas"],"1f30f":["earth_asia"],"1f310":["globe"],"1f5fa":["map"],"1f5fe":["japan"],"1f9ed":["compass"],"1f3d4":["snowy_mountain"],"26f0":["mountain"],"1f30b":["volcano"],"1f5fb":["mount_fuji"],"1f3d5":["camping"],"1f3d6":["beach"],"1f3dc":["desert"],"1f3dd":["island"],"1f3de":["park"],"1f3df":["stadium"],"1f3db":["classical_building"],"1f3d7":["construction_site"],"1f9f1":["brick"],"1faa8":["rock"],"1fab5":["wood"],"1f6d6":["hut"],"1f3d8":["homes"],"1f3da":["house_abandoned"],"1f3e0":["house"],"1f3e1":["house_garden"],"1f3e2":["office"],"1f3e3":["ja_post_office"],"1f3e4":["post_office"],"1f3e5":["hospital"],"1f3e6":["bank"],"1f3e8":["hotel"],"1f3e9":["love_hotel"],"1f3ea":["convenience_store"],"1f3eb":["school"],"1f3ec":["department_store"],"1f3ed":["factory"],"1f3ef":["japanese_castle"],"1f3f0":["castle","european_castle"],"1f492":["wedding"],"1f5fc":["tokyo_tower"],"1f5fd":["statue_of_liberty"],"26ea":["church"],"1f54c":["mosque"],"1f6d5":["hindu_temple"],"1f54d":["synagogue"],"26e9":["shinto_shrine"],"1f54b":["kaaba"],"26f2":["fountain"],"26fa":["tent"],"1f301":["foggy"],"1f303":["night_stars"],"1f3d9":["cityscape"],"1f304":["sunrise_over_mountains"],"1f305":["sunrise"],"1f306":["dusk"],"1f307":["sunset"],"1f309":["bridge_at_night"],"1f3a0":["carousel_horse"],"1f3a1":["ferris_wheel"],"1f3a2":["roller_coaster"],"1f488":["barber"],"1f3aa":["circus_tent"],"1f682":["steam_locomotive"],"1f683":["railway_car"],"1f684":["bullettrain_side"],"1f685":["bullettrain"],"1f686":["train"],"1f687":["metro"],"1f688":["light_rail"],"1f689":["station"],"1f68a":["tram"],"1f69d":["monorail"],"1f69e":["mountain_railway"],"1f68b":["tram_car"],"1f68c":["bus"],"1f68d":["oncoming_bus"],"1f68e":["trolleybus"],"1f690":["minibus"],"1f691":["ambulance"],"1f692":["fire_engine"],"1f693":["police_car"],"1f694":["oncoming_police_car"],"1f695":["taxi"],"1f696":["oncoming_taxi"],"1f697":["red_car","car"],"1f698":["oncoming_automobile"],"1f699":["blue_car"],"1f6fb":["pickup_truck"],"1f69a":["truck"],"1f69b":["lorry"],"1f69c":["tractor"],"1f3ce":["race_car"],"1f3cd":["motorcycle"],"1f6f5":["motor_scooter"],"1f9bd":["wheelchair"],"1f9bc":["motor_wheelchair"],"1f6fa":["auto_rickshaw"],"1f6b2":["bike"],"1f6f4":["scooter"],"1f6f9":["skateboard"],"1f6fc":["roller_skate"],"1f68f":["bus_stop"],"1f6e3":["motorway"],"1f6e4":["railway_track"],"1f6e2":["oil_drum"],"26fd":["fuel_pump"],"1f6a8":["rotating_light","police_light"],"1f6a5":["traffic_light"],"1f6a6":["vertical_traffic_light"],"1f6d1":["stop_sign","octagonal_sign"],"1f6a7":["construction"],"26f5":["sailboat"],"1f6f6":["canoe"],"1f6a4":["speedboat"],"1f6f3":["cruise_ship"],"26f4":["ferry"],"1f6e5":["motorboat"],"1f6a2":["ship"],"1f6e9":["small_airplane"],"1f6eb":["airplane_departure"],"1f6ec":["airplane_arriving"],"1fa82":["parachute"],"1f4ba":["seat"],"1f681":["helicopter"],"1f69f":["suspension_railway"],"1f6a0":["mountain_cableway"],"1f6a1":["aerial_tramway"],"1f6f0":["satellite"],"1f680":["rocket"],"1f6f8":["flying_saucer"],"1f6ce":["bellhop"],"1f9f3":["luggage"],"231b":["hourglass"],"23f3":["hourglass_flowing"],"231a":["watch"],"23f0":["alarm_clock"],"23f1":["stopwatch"],"23f2":["timer"],"1f570":["clock"],"1f55b":["clock12"],"1f567":["clock1230"],"1f550":["clock1"],"1f55c":["clock130"],"1f551":["clock2"],"1f55d":["clock230"],"1f552":["clock3"],"1f55e":["clock330"],"1f553":["clock4"],"1f55f":["clock430"],"1f554":["clock5"],"1f560":["clock530"],"1f555":["clock6"],"1f561":["clock630"],"1f556":["clock7"],"1f562":["clock730"],"1f557":["clock8"],"1f563":["clock830"],"1f558":["clock9"],"1f564":["clock930"],"1f559":["clock10"],"1f565":["clock1030"],"1f55a":["clock11"],"1f566":["clock1130"],"1f311":["new_moon"],"1f312":["waxing_crescent_moon"],"1f313":["first_quarter_moon"],"1f314":["waxing_gibbous_moon"],"1f315":["full_moon"],"1f316":["waning_gibbous_moon"],"1f317":["last_quarter_moon"],"1f318":["waning_crescent_moon"],"1f319":["crescent_moon"],"1f31a":["new_moon_face"],"1f31b":["first_quarter_moon_face"],"1f31c":["last_quarter_moon_face"],"1f321":["thermometer"],"1f31d":["full_moon_face"],"1f31e":["sun_face"],"1fa90":["ringed_planet","saturn"],"2b50":["star"],"1f31f":["star2","glowing_star"],"1f320":["star3","shooting_star"],"1f30c":["milky_way"],"26c5":["partly_sunny"],"26c8":["storm"],"1f324":["overcast"],"1f325":["cloudy"],"1f326":["sunshower"],"1f327":["rain"],"1f328":["snow"],"1f329":["lightning"],"1f32a":["tornado"],"1f32b":["fog"],"1f32c":["wind_face"],"1f300":["cyclone"],"1f308":["rainbow"],"1f302":["closed_umbrella"],"26f1":["beach_umbrella"],"26a1":["zap","high_voltage"],"26c4":["snowman"],"1f525":["fire"],"1f4a7":["droplet"],"1f30a":["ocean"],"1f383":["jack_o_lantern"],"1f384":["christmas_tree","xmas_tree"],"1f386":["fireworks"],"1f387":["sparkler"],"1f9e8":["firecracker"],"1f388":["balloon"],"1f389":["tada","party"],"1f38a":["confetti_ball"],"1f38b":["tanabata_tree"],"1f38d":["bamboo","pine_decor"],"1f38e":["dolls"],"1f38f":["carp_streamer"],"1f390":["wind_chime"],"1f391":["moon_ceremony","rice_scene"],"1f9e7":["red_envelope"],"1f380":["ribbon"],"1f381":["gift"],"1f397":["reminder_ribbon"],"1f39f":["tickets","admission"],"1f3ab":["ticket"],"1f396":["military_medal"],"1f3c6":["trophy"],"1f3c5":["medal"],"1f947":["first_place"],"1f948":["second_place"],"1f949":["third_place"],"26bd":["soccer"],"26be":["baseball"],"1f94e":["softball"],"1f3c0":["basketball"],"1f3d0":["volleyball"],"1f3c8":["football"],"1f3c9":["rugby"],"1f3be":["tennis"],"1f94f":["flying_disc"],"1f3b3":["bowling"],"1f3cf":["cricket_game"],"1f3d1":["field_hockey"],"1f3d2":["hockey"],"1f94d":["lacrosse"],"1f3d3":["ping_pong"],"1f3f8":["badminton"],"1f94a":["boxing_glove"],"1f94b":["gi","martial_arts_uniform"],"1f945":["goal"],"26f3":["golf"],"26f8":["ice_skate"],"1f3a3":["fishing_pole"],"1f93f":["diving_mask","scuba_mask"],"1f3bd":["running_shirt"],"1f3bf":["ski"],"1f6f7":["sled"],"1f94c":["curling_stone"],"1f3af":["dart"],"1fa80":["yoyo"],"1fa81":["kite"],"1f3b1":["8ball"],"1f52e":["crystal_ball"],"1fa84":["wand"],"1f9ff":["nazar_amulet"],"1f3ae":["video_game"],"1f579":["joystick"],"1f3b0":["slot_machine"],"1f3b2":["game_die"],"1f9e9":["jigsaw","puzzle_piece"],"1f9f8":["teddy_bear"],"1fa85":["pinata"],"1fa86":["nesting_dolls"],"265f":["chess_pawn"],"1f0cf":["black_joker"],"1f004":["mahjong"],"1f3b4":["flower_cards"],"1f3ad":["performing_arts"],"1f5bc":["frame_photo"],"1f3a8":["art","palette"],"1f9f5":["spool"],"1faa1":["sewing_needle"],"1f9f6":["yarn"],"1faa2":["knot"],"1f453":["glasses"],"1f576":["sunglasses"],"1f97d":["goggles"],"1f97c":["lab_coat"],"1f9ba":["safety_vest"],"1f454":["necktie","tie"],"1f455":["shirt"],"1f456":["jeans"],"1f9e3":["scarf"],"1f9e4":["gloves"],"1f9e5":["coat"],"1f9e6":["socks"],"1f457":["dress"],"1f458":["kimono"],"1f97b":["sari"],"1fa71":["one_piece_swimsuit"],"1fa72":["briefs"],"1fa73":["shorts"],"1f459":["bikini"],"1f45a":["blouse","womans_clothes"],"1f45b":["purse"],"1f45c":["handbag"],"1f45d":["pouch","clutch_bag"],"1f6cd":["shopping_bags"],"1f392":["backpack"],"1fa74":["sandal"],"1f45e":["dress_shoe","mans_shoe"],"1f45f":["sneaker","athletic_shoe"],"1f97e":["hiking_boot"],"1f97f":["flat_shoe"],"1f460":["high_heel"],"1f461":["womans_sandal"],"1fa70":["ballet_shoes"],"1f462":["womans_boot"],"1f451":["crown"],"1f452":["womans_hat"],"1f3a9":["top_hat"],"1f393":["graduation_cap"],"1f9e2":["billed_cap"],"1fa96":["military_helmet"],"26d1":["helmet_cross"],"1f4ff":["prayer_beads"],"1f484":["lipstick"],"1f48d":["ring"],"1f48e":["gem"],"1f507":["mute","no_sound"],"1f508":["speaker","low_sound"],"1f509":["sound"],"1f50a":["loud_sound"],"1f4e2":["loudspeaker"],"1f4e3":["megaphone"],"1f4ef":["postal_horn"],"1f514":["bell"],"1f515":["no_bell"],"1f3bc":["musical_score"],"1f3b5":["musical_note"],"1f3b6":["musical_notes"],"1f399":["studio_microphone"],"1f39a":["level_slider"],"1f39b":["control_knobs"],"1f3a4":["microphone"],"1f3a7":["headphones"],"1f4fb":["radio"],"1f3b7":["saxophone"],"1fa97":["accordion"],"1f3b8":["guitar"],"1f3b9":["musical_keyboard"],"1f3ba":["trumpet"],"1f3bb":["violin"],"1fa95":["banjo"],"1f941":["drum"],"1fa98":["long_drum"],"1f4f1":["mobile","iphone","android"],"1f4f2":["mobile_calling"],"260e":["telephone"],"1f4de":["telephone_receiver"],"1f4df":["pager"],"1f4e0":["fax"],"1f50b":["battery"],"1f50c":["electric_plug"],"1f4bb":["laptop"],"1f5a5":["desktop","computer"],"1f5a8":["printer"],"1f5b1":["computer_mouse"],"1f5b2":["trackball"],"1f4bd":["minidisc"],"1f4be":["floppy_disk"],"1f4bf":["cd","disk"],"1f4c0":["dvd"],"1f9ee":["abacus"],"1f3a5":["movie_camera"],"1f39e":["film_frames"],"1f4fd":["projector"],"1f3ac":["clapper"],"1f4fa":["tv"],"1f4f7":["camera"],"1f4f8":["camera_flash"],"1f4f9":["video_camera"],"1f4fc":["vhs"],"1f50d":["mag"],"1f50e":["mag_right"],"1f56f":["candle"],"1f4a1":["bulb","light_bulb"],"1f526":["flashlight"],"1f3ee":["red_lantern"],"1fa94":["diya_lamp"],"1f4d4":["decorative_notebook"],"1f4d5":["closed_book"],"1f4d6":["book"],"1f4d7":["green_book"],"1f4d8":["blue_book"],"1f4d9":["orange_book"],"1f4da":["books"],"1f4d3":["notebook"],"1f4d2":["ledger"],"1f4c3":["page_curl"],"1f4dc":["scroll"],"1f4c4":["page_facing_up"],"1f4f0":["newspaper"],"1f5de":["rolled_newspaper"],"1f4d1":["bookmark_tabs"],"1f516":["bookmark"],"1f3f7":["label"],"1f4b0":["moneybag"],"1fa99":["coin"],"1f4b4":["yen"],"1f4b5":["dollar"],"1f4b6":["euro"],"1f4b7":["pound"],"1f4b8":["money_wings"],"1f4b3":["credit_card"],"1f9fe":["receipt"],"1f4b9":["ja_chart"],"1f4e7":["email"],"1f4e8":["incoming_envelope"],"1f4e9":["envelope_arrow"],"1f4e4":["outbox_tray"],"1f4e5":["inbox_tray"],"1f4e6":["package"],"1f4eb":["mailbox"],"1f4ea":["mailbox_closed"],"1f4ec":["mailbox_mail"],"1f4ed":["mailbox_no_mail"],"1f4ee":["postbox"],"1f5f3":["ballot_box"],"270f":["pencil"],"1f58b":["fountain_pen"],"1f58a":["pen"],"1f58c":["paintbrush"],"1f58d":["crayon"],"1f4dd":["memo"],"1f4bc":["briefcase"],"1f4c1":["file_folder"],"1f4c2":["open_file_folder"],"1f5c2":["dividers"],"1f4c5":["date","calendar"],"1f4c6":["torn_calendar"],"1f5d2":["notepad_spiral"],"1f5d3":["calendar_spiral"],"1f4c7":["card_index"],"1f4c8":["chart_up"],"1f4c9":["chart_down"],"1f4ca":["bar_chart"],"1f4cb":["clipboard"],"1f4cc":["pushpin"],"1f4cd":["round_pushpin"],"1f4ce":["paperclip"],"1f587":["paperclips"],"1f4cf":["straight_ruler"],"1f4d0":["triangular_ruler"],"1f5c3":["card_box"],"1f5c4":["file_cabinet"],"1f5d1":["trashcan","wastebasket"],"1f512":["lock"],"1f513":["unlock"],"1f50f":["locked_pen"],"1f510":["locked_key"],"1f511":["key"],"1f5dd":["old_key"],"1f528":["hammer"],"1fa93":["axe"],"26cf":["pick"],"1f6e0":["tools","hammer_wrench"],"1f5e1":["dagger"],"1f52b":["gun","pistol"],"1fa83":["boomerang"],"1f3f9":["bow"],"1f6e1":["shield"],"1fa9a":["saw"],"1f527":["wrench"],"1fa9b":["screwdriver"],"1f529":["nut_and_bolt"],"1f5dc":["clamp","compression"],"1f9af":["probing_cane"],"1f517":["link"],"26d3":["chains"],"1fa9d":["hook"],"1f9f0":["toolbox"],"1f9f2":["magnet"],"1fa9c":["ladder"],"1f9ea":["test_tube"],"1f9eb":["petri_dish"],"1f9ec":["dna","double_helix"],"1f52c":["microscope"],"1f52d":["telescope"],"1f4e1":["satellite_antenna"],"1f489":["syringe"],"1fa78":["blood_drop"],"1f48a":["pill"],"1fa79":["bandaid","adhesive_bandage"],"1fa7a":["stethoscope"],"1f6aa":["door"],"1f6d7":["elevator"],"1fa9e":["mirror"],"1fa9f":["window"],"1f6cf":["bed"],"1f6cb":["couch"],"1fa91":["chair"],"1f6bd":["toilet"],"1faa0":["plunger"],"1f6bf":["shower"],"1f6c1":["bathtub"],"1faa4":["mouse_trap"],"1fa92":["razor"],"1f9f4":["lotion"],"1f9f7":["safety_pin"],"1f9f9":["broom"],"1f9fa":["basket"],"1f9fb":["toilet_paper"],"1faa3":["bucket"],"1f9fc":["soap"],"1faa5":["toothbrush"],"1f9fd":["sponge"],"1f9ef":["fire_extinguisher"],"1f6d2":["shopping_cart"],"1f6ac":["cigarette","smoking"],"26b0":["coffin"],"1faa6":["headstone"],"26b1":["urn"],"1f5ff":["moai"],"1faa7":["placard"],"1f3e7":["atm"],"1f6ae":["litter_bin"],"1f6b0":["potable_water"],"267f":["handicapped"],"1f6b9":["mens"],"1f6ba":["womens"],"1f6bb":["restroom","bathroom"],"1f6bc":["baby_symbol"],"1f6be":["wc"],"1f6c2":["passport_control"],"1f6c3":["customs"],"1f6c4":["baggage_claim"],"1f6c5":["left_luggage"],"26a0":["warning"],"1f6b8":["children_crossing"],"26d4":["no_entry"],"1f6ab":["no_entry_sign"],"1f6b3":["no_bicycles"],"1f6ad":["no_smoking"],"1f6af":["do_not_litter"],"1f6b1":["non_potable_water"],"1f6b7":["no_pedestrians"],"1f4f5":["no_mobile_phones"],"1f51e":["underage"],"2b06":["arrow_up"],"27a1":["arrow_right"],"2b07":["arrow_down"],"2b05":["arrow_left"],"21a9":["arrow_left_hook"],"21aa":["arrow_right_hook"],"1f503":["clockwise"],"1f504":["counter_clockwise"],"1f519":["back"],"1f51a":["end"],"1f51b":["on"],"1f51c":["soon"],"1f51d":["top"],"1f6d0":["place_of_worship"],"269b":["atom"],"1f549":["om_symbol"],"262f":["yin_yang"],"271d":["cross"],"262a":["star_and_crescent"],"262e":["peace"],"1f54e":["menorah"],"1f52f":["six_pointed_star"],"264a":["gemini"],"264b":["cancer"],"264c":["leo"],"264d":["virgo"],"264e":["libra"],"264f":["scorpius"],"26ce":["ophiuchus"],"1f500":["shuffle"],"1f501":["repeat"],"1f502":["repeat_single"],"25b6":["play"],"23e9":["fast_forward"],"23ed":["next_track"],"23ef":["play_pause"],"25c0":["reverse"],"23ea":["rewind"],"23ee":["previous_track"],"1f53c":["up_button"],"23eb":["fast_up_button"],"1f53d":["down_button"],"23ec":["fast_down_button"],"23f8":["pause"],"23f9":["stop"],"23fa":["record"],"23cf":["eject"],"1f3a6":["cinema"],"1f505":["dim","low_brightness"],"1f506":["bright","high_brightness"],"1f4f6":["signal_strength","antenna_bars"],"1f4f3":["vibration_mode"],"1f4f4":["mobile_phone_off"],"26a7":["trans"],"267e":["infinity"],"203c":["bangbang","double_exclamation"],"1f4b1":["currency_exchange"],"1f4b2":["dollar_sign"],"267b":["recycle"],"269c":["fleur-de-lis"],"1f531":["trident"],"1f4db":["name_badge"],"1f530":["ja_beginner"],"2b55":["o"],"274c":["x","cross_mark"],"274e":["cross_mark_button"],"27b0":["curly_loop"],"27bf":["double_curly_loop"],"303d":["part_alternation_mark"],"a9":["copyright"],"ae":["registered"],"23-20e3":["hash"],"2a-20e3":["asterisk"],"30-20e3":["zero"],"31-20e3":["one"],"32-20e3":["two"],"33-20e3":["three"],"34-20e3":["four"],"35-20e3":["five"],"36-20e3":["six"],"37-20e3":["seven"],"38-20e3":["eight"],"39-20e3":["nine"],"1f51f":["ten"],"1f520":["upper_abcd"],"1f521":["abcd"],"1f522":["1234"],"1f523":["symbols"],"1f524":["abc"],"1f170":["a_blood"],"1f18e":["ab_blood"],"1f171":["b_blood"],"1f191":["cl"],"1f192":["cool"],"1f193":["free"],"1f194":["id"],"24c2":["m"],"1f195":["new"],"1f196":["ng"],"1f17e":["o_blood"],"1f197":["ok"],"1f17f":["p"],"1f198":["sos"],"1f199":["up"],"1f19a":["vs"],"1f201":["ja_here","koko"],"1f202":["ja_service_charge"],"1f237":["ja_monthly_amount"],"1f236":["ja_not_free_of_carge"],"1f22f":["ja_reserved"],"1f250":["ja_bargain"],"1f239":["ja_discount"],"1f21a":["ja_free_of_charge"],"1f232":["ja_prohibited"],"1f251":["ja_acceptable"],"1f238":["ja_application"],"1f234":["ja_passing_grade"],"1f233":["ja_vacancy"],"1f23a":["ja_open_for_business"],"1f235":["ja_no_vacancy"],"1f534":["red_circle"],"1f7e0":["orange_circle"],"1f7e1":["yellow_circle"],"1f7e2":["green_circle"],"1f535":["blue_circle"],"1f7e3":["purple_circle"],"1f7e4":["brown_circle"],"26ab":["black_circle"],"26aa":["white_circle"],"1f7e5":["red_square"],"1f7e7":["orange_square"],"1f7e8":["yellow_square"],"1f7e9":["green_square"],"1f7e6":["blue_square"],"1f7ea":["purple_square"],"1f7eb":["brown_square"],"2b1b":["large_black_square"],"2b1c":["large_white_square"],"25fc":["medium_black_square"],"25fb":["medium_white_square"],"25fe":["medium_small_black_square"],"25fd":["medium_small_white_square"],"25aa":["small_black_square"],"25ab":["small_white_square"],"1f536":["large_orange_diamond"],"1f537":["large_blue_diamond"],"1f538":["small_orange_diamond"],"1f539":["small_blue_diamond"],"1f53a":["up_red_triangle"],"1f53b":["down_red_triangle"],"1f4a0":["diamond_dot"],"1f518":["radio_button"],"1f533":["white_square_button"],"1f532":["black_square_button"],"1f3c1":["checkered_flag"],"1f6a9":["triangle_flag"],"1f38c":["crossed_flags"],"1f3f4":["black_flag"],"1f3f3":["white_flag"],"1f3f3-fe0f-200d-1f308":["rainbow_flag"],"1f3f3-fe0f-200d-26a7-fe0f":["trans_flag"],"1f3f4-200d-2620-fe0f":["pirate_flag","jolly_roger"],"1f1e6-1f1e8":["flag_ac"],"1f1e6-1f1e9":["flag_ad"],"1f1e6-1f1ea":["flag_ae"],"1f1e6-1f1eb":["flag_af"],"1f1e6-1f1ec":["flag_ag"],"1f1e6-1f1ee":["flag_ai"],"1f1e6-1f1f1":["flag_al"],"1f1e6-1f1f2":["flag_am"],"1f1e6-1f1f4":["flag_ao"],"1f1e6-1f1f6":["flag_aq"],"1f1e6-1f1f7":["flag_ar"],"1f1e6-1f1f8":["flag_as"],"1f1e6-1f1f9":["flag_at"],"1f1e6-1f1fa":["flag_au"],"1f1e6-1f1fc":["flag_aw"],"1f1e6-1f1fd":["flag_ax"],"1f1e6-1f1ff":["flag_az"],"1f1e7-1f1e6":["flag_ba"],"1f1e7-1f1e7":["flag_bb"],"1f1e7-1f1e9":["flag_bd"],"1f1e7-1f1ea":["flag_be"],"1f1e7-1f1eb":["flag_bf"],"1f1e7-1f1ec":["flag_bg"],"1f1e7-1f1ed":["flag_bh"],"1f1e7-1f1ee":["flag_bi"],"1f1e7-1f1ef":["flag_bj"],"1f1e7-1f1f1":["flag_bl"],"1f1e7-1f1f2":["flag_bm"],"1f1e7-1f1f3":["flag_bn"],"1f1e7-1f1f4":["flag_bo"],"1f1e7-1f1f6":["flag_bq"],"1f1e7-1f1f7":["flag_br"],"1f1e7-1f1f8":["flag_bs"],"1f1e7-1f1f9":["flag_bt"],"1f1e7-1f1fb":["flag_bv"],"1f1e7-1f1fc":["flag_bw"],"1f1e7-1f1fe":["flag_by"],"1f1e7-1f1ff":["flag_bz"],"1f1e8-1f1e6":["flag_ca"],"1f1e8-1f1e8":["flag_cc"],"1f1e8-1f1e9":["flag_cd"],"1f1e8-1f1eb":["flag_cf"],"1f1e8-1f1ec":["flag_cg"],"1f1e8-1f1ed":["flag_ch"],"1f1e8-1f1ee":["flag_ci"],"1f1e8-1f1f0":["flag_ck"],"1f1e8-1f1f1":["flag_cl"],"1f1e8-1f1f2":["flag_cm"],"1f1e8-1f1f3":["flag_cn"],"1f1e8-1f1f4":["flag_co"],"1f1e8-1f1f5":["flag_cp"],"1f1e8-1f1f7":["flag_cr"],"1f1e8-1f1fa":["flag_cu"],"1f1e8-1f1fb":["flag_cv"],"1f1e8-1f1fc":["flag_cw"],"1f1e8-1f1fd":["flag_cx"],"1f1e8-1f1fe":["flag_cy"],"1f1e8-1f1ff":["flag_cz"],"1f1e9-1f1ea":["flag_de"],"1f1e9-1f1ec":["flag_dg"],"1f1e9-1f1ef":["flag_dj"],"1f1e9-1f1f0":["flag_dk"],"1f1e9-1f1f2":["flag_dm"],"1f1e9-1f1f4":["flag_do"],"1f1e9-1f1ff":["flag_dz"],"1f1ea-1f1e6":["flag_ea"],"1f1ea-1f1e8":["flag_ec"],"1f1ea-1f1ea":["flag_ee"],"1f1ea-1f1ec":["flag_eg"],"1f1ea-1f1ed":["flag_eh"],"1f1ea-1f1f7":["flag_er"],"1f1ea-1f1f8":["flag_es"],"1f1ea-1f1f9":["flag_et"],"1f1ea-1f1fa":["flag_eu"],"1f1eb-1f1ee":["flag_fi"],"1f1eb-1f1ef":["flag_fj"],"1f1eb-1f1f0":["flag_fk"],"1f1eb-1f1f2":["flag_fm"],"1f1eb-1f1f4":["flag_fo"],"1f1eb-1f1f7":["flag_fr"],"1f1ec-1f1e6":["flag_ga"],"1f1ec-1f1e7":["flag_gb"],"1f1ec-1f1e9":["flag_gd"],"1f1ec-1f1ea":["flag_ge"],"1f1ec-1f1eb":["flag_gf"],"1f1ec-1f1ec":["flag_gg"],"1f1ec-1f1ed":["flag_gh"],"1f1ec-1f1ee":["flag_gi"],"1f1ec-1f1f1":["flag_gl"],"1f1ec-1f1f2":["flag_gm"],"1f1ec-1f1f3":["flag_gn"],"1f1ec-1f1f5":["flag_gp"],"1f1ec-1f1f6":["flag_gq"],"1f1ec-1f1f7":["flag_gr"],"1f1ec-1f1f8":["flag_gs"],"1f1ec-1f1f9":["flag_gt"],"1f1ec-1f1fa":["flag_gu"],"1f1ec-1f1fc":["flag_gw"],"1f1ec-1f1fe":["flag_gy"],"1f1ed-1f1f0":["flag_hk"],"1f1ed-1f1f2":["flag_hm"],"1f1ed-1f1f3":["flag_hn"],"1f1ed-1f1f7":["flag_hr"],"1f1ed-1f1f9":["flag_ht"],"1f1ed-1f1fa":["flag_hu"],"1f1ee-1f1e8":["flag_ic"],"1f1ee-1f1e9":["flag_id"],"1f1ee-1f1ea":["flag_ie"],"1f1ee-1f1f1":["flag_il"],"1f1ee-1f1f2":["flag_im"],"1f1ee-1f1f3":["flag_in"],"1f1ee-1f1f4":["flag_io"],"1f1ee-1f1f6":["flag_iq"],"1f1ee-1f1f7":["flag_ir"],"1f1ee-1f1f8":["flag_is"],"1f1ee-1f1f9":["flag_it"],"1f1ef-1f1ea":["flag_je"],"1f1ef-1f1f2":["flag_jm"],"1f1ef-1f1f4":["flag_jo"],"1f1ef-1f1f5":["flag_jp"],"1f1f0-1f1ea":["flag_ke"],"1f1f0-1f1ec":["flag_kg"],"1f1f0-1f1ed":["flag_kh"],"1f1f0-1f1ee":["flag_ki"],"1f1f0-1f1f2":["flag_km"],"1f1f0-1f1f3":["flag_kn"],"1f1f0-1f1f5":["flag_kp"],"1f1f0-1f1f7":["flag_kr"],"1f1f0-1f1fc":["flag_kw"],"1f1f0-1f1fe":["flag_ky"],"1f1f0-1f1ff":["flag_kz"],"1f1f1-1f1e6":["flag_la"],"1f1f1-1f1e7":["flag_lb"],"1f1f1-1f1e8":["flag_lc"],"1f1f1-1f1ee":["flag_li"],"1f1f1-1f1f0":["flag_lk"],"1f1f1-1f1f7":["flag_lr"],"1f1f1-1f1f8":["flag_ls"],"1f1f1-1f1f9":["flag_lt"],"1f1f1-1f1fa":["flag_lu"],"1f1f1-1f1fb":["flag_lv"],"1f1f1-1f1fe":["flag_ly"],"1f1f2-1f1e6":["flag_ma"],"1f1f2-1f1e8":["flag_mc"],"1f1f2-1f1e9":["flag_md"],"1f1f2-1f1ea":["flag_me"],"1f1f2-1f1eb":["flag_mf"],"1f1f2-1f1ec":["flag_mg"],"1f1f2-1f1ed":["flag_mh"],"1f1f2-1f1f0":["flag_mk"],"1f1f2-1f1f1":["flag_ml"],"1f1f2-1f1f2":["flag_mm"],"1f1f2-1f1f3":["flag_mn"],"1f1f2-1f1f4":["flag_mo"],"1f1f2-1f1f5":["flag_mp"],"1f1f2-1f1f6":["flag_mq"],"1f1f2-1f1f7":["flag_mr"],"1f1f2-1f1f8":["flag_ms"],"1f1f2-1f1f9":["flag_mt"],"1f1f2-1f1fa":["flag_mu"],"1f1f2-1f1fb":["flag_mv"],"1f1f2-1f1fc":["flag_mw"],"1f1f2-1f1fd":["flag_mx"],"1f1f2-1f1fe":["flag_my"],"1f1f2-1f1ff":["flag_mz"],"1f1f3-1f1e6":["flag_na"],"1f1f3-1f1e8":["flag_nc"],"1f1f3-1f1ea":["flag_ne"],"1f1f3-1f1eb":["flag_nf"],"1f1f3-1f1ec":["flag_ng"],"1f1f3-1f1ee":["flag_ni"],"1f1f3-1f1f1":["flag_nl"],"1f1f3-1f1f4":["flag_no"],"1f1f3-1f1f5":["flag_np"],"1f1f3-1f1f7":["flag_nr"],"1f1f3-1f1fa":["flag_nu"],"1f1f3-1f1ff":["flag_nz"],"1f1f4-1f1f2":["flag_om"],"1f1f5-1f1e6":["flag_pa"],"1f1f5-1f1ea":["flag_pe"],"1f1f5-1f1eb":["flag_pf"],"1f1f5-1f1ec":["flag_pg"],"1f1f5-1f1ed":["flag_ph"],"1f1f5-1f1f0":["flag_pk"],"1f1f5-1f1f1":["flag_pl"],"1f1f5-1f1f2":["flag_pm"],"1f1f5-1f1f3":["flag_pn"],"1f1f5-1f1f7":["flag_pr"],"1f1f5-1f1f8":["flag_ps"],"1f1f5-1f1f9":["flag_pt"],"1f1f5-1f1fc":["flag_pw"],"1f1f5-1f1fe":["flag_py"],"1f1f6-1f1e6":["flag_qa"],"1f1f7-1f1ea":["flag_re"],"1f1f7-1f1f4":["flag_ro"],"1f1f7-1f1f8":["flag_rs"],"1f1f7-1f1fa":["flag_ru"],"1f1f7-1f1fc":["flag_rw"],"1f1f8-1f1e6":["flag_sa"],"1f1f8-1f1e7":["flag_sb"],"1f1f8-1f1e8":["flag_sc"],"1f1f8-1f1e9":["flag_sd"],"1f1f8-1f1ea":["flag_se"],"1f1f8-1f1ec":["flag_sg"],"1f1f8-1f1ed":["flag_sh"],"1f1f8-1f1ee":["flag_si"],"1f1f8-1f1ef":["flag_sj"],"1f1f8-1f1f0":["flag_sk"],"1f1f8-1f1f1":["flag_sl"],"1f1f8-1f1f2":["flag_sm"],"1f1f8-1f1f3":["flag_sn"],"1f1f8-1f1f4":["flag_so"],"1f1f8-1f1f7":["flag_sr"],"1f1f8-1f1f8":["flag_ss"],"1f1f8-1f1f9":["flag_st"],"1f1f8-1f1fb":["flag_sv"],"1f1f8-1f1fd":["flag_sx"],"1f1f8-1f1fe":["flag_sy"],"1f1f8-1f1ff":["flag_sz"],"1f1f9-1f1e6":["flag_ta"],"1f1f9-1f1e8":["flag_tc"],"1f1f9-1f1e9":["flag_td"],"1f1f9-1f1eb":["flag_tf"],"1f1f9-1f1ec":["flag_tg"],"1f1f9-1f1ed":["flag_th"],"1f1f9-1f1ef":["flag_tj"],"1f1f9-1f1f0":["flag_tk"],"1f1f9-1f1f1":["flag_tl"],"1f1f9-1f1f2":["flag_tm"],"1f1f9-1f1f3":["flag_tn"],"1f1f9-1f1f4":["flag_to"],"1f1f9-1f1f7":["flag_tr"],"1f1f9-1f1f9":["flag_tt"],"1f1f9-1f1fb":["flag_tv"],"1f1f9-1f1fc":["flag_tw"],"1f1f9-1f1ff":["flag_tz"],"1f1fa-1f1e6":["flag_ua"],"1f1fa-1f1ec":["flag_ug"],"1f1fa-1f1f2":["flag_um"],"1f1fa-1f1f3":["flag_un"],"1f1fa-1f1f8":["flag_us","usa"],"1f1fa-1f1fe":["flag_uy"],"1f1fa-1f1ff":["flag_uz"],"1f1fb-1f1e6":["flag_va"],"1f1fb-1f1e8":["flag_vc"],"1f1fb-1f1ea":["flag_ve"],"1f1fb-1f1ec":["flag_vg"],"1f1fb-1f1ee":["flag_vi"],"1f1fb-1f1f3":["flag_vn"],"1f1fb-1f1fa":["flag_vu"],"1f1fc-1f1eb":["flag_wf"],"1f1fc-1f1f8":["flag_ws"],"1f1fd-1f1f0":["flag_xk"],"1f1fe-1f1ea":["flag_ye"],"1f1fe-1f1f9":["flag_yt"],"1f1ff-1f1e6":["flag_za"],"1f1ff-1f1f2":["flag_zm"],"1f1ff-1f1fc":["flag_zw"],"1f3f4-e0067-e0062-e0065-e006e-e0067-e007f":["flag_gbeng","england"],"1f3f4-e0067-e0062-e0073-e0063-e0074-e007f":["flag_gbsct","scotland"],"1f3f4-e0067-e0062-e0077-e006c-e0073-e007f":["flag_gbwls","wales"]}')},function(f){f.exports=JSON.parse("{}")},function(f,e){f.exports=flarum.core.compat["models/Forum"]},function(f,e,a){"use strict";a.d(e,"a",(function(){return i}));var n=a(1),o=a(0),t=a.n(o),r=a(6),i=function(f){function e(){return f.apply(this,arguments)||this}return Object(n.a)(e,f),e}(a.n(r)()(t.a,{identifier:t.a.attribute("identifier"),display:t.a.attribute("display"),type:t.a.attribute("type"),enabled:t.a.attribute("enabled"),user_id:t.a.attribute("user_id"),post_id:t.a.attribute("post_id"),reaction_id:t.a.attribute("reaction_id")}))},,function(f,e){f.exports=flarum.core.compat["components/Alert"]},function(f,e){f.exports=flarum.core.compat.Component},function(f,e){f.exports=flarum.core.compat["models/Post"]},function(f,e){f.exports=flarum.core.compat["utils/extract"]},,,function(f,e,a){"use strict";var n=a(3),o=a(2),t=a.n(o),r=a(11),i=a.n(r),c=a(22),l=a.n(c),s=a(16),_=a.n(s),d=a(0),g=a.n(d),u=a(23),p=a.n(u),b=a(1),h=a(24),w=a.n(h),y=a(25),k=a.n(y),v=a(5),x=function(f){function e(){return f.apply(this,arguments)||this}Object(b.a)(e,f);var a=e.prototype;return a.icon=function(){return"fas fa-heart"},a.href=function(){return app.route.post(this.attrs.notification.subject())},a.content=function(){var f=this.attrs.notification,e=JSON.parse(f.content()),a=e.identifier,n=e.type,o=f.fromUser(),t="emoji"===n?m("img",{src:Object(v.a)(a).url,loading:"lazy",height:"14px"}):k()(a);return app.translator.trans("fof-reactions.forum.notification",{user:o,reaction:t})},a.excerpt=function(){return this.attrs.notification.subject().contentPlain()},e}(w.a),j=a(12),R=a(6),O=function(f){function e(){return f.apply(this,arguments)||this}return Object(b.a)(e,f),e}(a.n(R)()(g.a,{reaction:g.a.hasOne("reaction"),userId:g.a.attribute("userId"),postId:g.a.attribute("postId"),reactionId:g.a.attribute("reactionId"),user:g.a.hasOne("user"),post:g.a.hasOne("post")})),z=a(26),C=a.n(z),q=a(27),N=a.n(q),I=function(f){return app.store.find("posts",f,{include:"reactions"}).then((function(){return m.redraw()}))},M=[],S=function(f){var e=M[f];return e?e(f):(e=M[f]=C()(I,1500))(f)},P=a(28),B=a.n(P),A=(a(14),a(15)),T=a.n(A),L=a(29),E=a.n(L),G=a(4),U=a.n(G),Z=a(30),D=a.n(Z),F=a(31),J=a.n(F),W=function(f,e){return f.map("function"==typeof e?e:function(f){return f[e]}).reduce((function(e,a,n){return e[a]=(e[a]||[]).concat(f[n]),e}),{})};function H(){return(H=Object.assign||function(f){for(var e=1;e=f.length?{done:!0}:{done:!1,value:f[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(a=f[Symbol.iterator]()).next.bind(a)}function Y(f,e){(null==e||e>f.length)&&(e=f.length);for(var a=0,n=new Array(e);a1?m("span",{className:"count"},t):""))}}))),(!Object.keys(this.loading).length||this.loading.null)&&!this.reaction&&a&&m("div",{className:"Reactions--react"},this.reactButton(),m("div",{className:"CommentPost--Reactions",style:1===this.post.number()?"":"left: -28%;"},m("ul",{className:"Reactions--Ul"},D()(this.getReactions().toArray())))))},a.reactButton=function(){return m(U.a,{className:"Button Button--link Reactions--ShowReactions",type:"Button",title:"React",loading:this.loading.null},m("span",{className:"Button-label"},m("svg",{class:"button-react",width:"20px",height:"20px",viewBox:"0 0 18 18"},"/* Generator: Sketch 40.3 (33839) - http://www.bohemiancoding.com/sketch */",m("g",{id:"Page-1",stroke:"none","stroke-width":"1",fill:"none","fill-rule":"evenodd"},m("g",{id:"ic_reactions_grey_16px"},m("g",{id:"Group-2"},m("g",{id:"0:0:0:0"},m("rect",{id:"Rectangle-5",x:"0",y:"0",width:"18",height:"18"}),m("g",{id:"emoticon"}),m("path",{d:"M14.6332705,7.33333333 C14.6554304,7.55389388 14.6666667,7.77636769 14.6666667,8 C14.6666667,11.6818983 11.6818983,14.6666667 8,14.6666667 C6.23189007,14.6666667 4.53619732,13.9642877 3.28595479,12.7140452 C2.03571227,11.4638027 1.33333333,9.76810993 1.33333333,8 C1.33333333,4.33333333 4.31333333,1.33333333 8,1.33333333 L8,1.33333333 C8.22363231,1.33333333 8.44610612,1.3445696 8.66666667,1.36672949 L8.66666667,2.70847693 C8.44668912,2.68076722 8.22407146,2.66666667 8,2.66666667 C5.05448133,2.66666667 2.66666667,5.05448133 2.66666667,8 C2.66666667,10.9455187 5.05448133,13.3333333 8,13.3333333 C10.9455187,13.3333333 13.3333333,10.9455187 13.3333333,8 C13.3333333,7.77592854 13.3192328,7.55331088 13.2915231,7.33333333 L14.6332705,7.33333333 Z M8,11.6666667 C9.55333333,11.6666667 10.8666667,10.6933333 11.4066667,9.33333333 L4.59333333,9.33333333 C5.12666667,10.6933333 6.44666667,11.6666667 8,11.6666667 Z M10.3333333,7.33333333 C10.8856181,7.33333333 11.3333333,6.88561808 11.3333333,6.33333333 C11.3333333,5.78104858 10.8856181,5.33333333 10.3333333,5.33333333 C9.78104858,5.33333333 9.33333333,5.78104858 9.33333333,6.33333333 C9.33333333,6.88561808 9.78104858,7.33333333 10.3333333,7.33333333 L10.3333333,7.33333333 Z M5.66666667,7.33333333 C6.21895142,7.33333333 6.66666667,6.88561808 6.66666667,6.33333333 C6.66666667,5.78104858 6.21895142,5.33333333 5.66666667,5.33333333 C5.11438192,5.33333333 4.66666667,5.78104858 4.66666667,6.33333333 C4.66666667,6.88561808 5.11438192,7.33333333 5.66666667,7.33333333 Z",id:"Combined-Shape",fill:"#667c99"})),m("g",{id:"Group-15",transform:"translate(10.666667, 0.000000)",fill:"#667c99"},m("polygon",{id:"Path",points:"3.33333333 2 3.33333333 0 2 0 2 2 0 2 0 3.33333333 2 3.33333333 2 5.33333333 3.33333333 5.33333333 3.33333333 3.33333333 5.33333333 3.33333333 5.33333333 2"}))))))))},a.react=function(f,e){var a=this;if(e.target.blur(),app.session.user){if(!this.post.canReact())return app.alerts.show({type:"error"},app.translator.trans("core.lib.error.permission_denied_message"));var n=f?f.id():null,o=this.post.reactions();return this.loading[n]=!0,this.post.save({reaction:n}).then((function(e){delete a.loading[n];for(var t,r=X(o);!(t=r()).done;){var i=t.value;e.reactions().includes(i)||app.store.remove(i)}a.updateChosenReaction(),(void 0!==app.forum.data.relationships.ranks&&(app.forum.attribute("ReactionConverts")[0]===f||app.forum.attribute("ReactionConverts")[1]===f)||void 0!==a.post.data.relationships.likes&&app.forum.attribute("ReactionConverts")[2]===f)&&app.alerts.show({type:"warning"},app.translator.trans("fof-reactions.forum.warning",{reaction:f})),m.redraw.sync()})).catch((function(f){delete a.loading[n],$("body").append(f),m.redraw.sync()}))}app.modal.show(J.a)},a.updateChosenReaction=function(){var f=this.getPostReactions();return this.reaction=app.session.user&&f.filter((function(f){return f.userId()==app.session.user.id()}))[0]},a.getPostReactions=function(){var f=this;return this.post.reactions()||app.store.all("post_reactions").filter((function(e){return e&&e.postId()==f.post.id()}))},e}(T.a),ef=a(32),af=a.n(ef),nf=a(33),of=a.n(nf),tf=a(34),rf=a.n(tf),cf=a(35),lf=a.n(cf),sf=a(36),_f=a.n(sf),df=function(f){function e(){return f.apply(this,arguments)||this}Object(b.a)(e,f);var a=e.prototype;return a.className=function(){return"ReactionsModal Modal--small"},a.title=function(){return app.translator.trans("fof-reactions.forum.modal.title")},a.oninit=function(e){f.prototype.oninit.call(this,e),this.loading=!0,this.groupedReactions=W(this.attrs.post.reactions().filter(Boolean),(function(f){return f.reactionId()})),this.load()},a.content=function(){var f=this;return this.loading?m("div",{className:"Modal-body"},m(rf.a,null)):m("div",{className:"Modal-body"},m("ul",{className:"ReactionsModal-list"},Object.keys(this.groupedReactions).map((function(e){var a=app.store.getById("reactions",e),n=f.groupedReactions[e];if(n.length)return m("div",{className:"ReactionsModal-group"},m("legend",null,m(V,{reaction:a,className:"ReactionModal-reaction"}),m("label",{className:"ReactionsModal-display"},a.display()||a.identifier())),m("hr",{className:"ReactionsModal-delimiter"}),n.filter((function(f){return f.user()})).map((function(f){return m("li",null,m("a",{className:"ReactionsModal-user",href:app.route.user(f.user()),config:m.route},lf()(f.user(),{loading:"lazy"})," ",_f()(f.user())))})))}))))},a.load=function(){return app.request({method:"GET",url:app.forum.attribute("apiUrl")+this.attrs.post.apiEndpoint()+"/reactions",data:{include:"user"}}).then((function(f){return app.store.pushPayload(f)})).then(this.loaded.bind(this),this.loaded.bind(this))},e}(of.a);t.a.initializers.add("fof/reactions",(function(){t.a.store.models.reactions=j.a,t.a.store.models.post_reactions=O,t.a.notificationComponents.postReacted=x,_.a.prototype.canReact=g.a.attribute("canReact"),_.a.prototype.reactions=g.a.hasMany("reactions"),i.a.prototype.reactions=g.a.hasMany("reactions"),l.a.prototype.canSeeReactions=g.a.attribute("canSeeReactions"),Object(n.extend)(B.a.prototype,"actionItems",(function(f){var e=this.attrs.post;if(!e.isHidden()){var a=t.a.session.user&&Array.isArray(e.reactions())&&e.reactions().some((function(f){return f===t.a.session.user}));f.add("react",ff.component({post:e,reaction:a}),5)}})),Object(n.extend)(af.a,"moderationControls",(function(f,e){e.discussion().canSeeReactions()&&e.reactions()&&e.reactions().length&&f.add("viewReactions",m(U.a,{icon:"fas fa-heart",onclick:function(){return t.a.modal.show(df,{post:e})}},t.a.translator.trans("fof-reactions.forum.mod_item")))})),Object(n.extend)(N.a.prototype,"config",(function(f,e,a){e||app.pusher&&app.pusher.then((function(f){f.main.bind("newReaction",(function(f){var e=f.postId,a=f.reactionId,n=app.store.getById("reactions",a),o=app.store.getById("posts",e);n&&o&&S(e)})),f.main.bind("removedReaction",(function(f){var e=f.userId,a=f.postId,n=f.reactionId,o=app.store.all("post_reactions").filter((function(f){return f.userId()==e&&f.postId()==a&&f.reactionId()==n}))[0];o&&(app.store.remove(o),S(a),m.redraw())})),Object(n.extend)(a,"onunload",(function(){return f.main.unbind("newReaction")})),Object(n.extend)(a,"onunload",(function(){return f.main.unbind("removedReaction")}))}))})),Object(n.extend)(p.a.prototype,"notificationTypes",(function(f){f.add("postReacted",{name:"postReacted",icon:"far fa-smile",label:t.a.translator.trans("fof-reactions.forum.settings.notify_post_reacted_label")})}))}))},,function(f,e){f.exports=flarum.core.compat["models/Discussion"]},function(f,e){f.exports=flarum.core.compat["components/NotificationGrid"]},function(f,e){f.exports=flarum.core.compat["components/Notification"]},function(f,e){f.exports=flarum.core.compat["helpers/icon"]},function(f,e,a){(function(e){var a=/^\s+|\s+$/g,n=/^[-+]0x[0-9a-f]+$/i,o=/^0b[01]+$/i,t=/^0o[0-7]+$/i,r=parseInt,i="object"==typeof e&&e&&e.Object===Object&&e,c="object"==typeof self&&self&&self.Object===Object&&self,l=i||c||Function("return this")(),s=Object.prototype.toString,_=Math.max,d=Math.min,g=function(){return l.Date.now()};function u(f){var e=typeof f;return!!f&&("object"==e||"function"==e)}function m(f){if("number"==typeof f)return f;if(function(f){return"symbol"==typeof f||function(f){return!!f&&"object"==typeof f}(f)&&"[object Symbol]"==s.call(f)}(f))return NaN;if(u(f)){var e="function"==typeof f.valueOf?f.valueOf():f;f=u(e)?e+"":e}if("string"!=typeof f)return 0===f?f:+f;f=f.replace(a,"");var i=o.test(f);return i||t.test(f)?r(f.slice(2),i?2:8):n.test(f)?NaN:+f}f.exports=function(f,e,a){var n,o,t,r,i,c,l=0,s=!1,p=!1,b=!0;if("function"!=typeof f)throw new TypeError("Expected a function");function h(e){var a=n,t=o;return n=o=void 0,l=e,r=f.apply(t,a)}function w(f){return l=f,i=setTimeout(k,e),s?h(f):r}function y(f){var a=f-c;return void 0===c||a>=e||a<0||p&&f-l>=t}function k(){var f=g();if(y(f))return v(f);i=setTimeout(k,function(f){var a=e-(f-c);return p?d(a,t-(f-l)):a}(f))}function v(f){return i=void 0,b&&n?h(f):(n=o=void 0,r)}function x(){var f=g(),a=y(f);if(n=arguments,o=this,c=f,a){if(void 0===i)return w(c);if(p)return i=setTimeout(k,e),h(c)}return void 0===i&&(i=setTimeout(k,e)),r}return e=m(e)||0,u(a)&&(s=!!a.leading,t=(p="maxWait"in a)?_(m(a.maxWait)||0,e):t,b="trailing"in a?!!a.trailing:b),x.cancel=function(){void 0!==i&&clearTimeout(i),l=0,n=c=o=i=void 0},x.flush=function(){return void 0===i?r:v(g())},x}}).call(this,a(43))},function(f,e){f.exports=flarum.core.compat["components/DiscussionPage"]},function(f,e){f.exports=flarum.core.compat["components/CommentPost"]},function(f,e){f.exports=flarum.core.compat["utils/ItemList"]},function(f,e){f.exports=flarum.core.compat["helpers/listItems"]},function(f,e){f.exports=flarum.core.compat["components/LogInModal"]},function(f,e){f.exports=flarum.core.compat["utils/PostControls"]},function(f,e){f.exports=flarum.core.compat["components/Modal"]},function(f,e){f.exports=flarum.core.compat["components/LoadingIndicator"]},function(f,e){f.exports=flarum.core.compat["helpers/avatar"]},function(f,e){f.exports=flarum.core.compat["helpers/username"]},,,,,,function(f,e,a){"use strict";a.r(e);var n=a(8);for(var o in n)["default"].indexOf(o)<0&&function(f){a.d(e,f,(function(){return n[f]}))}(o);a(20)},function(f,e){var a;a=function(){return this}();try{a=a||new Function("return this")()}catch(f){"object"==typeof window&&(a=window)}f.exports=a}]); //# sourceMappingURL=forum.js.map \ No newline at end of file diff --git a/js/dist/forum.js.map b/js/dist/forum.js.map index d6b53b6..2459952 100644 --- a/js/dist/forum.js.map +++ b/js/dist/forum.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://@fof/reactions/webpack/bootstrap","webpack://@fof/reactions/external \"flarum.core.compat['Model']\"","webpack://@fof/reactions/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://@fof/reactions/external \"flarum.core.compat['app']\"","webpack://@fof/reactions/external \"flarum.core.compat['extend']\"","webpack://@fof/reactions/external \"flarum.core.compat['components/Button']\"","webpack://@fof/reactions/./src/common/util/emoji.js","webpack://@fof/reactions/external \"flarum.core.compat['utils/mixin']\"","webpack://@fof/reactions/external \"flarum.core.compat['models/Forum']\"","webpack://@fof/reactions/./src/common/models/Reaction.js","webpack://@fof/reactions/external \"flarum.core.compat['components/Alert']\"","webpack://@fof/reactions/external \"flarum.core.compat['Component']\"","webpack://@fof/reactions/external \"flarum.core.compat['models/Post']\"","webpack://@fof/reactions/external \"flarum.core.compat['utils/extract']\"","webpack://@fof/reactions/./src/forum/components/PostReactedNotification.js","webpack://@fof/reactions/./src/forum/models/PostReaction.js","webpack://@fof/reactions/./src/forum/addPusher.js","webpack://@fof/reactions/./src/forum/utils/groupBy.js","webpack://@fof/reactions/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://@fof/reactions/./src/common/components/ReactionComponent.js","webpack://@fof/reactions/./src/forum/components/PostReactAction.js","webpack://@fof/reactions/./src/forum/components/ReactionsModal.js","webpack://@fof/reactions/./src/forum/index.js","webpack://@fof/reactions/./src/forum/addReactionAction.js","webpack://@fof/reactions/external \"flarum.core.compat['models/Discussion']\"","webpack://@fof/reactions/external \"flarum.core.compat['components/NotificationGrid']\"","webpack://@fof/reactions/external \"flarum.core.compat['components/Notification']\"","webpack://@fof/reactions/external \"flarum.core.compat['helpers/icon']\"","webpack://@fof/reactions/./node_modules/lodash.debounce/index.js","webpack://@fof/reactions/external \"flarum.core.compat['components/DiscussionPage']\"","webpack://@fof/reactions/external \"flarum.core.compat['components/CommentPost']\"","webpack://@fof/reactions/external \"flarum.core.compat['utils/ItemList']\"","webpack://@fof/reactions/external \"flarum.core.compat['helpers/listItems']\"","webpack://@fof/reactions/external \"flarum.core.compat['components/LogInModal']\"","webpack://@fof/reactions/external \"flarum.core.compat['utils/PostControls']\"","webpack://@fof/reactions/external \"flarum.core.compat['components/Modal']\"","webpack://@fof/reactions/external \"flarum.core.compat['components/LoadingIndicator']\"","webpack://@fof/reactions/external \"flarum.core.compat['helpers/avatar']\"","webpack://@fof/reactions/external \"flarum.core.compat['helpers/username']\"","webpack://@fof/reactions/./forum.js","webpack://@fof/reactions/(webpack)/buildin/global.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","flarum","core","compat","_inheritsLoose","subClass","superClass","constructor","__proto__","shortnames","flatten","arr","depth","reduce","a","v","concat","Array","isArray","values","emojis","entries","toUnicodeEmoji","codePoint","String","fromCodePoint","split","map","e","Match","input","finalScore","emojiName","forEach","length","equals","indexF","indexOf","indexS","score","this","emoji","emojiCache","Map","reactionOrIdentifier","identifier","has","includes","find","getEmoji","match","output","uc","url","type","set","Reaction","mixin","Model","attribute","display","enabled","user_id","post_id","reaction_id","PostReactedNotification","icon","href","app","route","post","attrs","notification","subject","content","JSON","parse","user","fromUser","reaction","src","loading","height","translator","trans","excerpt","contentPlain","Notification","PostReaction","hasOne","userId","postId","reactionId","fetch","store","include","then","redraw","debounced","update","func","debounce","fn","val","acc","_extends","assign","target","arguments","source","apply","ReactionComponent","view","extract","className","title","draggable","alt","aria-hidden","Component","PostReactAction","oninit","vdom","updateChosenReaction","config","isInitialized","window","$","unbind","on","toggleClass","document","click","is","parents","removeClass","getReactions","items","ItemList","forum","reactions","add","replace","onclick","react","data-reaction","id","groupedPostReactions","groupBy","getPostReactions","canReact","style","keys","getById","count","spanClass","Button","component","disabled","reactButton","number","listItems","toArray","class","width","viewBox","stroke","stroke-width","fill","fill-rule","x","y","transform","points","blur","session","alerts","show","originalPostReactions","save","postReaction","remove","undefined","data","relationships","ranks","likes","sync","err","append","modal","LogInModal","postReactions","filter","all","ReactionsModal","vnode","groupedReactions","Boolean","load","avatar","username","request","method","apiEndpoint","response","pushPayload","loaded","Modal","initializers","models","post_reactions","notificationComponents","postReacted","Post","hasMany","Forum","Discussion","canSeeReactions","extend","CommentPost","isHidden","some","PostControls","discussion","DiscussionPage","context","pusher","channels","main","NotificationGrid","label","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","freeGlobal","global","freeSelf","self","root","Function","objectToString","toString","nativeMax","Math","max","nativeMin","min","now","Date","isObject","toNumber","isObjectLike","isSymbol","other","valueOf","isBinary","test","slice","wait","options","lastArgs","lastThis","maxWait","result","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","TypeError","invokeFunc","time","args","thisArg","leadingEdge","setTimeout","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","remainingWait","isInvoking","cancel","clearTimeout","flush","g"],"mappings":"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","file":"forum.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 42);\n","module.exports = flarum.core.compat['Model'];","export default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}","module.exports = flarum.core.compat['app'];","module.exports = flarum.core.compat['extend'];","module.exports = flarum.core.compat['components/Button'];","import emojis from 'simple-emoji-map';\n\nconst flatten = (arr, depth = 1) => arr.reduce((a, v) => a.concat(depth > 1 && Array.isArray(v) ? flatten(v, depth - 1) : v), []);\nconst shortnames = flatten(Object.values(emojis));\nconst entries = Object.entries(emojis);\nconst getEmoji = (identifier) => entries.find(([, value]) => value.includes(identifier));\nconst toUnicodeEmoji = (codePoint) => String.fromCodePoint(...codePoint.split('-').map((e) => `0x${e}`));\n\nexport class Match {\n /**\n * Match\n * Creates a new `Match` instance.\n *\n * It contains the following properties:\n *\n * - `input` (String): The input string.\n * - `score` (Number): A number between `0` and `1`. The closer to `1` it is, the better match it is.\n * - `emoji` (Object): The emoji object.\n * - `emoji_name` (String): The emoji name.\n *\n * @name Match\n * @function\n * @param {String} input The input string (just a word).\n */\n constructor(input) {\n let r = emojis[input],\n finalScore = -1,\n emojiName = null;\n\n if (r) {\n finalScore = 1;\n emojiName = input;\n } else {\n Object.entries(emojis).forEach(([n, e]) => {\n for (let i = 0; i <= e.length; ++i) {\n const c = e[i] || n,\n equals = c === input,\n indexF = c.indexOf(input),\n indexS = input.indexOf(c),\n score = equals && input.length ? 1 : indexF === 0 || (indexS === 0 && c.length > 1) ? 1 : indexF > 0 || indexS > 0 ? 0 : -1;\n\n if (score > finalScore) {\n emojiName = n;\n finalScore = score;\n if (score === 1) {\n return false;\n }\n }\n }\n });\n }\n\n this.score = finalScore;\n this.emoji = emojiName;\n }\n}\nconst emojiCache = new Map();\n\nexport default (reactionOrIdentifier) => {\n if (!reactionOrIdentifier) return {};\n\n const identifier = reactionOrIdentifier.identifier || reactionOrIdentifier;\n let codePoint;\n\n if (emojiCache.has(identifier)) return emojiCache.get(identifier);\n\n if (shortnames.includes(identifier)) {\n const emoji = getEmoji(identifier);\n codePoint = emoji && emoji[0];\n } else {\n const match = new Match(identifier);\n if (match.score) codePoint = match.emoji;\n }\n\n if (codePoint) {\n codePoint = codePoint.split('-')[0];\n }\n\n const output = codePoint\n ? {\n identifier,\n uc: toUnicodeEmoji(codePoint),\n url: `//cdn.jsdelivr.net/gh/twitter/twemoji@13/assets/72x72/${codePoint}.png`,\n type: 'emoji',\n }\n : {};\n\n emojiCache.set(reactionOrIdentifier, output);\n\n return output || {};\n};\n","module.exports = flarum.core.compat['utils/mixin'];","module.exports = flarum.core.compat['models/Forum'];","import Model from 'flarum/Model';\nimport mixin from 'flarum/utils/mixin';\n\nexport default class Reaction extends mixin(Model, {\n identifier: Model.attribute('identifier'),\n display: Model.attribute('display'),\n type: Model.attribute('type'),\n enabled: Model.attribute('enabled'),\n\n user_id: Model.attribute('user_id'),\n post_id: Model.attribute('post_id'),\n reaction_id: Model.attribute('reaction_id'),\n}) {}\n","module.exports = flarum.core.compat['components/Alert'];","module.exports = flarum.core.compat['Component'];","module.exports = flarum.core.compat['models/Post'];","module.exports = flarum.core.compat['utils/extract'];","import Notification from 'flarum/components/Notification';\nimport icon from 'flarum/helpers/icon';\n\nimport emoji from '../../common/util/emoji';\n\nexport default class PostReactedNotification extends Notification {\n icon() {\n return 'fas fa-heart';\n }\n\n href() {\n return app.route.post(this.attrs.notification.subject());\n }\n\n content() {\n const notification = this.attrs.notification;\n const { identifier, type } = JSON.parse(notification.content());\n const user = notification.fromUser();\n\n const reaction = type === 'emoji' ? : icon(identifier);\n\n return app.translator.trans('fof-reactions.forum.notification', {\n user,\n reaction,\n });\n }\n\n excerpt() {\n return this.attrs.notification.subject().contentPlain();\n }\n}\n","import Model from 'flarum/Model';\nimport mixin from 'flarum/utils/mixin';\n\n// const reaction = Model.hasOne('reaction');\n\nexport default class PostReaction extends mixin(Model, {\n reaction: Model.hasOne('reaction'),\n\n userId: Model.attribute('userId'),\n postId: Model.attribute('postId'),\n reactionId: Model.attribute('reactionId'),\n\n user: Model.hasOne('user'),\n post: Model.hasOne('post'),\n}) {}\n","import debounce from 'lodash.debounce';\n\nimport { extend } from 'flarum/extend';\nimport DiscussionPage from 'flarum/components/DiscussionPage';\n\nconst fetch = (postId) => app.store.find('posts', postId, { include: 'reactions' }).then(() => m.redraw());\nconst debounced = [];\nconst update = (postId) => {\n let func = debounced[postId];\n\n if (func) return func(postId);\n\n func = debounced[postId] = debounce(fetch, 1500);\n\n return func(postId);\n};\n\nexport default () => {\n extend(DiscussionPage.prototype, 'config', function (x, isInitialized, context) {\n if (isInitialized) return;\n\n if (app.pusher) {\n app.pusher.then((channels) => {\n channels.main.bind('newReaction', ({ postId, reactionId }) => {\n const reaction = app.store.getById('reactions', reactionId);\n const post = app.store.getById('posts', postId);\n\n if (!reaction || !post) return;\n\n update(postId);\n });\n\n channels.main.bind('removedReaction', ({ userId, postId, reactionId }) => {\n const postReaction = app.store\n .all('post_reactions')\n .filter((r) => r.userId() == userId && r.postId() == postId && r.reactionId() == reactionId)[0];\n\n if (!postReaction) return;\n\n app.store.remove(postReaction);\n\n update(postId);\n\n m.redraw();\n });\n\n extend(context, 'onunload', () => channels.main.unbind('newReaction'));\n extend(context, 'onunload', () => channels.main.unbind('removedReaction'));\n });\n }\n });\n};\n","export default (arr, fn) =>\n arr.map(typeof fn === 'function' ? fn : (val) => val[fn]).reduce((acc, val, i) => {\n acc[val] = (acc[val] || []).concat(arr[i]);\n return acc;\n }, {});\n","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","import Component from 'flarum/Component';\nimport extract from 'flarum/utils/extract';\n\nimport emoji from '../util/emoji';\n\nexport default class ReactionComponent extends Component {\n view() {\n const attrs = { ...this.attrs };\n const reaction = extract(attrs, 'reaction');\n const className = extract(attrs, 'className');\n\n if (!reaction) return ;\n\n const display = reaction.display() || reaction.identifier();\n\n if (!attrs.title) attrs.title = display;\n\n if (reaction.type() === 'emoji') {\n const { url } = emoji(reaction.identifier());\n\n return {display};\n } else {\n return ;\n }\n }\n}\n","import Alert from 'flarum/components/Alert';\nimport Component from 'flarum/Component';\nimport ItemList from 'flarum/utils/ItemList';\nimport Button from 'flarum/components/Button';\nimport listItems from 'flarum/helpers/listItems';\nimport LogInModal from 'flarum/components/LogInModal';\n\nimport groupBy from '../utils/groupBy';\nimport ReactionComponent from '../../common/components/ReactionComponent';\n\nexport default class PostReactAction extends Component {\n oninit(vdom) {\n super.oninit(vdom);\n\n this.post = this.attrs.post;\n\n this.loading = {};\n\n this.updateChosenReaction();\n }\n\n config(isInitialized) {\n if (isInitialized) return;\n\n if ('ontouchstart' in window) {\n $('.Reactions')\n .unbind()\n .on('touchend', function () {\n $(this).find('.CommentPost--Reactions').toggleClass('mobile-show');\n });\n $(document).click(function (e) {\n var target = e.target;\n if (!$(target).is('.Reactions') && !$(target).parents().is('.Reactions')) {\n $('.CommentPost--Reactions').removeClass('mobile-show');\n }\n });\n }\n }\n\n getReactions() {\n const items = new ItemList();\n\n app.forum.reactions().forEach((reaction) => {\n if (!reaction.enabled()) {\n return;\n }\n items.add(\n reaction.identifier().replace(/fa.? fa-/, ''),\n \n \n \n );\n });\n\n return items;\n }\n\n view() {\n const groupedPostReactions = groupBy(this.getPostReactions(), (r) => r.reactionId());\n const canReact = this.post.canReact();\n\n return (\n
\n
\n {Object.keys(groupedPostReactions).map((id) => {\n const reaction = app.store.getById('reactions', id);\n const count = groupedPostReactions[id].length;\n\n if (count === 0) return;\n\n const spanClass = reaction.type() === 'icon' ? `${reaction.identifier()} emoji button-emoji reaction-icon` : '';\n const icon = ;\n\n return Button.component(\n {\n className: `Button Button--flat Button-emoji-parent ${\n this.reaction && this.reaction.reactionId() == reaction.id() && 'active'\n }`,\n onclick: canReact ? this.react.bind(this, reaction) : '',\n 'data-reaction': reaction.identifier(),\n disabled: !canReact,\n loading: this.loading[reaction.id()],\n },\n \n {icon} {count > 1 ? {count} : ''}\n \n );\n })}\n
\n\n {(!Object.keys(this.loading).length || this.loading[null]) && !this.reaction && canReact && (\n
\n {this.reactButton()}\n\n
\n
    {listItems(this.getReactions().toArray())}
\n
\n
\n )}\n
\n );\n }\n\n reactButton() {\n return (\n \n );\n }\n\n react(reaction, e) {\n e.target.blur();\n\n if (!app.session.user) {\n app.modal.show(LogInModal);\n return;\n }\n\n if (!this.post.canReact()) {\n return app.alerts.show({ type: 'error' }, app.translator.trans('core.lib.error.permission_denied_message'));\n }\n\n const id = !reaction ? null : reaction.id();\n const originalPostReactions = this.post.reactions();\n\n this.loading[id] = true;\n\n return this.post\n .save({ reaction: id })\n .then((post) => {\n delete this.loading[id];\n\n for (const postReaction of originalPostReactions) {\n if (!post.reactions().includes(postReaction)) {\n app.store.remove(postReaction);\n }\n }\n\n this.updateChosenReaction();\n\n /**\n * We've saved the fact that we have or haven't reacted to the post,\n * but in order to provide instantaneous feedback to the user, we'll\n * need to add or remove the reaction from the current ones manually\n */\n\n if (\n (app.forum.data.relationships.ranks !== undefined &&\n (app.forum.attribute('ReactionConverts')[0] === reaction || app.forum.attribute('ReactionConverts')[1] === reaction)) ||\n (this.post.data.relationships.likes !== undefined && app.forum.attribute('ReactionConverts')[2] === reaction)\n ) {\n app.alerts.show(\n { type: 'warning' },\n app.translator.trans('fof-reactions.forum.warning', {\n reaction,\n })\n );\n }\n\n m.redraw.sync();\n })\n .catch((err) => {\n delete this.loading[id];\n\n $('body').append(err);\n\n m.redraw.sync();\n });\n }\n\n updateChosenReaction() {\n const postReactions = this.getPostReactions();\n\n return (this.reaction = app.session.user && postReactions.filter((reaction) => reaction.userId() == app.session.user.id())[0]);\n }\n\n getPostReactions() {\n return this.post.reactions() || app.store.all('post_reactions').filter((p) => p && p.postId() == this.post.id());\n }\n}\n","import Modal from 'flarum/components/Modal';\nimport LoadingIndicator from 'flarum/components/LoadingIndicator';\nimport avatar from 'flarum/helpers/avatar';\nimport username from 'flarum/helpers/username';\n\nimport ReactionComponent from '../../common/components/ReactionComponent';\nimport groupBy from '../utils/groupBy';\n\nexport default class ReactionsModal extends Modal {\n className() {\n return 'ReactionsModal Modal--small';\n }\n\n title() {\n return app.translator.trans('fof-reactions.forum.modal.title');\n }\n\n oninit(vnode) {\n super.oninit(vnode);\n this.loading = true;\n\n this.groupedReactions = groupBy(this.attrs.post.reactions().filter(Boolean), (r) => r.reactionId());\n\n this.load();\n }\n\n content() {\n if (this.loading) {\n return (\n
\n \n
\n );\n }\n\n return (\n
\n
    \n {Object.keys(this.groupedReactions).map((id) => {\n const reaction = app.store.getById('reactions', id);\n const postReactions = this.groupedReactions[id];\n\n if (!postReactions.length) return;\n\n return (\n
    \n \n \n\n \n \n\n
    \n\n {postReactions\n .filter((r) => r.user())\n .map((r) => (\n
  • \n \n {avatar(r.user(), { loading: 'lazy' })} {username(r.user())}\n \n
  • \n ))}\n
    \n );\n })}\n
\n
\n );\n }\n\n load() {\n return app\n .request({\n method: 'GET',\n url: app.forum.attribute('apiUrl') + this.attrs.post.apiEndpoint() + '/reactions',\n data: { include: 'user' },\n })\n .then((response) => app.store.pushPayload(response))\n .then(this.loaded.bind(this), this.loaded.bind(this));\n }\n}\n","import { extend } from 'flarum/extend';\nimport app from 'flarum/app';\nimport Forum from 'flarum/models/Forum';\nimport Discussion from 'flarum/models/Discussion';\nimport Post from 'flarum/models/Post';\nimport Model from 'flarum/Model';\nimport NotificationGrid from 'flarum/components/NotificationGrid';\n\nimport PostReactedNotification from './components/PostReactedNotification';\nimport Reaction from '../common/models/Reaction';\nimport PostReaction from './models/PostReaction';\n\nimport addPusher from './addPusher';\nimport addReactionAction from './addReactionAction';\n\napp.initializers.add('fof/reactions', () => {\n app.store.models.reactions = Reaction;\n app.store.models.post_reactions = PostReaction;\n\n app.notificationComponents.postReacted = PostReactedNotification;\n\n Post.prototype.canReact = Model.attribute('canReact');\n Post.prototype.reactions = Model.hasMany('reactions');\n\n Forum.prototype.reactions = Model.hasMany('reactions');\n\n Discussion.prototype.canSeeReactions = Model.attribute('canSeeReactions');\n\n addReactionAction();\n addPusher();\n\n extend(NotificationGrid.prototype, 'notificationTypes', (items) => {\n items.add('postReacted', {\n name: 'postReacted',\n icon: 'far fa-smile',\n label: app.translator.trans('fof-reactions.forum.settings.notify_post_reacted_label'),\n });\n });\n});\n","import { extend } from 'flarum/extend';\nimport app from 'flarum/app';\nimport CommentPost from 'flarum/components/CommentPost';\nimport PostReactAction from './components/PostReactAction';\nimport PostControls from 'flarum/utils/PostControls';\nimport Button from 'flarum/components/Button';\nimport ReactionsModal from './components/ReactionsModal';\n\nexport default () => {\n extend(CommentPost.prototype, 'actionItems', function (items) {\n const post = this.attrs.post;\n\n if (post.isHidden()) return;\n\n const reaction = app.session.user && Array.isArray(post.reactions()) && post.reactions().some((user) => user === app.session.user);\n\n items.add(\n 'react',\n PostReactAction.component({\n post,\n reaction,\n }),\n 5\n );\n });\n\n extend(PostControls, 'moderationControls', function (items, post) {\n if (post.discussion().canSeeReactions() && post.reactions() && post.reactions().length) {\n items.add(\n 'viewReactions',\n \n );\n }\n });\n};\n","module.exports = flarum.core.compat['models/Discussion'];","module.exports = flarum.core.compat['components/NotificationGrid'];","module.exports = flarum.core.compat['components/Notification'];","module.exports = flarum.core.compat['helpers/icon'];","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = debounce;\n","module.exports = flarum.core.compat['components/DiscussionPage'];","module.exports = flarum.core.compat['components/CommentPost'];","module.exports = flarum.core.compat['utils/ItemList'];","module.exports = flarum.core.compat['helpers/listItems'];","module.exports = flarum.core.compat['components/LogInModal'];","module.exports = flarum.core.compat['utils/PostControls'];","module.exports = flarum.core.compat['components/Modal'];","module.exports = flarum.core.compat['components/LoadingIndicator'];","module.exports = flarum.core.compat['helpers/avatar'];","module.exports = flarum.core.compat['helpers/username'];","export * from './src/common';\nexport * from './src/forum';","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack://@fof/reactions/webpack/bootstrap","webpack://@fof/reactions/external \"flarum.core.compat['Model']\"","webpack://@fof/reactions/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://@fof/reactions/external \"flarum.core.compat['app']\"","webpack://@fof/reactions/external \"flarum.core.compat['extend']\"","webpack://@fof/reactions/external \"flarum.core.compat['components/Button']\"","webpack://@fof/reactions/./src/common/util/emoji.js","webpack://@fof/reactions/external \"flarum.core.compat['utils/mixin']\"","webpack://@fof/reactions/external \"flarum.core.compat['models/Forum']\"","webpack://@fof/reactions/./src/common/models/Reaction.js","webpack://@fof/reactions/external \"flarum.core.compat['components/Alert']\"","webpack://@fof/reactions/external \"flarum.core.compat['Component']\"","webpack://@fof/reactions/external \"flarum.core.compat['models/Post']\"","webpack://@fof/reactions/external \"flarum.core.compat['utils/extract']\"","webpack://@fof/reactions/./src/forum/components/PostReactedNotification.js","webpack://@fof/reactions/./src/forum/models/PostReaction.js","webpack://@fof/reactions/./src/forum/addPusher.js","webpack://@fof/reactions/./src/forum/utils/groupBy.js","webpack://@fof/reactions/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://@fof/reactions/./src/common/components/ReactionComponent.js","webpack://@fof/reactions/./src/forum/components/PostReactAction.js","webpack://@fof/reactions/./src/forum/components/ReactionsModal.js","webpack://@fof/reactions/./src/forum/index.js","webpack://@fof/reactions/./src/forum/addReactionAction.js","webpack://@fof/reactions/external \"flarum.core.compat['models/Discussion']\"","webpack://@fof/reactions/external \"flarum.core.compat['components/NotificationGrid']\"","webpack://@fof/reactions/external \"flarum.core.compat['components/Notification']\"","webpack://@fof/reactions/external \"flarum.core.compat['helpers/icon']\"","webpack://@fof/reactions/./node_modules/lodash.debounce/index.js","webpack://@fof/reactions/external \"flarum.core.compat['components/DiscussionPage']\"","webpack://@fof/reactions/external \"flarum.core.compat['components/CommentPost']\"","webpack://@fof/reactions/external \"flarum.core.compat['utils/ItemList']\"","webpack://@fof/reactions/external \"flarum.core.compat['helpers/listItems']\"","webpack://@fof/reactions/external \"flarum.core.compat['components/LogInModal']\"","webpack://@fof/reactions/external \"flarum.core.compat['utils/PostControls']\"","webpack://@fof/reactions/external \"flarum.core.compat['components/Modal']\"","webpack://@fof/reactions/external \"flarum.core.compat['components/LoadingIndicator']\"","webpack://@fof/reactions/external \"flarum.core.compat['helpers/avatar']\"","webpack://@fof/reactions/external \"flarum.core.compat['helpers/username']\"","webpack://@fof/reactions/./forum.js","webpack://@fof/reactions/(webpack)/buildin/global.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","flarum","core","compat","_inheritsLoose","subClass","superClass","constructor","__proto__","shortnames","flatten","arr","depth","reduce","a","v","concat","Array","isArray","values","emojis","entries","toUnicodeEmoji","codePoint","String","fromCodePoint","split","map","e","Match","input","finalScore","emojiName","forEach","length","equals","indexF","indexOf","indexS","score","this","emoji","emojiCache","Map","reactionOrIdentifier","identifier","has","includes","find","getEmoji","match","output","uc","url","type","set","Reaction","mixin","Model","attribute","display","enabled","user_id","post_id","reaction_id","PostReactedNotification","icon","href","app","route","post","attrs","notification","subject","content","JSON","parse","user","fromUser","reaction","src","loading","height","translator","trans","excerpt","contentPlain","Notification","PostReaction","hasOne","userId","postId","reactionId","fetch","store","include","then","redraw","debounced","update","func","debounce","fn","val","acc","_extends","assign","target","arguments","source","apply","ReactionComponent","view","extract","className","title","draggable","alt","aria-hidden","Component","PostReactAction","oninit","vdom","updateChosenReaction","oncreate","vnode","window","$","unbind","on","toggleClass","document","click","is","parents","removeClass","getReactions","items","ItemList","forum","reactions","add","replace","onclick","react","data-reaction","id","groupedPostReactions","groupBy","getPostReactions","canReact","style","keys","getById","count","spanClass","Button","component","disabled","reactButton","number","listItems","toArray","class","width","viewBox","stroke","stroke-width","fill","fill-rule","x","y","transform","points","blur","session","alerts","show","originalPostReactions","save","postReaction","remove","undefined","data","relationships","ranks","likes","sync","err","append","modal","LogInModal","postReactions","filter","all","ReactionsModal","groupedReactions","Boolean","load","config","avatar","username","request","method","apiEndpoint","response","pushPayload","loaded","Modal","initializers","models","post_reactions","notificationComponents","postReacted","Post","hasMany","Forum","Discussion","canSeeReactions","extend","CommentPost","isHidden","some","PostControls","discussion","DiscussionPage","isInitialized","context","pusher","channels","main","NotificationGrid","label","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","freeGlobal","global","freeSelf","self","root","Function","objectToString","toString","nativeMax","Math","max","nativeMin","min","now","Date","isObject","toNumber","isObjectLike","isSymbol","other","valueOf","isBinary","test","slice","wait","options","lastArgs","lastThis","maxWait","result","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","TypeError","invokeFunc","time","args","thisArg","leadingEdge","setTimeout","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","remainingWait","isInvoking","cancel","clearTimeout","flush","g"],"mappings":"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","file":"forum.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 42);\n","module.exports = flarum.core.compat['Model'];","export default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}","module.exports = flarum.core.compat['app'];","module.exports = flarum.core.compat['extend'];","module.exports = flarum.core.compat['components/Button'];","import emojis from 'simple-emoji-map';\n\nconst flatten = (arr, depth = 1) => arr.reduce((a, v) => a.concat(depth > 1 && Array.isArray(v) ? flatten(v, depth - 1) : v), []);\nconst shortnames = flatten(Object.values(emojis));\nconst entries = Object.entries(emojis);\nconst getEmoji = (identifier) => entries.find(([, value]) => value.includes(identifier));\nconst toUnicodeEmoji = (codePoint) => String.fromCodePoint(...codePoint.split('-').map((e) => `0x${e}`));\n\nexport class Match {\n /**\n * Match\n * Creates a new `Match` instance.\n *\n * It contains the following properties:\n *\n * - `input` (String): The input string.\n * - `score` (Number): A number between `0` and `1`. The closer to `1` it is, the better match it is.\n * - `emoji` (Object): The emoji object.\n * - `emoji_name` (String): The emoji name.\n *\n * @name Match\n * @function\n * @param {String} input The input string (just a word).\n */\n constructor(input) {\n let r = emojis[input],\n finalScore = -1,\n emojiName = null;\n\n if (r) {\n finalScore = 1;\n emojiName = input;\n } else {\n Object.entries(emojis).forEach(([n, e]) => {\n for (let i = 0; i <= e.length; ++i) {\n const c = e[i] || n,\n equals = c === input,\n indexF = c.indexOf(input),\n indexS = input.indexOf(c),\n score = equals && input.length ? 1 : indexF === 0 || (indexS === 0 && c.length > 1) ? 1 : indexF > 0 || indexS > 0 ? 0 : -1;\n\n if (score > finalScore) {\n emojiName = n;\n finalScore = score;\n if (score === 1) {\n return false;\n }\n }\n }\n });\n }\n\n this.score = finalScore;\n this.emoji = emojiName;\n }\n}\nconst emojiCache = new Map();\n\nexport default (reactionOrIdentifier) => {\n if (!reactionOrIdentifier) return {};\n\n const identifier = reactionOrIdentifier.identifier || reactionOrIdentifier;\n let codePoint;\n\n if (emojiCache.has(identifier)) return emojiCache.get(identifier);\n\n if (shortnames.includes(identifier)) {\n const emoji = getEmoji(identifier);\n codePoint = emoji && emoji[0];\n } else {\n const match = new Match(identifier);\n if (match.score) codePoint = match.emoji;\n }\n\n if (codePoint) {\n codePoint = codePoint.split('-')[0];\n }\n\n const output = codePoint\n ? {\n identifier,\n uc: toUnicodeEmoji(codePoint),\n url: `//cdn.jsdelivr.net/gh/twitter/twemoji@13/assets/72x72/${codePoint}.png`,\n type: 'emoji',\n }\n : {};\n\n emojiCache.set(reactionOrIdentifier, output);\n\n return output || {};\n};\n","module.exports = flarum.core.compat['utils/mixin'];","module.exports = flarum.core.compat['models/Forum'];","import Model from 'flarum/Model';\nimport mixin from 'flarum/utils/mixin';\n\nexport default class Reaction extends mixin(Model, {\n identifier: Model.attribute('identifier'),\n display: Model.attribute('display'),\n type: Model.attribute('type'),\n enabled: Model.attribute('enabled'),\n\n user_id: Model.attribute('user_id'),\n post_id: Model.attribute('post_id'),\n reaction_id: Model.attribute('reaction_id'),\n}) {}\n","module.exports = flarum.core.compat['components/Alert'];","module.exports = flarum.core.compat['Component'];","module.exports = flarum.core.compat['models/Post'];","module.exports = flarum.core.compat['utils/extract'];","import Notification from 'flarum/components/Notification';\nimport icon from 'flarum/helpers/icon';\n\nimport emoji from '../../common/util/emoji';\n\nexport default class PostReactedNotification extends Notification {\n icon() {\n return 'fas fa-heart';\n }\n\n href() {\n return app.route.post(this.attrs.notification.subject());\n }\n\n content() {\n const notification = this.attrs.notification;\n const { identifier, type } = JSON.parse(notification.content());\n const user = notification.fromUser();\n\n const reaction = type === 'emoji' ? : icon(identifier);\n\n return app.translator.trans('fof-reactions.forum.notification', {\n user,\n reaction,\n });\n }\n\n excerpt() {\n return this.attrs.notification.subject().contentPlain();\n }\n}\n","import Model from 'flarum/Model';\nimport mixin from 'flarum/utils/mixin';\n\n// const reaction = Model.hasOne('reaction');\n\nexport default class PostReaction extends mixin(Model, {\n reaction: Model.hasOne('reaction'),\n\n userId: Model.attribute('userId'),\n postId: Model.attribute('postId'),\n reactionId: Model.attribute('reactionId'),\n\n user: Model.hasOne('user'),\n post: Model.hasOne('post'),\n}) {}\n","import debounce from 'lodash.debounce';\n\nimport { extend } from 'flarum/extend';\nimport DiscussionPage from 'flarum/components/DiscussionPage';\n\nconst fetch = (postId) => app.store.find('posts', postId, { include: 'reactions' }).then(() => m.redraw());\nconst debounced = [];\nconst update = (postId) => {\n let func = debounced[postId];\n\n if (func) return func(postId);\n\n func = debounced[postId] = debounce(fetch, 1500);\n\n return func(postId);\n};\n\nexport default () => {\n extend(DiscussionPage.prototype, 'config', function (x, isInitialized, context) {\n if (isInitialized) return;\n\n if (app.pusher) {\n app.pusher.then((channels) => {\n channels.main.bind('newReaction', ({ postId, reactionId }) => {\n const reaction = app.store.getById('reactions', reactionId);\n const post = app.store.getById('posts', postId);\n\n if (!reaction || !post) return;\n\n update(postId);\n });\n\n channels.main.bind('removedReaction', ({ userId, postId, reactionId }) => {\n const postReaction = app.store\n .all('post_reactions')\n .filter((r) => r.userId() == userId && r.postId() == postId && r.reactionId() == reactionId)[0];\n\n if (!postReaction) return;\n\n app.store.remove(postReaction);\n\n update(postId);\n\n m.redraw();\n });\n\n extend(context, 'onunload', () => channels.main.unbind('newReaction'));\n extend(context, 'onunload', () => channels.main.unbind('removedReaction'));\n });\n }\n });\n};\n","export default (arr, fn) =>\n arr.map(typeof fn === 'function' ? fn : (val) => val[fn]).reduce((acc, val, i) => {\n acc[val] = (acc[val] || []).concat(arr[i]);\n return acc;\n }, {});\n","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","import Component from 'flarum/Component';\nimport extract from 'flarum/utils/extract';\n\nimport emoji from '../util/emoji';\n\nexport default class ReactionComponent extends Component {\n view() {\n const attrs = { ...this.attrs };\n const reaction = extract(attrs, 'reaction');\n const className = extract(attrs, 'className');\n\n if (!reaction) return ;\n\n const display = reaction.display() || reaction.identifier();\n\n if (!attrs.title) attrs.title = display;\n\n if (reaction.type() === 'emoji') {\n const { url } = emoji(reaction.identifier());\n\n return {display};\n } else {\n return ;\n }\n }\n}\n","import Alert from 'flarum/components/Alert';\nimport Component from 'flarum/Component';\nimport ItemList from 'flarum/utils/ItemList';\nimport Button from 'flarum/components/Button';\nimport listItems from 'flarum/helpers/listItems';\nimport LogInModal from 'flarum/components/LogInModal';\n\nimport groupBy from '../utils/groupBy';\nimport ReactionComponent from '../../common/components/ReactionComponent';\n\nexport default class PostReactAction extends Component {\n oninit(vdom) {\n super.oninit(vdom);\n\n this.post = this.attrs.post;\n\n this.loading = {};\n\n this.updateChosenReaction();\n }\n\n oncreate(vnode) {\n super.oncreate(vnode);\n if ('ontouchstart' in window) {\n $('.Reactions')\n .unbind()\n .on('touchend', function () {\n $(this).find('.CommentPost--Reactions').toggleClass('mobile-show');\n });\n $(document).click(function (e) {\n var target = e.target;\n if (!$(target).is('.Reactions') && !$(target).parents().is('.Reactions')) {\n $('.CommentPost--Reactions').removeClass('mobile-show');\n }\n });\n }\n }\n\n getReactions() {\n const items = new ItemList();\n\n app.forum.reactions().forEach((reaction) => {\n if (!reaction.enabled()) {\n return;\n }\n items.add(\n reaction.identifier().replace(/fa.? fa-/, ''),\n \n \n \n );\n });\n\n return items;\n }\n\n view() {\n const groupedPostReactions = groupBy(this.getPostReactions(), (r) => r.reactionId());\n const canReact = this.post.canReact();\n\n return (\n
\n
\n {Object.keys(groupedPostReactions).map((id) => {\n const reaction = app.store.getById('reactions', id);\n const count = groupedPostReactions[id].length;\n\n if (count === 0) return;\n\n const spanClass = reaction.type() === 'icon' ? `${reaction.identifier()} emoji button-emoji reaction-icon` : '';\n const icon = ;\n\n return Button.component(\n {\n className: `Button Button--flat Button-emoji-parent ${\n this.reaction && this.reaction.reactionId() == reaction.id() && 'active'\n }`,\n onclick: canReact ? this.react.bind(this, reaction) : '',\n 'data-reaction': reaction.identifier(),\n disabled: !canReact,\n loading: this.loading[reaction.id()],\n },\n \n {icon} {count > 1 ? {count} : ''}\n \n );\n })}\n
\n\n {(!Object.keys(this.loading).length || this.loading[null]) && !this.reaction && canReact && (\n
\n {this.reactButton()}\n\n
\n
    {listItems(this.getReactions().toArray())}
\n
\n
\n )}\n
\n );\n }\n\n reactButton() {\n return (\n \n );\n }\n\n react(reaction, e) {\n e.target.blur();\n\n if (!app.session.user) {\n app.modal.show(LogInModal);\n return;\n }\n\n if (!this.post.canReact()) {\n return app.alerts.show({ type: 'error' }, app.translator.trans('core.lib.error.permission_denied_message'));\n }\n\n const id = !reaction ? null : reaction.id();\n const originalPostReactions = this.post.reactions();\n\n this.loading[id] = true;\n\n return this.post\n .save({ reaction: id })\n .then((post) => {\n delete this.loading[id];\n\n for (const postReaction of originalPostReactions) {\n if (!post.reactions().includes(postReaction)) {\n app.store.remove(postReaction);\n }\n }\n\n this.updateChosenReaction();\n\n /**\n * We've saved the fact that we have or haven't reacted to the post,\n * but in order to provide instantaneous feedback to the user, we'll\n * need to add or remove the reaction from the current ones manually\n */\n\n if (\n (app.forum.data.relationships.ranks !== undefined &&\n (app.forum.attribute('ReactionConverts')[0] === reaction || app.forum.attribute('ReactionConverts')[1] === reaction)) ||\n (this.post.data.relationships.likes !== undefined && app.forum.attribute('ReactionConverts')[2] === reaction)\n ) {\n app.alerts.show(\n { type: 'warning' },\n app.translator.trans('fof-reactions.forum.warning', {\n reaction,\n })\n );\n }\n\n m.redraw.sync();\n })\n .catch((err) => {\n delete this.loading[id];\n\n $('body').append(err);\n\n m.redraw.sync();\n });\n }\n\n updateChosenReaction() {\n const postReactions = this.getPostReactions();\n\n return (this.reaction = app.session.user && postReactions.filter((reaction) => reaction.userId() == app.session.user.id())[0]);\n }\n\n getPostReactions() {\n return this.post.reactions() || app.store.all('post_reactions').filter((p) => p && p.postId() == this.post.id());\n }\n}\n","import Modal from 'flarum/components/Modal';\nimport LoadingIndicator from 'flarum/components/LoadingIndicator';\nimport avatar from 'flarum/helpers/avatar';\nimport username from 'flarum/helpers/username';\n\nimport ReactionComponent from '../../common/components/ReactionComponent';\nimport groupBy from '../utils/groupBy';\n\nexport default class ReactionsModal extends Modal {\n className() {\n return 'ReactionsModal Modal--small';\n }\n\n title() {\n return app.translator.trans('fof-reactions.forum.modal.title');\n }\n\n oninit(vnode) {\n super.oninit(vnode);\n this.loading = true;\n\n this.groupedReactions = groupBy(this.attrs.post.reactions().filter(Boolean), (r) => r.reactionId());\n\n this.load();\n }\n\n content() {\n if (this.loading) {\n return (\n
\n \n
\n );\n }\n\n return (\n
\n
    \n {Object.keys(this.groupedReactions).map((id) => {\n const reaction = app.store.getById('reactions', id);\n const postReactions = this.groupedReactions[id];\n\n if (!postReactions.length) return;\n\n return (\n
    \n \n \n\n \n \n\n
    \n\n {postReactions\n .filter((r) => r.user())\n .map((r) => (\n
  • \n \n {avatar(r.user(), { loading: 'lazy' })} {username(r.user())}\n \n
  • \n ))}\n
    \n );\n })}\n
\n
\n );\n }\n\n load() {\n return app\n .request({\n method: 'GET',\n url: app.forum.attribute('apiUrl') + this.attrs.post.apiEndpoint() + '/reactions',\n data: { include: 'user' },\n })\n .then((response) => app.store.pushPayload(response))\n .then(this.loaded.bind(this), this.loaded.bind(this));\n }\n}\n","import { extend } from 'flarum/extend';\nimport app from 'flarum/app';\nimport Forum from 'flarum/models/Forum';\nimport Discussion from 'flarum/models/Discussion';\nimport Post from 'flarum/models/Post';\nimport Model from 'flarum/Model';\nimport NotificationGrid from 'flarum/components/NotificationGrid';\n\nimport PostReactedNotification from './components/PostReactedNotification';\nimport Reaction from '../common/models/Reaction';\nimport PostReaction from './models/PostReaction';\n\nimport addPusher from './addPusher';\nimport addReactionAction from './addReactionAction';\n\napp.initializers.add('fof/reactions', () => {\n app.store.models.reactions = Reaction;\n app.store.models.post_reactions = PostReaction;\n\n app.notificationComponents.postReacted = PostReactedNotification;\n\n Post.prototype.canReact = Model.attribute('canReact');\n Post.prototype.reactions = Model.hasMany('reactions');\n\n Forum.prototype.reactions = Model.hasMany('reactions');\n\n Discussion.prototype.canSeeReactions = Model.attribute('canSeeReactions');\n\n addReactionAction();\n addPusher();\n\n extend(NotificationGrid.prototype, 'notificationTypes', (items) => {\n items.add('postReacted', {\n name: 'postReacted',\n icon: 'far fa-smile',\n label: app.translator.trans('fof-reactions.forum.settings.notify_post_reacted_label'),\n });\n });\n});\n","import { extend } from 'flarum/extend';\nimport app from 'flarum/app';\nimport CommentPost from 'flarum/components/CommentPost';\nimport PostReactAction from './components/PostReactAction';\nimport PostControls from 'flarum/utils/PostControls';\nimport Button from 'flarum/components/Button';\nimport ReactionsModal from './components/ReactionsModal';\n\nexport default () => {\n extend(CommentPost.prototype, 'actionItems', function (items) {\n const post = this.attrs.post;\n\n if (post.isHidden()) return;\n\n const reaction = app.session.user && Array.isArray(post.reactions()) && post.reactions().some((user) => user === app.session.user);\n\n items.add(\n 'react',\n PostReactAction.component({\n post,\n reaction,\n }),\n 5\n );\n });\n\n extend(PostControls, 'moderationControls', function (items, post) {\n if (post.discussion().canSeeReactions() && post.reactions() && post.reactions().length) {\n items.add(\n 'viewReactions',\n \n );\n }\n });\n};\n","module.exports = flarum.core.compat['models/Discussion'];","module.exports = flarum.core.compat['components/NotificationGrid'];","module.exports = flarum.core.compat['components/Notification'];","module.exports = flarum.core.compat['helpers/icon'];","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = debounce;\n","module.exports = flarum.core.compat['components/DiscussionPage'];","module.exports = flarum.core.compat['components/CommentPost'];","module.exports = flarum.core.compat['utils/ItemList'];","module.exports = flarum.core.compat['helpers/listItems'];","module.exports = flarum.core.compat['components/LogInModal'];","module.exports = flarum.core.compat['utils/PostControls'];","module.exports = flarum.core.compat['components/Modal'];","module.exports = flarum.core.compat['components/LoadingIndicator'];","module.exports = flarum.core.compat['helpers/avatar'];","module.exports = flarum.core.compat['helpers/username'];","export * from './src/common';\nexport * from './src/forum';","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n"],"sourceRoot":""} \ No newline at end of file diff --git a/js/src/forum/components/PostReactAction.js b/js/src/forum/components/PostReactAction.js index 0b11d99..ffe0c06 100755 --- a/js/src/forum/components/PostReactAction.js +++ b/js/src/forum/components/PostReactAction.js @@ -19,9 +19,8 @@ export default class PostReactAction extends Component { this.updateChosenReaction(); } - config(isInitialized) { - if (isInitialized) return; - + oncreate(vnode) { + super.oncreate(vnode); if ('ontouchstart' in window) { $('.Reactions') .unbind()