| 2109 | } |
| 2110 | } |
| 2111 | const performLeave = () => { |
| 2112 | // #13153 move kept-alive node before v-show transition leave finishes |
| 2113 | // it needs to call the leaving callback to ensure element's `display` |
| 2114 | // is `none` |
| 2115 | const wasLeaving = el!._isLeaving || !!el![leaveCbKey] |
| 2116 | if (el!._isLeaving) { |
| 2117 | el |
| 2118 | } |
| 2119 | // #14031 without a pending leave, persisted transitions should skip |
| 2120 | // directive-owned leave hooks and just relocate. |
| 2121 | if (transition!.persisted && !wasLeaving) { |
| 2122 | remove() |
| 2123 | } else { |
| 2124 | leave(el!, () => { |
| 2125 | remove() |
| 2126 | afterLeave && afterLeave() |
| 2127 | }) |
| 2128 | } |
| 2129 | } |
| 2130 | if (delayLeave) { |
| 2131 | delayLeave(el!, remove, performLeave) |
| 2132 | } else { |