@foblex/flow 18.2.0 → 18.3.0

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.
Files changed (56) hide show
  1. package/README.md +11 -1
  2. package/domain/f-connection/create-connection-markers/create-connection-markers.d.ts +3 -2
  3. package/domain/f-connection/redraw-connections/redraw-connections.d.ts +2 -0
  4. package/esm2022/domain/f-connection/create-connection-markers/create-connection-markers.mjs +33 -6
  5. package/esm2022/domain/f-connection/redraw-connections/redraw-connections.mjs +46 -3
  6. package/esm2022/f-connection/f-connection/f-connection.component.mjs +6 -6
  7. package/esm2022/f-connection/f-connection-for-create/f-connection-for-create.component.mjs +6 -7
  8. package/esm2022/f-connection/f-snap-connection/f-snap-connection.component.mjs +6 -7
  9. package/esm2022/f-connection/providers.mjs +8 -4
  10. package/esm2022/f-connection-v2/components/connection-gradient/components/index.mjs +2 -0
  11. package/esm2022/f-connection-v2/components/connection-gradient/components/render/f-connection-gradient-renderer.mjs +17 -0
  12. package/esm2022/f-connection-v2/components/connection-gradient/components/render/index.mjs +3 -0
  13. package/esm2022/f-connection-v2/components/connection-gradient/components/render/models/f-connection-gradient-renderer-base.mjs +81 -0
  14. package/esm2022/f-connection-v2/components/connection-gradient/components/render/models/index.mjs +2 -0
  15. package/esm2022/f-connection-v2/components/connection-gradient/f-connection-gradient.mjs +14 -46
  16. package/esm2022/f-connection-v2/components/connection-gradient/index.mjs +2 -1
  17. package/esm2022/f-connection-v2/components/connection-gradient/models/f-connection-gradient-base.mjs +2 -3
  18. package/esm2022/f-connection-v2/components/connection-path/f-connection-path.mjs +11 -7
  19. package/esm2022/f-connection-v2/components/f-connection-base.mjs +13 -9
  20. package/esm2022/f-connection-v2/models/f-connection-components-parent.mjs +1 -1
  21. package/esm2022/f-connection-v2/utils/create-gradient-dom-identifier.mjs +3 -3
  22. package/esm2022/f-connection-v2/utils/create-gradient-dom-url.mjs +3 -3
  23. package/esm2022/f-connection-worker/features/ensure-connection-worker/ensure-connection-worker.mjs +11 -4
  24. package/esm2022/f-connection-worker/features/is-connection-worker-enabled/is-connection-worker-enabled.mjs +3 -2
  25. package/esm2022/f-connection-worker/model/f-connection-worker.mjs +5 -1
  26. package/esm2022/f-connection-worker/worker/connection-worker-runtime.mjs +235 -0
  27. package/esm2022/f-flow/f-flow.component.mjs +8 -5
  28. package/esm2022/f-flow.module.mjs +37 -36
  29. package/esm2022/f-storage/f-components-store.mjs +17 -1
  30. package/esm2022/f-virtual/f-virtual-for.mjs +33 -3
  31. package/f-connection/f-connection/f-connection.component.d.ts +1 -1
  32. package/f-connection/f-connection-for-create/f-connection-for-create.component.d.ts +1 -1
  33. package/f-connection/f-snap-connection/f-snap-connection.component.d.ts +1 -1
  34. package/f-connection/providers.d.ts +3 -3
  35. package/f-connection-v2/components/connection-gradient/components/index.d.ts +1 -0
  36. package/f-connection-v2/components/connection-gradient/components/render/f-connection-gradient-renderer.d.ts +8 -0
  37. package/f-connection-v2/components/connection-gradient/components/render/index.d.ts +2 -0
  38. package/f-connection-v2/components/connection-gradient/components/render/models/f-connection-gradient-renderer-base.d.ts +25 -0
  39. package/f-connection-v2/components/connection-gradient/components/render/models/index.d.ts +1 -0
  40. package/f-connection-v2/components/connection-gradient/f-connection-gradient.d.ts +3 -11
  41. package/f-connection-v2/components/connection-gradient/index.d.ts +1 -0
  42. package/f-connection-v2/components/connection-gradient/models/f-connection-gradient-base.d.ts +3 -5
  43. package/f-connection-v2/components/connection-path/f-connection-path.d.ts +3 -2
  44. package/f-connection-v2/components/f-connection-base.d.ts +7 -4
  45. package/f-connection-v2/models/f-connection-components-parent.d.ts +0 -2
  46. package/f-connection-v2/utils/create-gradient-dom-identifier.d.ts +1 -1
  47. package/f-connection-v2/utils/create-gradient-dom-url.d.ts +1 -1
  48. package/f-connection-worker/model/f-connection-worker.d.ts +1 -0
  49. package/f-connection-worker/worker/connection-worker-runtime.d.ts +11 -0
  50. package/f-flow/f-flow.component.d.ts +1 -0
  51. package/f-flow.module.d.ts +38 -37
  52. package/f-storage/f-components-store.d.ts +5 -0
  53. package/f-virtual/f-virtual-for.d.ts +8 -2
  54. package/fesm2022/foblex-flow.mjs +509 -75
  55. package/fesm2022/foblex-flow.mjs.map +1 -1
  56. package/package.json +1 -1
@@ -18,43 +18,44 @@ import { F_VIRTUAL_FOR_PROVIDERS } from './f-virtual';
18
18
  import * as i0 from "@angular/core";
19
19
  import * as i1 from "./f-connection-v2/components/connection-drag-handles/f-connection-drag-handle-start";
20
20
  import * as i2 from "./f-connection-v2/components/connection-drag-handles/f-connection-drag-handle-end";
21
- import * as i3 from "./f-connection-v2/components/connection-gradient/f-connection-gradient";
22
- import * as i4 from "./f-connection-v2/components/connection-path/f-connection-path";
23
- import * as i5 from "./f-connection-v2/components/connection-selection/f-connection-selection";
24
- import * as i6 from "./f-connection-v2/components/connection-marker/f-connection-marker";
25
- import * as i7 from "./f-connection/f-connection/f-connection.component";
26
- import * as i8 from "./f-connection/f-connection-for-create/f-connection-for-create.component";
27
- import * as i9 from "./f-connection/f-snap-connection/f-snap-connection.component";
28
- import * as i10 from "./f-connectors/f-node-input/f-node-input.directive";
29
- import * as i11 from "./f-connectors/f-node-outlet/f-node-outlet.directive";
30
- import * as i12 from "./f-connectors/f-node-output/f-node-output.directive";
31
- import * as i13 from "./f-line-alignment/f-line-alignment.component";
32
- import * as i14 from "./f-node/f-group.directive";
33
- import * as i15 from "./f-node/f-node.directive";
34
- import * as i16 from "./f-node/f-drag-handle.directive";
35
- import * as i17 from "./f-node/f-resize-handle/f-resize-handle.directive";
36
- import * as i18 from "./f-node/f-rotate-handle/f-rotate-handle.directive";
37
- import * as i19 from "./f-flow/f-flow.component";
38
- import * as i20 from "./f-canvas/f-canvas.component";
39
- import * as i21 from "./f-backgroud/f-background.component";
40
- import * as i22 from "./f-backgroud/f-rect-pattern/f-rect-pattern.component";
41
- import * as i23 from "./f-backgroud/f-circle-pattern/f-circle-pattern.component";
42
- import * as i24 from "./f-zoom/f-zoom.directive";
43
- import * as i25 from "./f-external-item/f-external-item";
44
- import * as i26 from "./f-minimap/f-minimap.component";
45
- import * as i27 from "./f-minimap/f-minimap-canvas.directive";
46
- import * as i28 from "./f-minimap/f-minimap-view.directive";
47
- import * as i29 from "./f-minimap/f-minimap-flow.directive";
48
- import * as i30 from "./f-selection-area/f-selection-area";
49
- import * as i31 from "./f-magnetic-lines/f-magnetic-lines";
50
- import * as i32 from "./f-magnetic-rects/f-magnetic-rects";
51
- import * as i33 from "./f-connection-v2/components/connection-content/f-connection-content";
52
- import * as i34 from "./f-connection-v2/components/connection-waypoints/f-connection-waypoints";
53
- import * as i35 from "./f-virtual/f-virtual-for";
21
+ import * as i3 from "./f-connection-v2/components/connection-path/f-connection-path";
22
+ import * as i4 from "./f-connection-v2/components/connection-selection/f-connection-selection";
23
+ import * as i5 from "./f-connection-v2/components/connection-marker/f-connection-marker";
24
+ import * as i6 from "./f-connection/f-connection/f-connection.component";
25
+ import * as i7 from "./f-connection/f-connection-for-create/f-connection-for-create.component";
26
+ import * as i8 from "./f-connection/f-snap-connection/f-snap-connection.component";
27
+ import * as i9 from "./f-connectors/f-node-input/f-node-input.directive";
28
+ import * as i10 from "./f-connectors/f-node-outlet/f-node-outlet.directive";
29
+ import * as i11 from "./f-connectors/f-node-output/f-node-output.directive";
30
+ import * as i12 from "./f-line-alignment/f-line-alignment.component";
31
+ import * as i13 from "./f-node/f-group.directive";
32
+ import * as i14 from "./f-node/f-node.directive";
33
+ import * as i15 from "./f-node/f-drag-handle.directive";
34
+ import * as i16 from "./f-node/f-resize-handle/f-resize-handle.directive";
35
+ import * as i17 from "./f-node/f-rotate-handle/f-rotate-handle.directive";
36
+ import * as i18 from "./f-flow/f-flow.component";
37
+ import * as i19 from "./f-canvas/f-canvas.component";
38
+ import * as i20 from "./f-backgroud/f-background.component";
39
+ import * as i21 from "./f-backgroud/f-rect-pattern/f-rect-pattern.component";
40
+ import * as i22 from "./f-backgroud/f-circle-pattern/f-circle-pattern.component";
41
+ import * as i23 from "./f-zoom/f-zoom.directive";
42
+ import * as i24 from "./f-external-item/f-external-item";
43
+ import * as i25 from "./f-minimap/f-minimap.component";
44
+ import * as i26 from "./f-minimap/f-minimap-canvas.directive";
45
+ import * as i27 from "./f-minimap/f-minimap-view.directive";
46
+ import * as i28 from "./f-minimap/f-minimap-flow.directive";
47
+ import * as i29 from "./f-selection-area/f-selection-area";
48
+ import * as i30 from "./f-magnetic-lines/f-magnetic-lines";
49
+ import * as i31 from "./f-magnetic-rects/f-magnetic-rects";
50
+ import * as i32 from "./f-connection-v2/components/connection-content/f-connection-content";
51
+ import * as i33 from "./f-connection-v2/components/connection-gradient/f-connection-gradient";
52
+ import * as i34 from "./f-connection-v2/components/connection-gradient/components/render/f-connection-gradient-renderer";
53
+ import * as i35 from "./f-connection-v2/components/connection-waypoints/f-connection-waypoints";
54
+ import * as i36 from "./f-virtual/f-virtual-for";
54
55
  export class FFlowModule {
55
56
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FFlowModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
56
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: FFlowModule, declarations: [i1.FConnectionDragHandleStart, i2.FConnectionDragHandleEnd, i3.FConnectionGradient, i4.FConnectionPath, i5.FConnectionSelection, i6.FConnectionMarker, i7.FConnectionComponent, i8.FConnectionForCreateComponent, i9.FSnapConnectionComponent, i10.FNodeInputDirective, i11.FNodeOutletDirective, i12.FNodeOutputDirective, i13.FLineAlignmentComponent, i14.FGroupDirective, i15.FNodeDirective, i16.FDragHandleDirective, i17.FResizeHandleDirective, i18.FRotateHandleDirective, FDragBlockerDirective,
57
- FDraggableDirective], imports: [i19.FFlowComponent, i20.FCanvasComponent, i21.FBackgroundComponent, i22.FRectPatternComponent, i23.FCirclePatternComponent, i24.FZoomDirective, i25.FExternalItem, i26.FMinimapComponent, i27.FMinimapCanvasDirective, i28.FMinimapViewDirective, i29.FMinimapFlowDirective, i30.FSelectionArea, i31.FMagneticLines, i32.FMagneticRects, i33.FConnectionContent, i34.FConnectionWaypoints, i35.FVirtualFor, CommonModule], exports: [i19.FFlowComponent, i20.FCanvasComponent, i21.FBackgroundComponent, i22.FRectPatternComponent, i23.FCirclePatternComponent, i24.FZoomDirective, i25.FExternalItem, i30.FSelectionArea, i31.FMagneticLines, i32.FMagneticRects, i33.FConnectionContent, i34.FConnectionWaypoints, i1.FConnectionDragHandleStart, i2.FConnectionDragHandleEnd, i3.FConnectionGradient, i4.FConnectionPath, i5.FConnectionSelection, i6.FConnectionMarker, i7.FConnectionComponent, i8.FConnectionForCreateComponent, i9.FSnapConnectionComponent, i10.FNodeInputDirective, i11.FNodeOutletDirective, i12.FNodeOutputDirective, i13.FLineAlignmentComponent, i26.FMinimapComponent, i27.FMinimapCanvasDirective, i28.FMinimapViewDirective, i29.FMinimapFlowDirective, i14.FGroupDirective, i15.FNodeDirective, i16.FDragHandleDirective, i17.FResizeHandleDirective, i18.FRotateHandleDirective, i35.FVirtualFor, FDragBlockerDirective,
57
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: FFlowModule, declarations: [i1.FConnectionDragHandleStart, i2.FConnectionDragHandleEnd, i3.FConnectionPath, i4.FConnectionSelection, i5.FConnectionMarker, i6.FConnectionComponent, i7.FConnectionForCreateComponent, i8.FSnapConnectionComponent, i9.FNodeInputDirective, i10.FNodeOutletDirective, i11.FNodeOutputDirective, i12.FLineAlignmentComponent, i13.FGroupDirective, i14.FNodeDirective, i15.FDragHandleDirective, i16.FResizeHandleDirective, i17.FRotateHandleDirective, FDragBlockerDirective,
58
+ FDraggableDirective], imports: [i18.FFlowComponent, i19.FCanvasComponent, i20.FBackgroundComponent, i21.FRectPatternComponent, i22.FCirclePatternComponent, i23.FZoomDirective, i24.FExternalItem, i25.FMinimapComponent, i26.FMinimapCanvasDirective, i27.FMinimapViewDirective, i28.FMinimapFlowDirective, i29.FSelectionArea, i30.FMagneticLines, i31.FMagneticRects, i32.FConnectionContent, i33.FConnectionGradient, i34.FConnectionGradientRenderer, i35.FConnectionWaypoints, i36.FVirtualFor, CommonModule], exports: [i18.FFlowComponent, i19.FCanvasComponent, i20.FBackgroundComponent, i21.FRectPatternComponent, i22.FCirclePatternComponent, i23.FZoomDirective, i24.FExternalItem, i29.FSelectionArea, i30.FMagneticLines, i31.FMagneticRects, i32.FConnectionContent, i33.FConnectionGradient, i34.FConnectionGradientRenderer, i35.FConnectionWaypoints, i1.FConnectionDragHandleStart, i2.FConnectionDragHandleEnd, i3.FConnectionPath, i4.FConnectionSelection, i5.FConnectionMarker, i6.FConnectionComponent, i7.FConnectionForCreateComponent, i8.FSnapConnectionComponent, i9.FNodeInputDirective, i10.FNodeOutletDirective, i11.FNodeOutputDirective, i12.FLineAlignmentComponent, i25.FMinimapComponent, i26.FMinimapCanvasDirective, i27.FMinimapViewDirective, i28.FMinimapFlowDirective, i13.FGroupDirective, i14.FNodeDirective, i15.FDragHandleDirective, i16.FResizeHandleDirective, i17.FRotateHandleDirective, i36.FVirtualFor, FDragBlockerDirective,
58
59
  FDraggableDirective] });
