@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.
52 lines • 8.99 kB
JavaScript
import { __decorate } from "tslib";
import { inject, Injectable } from '@angular/core';
import { FComponentsStore } from '../../../../f-storage';
import { isNodeOutlet, isNodeOutput } from '../../../../f-connectors';
import { FCreateConnectionPreparationRequest } from './f-create-connection-preparation.request';
import { FExecutionRegister, FMediator } from '@foblex/mediator';
import { FCreateConnectionFromOutletPreparationRequest } from './from-outlet-preparation';
import { FCreateConnectionFromOutputPreparationRequest } from './from-output-preparation';
import { FDraggableDataContext } from '../../../f-draggable-data-context';
import { isValidEventTrigger } from '../../../../domain';
import * as i0 from "@angular/core";
let FCreateConnectionPreparationExecution = class FCreateConnectionPreparationExecution {
_fMediator = inject(FMediator);
_fComponentsStore = inject(FComponentsStore);
_fDraggableDataContext = inject(FDraggableDataContext);
_fNode;
handle(request) {
if (!this._isValid(request) || !this._isValidTrigger(request)) {
return;
}
if (isNodeOutlet(request.event.targetElement)) {
this._fMediator.execute(new FCreateConnectionFromOutletPreparationRequest(request.event, this._fNode));
}
else if (isNodeOutput(request.event.targetElement)) {
this._fMediator.execute(new FCreateConnectionFromOutputPreparationRequest(request.event, this._fNode));
}
}
_isValid(request) {
return !!this._getNode(request.event) && this._isValidConditions();
}
_getNode(event) {
this._fNode = this._fComponentsStore
.fNodes.find(n => n.isContains(event.targetElement));
return this._fNode;
}
_isValidConditions() {
return this._fDraggableDataContext.isEmpty() && !!this._fComponentsStore.fTempConnection;
}
_isValidTrigger(request) {
return isValidEventTrigger(request.event.originalEvent, request.fTrigger);
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FCreateConnectionPreparationExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FCreateConnectionPreparationExecution });
};
FCreateConnectionPreparationExecution = __decorate([
FExecutionRegister(FCreateConnectionPreparationRequest)
], FCreateConnectionPreparationExecution);
export { FCreateConnectionPreparationExecution };
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FCreateConnectionPreparationExecution, decorators: [{
type: Injectable
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jcmVhdGUtY29ubmVjdGlvbi1wcmVwYXJhdGlvbi5leGVjdXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2YtY29ubmVjdGlvbi9mLWNyZWF0ZS1jb25uZWN0aW9uL2NyZWF0ZS1wcmVwYXJhdGlvbi9mLWNyZWF0ZS1jb25uZWN0aW9uLXByZXBhcmF0aW9uLmV4ZWN1dGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV0RSxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNoRyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakUsT0FBTyxFQUFFLDZDQUE2QyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDMUYsT0FBTyxFQUFFLDZDQUE2QyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDMUYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFMUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBS2xELElBQU0scUNBQXFDLEdBQTNDLE1BQU0scUNBQXFDO0lBR3hDLFVBQVUsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDL0IsaUJBQWlCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDN0Msc0JBQXNCLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFFdkQsTUFBTSxDQUF3QjtJQUUvQixNQUFNLENBQUMsT0FBNEM7UUFDeEQsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDOUQsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLFlBQVksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7WUFDOUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQ3JCLElBQUksNkNBQTZDLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTyxDQUFDLENBQy9FLENBQUM7UUFDSixDQUFDO2FBQU0sSUFBSSxZQUFZLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO1lBQ3JELElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUNyQixJQUFJLDZDQUE2QyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU8sQ0FBQyxDQUMvRSxDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7SUFFTyxRQUFRLENBQUMsT0FBNEM7UUFDM0QsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDckUsQ0FBQztJQUVPLFFBQVEsQ0FBQyxLQUFvQjtRQUNuQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxpQkFBaUI7YUFDakMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7UUFDdkQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFFTyxrQkFBa0I7UUFDeEIsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLENBQUM7SUFDM0YsQ0FBQztJQUVPLGVBQWUsQ0FBQyxPQUE4QztRQUNwRSxPQUFPLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM1RSxDQUFDO3dHQXpDVSxxQ0FBcUM7NEdBQXJDLHFDQUFxQzs7QUFBckMscUNBQXFDO0lBRGpELGtCQUFrQixDQUFDLG1DQUFtQyxDQUFDO0dBQzNDLHFDQUFxQyxDQTBDakQ7OzRGQTFDWSxxQ0FBcUM7a0JBRmpELFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJSGFuZGxlciB9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGQ29tcG9uZW50c1N0b3JlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZi1zdG9yYWdlJztcbmltcG9ydCB7IGlzTm9kZU91dGxldCwgaXNOb2RlT3V0cHV0IH0gZnJvbSAnLi4vLi4vLi4vLi4vZi1jb25uZWN0b3JzJztcbmltcG9ydCB7IEZOb2RlQmFzZSB9IGZyb20gJy4uLy4uLy4uLy4uL2Ytbm9kZSc7XG5pbXBvcnQgeyBGQ3JlYXRlQ29ubmVjdGlvblByZXBhcmF0aW9uUmVxdWVzdCB9IGZyb20gJy4vZi1jcmVhdGUtY29ubmVjdGlvbi1wcmVwYXJhdGlvbi5yZXF1ZXN0JztcbmltcG9ydCB7IEZFeGVjdXRpb25SZWdpc3RlciwgRk1lZGlhdG9yIH0gZnJvbSAnQGZvYmxleC9tZWRpYXRvcic7XG5pbXBvcnQgeyBGQ3JlYXRlQ29ubmVjdGlvbkZyb21PdXRsZXRQcmVwYXJhdGlvblJlcXVlc3QgfSBmcm9tICcuL2Zyb20tb3V0bGV0LXByZXBhcmF0aW9uJztcbmltcG9ydCB7IEZDcmVhdGVDb25uZWN0aW9uRnJvbU91dHB1dFByZXBhcmF0aW9uUmVxdWVzdCB9IGZyb20gJy4vZnJvbS1vdXRwdXQtcHJlcGFyYXRpb24nO1xuaW1wb3J0IHsgRkRyYWdnYWJsZURhdGFDb250ZXh0IH0gZnJvbSAnLi4vLi4vLi4vZi1kcmFnZ2FibGUtZGF0YS1jb250ZXh0JztcbmltcG9ydCB7IEZSZWFzc2lnbkNvbm5lY3Rpb25QcmVwYXJhdGlvblJlcXVlc3QgfSBmcm9tICcuLi8uLi9mLXJlYXNzaWduLWNvbm5lY3Rpb24nO1xuaW1wb3J0IHsgaXNWYWxpZEV2ZW50VHJpZ2dlciB9IGZyb20gJy4uLy4uLy4uLy4uL2RvbWFpbic7XG5pbXBvcnQge0lQb2ludGVyRXZlbnR9IGZyb20gXCIuLi8uLi8uLi8uLi9kcmFnLXRvb2xraXRcIjtcblxuQEluamVjdGFibGUoKVxuQEZFeGVjdXRpb25SZWdpc3RlcihGQ3JlYXRlQ29ubmVjdGlvblByZXBhcmF0aW9uUmVxdWVzdClcbmV4cG9ydCBjbGFzcyBGQ3JlYXRlQ29ubmVjdGlvblByZXBhcmF0aW9uRXhlY3V0aW9uXG4gIGltcGxlbWVudHMgSUhhbmRsZXI8RkNyZWF0ZUNvbm5lY3Rpb25QcmVwYXJhdGlvblJlcXVlc3QsIHZvaWQ+IHtcblxuICBwcml2YXRlIF9mTWVkaWF0b3IgPSBpbmplY3QoRk1lZGlhdG9yKTtcbiAgcHJpdmF0ZSBfZkNvbXBvbmVudHNTdG9yZSA9IGluamVjdChGQ29tcG9uZW50c1N0b3JlKTtcbiAgcHJpdmF0ZSBfZkRyYWdnYWJsZURhdGFDb250ZXh0ID0gaW5qZWN0KEZEcmFnZ2FibGVEYXRhQ29udGV4dCk7XG5cbiAgcHJpdmF0ZSBfZk5vZGU6IEZOb2RlQmFzZSB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgaGFuZGxlKHJlcXVlc3Q6IEZDcmVhdGVDb25uZWN0aW9uUHJlcGFyYXRpb25SZXF1ZXN0KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9pc1ZhbGlkKHJlcXVlc3QpIHx8ICF0aGlzLl9pc1ZhbGlkVHJpZ2dlcihyZXF1ZXN0KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChpc05vZGVPdXRsZXQocmVxdWVzdC5ldmVudC50YXJnZXRFbGVtZW50KSkge1xuICAgICAgdGhpcy5fZk1lZGlhdG9yLmV4ZWN1dGU8dm9pZD4oXG4gICAgICAgIG5ldyBGQ3JlYXRlQ29ubmVjdGlvbkZyb21PdXRsZXRQcmVwYXJhdGlvblJlcXVlc3QocmVxdWVzdC5ldmVudCwgdGhpcy5fZk5vZGUhKVxuICAgICAgKTtcbiAgICB9IGVsc2UgaWYgKGlzTm9kZU91dHB1dChyZXF1ZXN0LmV2ZW50LnRhcmdldEVsZW1lbnQpKSB7XG4gICAgICB0aGlzLl9mTWVkaWF0b3IuZXhlY3V0ZTx2b2lkPihcbiAgICAgICAgbmV3IEZDcmVhdGVDb25uZWN0aW9uRnJvbU91dHB1dFByZXBhcmF0aW9uUmVxdWVzdChyZXF1ZXN0LmV2ZW50LCB0aGlzLl9mTm9kZSEpXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2lzVmFsaWQocmVxdWVzdDogRkNyZWF0ZUNvbm5lY3Rpb25QcmVwYXJhdGlvblJlcXVlc3QpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLl9nZXROb2RlKHJlcXVlc3QuZXZlbnQpICYmIHRoaXMuX2lzVmFsaWRDb25kaXRpb25zKCk7XG4gIH1cblxuICBwcml2YXRlIF9nZXROb2RlKGV2ZW50OiBJUG9pbnRlckV2ZW50KTogRk5vZGVCYXNlIHwgdW5kZWZpbmVkIHtcbiAgICB0aGlzLl9mTm9kZSA9IHRoaXMuX2ZDb21wb25lbnRzU3RvcmVcbiAgICAgIC5mTm9kZXMuZmluZChuID0+IG4uaXNDb250YWlucyhldmVudC50YXJnZXRFbGVtZW50KSk7XG4gICAgcmV0dXJuIHRoaXMuX2ZOb2RlO1xuICB9XG5cbiAgcHJpdmF0ZSBfaXNWYWxpZENvbmRpdGlvbnMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2ZEcmFnZ2FibGVEYXRhQ29udGV4dC5pc0VtcHR5KCkgJiYgISF0aGlzLl9mQ29tcG9uZW50c1N0b3JlLmZUZW1wQ29ubmVjdGlvbjtcbiAgfVxuXG4gIHByaXZhdGUgX2lzVmFsaWRUcmlnZ2VyKHJlcXVlc3Q6IEZSZWFzc2lnbkNvbm5lY3Rpb25QcmVwYXJhdGlvblJlcXVlc3QpOiBib29sZWFuIHtcbiAgICByZXR1cm4gaXNWYWxpZEV2ZW50VHJpZ2dlcihyZXF1ZXN0LmV2ZW50Lm9yaWdpbmFsRXZlbnQsIHJlcXVlc3QuZlRyaWdnZXIpO1xuICB9XG59XG4iXX0=