@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.
63 lines • 11.2 kB
JavaScript
import { __decorate } from "tslib";
import { inject, Injectable } from '@angular/core';
import { FReassignConnectionFinalizeRequest } from './f-reassign-connection-finalize.request';
import { FComponentsStore } from '../../../../f-storage';
import { FDraggableDataContext } from '../../../f-draggable-data-context';
import { FExecutionRegister, FMediator } from '@foblex/mediator';
import { FReassignConnectionDragHandler } from '../f-reassign-connection.drag-handler';
import { FReassignConnectionEvent } from '../f-reassign-connection.event';
import { FindInputAtPositionRequest } from '../../../../domain';
import { FDragHandlerResult } from '../../../f-drag-handler';
import * as i0 from "@angular/core";
let FReassignConnectionFinalizeExecution = class FReassignConnectionFinalizeExecution {
_fResult = inject(FDragHandlerResult);
_fMediator = inject(FMediator);
_fComponentsStore = inject(FComponentsStore);
_fDraggableDataContext = inject(FDraggableDataContext);
get _fDraggable() {
return this._fComponentsStore.fDraggable;
}
get _fDragHandler() {
return this._fDraggableDataContext.draggableItems[0];
}
handle(request) {
if (!this._isDroppedConnectionReassignEvent()) {
return;
}
this._applyReassignEvent(request.event);
this._fDragHandler.onPointerUp();
}
_isDroppedConnectionReassignEvent() {
return this._fDraggableDataContext.draggableItems.some((x) => x instanceof FReassignConnectionDragHandler);
}
_applyReassignEvent(event) {
const fInput = this._getInputUnderPointer(event);
if (!!fInput && !this._isReassignToDifferentInput(fInput)) {
return;
}
this._emitReassignConnectionEvent(event, fInput);
}
_getInputUnderPointer(event) {
return this._fMediator.execute(new FindInputAtPositionRequest(event.getPosition(), this._fResult.getData().toConnectorRect, this._fResult.getData().canBeConnectedInputs));
}
_isReassignToDifferentInput(fInput) {
return this._fResult.getData().fConnection.fInputId !== fInput.fId;
}
_emitReassignConnectionEvent(event, fInput) {
this._fDraggable.fReassignConnection.emit(this._getEventData(event, fInput));
}
_getEventData(event, fInput) {
const fConnection = this._fResult.getData().fConnection;
return new FReassignConnectionEvent(fConnection.fId, fConnection.fOutputId, fConnection.fInputId, fInput?.fId, event.getPosition());
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FReassignConnectionFinalizeExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FReassignConnectionFinalizeExecution });
};
FReassignConnectionFinalizeExecution = __decorate([
FExecutionRegister(FReassignConnectionFinalizeRequest)
], FReassignConnectionFinalizeExecution);
export { FReassignConnectionFinalizeExecution };
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FReassignConnectionFinalizeExecution, decorators: [{
type: Injectable
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1yZWFzc2lnbi1jb25uZWN0aW9uLWZpbmFsaXplLmV4ZWN1dGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1kcmFnZ2FibGUvZi1jb25uZWN0aW9uL2YtcmVhc3NpZ24tY29ubmVjdGlvbi9yZWFzc2lnbi1maW5hbGl6ZS9mLXJlYXNzaWduLWNvbm5lY3Rpb24tZmluYWxpemUuZXhlY3V0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUM5RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsU0FBUyxFQUFjLE1BQU0sa0JBQWtCLENBQUM7QUFDN0UsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFFdkYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFMUUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBTXRELElBQU0sb0NBQW9DLEdBQTFDLE1BQU0sb0NBQW9DO0lBRXZDLFFBQVEsR0FBdUQsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFFMUYsVUFBVSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMvQixpQkFBaUIsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUM3QyxzQkFBc0IsR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUUvRCxJQUFZLFdBQVc7UUFDckIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsVUFBVyxDQUFDO0lBQzVDLENBQUM7SUFFRCxJQUFZLGFBQWE7UUFDdkIsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsY0FBYyxDQUFFLENBQUMsQ0FBb0MsQ0FBQztJQUMzRixDQUFDO0lBRU0sTUFBTSxDQUFDLE9BQTJDO1FBQ3ZELElBQUksQ0FBQyxJQUFJLENBQUMsaUNBQWlDLEVBQUUsRUFBRSxDQUFDO1lBQzlDLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFTyxpQ0FBaUM7UUFDdkMsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsY0FBYyxDQUFDLElBQUksQ0FDcEQsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsWUFBWSw4QkFBOEIsQ0FDbkQsQ0FBQztJQUNKLENBQUM7SUFFTyxtQkFBbUIsQ0FBQyxLQUFvQjtRQUM5QyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakQsSUFDRSxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLDJCQUEyQixDQUFDLE1BQU0sQ0FBQyxFQUNyRCxDQUFDO1lBQ0QsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsNEJBQTRCLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFTyxxQkFBcUIsQ0FBQyxLQUFvQjtRQUNoRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUM1QixJQUFJLDBCQUEwQixDQUM1QixLQUFLLENBQUMsV0FBVyxFQUFFLEVBQ25CLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUMsZUFBZSxFQUN2QyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDLG9CQUFvQixDQUM3QyxDQUNGLENBQUM7SUFDSixDQUFDO0lBRU8sMkJBQTJCLENBQUMsTUFBc0I7UUFDeEQsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEtBQUssTUFBTSxDQUFDLEdBQUcsQ0FBQztJQUNyRSxDQUFDO0lBRU8sNEJBQTRCLENBQUMsS0FBb0IsRUFBRSxNQUF1QjtRQUNoRixJQUFJLENBQUMsV0FBVyxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQy9FLENBQUM7SUFFTyxhQUFhLENBQUMsS0FBb0IsRUFBRSxNQUF1QjtRQUNqRSxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDLFdBQVcsQ0FBQztRQUV4RCxPQUFPLElBQUksd0JBQXdCLENBQ2pDLFdBQVcsQ0FBQyxHQUFHLEVBQ2YsV0FBVyxDQUFDLFNBQVMsRUFDckIsV0FBVyxDQUFDLFFBQVEsRUFDcEIsTUFBTSxFQUFFLEdBQUcsRUFBRSxLQUFLLENBQUMsV0FBVyxFQUFFLENBQ2pDLENBQUM7SUFDSixDQUFDO3dHQXBFVSxvQ0FBb0M7NEdBQXBDLG9DQUFvQzs7QUFBcEMsb0NBQW9DO0lBRGhELGtCQUFrQixDQUFDLGtDQUFrQyxDQUFDO0dBQzFDLG9DQUFvQyxDQXFFaEQ7OzRGQXJFWSxvQ0FBb0M7a0JBRmhELFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZSZWFzc2lnbkNvbm5lY3Rpb25GaW5hbGl6ZVJlcXVlc3QgfSBmcm9tICcuL2YtcmVhc3NpZ24tY29ubmVjdGlvbi1maW5hbGl6ZS5yZXF1ZXN0JztcbmltcG9ydCB7IEZDb21wb25lbnRzU3RvcmUgfSBmcm9tICcuLi8uLi8uLi8uLi9mLXN0b3JhZ2UnO1xuaW1wb3J0IHsgRkRyYWdnYWJsZURhdGFDb250ZXh0IH0gZnJvbSAnLi4vLi4vLi4vZi1kcmFnZ2FibGUtZGF0YS1jb250ZXh0JztcbmltcG9ydCB7IEZFeGVjdXRpb25SZWdpc3RlciwgRk1lZGlhdG9yLCBJRXhlY3V0aW9uIH0gZnJvbSAnQGZvYmxleC9tZWRpYXRvcic7XG5pbXBvcnQgeyBGUmVhc3NpZ25Db25uZWN0aW9uRHJhZ0hhbmRsZXIgfSBmcm9tICcuLi9mLXJlYXNzaWduLWNvbm5lY3Rpb24uZHJhZy1oYW5kbGVyJztcbmltcG9ydCB7IEZEcmFnZ2FibGVCYXNlIH0gZnJvbSAnLi4vLi4vLi4vZi1kcmFnZ2FibGUtYmFzZSc7XG5pbXBvcnQgeyBGUmVhc3NpZ25Db25uZWN0aW9uRXZlbnQgfSBmcm9tICcuLi9mLXJlYXNzaWduLWNvbm5lY3Rpb24uZXZlbnQnO1xuaW1wb3J0IHsgRkNvbm5lY3RvckJhc2UgfSBmcm9tICcuLi8uLi8uLi8uLi9mLWNvbm5lY3RvcnMnO1xuaW1wb3J0IHsgRmluZElucHV0QXRQb3NpdGlvblJlcXVlc3QgfSBmcm9tICcuLi8uLi8uLi8uLi9kb21haW4nO1xuaW1wb3J0IHsgRkRyYWdIYW5kbGVyUmVzdWx0IH0gZnJvbSAnLi4vLi4vLi4vZi1kcmFnLWhhbmRsZXInO1xuaW1wb3J0IHsgSUZSZWFzc2lnbkNvbm5lY3Rpb25EcmFnUmVzdWx0IH0gZnJvbSAnLi4vaS1mLXJlYXNzaWduLWNvbm5lY3Rpb24tZHJhZy1yZXN1bHQnO1xuaW1wb3J0IHtJUG9pbnRlckV2ZW50fSBmcm9tIFwiLi4vLi4vLi4vLi4vZHJhZy10b29sa2l0XCI7XG5cbkBJbmplY3RhYmxlKClcbkBGRXhlY3V0aW9uUmVnaXN0ZXIoRlJlYXNzaWduQ29ubmVjdGlvbkZpbmFsaXplUmVxdWVzdClcbmV4cG9ydCBjbGFzcyBGUmVhc3NpZ25Db25uZWN0aW9uRmluYWxpemVFeGVjdXRpb24gaW1wbGVtZW50cyBJRXhlY3V0aW9uPEZSZWFzc2lnbkNvbm5lY3Rpb25GaW5hbGl6ZVJlcXVlc3QsIHZvaWQ+IHtcblxuICBwcml2YXRlIF9mUmVzdWx0OiBGRHJhZ0hhbmRsZXJSZXN1bHQ8SUZSZWFzc2lnbkNvbm5lY3Rpb25EcmFnUmVzdWx0PiA9IGluamVjdChGRHJhZ0hhbmRsZXJSZXN1bHQpO1xuXG4gIHByaXZhdGUgX2ZNZWRpYXRvciA9IGluamVjdChGTWVkaWF0b3IpO1xuICBwcml2YXRlIF9mQ29tcG9uZW50c1N0b3JlID0gaW5qZWN0KEZDb21wb25lbnRzU3RvcmUpO1xuICBwcml2YXRlIF9mRHJhZ2dhYmxlRGF0YUNvbnRleHQgPSBpbmplY3QoRkRyYWdnYWJsZURhdGFDb250ZXh0KTtcblxuICBwcml2YXRlIGdldCBfZkRyYWdnYWJsZSgpOiBGRHJhZ2dhYmxlQmFzZSB7XG4gICAgcmV0dXJuIHRoaXMuX2ZDb21wb25lbnRzU3RvcmUuZkRyYWdnYWJsZSE7XG4gIH1cblxuICBwcml2YXRlIGdldCBfZkRyYWdIYW5kbGVyKCk6IEZSZWFzc2lnbkNvbm5lY3Rpb25EcmFnSGFuZGxlciB7XG4gICAgcmV0dXJuIHRoaXMuX2ZEcmFnZ2FibGVEYXRhQ29udGV4dC5kcmFnZ2FibGVJdGVtc1sgMCBdIGFzIEZSZWFzc2lnbkNvbm5lY3Rpb25EcmFnSGFuZGxlcjtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGUocmVxdWVzdDogRlJlYXNzaWduQ29ubmVjdGlvbkZpbmFsaXplUmVxdWVzdCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5faXNEcm9wcGVkQ29ubmVjdGlvblJlYXNzaWduRXZlbnQoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl9hcHBseVJlYXNzaWduRXZlbnQocmVxdWVzdC5ldmVudCk7XG4gICAgdGhpcy5fZkRyYWdIYW5kbGVyLm9uUG9pbnRlclVwKCk7XG4gIH1cblxuICBwcml2YXRlIF9pc0Ryb3BwZWRDb25uZWN0aW9uUmVhc3NpZ25FdmVudCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZkRyYWdnYWJsZURhdGFDb250ZXh0LmRyYWdnYWJsZUl0ZW1zLnNvbWUoXG4gICAgICAoeCkgPT4geCBpbnN0YW5jZW9mIEZSZWFzc2lnbkNvbm5lY3Rpb25EcmFnSGFuZGxlclxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9hcHBseVJlYXNzaWduRXZlbnQoZXZlbnQ6IElQb2ludGVyRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBmSW5wdXQgPSB0aGlzLl9nZXRJbnB1dFVuZGVyUG9pbnRlcihldmVudCk7XG4gICAgaWYgKFxuICAgICAgISFmSW5wdXQgJiYgIXRoaXMuX2lzUmVhc3NpZ25Ub0RpZmZlcmVudElucHV0KGZJbnB1dClcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9lbWl0UmVhc3NpZ25Db25uZWN0aW9uRXZlbnQoZXZlbnQsIGZJbnB1dCk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRJbnB1dFVuZGVyUG9pbnRlcihldmVudDogSVBvaW50ZXJFdmVudCk6IEZDb25uZWN0b3JCYXNlIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fZk1lZGlhdG9yLmV4ZWN1dGU8RkNvbm5lY3RvckJhc2UgfCB1bmRlZmluZWQ+KFxuICAgICAgbmV3IEZpbmRJbnB1dEF0UG9zaXRpb25SZXF1ZXN0KFxuICAgICAgICBldmVudC5nZXRQb3NpdGlvbigpLFxuICAgICAgICB0aGlzLl9mUmVzdWx0LmdldERhdGEoKS50b0Nvbm5lY3RvclJlY3QsXG4gICAgICAgIHRoaXMuX2ZSZXN1bHQuZ2V0RGF0YSgpLmNhbkJlQ29ubmVjdGVkSW5wdXRzXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX2lzUmVhc3NpZ25Ub0RpZmZlcmVudElucHV0KGZJbnB1dDogRkNvbm5lY3RvckJhc2UpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZlJlc3VsdC5nZXREYXRhKCkuZkNvbm5lY3Rpb24uZklucHV0SWQgIT09IGZJbnB1dC5mSWQ7XG4gIH1cblxuICBwcml2YXRlIF9lbWl0UmVhc3NpZ25Db25uZWN0aW9uRXZlbnQoZXZlbnQ6IElQb2ludGVyRXZlbnQsIGZJbnB1dD86IEZDb25uZWN0b3JCYXNlKTogdm9pZCB7XG4gICAgdGhpcy5fZkRyYWdnYWJsZS5mUmVhc3NpZ25Db25uZWN0aW9uLmVtaXQodGhpcy5fZ2V0RXZlbnREYXRhKGV2ZW50LCBmSW5wdXQpKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldEV2ZW50RGF0YShldmVudDogSVBvaW50ZXJFdmVudCwgZklucHV0PzogRkNvbm5lY3RvckJhc2UpOiBGUmVhc3NpZ25Db25uZWN0aW9uRXZlbnQge1xuICAgIGNvbnN0IGZDb25uZWN0aW9uID0gdGhpcy5fZlJlc3VsdC5nZXREYXRhKCkuZkNvbm5lY3Rpb247XG5cbiAgICByZXR1cm4gbmV3IEZSZWFzc2lnbkNvbm5lY3Rpb25FdmVudChcbiAgICAgIGZDb25uZWN0aW9uLmZJZCxcbiAgICAgIGZDb25uZWN0aW9uLmZPdXRwdXRJZCxcbiAgICAgIGZDb25uZWN0aW9uLmZJbnB1dElkLFxuICAgICAgZklucHV0Py5mSWQsIGV2ZW50LmdldFBvc2l0aW9uKClcbiAgICApO1xuICB9XG59XG4iXX0=