|
@@ -104,6 +104,10 @@ const shouldDraggable = computed(
|
|
|
() => draggable.value && !shouldFullscreen.value && header.value,
|
|
() => draggable.value && !shouldFullscreen.value && header.value,
|
|
|
);
|
|
);
|
|
|
|
|
|
|
|
|
|
+const shouldCentered = computed(
|
|
|
|
|
+ () => centered.value && !shouldFullscreen.value,
|
|
|
|
|
+);
|
|
|
|
|
+
|
|
|
const getAppendTo = computed(() => {
|
|
const getAppendTo = computed(() => {
|
|
|
return appendToMain.value
|
|
return appendToMain.value
|
|
|
? `#${ELEMENT_ID_MAIN_CONTENT}>div:not(.absolute)>div`
|
|
? `#${ELEMENT_ID_MAIN_CONTENT}>div:not(.absolute)>div`
|
|
@@ -115,6 +119,7 @@ const { dragging, transform } = useModalDraggable(
|
|
|
headerRef,
|
|
headerRef,
|
|
|
shouldDraggable,
|
|
shouldDraggable,
|
|
|
getAppendTo,
|
|
getAppendTo,
|
|
|
|
|
+ shouldCentered,
|
|
|
);
|
|
);
|
|
|
|
|
|
|
|
const firstOpened = ref(false);
|
|
const firstOpened = ref(false);
|
|
@@ -132,7 +137,9 @@ watch(
|
|
|
dialogRef.value = innerContentRef.$el;
|
|
dialogRef.value = innerContentRef.$el;
|
|
|
// reopen modal reassign value
|
|
// reopen modal reassign value
|
|
|
const { offsetX, offsetY } = transform;
|
|
const { offsetX, offsetY } = transform;
|
|
|
- dialogRef.value.style.transform = `translate(${offsetX}px, ${offsetY}px)`;
|
|
|
|
|
|
|
+ dialogRef.value.style.transform = shouldCentered.value
|
|
|
|
|
+ ? `translate(${offsetX}px, calc(-50% + ${offsetY}px))`
|
|
|
|
|
+ : `translate(${offsetX}px, ${offsetY}px)`;
|
|
|
}
|
|
}
|
|
|
},
|
|
},
|
|
|
{ immediate: true },
|
|
{ immediate: true },
|
|
@@ -239,7 +246,7 @@ function handleClosed() {
|
|
|
'shadow-3xl': !bordered,
|
|
'shadow-3xl': !bordered,
|
|
|
'left-0 top-0 size-full max-h-full !translate-x-0 !translate-y-0':
|
|
'left-0 top-0 size-full max-h-full !translate-x-0 !translate-y-0':
|
|
|
shouldFullscreen,
|
|
shouldFullscreen,
|
|
|
- 'top-1/2 !-translate-y-1/2': centered && !shouldFullscreen,
|
|
|
|
|
|
|
+ 'top-1/2': centered && !shouldFullscreen,
|
|
|
'duration-300': !dragging,
|
|
'duration-300': !dragging,
|
|
|
hidden: isClosed,
|
|
hidden: isClosed,
|
|
|
},
|
|
},
|