@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.
68 lines • 9.51 kB
JavaScript
import { __decorate } from "tslib";
import { inject, Injectable } from '@angular/core';
import { MinimapDrawNodesRequest } from './minimap-draw-nodes.request';
import { FExecutionRegister } from '@foblex/mediator';
import { createSVGElement } from '../../../domain';
import { FNodeDirective } from '../../../f-node';
import { RectExtensions, setRectToElement } from '@foblex/2d';
import { FComponentsStore } from '../../../f-storage';
import { BrowserService } from '@foblex/platform';
import * as i0 from "@angular/core";
let MinimapDrawNodesExecution = class MinimapDrawNodesExecution {
_fBrowser = inject(BrowserService);
_fComponentStore = inject(FComponentsStore);
get _fFlow() {
return this._fComponentStore.fFlow;
}
get _fNodes() {
return this._fComponentStore.fNodes;
}
get _fCanvas() {
return this._fComponentStore.fCanvas;
}
handle(request) {
return this._createMinimapNodeElements(request);
}
_createMinimapNodeElements(request) {
return this._fNodes.map((x) => {
const element = this._createNodeElement();
setRectToElement(this._getNodeRect(x), element);
this._applyClassList(element, x, x instanceof FNodeDirective);
return element;
});
}
_createNodeElement() {
return createSVGElement('rect', this._fBrowser);
}
_getNodeRect(node) {
return RectExtensions.div(this._getNodeRectInFlow(node), this._fCanvas.transform.scale);
}
_getNodeRectInFlow(node) {
return RectExtensions.elementTransform(RectExtensions.fromElement(node.hostElement), this._fFlow.hostElement);
}
_applyClassList(element, node, isNode) {
element.classList.add('f-component', isNode ? 'f-minimap-node' : 'f-minimap-group');
element.classList.add(...this._getClassList(node));
if (node.isSelected()) {
element.classList.add('f-selected');
}
}
_getClassList(node) {
if (Array.isArray(node.fMinimapClass)) {
return node.fMinimapClass;
}
else {
return [node.fMinimapClass];
}
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MinimapDrawNodesExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MinimapDrawNodesExecution });
};
MinimapDrawNodesExecution = __decorate([
FExecutionRegister(MinimapDrawNodesRequest)
], MinimapDrawNodesExecution);
export { MinimapDrawNodesExecution };
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MinimapDrawNodesExecution, decorators: [{
type: Injectable
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWluaW1hcC1kcmF3LW5vZGVzLmV4ZWN1dGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1taW5pbWFwL2RvbWFpbi9taW5pbWFwLWRyYXctbm9kZXMvbWluaW1hcC1kcmF3LW5vZGVzLmV4ZWN1dGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdkUsT0FBTyxFQUFFLGtCQUFrQixFQUFjLE1BQU0sa0JBQWtCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFhLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVELE9BQU8sRUFBUyxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDckUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQU0zQyxJQUFNLHlCQUF5QixHQUEvQixNQUFNLHlCQUF5QjtJQUVuQixTQUFTLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ25DLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBRTdELElBQVksTUFBTTtRQUNoQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7SUFDckMsQ0FBQztJQUVELElBQVksT0FBTztRQUNqQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUM7SUFDdEMsQ0FBQztJQUVELElBQVksUUFBUTtRQUNsQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFRLENBQUM7SUFDeEMsQ0FBQztJQUVNLE1BQU0sQ0FBQyxPQUFnQztRQUM1QyxPQUFPLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRU8sMEJBQTBCLENBQUMsT0FBZ0M7UUFDakUsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQzVCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQzFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDaEQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsWUFBWSxjQUFjLENBQUMsQ0FBQztZQUM5RCxPQUFPLE9BQU8sQ0FBQztRQUNqQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxrQkFBa0I7UUFDeEIsT0FBTyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFTyxZQUFZLENBQUMsSUFBZTtRQUNsQyxPQUFPLGNBQWMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFGLENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxJQUFlO1FBQ3hDLE9BQU8sY0FBYyxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFLElBQUksQ0FBQyxNQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDakgsQ0FBQztJQUVPLGVBQWUsQ0FBQyxPQUF1QixFQUFFLElBQWUsRUFBRSxNQUFlO1FBQy9FLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3BGLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ25ELElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUM7WUFDdEIsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDdEMsQ0FBQztJQUNILENBQUM7SUFFTyxhQUFhLENBQUMsSUFBZTtRQUNuQyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7WUFDdEMsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBQzVCLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM5QixDQUFDO0lBQ0gsQ0FBQzt3R0F4RFUseUJBQXlCOzRHQUF6Qix5QkFBeUI7O0FBQXpCLHlCQUF5QjtJQURyQyxrQkFBa0IsQ0FBQyx1QkFBdUIsQ0FBQztHQUMvQix5QkFBeUIsQ0F5RHJDOzs0RkF6RFkseUJBQXlCO2tCQUZyQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNaW5pbWFwRHJhd05vZGVzUmVxdWVzdCB9IGZyb20gJy4vbWluaW1hcC1kcmF3LW5vZGVzLnJlcXVlc3QnO1xuaW1wb3J0IHsgRkV4ZWN1dGlvblJlZ2lzdGVyLCBJRXhlY3V0aW9uIH0gZnJvbSAnQGZvYmxleC9tZWRpYXRvcic7XG5pbXBvcnQgeyBjcmVhdGVTVkdFbGVtZW50IH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluJztcbmltcG9ydCB7IEZOb2RlQmFzZSwgRk5vZGVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9mLW5vZGUnO1xuaW1wb3J0IHsgSVJlY3QsIFJlY3RFeHRlbnNpb25zLCBzZXRSZWN0VG9FbGVtZW50IH0gZnJvbSAnQGZvYmxleC8yZCc7XG5pbXBvcnQgeyBGQ29tcG9uZW50c1N0b3JlIH0gZnJvbSAnLi4vLi4vLi4vZi1zdG9yYWdlJztcbmltcG9ydCB7IEJyb3dzZXJTZXJ2aWNlIH0gZnJvbSAnQGZvYmxleC9wbGF0Zm9ybSc7XG5pbXBvcnQgeyBGQ2FudmFzQmFzZSB9IGZyb20gJy4uLy4uLy4uL2YtY2FudmFzJztcbmltcG9ydCB7IEZGbG93QmFzZSB9IGZyb20gJy4uLy4uLy4uL2YtZmxvdyc7XG5cbkBJbmplY3RhYmxlKClcbkBGRXhlY3V0aW9uUmVnaXN0ZXIoTWluaW1hcERyYXdOb2Rlc1JlcXVlc3QpXG5leHBvcnQgY2xhc3MgTWluaW1hcERyYXdOb2Rlc0V4ZWN1dGlvbiBpbXBsZW1lbnRzIElFeGVjdXRpb248TWluaW1hcERyYXdOb2Rlc1JlcXVlc3QsIFNWR1JlY3RFbGVtZW50W10+IHtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9mQnJvd3NlciA9IGluamVjdChCcm93c2VyU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2ZDb21wb25lbnRTdG9yZSA9IGluamVjdChGQ29tcG9uZW50c1N0b3JlKTtcblxuICBwcml2YXRlIGdldCBfZkZsb3coKTogRkZsb3dCYXNlIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fZkNvbXBvbmVudFN0b3JlLmZGbG93O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgX2ZOb2RlcygpOiBGTm9kZUJhc2VbXSB7XG4gICAgcmV0dXJuIHRoaXMuX2ZDb21wb25lbnRTdG9yZS5mTm9kZXM7XG4gIH1cblxuICBwcml2YXRlIGdldCBfZkNhbnZhcygpOiBGQ2FudmFzQmFzZSB7XG4gICAgcmV0dXJuIHRoaXMuX2ZDb21wb25lbnRTdG9yZS5mQ2FudmFzITtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGUocmVxdWVzdDogTWluaW1hcERyYXdOb2Rlc1JlcXVlc3QpOiBTVkdSZWN0RWxlbWVudFtdIHtcbiAgICByZXR1cm4gdGhpcy5fY3JlYXRlTWluaW1hcE5vZGVFbGVtZW50cyhyZXF1ZXN0KTtcbiAgfVxuXG4gIHByaXZhdGUgX2NyZWF0ZU1pbmltYXBOb2RlRWxlbWVudHMocmVxdWVzdDogTWluaW1hcERyYXdOb2Rlc1JlcXVlc3QpOiBTVkdSZWN0RWxlbWVudFtdIHtcbiAgICByZXR1cm4gdGhpcy5fZk5vZGVzLm1hcCgoeCkgPT4ge1xuICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMuX2NyZWF0ZU5vZGVFbGVtZW50KCk7XG4gICAgICBzZXRSZWN0VG9FbGVtZW50KHRoaXMuX2dldE5vZGVSZWN0KHgpLCBlbGVtZW50KTtcbiAgICAgIHRoaXMuX2FwcGx5Q2xhc3NMaXN0KGVsZW1lbnQsIHgsIHggaW5zdGFuY2VvZiBGTm9kZURpcmVjdGl2ZSk7XG4gICAgICByZXR1cm4gZWxlbWVudDtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2NyZWF0ZU5vZGVFbGVtZW50KCk6IFNWR1JlY3RFbGVtZW50IHtcbiAgICByZXR1cm4gY3JlYXRlU1ZHRWxlbWVudCgncmVjdCcsIHRoaXMuX2ZCcm93c2VyKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldE5vZGVSZWN0KG5vZGU6IEZOb2RlQmFzZSk6IElSZWN0IHtcbiAgICByZXR1cm4gUmVjdEV4dGVuc2lvbnMuZGl2KHRoaXMuX2dldE5vZGVSZWN0SW5GbG93KG5vZGUpLCB0aGlzLl9mQ2FudmFzLnRyYW5zZm9ybS5zY2FsZSk7XG4gIH1cblxuICBwcml2YXRlIF9nZXROb2RlUmVjdEluRmxvdyhub2RlOiBGTm9kZUJhc2UpOiBJUmVjdCB7XG4gICAgcmV0dXJuIFJlY3RFeHRlbnNpb25zLmVsZW1lbnRUcmFuc2Zvcm0oUmVjdEV4dGVuc2lvbnMuZnJvbUVsZW1lbnQobm9kZS5ob3N0RWxlbWVudCksIHRoaXMuX2ZGbG93IS5ob3N0RWxlbWVudCk7XG4gIH1cblxuICBwcml2YXRlIF9hcHBseUNsYXNzTGlzdChlbGVtZW50OiBTVkdSZWN0RWxlbWVudCwgbm9kZTogRk5vZGVCYXNlLCBpc05vZGU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBlbGVtZW50LmNsYXNzTGlzdC5hZGQoJ2YtY29tcG9uZW50JywgaXNOb2RlID8gJ2YtbWluaW1hcC1ub2RlJyA6ICdmLW1pbmltYXAtZ3JvdXAnKTtcbiAgICBlbGVtZW50LmNsYXNzTGlzdC5hZGQoLi4udGhpcy5fZ2V0Q2xhc3NMaXN0KG5vZGUpKTtcbiAgICBpZiAobm9kZS5pc1NlbGVjdGVkKCkpIHtcbiAgICAgIGVsZW1lbnQuY2xhc3NMaXN0LmFkZCgnZi1zZWxlY3RlZCcpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2dldENsYXNzTGlzdChub2RlOiBGTm9kZUJhc2UpOiBzdHJpbmdbXSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkobm9kZS5mTWluaW1hcENsYXNzKSkge1xuICAgICAgcmV0dXJuIG5vZGUuZk1pbmltYXBDbGFzcztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFtub2RlLmZNaW5pbWFwQ2xhc3NdO1xuICAgIH1cbiAgfVxufVxuIl19