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 10 kB
import { __decorate } from "tslib"; import { inject, Injectable, Injector } from '@angular/core'; import { LineAlignmentPreparationRequest } from './line-alignment-preparation.request'; import { FExecutionRegister, FMediator } from '@foblex/mediator'; import { GetFlowHostElementRequest } from '../../../domain'; import { GetNormalizedElementRectRequest } from '../../../domain'; import { FComponentsStore } from '../../../f-storage'; import { FDraggableDataContext, FSummaryNodeMoveDragHandler } from '../../index'; import { FLineAlignmentDragHandler } from '../f-line-alignment.drag-handler'; import { LineService } from '../../../f-line-alignment'; import { BrowserService } from '@foblex/platform'; import * as i0 from "@angular/core"; let LineAlignmentPreparationExecution = class LineAlignmentPreparationExecution { _fMediator = inject(FMediator); _fComponentsStore = inject(FComponentsStore); _fDraggableDataContext = inject(FDraggableDataContext); _fBrowser = inject(BrowserService); _injector = inject(Injector); _lineService; handle(request) { this._addLineAlignmentDragHandler(request.fNodes, request.commonRect); } _addLineAlignmentDragHandler(fNodes, commonRect) { this._fDraggableDataContext.draggableItems.push(new FLineAlignmentDragHandler(this._injector, this._lineService || this._createLineService(), this._getFlowHostSize(), commonRect, this._getStaticNodeRects(fNodes), this._getCommonRestrictions())); } _getFlowHostSize() { return this._fMediator.execute(new GetFlowHostElementRequest()) .getBoundingClientRect(); } _createLineService() { this._lineService = new LineService(this._fBrowser, this._fComponentsStore.fLineAlignment.hostElement); return this._lineService; } _getStaticNodeRects(fNodes) { return this._getStaticNodes(fNodes).map((x) => { return this._fMediator.execute(new GetNormalizedElementRectRequest(x.hostElement)); }); } _getStaticNodes(fNodes) { return this._fComponentsStore.fNodes .filter((x) => !fNodes.includes(x)); } _getCommonRestrictions() { return this._fDraggableDataContext.draggableItems .filter((x) => x instanceof FSummaryNodeMoveDragHandler)[0].limits; } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LineAlignmentPreparationExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LineAlignmentPreparationExecution }); }; LineAlignmentPreparationExecution = __decorate([ FExecutionRegister(LineAlignmentPreparationRequest) ], LineAlignmentPreparationExecution); export { LineAlignmentPreparationExecution }; i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LineAlignmentPreparationExecution, decorators: [{ type: Injectable }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS1hbGlnbm1lbnQtcHJlcGFyYXRpb24uZXhlY3V0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9mLW5vZGUtbW92ZS9saW5lLWFsaWdubWVudC1wcmVwYXJhdGlvbi9saW5lLWFsaWdubWVudC1wcmVwYXJhdGlvbi5leGVjdXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUV2RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsU0FBUyxFQUFjLE1BQU0sa0JBQWtCLENBQUM7QUFDN0UsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUQsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLDJCQUEyQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2pGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBRTdFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBSTNDLElBQU0saUNBQWlDLEdBQXZDLE1BQU0saUNBQWlDO0lBRTNCLFVBQVUsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDL0IsaUJBQWlCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDN0Msc0JBQXNCLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDdkQsU0FBUyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNuQyxTQUFTLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBRXRDLFlBQVksQ0FBMEI7SUFFdkMsTUFBTSxDQUFDLE9BQXdDO1FBQ3BELElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRU8sNEJBQTRCLENBQUMsTUFBbUIsRUFBRSxVQUFpQjtRQUN6RSxJQUFJLENBQUMsc0JBQXNCLENBQUMsY0FBYyxDQUFDLElBQUksQ0FDN0MsSUFBSSx5QkFBeUIsQ0FDM0IsSUFBSSxDQUFDLFNBQVMsRUFDZCxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxFQUM5QyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsRUFDdkIsVUFBVSxFQUNWLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsRUFDaEMsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQzlCLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFTyxnQkFBZ0I7UUFDdEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBYyxJQUFJLHlCQUF5QixFQUFFLENBQUM7YUFDekUscUJBQXFCLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRU8sa0JBQWtCO1FBQ3hCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxXQUFXLENBQ2pDLElBQUksQ0FBQyxTQUFTLEVBQ2QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGNBQWUsQ0FBQyxXQUFXLENBQ25ELENBQUM7UUFDRixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztJQUVPLG1CQUFtQixDQUFDLE1BQW1CO1FBQzdDLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUM1QyxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFRLElBQUksK0JBQStCLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7UUFDNUYsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRU8sZUFBZSxDQUFDLE1BQW1CO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU07YUFDakMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRU8sc0JBQXNCO1FBQzVCLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLGNBQWM7YUFDOUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLFlBQVksMkJBQTJCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDdkUsQ0FBQzt3R0F0RFUsaUNBQWlDOzRHQUFqQyxpQ0FBaUM7O0FBQWpDLGlDQUFpQztJQUQ3QyxrQkFBa0IsQ0FBQywrQkFBK0IsQ0FBQztHQUN2QyxpQ0FBaUMsQ0F1RDdDOzs0RkF2RFksaUNBQWlDO2tCQUY3QyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTGluZUFsaWdubWVudFByZXBhcmF0aW9uUmVxdWVzdCB9IGZyb20gJy4vbGluZS1hbGlnbm1lbnQtcHJlcGFyYXRpb24ucmVxdWVzdCc7XG5pbXBvcnQgeyBJTWluTWF4UG9pbnQsIElSZWN0LCBJU2l6ZSB9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuaW1wb3J0IHsgRkV4ZWN1dGlvblJlZ2lzdGVyLCBGTWVkaWF0b3IsIElFeGVjdXRpb24gfSBmcm9tICdAZm9ibGV4L21lZGlhdG9yJztcbmltcG9ydCB7IEdldEZsb3dIb3N0RWxlbWVudFJlcXVlc3QgfSBmcm9tICcuLi8uLi8uLi9kb21haW4nO1xuaW1wb3J0IHsgR2V0Tm9ybWFsaXplZEVsZW1lbnRSZWN0UmVxdWVzdCB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbic7XG5pbXBvcnQgeyBGQ29tcG9uZW50c1N0b3JlIH0gZnJvbSAnLi4vLi4vLi4vZi1zdG9yYWdlJztcbmltcG9ydCB7IEZEcmFnZ2FibGVEYXRhQ29udGV4dCwgRlN1bW1hcnlOb2RlTW92ZURyYWdIYW5kbGVyIH0gZnJvbSAnLi4vLi4vaW5kZXgnO1xuaW1wb3J0IHsgRkxpbmVBbGlnbm1lbnREcmFnSGFuZGxlciB9IGZyb20gJy4uL2YtbGluZS1hbGlnbm1lbnQuZHJhZy1oYW5kbGVyJztcbmltcG9ydCB7IEZOb2RlQmFzZSB9IGZyb20gJy4uLy4uLy4uL2Ytbm9kZSc7XG5pbXBvcnQgeyBMaW5lU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2YtbGluZS1hbGlnbm1lbnQnO1xuaW1wb3J0IHsgQnJvd3NlclNlcnZpY2UgfSBmcm9tICdAZm9ibGV4L3BsYXRmb3JtJztcblxuQEluamVjdGFibGUoKVxuQEZFeGVjdXRpb25SZWdpc3RlcihMaW5lQWxpZ25tZW50UHJlcGFyYXRpb25SZXF1ZXN0KVxuZXhwb3J0IGNsYXNzIExpbmVBbGlnbm1lbnRQcmVwYXJhdGlvbkV4ZWN1dGlvbiBpbXBsZW1lbnRzIElFeGVjdXRpb248TGluZUFsaWdubWVudFByZXBhcmF0aW9uUmVxdWVzdCwgdm9pZD4ge1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2ZNZWRpYXRvciA9IGluamVjdChGTWVkaWF0b3IpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9mQ29tcG9uZW50c1N0b3JlID0gaW5qZWN0KEZDb21wb25lbnRzU3RvcmUpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9mRHJhZ2dhYmxlRGF0YUNvbnRleHQgPSBpbmplY3QoRkRyYWdnYWJsZURhdGFDb250ZXh0KTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZkJyb3dzZXIgPSBpbmplY3QoQnJvd3NlclNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9pbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG5cbiAgcHJpdmF0ZSBfbGluZVNlcnZpY2U6IExpbmVTZXJ2aWNlIHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyBoYW5kbGUocmVxdWVzdDogTGluZUFsaWdubWVudFByZXBhcmF0aW9uUmVxdWVzdCk6IHZvaWQge1xuICAgIHRoaXMuX2FkZExpbmVBbGlnbm1lbnREcmFnSGFuZGxlcihyZXF1ZXN0LmZOb2RlcywgcmVxdWVzdC5jb21tb25SZWN0KTtcbiAgfVxuXG4gIHByaXZhdGUgX2FkZExpbmVBbGlnbm1lbnREcmFnSGFuZGxlcihmTm9kZXM6IEZOb2RlQmFzZVtdLCBjb21tb25SZWN0OiBJUmVjdCk6IHZvaWQge1xuICAgIHRoaXMuX2ZEcmFnZ2FibGVEYXRhQ29udGV4dC5kcmFnZ2FibGVJdGVtcy5wdXNoKFxuICAgICAgbmV3IEZMaW5lQWxpZ25tZW50RHJhZ0hhbmRsZXIoXG4gICAgICAgIHRoaXMuX2luamVjdG9yLFxuICAgICAgICB0aGlzLl9saW5lU2VydmljZSB8fCB0aGlzLl9jcmVhdGVMaW5lU2VydmljZSgpLFxuICAgICAgICB0aGlzLl9nZXRGbG93SG9zdFNpemUoKSxcbiAgICAgICAgY29tbW9uUmVjdCxcbiAgICAgICAgdGhpcy5fZ2V0U3RhdGljTm9kZVJlY3RzKGZOb2RlcyksXG4gICAgICAgIHRoaXMuX2dldENvbW1vblJlc3RyaWN0aW9ucygpXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldEZsb3dIb3N0U2l6ZSgpOiBJU2l6ZSB7XG4gICAgcmV0dXJuIHRoaXMuX2ZNZWRpYXRvci5leGVjdXRlPEhUTUxFbGVtZW50PihuZXcgR2V0Rmxvd0hvc3RFbGVtZW50UmVxdWVzdCgpKVxuICAgICAgLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY3JlYXRlTGluZVNlcnZpY2UoKTogTGluZVNlcnZpY2Uge1xuICAgIHRoaXMuX2xpbmVTZXJ2aWNlID0gbmV3IExpbmVTZXJ2aWNlKFxuICAgICAgdGhpcy5fZkJyb3dzZXIsXG4gICAgICB0aGlzLl9mQ29tcG9uZW50c1N0b3JlLmZMaW5lQWxpZ25tZW50IS5ob3N0RWxlbWVudFxuICAgICk7XG4gICAgcmV0dXJuIHRoaXMuX2xpbmVTZXJ2aWNlO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0U3RhdGljTm9kZVJlY3RzKGZOb2RlczogRk5vZGVCYXNlW10pOiBJUmVjdFtdIHtcbiAgICByZXR1cm4gdGhpcy5fZ2V0U3RhdGljTm9kZXMoZk5vZGVzKS5tYXAoKHgpID0+IHtcbiAgICAgIHJldHVybiB0aGlzLl9mTWVkaWF0b3IuZXhlY3V0ZTxJUmVjdD4obmV3IEdldE5vcm1hbGl6ZWRFbGVtZW50UmVjdFJlcXVlc3QoeC5ob3N0RWxlbWVudCkpO1xuICAgIH0pXG4gIH1cblxuICBwcml2YXRlIF9nZXRTdGF0aWNOb2RlcyhmTm9kZXM6IEZOb2RlQmFzZVtdKTogRk5vZGVCYXNlW10ge1xuICAgIHJldHVybiB0aGlzLl9mQ29tcG9uZW50c1N0b3JlLmZOb2Rlc1xuICAgICAgLmZpbHRlcigoeCkgPT4gIWZOb2Rlcy5pbmNsdWRlcyh4KSk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRDb21tb25SZXN0cmljdGlvbnMoKTogSU1pbk1heFBvaW50IHtcbiAgICByZXR1cm4gdGhpcy5fZkRyYWdnYWJsZURhdGFDb250ZXh0LmRyYWdnYWJsZUl0ZW1zXG4gICAgICAuZmlsdGVyKCh4KSA9PiB4IGluc3RhbmNlb2YgRlN1bW1hcnlOb2RlTW92ZURyYWdIYW5kbGVyKVswXS5saW1pdHM7XG4gIH1cbn1cbiJdfQ==