{"version":3,"file":"dialog-content.vue2.mjs","sources":["../../../../../packages/components/dialog/src/dialog-content.vue"],"sourcesContent":["<template>\n  <div\n    :class=\"[\n      ns.b(),\n      ns.is('fullscreen', fullscreen),\n      ns.is('draggable', draggable),\n      { [ns.m('center')]: center },\n      ns.is('mousedown', mousedown)\n    ]\"\n    aria-modal=\"true\"\n    role=\"dialog\"\n    :aria-label=\"title || 'dialog'\"\n    :style=\"style\"\n    ref=\"contentRef\"\n  >\n    <div\n      ref=\"headerRef\"\n      :class=\"ns.e('header')\"\n      @mousedown.self=\"handleMouseDown\"\n    >\n      <ElNodeRender v-if=\"slots.title\" :nodes=\"slots.title()\" />\n      <span v-else :class=\"ns.e('title')\">\n        {{ title }}\n      </span>\n      <!-- @ts-ignore -->\n      <el-icon @click=\"$emit('close')\" v-if=\"showClose\" :class=\"ns.e('close')\">\n        <component :is=\"closeIcon || Close\" />\n      </el-icon>\n    </div>\n    <div @click.stop :class=\"ns.e('body')\" :style=\"bodyStyle\">\n      <ElNodeRender :nodes=\"slots.default?.()\" />\n    </div>\n    <div v-if=\"slots.footer\" :class=\"ns.e('footer')\">\n      <section :class=\"ns.e('footer-left')\">\n        <ElNodeRender :nodes=\"slots['footer-left']?.()\" />\n      </section>\n      <section :class=\"ns.e('footer-right')\">\n        <ElNodeRender :nodes=\"slots.footer?.()\" />\n      </section>\n    </div>\n  </div>\n</template>\n\n<script lang=\"ts\" setup>\nimport { computed, inject, shallowRef } from 'vue'\nimport { ElIcon } from '@element-ultra/components/icon'\nimport { ElNodeRender } from '@element-ultra/components/node-render'\nimport { CloseComponents } from '@element-ultra/utils'\nimport { dialogContentProps } from './dialog-content'\nimport { dialogInjectionKey } from './token'\n\nconst { Close } = CloseComponents\n\ndefineProps(dialogContentProps)\n\nconst { headerRef, ns, style, slots, rootProps } = inject(dialogInjectionKey)!\n\nconst bodyStyle = computed(() => {\n  const { bodyHeight } = rootProps\n  if (bodyHeight) {\n    return {\n      height:\n        bodyHeight === 'max'\n          ? `calc(80vh - ${slots.footer ? 88 : 44}px)`\n          : bodyHeight + 'px'\n    }\n  }\n  return {\n    maxHeight: `calc(80vh - ${slots.footer ? 88 : 44}px)`\n  }\n})\n\nconst contentRef = shallowRef<HTMLElement>()\n\nlet originX = 0,\n  originY = 0\n\nlet lastX = 0\nlet lastY = 0\n\nlet translateX = 0,\n  translateY = 0\n\nlet mousedown = shallowRef(false)\n\nlet mouseDownTimer: number | null = null\n\nconst handleMouseDown = (e: MouseEvent) => {\n  mouseDownTimer = setTimeout(() => {\n    mousedown.value = true\n    mouseDownTimer = null\n  }, 100)\n  originX = e.pageX\n  originY = e.pageY\n  document.addEventListener('mousemove', handleMousemove)\n  document.addEventListener('mouseup', handleMouseUp)\n}\n\nconst handleMousemove = (e: MouseEvent) => {\n  translateX = e.pageX - originX + lastX\n  translateY = e.pageY - originY + lastY\n  contentRef.value!.style.transform = `translate(${translateX}px, ${translateY}px)`\n}\n\nconst handleMouseUp = (e: MouseEvent) => {\n  mouseDownTimer !== null && clearTimeout(mouseDownTimer)\n  mousedown.value = false\n  document.removeEventListener('mousemove', handleMousemove)\n  document.removeEventListener('mouseup', handleMouseUp)\n  lastX = e.pageX - originX + lastX\n  lastY = e.pageY - originY + lastY\n}\n</script>\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAmDA,IAAM,MAAA,EAAE,OAAU,GAAA,eAAA,CAAA;AAIlB,IAAM,MAAA,EAAE,WAAW,EAAI,EAAA,KAAA,EAAO,OAAO,SAAU,EAAA,GAAI,OAAO,kBAAkB,CAAA,CAAA;AAE5E,IAAM,MAAA,SAAA,GAAY,SAAS,MAAM;AAC/B,MAAM,MAAA,EAAE,YAAe,GAAA,SAAA,CAAA;AACvB,MAAA,IAAI,UAAY,EAAA;AACd,QAAO,OAAA;AAAA,UACL,MAAA,EACE,eAAe,KACX,GAAA,CAAA,YAAA,EAAe,MAAM,MAAS,GAAA,EAAA,GAAK,UACnC,UAAa,GAAA,IAAA;AAAA,SACrB,CAAA;AAAA,OACF;AACA,MAAO,OAAA;AAAA,QACL,SAAW,EAAA,CAAA,YAAA,EAAe,KAAM,CAAA,MAAA,GAAS,EAAK,GAAA,EAAA,CAAA,GAAA,CAAA;AAAA,OAChD,CAAA;AAAA,KACD,CAAA,CAAA;AAED,IAAA,MAAM,aAAa,UAAwB,EAAA,CAAA;AAE3C,IAAI,IAAA,OAAA,GAAU,GACZ,OAAU,GAAA,CAAA,CAAA;AAEZ,IAAA,IAAI,KAAQ,GAAA,CAAA,CAAA;AACZ,IAAA,IAAI,KAAQ,GAAA,CAAA,CAAA;AAEZ,IAAI,IAAA,UAAA,GAAa,GACf,UAAa,GAAA,CAAA,CAAA;AAEf,IAAI,IAAA,SAAA,GAAY,WAAW,KAAK,CAAA,CAAA;AAEhC,IAAA,IAAI,cAAgC,GAAA,IAAA,CAAA;AAEpC,IAAM,MAAA,eAAA,GAAkB,CAAC,CAAkB,KAAA;AACzC,MAAA,cAAA,GAAiB,WAAW,MAAM;AAChC,QAAA,SAAA,CAAU,KAAQ,GAAA,IAAA,CAAA;AAClB,QAAiB,cAAA,GAAA,IAAA,CAAA;AAAA,SAChB,GAAG,CAAA,CAAA;AACN,MAAA,OAAA,GAAU,CAAE,CAAA,KAAA,CAAA;AACZ,MAAA,OAAA,GAAU,CAAE,CAAA,KAAA,CAAA;AACZ,MAAS,QAAA,CAAA,gBAAA,CAAiB,aAAa,eAAe,CAAA,CAAA;AACtD,MAAS,QAAA,CAAA,gBAAA,CAAiB,WAAW,aAAa,CAAA,CAAA;AAAA,KACpD,CAAA;AAEA,IAAM,MAAA,eAAA,GAAkB,CAAC,CAAkB,KAAA;AACzC,MAAa,UAAA,GAAA,CAAA,CAAE,QAAQ,OAAU,GAAA,KAAA,CAAA;AACjC,MAAa,UAAA,GAAA,CAAA,CAAE,QAAQ,OAAU,GAAA,KAAA,CAAA;AACjC,MAAA,UAAA,CAAW,KAAO,CAAA,KAAA,CAAM,SAAY,GAAA,CAAA,UAAA,EAAa,UAAiB,CAAA,IAAA,EAAA,UAAA,CAAA,GAAA,CAAA,CAAA;AAAA,KACpE,CAAA;AAEA,IAAM,MAAA,aAAA,GAAgB,CAAC,CAAkB,KAAA;AACvC,MAAmB,cAAA,KAAA,IAAA,IAAQ,aAAa,cAAc,CAAA,CAAA;AACtD,MAAA,SAAA,CAAU,KAAQ,GAAA,KAAA,CAAA;AAClB,MAAS,QAAA,CAAA,mBAAA,CAAoB,aAAa,eAAe,CAAA,CAAA;AACzD,MAAS,QAAA,CAAA,mBAAA,CAAoB,WAAW,aAAa,CAAA,CAAA;AACrD,MAAQ,KAAA,GAAA,CAAA,CAAE,QAAQ,OAAU,GAAA,KAAA,CAAA;AAC5B,MAAQ,KAAA,GAAA,CAAA,CAAE,QAAQ,OAAU,GAAA,KAAA,CAAA;AAAA,KAC9B,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}