( lView: LView, tNode: TNode, value: string | AnimationClassBindingFn, ngZone: NgZone, )
| 278 | } |
| 279 | |
| 280 | function runLeaveAnimations( |
| 281 | lView: LView, |
| 282 | tNode: TNode, |
| 283 | value: string | AnimationClassBindingFn, |
| 284 | ngZone: NgZone, |
| 285 | ): {promise: Promise<void>; resolve: VoidFunction} { |
| 286 | const {promise, resolve} = promiseWithResolvers<void>(); |
| 287 | const nativeElement = getNativeByTNode(tNode, lView) as Element; |
| 288 | |
| 289 | ngDevMode && assertElementNodes(nativeElement, 'animate.leave'); |
| 290 | |
| 291 | const renderer = lView[RENDERER]; |
| 292 | allLeavingAnimations.add(lView[ID]); |
| 293 | (getLViewLeaveAnimations(lView).get(tNode.index)!.resolvers ??= []).push(resolve); |
| 294 | |
| 295 | const activeClasses = getClassListFromValue(value); |
| 296 | if (activeClasses && activeClasses.length > 0) { |
| 297 | animateLeaveClassRunner( |
| 298 | nativeElement as HTMLElement, |
| 299 | tNode, |
| 300 | lView, |
| 301 | activeClasses, |
| 302 | renderer, |
| 303 | ngZone, |
| 304 | ); |
| 305 | } else { |
| 306 | resolve(); |
| 307 | } |
| 308 | |
| 309 | return {promise, resolve}; |
| 310 | } |
| 311 | |
| 312 | /** |
| 313 | * This function actually adds the classes that animate element that's leaving the DOM. |
no test coverage detected
searching dependent graphs…