import { emojiPattern as e } from "regex-combined-emojis";
import t from "emoji-toolkit/emoji_strategy.json";
//#region common/emoji/index.js
var n = new RegExp(e, "g"), r = "9.0", i = "https://cdn.jsdelivr.net/joypixels/assets/9.0/png/unicode/32/", a = null, o = i, s = ".png", c = i, l = ".png", u = t, d = /(^| |(?<=:))(:\w+:)/g;
function f() {
	return u;
}
function p(e, t = ".png") {
	e.endsWith("/") || (e += "/"), o = e, s = t;
}
function m(e, t = ".svg") {
	e.endsWith("/") || (e += "/"), c = e, l = t;
}
function h(e) {
	a = e;
}
function g(e) {
	_(e);
}
function _(e) {
	let t = [
		"custom",
		"date_added",
		"image"
	], n = [
		"date_added",
		"image",
		"unicode_output",
		"shortname",
		"shortname_alternates",
		"custom",
		"name"
	], r = (e, n, r) => {
		if (e[n] === void 0) {
			if (!t.includes(n)) return;
			e[n] = r;
		} else Array.isArray(e[n]) ? e[n] = e[n].concat(r) : e[n] = r;
	};
	Object.entries(e).forEach((e) => {
		let [t, i] = e;
		if (t in u) {
			let e = u[t];
			for (let t in i) {
				let n = i[t];
				r(e, t, n);
			}
		} else n.every((e) => i[e] !== void 0) ? u[t] = i : console.error("The following custom emoji doesn't contain the required properties:", i);
	});
}
function v(e) {
	function t(r, i) {
		if (!(!r || typeof r != "object")) {
			if ("shortname" in r && (r.shortname === e || r.shortname_alternates.includes(e))) return r.key = i, n = r, !0;
			Object.keys(r).some(function(e) {
				return t(r[e], e);
			});
		}
	}
	let n;
	return t(f(), null), n;
}
function y(e) {
	return e.startsWith(":") ? e : u[b(e)]?.shortname;
}
function b(e) {
	let t = "";
	for (let n of e) {
		let e = n.codePointAt(0).toString(16).padStart(4, "0");
		["200d", "fe0f"].includes(e) || (t !== "" && (t += "-"), t += e);
	}
	return t;
}
function x(e) {
	let t = e.split("-"), n = "";
	return t.forEach((e) => {
		n += String.fromCodePoint(parseInt(e, 16));
	}), n;
}
function S(e) {
	if (e = e?.trim(), e.startsWith(":") && e.endsWith(":")) return v(e);
	{
		let t = b(e), n = u[t];
		return n && (n.key = t), n;
	}
}
function C(e) {
	return w((e.match(d) || []).map((e) => e.trim()));
}
function w(e) {
	let t = e ? e.filter((e) => v(e)) : [];
	return new Set(t);
}
function T(e) {
	let t = [...e.matchAll(n)], r = t.length ? t.map((e) => e[0]) : [];
	return new Set(r);
}
//#endregion
export { S as codeToEmojiData, a as customEmojiAssetUrl, i as defaultEmojiAssetUrl, l as emojiFileExtensionLarge, s as emojiFileExtensionSmall, c as emojiImageUrlLarge, o as emojiImageUrlSmall, u as emojiJson, n as emojiRegex, d as emojiShortCodeRegex, r as emojiVersion, w as filterValidShortCodes, T as findEmojis, C as findShortCodes, f as getEmojiData, y as getEmojiShortCode, g as setCustomEmojiJson, h as setCustomEmojiUrl, m as setEmojiAssetUrlLarge, p as setEmojiAssetUrlSmall, v as shortcodeToEmojiData, x as stringToUnicode, b as unicodeToString, _ as validateCustomEmojiJson };

//# sourceMappingURL=index.js.map