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.

34 lines 4.98 kB
import { Inject, Injectable, Optional } from '@angular/core'; import { EFConnectionType, FBezierPathBuilder, FSegmentPathBuilder, FStraightPathBuilder } from '../common'; import { F_CONNECTION_BUILDERS } from './f-connection-builders'; import * as i0 from "@angular/core"; export class FConnectionFactory { builders = { [EFConnectionType.STRAIGHT]: new FStraightPathBuilder(), [EFConnectionType.BEZIER]: new FBezierPathBuilder(), [EFConnectionType.SEGMENT]: new FSegmentPathBuilder(), }; constructor(builders) { if (builders) { this.builders = { ...this.builders, ...builders }; } } handle(request) { const builder = this.builders[request.type]; if (!builder) { throw new Error(`FConnectionBuilder not found for type ${request.type}`); } return builder.handle(request.payload); } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FConnectionFactory, deps: [{ token: F_CONNECTION_BUILDERS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FConnectionFactory }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FConnectionFactory, decorators: [{ type: Injectable }], ctorParameters: () => [{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [F_CONNECTION_BUILDERS] }] }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jb25uZWN0aW9uLWZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdGlvbi9mLWNvbm5lY3Rpb24tYnVpbGRlci9mLWNvbm5lY3Rpb24tZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFN0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixFQUFFLG1CQUFtQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzVHLE9BQU8sRUFBRSxxQkFBcUIsRUFBd0IsTUFBTSx5QkFBeUIsQ0FBQzs7QUFNdEYsTUFBTSxPQUFPLGtCQUFrQjtJQUVaLFFBQVEsR0FBOEI7UUFFckQsQ0FBRSxnQkFBZ0IsQ0FBQyxRQUFRLENBQUUsRUFBRSxJQUFJLG9CQUFvQixFQUFFO1FBRXpELENBQUUsZ0JBQWdCLENBQUMsTUFBTSxDQUFFLEVBQUUsSUFBSSxrQkFBa0IsRUFBRTtRQUVyRCxDQUFFLGdCQUFnQixDQUFDLE9BQU8sQ0FBRSxFQUFFLElBQUksbUJBQW1CLEVBQUU7S0FDeEQsQ0FBQTtJQUVELFlBQzZDLFFBQThCO1FBRXpFLElBQUksUUFBUSxFQUFFLENBQUM7WUFDYixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsUUFBUSxFQUFFLENBQUM7UUFDcEQsQ0FBQztJQUNILENBQUM7SUFFTSxNQUFNLENBQUMsT0FBbUM7UUFDL0MsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBRSxPQUFPLENBQUMsSUFBSSxDQUFFLENBQUM7UUFDOUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2IsTUFBTSxJQUFJLEtBQUssQ0FBQyx5Q0FBMEMsT0FBTyxDQUFDLElBQUssRUFBRSxDQUFDLENBQUM7UUFDN0UsQ0FBQztRQUVELE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDekMsQ0FBQzt3R0ExQlUsa0JBQWtCLGtCQVlQLHFCQUFxQjs0R0FaaEMsa0JBQWtCOzs0RkFBbEIsa0JBQWtCO2tCQUQ5QixVQUFVOzswQkFhTixRQUFROzswQkFBSSxNQUFNOzJCQUFDLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElGQ29ubmVjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL2ktZi1jb25uZWN0aW9uLWJ1aWxkZXInO1xuaW1wb3J0IHsgRUZDb25uZWN0aW9uVHlwZSwgRkJlemllclBhdGhCdWlsZGVyLCBGU2VnbWVudFBhdGhCdWlsZGVyLCBGU3RyYWlnaHRQYXRoQnVpbGRlciB9IGZyb20gJy4uL2NvbW1vbic7XG5pbXBvcnQgeyBGX0NPTk5FQ1RJT05fQlVJTERFUlMsIElGQ29ubmVjdGlvbkJ1aWxkZXJzIH0gZnJvbSAnLi9mLWNvbm5lY3Rpb24tYnVpbGRlcnMnO1xuaW1wb3J0IHsgSUZDb25uZWN0aW9uRmFjdG9yeVJlcXVlc3QgfSBmcm9tICcuL2ktZi1jb25uZWN0aW9uLWZhY3RvcnktcmVxdWVzdCc7XG5pbXBvcnQgeyBJRkNvbm5lY3Rpb25CdWlsZGVyUmVzcG9uc2UgfSBmcm9tICcuL2ktZi1jb25uZWN0aW9uLWJ1aWxkZXItcmVzcG9uc2UnO1xuaW1wb3J0IHsgSU1hcCB9IGZyb20gJy4uLy4uL2RvbWFpbic7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBGQ29ubmVjdGlvbkZhY3Rvcnkge1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgYnVpbGRlcnM6IElNYXA8SUZDb25uZWN0aW9uQnVpbGRlcj4gPSB7XG5cbiAgICBbIEVGQ29ubmVjdGlvblR5cGUuU1RSQUlHSFQgXTogbmV3IEZTdHJhaWdodFBhdGhCdWlsZGVyKCksXG5cbiAgICBbIEVGQ29ubmVjdGlvblR5cGUuQkVaSUVSIF06IG5ldyBGQmV6aWVyUGF0aEJ1aWxkZXIoKSxcblxuICAgIFsgRUZDb25uZWN0aW9uVHlwZS5TRUdNRU5UIF06IG5ldyBGU2VnbWVudFBhdGhCdWlsZGVyKCksXG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KEZfQ09OTkVDVElPTl9CVUlMREVSUykgYnVpbGRlcnM6IElGQ29ubmVjdGlvbkJ1aWxkZXJzXG4gICkge1xuICAgIGlmIChidWlsZGVycykge1xuICAgICAgdGhpcy5idWlsZGVycyA9IHsgLi4udGhpcy5idWlsZGVycywgLi4uYnVpbGRlcnMgfTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlKHJlcXVlc3Q6IElGQ29ubmVjdGlvbkZhY3RvcnlSZXF1ZXN0KTogSUZDb25uZWN0aW9uQnVpbGRlclJlc3BvbnNlIHtcbiAgICBjb25zdCBidWlsZGVyID0gdGhpcy5idWlsZGVyc1sgcmVxdWVzdC50eXBlIF07XG4gICAgaWYgKCFidWlsZGVyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEZDb25uZWN0aW9uQnVpbGRlciBub3QgZm91bmQgZm9yIHR5cGUgJHsgcmVxdWVzdC50eXBlIH1gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gYnVpbGRlci5oYW5kbGUocmVxdWVzdC5wYXlsb2FkKTtcbiAgfVxufVxuIl19