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.

60 lines 10.3 kB
import { __decorate } from "tslib"; import { inject, Injectable, Injector } from '@angular/core'; import { PutOutputConnectionHandlersToArrayRequest } from './put-output-connection-handlers-to-array.request'; import { FComponentsStore } from '../../../../../f-storage'; import { FExecutionRegister } from '@foblex/mediator'; import { SourceTargetConnectionDragHandler } from '../../../connection-drag-handlers/source-target-connection.drag-handler'; import { SourceConnectionDragHandler } from '../../../connection-drag-handlers/source-connection.drag-handler'; import * as i0 from "@angular/core"; let PutOutputConnectionHandlersToArrayExecution = class PutOutputConnectionHandlersToArrayExecution { _fComponentsStore = inject(FComponentsStore); _injector = inject(Injector); get _fConnections() { return this._fComponentsStore.fConnections; } handle(request) { this._getOutputConnections(request.fDragHandler.fNode).forEach((fConnection) => { this._createAndSetConnectionToNodeHandler(fConnection, request); }); } _getOutputConnections(node) { const ids = new Set(this._getNodeOutputIds(node)); return this._fConnections.filter((x) => ids.has(x.fOutputId)); } _getNodeOutputIds(node) { return this._fComponentsStore.fOutputs .filter((x) => node.isContains(x.hostElement)) .map((x) => x.fId); } _createAndSetConnectionToNodeHandler(fConnection, request) { let fHandler = this._getExistingConnectionHandler(request.result, fConnection); if (!fHandler) { fHandler = this._createConnectionHandler(request.inputIds, fConnection); request.result.push(fHandler); } request.fDragHandler.fSourceHandlers.push(fHandler); } _getExistingConnectionHandler(fHandlers, fConnection) { return fHandlers.find((x) => x.fConnection.fId === fConnection.fId); } _createConnectionHandler(inputIds, fConnection) { let result; if (inputIds.includes(fConnection.fInputId)) { result = new SourceTargetConnectionDragHandler(this._injector, fConnection); } else { result = new SourceConnectionDragHandler(this._injector, fConnection); } return result; } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PutOutputConnectionHandlersToArrayExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PutOutputConnectionHandlersToArrayExecution }); }; PutOutputConnectionHandlersToArrayExecution = __decorate([ FExecutionRegister(PutOutputConnectionHandlersToArrayRequest) ], PutOutputConnectionHandlersToArrayExecution); export { PutOutputConnectionHandlersToArrayExecution }; i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PutOutputConnectionHandlersToArrayExecution, decorators: [{ type: Injectable }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHV0LW91dHB1dC1jb25uZWN0aW9uLWhhbmRsZXJzLXRvLWFycmF5LmV4ZWN1dGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1kcmFnZ2FibGUvZi1ub2RlLW1vdmUvY3JlYXRlLW1vdmUtbm9kZXMtZHJhZy1tb2RlbC1mcm9tLXNlbGVjdGlvbi9kb21haW4vcHV0LW91dHB1dC1jb25uZWN0aW9uLWhhbmRsZXJzLXRvLWFycmF5L3B1dC1vdXRwdXQtY29ubmVjdGlvbi1oYW5kbGVycy10by1hcnJheS5leGVjdXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUseUNBQXlDLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUM5RyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsa0JBQWtCLEVBQWMsTUFBTSxrQkFBa0IsQ0FBQztBQUdsRSxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSx5RUFBeUUsQ0FBQztBQUU1SCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxrRUFBa0UsQ0FBQzs7QUFJeEcsSUFBTSwyQ0FBMkMsR0FBakQsTUFBTSwyQ0FBMkM7SUFHckMsaUJBQWlCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDN0MsU0FBUyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUU5QyxJQUFZLGFBQWE7UUFDdkIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDO0lBQzdDLENBQUM7SUFFTSxNQUFNLENBQUMsT0FBa0Q7UUFDOUQsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUU7WUFDN0UsSUFBSSxDQUFDLG9DQUFvQyxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNsRSxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxxQkFBcUIsQ0FBQyxJQUFlO1FBQzFDLE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ2xELE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVPLGlCQUFpQixDQUFDLElBQWU7UUFDdkMsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUTthQUNuQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDO2FBQzdDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFFTyxvQ0FBb0MsQ0FBQyxXQUE0QixFQUFFLE9BQWtEO1FBQzNILElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQy9FLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNkLFFBQVEsR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsQ0FBQztZQUN4RSxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoQyxDQUFDO1FBQ0QsT0FBTyxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFTyw2QkFBNkIsQ0FBQyxTQUFzQyxFQUFFLFdBQTRCO1FBQ3hHLE9BQU8sU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxHQUFHLEtBQUssV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFTyx3QkFBd0IsQ0FBQyxRQUFrQixFQUFFLFdBQTRCO1FBQy9FLElBQUksTUFBaUMsQ0FBQztRQUN0QyxJQUFJLFFBQVEsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDNUMsTUFBTSxHQUFHLElBQUksaUNBQWlDLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUM5RSxDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sR0FBRyxJQUFJLDJCQUEyQixDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsV0FBVyxDQUFDLENBQUE7UUFDdkUsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7d0dBaERVLDJDQUEyQzs0R0FBM0MsMkNBQTJDOztBQUEzQywyQ0FBMkM7SUFEdkQsa0JBQWtCLENBQUMseUNBQXlDLENBQUM7R0FDakQsMkNBQTJDLENBaUR2RDs7NEZBakRZLDJDQUEyQztrQkFGdkQsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFB1dE91dHB1dENvbm5lY3Rpb25IYW5kbGVyc1RvQXJyYXlSZXF1ZXN0IH0gZnJvbSAnLi9wdXQtb3V0cHV0LWNvbm5lY3Rpb24taGFuZGxlcnMtdG8tYXJyYXkucmVxdWVzdCc7XG5pbXBvcnQgeyBGQ29tcG9uZW50c1N0b3JlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vZi1zdG9yYWdlJztcbmltcG9ydCB7IEZFeGVjdXRpb25SZWdpc3RlciwgSUV4ZWN1dGlvbiB9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuaW1wb3J0IHsgRk5vZGVCYXNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vZi1ub2RlJztcbmltcG9ydCB7IEZDb25uZWN0aW9uQmFzZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2YtY29ubmVjdGlvbic7XG5pbXBvcnQgeyBTb3VyY2VUYXJnZXRDb25uZWN0aW9uRHJhZ0hhbmRsZXIgfSBmcm9tICcuLi8uLi8uLi9jb25uZWN0aW9uLWRyYWctaGFuZGxlcnMvc291cmNlLXRhcmdldC1jb25uZWN0aW9uLmRyYWctaGFuZGxlcic7XG5pbXBvcnQgeyBCYXNlQ29ubmVjdGlvbkRyYWdIYW5kbGVyIH0gZnJvbSAnLi4vLi4vLi4vY29ubmVjdGlvbi1kcmFnLWhhbmRsZXJzL2Jhc2UtY29ubmVjdGlvbi5kcmFnLWhhbmRsZXInO1xuaW1wb3J0IHsgU291cmNlQ29ubmVjdGlvbkRyYWdIYW5kbGVyIH0gZnJvbSAnLi4vLi4vLi4vY29ubmVjdGlvbi1kcmFnLWhhbmRsZXJzL3NvdXJjZS1jb25uZWN0aW9uLmRyYWctaGFuZGxlcic7XG5cbkBJbmplY3RhYmxlKClcbkBGRXhlY3V0aW9uUmVnaXN0ZXIoUHV0T3V0cHV0Q29ubmVjdGlvbkhhbmRsZXJzVG9BcnJheVJlcXVlc3QpXG5leHBvcnQgY2xhc3MgUHV0T3V0cHV0Q29ubmVjdGlvbkhhbmRsZXJzVG9BcnJheUV4ZWN1dGlvblxuICBpbXBsZW1lbnRzIElFeGVjdXRpb248UHV0T3V0cHV0Q29ubmVjdGlvbkhhbmRsZXJzVG9BcnJheVJlcXVlc3QsIHZvaWQ+IHtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9mQ29tcG9uZW50c1N0b3JlID0gaW5qZWN0KEZDb21wb25lbnRzU3RvcmUpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9pbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG5cbiAgcHJpdmF0ZSBnZXQgX2ZDb25uZWN0aW9ucygpOiBGQ29ubmVjdGlvbkJhc2VbXSB7XG4gICAgcmV0dXJuIHRoaXMuX2ZDb21wb25lbnRzU3RvcmUuZkNvbm5lY3Rpb25zO1xuICB9XG5cbiAgcHVibGljIGhhbmRsZShyZXF1ZXN0OiBQdXRPdXRwdXRDb25uZWN0aW9uSGFuZGxlcnNUb0FycmF5UmVxdWVzdCk6IHZvaWQge1xuICAgIHRoaXMuX2dldE91dHB1dENvbm5lY3Rpb25zKHJlcXVlc3QuZkRyYWdIYW5kbGVyLmZOb2RlKS5mb3JFYWNoKChmQ29ubmVjdGlvbikgPT4ge1xuICAgICAgdGhpcy5fY3JlYXRlQW5kU2V0Q29ubmVjdGlvblRvTm9kZUhhbmRsZXIoZkNvbm5lY3Rpb24sIHJlcXVlc3QpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIF9nZXRPdXRwdXRDb25uZWN0aW9ucyhub2RlOiBGTm9kZUJhc2UpOiBGQ29ubmVjdGlvbkJhc2VbXSB7XG4gICAgY29uc3QgaWRzID0gbmV3IFNldCh0aGlzLl9nZXROb2RlT3V0cHV0SWRzKG5vZGUpKTtcbiAgICByZXR1cm4gdGhpcy5fZkNvbm5lY3Rpb25zLmZpbHRlcigoeCkgPT4gaWRzLmhhcyh4LmZPdXRwdXRJZCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0Tm9kZU91dHB1dElkcyhub2RlOiBGTm9kZUJhc2UpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuX2ZDb21wb25lbnRzU3RvcmUuZk91dHB1dHNcbiAgICAgIC5maWx0ZXIoKHgpID0+IG5vZGUuaXNDb250YWlucyh4Lmhvc3RFbGVtZW50KSlcbiAgICAgIC5tYXAoKHgpID0+IHguZklkKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NyZWF0ZUFuZFNldENvbm5lY3Rpb25Ub05vZGVIYW5kbGVyKGZDb25uZWN0aW9uOiBGQ29ubmVjdGlvbkJhc2UsIHJlcXVlc3Q6IFB1dE91dHB1dENvbm5lY3Rpb25IYW5kbGVyc1RvQXJyYXlSZXF1ZXN0KTogdm9pZCB7XG4gICAgbGV0IGZIYW5kbGVyID0gdGhpcy5fZ2V0RXhpc3RpbmdDb25uZWN0aW9uSGFuZGxlcihyZXF1ZXN0LnJlc3VsdCwgZkNvbm5lY3Rpb24pO1xuICAgIGlmICghZkhhbmRsZXIpIHtcbiAgICAgIGZIYW5kbGVyID0gdGhpcy5fY3JlYXRlQ29ubmVjdGlvbkhhbmRsZXIocmVxdWVzdC5pbnB1dElkcywgZkNvbm5lY3Rpb24pO1xuICAgICAgcmVxdWVzdC5yZXN1bHQucHVzaChmSGFuZGxlcik7XG4gICAgfVxuICAgIHJlcXVlc3QuZkRyYWdIYW5kbGVyLmZTb3VyY2VIYW5kbGVycy5wdXNoKGZIYW5kbGVyKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldEV4aXN0aW5nQ29ubmVjdGlvbkhhbmRsZXIoZkhhbmRsZXJzOiBCYXNlQ29ubmVjdGlvbkRyYWdIYW5kbGVyW10sIGZDb25uZWN0aW9uOiBGQ29ubmVjdGlvbkJhc2UpOiBCYXNlQ29ubmVjdGlvbkRyYWdIYW5kbGVyIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gZkhhbmRsZXJzLmZpbmQoKHgpID0+IHguZkNvbm5lY3Rpb24uZklkID09PSBmQ29ubmVjdGlvbi5mSWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY3JlYXRlQ29ubmVjdGlvbkhhbmRsZXIoaW5wdXRJZHM6IHN0cmluZ1tdLCBmQ29ubmVjdGlvbjogRkNvbm5lY3Rpb25CYXNlKTogQmFzZUNvbm5lY3Rpb25EcmFnSGFuZGxlciB7XG4gICAgbGV0IHJlc3VsdDogQmFzZUNvbm5lY3Rpb25EcmFnSGFuZGxlcjtcbiAgICBpZiAoaW5wdXRJZHMuaW5jbHVkZXMoZkNvbm5lY3Rpb24uZklucHV0SWQpKSB7XG4gICAgICByZXN1bHQgPSBuZXcgU291cmNlVGFyZ2V0Q29ubmVjdGlvbkRyYWdIYW5kbGVyKHRoaXMuX2luamVjdG9yLCBmQ29ubmVjdGlvbik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlc3VsdCA9IG5ldyBTb3VyY2VDb25uZWN0aW9uRHJhZ0hhbmRsZXIodGhpcy5faW5qZWN0b3IsIGZDb25uZWN0aW9uKVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG59XG5cbiJdfQ==