@nextcloud/vue
Version:
Nextcloud vue components
67 lines (66 loc) • 2.29 kB
JavaScript
;
const browserStorage = require("@nextcloud/browser-storage");
const emojiMartVueFast = require("emoji-mart-vue-fast");
const data = require("emoji-mart-vue-fast/data/all.json");
const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
const data__default = /* @__PURE__ */ _interopDefault(data);
const storage = browserStorage.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 emojiMartVueFast.EmojiIndex(data__default.default);
}
const currentSkinTone = getCurrentSkinTone();
let results;
if (query) {
results = emojiIndex.search(":".concat(query), maxResults);
if (results.length < maxResults) {
results = results.concat(emojiIndex.search(query, maxResults - results.length));
}
} else {
results = emojiMartVueFast.frequently.get(maxResults).map((id) => emojiIndex.emoji(id)) || [];
}
return results.map((emoji) => emoji.getSkin(currentSkinTone));
}
function emojiAddRecent(emojiData) {
emojiMartVueFast.frequently.add(emojiData);
}
function getCurrentSkinTone() {
var _a;
const skinTone = Number.parseInt((_a = storage.getItem("NcEmojiPicker::currentSkinTone")) != null ? _a : "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());
}
exports.EmojiSkinTone = EmojiSkinTone;
exports.emojiAddRecent = emojiAddRecent;
exports.emojiSearch = emojiSearch;
exports.getCurrentSkinTone = getCurrentSkinTone;
exports.setCurrentSkinTone = setCurrentSkinTone;