UNPKG

@zergo0/react-filerobot-image-editor

Version:

React component version of filerobot image editor (FIE).

1 lines 3.93 kB
import _slicedToArray from"@babel/runtime/helpers/slicedToArray";import _toConsumableArray from"@babel/runtime/helpers/toConsumableArray";import data from"@emoji-mart/data";export var getEmojiWithSkinTone=function(a,b){if("string"==typeof a)return a;if(!a.skins||0===a.skins.length)return"\u2753";if(!b||1===b)return a.skins[0].native;var c=b-1;return a.skins[c]?a.skins[c].native:a.skins[0].native};export var processEmojiData=function(){var a={},b={},c={};return data.categories&&Array.isArray(data.categories)?(data.categories.forEach(function(d){var e,f=d.id;if("people"===f)e="smileys-emotion";else{e={nature:"animals-nature",foods:"food-drink",activity:"activities",places:"travel-places",objects:"objects",symbols:"symbols",flags:"flags"}[f]||f}if(!a[e]){a[e]={id:e,name:{"smileys-emotion":"Smileys & Emotion","people-body":"People & Body","animals-nature":"Animals & Nature","food-drink":"Food & Drink","travel-places":"Travel & Places",activities:"Activities",objects:"Objects",symbols:"Symbols",flags:"Flags"}[e]||e,emojis:[]}}(d.emojis||[]).forEach(function(g){var h=data.emojis[g];if(h&&h.skins&&0!==h.skins.length){var i={id:g,skins:h.skins,name:h.name,keywords:h.keywords||[],has_skin_variations:h.skins&&1<h.skins.length};if("people"===f){var j=d.emojis.indexOf(g);200>j?a["smileys-emotion"].emojis.push(i):(!a["people-body"]&&(a["people-body"]={id:"people-body",name:"People & Body",emojis:[]}),a["people-body"].emojis.push(i))}else a[e].emojis.push(i);b[g]=i;var k=[i.name].concat(_toConsumableArray(i.keywords)).filter(Boolean);k.forEach(function(a){if(a){var b=a.toLowerCase();c[b]||(c[b]=[]),c[b].push(i)}})}})}),{categories:a,allEmojis:b,searchIndex:c}):(console.error("Invalid emoji data: categories not found or not an array"),{categories:a,allEmojis:b,searchIndex:c})};var cachedData=null;export var getEmojiData=function(){return cachedData||(cachedData=processEmojiData()),cachedData};export var searchEmojis=function(a){var b=1<arguments.length&&void 0!==arguments[1]?arguments[1]:50;if(!a||1>a.length)return[];var c=getEmojiData(),d=c.searchIndex,e=c.allEmojis,f=a.toLowerCase(),g=new Map;return Object.entries(d).forEach(function(a){var b=_slicedToArray(a,2),c=b[0],d=b[1];c===f&&d.forEach(function(a){return g.set(a.id,a)})}),Object.entries(d).forEach(function(a){var b=_slicedToArray(a,2),c=b[0],d=b[1];c.startsWith(f)&&d.forEach(function(a){return g.set(a.id,a)})}),Object.entries(d).forEach(function(a){var c=_slicedToArray(a,2),d=c[0],e=c[1];d.includes(f)&&g.size<b&&e.forEach(function(a){return g.set(a.id,a)})}),Array.from(g.values()).slice(0,b)};export var FREQUENTLY_USED_KEY="fie_frequently_used_emojis";export var SKIN_TONE_KEY="fie_selected_skin_tone";export var getFrequentlyUsedEmojis=function(){try{var a=localStorage.getItem(FREQUENTLY_USED_KEY);if(a){var b=JSON.parse(a),c=getEmojiData(),d=c.allEmojis;return Object.entries(b).sort(function(c,d){var e=_slicedToArray(c,2),f=e[1],a=_slicedToArray(d,2),g=a[1];return g-f}).slice(0,25).map(function(a){var b=_slicedToArray(a,1),c=b[0];return d[c]}).filter(Boolean)}}catch(a){console.error("Error loading frequently used emojis:",a)}return[]};export var updateFrequentlyUsedEmoji=function(a){try{var b=localStorage.getItem(FREQUENTLY_USED_KEY),c=b?JSON.parse(b):{},d="string"==typeof a?a:a.id;c[d]=(c[d]||0)+1;var e=Object.entries(c).sort(function(c,d){var e=_slicedToArray(c,2),f=e[1],a=_slicedToArray(d,2),g=a[1];return g-f}).slice(0,50),f=Object.fromEntries(e);localStorage.setItem(FREQUENTLY_USED_KEY,JSON.stringify(f))}catch(a){console.error("Error updating frequently used emojis:",a)}};export var getSavedSkinTone=function(){try{var a=localStorage.getItem(SKIN_TONE_KEY);if(a){var b=parseInt(a,10);if(1<=b&&6>=b)return b}}catch(a){console.error("Error loading saved skin tone:",a)}return 1};export var saveSkinTone=function(a){try{localStorage.setItem(SKIN_TONE_KEY,a.toString())}catch(a){console.error("Error saving skin tone:",a)}};