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.

32 lines 5.17 kB
import { __decorate } from "tslib"; import { inject, Injectable } from '@angular/core'; import { GetDeepChildrenNodesAndGroupsRequest } from './get-deep-children-nodes-and-groups.request'; import { FComponentsStore } from '../../f-storage'; import { FExecutionRegister } from '@foblex/mediator'; import * as i0 from "@angular/core"; let GetDeepChildrenNodesAndGroupsExecution = class GetDeepChildrenNodesAndGroupsExecution { _fComponentsStore = inject(FComponentsStore); handle(request) { return this._getChildrenNodes(request.fId); } _getChildrenNodes(fId, visited = new Set()) { if (visited.has(fId)) { throw new Error('Circular reference detected in the node hierarchy. Node id: ' + fId); } visited.add(fId); const directChildren = this._fComponentsStore.fNodes.filter((x) => x.fParentId === fId); return directChildren.reduce((result, x) => { return result.concat(this._getChildrenNodes(x.fId, visited)); }, directChildren); } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GetDeepChildrenNodesAndGroupsExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GetDeepChildrenNodesAndGroupsExecution }); }; GetDeepChildrenNodesAndGroupsExecution = __decorate([ FExecutionRegister(GetDeepChildrenNodesAndGroupsRequest) ], GetDeepChildrenNodesAndGroupsExecution); export { GetDeepChildrenNodesAndGroupsExecution }; i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GetDeepChildrenNodesAndGroupsExecution, decorators: [{ type: Injectable }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWRlZXAtY2hpbGRyZW4tbm9kZXMtYW5kLWdyb3Vwcy5leGVjdXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2RvbWFpbi9nZXQtZGVlcC1jaGlsZHJlbi1ub2Rlcy1hbmQtZ3JvdXBzL2dldC1kZWVwLWNoaWxkcmVuLW5vZGVzLWFuZC1ncm91cHMuZXhlY3V0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsb0NBQW9DLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNwRyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVuRCxPQUFPLEVBQUUsa0JBQWtCLEVBQWMsTUFBTSxrQkFBa0IsQ0FBQzs7QUFJM0QsSUFBTSxzQ0FBc0MsR0FBNUMsTUFBTSxzQ0FBc0M7SUFHaEMsaUJBQWlCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFFdkQsTUFBTSxDQUFDLE9BQTZDO1FBQ3pELE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRU8saUJBQWlCLENBQUMsR0FBVyxFQUFFLFVBQXVCLElBQUksR0FBRyxFQUFFO1FBQ3JFLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3JCLE1BQU0sSUFBSSxLQUFLLENBQUMsOERBQThELEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDeEYsQ0FBQztRQUNELE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFakIsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDeEYsT0FBTyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3pDLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQy9ELENBQUMsRUFBRSxjQUFjLENBQUMsQ0FBQztJQUNyQixDQUFDO3dHQW5CVSxzQ0FBc0M7NEdBQXRDLHNDQUFzQzs7QUFBdEMsc0NBQXNDO0lBRGxELGtCQUFrQixDQUFDLG9DQUFvQyxDQUFDO0dBQzVDLHNDQUFzQyxDQW9CbEQ7OzRGQXBCWSxzQ0FBc0M7a0JBRmxELFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2luamVjdCwgSW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBHZXREZWVwQ2hpbGRyZW5Ob2Rlc0FuZEdyb3Vwc1JlcXVlc3QgfSBmcm9tICcuL2dldC1kZWVwLWNoaWxkcmVuLW5vZGVzLWFuZC1ncm91cHMucmVxdWVzdCc7XG5pbXBvcnQgeyBGQ29tcG9uZW50c1N0b3JlIH0gZnJvbSAnLi4vLi4vZi1zdG9yYWdlJztcbmltcG9ydCB7IEZOb2RlQmFzZSB9IGZyb20gJy4uLy4uL2Ytbm9kZSc7XG5pbXBvcnQgeyBGRXhlY3V0aW9uUmVnaXN0ZXIsIElFeGVjdXRpb24gfSBmcm9tICdAZm9ibGV4L21lZGlhdG9yJztcblxuQEluamVjdGFibGUoKVxuQEZFeGVjdXRpb25SZWdpc3RlcihHZXREZWVwQ2hpbGRyZW5Ob2Rlc0FuZEdyb3Vwc1JlcXVlc3QpXG5leHBvcnQgY2xhc3MgR2V0RGVlcENoaWxkcmVuTm9kZXNBbmRHcm91cHNFeGVjdXRpb25cbiAgaW1wbGVtZW50cyBJRXhlY3V0aW9uPEdldERlZXBDaGlsZHJlbk5vZGVzQW5kR3JvdXBzUmVxdWVzdCwgRk5vZGVCYXNlW10+IHtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9mQ29tcG9uZW50c1N0b3JlID0gaW5qZWN0KEZDb21wb25lbnRzU3RvcmUpO1xuXG4gIHB1YmxpYyBoYW5kbGUocmVxdWVzdDogR2V0RGVlcENoaWxkcmVuTm9kZXNBbmRHcm91cHNSZXF1ZXN0KTogRk5vZGVCYXNlW10ge1xuICAgIHJldHVybiB0aGlzLl9nZXRDaGlsZHJlbk5vZGVzKHJlcXVlc3QuZklkKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldENoaWxkcmVuTm9kZXMoZklkOiBzdHJpbmcsIHZpc2l0ZWQ6IFNldDxzdHJpbmc+ID0gbmV3IFNldCgpKTogRk5vZGVCYXNlW10ge1xuICAgIGlmICh2aXNpdGVkLmhhcyhmSWQpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0NpcmN1bGFyIHJlZmVyZW5jZSBkZXRlY3RlZCBpbiB0aGUgbm9kZSBoaWVyYXJjaHkuIE5vZGUgaWQ6ICcgKyBmSWQpO1xuICAgIH1cbiAgICB2aXNpdGVkLmFkZChmSWQpO1xuXG4gICAgY29uc3QgZGlyZWN0Q2hpbGRyZW4gPSB0aGlzLl9mQ29tcG9uZW50c1N0b3JlLmZOb2Rlcy5maWx0ZXIoKHgpID0+IHguZlBhcmVudElkID09PSBmSWQpO1xuICAgIHJldHVybiBkaXJlY3RDaGlsZHJlbi5yZWR1Y2UoKHJlc3VsdCwgeCkgPT4ge1xuICAgICAgcmV0dXJuIHJlc3VsdC5jb25jYXQodGhpcy5fZ2V0Q2hpbGRyZW5Ob2Rlcyh4LmZJZCwgdmlzaXRlZCkpO1xuICAgIH0sIGRpcmVjdENoaWxkcmVuKTtcbiAgfVxufVxuIl19