@taiga-ui/cdk
Version:
Base library for creating Angular components and applications using Taiga UI principles regarding of actual visual appearance
20 lines • 4.2 kB
JavaScript
import { ɵAnimationEngine as AnimationEngine } from '@angular/animations/browser';
import { inject, InjectionToken } from '@angular/core';
import { map, share, startWith, Subject, switchMap, timer } from 'rxjs';
/**
* Element currently being removed by AnimationEngine
*/
export const TUI_REMOVED_ELEMENT = new InjectionToken(ngDevMode ? 'TUI_REMOVED_ELEMENT' : '', {
factory: () => {
const stub = { onRemovalComplete: () => { } };
const element$ = new Subject();
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(startWith(null), switchMap((element) => timer(0).pipe(map(() => null), startWith(element))), share());
},
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3ZlZC1lbGVtZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3Rva2Vucy9yZW1vdmVkLWVsZW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGdCQUFnQixJQUFJLGVBQWUsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ2hGLE9BQU8sRUFBQyxNQUFNLEVBQUUsY0FBYyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUV0RTs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLElBQUksY0FBYyxDQUNqRCxTQUFTLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQ3RDO0lBQ0ksT0FBTyxFQUFFLEdBQUcsRUFBRTtRQUNWLE1BQU0sSUFBSSxHQUFHLEVBQUMsaUJBQWlCLEVBQUUsR0FBRyxFQUFFLEdBQUUsQ0FBQyxFQUFDLENBQUM7UUFDM0MsTUFBTSxRQUFRLEdBQUcsSUFBSSxPQUFPLEVBQWtCLENBQUM7UUFDL0MsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLGVBQWUsRUFBRSxFQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQztRQUNqRSxNQUFNLEVBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixFQUFDLEdBQUcsTUFBTSxDQUFDO1FBRTVELE1BQU0sQ0FBQyxpQkFBaUIsR0FBRyxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsRUFBRTtZQUM1QyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3ZCLGlCQUFpQixDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3JELENBQUMsQ0FBQztRQUVGLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FDaEIsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUNmLFNBQVMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQ2xCLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQ1QsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUNmLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FDckIsQ0FDSixFQUNELEtBQUssRUFBRSxDQUNWLENBQUM7SUFDTixDQUFDO0NBQ0osQ0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHvJtUFuaW1hdGlvbkVuZ2luZSBhcyBBbmltYXRpb25FbmdpbmV9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMvYnJvd3Nlcic7XG5pbXBvcnQge2luamVjdCwgSW5qZWN0aW9uVG9rZW59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHttYXAsIHNoYXJlLCBzdGFydFdpdGgsIFN1YmplY3QsIHN3aXRjaE1hcCwgdGltZXJ9IGZyb20gJ3J4anMnO1xuXG4vKipcbiAqIEVsZW1lbnQgY3VycmVudGx5IGJlaW5nIHJlbW92ZWQgYnkgQW5pbWF0aW9uRW5naW5lXG4gKi9cbmV4cG9ydCBjb25zdCBUVUlfUkVNT1ZFRF9FTEVNRU5UID0gbmV3IEluamVjdGlvblRva2VuKFxuICAgIG5nRGV2TW9kZSA/ICdUVUlfUkVNT1ZFRF9FTEVNRU5UJyA6ICcnLFxuICAgIHtcbiAgICAgICAgZmFjdG9yeTogKCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc3R1YiA9IHtvblJlbW92YWxDb21wbGV0ZTogKCkgPT4ge319O1xuICAgICAgICAgICAgY29uc3QgZWxlbWVudCQgPSBuZXcgU3ViamVjdDxFbGVtZW50IHwgbnVsbD4oKTtcbiAgICAgICAgICAgIGNvbnN0IGVuZ2luZSA9IGluamVjdChBbmltYXRpb25FbmdpbmUsIHtvcHRpb25hbDogdHJ1ZX0pIHx8IHN0dWI7XG4gICAgICAgICAgICBjb25zdCB7b25SZW1vdmFsQ29tcGxldGUgPSBzdHViLm9uUmVtb3ZhbENvbXBsZXRlfSA9IGVuZ2luZTtcblxuICAgICAgICAgICAgZW5naW5lLm9uUmVtb3ZhbENvbXBsZXRlID0gKGVsZW1lbnQsIGNvbnRleHQpID0+IHtcbiAgICAgICAgICAgICAgICBlbGVtZW50JC5uZXh0KGVsZW1lbnQpO1xuICAgICAgICAgICAgICAgIG9uUmVtb3ZhbENvbXBsZXRlLmNhbGwoZW5naW5lLCBlbGVtZW50LCBjb250ZXh0KTtcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHJldHVybiBlbGVtZW50JC5waXBlKFxuICAgICAgICAgICAgICAgIHN0YXJ0V2l0aChudWxsKSxcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKGVsZW1lbnQpID0+XG4gICAgICAgICAgICAgICAgICAgIHRpbWVyKDApLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXAoKCkgPT4gbnVsbCksXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydFdpdGgoZWxlbWVudCksXG4gICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICBzaGFyZSgpLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSxcbiAgICB9LFxuKTtcbiJdfQ==