{"version":3,"file":"dialog2.mjs","sources":["../../../../../../packages/components/dialog/src/dialog.vue"],"sourcesContent":["<template>\n  <teleport to=\"body\" :disabled=\"!appendToBody\">\n    <transition\n      name=\"dialog-fade\"\n      @after-enter=\"afterEnter\"\n      @after-leave=\"afterLeave\"\n      @before-leave=\"beforeLeave\"\n    >\n      <el-overlay\n        v-show=\"visible\"\n        custom-mask-event\n        :mask=\"modal\"\n        :overlay-class=\"modalClass\"\n        :z-index=\"zIndex\"\n      >\n        <div\n          :class=\"`${ns.namespace.value}-overlay-dialog`\"\n          @click=\"overlayEvent.onClick\"\n          @mousedown=\"overlayEvent.onMousedown\"\n          @mouseup=\"overlayEvent.onMouseup\"\n        >\n          <div\n            ref=\"dialogRef\"\n            v-trap-focus\n            :class=\"[\n              ns.b(),\n              ns.is('fullscreen', fullscreen),\n              ns.is('draggable', draggable),\n              { [ns.m('center')]: center },\n              customClass,\n            ]\"\n            aria-modal=\"true\"\n            role=\"dialog\"\n            :aria-label=\"title || 'dialog'\"\n            :style=\"style\"\n            @click.stop=\"\"\n          >\n            <div ref=\"headerRef\" :class=\"ns.e('header')\">\n              <slot name=\"title\">\n                <span :class=\"ns.e('title')\">\n                  {{ title }}\n                </span>\n              </slot>\n              <button\n                v-if=\"showClose\"\n                aria-label=\"close\"\n                :class=\"ns.e('headerbtn')\"\n                type=\"button\"\n                @click=\"handleClose\"\n              >\n                <el-icon :class=\"ns.e('close')\">\n                  <component :is=\"closeIcon || 'close'\" />\n                </el-icon>\n              </button>\n            </div>\n            <template v-if=\"rendered\">\n              <div :class=\"ns.e('body')\">\n                <slot></slot>\n              </div>\n            </template>\n            <div v-if=\"$slots.footer\" :class=\"ns.e('footer')\">\n              <slot name=\"footer\"></slot>\n            </div>\n          </div>\n        </div>\n      </el-overlay>\n    </transition>\n  </teleport>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, ref } from 'vue'\nimport { TrapFocus } from '@element-plus/directives'\nimport { ElOverlay } from '@element-plus/components/overlay'\nimport { ElIcon } from '@element-plus/components/icon'\nimport { CloseComponents } from '@element-plus/utils'\nimport { useNamespace, useDraggable, useSameTarget } from '@element-plus/hooks'\nimport { dialogProps, dialogEmits } from './dialog'\nimport { useDialog } from './use-dialog'\n\nexport default defineComponent({\n  name: 'ElDialog',\n  components: {\n    ElOverlay,\n    ElIcon,\n    ...CloseComponents,\n  },\n  directives: {\n    TrapFocus,\n  },\n\n  props: dialogProps,\n  emits: dialogEmits,\n\n  setup(props, ctx) {\n    const ns = useNamespace('dialog')\n    const dialogRef = ref<HTMLElement>()\n    const headerRef = ref<HTMLElement>()\n    const dialog = useDialog(props, ctx, dialogRef)\n    const overlayEvent = useSameTarget(dialog.onModalClick)\n\n    const draggable = computed(() => props.draggable && !props.fullscreen)\n    useDraggable(dialogRef, headerRef, draggable)\n\n    return {\n      ns,\n      dialogRef,\n      headerRef,\n      overlayEvent,\n      ...dialog,\n    }\n  },\n})\n</script>\n"],"names":["_openBlock","_createBlock","_Transition","_createVNode","_withCtx","_normalizeClass","_createElementBlock","_normalizeStyle","_createCommentVNode"],"mappings":";;;;;;;;;;;;;;;AAgFA,MAAK,YAAa,gBAAa;AAAA,EAC7B,MAAM;AAAA,EACN,YAAY;AAAA,IACV;AAAA,IACA;AAAA,OACG;AAAA;AAAA,EAEL,YAAY;AAAA,IACV;AAAA;AAAA,EAGF,OAAO;AAAA,EACP,OAAO;AAAA,EAEP,MAAM,OAAO,KAAK;AAChB,UAAM,KAAK,aAAa;AACxB,UAAM,YAAY;AAClB,UAAM,YAAY;AAClB,UAAM,SAAS,UAAU,OAAO,KAAK;AACrC,UAAM,eAAe,cAAc,OAAO;AAE1C,UAAM,YAAY,SAAS,MAAM,MAAM,aAAa,CAAC,MAAM;AAC3D,iBAAa,WAAW,WAAW;AAEnC,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,SACG;AAAA;AAAA;AAAA;;;;;;SA5GMA,aAAMC;AAAA,IAAE;AAAA;KACnB;AAAA,gBACOC,YAAa;AAAA,MACjB;AAAA,MACA,cAAa;AAAA,MACb,cAAY,KAAE;AAAA;;uBAEf;AAAA,uBAEEC,YAAiB;AAAA,UAChB,qBAAW;AAAA,UACX;AAAA,UACA,iBAAS,KAAM;AAAA;;mBAEhBC,cAiDM;AAAA,+BAhDE;AAAA,cACL,OAAKC;AAAA,cACL,gBAAS,qCAAE,wBAAa,KAAW,aAAxB,QAAa;AAAA,cACxB,aAAO,uCAAE,kBAAa,eAAb,kBAAa,YAAS;AAAA;;2CAGfC;AAAA,gBAEd,KAAK;AAAA,gBAAkB,OAAID;AAAA,kBAAkB,QAAG;AAAA,kBAA4C,QAAG,GAAE,cAAc;AAAA,uBAA6B,MAAG,aAAC,KAAa;AAAA,kBAAwB,yBAAW;AAAA;;gBAQjM,cAAa;AAAA,gBACZ;AAAA,gBACA,cAAK,cAAE;AAAA,gBACP,OAAKE;AAAA;;iBAEN;AAAA,mCAAoB;AAAA,kBAAE,KAAK;AAAA;mBACzB;AAAA,6BACE,aAEO;AAAA,uCAFK,QAAE;AAAA,4CACT,KAAK;AAAA;;;oBAKV;AAAA,oBACC,cAAK;AAAA,oBACN,OAAKF,eAAQ;AAAA,oBACZ;AAAA;qBAED;AAAA,gCAAe,oBAAK;AAAA;;uCAClB;AAAA;;;;;mBAIU;AAAA;kBACR,KAAK;AAAA;mBACT;AAAA;yBAGOG,mBAAa;AAAA;kBAAG,KAAK;AAAA;mBAC9B;AAAA;;;;;;;;cApDE,SAAO;AAAA;;;;;;;;;;;"}