ngx-vflow 1.16.0 → 1.16.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,12 +1,12 @@
1
1
  import { Injectable, computed, inject } from '@angular/core';
2
2
  import { FlowEntitiesService } from './flow-entities.service';
3
- import { isGroupNode } from '../utils/is-group-node';
4
3
  import { FlowSettingsService } from './flow-settings.service';
5
4
  import { isRectInViewport } from '../utils/viewport';
6
5
  import { ViewportService } from './viewport.service';
7
6
  import { toObservable } from '@angular/core/rxjs-interop';
8
7
  import { asyncScheduler, debounceTime, filter, map, merge, observeOn } from 'rxjs';
9
8
  import { toLazySignal } from '../utils/signals/to-lazy-signal';
9
+ import { isGroupNode } from '../utils/is-group-node';
10
10
  import * as i0 from "@angular/core";
11
11
  export class NodeRenderingService {
12
12
  constructor() {
@@ -20,10 +20,10 @@ export class NodeRenderingService {
20
20
  return this.viewportNodesAfterInteraction().sort((aNode, bNode) => aNode.renderOrder() - bNode.renderOrder());
21
21
  });
22
22
  this.groups = computed(() => {
23
- return this.nodes().filter((n) => isGroupNode(n));
23
+ return this.nodes().filter((n) => !!n.children().length || isGroupNode(n));
24
24
  });
25
25
  this.nonGroups = computed(() => {
26
- return this.nodes().filter((n) => !isGroupNode(n));
26
+ return this.nodes().filter((n) => !this.groups().includes(n));
27
27
  });
28
28
  this.viewportNodes = computed(() => {
29
29
  const nodes = this.flowEntitiesService.nodes();
@@ -63,4 +63,4 @@ export class NodeRenderingService {
63
63
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NodeRenderingService, decorators: [{
64
64
  type: Injectable
65
65
  }] });
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1yZW5kZXJpbmcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC12Zmxvdy1saWIvc3JjL2xpYi92Zmxvdy9zZXJ2aWNlcy9ub2RlLXJlbmRlcmluZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUU5RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDckQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsY0FBYyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbkYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlDQUFpQyxDQUFDOztBQUcvRCxNQUFNLE9BQU8sb0JBQW9CO0lBRGpDO1FBRVUsd0JBQW1CLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDbEQsd0JBQW1CLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDbEQsb0JBQWUsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFbEMsVUFBSyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDcEMsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxj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Q0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ25FLENBQUMsQ0FBQyxDQUNILEVBQ0Q7WUFDRSxZQUFZLEVBQUUsRUFBRTtTQUNqQixDQUNGLENBQUM7UUFFTSxhQUFRLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUMvQixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ25GLENBQUMsQ0FBQyxDQUFDO0tBU0o7SUFQUSxRQUFRLENBQUMsSUFBZTtRQUM3QixZQUFZO1FBQ1osSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBRTFDLGdCQUFnQjtRQUNoQixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbkQsQ0FBQzsrR0FyRVUsb0JBQW9CO21IQUFwQixvQkFBb0I7OzRGQUFwQixvQkFBb0I7a0JBRGhDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBjb21wdXRlZCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGbG93RW50aXRpZXNTZXJ2aWNlIH0gZnJvbSAnLi9mbG93LWVudGl0aWVzLnNlcnZpY2UnO1xuaW1wb3J0IHsgTm9kZU1vZGVsIH0gZnJvbSAnLi4vbW9kZWxzL25vZGUubW9kZWwnO1xuaW1wb3J0IHsgaXNHcm91cE5vZGUgfSBmcm9tICcuLi91dGlscy9pcy1ncm91cC1ub2RlJztcbmltcG9ydCB7IEZsb3dTZXR0aW5nc1NlcnZpY2UgfSBmcm9tICcuL2Zsb3ctc2V0dGluZ3Muc2VydmljZSc7XG5pbXBvcnQgeyBpc1JlY3RJblZpZXdwb3J0IH0gZnJvbSAnLi4vdXRpbHMvdmlld3BvcnQnO1xuaW1wb3J0IHsgVmlld3BvcnRTZXJ2aWNlIH0gZnJvbSAnLi92aWV3cG9ydC5zZXJ2aWNlJztcbmltcG9ydCB7IHRvT2JzZXJ2YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IGFzeW5jU2NoZWR1bGVyLCBkZWJvdW5jZVRpbWUsIGZpbHRlciwgbWFwLCBtZXJnZSwgb2JzZXJ2ZU9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0b0xhenlTaWduYWwgfSBmcm9tICcuLi91dGlscy9zaWduYWxzL3RvLWxhenktc2lnbmFsJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE5vZGVSZW5kZXJpbmdTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBmbG93RW50aXRpZXNTZXJ2aWNlID0gaW5qZWN0KEZsb3dFbnRpdGllc1NlcnZpY2UpO1xuICBwcml2YXRlIGZsb3dTZXR0aW5nc1NlcnZpY2UgPSBpbmplY3QoRmxvd1NldHRpbmdzU2VydmljZSk7XG4gIHByaXZhdGUgdmlld3BvcnRTZXJ2aWNlID0gaW5qZWN0KFZpZXdwb3J0U2VydmljZSk7XG5cbiAgcHVibGljIHJlYWRvbmx5IG5vZGVzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGlmICghdGhpcy5mbG93U2V0dGluZ3NTZXJ2aWNlLm9wdGltaXphdGlvbigpLnZpcnR1YWxpemF0aW9uKSB7XG4gICAgICByZXR1cm4gWy4uLnRoaXMuZmxvd0VudGl0aWVzU2VydmljZS5ub2RlcygpXS5zb3J0KChhTm9kZSwgYk5vZGUpID0+IGFOb2RlLnJlbmRlck9yZGVyKCkgLSBiTm9kZS5yZW5kZXJPcmRlcigpKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy52aWV3cG9ydE5vZGVzQWZ0ZXJJbnRlcmFjdGlvbigpLnNvcnQoKGFOb2RlLCBiTm9kZSkgPT4gYU5vZGUucmVuZGVyT3JkZXIoKSAtIGJOb2RlLnJlbmRlck9yZGVyKCkpO1xuICB9KTtcblxuICBwdWJsaWMgcmVhZG9ubHkgZ3JvdXBzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIHJldHVybiB0aGlzLm5vZGVzKCkuZmlsdGVyKChuKSA9PiBpc0dyb3VwTm9kZShuKSk7XG4gIH0pO1xuXG4gIHB1YmxpYyByZWFkb25seSBub25Hcm91cHMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMubm9kZXMoKS5maWx0ZXIoKG4pID0+ICFpc0dyb3VwTm9kZShuKSk7XG4gIH0pO1xuXG4gIHB1YmxpYyB2aWV3cG9ydE5vZGVzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IG5vZGVzID0gdGhpcy5mbG93RW50aXRpZXNTZXJ2aWNlLm5vZGVzKCk7XG4gICAgY29uc3Qgdmlld3BvcnQgPSB0aGlzLnZpZXdwb3J0U2VydmljZS5yZWFkYWJsZVZpZXdwb3J0KCk7XG4gICAgY29uc3QgZmxvd1dpZHRoID0gdGhpcy5mbG93U2V0dGluZ3NTZXJ2aWNlLmNvbXB1dGVkRmxvd1dpZHRoKCk7XG4gICAgY29uc3QgZmxvd0hlaWdodCA9IHRoaXMuZmxvd1NldHRpbmdzU2VydmljZS5jb21wdXRlZEZsb3dIZWlnaHQoKTtcblxuICAgIHJldHVybiBub2Rlcy5maWx0ZXIoKG4pID0+IHtcbiAgICAgIGNvbnN0IHsgeCwgeSB9ID0gbi5nbG9iYWxQb2ludCgpO1xuICAgICAgY29uc3Qgd2lkdGggPSBuLndpZHRoKCk7XG4gICAgICBjb25zdCBoZWlnaHQgPSBuLmhlaWdodCgpO1xuXG4gICAgICByZXR1cm4gaXNSZWN0SW5WaWV3cG9ydCh7IHgsIHksIHdpZHRoLCBoZWlnaHQgfSwgdmlld3BvcnQsIGZsb3dXaWR0aCwgZmxvd0hlaWdodCk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIHByaXZhdGUgdmlld3BvcnROb2Rlc0FmdGVySW50ZXJhY3Rpb24gPSB0b0xhenlTaWduYWwoXG4gICAgbWVyZ2UoXG4gICAgICAvLyBUT0RPOiBtYXliZSB0aGVyZSBpcyBhIGJldHRlciB3YXkgd2FpdCB3aGVuIHZpZXdwb3J0IGlzIHJlYWR5P1xuICAgICAgLy8gKHRvIGNvcnJlY3RseSBjYWxjdWxhdGUgdmlld3BvcnQgbm9kZXMgb24gZmlyc3QgcmVuZGVyKVxuICAgICAgdG9PYnNlcnZhYmxlKHRoaXMuZmxvd0VudGl0aWVzU2VydmljZS5ub2RlcykucGlwZShcbiAgICAgICAgb2JzZXJ2ZU9uKGFzeW5jU2NoZWR1bGVyKSxcbiAgICAgICAgZmlsdGVyKChub2RlcykgPT4gISFub2Rlcy5sZW5ndGgpLFxuICAgICAgKSxcblxuICAgICAgdGhpcy52aWV3cG9ydFNlcnZpY2Uudmlld3BvcnRDaGFuZ2VFbmQkLnBpcGUoZGVib3VuY2VUaW1lKDMwMCkpLFxuICAgICkucGlwZShcbiAgICAgIG1hcCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHZpZXdwb3J0ID0gdGhpcy52aWV3cG9ydFNlcnZpY2UucmVhZGFibGVWaWV3cG9ydCgpO1xuICAgICAgICBjb25zdCB6b29tVGhyZXNob2xkID0gdGhpcy5mbG93U2V0dGluZ3NTZXJ2aWNlLm9wdGltaXphdGlvbigpLnZpcnR1YWxpemF0aW9uWm9vbVRocmVzaG9sZDtcblxuICAgICAgICByZXR1cm4gdmlld3BvcnQuem9vbSA8IHpvb21UaHJlc2hvbGQgPyBbXSA6IHRoaXMudmlld3BvcnROb2RlcygpO1xuICAgICAgfSksXG4gICAgKSxcbiAgICB7XG4gICAgICBpbml0aWFsVmFsdWU6IFtdLFxuICAgIH0sXG4gICk7XG5cbiAgcHJpdmF0ZSBtYXhPcmRlciA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gTWF0aC5tYXgoLi4udGhpcy5mbG93RW50aXRpZXNTZXJ2aWNlLm5vZGVzKCkubWFwKChuKSA9PiBuLnJlbmRlck9yZGVyKCkpKTtcbiAgfSk7XG5cbiAgcHVibGljIHB1bGxOb2RlKG5vZGU6IE5vZGVNb2RlbCkge1xuICAgIC8vIHB1bGwgbm9kZVxuICAgIG5vZGUucmVuZGVyT3JkZXIuc2V0KHRoaXMubWF4T3JkZXIoKSArIDEpO1xuXG4gICAgLy8gcHVsbCBjaGlsZHJlblxuICAgIG5vZGUuY2hpbGRyZW4oKS5mb3JFYWNoKChuKSA9PiB0aGlzLnB1bGxOb2RlKG4pKTtcbiAgfVxufVxuIl19
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS1yZW5kZXJpbmcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC12Zmxvdy1saWIvc3JjL2xpYi92Zmxvdy9zZXJ2aWNlcy9ub2RlLXJlbmRlcmluZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUU5RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzFELE9BQU8sRUFBRSxjQUFjLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNuRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDL0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdCQUF3QixDQUFDOztBQUdyRCxNQUFNLE9BQU8sb0JBQW9CO0lBRGpDO1FBRVUsd0JBQW1CLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDbEQsd0JBQW1CLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDbEQsb0JBQWUsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFbEMsVUFBSyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDcEMsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxj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QyxZQUFZLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQztZQUUxRixPQUFPLFFBQVEsQ0FBQyxJQUFJLEdBQUcsYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNuRSxDQUFDLENBQUMsQ0FDSCxFQUNEO1lBQ0UsWUFBWSxFQUFFLEVBQUU7U0FDakIsQ0FDRixDQUFDO1FBRU0sYUFBUSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDL0IsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNuRixDQUFDLENBQUMsQ0FBQztLQVNKO0lBUFEsUUFBUSxDQUFDLElBQWU7UUFDN0IsWUFBWTtRQUNaLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUUxQyxnQkFBZ0I7UUFDaEIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ25ELENBQUM7K0dBckVVLG9CQUFvQjttSEFBcEIsb0JBQW9COzs0RkFBcEIsb0JBQW9CO2tCQURoQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgY29tcHV0ZWQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRmxvd0VudGl0aWVzU2VydmljZSB9IGZyb20gJy4vZmxvdy1lbnRpdGllcy5zZXJ2aWNlJztcbmltcG9ydCB7IE5vZGVNb2RlbCB9IGZyb20gJy4uL21vZGVscy9ub2RlLm1vZGVsJztcbmltcG9ydCB7IEZsb3dTZXR0aW5nc1NlcnZpY2UgfSBmcm9tICcuL2Zsb3ctc2V0dGluZ3Muc2VydmljZSc7XG5pbXBvcnQgeyBpc1JlY3RJblZpZXdwb3J0IH0gZnJvbSAnLi4vdXRpbHMvdmlld3BvcnQnO1xuaW1wb3J0IHsgVmlld3BvcnRTZXJ2aWNlIH0gZnJvbSAnLi92aWV3cG9ydC5zZXJ2aWNlJztcbmltcG9ydCB7IHRvT2JzZXJ2YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IGFzeW5jU2NoZWR1bGVyLCBkZWJvdW5jZVRpbWUsIGZpbHRlciwgbWFwLCBtZXJnZSwgb2JzZXJ2ZU9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0b0xhenlTaWduYWwgfSBmcm9tICcuLi91dGlscy9zaWduYWxzL3RvLWxhenktc2lnbmFsJztcbmltcG9ydCB7IGlzR3JvdXBOb2RlIH0gZnJvbSAnLi4vdXRpbHMvaXMtZ3JvdXAtbm9kZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBOb2RlUmVuZGVyaW5nU2VydmljZSB7XG4gIHByaXZhdGUgZmxvd0VudGl0aWVzU2VydmljZSA9IGluamVjdChGbG93RW50aXRpZXNTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBmbG93U2V0dGluZ3NTZXJ2aWNlID0gaW5qZWN0KEZsb3dTZXR0aW5nc1NlcnZpY2UpO1xuICBwcml2YXRlIHZpZXdwb3J0U2VydmljZSA9IGluamVjdChWaWV3cG9ydFNlcnZpY2UpO1xuXG4gIHB1YmxpYyByZWFkb25seSBub2RlcyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBpZiAoIXRoaXMuZmxvd1NldHRpbmdzU2VydmljZS5vcHRpbWl6YXRpb24oKS52aXJ0dWFsaXphdGlvbikge1xuICAgICAgcmV0dXJuIFsuLi50aGlzLmZsb3dFbnRpdGllc1NlcnZpY2Uubm9kZXMoKV0uc29ydCgoYU5vZGUsIGJOb2RlKSA9PiBhTm9kZS5yZW5kZXJPcmRlcigpIC0gYk5vZGUucmVuZGVyT3JkZXIoKSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMudmlld3BvcnROb2Rlc0FmdGVySW50ZXJhY3Rpb24oKS5zb3J0KChhTm9kZSwgYk5vZGUpID0+IGFOb2RlLnJlbmRlck9yZGVyKCkgLSBiTm9kZS5yZW5kZXJPcmRlcigpKTtcbiAgfSk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGdyb3VwcyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5ub2RlcygpLmZpbHRlcigobikgPT4gISFuLmNoaWxkcmVuKCkubGVuZ3RoIHx8IGlzR3JvdXBOb2RlKG4pKTtcbiAgfSk7XG5cbiAgcHVibGljIHJlYWRvbmx5IG5vbkdyb3VwcyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICByZXR1cm4gdGhpcy5ub2RlcygpLmZpbHRlcigobikgPT4gIXRoaXMuZ3JvdXBzKCkuaW5jbHVkZXMobikpO1xuICB9KTtcblxuICBwdWJsaWMgdmlld3BvcnROb2RlcyA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBub2RlcyA9IHRoaXMuZmxvd0VudGl0aWVzU2VydmljZS5ub2RlcygpO1xuICAgIGNvbnN0IHZpZXdwb3J0ID0gdGhpcy52aWV3cG9ydFNlcnZpY2UucmVhZGFibGVWaWV3cG9ydCgpO1xuICAgIGNvbnN0IGZsb3dXaWR0aCA9IHRoaXMuZmxvd1NldHRpbmdzU2VydmljZS5jb21wdXRlZEZsb3dXaWR0aCgpO1xuICAgIGNvbnN0IGZsb3dIZWlnaHQgPSB0aGlzLmZsb3dTZXR0aW5nc1NlcnZpY2UuY29tcHV0ZWRGbG93SGVpZ2h0KCk7XG5cbiAgICByZXR1cm4gbm9kZXMuZmlsdGVyKChuKSA9PiB7XG4gICAgICBjb25zdCB7IHgsIHkgfSA9IG4uZ2xvYmFsUG9pbnQoKTtcbiAgICAgIGNvbnN0IHdpZHRoID0gbi53aWR0aCgpO1xuICAgICAgY29uc3QgaGVpZ2h0ID0gbi5oZWlnaHQoKTtcblxuICAgICAgcmV0dXJuIGlzUmVjdEluVmlld3BvcnQoeyB4LCB5LCB3aWR0aCwgaGVpZ2h0IH0sIHZpZXdwb3J0LCBmbG93V2lkdGgsIGZsb3dIZWlnaHQpO1xuICAgIH0pO1xuICB9KTtcblxuICBwcml2YXRlIHZpZXdwb3J0Tm9kZXNBZnRlckludGVyYWN0aW9uID0gdG9MYXp5U2lnbmFsKFxuICAgIG1lcmdlKFxuICAgICAgLy8gVE9ETzogbWF5YmUgdGhlcmUgaXMgYSBiZXR0ZXIgd2F5IHdhaXQgd2hlbiB2aWV3cG9ydCBpcyByZWFkeT9cbiAgICAgIC8vICh0byBjb3JyZWN0bHkgY2FsY3VsYXRlIHZpZXdwb3J0IG5vZGVzIG9uIGZpcnN0IHJlbmRlcilcbiAgICAgIHRvT2JzZXJ2YWJsZSh0aGlzLmZsb3dFbnRpdGllc1NlcnZpY2Uubm9kZXMpLnBpcGUoXG4gICAgICAgIG9ic2VydmVPbihhc3luY1NjaGVkdWxlciksXG4gICAgICAgIGZpbHRlcigobm9kZXMpID0+ICEhbm9kZXMubGVuZ3RoKSxcbiAgICAgICksXG5cbiAgICAgIHRoaXMudmlld3BvcnRTZXJ2aWNlLnZpZXdwb3J0Q2hhbmdlRW5kJC5waXBlKGRlYm91bmNlVGltZSgzMDApKSxcbiAgICApLnBpcGUoXG4gICAgICBtYXAoKCkgPT4ge1xuICAgICAgICBjb25zdCB2aWV3cG9ydCA9IHRoaXMudmlld3BvcnRTZXJ2aWNlLnJlYWRhYmxlVmlld3BvcnQoKTtcbiAgICAgICAgY29uc3Qgem9vbVRocmVzaG9sZCA9IHRoaXMuZmxvd1NldHRpbmdzU2VydmljZS5vcHRpbWl6YXRpb24oKS52aXJ0dWFsaXphdGlvblpvb21UaHJlc2hvbGQ7XG5cbiAgICAgICAgcmV0dXJuIHZpZXdwb3J0Lnpvb20gPCB6b29tVGhyZXNob2xkID8gW10gOiB0aGlzLnZpZXdwb3J0Tm9kZXMoKTtcbiAgICAgIH0pLFxuICAgICksXG4gICAge1xuICAgICAgaW5pdGlhbFZhbHVlOiBbXSxcbiAgICB9LFxuICApO1xuXG4gIHByaXZhdGUgbWF4T3JkZXIgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgcmV0dXJuIE1hdGgubWF4KC4uLnRoaXMuZmxvd0VudGl0aWVzU2VydmljZS5ub2RlcygpLm1hcCgobikgPT4gbi5yZW5kZXJPcmRlcigpKSk7XG4gIH0pO1xuXG4gIHB1YmxpYyBwdWxsTm9kZShub2RlOiBOb2RlTW9kZWwpIHtcbiAgICAvLyBwdWxsIG5vZGVcbiAgICBub2RlLnJlbmRlck9yZGVyLnNldCh0aGlzLm1heE9yZGVyKCkgKyAxKTtcblxuICAgIC8vIHB1bGwgY2hpbGRyZW5cbiAgICBub2RlLmNoaWxkcmVuKCkuZm9yRWFjaCgobikgPT4gdGhpcy5wdWxsTm9kZShuKSk7XG4gIH1cbn1cbiJdfQ==
@@ -1061,10 +1061,6 @@ function toSignalProperties(obj) {
1061
1061
  return newObj;
1062
1062
  }
1063
1063
 
1064
- function isGroupNode(node) {
1065
- return node.rawNode.type === 'default-group' || node.rawNode.type === 'template-group';
1066
- }
1067
-
1068
1064
  // MIT License
1069
1065
  // Copyright (c) 2023 Chau Tran
1070
1066
  // Permission is hereby granted, free of charge, to any person obtaining a copy
@@ -1123,6 +1119,10 @@ function toLazySignal(source, options) {
1123
1119
  });
1124
1120
  }
1125
1121
 
1122
+ function isGroupNode(node) {
1123
+ return node.rawNode.type === 'default-group' || node.rawNode.type === 'template-group';
1124
+ }
1125
+
1126
1126
  class NodeRenderingService {
1127
1127
  constructor() {
1128
1128
  this.flowEntitiesService = inject(FlowEntitiesService);
@@ -1135,10 +1135,10 @@ class NodeRenderingService {
1135
1135
  return this.viewportNodesAfterInteraction().sort((aNode, bNode) => aNode.renderOrder() - bNode.renderOrder());
1136
1136
  });
1137
1137
  this.groups = computed(() => {
1138
- return this.nodes().filter((n) => isGroupNode(n));
1138
+ return this.nodes().filter((n) => !!n.children().length || isGroupNode(n));
1139
1139
  });
1140
1140
  this.nonGroups = computed(() => {
1141
- return this.nodes().filter((n) => !isGroupNode(n));
1141
+ return this.nodes().filter((n) => !this.groups().includes(n));
1142
1142
  });
1143
1143
  this.viewportNodes = computed(() => {
1144
1144
  const nodes = this.flowEntitiesService.nodes();