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.

54 lines 8.88 kB
import { __decorate } from "tslib"; import { inject, Injectable } from '@angular/core'; import { FCreateConnectionFromOutletPreparationRequest } from './f-create-connection-from-outlet-preparation.request'; import { FComponentsStore } from '../../../../../f-storage'; import { FExecutionRegister, FMediator } from '@foblex/mediator'; import { GetFirstConnectableOutputRequest } from '../../get-first-connectable-output'; import { FCreateConnectionDragHandlerPreparationRequest } from '../drag-handler-preparation'; import * as i0 from "@angular/core"; let FCreateConnectionFromOutletPreparationExecution = class FCreateConnectionFromOutletPreparationExecution { _fMediator = inject(FMediator); _fComponentsStore = inject(FComponentsStore); handle(request) { const fOutlet = this._getNodeOutlet(request.fNode); const fOutputs = this._getNodeOutputs(request.fNode); fOutlet.setOutputs(fOutputs); if (!fOutlet.canBeConnected) { return; } if (fOutlet.isConnectionFromOutlet) { this._createDragHandler(request.event.getPosition(), fOutlet); } else { this._createDragHandler(request.event.getPosition(), this._getConnectableOutput(fOutlet)); } } _getNodeOutlet(fNode) { const result = this._fComponentsStore.fOutlets .find((x) => fNode.isContains(x.hostElement)); if (!result) { throw new Error('Outlet not found'); } return result; } _getNodeOutputs(fNode) { return this._fComponentsStore.fOutputs .filter((x) => fNode.isContains(x.hostElement)); } _createDragHandler(position, fOutputOrOutlet) { this._fMediator.execute(new FCreateConnectionDragHandlerPreparationRequest(position, fOutputOrOutlet)); } _getConnectableOutput(fOutlet) { return this._fMediator.execute(new GetFirstConnectableOutputRequest(fOutlet)); } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FCreateConnectionFromOutletPreparationExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FCreateConnectionFromOutletPreparationExecution }); }; FCreateConnectionFromOutletPreparationExecution = __decorate([ FExecutionRegister(FCreateConnectionFromOutletPreparationRequest) ], FCreateConnectionFromOutletPreparationExecution); export { FCreateConnectionFromOutletPreparationExecution }; i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FCreateConnectionFromOutletPreparationExecution, decorators: [{ type: Injectable }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jcmVhdGUtY29ubmVjdGlvbi1mcm9tLW91dGxldC1wcmVwYXJhdGlvbi5leGVjdXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2YtY29ubmVjdGlvbi9mLWNyZWF0ZS1jb25uZWN0aW9uL2NyZWF0ZS1wcmVwYXJhdGlvbi9mcm9tLW91dGxldC1wcmVwYXJhdGlvbi9mLWNyZWF0ZS1jb25uZWN0aW9uLWZyb20tb3V0bGV0LXByZXBhcmF0aW9uLmV4ZWN1dGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBRUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLDZDQUE2QyxFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDdEgsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBTWpFLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSw4Q0FBOEMsRUFBRSxNQUFNLDZCQUE2QixDQUFDOztBQUt0RixJQUFNLCtDQUErQyxHQUFyRCxNQUFNLCtDQUErQztJQUdsRCxVQUFVLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQy9CLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBRTlDLE1BQU0sQ0FBQyxPQUFzRDtRQUVsRSxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNuRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVyRCxPQUFPLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRTdCLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDNUIsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLE9BQU8sQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1lBQ25DLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ2hFLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLEVBQUUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDNUYsQ0FBQztJQUNILENBQUM7SUFFTyxjQUFjLENBQUMsS0FBZ0I7UUFDckMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVE7YUFDM0MsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNaLE1BQU0sSUFBSSxLQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUN0QyxDQUFDO1FBQ0QsT0FBTyxNQUF5QixDQUFDO0lBQ25DLENBQUM7SUFFTyxlQUFlLENBQUMsS0FBZ0I7UUFDdEMsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUTthQUNuQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVPLGtCQUFrQixDQUFDLFFBQWdCLEVBQUUsZUFBa0Q7UUFDN0YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSw4Q0FBOEMsQ0FBQyxRQUFRLEVBQUUsZUFBZSxDQUFDLENBQUMsQ0FBQztJQUN6RyxDQUFDO0lBRU8scUJBQXFCLENBQUMsT0FBd0I7UUFDcEQsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBa0IsSUFBSSxnQ0FBZ0MsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ2pHLENBQUM7d0dBNUNVLCtDQUErQzs0R0FBL0MsK0NBQStDOztBQUEvQywrQ0FBK0M7SUFEM0Qsa0JBQWtCLENBQUMsNkNBQTZDLENBQUM7R0FDckQsK0NBQStDLENBNkMzRDs7NEZBN0NZLCtDQUErQztrQkFGM0QsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElIYW5kbGVyIH0gZnJvbSAnQGZvYmxleC9tZWRpYXRvcic7XG5pbXBvcnQgeyBJUG9pbnQgfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRkNyZWF0ZUNvbm5lY3Rpb25Gcm9tT3V0bGV0UHJlcGFyYXRpb25SZXF1ZXN0IH0gZnJvbSAnLi9mLWNyZWF0ZS1jb25uZWN0aW9uLWZyb20tb3V0bGV0LXByZXBhcmF0aW9uLnJlcXVlc3QnO1xuaW1wb3J0IHsgRkNvbXBvbmVudHNTdG9yZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2Ytc3RvcmFnZSc7XG5pbXBvcnQgeyBGRXhlY3V0aW9uUmVnaXN0ZXIsIEZNZWRpYXRvciB9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuaW1wb3J0IHtcbiAgRkNvbm5lY3RvckJhc2UsXG4gIEZOb2RlT3V0bGV0QmFzZSxcbiAgRk5vZGVPdXRwdXRCYXNlLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi9mLWNvbm5lY3RvcnMnO1xuaW1wb3J0IHsgR2V0Rmlyc3RDb25uZWN0YWJsZU91dHB1dFJlcXVlc3QgfSBmcm9tICcuLi8uLi9nZXQtZmlyc3QtY29ubmVjdGFibGUtb3V0cHV0JztcbmltcG9ydCB7IEZDcmVhdGVDb25uZWN0aW9uRHJhZ0hhbmRsZXJQcmVwYXJhdGlvblJlcXVlc3QgfSBmcm9tICcuLi9kcmFnLWhhbmRsZXItcHJlcGFyYXRpb24nO1xuaW1wb3J0IHsgRk5vZGVCYXNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vZi1ub2RlJztcblxuQEluamVjdGFibGUoKVxuQEZFeGVjdXRpb25SZWdpc3RlcihGQ3JlYXRlQ29ubmVjdGlvbkZyb21PdXRsZXRQcmVwYXJhdGlvblJlcXVlc3QpXG5leHBvcnQgY2xhc3MgRkNyZWF0ZUNvbm5lY3Rpb25Gcm9tT3V0bGV0UHJlcGFyYXRpb25FeGVjdXRpb25cbiAgaW1wbGVtZW50cyBJSGFuZGxlcjxGQ3JlYXRlQ29ubmVjdGlvbkZyb21PdXRsZXRQcmVwYXJhdGlvblJlcXVlc3QsIHZvaWQ+IHtcblxuICBwcml2YXRlIF9mTWVkaWF0b3IgPSBpbmplY3QoRk1lZGlhdG9yKTtcbiAgcHJpdmF0ZSBfZkNvbXBvbmVudHNTdG9yZSA9IGluamVjdChGQ29tcG9uZW50c1N0b3JlKTtcblxuICBwdWJsaWMgaGFuZGxlKHJlcXVlc3Q6IEZDcmVhdGVDb25uZWN0aW9uRnJvbU91dGxldFByZXBhcmF0aW9uUmVxdWVzdCk6IHZvaWQge1xuXG4gICAgY29uc3QgZk91dGxldCA9IHRoaXMuX2dldE5vZGVPdXRsZXQocmVxdWVzdC5mTm9kZSk7XG4gICAgY29uc3QgZk91dHB1dHMgPSB0aGlzLl9nZXROb2RlT3V0cHV0cyhyZXF1ZXN0LmZOb2RlKTtcblxuICAgIGZPdXRsZXQuc2V0T3V0cHV0cyhmT3V0cHV0cyk7XG5cbiAgICBpZiAoIWZPdXRsZXQuY2FuQmVDb25uZWN0ZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoZk91dGxldC5pc0Nvbm5lY3Rpb25Gcm9tT3V0bGV0KSB7XG4gICAgICB0aGlzLl9jcmVhdGVEcmFnSGFuZGxlcihyZXF1ZXN0LmV2ZW50LmdldFBvc2l0aW9uKCksIGZPdXRsZXQpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9jcmVhdGVEcmFnSGFuZGxlcihyZXF1ZXN0LmV2ZW50LmdldFBvc2l0aW9uKCksIHRoaXMuX2dldENvbm5lY3RhYmxlT3V0cHV0KGZPdXRsZXQpKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9nZXROb2RlT3V0bGV0KGZOb2RlOiBGTm9kZUJhc2UpOiBGTm9kZU91dGxldEJhc2Uge1xuICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuX2ZDb21wb25lbnRzU3RvcmUuZk91dGxldHNcbiAgICAgIC5maW5kKCh4KSA9PiBmTm9kZS5pc0NvbnRhaW5zKHguaG9zdEVsZW1lbnQpKTtcbiAgICBpZiAoIXJlc3VsdCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdPdXRsZXQgbm90IGZvdW5kJyk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQgYXMgRk5vZGVPdXRsZXRCYXNlO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0Tm9kZU91dHB1dHMoZk5vZGU6IEZOb2RlQmFzZSk6IEZDb25uZWN0b3JCYXNlW10ge1xuICAgIHJldHVybiB0aGlzLl9mQ29tcG9uZW50c1N0b3JlLmZPdXRwdXRzXG4gICAgICAuZmlsdGVyKCh4KSA9PiBmTm9kZS5pc0NvbnRhaW5zKHguaG9zdEVsZW1lbnQpKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NyZWF0ZURyYWdIYW5kbGVyKHBvc2l0aW9uOiBJUG9pbnQsIGZPdXRwdXRPck91dGxldDogRk5vZGVPdXRwdXRCYXNlIHwgRk5vZGVPdXRsZXRCYXNlKTogdm9pZCB7XG4gICAgdGhpcy5fZk1lZGlhdG9yLmV4ZWN1dGUobmV3IEZDcmVhdGVDb25uZWN0aW9uRHJhZ0hhbmRsZXJQcmVwYXJhdGlvblJlcXVlc3QocG9zaXRpb24sIGZPdXRwdXRPck91dGxldCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0Q29ubmVjdGFibGVPdXRwdXQoZk91dGxldDogRk5vZGVPdXRsZXRCYXNlKTogRk5vZGVPdXRwdXRCYXNlIHtcbiAgICByZXR1cm4gdGhpcy5fZk1lZGlhdG9yLmV4ZWN1dGU8Rk5vZGVPdXRwdXRCYXNlPihuZXcgR2V0Rmlyc3RDb25uZWN0YWJsZU91dHB1dFJlcXVlc3QoZk91dGxldCkpO1xuICB9XG59XG4iXX0=