@taiga-ui/cdk
Version:
Base library for creating Angular components and applications using Taiga UI principles regarding of actual visual appearance
19 lines • 3.84 kB
JavaScript
import { ɵAnimationEngine as AnimationEngine } from '@angular/animations/browser';
import { inject } from '@angular/core';
import { tuiCreateTokenFromFactory } from '@taiga-ui/cdk/utils';
import { BehaviorSubject, map, share, startWith, switchMap, timer } from 'rxjs';
/**
* Element currently being removed by AnimationEngine
*/
export const TUI_REMOVED_ELEMENT = tuiCreateTokenFromFactory(() => {
const stub = { onRemovalComplete: () => { } };
const element$ = new BehaviorSubject(null);
const engine = inject(AnimationEngine, { optional: true }) || stub;
const { onRemovalComplete = stub.onRemovalComplete } = engine;
engine.onRemovalComplete = (element, context) => {
element$.next(element);
onRemovalComplete.call(engine, element, context);
};
return element$.pipe(switchMap((element) => timer(0).pipe(map(() => null), startWith(element))), share());
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3ZlZC1lbGVtZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3Rva2Vucy9yZW1vdmVkLWVsZW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGdCQUFnQixJQUFJLGVBQWUsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ2hGLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDckMsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDOUQsT0FBTyxFQUFDLGVBQWUsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRTlFOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcseUJBQXlCLENBQUMsR0FBRyxFQUFFO0lBQzlELE1BQU0sSUFBSSxHQUFHLEVBQUMsaUJBQWlCLEVBQUUsR0FBRyxFQUFFLEdBQUUsQ0FBQyxFQUFDLENBQUM7SUFDM0MsTUFBTSxRQUFRLEdBQUcsSUFBSSxlQUFlLENBQWlCLElBQUksQ0FBQyxDQUFDO0lBQzNELE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxlQUFlLEVBQUUsRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDLENBQUMsSUFBSSxJQUFJLENBQUM7SUFDakUsTUFBTSxFQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsRUFBQyxHQUFHLE1BQU0sQ0FBQztJQUU1RCxNQUFNLENBQUMsaUJBQWlCLEdBQUcsQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLEVBQUU7UUFDNUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN2QixpQkFBaUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNyRCxDQUFDLENBQUM7SUFFRixPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQ2hCLFNBQVMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQ2xCLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQ1QsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUNmLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FDckIsQ0FDSixFQUNELEtBQUssRUFBRSxDQUNWLENBQUM7QUFDTixDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7ybVBbmltYXRpb25FbmdpbmUgYXMgQW5pbWF0aW9uRW5naW5lfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zL2Jyb3dzZXInO1xuaW1wb3J0IHtpbmplY3R9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHt0dWlDcmVhdGVUb2tlbkZyb21GYWN0b3J5fSBmcm9tICdAdGFpZ2EtdWkvY2RrL3V0aWxzJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBtYXAsIHNoYXJlLCBzdGFydFdpdGgsIHN3aXRjaE1hcCwgdGltZXJ9IGZyb20gJ3J4anMnO1xuXG4vKipcbiAqIEVsZW1lbnQgY3VycmVudGx5IGJlaW5nIHJlbW92ZWQgYnkgQW5pbWF0aW9uRW5naW5lXG4gKi9cbmV4cG9ydCBjb25zdCBUVUlfUkVNT1ZFRF9FTEVNRU5UID0gdHVpQ3JlYXRlVG9rZW5Gcm9tRmFjdG9yeSgoKSA9PiB7XG4gICAgY29uc3Qgc3R1YiA9IHtvblJlbW92YWxDb21wbGV0ZTogKCkgPT4ge319O1xuICAgIGNvbnN0IGVsZW1lbnQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxFbGVtZW50IHwgbnVsbD4obnVsbCk7XG4gICAgY29uc3QgZW5naW5lID0gaW5qZWN0KEFuaW1hdGlvbkVuZ2luZSwge29wdGlvbmFsOiB0cnVlfSkgfHwgc3R1YjtcbiAgICBjb25zdCB7b25SZW1vdmFsQ29tcGxldGUgPSBzdHViLm9uUmVtb3ZhbENvbXBsZXRlfSA9IGVuZ2luZTtcblxuICAgIGVuZ2luZS5vblJlbW92YWxDb21wbGV0ZSA9IChlbGVtZW50LCBjb250ZXh0KSA9PiB7XG4gICAgICAgIGVsZW1lbnQkLm5leHQoZWxlbWVudCk7XG4gICAgICAgIG9uUmVtb3ZhbENvbXBsZXRlLmNhbGwoZW5naW5lLCBlbGVtZW50LCBjb250ZXh0KTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIGVsZW1lbnQkLnBpcGUoXG4gICAgICAgIHN3aXRjaE1hcCgoZWxlbWVudCkgPT5cbiAgICAgICAgICAgIHRpbWVyKDApLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKCgpID0+IG51bGwpLFxuICAgICAgICAgICAgICAgIHN0YXJ0V2l0aChlbGVtZW50KSxcbiAgICAgICAgICAgICksXG4gICAgICAgICksXG4gICAgICAgIHNoYXJlKCksXG4gICAgKTtcbn0pO1xuIl19