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