element-plus
Version:
A Component Library for Vue 3
1 lines • 9.11 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 compromized, nerver use user's input as message -->\n <!-- eslint-disable-next-line -->\n <p v-else v-html=\"message\"></p>\n </slot>\n </div>\n <el-icon v-if=\"showClose\" :class=\"ns.e('closeBtn')\" @click.stop=\"close\">\n <close />\n </el-icon>\n </div>\n </div>\n </transition>\n</template>\n<script lang=\"ts\">\n// @ts-nocheck\nimport { computed, defineComponent, onMounted, ref } from 'vue'\nimport { useEventListener, useTimeoutFn } from '@vueuse/core'\nimport { TypeComponents, TypeComponentsMap } from '@element-plus/utils'\nimport { EVENT_CODE } from '@element-plus/constants'\nimport { ElIcon } from '@element-plus/components/icon'\nimport { useNamespace } from '@element-plus/hooks'\nimport { notificationEmits, notificationProps } from './notification'\n\nimport type { CSSProperties } from 'vue'\n\nexport default defineComponent({\n name: 'ElNotification',\n\n components: {\n ElIcon,\n ...TypeComponents,\n },\n\n props: notificationProps,\n emits: notificationEmits,\n\n setup(props) {\n const ns = useNamespace('notification')\n const visible = ref(false)\n let timer: (() => void) | undefined = undefined\n\n const typeClass = computed(() => {\n const type = props.type\n return type && TypeComponentsMap[props.type] ? ns.m(type) : ''\n })\n\n const iconComponent = computed(() => {\n return TypeComponentsMap[props.type] || props.icon || ''\n })\n\n const horizontalClass = computed(() =>\n props.position.endsWith('right') ? 'right' : 'left'\n )\n\n const verticalProperty = computed(() =>\n props.position.startsWith('top') ? 'top' : 'bottom'\n )\n\n const positionStyle = computed<CSSProperties>(() => {\n return {\n [verticalProperty.value]: `${props.offset}px`,\n zIndex: props.zIndex,\n }\n })\n\n function startTimer() {\n if (props.duration > 0) {\n ;({ stop: timer } = useTimeoutFn(() => {\n if (visible.value) close()\n }, props.duration))\n }\n }\n\n function clearTimer() {\n timer?.()\n }\n\n function close() {\n visible.value = false\n }\n\n function onKeydown({ code }: KeyboardEvent) {\n if (code === EVENT_CODE.delete || code === EVENT_CODE.backspace) {\n clearTimer() // press delete/backspace clear timer\n } else if (code === EVENT_CODE.esc) {\n // press esc to close the notification\n if (visible.value) {\n close()\n }\n } else {\n startTimer() // resume timer\n }\n }\n\n // lifecycle\n onMounted(() => {\n startTimer()\n visible.value = true\n })\n\n useEventListener(document, 'keydown', onKeydown)\n\n return {\n ns,\n horizontalClass,\n typeClass,\n iconComponent,\n positionStyle,\n visible,\n\n close,\n clearTimer,\n startTimer,\n }\n },\n})\n</script>\n"],"names":["_createBlock","_Transition","_withDirectives","_createElementVNode","_normalizeClass","_normalizeStyle","_openBlock","_resolveDynamicComponent","_toDisplayString","_renderSlot","_createElementBlock","_Fragment","_createCommentVNode","_withModifiers","_createVNode"],"mappings":";;;;;;;;;;;;AAoDA,MAAK,YAAa,eAAa,CAAA;AAAA,EAC7B,IAAM,EAAA,gBAAA;AAAA,EAEN,UAAY,EAAA;AAAA,IACV,MAAA;AAAA,IACA,GAAG,cAAA;AAAA,GACL;AAAA,EAEA,KAAO,EAAA,iBAAA;AAAA,EACP,KAAO,EAAA,iBAAA;AAAA,EAEP,MAAM,KAAO,EAAA;AACX,IAAM,MAAA,EAAA,GAAK,aAAa,cAAc,CAAA,CAAA;AACtC,IAAM,MAAA,OAAA,GAAU,IAAI,KAAK,CAAA,CAAA;AACzB,IAAA,IAAI,KAAkC,GAAA,KAAA,CAAA,CAAA;AAEtC,IAAM,MAAA,SAAA,GAAY,SAAS,MAAM;AAC/B,MAAA,MAAM,OAAO,KAAM,CAAA,IAAA,CAAA;AACnB,MAAA,OAAO,QAAQ,iBAAkB,CAAA,KAAA,CAAM,QAAQ,EAAG,CAAA,CAAA,CAAE,IAAI,CAAI,GAAA,EAAA,CAAA;AAAA,KAC7D,CAAA,CAAA;AAED,IAAM,MAAA,aAAA,GAAgB,SAAS,MAAM;AACnC,MAAA,OAAO,iBAAkB,CAAA,KAAA,CAAM,IAAS,CAAA,IAAA,KAAA,CAAM,IAAQ,IAAA,EAAA,CAAA;AAAA,KACvD,CAAA,CAAA;AAED,IAAM,MAAA,eAAA,GAAkB,SAAS,MAC/B,KAAA,CAAM,SAAS,QAAS,CAAA,OAAO,CAAI,GAAA,OAAA,GAAU,MAC/C,CAAA,CAAA;AAEA,IAAM,MAAA,gBAAA,GAAmB,SAAS,MAChC,KAAA,CAAM,SAAS,UAAW,CAAA,KAAK,CAAI,GAAA,KAAA,GAAQ,QAC7C,CAAA,CAAA;AAEA,IAAM,MAAA,aAAA,GAAgB,SAAwB,MAAM;AAClD,MAAO,OAAA;AAAA,QACL,CAAC,gBAAA,CAAiB,KAAQ,GAAA,CAAA,EAAG,KAAM,CAAA,MAAA,CAAA,EAAA,CAAA;AAAA,QACnC,QAAQ,KAAM,CAAA,MAAA;AAAA,OAChB,CAAA;AAAA,KACD,CAAA,CAAA;AAED,IAAsB,SAAA,UAAA,GAAA;AACpB,MAAI,IAAA,KAAA,CAAM,WAAW,CAAG,EAAA;AACtB,QAAA,CAAA;AAAC,QAAC,CAAE,EAAA,IAAA,EAAM,KAAM,EAAA,GAAI,aAAa,MAAM;AACrC,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,MAAQ,KAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,KAAA,EAAA,CAAA;AAAA,KACV;AAEA,IAAiB,SAAA,KAAA,GAAA;AACf,MAAA,OAAA,CAAQ,KAAQ,GAAA,KAAA,CAAA;AAAA,KAClB;AAEA,IAAA,SAAA,SAAA,CAAmB,EAAE,IAAuB,EAAA,EAAA;AAC1C,MAAA,IAAI,IAAS,KAAA,UAAA,CAAW,MAAU,IAAA,IAAA,KAAS,WAAW,SAAW,EAAA;AAC/D,QAAW,UAAA,EAAA,CAAA;AAAA,OACb,MAAA,IAAW,IAAS,KAAA,UAAA,CAAW,GAAK,EAAA;AAElC,QAAA,IAAI,QAAQ,KAAO,EAAA;AACjB,UAAM,KAAA,EAAA,CAAA;AAAA,SACR;AAAA,OACK,MAAA;AACL,QAAW,UAAA,EAAA,CAAA;AAAA,OACb;AAAA,KACF;AAGA,IAAA,SAAA,CAAU,MAAM;AACd,MAAW,UAAA,EAAA,CAAA;AACX,MAAA,OAAA,CAAQ,KAAQ,GAAA,IAAA,CAAA;AAAA,KACjB,CAAA,CAAA;AAED,IAAiB,gBAAA,CAAA,QAAA,EAAU,WAAW,SAAS,CAAA,CAAA;AAE/C,IAAO,OAAA;AAAA,MACL,EAAA;AAAA,MACA,eAAA;AAAA,MACA,SAAA;AAAA,MACA,aAAA;AAAA,MACA,aAAA;AAAA,MACA,OAAA;AAAA,MAEA,KAAA;AAAA,MACA,UAAA;AAAA,MACA,UAAA;AAAA,KACF,CAAA;AAAA,GACF;AACF,CAAC,CAAA,CAAA;;;;;;;;sBA7ICA,WAqCa,CAAAC,UAAA,EAAA;AAAA,IApCV,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,IAHrB,SAAA,EAAA,EAAA;AAAA,GAAA,EAAA;qBAKE,MA+BM;AAAA,MAAAC,cAAA,CA/BNC,kBA+BM,CAAA,KAAA,EAAA;AAAA,QA7BH,EAAI,EAAA,IAAA,CAAA,EAAA;AAAA,QACJ,OAAKC,cAAG,CAAA,CAAA,IAAA,CAAA,EAAA,CAAG,CAAC,EAAA,EAAI,kBAAa,IAAe,CAAA,eAAA,CAAA,CAAA;AAAA,QAC5C,KAAA,EAAKC,eAAE,IAAa,CAAA,aAAA,CAAA;AAAA,QACrB,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,QACZ,SAAK,MAAE,CAAA,CAAA,CAAA,KAAA,MAAA,CAAA,CAAA,CAAA,GAAA,CAAA,GAAA,IAAA,KAAA,IAAA,CAAA,OAAA,IAAA,IAAA,CAAA,OAAA,CAAA,GAAA,IAAA,CAAA,CAAA;AAAA,OAAA,EAAA;AAEO,QAAA,IAAA,CAAA,aAAA,IAAAC,SAAA,EAAA,EAAfN,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,aAAjCE,SAAA,EAAA,EAAAN,WAAA,CAAiCO,wBAAjB,IAAa,CAAA,aAAA,CAAA,CAAA;AAAA,WAAA,CAAA;;;QAE/BJ,kBAiBM,CAAA,KAAA,EAAA;AAAA,UAjBA,KAAA,EAAKC,cAAE,CAAA,IAAA,CAAA,EAAA,CAAG,CAAC,CAAA,OAAA,CAAA,CAAA;AAAA,SAAA,EAAA;UACfD,kBAA4C,CAAA,IAAA,EAAA;AAAA,YAAvC,KAAA,EAAKC,cAAE,CAAA,IAAA,CAAA,EAAA,CAAG,CAAC,CAAA,OAAA,CAAA,CAAA;AAAA,YAAW,WAAA,EAAAI,eAAA,CAAQ,KAAM,KAAD,CAAA;AAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,UAAA,CAAA;yBACxCL,kBAWM,CAAA,KAAA,EAAA;AAAA,YATH,KAAA,EAAKC,cAAE,CAAA,IAAA,CAAA,EAAA,CAAG,CAAC,CAAA,SAAA,CAAA,CAAA;AAAA,YACX,KAAA,EAAKC,cAAI,CAAA,CAAA,CAAA,IAAA,CAAA,KAAA,GAAQ,KAAS,CAAA,GAAA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA;AAAA,WAAA,EAAA;AAE3B,YAAAI,UAAA,CAKO,4BALP,MAKO;AAAA,cAAA,CAJK,IAAV,CAAA,wBAAA,IAAAH,SAAA,EAAA,EAAAI,kBAAA,CAAqD,GAAd,EAAA,UAAA,EAAAF,eAAA,CAAA,IAAA,CAAA,OAAO,uBAG9CE,kBAA+B,CAAAC,QAAA,EAAA,EAAA,GAAA,EAAA,CAAA,EAAA,EAAA;AAAA,gBAF/BC,kBAAA,CAAA,uFAAA,CAAA;AAAA,gBACAA,kBAAA,CAAA,4BAAA,CAAA;AAAA,gBACAT,kBAAA,CAA+B,GAArB,EAAA,EAAA,SAAA,EAAQ,IAAO,CAAA,OAAA,EAAA,EAAA,IAAA,EAAA,CAAA,EAAA,UAAA,CAAA;AAAA,eAAA,EAAA,IAAA,CAAA,CAAA;;;oBARnB,IAAO,CAAA,OAAA,CAAA;AAAA,WAAA,CAAA;AAWF,UAAA,IAAA,CAAA,SAAA,IAAAG,SAAA,EAAA,EAAfN,WAEU,CAAA,kBAAA,EAAA;AAAA,YAAA,GAAA,EAAA,CAAA;YAFiB,KAAK,EAAAI,cAAA,CAAE,QAAG,CAAC,CAAA,UAAA,CAAA,CAAA;AAAA,YAAe,OAAA,EAAKS,cAAO,IAAK,CAAA,KAAA,EAAA,CAAA,MAAA,CAAA,CAAA;AAAA,WAAA,EAAA;6BACpE,MAAS;AAAA,cAATC,WAAS,CAAA,gBAAA,CAAA;AAAA,aAAA,CAAA;;;;;gBA3BL,IAAO,CAAA,OAAA,CAAA;AAAA,OAAA,CAAA;;;;;;;;;"}