@foblex/flow 1.2.0 → 1.2.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,6 +1,6 @@
1
- import { AfterContentInit, ChangeDetectorRef, ElementRef, InjectionToken, NgZone, OnDestroy } from '@angular/core';
2
- import { IHasHostElement, ITransformModel } from '@foblex/core';
3
- import { FItemsContainerBase } from '../../directives';
1
+ import { AfterContentInit, ChangeDetectorRef, ElementRef, EventEmitter, InjectionToken, NgZone, OnDestroy } from '@angular/core';
2
+ import { IHasHostElement, IPoint, ITransformModel } from '@foblex/core';
3
+ import { FItemsContainerBase, FZoomBase } from '../../directives';
4
4
  import { FNodeInputBase, FNodeOutletBase, FNodeOutputBase } from '../f-connectors';
5
5
  import { Subject } from 'rxjs';
6
6
  import { FBackgroundBase } from '../../internal';
@@ -17,6 +17,7 @@ export declare abstract class FFlowBase implements IHasHostElement, AfterContent
17
17
  private readonly onDestroy;
18
18
  abstract fNodesContainer: FNodesContainerBase;
19
19
  abstract fConnectionsContainer: FConnectionsContainerBase;
20
+ abstract fZoom: FZoomBase | undefined;
20
21
  abstract fItemsContainer: FItemsContainerBase;
21
22
  abstract fBackground: FBackgroundBase;
22
23
  abstract transform: ITransformModel;
@@ -24,9 +25,15 @@ export declare abstract class FFlowBase implements IHasHostElement, AfterContent
24
25
  abstract outputs: FNodeOutputBase[];
25
26
  abstract inputs: FNodeInputBase[];
26
27
  connectorChanges: Subject<void>;
28
+ abstract onInitialized: EventEmitter<void>;
27
29
  protected constructor(elementReference: ElementRef<SVGSVGElement>, changeDetectorRef: ChangeDetectorRef, ngZone: NgZone);
30
+ ngAfterViewInit(): void;
28
31
  ngAfterContentInit(): void;
29
32
  protected subscribeOnComponentsChanges(): void;
33
+ fitToScreen(toCenter?: IPoint, animated?: boolean): void;
34
+ oneToOne(): void;
35
+ zoomIn(): void;
36
+ zoomOut(): void;
30
37
  ngOnDestroy(): void;
31
38
  static ɵfac: i0.ɵɵFactoryDeclaration<FFlowBase, never>;
32
39
  static ɵdir: i0.ɵɵDirectiveDeclaration<FFlowBase, never, never, {}, {}, never, never, false, never>;
@@ -1,5 +1,5 @@
1
- import { ChangeDetectorRef, ElementRef, NgZone } from '@angular/core';
2
- import { FItemsContainerBase } from '../../directives';
1
+ import { ChangeDetectorRef, ElementRef, EventEmitter, NgZone } from '@angular/core';
2
+ import { FItemsContainerBase, FZoomBase } from '../../directives';
3
3
  import { FFlowBase } from './f-flow-base';
4
4
  import { ITransformModel } from '@foblex/core';
5
5
  import { FNodesContainerBase } from '../../directives';
@@ -23,13 +23,15 @@ export declare class FFlowComponent extends FFlowBase implements IFlowConnectorP
23
23
  fConnectionsContainer: FConnectionsContainerBase;
24
24
  fItemsContainer: FItemsContainerBase;
25
25
  fBackground: FBackgroundBase;
26
+ fZoom: FZoomBase | undefined;
26
27
  outlets: FNodeOutletBase[];
27
28
  outputs: FNodeOutputBase[];
28
29
  inputs: FNodeInputBase[];
29
30
  get transform(): ITransformModel;
31
+ onInitialized: EventEmitter<void>;
30
32
  constructor(elementReference: ElementRef<SVGSVGElement>, changeDetectorRef: ChangeDetectorRef, ngZone: NgZone);
31
33
  addConnector(connector: FConnectorBase): void;
32
34
  removeConnector(connector: FConnectorBase): void;
33
35
  static ɵfac: i0.ɵɵFactoryDeclaration<FFlowComponent, never>;
34
- static ɵcmp: i0.ɵɵComponentDeclaration<FFlowComponent, "svg[fFlow]", never, { "id": { "alias": "id"; "required": false; }; }, {}, ["fNodesContainer", "fConnectionsContainer", "fItemsContainer"], ["*"], false, [{ directive: typeof i1.FCanvasDirective; inputs: {}; outputs: {}; }]>;
36
+ static ɵcmp: i0.ɵɵComponentDeclaration<FFlowComponent, "svg[fFlow]", never, { "id": { "alias": "id"; "required": false; }; }, { "onInitialized": "onInitialized"; }, ["fNodesContainer", "fConnectionsContainer", "fItemsContainer", "fZoom"], ["*"], false, [{ directive: typeof i1.FCanvasDirective; inputs: {}; outputs: {}; }]>;
35
37
  }
@@ -0,0 +1,5 @@
1
+ import { IHandler } from '@foblex/core';
2
+ import { CanvasOnPointerUpRequest } from './canvas-on-pointer-up.request';
3
+ export declare class CanvasOnPointerUpHandler implements IHandler<CanvasOnPointerUpRequest, void> {
4
+ handle(payload: CanvasOnPointerUpRequest): void;
5
+ }
@@ -0,0 +1,5 @@
1
+ import { IDragHandler } from '../../i-drag-handler';
2
+ export declare class CanvasOnPointerUpRequest {
3
+ dragHandler: IDragHandler;
4
+ constructor(dragHandler: IDragHandler);
5
+ }
@@ -0,0 +1,2 @@
1
+ export * from './canvas-on-pointer-up.handler';
2
+ export * from './canvas-on-pointer-up.request';
@@ -1,2 +1,3 @@
1
1
  export * from './canvas-on-pointer-down';
2
2
  export * from './canvas-on-pointer-move';
3
+ export * from './canvas-on-pointer-up';
@@ -1,5 +1,6 @@
1
1
  import { Directive, InjectionToken } from '@angular/core';
2
- import { merge, startWith, Subject, takeUntil } from 'rxjs';
2
+ import { Point, PointExtensions, RectExtensions } from '@foblex/core';
3
+ import { debounceTime, merge, startWith, Subject, take, takeUntil } from 'rxjs';
3
4
  import * as i0 from "@angular/core";
4
5
  export const F_FLOW_COMPONENT = new InjectionToken('F_FLOW_COMPONENT');
5
6
  export class FFlowBase {
@@ -13,6 +14,11 @@ export class FFlowBase {
13
14
  this.onDestroy = new Subject();
14
15
  this.connectorChanges = new Subject();
15
16
  }
17
+ ngAfterViewInit() {
18
+ this.fNodesContainer.stateChanges.pipe(debounceTime(1), take(1)).subscribe(() => {
19
+ this.onInitialized.emit();
20
+ });
21
+ }
16
22
  ngAfterContentInit() {
17
23
  this.subscribeOnComponentsChanges();
18
24
  }
@@ -39,6 +45,27 @@ export class FFlowBase {
39
45
  });
40
46
  });
41
47
  }
48
+ fitToScreen(toCenter = PointExtensions.initialize(), animated = true) {
49
+ const rect = RectExtensions.addPointToSize(RectExtensions.fromElement(this.fNodesContainer.hostElement), Point.fromPoint(toCenter).mult(2));
50
+ this.fItemsContainer.fitToParent(rect, RectExtensions.fromElement(this.hostElement), this.fNodesContainer.fNodes.map((x) => {
51
+ return Point.fromPoint(x.position).sub(toCenter);
52
+ }));
53
+ animated ? this.fItemsContainer.redrawWithAnimation() : this.fItemsContainer.redraw();
54
+ this.fItemsContainer.completeDrag();
55
+ }
56
+ oneToOne() {
57
+ this.fItemsContainer.oneToOneCentering(RectExtensions.fromElement(this.fNodesContainer.hostElement), RectExtensions.fromElement(this.hostElement), this.fNodesContainer.fNodes.map((x) => {
58
+ return Point.fromPoint(x.position).sub(new Point(0, 0));
59
+ }));
60
+ this.fItemsContainer.redrawWithAnimation();
61
+ this.fItemsContainer.completeDrag();
62
+ }
63
+ zoomIn() {
64
+ this.fZoom?.onZoomToCenter(-100);
65
+ }
66
+ zoomOut() {
67
+ this.fZoom?.onZoomToCenter(100);
68
+ }
42
69
  ngOnDestroy() {
43
70
  this.onDestroy.next();
44
71
  this.onDestroy.complete();
@@ -49,4 +76,4 @@ export class FFlowBase {
49
76
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: FFlowBase, decorators: [{
50
77
  type: Directive
51
78
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }]; } });
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1mbG93LWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2NvbXBvbmVudHMvZi1mbG93L2YtZmxvdy1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCxTQUFTLEVBRVQsY0FBYyxFQUlmLE1BQU0sZUFBZSxDQUFDO0FBSXZCLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBSzVELE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLElBQUksY0FBYyxDQUFZLGtCQUFrQixDQUFDLENBQUM7QUFHbEYsTUFBTSxPQUFnQixTQUFTO0lBSTdCLElBQVcsV0FBVztRQUNwQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUM7SUFDN0MsQ0FBQztJQXdCRCxZQUNZLGdCQUEyQyxFQUMzQyxpQkFBb0MsRUFDcEMsTUFBYztRQUZkLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBMkI7UUFDM0Msc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBekJULGNBQVMsR0FBa0IsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQW9CekQscUJBQWdCLEdBQWtCLElBQUksT0FBTyxFQUFRLENBQUM7SUFPN0QsQ0FBQztJQUVNLGtCQUFrQjtRQUN2QixJQUFJLENBQUMsNEJBQTRCLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0lBRVMsNEJBQTRCO1FBQ3BDLE1BQU0sT0FBTyxHQUFHO1lBQ2QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsT0FBTztZQUNuQyxJQUFJLENBQUMscUJBQXFCLENBQUMsWUFBWSxDQUFDLE9BQU87WUFDL0MsSUFBSSxDQUFDLGdCQUFnQjtTQUN0QixDQUFDO1FBRUYsS0FBSyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNoRixNQUFNLGtCQUFrQixHQUFHLEtBQUssQ0FBQyxHQUFHLE9BQU8sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFFN0QsS0FBSyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxTQUFTLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBRTNHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUU7b0JBQzdELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztvQkFDdEUsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO29CQUNuRSxJQUFJLEtBQUssSUFBSSxNQUFNLEVBQUU7d0JBQ25CLFVBQVUsQ0FBQyxNQUFNLEdBQUc7NEJBQ2xCLE1BQU07NEJBQ04sS0FBSzt5QkFDTixDQUFDO3dCQUNGLFVBQVUsQ0FBQyxVQUFVLEVBQUUsQ0FBQztxQkFDekI7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUdNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzVCLENBQUM7OEdBeEVtQixTQUFTO2tHQUFULFNBQVM7OzJGQUFULFNBQVM7a0JBRDlCLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBJbmplY3Rpb25Ub2tlbixcbiAgTmdab25lLFxuICBPbkRlc3Ryb3ksXG4gIFF1ZXJ5TGlzdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElIYXNIb3N0RWxlbWVudCwgSVRyYW5zZm9ybU1vZGVsIH0gZnJvbSAnQGZvYmxleC9jb3JlJztcbmltcG9ydCB7IEZJdGVtc0NvbnRhaW5lckJhc2UgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzJztcbmltcG9ydCB7IEZDb25uZWN0b3JCYXNlLCBGTm9kZUlucHV0QmFzZSwgRk5vZGVPdXRsZXRCYXNlLCBGTm9kZU91dHB1dEJhc2UgfSBmcm9tICcuLi9mLWNvbm5lY3RvcnMnO1xuaW1wb3J0IHsgbWVyZ2UsIHN0YXJ0V2l0aCwgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGQmFja2dyb3VuZEJhc2UgfSBmcm9tICcuLi8uLi9pbnRlcm5hbCc7XG5pbXBvcnQgeyBGQ29ubmVjdGlvbnNDb250YWluZXJCYXNlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBGTm9kZXNDb250YWluZXJCYXNlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcyc7XG5cbmV4cG9ydCBjb25zdCBGX0ZMT1dfQ09NUE9ORU5UID0gbmV3IEluamVjdGlvblRva2VuPEZGbG93QmFzZT4oJ0ZfRkxPV19DT01QT05FTlQnKTtcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRkZsb3dCYXNlIGltcGxlbWVudHMgSUhhc0hvc3RFbGVtZW50LCBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3kge1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBpZDogYW55O1xuXG4gIHB1YmxpYyBnZXQgaG9zdEVsZW1lbnQoKTogU1ZHU1ZHRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudFJlZmVyZW5jZS5uYXRpdmVFbGVtZW50O1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSBvbkRlc3Ryb3k6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG5cbiAgcHVibGljIGFic3RyYWN0IGZOb2Rlc0NvbnRhaW5lcjogRk5vZGVzQ29udGFpbmVyQmFzZTtcblxuICBwdWJsaWMgYWJzdHJhY3QgZkNvbm5lY3Rpb25zQ29udGFpbmVyOiBGQ29ubmVjdGlvbnNDb250YWluZXJCYXNlO1xuXG5cbiAgcHVibGljIGFic3RyYWN0IGZJdGVtc0NvbnRhaW5lcjogRkl0ZW1zQ29udGFpbmVyQmFzZTtcblxuICBwdWJsaWMgYWJzdHJhY3QgZkJhY2tncm91bmQ6IEZCYWNrZ3JvdW5kQmFzZTtcblxuICBwdWJsaWMgYWJzdHJhY3QgdHJhbnNmb3JtOiBJVHJhbnNmb3JtTW9kZWw7XG5cbiAgcHVibGljIGFic3RyYWN0IG91dGxldHM6IEZOb2RlT3V0bGV0QmFzZVtdO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBvdXRwdXRzOiBGTm9kZU91dHB1dEJhc2VbXTtcblxuICBwdWJsaWMgYWJzdHJhY3QgaW5wdXRzOiBGTm9kZUlucHV0QmFzZVtdO1xuXG4gIHB1YmxpYyBjb25uZWN0b3JDaGFuZ2VzOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoXG4gICAgICBwcml2YXRlIGVsZW1lbnRSZWZlcmVuY2U6IEVsZW1lbnRSZWY8U1ZHU1ZHRWxlbWVudD4sXG4gICAgICBwcml2YXRlIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmVcbiAgKSB7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaWJlT25Db21wb25lbnRzQ2hhbmdlcygpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHN1YnNjcmliZU9uQ29tcG9uZW50c0NoYW5nZXMoKTogdm9pZCB7XG4gICAgY29uc3QgY2hhbmdlcyA9IFtcbiAgICAgIHRoaXMuZk5vZGVzQ29udGFpbmVyLmZOb2Rlcy5jaGFuZ2VzLFxuICAgICAgdGhpcy5mQ29ubmVjdGlvbnNDb250YWluZXIuZkNvbm5lY3Rpb25zLmNoYW5nZXMsXG4gICAgICB0aGlzLmNvbm5lY3RvckNoYW5nZXNcbiAgICBdO1xuXG4gICAgbWVyZ2UoLi4uY2hhbmdlcykucGlwZShzdGFydFdpdGgobnVsbCksIHRha2VVbnRpbCh0aGlzLm9uRGVzdHJveSkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBjb25zdCBjaGFuZ2VkT3JEZXN0cm95ZWQgPSBtZXJnZSguLi5jaGFuZ2VzLCB0aGlzLm9uRGVzdHJveSk7XG5cbiAgICAgIG1lcmdlKHRoaXMuZk5vZGVzQ29udGFpbmVyLnN0YXRlQ2hhbmdlcykucGlwZShzdGFydFdpdGgobnVsbCksIHRha2VVbnRpbChjaGFuZ2VkT3JEZXN0cm95ZWQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuXG4gICAgICAgIHRoaXMuZkNvbm5lY3Rpb25zQ29udGFpbmVyLmZDb25uZWN0aW9ucy5mb3JFYWNoKChjb25uZWN0aW9uKSA9PiB7XG4gICAgICAgICAgY29uc3Qgb3V0cHV0ID0gdGhpcy5vdXRwdXRzLmZpbmQoKHgpID0+IHguaWQgPT09IGNvbm5lY3Rpb24ub3V0cHV0SWQpO1xuICAgICAgICAgIGNvbnN0IGlucHV0ID0gdGhpcy5pbnB1dHMuZmluZCgoeCkgPT4geC5pZCA9PT0gY29ubmVjdGlvbi5pbnB1dElkKTtcbiAgICAgICAgICBpZiAoaW5wdXQgJiYgb3V0cHV0KSB7XG4gICAgICAgICAgICBjb25uZWN0aW9uLmZyb21UbyA9IHtcbiAgICAgICAgICAgICAgb3V0cHV0LFxuICAgICAgICAgICAgICBpbnB1dFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGNvbm5lY3Rpb24uaW5pdGlhbGl6ZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMub25EZXN0cm95Lm5leHQoKTtcbiAgICB0aGlzLm9uRGVzdHJveS5jb21wbGV0ZSgpO1xuICB9XG59XG4iXX0=
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1mbG93LWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2NvbXBvbmVudHMvZi1mbG93L2YtZmxvdy1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCxTQUFTLEVBRVQsY0FBYyxFQUlmLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBNEMsS0FBSyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFHaEgsT0FBTyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUtoRixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLGNBQWMsQ0FBWSxrQkFBa0IsQ0FBQyxDQUFDO0FBR2xGLE1BQU0sT0FBZ0IsU0FBUztJQUk3QixJQUFXLFdBQVc7UUFDcEIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDO0lBQzdDLENBQUM7SUE0QkQsWUFDWSxnQkFBMkMsRUFDM0MsaUJBQW9DLEVBQ3BDLE1BQWM7UUFGZCxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQTJCO1FBQzNDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDcEMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQTdCVCxjQUFTLEdBQWtCLElBQUksT0FBTyxFQUFRLENBQUM7UUFzQnpELHFCQUFnQixHQUFrQixJQUFJLE9BQU8sRUFBUSxDQUFDO0lBUzdELENBQUM7SUFFTSxlQUFlO1FBQ3BCLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUM5RSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUks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V0FBVyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLEVBQzVELGNBQWMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUM1QyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNwQyxPQUFPLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUN6RCxDQUFDLENBQUMsQ0FDTCxDQUFDO1FBQ0YsSUFBSSxDQUFDLGVBQWUsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQzNDLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVNLE1BQU07UUFDWCxJQUFJLENBQUMsS0FBSyxFQUFFLGNBQWMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFTSxPQUFPO1FBQ1osSUFBSSxDQUFDLEtBQUssRUFBRSxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzVCLENBQUM7OEdBckhtQixTQUFTO2tHQUFULFNBQVM7OzJGQUFULFNBQVM7a0JBRDlCLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsXG4gIEluamVjdGlvblRva2VuLFxuICBOZ1pvbmUsXG4gIE9uRGVzdHJveSxcbiAgUXVlcnlMaXN0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSUhhc0hvc3RFbGVtZW50LCBJUG9pbnQsIElUcmFuc2Zvcm1Nb2RlbCwgUG9pbnQsIFBvaW50RXh0ZW5zaW9ucywgUmVjdEV4dGVuc2lvbnMgfSBmcm9tICdAZm9ibGV4L2NvcmUnO1xuaW1wb3J0IHsgRkl0ZW1zQ29udGFpbmVyQmFzZSwgRlpvb21CYXNlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBGQ29ubmVjdG9yQmFzZSwgRk5vZGVJbnB1dEJhc2UsIEZOb2RlT3V0bGV0QmFzZSwgRk5vZGVPdXRwdXRCYXNlIH0gZnJvbSAnLi4vZi1jb25uZWN0b3JzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgbWVyZ2UsIHN0YXJ0V2l0aCwgU3ViamVjdCwgdGFrZSwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGQmFja2dyb3VuZEJhc2UgfSBmcm9tICcuLi8uLi9pbnRlcm5hbCc7XG5pbXBvcnQgeyBGQ29ubmVjdGlvbnNDb250YWluZXJCYXNlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBGTm9kZXNDb250YWluZXJCYXNlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcyc7XG5cbmV4cG9ydCBjb25zdCBGX0ZMT1dfQ09NUE9ORU5UID0gbmV3IEluamVjdGlvblRva2VuPEZGbG93QmFzZT4oJ0ZfRkxPV19DT01QT05FTlQnKTtcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRkZsb3dCYXNlIGltcGxlbWVudHMgSUhhc0hvc3RFbGVtZW50LCBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3kge1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBpZDogYW55O1xuXG4gIHB1YmxpYyBnZXQgaG9zdEVsZW1lbnQoKTogU1ZHU1ZHRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudFJlZmVyZW5jZS5uYXRpdmVFbGVtZW50O1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSBvbkRlc3Ryb3k6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG5cbiAgcHVibGljIGFic3RyYWN0IGZOb2Rlc0NvbnRhaW5lcjogRk5vZGVzQ29udGFpbmVyQmFzZTtcblxuICBwdWJsaWMgYWJzdHJhY3QgZkNvbm5lY3Rpb25zQ29udGFpbmVyOiBGQ29ubmVjdGlvbnNDb250YWluZXJCYXNlO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmWm9vbTogRlpvb21CYXNlIHwgdW5kZWZpbmVkO1xuXG5cbiAgcHVibGljIGFic3RyYWN0IGZJdGVtc0NvbnRhaW5lcjogRkl0ZW1zQ29udGFpbmVyQmFzZTtcblxuICBwdWJsaWMgYWJzdHJhY3QgZkJhY2tncm91bmQ6IEZCYWNrZ3JvdW5kQmFzZTtcblxuICBwdWJsaWMgYWJzdHJhY3QgdHJhbnNmb3JtOiBJVHJhbnNmb3JtTW9kZWw7XG5cbiAgcHVibGljIGFic3RyYWN0IG91dGxldHM6IEZOb2RlT3V0bGV0QmFzZVtdO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBvdXRwdXRzOiBGTm9kZU91dHB1dEJhc2VbXTtcblxuICBwdWJsaWMgYWJzdHJhY3QgaW5wdXRzOiBGTm9kZUlucHV0QmFzZVtdO1xuXG4gIHB1YmxpYyBjb25uZWN0b3JDaGFuZ2VzOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwdWJsaWMgYWJzdHJhY3Qgb25Jbml0aWFsaXplZDogRXZlbnRFbWl0dGVyPHZvaWQ+O1xuXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihcbiAgICAgIHByaXZhdGUgZWxlbWVudFJlZmVyZW5jZTogRWxlbWVudFJlZjxTVkdTVkdFbGVtZW50PixcbiAgICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZVxuICApIHtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5mTm9kZXNDb250YWluZXIuc3RhdGVDaGFuZ2VzLnBpcGUoZGVib3VuY2VUaW1lKDEpLCB0YWtlKDEpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5vbkluaXRpYWxpemVkLmVtaXQoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpYmVPbkNvbXBvbmVudHNDaGFuZ2VzKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc3Vic2NyaWJlT25Db21wb25lbnRzQ2hhbmdlcygpOiB2b2lkIHtcbiAgICBjb25zdCBjaGFuZ2VzID0gW1xuICAgICAgdGhpcy5mTm9kZXNDb250YWluZXIuZk5vZGVzLmNoYW5nZXMsXG4gICAgICB0aGlzLmZDb25uZWN0aW9uc0NvbnRhaW5lci5mQ29ubmVjdGlvbnMuY2hhbmdlcyxcbiAgICAgIHRoaXMuY29ubmVjdG9yQ2hhbmdlc1xuICAgIF07XG5cbiAgICBtZXJnZSguLi5jaGFuZ2VzKS5waXBlKHN0YXJ0V2l0aChudWxsKSwgdGFrZVVudGlsKHRoaXMub25EZXN0cm95KSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIGNvbnN0IGNoYW5nZWRPckRlc3Ryb3llZCA9IG1lcmdlKC4uLmNoYW5nZXMsIHRoaXMub25EZXN0cm95KTtcblxuICAgICAgbWVyZ2UodGhpcy5mTm9kZXNDb250YWluZXIuc3RhdGVDaGFuZ2VzKS5waXBlKHN0YXJ0V2l0aChudWxsKSwgdGFrZVVudGlsKGNoYW5nZWRPckRlc3Ryb3llZCkpLnN1YnNjcmliZSgoKSA9PiB7XG5cbiAgICAgICAgdGhpcy5mQ29ubmVjdGlvbnNDb250YWluZXIuZkNvbm5lY3Rpb25zLmZvckVhY2goKGNvbm5lY3Rpb24pID0+IHtcbiAgICAgICAgICBjb25zdCBvdXRwdXQgPSB0aGlzLm91dHB1dHMuZmluZCgoeCkgPT4geC5pZCA9PT0gY29ubmVjdGlvbi5vdXRwdXRJZCk7XG4gICAgICAgICAgY29uc3QgaW5wdXQgPSB0aGlzLmlucHV0cy5maW5kKCh4KSA9PiB4LmlkID09PSBjb25uZWN0aW9uLmlucHV0SWQpO1xuICAgICAgICAgIGlmIChpbnB1dCAmJiBvdXRwdXQpIHtcbiAgICAgICAgICAgIGNvbm5lY3Rpb24uZnJvbVRvID0ge1xuICAgICAgICAgICAgICBvdXRwdXQsXG4gICAgICAgICAgICAgIGlucHV0XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgY29ubmVjdGlvbi5pbml0aWFsaXplKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGZpdFRvU2NyZWVuKHRvQ2VudGVyOiBJUG9pbnQgPSBQb2ludEV4dGVuc2lvbnMuaW5pdGlhbGl6ZSgpLCBhbmltYXRlZDogYm9vbGVhbiA9IHRydWUpOiB2b2lkIHtcbiAgICBjb25zdCByZWN0ID0gUmVjdEV4dGVuc2lvbnMuYWRkUG9pbnRUb1NpemUoXG4gICAgICAgIFJlY3RFeHRlbnNpb25zLmZyb21FbGVtZW50KHRoaXMuZk5vZGVzQ29udGFpbmVyLmhvc3RFbGVtZW50KSxcbiAgICAgICAgUG9pbnQuZnJvbVBvaW50KHRvQ2VudGVyKS5tdWx0KDIpXG4gICAgKTtcbiAgICB0aGlzLmZJdGVtc0NvbnRhaW5lci5maXRUb1BhcmVudChcbiAgICAgICAgcmVjdCxcbiAgICAgICAgUmVjdEV4dGVuc2lvbnMuZnJvbUVsZW1lbnQodGhpcy5ob3N0RWxlbWVudCksXG4gICAgICAgIHRoaXMuZk5vZGVzQ29udGFpbmVyLmZOb2Rlcy5tYXAoKHgpID0+IHtcbiAgICAgICAgICByZXR1cm4gUG9pbnQuZnJvbVBvaW50KHgucG9zaXRpb24pLnN1Yih0b0NlbnRlcilcbiAgICAgICAgfSlcbiAgICApO1xuICAgIGFuaW1hdGVkID8gdGhpcy5mSXRlbXNDb250YWluZXIucmVkcmF3V2l0aEFuaW1hdGlvbigpIDogdGhpcy5mSXRlbXNDb250YWluZXIucmVkcmF3KCk7XG4gICAgdGhpcy5mSXRlbXNDb250YWluZXIuY29tcGxldGVEcmFnKCk7XG4gIH1cblxuICBwdWJsaWMgb25lVG9PbmUoKTogdm9pZCB7XG4gICAgdGhpcy5mSXRlbXNDb250YWluZXIub25lVG9PbmVDZW50ZXJpbmcoXG4gICAgICAgIFJlY3RFeHRlbnNpb25zLmZyb21FbGVtZW50KHRoaXMuZk5vZGVzQ29udGFpbmVyLmhvc3RFbGVtZW50KSxcbiAgICAgICAgUmVjdEV4dGVuc2lvbnMuZnJvbUVsZW1lbnQodGhpcy5ob3N0RWxlbWVudCksXG4gICAgICAgIHRoaXMuZk5vZGVzQ29udGFpbmVyLmZOb2Rlcy5tYXAoKHgpID0+IHtcbiAgICAgICAgICByZXR1cm4gUG9pbnQuZnJvbVBvaW50KHgucG9zaXRpb24pLnN1YihuZXcgUG9pbnQoMCwgMCkpXG4gICAgICAgIH0pXG4gICAgKTtcbiAgICB0aGlzLmZJdGVtc0NvbnRhaW5lci5yZWRyYXdXaXRoQW5pbWF0aW9uKCk7XG4gICAgdGhpcy5mSXRlbXNDb250YWluZXIuY29tcGxldGVEcmFnKCk7XG4gIH1cblxuICBwdWJsaWMgem9vbUluKCk6IHZvaWQge1xuICAgIHRoaXMuZlpvb20/Lm9uWm9vbVRvQ2VudGVyKC0xMDApO1xuICB9XG5cbiAgcHVibGljIHpvb21PdXQoKTogdm9pZCB7XG4gICAgdGhpcy5mWm9vbT8ub25ab29tVG9DZW50ZXIoMTAwKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLm9uRGVzdHJveS5uZXh0KCk7XG4gICAgdGhpcy5vbkRlc3Ryb3kuY29tcGxldGUoKTtcbiAgfVxufVxuIl19
@@ -1,6 +1,6 @@
1
- import { Component, ContentChild, Input, ViewChild } from '@angular/core';
1
+ import { Component, ContentChild, EventEmitter, Input, Output, ViewChild } from '@angular/core';
2
2
  import { FCanvasDirective } from '../../internal';
