@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
JavaScript
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