59
60
  static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FFlowModule, imports: [CommonModule] });
60
61
  }
@@ -104,4 +105,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
104
105
  ],
105
106
  }]
106
107
  }] });
107
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1mbG93Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1mbG93Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDNUMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNoRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDNUMsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDOUQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sYUFBYSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBdUR0RCxNQUFNLE9BQU8sV0FBVzt3R0FBWCxXQUFXO3lHQUFYLFdBQVcscWVBOUNwQixxQkFBcUI7WUFDckIsbUJBQW1CLHlaQWtCbkIsWUFBWSw2MkJBdUJaLHFCQUFxQjtZQUNyQixtQkFBbUI7eUdBR1YsV0FBVyxZQTNCcEIsWUFBWTs7NEZBMkJILFdBQVc7a0JBckR2QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWixHQUFHLHNCQUFzQjt3QkFDekIsR0FBRyxzQkFBc0I7d0JBQ3pCLEdBQUcsMEJBQTBCO3dCQUM3QixHQUFHLGdCQUFnQjt3QkFFbkIscUJBQXFCO3dCQUNyQixtQkFBbUI7cUJBQ3BCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxHQUFHLGdCQUFnQjt3QkFDbkIsR0FBRyxrQkFBa0I7d0JBQ3JCLEdBQUcsc0JBQXNCO3dCQUN6QixHQUFHLGdCQUFnQjt3QkFDbkIsR0FBRyx5QkFBeUI7d0JBQzVCLEdBQUcsbUJBQW1CO3dCQUV0QixHQUFHLDBCQUEwQjt3QkFDN0IsR0FBRywwQkFBMEI7d0JBQzdCLEdBQUcsMEJBQTBCO3dCQUU3QixHQUFHLDRCQUE0Qjt3QkFFL0IsR0FBRyx1QkFBdUI7d0JBRTFCLFlBQVk7cUJBQ2I7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLEdBQUcsZ0JBQWdCO3dCQUNuQixHQUFHLGtCQUFrQjt3QkFDckIsR0FBRyxzQkFBc0I7d0JBQ3pCLEdBQUcsZ0JBQWdCO3dCQUNuQixHQUFHLHlCQUF5Qjt3QkFFNUIsR0FBRywwQkFBMEI7d0JBQzdCLEdBQUcsMEJBQTBCO3dCQUM3QixHQUFHLDBCQUEwQjt3QkFFN0IsR0FBRyw0QkFBNEI7d0JBRS9CLEdBQUcsc0JBQXNCO3dCQUN6QixHQUFHLHNCQUFzQjt3QkFDekIsR0FBRywwQkFBMEI7d0JBQzdCLEdBQUcsbUJBQW1CO3dCQUN0QixHQUFHLGdCQUFnQjt3QkFFbkIsR0FBRyx1QkFBdUI7d0JBRTFCLHFCQUFxQjt3QkFDckIsbUJBQW1CO3FCQUNwQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRl9DT05ORUNUSU9OX0lNUE9SVFNfRVhQT1JUUywgRl9DT05ORUNUSU9OX1BST1ZJREVSUyB9IGZyb20gJy4vZi1jb25uZWN0aW9uJztcbmltcG9ydCB7IEZfTk9ERV9QUk9WSURFUlMgfSBmcm9tICcuL2Ytbm9kZSc7XG5pbXBvcnQgeyBGX0JBQ0tHUk9VTkRfUFJPVklERVJTIH0gZnJvbSAnLi9mLWJhY2tncm91ZCc7XG5pbXBvcnQgeyBGX0NPTk5FQ1RPUlNfUFJPVklERVJTIH0gZnJvbSAnLi9mLWNvbm5lY3RvcnMnO1xuaW1wb3J0IHsgRkRyYWdCbG9ja2VyRGlyZWN0aXZlLCBGRHJhZ2dhYmxlRGlyZWN0aXZlIH0gZnJvbSAnLi9mLWRyYWdnYWJsZSc7XG5pbXBvcnQgeyBGX1NFTEVDVElPTl9BUkVBX1BST1ZJREVSUyB9IGZyb20gJy4vZi1zZWxlY3Rpb24tYXJlYSc7XG5pbXBvcnQgeyBGX0xJTkVfQUxJR05NRU5UX1BST1ZJREVSUyB9IGZyb20gJy4vZi1saW5lLWFsaWdubWVudCc7XG5pbXBvcnQgeyBGX01JTklNQVBfUFJPVklERVJTIH0gZnJvbSAnLi9mLW1pbmltYXAnO1xuaW1wb3J0IHsgRl9GTE9XX1BST1ZJREVSUyB9IGZyb20gJy4vZi1mbG93JztcbmltcG9ydCB7IEZfQ0FOVkFTX1BST1ZJREVSUyB9IGZyb20gJy4vZi1jYW52YXMnO1xuaW1wb3J0IHsgRl9aT09NX1BST1ZJREVSUyB9IGZyb20gJy4vZi16b29tJztcbmltcG9ydCB7IEZfRVhURVJOQUxfSVRFTV9QUk9WSURFUlMgfSBmcm9tICcuL2YtZXh0ZXJuYWwtaXRlbSc7XG5pbXBvcnQgeyBGX01BR05FVElDX0xJTkVTX1BST1ZJREVSUyB9IGZyb20gJy4vZi1tYWduZXRpYy1saW5lcyc7XG5pbXBvcnQgeyBGX01BR05FVElDX1JFQ1RTX1BST1ZJREVSUyB9IGZyb20gJy4vZi1tYWduZXRpYy1yZWN0cyc7XG5pbXBvcnQgeyBGX1ZJUlRVQUxfRk9SX1BST1ZJREVSUyB9IGZyb20gJy4vZi12aXJ0dWFsJztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgLi4uRl9DT05ORUNUSU9OX1BST1ZJREVSUyxcbiAgICAuLi5GX0NPTk5FQ1RPUlNfUFJPVklERVJTLFxuICAgIC4uLkZfTElORV9BTElHTk1FTlRfUFJPVklERVJTLFxuICAgIC4uLkZfTk9ERV9QUk9WSURFUlMsXG5cbiAgICBGRHJhZ0Jsb2NrZXJEaXJlY3RpdmUsXG4gICAgRkRyYWdnYWJsZURpcmVjdGl2ZSxcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIC4uLkZfRkxPV19QUk9WSURFUlMsXG4gICAgLi4uRl9DQU5WQVNfUFJPVklERVJTLFxuICAgIC4uLkZfQkFDS0dST1VORF9QUk9WSURFUlMsXG4gICAgLi4uRl9aT09NX1BST1ZJREVSUyxcbiAgICAuLi5GX0VYVEVSTkFMX0lURU1fUFJPVklERVJTLFxuICAgIC4uLkZfTUlOSU1BUF9QUk9WSURFUlMsXG5cbiAgICAuLi5GX1NFTEVDVElPTl9BUkVBX1BST1ZJREVSUyxcbiAgICAuLi5GX01BR05FVElDX0xJTkVTX1BST1ZJREVSUyxcbiAgICAuLi5GX01BR05FVElDX1JFQ1RTX1BST1ZJREVSUyxcblxuICAgIC4uLkZfQ09OTkVDVElPTl9JTVBPUlRTX0VYUE9SVFMsXG5cbiAgICAuLi5GX1ZJUlRVQUxfRk9SX1BST1ZJREVSUyxcblxuICAgIENvbW1vbk1vZHVsZSxcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIC4uLkZfRkxPV19QUk9WSURFUlMsXG4gICAgLi4uRl9DQU5WQVNfUFJPVklERVJTLFxuICAgIC4uLkZfQkFDS0dST1VORF9QUk9WSURFUlMsXG4gICAgLi4uRl9aT09NX1BST1ZJREVSUyxcbiAgICAuLi5GX0VYVEVSTkFMX0lURU1fUFJPVklERVJTLFxuXG4gICAgLi4uRl9TRUxFQ1RJT05fQVJFQV9QUk9WSURFUlMsXG4gICAgLi4uRl9NQUdORVRJQ19MSU5FU19QUk9WSURFUlMsXG4gICAgLi4uRl9NQUdORVRJQ19SRUNUU19QUk9WSURFUlMsXG5cbiAgICAuLi5GX0NPTk5FQ1RJT05fSU1QT1JUU19FWFBPUlRTLFxuXG4gICAgLi4uRl9DT05ORUNUSU9OX1BST1ZJREVSUyxcbiAgICAuLi5GX0NPTk5FQ1RPUlNfUFJPVklERVJTLFxuICAgIC4uLkZfTElORV9BTElHTk1FTlRfUFJPVklERVJTLFxuICAgIC4uLkZfTUlOSU1BUF9QUk9WSURFUlMsXG4gICAgLi4uRl9OT0RFX1BST1ZJREVSUyxcblxuICAgIC4uLkZfVklSVFVBTF9GT1JfUFJPVklERVJTLFxuXG4gICAgRkRyYWdCbG9ja2VyRGlyZWN0aXZlLFxuICAgIEZEcmFnZ2FibGVEaXJlY3RpdmUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEZGbG93TW9kdWxlIHt9XG4iXX0=
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1mbG93Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1mbG93Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDNUMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNoRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDNUMsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDOUQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sYUFBYSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXVEdEQsTUFBTSxPQUFPLFdBQVc7d0dBQVgsV0FBVzt5R0FBWCxXQUFXLDRjQTlDcEIscUJBQXFCO1lBQ3JCLG1CQUFtQixtZEFrQm5CLFlBQVksODRCQXVCWixxQkFBcUI7WUFDckIsbUJBQW1CO3lHQUdWLFdBQVcsWUEzQnBCLFlBQVk7OzRGQTJCSCxXQUFXO2tCQXJEdkIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osR0FBRyxzQkFBc0I7d0JBQ3pCLEdBQUcsc0JBQXNCO3dCQUN6QixHQUFHLDBCQUEwQjt3QkFDN0IsR0FBRyxnQkFBZ0I7d0JBRW5CLHFCQUFxQjt3QkFDckIsbUJBQW1CO3FCQUNwQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsR0FBRyxnQkFBZ0I7d0JBQ25CLEdBQUcsa0JBQWtCO3dCQUNyQixHQUFHLHNCQUFzQjt3QkFDekIsR0FBRyxnQkFBZ0I7d0JBQ25CLEdBQUcseUJBQXlCO3dCQUM1QixHQUFHLG1CQUFtQjt3QkFFdEIsR0FBRywwQkFBMEI7d0JBQzdCLEdBQUcsMEJBQTBCO3dCQUM3QixHQUFHLDBCQUEwQjt3QkFFN0IsR0FBRyw0QkFBNEI7d0JBRS9CLEdBQUcsdUJBQXVCO3dCQUUxQixZQUFZO3FCQUNiO29CQUNELE9BQU8sRUFBRTt3QkFDUCxHQUFHLGdCQUFnQjt3QkFDbkIsR0FBRyxrQkFBa0I7d0JBQ3JCLEdBQUcsc0JBQXNCO3dCQUN6QixHQUFHLGdCQUFnQjt3QkFDbkIsR0FBRyx5QkFBeUI7d0JBRTVCLEdBQUcsMEJBQTBCO3dCQUM3QixHQUFHLDBCQUEwQjt3QkFDN0IsR0FBRywwQkFBMEI7d0JBRTdCLEdBQUcsNEJBQTRCO3dCQUUvQixHQUFHLHNCQUFzQjt3QkFDekIsR0FBRyxzQkFBc0I7d0JBQ3pCLEdBQUcsMEJBQTBCO3dCQUM3QixHQUFHLG1CQUFtQjt3QkFDdEIsR0FBRyxnQkFBZ0I7d0JBRW5CLEdBQUcsdUJBQXVCO3dCQUUxQixxQkFBcUI7d0JBQ3JCLG1CQUFtQjtxQkFDcEI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZfQ09OTkVDVElPTl9JTVBPUlRTX0VYUE9SVFMsIEZfQ09OTkVDVElPTl9QUk9WSURFUlMgfSBmcm9tICcuL2YtY29ubmVjdGlvbic7XG5pbXBvcnQgeyBGX05PREVfUFJPVklERVJTIH0gZnJvbSAnLi9mLW5vZGUnO1xuaW1wb3J0IHsgRl9CQUNLR1JPVU5EX1BST1ZJREVSUyB9IGZyb20gJy4vZi1iYWNrZ3JvdWQnO1xuaW1wb3J0IHsgRl9DT05ORUNUT1JTX1BST1ZJREVSUyB9IGZyb20gJy4vZi1jb25uZWN0b3JzJztcbmltcG9ydCB7IEZEcmFnQmxvY2tlckRpcmVjdGl2ZSwgRkRyYWdnYWJsZURpcmVjdGl2ZSB9IGZyb20gJy4vZi1kcmFnZ2FibGUnO1xuaW1wb3J0IHsgRl9TRUxFQ1RJT05fQVJFQV9QUk9WSURFUlMgfSBmcm9tICcuL2Ytc2VsZWN0aW9uLWFyZWEnO1xuaW1wb3J0IHsgRl9MSU5FX0FMSUdOTUVOVF9QUk9WSURFUlMgfSBmcm9tICcuL2YtbGluZS1hbGlnbm1lbnQnO1xuaW1wb3J0IHsgRl9NSU5JTUFQX1BST1ZJREVSUyB9IGZyb20gJy4vZi1taW5pbWFwJztcbmltcG9ydCB7IEZfRkxPV19QUk9WSURFUlMgfSBmcm9tICcuL2YtZmxvdyc7XG5pbXBvcnQgeyBGX0NBTlZBU19QUk9WSURFUlMgfSBmcm9tICcuL2YtY2FudmFzJztcbmltcG9ydCB7IEZfWk9PTV9QUk9WSURFUlMgfSBmcm9tICcuL2Ytem9vbSc7XG5pbXBvcnQgeyBGX0VYVEVSTkFMX0lURU1fUFJPVklERVJTIH0gZnJvbSAnLi9mLWV4dGVybmFsLWl0ZW0nO1xuaW1wb3J0IHsgRl9NQUdORVRJQ19MSU5FU19QUk9WSURFUlMgfSBmcm9tICcuL2YtbWFnbmV0aWMtbGluZXMnO1xuaW1wb3J0IHsgRl9NQUdORVRJQ19SRUNUU19QUk9WSURFUlMgfSBmcm9tICcuL2YtbWFnbmV0aWMtcmVjdHMnO1xuaW1wb3J0IHsgRl9WSVJUVUFMX0ZPUl9QUk9WSURFUlMgfSBmcm9tICcuL2YtdmlydHVhbCc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIC4uLkZfQ09OTkVDVElPTl9QUk9WSURFUlMsXG4gICAgLi4uRl9DT05ORUNUT1JTX1BST1ZJREVSUyxcbiAgICAuLi5GX0xJTkVfQUxJR05NRU5UX1BST1ZJREVSUyxcbiAgICAuLi5GX05PREVfUFJPVklERVJTLFxuXG4gICAgRkRyYWdCbG9ja2VyRGlyZWN0aXZlLFxuICAgIEZEcmFnZ2FibGVEaXJlY3RpdmUsXG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICAuLi5GX0ZMT1dfUFJPVklERVJTLFxuICAgIC4uLkZfQ0FOVkFTX1BST1ZJREVSUyxcbiAgICAuLi5GX0JBQ0tHUk9VTkRfUFJPVklERVJTLFxuICAgIC4uLkZfWk9PTV9QUk9WSURFUlMsXG4gICAgLi4uRl9FWFRFUk5BTF9JVEVNX1BST1ZJREVSUyxcbiAgICAuLi5GX01JTklNQVBfUFJPVklERVJTLFxuXG4gICAgLi4uRl9TRUxFQ1RJT05fQVJFQV9QUk9WSURFUlMsXG4gICAgLi4uRl9NQUdORVRJQ19MSU5FU19QUk9WSURFUlMsXG4gICAgLi4uRl9NQUdORVRJQ19SRUNUU19QUk9WSURFUlMsXG5cbiAgICAuLi5GX0NPTk5FQ1RJT05fSU1QT1JUU19FWFBPUlRTLFxuXG4gICAgLi4uRl9WSVJUVUFMX0ZPUl9QUk9WSURFUlMsXG5cbiAgICBDb21tb25Nb2R1bGUsXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICAuLi5GX0ZMT1dfUFJPVklERVJTLFxuICAgIC4uLkZfQ0FOVkFTX1BST1ZJREVSUyxcbiAgICAuLi5GX0JBQ0tHUk9VTkRfUFJPVklERVJTLFxuICAgIC4uLkZfWk9PTV9QUk9WSURFUlMsXG4gICAgLi4uRl9FWFRFUk5BTF9JVEVNX1BST1ZJREVSUyxcblxuICAgIC4uLkZfU0VMRUNUSU9OX0FSRUFfUFJPVklERVJTLFxuICAgIC4uLkZfTUFHTkVUSUNfTElORVNfUFJPVklERVJTLFxuICAgIC4uLkZfTUFHTkVUSUNfUkVDVFNfUFJPVklERVJTLFxuXG4gICAgLi4uRl9DT05ORUNUSU9OX0lNUE9SVFNfRVhQT1JUUyxcblxuICAgIC4uLkZfQ09OTkVDVElPTl9QUk9WSURFUlMsXG4gICAgLi4uRl9DT05ORUNUT1JTX1BST1ZJREVSUyxcbiAgICAuLi5GX0xJTkVfQUxJR05NRU5UX1BST1ZJREVSUyxcbiAgICAuLi5GX01JTklNQVBfUFJPVklERVJTLFxuICAgIC4uLkZfTk9ERV9QUk9WSURFUlMsXG5cbiAgICAuLi5GX1ZJUlRVQUxfRk9SX1BST1ZJREVSUyxcblxuICAgIEZEcmFnQmxvY2tlckRpcmVjdGl2ZSxcbiAgICBGRHJhZ2dhYmxlRGlyZWN0aXZlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBGRmxvd01vZHVsZSB7fVxuIl19
@@ -12,12 +12,17 @@ export class FComponentsStore {
12
12
  _connectionsRevision = 0;
13
13
  nodesChanges$ = new FChannel();
14
14
  _nodesRevision = 0;
15
+ progressiveRenderChanges$ = new FChannel();
16
+ _pendingProgressiveRenderCount = 0;
15
17
  get connectionsRevision() {
16
18
  return this._connectionsRevision;
17
19
  }
18
20
  get nodesRevision() {
19
21
  return this._nodesRevision;
20
22
  }
23
+ get hasPendingProgressiveRender() {
24
+ return this._pendingProgressiveRenderCount > 0;
25
+ }
21
26
  get flowHost() {
22
27
  return this.fFlow?.hostElement;
23
28
  }
@@ -42,6 +47,17 @@ export class FComponentsStore {
42
47
  this._connectionsRevision++;
43
48
  this.connectionsChanges$.notify();
44
49
  }
50
+ beginProgressiveRender() {
51
+ this._pendingProgressiveRenderCount++;
52
+ this.progressiveRenderChanges$.notify();
53
+ }
54
+ endProgressiveRender() {
55
+ if (!this._pendingProgressiveRenderCount) {
56
+ return;
57
+ }
58
+ this._pendingProgressiveRenderCount--;
59
+ this.progressiveRenderChanges$.notify();
60
+ }
45
61
  transformChanged() {
46
62
  this.transformChanges$.notify();
47
63
  }
@@ -65,4 +81,4 @@ export const INSTANCES = {
65
81
  // eslint-disable-next-line @typescript-eslint/naming-convention
66
82
  MINIMAP: fInstanceKey('minimap'),
67
83
  };
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jb21wb25lbnRzLXN0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLXN0b3JhZ2UvZi1jb21wb25lbnRzLXN0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFNM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDM0UsT0FBTyxFQUFFLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFFBQVEsQ0FBQzs7QUFRM0QsTUFBTSxPQUFPLGdCQUFnQjtJQUNYLGlCQUFpQixHQUFHLElBQUksUUFBUSxFQUFFLENBQUM7SUFFbkMsbUJBQW1CLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQztJQUM3QyxvQkFBb0IsR0FBRyxDQUFDLENBQUM7SUFFakIsYUFBYSxHQUFHLElBQUksUUFBUSxFQUFFLENBQUM7SUFDdkMsY0FBYyxHQUFHLENBQUMsQ0FBQztJQUUzQixJQUFXLG1CQUFtQjtRQUM1QixPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztJQUNuQyxDQUFDO0lBRUQsSUFBVyxhQUFhO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxXQUEwQixDQUFDO0lBQ2hELENBQUM7SUFFTSxLQUFLLENBQXdCO0lBRTdCLE9BQU8sQ0FBMEI7SUFFeEMsSUFBVyxTQUFTO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLE9BQU8sRUFBRSxTQUE0QixDQUFDO0lBQ3BELENBQUM7SUFFZSxLQUFLLEdBQUcsSUFBSSxhQUFhLEVBQUUsQ0FBQztJQUM1QixXQUFXLEdBQUcsSUFBSSxtQkFBbUIsRUFBRSxDQUFDO0lBQ3hDLGlCQUFpQixHQUFHLElBQUkseUJBQXlCLEVBQUUsQ0FBQztJQUVwRCxPQUFPLEdBQUcsSUFBSSxrQkFBa0IsQ0FBa0IsUUFBUSxDQUFDLENBQUM7SUFDNUQsTUFBTSxHQUFHLElBQUksa0JBQWtCLENBQWlCLE9BQU8sQ0FBQyxDQUFDO0lBQ3pELE9BQU8sR0FBRyxJQUFJLGtCQUFrQixDQUFrQixRQUFRLENBQUMsQ0FBQztJQUU1RCxTQUFTLEdBQUcsSUFBSSxtQkFBbUIsRUFBRSxDQUFDO0lBRS9DLFVBQVUsQ0FBNkI7SUFFdkMsZUFBZTtRQUNwQixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRU0scUJBQXFCO1FBQzFCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRU0sZ0JBQWdCO1FBQ3JCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNsQyxDQUFDO3dHQXJEVSxnQkFBZ0I7NEdBQWhCLGdCQUFnQjs7NEZBQWhCLGdCQUFnQjtrQkFENUIsVUFBVTs7QUF5RFgsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHO0lBQ3ZCLGdFQUFnRTtJQUNoRSxjQUFjLEVBQUUsWUFBWSxDQUFxQixnQkFBZ0IsQ0FBQztJQUVsRSxnRUFBZ0U7SUFDaEUsY0FBYyxFQUFFLFlBQVksQ0FBcUIsZ0JBQWdCLENBQUM7SUFFbEUsZ0VBQWdFO0lBQ2hFLElBQUksRUFBRSxZQUFZLENBQVksZUFBZSxDQUFDO0lBRTlDLGdFQUFnRTtJQUNoRSxVQUFVLEVBQUUsWUFBWSxDQUFrQixZQUFZLENBQUM7SUFFdkQsZ0VBQWdFO0lBQ2hFLGNBQWMsRUFBRSxZQUFZLENBQXFCLGdCQUFnQixDQUFDO0lBRWxFLGdFQUFnRTtJQUNoRSxPQUFPLEVBQUUsWUFBWSxDQUFlLFNBQVMsQ0FBQztDQUN0QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRkZsb3dCYXNlIH0gZnJvbSAnLi4vZi1mbG93JztcbmltcG9ydCB7IEZDYW52YXNCYXNlIH0gZnJvbSAnLi4vZi1jYW52YXMnO1xuaW1wb3J0IHsgRkJhY2tncm91bmRCYXNlIH0gZnJvbSAnLi4vZi1iYWNrZ3JvdWQnO1xuaW1wb3J0IHsgRk5vZGVJbnB1dEJhc2UsIEZOb2RlT3V0bGV0QmFzZSwgRk5vZGVPdXRwdXRCYXNlIH0gZnJvbSAnLi4vZi1jb25uZWN0b3JzJztcbmltcG9ydCB7IEZEcmFnZ2FibGVCYXNlIH0gZnJvbSAnLi4vZi1kcmFnZ2FibGUnO1xuaW1wb3J0IHsgRkNoYW5uZWwgfSBmcm9tICcuLi9yZWFjdGl2aXR5JztcbmltcG9ydCB7IElUcmFuc2Zvcm1Nb2RlbCB9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuaW1wb3J0IHsgRkNvbm5lY3RvclJlZ2lzdHJ5IH0gZnJvbSAnLi9mLWNvbm5lY3Rvci1yZWdpc3RyeSc7XG5pbXBvcnQgeyBGTm9kZVJlZ2lzdHJ5IH0gZnJvbSAnLi9mLW5vZGUtcmVnaXN0cnknO1xuaW1wb3J0IHsgRkNvbm5lY3Rpb25SZWdpc3RyeSB9IGZyb20gJy4vZi1jb25uZWN0aW9uLXJlZ2lzdHJ5JztcbmltcG9ydCB7IEZDb25uZWN0aW9uTWFya2VyUmVnaXN0cnkgfSBmcm9tICcuL2YtY29ubmVjdGlvbi1tYXJrZXItcmVnaXN0cnknO1xuaW1wb3J0IHsgZkluc3RhbmNlS2V5LCBGU2luZ2xlUmVnaXN0cnlCYXNlIH0gZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7IEZab29tQmFzZSB9IGZyb20gJy4uL2Ytem9vbSc7XG5pbXBvcnQgeyBGU2VsZWN0aW9uQXJlYUJhc2UgfSBmcm9tICcuLi9mLXNlbGVjdGlvbi1hcmVhJztcbmltcG9ydCB7IEZNYWduZXRpY0xpbmVzQmFzZSB9IGZyb20gJy4uL2YtbWFnbmV0aWMtbGluZXMnO1xuaW1wb3J0IHsgRk1hZ25ldGljUmVjdHNCYXNlIH0gZnJvbSAnLi4vZi1tYWduZXRpYy1yZWN0cyc7XG5pbXBvcnQgeyBGTWluaW1hcEJhc2UgfSBmcm9tICcuLi9mLW1pbmltYXAnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRkNvbXBvbmVudHNTdG9yZSB7XG4gIHB1YmxpYyByZWFkb25seSB0cmFuc2Zvcm1DaGFuZ2VzJCA9IG5ldyBGQ2hhbm5lbCgpO1xuXG4gIHB1YmxpYyByZWFkb25seSBjb25uZWN0aW9uc0NoYW5nZXMkID0gbmV3IEZDaGFubmVsKCk7XG4gIHByaXZhdGUgX2Nvbm5lY3Rpb25zUmV2aXNpb24gPSAwO1xuXG4gIHB1YmxpYyByZWFkb25seSBub2Rlc0NoYW5nZXMkID0gbmV3IEZDaGFubmVsKCk7XG4gIHByaXZhdGUgX25vZGVzUmV2aXNpb24gPSAwO1xuXG4gIHB1YmxpYyBnZXQgY29ubmVjdGlvbnNSZXZpc2lvbigpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9jb25uZWN0aW9uc1JldmlzaW9uO1xuICB9XG5cbiAgcHVibGljIGdldCBub2Rlc1JldmlzaW9uKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX25vZGVzUmV2aXNpb247XG4gIH1cblxuICBwdWJsaWMgZ2V0IGZsb3dIb3N0KCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5mRmxvdz8uaG9zdEVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG4gIH1cblxuICBwdWJsaWMgZkZsb3c6IEZGbG93QmFzZSB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgZkNhbnZhczogRkNhbnZhc0Jhc2UgfCB1bmRlZmluZWQ7XG5cbiAgcHVibGljIGdldCB0cmFuc2Zvcm0oKTogSVRyYW5zZm9ybU1vZGVsIHtcbiAgICByZXR1cm4gdGhpcy5mQ2FudmFzPy50cmFuc2Zvcm0gYXMgSVRyYW5zZm9ybU1vZGVsO1xuICB9XG5cbiAgcHVibGljIHJlYWRvbmx5IG5vZGVzID0gbmV3IEZOb2RlUmVnaXN0cnkoKTtcbiAgcHVibGljIHJlYWRvbmx5IGNvbm5lY3Rpb25zID0gbmV3IEZDb25uZWN0aW9uUmVnaXN0cnkoKTtcbiAgcHVibGljIHJlYWRvbmx5IGNvbm5lY3Rpb25NYXJrZXJzID0gbmV3IEZDb25uZWN0aW9uTWFya2VyUmVnaXN0cnkoKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgb3V0cHV0cyA9IG5ldyBGQ29ubmVjdG9yUmVnaXN0cnk8Rk5vZGVPdXRwdXRCYXNlPignT3V0cHV0Jyk7XG4gIHB1YmxpYyByZWFkb25seSBpbnB1dHMgPSBuZXcgRkNvbm5lY3RvclJlZ2lzdHJ5PEZOb2RlSW5wdXRCYXNlPignSW5wdXQnKTtcbiAgcHVibGljIHJlYWRvbmx5IG91dGxldHMgPSBuZXcgRkNvbm5lY3RvclJlZ2lzdHJ5PEZOb2RlT3V0bGV0QmFzZT4oJ091dGxldCcpO1xuXG4gIHB1YmxpYyByZWFkb25seSBpbnN0YW5jZXMgPSBuZXcgRlNpbmdsZVJlZ2lzdHJ5QmFzZSgpO1xuXG4gIHB1YmxpYyBmRHJhZ2dhYmxlOiBGRHJhZ2dhYmxlQmFzZSB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgZW1pdE5vZGVDaGFuZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMuX25vZGVzUmV2aXNpb24rKztcbiAgICB0aGlzLm5vZGVzQ2hhbmdlcyQubm90aWZ5KCk7XG4gIH1cblxuICBwdWJsaWMgZW1pdENvbm5lY3Rpb25DaGFuZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMuX2Nvbm5lY3Rpb25zUmV2aXNpb24rKztcbiAgICB0aGlzLmNvbm5lY3Rpb25zQ2hhbmdlcyQubm90aWZ5KCk7XG4gIH1cblxuICBwdWJsaWMgdHJhbnNmb3JtQ2hhbmdlZCgpOiB2b2lkIHtcbiAgICB0aGlzLnRyYW5zZm9ybUNoYW5nZXMkLm5vdGlmeSgpO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBJTlNUQU5DRVMgPSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgTUFHTkVUSUNfTElORVM6IGZJbnN0YW5jZUtleTxGTWFnbmV0aWNMaW5lc0Jhc2U+KCdtYWduZXRpYy1saW5lcycpLFxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgTUFHTkVUSUNfUkVDVFM6IGZJbnN0YW5jZUtleTxGTWFnbmV0aWNSZWN0c0Jhc2U+KCdtYWduZXRpYy1yZWN0cycpLFxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgWk9PTTogZkluc3RhbmNlS2V5PEZab29tQmFzZT4oJ3pvb20tY29udHJvbHMnKSxcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gIEJBQ0tHUk9VTkQ6IGZJbnN0YW5jZUtleTxGQmFja2dyb3VuZEJhc2U+KCdiYWNrZ3JvdW5kJyksXG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICBTRUxFQ1RJT05fQVJFQTogZkluc3RhbmNlS2V5PEZTZWxlY3Rpb25BcmVhQmFzZT4oJ3NlbGVjdGlvbi1hcmVhJyksXG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICBNSU5JTUFQOiBmSW5zdGFuY2VLZXk8Rk1pbmltYXBCYXNlPignbWluaW1hcCcpLFxufSBhcyBjb25zdDtcbiJdfQ==
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jb21wb25lbnRzLXN0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLXN0b3JhZ2UvZi1jb21wb25lbnRzLXN0b3JlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFNM0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDM0UsT0FBTyxFQUFFLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFFBQVEsQ0FBQzs7QUFRM0QsTUFBTSxPQUFPLGdCQUFnQjtJQUNYLGlCQUFpQixHQUFHLElBQUksUUFBUSxFQUFFLENBQUM7SUFFbkMsbUJBQW1CLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQztJQUM3QyxvQkFBb0IsR0FBRyxDQUFDLENBQUM7SUFFakIsYUFBYSxHQUFHLElBQUksUUFBUSxFQUFFLENBQUM7SUFDdkMsY0FBYyxHQUFHLENBQUMsQ0FBQztJQUVYLHlCQUF5QixHQUFHLElBQUksUUFBUSxFQUFFLENBQUM7SUFDbkQsOEJBQThCLEdBQUcsQ0FBQyxDQUFDO0lBRTNDLElBQVcsbUJBQW1CO1FBQzVCLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDO0lBQ25DLENBQUM7SUFFRCxJQUFXLGFBQWE7UUFDdEIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFXLDJCQUEyQjtRQUNwQyxPQUFPLElBQUksQ0FBQyw4QkFBOEIsR0FBRyxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELElBQVcsUUFBUTtRQUNqQixPQUFPLElBQUksQ0FBQyxLQUFLLEVBQUUsV0FBMEIsQ0FBQztJQUNoRCxDQUFDO0lBRU0sS0FBSyxDQUF3QjtJQUU3QixPQUFPLENBQTBCO0lBRXhDLElBQVcsU0FBUztRQUNsQixPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsU0FBNEIsQ0FBQztJQUNwRCxDQUFDO0lBRWUsS0FBSyxHQUFHLElBQUksYUFBYSxFQUFFLENBQUM7SUFDNUIsV0FBVyxHQUFHLElBQUksbUJBQW1CLEVBQUUsQ0FBQztJQUN4QyxpQkFBaUIsR0FBRyxJQUFJLHlCQUF5QixFQUFFLENBQUM7SUFFcEQsT0FBTyxHQUFHLElBQUksa0JBQWtCLENBQWtCLFFBQVEsQ0FBQyxDQUFDO0lBQzVELE1BQU0sR0FBRyxJQUFJLGtCQUFrQixDQUFpQixPQUFPLENBQUMsQ0FBQztJQUN6RCxPQUFPLEdBQUcsSUFBSSxrQkFBa0IsQ0FBa0IsUUFBUSxDQUFDLENBQUM7SUFFNUQsU0FBUyxHQUFHLElBQUksbUJBQW1CLEVBQUUsQ0FBQztJQUUvQyxVQUFVLENBQTZCO0lBRXZDLGVBQWU7UUFDcEIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVNLHFCQUFxQjtRQUMxQixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUM1QixJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVNLHNCQUFzQjtRQUMzQixJQUFJLENBQUMsOEJBQThCLEVBQUUsQ0FBQztRQUN0QyxJQUFJLENBQUMseUJBQXlCLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUVNLG9CQUFvQjtRQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLDhCQUE4QixFQUFFLENBQUM7WUFDekMsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsOEJBQThCLEVBQUUsQ0FBQztRQUN0QyxJQUFJLENBQUMseUJBQXlCLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUVNLGdCQUFnQjtRQUNyQixJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDbEMsQ0FBQzt3R0ExRVUsZ0JBQWdCOzRHQUFoQixnQkFBZ0I7OzRGQUFoQixnQkFBZ0I7a0JBRDVCLFVBQVU7O0FBOEVYLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRztJQUN2QixnRUFBZ0U7SUFDaEUsY0FBYyxFQUFFLFlBQVksQ0FBcUIsZ0JBQWdCLENBQUM7SUFFbEUsZ0VBQWdFO0lBQ2hFLGNBQWMsRUFBRSxZQUFZLENBQXFCLGdCQUFnQixDQUFDO0lBRWxFLGdFQUFnRTtJQUNoRSxJQUFJLEVBQUUsWUFBWSxDQUFZLGVBQWUsQ0FBQztJQUU5QyxnRUFBZ0U7SUFDaEUsVUFBVSxFQUFFLFlBQVksQ0FBa0IsWUFBWSxDQUFDO0lBRXZELGdFQUFnRTtJQUNoRSxjQUFjLEVBQUUsWUFBWSxDQUFxQixnQkFBZ0IsQ0FBQztJQUVsRSxnRUFBZ0U7SUFDaEUsT0FBTyxFQUFFLFlBQVksQ0FBZSxTQUFTLENBQUM7Q0FDdEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZGbG93QmFzZSB9IGZyb20gJy4uL2YtZmxvdyc7XG5pbXBvcnQgeyBGQ2FudmFzQmFzZSB9IGZyb20gJy4uL2YtY2FudmFzJztcbmltcG9ydCB7IEZCYWNrZ3JvdW5kQmFzZSB9IGZyb20gJy4uL2YtYmFja2dyb3VkJztcbmltcG9ydCB7IEZOb2RlSW5wdXRCYXNlLCBGTm9kZU91dGxldEJhc2UsIEZOb2RlT3V0cHV0QmFzZSB9IGZyb20gJy4uL2YtY29ubmVjdG9ycyc7XG5pbXBvcnQgeyBGRHJhZ2dhYmxlQmFzZSB9IGZyb20gJy4uL2YtZHJhZ2dhYmxlJztcbmltcG9ydCB7IEZDaGFubmVsIH0gZnJvbSAnLi4vcmVhY3Rpdml0eSc7XG5pbXBvcnQgeyBJVHJhbnNmb3JtTW9kZWwgfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7IEZDb25uZWN0b3JSZWdpc3RyeSB9IGZyb20gJy4vZi1jb25uZWN0b3ItcmVnaXN0cnknO1xuaW1wb3J0IHsgRk5vZGVSZWdpc3RyeSB9IGZyb20gJy4vZi1ub2RlLXJlZ2lzdHJ5JztcbmltcG9ydCB7IEZDb25uZWN0aW9uUmVnaXN0cnkgfSBmcm9tICcuL2YtY29ubmVjdGlvbi1yZWdpc3RyeSc7XG5pbXBvcnQgeyBGQ29ubmVjdGlvbk1hcmtlclJlZ2lzdHJ5IH0gZnJvbSAnLi9mLWNvbm5lY3Rpb24tbWFya2VyLXJlZ2lzdHJ5JztcbmltcG9ydCB7IGZJbnN0YW5jZUtleSwgRlNpbmdsZVJlZ2lzdHJ5QmFzZSB9IGZyb20gJy4vYmFzZSc7XG5pbXBvcnQgeyBGWm9vbUJhc2UgfSBmcm9tICcuLi9mLXpvb20nO1xuaW1wb3J0IHsgRlNlbGVjdGlvbkFyZWFCYXNlIH0gZnJvbSAnLi4vZi1zZWxlY3Rpb24tYXJlYSc7XG5pbXBvcnQgeyBGTWFnbmV0aWNMaW5lc0Jhc2UgfSBmcm9tICcuLi9mLW1hZ25ldGljLWxpbmVzJztcbmltcG9ydCB7IEZNYWduZXRpY1JlY3RzQmFzZSB9IGZyb20gJy4uL2YtbWFnbmV0aWMtcmVjdHMnO1xuaW1wb3J0IHsgRk1pbmltYXBCYXNlIH0gZnJvbSAnLi4vZi1taW5pbWFwJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEZDb21wb25lbnRzU3RvcmUge1xuICBwdWJsaWMgcmVhZG9ubHkgdHJhbnNmb3JtQ2hhbmdlcyQgPSBuZXcgRkNoYW5uZWwoKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgY29ubmVjdGlvbnNDaGFuZ2VzJCA9IG5ldyBGQ2hhbm5lbCgpO1xuICBwcml2YXRlIF9jb25uZWN0aW9uc1JldmlzaW9uID0gMDtcblxuICBwdWJsaWMgcmVhZG9ubHkgbm9kZXNDaGFuZ2VzJCA9IG5ldyBGQ2hhbm5lbCgpO1xuICBwcml2YXRlIF9ub2Rlc1JldmlzaW9uID0gMDtcblxuICBwdWJsaWMgcmVhZG9ubHkgcHJvZ3Jlc3NpdmVSZW5kZXJDaGFuZ2VzJCA9IG5ldyBGQ2hhbm5lbCgpO1xuICBwcml2YXRlIF9wZW5kaW5nUHJvZ3Jlc3NpdmVSZW5kZXJDb3VudCA9IDA7XG5cbiAgcHVibGljIGdldCBjb25uZWN0aW9uc1JldmlzaW9uKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2Nvbm5lY3Rpb25zUmV2aXNpb247XG4gIH1cblxuICBwdWJsaWMgZ2V0IG5vZGVzUmV2aXNpb24oKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fbm9kZXNSZXZpc2lvbjtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaGFzUGVuZGluZ1Byb2dyZXNzaXZlUmVuZGVyKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9wZW5kaW5nUHJvZ3Jlc3NpdmVSZW5kZXJDb3VudCA+IDA7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGZsb3dIb3N0KCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5mRmxvdz8uaG9zdEVsZW1lbnQgYXMgSFRNTEVsZW1lbnQ7XG4gIH1cblxuICBwdWJsaWMgZkZsb3c6IEZGbG93QmFzZSB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgZkNhbnZhczogRkNhbnZhc0Jhc2UgfCB1bmRlZmluZWQ7XG5cbiAgcHVibGljIGdldCB0cmFuc2Zvcm0oKTogSVRyYW5zZm9ybU1vZGVsIHtcbiAgICByZXR1cm4gdGhpcy5mQ2FudmFzPy50cmFuc2Zvcm0gYXMgSVRyYW5zZm9ybU1vZGVsO1xuICB9XG5cbiAgcHVibGljIHJlYWRvbmx5IG5vZGVzID0gbmV3IEZOb2RlUmVnaXN0cnkoKTtcbiAgcHVibGljIHJlYWRvbmx5IGNvbm5lY3Rpb25zID0gbmV3IEZDb25uZWN0aW9uUmVnaXN0cnkoKTtcbiAgcHVibGljIHJlYWRvbmx5IGNvbm5lY3Rpb25NYXJrZXJzID0gbmV3IEZDb25uZWN0aW9uTWFya2VyUmVnaXN0cnkoKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgb3V0cHV0cyA9IG5ldyBGQ29ubmVjdG9yUmVnaXN0cnk8Rk5vZGVPdXRwdXRCYXNlPignT3V0cHV0Jyk7XG4gIHB1YmxpYyByZWFkb25seSBpbnB1dHMgPSBuZXcgRkNvbm5lY3RvclJlZ2lzdHJ5PEZOb2RlSW5wdXRCYXNlPignSW5wdXQnKTtcbiAgcHVibGljIHJlYWRvbmx5IG91dGxldHMgPSBuZXcgRkNvbm5lY3RvclJlZ2lzdHJ5PEZOb2RlT3V0bGV0QmFzZT4oJ091dGxldCcpO1xuXG4gIHB1YmxpYyByZWFkb25seSBpbnN0YW5jZXMgPSBuZXcgRlNpbmdsZVJlZ2lzdHJ5QmFzZSgpO1xuXG4gIHB1YmxpYyBmRHJhZ2dhYmxlOiBGRHJhZ2dhYmxlQmFzZSB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgZW1pdE5vZGVDaGFuZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMuX25vZGVzUmV2aXNpb24rKztcbiAgICB0aGlzLm5vZGVzQ2hhbmdlcyQubm90aWZ5KCk7XG4gIH1cblxuICBwdWJsaWMgZW1pdENvbm5lY3Rpb25DaGFuZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMuX2Nvbm5lY3Rpb25zUmV2aXNpb24rKztcbiAgICB0aGlzLmNvbm5lY3Rpb25zQ2hhbmdlcyQubm90aWZ5KCk7XG4gIH1cblxuICBwdWJsaWMgYmVnaW5Qcm9ncmVzc2l2ZVJlbmRlcigpOiB2b2lkIHtcbiAgICB0aGlzLl9wZW5kaW5nUHJvZ3Jlc3NpdmVSZW5kZXJDb3VudCsrO1xuICAgIHRoaXMucHJvZ3Jlc3NpdmVSZW5kZXJDaGFuZ2VzJC5ub3RpZnkoKTtcbiAgfVxuXG4gIHB1YmxpYyBlbmRQcm9ncmVzc2l2ZVJlbmRlcigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX3BlbmRpbmdQcm9ncmVzc2l2ZVJlbmRlckNvdW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fcGVuZGluZ1Byb2dyZXNzaXZlUmVuZGVyQ291bnQtLTtcbiAgICB0aGlzLnByb2dyZXNzaXZlUmVuZGVyQ2hhbmdlcyQubm90aWZ5KCk7XG4gIH1cblxuICBwdWJsaWMgdHJhbnNmb3JtQ2hhbmdlZCgpOiB2b2lkIHtcbiAgICB0aGlzLnRyYW5zZm9ybUNoYW5nZXMkLm5vdGlmeSgpO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCBJTlNUQU5DRVMgPSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgTUFHTkVUSUNfTElORVM6IGZJbnN0YW5jZUtleTxGTWFnbmV0aWNMaW5lc0Jhc2U+KCdtYWduZXRpYy1saW5lcycpLFxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgTUFHTkVUSUNfUkVDVFM6IGZJbnN0YW5jZUtleTxGTWFnbmV0aWNSZWN0c0Jhc2U+KCdtYWduZXRpYy1yZWN0cycpLFxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgWk9PTTogZkluc3RhbmNlS2V5PEZab29tQmFzZT4oJ3pvb20tY29udHJvbHMnKSxcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gIEJBQ0tHUk9VTkQ6IGZJbnN0YW5jZUtleTxGQmFja2dyb3VuZEJhc2U+KCdiYWNrZ3JvdW5kJyksXG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICBTRUxFQ1RJT05fQVJFQTogZkluc3RhbmNlS2V5PEZTZWxlY3Rpb25BcmVhQmFzZT4oJ3NlbGVjdGlvbi1hcmVhJyksXG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICBNSU5JTUFQOiBmSW5zdGFuY2VLZXk8Rk1pbmltYXBCYXNlPignbWluaW1hcCcpLFxufSBhcyBjb25zdDtcbiJdfQ==
@@ -1,4 +1,5 @@
1
1
  import { Directive, inject, Input, NgZone, TemplateRef, ViewContainerRef, } from '@angular/core';
2
+ import { FComponentsStore } from '../f-storage';
2
3
  import * as i0 from "@angular/core";
3
4
  export class FVirtualFor {
4
5
  fVirtualForOf = [];
@@ -6,20 +7,32 @@ export class FVirtualFor {
6
7
  _vc = inject(ViewContainerRef);
7
8
  _tpl = inject(TemplateRef);
8
9
  _zone = inject(NgZone);
10
+ _componentsStore = inject(FComponentsStore, { optional: true });
9
11
  _views = [];
12
+ _rafId = null;
13
+ _isProgressiveRenderActive = false;
10
14
  ngOnChanges(changes) {
11
15
  if (changes['fVirtualForOf']) {
12
16
  this._reset();
13
17
  this._renderProgressively();
14
18
  }
15
19
  }
20
+ ngOnDestroy() {
21
+ this._reset();
22
+ }
16
23
  _reset() {
24
+ if (this._rafId !== null) {
25
+ cancelAnimationFrame(this._rafId);
26
+ this._rafId = null;
27
+ }
28
+ this._finishProgressiveRender();
17
29
  this._vc.clear();
18
30
  this._views.length = 0;
19
31
  }
20
32
  _renderProgressively() {
21
33
  const FRAME_BUDGET = 10; // ms
22
34
  let index = 0;
35
+ this._startProgressiveRender();
23
36
  this._zone.runOutsideAngular(() => {
24
37
  const pump = () => {
25
38
  const start = performance.now();
@@ -33,12 +46,29 @@ export class FVirtualFor {
33
46
  index++;
34
47
  }
35
48
  if (index < this.fVirtualForOf.length) {
36
- requestAnimationFrame(pump);
49
+ this._rafId = requestAnimationFrame(pump);
50
+ return;
37
51
  }
52
+ this._rafId = null;
53
+ this._finishProgressiveRender();
38
54
  };
39
- requestAnimationFrame(pump);
55
+ this._rafId = requestAnimationFrame(pump);
40
56
  });
41
57
  }
58
+ _startProgressiveRender() {
59
+ if (this._isProgressiveRenderActive) {
60
+ return;
61
+ }
62
+ this._isProgressiveRenderActive = true;
63
+ this._componentsStore?.beginProgressiveRender();
64
+ }
65
+ _finishProgressiveRender() {
66
+ if (!this._isProgressiveRenderActive) {
67
+ return;
68
+ }
69
+ this._isProgressiveRenderActive = false;
70
+ this._componentsStore?.endProgressiveRender();
71
+ }
42
72
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FVirtualFor, deps: [], target: i0.ɵɵFactoryTarget.Directive });
43
73
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: FVirtualFor, isStandalone: true, selector: "[fVirtualFor][fVirtualForOf]", inputs: { fVirtualForOf: "fVirtualForOf", fVirtualForTrackBy: "fVirtualForTrackBy" }, usesOnChanges: true, ngImport: i0 });
44
74
  }
