UNPKG

@foblex/flow-animator

Version:
58 lines 8.72 kB
export class GetAllAnimatedElementsHandler { constructor(document) { this.document = document; this.allNodes = []; this.allConnections = []; } handle(request) { if (!request.flowId) { throw new Error('Flow id is required'); } const flowElement = this.getFlowElement(request.flowId); this.allNodes = this.getAllNodes(flowElement); this.allConnections = this.getAllConnections(flowElement); const result = request.items.map((row) => { return row.map((item) => { return { element: item.isConnection ? this.getConnectionElement(item.id) : this.getNodeElement(item.id), duration: item.duration }; }); }); return result; } getAllNodes(flowElement) { const result = Array.from(flowElement.querySelectorAll('[fNode]')); return result; } getAllConnections(flowElement) { const result = Array.from(flowElement.getElementsByTagName('f-connection')); return result; } getFlowElement(flowId) { const flowElement = this.document.getElementById(flowId); if (!flowElement) { throw new Error(`FFlowComponent with id ${flowId} not found`); } return flowElement; } getNodeElement(nodeId) { const nodeElement = this.allNodes.find((x) => x.dataset['fNodeId'] === nodeId); if (!nodeElement) { throw new Error(`FNodeDirective with id ${nodeId} not found`); } return nodeElement; } getConnectionElement(connectionId) { const connectionElement = this.allConnections.find((connection) => connection.id === connectionId); if (!connectionElement) { throw new Error(`FConnectionComponent with id ${connectionId} not found`); } const path = connectionElement.querySelector('.f-connection-path'); if (!path) { throw new Error(`FConnectionComponent with id ${connectionId} has no path element`); } return path; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWFsbC1hbmltYXRlZC1lbGVtZW50cy5oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93LWFuaW1hdG9yL3NyYy9saWIvZ2V0LWFsbC1hbmltYXRlZC1lbGVtZW50cy9nZXQtYWxsLWFuaW1hdGVkLWVsZW1lbnRzLmhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsTUFBTSxPQUFPLDZCQUE2QjtJQUt4QyxZQUNZLFFBQWtCO1FBQWxCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFKdEIsYUFBUSxHQUFrQixFQUFFLENBQUM7UUFDN0IsbUJBQWMsR0FBa0IsRUFBRSxDQUFDO0lBSzNDLENBQUM7SUFFTSxNQUFNLENBQUMsT0FBc0M7UUFFbEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUU7WUFDbkIsTUFBTSxJQUFJLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1NBQ3hDO1FBRUQsTUFBTSxXQUFXLEdBQWdCLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXJFLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUU5QyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUUxRCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQXNCLEVBQUUsRUFBRTtZQUMxRCxPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFxQixFQUFFLEVBQUU7Z0JBQ3ZDLE9BQU87b0JBQ0wsT0FBTyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztvQkFDOUYsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO2lCQUNGLENBQUM7WUFDMUIsQ0FBQyxDQUFDLENBQUE7UUFDSixDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFHTyxXQUFXLENBQUMsV0FBd0I7UUFDMUMsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQWtCLENBQUM7UUFDcEYsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVPLGlCQUFpQixDQUFDLFdBQXdCO1FBQ2hELE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLG9CQUFvQixDQUFDLGNBQWMsQ0FBQyxDQUFrQixDQUFDO1FBQzdGLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFTyxjQUFjLENBQUMsTUFBVztRQUNoQyxNQUFNLFdBQVcsR0FBdUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0UsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNoQixNQUFNLElBQUksS0FBSyxDQUFDLDBCQUEyQixNQUFPLFlBQVksQ0FBQyxDQUFDO1NBQ2pFO1FBQ0QsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQztJQUVPLGNBQWMsQ0FBQyxNQUFjO1FBQ25DLE1BQU0sV0FBVyxHQUE0QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQWMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxNQUFNLENBQUMsQ0FBQztRQUNySCxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTJCLE1BQU8sWUFBWSxDQUFDLENBQUM7U0FDakU7UUFDRCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0lBRU8sb0JBQW9CLENBQUMsWUFBaUI7UUFDNUMsTUFBTSxpQkFBaUIsR0FBNEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUF1QixFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBRSxLQUFLLFlBQVksQ0FBQyxDQUFDO1FBQ3pJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUN0QixNQUFNLElBQUksS0FBSyxDQUFDLGdDQUFpQyxZQUFhLFlBQVksQ0FBQyxDQUFDO1NBQzdFO1FBRUQsTUFBTSxJQUFJLEdBQUcsaUJBQWlCLENBQUMsYUFBYSxDQUFDLG9CQUFvQixDQUFtQixDQUFDO1FBQ3JGLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDVCxNQUFNLElBQUksS0FBSyxDQUFDLGdDQUFpQyxZQUFhLHNCQUFzQixDQUFDLENBQUM7U0FDdkY7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEdldEFsbEFuaW1hdGVkRWxlbWVudHNSZXF1ZXN0IH0gZnJvbSAnLi9nZXQtYWxsLWFuaW1hdGVkLWVsZW1lbnRzLXJlcXVlc3QnO1xuaW1wb3J0IHsgSUZBbmltYXRpb25JdGVtIH0gZnJvbSAnLi4vaS1mLWFuaW1hdGlvbi1pdGVtJztcbmltcG9ydCB7IElGRWxlbWVudFRvQW5pbWF0ZSB9IGZyb20gJy4uL2ktZi1lbGVtZW50LXRvLWFuaW1hdGUnO1xuXG5leHBvcnQgY2xhc3MgR2V0QWxsQW5pbWF0ZWRFbGVtZW50c0hhbmRsZXIge1xuXG4gIHByaXZhdGUgYWxsTm9kZXM6IEhUTUxFbGVtZW50W10gPSBbXTtcbiAgcHJpdmF0ZSBhbGxDb25uZWN0aW9uczogSFRNTEVsZW1lbnRbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgICAgcHJpdmF0ZSBkb2N1bWVudDogRG9jdW1lbnQsXG4gICkge1xuICB9XG5cbiAgcHVibGljIGhhbmRsZShyZXF1ZXN0OiBHZXRBbGxBbmltYXRlZEVsZW1lbnRzUmVxdWVzdCk6IElGRWxlbWVudFRvQW5pbWF0ZVtdW10ge1xuXG4gICAgaWYgKCFyZXF1ZXN0LmZsb3dJZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdGbG93IGlkIGlzIHJlcXVpcmVkJyk7XG4gICAgfVxuXG4gICAgY29uc3QgZmxvd0VsZW1lbnQ6IEhUTUxFbGVtZW50ID0gdGhpcy5nZXRGbG93RWxlbWVudChyZXF1ZXN0LmZsb3dJZCk7XG5cbiAgICB0aGlzLmFsbE5vZGVzID0gdGhpcy5nZXRBbGxOb2RlcyhmbG93RWxlbWVudCk7XG5cbiAgICB0aGlzLmFsbENvbm5lY3Rpb25zID0gdGhpcy5nZXRBbGxDb25uZWN0aW9ucyhmbG93RWxlbWVudCk7XG5cbiAgICBjb25zdCByZXN1bHQgPSByZXF1ZXN0Lml0ZW1zLm1hcCgocm93OiBJRkFuaW1hdGlvbkl0ZW1bXSkgPT4ge1xuICAgICAgcmV0dXJuIHJvdy5tYXAoKGl0ZW06IElGQW5pbWF0aW9uSXRlbSkgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGVsZW1lbnQ6IGl0ZW0uaXNDb25uZWN0aW9uID8gdGhpcy5nZXRDb25uZWN0aW9uRWxlbWVudChpdGVtLmlkKSA6IHRoaXMuZ2V0Tm9kZUVsZW1lbnQoaXRlbS5pZCksXG4gICAgICAgICAgZHVyYXRpb246IGl0ZW0uZHVyYXRpb25cbiAgICAgICAgfSBhcyBJRkVsZW1lbnRUb0FuaW1hdGU7XG4gICAgICB9KVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG5cbiAgcHJpdmF0ZSBnZXRBbGxOb2RlcyhmbG93RWxlbWVudDogSFRNTEVsZW1lbnQpOiBIVE1MRWxlbWVudFtdIHtcbiAgICBjb25zdCByZXN1bHQgPSBBcnJheS5mcm9tKGZsb3dFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ1tmTm9kZV0nKSkgYXMgSFRNTEVsZW1lbnRbXTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRBbGxDb25uZWN0aW9ucyhmbG93RWxlbWVudDogSFRNTEVsZW1lbnQpOiBIVE1MRWxlbWVudFtdIHtcbiAgICBjb25zdCByZXN1bHQgPSBBcnJheS5mcm9tKGZsb3dFbGVtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdmLWNvbm5lY3Rpb24nKSkgYXMgSFRNTEVsZW1lbnRbXTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRGbG93RWxlbWVudChmbG93SWQ6IGFueSk6IEhUTUxFbGVtZW50IHtcbiAgICBjb25zdCBmbG93RWxlbWVudDogSFRNTEVsZW1lbnQgfCBudWxsID0gdGhpcy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZChmbG93SWQpO1xuICAgIGlmICghZmxvd0VsZW1lbnQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgRkZsb3dDb21wb25lbnQgd2l0aCBpZCAkeyBmbG93SWQgfSBub3QgZm91bmRgKTtcbiAgICB9XG4gICAgcmV0dXJuIGZsb3dFbGVtZW50O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXROb2RlRWxlbWVudChub2RlSWQ6IHN0cmluZyk6IEhUTUxFbGVtZW50IHtcbiAgICBjb25zdCBub2RlRWxlbWVudDogSFRNTEVsZW1lbnQgfCB1bmRlZmluZWQgPSB0aGlzLmFsbE5vZGVzLmZpbmQoKHg6IEhUTUxFbGVtZW50KSA9PiB4LmRhdGFzZXRbJ2ZOb2RlSWQnXSA9PT0gbm9kZUlkKTtcbiAgICBpZiAoIW5vZGVFbGVtZW50KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEZOb2RlRGlyZWN0aXZlIHdpdGggaWQgJHsgbm9kZUlkIH0gbm90IGZvdW5kYCk7XG4gICAgfVxuICAgIHJldHVybiBub2RlRWxlbWVudDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q29ubmVjdGlvbkVsZW1lbnQoY29ubmVjdGlvbklkOiBhbnkpOiBTVkdQYXRoRWxlbWVudCB7XG4gICAgY29uc3QgY29ubmVjdGlvbkVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkID0gdGhpcy5hbGxDb25uZWN0aW9ucy5maW5kKChjb25uZWN0aW9uOiBIVE1MRWxlbWVudCkgPT4gY29ubmVjdGlvbi5pZCA9PT0gY29ubmVjdGlvbklkKTtcbiAgICBpZiAoIWNvbm5lY3Rpb25FbGVtZW50KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEZDb25uZWN0aW9uQ29tcG9uZW50IHdpdGggaWQgJHsgY29ubmVjdGlvbklkIH0gbm90IGZvdW5kYCk7XG4gICAgfVxuXG4gICAgY29uc3QgcGF0aCA9IGNvbm5lY3Rpb25FbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5mLWNvbm5lY3Rpb24tcGF0aCcpIGFzIFNWR1BhdGhFbGVtZW50O1xuICAgIGlmICghcGF0aCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBGQ29ubmVjdGlvbkNvbXBvbmVudCB3aXRoIGlkICR7IGNvbm5lY3Rpb25JZCB9IGhhcyBubyBwYXRoIGVsZW1lbnRgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcGF0aDtcbiAgfVxufVxuIl19