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.

56 lines 9.51 kB
import { __decorate } from "tslib"; import { inject, Injectable, Injector } from '@angular/core'; import { FExternalItemPreparationRequest } from './f-external-item-preparation.request'; import { Point } from '@foblex/2d'; import { FExecutionRegister } from '@foblex/mediator'; import { FComponentsStore } from '../../../f-storage'; import { FExternalItemService, getExternalItem, isExternalItem } from '../../../f-external-item'; import { FExternalItemDragHandler } from '../f-external-item.drag-handler'; import { FDraggableDataContext } from '../../../f-draggable'; import { isValidEventTrigger } from '../../../domain'; import * as i0 from "@angular/core"; let FExternalItemPreparationExecution = class FExternalItemPreparationExecution { _fExternalItemService = inject(FExternalItemService); _fDraggableDataContext = inject(FDraggableDataContext); _fComponentsStore = inject(FComponentsStore); _injector = inject(Injector); get _fHost() { return this._fComponentsStore.fFlow.hostElement; } get _transform() { return this._fComponentsStore.fCanvas.transform; } handle(request) { if (!this._isValid(request) || !this._isValidTrigger(request)) { return; } this._fDraggableDataContext.onPointerDownScale = this._transform.scale; this._fDraggableDataContext.onPointerDownPosition = Point.fromPoint(request.event.getPosition()) .elementTransform(this._fHost).div(this._transform.scale); this._fDraggableDataContext.draggableItems = [ new FExternalItemDragHandler(this._injector, this._getExternalItem(request.event.targetElement)) ]; } _isValid(request) { return this._isValidExternalItem(request.event.targetElement, this._getExternalItem(request.event.targetElement)); } _isValidExternalItem(element, fExternalItem) { return isExternalItem(element) && !!fExternalItem && !fExternalItem.fDisabled; } _getExternalItem(targetElement) { return this._fExternalItemService.getItem(getExternalItem(targetElement)); } _isValidTrigger(request) { return isValidEventTrigger(request.event.originalEvent, request.fTrigger); } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FExternalItemPreparationExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FExternalItemPreparationExecution }); }; FExternalItemPreparationExecution = __decorate([ FExecutionRegister(FExternalItemPreparationRequest) ], FExternalItemPreparationExecution); export { FExternalItemPreparationExecution }; i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FExternalItemPreparationExecution, decorators: [{ type: Injectable }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1leHRlcm5hbC1pdGVtLXByZXBhcmF0aW9uLmV4ZWN1dGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1leHRlcm5hbC1pdGVtL2RvbWFpbi9wcmVwYXJhdGlvbi9mLWV4dGVybmFsLWl0ZW0tcHJlcGFyYXRpb24uZXhlY3V0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDeEYsT0FBTyxFQUFrQixLQUFLLEVBQUMsTUFBTSxZQUFZLENBQUM7QUFDbEQsT0FBTyxFQUFFLGtCQUFrQixFQUFjLE1BQU0sa0JBQWtCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFxQixvQkFBb0IsRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDcEgsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDM0UsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBSS9DLElBQU0saUNBQWlDLEdBQXZDLE1BQU0saUNBQWlDO0lBRTNCLHFCQUFxQixHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQ3JELHNCQUFzQixHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQ3ZELGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzdDLFNBQVMsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFOUMsSUFBWSxNQUFNO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQU0sQ0FBQyxXQUFXLENBQUM7SUFDbkQsQ0FBQztJQUVELElBQVksVUFBVTtRQUNwQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFRLENBQUMsU0FBUyxDQUFDO0lBQ25ELENBQUM7SUFFTSxNQUFNLENBQUMsT0FBd0M7UUFDcEQsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDOUQsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLENBQUMsc0JBQXNCLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUM7UUFDdkUsSUFBSSxDQUFDLHNCQUFzQixDQUFDLHFCQUFxQixHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQzthQUM3RixnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUQsSUFBSSxDQUFDLHNCQUFzQixDQUFDLGNBQWMsR0FBRztZQUMzQyxJQUFJLHdCQUF3QixDQUMxQixJQUFJLENBQUMsU0FBUyxFQUNkLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBRSxDQUNwRDtTQUNGLENBQUM7SUFDSixDQUFDO0lBRU8sUUFBUSxDQUFDLE9BQXdDO1FBQ3ZELE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7SUFDcEgsQ0FBQztJQUVPLG9CQUFvQixDQUFDLE9BQW9CLEVBQUUsYUFBaUM7UUFDbEYsT0FBTyxjQUFjLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLGFBQWEsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUM7SUFDaEYsQ0FBQztJQUVPLGdCQUFnQixDQUFDLGFBQTBCO1FBQ2pELE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRU8sZUFBZSxDQUFDLE9BQXdDO1FBQzlELE9BQU8sbUJBQW1CLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzVFLENBQUM7d0dBNUNVLGlDQUFpQzs0R0FBakMsaUNBQWlDOztBQUFqQyxpQ0FBaUM7SUFEN0Msa0JBQWtCLENBQUMsK0JBQStCLENBQUM7R0FDdkMsaUNBQWlDLENBNkM3Qzs7NEZBN0NZLGlDQUFpQztrQkFGN0MsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZFeHRlcm5hbEl0ZW1QcmVwYXJhdGlvblJlcXVlc3QgfSBmcm9tICcuL2YtZXh0ZXJuYWwtaXRlbS1wcmVwYXJhdGlvbi5yZXF1ZXN0JztcbmltcG9ydCB7SVRyYW5zZm9ybU1vZGVsLCBQb2ludH0gZnJvbSAnQGZvYmxleC8yZCc7XG5pbXBvcnQgeyBGRXhlY3V0aW9uUmVnaXN0ZXIsIElFeGVjdXRpb24gfSBmcm9tICdAZm9ibGV4L21lZGlhdG9yJztcbmltcG9ydCB7IEZDb21wb25lbnRzU3RvcmUgfSBmcm9tICcuLi8uLi8uLi9mLXN0b3JhZ2UnO1xuaW1wb3J0IHsgRkV4dGVybmFsSXRlbUJhc2UsIEZFeHRlcm5hbEl0ZW1TZXJ2aWNlLCBnZXRFeHRlcm5hbEl0ZW0sIGlzRXh0ZXJuYWxJdGVtIH0gZnJvbSAnLi4vLi4vLi4vZi1leHRlcm5hbC1pdGVtJztcbmltcG9ydCB7IEZFeHRlcm5hbEl0ZW1EcmFnSGFuZGxlciB9IGZyb20gJy4uL2YtZXh0ZXJuYWwtaXRlbS5kcmFnLWhhbmRsZXInO1xuaW1wb3J0IHsgRkRyYWdnYWJsZURhdGFDb250ZXh0IH0gZnJvbSAnLi4vLi4vLi4vZi1kcmFnZ2FibGUnO1xuaW1wb3J0IHsgaXNWYWxpZEV2ZW50VHJpZ2dlciB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbic7XG5cbkBJbmplY3RhYmxlKClcbkBGRXhlY3V0aW9uUmVnaXN0ZXIoRkV4dGVybmFsSXRlbVByZXBhcmF0aW9uUmVxdWVzdClcbmV4cG9ydCBjbGFzcyBGRXh0ZXJuYWxJdGVtUHJlcGFyYXRpb25FeGVjdXRpb24gaW1wbGVtZW50cyBJRXhlY3V0aW9uPEZFeHRlcm5hbEl0ZW1QcmVwYXJhdGlvblJlcXVlc3QsIHZvaWQ+IHtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9mRXh0ZXJuYWxJdGVtU2VydmljZSA9IGluamVjdChGRXh0ZXJuYWxJdGVtU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2ZEcmFnZ2FibGVEYXRhQ29udGV4dCA9IGluamVjdChGRHJhZ2dhYmxlRGF0YUNvbnRleHQpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9mQ29tcG9uZW50c1N0b3JlID0gaW5qZWN0KEZDb21wb25lbnRzU3RvcmUpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9pbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG5cbiAgcHJpdmF0ZSBnZXQgX2ZIb3N0KCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5fZkNvbXBvbmVudHNTdG9yZS5mRmxvdyEuaG9zdEVsZW1lbnQ7XG4gIH1cblxuICBwcml2YXRlIGdldCBfdHJhbnNmb3JtKCk6IElUcmFuc2Zvcm1Nb2RlbCB7XG4gICAgcmV0dXJuIHRoaXMuX2ZDb21wb25lbnRzU3RvcmUuZkNhbnZhcyEudHJhbnNmb3JtO1xuICB9XG5cbiAgcHVibGljIGhhbmRsZShyZXF1ZXN0OiBGRXh0ZXJuYWxJdGVtUHJlcGFyYXRpb25SZXF1ZXN0KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9pc1ZhbGlkKHJlcXVlc3QpIHx8ICF0aGlzLl9pc1ZhbGlkVHJpZ2dlcihyZXF1ZXN0KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl9mRHJhZ2dhYmxlRGF0YUNvbnRleHQub25Qb2ludGVyRG93blNjYWxlID0gdGhpcy5fdHJhbnNmb3JtLnNjYWxlO1xuICAgIHRoaXMuX2ZEcmFnZ2FibGVEYXRhQ29udGV4dC5vblBvaW50ZXJEb3duUG9zaXRpb24gPSBQb2ludC5mcm9tUG9pbnQocmVxdWVzdC5ldmVudC5nZXRQb3NpdGlvbigpKVxuICAgICAgLmVsZW1lbnRUcmFuc2Zvcm0odGhpcy5fZkhvc3QpLmRpdih0aGlzLl90cmFuc2Zvcm0uc2NhbGUpO1xuICAgIHRoaXMuX2ZEcmFnZ2FibGVEYXRhQ29udGV4dC5kcmFnZ2FibGVJdGVtcyA9IFtcbiAgICAgIG5ldyBGRXh0ZXJuYWxJdGVtRHJhZ0hhbmRsZXIoXG4gICAgICAgIHRoaXMuX2luamVjdG9yLFxuICAgICAgICB0aGlzLl9nZXRFeHRlcm5hbEl0ZW0ocmVxdWVzdC5ldmVudC50YXJnZXRFbGVtZW50KSEsXG4gICAgICApXG4gICAgXTtcbiAgfVxuXG4gIHByaXZhdGUgX2lzVmFsaWQocmVxdWVzdDogRkV4dGVybmFsSXRlbVByZXBhcmF0aW9uUmVxdWVzdCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9pc1ZhbGlkRXh0ZXJuYWxJdGVtKHJlcXVlc3QuZXZlbnQudGFyZ2V0RWxlbWVudCwgdGhpcy5fZ2V0RXh0ZXJuYWxJdGVtKHJlcXVlc3QuZXZlbnQudGFyZ2V0RWxlbWVudCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaXNWYWxpZEV4dGVybmFsSXRlbShlbGVtZW50OiBIVE1MRWxlbWVudCwgZkV4dGVybmFsSXRlbT86IEZFeHRlcm5hbEl0ZW1CYXNlKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGlzRXh0ZXJuYWxJdGVtKGVsZW1lbnQpICYmICEhZkV4dGVybmFsSXRlbSAmJiAhZkV4dGVybmFsSXRlbS5mRGlzYWJsZWQ7XG4gIH1cblxuICBwcml2YXRlIF9nZXRFeHRlcm5hbEl0ZW0odGFyZ2V0RWxlbWVudDogSFRNTEVsZW1lbnQpOiBGRXh0ZXJuYWxJdGVtQmFzZTxhbnk+IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fZkV4dGVybmFsSXRlbVNlcnZpY2UuZ2V0SXRlbShnZXRFeHRlcm5hbEl0ZW0odGFyZ2V0RWxlbWVudCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaXNWYWxpZFRyaWdnZXIocmVxdWVzdDogRkV4dGVybmFsSXRlbVByZXBhcmF0aW9uUmVxdWVzdCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBpc1ZhbGlkRXZlbnRUcmlnZ2VyKHJlcXVlc3QuZXZlbnQub3JpZ2luYWxFdmVudCwgcmVxdWVzdC5mVHJpZ2dlcik7XG4gIH1cbn1cbiJdfQ==