@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.
32 lines • 5.5 kB
JavaScript
import { __decorate } from "tslib";
import { inject, Injectable } from '@angular/core';
import { UpdateScaleRequest } from './update-scale-request';
import { FExecutionRegister } from '@foblex/mediator';
import { PointExtensions } from '@foblex/2d';
import { FComponentsStore } from '../../../f-storage';
import * as i0 from "@angular/core";
let UpdateScaleExecution = class UpdateScaleExecution {
_fComponentsStore = inject(FComponentsStore);
get transform() {
return this._fComponentsStore.fCanvas.transform;
}
handle(request) {
if (request.scale !== this.transform.scale) {
const summaryPosition = PointExtensions.sum(this.transform.scaledPosition, this.transform.position);
const newX = request.toPosition.x - (request.toPosition.x - summaryPosition.x) * request.scale / this.transform.scale;
const newY = request.toPosition.y - (request.toPosition.y - summaryPosition.y) * request.scale / this.transform.scale;
this.transform.scale = request.scale;
this.transform.scaledPosition = PointExtensions.sub(PointExtensions.initialize(newX, newY), this.transform.position);
}
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UpdateScaleExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UpdateScaleExecution });
};
UpdateScaleExecution = __decorate([
FExecutionRegister(UpdateScaleRequest)
], UpdateScaleExecution);
export { UpdateScaleExecution };
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UpdateScaleExecution, decorators: [{
type: Injectable
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLXNjYWxlLmV4ZWN1dGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZG9tYWluL2YtY2FudmFzL3VwZGF0ZS1zY2FsZS91cGRhdGUtc2NhbGUuZXhlY3V0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsa0JBQWtCLEVBQWMsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRSxPQUFPLEVBQW1CLGVBQWUsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM5RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFJL0MsSUFBTSxvQkFBb0IsR0FBMUIsTUFBTSxvQkFBb0I7SUFFdkIsaUJBQWlCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFFckQsSUFBWSxTQUFTO1FBQ25CLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQVEsQ0FBQyxTQUFTLENBQUM7SUFDbkQsQ0FBQztJQUVNLE1BQU0sQ0FBQyxPQUEyQjtRQUN2QyxJQUFJLE9BQU8sQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUUzQyxNQUFNLGVBQWUsR0FBRyxlQUFlLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7WUFFcEcsTUFBTSxJQUFJLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsR0FBRyxlQUFlLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztZQUN0SCxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLGVBQWUsQ0FBQyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDO1lBRXRILElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7WUFDckMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLEdBQUcsZUFBZSxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3ZILENBQUM7SUFDSCxDQUFDO3dHQW5CVSxvQkFBb0I7NEdBQXBCLG9CQUFvQjs7QUFBcEIsb0JBQW9CO0lBRGhDLGtCQUFrQixDQUFDLGtCQUFrQixDQUFDO0dBQzFCLG9CQUFvQixDQW9CaEM7OzRGQXBCWSxvQkFBb0I7a0JBRmhDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVwZGF0ZVNjYWxlUmVxdWVzdCB9IGZyb20gJy4vdXBkYXRlLXNjYWxlLXJlcXVlc3QnO1xuaW1wb3J0IHsgRkV4ZWN1dGlvblJlZ2lzdGVyLCBJRXhlY3V0aW9uIH0gZnJvbSAnQGZvYmxleC9tZWRpYXRvcic7XG5pbXBvcnQgeyBJVHJhbnNmb3JtTW9kZWwsIFBvaW50RXh0ZW5zaW9ucyB9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuaW1wb3J0IHsgRkNvbXBvbmVudHNTdG9yZSB9IGZyb20gJy4uLy4uLy4uL2Ytc3RvcmFnZSc7XG5cbkBJbmplY3RhYmxlKClcbkBGRXhlY3V0aW9uUmVnaXN0ZXIoVXBkYXRlU2NhbGVSZXF1ZXN0KVxuZXhwb3J0IGNsYXNzIFVwZGF0ZVNjYWxlRXhlY3V0aW9uIGltcGxlbWVudHMgSUV4ZWN1dGlvbjxVcGRhdGVTY2FsZVJlcXVlc3QsIHZvaWQ+IHtcblxuICBwcml2YXRlIF9mQ29tcG9uZW50c1N0b3JlID0gaW5qZWN0KEZDb21wb25lbnRzU3RvcmUpO1xuXG4gIHByaXZhdGUgZ2V0IHRyYW5zZm9ybSgpOiBJVHJhbnNmb3JtTW9kZWwge1xuICAgIHJldHVybiB0aGlzLl9mQ29tcG9uZW50c1N0b3JlLmZDYW52YXMhLnRyYW5zZm9ybTtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGUocmVxdWVzdDogVXBkYXRlU2NhbGVSZXF1ZXN0KTogdm9pZCB7XG4gICAgaWYgKHJlcXVlc3Quc2NhbGUgIT09IHRoaXMudHJhbnNmb3JtLnNjYWxlKSB7XG5cbiAgICAgIGNvbnN0IHN1bW1hcnlQb3NpdGlvbiA9IFBvaW50RXh0ZW5zaW9ucy5zdW0odGhpcy50cmFuc2Zvcm0uc2NhbGVkUG9zaXRpb24sIHRoaXMudHJhbnNmb3JtLnBvc2l0aW9uKTtcblxuICAgICAgY29uc3QgbmV3WCA9IHJlcXVlc3QudG9Qb3NpdGlvbi54IC0gKHJlcXVlc3QudG9Qb3NpdGlvbi54IC0gc3VtbWFyeVBvc2l0aW9uLngpICogcmVxdWVzdC5zY2FsZSAvIHRoaXMudHJhbnNmb3JtLnNjYWxlO1xuICAgICAgY29uc3QgbmV3WSA9IHJlcXVlc3QudG9Qb3NpdGlvbi55IC0gKHJlcXVlc3QudG9Qb3NpdGlvbi55IC0gc3VtbWFyeVBvc2l0aW9uLnkpICogcmVxdWVzdC5zY2FsZSAvIHRoaXMudHJhbnNmb3JtLnNjYWxlO1xuXG4gICAgICB0aGlzLnRyYW5zZm9ybS5zY2FsZSA9IHJlcXVlc3Quc2NhbGU7XG4gICAgICB0aGlzLnRyYW5zZm9ybS5zY2FsZWRQb3NpdGlvbiA9IFBvaW50RXh0ZW5zaW9ucy5zdWIoUG9pbnRFeHRlbnNpb25zLmluaXRpYWxpemUobmV3WCwgbmV3WSksIHRoaXMudHJhbnNmb3JtLnBvc2l0aW9uKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==