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.

51 lines 6.23 kB
import { Injectable } from '@angular/core'; import { FChannel } from '../reactivity'; import * as i0 from "@angular/core"; export class FComponentsStore { transformChanges$ = new FChannel(); dataChanges$ = new FChannel(); countChanges$ = new FChannel(); get flowHost() { return this.fFlow?.hostElement; } fComponents = {}; fFlow; fCanvas; fBackground; fNodes = []; fConnections = []; fTempConnection; fSnapConnection; fMarkers = []; fOutputs = []; fInputs = []; fOutlets = []; fDraggable; fLineAlignment; addComponent(collection, component) { collection.push(component); this.countChanged(); } removeComponent(collection, component) { const index = collection.indexOf(component); if (index > -1) { collection.splice(index, 1); this.countChanged(); } } countChanged() { this.countChanges$.notify(); } dataChanged() { this.dataChanges$.notify(); } transformChanged() { this.transformChanges$.notify(); } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FComponentsStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FComponentsStore }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FComponentsStore, decorators: [{ type: Injectable }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jb21wb25lbnRzLXN0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLXN0b3JhZ2UvZi1jb21wb25lbnRzLXN0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFRM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLekMsTUFBTSxPQUFPLGdCQUFnQjtJQUVYLGlCQUFpQixHQUFHLElBQUksUUFBUSxFQUFFLENBQUM7SUFFbkMsWUFBWSxHQUFHLElBQUksUUFBUSxFQUFFLENBQUM7SUFFOUIsYUFBYSxHQUFHLElBQUksUUFBUSxFQUFFLENBQUM7SUFFL0MsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxXQUFZLENBQUM7SUFDbEMsQ0FBQztJQUVNLFdBQVcsR0FBYyxFQUFFLENBQUM7SUFFNUIsS0FBSyxDQUF3QjtJQUU3QixPQUFPLENBQTBCO0lBRWpDLFdBQVcsQ0FBOEI7SUFFekMsTUFBTSxHQUFnQixFQUFFLENBQUM7SUFFekIsWUFBWSxHQUFzQixFQUFFLENBQUM7SUFFckMsZUFBZSxDQUE4QjtJQUU3QyxlQUFlLENBQThCO0lBRTdDLFFBQVEsR0FBa0IsRUFBRSxDQUFDO0lBRTdCLFFBQVEsR0FBcUIsRUFBRSxDQUFDO0lBRWhDLE9BQU8sR0FBcUIsRUFBRSxDQUFDO0lBRS9CLFFBQVEsR0FBcUIsRUFBRSxDQUFDO0lBRWhDLFVBQVUsQ0FBNkI7SUFFdkMsY0FBYyxDQUFpQztJQUUvQyxZQUFZLENBQUksVUFBZSxFQUFFLFNBQVk7UUFDbEQsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVNLGVBQWUsQ0FBSSxVQUFlLEVBQUUsU0FBWTtRQUNyRCxNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzVDLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDZixVQUFVLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztZQUM1QixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdEIsQ0FBQztJQUNILENBQUM7SUFFTSxZQUFZO1FBQ2pCLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRU0sZ0JBQWdCO1FBQ3JCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNsQyxDQUFDO3dHQS9EVSxnQkFBZ0I7NEdBQWhCLGdCQUFnQjs7NEZBQWhCLGdCQUFnQjtrQkFENUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZDb25uZWN0aW9uQmFzZSwgRk1hcmtlckJhc2UgfSBmcm9tICcuLi9mLWNvbm5lY3Rpb24nO1xuaW1wb3J0IHsgRkZsb3dCYXNlIH0gZnJvbSAnLi4vZi1mbG93JztcbmltcG9ydCB7IEZDYW52YXNCYXNlIH0gZnJvbSAnLi4vZi1jYW52YXMnO1xuaW1wb3J0IHsgRkJhY2tncm91bmRCYXNlIH0gZnJvbSAnLi4vZi1iYWNrZ3JvdWQnO1xuaW1wb3J0IHsgRk5vZGVCYXNlIH0gZnJvbSAnLi4vZi1ub2RlJztcbmltcG9ydCB7IEZDb25uZWN0b3JCYXNlIH0gZnJvbSAnLi4vZi1jb25uZWN0b3JzJztcbmltcG9ydCB7IEZEcmFnZ2FibGVCYXNlIH0gZnJvbSAnLi4vZi1kcmFnZ2FibGUnO1xuaW1wb3J0IHsgRkNoYW5uZWwgfSBmcm9tICcuLi9yZWFjdGl2aXR5JztcbmltcG9ydCB7IEZMaW5lQWxpZ25tZW50QmFzZSB9IGZyb20gJy4uL2YtbGluZS1hbGlnbm1lbnQnO1xuaW1wb3J0IHsgSU1hcCB9IGZyb20gJy4uL2RvbWFpbic7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBGQ29tcG9uZW50c1N0b3JlIHtcblxuICBwdWJsaWMgcmVhZG9ubHkgdHJhbnNmb3JtQ2hhbmdlcyQgPSBuZXcgRkNoYW5uZWwoKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgZGF0YUNoYW5nZXMkID0gbmV3IEZDaGFubmVsKCk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGNvdW50Q2hhbmdlcyQgPSBuZXcgRkNoYW5uZWwoKTtcblxuICBwdWJsaWMgZ2V0IGZsb3dIb3N0KCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5mRmxvdz8uaG9zdEVsZW1lbnQhO1xuICB9XG5cbiAgcHVibGljIGZDb21wb25lbnRzOiBJTWFwPGFueT4gPSB7fTtcblxuICBwdWJsaWMgZkZsb3c6IEZGbG93QmFzZSB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgZkNhbnZhczogRkNhbnZhc0Jhc2UgfCB1bmRlZmluZWQ7XG5cbiAgcHVibGljIGZCYWNrZ3JvdW5kOiBGQmFja2dyb3VuZEJhc2UgfCB1bmRlZmluZWQ7XG5cbiAgcHVibGljIGZOb2RlczogRk5vZGVCYXNlW10gPSBbXTtcblxuICBwdWJsaWMgZkNvbm5lY3Rpb25zOiBGQ29ubmVjdGlvbkJhc2VbXSA9IFtdO1xuXG4gIHB1YmxpYyBmVGVtcENvbm5lY3Rpb246IEZDb25uZWN0aW9uQmFzZSB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgZlNuYXBDb25uZWN0aW9uOiBGQ29ubmVjdGlvbkJhc2UgfCB1bmRlZmluZWQ7XG5cbiAgcHVibGljIGZNYXJrZXJzOiBGTWFya2VyQmFzZVtdID0gW107XG5cbiAgcHVibGljIGZPdXRwdXRzOiBGQ29ubmVjdG9yQmFzZVtdID0gW107XG5cbiAgcHVibGljIGZJbnB1dHM6IEZDb25uZWN0b3JCYXNlW10gPSBbXTtcblxuICBwdWJsaWMgZk91dGxldHM6IEZDb25uZWN0b3JCYXNlW10gPSBbXTtcblxuICBwdWJsaWMgZkRyYWdnYWJsZTogRkRyYWdnYWJsZUJhc2UgfCB1bmRlZmluZWQ7XG5cbiAgcHVibGljIGZMaW5lQWxpZ25tZW50OiBGTGluZUFsaWdubWVudEJhc2UgfCB1bmRlZmluZWQ7XG5cbiAgcHVibGljIGFkZENvbXBvbmVudDxUPihjb2xsZWN0aW9uOiBUW10sIGNvbXBvbmVudDogVCk6IHZvaWQge1xuICAgIGNvbGxlY3Rpb24ucHVzaChjb21wb25lbnQpO1xuICAgIHRoaXMuY291bnRDaGFuZ2VkKCk7XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlQ29tcG9uZW50PFQ+KGNvbGxlY3Rpb246IFRbXSwgY29tcG9uZW50OiBUKTogdm9pZCB7XG4gICAgY29uc3QgaW5kZXggPSBjb2xsZWN0aW9uLmluZGV4T2YoY29tcG9uZW50KTtcbiAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgY29sbGVjdGlvbi5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgdGhpcy5jb3VudENoYW5nZWQoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgY291bnRDaGFuZ2VkKCk6IHZvaWQge1xuICAgIHRoaXMuY291bnRDaGFuZ2VzJC5ub3RpZnkoKTtcbiAgfVxuXG4gIHB1YmxpYyBkYXRhQ2hhbmdlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmRhdGFDaGFuZ2VzJC5ub3RpZnkoKTtcbiAgfVxuXG4gIHB1YmxpYyB0cmFuc2Zvcm1DaGFuZ2VkKCk6IHZvaWQge1xuICAgIHRoaXMudHJhbnNmb3JtQ2hhbmdlcyQubm90aWZ5KCk7XG4gIH1cbn1cbiJdfQ==