roomkit-web-vue3
Version:
<h1 align="center"> TUIRoomKit</h1> Conference (TUIRoomKit) is a product suitable for multi-person audio and video conversation scenarios such as business meetings, webinars, and online education. By integrating this product, you can add room management,
60 lines (59 loc) • 2.41 kB
JavaScript
;
Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
const Vue = require("vue");
const util = require("../util.js");
const environment = require("../../../utils/environment.js");
const SvgIcon = require("../../common/base/SvgIcon.vue.js");
const EmojiIcon = require("../../common/icons/EmojiIcon.vue.js");
const vClickOutside = require("../../../directives/vClickOutside.js");
const _hoisted_1 = { class: "emoji-tool" };
const _hoisted_2 = ["onClick"];
const _hoisted_3 = ["src"];
const _sfc_main = /* @__PURE__ */ Vue.defineComponent({
__name: "emojiPC",
emits: ["choose-emoji"],
setup(__props, { emit: __emit }) {
const emit = __emit;
const showEmojiToolbar = Vue.ref(false);
const chooseEmoji = (itemName) => {
const emojiInfo = itemName;
emit("choose-emoji", emojiInfo);
};
const handleEmojiToobar = () => {
showEmojiToolbar.value = !showEmojiToolbar.value;
};
const handleClickOutsideEmojiToobar = () => {
if (showEmojiToolbar.value) {
showEmojiToolbar.value = false;
}
};
return (_ctx, _cache) => {
return Vue.openBlock(), Vue.createElementBlock("div", _hoisted_1, [
Vue.createVNode(SvgIcon.default, {
icon: EmojiIcon.default,
class: "emoji-icon",
onClick: Vue.withModifiers(handleEmojiToobar, ["stop"])
}),
Vue.withDirectives((Vue.openBlock(), Vue.createElementBlock("div", {
class: Vue.normalizeClass(Vue.unref(environment.isMobile) ? "emoji-list-h5" : "emoji-list")
}, [
(Vue.openBlock(true), Vue.createElementBlock(Vue.Fragment, null, Vue.renderList(Vue.unref(util.emojiList), (childrenItem, childrenIndex) => {
return Vue.openBlock(), Vue.createElementBlock("div", {
key: childrenIndex,
class: "emoji-item",
onClick: ($event) => chooseEmoji(childrenItem)
}, [
Vue.createElementVNode("img", {
src: Vue.unref(util.emojiBaseUrl) + Vue.unref(util.emojiMap)[childrenItem]
}, null, 8, _hoisted_3)
], 8, _hoisted_2);
}), 128))
], 2)), [
[Vue.vShow, showEmojiToolbar.value],
[Vue.unref(vClickOutside.default), handleClickOutsideEmojiToobar]
])
]);
};
}
});
exports.default = _sfc_main;