{"version":3,"file":"index.mjs","sources":["../../../../../../packages/components/emoji/src/index.vue"],"sourcesContent":["<template>\n  <span ref=\"triggerRef\" :class=\"ns.b()\">\n    <slot name=\"trigger\" />\n  </span>\n  <el-popover\n    ref=\"popoverRef\"\n    trigger=\"click\"\n    placement=\"top\"\n    persistent\n    virtual-triggering\n    :virtual-ref=\"triggerRef\"\n    :width=\"347\"\n    :show-arrow=\"false\"\n    v-bind=\"$attrs\"\n    :popper-class=\"ns.b('popper-class')\"\n    @before-enter=\"handleEnter\"\n    @after-leave=\"handleLeave\"\n  >\n    <div v-if=\"visible\" :class=\"ns.b('panpel')\">\n      <Tabs :options=\"options\" @change=\"handleChangeTab\" />\n      <el-scrollbar ref=\"scrollbarRef\" height=\"300px\">\n        <transition-alias\n          mode=\"out-in\"\n          :name=\"`${ns.namespace.value}-fade-in-linear`\"\n        >\n          <component :is=\"activeComponent\" @change=\"handleChange\" />\n        </transition-alias>\n      </el-scrollbar>\n    </div>\n  </el-popover>\n</template>\n\n<script lang=\"ts\" setup>\nimport { Transition, computed, nextTick, ref, unref } from 'vue'\nimport { ElPopover, ElScrollbar, useLocale, useNamespace } from 'element-plus'\nimport { CHANGE_EVENT, UPDATE_MODEL_EVENT } from '@element-plus/constants'\nimport Emoticon from './emoticon.vue'\nimport FontEmoticon from './font-emoticon.vue'\nimport Tabs from './tabs.vue'\nimport { emojiEmits, emojiProps } from './emoji'\nimport { COMMOM_TYPE, WX_TYPE } from './helper'\nimport type { EmoticonListItem, FontEmoticonListItem } from './helper'\n\nconst TransitionAlias = Transition\n\ndefineOptions({\n  name: 'ElEmoji',\n})\nconst props = defineProps(emojiProps)\nconst emit = defineEmits(emojiEmits)\n\nconst ns = useNamespace('emoji')\nconst { t } = useLocale()\n\n// data\nconst scrollbarRef = ref()\nconst popoverRef = ref()\nconst triggerRef = ref()\nconst visible = ref(false)\nconst curTab = ref(WX_TYPE)\nconst options = ref([\n  {\n    label: t('epx.emoji.weixinEmoji'),\n    value: WX_TYPE,\n  },\n  {\n    label: t('epx.emoji.commonEmoji'),\n    value: COMMOM_TYPE,\n  },\n])\n\n// computed\nconst activeComponent = computed(() =>\n  curTab.value === WX_TYPE ? Emoticon : FontEmoticon\n)\n\n// methods\nconst hidden = () => {\n  unref(popoverRef)?.hide?.()\n}\n\nconst handleChange = (item: EmoticonListItem | FontEmoticonListItem) => {\n  hidden()\n  const value = item[props.type] ?? item['text']\n  emit(UPDATE_MODEL_EVENT, value)\n  emit(CHANGE_EVENT, item, curTab.value)\n}\n\nconst handleEnter = () => {\n  visible.value = true\n}\n\nconst handleLeave = () => {\n  if (props.keepAlive) return\n  visible.value = false\n  curTab.value = WX_TYPE\n}\n\nconst updateScrollbar = () => {\n  nextTick(() => {\n    scrollbarRef.value?.update?.()\n  })\n}\n\nconst handleChangeTab = (value: string) => {\n  curTab.value = value\n  emit('click-tab', value)\n}\n\ndefineExpose({\n  scrollbarRef,\n  updateScrollbar,\n})\n</script>\n"],"names":[],"mappings":"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"}