UNPKG

@nextcloud/vue

Version:
66 lines (65 loc) 1.99 kB
import { getBuilder } from "@nextcloud/browser-storage"; import { EmojiIndex, frequently } from "emoji-mart-vue-fast"; import data from "emoji-mart-vue-fast/data/all.json"; const storage = getBuilder("nextcloud-vue").persist(true).build(); let emojiIndex; var EmojiSkinTone = /* @__PURE__ */ ((EmojiSkinTone2) => { EmojiSkinTone2[EmojiSkinTone2["Neutral"] = 1] = "Neutral"; EmojiSkinTone2[EmojiSkinTone2["Light"] = 2] = "Light"; EmojiSkinTone2[EmojiSkinTone2["MediumLight"] = 3] = "MediumLight"; EmojiSkinTone2[EmojiSkinTone2["Medium"] = 4] = "Medium"; EmojiSkinTone2[EmojiSkinTone2["MediumDark"] = 5] = "MediumDark"; EmojiSkinTone2[EmojiSkinTone2["Dark"] = 6] = "Dark"; return EmojiSkinTone2; })(EmojiSkinTone || {}); function emojiSearch(query, maxResults = 10) { if (!emojiIndex) { emojiIndex = new EmojiIndex(data); } const currentSkinTone = getCurrentSkinTone(); let results; if (query) { results = emojiIndex.search(`:${query}`, maxResults); if (results.length < maxResults) { results = results.concat(emojiIndex.search(query, maxResults - results.length)); } } else { results = frequently.get(maxResults).map((id) => emojiIndex.emoji(id)) || []; } return results.map((emoji) => emoji.getSkin(currentSkinTone)); } function emojiAddRecent(emojiData) { frequently.add(emojiData); } function getCurrentSkinTone() { const skinTone = Number.parseInt(storage.getItem("NcEmojiPicker::currentSkinTone") ?? "1"); return Math.min( Math.max( skinTone, 1 /* Neutral */ ), 6 /* Dark */ ); } function setCurrentSkinTone(skinTone) { skinTone = Math.min( Math.max( skinTone, 1 /* Neutral */ ), 6 /* Dark */ ); storage.setItem("NcEmojiPicker::currentSkinTone", skinTone.toString()); } export { EmojiSkinTone as E, emojiAddRecent as a, emojiSearch as e, getCurrentSkinTone as g, setCurrentSkinTone as s }; //# sourceMappingURL=emoji-BY_D0V5K.mjs.map