element-plus
Version:
A Component Library for Vue 3
1 lines • 8.79 kB
Source Map (JSON)
{"version":3,"file":"message2.mjs","sources":["../../../../../../packages/components/message/src/message.vue"],"sourcesContent":["<template>\n <transition\n :name=\"ns.b('fade')\"\n @before-leave=\"onClose\"\n @after-leave=\"$emit('destroy')\"\n >\n <div\n v-show=\"visible\"\n :id=\"id\"\n :class=\"[\n ns.b(),\n { [ns.m(type)]: type && !icon },\n ns.is('center', center),\n ns.is('closable', showClose),\n customClass,\n ]\"\n :style=\"customStyle\"\n role=\"alert\"\n @mouseenter=\"clearTimer\"\n @mouseleave=\"startTimer\"\n >\n <el-badge\n v-if=\"repeatNum > 1\"\n :value=\"repeatNum\"\n :type=\"badgeType\"\n :class=\"ns.e('badge')\"\n />\n <el-icon v-if=\"iconComponent\" :class=\"[ns.e('icon'), typeClass]\">\n <component :is=\"iconComponent\" />\n </el-icon>\n <slot>\n <p v-if=\"!dangerouslyUseHTMLString\" :class=\"ns.e('content')\">\n {{ message }}\n </p>\n <!-- Caution here, message could've been compromised, never use user's input as message -->\n <p v-else :class=\"ns.e('content')\" v-html=\"message\" />\n </slot>\n <el-icon v-if=\"showClose\" :class=\"ns.e('closeBtn')\" @click.stop=\"close\">\n <close />\n </el-icon>\n </div>\n </transition>\n</template>\n<script lang=\"ts\">\nimport { computed, defineComponent, onMounted, ref, watch } from 'vue'\nimport { useEventListener, useTimeoutFn } from '@vueuse/core'\nimport { TypeComponents, TypeComponentsMap } from '@element-plus/utils'\nimport { EVENT_CODE } from '@element-plus/constants'\nimport ElBadge from '@element-plus/components/badge'\nimport { ElIcon } from '@element-plus/components/icon'\n\nimport { useNamespace } from '@element-plus/hooks'\nimport { messageEmits, messageProps } from './message'\nimport type { BadgeProps } from '@element-plus/components/badge'\n\nimport type { CSSProperties } from 'vue'\n\nexport default defineComponent({\n name: 'ElMessage',\n\n components: {\n ElBadge,\n ElIcon,\n ...TypeComponents,\n },\n\n props: messageProps,\n emits: messageEmits,\n\n setup(props) {\n const ns = useNamespace('message')\n const visible = ref(false)\n const badgeType = ref<BadgeProps['type']>(\n props.type ? (props.type === 'error' ? 'danger' : props.type) : 'info'\n )\n let stopTimer: (() => void) | undefined = undefined\n\n const typeClass = computed(() => {\n const type = props.type\n return { [ns.bm('icon', type)]: type && TypeComponentsMap[type] }\n })\n\n const iconComponent = computed(() => {\n return props.icon || TypeComponentsMap[props.type] || ''\n })\n\n const customStyle = computed<CSSProperties>(() => ({\n top: `${props.offset}px`,\n zIndex: props.zIndex,\n }))\n\n function startTimer() {\n if (props.duration > 0) {\n ;({ stop: stopTimer } = useTimeoutFn(() => {\n if (visible.value) close()\n }, props.duration))\n }\n }\n\n function clearTimer() {\n stopTimer?.()\n }\n\n function close() {\n visible.value = false\n }\n\n function keydown({ code }: KeyboardEvent) {\n if (code === EVENT_CODE.esc) {\n // press esc to close the message\n if (visible.value) {\n close()\n }\n } else {\n startTimer() // resume timer\n }\n }\n\n onMounted(() => {\n startTimer()\n visible.value = true\n })\n\n watch(\n () => props.repeatNum,\n () => {\n clearTimer()\n startTimer()\n }\n )\n\n useEventListener(document, 'keydown', keydown)\n\n return {\n ns,\n typeClass,\n iconComponent,\n customStyle,\n visible,\n badgeType,\n\n close,\n clearTimer,\n startTimer,\n }\n },\n})\n</script>\n"],"names":["_createBlock","_Transition","_withDirectives","_createElementVNode","_normalizeClass","_normalizeStyle","_createCommentVNode","_openBlock","_resolveDynamicComponent","_renderSlot","_createElementBlock","_toDisplayString","_Fragment","_withModifiers","_createVNode"],"mappings":";;;;;;;;;;;;;AAyDA,MAAK,YAAa,eAAa,CAAA;AAAA,EAC7B,IAAM,EAAA,WAAA;AAAA,EAEN,UAAY,EAAA;AAAA,IACV,OAAA;AAAA,IACA,MAAA;AAAA,IACG,GAAA,cAAA;AAAA,GACL;AAAA,EAEA,KAAO,EAAA,YAAA;AAAA,EACP,KAAO,EAAA,YAAA;AAAA,EAEP,MAAM,KAAO,EAAA;AACX,IAAM,MAAA,EAAA,GAAK,aAAa,SAAS,CAAA,CAAA;AACjC,IAAM,MAAA,OAAA,GAAU,IAAI,KAAK,CAAA,CAAA;AACzB,IAAM,MAAA,SAAA,GAAY,GAChB,CAAA,KAAA,CAAM,IAAQ,GAAA,KAAA,CAAM,SAAS,OAAU,GAAA,QAAA,GAAW,KAAM,CAAA,IAAA,GAAQ,MAClE,CAAA,CAAA;AACA,IAAA,IAAI,SAAsC,GAAA,KAAA,CAAA,CAAA;AAE1C,IAAM,MAAA,SAAA,GAAY,SAAS,MAAM;AAC/B,MAAA,MAAM,OAAO,KAAM,CAAA,IAAA,CAAA;AACnB,MAAO,OAAA,EAAA,CAAG,GAAG,EAAG,CAAA,MAAA,EAAQ,IAAI,CAAI,GAAA,IAAA,IAAQ,kBAAkB,IAAM,CAAA,EAAA,CAAA;AAAA,KACjE,CAAA,CAAA;AAED,IAAM,MAAA,aAAA,GAAgB,SAAS,MAAM;AACnC,MAAA,OAAO,KAAM,CAAA,IAAA,IAAQ,iBAAkB,CAAA,KAAA,CAAM,IAAS,CAAA,IAAA,EAAA,CAAA;AAAA,KACvD,CAAA,CAAA;AAED,IAAM,MAAA,WAAA,GAAc,SAAwB,OAAO;AAAA,MACjD,GAAA,EAAK,GAAG,KAAM,CAAA,MAAA,CAAA,EAAA,CAAA;AAAA,MACd,QAAQ,KAAM,CAAA,MAAA;AAAA,KACd,CAAA,CAAA,CAAA;AAEF,IAAsB,SAAA,UAAA,GAAA;AACpB,MAAI,IAAA,KAAA,CAAM,WAAW,CAAG,EAAA;AACtB,QAAA,CAAA;AAAC,QAAC,CAAE,EAAA,IAAA,EAAM,SAAU,EAAA,GAAI,aAAa,MAAM;AACzC,UAAA,IAAI,OAAQ,CAAA,KAAA;AAAO,YAAM,KAAA,EAAA,CAAA;AAAA,SAC3B,EAAG,MAAM,QAAQ,CAAA,EAAA;AAAA,OACnB;AAAA,KACF;AAEA,IAAsB,SAAA,UAAA,GAAA;AACpB,MAAY,SAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,SAAA,EAAA,CAAA;AAAA,KACd;AAEA,IAAiB,SAAA,KAAA,GAAA;AACf,MAAA,OAAA,CAAQ,KAAQ,GAAA,KAAA,CAAA;AAAA,KAClB;AAEA,IAAA,SAAA,OAAA,CAAiB,EAAE,IAAuB,EAAA,EAAA;AACxC,MAAI,IAAA,IAAA,KAAS,WAAW,GAAK,EAAA;AAE3B,QAAA,IAAI,QAAQ,KAAO,EAAA;AACjB,UAAM,KAAA,EAAA,CAAA;AAAA,SACR;AAAA,OACK,MAAA;AACL,QAAW,UAAA,EAAA,CAAA;AAAA,OACb;AAAA,KACF;AAEA,IAAA,SAAA,CAAU,MAAM;AACd,MAAW,UAAA,EAAA,CAAA;AACX,MAAA,OAAA,CAAQ,KAAQ,GAAA,IAAA,CAAA;AAAA,KACjB,CAAA,CAAA;AAED,IACE,KAAA,CAAA,MAAM,KAAM,CAAA,SAAA,EACZ,MAAM;AACJ,MAAW,UAAA,EAAA,CAAA;AACX,MAAW,UAAA,EAAA,CAAA;AAAA,KAEf,CAAA,CAAA;AAEA,IAAiB,gBAAA,CAAA,QAAA,EAAU,WAAW,OAAO,CAAA,CAAA;AAE7C,IAAO,OAAA;AAAA,MACL,EAAA;AAAA,MACA,SAAA;AAAA,MACA,aAAA;AAAA,MACA,WAAA;AAAA,MACA,OAAA;AAAA,MACA,SAAA;AAAA,MAEA,KAAA;AAAA,MACA,UAAA;AAAA,MACA,UAAA;AAAA,KACF,CAAA;AAAA,GACF;AACF,CAAC,CAAA,CAAA;;;;;;;sBAjJCA,WAwCa,CAAAC,UAAA,EAAA;AAAA,IAvCV,IAAA,EAAM,QAAG,CAAC,CAAA,MAAA,CAAA;AAAA,IACV,aAAc,EAAA,IAAA,CAAA,OAAA;AAAA,IACd,YAAA,EAAW,sCAAE,IAAK,CAAA,KAAA,CAAA,SAAA,CAAA,CAAA;AAAA,GAAA,EAAA;qBAEnB,MAkCM;AAAA,MAAAC,cAAA,CAlCNC,kBAkCM,CAAA,KAAA,EAAA;AAAA,QAhCH,EAAI,EAAA,IAAA,CAAA,EAAA;AAAA,QACJ,KAAK,EAAAC,cAAA,CAAA;AAAA,UAAY,QAAG,CAAC,EAAA;AAAA,UAAA,EAAA,CAAe,QAAG,CAAE,CAAA,IAAA,CAAA,IAAI,CAAI,GAAA,IAAA,CAAA,IAAA,IAAI,CAAK,IAAI,CAAA,IAAA,EAAA;AAAA,UAAY,IAAA,CAAA,EAAA,CAAG,EAAE,CAAA,QAAA,EAAW,IAAM,CAAA,MAAA,CAAA;AAAA,UAAW,IAAA,CAAA,EAAA,CAAG,EAAE,CAAA,UAAA,EAAa,IAAS,CAAA,SAAA,CAAA;AAAA,UAAW,IAAA,CAAA,WAAA;AAAA,SAAA,CAAA;AAOjJ,QAAA,KAAA,EAAKC,eAAE,IAAW,CAAA,WAAA,CAAA;AAAA,QACnB,IAAK,EAAA,OAAA;AAAA,QACJ,cAAU,MAAE,CAAA,CAAA,CAAA,KAAA,MAAA,CAAA,CAAA,CAAA,GAAA,CAAA,GAAA,IAAA,KAAA,IAAA,CAAA,UAAA,IAAA,IAAA,CAAA,UAAA,CAAA,GAAA,IAAA,CAAA,CAAA;AAAA,QACZ,cAAU,MAAE,CAAA,CAAA,CAAA,KAAA,MAAA,CAAA,CAAA,CAAA,GAAA,CAAA,GAAA,IAAA,KAAA,IAAA,CAAA,UAAA,IAAA,IAAA,CAAA,UAAA,CAAA,GAAA,IAAA,CAAA,CAAA;AAAA,OAAA,EAAA;AAGL,QAAA,IAAA,CAAA,SAAA,GAAS,kBADjBL,WAKE,CAAA,mBAAA,EAAA;AAAA,UAAA,GAAA,EAAA,CAAA;UAHC,KAAO,EAAA,IAAA,CAAA,SAAA;AAAA,UACP,IAAM,EAAA,IAAA,CAAA,SAAA;AAAA,UACN,KAAA,EAAKI,cAAE,CAAA,IAAA,CAAA,EAAA,CAAG,CAAC,CAAA,OAAA,CAAA,CAAA;AAAA,SAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,OAAA,CAAA,CAAA,IAAAE,kBAAA,CAAA,MAAA,EAAA,IAAA,CAAA;AAEC,QAAA,IAAA,CAAA,aAAA,IAAAC,SAAA,EAAA,EAAfP,WAEU,CAAA,kBAAA,EAAA;AAAA,UAAA,GAAA,EAAA,CAAA;AAFqB,UAAA,KAAA,EAAKI,cAAG,CAAA,CAAA,IAAA,CAAA,EAAA,CAAG,CAAC,CAAA,MAAA,CAAA,EAAU,IAAS,CAAA,SAAA,CAAA,CAAA;AAAA,SAAA,EAAA;2BAC5D,MAAiC;AAAA,aAAjCG,SAAA,EAAA,EAAAP,WAAA,CAAiCQ,wBAAjB,IAAa,CAAA,aAAA,CAAA,CAAA;AAAA,WAAA,CAAA;;;AAE/B,QAAAC,UAAA,CAMO,4BANP,MAMO;AAAA,UAAA,CALK,8CAAVC,kBAEI,CAAA,GAAA,EAAA;AAAA,YAAA,GAAA,EAAA,CAAA;YAFiC,KAAK,EAAAN,cAAA,CAAE,QAAG,CAAC,CAAA,SAAA,CAAA,CAAA;AAAA,WAC3C,EAAAO,eAAA,CAAA,IAAA,CAAA,OAAO,uBAGZD,kBAAsD,CAAAE,QAAA,EAAA,EAAA,GAAA,EAAA,CAAA,EAAA,EAAA;AAAA,YADtDN,kBAAA,CAAA,sFAAA,CAAA;AAAA,YACAH,kBAAsD,CAAA,GAAA,EAAA;AAAA,cAA3C,KAAA,EAAKC,cAAE,CAAA,IAAA,CAAA,EAAA,CAAG,CAAC,CAAA,SAAA,CAAA,CAAA;AAAA,cAAa,SAAQ,EAAA,IAAA,CAAA,OAAA;AAAA,aAAA,EAAA,IAAA,EAAA,EAAA,EAAA,UAAA,CAAA;;;AAE9B,QAAA,IAAA,CAAA,SAAA,IAAAG,SAAA,EAAA,EAAfP,WAEU,CAAA,kBAAA,EAAA;AAAA,UAAA,GAAA,EAAA,CAAA;UAFiB,KAAK,EAAAI,cAAA,CAAE,QAAG,CAAC,CAAA,UAAA,CAAA,CAAA;AAAA,UAAe,OAAA,EAAKS,cAAO,IAAK,CAAA,KAAA,EAAA,CAAA,MAAA,CAAA,CAAA;AAAA,SAAA,EAAA;2BACpE,MAAS;AAAA,YAATC,WAAS,CAAA,gBAAA,CAAA;AAAA,WAAA,CAAA;;;;gBA/BH,IAAO,CAAA,OAAA,CAAA;AAAA,OAAA,CAAA;;;;;;;;;"}