3
- import { F_ITEMS_CONTAINER } from '../../directives';
3
+ import { F_ITEMS_CONTAINER, F_ZOOM } from '../../directives';
4
4
  import { F_FLOW_COMPONENT, FFlowBase } from './f-flow-base';
5
5
  import { F_NODES_CONTAINER } from '../../directives';
6
6
  import { F_CONNECTIONS_CONTAINER } from '../../directives';
@@ -30,6 +30,7 @@ export class FFlowComponent extends FFlowBase {
30
30
  this.outlets = [];
31
31
  this.outputs = [];
32
32
  this.inputs = [];
33
+ this.onInitialized = new EventEmitter();
33
34
  }
34
35
  addConnector(connector) {
35
36
  if (connector instanceof FNodeOutletBase) {
@@ -56,10 +57,10 @@ export class FFlowComponent extends FFlowBase {
56
57
  this.connectorChanges.next();
57
58
  }
58
59
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: FFlowComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
59
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: FFlowComponent, selector: "svg[fFlow]", inputs: { id: "id" }, host: { properties: { "attr.id": "id" }, classAttribute: "f-component f-flow" }, providers: [
60
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: FFlowComponent, selector: "svg[fFlow]", inputs: { id: "id" }, outputs: { onInitialized: "onInitialized" }, host: { properties: { "attr.id": "id" }, classAttribute: "f-component f-flow" }, providers: [
60
61
  { provide: F_FLOW_COMPONENT, useExisting: FFlowComponent },
61
62
  { provide: F_FLOW_CONNECTOR_PARENT, useExisting: FFlowComponent }
62
- ], queries: [{ propertyName: "fNodesContainer", first: true, predicate: F_NODES_CONTAINER, descendants: true, static: true }, { propertyName: "fConnectionsContainer", first: true, predicate: F_CONNECTIONS_CONTAINER, descendants: true }, { propertyName: "fItemsContainer", first: true, predicate: F_ITEMS_CONTAINER, descendants: true, static: true }], viewQueries: [{ propertyName: "fBackground", first: true, predicate: F_BACKGROUND, descendants: true, static: true }], usesInheritance: true, hostDirectives: [{ directive: i1.FCanvasDirective }], ngImport: i0, template: "<ng-container xmlns:svg=\"http://www.w3.org/2000/svg\">\n <svg:g fBackground>\n <rect width=\"100%\" height=\"100%\" fill=\"url(#background)\"></rect>\n </svg:g>\n <ng-content></ng-content>\n <svg:defs>\n <svg:marker [id]=\"CONNECTION_MARKER_START\" class=\"connection-marker-start\" markerHeight=\"10\" markerWidth=\"10\" refY=\"5\" refX=\"5\">\n <svg:circle cx=\"5\" cy=\"5\" r=\"2\"></svg:circle>\n </svg:marker>\n <svg:marker [id]=\"CONNECTION_MARKER_END\" class=\"connection-marker-end\" markerHeight=\"10\" markerWidth=\"10\" orient=\"auto\" refX=\"5\" refY=\"3\">\n <svg:path d=\"M0,0 L6,3 0,6Z\"></svg:path>\n </svg:marker>\n <svg:marker [id]=\"CONNECTION_MARKER_START_SELECTED\" class=\"connection-marker-start f-selected\" markerHeight=\"10\" markerWidth=\"10\" refY=\"5\" refX=\"5\">\n <svg:circle cx=\"5\" cy=\"5\" r=\"2\"></svg:circle>\n </svg:marker>\n <svg:marker [id]=\"CONNECTION_MARKER_END_SELECTED\" class=\"connection-marker-end f-selected\" markerHeight=\"10\" markerWidth=\"10\" orient=\"auto\" refX=\"5\" refY=\"3\">\n <svg:path d=\"M0,0 L6,3 0,6Z\"></svg:path>\n </svg:marker>\n <ng-container *ngIf=\"fConnectionsContainer\">\n <ng-container *ngFor=\"let connection of fConnectionsContainer.fConnections.toArray()\">\n <svg:marker [id]=\"'connection-marker-start-' + connection.fromTo?.output?.color\" markerHeight=\"10\" markerWidth=\"10\" refY=\"5\" refX=\"5\">\n <svg:circle cx=\"5\" cy=\"5\" r=\"2\" [attr.stroke]=\"'none'\" [attr.fill]=\"connection.fromTo?.output?.color\"></svg:circle>\n </svg:marker>\n <svg:marker [id]=\"'connection-marker-end-' + connection.fromTo?.input?.color\" markerHeight=\"10\" markerWidth=\"10\" orient=\"auto\" refX=\"5\" refY=\"3\">\n <svg:path d=\"M0,0 L6,3 0,6Z\" [attr.stroke]=\"'none'\" [attr.fill]=\"connection.fromTo?.input?.color\"></svg:path>\n </svg:marker>\n </ng-container>\n\n </ng-container>\n <svg:pattern id=\"background\" height=\"10\" width=\"10\" class=\"fb-background-pattern\"\n patternUnits=\"userSpaceOnUse\">\n <svg:circle cx=\"5\" cy=\"5\" r=\"0.5\"/>\n </svg:pattern>\n </svg:defs>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.FBackgroundDirective, selector: "g[fBackground]" }] }); }
63
+ ], queries: [{ propertyName: "fNodesContainer", first: true, predicate: F_NODES_CONTAINER, descendants: true, static: true }, { propertyName: "fConnectionsContainer", first: true, predicate: F_CONNECTIONS_CONTAINER, descendants: true }, { propertyName: "fItemsContainer", first: true, predicate: F_ITEMS_CONTAINER, descendants: true, static: true }, { propertyName: "fZoom", first: true, predicate: F_ZOOM, descendants: true, static: true }], viewQueries: [{ propertyName: "fBackground", first: true, predicate: F_BACKGROUND, descendants: true, static: true }], usesInheritance: true, hostDirectives: [{ directive: i1.FCanvasDirective }], ngImport: i0, template: "<ng-container xmlns:svg=\"http://www.w3.org/2000/svg\">\n <svg:g fBackground>\n <rect width=\"100%\" height=\"100%\" fill=\"url(#background)\"></rect>\n </svg:g>\n <ng-content></ng-content>\n <svg:defs>\n <svg:marker [id]=\"CONNECTION_MARKER_START\" class=\"connection-marker-start\" markerHeight=\"10\" markerWidth=\"10\" refY=\"5\" refX=\"5\">\n <svg:circle cx=\"5\" cy=\"5\" r=\"2\"></svg:circle>\n </svg:marker>\n <svg:marker [id]=\"CONNECTION_MARKER_END\" class=\"connection-marker-end\" markerHeight=\"10\" markerWidth=\"10\" orient=\"auto\" refX=\"5\" refY=\"3\">\n <svg:path d=\"M0,0 L6,3 0,6Z\"></svg:path>\n </svg:marker>\n <svg:marker [id]=\"CONNECTION_MARKER_START_SELECTED\" class=\"connection-marker-start f-selected\" markerHeight=\"10\" markerWidth=\"10\" refY=\"5\" refX=\"5\">\n <svg:circle cx=\"5\" cy=\"5\" r=\"2\"></svg:circle>\n </svg:marker>\n <svg:marker [id]=\"CONNECTION_MARKER_END_SELECTED\" class=\"connection-marker-end f-selected\" markerHeight=\"10\" markerWidth=\"10\" orient=\"auto\" refX=\"5\" refY=\"3\">\n <svg:path d=\"M0,0 L6,3 0,6Z\"></svg:path>\n </svg:marker>\n <ng-container *ngIf=\"fConnectionsContainer\">\n <ng-container *ngFor=\"let connection of fConnectionsContainer.fConnections.toArray()\">\n <svg:marker [id]=\"'connection-marker-start-' + connection.fromTo?.output?.color\" markerHeight=\"10\" markerWidth=\"10\" refY=\"5\" refX=\"5\">\n <svg:circle cx=\"5\" cy=\"5\" r=\"2\" [attr.stroke]=\"'none'\" [attr.fill]=\"connection.fromTo?.output?.color\"></svg:circle>\n </svg:marker>\n <svg:marker [id]=\"'connection-marker-end-' + connection.fromTo?.input?.color\" markerHeight=\"10\" markerWidth=\"10\" orient=\"auto\" refX=\"5\" refY=\"3\">\n <svg:path d=\"M0,0 L6,3 0,6Z\" [attr.stroke]=\"'none'\" [attr.fill]=\"connection.fromTo?.input?.color\"></svg:path>\n </svg:marker>\n </ng-container>\n\n </ng-container>\n <svg:pattern id=\"background\" height=\"10\" width=\"10\" class=\"fb-background-pattern\"\n patternUnits=\"userSpaceOnUse\">\n <svg:circle cx=\"5\" cy=\"5\" r=\"0.5\"/>\n </svg:pattern>\n </svg:defs>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.FBackgroundDirective, selector: "g[fBackground]" }] }); }
63
64
  }
64
65
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: FFlowComponent, decorators: [{
65
66
  type: Component,
@@ -88,5 +89,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImpor
88
89
  }], fBackground: [{
89
90
  type: ViewChild,
90
91
  args: [F_BACKGROUND, { static: true }]
92
+ }], fZoom: [{
93
+ type: ContentChild,
94
+ args: [F_ZOOM, { static: true }]
95
+ }], onInitialized: [{
96
+ type: Output
91
97
  }] } });
