f81c4f06362b7c4a412ef6911eb475d3b3c79a83294a351c82138ef19429ff0819d529f20ae19c0dc8b5cb462b0870558131d1e24f56ab3be11d4334c76d61 4.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  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 constants = require('./constants.js');
  6. var dialogContent = require('./dialog-content.js');
  7. var pluginVue_exportHelper = require('../../../_virtual/plugin-vue_export-helper.js');
  8. var tokens = require('../../focus-trap/src/tokens.js');
  9. var index$1 = require('../../../hooks/use-draggable/index.js');
  10. var icon = require('../../../utils/vue/icon.js');
  11. var refs = require('../../../utils/vue/refs.js');
  12. var index = require('../../../hooks/use-locale/index.js');
  13. const __default__ = vue.defineComponent({ name: "ElDialogContent" });
  14. const _sfc_main = /* @__PURE__ */ vue.defineComponent({
  15. ...__default__,
  16. props: dialogContent.dialogContentProps,
  17. emits: dialogContent.dialogContentEmits,
  18. setup(__props, { expose }) {
  19. const props = __props;
  20. const { t } = index.useLocale();
  21. const { Close } = icon.CloseComponents;
  22. const { dialogRef, headerRef, bodyId, ns, style } = vue.inject(constants.dialogInjectionKey);
  23. const { focusTrapRef } = vue.inject(tokens.FOCUS_TRAP_INJECTION_KEY);
  24. const composedDialogRef = refs.composeRefs(focusTrapRef, dialogRef);
  25. const draggable = vue.computed(() => !!props.draggable);
  26. const overflow = vue.computed(() => !!props.overflow);
  27. const { resetPosition, updatePosition, isDragging } = index$1.useDraggable(dialogRef, headerRef, draggable, overflow);
  28. const dialogKls = vue.computed(() => [
  29. ns.b(),
  30. ns.is("fullscreen", props.fullscreen),
  31. ns.is("draggable", draggable.value),
  32. ns.is("dragging", isDragging.value),
  33. ns.is("align-center", !!props.alignCenter),
  34. { [ns.m("center")]: props.center }
  35. ]);
  36. expose({
  37. resetPosition,
  38. updatePosition
  39. });
  40. return (_ctx, _cache) => {
  41. return vue.openBlock(), vue.createElementBlock("div", {
  42. ref: vue.unref(composedDialogRef),
  43. class: vue.normalizeClass(vue.unref(dialogKls)),
  44. style: vue.normalizeStyle(vue.unref(style)),
  45. tabindex: "-1"
  46. }, [
  47. vue.createElementVNode("header", {
  48. ref_key: "headerRef",
  49. ref: headerRef,
  50. class: vue.normalizeClass([vue.unref(ns).e("header"), _ctx.headerClass, { "show-close": _ctx.showClose }])
  51. }, [
  52. vue.renderSlot(_ctx.$slots, "header", {}, () => [
  53. vue.createElementVNode("span", {
  54. role: "heading",
  55. "aria-level": _ctx.ariaLevel,
  56. class: vue.normalizeClass(vue.unref(ns).e("title"))
  57. }, vue.toDisplayString(_ctx.title), 11, ["aria-level"])
  58. ]),
  59. _ctx.showClose ? (vue.openBlock(), vue.createElementBlock("button", {
  60. key: 0,
  61. "aria-label": vue.unref(t)("el.dialog.close"),
  62. class: vue.normalizeClass(vue.unref(ns).e("headerbtn")),
  63. type: "button",
  64. onClick: ($event) => _ctx.$emit("close")
  65. }, [
  66. vue.createVNode(vue.unref(index$2.ElIcon), {
  67. class: vue.normalizeClass(vue.unref(ns).e("close"))
  68. }, {
  69. default: vue.withCtx(() => [
  70. (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(_ctx.closeIcon || vue.unref(Close))))
  71. ]),
  72. _: 1
  73. }, 8, ["class"])
  74. ], 10, ["aria-label", "onClick"])) : vue.createCommentVNode("v-if", true)
  75. ], 2),
  76. vue.createElementVNode("div", {
  77. id: vue.unref(bodyId),
  78. class: vue.normalizeClass([vue.unref(ns).e("body"), _ctx.bodyClass])
  79. }, [
  80. vue.renderSlot(_ctx.$slots, "default")
  81. ], 10, ["id"]),
  82. _ctx.$slots.footer ? (vue.openBlock(), vue.createElementBlock("footer", {
  83. key: 0,
  84. class: vue.normalizeClass([vue.unref(ns).e("footer"), _ctx.footerClass])
  85. }, [
  86. vue.renderSlot(_ctx.$slots, "footer")
  87. ], 2)) : vue.createCommentVNode("v-if", true)
  88. ], 6);
  89. };
  90. }
  91. });
  92. var ElDialogContent = /* @__PURE__ */ pluginVue_exportHelper["default"](_sfc_main, [["__file", "dialog-content.vue"]]);
  93. exports["default"] = ElDialogContent;
  94. //# sourceMappingURL=dialog-content2.js.map