UNPKG

@foblex/flow

Version:

An Angular library designed to simplify the creation and manipulation of dynamic flow. Provides components for flows, nodes, and connections, automating node manipulation and inter-node connections.

47 lines 6.58 kB
import { __decorate } from "tslib"; import { inject, Injectable } from '@angular/core'; import { FComponentsStore } from '../../../../f-storage'; import { GetFirstConnectableOutputRequest } from './get-first-connectable-output.request'; import { FExecutionRegister } from '@foblex/mediator'; import * as i0 from "@angular/core"; let GetFirstConnectableOutputExecution = class GetFirstConnectableOutputExecution { _fComponentStore = inject(FComponentsStore); get _fNodes() { return this._fComponentStore.fNodes; } get _fOutputs() { return this._fComponentStore.fOutputs; } _fNode; handle(request) { if (!this._isValid(request)) { return; } const fOutputs = this._getConnectableOutputs(); if (!fOutputs.length) { throw new Error('The fNode must contain at least one fOutput if there is an fOutlet'); } return fOutputs[0]; } _isValid(request) { return !!this._getNode(request.fOutlet); } _getNode(fOutlet) { this._fNode = this._fNodes.find((x) => x.isContains(fOutlet.hostElement)); return this._fNode; } _getConnectableOutputs() { return this._fOutputs .filter((x) => this._fNode.isContains(x.hostElement) && x.canBeConnected); } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GetFirstConnectableOutputExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GetFirstConnectableOutputExecution }); }; GetFirstConnectableOutputExecution = __decorate([ FExecutionRegister(GetFirstConnectableOutputRequest) ], GetFirstConnectableOutputExecution); export { GetFirstConnectableOutputExecution }; i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GetFirstConnectableOutputExecution, decorators: [{ type: Injectable }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWZpcnN0LWNvbm5lY3RhYmxlLW91dHB1dC5leGVjdXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2YtY29ubmVjdGlvbi9mLWNyZWF0ZS1jb25uZWN0aW9uL2dldC1maXJzdC1jb25uZWN0YWJsZS1vdXRwdXQvZ2V0LWZpcnN0LWNvbm5lY3RhYmxlLW91dHB1dC5leGVjdXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBR3pELE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzFGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQUkvQyxJQUFNLGtDQUFrQyxHQUF4QyxNQUFNLGtDQUFrQztJQUc1QixnQkFBZ0IsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUU3RCxJQUFZLE9BQU87UUFDakIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDO0lBQ3RDLENBQUM7SUFFRCxJQUFZLFNBQVM7UUFDbkIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDO0lBQ3hDLENBQUM7SUFFTyxNQUFNLENBQXdCO0lBRS9CLE1BQU0sQ0FBQyxPQUF5QztRQUNyRCxJQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQzNCLE9BQU87UUFDVCxDQUFDO1FBRUQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDL0MsSUFBRyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLG9FQUFvRSxDQUFDLENBQUE7UUFDdkYsQ0FBQztRQUNELE9BQU8sUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFTyxRQUFRLENBQUMsT0FBeUM7UUFDeEQsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVPLFFBQVEsQ0FBQyxPQUF3QjtRQUN2QyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBRSxDQUFDO1FBQzNFLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBRU8sc0JBQXNCO1FBQzVCLE9BQU8sSUFBSSxDQUFDLFNBQVM7YUFDbEIsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQy9FLENBQUM7d0dBdkNVLGtDQUFrQzs0R0FBbEMsa0NBQWtDOztBQUFsQyxrQ0FBa0M7SUFEOUMsa0JBQWtCLENBQUMsZ0NBQWdDLENBQUM7R0FDeEMsa0NBQWtDLENBd0M5Qzs7NEZBeENZLGtDQUFrQztrQkFGOUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElIYW5kbGVyIH0gZnJvbSAnQGZvYmxleC9tZWRpYXRvcic7XG5pbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZDb21wb25lbnRzU3RvcmUgfSBmcm9tICcuLi8uLi8uLi8uLi9mLXN0b3JhZ2UnO1xuaW1wb3J0IHsgRkNvbm5lY3RvckJhc2UsIEZOb2RlT3V0bGV0QmFzZSB9IGZyb20gJy4uLy4uLy4uLy4uL2YtY29ubmVjdG9ycyc7XG5pbXBvcnQgeyBGTm9kZUJhc2UgfSBmcm9tICcuLi8uLi8uLi8uLi9mLW5vZGUnO1xuaW1wb3J0IHsgR2V0Rmlyc3RDb25uZWN0YWJsZU91dHB1dFJlcXVlc3QgfSBmcm9tICcuL2dldC1maXJzdC1jb25uZWN0YWJsZS1vdXRwdXQucmVxdWVzdCc7XG5pbXBvcnQgeyBGRXhlY3V0aW9uUmVnaXN0ZXIgfSBmcm9tICdAZm9ibGV4L21lZGlhdG9yJztcblxuQEluamVjdGFibGUoKVxuQEZFeGVjdXRpb25SZWdpc3RlcihHZXRGaXJzdENvbm5lY3RhYmxlT3V0cHV0UmVxdWVzdClcbmV4cG9ydCBjbGFzcyBHZXRGaXJzdENvbm5lY3RhYmxlT3V0cHV0RXhlY3V0aW9uXG4gIGltcGxlbWVudHMgSUhhbmRsZXI8R2V0Rmlyc3RDb25uZWN0YWJsZU91dHB1dFJlcXVlc3QsIEZDb25uZWN0b3JCYXNlIHwgdW5kZWZpbmVkPiB7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfZkNvbXBvbmVudFN0b3JlID0gaW5qZWN0KEZDb21wb25lbnRzU3RvcmUpO1xuXG4gIHByaXZhdGUgZ2V0IF9mTm9kZXMoKTogRk5vZGVCYXNlW10ge1xuICAgIHJldHVybiB0aGlzLl9mQ29tcG9uZW50U3RvcmUuZk5vZGVzO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgX2ZPdXRwdXRzKCk6IEZDb25uZWN0b3JCYXNlW10ge1xuICAgIHJldHVybiB0aGlzLl9mQ29tcG9uZW50U3RvcmUuZk91dHB1dHM7XG4gIH1cblxuICBwcml2YXRlIF9mTm9kZTogRk5vZGVCYXNlIHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyBoYW5kbGUocmVxdWVzdDogR2V0Rmlyc3RDb25uZWN0YWJsZU91dHB1dFJlcXVlc3QpOiBGQ29ubmVjdG9yQmFzZSB8IHVuZGVmaW5lZCB7XG4gICAgaWYoIXRoaXMuX2lzVmFsaWQocmVxdWVzdCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBmT3V0cHV0cyA9IHRoaXMuX2dldENvbm5lY3RhYmxlT3V0cHV0cygpO1xuICAgIGlmKCFmT3V0cHV0cy5sZW5ndGgpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVGhlIGZOb2RlIG11c3QgY29udGFpbiBhdCBsZWFzdCBvbmUgZk91dHB1dCBpZiB0aGVyZSBpcyBhbiBmT3V0bGV0JylcbiAgICB9XG4gICAgcmV0dXJuIGZPdXRwdXRzWzBdO1xuICB9XG5cbiAgcHJpdmF0ZSBfaXNWYWxpZChyZXF1ZXN0OiBHZXRGaXJzdENvbm5lY3RhYmxlT3V0cHV0UmVxdWVzdCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuX2dldE5vZGUocmVxdWVzdC5mT3V0bGV0KTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldE5vZGUoZk91dGxldDogRk5vZGVPdXRsZXRCYXNlKTogRk5vZGVCYXNlIHtcbiAgICB0aGlzLl9mTm9kZSA9IHRoaXMuX2ZOb2Rlcy5maW5kKCh4KSA9PiB4LmlzQ29udGFpbnMoZk91dGxldC5ob3N0RWxlbWVudCkpITtcbiAgICByZXR1cm4gdGhpcy5fZk5vZGU7XG4gIH1cblxuICBwcml2YXRlIF9nZXRDb25uZWN0YWJsZU91dHB1dHMoKTogRkNvbm5lY3RvckJhc2VbXSB7XG4gICAgcmV0dXJuIHRoaXMuX2ZPdXRwdXRzXG4gICAgICAuZmlsdGVyKCh4KSA9PiB0aGlzLl9mTm9kZSEuaXNDb250YWlucyh4Lmhvc3RFbGVtZW50KSAmJiB4LmNhbkJlQ29ubmVjdGVkKTtcbiAgfVxufVxuIl19