element-plus
Version:
A Component Library for Vue 3
1 lines • 9.01 kB
Source Map (JSON)
{"version":3,"file":"notification2.mjs","sources":["../../../../../../packages/components/notification/src/notification.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=\"[ns.b(), customClass, horizontalClass]\"\n :style=\"positionStyle\"\n role=\"alert\"\n @mouseenter=\"clearTimer\"\n @mouseleave=\"startTimer\"\n @click=\"onClick\"\n >\n <el-icon v-if=\"iconComponent\" :class=\"[ns.e('icon'), typeClass]\">\n <component :is=\"iconComponent\" />\n </el-icon>\n <div :class=\"ns.e('group')\">\n <h2 :class=\"ns.e('title')\" v-text=\"title\" />\n <div\n v-show=\"message\"\n :class=\"ns.e('content')\"\n :style=\"!!title ? undefined : { margin: 0 }\"\n >\n <slot>\n <p v-if=\"!dangerouslyUseHTMLString\">{{ message }}</p>\n <!-- Caution here, message could've been compromised, never use user's input as message -->\n <p v-else v-html=\"message\" />\n </slot>\n </div>\n <el-icon v-if=\"showClose\" :class=\"ns.e('closeBtn')\" @click.stop=\"close\">\n <component :is=\"closeIcon\" />\n </el-icon>\n </div>\n </div>\n </transition>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, onMounted, ref } from 'vue'\nimport { useEventListener, useTimeoutFn } from '@vueuse/core'\nimport { TypeComponentsMap, getEventCode } from '@element-plus/utils'\nimport { EVENT_CODE } from '@element-plus/constants'\nimport { ElIcon } from '@element-plus/components/icon'\nimport { useGlobalComponentSettings } from '@element-plus/components/config-provider'\nimport { notificationEmits, notificationProps } from './notification'\n\nimport type { CSSProperties } from 'vue'\n\ndefineOptions({\n name: 'ElNotification',\n})\n\nconst props = defineProps(notificationProps)\ndefineEmits(notificationEmits)\n\nconst { ns, zIndex } = useGlobalComponentSettings('notification')\nconst { nextZIndex, currentZIndex } = zIndex\n\nconst visible = ref(false)\nlet timer: (() => void) | undefined = undefined\n\nconst typeClass = computed(() => {\n const type = props.type\n return type && TypeComponentsMap[props.type] ? ns.m(type) : ''\n})\n\nconst iconComponent = computed(() => {\n if (!props.type) return props.icon\n return TypeComponentsMap[props.type] || props.icon\n})\n\nconst horizontalClass = computed(() =>\n props.position.endsWith('right') ? 'right' : 'left'\n)\n\nconst verticalProperty = computed(() =>\n props.position.startsWith('top') ? 'top' : 'bottom'\n)\n\nconst positionStyle = computed<CSSProperties>(() => {\n return {\n [verticalProperty.value]: `${props.offset}px`,\n zIndex: props.zIndex ?? currentZIndex.value,\n }\n})\n\nfunction startTimer() {\n if (props.duration > 0) {\n ;({ stop: timer } = useTimeoutFn(() => {\n if (visible.value) close()\n }, props.duration))\n }\n}\n\nfunction clearTimer() {\n timer?.()\n}\n\nfunction close() {\n visible.value = false\n}\n\nfunction onKeydown(event: KeyboardEvent) {\n const code = getEventCode(event)\n\n switch (code) {\n case EVENT_CODE.delete:\n case EVENT_CODE.backspace:\n clearTimer() // press delete/backspace clear timer\n break\n case EVENT_CODE.esc:\n // press esc to close the notification\n if (visible.value) {\n close()\n }\n break\n default: // resume timer\n startTimer()\n break\n }\n}\n\n// lifecycle\nonMounted(() => {\n startTimer()\n nextZIndex()\n visible.value = true\n})\n\nuseEventListener(document, 'keydown', onKeydown)\n\ndefineExpose({\n visible,\n /** @description close notification */\n close,\n})\n</script>\n"],"names":["_createBlock","_Transition","_unref","onClose","$emit","_withDirectives","_createElementVNode","id","_normalizeClass","customClass","_normalizeStyle","_openBlock","_resolveDynamicComponent","_toDisplayString","title","_renderSlot","dangerouslyUseHTMLString","_createElementBlock","message","_Fragment","_createCommentVNode","showClose","_withModifiers","closeIcon"],"mappings":"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"}