You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
95 lines
4.0 KiB
95 lines
4.0 KiB
import { defineComponent, inject, computed, openBlock, createElementBlock, unref, normalizeClass, normalizeStyle, createElementVNode, renderSlot, toDisplayString, createVNode, withCtx, createBlock, resolveDynamicComponent, createCommentVNode } from 'vue';
|
|
import { ElIcon } from '../../icon/index.mjs';
|
|
import '../../focus-trap/index.mjs';
|
|
import '../../../hooks/index.mjs';
|
|
import '../../../utils/index.mjs';
|
|
import { dialogInjectionKey } from './constants.mjs';
|
|
import { dialogContentProps, dialogContentEmits } from './dialog-content.mjs';
|
|
import _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';
|
|
import { useLocale } from '../../../hooks/use-locale/index.mjs';
|
|
import { CloseComponents } from '../../../utils/vue/icon.mjs';
|
|
import { FOCUS_TRAP_INJECTION_KEY } from '../../focus-trap/src/tokens.mjs';
|
|
import { composeRefs } from '../../../utils/vue/refs.mjs';
|
|
import { useDraggable } from '../../../hooks/use-draggable/index.mjs';
|
|
|
|
const _hoisted_1 = ["aria-level"];
|
|
const _hoisted_2 = ["aria-label"];
|
|
const _hoisted_3 = ["id"];
|
|
const __default__ = defineComponent({ name: "ElDialogContent" });
|
|
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
...__default__,
|
|
props: dialogContentProps,
|
|
emits: dialogContentEmits,
|
|
setup(__props) {
|
|
const props = __props;
|
|
const { t } = useLocale();
|
|
const { Close } = CloseComponents;
|
|
const { dialogRef, headerRef, bodyId, ns, style } = inject(dialogInjectionKey);
|
|
const { focusTrapRef } = inject(FOCUS_TRAP_INJECTION_KEY);
|
|
const dialogKls = computed(() => [
|
|
ns.b(),
|
|
ns.is("fullscreen", props.fullscreen),
|
|
ns.is("draggable", props.draggable),
|
|
ns.is("align-center", props.alignCenter),
|
|
{ [ns.m("center")]: props.center },
|
|
props.customClass
|
|
]);
|
|
const composedDialogRef = composeRefs(focusTrapRef, dialogRef);
|
|
const draggable = computed(() => props.draggable);
|
|
useDraggable(dialogRef, headerRef, draggable);
|
|
return (_ctx, _cache) => {
|
|
return openBlock(), createElementBlock("div", {
|
|
ref: unref(composedDialogRef),
|
|
class: normalizeClass(unref(dialogKls)),
|
|
style: normalizeStyle(unref(style)),
|
|
tabindex: "-1"
|
|
}, [
|
|
createElementVNode("header", {
|
|
ref_key: "headerRef",
|
|
ref: headerRef,
|
|
class: normalizeClass(unref(ns).e("header"))
|
|
}, [
|
|
renderSlot(_ctx.$slots, "header", {}, () => [
|
|
createElementVNode("span", {
|
|
role: "heading",
|
|
"aria-level": _ctx.ariaLevel,
|
|
class: normalizeClass(unref(ns).e("title"))
|
|
}, toDisplayString(_ctx.title), 11, _hoisted_1)
|
|
]),
|
|
_ctx.showClose ? (openBlock(), createElementBlock("button", {
|
|
key: 0,
|
|
"aria-label": unref(t)("el.dialog.close"),
|
|
class: normalizeClass(unref(ns).e("headerbtn")),
|
|
type: "button",
|
|
onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("close"))
|
|
}, [
|
|
createVNode(unref(ElIcon), {
|
|
class: normalizeClass(unref(ns).e("close"))
|
|
}, {
|
|
default: withCtx(() => [
|
|
(openBlock(), createBlock(resolveDynamicComponent(_ctx.closeIcon || unref(Close))))
|
|
]),
|
|
_: 1
|
|
}, 8, ["class"])
|
|
], 10, _hoisted_2)) : createCommentVNode("v-if", true)
|
|
], 2),
|
|
createElementVNode("div", {
|
|
id: unref(bodyId),
|
|
class: normalizeClass(unref(ns).e("body"))
|
|
}, [
|
|
renderSlot(_ctx.$slots, "default")
|
|
], 10, _hoisted_3),
|
|
_ctx.$slots.footer ? (openBlock(), createElementBlock("footer", {
|
|
key: 0,
|
|
class: normalizeClass(unref(ns).e("footer"))
|
|
}, [
|
|
renderSlot(_ctx.$slots, "footer")
|
|
], 2)) : createCommentVNode("v-if", true)
|
|
], 6);
|
|
};
|
|
}
|
|
});
|
|
var ElDialogContent = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "/home/runner/work/element-plus/element-plus/packages/components/dialog/src/dialog-content.vue"]]);
|
|
|
|
export { ElDialogContent as default };
|
|
//# sourceMappingURL=dialog-content2.mjs.map
|
|
|