3d57554b66bea5b6a84790c62c25a395edf29e5d3f05c066699930257ec8f1baf75c571987abaeb8f0d8224643396cdeda2190e9f213ff0f8125ceb686c1c6 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. 'use strict';
  2. Object.defineProperty(exports, '__esModule', { value: true });
  3. var vue = require('vue');
  4. var index$2 = require('../../icon/index.js');
  5. var alert = require('./alert2.js');
  6. var pluginVue_exportHelper = require('../../../_virtual/plugin-vue_export-helper.js');
  7. var index$1 = require('../../../hooks/use-delayed-toggle/index.js');
  8. var icon = require('../../../utils/vue/icon.js');
  9. var index = require('../../../hooks/use-namespace/index.js');
  10. var types = require('../../../utils/types.js');
  11. var core = require('@vueuse/core');
  12. const __default__ = vue.defineComponent({
  13. name: "ElAlert"
  14. });
  15. const _sfc_main = /* @__PURE__ */ vue.defineComponent({
  16. ...__default__,
  17. props: alert.alertProps,
  18. emits: alert.alertEmits,
  19. setup(__props, { emit }) {
  20. const props = __props;
  21. const { Close } = icon.TypeComponents;
  22. const slots = vue.useSlots();
  23. const ns = index.useNamespace("alert");
  24. const visible = vue.ref(types.isUndefined(props.showAfter));
  25. const iconComponent = vue.computed(() => icon.TypeComponentsMap[props.type]);
  26. const hasDesc = vue.computed(() => !!(props.description || slots.default));
  27. const open = () => {
  28. visible.value = true;
  29. emit("open");
  30. };
  31. const close = (event) => {
  32. visible.value = false;
  33. emit("close", event);
  34. };
  35. const { onOpen, onClose } = index$1.useDelayedToggle({
  36. showAfter: vue.toRef(props, "showAfter", 0),
  37. hideAfter: vue.toRef(props, "hideAfter"),
  38. autoClose: vue.toRef(props, "autoClose"),
  39. open,
  40. close
  41. });
  42. if (core.isClient) {
  43. onOpen();
  44. }
  45. return (_ctx, _cache) => {
  46. return vue.openBlock(), vue.createBlock(vue.Transition, {
  47. name: vue.unref(ns).b("fade"),
  48. persisted: ""
  49. }, {
  50. default: vue.withCtx(() => [
  51. vue.withDirectives(vue.createElementVNode("div", {
  52. class: vue.normalizeClass([vue.unref(ns).b(), vue.unref(ns).m(_ctx.type), vue.unref(ns).is("center", _ctx.center), vue.unref(ns).is(_ctx.effect)]),
  53. role: "alert"
  54. }, [
  55. _ctx.showIcon && (_ctx.$slots.icon || vue.unref(iconComponent)) ? (vue.openBlock(), vue.createBlock(vue.unref(index$2.ElIcon), {
  56. key: 0,
  57. class: vue.normalizeClass([vue.unref(ns).e("icon"), { [vue.unref(ns).is("big")]: vue.unref(hasDesc) }])
  58. }, {
  59. default: vue.withCtx(() => [
  60. vue.renderSlot(_ctx.$slots, "icon", {}, () => [
  61. (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(vue.unref(iconComponent))))
  62. ])
  63. ]),
  64. _: 3
  65. }, 8, ["class"])) : vue.createCommentVNode("v-if", true),
  66. vue.createElementVNode("div", {
  67. class: vue.normalizeClass(vue.unref(ns).e("content"))
  68. }, [
  69. _ctx.title || _ctx.$slots.title ? (vue.openBlock(), vue.createElementBlock("span", {
  70. key: 0,
  71. class: vue.normalizeClass([vue.unref(ns).e("title"), { "with-description": vue.unref(hasDesc) }])
  72. }, [
  73. vue.renderSlot(_ctx.$slots, "title", {}, () => [
  74. vue.createTextVNode(vue.toDisplayString(_ctx.title), 1)
  75. ])
  76. ], 2)) : vue.createCommentVNode("v-if", true),
  77. vue.unref(hasDesc) ? (vue.openBlock(), vue.createElementBlock("p", {
  78. key: 1,
  79. class: vue.normalizeClass(vue.unref(ns).e("description"))
  80. }, [
  81. vue.renderSlot(_ctx.$slots, "default", {}, () => [
  82. vue.createTextVNode(vue.toDisplayString(_ctx.description), 1)
  83. ])
  84. ], 2)) : vue.createCommentVNode("v-if", true),
  85. _ctx.closable ? (vue.openBlock(), vue.createElementBlock(vue.Fragment, { key: 2 }, [
  86. _ctx.closeText ? (vue.openBlock(), vue.createElementBlock("div", {
  87. key: 0,
  88. class: vue.normalizeClass([vue.unref(ns).e("close-btn"), vue.unref(ns).is("customed")]),
  89. onClick: close
  90. }, vue.toDisplayString(_ctx.closeText), 3)) : (vue.openBlock(), vue.createBlock(vue.unref(index$2.ElIcon), {
  91. key: 1,
  92. class: vue.normalizeClass(vue.unref(ns).e("close-btn")),
  93. onClick: vue.unref(onClose)
  94. }, {
  95. default: vue.withCtx(() => [
  96. vue.createVNode(vue.unref(Close))
  97. ]),
  98. _: 1
  99. }, 8, ["class", "onClick"]))
  100. ], 64)) : vue.createCommentVNode("v-if", true)
  101. ], 2)
  102. ], 2), [
  103. [vue.vShow, visible.value]
  104. ])
  105. ]),
  106. _: 3
  107. }, 8, ["name"]);
  108. };
  109. }
  110. });
  111. var Alert = /* @__PURE__ */ pluginVue_exportHelper["default"](_sfc_main, [["__file", "alert.vue"]]);
  112. exports["default"] = Alert;
  113. //# sourceMappingURL=alert.js.map