@@ -53,4 +83,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
53
83
  }], fVirtualForTrackBy: [{
54
84
  type: Input
55
85
  }] } });
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi12aXJ0dWFsLWZvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi12aXJ0dWFsL2YtdmlydHVhbC1mb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFHTixXQUFXLEVBQ1gsZ0JBQWdCLEdBQ2pCLE1BQU0sZUFBZSxDQUFDOztBQVd2QixNQUFNLE9BQU8sV0FBVztJQUNiLGFBQWEsR0FBaUIsRUFBRSxDQUFDO0lBQ2pDLGtCQUFrQixDQUF1QztJQUVqRCxHQUFHLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDL0IsSUFBSSxHQUFHLE1BQU0sQ0FBa0MsV0FBVyxDQUFDLENBQUM7SUFDNUQsS0FBSyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUVoQyxNQUFNLEdBQTBDLEVBQUUsQ0FBQztJQUUzRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDZCxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUM5QixDQUFDO0lBQ0gsQ0FBQztJQUVPLE1BQU07UUFDWixJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRU8sb0JBQW9CO1FBQzFCLE1BQU0sWUFBWSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEtBQUs7UUFDOUIsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBRWQsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7WUFDaEMsTUFBTSxJQUFJLEdBQUcsR0FBRyxFQUFFO2dCQUNoQixNQUFNLEtBQUssR0FBRyxXQUFXLENBQUMsR0FBRyxFQUFFLENBQUM7Z0JBRWhDLE9BQU8sS0FBSyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxJQUFJLFdBQVcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxLQUFLLEdBQUcsWUFBWSxFQUFFLENBQUM7b0JBQ3JGLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBRXZDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTt3QkFDbEQsU0FBUyxFQUFFLElBQUk7d0JBQ2YsS0FBSztxQkFDTixDQUFDLENBQUM7b0JBRUgsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7b0JBQ3ZCLEtBQUssRUFBRSxDQUFDO2dCQUNWLENBQUM7Z0JBRUQsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDdEMscUJBQXFCLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQzlCLENBQUM7WUFDSCxDQUFDLENBQUM7WUFFRixxQkFBcUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7d0dBakRVLFdBQVc7NEZBQVgsV0FBVzs7NEZBQVgsV0FBVztrQkFKdkIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsOEJBQThCO29CQUN4QyxVQUFVLEVBQUUsSUFBSTtpQkFDakI7OEJBRVUsYUFBYTtzQkFBckIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIEVtYmVkZGVkVmlld1JlZixcbiAgaW5qZWN0LFxuICBJbnB1dCxcbiAgTmdab25lLFxuICBPbkNoYW5nZXMsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW50ZXJmYWNlIEZWaXJ0dWFsQ29udGV4dDxUPiB7XG4gICRpbXBsaWNpdDogVDtcbiAgaW5kZXg6IG51bWJlcjtcbn1cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2ZWaXJ0dWFsRm9yXVtmVmlydHVhbEZvck9mXScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIEZWaXJ0dWFsRm9yPFQ+IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgZlZpcnR1YWxGb3JPZjogcmVhZG9ubHkgVFtdID0gW107XG4gIEBJbnB1dCgpIGZWaXJ0dWFsRm9yVHJhY2tCeT86IChpbmRleDogbnVtYmVyLCBpdGVtOiBUKSA9PiB1bmtub3duO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3ZjID0gaW5qZWN0KFZpZXdDb250YWluZXJSZWYpO1xuICBwcml2YXRlIHJlYWRvbmx5IF90cGwgPSBpbmplY3Q8VGVtcGxhdGVSZWY8RlZpcnR1YWxDb250ZXh0PFQ+Pj4oVGVtcGxhdGVSZWYpO1xuICBwcml2YXRlIHJlYWRvbmx5IF96b25lID0gaW5qZWN0KE5nWm9uZSk7XG5cbiAgcHJpdmF0ZSBfdmlld3M6IEVtYmVkZGVkVmlld1JlZjxGVmlydHVhbENvbnRleHQ8VD4+W10gPSBbXTtcblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ2ZWaXJ0dWFsRm9yT2YnXSkge1xuICAgICAgdGhpcy5fcmVzZXQoKTtcbiAgICAgIHRoaXMuX3JlbmRlclByb2dyZXNzaXZlbHkoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9yZXNldCgpOiB2b2lkIHtcbiAgICB0aGlzLl92Yy5jbGVhcigpO1xuICAgIHRoaXMuX3ZpZXdzLmxlbmd0aCA9IDA7XG4gIH1cblxuICBwcml2YXRlIF9yZW5kZXJQcm9ncmVzc2l2ZWx5KCk6IHZvaWQge1xuICAgIGNvbnN0IEZSQU1FX0JVREdFVCA9IDEwOyAvLyBtc1xuICAgIGxldCBpbmRleCA9IDA7XG5cbiAgICB0aGlzLl96b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIGNvbnN0IHB1bXAgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0IHN0YXJ0ID0gcGVyZm9ybWFuY2Uubm93KCk7XG5cbiAgICAgICAgd2hpbGUgKGluZGV4IDwgdGhpcy5mVmlydHVhbEZvck9mLmxlbmd0aCAmJiBwZXJmb3JtYW5jZS5ub3coKSAtIHN0YXJ0IDwgRlJBTUVfQlVER0VUKSB7XG4gICAgICAgICAgY29uc3QgaXRlbSA9IHRoaXMuZlZpcnR1YWxGb3JPZltpbmRleF07XG5cbiAgICAgICAgICBjb25zdCB2aWV3ID0gdGhpcy5fdmMuY3JlYXRlRW1iZWRkZWRWaWV3KHRoaXMuX3RwbCwge1xuICAgICAgICAgICAgJGltcGxpY2l0OiBpdGVtLFxuICAgICAgICAgICAgaW5kZXgsXG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICB0aGlzLl92aWV3cy5wdXNoKHZpZXcpO1xuICAgICAgICAgIGluZGV4Kys7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaW5kZXggPCB0aGlzLmZWaXJ0dWFsRm9yT2YubGVuZ3RoKSB7XG4gICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHB1bXApO1xuICAgICAgICB9XG4gICAgICB9O1xuXG4gICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUocHVtcCk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi12aXJ0dWFsLWZvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi12aXJ0dWFsL2YtdmlydHVhbC1mb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFJTixXQUFXLEVBQ1gsZ0JBQWdCLEdBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7QUFXaEQsTUFBTSxPQUFPLFdBQVc7SUFDYixhQUFhLEdBQWlCLEVBQUUsQ0FBQztJQUNqQyxrQkFBa0IsQ0FBdUM7SUFFakQsR0FBRyxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQy9CLElBQUksR0FBRyxNQUFNLENBQWtDLFdBQVcsQ0FBQyxDQUFDO0lBQzVELEtBQUssR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdkIsZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFFekUsTUFBTSxHQUEwQyxFQUFFLENBQUM7SUFDbkQsTUFBTSxHQUFrQixJQUFJLENBQUM7SUFDN0IsMEJBQTBCLEdBQUcsS0FBSyxDQUFDO0lBRTNDLFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDO1lBQzdCLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNkLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBQzlCLENBQUM7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNoQixDQUFDO0lBRU8sTUFBTTtRQUNaLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUN6QixvQkFBb0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDbEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7UUFDckIsQ0FBQztRQUVELElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFTyxvQkFBb0I7UUFDMUIsTUFBTSxZQUFZLEdBQUcsRUFBRSxDQUFDLENBQUMsS0FBSztRQUM5QixJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztRQUUvQixJQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRTtZQUNoQyxNQUFNLElBQUksR0FBRyxHQUFHLEVBQUU7Z0JBQ2hCLE1BQU0sS0FBSyxHQUFHLFdBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFFaEMsT0FBTyxLQUFLLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLElBQUksV0FBVyxDQUFDLEdBQUcsRUFBRSxHQUFHLEtBQUssR0FBRyxZQUFZLEVBQUUsQ0FBQztvQkFDckYsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFFdkMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFO3dCQUNsRCxTQUFTLEVBQUUsSUFBSTt3QkFDZixLQUFLO3FCQUNOLENBQUMsQ0FBQztvQkFFSCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDdkIsS0FBSyxFQUFFLENBQUM7Z0JBQ1YsQ0FBQztnQkFFRCxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUN0QyxJQUFJLENBQUMsTUFBTSxHQUFHLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDO29CQUUxQyxPQUFPO2dCQUNULENBQUM7Z0JBRUQsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7Z0JBQ25CLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1lBQ2xDLENBQUMsQ0FBQztZQUVGLElBQUksQ0FBQyxNQUFNLEdBQUcscUJBQXFCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sdUJBQXVCO1FBQzdCLElBQUksSUFBSSxDQUFDLDBCQUEwQixFQUFFLENBQUM7WUFDcEMsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsMEJBQTBCLEdBQUcsSUFBSSxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxzQkFBc0IsRUFBRSxDQUFDO0lBQ2xELENBQUM7SUFFTyx3QkFBd0I7UUFDOUIsSUFBSSxDQUFDLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO1lBQ3JDLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxDQUFDLDBCQUEwQixHQUFHLEtBQUssQ0FBQztRQUN4QyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQztJQUNoRCxDQUFDO3dHQXRGVSxXQUFXOzRGQUFYLFdBQVc7OzRGQUFYLFdBQVc7a0JBSnZCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDhCQUE4QjtvQkFDeEMsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOzhCQUVVLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGlyZWN0aXZlLFxuICBFbWJlZGRlZFZpZXdSZWYsXG4gIGluamVjdCxcbiAgSW5wdXQsXG4gIE5nWm9uZSxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZDb21wb25lbnRzU3RvcmUgfSBmcm9tICcuLi9mLXN0b3JhZ2UnO1xuXG5pbnRlcmZhY2UgRlZpcnR1YWxDb250ZXh0PFQ+IHtcbiAgJGltcGxpY2l0OiBUO1xuICBpbmRleDogbnVtYmVyO1xufVxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbZlZpcnR1YWxGb3JdW2ZWaXJ0dWFsRm9yT2ZdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgRlZpcnR1YWxGb3I8VD4gaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIGZWaXJ0dWFsRm9yT2Y6IHJlYWRvbmx5IFRbXSA9IFtdO1xuICBASW5wdXQoKSBmVmlydHVhbEZvclRyYWNrQnk/OiAoaW5kZXg6IG51bWJlciwgaXRlbTogVCkgPT4gdW5rbm93bjtcblxuICBwcml2YXRlIHJlYWRvbmx5IF92YyA9IGluamVjdChWaWV3Q29udGFpbmVyUmVmKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfdHBsID0gaW5qZWN0PFRlbXBsYXRlUmVmPEZWaXJ0dWFsQ29udGV4dDxUPj4+KFRlbXBsYXRlUmVmKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfem9uZSA9IGluamVjdChOZ1pvbmUpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9jb21wb25lbnRzU3RvcmUgPSBpbmplY3QoRkNvbXBvbmVudHNTdG9yZSwgeyBvcHRpb25hbDogdHJ1ZSB9KTtcblxuICBwcml2YXRlIF92aWV3czogRW1iZWRkZWRWaWV3UmVmPEZWaXJ0dWFsQ29udGV4dDxUPj5bXSA9IFtdO1xuICBwcml2YXRlIF9yYWZJZDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgX2lzUHJvZ3Jlc3NpdmVSZW5kZXJBY3RpdmUgPSBmYWxzZTtcblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ2ZWaXJ0dWFsRm9yT2YnXSkge1xuICAgICAgdGhpcy5fcmVzZXQoKTtcbiAgICAgIHRoaXMuX3JlbmRlclByb2dyZXNzaXZlbHkoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9yZXNldCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfcmVzZXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX3JhZklkICE9PSBudWxsKSB7XG4gICAgICBjYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLl9yYWZJZCk7XG4gICAgICB0aGlzLl9yYWZJZCA9IG51bGw7XG4gICAgfVxuXG4gICAgdGhpcy5fZmluaXNoUHJvZ3Jlc3NpdmVSZW5kZXIoKTtcbiAgICB0aGlzLl92Yy5jbGVhcigpO1xuICAgIHRoaXMuX3ZpZXdzLmxlbmd0aCA9IDA7XG4gIH1cblxuICBwcml2YXRlIF9yZW5kZXJQcm9ncmVzc2l2ZWx5KCk6IHZvaWQge1xuICAgIGNvbnN0IEZSQU1FX0JVREdFVCA9IDEwOyAvLyBtc1xuICAgIGxldCBpbmRleCA9IDA7XG4gICAgdGhpcy5fc3RhcnRQcm9ncmVzc2l2ZVJlbmRlcigpO1xuXG4gICAgdGhpcy5fem9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICBjb25zdCBwdW1wID0gKCkgPT4ge1xuICAgICAgICBjb25zdCBzdGFydCA9IHBlcmZvcm1hbmNlLm5vdygpO1xuXG4gICAgICAgIHdoaWxlIChpbmRleCA8IHRoaXMuZlZpcnR1YWxGb3JPZi5sZW5ndGggJiYgcGVyZm9ybWFuY2Uubm93KCkgLSBzdGFydCA8IEZSQU1FX0JVREdFVCkge1xuICAgICAgICAgIGNvbnN0IGl0ZW0gPSB0aGlzLmZWaXJ0dWFsRm9yT2ZbaW5kZXhdO1xuXG4gICAgICAgICAgY29uc3QgdmlldyA9IHRoaXMuX3ZjLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLl90cGwsIHtcbiAgICAgICAgICAgICRpbXBsaWNpdDogaXRlbSxcbiAgICAgICAgICAgIGluZGV4LFxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgdGhpcy5fdmlld3MucHVzaCh2aWV3KTtcbiAgICAgICAgICBpbmRleCsrO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGluZGV4IDwgdGhpcy5mVmlydHVhbEZvck9mLmxlbmd0aCkge1xuICAgICAgICAgIHRoaXMuX3JhZklkID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHB1bXApO1xuXG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fcmFmSWQgPSBudWxsO1xuICAgICAgICB0aGlzLl9maW5pc2hQcm9ncmVzc2l2ZVJlbmRlcigpO1xuICAgICAgfTtcblxuICAgICAgdGhpcy5fcmFmSWQgPSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUocHVtcCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9zdGFydFByb2dyZXNzaXZlUmVuZGVyKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9pc1Byb2dyZXNzaXZlUmVuZGVyQWN0aXZlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5faXNQcm9ncmVzc2l2ZVJlbmRlckFjdGl2ZSA9IHRydWU7XG4gICAgdGhpcy5fY29tcG9uZW50c1N0b3JlPy5iZWdpblByb2dyZXNzaXZlUmVuZGVyKCk7XG4gIH1cblxuICBwcml2YXRlIF9maW5pc2hQcm9ncmVzc2l2ZVJlbmRlcigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2lzUHJvZ3Jlc3NpdmVSZW5kZXJBY3RpdmUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9pc1Byb2dyZXNzaXZlUmVuZGVyQWN0aXZlID0gZmFsc2U7XG4gICAgdGhpcy5fY29tcG9uZW50c1N0b3JlPy5lbmRQcm9ncmVzc2l2ZVJlbmRlcigpO1xuICB9XG59XG4iXX0=
@@ -20,7 +20,7 @@ export declare class FConnectionComponent extends FConnectionBase implements OnI
20
20
  ngOnChanges(): void;
