|
8 | 8 | @keydown.esc="onEsc" |
9 | 9 | > |
10 | 10 | <transition |
11 | | - :name="overlayTransition" |
| 11 | + ref="vfmOverlayTransition" |
| 12 | + v-bind="computedOverlayTransition" |
12 | 13 | @before-enter="beforeOverlayEnter" |
13 | 14 | @after-enter="afterOverlayEnter" |
14 | 15 | @before-leave="beforeOverlayLeave" |
|
22 | 23 | ></div> |
23 | 24 | </transition> |
24 | 25 | <transition |
25 | | - :name="transition" |
| 26 | + ref="vfmTransition" |
| 27 | + v-bind="computedTransition" |
26 | 28 | @before-enter="beforeModalEnter" |
27 | 29 | @after-enter="afterModalEnter" |
28 | 30 | @before-leave="beforeModalLeave" |
@@ -89,8 +91,8 @@ export default { |
89 | 91 | escToClose: { type: Boolean, default: false }, |
90 | 92 | preventClick: { type: Boolean, default: false }, |
91 | 93 | attach: { type: null, default: false, validator: validateAttachTarget }, |
92 | | - transition: { type: String, default: 'vfm' }, |
93 | | - overlayTransition: { type: String, default: 'vfm' }, |
| 94 | + transition: { type: [String, Object], default: 'vfm' }, |
| 95 | + overlayTransition: { type: [String, Object], default: 'vfm' }, |
94 | 96 | zIndexAuto: { type: Boolean, default: true }, |
95 | 97 | zIndexBase: { type: [String, Number], default: 1000 }, |
96 | 98 | zIndex: { type: [Boolean, String, Number], default: false }, |
@@ -134,6 +136,14 @@ export default { |
134 | 136 | return { |
135 | 137 | ...(this.calculateZIndex !== false && { zIndex: this.calculateZIndex }) |
136 | 138 | } |
| 139 | + }, |
| 140 | + computedTransition() { |
| 141 | + if (typeof this.transition === 'string') return { name: this.transition } |
| 142 | + return { ...this.transition } |
| 143 | + }, |
| 144 | + computedOverlayTransition() { |
| 145 | + if (typeof this.overlayTransition === 'string') return { name: this.overlayTransition } |
| 146 | + return { ...this.overlayTransition } |
137 | 147 | } |
138 | 148 | }, |
139 | 149 | watch: { |
|
0 commit comments