UNPKG

emoji-mart-native

Version:

Customizable Slack-like emoji picker for React Native

1 lines 1.94 kB
"use strict";var mapping={name:'a',unified:'b',non_qualified:'c',has_img_apple:'d',has_img_google:'e',has_img_twitter:'f',has_img_facebook:'g',keywords:'h',sheet:'i',emoticons:'j',text:'k',short_names:'l',added_in:'m',image:'n',skin_variations:'o'};var buildSearch=function buildSearch(emoji){var search=[];var addToSearch=function addToSearch(strings,split){if(!strings){return;};(Array.isArray(strings)?strings:[strings]).forEach(function(string){;(split?string.split(/[-|_|\s]+/):[string]).forEach(function(s){s=s.toLowerCase();if(search.indexOf(s)==-1){search.push(s);}});});};addToSearch(emoji.short_names,true);addToSearch(emoji.name,true);addToSearch(emoji.keywords,false);addToSearch(emoji.emoticons,false);return search.join(',');};var compress=function compress(emoji){emoji.short_names=emoji.short_names.filter(function(short_name){return short_name!==emoji.short_name;});delete emoji.short_name;emoji.sheet=[emoji.sheet_x,emoji.sheet_y];delete emoji.sheet_x;delete emoji.sheet_y;emoji.added_in=parseInt(emoji.added_in);if(emoji.added_in===6){delete emoji.added_in;}for(var key in mapping){emoji[mapping[key]]=emoji[key];delete emoji[key];}for(var _key in emoji){var value=emoji[_key];if(Array.isArray(value)&&!value.length){delete emoji[_key];}else if(typeof value==='string'&&!value.length){delete emoji[_key];}else if(value===null){delete emoji[_key];}}};var uncompress=function uncompress(data){data.compressed=false;for(var id in data.emojis){var emoji=data.emojis[id];for(var key in mapping){emoji[key]=emoji[mapping[key]];delete emoji[mapping[key]];}if(!emoji.short_names)emoji.short_names=[];emoji.short_names.unshift(id);emoji.sheet_x=emoji.sheet[0];emoji.sheet_y=emoji.sheet[1];delete emoji.sheet;if(!emoji.text)emoji.text='';if(!emoji.added_in)emoji.added_in=6;emoji.added_in=emoji.added_in.toFixed(1);emoji.search=buildSearch(emoji);}};module.exports={buildSearch:buildSearch,compress:compress,uncompress:uncompress};