21
21
  ngOnDestroy(): void;
22
22
  static ɵfac: i0.ɵɵFactoryDeclaration<FConnectionComponent, never>;
23
- static ɵcmp: i0.ɵɵComponentDeclaration<FConnectionComponent, "f-connection", ["fComponent"], { "fId": { "alias": "fConnectionId"; "required": false; "isSignal": true; }; "fOutputId": { "alias": "fOutputId"; "required": false; "isSignal": true; }; "fInputId": { "alias": "fInputId"; "required": false; "isSignal": true; }; "fRadius": { "alias": "fRadius"; "required": false; }; "fOffset": { "alias": "fOffset"; "required": false; }; "fBehavior": { "alias": "fBehavior"; "required": false; }; "fType": { "alias": "fType"; "required": false; }; "fSelectionDisabled": { "alias": "fSelectionDisabled"; "required": false; "isSignal": true; }; "fReassignableStart": { "alias": "fReassignableStart"; "required": false; "isSignal": true; }; "fDraggingDisabled": { "alias": "fReassignDisabled"; "required": false; "isSignal": true; }; "fInputSide": { "alias": "fInputSide"; "required": false; "isSignal": true; }; "fOutputSide": { "alias": "fOutputSide"; "required": false; "isSignal": true; }; }, {}, never, ["*", "f-connection-waypoints", "[fConnectionContent]"], false, never>;
23
+ static ɵcmp: i0.ɵɵComponentDeclaration<FConnectionComponent, "f-connection", ["fComponent"], { "fId": { "alias": "fConnectionId"; "required": false; "isSignal": true; }; "fOutputId": { "alias": "fOutputId"; "required": false; "isSignal": true; }; "fInputId": { "alias": "fInputId"; "required": false; "isSignal": true; }; "fRadius": { "alias": "fRadius"; "required": false; }; "fOffset": { "alias": "fOffset"; "required": false; }; "fBehavior": { "alias": "fBehavior"; "required": false; }; "fType": { "alias": "fType"; "required": false; }; "fSelectionDisabled": { "alias": "fSelectionDisabled"; "required": false; "isSignal": true; }; "fReassignableStart": { "alias": "fReassignableStart"; "required": false; "isSignal": true; }; "fDraggingDisabled": { "alias": "fReassignDisabled"; "required": false; "isSignal": true; }; "fInputSide": { "alias": "fInputSide"; "required": false; "isSignal": true; }; "fOutputSide": { "alias": "fOutputSide"; "required": false; "isSignal": true; }; }, {}, never, ["svg[fMarker]", "f-connection-gradient", "f-connection-waypoints", "[fConnectionContent]"], false, never>;
24
24
  static ngAcceptInputType_fRadius: unknown;
