{"version":3,"file":"message.vue2.mjs","sources":["../../../../../../packages/components/message/src/message.vue"],"sourcesContent":["<script lang=\"ts\">\n  import type { PropType } from 'vue'\n  import { defineComponent, computed, ref, onMounted, onUnmounted } from 'vue'\n  import { getComponentNamespace, getNamespace } from '../../../utils/global-config'\n  import usePopupManager from '../../../hooks/use-popup-manager'\n  import type { IMessageType, IMessage } from './types'\n\n  export default defineComponent({\n    name: getComponentNamespace('Message'),\n    props: {\n      id: {\n        type: String,\n        default: ''\n      },\n      message: {\n        type: [String, Number, Object] as PropType<IMessage>,\n        default: ''\n      },\n      type: {\n        type: String as PropType<IMessageType>,\n        default: 'success'\n      },\n      duration: {\n        type: Number,\n        default: 1500\n      },\n      center: {\n        type: Boolean,\n        default: false\n      },\n      onClose: {\n        type: Function as PropType<() => void>,\n        default: () => {}\n      },\n      offset: {\n        type: Number,\n        default: 20\n      },\n      zIndex: {\n        type: Number,\n        default: 0\n      },\n      showClose: {\n        type: Boolean,\n        default: false\n      },\n      useHTML: Boolean,\n      popupClass: {\n        type: String,\n        default: undefined\n      }\n    },\n    emits: ['destroy'],\n    setup(props) {\n      const ns = getNamespace('message')\n      const cls = computed(() => {\n        return [\n          ns,\n          `${ns}--${props.type}`,\n          props.center && 'is-center',\n          props.showClose && !props.center && `${ns}__show-close`,\n          props.popupClass && props.popupClass\n        ]\n      })\n      const visible = ref(false)\n\n      let timer: any = null\n      const startTimer = () => {\n        timer = setTimeout(() => {\n          visible.value = false\n        }, props.duration)\n      }\n\n      onMounted(() => {\n        visible.value = true\n        if (props.duration !== 0) {\n          startTimer()\n        }\n      })\n\n      onUnmounted(() => {\n        clearTimeout(timer)\n      })\n\n      const { zIndex } = usePopupManager('message', { runOnMounted: true })\n\n      const styles = computed(() => {\n        return {\n          top: `${props.offset}px`,\n          zIndex: zIndex.value\n        }\n      })\n\n      const handleClose = () => {\n        visible.value = false\n      }\n\n      return {\n        ns,\n        cls,\n        styles,\n        visible,\n        handleClose\n      }\n    }\n  })\n</script>\n\n<template>\n  <transition name=\"bn-message-slide-top\" @before-leave=\"onClose\" @after-leave=\"$emit('destroy')\">\n    <div v-show=\"visible\" :class=\"cls\" :style=\"styles\">\n      <slot>\n        <span v-if=\"useHTML\" v-html=\"message\"></span>\n        <span v-else>{{ message }}</span>\n        <span v-if=\"showClose\" :class=\"[`${ns}__close-icon`]\" @click=\"handleClose\"></span>\n      </slot>\n    </div>\n  </transition>\n</template>\n"],"names":[],"mappings":"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"}