@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.
57 lines • 8.63 kB
JavaScript
import { __decorate } from "tslib";
import { inject, Injectable } from '@angular/core';
import { FNodeDropToGroupFinalizeRequest } from './f-node-drop-to-group-finalize.request';
import { FExecutionRegister } from '@foblex/mediator';
import { FDraggableDataContext } from '../../f-draggable-data-context';
import { FNodeDropToGroupDragHandler } from '../f-node-drop-to-group.drag-handler';
import { FComponentsStore } from '../../../f-storage';
import { FSummaryNodeMoveDragHandler } from '../../f-node-move';
import { FDropToGroupEvent } from '../f-drop-to-group.event';
import * as i0 from "@angular/core";
let FNodeDropToGroupFinalizeExecution = class FNodeDropToGroupFinalizeExecution {
_fDraggableDataContext = inject(FDraggableDataContext);
_fComponentsStore = inject(FComponentsStore);
handle(request) {
if (!this._isValid()) {
return;
}
const item = this._getDragHandleItem();
if (item.fNodeWithRect) {
this._emitDroppedChildrenEvent(item.fNodeWithRect.node.fId, request.event);
}
item.onPointerUp?.();
}
_isValid() {
return this._fDraggableDataContext.draggableItems
.some((x) => x instanceof FNodeDropToGroupDragHandler);
}
_emitDroppedChildrenEvent(fTargetId, event) {
this._fComponentsStore.fDraggable?.fDropToGroup.emit(new FDropToGroupEvent(fTargetId, this._getDraggedNodeIds(), event.getPosition()));
}
_getDragHandleItem() {
const result = this._findDragHandleItem();
if (!result) {
throw new Error('NodeDragToParentDragHandler not found');
}
return result;
}
_findDragHandleItem() {
return this._fDraggableDataContext.draggableItems
.find((x) => x instanceof FNodeDropToGroupDragHandler);
}
_getDraggedNodeIds() {
return this._fDraggableDataContext.draggableItems
.find((x) => x instanceof FSummaryNodeMoveDragHandler)?.fHandlers
.map((x) => x.fNode.fId) || [];
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FNodeDropToGroupFinalizeExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FNodeDropToGroupFinalizeExecution });
};
FNodeDropToGroupFinalizeExecution = __decorate([
FExecutionRegister(FNodeDropToGroupFinalizeRequest)
], FNodeDropToGroupFinalizeExecution);
export { FNodeDropToGroupFinalizeExecution };
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FNodeDropToGroupFinalizeExecution, decorators: [{
type: Injectable
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1ub2RlLWRyb3AtdG8tZ3JvdXAtZmluYWxpemUuZXhlY3V0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9mLWRyb3AtdG8tZ3JvdXAvZHJvcC10by1ncm91cC1maW5hbGl6ZS9mLW5vZGUtZHJvcC10by1ncm91cC1maW5hbGl6ZS5leGVjdXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzFGLE9BQU8sRUFBRSxrQkFBa0IsRUFBYyxNQUFNLGtCQUFrQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3RELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQUt0RCxJQUFNLGlDQUFpQyxHQUF2QyxNQUFNLGlDQUFpQztJQUczQixzQkFBc0IsR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUN2RCxpQkFBaUIsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUV2RCxNQUFNLENBQUMsT0FBd0M7UUFDcEQsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO1lBQ3JCLE9BQU87UUFDVCxDQUFDO1FBQ0QsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDdkMsSUFBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0UsQ0FBQztRQUNELElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFTyxRQUFRO1FBQ2QsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsY0FBYzthQUM5QyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsWUFBWSwyQkFBMkIsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFTyx5QkFBeUIsQ0FBQyxTQUFpQixFQUFFLEtBQW9CO1FBQ3ZFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLEVBQUUsWUFBWSxDQUFDLElBQUksQ0FDbEQsSUFBSSxpQkFBaUIsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixFQUFFLEVBQUUsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQ2pGLENBQUM7SUFDSixDQUFDO0lBRU8sa0JBQWtCO1FBQ3hCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQzFDLElBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNYLE1BQU0sSUFBSSxLQUFLLENBQUMsdUNBQXVDLENBQUMsQ0FBQztRQUMzRCxDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVPLG1CQUFtQjtRQUN6QixPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxjQUFjO2FBQzlDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxZQUFZLDJCQUEyQixDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVPLGtCQUFrQjtRQUN4QixPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxjQUFjO2FBQzlDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxZQUFZLDJCQUEyQixDQUFDLEVBQUUsU0FBUzthQUNoRSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ25DLENBQUM7d0dBN0NVLGlDQUFpQzs0R0FBakMsaUNBQWlDOztBQUFqQyxpQ0FBaUM7SUFEN0Msa0JBQWtCLENBQUMsK0JBQStCLENBQUM7R0FDdkMsaUNBQWlDLENBOEM3Qzs7NEZBOUNZLGlDQUFpQztrQkFGN0MsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRk5vZGVEcm9wVG9Hcm91cEZpbmFsaXplUmVxdWVzdCB9IGZyb20gJy4vZi1ub2RlLWRyb3AtdG8tZ3JvdXAtZmluYWxpemUucmVxdWVzdCc7XG5pbXBvcnQgeyBGRXhlY3V0aW9uUmVnaXN0ZXIsIElFeGVjdXRpb24gfSBmcm9tICdAZm9ibGV4L21lZGlhdG9yJztcbmltcG9ydCB7IEZEcmFnZ2FibGVEYXRhQ29udGV4dCB9IGZyb20gJy4uLy4uL2YtZHJhZ2dhYmxlLWRhdGEtY29udGV4dCc7XG5pbXBvcnQgeyBGTm9kZURyb3BUb0dyb3VwRHJhZ0hhbmRsZXIgfSBmcm9tICcuLi9mLW5vZGUtZHJvcC10by1ncm91cC5kcmFnLWhhbmRsZXInO1xuaW1wb3J0IHsgRkNvbXBvbmVudHNTdG9yZSB9IGZyb20gJy4uLy4uLy4uL2Ytc3RvcmFnZSc7XG5pbXBvcnQgeyBGU3VtbWFyeU5vZGVNb3ZlRHJhZ0hhbmRsZXIgfSBmcm9tICcuLi8uLi9mLW5vZGUtbW92ZSc7XG5pbXBvcnQgeyBGRHJvcFRvR3JvdXBFdmVudCB9IGZyb20gJy4uL2YtZHJvcC10by1ncm91cC5ldmVudCc7XG5pbXBvcnQge0lQb2ludGVyRXZlbnR9IGZyb20gXCIuLi8uLi8uLi9kcmFnLXRvb2xraXRcIjtcblxuQEluamVjdGFibGUoKVxuQEZFeGVjdXRpb25SZWdpc3RlcihGTm9kZURyb3BUb0dyb3VwRmluYWxpemVSZXF1ZXN0KVxuZXhwb3J0IGNsYXNzIEZOb2RlRHJvcFRvR3JvdXBGaW5hbGl6ZUV4ZWN1dGlvblxuICBpbXBsZW1lbnRzIElFeGVjdXRpb248Rk5vZGVEcm9wVG9Hcm91cEZpbmFsaXplUmVxdWVzdCwgdm9pZD4ge1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2ZEcmFnZ2FibGVEYXRhQ29udGV4dCA9IGluamVjdChGRHJhZ2dhYmxlRGF0YUNvbnRleHQpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9mQ29tcG9uZW50c1N0b3JlID0gaW5qZWN0KEZDb21wb25lbnRzU3RvcmUpO1xuXG4gIHB1YmxpYyBoYW5kbGUocmVxdWVzdDogRk5vZGVEcm9wVG9Hcm91cEZpbmFsaXplUmVxdWVzdCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5faXNWYWxpZCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGl0ZW0gPSB0aGlzLl9nZXREcmFnSGFuZGxlSXRlbSgpO1xuICAgIGlmKGl0ZW0uZk5vZGVXaXRoUmVjdCkge1xuICAgICAgdGhpcy5fZW1pdERyb3BwZWRDaGlsZHJlbkV2ZW50KGl0ZW0uZk5vZGVXaXRoUmVjdC5ub2RlLmZJZCwgcmVxdWVzdC5ldmVudCk7XG4gICAgfVxuICAgIGl0ZW0ub25Qb2ludGVyVXA/LigpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaXNWYWxpZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZkRyYWdnYWJsZURhdGFDb250ZXh0LmRyYWdnYWJsZUl0ZW1zXG4gICAgICAuc29tZSgoeCkgPT4geCBpbnN0YW5jZW9mIEZOb2RlRHJvcFRvR3JvdXBEcmFnSGFuZGxlcik7XG4gIH1cblxuICBwcml2YXRlIF9lbWl0RHJvcHBlZENoaWxkcmVuRXZlbnQoZlRhcmdldElkOiBzdHJpbmcsIGV2ZW50OiBJUG9pbnRlckV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5fZkNvbXBvbmVudHNTdG9yZS5mRHJhZ2dhYmxlPy5mRHJvcFRvR3JvdXAuZW1pdChcbiAgICAgIG5ldyBGRHJvcFRvR3JvdXBFdmVudChmVGFyZ2V0SWQsIHRoaXMuX2dldERyYWdnZWROb2RlSWRzKCksIGV2ZW50LmdldFBvc2l0aW9uKCkpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldERyYWdIYW5kbGVJdGVtKCk6IEZOb2RlRHJvcFRvR3JvdXBEcmFnSGFuZGxlciB7XG4gICAgY29uc3QgcmVzdWx0ID0gdGhpcy5fZmluZERyYWdIYW5kbGVJdGVtKCk7XG4gICAgaWYoIXJlc3VsdCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdOb2RlRHJhZ1RvUGFyZW50RHJhZ0hhbmRsZXIgbm90IGZvdW5kJyk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcml2YXRlIF9maW5kRHJhZ0hhbmRsZUl0ZW0oKTogRk5vZGVEcm9wVG9Hcm91cERyYWdIYW5kbGVyIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fZkRyYWdnYWJsZURhdGFDb250ZXh0LmRyYWdnYWJsZUl0ZW1zXG4gICAgICAuZmluZCgoeCkgPT4geCBpbnN0YW5jZW9mIEZOb2RlRHJvcFRvR3JvdXBEcmFnSGFuZGxlcik7XG4gIH1cblxuICBwcml2YXRlIF9nZXREcmFnZ2VkTm9kZUlkcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuX2ZEcmFnZ2FibGVEYXRhQ29udGV4dC5kcmFnZ2FibGVJdGVtc1xuICAgICAgLmZpbmQoKHgpID0+IHggaW5zdGFuY2VvZiBGU3VtbWFyeU5vZGVNb3ZlRHJhZ0hhbmRsZXIpPy5mSGFuZGxlcnNcbiAgICAgIC5tYXAoKHgpID0+IHguZk5vZGUuZklkKSB8fCBbXTtcbiAgfVxufVxuIl19