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.

53 lines 7.7 kB
import { Component, ElementRef, inject, Input } from '@angular/core'; import { FSelectionAreaBase } from './f-selection-area-base'; import { F_BEFORE_MAIN_PLUGIN } from '../f-draggable'; import { FMediator } from '@foblex/mediator'; import { SelectionAreaFinalizeRequest, SelectionAreaPreparationRequest } from './domain'; import * as i0 from "@angular/core"; export class FSelectionAreaComponent extends FSelectionAreaBase { _fMediator = inject(FMediator); _elementReference = inject(ElementRef); fTrigger = (event) => { return event.shiftKey; }; get hostElement() { return this._elementReference.nativeElement; } ngOnInit() { this.hostElement.style.display = 'none'; } hide() { this.hostElement.style.display = 'none'; } show() { this.hostElement.style.display = 'block'; } draw(object) { const style = this.hostElement.style; style.left = object.x + 'px'; style.top = object.y + 'px'; style.width = object.width + 'px'; style.height = object.height + 'px'; } onPointerDown(event) { this._fMediator.execute(new SelectionAreaPreparationRequest(event, this, this.fTrigger)); } onPointerUp(event) { this._fMediator.execute(new SelectionAreaFinalizeRequest(event)); } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FSelectionAreaComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FSelectionAreaComponent, selector: "f-selection-area", inputs: { fTrigger: "fTrigger" }, host: { classAttribute: "f-selection-area f-component" }, providers: [ { provide: F_BEFORE_MAIN_PLUGIN, useExisting: FSelectionAreaComponent }, ], usesInheritance: true, ngImport: i0, template: ``, isInline: true, styles: [":host{position:absolute}\n"] }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FSelectionAreaComponent, decorators: [{ type: Component, args: [{ selector: "f-selection-area", template: ``, host: { 'class': 'f-selection-area f-component' }, providers: [ { provide: F_BEFORE_MAIN_PLUGIN, useExisting: FSelectionAreaComponent }, ], styles: [":host{position:absolute}\n"] }] }], propDecorators: { fTrigger: [{ type: Input }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1zZWxlY3Rpb24tYXJlYS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2Ytc2VsZWN0aW9uLWFyZWEvZi1zZWxlY3Rpb24tYXJlYS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUM3RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsb0JBQW9CLEVBQXVCLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzdDLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSwrQkFBK0IsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7QUFlekYsTUFBTSxPQUFPLHVCQUF3QixTQUFRLGtCQUFrQjtJQUVyRCxVQUFVLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQy9CLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUd4QyxRQUFRLEdBQWtCLENBQUMsS0FBb0IsRUFBRSxFQUFFO1FBQ3hELE9BQU8sS0FBSyxDQUFDLFFBQVEsQ0FBQztJQUN4QixDQUFDLENBQUM7SUFFRixJQUFvQixXQUFXO1FBQzdCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQztJQUM5QyxDQUFDO0lBRU0sUUFBUTtRQUNiLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7SUFDMUMsQ0FBQztJQUVlLElBQUk7UUFDbEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztJQUMxQyxDQUFDO0lBRWUsSUFBSTtRQUNsQixJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO0lBQzNDLENBQUM7SUFFZSxJQUFJLENBQUMsTUFBYTtRQUNoQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztRQUNyQyxLQUFLLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDO1FBQzdCLEtBQUssQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDNUIsS0FBSyxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUNsQyxLQUFLLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO0lBQ3RDLENBQUM7SUFFTSxhQUFhLENBQUMsS0FBb0I7UUFDdkMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSwrQkFBK0IsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQzNGLENBQUM7SUFFTSxXQUFXLENBQUMsS0FBb0I7UUFDckMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSw0QkFBNEIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ25FLENBQUM7d0dBeENVLHVCQUF1Qjs0RkFBdkIsdUJBQXVCLHVJQUp2QjtZQUNULEVBQUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFdBQVcsRUFBRSx1QkFBdUIsRUFBRTtTQUN4RSxpREFQUyxFQUFFOzs0RkFTRCx1QkFBdUI7a0JBWG5DLFNBQVM7K0JBQ0Usa0JBQWtCLFlBQ2xCLEVBQUUsUUFFTjt3QkFDSixPQUFPLEVBQUUsOEJBQThCO3FCQUN4QyxhQUNVO3dCQUNULEVBQUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFdBQVcseUJBQXlCLEVBQUU7cUJBQ3hFOzhCQVFNLFFBQVE7c0JBRGQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgaW5qZWN0LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGU2VsZWN0aW9uQXJlYUJhc2UgfSBmcm9tICcuL2Ytc2VsZWN0aW9uLWFyZWEtYmFzZSc7XG5pbXBvcnQgeyBGX0JFRk9SRV9NQUlOX1BMVUdJTiwgSUZEcmFnQW5kRHJvcFBsdWdpbiB9IGZyb20gJy4uL2YtZHJhZ2dhYmxlJztcbmltcG9ydCB7IElSZWN0IH0gZnJvbSAnQGZvYmxleC8yZCc7XG5pbXBvcnQgeyBGTWVkaWF0b3IgfSBmcm9tICdAZm9ibGV4L21lZGlhdG9yJztcbmltcG9ydCB7IFNlbGVjdGlvbkFyZWFGaW5hbGl6ZVJlcXVlc3QsIFNlbGVjdGlvbkFyZWFQcmVwYXJhdGlvblJlcXVlc3QgfSBmcm9tICcuL2RvbWFpbic7XG5pbXBvcnQgeyBGRXZlbnRUcmlnZ2VyLCBGVHJpZ2dlckV2ZW50IH0gZnJvbSAnLi4vZG9tYWluJztcbmltcG9ydCB7SVBvaW50ZXJFdmVudH0gZnJvbSBcIi4uL2RyYWctdG9vbGtpdFwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwiZi1zZWxlY3Rpb24tYXJlYVwiLFxuICB0ZW1wbGF0ZTogYGAsXG4gIHN0eWxlVXJsczogWyAnLi9mLXNlbGVjdGlvbi1hcmVhLmNvbXBvbmVudC5zY3NzJyBdLFxuICBob3N0OiB7XG4gICAgJ2NsYXNzJzogJ2Ytc2VsZWN0aW9uLWFyZWEgZi1jb21wb25lbnQnXG4gIH0sXG4gIHByb3ZpZGVyczogW1xuICAgIHsgcHJvdmlkZTogRl9CRUZPUkVfTUFJTl9QTFVHSU4sIHVzZUV4aXN0aW5nOiBGU2VsZWN0aW9uQXJlYUNvbXBvbmVudCB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBGU2VsZWN0aW9uQXJlYUNvbXBvbmVudCBleHRlbmRzIEZTZWxlY3Rpb25BcmVhQmFzZSBpbXBsZW1lbnRzIE9uSW5pdCwgSUZEcmFnQW5kRHJvcFBsdWdpbiAge1xuXG4gIHByaXZhdGUgX2ZNZWRpYXRvciA9IGluamVjdChGTWVkaWF0b3IpO1xuICBwcml2YXRlIF9lbGVtZW50UmVmZXJlbmNlID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBmVHJpZ2dlcjogRkV2ZW50VHJpZ2dlciA9IChldmVudDogRlRyaWdnZXJFdmVudCkgPT4ge1xuICAgIHJldHVybiBldmVudC5zaGlmdEtleTtcbiAgfTtcblxuICBwdWJsaWMgb3ZlcnJpZGUgZ2V0IGhvc3RFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5fZWxlbWVudFJlZmVyZW5jZS5uYXRpdmVFbGVtZW50O1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaG9zdEVsZW1lbnQuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBoaWRlKCk6IHZvaWQge1xuICAgIHRoaXMuaG9zdEVsZW1lbnQuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBzaG93KCk6IHZvaWQge1xuICAgIHRoaXMuaG9zdEVsZW1lbnQuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZHJhdyhvYmplY3Q6IElSZWN0KTogdm9pZCB7XG4gICAgY29uc3Qgc3R5bGUgPSB0aGlzLmhvc3RFbGVtZW50LnN0eWxlO1xuICAgIHN0eWxlLmxlZnQgPSBvYmplY3QueCArICdweCc7XG4gICAgc3R5bGUudG9wID0gb2JqZWN0LnkgKyAncHgnO1xuICAgIHN0eWxlLndpZHRoID0gb2JqZWN0LndpZHRoICsgJ3B4JztcbiAgICBzdHlsZS5oZWlnaHQgPSBvYmplY3QuaGVpZ2h0ICsgJ3B4JztcbiAgfVxuXG4gIHB1YmxpYyBvblBvaW50ZXJEb3duKGV2ZW50OiBJUG9pbnRlckV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5fZk1lZGlhdG9yLmV4ZWN1dGUobmV3IFNlbGVjdGlvbkFyZWFQcmVwYXJhdGlvblJlcXVlc3QoZXZlbnQsIHRoaXMsIHRoaXMuZlRyaWdnZXIpKTtcbiAgfVxuXG4gIHB1YmxpYyBvblBvaW50ZXJVcChldmVudDogSVBvaW50ZXJFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuX2ZNZWRpYXRvci5leGVjdXRlKG5ldyBTZWxlY3Rpb25BcmVhRmluYWxpemVSZXF1ZXN0KGV2ZW50KSk7XG4gIH1cbn1cbiJdfQ==