92
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1mbG93LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvY29tcG9uZW50cy9mLWZsb3cvZi1mbG93LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvY29tcG9uZW50cy9mLWZsb3cvZi1mbG93LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQUUsWUFBWSxFQUV2QixLQUFLLEVBRUwsU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxpQkFBaUIsRUFBdUIsTUFBTSxrQkFBa0IsQ0FBQztBQUMxRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTVELE9BQU8sRUFBRSxpQkFBaUIsRUFBdUIsTUFBTSxrQkFBa0IsQ0FBQztBQUMxRSxPQUFPLEVBQ0wsdUJBQXVCLEVBRXhCLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUFFLFlBQVksRUFBbUIsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsdUJBQXVCLEVBQXdCLE1BQU0sMkJBQTJCLENBQUM7QUFDMUYsT0FBTyxFQUFrQixjQUFjLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7OztBQUVuRyxJQUFJLFFBQVEsR0FBVyxDQUFDLENBQUM7QUFFekIsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcseUJBQXlCLENBQUM7QUFDakUsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsdUJBQXVCLENBQUM7QUFDN0QsTUFBTSxDQUFDLE1BQU0sZ0NBQWdDLEdBQUcsa0NBQWtDLENBQUM7QUFDbkYsTUFBTSxDQUFDLE1BQU0sOEJBQThCLEdBQUcsZ0NBQWdDLENBQUM7QUFtQi9FLE1BQU0sT0FBTyxjQUFlLFNBQVEsU0FBUztJQTRCM0MsSUFBb0IsU0FBUztRQUMzQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxZQUNJLGdCQUEyQyxFQUMzQyxpQkFBb0MsRUFDcEMsTUFBYztRQUVoQixLQUFLLENBQUMsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFuQ3JDLDRCQUF1QixHQUFHLHVCQUF1QixDQUFDO1FBQ2xELDBCQUFxQixHQUFHLHFCQUFxQixDQUFDO1FBQzlDLHFDQUFnQyxHQUFHLGdDQUFnQyxDQUFDO1FBQ3BFLG1DQUE4QixHQUFHLDhCQUE4QixDQUFDO1FBR2hFLE9BQUUsR0FBVyxVQUFXLFFBQVEsRUFBRyxFQUFFLENBQUM7UUFjdEMsWUFBTyxHQUFzQixFQUFFLENBQUM7UUFFaEMsWUFBTyxHQUFzQixFQUFFLENBQUE7UUFFL0IsV0FBTSxHQUFxQixFQUFFLENBQUM7SUFZOUMsQ0FBQztJQUVNLFlBQVksQ0FBQyxTQUF5QjtRQUMzQyxJQUFJLFNBQVMsWUFBWSxlQUFlLEVBQUU7WUFDeEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDOUI7YUFBTSxJQUFJLFNBQVMsWUFBWSxjQUFjLEVBQUU7WUFDOUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDN0I7YUFBTSxJQUFJLFNBQVMsWUFBWSxlQUFlLEVBQUU7WUFDL0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDOUI7UUFDRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVNLGVBQWUsQ0FBQyxTQUF5QjtRQUM5QyxJQUFJLFNBQVMsWUFBWSxlQUFlLEVBQUU7WUFDeEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxTQUFTLENBQUMsQ0FBQztTQUMxRDthQUFNLElBQUksU0FBUyxZQUFZLGNBQWMsRUFBRTtZQUM5QyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxDQUFDO1NBQ3hEO2FBQU0sSUFBSSxTQUFTLFlBQVksZUFBZSxFQUFFO1lBQy9DLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssU0FBUyxDQUFDLENBQUM7U0FDMUQ7UUFDRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDL0IsQ0FBQzs4R0E1RFUsY0FBYztrR0FBZCxjQUFjLDRJQUxkO1lBQ1AsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRTtZQUMxRCxFQUFFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFO1NBQ3BFLHVFQVlhLGlCQUFpQixzR0FHakIsdUJBQXVCLGtGQUd2QixpQkFBaUIsMkdBR3BCLFlBQVksMklDaEV6QixtckVBbUNBOzsyRkRVYSxjQUFjO2tCQWpCMUIsU0FBUzsrQkFDRSxZQUFZLGtCQUVOO3dCQUNkOzRCQUNFLFNBQVMsRUFBRSxnQkFBZ0I7eUJBQzVCO3FCQUNGLFFBQ0s7d0JBQ0osV0FBVyxFQUFFLElBQUk7d0JBQ2pCLEtBQUssRUFBRSxvQkFBb0I7cUJBQzVCLGFBQ1U7d0JBQ1AsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxnQkFBZ0IsRUFBRTt3QkFDMUQsRUFBRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsV0FBVyxnQkFBZ0IsRUFBRTtxQkFDcEU7c0pBVWUsRUFBRTtzQkFEakIsS0FBSztnQkFJVSxlQUFlO3NCQUQ5QixZQUFZO3VCQUFDLGlCQUFpQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJakMscUJBQXFCO3NCQURwQyxZQUFZO3VCQUFDLHVCQUF1QixFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRTtnQkFJNUMsZUFBZTtzQkFEOUIsWUFBWTt1QkFBQyxpQkFBaUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBSWpDLFdBQVc7c0JBRDFCLFNBQVM7dUJBQUMsWUFBWSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsIENvbnRlbnRDaGlsZCxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIE5nWm9uZSxcbiAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRkNhbnZhc0RpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2ludGVybmFsJztcbmltcG9ydCB7IEZfSVRFTVNfQ09OVEFJTkVSLCBGSXRlbXNDb250YWluZXJCYXNlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBGX0ZMT1dfQ09NUE9ORU5ULCBGRmxvd0Jhc2UgfSBmcm9tICcuL2YtZmxvdy1iYXNlJztcbmltcG9ydCB7IElUcmFuc2Zvcm1Nb2RlbCB9IGZyb20gJ0Bmb2JsZXgvY29yZSc7XG5pbXBvcnQgeyBGX05PREVTX0NPTlRBSU5FUiwgRk5vZGVzQ29udGFpbmVyQmFzZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHtcbiAgRl9DT05ORUNUSU9OU19DT05UQUlORVIsXG4gIEZDb25uZWN0aW9uc0NvbnRhaW5lckJhc2Vcbn0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBGX0JBQ0tHUk9VTkQsIEZCYWNrZ3JvdW5kQmFzZSB9IGZyb20gJy4uLy4uL2ludGVybmFsJztcbmltcG9ydCB7IEZfRkxPV19DT05ORUNUT1JfUEFSRU5ULCBJRmxvd0Nvbm5lY3RvclBhcmVudCB9IGZyb20gJy4vaS1mbG93LWNvbm5lY3Rvci1wYXJlbnQnO1xuaW1wb3J0IHsgRkNvbm5lY3RvckJhc2UsIEZOb2RlSW5wdXRCYXNlLCBGTm9kZU91dGxldEJhc2UsIEZOb2RlT3V0cHV0QmFzZSB9IGZyb20gJy4uL2YtY29ubmVjdG9ycyc7XG5cbmxldCB1bmlxdWVJZDogbnVtYmVyID0gMDtcblxuZXhwb3J0IGNvbnN0IENPTk5FQ1RJT05fTUFSS0VSX1NUQVJUID0gXCJjb25uZWN0aW9uLW1hcmtlci1zdGFydFwiO1xuZXhwb3J0IGNvbnN0IENPTk5FQ1RJT05fTUFSS0VSX0VORCA9IFwiY29ubmVjdGlvbi1tYXJrZXItZW5kXCI7XG5leHBvcnQgY29uc3QgQ09OTkVDVElPTl9NQVJLRVJfU1RBUlRfU0VMRUNURUQgPSBcImNvbm5lY3Rpb24tbWFya2VyLXN0YXJ0LXNlbGVjdGVkXCI7XG5leHBvcnQgY29uc3QgQ09OTkVDVElPTl9NQVJLRVJfRU5EX1NFTEVDVEVEID0gXCJjb25uZWN0aW9uLW1hcmtlci1lbmQtc2VsZWN0ZWRcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3ZnW2ZGbG93XScsXG4gIHRlbXBsYXRlVXJsOiAnLi9mLWZsb3cuY29tcG9uZW50Lmh0bWwnLFxuICBob3N0RGlyZWN0aXZlczogW1xuICAgIHtcbiAgICAgIGRpcmVjdGl2ZTogRkNhbnZhc0RpcmVjdGl2ZVxuICAgIH1cbiAgXSxcbiAgaG9zdDoge1xuICAgICdbYXR0ci5pZF0nOiAnaWQnLFxuICAgIGNsYXNzOiBcImYtY29tcG9uZW50IGYtZmxvd1wiXG4gIH0sXG4gIHByb3ZpZGVyczogW1xuICAgICAgeyBwcm92aWRlOiBGX0ZMT1dfQ09NUE9ORU5ULCB1c2VFeGlzdGluZzogRkZsb3dDb21wb25lbnQgfSxcbiAgICAgIHsgcHJvdmlkZTogRl9GTE9XX0NPTk5FQ1RPUl9QQVJFTlQsIHVzZUV4aXN0aW5nOiBGRmxvd0NvbXBvbmVudCB9XG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEZGbG93Q29tcG9uZW50IGV4dGVuZHMgRkZsb3dCYXNlIGltcGxlbWVudHMgSUZsb3dDb25uZWN0b3JQYXJlbnQge1xuXG4gIHB1YmxpYyByZWFkb25seSBDT05ORUNUSU9OX01BUktFUl9TVEFSVCA9IENPTk5FQ1RJT05fTUFSS0VSX1NUQVJUO1xuICBwdWJsaWMgcmVhZG9ubHkgQ09OTkVDVElPTl9NQVJLRVJfRU5EID0gQ09OTkVDVElPTl9NQVJLRVJfRU5EO1xuICBwdWJsaWMgcmVhZG9ubHkgQ09OTkVDVElPTl9NQVJLRVJfU1RBUlRfU0VMRUNURUQgPSBDT05ORUNUSU9OX01BUktFUl9TVEFSVF9TRUxFQ1RFRDtcbiAgcHVibGljIHJlYWRvbmx5IENPTk5FQ1RJT05fTUFSS0VSX0VORF9TRUxFQ1RFRCA9IENPTk5FQ1RJT05fTUFSS0VSX0VORF9TRUxFQ1RFRDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgb3ZlcnJpZGUgaWQ6IHN0cmluZyA9IGBmLWZsb3ctJHsgdW5pcXVlSWQrKyB9YDtcblxuICBAQ29udGVudENoaWxkKEZfTk9ERVNfQ09OVEFJTkVSLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBwdWJsaWMgb3ZlcnJpZGUgZk5vZGVzQ29udGFpbmVyITogRk5vZGVzQ29udGFpbmVyQmFzZTtcblxuICBAQ29udGVudENoaWxkKEZfQ09OTkVDVElPTlNfQ09OVEFJTkVSLCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pXG4gIHB1YmxpYyBvdmVycmlkZSBmQ29ubmVjdGlvbnNDb250YWluZXIhOiBGQ29ubmVjdGlvbnNDb250YWluZXJCYXNlO1xuXG4gIEBDb250ZW50Q2hpbGQoRl9JVEVNU19DT05UQUlORVIsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHB1YmxpYyBvdmVycmlkZSBmSXRlbXNDb250YWluZXIhOiBGSXRlbXNDb250YWluZXJCYXNlO1xuXG4gIEBWaWV3Q2hpbGQoRl9CQUNLR1JPVU5ELCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBwdWJsaWMgb3ZlcnJpZGUgZkJhY2tncm91bmQhOiBGQmFja2dyb3VuZEJhc2U7XG5cbiAgcHVibGljIG92ZXJyaWRlIG91dGxldHM6IEZOb2RlT3V0bGV0QmFzZVtdID0gW107XG5cbiAgcHVibGljIG92ZXJyaWRlIG91dHB1dHM6IEZOb2RlT3V0cHV0QmFzZVtdID0gW11cblxuICBwdWJsaWMgb3ZlcnJpZGUgaW5wdXRzOiBGTm9kZUlucHV0QmFzZVtdID0gW107XG5cbiAgcHVibGljIG92ZXJyaWRlIGdldCB0cmFuc2Zvcm0oKTogSVRyYW5zZm9ybU1vZGVsIHtcbiAgICByZXR1cm4gdGhpcy5mSXRlbXNDb250YWluZXIudHJhbnNmb3JtO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgICBlbGVtZW50UmVmZXJlbmNlOiBFbGVtZW50UmVmPFNWR1NWR0VsZW1lbnQ+LFxuICAgICAgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgbmdab25lOiBOZ1pvbmVcbiAgKSB7XG4gICAgc3VwZXIoZWxlbWVudFJlZmVyZW5jZSwgY2hhbmdlRGV0ZWN0b3JSZWYsIG5nWm9uZSk7XG4gIH1cblxuICBwdWJsaWMgYWRkQ29ubmVjdG9yKGNvbm5lY3RvcjogRkNvbm5lY3RvckJhc2UpIHtcbiAgICBpZiAoY29ubmVjdG9yIGluc3RhbmNlb2YgRk5vZGVPdXRsZXRCYXNlKSB7XG4gICAgICB0aGlzLm91dGxldHMucHVzaChjb25uZWN0b3IpO1xuICAgIH0gZWxzZSBpZiAoY29ubmVjdG9yIGluc3RhbmNlb2YgRk5vZGVJbnB1dEJhc2UpIHtcbiAgICAgIHRoaXMuaW5wdXRzLnB1c2goY29ubmVjdG9yKTtcbiAgICB9IGVsc2UgaWYgKGNvbm5lY3RvciBpbnN0YW5jZW9mIEZOb2RlT3V0cHV0QmFzZSkge1xuICAgICAgdGhpcy5vdXRwdXRzLnB1c2goY29ubmVjdG9yKTtcbiAgICB9XG4gICAgdGhpcy5jb25uZWN0b3JDaGFuZ2VzLm5leHQoKTtcbiAgfVxuXG4gIHB1YmxpYyByZW1vdmVDb25uZWN0b3IoY29ubmVjdG9yOiBGQ29ubmVjdG9yQmFzZSkge1xuICAgIGlmIChjb25uZWN0b3IgaW5zdGFuY2VvZiBGTm9kZU91dGxldEJhc2UpIHtcbiAgICAgIHRoaXMub3V0bGV0cyA9IHRoaXMub3V0bGV0cy5maWx0ZXIoeCA9PiB4ICE9PSBjb25uZWN0b3IpO1xuICAgIH0gZWxzZSBpZiAoY29ubmVjdG9yIGluc3RhbmNlb2YgRk5vZGVJbnB1dEJhc2UpIHtcbiAgICAgIHRoaXMuaW5wdXRzID0gdGhpcy5pbnB1dHMuZmlsdGVyKHggPT4geCAhPT0gY29ubmVjdG9yKTtcbiAgICB9IGVsc2UgaWYgKGNvbm5lY3RvciBpbnN0YW5jZW9mIEZOb2RlT3V0cHV0QmFzZSkge1xuICAgICAgdGhpcy5vdXRwdXRzID0gdGhpcy5vdXRwdXRzLmZpbHRlcih4ID0+IHggIT09IGNvbm5lY3Rvcik7XG4gICAgfVxuICAgIHRoaXMuY29ubmVjdG9yQ2hhbmdlcy5uZXh0KCk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgeG1sbnM6c3ZnPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cbiAgPHN2ZzpnIGZCYWNrZ3JvdW5kPlxuICAgIDxyZWN0IHdpZHRoPVwiMTAwJVwiIGhlaWdodD1cIjEwMCVcIiBmaWxsPVwidXJsKCNiYWNrZ3JvdW5kKVwiPjwvcmVjdD5cbiAgPC9zdmc6Zz5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8c3ZnOmRlZnM+XG4gICAgPHN2ZzptYXJrZXIgW2lkXT1cIkNPTk5FQ1RJT05fTUFSS0VSX1NUQVJUXCIgY2xhc3M9XCJjb25uZWN0aW9uLW1hcmtlci1zdGFydFwiIG1hcmtlckhlaWdodD1cIjEwXCIgbWFya2VyV2lkdGg9XCIxMFwiIHJlZlk9XCI1XCIgcmVmWD1cIjVcIj5cbiAgICAgIDxzdmc6Y2lyY2xlIGN4PVwiNVwiIGN5PVwiNVwiIHI9XCIyXCI+PC9zdmc6Y2lyY2xlPlxuICAgIDwvc3ZnOm1hcmtlcj5cbiAgICA8c3ZnOm1hcmtlciBbaWRdPVwiQ09OTkVDVElPTl9NQVJLRVJfRU5EXCIgY2xhc3M9XCJjb25uZWN0aW9uLW1hcmtlci1lbmRcIiBtYXJrZXJIZWlnaHQ9XCIxMFwiIG1hcmtlcldpZHRoPVwiMTBcIiBvcmllbnQ9XCJhdXRvXCIgcmVmWD1cIjVcIiByZWZZPVwiM1wiPlxuICAgICAgPHN2ZzpwYXRoIGQ9XCJNMCwwIEw2LDMgMCw2WlwiPjwvc3ZnOnBhdGg+XG4gICAgPC9zdmc6bWFya2VyPlxuICAgIDxzdmc6bWFya2VyIFtpZF09XCJDT05ORUNUSU9OX01BUktFUl9TVEFSVF9TRUxFQ1RFRFwiIGNsYXNzPVwiY29ubmVjdGlvbi1tYXJrZXItc3RhcnQgZi1zZWxlY3RlZFwiIG1hcmtlckhlaWdodD1cIjEwXCIgbWFya2VyV2lkdGg9XCIxMFwiIHJlZlk9XCI1XCIgcmVmWD1cIjVcIj5cbiAgICAgIDxzdmc6Y2lyY2xlIGN4PVwiNVwiIGN5PVwiNVwiIHI9XCIyXCI+PC9zdmc6Y2lyY2xlPlxuICAgIDwvc3ZnOm1hcmtlcj5cbiAgICA8c3ZnOm1hcmtlciBbaWRdPVwiQ09OTkVDVElPTl9NQVJLRVJfRU5EX1NFTEVDVEVEXCIgY2xhc3M9XCJjb25uZWN0aW9uLW1hcmtlci1lbmQgZi1zZWxlY3RlZFwiIG1hcmtlckhlaWdodD1cIjEwXCIgbWFya2VyV2lkdGg9XCIxMFwiIG9yaWVudD1cImF1dG9cIiByZWZYPVwiNVwiIHJlZlk9XCIzXCI+XG4gICAgICA8c3ZnOnBhdGggZD1cIk0wLDAgTDYsMyAwLDZaXCI+PC9zdmc6cGF0aD5cbiAgICA8L3N2ZzptYXJrZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZDb25uZWN0aW9uc0NvbnRhaW5lclwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29ubmVjdGlvbiBvZiBmQ29ubmVjdGlvbnNDb250YWluZXIuZkNvbm5lY3Rpb25zLnRvQXJyYXkoKVwiPlxuICAgICAgICA8c3ZnOm1hcmtlciBbaWRdPVwiJ2Nvbm5lY3Rpb24tbWFya2VyLXN0YXJ0LScgKyBjb25uZWN0aW9uLmZyb21Ubz8ub3V0cHV0Py5jb2xvclwiIG1hcmtlckhlaWdodD1cIjEwXCIgbWFya2VyV2lkdGg9XCIxMFwiIHJlZlk9XCI1XCIgcmVmWD1cIjVcIj5cbiAgICAgICAgICA8c3ZnOmNpcmNsZSBjeD1cIjVcIiBjeT1cIjVcIiByPVwiMlwiIFthdHRyLnN0cm9rZV09XCInbm9uZSdcIiBbYXR0ci5maWxsXT1cImNvbm5lY3Rpb24uZnJvbVRvPy5vdXRwdXQ/LmNvbG9yXCI+PC9zdmc6Y2lyY2xlPlxuICAgICAgICA8L3N2ZzptYXJrZXI+XG4gICAgICAgIDxzdmc6bWFya2VyIFtpZF09XCInY29ubmVjdGlvbi1tYXJrZXItZW5kLScgKyBjb25uZWN0aW9uLmZyb21Ubz8uaW5wdXQ/LmNvbG9yXCIgbWFya2VySGVpZ2h0PVwiMTBcIiBtYXJrZXJXaWR0aD1cIjEwXCIgb3JpZW50PVwiYXV0b1wiIHJlZlg9XCI1XCIgcmVmWT1cIjNcIj5cbiAgICAgICAgICA8c3ZnOnBhdGggZD1cIk0wLDAgTDYsMyAwLDZaXCIgW2F0dHIuc3Ryb2tlXT1cIidub25lJ1wiIFthdHRyLmZpbGxdPVwiY29ubmVjdGlvbi5mcm9tVG8/LmlucHV0Py5jb2xvclwiPjwvc3ZnOnBhdGg+XG4gICAgICAgIDwvc3ZnOm1hcmtlcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPHN2ZzpwYXR0ZXJuIGlkPVwiYmFja2dyb3VuZFwiIGhlaWdodD1cIjEwXCIgd2lkdGg9XCIxMFwiIGNsYXNzPVwiZmItYmFja2dyb3VuZC1wYXR0ZXJuXCJcbiAgICAgICAgICAgICAgICAgcGF0dGVyblVuaXRzPVwidXNlclNwYWNlT25Vc2VcIj5cbiAgICAgIDxzdmc6Y2lyY2xlIGN4PVwiNVwiIGN5PVwiNVwiIHI9XCIwLjVcIi8+XG4gICAgPC9zdmc6cGF0dGVybj5cbiAgPC9zdmc6ZGVmcz5cbjwvbmctY29udGFpbmVyPlxuIl19
98
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1mbG93LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvY29tcG9uZW50cy9mLWZsb3cvZi1mbG93LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvY29tcG9uZW50cy9mLWZsb3cvZi1mbG93LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQUUsWUFBWSxFQUNYLFlBQVksRUFDeEIsS0FBSyxFQUNHLE1BQU0sRUFDZCxTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sRUFBa0MsTUFBTSxrQkFBa0IsQ0FBQztBQUM3RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTVELE9BQU8sRUFBRSxpQkFBaUIsRUFBdUIsTUFBTSxrQkFBa0IsQ0FBQztBQUMxRSxPQUFPLEVBQ0wsdUJBQXVCLEVBRXhCLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUFFLFlBQVksRUFBbUIsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsdUJBQXVCLEVBQXdCLE1BQU0sMkJBQTJCLENBQUM7QUFDMUYsT0FBTyxFQUFrQixjQUFjLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7OztBQUVuRyxJQUFJLFFBQVEsR0FBVyxDQUFDLENBQUM7QUFFekIsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcseUJBQXlCLENBQUM7QUFDakUsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsdUJBQXVCLENBQUM7QUFDN0QsTUFBTSxDQUFDLE1BQU0sZ0NBQWdDLEdBQUcsa0NBQWtD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RSx1QkFBdUIsRUFBRSxXQUFXLGdCQUFnQixFQUFFO3FCQUNwRTtzSkFVZSxFQUFFO3NCQURqQixLQUFLO2dCQUlVLGVBQWU7c0JBRDlCLFlBQVk7dUJBQUMsaUJBQWlCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUlqQyxxQkFBcUI7c0JBRHBDLFlBQVk7dUJBQUMsdUJBQXVCLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFO2dCQUk1QyxlQUFlO3NCQUQ5QixZQUFZO3VCQUFDLGlCQUFpQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJakMsV0FBVztzQkFEMUIsU0FBUzt1QkFBQyxZQUFZLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUl6QixLQUFLO3NCQURwQixZQUFZO3VCQUFDLE1BQU0sRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBY3RCLGFBQWE7c0JBRDVCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsXG4gIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE5nWm9uZSwgT3V0cHV0LFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGQ2FudmFzRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vaW50ZXJuYWwnO1xuaW1wb3J0IHsgRl9JVEVNU19DT05UQUlORVIsIEZfWk9PTSwgRkl0ZW1zQ29udGFpbmVyQmFzZSwgRlpvb21CYXNlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBGX0ZMT1dfQ09NUE9ORU5ULCBGRmxvd0Jhc2UgfSBmcm9tICcuL2YtZmxvdy1iYXNlJztcbmltcG9ydCB7IElUcmFuc2Zvcm1Nb2RlbCB9IGZyb20gJ0Bmb2JsZXgvY29yZSc7XG5pbXBvcnQgeyBGX05PREVTX0NPTlRBSU5FUiwgRk5vZGVzQ29udGFpbmVyQmFzZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHtcbiAgRl9DT05ORUNUSU9OU19DT05UQUlORVIsXG4gIEZDb25uZWN0aW9uc0NvbnRhaW5lckJhc2Vcbn0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBGX0JBQ0tHUk9VTkQsIEZCYWNrZ3JvdW5kQmFzZSB9IGZyb20gJy4uLy4uL2ludGVybmFsJztcbmltcG9ydCB7IEZfRkxPV19DT05ORUNUT1JfUEFSRU5ULCBJRmxvd0Nvbm5lY3RvclBhcmVudCB9IGZyb20gJy4vaS1mbG93LWNvbm5lY3Rvci1wYXJlbnQnO1xuaW1wb3J0IHsgRkNvbm5lY3RvckJhc2UsIEZOb2RlSW5wdXRCYXNlLCBGTm9kZU91dGxldEJhc2UsIEZOb2RlT3V0cHV0QmFzZSB9IGZyb20gJy4uL2YtY29ubmVjdG9ycyc7XG5cbmxldCB1bmlxdWVJZDogbnVtYmVyID0gMDtcblxuZXhwb3J0IGNvbnN0IENPTk5FQ1RJT05fTUFSS0VSX1NUQVJUID0gXCJjb25uZWN0aW9uLW1hcmtlci1zdGFydFwiO1xuZXhwb3J0IGNvbnN0IENPTk5FQ1RJT05fTUFSS0VSX0VORCA9IFwiY29ubmVjdGlvbi1tYXJrZXItZW5kXCI7XG5leHBvcnQgY29uc3QgQ09OTkVDVElPTl9NQVJLRVJfU1RBUlRfU0VMRUNURUQgPSBcImNvbm5lY3Rpb24tbWFya2VyLXN0YXJ0LXNlbGVjdGVkXCI7XG5leHBvcnQgY29uc3QgQ09OTkVDVElPTl9NQVJLRVJfRU5EX1NFTEVDVEVEID0gXCJjb25uZWN0aW9uLW1hcmtlci1lbmQtc2VsZWN0ZWRcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3ZnW2ZGbG93XScsXG4gIHRlbXBsYXRlVXJsOiAnLi9mLWZsb3cuY29tcG9uZW50Lmh0bWwnLFxuICBob3N0RGlyZWN0aXZlczogW1xuICAgIHtcbiAgICAgIGRpcmVjdGl2ZTogRkNhbnZhc0RpcmVjdGl2ZVxuICAgIH1cbiAgXSxcbiAgaG9zdDoge1xuICAgICdbYXR0ci5pZF0nOiAnaWQnLFxuICAgIGNsYXNzOiBcImYtY29tcG9uZW50IGYtZmxvd1wiXG4gIH0sXG4gIHByb3ZpZGVyczogW1xuICAgICAgeyBwcm92aWRlOiBGX0ZMT1dfQ09NUE9ORU5ULCB1c2VFeGlzdGluZzogRkZsb3dDb21wb25lbnQgfSxcbiAgICAgIHsgcHJvdmlkZTogRl9GTE9XX0NPTk5FQ1RPUl9QQVJFTlQsIHVzZUV4aXN0aW5nOiBGRmxvd0NvbXBvbmVudCB9XG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEZGbG93Q29tcG9uZW50IGV4dGVuZHMgRkZsb3dCYXNlIGltcGxlbWVudHMgSUZsb3dDb25uZWN0b3JQYXJlbnQge1xuXG4gIHB1YmxpYyByZWFkb25seSBDT05ORUNUSU9OX01BUktFUl9TVEFSVCA9IENPTk5FQ1RJT05fTUFSS0VSX1NUQVJUO1xuICBwdWJsaWMgcmVhZG9ubHkgQ09OTkVDVElPTl9NQVJLRVJfRU5EID0gQ09OTkVDVElPTl9NQVJLRVJfRU5EO1xuICBwdWJsaWMgcmVhZG9ubHkgQ09OTkVDVElPTl9NQVJLRVJfU1RBUlRfU0VMRUNURUQgPSBDT05ORUNUSU9OX01BUktFUl9TVEFSVF9TRUxFQ1RFRDtcbiAgcHVibGljIHJlYWRvbmx5IENPTk5FQ1RJT05fTUFSS0VSX0VORF9TRUxFQ1RFRCA9IENPTk5FQ1RJT05fTUFSS0VSX0VORF9TRUxFQ1RFRDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgb3ZlcnJpZGUgaWQ6IHN0cmluZyA9IGBmLWZsb3ctJHsgdW5pcXVlSWQrKyB9YDtcblxuICBAQ29udGVudENoaWxkKEZfTk9ERVNfQ09OVEFJTkVSLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBwdWJsaWMgb3ZlcnJpZGUgZk5vZGVzQ29udGFpbmVyITogRk5vZGVzQ29udGFpbmVyQmFzZTtcblxuICBAQ29udGVudENoaWxkKEZfQ09OTkVDVElPTlNfQ09OVEFJTkVSLCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pXG4gIHB1YmxpYyBvdmVycmlkZSBmQ29ubmVjdGlvbnNDb250YWluZXIhOiBGQ29ubmVjdGlvbnNDb250YWluZXJCYXNlO1xuXG4gIEBDb250ZW50Q2hpbGQoRl9JVEVNU19DT05UQUlORVIsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHB1YmxpYyBvdmVycmlkZSBmSXRlbXNDb250YWluZXIhOiBGSXRlbXNDb250YWluZXJCYXNlO1xuXG4gIEBWaWV3Q2hpbGQoRl9CQUNLR1JPVU5ELCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBwdWJsaWMgb3ZlcnJpZGUgZkJhY2tncm91bmQhOiBGQmFja2dyb3VuZEJhc2U7XG5cbiAgQENvbnRlbnRDaGlsZChGX1pPT00sIHsgc3RhdGljOiB0cnVlIH0pXG4gIHB1YmxpYyBvdmVycmlkZSBmWm9vbTogRlpvb21CYXNlIHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyBvdmVycmlkZSBvdXRsZXRzOiBGTm9kZU91dGxldEJhc2VbXSA9IFtdO1xuXG4gIHB1YmxpYyBvdmVycmlkZSBvdXRwdXRzOiBGTm9kZU91dHB1dEJhc2VbXSA9IFtdXG5cbiAgcHVibGljIG92ZXJyaWRlIGlucHV0czogRk5vZGVJbnB1dEJhc2VbXSA9IFtdO1xuXG4gIHB1YmxpYyBvdmVycmlkZSBnZXQgdHJhbnNmb3JtKCk6IElUcmFuc2Zvcm1Nb2RlbCB7XG4gICAgcmV0dXJuIHRoaXMuZkl0ZW1zQ29udGFpbmVyLnRyYW5zZm9ybTtcbiAgfVxuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgb3ZlcnJpZGUgb25Jbml0aWFsaXplZDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgICAgZWxlbWVudFJlZmVyZW5jZTogRWxlbWVudFJlZjxTVkdTVkdFbGVtZW50PixcbiAgICAgIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgIG5nWm9uZTogTmdab25lXG4gICkge1xuICAgIHN1cGVyKGVsZW1lbnRSZWZlcmVuY2UsIGNoYW5nZURldGVjdG9yUmVmLCBuZ1pvbmUpO1xuICB9XG5cbiAgcHVibGljIGFkZENvbm5lY3Rvcihjb25uZWN0b3I6IEZDb25uZWN0b3JCYXNlKSB7XG4gICAgaWYgKGNvbm5lY3RvciBpbnN0YW5jZW9mIEZOb2RlT3V0bGV0QmFzZSkge1xuICAgICAgdGhpcy5vdXRsZXRzLnB1c2goY29ubmVjdG9yKTtcbiAgICB9IGVsc2UgaWYgKGNvbm5lY3RvciBpbnN0YW5jZW9mIEZOb2RlSW5wdXRCYXNlKSB7XG4gICAgICB0aGlzLmlucHV0cy5wdXNoKGNvbm5lY3Rvcik7XG4gICAgfSBlbHNlIGlmIChjb25uZWN0b3IgaW5zdGFuY2VvZiBGTm9kZU91dHB1dEJhc2UpIHtcbiAgICAgIHRoaXMub3V0cHV0cy5wdXNoKGNvbm5lY3Rvcik7XG4gICAgfVxuICAgIHRoaXMuY29ubmVjdG9yQ2hhbmdlcy5uZXh0KCk7XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlQ29ubmVjdG9yKGNvbm5lY3RvcjogRkNvbm5lY3RvckJhc2UpIHtcbiAgICBpZiAoY29ubmVjdG9yIGluc3RhbmNlb2YgRk5vZGVPdXRsZXRCYXNlKSB7XG4gICAgICB0aGlzLm91dGxldHMgPSB0aGlzLm91dGxldHMuZmlsdGVyKHggPT4geCAhPT0gY29ubmVjdG9yKTtcbiAgICB9IGVsc2UgaWYgKGNvbm5lY3RvciBpbnN0YW5jZW9mIEZOb2RlSW5wdXRCYXNlKSB7XG4gICAgICB0aGlzLmlucHV0cyA9IHRoaXMuaW5wdXRzLmZpbHRlcih4ID0+IHggIT09IGNvbm5lY3Rvcik7XG4gICAgfSBlbHNlIGlmIChjb25uZWN0b3IgaW5zdGFuY2VvZiBGTm9kZU91dHB1dEJhc2UpIHtcbiAgICAgIHRoaXMub3V0cHV0cyA9IHRoaXMub3V0cHV0cy5maWx0ZXIoeCA9PiB4ICE9PSBjb25uZWN0b3IpO1xuICAgIH1cbiAgICB0aGlzLmNvbm5lY3RvckNoYW5nZXMubmV4dCgpO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyIHhtbG5zOnN2Zz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gIDxzdmc6ZyBmQmFja2dyb3VuZD5cbiAgICA8cmVjdCB3aWR0aD1cIjEwMCVcIiBoZWlnaHQ9XCIxMDAlXCIgZmlsbD1cInVybCgjYmFja2dyb3VuZClcIj48L3JlY3Q+XG4gIDwvc3ZnOmc+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPHN2ZzpkZWZzPlxuICAgIDxzdmc6bWFya2VyIFtpZF09XCJDT05ORUNUSU9OX01BUktFUl9TVEFSVFwiIGNsYXNzPVwiY29ubmVjdGlvbi1tYXJrZXItc3RhcnRcIiBtYXJrZXJIZWlnaHQ9XCIxMFwiIG1hcmtlcldpZHRoPVwiMTBcIiByZWZZPVwiNVwiIHJlZlg9XCI1XCI+XG4gICAgICA8c3ZnOmNpcmNsZSBjeD1cIjVcIiBjeT1cIjVcIiByPVwiMlwiPjwvc3ZnOmNpcmNsZT5cbiAgICA8L3N2ZzptYXJrZXI+XG4gICAgPHN2ZzptYXJrZXIgW2lkXT1cIkNPTk5FQ1RJT05fTUFSS0VSX0VORFwiIGNsYXNzPVwiY29ubmVjdGlvbi1tYXJrZXItZW5kXCIgbWFya2VySGVpZ2h0PVwiMTBcIiBtYXJrZXJXaWR0aD1cIjEwXCIgb3JpZW50PVwiYXV0b1wiIHJlZlg9XCI1XCIgcmVmWT1cIjNcIj5cbiAgICAgIDxzdmc6cGF0aCBkPVwiTTAsMCBMNiwzIDAsNlpcIj48L3N2ZzpwYXRoPlxuICAgIDwvc3ZnOm1hcmtlcj5cbiAgICA8c3ZnOm1hcmtlciBbaWRdPVwiQ09OTkVDVElPTl9NQVJLRVJfU1RBUlRfU0VMRUNURURcIiBjbGFzcz1cImNvbm5lY3Rpb24tbWFya2VyLXN0YXJ0IGYtc2VsZWN0ZWRcIiBtYXJrZXJIZWlnaHQ9XCIxMFwiIG1hcmtlcldpZHRoPVwiMTBcIiByZWZZPVwiNVwiIHJlZlg9XCI1XCI+XG4gICAgICA8c3ZnOmNpcmNsZSBjeD1cIjVcIiBjeT1cIjVcIiByPVwiMlwiPjwvc3ZnOmNpcmNsZT5cbiAgICA8L3N2ZzptYXJrZXI+XG4gICAgPHN2ZzptYXJrZXIgW2lkXT1cIkNPTk5FQ1RJT05fTUFSS0VSX0VORF9TRUxFQ1RFRFwiIGNsYXNzPVwiY29ubmVjdGlvbi1tYXJrZXItZW5kIGYtc2VsZWN0ZWRcIiBtYXJrZXJIZWlnaHQ9XCIxMFwiIG1hcmtlcldpZHRoPVwiMTBcIiBvcmllbnQ9XCJhdXRvXCIgcmVmWD1cIjVcIiByZWZZPVwiM1wiPlxuICAgICAgPHN2ZzpwYXRoIGQ9XCJNMCwwIEw2LDMgMCw2WlwiPjwvc3ZnOnBhdGg+XG4gICAgPC9zdmc6bWFya2VyPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmQ29ubmVjdGlvbnNDb250YWluZXJcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNvbm5lY3Rpb24gb2YgZkNvbm5lY3Rpb25zQ29udGFpbmVyLmZDb25uZWN0aW9ucy50b0FycmF5KClcIj5cbiAgICAgICAgPHN2ZzptYXJrZXIgW2lkXT1cIidjb25uZWN0aW9uLW1hcmtlci1zdGFydC0nICsgY29ubmVjdGlvbi5mcm9tVG8/Lm91dHB1dD8uY29sb3JcIiBtYXJrZXJIZWlnaHQ9XCIxMFwiIG1hcmtlcldpZHRoPVwiMTBcIiByZWZZPVwiNVwiIHJlZlg9XCI1XCI+XG4gICAgICAgICAgPHN2ZzpjaXJjbGUgY3g9XCI1XCIgY3k9XCI1XCIgcj1cIjJcIiBbYXR0ci5zdHJva2VdPVwiJ25vbmUnXCIgW2F0dHIuZmlsbF09XCJjb25uZWN0aW9uLmZyb21Ubz8ub3V0cHV0Py5jb2xvclwiPjwvc3ZnOmNpcmNsZT5cbiAgICAgICAgPC9zdmc6bWFya2VyPlxuICAgICAgICA8c3ZnOm1hcmtlciBbaWRdPVwiJ2Nvbm5lY3Rpb24tbWFya2VyLWVuZC0nICsgY29ubmVjdGlvbi5mcm9tVG8/LmlucHV0Py5jb2xvclwiIG1hcmtlckhlaWdodD1cIjEwXCIgbWFya2VyV2lkdGg9XCIxMFwiIG9yaWVudD1cImF1dG9cIiByZWZYPVwiNVwiIHJlZlk9XCIzXCI+XG4gICAgICAgICAgPHN2ZzpwYXRoIGQ9XCJNMCwwIEw2LDMgMCw2WlwiIFthdHRyLnN0cm9rZV09XCInbm9uZSdcIiBbYXR0ci5maWxsXT1cImNvbm5lY3Rpb24uZnJvbVRvPy5pbnB1dD8uY29sb3JcIj48L3N2ZzpwYXRoPlxuICAgICAgICA8L3N2ZzptYXJrZXI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxzdmc6cGF0dGVybiBpZD1cImJhY2tncm91bmRcIiBoZWlnaHQ9XCIxMFwiIHdpZHRoPVwiMTBcIiBjbGFzcz1cImZiLWJhY2tncm91bmQtcGF0dGVyblwiXG4gICAgICAgICAgICAgICAgIHBhdHRlcm5Vbml0cz1cInVzZXJTcGFjZU9uVXNlXCI+XG4gICAgICA8c3ZnOmNpcmNsZSBjeD1cIjVcIiBjeT1cIjVcIiByPVwiMC41XCIvPlxuICAgIDwvc3ZnOnBhdHRlcm4+XG4gIDwvc3ZnOmRlZnM+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
@@ -20,7 +20,10 @@ export class FForeignObjectBase {
20
20
  }
