{"version":3,"file":"alert2.mjs","sources":["../../../../../../packages/components/alert/src/alert.vue"],"sourcesContent":["<template>\n  <transition :name=\"ns.b('fade')\">\n    <div\n      v-show=\"visible\"\n      :class=\"[ns.b(), ns.m(type), ns.is('center', center), ns.is(effect)]\"\n      role=\"alert\"\n    >\n      <el-icon\n        v-if=\"showIcon && iconComponent\"\n        :class=\"[ns.e('icon'), isBigIcon]\"\n      >\n        <component :is=\"iconComponent\" />\n      </el-icon>\n      <div :class=\"ns.e('content')\">\n        <span\n          v-if=\"title || $slots.title\"\n          :class=\"[ns.e('title'), isBoldTitle]\"\n        >\n          <slot name=\"title\">{{ title }}</slot>\n        </span>\n        <p v-if=\"$slots.default || description\" :class=\"ns.e('description')\">\n          <slot>\n            {{ description }}\n          </slot>\n        </p>\n        <template v-if=\"closable\">\n          <div\n            v-if=\"closeText\"\n            :class=\"[ns.e('close-btn'), ns.is('customed')]\"\n            @click=\"close\"\n          >\n            {{ closeText }}\n          </div>\n          <el-icon v-else :class=\"ns.e('close-btn')\" @click=\"close\">\n            <close />\n          </el-icon>\n        </template>\n      </div>\n    </div>\n  </transition>\n</template>\n<script lang=\"ts\">\nimport { defineComponent, computed, ref } from 'vue'\nimport { ElIcon } from '@element-plus/components/icon'\nimport { TypeComponents, TypeComponentsMap } from '@element-plus/utils'\nimport { useNamespace } from '@element-plus/hooks'\nimport { alertProps, alertEmits } from './alert'\n\nexport default defineComponent({\n  name: 'ElAlert',\n\n  components: {\n    ElIcon,\n    ...TypeComponents,\n  },\n\n  props: alertProps,\n  emits: alertEmits,\n\n  setup(props, { emit, slots }) {\n    const ns = useNamespace('alert')\n\n    // state\n    const visible = ref(true)\n\n    // computed\n    const iconComponent = computed(\n      () => TypeComponentsMap[props.type] || TypeComponentsMap['info']\n    )\n    const isBigIcon = computed(() =>\n      props.description || slots.default ? ns.is('big') : ''\n    )\n    const isBoldTitle = computed(() =>\n      props.description || slots.default ? ns.is('bold') : ''\n    )\n\n    // methods\n    const close = (evt: MouseEvent) => {\n      visible.value = false\n      emit('close', evt)\n    }\n\n    return {\n      ns,\n      visible,\n      iconComponent,\n      isBigIcon,\n      isBoldTitle,\n      close,\n    }\n  },\n})\n</script>\n"],"names":["_openBlock","_createBlock","_createElementVNode","_normalizeClass","_createCommentVNode","_createElementBlock","_Fragment","_withCtx"],"mappings":";;;;;;;;;AAgDA,MAAK,YAAa,gBAAa;AAAA,EAC7B,MAAM;AAAA,EAEN,YAAY;AAAA,IACV;AAAA,OACG;AAAA;AAAA,EAGL,OAAO;AAAA,EACP,OAAO;AAAA,EAEP,MAAM,OAAO,EAAE,MAAM,SAAS;AAC5B,UAAM,KAAK,aAAa;AAGxB,UAAM,UAAU,IAAI;AAGpB,UAAM,gBAAgB,SACpB,MAAM,kBAAkB,MAAM,SAAS,kBAAkB;AAE3D,UAAM,YAAY,SAAS,MACzB,MAAM,eAAe,MAAM,UAAU,GAAG,GAAG,SAAS;AAEtD,UAAM,cAAc,SAAS,MAC3B,MAAM,eAAe,MAAM,UAAU,GAAG,GAAG,UAAU;AAIvD,UAAM,QAAQ,CAAC,QAAoB;AACjC,cAAQ,QAAQ;AAChB,WAAK,SAAS;AAAA;AAGhB,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA;AAAA;;;;SAvFeA,aAAIC;AAAA;;qBACrB;AAAA,qBAEQC,mBAAO,OAAI;AAAA,QACjB,OAAKC,eAAO;AAAA;SAGJ;AAAA,8BADR;UAEG,KAAK;AAAA;;2BAEN;AAAA;;;4BAEFC,mBAwBM;AAAA,2BAxBK,OAAE;AAAA;WAEH;AAAA,6BADR;YAEG,KAAK;AAAA;aAEN;AAAA,iDAAsB;AAAA;;mBAEfA,mBAAkB;AAAA,iCAA3B;YAAyC,KAAK;AAAA;aAC5C;AAAA,+CACK;AAAA;;mBAGSA,mBAAQ;AAAA,wCAEdC,mBAASC;AAAA;cACd,KAAK;AAAA,cACL,OAAKH,6CAAE;AAAA,iDAEI;AAAA,+BAEd,iBAEU;cAFO,KAAK;AAAA,cAAsB,OAAKA,eAAO;AAAA;;uBACtDI,QAAS;AAAA;;;;;;aA/BP;AAAA;;;;;;;;;;"}