25
25
  static ngAcceptInputType_fOffset: unknown;
26
26
  static ngAcceptInputType_fBehavior: unknown;
@@ -18,7 +18,7 @@ export declare class FConnectionForCreateComponent extends FConnectionBase imple
18
18
  ngOnChanges(): void;
19
19
  ngOnDestroy(): void;
20
20
  static ɵfac: i0.ɵɵFactoryDeclaration<FConnectionForCreateComponent, never>;
21
- static ɵcmp: i0.ɵɵComponentDeclaration<FConnectionForCreateComponent, "f-connection-for-create", never, { "fRadius": { "alias": "fRadius"; "required": false; }; "fOffset": { "alias": "fOffset"; "required": false; }; "fBehavior": { "alias": "fBehavior"; "required": false; }; "fType": { "alias": "fType"; "required": false; }; "fInputSide": { "alias": "fInputSide"; "required": false; "isSignal": true; }; "fOutputSide": { "alias": "fOutputSide"; "required": false; "isSignal": true; }; }, {}, never, ["*", "[fConnectionContent]"], false, never>;
21
+ static ɵcmp: i0.ɵɵComponentDeclaration<FConnectionForCreateComponent, "f-connection-for-create", never, { "fRadius": { "alias": "fRadius"; "required": false; }; "fOffset": { "alias": "fOffset"; "required": false; }; "fBehavior": { "alias": "fBehavior"; "required": false; }; "fType": { "alias": "fType"; "required": false; }; "fInputSide": { "alias": "fInputSide"; "required": false; "isSignal": true; }; "fOutputSide": { "alias": "fOutputSide"; "required": false; "isSignal": true; }; }, {}, never, ["svg[fMarker]", "f-connection-gradient", "[fConnectionContent]"], false, never>;
22
22
  static ngAcceptInputType_fRadius: unknown;
