{"version":3,"sources":["webpack:///./emoji/index.js"],"names":["validEmojiNames","Object","keys","emojis_digests_json__WEBPACK_IMPORTED_MODULE_1__","_toConsumableArray","emojis_aliases_json__WEBPACK_IMPORTED_MODULE_2__","normalizeEmojiName","name","prototype","hasOwnProperty","call","isEmojiNameValid","indexOf","filterEmojiNames","filter","match","toLowerCase","filterEmojiNamesByAlias","underscore__WEBPACK_IMPORTED_MODULE_0___default","a","uniq","map","emojiCategoryMap","getEmojiCategoryMap","activity","people","nature","food","travel","objects","symbols","flags","forEach","emoji","category","push","getEmojiInfo","query","emojiInfo","_extends","emojiFallbackImageSrc","inputName","_getEmojiInfo","digest","gon","asset_host","relative_url_root","emojiImageTag","src","glEmojiTag","options","opts","sprite","forceFallback","_getEmojiInfo2","_objectWithoutProperties","fallbackImageSrc","fallbackSpriteClass","classList","classAttribute","length","join","fallbackSpriteAttribute","contents","moji","unicodeVersion","description"],"mappings":"+tpTAIO,IAAMA,cAAsBC,OAAOC,KAAKC,IAAlCC,EAAgDH,OAAOC,KAAKG,KAElE,SAASC,EAAmBC,GACjC,OAAON,OAAOO,UAAUC,eAAeC,KAAKL,EAAcE,GAAQF,EAAaE,GAAQA,EAGlF,SAASI,EAAiBJ,GAC/B,OAAOP,EAAgBY,QAAQL,IAAS,EAGnC,SAASM,EAAiBC,GAC/B,IAAMC,EAAQD,EAAOE,cACrB,OAAOhB,EAAgBc,OAAO,SAAAP,GAAA,OAAQA,EAAKK,QAAQG,IAAU,IAGxD,SAASE,EAAwBH,GACtC,OAAOI,EAAAC,EAAEC,KAAKP,EAAiBC,GAAQO,IAAI,SAAAd,GAAA,OAAQD,EAAmBC,MAGxE,IAAIe,SACG,SAASC,IAmBd,OAlBKD,IACHA,GACEE,YACAC,UACAC,UACAC,QACAC,UACAC,WACAC,WACAC,UAEF9B,OAAOC,KAAKC,GAAU6B,QAAQ,SAAAzB,GAC5B,IAAM0B,EAAQ9B,EAASI,GACnBe,EAAiBW,EAAMC,WACzBZ,EAAiBW,EAAMC,UAAUC,KAAK5B,MAIrCe,EAGF,SAASc,EAAaC,GAC3B,IAAI9B,EAAOD,EAAmB+B,GAC1BC,EAAYnC,EAASI,GAQzB,OALK+B,IAEHA,EAAYnC,EADZI,EAAO,kBAITgC,KAAYD,GAAW/B,SAGlB,SAASiC,EAAsBC,GAAW,IAAAC,EACtBN,EAAaK,GAA9BlC,EADuCmC,EACvCnC,KAAMoC,EADiCD,EACjCC,OACd,UAAUC,IAAIC,YAAc,KAAKD,IAAIE,mBAAqB,IAA1D,iBAA6EvC,EAA7E,IAAqFoC,EAArF,OAGK,SAASI,EAAcxC,EAAMyC,GAClC,oCAAqCzC,EAArC,YAAqDA,EAArD,WAAoEyC,EAApE,gDAGK,SAASC,EAAWR,EAAWS,GACpC,IAAMC,KAASC,QAAQ,EAAOC,eAAe,GAAUH,GADVI,EAEdlB,EAAaK,GAApClC,EAFqC+C,EAErC/C,KAAS+B,yHAF4BiB,CAAAD,GAAA,SAIvCE,EAAmBhB,EAAsBjC,GACzCkD,WAA+BlD,EAE/BmD,KACFP,EAAKE,eAAiBF,EAAKC,SAC7BM,EAAUvB,KAAK,cACfuB,EAAUvB,KAAKsB,IAEjB,IAAME,EAAiBD,EAAUE,OAAS,EAAnB,UAAiCF,EAAUG,KAAK,KAAhD,IAA0D,GAC3EC,EAA0BX,EAAKC,OAAL,+BACGK,EADH,IAE5B,GACAM,EAAWzB,EAAU0B,KAKzB,OAJIb,EAAKE,gBAAkBF,EAAKC,SAC9BW,EAAWhB,EAAcxC,EAAMiD,IAGjC,0BAEMG,EAFN,sBAGiBpD,EAHjB,+BAIyBiD,EAJzB,YAKMM,EALN,iCAM4BxB,EAAU2B,eANtC,mBAOa3B,EAAU4B,YAPvB,mBASMH,EATN","file":"emoji.bd00578d.chunk.js","sourcesContent":["import _ from 'underscore';\nimport emojiMap from 'emojis/digests.json';\nimport emojiAliases from 'emojis/aliases.json';\n\nexport const validEmojiNames = [...Object.keys(emojiMap), ...Object.keys(emojiAliases)];\n\nexport function normalizeEmojiName(name) {\n return Object.prototype.hasOwnProperty.call(emojiAliases, name) ? emojiAliases[name] : name;\n}\n\nexport function isEmojiNameValid(name) {\n return validEmojiNames.indexOf(name) >= 0;\n}\n\nexport function filterEmojiNames(filter) {\n const match = filter.toLowerCase();\n return validEmojiNames.filter(name => name.indexOf(match) >= 0);\n}\n\nexport function filterEmojiNamesByAlias(filter) {\n return _.uniq(filterEmojiNames(filter).map(name => normalizeEmojiName(name)));\n}\n\nlet emojiCategoryMap;\nexport function getEmojiCategoryMap() {\n if (!emojiCategoryMap) {\n emojiCategoryMap = {\n activity: [],\n people: [],\n nature: [],\n food: [],\n travel: [],\n objects: [],\n symbols: [],\n flags: [],\n };\n Object.keys(emojiMap).forEach(name => {\n const emoji = emojiMap[name];\n if (emojiCategoryMap[emoji.category]) {\n emojiCategoryMap[emoji.category].push(name);\n }\n });\n }\n return emojiCategoryMap;\n}\n\nexport function getEmojiInfo(query) {\n let name = normalizeEmojiName(query);\n let emojiInfo = emojiMap[name];\n\n // Fallback to question mark for unknown emojis\n if (!emojiInfo) {\n name = 'grey_question';\n emojiInfo = emojiMap[name];\n }\n\n return { ...emojiInfo, name };\n}\n\nexport function emojiFallbackImageSrc(inputName) {\n const { name, digest } = getEmojiInfo(inputName);\n return `${gon.asset_host || ''}${gon.relative_url_root || ''}/assets/emoji/${name}-${digest}.png`;\n}\n\nexport function emojiImageTag(name, src) {\n return `\":${name}:\"`;\n}\n\nexport function glEmojiTag(inputName, options) {\n const opts = { sprite: false, forceFallback: false, ...options };\n const { name, ...emojiInfo } = getEmojiInfo(inputName);\n\n const fallbackImageSrc = emojiFallbackImageSrc(name);\n const fallbackSpriteClass = `emoji-${name}`;\n\n const classList = [];\n if (opts.forceFallback && opts.sprite) {\n classList.push('emoji-icon');\n classList.push(fallbackSpriteClass);\n }\n const classAttribute = classList.length > 0 ? `class=\"${classList.join(' ')}\"` : '';\n const fallbackSpriteAttribute = opts.sprite\n ? `data-fallback-sprite-class=\"${fallbackSpriteClass}\"`\n : '';\n let contents = emojiInfo.moji;\n if (opts.forceFallback && !opts.sprite) {\n contents = emojiImageTag(name, fallbackImageSrc);\n }\n\n return `\n \n ${contents}\n \n `;\n}\n"],"sourceRoot":""}