@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
JavaScript
import { __decorate } from "tslib";
import { inject, Injectable, Injector } from '@angular/core';
import { PutInputConnectionHandlersToArrayRequest } from './put-input-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 { TargetConnectionDragHandler } from '../../../connection-drag-handlers/target-connection.drag-handler';
import * as i0 from "@angular/core";
let PutInputConnectionHandlersToArrayExecution = class PutInputConnectionHandlersToArrayExecution {
_fComponentsStore = inject(FComponentsStore);
_injector = inject(Injector);
get _fConnections() {
return this._fComponentsStore.fConnections;
}
handle(request) {
this._getInputConnections(request.fDragHandler.fNode).forEach((fConnection) => {
this._createAndSetConnectionToNodeHandler(fConnection, request);
});
}
_getInputConnections(fNode) {
const ids = new Set(this._getNodeInputIds(fNode));
return this._fConnections.filter((x) => ids.has(x.fInputId));
}
_getNodeInputIds(fNode) {
return this._fComponentsStore.fInputs
.filter((x) => fNode.isContains(x.hostElement))
.map((x) => x.fId);
}
_createAndSetConnectionToNodeHandler(fConnection, request) {
let fHandler = this._getExistingConnectionHandler(request.result, fConnection);
if (!fHandler) {
fHandler = this._createConnectionHandler(request.outputIds, fConnection);
request.result.push(fHandler);
}
request.fDragHandler.fTargetHandlers.push(fHandler);
}
_getExistingConnectionHandler(fHandlers, fConnection) {
return fHandlers.find((x) => x.fConnection.fId === fConnection.fId);
}
_createConnectionHandler(outputIds, fConnection) {
let result;
if (outputIds.includes(fConnection.fOutputId)) {
result = new SourceTargetConnectionDragHandler(this._injector, fConnection);
}
else {
result = new TargetConnectionDragHandler(this._injector, fConnection);
}
return result;
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PutInputConnectionHandlersToArrayExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PutInputConnectionHandlersToArrayExecution });
};
PutInputConnectionHandlersToArrayExecution = __decorate([
FExecutionRegister(PutInputConnectionHandlersToArrayRequest)
], PutInputConnectionHandlersToArrayExecution);
export { PutInputConnectionHandlersToArrayExecution };
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PutInputConnectionHandlersToArrayExecution, decorators: [{
type: Injectable
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHV0LWlucHV0LWNvbm5lY3Rpb24taGFuZGxlcnMtdG8tYXJyYXkuZXhlY3V0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9mLW5vZGUtbW92ZS9jcmVhdGUtbW92ZS1ub2Rlcy1kcmFnLW1vZGVsLWZyb20tc2VsZWN0aW9uL2RvbWFpbi9wdXQtaW5wdXQtY29ubmVjdGlvbi1oYW5kbGVycy10by1hcnJheS9wdXQtaW5wdXQtY29ubmVjdGlvbi1oYW5kbGVycy10by1hcnJheS5leGVjdXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsd0NBQXdDLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUM1RyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsa0JBQWtCLEVBQWMsTUFBTSxrQkFBa0IsQ0FBQztBQUlsRSxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSx5RUFBeUUsQ0FBQztBQUM1SCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxrRUFBa0UsQ0FBQzs7QUFJeEcsSUFBTSwwQ0FBMEMsR0FBaEQsTUFBTSwwQ0FBMEM7SUFHcEMsaUJBQWlCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDN0MsU0FBUyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUU5QyxJQUFZLGFBQWE7UUFDdkIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDO0lBQzdDLENBQUM7SUFFTSxNQUFNLENBQUMsT0FBaUQ7UUFDN0QsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUU7WUFDNUUsSUFBSSxDQUFDLG9DQUFvQyxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNsRSxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxvQkFBb0IsQ0FBQyxLQUFnQjtRQUMzQyxNQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNsRCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxLQUFnQjtRQUN2QyxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPO2FBQ2xDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUM7YUFDOUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVPLG9DQUFvQyxDQUFDLFdBQTRCLEVBQUUsT0FBaUQ7UUFDMUgsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLDZCQUE2QixDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDL0UsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2QsUUFBUSxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1lBQ3pFLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2hDLENBQUM7UUFDRCxPQUFPLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVPLDZCQUE2QixDQUFDLFNBQXNDLEVBQUUsV0FBNEI7UUFDeEcsT0FBTyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLEdBQUcsS0FBSyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVPLHdCQUF3QixDQUFDLFNBQW1CLEVBQUUsV0FBNEI7UUFDaEYsSUFBSSxNQUE2QyxDQUFDO1FBQ2xELElBQUksU0FBUyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUM5QyxNQUFNLEdBQUcsSUFBSSxpQ0FBaUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQzlFLENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxHQUFHLElBQUksMkJBQTJCLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUN4RSxDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQzt3R0FoRFUsMENBQTBDOzRHQUExQywwQ0FBMEM7O0FBQTFDLDBDQUEwQztJQUR0RCxrQkFBa0IsQ0FBQyx3Q0FBd0MsQ0FBQztHQUNoRCwwQ0FBMEMsQ0FpRHREOzs0RkFqRFksMENBQTBDO2tCQUZ0RCxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUHV0SW5wdXRDb25uZWN0aW9uSGFuZGxlcnNUb0FycmF5UmVxdWVzdCB9IGZyb20gJy4vcHV0LWlucHV0LWNvbm5lY3Rpb24taGFuZGxlcnMtdG8tYXJyYXkucmVxdWVzdCc7XG5pbXBvcnQgeyBGQ29tcG9uZW50c1N0b3JlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vZi1zdG9yYWdlJztcbmltcG9ydCB7IEZFeGVjdXRpb25SZWdpc3RlciwgSUV4ZWN1dGlvbiB9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuaW1wb3J0IHsgRk5vZGVCYXNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vZi1ub2RlJztcbmltcG9ydCB7IEZDb25uZWN0aW9uQmFzZSB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2YtY29ubmVjdGlvbic7XG5pbXBvcnQgeyBCYXNlQ29ubmVjdGlvbkRyYWdIYW5kbGVyIH0gZnJvbSAnLi4vLi4vLi4vY29ubmVjdGlvbi1kcmFnLWhhbmRsZXJzL2Jhc2UtY29ubmVjdGlvbi5kcmFnLWhhbmRsZXInO1xuaW1wb3J0IHsgU291cmNlVGFyZ2V0Q29ubmVjdGlvbkRyYWdIYW5kbGVyIH0gZnJvbSAnLi4vLi4vLi4vY29ubmVjdGlvbi1kcmFnLWhhbmRsZXJzL3NvdXJjZS10YXJnZXQtY29ubmVjdGlvbi5kcmFnLWhhbmRsZXInO1xuaW1wb3J0IHsgVGFyZ2V0Q29ubmVjdGlvbkRyYWdIYW5kbGVyIH0gZnJvbSAnLi4vLi4vLi4vY29ubmVjdGlvbi1kcmFnLWhhbmRsZXJzL3RhcmdldC1jb25uZWN0aW9uLmRyYWctaGFuZGxlcic7XG5cbkBJbmplY3RhYmxlKClcbkBGRXhlY3V0aW9uUmVnaXN0ZXIoUHV0SW5wdXRDb25uZWN0aW9uSGFuZGxlcnNUb0FycmF5UmVxdWVzdClcbmV4cG9ydCBjbGFzcyBQdXRJbnB1dENvbm5lY3Rpb25IYW5kbGVyc1RvQXJyYXlFeGVjdXRpb25cbiAgaW1wbGVtZW50cyBJRXhlY3V0aW9uPFB1dElucHV0Q29ubmVjdGlvbkhhbmRsZXJzVG9BcnJheVJlcXVlc3QsIHZvaWQ+IHtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9mQ29tcG9uZW50c1N0b3JlID0gaW5qZWN0KEZDb21wb25lbnRzU3RvcmUpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9pbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG5cbiAgcHJpdmF0ZSBnZXQgX2ZDb25uZWN0aW9ucygpOiBGQ29ubmVjdGlvbkJhc2VbXSB7XG4gICAgcmV0dXJuIHRoaXMuX2ZDb21wb25lbnRzU3RvcmUuZkNvbm5lY3Rpb25zO1xuICB9XG5cbiAgcHVibGljIGhhbmRsZShyZXF1ZXN0OiBQdXRJbnB1dENvbm5lY3Rpb25IYW5kbGVyc1RvQXJyYXlSZXF1ZXN0KTogdm9pZCB7XG4gICAgdGhpcy5fZ2V0SW5wdXRDb25uZWN0aW9ucyhyZXF1ZXN0LmZEcmFnSGFuZGxlci5mTm9kZSkuZm9yRWFjaCgoZkNvbm5lY3Rpb24pID0+IHtcbiAgICAgIHRoaXMuX2NyZWF0ZUFuZFNldENvbm5lY3Rpb25Ub05vZGVIYW5kbGVyKGZDb25uZWN0aW9uLCByZXF1ZXN0KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldElucHV0Q29ubmVjdGlvbnMoZk5vZGU6IEZOb2RlQmFzZSk6IEZDb25uZWN0aW9uQmFzZVtdIHtcbiAgICBjb25zdCBpZHMgPSBuZXcgU2V0KHRoaXMuX2dldE5vZGVJbnB1dElkcyhmTm9kZSkpO1xuICAgIHJldHVybiB0aGlzLl9mQ29ubmVjdGlvbnMuZmlsdGVyKCh4KSA9PiBpZHMuaGFzKHguZklucHV0SWQpKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldE5vZGVJbnB1dElkcyhmTm9kZTogRk5vZGVCYXNlKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLl9mQ29tcG9uZW50c1N0b3JlLmZJbnB1dHNcbiAgICAgIC5maWx0ZXIoKHgpID0+IGZOb2RlLmlzQ29udGFpbnMoeC5ob3N0RWxlbWVudCkpXG4gICAgICAubWFwKCh4KSA9PiB4LmZJZCk7XG4gIH1cblxuICBwcml2YXRlIF9jcmVhdGVBbmRTZXRDb25uZWN0aW9uVG9Ob2RlSGFuZGxlcihmQ29ubmVjdGlvbjogRkNvbm5lY3Rpb25CYXNlLCByZXF1ZXN0OiBQdXRJbnB1dENvbm5lY3Rpb25IYW5kbGVyc1RvQXJyYXlSZXF1ZXN0KTogdm9pZCB7XG4gICAgbGV0IGZIYW5kbGVyID0gdGhpcy5fZ2V0RXhpc3RpbmdDb25uZWN0aW9uSGFuZGxlcihyZXF1ZXN0LnJlc3VsdCwgZkNvbm5lY3Rpb24pO1xuICAgIGlmICghZkhhbmRsZXIpIHtcbiAgICAgIGZIYW5kbGVyID0gdGhpcy5fY3JlYXRlQ29ubmVjdGlvbkhhbmRsZXIocmVxdWVzdC5vdXRwdXRJZHMsIGZDb25uZWN0aW9uKTtcbiAgICAgIHJlcXVlc3QucmVzdWx0LnB1c2goZkhhbmRsZXIpO1xuICAgIH1cbiAgICByZXF1ZXN0LmZEcmFnSGFuZGxlci5mVGFyZ2V0SGFuZGxlcnMucHVzaChmSGFuZGxlcik7XG4gIH1cblxuICBwcml2YXRlIF9nZXRFeGlzdGluZ0Nvbm5lY3Rpb25IYW5kbGVyKGZIYW5kbGVyczogQmFzZUNvbm5lY3Rpb25EcmFnSGFuZGxlcltdLCBmQ29ubmVjdGlvbjogRkNvbm5lY3Rpb25CYXNlKTogQmFzZUNvbm5lY3Rpb25EcmFnSGFuZGxlciB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIGZIYW5kbGVycy5maW5kKCh4KSA9PiB4LmZDb25uZWN0aW9uLmZJZCA9PT0gZkNvbm5lY3Rpb24uZklkKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NyZWF0ZUNvbm5lY3Rpb25IYW5kbGVyKG91dHB1dElkczogc3RyaW5nW10sIGZDb25uZWN0aW9uOiBGQ29ubmVjdGlvbkJhc2UpOiBCYXNlQ29ubmVjdGlvbkRyYWdIYW5kbGVyIHtcbiAgICBsZXQgcmVzdWx0OiBCYXNlQ29ubmVjdGlvbkRyYWdIYW5kbGVyIHwgdW5kZWZpbmVkO1xuICAgIGlmIChvdXRwdXRJZHMuaW5jbHVkZXMoZkNvbm5lY3Rpb24uZk91dHB1dElkKSkge1xuICAgICAgcmVzdWx0ID0gbmV3IFNvdXJjZVRhcmdldENvbm5lY3Rpb25EcmFnSGFuZGxlcih0aGlzLl9pbmplY3RvciwgZkNvbm5lY3Rpb24pO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXN1bHQgPSBuZXcgVGFyZ2V0Q29ubmVjdGlvbkRyYWdIYW5kbGVyKHRoaXMuX2luamVjdG9yLCBmQ29ubmVjdGlvbik7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbn1cblxuIl19