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.

30 lines 4.44 kB
import { Directive, ElementRef, inject, Input, } from "@angular/core"; import { setRectToViewBox } from '@foblex/2d'; import { FMediator } from '@foblex/mediator'; import { FMinimapData, MinimapCalculateSvgScaleAndViewBoxRequest } from './domain'; import * as i0 from "@angular/core"; export class FMinimapFlowDirective { fMinSize = 1000; _fMediator = inject(FMediator); _elementReference = inject(ElementRef); get hostElement() { return this._elementReference.nativeElement; } model = new FMinimapData(this.hostElement); redraw() { const { scale, viewBox } = this._fMediator.execute(new MinimapCalculateSvgScaleAndViewBoxRequest(this.hostElement, this.fMinSize)); this.model = new FMinimapData(this.hostElement, scale, viewBox); setRectToViewBox(viewBox, this.hostElement); } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FMinimapFlowDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: FMinimapFlowDirective, selector: "svg[fMinimapFlow]", inputs: { fMinSize: "fMinSize" }, ngImport: i0 }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FMinimapFlowDirective, decorators: [{ type: Directive, args: [{ selector: 'svg[fMinimapFlow]' }] }], propDecorators: { fMinSize: [{ type: Input }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1taW5pbWFwLWZsb3cuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLW1pbmltYXAvZi1taW5pbWFwLWZsb3cuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEdBQ3JDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM5QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFlBQVksRUFBNEIseUNBQXlDLEVBQUUsTUFBTSxVQUFVLENBQUM7O0FBSzdHLE1BQU0sT0FBTyxxQkFBcUI7SUFHekIsUUFBUSxHQUFXLElBQUksQ0FBQztJQUV2QixVQUFVLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQy9CLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUUvQyxJQUFXLFdBQVc7UUFDcEIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDO0lBQzlDLENBQUM7SUFFTSxLQUFLLEdBQWlCLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUV6RCxNQUFNO1FBQ1gsTUFBTSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FDL0MsSUFBSSx5Q0FBeUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FDL0UsQ0FBQztRQUNGLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFaEUsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM5QyxDQUFDO3dHQXJCVSxxQkFBcUI7NEZBQXJCLHFCQUFxQjs7NEZBQXJCLHFCQUFxQjtrQkFIakMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsbUJBQW1CO2lCQUM5Qjs4QkFJUSxRQUFRO3NCQURkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIGluamVjdCwgSW5wdXQsIE9uSW5pdCxcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IHNldFJlY3RUb1ZpZXdCb3ggfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7IEZNZWRpYXRvciB9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuaW1wb3J0IHsgRk1pbmltYXBEYXRhLCBJRk1pbmltYXBTY2FsZUFuZFZpZXdCb3gsIE1pbmltYXBDYWxjdWxhdGVTdmdTY2FsZUFuZFZpZXdCb3hSZXF1ZXN0IH0gZnJvbSAnLi9kb21haW4nO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdzdmdbZk1pbmltYXBGbG93XSdcbn0pXG5leHBvcnQgY2xhc3MgRk1pbmltYXBGbG93RGlyZWN0aXZlIHtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZk1pblNpemU6IG51bWJlciA9IDEwMDA7XG5cbiAgcHJpdmF0ZSBfZk1lZGlhdG9yID0gaW5qZWN0KEZNZWRpYXRvcik7XG4gIHByaXZhdGUgX2VsZW1lbnRSZWZlcmVuY2UgPSBpbmplY3QoRWxlbWVudFJlZik7XG5cbiAgcHVibGljIGdldCBob3N0RWxlbWVudCgpOiBTVkdTVkdFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5fZWxlbWVudFJlZmVyZW5jZS5uYXRpdmVFbGVtZW50O1xuICB9XG5cbiAgcHVibGljIG1vZGVsOiBGTWluaW1hcERhdGEgPSBuZXcgRk1pbmltYXBEYXRhKHRoaXMuaG9zdEVsZW1lbnQpO1xuXG4gIHB1YmxpYyByZWRyYXcoKTogdm9pZCB7XG4gICAgY29uc3QgeyBzY2FsZSwgdmlld0JveH0gPSB0aGlzLl9mTWVkaWF0b3IuZXhlY3V0ZTxJRk1pbmltYXBTY2FsZUFuZFZpZXdCb3g+KFxuICAgICAgbmV3IE1pbmltYXBDYWxjdWxhdGVTdmdTY2FsZUFuZFZpZXdCb3hSZXF1ZXN0KHRoaXMuaG9zdEVsZW1lbnQsIHRoaXMuZk1pblNpemUpXG4gICAgKTtcbiAgICB0aGlzLm1vZGVsID0gbmV3IEZNaW5pbWFwRGF0YSh0aGlzLmhvc3RFbGVtZW50LCBzY2FsZSwgdmlld0JveCk7XG5cbiAgICBzZXRSZWN0VG9WaWV3Qm94KHZpZXdCb3gsIHRoaXMuaG9zdEVsZW1lbnQpO1xuICB9XG59XG4iXX0=