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.

54 lines 8.48 kB
import { __decorate } from "tslib"; import { inject, Injectable } from '@angular/core'; import { RectExtensions } from '@foblex/2d'; import { GetCanBeSelectedItemsRequest } from './get-can-be-selected-items-request'; import { FExecutionRegister, FMediator } from '@foblex/mediator'; import { FComponentsStore } from '../../../f-storage'; import { FDraggableDataContext } from '../../../f-draggable'; import { GetNormalizedElementRectRequest } from '../../get-normalized-element-rect'; import * as i0 from "@angular/core"; let GetCanBeSelectedItemsExecution = class GetCanBeSelectedItemsExecution { _fMediator = inject(FMediator); _fComponentsStore = inject(FComponentsStore); _fDraggableDataContext = inject(FDraggableDataContext); get fNodes() { return this._fComponentsStore.fNodes; } get fConnections() { return this._fComponentsStore.fConnections; } get transform() { return this._fComponentsStore.fCanvas.transform; } handle() { return [...this.getNodesWithRects(), ...this.getConnectionsWithRects()].filter((x) => { return !this._fDraggableDataContext.selectedItems.includes(x.element); }); } getNodesWithRects() { return this.fNodes.filter((x) => !x.fSelectionDisabled).map((x) => { return { element: x, fRect: RectExtensions.mult(this._fMediator.execute(new GetNormalizedElementRectRequest(x.hostElement)), this.transform.scale) }; }); } getConnectionsWithRects() { return this.fConnections.filter((x) => !x.fSelectionDisabled).map((x) => { return { element: x, fRect: RectExtensions.mult(this._fMediator.execute(new GetNormalizedElementRectRequest(x.boundingElement)), this.transform.scale) }; }); } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GetCanBeSelectedItemsExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GetCanBeSelectedItemsExecution }); }; GetCanBeSelectedItemsExecution = __decorate([ FExecutionRegister(GetCanBeSelectedItemsRequest) ], GetCanBeSelectedItemsExecution); export { GetCanBeSelectedItemsExecution }; i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GetCanBeSelectedItemsExecution, decorators: [{ type: Injectable }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWNhbi1iZS1zZWxlY3RlZC1pdGVtcy5leGVjdXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2RvbWFpbi9mLXNlbGVjdGlvbi9nZXQtY2FuLWJlLXNlbGVjdGVkLWl0ZW1zL2dldC1jYW4tYmUtc2VsZWN0ZWQtaXRlbXMuZXhlY3V0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQTBCLGNBQWMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUVwRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUduRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsU0FBUyxFQUFjLE1BQU0sa0JBQWtCLENBQUM7QUFDN0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0QsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7O0FBSTdFLElBQU0sOEJBQThCLEdBQXBDLE1BQU0sOEJBQThCO0lBRWpDLFVBQVUsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDL0IsaUJBQWlCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDN0Msc0JBQXNCLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFFL0QsSUFBWSxNQUFNO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQztJQUN2QyxDQUFDO0lBRUQsSUFBWSxZQUFZO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksQ0FBQztJQUM3QyxDQUFDO0lBRUQsSUFBWSxTQUFTO1FBQ25CLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQVEsQ0FBQyxTQUFTLENBQUM7SUFDbkQsQ0FBQztJQUVNLE1BQU07UUFDWCxPQUFPLENBQUUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxHQUFHLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDckYsT0FBTyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN4RSxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxpQkFBaUI7UUFDdkIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNoRSxPQUFPO2dCQUNMLE9BQU8sRUFBRSxDQUFDO2dCQUNWLEtBQUssRUFBRSxjQUFjLENBQUMsSUFBSSxDQUN4QixJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBUSxJQUFJLCtCQUErQixDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxFQUNsRixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FDckI7YUFDRixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sdUJBQXVCO1FBQzdCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDdEUsT0FBTztnQkFDTCxPQUFPLEVBQUUsQ0FBQztnQkFDVixLQUFLLEVBQUUsY0FBYyxDQUFDLElBQUksQ0FDeEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQVEsSUFBSSwrQkFBK0IsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsRUFDdEYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQ3JCO2FBQ0YsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzt3R0E5Q1UsOEJBQThCOzRHQUE5Qiw4QkFBOEI7O0FBQTlCLDhCQUE4QjtJQUQxQyxrQkFBa0IsQ0FBQyw0QkFBNEIsQ0FBQztHQUNwQyw4QkFBOEIsQ0ErQzFDOzs0RkEvQ1ksOEJBQThCO2tCQUYxQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJUmVjdCwgSVRyYW5zZm9ybU1vZGVsLCBSZWN0RXh0ZW5zaW9ucyB9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuaW1wb3J0IHsgSUNhbkJlU2VsZWN0ZWRFbGVtZW50QW5kUmVjdCB9IGZyb20gJy4vaS1jYW4tYmUtc2VsZWN0ZWQtZWxlbWVudC1hbmQtcmVjdCc7XG5pbXBvcnQgeyBHZXRDYW5CZVNlbGVjdGVkSXRlbXNSZXF1ZXN0IH0gZnJvbSAnLi9nZXQtY2FuLWJlLXNlbGVjdGVkLWl0ZW1zLXJlcXVlc3QnO1xuaW1wb3J0IHsgRk5vZGVCYXNlIH0gZnJvbSAnLi4vLi4vLi4vZi1ub2RlJztcbmltcG9ydCB7IEZDb25uZWN0aW9uQmFzZSB9IGZyb20gJy4uLy4uLy4uL2YtY29ubmVjdGlvbic7XG5pbXBvcnQgeyBGRXhlY3V0aW9uUmVnaXN0ZXIsIEZNZWRpYXRvciwgSUV4ZWN1dGlvbiB9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuaW1wb3J0IHsgRkNvbXBvbmVudHNTdG9yZSB9IGZyb20gJy4uLy4uLy4uL2Ytc3RvcmFnZSc7XG5pbXBvcnQgeyBGRHJhZ2dhYmxlRGF0YUNvbnRleHQgfSBmcm9tICcuLi8uLi8uLi9mLWRyYWdnYWJsZSc7XG5pbXBvcnQgeyBHZXROb3JtYWxpemVkRWxlbWVudFJlY3RSZXF1ZXN0IH0gZnJvbSAnLi4vLi4vZ2V0LW5vcm1hbGl6ZWQtZWxlbWVudC1yZWN0JztcblxuQEluamVjdGFibGUoKVxuQEZFeGVjdXRpb25SZWdpc3RlcihHZXRDYW5CZVNlbGVjdGVkSXRlbXNSZXF1ZXN0KVxuZXhwb3J0IGNsYXNzIEdldENhbkJlU2VsZWN0ZWRJdGVtc0V4ZWN1dGlvbiBpbXBsZW1lbnRzIElFeGVjdXRpb248dm9pZCwgSUNhbkJlU2VsZWN0ZWRFbGVtZW50QW5kUmVjdFtdPiB7XG5cbiAgcHJpdmF0ZSBfZk1lZGlhdG9yID0gaW5qZWN0KEZNZWRpYXRvcik7XG4gIHByaXZhdGUgX2ZDb21wb25lbnRzU3RvcmUgPSBpbmplY3QoRkNvbXBvbmVudHNTdG9yZSk7XG4gIHByaXZhdGUgX2ZEcmFnZ2FibGVEYXRhQ29udGV4dCA9IGluamVjdChGRHJhZ2dhYmxlRGF0YUNvbnRleHQpO1xuXG4gIHByaXZhdGUgZ2V0IGZOb2RlcygpOiBGTm9kZUJhc2VbXSB7XG4gICAgcmV0dXJuIHRoaXMuX2ZDb21wb25lbnRzU3RvcmUuZk5vZGVzO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgZkNvbm5lY3Rpb25zKCk6IEZDb25uZWN0aW9uQmFzZVtdIHtcbiAgICByZXR1cm4gdGhpcy5fZkNvbXBvbmVudHNTdG9yZS5mQ29ubmVjdGlvbnM7XG4gIH1cblxuICBwcml2YXRlIGdldCB0cmFuc2Zvcm0oKTogSVRyYW5zZm9ybU1vZGVsIHtcbiAgICByZXR1cm4gdGhpcy5fZkNvbXBvbmVudHNTdG9yZS5mQ2FudmFzIS50cmFuc2Zvcm07XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlKCk6IElDYW5CZVNlbGVjdGVkRWxlbWVudEFuZFJlY3RbXSB7XG4gICAgcmV0dXJuIFsgLi4udGhpcy5nZXROb2Rlc1dpdGhSZWN0cygpLCAuLi50aGlzLmdldENvbm5lY3Rpb25zV2l0aFJlY3RzKCkgXS5maWx0ZXIoKHgpID0+IHtcbiAgICAgIHJldHVybiAhdGhpcy5fZkRyYWdnYWJsZURhdGFDb250ZXh0LnNlbGVjdGVkSXRlbXMuaW5jbHVkZXMoeC5lbGVtZW50KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Tm9kZXNXaXRoUmVjdHMoKTogSUNhbkJlU2VsZWN0ZWRFbGVtZW50QW5kUmVjdFtdIHtcbiAgICByZXR1cm4gdGhpcy5mTm9kZXMuZmlsdGVyKCh4KSA9PiAheC5mU2VsZWN0aW9uRGlzYWJsZWQpLm1hcCgoeCkgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZWxlbWVudDogeCxcbiAgICAgICAgZlJlY3Q6IFJlY3RFeHRlbnNpb25zLm11bHQoXG4gICAgICAgICAgdGhpcy5fZk1lZGlhdG9yLmV4ZWN1dGU8SVJlY3Q+KG5ldyBHZXROb3JtYWxpemVkRWxlbWVudFJlY3RSZXF1ZXN0KHguaG9zdEVsZW1lbnQpKSxcbiAgICAgICAgICB0aGlzLnRyYW5zZm9ybS5zY2FsZVxuICAgICAgICApXG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb25uZWN0aW9uc1dpdGhSZWN0cygpOiBJQ2FuQmVTZWxlY3RlZEVsZW1lbnRBbmRSZWN0W10ge1xuICAgIHJldHVybiB0aGlzLmZDb25uZWN0aW9ucy5maWx0ZXIoKHgpID0+ICF4LmZTZWxlY3Rpb25EaXNhYmxlZCkubWFwKCh4KSA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBlbGVtZW50OiB4LFxuICAgICAgICBmUmVjdDogUmVjdEV4dGVuc2lvbnMubXVsdChcbiAgICAgICAgICB0aGlzLl9mTWVkaWF0b3IuZXhlY3V0ZTxJUmVjdD4obmV3IEdldE5vcm1hbGl6ZWRFbGVtZW50UmVjdFJlcXVlc3QoeC5ib3VuZGluZ0VsZW1lbnQpKSxcbiAgICAgICAgICB0aGlzLnRyYW5zZm9ybS5zY2FsZVxuICAgICAgICApXG4gICAgICB9O1xuICAgIH0pO1xuICB9XG59XG4iXX0=