23
23
  static ngAcceptInputType_fOffset: unknown;
24
24
  static ngAcceptInputType_fBehavior: unknown;
@@ -19,7 +19,7 @@ export declare class FSnapConnectionComponent extends FConnectionBase implements
19
19
  ngOnChanges(): void;
20
20
  ngOnDestroy(): void;
21
21
  static ɵfac: i0.ɵɵFactoryDeclaration<FSnapConnectionComponent, never>;
22
- static ɵcmp: i0.ɵɵComponentDeclaration<FSnapConnectionComponent, "f-snap-connection", never, { "fSnapThreshold": { "alias": "fSnapThreshold"; "required": false; }; "fRadius": { "alias": "fRadius"; "required": false; }; "fOffset": { "alias": "fOffset"; "required": false; }; "fBehavior": { "alias": "fBehavior"; "required": false; }; "fType": { "alias": "fType"; "required": false; }; "fInputSide": { "alias": "fInputSide"; "required": false; "isSignal": true; }; "fOutputSide": { "alias": "fOutputSide"; "required": false; "isSignal": true; }; }, {}, never, ["*", "[fConnectionContent]"], false, never>;
22
+ static ɵcmp: i0.ɵɵComponentDeclaration<FSnapConnectionComponent, "f-snap-connection", never, { "fSnapThreshold": { "alias": "fSnapThreshold"; "required": false; }; "fRadius": { "alias": "fRadius"; "required": false; }; "fOffset": { "alias": "fOffset"; "required": false; }; "fBehavior": { "alias": "fBehavior"; "required": false; }; "fType": { "alias": "fType"; "required": false; }; "fInputSide": { "alias": "fInputSide"; "required": false; "isSignal": true; }; "fOutputSide": { "alias": "fOutputSide"; "required": false; "isSignal": true; }; }, {}, never, ["svg[fMarker]", "f-connection-gradient", "[fConnectionContent]"], false, never>;
23
23
  static ngAcceptInputType_fSnapThreshold: unknown;
