UNPKG

@foblex/flow-animator

Version:
40 lines 6.36 kB
import { AnimateConnectionOverlayHandler } from '../animate-connection-overlay/animate-connection-overlay.handler'; import { AnimateConnectionOverlayRequest } from '../animate-connection-overlay/animate-connection-overlay-request'; import { AnimateNodeOverlayHandler } from '../animate-node-overlay/animate-node-overlay.handler'; import { AnimateNodeOverlayRequest } from '../animate-node-overlay/animate-node-overlay-request'; /** * Handler for processing animation requests for individual elements. */ export class AnimateElementHandler { /** * Creates an instance of AnimateElementHandler. * @param {AnimationBuilder} animationBuilder - The AnimationBuilder service for creating animations. */ constructor(animationBuilder) { this.animationBuilder = animationBuilder; } /** * Handles the provided animation request and returns an Observable for the animation process. * @param {AnimateElementRequest} request - The animation request to be handled. * @return {Observable<HTMLElement | SVGPathElement>} An Observable emitting the animated element. */ handle(request) { let result; if (request.element instanceof SVGPathElement) { result = this.animateConnection(request); } else { result = this.animateNode(request); } return result; } animateConnection(request) { const result = new AnimateConnectionOverlayHandler(this.animationBuilder).handle(new AnimateConnectionOverlayRequest(request.element, request.duration)); return result; } animateNode(request) { const result = new AnimateNodeOverlayHandler(this.animationBuilder).handle(new AnimateNodeOverlayRequest(request.element, request.duration)); return result; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5pbWF0ZS1lbGVtZW50LmhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3ctYW5pbWF0b3Ivc3JjL2xpYi9hbmltYXRlLWVsZW1lbnQvYW5pbWF0ZS1lbGVtZW50LmhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sa0VBQWtFLENBQUM7QUFDbkgsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sa0VBQWtFLENBQUM7QUFDbkgsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDakcsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFFakc7O0dBRUc7QUFDSCxNQUFNLE9BQU8scUJBQXFCO0lBRWhDOzs7T0FHRztJQUNILFlBQ1ksZ0JBQWtDO1FBQWxDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7SUFFOUMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsT0FBOEI7UUFDMUMsSUFBSSxNQUFnRCxDQUFDO1FBRXJELElBQUksT0FBTyxDQUFDLE9BQU8sWUFBWSxjQUFjLEVBQUU7WUFDN0MsTUFBTSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUMxQzthQUFNO1lBQ0wsTUFBTSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDcEM7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRU8saUJBQWlCLENBQUMsT0FBOEI7UUFDdEQsTUFBTSxNQUFNLEdBQUcsSUFBSSwrQkFBK0IsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxNQUFNLENBQzVFLElBQUksK0JBQStCLENBQUMsT0FBTyxDQUFDLE9BQXlCLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUMzRixDQUFDO1FBRUYsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVPLFdBQVcsQ0FBQyxPQUE4QjtRQUNoRCxNQUFNLE1BQU0sR0FBRyxJQUFJLHlCQUF5QixDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLE1BQU0sQ0FDdEUsSUFBSSx5QkFBeUIsQ0FBQyxPQUFPLENBQUMsT0FBc0IsRUFBRSxPQUFPLENBQUMsUUFBUSxDQUFDLENBQ2xGLENBQUM7UUFFRixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBbmltYXRlRWxlbWVudFJlcXVlc3QgfSBmcm9tICcuL2FuaW1hdGUtZWxlbWVudC1yZXF1ZXN0JztcbmltcG9ydCB7IEFuaW1hdGlvbkJ1aWxkZXIgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFuaW1hdGVDb25uZWN0aW9uT3ZlcmxheUhhbmRsZXIgfSBmcm9tICcuLi9hbmltYXRlLWNvbm5lY3Rpb24tb3ZlcmxheS9hbmltYXRlLWNvbm5lY3Rpb24tb3ZlcmxheS5oYW5kbGVyJztcbmltcG9ydCB7IEFuaW1hdGVDb25uZWN0aW9uT3ZlcmxheVJlcXVlc3QgfSBmcm9tICcuLi9hbmltYXRlLWNvbm5lY3Rpb24tb3ZlcmxheS9hbmltYXRlLWNvbm5lY3Rpb24tb3ZlcmxheS1yZXF1ZXN0JztcbmltcG9ydCB7IEFuaW1hdGVOb2RlT3ZlcmxheUhhbmRsZXIgfSBmcm9tICcuLi9hbmltYXRlLW5vZGUtb3ZlcmxheS9hbmltYXRlLW5vZGUtb3ZlcmxheS5oYW5kbGVyJztcbmltcG9ydCB7IEFuaW1hdGVOb2RlT3ZlcmxheVJlcXVlc3QgfSBmcm9tICcuLi9hbmltYXRlLW5vZGUtb3ZlcmxheS9hbmltYXRlLW5vZGUtb3ZlcmxheS1yZXF1ZXN0JztcblxuLyoqXG4gKiBIYW5kbGVyIGZvciBwcm9jZXNzaW5nIGFuaW1hdGlvbiByZXF1ZXN0cyBmb3IgaW5kaXZpZHVhbCBlbGVtZW50cy5cbiAqL1xuZXhwb3J0IGNsYXNzIEFuaW1hdGVFbGVtZW50SGFuZGxlciB7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYW4gaW5zdGFuY2Ugb2YgQW5pbWF0ZUVsZW1lbnRIYW5kbGVyLlxuICAgKiBAcGFyYW0ge0FuaW1hdGlvbkJ1aWxkZXJ9IGFuaW1hdGlvbkJ1aWxkZXIgLSBUaGUgQW5pbWF0aW9uQnVpbGRlciBzZXJ2aWNlIGZvciBjcmVhdGluZyBhbmltYXRpb25zLlxuICAgKi9cbiAgY29uc3RydWN0b3IoXG4gICAgICBwcml2YXRlIGFuaW1hdGlvbkJ1aWxkZXI6IEFuaW1hdGlvbkJ1aWxkZXIsXG4gICkge1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgdGhlIHByb3ZpZGVkIGFuaW1hdGlvbiByZXF1ZXN0IGFuZCByZXR1cm5zIGFuIE9ic2VydmFibGUgZm9yIHRoZSBhbmltYXRpb24gcHJvY2Vzcy5cbiAgICogQHBhcmFtIHtBbmltYXRlRWxlbWVudFJlcXVlc3R9IHJlcXVlc3QgLSBUaGUgYW5pbWF0aW9uIHJlcXVlc3QgdG8gYmUgaGFuZGxlZC5cbiAgICogQHJldHVybiB7T2JzZXJ2YWJsZTxIVE1MRWxlbWVudCB8IFNWR1BhdGhFbGVtZW50Pn0gQW4gT2JzZXJ2YWJsZSBlbWl0dGluZyB0aGUgYW5pbWF0ZWQgZWxlbWVudC5cbiAgICovXG4gIHB1YmxpYyBoYW5kbGUocmVxdWVzdDogQW5pbWF0ZUVsZW1lbnRSZXF1ZXN0KTogT2JzZXJ2YWJsZTxIVE1MRWxlbWVudCB8IFNWR1BhdGhFbGVtZW50PiB7XG4gICAgbGV0IHJlc3VsdDogT2JzZXJ2YWJsZTxIVE1MRWxlbWVudCB8IFNWR1BhdGhFbGVtZW50PjtcblxuICAgIGlmIChyZXF1ZXN0LmVsZW1lbnQgaW5zdGFuY2VvZiBTVkdQYXRoRWxlbWVudCkge1xuICAgICAgcmVzdWx0ID0gdGhpcy5hbmltYXRlQ29ubmVjdGlvbihyZXF1ZXN0KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzdWx0ID0gdGhpcy5hbmltYXRlTm9kZShyZXF1ZXN0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHJpdmF0ZSBhbmltYXRlQ29ubmVjdGlvbihyZXF1ZXN0OiBBbmltYXRlRWxlbWVudFJlcXVlc3QpOiBPYnNlcnZhYmxlPFNWR1BhdGhFbGVtZW50PiB7XG4gICAgY29uc3QgcmVzdWx0ID0gbmV3IEFuaW1hdGVDb25uZWN0aW9uT3ZlcmxheUhhbmRsZXIodGhpcy5hbmltYXRpb25CdWlsZGVyKS5oYW5kbGUoXG4gICAgICAgIG5ldyBBbmltYXRlQ29ubmVjdGlvbk92ZXJsYXlSZXF1ZXN0KHJlcXVlc3QuZWxlbWVudCBhcyBTVkdQYXRoRWxlbWVudCwgcmVxdWVzdC5kdXJhdGlvbilcbiAgICApO1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHByaXZhdGUgYW5pbWF0ZU5vZGUocmVxdWVzdDogQW5pbWF0ZUVsZW1lbnRSZXF1ZXN0KTogT2JzZXJ2YWJsZTxIVE1MRWxlbWVudD4ge1xuICAgIGNvbnN0IHJlc3VsdCA9IG5ldyBBbmltYXRlTm9kZU92ZXJsYXlIYW5kbGVyKHRoaXMuYW5pbWF0aW9uQnVpbGRlcikuaGFuZGxlKFxuICAgICAgICBuZXcgQW5pbWF0ZU5vZGVPdmVybGF5UmVxdWVzdChyZXF1ZXN0LmVsZW1lbnQgYXMgSFRNTEVsZW1lbnQsIHJlcXVlc3QuZHVyYXRpb24pXG4gICAgKTtcblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbn1cbiJdfQ==