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