UNPKG

@foblex/flow-animator

Version:
25 lines 4.23 kB
import { animate, style } from '@angular/animations'; import { Observable } from 'rxjs'; import { CreateNodeOverlayHandler } from '../create-node-overlay/create-node-overlay.handler'; import { CreateNodeOverlayRequest } from '../create-node-overlay/create-node-overlay-request'; export class AnimateNodeOverlayHandler { constructor(animationBuilder) { this.animationBuilder = animationBuilder; } handle(request) { const overlayElement = new CreateNodeOverlayHandler().handle(new CreateNodeOverlayRequest(request.element)); const animation = this.animationBuilder.build([ style({ height: '0px' }), animate(request.duration + 'ms', style({ height: `${request.element.offsetHeight}px` })) ]); const player = animation.create(overlayElement); return new Observable((observer) => { player.onDone(() => { observer.next(overlayElement); observer.complete(); }); player.play(); }); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5pbWF0ZS1ub2RlLW92ZXJsYXkuaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy1hbmltYXRvci9zcmMvbGliL2FuaW1hdGUtbm9kZS1vdmVybGF5L2FuaW1hdGUtbm9kZS1vdmVybGF5LmhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLE9BQU8sRUFBcUMsS0FBSyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDeEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUM5RixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUU5RixNQUFNLE9BQU8seUJBQXlCO0lBRXBDLFlBQ1ksZ0JBQWtDO1FBQWxDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7SUFFOUMsQ0FBQztJQUVNLE1BQU0sQ0FBQyxPQUFrQztRQUM5QyxNQUFNLGNBQWMsR0FBRyxJQUFJLHdCQUF3QixFQUFFLENBQUMsTUFBTSxDQUN4RCxJQUFJLHdCQUF3QixDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FDaEQsQ0FBQztRQUVGLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7WUFDNUMsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDO1lBQ3hCLE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBUSxHQUFHLElBQUksRUFBRSxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBSSxPQUFPLENBQUMsT0FBTyxDQUFDLFlBQWEsSUFBSSxFQUFFLENBQUMsQ0FBQztTQUMzRixDQUFDLENBQUM7UUFFSCxNQUFNLE1BQU0sR0FBb0IsU0FBUyxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUVqRSxPQUFPLElBQUksVUFBVSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDakMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUU7Z0JBQ2pCLFFBQVEsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7Z0JBQzlCLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUN0QixDQUFDLENBQUMsQ0FBQztZQUNILE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNoQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFuaW1hdGVOb2RlT3ZlcmxheVJlcXVlc3QgfSBmcm9tICcuL2FuaW1hdGUtbm9kZS1vdmVybGF5LXJlcXVlc3QnO1xuaW1wb3J0IHsgYW5pbWF0ZSwgQW5pbWF0aW9uQnVpbGRlciwgQW5pbWF0aW9uUGxheWVyLCBzdHlsZSB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ3JlYXRlTm9kZU92ZXJsYXlIYW5kbGVyIH0gZnJvbSAnLi4vY3JlYXRlLW5vZGUtb3ZlcmxheS9jcmVhdGUtbm9kZS1vdmVybGF5LmhhbmRsZXInO1xuaW1wb3J0IHsgQ3JlYXRlTm9kZU92ZXJsYXlSZXF1ZXN0IH0gZnJvbSAnLi4vY3JlYXRlLW5vZGUtb3ZlcmxheS9jcmVhdGUtbm9kZS1vdmVybGF5LXJlcXVlc3QnO1xuXG5leHBvcnQgY2xhc3MgQW5pbWF0ZU5vZGVPdmVybGF5SGFuZGxlciB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgICBwcml2YXRlIGFuaW1hdGlvbkJ1aWxkZXI6IEFuaW1hdGlvbkJ1aWxkZXIsXG4gICkge1xuICB9XG5cbiAgcHVibGljIGhhbmRsZShyZXF1ZXN0OiBBbmltYXRlTm9kZU92ZXJsYXlSZXF1ZXN0KTogT2JzZXJ2YWJsZTxIVE1MRWxlbWVudD4ge1xuICAgIGNvbnN0IG92ZXJsYXlFbGVtZW50ID0gbmV3IENyZWF0ZU5vZGVPdmVybGF5SGFuZGxlcigpLmhhbmRsZShcbiAgICAgICAgbmV3IENyZWF0ZU5vZGVPdmVybGF5UmVxdWVzdChyZXF1ZXN0LmVsZW1lbnQpXG4gICAgKTtcblxuICAgIGNvbnN0IGFuaW1hdGlvbiA9IHRoaXMuYW5pbWF0aW9uQnVpbGRlci5idWlsZChbXG4gICAgICBzdHlsZSh7IGhlaWdodDogJzBweCcgfSksXG4gICAgICBhbmltYXRlKHJlcXVlc3QuZHVyYXRpb24gKyAnbXMnLCBzdHlsZSh7IGhlaWdodDogYCR7IHJlcXVlc3QuZWxlbWVudC5vZmZzZXRIZWlnaHQgfXB4YCB9KSlcbiAgICBdKTtcblxuICAgIGNvbnN0IHBsYXllcjogQW5pbWF0aW9uUGxheWVyID0gYW5pbWF0aW9uLmNyZWF0ZShvdmVybGF5RWxlbWVudCk7XG5cbiAgICByZXR1cm4gbmV3IE9ic2VydmFibGUoKG9ic2VydmVyKSA9PiB7XG4gICAgICBwbGF5ZXIub25Eb25lKCgpID0+IHtcbiAgICAgICAgb2JzZXJ2ZXIubmV4dChvdmVybGF5RWxlbWVudCk7XG4gICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICB9KTtcbiAgICAgIHBsYXllci5wbGF5KCk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==