@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
JavaScript
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=