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.

57 lines 8.63 kB
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