{"version":3,"file":"drawer.vue.mjs","sources":["../../../../../packages/components/drawer/src/drawer.vue"],"sourcesContent":["<template>\n  <teleport to=\"body\" :disabled=\"!appendToBody\">\n    <transition\n      :name=\"ns.b('fade')\"\n      @after-enter=\"afterEnter\"\n      @after-leave=\"afterLeave\"\n      @before-leave=\"beforeLeave\"\n    >\n      <el-overlay\n        v-show=\"visible\"\n        :mask=\"modal\"\n        :overlay-class=\"modalClass\"\n        :z-index=\"zIndex\"\n        @click=\"onModalClick\"\n      >\n        <div\n          ref=\"drawerRef\"\n          v-trap-focus\n          aria-modal=\"true\"\n          :aria-labelledby=\"ns.e('title')\"\n          :aria-label=\"title\"\n          :class=\"[ns.b(), direction, visible && 'open']\"\n          :style=\"\n            isHorizontal ? 'width: ' + drawerSize : 'height: ' + drawerSize\n          \"\n          role=\"dialog\"\n          @click.stop\n        >\n          <header v-if=\"withHeader\" :id=\"ns.e('title')\" :class=\"ns.e('header')\">\n            <slot name=\"title\">\n              <span role=\"heading\" :title=\"title\">\n                {{ title }}\n              </span>\n            </slot>\n            <button\n              v-if=\"showClose\"\n              :aria-label=\"'close ' + (title || 'drawer')\"\n              :class=\"ns.e('close-btn')\"\n              type=\"button\"\n              @click=\"handleClose\"\n            >\n              <el-icon :class=\"ns.e('close')\"><close /></el-icon>\n            </button>\n          </header>\n          <template v-if=\"rendered\">\n            <section :class=\"ns.e('body')\">\n              <slot></slot>\n            </section>\n          </template>\n          <div v-if=\"$slots.footer\" :class=\"ns.e('footer')\">\n            <slot name=\"footer\"></slot>\n          </div>\n        </div>\n      </el-overlay>\n    </transition>\n  </teleport>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, computed, ref } from 'vue'\nimport { Close } from 'icon-ultra'\n\nimport { ElOverlay } from '@element-ultra/components/overlay'\nimport { useDialog } from '@element-ultra/components/dialog'\nimport ElIcon from '@element-ultra/components/icon'\nimport { TrapFocus } from '@element-ultra/directives'\nimport { useNamespace } from '@element-ultra/hooks'\nimport { drawerProps, drawerEmits } from './drawer'\n\nexport default defineComponent({\n  name: 'ElDrawer',\n  components: {\n    ElOverlay,\n    ElIcon,\n    Close,\n  },\n  directives: {\n    TrapFocus,\n  },\n  props: drawerProps,\n  emits: drawerEmits,\n\n  setup(props, ctx) {\n    const drawerRef = ref<HTMLElement>()\n    const ns = useNamespace('drawer')\n\n    const isHorizontal = computed(\n      () => props.direction === 'rtl' || props.direction === 'ltr'\n    )\n    const drawerSize = computed(() =>\n      typeof props.size === 'number' ? `${props.size}px` : props.size\n    )\n\n    return {\n      ...useDialog(props, ctx, drawerRef),\n      drawerRef,\n      isHorizontal,\n      drawerSize,\n      ns,\n    }\n  },\n})\n</script>\n"],"names":["_resolveDirective","_openBlock","_createBlock","_Teleport","_Transition","_withCtx","_withDirectives","_createVNode","_createElementBlock","_normalizeClass","_normalizeStyle","_withModifiers","_createElementVNode","_toDisplayString","_createCommentVNode"],"mappings":"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"}