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.

55 lines 9.48 kB
import { __decorate } from "tslib"; import { SortItemsByParentRequest } from './sort-items-by-parent.request'; import { inject, Injectable } from '@angular/core'; import { FExecutionRegister, FMediator } from '@foblex/mediator'; import { FComponentsStore } from '../../../f-storage'; import { GetDeepChildrenNodesAndGroupsRequest } from '../../get-deep-children-nodes-and-groups'; import { BrowserService } from '@foblex/platform'; import * as i0 from "@angular/core"; let SortItemsByParentExecution = class SortItemsByParentExecution { _fMediator = inject(FMediator); _fComponentsStore = inject(FComponentsStore); _fBrowser = inject(BrowserService); _fItemsContainer; get _fItemElements() { return Array.from(this._fItemsContainer.children); } handle(request) { this._fItemsContainer = request.fItemsContainer; this._getItemsOfContainer().forEach((fItem) => { this._moveChildrenItems(this._getSortedChildrenItems(fItem), fItem); }); } _getItemsOfContainer() { return this._fComponentsStore.fNodes .filter((x) => this._fItemsContainer.contains(x.hostElement)); } _getSortedChildrenItems(fItem) { const indexInContainer = this._fItemElements.indexOf(fItem.hostElement); return this._getChildrenItems(fItem.fId) .filter((child) => this._fItemElements.indexOf(child) < indexInContainer) .sort((a, b) => this._fItemElements.indexOf(a) - this._fItemElements.indexOf(b)); } _getChildrenItems(fId) { return this._fMediator.execute(new GetDeepChildrenNodesAndGroupsRequest(fId)) .filter((x) => this._fItemsContainer.contains(x.hostElement)).map((x) => x.hostElement); } _moveChildrenItems(sortedChildrenItems, parent) { let nextSibling = parent.hostElement.nextElementSibling; const fragment = this._fBrowser.document.createDocumentFragment(); sortedChildrenItems.forEach((child) => { fragment.appendChild(child); // Append automatically removes the element from its current position }); this._fItemsContainer.insertBefore(fragment, nextSibling); } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SortItemsByParentExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SortItemsByParentExecution }); }; SortItemsByParentExecution = __decorate([ FExecutionRegister(SortItemsByParentRequest) ], SortItemsByParentExecution); export { SortItemsByParentExecution }; i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SortItemsByParentExecution, decorators: [{ type: Injectable }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydC1pdGVtcy1ieS1wYXJlbnQuZXhlY3V0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9kb21haW4vc29ydC1pdGVtLWxheWVycy9zb3J0LWl0ZW1zLWJ5LXBhcmVudC9zb3J0LWl0ZW1zLWJ5LXBhcmVudC5leGVjdXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxTQUFTLEVBQWMsTUFBTSxrQkFBa0IsQ0FBQztBQUM3RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUV0RCxPQUFPLEVBQUUsb0NBQW9DLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNoRyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBSTNDLElBQU0sMEJBQTBCLEdBQWhDLE1BQU0sMEJBQTBCO0lBRXBCLFVBQVUsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDL0IsaUJBQWlCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDN0MsU0FBUyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUU1QyxnQkFBZ0IsQ0FBZTtJQUV2QyxJQUFZLGNBQWM7UUFDeEIsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQWtCLENBQUM7SUFDckUsQ0FBQztJQUVNLE1BQU0sQ0FBQyxPQUFpQztRQUM3QyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLGVBQWUsQ0FBQztRQUNoRCxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFnQixFQUFFLEVBQUU7WUFDdkQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN0RSxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxvQkFBb0I7UUFDMUIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTTthQUNqQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVPLHVCQUF1QixDQUM3QixLQUFnQjtRQUVoQixNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN4RSxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDO2FBQ3JDLE1BQU0sQ0FBQyxDQUFDLEtBQWtCLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLGdCQUFnQixDQUFDO2FBQ3JGLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDckYsQ0FBQztJQUVPLGlCQUFpQixDQUFDLEdBQVc7UUFDbkMsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBYyxJQUFJLG9DQUFvQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ3ZGLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM1RixDQUFDO0lBRU8sa0JBQWtCLENBQ3hCLG1CQUFrQyxFQUNsQyxNQUFpQjtRQUVqQixJQUFJLFdBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLGtCQUFrQixDQUFDO1FBRXhELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFFbEUsbUJBQW1CLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBa0IsRUFBRSxFQUFFO1lBQ2pELFFBQVEsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxxRUFBcUU7UUFDcEcsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUM1RCxDQUFDO3dHQWxEVSwwQkFBMEI7NEdBQTFCLDBCQUEwQjs7QUFBMUIsMEJBQTBCO0lBRHRDLGtCQUFrQixDQUFDLHdCQUF3QixDQUFDO0dBQ2hDLDBCQUEwQixDQW1EdEM7OzRGQW5EWSwwQkFBMEI7a0JBRnRDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTb3J0SXRlbXNCeVBhcmVudFJlcXVlc3QgfSBmcm9tICcuL3NvcnQtaXRlbXMtYnktcGFyZW50LnJlcXVlc3QnO1xuaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGRXhlY3V0aW9uUmVnaXN0ZXIsIEZNZWRpYXRvciwgSUV4ZWN1dGlvbiB9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuaW1wb3J0IHsgRkNvbXBvbmVudHNTdG9yZSB9IGZyb20gJy4uLy4uLy4uL2Ytc3RvcmFnZSc7XG5pbXBvcnQgeyBGTm9kZUJhc2UgfSBmcm9tICcuLi8uLi8uLi9mLW5vZGUnO1xuaW1wb3J0IHsgR2V0RGVlcENoaWxkcmVuTm9kZXNBbmRHcm91cHNSZXF1ZXN0IH0gZnJvbSAnLi4vLi4vZ2V0LWRlZXAtY2hpbGRyZW4tbm9kZXMtYW5kLWdyb3Vwcyc7XG5pbXBvcnQgeyBCcm93c2VyU2VydmljZSB9IGZyb20gJ0Bmb2JsZXgvcGxhdGZvcm0nO1xuXG5ASW5qZWN0YWJsZSgpXG5ARkV4ZWN1dGlvblJlZ2lzdGVyKFNvcnRJdGVtc0J5UGFyZW50UmVxdWVzdClcbmV4cG9ydCBjbGFzcyBTb3J0SXRlbXNCeVBhcmVudEV4ZWN1dGlvbiBpbXBsZW1lbnRzIElFeGVjdXRpb248U29ydEl0ZW1zQnlQYXJlbnRSZXF1ZXN0LCB2b2lkPiB7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfZk1lZGlhdG9yID0gaW5qZWN0KEZNZWRpYXRvcik7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2ZDb21wb25lbnRzU3RvcmUgPSBpbmplY3QoRkNvbXBvbmVudHNTdG9yZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2ZCcm93c2VyID0gaW5qZWN0KEJyb3dzZXJTZXJ2aWNlKTtcblxuICBwcml2YXRlIF9mSXRlbXNDb250YWluZXIhOiBIVE1MRWxlbWVudDtcblxuICBwcml2YXRlIGdldCBfZkl0ZW1FbGVtZW50cygpOiBIVE1MRWxlbWVudFtdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLl9mSXRlbXNDb250YWluZXIuY2hpbGRyZW4pIGFzIEhUTUxFbGVtZW50W107XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlKHJlcXVlc3Q6IFNvcnRJdGVtc0J5UGFyZW50UmVxdWVzdCk6IHZvaWQge1xuICAgIHRoaXMuX2ZJdGVtc0NvbnRhaW5lciA9IHJlcXVlc3QuZkl0ZW1zQ29udGFpbmVyO1xuICAgIHRoaXMuX2dldEl0ZW1zT2ZDb250YWluZXIoKS5mb3JFYWNoKChmSXRlbTogRk5vZGVCYXNlKSA9PiB7XG4gICAgICB0aGlzLl9tb3ZlQ2hpbGRyZW5JdGVtcyh0aGlzLl9nZXRTb3J0ZWRDaGlsZHJlbkl0ZW1zKGZJdGVtKSwgZkl0ZW0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0SXRlbXNPZkNvbnRhaW5lcigpOiBGTm9kZUJhc2VbXSB7XG4gICAgcmV0dXJuIHRoaXMuX2ZDb21wb25lbnRzU3RvcmUuZk5vZGVzXG4gICAgICAuZmlsdGVyKCh4KSA9PiB0aGlzLl9mSXRlbXNDb250YWluZXIuY29udGFpbnMoeC5ob3N0RWxlbWVudCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0U29ydGVkQ2hpbGRyZW5JdGVtcyhcbiAgICBmSXRlbTogRk5vZGVCYXNlLFxuICApOiBIVE1MRWxlbWVudFtdIHtcbiAgICBjb25zdCBpbmRleEluQ29udGFpbmVyID0gdGhpcy5fZkl0ZW1FbGVtZW50cy5pbmRleE9mKGZJdGVtLmhvc3RFbGVtZW50KTtcbiAgICByZXR1cm4gdGhpcy5fZ2V0Q2hpbGRyZW5JdGVtcyhmSXRlbS5mSWQpXG4gICAgICAuZmlsdGVyKChjaGlsZDogSFRNTEVsZW1lbnQpID0+IHRoaXMuX2ZJdGVtRWxlbWVudHMuaW5kZXhPZihjaGlsZCkgPCBpbmRleEluQ29udGFpbmVyKVxuICAgICAgLnNvcnQoKGEsIGIpID0+IHRoaXMuX2ZJdGVtRWxlbWVudHMuaW5kZXhPZihhKSAtIHRoaXMuX2ZJdGVtRWxlbWVudHMuaW5kZXhPZihiKSk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRDaGlsZHJlbkl0ZW1zKGZJZDogc3RyaW5nKTogSFRNTEVsZW1lbnRbXSB7XG4gICAgcmV0dXJuIHRoaXMuX2ZNZWRpYXRvci5leGVjdXRlPEZOb2RlQmFzZVtdPihuZXcgR2V0RGVlcENoaWxkcmVuTm9kZXNBbmRHcm91cHNSZXF1ZXN0KGZJZCkpXG4gICAgICAuZmlsdGVyKCh4KSA9PiB0aGlzLl9mSXRlbXNDb250YWluZXIuY29udGFpbnMoeC5ob3N0RWxlbWVudCkpLm1hcCgoeCkgPT4geC5ob3N0RWxlbWVudCk7XG4gIH1cblxuICBwcml2YXRlIF9tb3ZlQ2hpbGRyZW5JdGVtcyhcbiAgICBzb3J0ZWRDaGlsZHJlbkl0ZW1zOiBIVE1MRWxlbWVudFtdLFxuICAgIHBhcmVudDogRk5vZGVCYXNlLFxuICApOiB2b2lkIHtcbiAgICBsZXQgbmV4dFNpYmxpbmcgPSBwYXJlbnQuaG9zdEVsZW1lbnQubmV4dEVsZW1lbnRTaWJsaW5nO1xuXG4gICAgY29uc3QgZnJhZ21lbnQgPSB0aGlzLl9mQnJvd3Nlci5kb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7XG5cbiAgICBzb3J0ZWRDaGlsZHJlbkl0ZW1zLmZvckVhY2goKGNoaWxkOiBIVE1MRWxlbWVudCkgPT4ge1xuICAgICAgZnJhZ21lbnQuYXBwZW5kQ2hpbGQoY2hpbGQpOyAvLyBBcHBlbmQgYXV0b21hdGljYWxseSByZW1vdmVzIHRoZSBlbGVtZW50IGZyb20gaXRzIGN1cnJlbnQgcG9zaXRpb25cbiAgICB9KTtcbiAgICB0aGlzLl9mSXRlbXNDb250YWluZXIuaW5zZXJ0QmVmb3JlKGZyYWdtZW50LCBuZXh0U2libGluZyk7XG4gIH1cbn1cbiJdfQ==