24
24
  static ngAcceptInputType_fRadius: unknown;
25
25
  static ngAcceptInputType_fOffset: unknown;
@@ -1,6 +1,6 @@
1
1
  import { FConnectionComponent } from './f-connection';
2
2
  import { FConnectionForCreateComponent } from './f-connection-for-create';
3
3
  import { FSnapConnectionComponent } from './f-snap-connection';
4
- import { FConnectionContent, FConnectionWaypoints, FConnectionDragHandleStart, FConnectionGradient, FConnectionMarker, FConnectionPath, FConnectionSelection } from '../f-connection-v2';
5
- export declare const F_CONNECTION_PROVIDERS: (typeof FConnectionMarker | typeof FConnectionGradient | typeof FConnectionPath | typeof FConnectionSelection | typeof FConnectionDragHandleStart | typeof FConnectionComponent | typeof FConnectionForCreateComponent | typeof FSnapConnectionComponent)[];
6
- export declare const F_CONNECTION_IMPORTS_EXPORTS: (typeof FConnectionContent | typeof FConnectionWaypoints)[];
4
+ import { FConnectionContent, FConnectionDragHandleStart, FConnectionGradient, FConnectionGradientRenderer, FConnectionMarker, FConnectionPath, FConnectionSelection, FConnectionWaypoints } from '../f-connection-v2';
5
+ export declare const F_CONNECTION_PROVIDERS: (typeof FConnectionMarker | typeof FConnectionPath | typeof FConnectionSelection | typeof FConnectionDragHandleStart | typeof FConnectionComponent | typeof FConnectionForCreateComponent | typeof FSnapConnectionComponent)[];
6
+ export declare const F_CONNECTION_IMPORTS_EXPORTS: (typeof FConnectionContent | typeof FConnectionWaypoints | typeof FConnectionGradientRenderer | typeof FConnectionGradient)[];
@@ -0,0 +1 @@
1
+ export * from './render';
@@ -0,0 +1,8 @@
1
+ import { FConnectionGradientRendererBase } from './models';
2
+ import { FConnectionGradientBase } from '../../models';
3
+ import * as i0 from "@angular/core";
4
+ export declare class FConnectionGradientRenderer extends FConnectionGradientRendererBase {
5
+ readonly gradient: import("@angular/core").InputSignal<FConnectionGradientBase>;
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<FConnectionGradientRenderer, never>;
7
+ static ɵcmp: i0.ɵɵComponentDeclaration<FConnectionGradientRenderer, "linearGradient[fConnectionGradientRenderer]", never, { "gradient": { "alias": "fConnectionGradientRendererFor"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
8
+ }
@@ -0,0 +1,2 @@
1
+ export * from './models';
2
+ export * from './f-connection-gradient-renderer';
@@ -0,0 +1,25 @@
1
+ import { InputSignal, OnInit } from '@angular/core';
2
+ import { ILine } from '@foblex/2d';
3
+ import { FConnectionGradientBase } from '../../../models';
4
+ import * as i0 from "@angular/core";
5
+ export declare abstract class FConnectionGradientRendererBase implements OnInit {
6
+ private readonly _connection;
7
+ private readonly _hostElement;
8
+ private readonly _injector;
9
+ private readonly _hostAttributes;
10
+ private _startColor?;
11
+ private _endColor?;
12
+ abstract gradient: InputSignal<FConnectionGradientBase>;
13
+ readonly gradientId: import("@angular/core").Signal<string>;
14
+ ngOnInit(): void;
15
+ private _listenColorChanges;
16
+ get stop1Element(): SVGStopElement;
17
+ get stop2Element(): SVGStopElement;
18
+ redraw(line: ILine): void;
19
+ private _updateGradient;
20
+ private _setFromColor;
21
+ private _setToColor;
22
+ private _setHostAttribute;
23
+ static ɵfac: i0.ɵɵFactoryDeclaration<FConnectionGradientRendererBase, never>;
24
+ static ɵdir: i0.ɵɵDirectiveDeclaration<FConnectionGradientRendererBase, never, never, {}, {}, never, never, false, never>;
25
+ }
@@ -0,0 +1 @@
1
+ export * from './f-connection-gradient-renderer-base';
@@ -1,16 +1,8 @@
1
- import { ILine } from '@foblex/2d';
2
1
  import { FConnectionGradientBase } from './models';
3
2
  import * as i0 from "@angular/core";
4
3
  export declare class FConnectionGradient extends FConnectionGradientBase {
5
- private readonly _connection;
6
- get gradientId(): string;
7
- get stop1Element(): SVGStopElement;
8
- get stop2Element(): SVGStopElement;
9
- initialize(): void;
10
- private _updateGradient;
11
- private _setFromColor;
12
- private _setToColor;
13
- redraw(line: ILine): void;
4
+ readonly fStartColor: import("@angular/core").InputSignal<string>;
5
+ readonly fEndColor: import("@angular/core").InputSignal<string>;
14
6
  static ɵfac: i0.ɵɵFactoryDeclaration<FConnectionGradient, never>;
15
- static ɵcmp: i0.ɵɵComponentDeclaration<FConnectionGradient, "linearGradient[fConnectionGradient]", never, {}, {}, never, never, false, never>;
7
+ static ɵcmp: i0.ɵɵComponentDeclaration<FConnectionGradient, "f-connection-gradient", never, { "fStartColor": { "alias": "fStartColor"; "required": true; "isSignal": true; }; "fEndColor": { "alias": "fEndColor"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
16
8
  }
@@ -1,2 +1,3 @@
1
+ export * from './components';
1
2
  export * from './models';
2
3
  export * from './f-connection-gradient';
@@ -1,8 +1,6 @@
1
- import { ILine } from '@foblex/2d';
2
- import { InjectionToken } from '@angular/core';
1
+ import { InjectionToken, Signal } from '@angular/core';
3
2
  export declare const F_CONNECTION_GRADIENT: InjectionToken<FConnectionGradientBase>;
4
3
  export declare abstract class FConnectionGradientBase {
5
- readonly hostElement: any;
6
- abstract initialize(): void;
7
- abstract redraw(line: ILine): void;
4
+ abstract fStartColor: Signal<string>;
5
+ abstract fEndColor: Signal<string>;
8
6
  }
@@ -2,13 +2,14 @@ import { FConnectionPathBase } from './models';
2
2
  import * as i0 from "@angular/core";
3
3
  export declare class FConnectionPath extends FConnectionPathBase {
4
4
  private readonly _connection;
5
+ readonly useGradient: import("@angular/core").InputSignal<boolean>;
6
+ readonly linkToGradient: import("@angular/core").Signal<string | null>;
5
7
  get fPathId(): string;
6
- get linkToGradient(): string;
7
8
  get attrConnectionId(): string;
8
9
  initialize(): void;
9
10
  setPath(path: string): void;
10
11
  select(): void;
11
12
  deselect(): void;
12
13
  static ɵfac: i0.ɵɵFactoryDeclaration<FConnectionPath, never>;
13
- static ɵcmp: i0.ɵɵComponentDeclaration<FConnectionPath, "path[f-connection-path]", never, {}, {}, never, never, false, never>;
14
+ static ɵcmp: i0.ɵɵComponentDeclaration<FConnectionPath, "path[f-connection-path]", never, { "useGradient": { "alias": "useGradient"; "required": false; "isSignal": true; }; }, {}, never, never, false, never>;
14
15
  }
@@ -13,8 +13,6 @@ declare const MIXIN_BASE: import("../../mixins").Constructor<ISelectable> & impo
13
13
  export declare abstract class FConnectionBase extends MIXIN_BASE implements ISelectable, ICanChangeVisibility {
14
14
  private readonly _fConnectionBuilder;
15
15
  abstract fId: Signal<string>;
16
- readonly fStartColor: import("@angular/core").InputSignal<string>;
17
- readonly fEndColor: import("@angular/core").InputSignal<string>;
18
16
  abstract fOutputId: Signal<string>;
19
17
  abstract fInputId: Signal<string>;
20
18
  abstract fRadius: number;
@@ -29,11 +27,12 @@ export declare abstract class FConnectionBase extends MIXIN_BASE implements ISel
29
27
  abstract fType: EFConnectionType | string;
30
28
  readonly fDefs: Signal<ElementRef<SVGDefsElement>>;
31
29
  readonly fPath: Signal<import("./connection-path").FConnectionPathBase>;
32
- readonly fGradient: Signal<import("./connection-gradient").FConnectionGradientBase>;
33
30
  readonly fDragHandleStart: Signal<import("./connection-drag-handles").FConnectionDragHandleBase | undefined>;
34
31
  readonly fDragHandleEnd: Signal<import("./connection-drag-handles").FConnectionDragHandleBase>;
35
32
  readonly fSelection: Signal<import("./connection-selection").FConnectionSelectionBase>;
36
33
  readonly fContents: Signal<readonly FConnectionContentBase[]>;
34
+ readonly fGradient: Signal<import("./connection-gradient").FConnectionGradientBase | undefined>;
35
+ private readonly _fGradientRenderer;
37
36
  readonly fWaypoints: Signal<import("./connection-waypoints").FConnectionWaypointsBase | undefined>;
38
37
  readonly fInputSide: Signal<EFConnectionConnectableSide>;
39
38
  private _sourceSide;
@@ -50,6 +49,10 @@ export declare abstract class FConnectionBase extends MIXIN_BASE implements ISel
50
49
  markChildrenAsSelected(): void;
51
50
  unmarkChildrenAsSelected(): void;
52
51
  redraw(): void;
52
+ getResolvedSides(): {
53
+ sourceSide: EFConnectableSide;
54
+ targetSide: EFConnectableSide;
55
+ };
53
56
  /**
54
57
  * Applies the resolved sides to the connection. Don't call this method directly; it's used internally.
55
58
  *
@@ -58,6 +61,6 @@ export declare abstract class FConnectionBase extends MIXIN_BASE implements ISel
58
61
  */
59
62
  _applyResolvedSidesToConnection(sourceSide: EFConnectableSide, targetSide: EFConnectableSide): void;
60
63
  static ɵfac: i0.ɵɵFactoryDeclaration<FConnectionBase, never>;
61
- static ɵdir: i0.ɵɵDirectiveDeclaration<FConnectionBase, never, never, { "fStartColor": { "alias": "fStartColor"; "required": false; "isSignal": true; }; "fEndColor": { "alias": "fEndColor"; "required": false; "isSignal": true; }; }, {}, ["fContents", "fWaypoints"], never, false, never>;
64
+ static ɵdir: i0.ɵɵDirectiveDeclaration<FConnectionBase, never, never, {}, {}, ["fContents", "fGradient", "fWaypoints"], never, false, never>;
62
65
  }
63
66
  export {};
@@ -6,8 +6,6 @@ export declare abstract class FConnectionComponentsParent {
6
6
  abstract fId: Signal<string>;
7
7
  abstract fOutputId: Signal<string>;
8
8
  abstract fInputId: Signal<string>;
9
- abstract fStartColor: Signal<string>;
10
- abstract fEndColor: Signal<string>;
11
9
  abstract fBehavior: EFConnectionBehavior;
12
10
  abstract _applyResolvedSidesToConnection(sourceSide: EFConnectableSide, targetSide: EFConnectableSide): void;
13
11
  abstract fInputSide: Signal<EFConnectionConnectableSide>;
@@ -1 +1 @@
1
- export declare function createGradientDomIdentifier(componentId: string, sourceId: string, targetId: string): string;
1
+ export declare function createGradientDomIdentifier(componentId: string): string;
@@ -1 +1 @@
1
- export declare function createGradientDomUrl(componentId: string, sourceId: string, targetId: string): string;
1
+ export declare function createGradientDomUrl(componentId: string): string;
@@ -2,6 +2,7 @@ import { TFConnectionWorkerPendingRequest } from './t-f-connection-worker-pendin
2
2
  import * as i0 from "@angular/core";
3
3
  export declare class FConnectionWorker {
4
4
  worker: Worker | null;
5
+ workerUrl: string | null;
5
6
  nextRequestId: number;
6
7
  isDisabled: boolean;
7
8
  readonly pending: Map<number, TFConnectionWorkerPendingRequest>;
@@ -0,0 +1,11 @@
1
+ type TConnectionWorkerUrlApi = Pick<typeof URL, 'createObjectURL' | 'revokeObjectURL'>;
2
+ type TConnectionWorkerRuntime = {
3
+ blobCtor: typeof Blob;
4
+ workerCtor: typeof Worker;
5
+ urlApi: TConnectionWorkerUrlApi;
6
+ };
7
+ export declare function isConnectionWorkerRuntimeSupported(windowRef: Window | null | undefined): boolean;
8
+ export declare function resolveConnectionWorkerRuntime(windowRef: Window | null | undefined): TConnectionWorkerRuntime | null;
9
+ export declare function createConnectionWorkerUrl(runtime: TConnectionWorkerRuntime): string;
10
+ export declare function revokeConnectionWorkerUrl(workerUrl: string | null | undefined, urlApi?: Pick<typeof URL, 'revokeObjectURL'> | null): void;
11
+ export {};
@@ -7,6 +7,7 @@ export declare class FFlowComponent extends FFlowBase implements OnInit, AfterCo
7
7
  private readonly _destroyRef;
8
8
  private readonly _mediator;
9
9
  private readonly _browser;
10
+ private readonly _componentsStore;
10
11
  private readonly _cache;
11
12
  private readonly _injector;
12
13
  private readonly _worker;