21
21
  redraw() {
22
22
  const element = this.hostElement.firstChild;
23
- console.log(element);
23
+ // console.log(element.style);
24
+ // if (!element.style.display) {
25
+ // throw new Error('Foreign Object content should be with style display');
26
+ // }
24
27
  if (element && !!element.getBoundingClientRect) {
25
28
  const rect = RectExtensions.fromElement(element);
26
29
  const scale = this.transform.scale;
@@ -38,4 +41,4 @@ export class FForeignObjectBase {
38
41
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: FForeignObjectBase, decorators: [{
39
42
  type: Directive
40
43
  }], ctorParameters: function () { return [{ type: undefined }]; } });
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1mb3JlaWduLW9iamVjdC1iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9jb21wb25lbnRzL2Ytbm9kZS9mLWZvcmVpZ24tb2JqZWN0L2YtZm9yZWlnbi1vYmplY3QtYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ1UsU0FBUyxFQUFFLGNBQWMsRUFDekMsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFnQixTQUFTLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0RSxPQUFPLEVBQUUsZUFBZSxFQUFvQyxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUM7O0FBR2pHLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLElBQUksY0FBYyxDQUFxQiw0QkFBNEIsQ0FBQyxDQUFDO0FBRy9HLE1BQU0sT0FBZ0Isa0JBQWtCO0lBWXRDLFlBQ0UsV0FBaUI7UUFYWCxtQkFBYyxHQUFpQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBTW5ELGlCQUFZLEdBQWtCLElBQUksT0FBTyxFQUFRLENBQUM7UUFPdkQsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7SUFDakMsQ0FBQztJQUVNLGVBQWU7UUFDcEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQ3JCLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUNoQyxDQUFDO0lBQ0osQ0FBQztJQUVPLHdCQUF3QjtRQUM5QixPQUFPLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBeUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQzFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNkLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sTUFBTTtRQUNYLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBeUIsQ0FBQztRQUMzRCxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3JCLElBQUksT0FBTyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMscUJBQXFCLEVBQUU7WUFDOUMsTUFBTSxJQUFJLEdBQUcsY0FBYyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNqRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztZQUNuQyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsR0FBSSxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQU0sRUFBRSxDQUFDLENBQUM7WUFDbEUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsUUFBUSxFQUFFLEdBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFNLEVBQUUsQ0FBQyxDQUFDO1NBQ3JFO0lBQ0gsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3BDLENBQUM7OEdBN0NtQixrQkFBa0I7a0dBQWxCLGtCQUFrQjs7MkZBQWxCLGtCQUFrQjtrQkFEdkMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsIERpcmVjdGl2ZSwgSW5qZWN0aW9uVG9rZW4sIE9uRGVzdHJveVxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgc3RhcnRXaXRoLCBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZSZXNpemVPYnNlcnZlciwgSUhhc0hvc3RFbGVtZW50LCBJVHJhbnNmb3JtTW9kZWwsIFJlY3RFeHRlbnNpb25zIH0gZnJvbSAnQGZvYmxleC9jb3JlJztcbmltcG9ydCB7IElIYXNTdGF0ZUNoYW5nZXMgfSBmcm9tICcuLi8uLi8uLi9pLWhhcy1zdGF0ZS1jaGFuZ2VzJztcblxuZXhwb3J0IGNvbnN0IEZfRk9SRUlHTl9PQkpFQ1RfQ09NUE9ORU5UID0gbmV3IEluamVjdGlvblRva2VuPEZGb3JlaWduT2JqZWN0QmFzZT4oJ0ZfRk9SRUlHTl9PQkpFQ1RfQ09NUE9ORU5UJyk7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEZGb3JlaWduT2JqZWN0QmFzZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIElIYXNTdGF0ZUNoYW5nZXMsIElIYXNIb3N0RWxlbWVudCwgT25EZXN0cm95IHtcblxuICBwcml2YXRlIHN1YnNjcmlwdGlvbnMkOiBTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgcHVibGljIF9wYXJlbnROb2RlOiB7fSB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgYWJzdHJhY3QgaG9zdEVsZW1lbnQ6IFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50O1xuXG4gIHB1YmxpYyBzdGF0ZUNoYW5nZXM6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCB0cmFuc2Zvcm06IElUcmFuc2Zvcm1Nb2RlbDtcblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoXG4gICAgX3BhcmVudE5vZGU/OiBhbnksXG4gICkge1xuICAgIHRoaXMuX3BhcmVudE5vZGUgPSBfcGFyZW50Tm9kZTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zJC5hZGQoXG4gICAgICB0aGlzLnN1YnNjcmliZU9uUmVzaXplQ2hhbmdlcygpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgc3Vic2NyaWJlT25SZXNpemVDaGFuZ2VzKCk6IFN1YnNjcmlwdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBGUmVzaXplT2JzZXJ2ZXIodGhpcy5ob3N0RWxlbWVudC5maXJzdENoaWxkIGFzIEhUTUxFbGVtZW50KS5waXBlKHN0YXJ0V2l0aChudWxsKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMucmVkcmF3KCk7XG4gICAgICB0aGlzLnN0YXRlQ2hhbmdlcy5uZXh0KCk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgcmVkcmF3KCk6IHZvaWQge1xuICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmhvc3RFbGVtZW50LmZpcnN0Q2hpbGQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgY29uc29sZS5sb2coZWxlbWVudCk7XG4gICAgaWYgKGVsZW1lbnQgJiYgISFlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCkge1xuICAgICAgY29uc3QgcmVjdCA9IFJlY3RFeHRlbnNpb25zLmZyb21FbGVtZW50KGVsZW1lbnQpO1xuICAgICAgY29uc3Qgc2NhbGUgPSB0aGlzLnRyYW5zZm9ybS5zY2FsZTtcbiAgICAgIHRoaXMuaG9zdEVsZW1lbnQuc2V0QXR0cmlidXRlKFwid2lkdGhcIiwgYCR7IHJlY3Qud2lkdGggLyBzY2FsZSB9YCk7XG4gICAgICB0aGlzLmhvc3RFbGVtZW50LnNldEF0dHJpYnV0ZShcImhlaWdodFwiLCBgJHsgcmVjdC5oZWlnaHQgLyBzY2FsZSB9YCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zJC51bnN1YnNjcmliZSgpO1xuICB9XG59XG4iXX0=
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1mb3JlaWduLW9iamVjdC1iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9jb21wb25lbnRzL2Ytbm9kZS9mLWZvcmVpZ24tb2JqZWN0L2YtZm9yZWlnbi1vYmplY3QtYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ1UsU0FBUyxFQUFFLGNBQWMsRUFDekMsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFnQixTQUFTLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0RSxPQUFPLEVBQUUsZUFBZSxFQUFvQyxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUM7O0FBR2pHLE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLElBQUksY0FBYyxDQUFxQiw0QkFBNEIsQ0FBQyxDQUFDO0FBRy9HLE1BQU0sT0FBZ0Isa0JBQWtCO0lBWXRDLFlBQ0ksV0FBaUI7UUFYYixtQkFBYyxHQUFpQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBTW5ELGlCQUFZLEdBQWtCLElBQUksT0FBTyxFQUFRLENBQUM7UUFPdkQsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7SUFDakMsQ0FBQztJQUVNLGVBQWU7UUFDcEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQ25CLElBQUksQ0FBQyx3QkFBd0IsRUFBRSxDQUNsQyxDQUFDO0lBQ0osQ0FBQztJQUVPLHdCQUF3QjtRQUU5QixPQUFPLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBeUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQzFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNkLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sTUFBTTtRQUNYLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBeUIsQ0FBQztRQUMzRCw4QkFBOEI7UUFDOUIsZ0NBQWdDO1FBQ2hDLDRFQUE0RTtRQUM1RSxJQUFJO1FBQ0osSUFBSSxPQUFPLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRTtZQUM5QyxNQUFNLElBQUksR0FBRyxjQUFjLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2pELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDO1lBQ25DLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxHQUFJLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBTSxFQUFFLENBQUMsQ0FBQztZQUNsRSxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsR0FBSSxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQU0sRUFBRSxDQUFDLENBQUM7U0FDckU7SUFDSCxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDcEMsQ0FBQzs4R0FqRG1CLGtCQUFrQjtrR0FBbEIsa0JBQWtCOzsyRkFBbEIsa0JBQWtCO2tCQUR2QyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCwgRGlyZWN0aXZlLCBJbmplY3Rpb25Ub2tlbiwgT25EZXN0cm95XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBzdGFydFdpdGgsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRlJlc2l6ZU9ic2VydmVyLCBJSGFzSG9zdEVsZW1lbnQsIElUcmFuc2Zvcm1Nb2RlbCwgUmVjdEV4dGVuc2lvbnMgfSBmcm9tICdAZm9ibGV4L2NvcmUnO1xuaW1wb3J0IHsgSUhhc1N0YXRlQ2hhbmdlcyB9IGZyb20gJy4uLy4uLy4uL2ktaGFzLXN0YXRlLWNoYW5nZXMnO1xuXG5leHBvcnQgY29uc3QgRl9GT1JFSUdOX09CSkVDVF9DT01QT05FTlQgPSBuZXcgSW5qZWN0aW9uVG9rZW48RkZvcmVpZ25PYmplY3RCYXNlPignRl9GT1JFSUdOX09CSkVDVF9DT01QT05FTlQnKTtcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRkZvcmVpZ25PYmplY3RCYXNlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgSUhhc1N0YXRlQ2hhbmdlcywgSUhhc0hvc3RFbGVtZW50LCBPbkRlc3Ryb3kge1xuXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9ucyQ6IFN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICBwdWJsaWMgX3BhcmVudE5vZGU6IHt9IHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBob3N0RWxlbWVudDogU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQ7XG5cbiAgcHVibGljIHN0YXRlQ2hhbmdlczogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgcHVibGljIGFic3RyYWN0IHRyYW5zZm9ybTogSVRyYW5zZm9ybU1vZGVsO1xuXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihcbiAgICAgIF9wYXJlbnROb2RlPzogYW55LFxuICApIHtcbiAgICB0aGlzLl9wYXJlbnROb2RlID0gX3BhcmVudE5vZGU7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucyQuYWRkKFxuICAgICAgICB0aGlzLnN1YnNjcmliZU9uUmVzaXplQ2hhbmdlcygpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgc3Vic2NyaWJlT25SZXNpemVDaGFuZ2VzKCk6IFN1YnNjcmlwdGlvbiB7XG5cbiAgICByZXR1cm4gbmV3IEZSZXNpemVPYnNlcnZlcih0aGlzLmhvc3RFbGVtZW50LmZpcnN0Q2hpbGQgYXMgSFRNTEVsZW1lbnQpLnBpcGUoc3RhcnRXaXRoKG51bGwpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5yZWRyYXcoKTtcbiAgICAgIHRoaXMuc3RhdGVDaGFuZ2VzLm5leHQoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyByZWRyYXcoKTogdm9pZCB7XG4gICAgY29uc3QgZWxlbWVudCA9IHRoaXMuaG9zdEVsZW1lbnQuZmlyc3RDaGlsZCBhcyBIVE1MRWxlbWVudDtcbiAgICAvLyBjb25zb2xlLmxvZyhlbGVtZW50LnN0eWxlKTtcbiAgICAvLyBpZiAoIWVsZW1lbnQuc3R5bGUuZGlzcGxheSkge1xuICAgIC8vICAgdGhyb3cgbmV3IEVycm9yKCdGb3JlaWduIE9iamVjdCBjb250ZW50IHNob3VsZCBiZSB3aXRoIHN0eWxlIGRpc3BsYXknKTtcbiAgICAvLyB9XG4gICAgaWYgKGVsZW1lbnQgJiYgISFlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCkge1xuICAgICAgY29uc3QgcmVjdCA9IFJlY3RFeHRlbnNpb25zLmZyb21FbGVtZW50KGVsZW1lbnQpO1xuICAgICAgY29uc3Qgc2NhbGUgPSB0aGlzLnRyYW5zZm9ybS5zY2FsZTtcbiAgICAgIHRoaXMuaG9zdEVsZW1lbnQuc2V0QXR0cmlidXRlKFwid2lkdGhcIiwgYCR7IHJlY3Qud2lkdGggLyBzY2FsZSB9YCk7XG4gICAgICB0aGlzLmhvc3RFbGVtZW50LnNldEF0dHJpYnV0ZShcImhlaWdodFwiLCBgJHsgcmVjdC5oZWlnaHQgLyBzY2FsZSB9YCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3RhdGVDaGFuZ2VzLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zJC51bnN1YnNjcmliZSgpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,12 @@
1
+ import { EDraggableType } from '../../e-draggable-type';
2
+ export class CanvasOnPointerUpHandler {
3
+ handle(payload) {
4
+ const isDragCanvas = payload.dragHandler.draggableItems.some((x) => x.type === EDraggableType.CANVAS);
5
+ if (isDragCanvas) {
6
+ payload.dragHandler.draggableItems.forEach((x) => {
7
+ x.complete();
8
+ });
9
+ }
10
+ }
11
+ }
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FudmFzLW9uLXBvaW50ZXItdXAuaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZGlyZWN0aXZlcy9mLWRyYWdnYWJsZS9jYW52YXMvY2FudmFzLW9uLXBvaW50ZXItdXAvY2FudmFzLW9uLXBvaW50ZXItdXAuaGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFeEQsTUFBTSxPQUFPLHdCQUF3QjtJQUk1QixNQUFNLENBQUMsT0FBaUM7UUFDN0MsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUV0RyxJQUFJLFlBQVksRUFBRTtZQUNoQixPQUFPLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDL0MsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2YsQ0FBQyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElIYW5kbGVyIH0gZnJvbSAnQGZvYmxleC9jb3JlJztcbmltcG9ydCB7IENhbnZhc09uUG9pbnRlclVwUmVxdWVzdCB9IGZyb20gJy4vY2FudmFzLW9uLXBvaW50ZXItdXAucmVxdWVzdCc7XG5pbXBvcnQgeyBFRHJhZ2dhYmxlVHlwZSB9IGZyb20gJy4uLy4uL2UtZHJhZ2dhYmxlLXR5cGUnO1xuXG5leHBvcnQgY2xhc3MgQ2FudmFzT25Qb2ludGVyVXBIYW5kbGVyXG4gIGltcGxlbWVudHMgSUhhbmRsZXI8Q2FudmFzT25Qb2ludGVyVXBSZXF1ZXN0LCB2b2lkPiB7XG5cblxuICBwdWJsaWMgaGFuZGxlKHBheWxvYWQ6IENhbnZhc09uUG9pbnRlclVwUmVxdWVzdCk6IHZvaWQge1xuICAgIGNvbnN0IGlzRHJhZ0NhbnZhcyA9IHBheWxvYWQuZHJhZ0hhbmRsZXIuZHJhZ2dhYmxlSXRlbXMuc29tZSgoeCkgPT4geC50eXBlID09PSBFRHJhZ2dhYmxlVHlwZS5DQU5WQVMpO1xuXG4gICAgaWYgKGlzRHJhZ0NhbnZhcykge1xuICAgICAgcGF5bG9hZC5kcmFnSGFuZGxlci5kcmFnZ2FibGVJdGVtcy5mb3JFYWNoKCh4KSA9PiB7XG4gICAgICAgIHguY29tcGxldGUoKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -0,0 +1,6 @@
1
+ export class CanvasOnPointerUpRequest {
2
+ constructor(dragHandler) {
3
+ this.dragHandler = dragHandler;
4
+ }
5
+ }
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FudmFzLW9uLXBvaW50ZXItdXAucmVxdWVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZGlyZWN0aXZlcy9mLWRyYWdnYWJsZS9jYW52YXMvY2FudmFzLW9uLXBvaW50ZXItdXAvY2FudmFzLW9uLXBvaW50ZXItdXAucmVxdWVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sd0JBQXdCO0lBRW5DLFlBQ1MsV0FBeUI7UUFBekIsZ0JBQVcsR0FBWCxXQUFXLENBQWM7SUFFbEMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSURyYWdIYW5kbGVyIH0gZnJvbSAnLi4vLi4vaS1kcmFnLWhhbmRsZXInO1xuXG5leHBvcnQgY2xhc3MgQ2FudmFzT25Qb2ludGVyVXBSZXF1ZXN0IHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZHJhZ0hhbmRsZXI6IElEcmFnSGFuZGxlclxuICApIHtcbiAgfVxufVxuIl19
@@ -0,0 +1,3 @@
1
+ export * from './canvas-on-pointer-up.handler';
2
+ export * from './canvas-on-pointer-up.request';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2RpcmVjdGl2ZXMvZi1kcmFnZ2FibGUvY2FudmFzL2NhbnZhcy1vbi1wb2ludGVyLXVwL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyxnQ0FBZ0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY2FudmFzLW9uLXBvaW50ZXItdXAuaGFuZGxlcic7XG5leHBvcnQgKiBmcm9tICcuL2NhbnZhcy1vbi1wb2ludGVyLXVwLnJlcXVlc3QnO1xuIl19
@@ -1,3 +1,4 @@
1
1
  export * from './canvas-on-pointer-down';
2
2
  export * from './canvas-on-pointer-move';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2RpcmVjdGl2ZXMvZi1kcmFnZ2FibGUvY2FudmFzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYywwQkFBMEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY2FudmFzLW9uLXBvaW50ZXItZG93bic7XG5leHBvcnQgKiBmcm9tICcuL2NhbnZhcy1vbi1wb2ludGVyLW1vdmUnO1xuIl19
3
+ export * from './canvas-on-pointer-up';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2RpcmVjdGl2ZXMvZi1kcmFnZ2FibGUvY2FudmFzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLHdCQUF3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jYW52YXMtb24tcG9pbnRlci1kb3duJztcbmV4cG9ydCAqIGZyb20gJy4vY2FudmFzLW9uLXBvaW50ZXItbW92ZSc7XG5leHBvcnQgKiBmcm9tICcuL2NhbnZhcy1vbi1wb2ludGVyLXVwJztcbiJdfQ==
@@ -1,7 +1,7 @@
1
1
  import { IDragAndDropBase, Point } from '@foblex/core';
2
2
  import { Subscription } from 'rxjs';
3
3
  import { Directive, InjectionToken } from '@angular/core';
4
- import { CanvasOnPointerDownHandler, CanvasOnPointerDownRequest } from './canvas';
4
+ import { CanvasOnPointerDownHandler, CanvasOnPointerDownRequest, CanvasOnPointerUpHandler, CanvasOnPointerUpRequest } from './canvas';
5
5
  import { DefaultDragHandler } from './default-drag-handler';
6
6
  import { SelectionOnPointerDown, SelectionOnPointerDownRequest, SelectionOnPointerUp, SelectionOnPointerUpRequest } from './selection';
7
7
  import { ReassignConnectionOnPointerDown, ReassignConnectionOnPointerDownRequest, ReassignConnectionOnPointerUp, ReassignConnectionOnPointerUpRequest } from './connections';
@@ -88,6 +88,7 @@ export class FDraggableBase extends IDragAndDropBase {
88
88
  new CreateConnectionOnPointerUp(this.fFlow, this.onCreateConnection).handle(new CreateConnectionOnPointerUpRequest(event, this.dragHandler));
89
89
  new NodeOnPointerUp(this.fLineAlignment, this.fConnectIfIntersect, this.hostElement).handle(new NodeOnPointerUpRequest(event, this.dragHandler));
90
90
  this.selectedItems = new SelectionOnPointerUp(this.hostElement).handle(new SelectionOnPointerUpRequest(event, this.dragHandler, this.selectedItems));
91
+ new CanvasOnPointerUpHandler().handle(new CanvasOnPointerUpRequest(this.dragHandler));
91
92
  new ExternalItemOnPointerUpHandler(this.fFlow, this.onCreateNode).handle(new ExternalItemOnPointerUpRequest(event, this.dragHandler));
92
93
  }
93
94
  ngOnDestroy() {
@@ -100,4 +101,4 @@ export class FDraggableBase extends IDragAndDropBase {
100
101
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: FDraggableBase, decorators: [{
101
102
  type: Directive
102
103
  }], ctorParameters: function () { return [{ type: i1.FFlowBase }, { type: i2.FDraggableService }, { type: i3.FExternalItemService }, { type: i0.ElementRef }, { type: i0.NgZone }]; } });
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1kcmFnZ2FibGUtYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZGlyZWN0aXZlcy9mLWRyYWdnYWJsZS9mLWRyYWdnYWJsZS1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxnQkFBZ0IsRUFBbUQsS0FBSyxFQUN6RSxNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BDLE9BQU8sRUFBaUIsU0FBUyxFQUE0QixjQUFjLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBSXRILE9BQU8sRUFBRSwwQkFBMEIsRUFBRSwwQkFBMEIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUVsRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQ0wsc0JBQXNCLEVBQ3RCLDZCQUE2QixFQUM3QixvQkFBb0IsRUFDcEIsMkJBQTJCLEVBQzVCLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFDb0IsK0JBQStCLEVBQ3hELHNDQUFzQyxFQUFFLDZCQUE2QixFQUFFLG9DQUFvQyxFQUM1RyxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsd0JBQXdCLEVBQUUsZUFBZSxFQUFFLHNCQUFzQixFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQzlHLE9BQU8sRUFDa0IsNkJBQTZCLEVBQ3BELG9DQUFvQyxFQUFFLDJCQUEyQixFQUFFLGtDQUFrQyxFQUN0RyxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFNcEQsT0FBTyxFQUVMLGdDQUFnQyxFQUNoQyxnQ0FBZ0MsRUFDaEMsOEJBQThCLEVBQUUsOEJBQThCLEVBQy9ELE1BQU0saUJBQWlCLENBQUM7Ozs7O0FBR3pCLE1BQU0sQ0FBQyxNQUFNLGVB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MkIsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLE1BQU0sQ0FDdkUsSUFBSSxrQ0FBa0MsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUNsRSxDQUFDO1FBRUYsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLE1BQU0sQ0FDdkYsSUFBSSxzQkFBc0IsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUN0RCxDQUFDO1FBRUYsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLG9CQUFvQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxNQUFNLENBQ2xFLElBQUksMkJBQTJCLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUMvRSxDQUFDO1FBRUYsSUFBSSw4QkFBOEIsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxNQUFNLENBQ3BFLElBQUksOEJBQThCLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FDOUQsQ0FBQztJQUNKLENBQUM7SUFFTSxXQUFXO1FBQ2hCLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3BDLENBQUM7OEdBdEptQixjQUFjO2tHQUFkLGNBQWM7OzJGQUFkLGNBQWM7a0JBRG5DLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBJRHJhZ0FuZERyb3BCYXNlLCBJSGFzSG9zdEVsZW1lbnQsIElQb2ludGVyRXZlbnQsIElUcmFuc2Zvcm1Nb2RlbCwgUG9pbnRcbn0gZnJvbSAnQGZvYmxleC9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEluamVjdGlvblRva2VuLCBOZ1pvbmUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRkl0ZW1zQ29udGFpbmVyQmFzZSB9IGZyb20gJy4uL2YtY29udGFpbmVycyc7XG5pbXBvcnQgeyBGQmFja2dyb3VuZEJhc2UgfSBmcm9tICcuLi8uLi9pbnRlcm5hbCc7XG5pbXBvcnQgeyBGRmxvd0Jhc2UgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzJztcbmltcG9ydCB7IENhbnZhc09uUG9pbnRlckRvd25IYW5kbGVyLCBDYW52YXNPblBvaW50ZXJEb3duUmVxdWVzdCB9IGZyb20gJy4vY2FudmFzJztcbmltcG9ydCB7IElEcmFnSGFuZGxlciB9IGZyb20gJy4vaS1kcmFnLWhhbmRsZXInO1xuaW1wb3J0IHsgRGVmYXVsdERyYWdIYW5kbGVyIH0gZnJvbSAnLi9kZWZhdWx0LWRyYWctaGFuZGxlcic7XG5pbXBvcnQge1xuICBTZWxlY3Rpb25PblBvaW50ZXJEb3duLFxuICBTZWxlY3Rpb25PblBvaW50ZXJEb3duUmVxdWVzdCxcbiAgU2VsZWN0aW9uT25Qb2ludGVyVXAsXG4gIFNlbGVjdGlvbk9uUG9pbnRlclVwUmVxdWVzdFxufSBmcm9tICcuL3NlbGVjdGlvbic7XG5pbXBvcnQge1xuICBSZWFzc2lnbkNvbm5lY3Rpb25FdmVudCwgUmVhc3NpZ25Db25uZWN0aW9uT25Qb2ludGVyRG93bixcbiAgUmVhc3NpZ25Db25uZWN0aW9uT25Qb2ludGVyRG93blJlcXVlc3QsIFJlYXNzaWduQ29ubmVjdGlvbk9uUG9pbnRlclVwLCBSZWFzc2lnbkNvbm5lY3Rpb25PblBvaW50ZXJVcFJlcXVlc3Rcbn0gZnJvbSAnLi9jb25uZWN0aW9ucyc7XG5pbXBvcnQgeyBOb2RlT25Qb2ludGVyRG93biwgTm9kZU9uUG9pbnRlckRvd25SZXF1ZXN0LCBOb2RlT25Qb2ludGVyVXAsIE5vZGVPblBvaW50ZXJVcFJlcXVlc3QgfSBmcm9tICcuL25vZGUnO1xuaW1wb3J0IHtcbiAgQ3JlYXRlQ29ubmVjdGlvbkV2ZW50LCBDcmVhdGVDb25uZWN0aW9uT25Qb2ludGVyRG93bixcbiAgQ3JlYXRlQ29ubmVjdGlvbk9uUG9pbnRlckRvd25SZXF1ZXN0LCBDcmVhdGVDb25uZWN0aW9uT25Qb2ludGVyVXAsIENyZWF0ZUNvbm5lY3Rpb25PblBvaW50ZXJVcFJlcXVlc3Rcbn0gZnJvbSAnLi9jb25uZWN0aW9ucyc7XG5pbXBvcnQgeyBFRHJhZ2dhYmxlVHlwZSB9IGZyb20gJy4vZS1kcmFnZ2FibGUtdHlwZSc7XG5pbXBvcnQgeyBGQ29ubmVjdElmSW50ZXJzZWN0QmFzZSB9IGZyb20gJy4uL2YtY29ubmVjdC1pZi1pbnRlcnNlY3QnO1xuaW1wb3J0IHsgRkxpbmVBbGlnbm1lbnREaXJlY3RpdmUgfSBmcm9tICcuLi9mLWxpbmUtYWxpZ25tZW50JztcbmltcG9ydCB7IElTZWxlY3RhYmxlIH0gZnJvbSAnLi4vLi4vaS1zZWxlY3RhYmxlJztcbmltcG9ydCB7IEZFeHRlcm5hbEl0ZW1TZXJ2aWNlIH0gZnJvbSAnLi4vZi1leHRlcm5hbC1pdGVtJztcbmltcG9ydCB7IEZEcmFnZ2FibGVTZXJ2aWNlIH0gZnJvbSAnLi9mLWRyYWdnYWJsZS5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIENyZWF0ZU5vZGVFdmVudCxcbiAgRXh0ZXJuYWxJdGVtT25Qb2ludGVyRG93bkhhbmRsZXIsXG4gIEV4dGVybmFsSXRlbU9uUG9pbnRlckRvd25SZXF1ZXN0LFxuICBFeHRlcm5hbEl0ZW1PblBvaW50ZXJVcEhhbmRsZXIsIEV4dGVybmFsSXRlbU9uUG9pbnRlclVwUmVxdWVzdFxufSBmcm9tICcuL2V4dGVybmFsLWl0ZW0nO1xuaW1wb3J0IHsgRlNlbGVjdGlvbkRpcmVjdGl2ZSB9IGZyb20gJy4uL2Ytc2VsZWN0aW9uJztcblxuZXhwb3J0IGNvbnN0IEZfRE5EX0RJUkVDVElWRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxGRHJhZ2dhYmxlQmFzZT4oJ0ZfRE5EX0RJUkVDVElWRScpO1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBGRHJhZ2dhYmxlQmFzZSBleHRlbmRzIElEcmFnQW5kRHJvcEJhc2UgaW1wbGVtZW50cyBJSGFzSG9zdEVsZW1lbnQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG5cbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zJDogU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIHB1YmxpYyBnZXQgaG9zdEVsZW1lbnQoKTogU1ZHU1ZHRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudFJlZmVyZW5jZS5uYXRpdmVFbGVtZW50O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgdHJhbnNmb3JtKCk6IElUcmFuc2Zvcm1Nb2RlbCB7XG4gICAgcmV0dXJuIHRoaXMuZkl0ZW1zQ29udGFpbmVyLnRyYW5zZm9ybTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IGZJdGVtc0NvbnRhaW5lcigpOiBGSXRlbXNDb250YWluZXJCYXNlIHtcbiAgICByZXR1cm4gdGhpcy5mRmxvdy5mSXRlbXNDb250YWluZXI7XG4gIH1cblxuICBwcml2YXRlIGdldCBmQmFja2dyb3VuZCgpOiBGQmFja2dyb3VuZEJhc2Uge1xuICAgIHJldHVybiB0aGlzLmZGbG93LmZCYWNrZ3JvdW5kO1xuICB9XG5cbiAgcHJpdmF0ZSBkcmFnSGFuZGxlcjogSURyYWdIYW5kbGVyID0gbmV3IERlZmF1bHREcmFnSGFuZGxlcigpLmhhbmRsZSgpO1xuXG4gIHByaXZhdGUgZHJhZ1NlbGVjdGlvbiE6IFNlbGVjdGlvbk9uUG9pbnRlckRvd247XG4gIHByaXZhdGUgcmVhc3NpZ25Db25uZWN0aW9uITogUmVhc3NpZ25Db25uZWN0aW9uT25Qb2ludGVyRG93bjtcbiAgcHJpdmF0ZSBkcmFnQ2FudmFzITogQ2FudmFzT25Qb2ludGVyRG93bkhhbmRsZXI7XG4gIHByaXZhdGUgZHJhZ05vZGUhOiBOb2RlT25Qb2ludGVyRG93bjtcbiAgcHJpdmF0ZSBjcmVhdGVDb25uZWN0aW9uITogQ3JlYXRlQ29ubmVjdGlvbk9uUG9pbnRlckRvd247XG4gIHByaXZhdGUgZHJhZ0V4dGVybmFsSXRlbSE6IEV4dGVybmFsSXRlbU9uUG9pbnRlckRvd25IYW5kbGVyO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBvbkNyZWF0ZUNvbm5lY3Rpb246IEV2ZW50RW1pdHRlcjxDcmVhdGVDb25uZWN0aW9uRXZlbnQ+O1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBvblJlYXNzaWduQ29ubmVjdGlvbjogRXZlbnRFbWl0dGVyPFJlYXNzaWduQ29ubmVjdGlvbkV2ZW50PjtcblxuICBwdWJsaWMgYWJzdHJhY3Qgb25DcmVhdGVOb2RlOiBFdmVudEVtaXR0ZXI8Q3JlYXRlTm9kZUV2ZW50PjtcblxuICBwdWJsaWMgYWJzdHJhY3QgZkxpbmVBbGlnbm1lbnQ6IEZMaW5lQWxpZ25tZW50RGlyZWN0aXZlIHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmQ29ubmVjdElmSW50ZXJzZWN0OiBGQ29ubmVjdElmSW50ZXJzZWN0QmFzZSB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgYWJzdHJhY3QgZlNlbGVjdGlvbjogRlNlbGVjdGlvbkRpcmVjdGl2ZSB8IHVuZGVmaW5lZDtcblxuICBwcml2YXRlIHNlbGVjdGVkSXRlbXM6IElTZWxlY3RhYmxlW10gPSBbXTtcblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoXG4gICAgICBwcm90ZWN0ZWQgZkZsb3c6IEZGbG93QmFzZSxcbiAgICAgIHByb3RlY3RlZCBmRE5EU2VydmljZTogRkRyYWdnYWJsZVNlcnZpY2UsXG4gICAgICBwcm90ZWN0ZWQgZkV4dGVybmFsSXRlbVNlcnZpY2U6IEZFeHRlcm5hbEl0ZW1TZXJ2aWNlLFxuICAgICAgcHJpdmF0ZSBlbGVtZW50UmVmZXJlbmNlOiBFbGVtZW50UmVmPFNWR1NWR0VsZW1lbnQ+LFxuICAgICAgbmdab25lOiBOZ1pvbmUsXG4gICkge1xuICAgIHN1cGVyKG5nWm9uZSk7XG4gICAgdGhpcy5mRE5EU2VydmljZS5zZXRGbG93KHRoaXMuZkZsb3cpO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBzdXBlci5zdWJzY3JpYmUoZG9jdW1lbnQpO1xuXG4gICAgdGhpcy5kcmFnU2VsZWN0aW9uID0gbmV3IFNlbGVjdGlvbk9uUG9pbnRlckRvd24odGhpcy5mRmxvdywgdGhpcy5mU2VsZWN0aW9uLCB0aGlzLmhvc3RFbGVtZW50KTtcbiAgICB0aGlzLnJlYXNzaWduQ29ubmVjdGlvbiA9IG5ldyBSZWFzc2lnbkNvbm5lY3Rpb25PblBvaW50ZXJEb3duKHRoaXMuZkZsb3csIHRoaXMuaG9zdEVsZW1lbnQpO1xuICAgIHRoaXMuZHJhZ0NhbnZhcyA9IG5ldyBDYW52YXNPblBvaW50ZXJEb3duSGFuZGxlcih0aGlzLmZCYWNrZ3JvdW5kLCB0aGlzLmZJdGVtc0NvbnRhaW5lciwgdGhpcy5ob3N0RWxlbWVudCk7XG4gICAgdGhpcy5kcmFnTm9kZSA9IG5ldyBOb2RlT25Qb2ludGVyRG93bih0aGlzLmZMaW5lQWxpZ25tZW50LCB0aGlzLmZGbG93LCB0aGlzLmhvc3RFbGVtZW50KTtcbiAgICB0aGlzLmNyZWF0ZUNvbm5lY3Rpb24gPSBuZXcgQ3JlYXRlQ29ubmVjdGlvbk9uUG9pbnRlckRvd24odGhpcy5mRmxvdywgdGhpcy5ob3N0RWxlbWVudCk7XG4gICAgdGhpcy5kcmFnRXh0ZXJuYWxJdGVtID0gbmV3IEV4dGVybmFsSXRlbU9uUG9pbnRlckRvd25IYW5kbGVyKHRoaXMuZkV4dGVybmFsSXRlbVNlcnZpY2UsIHRoaXMuaG9zdEVsZW1lbnQpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIG9uUG9pbnRlckRvd24oZXZlbnQ6IElQb2ludGVyRXZlbnQpOiBib29sZWFuIHtcbiAgICBsZXQgcmVzdWx0OiBib29sZWFuID0gZXZlbnQuaXNNb3VzZUxlZnRCdXR0b24oKTtcbiAgICBjb25zdCBzZWxlY3Rpb24gPSB0aGlzLmRyYWdTZWxlY3Rpb24uaGFuZGxlKFxuICAgICAgICBuZXcgU2VsZWN0aW9uT25Qb2ludGVyRG93blJlcXVlc3QoZXZlbnQsIHRoaXMudHJhbnNmb3JtLCB0aGlzLnNlbGVjdGVkSXRlbXMpXG4gICAgKTtcbiAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSBzZWxlY3Rpb24uc2VsZWN0ZWRJdGVtcyB8fCBbXTtcblxuICAgIGNvbnN0IHJlYXNzaWduQ29ubmVjdGlvbiA9IHRoaXMucmVhc3NpZ25Db25uZWN0aW9uLmhhbmRsZShcbiAgICAgICAgbmV3IFJlYXNzaWduQ29ubmVjdGlvbk9uUG9pbnRlckRvd25SZXF1ZXN0KGV2ZW50LCB0aGlzLnRyYW5zZm9ybSlcbiAgICApO1xuXG4gICAgY29uc3QgY3JlYXRlQ29ubmVjdGlvbiA9IHRoaXMuY3JlYXRlQ29ubmVjdGlvbi5oYW5kbGUoXG4gICAgICAgIG5ldyBDcmVhdGVDb25uZWN0aW9uT25Qb2ludGVyRG93blJlcXVlc3QoZXZlbnQsIHRoaXMudHJhbnNmb3JtKVxuICAgICk7XG5cbiAgICBjb25zdCBkcmFnTm9kZSA9IHRoaXMuZHJhZ05vZGUuaGFuZGxlKFxuICAgICAgICBuZXcgTm9kZU9uUG9pbnRlckRvd25SZXF1ZXN0KGV2ZW50LCB0aGlzLnRyYW5zZm9ybSwgdGhpcy5zZWxlY3RlZEl0ZW1zKVxuICAgICk7XG5cbiAgICBjb25zdCBkcmFnQ2FudmFzID0gdGhpcy5kcmFnQ2FudmFzLmhhbmRsZShcbiAgICAgICAgbmV3IENhbnZhc09uUG9pbnRlckRvd25SZXF1ZXN0KGV2ZW50KVxuICAgICk7XG5cbiAgICBjb25zdCBkcmFnRXh0ZXJuYWxJdGVtID0gdGhpcy5kcmFnRXh0ZXJuYWxJdGVtLmhhbmRsZShcbiAgICAgICAgbmV3IEV4dGVybmFsSXRlbU9uUG9pbnRlckRvd25SZXF1ZXN0KGV2ZW50KVxuICAgICk7XG5cbiAgICBjb25zdCBkcmFnU2VsZWN0aW9uID0gc2VsZWN0aW9uLmRyYWdnYWJsZUl0ZW1zLmxlbmd0aCA/IHNlbGVjdGlvbiA6IHVuZGVmaW5lZDtcblxuICAgIGNvbnN0IGRyYWdIYW5kbGUgPSBkcmFnU2VsZWN0aW9uIHx8IHJlYXNzaWduQ29ubmVjdGlvbiB8fCBjcmVhdGVDb25uZWN0aW9uIHx8IGRyYWdOb2RlIHx8IGRyYWdDYW52YXMgfHwgZHJhZ0V4dGVybmFsSXRlbTtcbiAgICBpZiAoIWRyYWdIYW5kbGUpIHtcbiAgICAgIHRoaXMuZHJhZ0hhbmRsZXIgPSBuZXcgRGVmYXVsdERyYWdIYW5kbGVyKCkuaGFuZGxlKCk7XG4gICAgICByZXN1bHQgPSBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kcmFnSGFuZGxlciA9IGRyYWdIYW5kbGU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBwcmVwYXJlRHJhZ1NlcXVlbmNlKGV2ZW50OiBJUG9pbnRlckV2ZW50KSB7XG4gICAgY29uc3QgaXNEcmFnTm9kZXMgPSB0aGlzLmRyYWdIYW5kbGVyLmRyYWdnYWJsZUl0ZW1zLnNvbWUoKHgpID0+IHgudHlwZSA9PT0gRURyYWdnYWJsZVR5cGUuTk9ERSk7XG4gICAgaWYgKGlzRHJhZ05vZGVzKSB7XG4gICAgICB0aGlzLmRyYWdIYW5kbGVyID0gdGhpcy5kcmFnTm9kZS5oYW5kbGUoXG4gICAgICAgICAgbmV3IE5vZGVPblBvaW50ZXJEb3duUmVxdWVzdChldmVudCwgdGhpcy50cmFuc2Zvcm0sIHRoaXMuc2VsZWN0ZWRJdGVtcywgdHJ1ZSlcbiAgICAgICkhO1xuICAgIH1cbiAgICB0aGlzLmRyYWdIYW5kbGVyLmRyYWdnYWJsZUl0ZW1zLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgIGl0ZW0uaW5pdGlhbGl6ZSgpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIG9uUG9pbnRlck1vdmUoZXZlbnQ6IElQb2ludGVyRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBwb2ludGVyUG9zaXRpb25JbkNhbnZhcyA9IFBvaW50LmZyb21Qb2ludChldmVudC5nZXRQb3NpdGlvbigpKS5tYXRyaXhUcmFuc2Zvcm0odGhpcy5ob3N0RWxlbWVudCk7XG4gICAgY29uc3QgZGlmZmVyZW5jZSA9IHBvaW50ZXJQb3NpdGlvbkluQ2FudmFzLmRpdih0aGlzLmRyYWdIYW5kbGVyLm9uUG9pbnRlckRvd25TY2FsZSkuc3ViKHRoaXMuZHJhZ0hhbmRsZXIub25Qb2ludGVyRG93blBvc2l0aW9uKTtcbiAgICB0aGlzLmRyYWdIYW5kbGVyLmRyYWdnYWJsZUl0ZW1zLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgIGl0ZW0ubW92ZShkaWZmZXJlbmNlKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBvblBvaW50ZXJVcChldmVudDogSVBvaW50ZXJFdmVudCk6IHZvaWQge1xuICAgIG5ldyBSZWFzc2lnbkNvbm5lY3Rpb25PblBvaW50ZXJVcCh0aGlzLmZGbG93LCB0aGlzLm9uUmVhc3NpZ25Db25uZWN0aW9uKS5oYW5kbGUoXG4gICAgICAgIG5ldyBSZWFzc2lnbkNvbm5lY3Rpb25PblBvaW50ZXJVcFJlcXVlc3QoZXZlbnQsIHRoaXMuZHJhZ0hhbmRsZXIpXG4gICAgKTtcblxuICAgIG5ldyBDcmVhdGVDb25uZWN0aW9uT25Qb2ludGVyVXAodGhpcy5mRmxvdywgdGhpcy5vbkNyZWF0ZUNvbm5lY3Rpb24pLmhhbmRsZShcbiAgICAgICAgbmV3IENyZWF0ZUNvbm5lY3Rpb25PblBvaW50ZXJVcFJlcXVlc3QoZXZlbnQsIHRoaXMuZHJhZ0hhbmRsZXIpXG4gICAgKTtcblxuICAgIG5ldyBOb2RlT25Qb2ludGVyVXAodGhpcy5mTGluZUFsaWdubWVudCwgdGhpcy5mQ29ubmVjdElmSW50ZXJzZWN0LCB0aGlzLmhvc3RFbGVtZW50KS5oYW5kbGUoXG4gICAgICAgIG5ldyBOb2RlT25Qb2ludGVyVXBSZXF1ZXN0KGV2ZW50LCB0aGlzLmRyYWdIYW5kbGVyKVxuICAgICk7XG5cbiAgICB0aGlzLnNlbGVjdGVkSXRlbXMgPSBuZXcgU2VsZWN0aW9uT25Qb2ludGVyVXAodGhpcy5ob3N0RWxlbWVudCkuaGFuZGxlKFxuICAgICAgICBuZXcgU2VsZWN0aW9uT25Qb2ludGVyVXBSZXF1ZXN0KGV2ZW50LCB0aGlzLmRyYWdIYW5kbGVyLCB0aGlzLnNlbGVjdGVkSXRlbXMpXG4gICAgKTtcblxuICAgIG5ldyBFeHRlcm5hbEl0ZW1PblBvaW50ZXJVcEhhbmRsZXIodGhpcy5mRmxvdywgdGhpcy5vbkNyZWF0ZU5vZGUpLmhhbmRsZShcbiAgICAgICAgbmV3IEV4dGVybmFsSXRlbU9uUG9pbnRlclVwUmVxdWVzdChldmVudCwgdGhpcy5kcmFnSGFuZGxlcilcbiAgICApO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHN1cGVyLnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zJC51bnN1YnNjcmliZSgpO1xuICB9XG59XG4iXX0=
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1kcmFnZ2FibGUtYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZGlyZWN0aXZlcy9mLWRyYWdnYWJsZS9mLWRyYWdnYWJsZS1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxnQkFBZ0IsRUFBbUQsS0FBSyxFQUN6RSxNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BDLE9BQU8sRUFBaUIsU0FBUyxFQUE0QixjQUFjLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBSXRILE9BQU8sRUFDTCwwQkFBMEIsRUFDMUIsMEJBQTBCLEVBQzFCLHdCQUF3QixFQUN4Qix3QkFBd0IsRUFDekIsTUFBTSxVQUFVLENBQUM7QUFFbEIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUQsT0FBTyxFQUNMLHNCQUFzQixFQUN0Qiw2QkFBNkIsRUFDN0Isb0JBQW9CLEVBQ3BCLDJCQUEyQixFQUM1QixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQ29CLCtCQUErQixFQUN4RCxzQ0FBc0MsRUFBRSw2QkFBNkIsRUFBRSxvQ0FBb0MsRUFDNUcsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLHdCQUF3QixFQUFFLGVBQWUsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUM5RyxPQUFPLEVBQ2tCLDZCQUE2QixFQUNwRCxvQ0FBb0MsRUFBRSwyQkFBMkIsRUFBRSxrQ0FBa0MsRUFDdEcsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBTXBELE9BQU8sRUFFTCxnQ0FBZ0MsRUFDaEMsZ0NBQWdDLEVBQ2hDLDhCQUE4QixFQUFFLDhCQUE4QixFQUMvRCxNQUFNLGlCQUFpQixDQUFD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bnQsIElQb2ludGVyRXZlbnQsIElUcmFuc2Zvcm1Nb2RlbCwgUG9pbnRcbn0gZnJvbSAnQGZvYmxleC9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEluamVjdGlvblRva2VuLCBOZ1pvbmUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRkl0ZW1zQ29udGFpbmVyQmFzZSB9IGZyb20gJy4uL2YtY29udGFpbmVycyc7XG5pbXBvcnQgeyBGQmFja2dyb3VuZEJhc2UgfSBmcm9tICcuLi8uLi9pbnRlcm5hbCc7XG5pbXBvcnQgeyBGRmxvd0Jhc2UgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzJztcbmltcG9ydCB7XG4gIENhbnZhc09uUG9pbnRlckRvd25IYW5kbGVyLFxuICBDYW52YXNPblBvaW50ZXJEb3duUmVxdWVzdCxcbiAgQ2FudmFzT25Qb2ludGVyVXBIYW5kbGVyLFxuICBDYW52YXNPblBvaW50ZXJVcFJlcXVlc3Rcbn0gZnJvbSAnLi9jYW52YXMnO1xuaW1wb3J0IHsgSURyYWdIYW5kbGVyIH0gZnJvbSAnLi9pLWRyYWctaGFuZGxlcic7XG5pbXBvcnQgeyBEZWZhdWx0RHJhZ0hhbmRsZXIgfSBmcm9tICcuL2RlZmF1bHQtZHJhZy1oYW5kbGVyJztcbmltcG9ydCB7XG4gIFNlbGVjdGlvbk9uUG9pbnRlckRvd24sXG4gIFNlbGVjdGlvbk9uUG9pbnRlckRvd25SZXF1ZXN0LFxuICBTZWxlY3Rpb25PblBvaW50ZXJVcCxcbiAgU2VsZWN0aW9uT25Qb2ludGVyVXBSZXF1ZXN0XG59IGZyb20gJy4vc2VsZWN0aW9uJztcbmltcG9ydCB7XG4gIFJlYXNzaWduQ29ubmVjdGlvbkV2ZW50LCBSZWFzc2lnbkNvbm5lY3Rpb25PblBvaW50ZXJEb3duLFxuICBSZWFzc2lnbkNvbm5lY3Rpb25PblBvaW50ZXJEb3duUmVxdWVzdCwgUmVhc3NpZ25Db25uZWN0aW9uT25Qb2ludGVyVXAsIFJlYXNzaWduQ29ubmVjdGlvbk9uUG9pbnRlclVwUmVxdWVzdFxufSBmcm9tICcuL2Nvbm5lY3Rpb25zJztcbmltcG9ydCB7IE5vZGVPblBvaW50ZXJEb3duLCBOb2RlT25Qb2ludGVyRG93blJlcXVlc3QsIE5vZGVPblBvaW50ZXJVcCwgTm9kZU9uUG9pbnRlclVwUmVxdWVzdCB9IGZyb20gJy4vbm9kZSc7XG5pbXBvcnQge1xuICBDcmVhdGVDb25uZWN0aW9uRXZlbnQsIENyZWF0ZUNvbm5lY3Rpb25PblBvaW50ZXJEb3duLFxuICBDcmVhdGVDb25uZWN0aW9uT25Qb2ludGVyRG93blJlcXVlc3QsIENyZWF0ZUNvbm5lY3Rpb25PblBvaW50ZXJVcCwgQ3JlYXRlQ29ubmVjdGlvbk9uUG9pbnRlclVwUmVxdWVzdFxufSBmcm9tICcuL2Nvbm5lY3Rpb25zJztcbmltcG9ydCB7IEVEcmFnZ2FibGVUeXBlIH0gZnJvbSAnLi9lLWRyYWdnYWJsZS10eXBlJztcbmltcG9ydCB7IEZDb25uZWN0SWZJbnRlcnNlY3RCYXNlIH0gZnJvbSAnLi4vZi1jb25uZWN0LWlmLWludGVyc2VjdCc7XG5pbXBvcnQgeyBGTGluZUFsaWdubWVudERpcmVjdGl2ZSB9IGZyb20gJy4uL2YtbGluZS1hbGlnbm1lbnQnO1xuaW1wb3J0IHsgSVNlbGVjdGFibGUgfSBmcm9tICcuLi8uLi9pLXNlbGVjdGFibGUnO1xuaW1wb3J0IHsgRkV4dGVybmFsSXRlbVNlcnZpY2UgfSBmcm9tICcuLi9mLWV4dGVybmFsLWl0ZW0nO1xuaW1wb3J0IHsgRkRyYWdnYWJsZVNlcnZpY2UgfSBmcm9tICcuL2YtZHJhZ2dhYmxlLnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgQ3JlYXRlTm9kZUV2ZW50LFxuICBFeHRlcm5hbEl0ZW1PblBvaW50ZXJEb3duSGFuZGxlcixcbiAgRXh0ZXJuYWxJdGVtT25Qb2ludGVyRG93blJlcXVlc3QsXG4gIEV4dGVybmFsSXRlbU9uUG9pbnRlclVwSGFuZGxlciwgRXh0ZXJuYWxJdGVtT25Qb2ludGVyVXBSZXF1ZXN0XG59IGZyb20gJy4vZXh0ZXJuYWwtaXRlbSc7XG5pbXBvcnQgeyBGU2VsZWN0aW9uRGlyZWN0aXZlIH0gZnJvbSAnLi4vZi1zZWxlY3Rpb24nO1xuXG5leHBvcnQgY29uc3QgRl9ETkRfRElSRUNUSVZFID0gbmV3IEluamVjdGlvblRva2VuPEZEcmFnZ2FibGVCYXNlPignRl9ETkRfRElSRUNUSVZFJyk7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEZEcmFnZ2FibGVCYXNlIGV4dGVuZHMgSURyYWdBbmREcm9wQmFzZSBpbXBsZW1lbnRzIElIYXNIb3N0RWxlbWVudCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcblxuICBwcml2YXRlIHN1YnNjcmlwdGlvbnMkOiBTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgcHVibGljIGdldCBob3N0RWxlbWVudCgpOiBTVkdTVkdFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmZXJlbmNlLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICBwcml2YXRlIGdldCB0cmFuc2Zvcm0oKTogSVRyYW5zZm9ybU1vZGVsIHtcbiAgICByZXR1cm4gdGhpcy5mSXRlbXNDb250YWluZXIudHJhbnNmb3JtO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgZkl0ZW1zQ29udGFpbmVyKCk6IEZJdGVtc0NvbnRhaW5lckJhc2Uge1xuICAgIHJldHVybiB0aGlzLmZGbG93LmZJdGVtc0NvbnRhaW5lcjtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IGZCYWNrZ3JvdW5kKCk6IEZCYWNrZ3JvdW5kQmFzZSB7XG4gICAgcmV0dXJuIHRoaXMuZkZsb3cuZkJhY2tncm91bmQ7XG4gIH1cblxuICBwcml2YXRlIGRyYWdIYW5kbGVyOiBJRHJhZ0hhbmRsZXIgPSBuZXcgRGVmYXVsdERyYWdIYW5kbGVyKCkuaGFuZGxlKCk7XG5cbiAgcHJpdmF0ZSBkcmFnU2VsZWN0aW9uITogU2VsZWN0aW9uT25Qb2ludGVyRG93bjtcbiAgcHJpdmF0ZSByZWFzc2lnbkNvbm5lY3Rpb24hOiBSZWFzc2lnbkNvbm5lY3Rpb25PblBvaW50ZXJEb3duO1xuICBwcml2YXRlIGRyYWdDYW52YXMhOiBDYW52YXNPblBvaW50ZXJEb3duSGFuZGxlcjtcbiAgcHJpdmF0ZSBkcmFnTm9kZSE6IE5vZGVPblBvaW50ZXJEb3duO1xuICBwcml2YXRlIGNyZWF0ZUNvbm5lY3Rpb24hOiBDcmVhdGVDb25uZWN0aW9uT25Qb2ludGVyRG93bjtcbiAgcHJpdmF0ZSBkcmFnRXh0ZXJuYWxJdGVtITogRXh0ZXJuYWxJdGVtT25Qb2ludGVyRG93bkhhbmRsZXI7XG5cbiAgcHVibGljIGFic3RyYWN0IG9uQ3JlYXRlQ29ubmVjdGlvbjogRXZlbnRFbWl0dGVyPENyZWF0ZUNvbm5lY3Rpb25FdmVudD47XG5cbiAgcHVibGljIGFic3RyYWN0IG9uUmVhc3NpZ25Db25uZWN0aW9uOiBFdmVudEVtaXR0ZXI8UmVhc3NpZ25Db25uZWN0aW9uRXZlbnQ+O1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBvbkNyZWF0ZU5vZGU6IEV2ZW50RW1pdHRlcjxDcmVhdGVOb2RlRXZlbnQ+O1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmTGluZUFsaWdubWVudDogRkxpbmVBbGlnbm1lbnREaXJlY3RpdmUgfCB1bmRlZmluZWQ7XG5cbiAgcHVibGljIGFic3RyYWN0IGZDb25uZWN0SWZJbnRlcnNlY3Q6IEZDb25uZWN0SWZJbnRlcnNlY3RCYXNlIHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmU2VsZWN0aW9uOiBGU2VsZWN0aW9uRGlyZWN0aXZlIHwgdW5kZWZpbmVkO1xuXG4gIHByaXZhdGUgc2VsZWN0ZWRJdGVtczogSVNlbGVjdGFibGVbXSA9IFtdO1xuXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihcbiAgICAgIHByb3RlY3RlZCBmRmxvdzogRkZsb3dCYXNlLFxuICAgICAgcHJvdGVjdGVkIGZETkRTZXJ2aWNlOiBGRHJhZ2dhYmxlU2VydmljZSxcbiAgICAgIHByb3RlY3RlZCBmRXh0ZXJuYWxJdGVtU2VydmljZTogRkV4dGVybmFsSXRlbVNlcnZpY2UsXG4gICAgICBwcml2YXRlIGVsZW1lbnRSZWZlcmVuY2U6IEVsZW1lbnRSZWY8U1ZHU1ZHRWxlbWVudD4sXG4gICAgICBuZ1pvbmU6IE5nWm9uZSxcbiAgKSB7XG4gICAgc3VwZXIobmdab25lKTtcbiAgICB0aGlzLmZETkRTZXJ2aWNlLnNldEZsb3codGhpcy5mRmxvdyk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHN1cGVyLnN1YnNjcmliZShkb2N1bWVudCk7XG5cbiAgICB0aGlzLmRyYWdTZWxlY3Rpb24gPSBuZXcgU2VsZWN0aW9uT25Qb2ludGVyRG93bih0aGlzLmZGbG93LCB0aGlzLmZTZWxlY3Rpb24sIHRoaXMuaG9zdEVsZW1lbnQpO1xuICAgIHRoaXMucmVhc3NpZ25Db25uZWN0aW9uID0gbmV3IFJlYXNzaWduQ29ubmVjdGlvbk9uUG9pbnRlckRvd24odGhpcy5mRmxvdywgdGhpcy5ob3N0RWxlbWVudCk7XG4gICAgdGhpcy5kcmFnQ2FudmFzID0gbmV3IENhbnZhc09uUG9pbnRlckRvd25IYW5kbGVyKHRoaXMuZkJhY2tncm91bmQsIHRoaXMuZkl0ZW1zQ29udGFpbmVyLCB0aGlzLmhvc3RFbGVtZW50KTtcbiAgICB0aGlzLmRyYWdOb2RlID0gbmV3IE5vZGVPblBvaW50ZXJEb3duKHRoaXMuZkxpbmVBbGlnbm1lbnQsIHRoaXMuZkZsb3csIHRoaXMuaG9zdEVsZW1lbnQpO1xuICAgIHRoaXMuY3JlYXRlQ29ubmVjdGlvbiA9IG5ldyBDcmVhdGVDb25uZWN0aW9uT25Qb2ludGVyRG93bih0aGlzLmZGbG93LCB0aGlzLmhvc3RFbGVtZW50KTtcbiAgICB0aGlzLmRyYWdFeHRlcm5hbEl0ZW0gPSBuZXcgRXh0ZXJuYWxJdGVtT25Qb2ludGVyRG93bkhhbmRsZXIodGhpcy5mRXh0ZXJuYWxJdGVtU2VydmljZSwgdGhpcy5ob3N0RWxlbWVudCk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgb25Qb2ludGVyRG93bihldmVudDogSVBvaW50ZXJFdmVudCk6IGJvb2xlYW4ge1xuICAgIGxldCByZXN1bHQ6IGJvb2xlYW4gPSBldmVudC5pc01vdXNlTGVmdEJ1dHRvbigpO1xuICAgIGNvbnN0IHNlbGVjdGlvbiA9IHRoaXMuZHJhZ1NlbGVjdGlvbi5oYW5kbGUoXG4gICAgICAgIG5ldyBTZWxlY3Rpb25PblBvaW50ZXJEb3duUmVxdWVzdChldmVudCwgdGhpcy50cmFuc2Zvcm0sIHRoaXMuc2VsZWN0ZWRJdGVtcylcbiAgICApO1xuICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IHNlbGVjdGlvbi5zZWxlY3RlZEl0ZW1zIHx8IFtdO1xuXG4gICAgY29uc3QgcmVhc3NpZ25Db25uZWN0aW9uID0gdGhpcy5yZWFzc2lnbkNvbm5lY3Rpb24uaGFuZGxlKFxuICAgICAgICBuZXcgUmVhc3NpZ25Db25uZWN0aW9uT25Qb2ludGVyRG93blJlcXVlc3QoZXZlbnQsIHRoaXMudHJhbnNmb3JtKVxuICAgICk7XG5cbiAgICBjb25zdCBjcmVhdGVDb25uZWN0aW9uID0gdGhpcy5jcmVhdGVDb25uZWN0aW9uLmhhbmRsZShcbiAgICAgICAgbmV3IENyZWF0ZUNvbm5lY3Rpb25PblBvaW50ZXJEb3duUmVxdWVzdChldmVudCwgdGhpcy50cmFuc2Zvcm0pXG4gICAgKTtcblxuICAgIGNvbnN0IGRyYWdOb2RlID0gdGhpcy5kcmFnTm9kZS5oYW5kbGUoXG4gICAgICAgIG5ldyBOb2RlT25Qb2ludGVyRG93blJlcXVlc3QoZXZlbnQsIHRoaXMudHJhbnNmb3JtLCB0aGlzLnNlbGVjdGVkSXRlbXMpXG4gICAgKTtcblxuICAgIGNvbnN0IGRyYWdDYW52YXMgPSB0aGlzLmRyYWdDYW52YXMuaGFuZGxlKFxuICAgICAgICBuZXcgQ2FudmFzT25Qb2ludGVyRG93blJlcXVlc3QoZXZlbnQpXG4gICAgKTtcblxuICAgIGNvbnN0IGRyYWdFeHRlcm5hbEl0ZW0gPSB0aGlzLmRyYWdFeHRlcm5hbEl0ZW0uaGFuZGxlKFxuICAgICAgICBuZXcgRXh0ZXJuYWxJdGVtT25Qb2ludGVyRG93blJlcXVlc3QoZXZlbnQpXG4gICAgKTtcblxuICAgIGNvbnN0IGRyYWdTZWxlY3Rpb24gPSBzZWxlY3Rpb24uZHJhZ2dhYmxlSXRlbXMubGVuZ3RoID8gc2VsZWN0aW9uIDogdW5kZWZpbmVkO1xuXG4gICAgY29uc3QgZHJhZ0hhbmRsZSA9IGRyYWdTZWxlY3Rpb24gfHwgcmVhc3NpZ25Db25uZWN0aW9uIHx8IGNyZWF0ZUNvbm5lY3Rpb24gfHwgZHJhZ05vZGUgfHwgZHJhZ0NhbnZhcyB8fCBkcmFnRXh0ZXJuYWxJdGVtO1xuICAgIGlmICghZHJhZ0hhbmRsZSkge1xuICAgICAgdGhpcy5kcmFnSGFuZGxlciA9IG5ldyBEZWZhdWx0RHJhZ0hhbmRsZXIoKS5oYW5kbGUoKTtcbiAgICAgIHJlc3VsdCA9IGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRyYWdIYW5kbGVyID0gZHJhZ0hhbmRsZTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHByZXBhcmVEcmFnU2VxdWVuY2UoZXZlbnQ6IElQb2ludGVyRXZlbnQpIHtcbiAgICBjb25zdCBpc0RyYWdOb2RlcyA9IHRoaXMuZHJhZ0hhbmRsZXIuZHJhZ2dhYmxlSXRlbXMuc29tZSgoeCkgPT4geC50eXBlID09PSBFRHJhZ2dhYmxlVHlwZS5OT0RFKTtcbiAgICBpZiAoaXNEcmFnTm9kZXMpIHtcbiAgICAgIHRoaXMuZHJhZ0hhbmRsZXIgPSB0aGlzLmRyYWdOb2RlLmhhbmRsZShcbiAgICAgICAgICBuZXcgTm9kZU9uUG9pbnRlckRvd25SZXF1ZXN0KGV2ZW50LCB0aGlzLnRyYW5zZm9ybSwgdGhpcy5zZWxlY3RlZEl0ZW1zLCB0cnVlKVxuICAgICAgKSE7XG4gICAgfVxuICAgIHRoaXMuZHJhZ0hhbmRsZXIuZHJhZ2dhYmxlSXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgaXRlbS5pbml0aWFsaXplKCk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgb25Qb2ludGVyTW92ZShldmVudDogSVBvaW50ZXJFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHBvaW50ZXJQb3NpdGlvbkluQ2FudmFzID0gUG9pbnQuZnJvbVBvaW50KGV2ZW50LmdldFBvc2l0aW9uKCkpLm1hdHJpeFRyYW5zZm9ybSh0aGlzLmhvc3RFbGVtZW50KTtcbiAgICBjb25zdCBkaWZmZXJlbmNlID0gcG9pbnRlclBvc2l0aW9uSW5DYW52YXMuZGl2KHRoaXMuZHJhZ0hhbmRsZXIub25Qb2ludGVyRG93blNjYWxlKS5zdWIodGhpcy5kcmFnSGFuZGxlci5vblBvaW50ZXJEb3duUG9zaXRpb24pO1xuICAgIHRoaXMuZHJhZ0hhbmRsZXIuZHJhZ2dhYmxlSXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgaXRlbS5tb3ZlKGRpZmZlcmVuY2UpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIG9uUG9pbnRlclVwKGV2ZW50OiBJUG9pbnRlckV2ZW50KTogdm9pZCB7XG4gICAgbmV3IFJlYXNzaWduQ29ubmVjdGlvbk9uUG9pbnRlclVwKHRoaXMuZkZsb3csIHRoaXMub25SZWFzc2lnbkNvbm5lY3Rpb24pLmhhbmRsZShcbiAgICAgICAgbmV3IFJlYXNzaWduQ29ubmVjdGlvbk9uUG9pbnRlclVwUmVxdWVzdChldmVudCwgdGhpcy5kcmFnSGFuZGxlcilcbiAgICApO1xuXG4gICAgbmV3IENyZWF0ZUNvbm5lY3Rpb25PblBvaW50ZXJVcCh0aGlzLmZGbG93LCB0aGlzLm9uQ3JlYXRlQ29ubmVjdGlvbikuaGFuZGxlKFxuICAgICAgICBuZXcgQ3JlYXRlQ29ubmVjdGlvbk9uUG9pbnRlclVwUmVxdWVzdChldmVudCwgdGhpcy5kcmFnSGFuZGxlcilcbiAgICApO1xuXG4gICAgbmV3IE5vZGVPblBvaW50ZXJVcCh0aGlzLmZMaW5lQWxpZ25tZW50LCB0aGlzLmZDb25uZWN0SWZJbnRlcnNlY3QsIHRoaXMuaG9zdEVsZW1lbnQpLmhhbmRsZShcbiAgICAgICAgbmV3IE5vZGVPblBvaW50ZXJVcFJlcXVlc3QoZXZlbnQsIHRoaXMuZHJhZ0hhbmRsZXIpXG4gICAgKTtcblxuICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IG5ldyBTZWxlY3Rpb25PblBvaW50ZXJVcCh0aGlzLmhvc3RFbGVtZW50KS5oYW5kbGUoXG4gICAgICAgIG5ldyBTZWxlY3Rpb25PblBvaW50ZXJVcFJlcXVlc3QoZXZlbnQsIHRoaXMuZHJhZ0hhbmRsZXIsIHRoaXMuc2VsZWN0ZWRJdGVtcylcbiAgICApO1xuXG4gICAgbmV3IENhbnZhc09uUG9pbnRlclVwSGFuZGxlcigpLmhhbmRsZShcbiAgICAgICAgbmV3IENhbnZhc09uUG9pbnRlclVwUmVxdWVzdCh0aGlzLmRyYWdIYW5kbGVyKVxuICAgICk7XG5cbiAgICBuZXcgRXh0ZXJuYWxJdGVtT25Qb2ludGVyVXBIYW5kbGVyKHRoaXMuZkZsb3csIHRoaXMub25DcmVhdGVOb2RlKS5oYW5kbGUoXG4gICAgICAgIG5ldyBFeHRlcm5hbEl0ZW1PblBvaW50ZXJVcFJlcXVlc3QoZXZlbnQsIHRoaXMuZHJhZ0hhbmRsZXIpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBzdXBlci51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucyQudW5zdWJzY3JpYmUoKTtcbiAgfVxufVxuIl19
@@ -1,7 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { Directive, Component, ChangeDetectionStrategy, Input, ViewChild, InjectionToken, NgModule, Inject, Optional, SkipSelf, EventEmitter, ContentChildren, ContentChild, Output, Injectable } from '@angular/core';
3
3
  import { VectorExtensions, Point, PointExtensions, RectExtensions, TransformModelExtensions, SizeExtensions, BooleanExtensions, FResizeObserver, DomElementExtensions, MouseEventExtensions, IDragAndDropBase, LineFElement, RectFElement, EventExtensions } from '@foblex/core';
4
- import { Subject, Subscription, startWith, defer, switchMap, merge, take, takeUntil } from 'rxjs';
4
+ import { Subject, Subscription, startWith, defer, switchMap, merge, take, debounceTime, takeUntil } from 'rxjs';
5
5
  import * as i2 from '@angular/common';
6
6
  import { CommonModule } from '@angular/common';
7
7
 
@@ -916,7 +916,10 @@ class FForeignObjectBase {
916
916
  }
917
917
  redraw() {
918
918
  const element = this.hostElement.firstChild;
919
- console.log(element);
919
+ // console.log(element.style);
920
+ // if (!element.style.display) {
921
+ // throw new Error('Foreign Object content should be with style display');
922
+ // }
920
923
  if (element && !!element.getBoundingClientRect) {
921
924
  const rect = RectExtensions.fromElement(element);
922
925
  const scale = this.transform.scale;
@@ -1386,6 +1389,23 @@ class CanvasOnPointerDownRequest {
1386
1389
  }
1387
1390
  }
1388
1391
 
1392
+ class CanvasOnPointerUpHandler {
1393
+ handle(payload) {
1394
+ const isDragCanvas = payload.dragHandler.draggableItems.some((x) => x.type === EDraggableType.CANVAS);
1395
+ if (isDragCanvas) {
1396
+ payload.dragHandler.draggableItems.forEach((x) => {
1397
+ x.complete();
1398
+ });
1399
+ }
1400
+ }
1401
+ }
1402
+
1403
+ class CanvasOnPointerUpRequest {
1404
+ constructor(dragHandler) {
1405
+ this.dragHandler = dragHandler;
1406
+ }
1407
+ }
1408
+
1389
1409
  class CreateConnectionOnPointerDownRequest {
1390
1410
  constructor(event, transform) {
1391
1411
  this.event = event;
@@ -2373,6 +2393,7 @@ class FDraggableBase extends IDragAndDropBase {
2373
2393
  new CreateConnectionOnPointerUp(this.fFlow, this.onCreateConnection).handle(new CreateConnectionOnPointerUpRequest(event, this.dragHandler));
2374
2394
  new NodeOnPointerUp(this.fLineAlignment, this.fConnectIfIntersect, this.hostElement).handle(new NodeOnPointerUpRequest(event, this.dragHandler));
2375
2395
  this.selectedItems = new SelectionOnPointerUp(this.hostElement).handle(new SelectionOnPointerUpRequest(event, this.dragHandler, this.selectedItems));
2396
+ new CanvasOnPointerUpHandler().handle(new CanvasOnPointerUpRequest(this.dragHandler));
2376
2397
  new ExternalItemOnPointerUpHandler(this.fFlow, this.onCreateNode).handle(new ExternalItemOnPointerUpRequest(event, this.dragHandler));
2377
2398
  }
2378
2399
  ngOnDestroy() {
@@ -2931,6 +2952,11 @@ class FFlowBase {
2931
2952
  this.onDestroy = new Subject();
2932
2953
  this.connectorChanges = new Subject();
2933
2954
  }
2955
+ ngAfterViewInit() {
2956
+ this.fNodesContainer.stateChanges.pipe(debounceTime(1), take(1)).subscribe(() => {
2957
+ this.onInitialized.emit();
2958
+ });
2959
+ }
2934
2960
  ngAfterContentInit() {
2935
2961
  this.subscribeOnComponentsChanges();
2936
2962
  }
@@ -2957,6 +2983,27 @@ class FFlowBase {
2957
2983
  });
2958
2984
  });
2959
2985
  }
2986
+ fitToScreen(toCenter = PointExtensions.initialize(), animated = true) {
2987
+ const rect = RectExtensions.addPointToSize(RectExtensions.fromElement(this.fNodesContainer.hostElement), Point.fromPoint(toCenter).mult(2));
2988
+ this.fItemsContainer.fitToParent(rect, RectExtensions.fromElement(this.hostElement), this.fNodesContainer.fNodes.map((x) => {
2989
+ return Point.fromPoint(x.position).sub(toCenter);
2990
+ }));
2991
+ animated ? this.fItemsContainer.redrawWithAnimation() : this.fItemsContainer.redraw();
2992
+ this.fItemsContainer.completeDrag();
2993
+ }
2994
+ oneToOne() {
2995
+ this.fItemsContainer.oneToOneCentering(RectExtensions.fromElement(this.fNodesContainer.hostElement), RectExtensions.fromElement(this.hostElement), this.fNodesContainer.fNodes.map((x) => {
2996
+ return Point.fromPoint(x.position).sub(new Point(0, 0));
2997
+ }));
2998
+ this.fItemsContainer.redrawWithAnimation();
2999
+ this.fItemsContainer.completeDrag();
3000
+ }
3001
+ zoomIn() {
3002
+ this.fZoom?.onZoomToCenter(-100);
3003
+ }
3004
+ zoomOut() {
3005
+ this.fZoom?.onZoomToCenter(100);
3006
+ }
2960
3007
  ngOnDestroy() {
2961
3008
  this.onDestroy.next();
2962
3009
  this.onDestroy.complete();
@@ -2987,6 +3034,7 @@ class FFlowComponent extends FFlowBase {
2987
3034
  this.outlets = [];
2988
3035
  this.outputs = [];
2989
3036
  this.inputs = [];
3037
+ this.onInitialized = new EventEmitter();
2990
3038
  }
2991
3039
  addConnector(connector) {
2992
3040
  if (connector instanceof FNodeOutletBase) {
@@ -3013,10 +3061,10 @@ class FFlowComponent extends FFlowBase {
3013
3061
  this.connectorChanges.next();
3014
3062
  }
3015
3063
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: FFlowComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
3016
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: FFlowComponent, selector: "svg[fFlow]", inputs: { id: "id" }, host: { properties: { "attr.id": "id" }, classAttribute: "f-component f-flow" }, providers: [
3064
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: FFlowComponent, selector: "svg[fFlow]", inputs: { id: "id" }, outputs: { onInitialized: "onInitialized" }, host: { properties: { "attr.id": "id" }, classAttribute: "f-component f-flow" }, providers: [
3017
3065
  { provide: F_FLOW_COMPONENT, useExisting: FFlowComponent },
3018
3066
  { provide: F_FLOW_CONNECTOR_PARENT, useExisting: FFlowComponent }
3019
- ], queries: [{ propertyName: "fNodesContainer", first: true, predicate: F_NODES_CONTAINER, descendants: true, static: true }, { propertyName: "fConnectionsContainer", first: true, predicate: F_CONNECTIONS_CONTAINER, descendants: true }, { propertyName: "fItemsContainer", first: true, predicate: F_ITEMS_CONTAINER, descendants: true, static: true }], viewQueries: [{ propertyName: "fBackground", first: true, predicate: F_BACKGROUND, descendants: true, static: true }], usesInheritance: true, hostDirectives: [{ directive: FCanvasDirective }], ngImport: i0, template: "<ng-container xmlns:svg=\"http://www.w3.org/2000/svg\">\n <svg:g fBackground>\n <rect width=\"100%\" height=\"100%\" fill=\"url(#background)\"></rect>\n </svg:g>\n <ng-content></ng-content>\n <svg:defs>\n <svg:marker [id]=\"CONNECTION_MARKER_START\" class=\"connection-marker-start\" markerHeight=\"10\" markerWidth=\"10\" refY=\"5\" refX=\"5\">\n <svg:circle cx=\"5\" cy=\"5\" r=\"2\"></svg:circle>\n </svg:marker>\n <svg:marker [id]=\"CONNECTION_MARKER_END\" class=\"connection-marker-end\" markerHeight=\"10\" markerWidth=\"10\" orient=\"auto\" refX=\"5\" refY=\"3\">\n <svg:path d=\"M0,0 L6,3 0,6Z\"></svg:path>\n </svg:marker>\n <svg:marker [id]=\"CONNECTION_MARKER_START_SELECTED\" class=\"connection-marker-start f-selected\" markerHeight=\"10\" markerWidth=\"10\" refY=\"5\" refX=\"5\">\n <svg:circle cx=\"5\" cy=\"5\" r=\"2\"></svg:circle>\n </svg:marker>\n <svg:marker [id]=\"CONNECTION_MARKER_END_SELECTED\" class=\"connection-marker-end f-selected\" markerHeight=\"10\" markerWidth=\"10\" orient=\"auto\" refX=\"5\" refY=\"3\">\n <svg:path d=\"M0,0 L6,3 0,6Z\"></svg:path>\n </svg:marker>\n <ng-container *ngIf=\"fConnectionsContainer\">\n <ng-container *ngFor=\"let connection of fConnectionsContainer.fConnections.toArray()\">\n <svg:marker [id]=\"'connection-marker-start-' + connection.fromTo?.output?.color\" markerHeight=\"10\" markerWidth=\"10\" refY=\"5\" refX=\"5\">\n <svg:circle cx=\"5\" cy=\"5\" r=\"2\" [attr.stroke]=\"'none'\" [attr.fill]=\"connection.fromTo?.output?.color\"></svg:circle>\n </svg:marker>\n <svg:marker [id]=\"'connection-marker-end-' + connection.fromTo?.input?.color\" markerHeight=\"10\" markerWidth=\"10\" orient=\"auto\" refX=\"5\" refY=\"3\">\n <svg:path d=\"M0,0 L6,3 0,6Z\" [attr.stroke]=\"'none'\" [attr.fill]=\"connection.fromTo?.input?.color\"></svg:path>\n </svg:marker>\n </ng-container>\n\n </ng-container>\n <svg:pattern id=\"background\" height=\"10\" width=\"10\" class=\"fb-background-pattern\"\n patternUnits=\"userSpaceOnUse\">\n <svg:circle cx=\"5\" cy=\"5\" r=\"0.5\"/>\n </svg:pattern>\n </svg:defs>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: FBackgroundDirective, selector: "g[fBackground]" }] }); }
3067
+ ], queries: [{ propertyName: "fNodesContainer", first: true, predicate: F_NODES_CONTAINER, descendants: true, static: true }, { propertyName: "fConnectionsContainer", first: true, predicate: F_CONNECTIONS_CONTAINER, descendants: true }, { propertyName: "fItemsContainer", first: true, predicate: F_ITEMS_CONTAINER, descendants: true, static: true }, { propertyName: "fZoom", first: true, predicate: F_ZOOM, descendants: true, static: true }], viewQueries: [{ propertyName: "fBackground", first: true, predicate: F_BACKGROUND, descendants: true, static: true }], usesInheritance: true, hostDirectives: [{ directive: FCanvasDirective }], ngImport: i0, template: "<ng-container xmlns:svg=\"http://www.w3.org/2000/svg\">\n <svg:g fBackground>\n <rect width=\"100%\" height=\"100%\" fill=\"url(#background)\"></rect>\n </svg:g>\n <ng-content></ng-content>\n <svg:defs>\n <svg:marker [id]=\"CONNECTION_MARKER_START\" class=\"connection-marker-start\" markerHeight=\"10\" markerWidth=\"10\" refY=\"5\" refX=\"5\">\n <svg:circle cx=\"5\" cy=\"5\" r=\"2\"></svg:circle>\n </svg:marker>\n <svg:marker [id]=\"CONNECTION_MARKER_END\" class=\"connection-marker-end\" markerHeight=\"10\" markerWidth=\"10\" orient=\"auto\" refX=\"5\" refY=\"3\">\n <svg:path d=\"M0,0 L6,3 0,6Z\"></svg:path>\n </svg:marker>\n <svg:marker [id]=\"CONNECTION_MARKER_START_SELECTED\" class=\"connection-marker-start f-selected\" markerHeight=\"10\" markerWidth=\"10\" refY=\"5\" refX=\"5\">\n <svg:circle cx=\"5\" cy=\"5\" r=\"2\"></svg:circle>\n </svg:marker>\n <svg:marker [id]=\"CONNECTION_MARKER_END_SELECTED\" class=\"connection-marker-end f-selected\" markerHeight=\"10\" markerWidth=\"10\" orient=\"auto\" refX=\"5\" refY=\"3\">\n <svg:path d=\"M0,0 L6,3 0,6Z\"></svg:path>\n </svg:marker>\n <ng-container *ngIf=\"fConnectionsContainer\">\n <ng-container *ngFor=\"let connection of fConnectionsContainer.fConnections.toArray()\">\n <svg:marker [id]=\"'connection-marker-start-' + connection.fromTo?.output?.color\" markerHeight=\"10\" markerWidth=\"10\" refY=\"5\" refX=\"5\">\n <svg:circle cx=\"5\" cy=\"5\" r=\"2\" [attr.stroke]=\"'none'\" [attr.fill]=\"connection.fromTo?.output?.color\"></svg:circle>\n </svg:marker>\n <svg:marker [id]=\"'connection-marker-end-' + connection.fromTo?.input?.color\" markerHeight=\"10\" markerWidth=\"10\" orient=\"auto\" refX=\"5\" refY=\"3\">\n <svg:path d=\"M0,0 L6,3 0,6Z\" [attr.stroke]=\"'none'\" [attr.fill]=\"connection.fromTo?.input?.color\"></svg:path>\n </svg:marker>\n </ng-container>\n\n </ng-container>\n <svg:pattern id=\"background\" height=\"10\" width=\"10\" class=\"fb-background-pattern\"\n patternUnits=\"userSpaceOnUse\">\n <svg:circle cx=\"5\" cy=\"5\" r=\"0.5\"/>\n </svg:pattern>\n </svg:defs>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: FBackgroundDirective, selector: "g[fBackground]" }] }); }
3020
3068
  }
3021
3069
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: FFlowComponent, decorators: [{
3022
3070
  type: Component,
@@ -3045,6 +3093,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImpor
3045
3093
  }], fBackground: [{
3046
3094
  type: ViewChild,
3047
3095
  args: [F_BACKGROUND, { static: true }]
3096
+ }], fZoom: [{
3097
+ type: ContentChild,
3098
+ args: [F_ZOOM, { static: true }]
3099
+ }], onInitialized: [{
3100
+ type: Output
3048
3101
  }] } });
3049
3102
 
3050
3103
  let uniqueId = 0;