@foblex/flow 12.3.7 → 12.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. package/README.md +25 -9
  2. package/domain/emit-transform-changes/emit-transform-changes.execution.d.ts +11 -0
  3. package/domain/emit-transform-changes/emit-transform-changes.request.d.ts +2 -0
  4. package/domain/emit-transform-changes/index.d.ts +2 -0
  5. package/domain/get-external-nodes-rect/get-external-nodes-rect.execution.d.ts +14 -0
  6. package/domain/get-external-nodes-rect/get-external-nodes-rect.request.d.ts +2 -0
  7. package/domain/get-external-nodes-rect/index.d.ts +2 -0
  8. package/domain/get-nodes-rect/get-nodes-rect.execution.d.ts +2 -0
  9. package/domain/index.d.ts +3 -0
  10. package/domain/intersections/rounded-rect/rounded-rect.d.ts +1 -0
  11. package/domain/providers.d.ts +4 -1
  12. package/domain/subscribe-on-transform-changes/index.d.ts +2 -0
  13. package/domain/subscribe-on-transform-changes/subscribe-on-transform-changes.execution.d.ts +13 -0
  14. package/domain/subscribe-on-transform-changes/subscribe-on-transform-changes.request.d.ts +2 -0
  15. package/esm2022/domain/emit-transform-changes/emit-transform-changes.execution.mjs +25 -0
  16. package/esm2022/domain/emit-transform-changes/emit-transform-changes.request.mjs +3 -0
  17. package/esm2022/domain/emit-transform-changes/index.mjs +3 -0
  18. package/esm2022/domain/get-external-nodes-rect/get-external-nodes-rect.execution.mjs +35 -0
  19. package/esm2022/domain/get-external-nodes-rect/get-external-nodes-rect.request.mjs +3 -0
  20. package/esm2022/domain/get-external-nodes-rect/index.mjs +3 -0
  21. package/esm2022/domain/get-nodes-rect/get-nodes-rect.execution.mjs +8 -6
  22. package/esm2022/domain/index.mjs +4 -1
  23. package/esm2022/domain/intersections/rounded-rect/rounded-rect.mjs +31 -5
  24. package/esm2022/domain/providers.mjs +7 -1
  25. package/esm2022/domain/subscribe-on-transform-changes/index.mjs +3 -0
  26. package/esm2022/domain/subscribe-on-transform-changes/subscribe-on-transform-changes.execution.mjs +28 -0
  27. package/esm2022/domain/subscribe-on-transform-changes/subscribe-on-transform-changes.request.mjs +3 -0
  28. package/esm2022/f-canvas/f-canvas.component.mjs +5 -4
  29. package/esm2022/f-canvas/index.mjs +1 -2
  30. package/esm2022/f-canvas/providers.mjs +1 -3
  31. package/esm2022/f-connection/common/f-connection-base.mjs +2 -2
  32. package/esm2022/f-connection/common/f-drag-handle/f-connection-drag-handle.component.mjs +10 -2
  33. package/esm2022/f-connection/common/f-path/get-path-marker-id.mjs +2 -2
  34. package/esm2022/f-draggable/connections/create-connection/create-connection.drag-handler.mjs +1 -4
  35. package/esm2022/f-draggable/connections/reassign-connection/reassign-connection-preparation/reassign-connection-preparation.execution.mjs +4 -1
  36. package/esm2022/f-draggable/e-f-draggable-type.mjs +2 -2
  37. package/esm2022/f-draggable/external-item/external-item-preparation/external-item-preparation.execution.mjs +1 -1
  38. package/esm2022/f-draggable/f-draggable-base.mjs +4 -4
  39. package/esm2022/f-draggable/f-draggable.directive.mjs +44 -9
  40. package/esm2022/f-draggable/i-f-drag-and-drop-plugin.mjs +3 -0
  41. package/esm2022/f-draggable/index.mjs +2 -1
  42. package/esm2022/f-draggable/providers.mjs +4 -2
  43. package/esm2022/f-draggable/selection-area/selection-area.drag-handle.mjs +3 -1
  44. package/esm2022/f-draggable/single-select/single-select.validator.mjs +9 -5
  45. package/esm2022/f-flow/f-flow.component.mjs +8 -6
  46. package/esm2022/f-flow.module.mjs +17 -7
  47. package/esm2022/f-minimap/domain/calculate-flow-point-from-minimap-point/calculate-flow-point-from-minimap-point.execution.mjs +43 -0
  48. package/esm2022/f-minimap/domain/calculate-flow-point-from-minimap-point/calculate-flow-point-from-minimap-point.request.mjs +13 -0
  49. package/esm2022/f-minimap/domain/calculate-flow-point-from-minimap-point/index.mjs +3 -0
  50. package/esm2022/f-minimap/domain/f-minimap-data.mjs +12 -0
  51. package/esm2022/f-minimap/domain/f-minimap.drag-handler.mjs +43 -0
  52. package/esm2022/f-minimap/domain/index.mjs +7 -0
  53. package/esm2022/f-minimap/domain/minimap-drag-finalize/index.mjs +5 -0
  54. package/esm2022/f-minimap/domain/minimap-drag-finalize/minimap-drag-finalize.execution.mjs +27 -0
  55. package/esm2022/f-minimap/domain/minimap-drag-finalize/minimap-drag-finalize.request.mjs +7 -0
  56. package/esm2022/f-minimap/domain/minimap-drag-finalize/minimap-drag-finalize.validator.mjs +26 -0
  57. package/esm2022/f-minimap/domain/minimap-drag-finalize/providers.mjs +7 -0
  58. package/esm2022/f-minimap/domain/minimap-drag-preparation/index.mjs +5 -0
  59. package/esm2022/f-minimap/domain/minimap-drag-preparation/minimap-drag-preparation.execution.mjs +52 -0
  60. package/esm2022/f-minimap/domain/minimap-drag-preparation/minimap-drag-preparation.request.mjs +9 -0
  61. package/esm2022/f-minimap/domain/minimap-drag-preparation/minimap-drag-preparation.validator.mjs +30 -0
  62. package/esm2022/f-minimap/domain/minimap-drag-preparation/providers.mjs +7 -0
  63. package/esm2022/f-minimap/domain/providers.mjs +9 -0
  64. package/esm2022/f-minimap/f-minimap-canvas.directive.mjs +65 -0
  65. package/esm2022/f-minimap/f-minimap-flow.directive.mjs +78 -0
  66. package/esm2022/f-minimap/f-minimap-view.directive.mjs +40 -0
  67. package/esm2022/f-minimap/f-minimap.component.mjs +72 -0
  68. package/esm2022/f-minimap/index.mjs +7 -0
  69. package/esm2022/f-minimap/providers.mjs +11 -0
  70. package/esm2022/f-node/f-node.directive.mjs +12 -4
  71. package/esm2022/f-storage/f-components-store.mjs +1 -1
  72. package/esm2022/f-storage/f-transform-store.mjs +12 -0
  73. package/esm2022/f-storage/index.mjs +2 -1
  74. package/esm2022/f-zoom/f-zoom-base.mjs +97 -0
  75. package/esm2022/f-zoom/f-zoom.directive.mjs +59 -0
  76. package/esm2022/f-zoom/index.mjs +4 -0
  77. package/esm2022/f-zoom/providers.mjs +5 -0
  78. package/esm2022/infrastructure/pipeline/pipeline.mjs +1 -1
  79. package/esm2022/public-api.mjs +3 -1
  80. package/f-canvas/index.d.ts +0 -1
  81. package/f-canvas/providers.d.ts +1 -2
  82. package/f-connection/common/f-drag-handle/f-connection-drag-handle.component.d.ts +2 -1
  83. package/f-draggable/e-f-draggable-type.d.ts +1 -1
  84. package/f-draggable/f-draggable-base.d.ts +2 -2
  85. package/f-draggable/f-draggable.directive.d.ts +8 -4
  86. package/f-draggable/i-f-drag-and-drop-plugin.d.ts +9 -0
  87. package/f-draggable/index.d.ts +1 -0
  88. package/f-draggable/providers.d.ts +1 -1
  89. package/f-draggable/single-select/single-select.validator.d.ts +3 -1
  90. package/f-flow/f-flow.component.d.ts +1 -1
  91. package/f-flow.module.d.ts +12 -8
  92. package/f-minimap/domain/calculate-flow-point-from-minimap-point/calculate-flow-point-from-minimap-point.execution.d.ts +18 -0
  93. package/f-minimap/domain/calculate-flow-point-from-minimap-point/calculate-flow-point-from-minimap-point.request.d.ts +9 -0
  94. package/f-minimap/domain/calculate-flow-point-from-minimap-point/index.d.ts +2 -0
  95. package/f-minimap/domain/f-minimap-data.d.ts +7 -0
  96. package/f-minimap/domain/f-minimap.drag-handler.d.ts +21 -0
  97. package/f-minimap/domain/index.d.ts +6 -0
  98. package/f-minimap/domain/minimap-drag-finalize/index.d.ts +4 -0
  99. package/f-minimap/domain/minimap-drag-finalize/minimap-drag-finalize.execution.d.ts +11 -0
  100. package/f-minimap/domain/minimap-drag-finalize/minimap-drag-finalize.request.d.ts +5 -0
  101. package/f-minimap/domain/minimap-drag-finalize/minimap-drag-finalize.validator.d.ts +11 -0
  102. package/f-minimap/domain/minimap-drag-finalize/providers.d.ts +3 -0
  103. package/f-minimap/domain/minimap-drag-preparation/index.d.ts +4 -0
  104. package/f-minimap/domain/minimap-drag-preparation/minimap-drag-preparation.execution.d.ts +17 -0
  105. package/f-minimap/domain/minimap-drag-preparation/minimap-drag-preparation.request.d.ts +7 -0
  106. package/f-minimap/domain/minimap-drag-preparation/minimap-drag-preparation.validator.d.ts +13 -0
  107. package/f-minimap/domain/minimap-drag-preparation/providers.d.ts +3 -0
  108. package/f-minimap/domain/providers.d.ts +2 -0
  109. package/f-minimap/f-minimap-canvas.directive.d.ts +22 -0
  110. package/f-minimap/f-minimap-flow.directive.d.ts +28 -0
  111. package/f-minimap/f-minimap-view.directive.d.ts +14 -0
  112. package/f-minimap/f-minimap.component.d.ts +26 -0
  113. package/f-minimap/index.d.ts +6 -0
  114. package/f-minimap/providers.d.ts +5 -0
  115. package/f-node/f-node.directive.d.ts +4 -1
  116. package/f-storage/f-transform-store.d.ts +7 -0
  117. package/f-storage/index.d.ts +1 -0
  118. package/{f-canvas/f-zoom → f-zoom}/f-zoom-base.d.ts +1 -1
  119. package/{f-canvas/f-zoom → f-zoom}/f-zoom.directive.d.ts +1 -1
  120. package/{f-canvas/f-zoom → f-zoom}/index.d.ts +1 -0
  121. package/f-zoom/providers.d.ts +2 -0
  122. package/fesm2022/foblex-flow.mjs +3434 -2789
  123. package/fesm2022/foblex-flow.mjs.map +1 -1
  124. package/package.json +4 -4
  125. package/public-api.d.ts +2 -0
  126. package/esm2022/f-canvas/f-zoom/f-zoom-base.mjs +0 -95
  127. package/esm2022/f-canvas/f-zoom/f-zoom.directive.mjs +0 -59
  128. package/esm2022/f-canvas/f-zoom/index.mjs +0 -3
@@ -1,4 +1,4 @@
1
- import { Directive, EventEmitter, Inject, Input, Output } from "@angular/core";
1
+ import { ContentChildren, Directive, EventEmitter, Inject, Input, NgZone, Optional, Output } from "@angular/core";
2
2
  import { F_DRAGGABLE, FDraggableBase } from './f-draggable-base';
3
3
  import { Subscription } from 'rxjs';
4
4
  import { ExternalItemPreparationRequest, ExternalItemFinalizeRequest } from './external-item';
@@ -7,11 +7,12 @@ import { NodeMoveFinalizeRequest, NodeMovePreparationRequest } from './node';
7
7
  import { CanvasMoveFinalizeRequest, CanvasMovePreparationRequest } from './canvas';
8
8
  import { DOCUMENT } from '@angular/common';
9
9
  import { ReassignConnectionPreparationRequest, ReassignConnectionFinalizeRequest, CreateConnectionPreparationRequest, CreateConnectionFinalizeRequest } from './connections';
10
- import { GetSelectionRequest } from '../domain';
10
+ import { EmitTransformChangesRequest, GetSelectionRequest } from '../domain';
11
11
  import { isExternalItem } from '../f-external-item';
12
12
  import { SingleSelectRequest } from './single-select';
13
13
  import { NodeResizeFinalizeRequest, NodeResizePreparationRequest } from './node-resize';
14
14
  import { SelectionAreaFinalizeRequest, SelectionAreaPreparationRequest } from './selection-area';
15
+ import { F_DRAG_AND_DROP_PLUGIN } from './i-f-drag-and-drop-plugin';
15
16
  import * as i0 from "@angular/core";
16
17
  import * as i1 from "./f-draggable-data-context";
17
18
  import * as i2 from "../f-storage";
@@ -33,6 +34,7 @@ export class FDraggableDirective extends FDraggableBase {
33
34
  fCreateNode = new EventEmitter();
34
35
  fReassignConnection = new EventEmitter();
35
36
  fCreateConnection = new EventEmitter();
37
+ plugins;
36
38
  constructor(elementReference, fDraggableDataContext, ngZone, fComponentsStore, fMediator, doc) {
37
39
  super(ngZone);
38
40
  this.elementReference = elementReference;
@@ -50,6 +52,9 @@ export class FDraggableDirective extends FDraggableBase {
50
52
  onPointerDown(event) {
51
53
  this.fDraggableDataContext.reset();
52
54
  let result = event.isMouseLeftButton();
55
+ this.plugins.forEach((p) => {
56
+ p.onPointerDown?.(event);
57
+ });
53
58
  this.fMediator.send(new SingleSelectRequest(event));
54
59
  this.fMediator.send(new ReassignConnectionPreparationRequest(event));
55
60
  this.fMediator.send(new CreateConnectionPreparationRequest(event));
@@ -59,6 +64,9 @@ export class FDraggableDirective extends FDraggableBase {
59
64
  return result;
60
65
  }
61
66
  prepareDragSequence(event) {
67
+ this.plugins.forEach((p) => {
68
+ p.prepareDragSequence?.(event);
69
+ });
62
70
  this.fMediator.send(new SelectionAreaPreparationRequest(event));
63
71
  this.fMediator.send(new NodeResizePreparationRequest(event));
64
72
  this.fMediator.send(new NodeMovePreparationRequest(event));
@@ -73,12 +81,27 @@ export class FDraggableDirective extends FDraggableBase {
73
81
  }
74
82
  }
75
83
  onSelect(event) {
76
- const isTargetNotHtml = event.constructor.name === 'Event';
77
- const target = isTargetNotHtml ? event.target.parentNode : event.target;
78
- if (target && isExternalItem(target)) {
84
+ this.plugins.forEach((p) => {
85
+ p.onSelect?.(event);
86
+ });
87
+ if (this.isTargetItemExternal(event)) {
79
88
  event.preventDefault();
80
89
  }
81
90
  }
91
+ isTargetItemExternal(event) {
92
+ let isTargetItemExternal = this.isExternalItem(event.target);
93
+ let isTargetParentItemExternal = this.isExternalItem(event.target.parentNode);
94
+ return isTargetItemExternal || isTargetParentItemExternal;
95
+ }
96
+ isExternalItem(target) {
97
+ let result = false;
98
+ try {
99
+ result = isExternalItem(target);
100
+ }
101
+ catch (e) {
102
+ }
103
+ return result;
104
+ }
82
105
  onPointerMove(event) {
83
106
  const pointerPositionInCanvas = Point.fromPoint(event.getPosition()).elementTransform(this.hostElement);
84
107
  const difference = pointerPositionInCanvas.div(this.fDraggableDataContext.onPointerDownScale).sub(this.fDraggableDataContext.onPointerDownPosition);
@@ -87,6 +110,9 @@ export class FDraggableDirective extends FDraggableBase {
87
110
  });
88
111
  }
89
112
  onPointerUp(event) {
113
+ this.plugins.forEach((p) => {
114
+ p.onPointerUp?.(event);
115
+ });
90
116
  this.fMediator.send(new ReassignConnectionFinalizeRequest(event));
91
117
  this.fMediator.send(new CreateConnectionFinalizeRequest(event));
92
118
  this.fMediator.send(new SelectionAreaFinalizeRequest(event));
@@ -106,15 +132,16 @@ export class FDraggableDirective extends FDraggableBase {
106
132
  }
107
133
  this.fSelectionChange.emit(this.fMediator.send(new GetSelectionRequest()));
108
134
  this.fDraggableDataContext.isSelectedChanged = false;
135
+ this.fMediator.send(new EmitTransformChangesRequest());
109
136
  }
110
137
  ngOnDestroy() {
111
138
  super.unsubscribe();
112
139
  this.subscriptions$.unsubscribe();
113
140
  }
114
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: FDraggableDirective, deps: [{ token: i0.ElementRef }, { token: i1.FDraggableDataContext }, { token: i0.NgZone }, { token: i2.FComponentsStore }, { token: i3.FFlowMediator }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Directive });
141
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: FDraggableDirective, deps: [{ token: i0.ElementRef }, { token: i1.FDraggableDataContext }, { token: NgZone, optional: true }, { token: i2.FComponentsStore }, { token: i3.FFlowMediator }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Directive });
115
142
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.2", type: FDraggableDirective, selector: "f-flow[fDraggable]", inputs: { disabled: ["fDraggableDisabled", "disabled"] }, outputs: { fSelectionChange: "fSelectionChange", fCreateNode: "fCreateNode", fReassignConnection: "fReassignConnection", fCreateConnection: "fCreateConnection" }, providers: [
116
143
  { provide: F_DRAGGABLE, useExisting: FDraggableDirective }
117
- ], exportAs: ["fDraggable"], usesInheritance: true, ngImport: i0 });
144
+ ], queries: [{ propertyName: "plugins", predicate: F_DRAG_AND_DROP_PLUGIN, descendants: true }], exportAs: ["fDraggable"], usesInheritance: true, ngImport: i0 });
118
145
  }
119
146
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: FDraggableDirective, decorators: [{
120
147
  type: Directive,
@@ -125,7 +152,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImpor
125
152
  { provide: F_DRAGGABLE, useExisting: FDraggableDirective }
126
153
  ]
127
154
  }]
128
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.FDraggableDataContext }, { type: i0.NgZone }, { type: i2.FComponentsStore }, { type: i3.FFlowMediator }, { type: Document, decorators: [{
155
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.FDraggableDataContext }, { type: undefined, decorators: [{
156
+ type: Inject,
157
+ args: [NgZone]
158
+ }, {
159
+ type: Optional
160
+ }] }, { type: i2.FComponentsStore }, { type: i3.FFlowMediator }, { type: Document, decorators: [{
129
161
  type: Inject,
130
162
  args: [DOCUMENT]
131
163
  }] }], propDecorators: { disabled: [{
@@ -139,5 +171,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImpor
139
171
  type: Output
140
172
  }], fCreateConnection: [{
141
173
  type: Output
174
+ }], plugins: [{
175
+ type: ContentChildren,
176
+ args: [F_DRAG_AND_DROP_PLUGIN, { descendants: true }]
142
177
  }] } });
143
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1kcmFnZ2FibGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9mLWRyYWdnYWJsZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFFVCxZQUFZLEVBQUUsTUFBTSxFQUNwQixLQUFLLEVBR0csTUFBTSxFQUNmLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFHakUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQW9CLDhCQUE4QixFQUFFLDJCQUEyQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEgsT0FBTyxFQUFpQixLQUFLLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDcEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLDBCQUEwQixFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQzdFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSw0QkFBNEIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNuRixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUdMLG9DQUFvQyxFQUNwQyxpQ0FBaUMsRUFDakMsa0NBQWtDLEVBQ2xDLCtCQUErQixFQUNoQyxNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDaEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3RELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsK0JBQStC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QUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3BDLENBQUM7dUdBeElVLG1CQUFtQixvS0FnQ3BCLFFBQVE7MkZBaENQLG1CQUFtQiwwUUFKbkI7WUFDVCxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFO1NBQzNEOzsyRkFFVSxtQkFBbUI7a0JBUC9CLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLFNBQVMsRUFBRTt3QkFDVCxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxxQkFBcUIsRUFBRTtxQkFDM0Q7aUJBQ0Y7OzBCQWlDSSxNQUFNOzJCQUFDLFFBQVE7eUNBM0JGLFFBQVE7c0JBRHZCLEtBQUs7dUJBQUMsb0JBQW9CO2dCQVFYLGdCQUFnQjtzQkFEL0IsTUFBTTtnQkFPUyxXQUFXO3NCQUQxQixNQUFNO2dCQUlTLG1CQUFtQjtzQkFEbEMsTUFBTTtnQkFJUyxpQkFBaUI7c0JBRGhDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlciwgSW5qZWN0LFxuICBJbnB1dCxcbiAgTmdab25lLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCwgT3V0cHV0XG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBGX0RSQUdHQUJMRSwgRkRyYWdnYWJsZUJhc2UgfSBmcm9tICcuL2YtZHJhZ2dhYmxlLWJhc2UnO1xuaW1wb3J0IHsgRkNvbXBvbmVudHNTdG9yZSB9IGZyb20gJy4uL2Ytc3RvcmFnZSc7XG5pbXBvcnQgeyBGRHJhZ2dhYmxlRGF0YUNvbnRleHQgfSBmcm9tICcuL2YtZHJhZ2dhYmxlLWRhdGEtY29udGV4dCc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZDcmVhdGVOb2RlRXZlbnQsIEV4dGVybmFsSXRlbVByZXBhcmF0aW9uUmVxdWVzdCwgRXh0ZXJuYWxJdGVtRmluYWxpemVSZXF1ZXN0IH0gZnJvbSAnLi9leHRlcm5hbC1pdGVtJztcbmltcG9ydCB7IElQb2ludGVyRXZlbnQsIFBvaW50IH0gZnJvbSAnQGZvYmxleC9jb3JlJztcbmltcG9ydCB7IE5vZGVNb3ZlRmluYWxpemVSZXF1ZXN0LCBOb2RlTW92ZVByZXBhcmF0aW9uUmVxdWVzdCB9IGZyb20gJy4vbm9kZSc7XG5pbXBvcnQgeyBDYW52YXNNb3ZlRmluYWxpemVSZXF1ZXN0LCBDYW52YXNNb3ZlUHJlcGFyYXRpb25SZXF1ZXN0IH0gZnJvbSAnLi9jYW52YXMnO1xuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgRkNyZWF0ZUNvbm5lY3Rpb25FdmVudCxcbiAgRlJlYXNzaWduQ29ubmVjdGlvbkV2ZW50LFxuICBSZWFzc2lnbkNvbm5lY3Rpb25QcmVwYXJhdGlvblJlcXVlc3QsXG4gIFJlYXNzaWduQ29ubmVjdGlvbkZpbmFsaXplUmVxdWVzdCxcbiAgQ3JlYXRlQ29ubmVjdGlvblByZXBhcmF0aW9uUmVxdWVzdCxcbiAgQ3JlYXRlQ29ubmVjdGlvbkZpbmFsaXplUmVxdWVzdFxufSBmcm9tICcuL2Nvbm5lY3Rpb25zJztcbmltcG9ydCB7IEZTZWxlY3Rpb25DaGFuZ2VFdmVudCB9IGZyb20gJy4vZi1zZWxlY3Rpb24tY2hhbmdlLWV2ZW50JztcbmltcG9ydCB7IEZGbG93TWVkaWF0b3IgfSBmcm9tICcuLi9pbmZyYXN0cnVjdHVyZSc7XG5pbXBvcnQgeyBHZXRTZWxlY3Rpb25SZXF1ZXN0IH0gZnJvbSAnLi4vZG9tYWluJztcbmltcG9ydCB7IGlzRXh0ZXJuYWxJdGVtIH0gZnJvbSAnLi4vZi1leHRlcm5hbC1pdGVtJztcbmltcG9ydCB7IFNpbmdsZVNlbGVjdFJlcXVlc3QgfSBmcm9tICcuL3NpbmdsZS1zZWxlY3QnO1xuaW1wb3J0IHsgTm9kZVJlc2l6ZUZpbmFsaXplUmVxdWVzdCwgTm9kZVJlc2l6ZVByZXBhcmF0aW9uUmVxdWVzdCB9IGZyb20gJy4vbm9kZS1yZXNpemUnO1xuaW1wb3J0IHsgU2VsZWN0aW9uQXJlYUZpbmFsaXplUmVxdWVzdCwgU2VsZWN0aW9uQXJlYVByZXBhcmF0aW9uUmVxdWVzdCB9IGZyb20gJy4vc2VsZWN0aW9uLWFyZWEnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6IFwiZi1mbG93W2ZEcmFnZ2FibGVdXCIsXG4gIGV4cG9ydEFzOiAnZkRyYWdnYWJsZScsXG4gIHByb3ZpZGVyczogW1xuICAgIHsgcHJvdmlkZTogRl9EUkFHR0FCTEUsIHVzZUV4aXN0aW5nOiBGRHJhZ2dhYmxlRGlyZWN0aXZlIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBGRHJhZ2dhYmxlRGlyZWN0aXZlIGV4dGVuZHMgRkRyYWdnYWJsZUJhc2UgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG5cbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zJDogU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIEBJbnB1dCgnZkRyYWdnYWJsZURpc2FibGVkJylcbiAgcHVibGljIG92ZXJyaWRlIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHVibGljIG92ZXJyaWRlIGdldCBob3N0RWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudFJlZmVyZW5jZS5uYXRpdmVFbGVtZW50O1xuICB9XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBvdmVycmlkZSBmU2VsZWN0aW9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RlNlbGVjdGlvbkNoYW5nZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8RlNlbGVjdGlvbkNoYW5nZUV2ZW50PigpO1xuXG4gIC8vIEBPdXRwdXQoKVxuICAvLyBwdWJsaWMgb3ZlcnJpZGUgZkNvbm5lY3Rpb25JbnRlcnNlY3ROb2RlOiBFdmVudEVtaXR0ZXI8Q29ubmVjdGlvbkludGVyc2VjdE5vZGVFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPENvbm5lY3Rpb25JbnRlcnNlY3ROb2RlRXZlbnQ+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBvdmVycmlkZSBmQ3JlYXRlTm9kZTogRXZlbnRFbWl0dGVyPEZDcmVhdGVOb2RlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxGQ3JlYXRlTm9kZUV2ZW50PigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgb3ZlcnJpZGUgZlJlYXNzaWduQ29ubmVjdGlvbjogRXZlbnRFbWl0dGVyPEZSZWFzc2lnbkNvbm5lY3Rpb25FdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEZSZWFzc2lnbkNvbm5lY3Rpb25FdmVudD4oKTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIG92ZXJyaWRlIGZDcmVhdGVDb25uZWN0aW9uOiBFdmVudEVtaXR0ZXI8RkNyZWF0ZUNvbm5lY3Rpb25FdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEZDcmVhdGVDb25uZWN0aW9uRXZlbnQ+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmZXJlbmNlOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICBwcml2YXRlIGZEcmFnZ2FibGVEYXRhQ29udGV4dDogRkRyYWdnYWJsZURhdGFDb250ZXh0LFxuICAgIG5nWm9uZTogTmdab25lLFxuICAgIHByaXZhdGUgZkNvbXBvbmVudHNTdG9yZTogRkNvbXBvbmVudHNTdG9yZSxcbiAgICBwcml2YXRlIGZNZWRpYXRvcjogRkZsb3dNZWRpYXRvcixcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvYzogRG9jdW1lbnRcbiAgKSB7XG4gICAgc3VwZXIobmdab25lKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmZDb21wb25lbnRzU3RvcmUuZkRyYWdnYWJsZSA9IHRoaXM7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHN1cGVyLnN1YnNjcmliZSh0aGlzLmRvYyk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgb25Qb2ludGVyRG93bihldmVudDogSVBvaW50ZXJFdmVudCk6IGJvb2xlYW4ge1xuICAgIHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0LnJlc2V0KCk7XG4gICAgbGV0IHJlc3VsdDogYm9vbGVhbiA9IGV2ZW50LmlzTW91c2VMZWZ0QnV0dG9uKCk7XG5cbiAgICB0aGlzLmZNZWRpYXRvci5zZW5kPHZvaWQ+KG5ldyBTaW5nbGVTZWxlY3RSZXF1ZXN0KGV2ZW50KSk7XG5cbiAgICB0aGlzLmZNZWRpYXRvci5zZW5kPHZvaWQ+KG5ldyBSZWFzc2lnbkNvbm5lY3Rpb25QcmVwYXJhdGlvblJlcXVlc3QoZXZlbnQpKTtcblxuICAgIHRoaXMuZk1lZGlhdG9yLnNlbmQ8dm9pZD4obmV3IENyZWF0ZUNvbm5lY3Rpb25QcmVwYXJhdGlvblJlcXVlc3QoZXZlbnQpKTtcblxuICAgIGlmICghcmVzdWx0KSB7XG4gICAgICB0aGlzLmZpbmFsaXplRHJhZ1NlcXVlbmNlKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBwcmVwYXJlRHJhZ1NlcXVlbmNlKGV2ZW50OiBJUG9pbnRlckV2ZW50KSB7XG4gICAgdGhpcy5mTWVkaWF0b3Iuc2VuZDx2b2lkPihuZXcgU2VsZWN0aW9uQXJlYVByZXBhcmF0aW9uUmVxdWVzdChldmVudCkpO1xuXG4gICAgdGhpcy5mTWVkaWF0b3Iuc2VuZDx2b2lkPihuZXcgTm9kZVJlc2l6ZVByZXBhcmF0aW9uUmVxdWVzdChldmVudCkpO1xuXG4gICAgdGhpcy5mTWVkaWF0b3Iuc2VuZDx2b2lkPihuZXcgTm9kZU1vdmVQcmVwYXJhdGlvblJlcXVlc3QoZXZlbnQpKTtcblxuICAgIHRoaXMuZk1lZGlhdG9yLnNlbmQ8dm9pZD4obmV3IENhbnZhc01vdmVQcmVwYXJhdGlvblJlcXVlc3QoZXZlbnQpKTtcblxuICAgIHRoaXMuZk1lZGlhdG9yLnNlbmQ8dm9pZD4obmV3IEV4dGVybmFsSXRlbVByZXBhcmF0aW9uUmVxdWVzdChldmVudCkpO1xuXG4gICAgdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuZHJhZ2dhYmxlSXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgaXRlbS5pbml0aWFsaXplPy4oKTtcbiAgICB9KTtcblxuICAgIGlmICh0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5kcmFnZ2FibGVJdGVtcy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmhvc3RFbGVtZW50LmNsYXNzTGlzdC5hZGQoJ2YtZHJhZ2dpbmcnKTtcbiAgICAgIHRoaXMuZW1pdFNlbGVjdGlvbkNoYW5nZUV2ZW50KCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIG9uU2VsZWN0KGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGlzVGFyZ2V0Tm90SHRtbCA9IGV2ZW50LmNvbnN0cnVjdG9yLm5hbWUgPT09ICdFdmVudCc7XG4gICAgY29uc3QgdGFyZ2V0ID0gaXNUYXJnZXROb3RIdG1sID8gKGV2ZW50LnRhcmdldCBhcyBOb2RlKS5wYXJlbnROb2RlIGFzIEhUTUxFbGVtZW50IDogZXZlbnQudGFyZ2V0O1xuICAgIGlmICh0YXJnZXQgJiYgaXNFeHRlcm5hbEl0ZW0odGFyZ2V0IGFzIEhUTUxFbGVtZW50KSkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgb25Qb2ludGVyTW92ZShldmVudDogSVBvaW50ZXJFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHBvaW50ZXJQb3NpdGlvbkluQ2FudmFzID0gUG9pbnQuZnJvbVBvaW50KGV2ZW50LmdldFBvc2l0aW9uKCkpLmVsZW1lbnRUcmFuc2Zvcm0odGhpcy5ob3N0RWxlbWVudCk7XG4gICAgY29uc3QgZGlmZmVyZW5jZSA9IHBvaW50ZXJQb3NpdGlvbkluQ2FudmFzLmRpdih0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5vblBvaW50ZXJEb3duU2NhbGUpLnN1Yih0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5vblBvaW50ZXJEb3duUG9zaXRpb24pO1xuICAgIHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0LmRyYWdnYWJsZUl0ZW1zLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgIGl0ZW0ubW92ZShkaWZmZXJlbmNlKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBvblBvaW50ZXJVcChldmVudDogSVBvaW50ZXJFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuZk1lZGlhdG9yLnNlbmQ8dm9pZD4obmV3IFJlYXNzaWduQ29ubmVjdGlvbkZpbmFsaXplUmVxdWVzdChldmVudCkpO1xuXG4gICAgdGhpcy5mTWVkaWF0b3Iuc2VuZDx2b2lkPihuZXcgQ3JlYXRlQ29ubmVjdGlvbkZpbmFsaXplUmVxdWVzdChldmVudCkpO1xuXG4gICAgdGhpcy5mTWVkaWF0b3Iuc2VuZDx2b2lkPihuZXcgU2VsZWN0aW9uQXJlYUZpbmFsaXplUmVxdWVzdChldmVudCkpO1xuXG4gICAgdGhpcy5mTWVkaWF0b3Iuc2VuZDx2b2lkPihuZXcgTm9kZVJlc2l6ZUZpbmFsaXplUmVxdWVzdChldmVudCkpO1xuXG4gICAgdGhpcy5mTWVkaWF0b3Iuc2VuZDx2b2lkPihuZXcgTm9kZU1vdmVGaW5hbGl6ZVJlcXVlc3QoZXZlbnQpKTtcblxuICAgIHRoaXMuZk1lZGlhdG9yLnNlbmQ8dm9pZD4obmV3IENhbnZhc01vdmVGaW5hbGl6ZVJlcXVlc3QoZXZlbnQpKTtcblxuICAgIHRoaXMuZk1lZGlhdG9yLnNlbmQ8dm9pZD4obmV3IEV4dGVybmFsSXRlbUZpbmFsaXplUmVxdWVzdChldmVudCkpO1xuXG4gICAgdGhpcy5ob3N0RWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCdmLWRyYWdnaW5nJyk7XG5cbiAgICB0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5yZXNldCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGZpbmFsaXplRHJhZ1NlcXVlbmNlKCk6IHZvaWQge1xuICAgIHRoaXMuZW1pdFNlbGVjdGlvbkNoYW5nZUV2ZW50KCk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRTZWxlY3Rpb25DaGFuZ2VFdmVudCgpOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICAhdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuaXNTZWxlY3RlZENoYW5nZWRcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5mU2VsZWN0aW9uQ2hhbmdlLmVtaXQodGhpcy5mTWVkaWF0b3Iuc2VuZDxGU2VsZWN0aW9uQ2hhbmdlRXZlbnQ+KG5ldyBHZXRTZWxlY3Rpb25SZXF1ZXN0KCkpKTtcbiAgICB0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5pc1NlbGVjdGVkQ2hhbmdlZCA9IGZhbHNlO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHN1cGVyLnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zJC51bnN1YnNjcmliZSgpO1xuICB9XG59XG5cbiJdfQ==
178
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1kcmFnZ2FibGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9mLWRyYWdnYWJsZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNVLGVBQWUsRUFDOUIsU0FBUyxFQUVULFlBQVksRUFBRSxNQUFNLEVBQ3BCLEtBQUssRUFDTCxNQUFNLEVBRUUsUUFBUSxFQUFFLE1BQU0sRUFDekIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUdqRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BDLE9BQU8sRUFBb0IsOEJBQThCLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoSCxPQUFPLEVBQWlCLEtBQUssRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNwRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDN0UsT0FBTyxFQUFFLHlCQUF5QixFQUFFLDRCQUE0QixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ25GLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBR0wsb0NBQW9DLEVBQ3BDLGlDQUFpQyxFQUNqQyxrQ0FBa0MsRUFDbEMsK0JBQStCLEVBQ2hDLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUM3RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdEQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLDRCQUE0QixFQUFFLE1BQU0s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QUFLLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNwQyxDQUFDO3VHQTNLVSxtQkFBbUIsaUZBZ0NwQixNQUFNLDBGQUdOLFFBQVE7MkZBbkNQLG1CQUFtQiwwUUFKbkI7WUFDVCxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFO1NBQzNELGtEQTRCZ0Isc0JBQXNCOzsyRkExQjVCLG1CQUFtQjtrQkFQL0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixRQUFRLEVBQUUsWUFBWTtvQkFDdEIsU0FBUyxFQUFFO3dCQUNULEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLHFCQUFxQixFQUFFO3FCQUMzRDtpQkFDRjs7MEJBaUNJLE1BQU07MkJBQUMsTUFBTTs7MEJBQUcsUUFBUTs7MEJBR3hCLE1BQU07MkJBQUMsUUFBUTt5Q0E5QkYsUUFBUTtzQkFEdkIsS0FBSzt1QkFBQyxvQkFBb0I7Z0JBUVgsZ0JBQWdCO3NCQUQvQixNQUFNO2dCQU9TLFdBQVc7c0JBRDFCLE1BQU07Z0JBSVMsbUJBQW1CO3NCQURsQyxNQUFNO2dCQUlTLGlCQUFpQjtzQkFEaEMsTUFBTTtnQkFJQyxPQUFPO3NCQURkLGVBQWU7dUJBQUMsc0JBQXNCLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCwgQ29udGVudENoaWxkcmVuLFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlciwgSW5qZWN0LFxuICBJbnB1dCxcbiAgTmdab25lLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCwgT3B0aW9uYWwsIE91dHB1dCwgUXVlcnlMaXN0XG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBGX0RSQUdHQUJMRSwgRkRyYWdnYWJsZUJhc2UgfSBmcm9tICcuL2YtZHJhZ2dhYmxlLWJhc2UnO1xuaW1wb3J0IHsgRkNvbXBvbmVudHNTdG9yZSB9IGZyb20gJy4uL2Ytc3RvcmFnZSc7XG5pbXBvcnQgeyBGRHJhZ2dhYmxlRGF0YUNvbnRleHQgfSBmcm9tICcuL2YtZHJhZ2dhYmxlLWRhdGEtY29udGV4dCc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZDcmVhdGVOb2RlRXZlbnQsIEV4dGVybmFsSXRlbVByZXBhcmF0aW9uUmVxdWVzdCwgRXh0ZXJuYWxJdGVtRmluYWxpemVSZXF1ZXN0IH0gZnJvbSAnLi9leHRlcm5hbC1pdGVtJztcbmltcG9ydCB7IElQb2ludGVyRXZlbnQsIFBvaW50IH0gZnJvbSAnQGZvYmxleC9jb3JlJztcbmltcG9ydCB7IE5vZGVNb3ZlRmluYWxpemVSZXF1ZXN0LCBOb2RlTW92ZVByZXBhcmF0aW9uUmVxdWVzdCB9IGZyb20gJy4vbm9kZSc7XG5pbXBvcnQgeyBDYW52YXNNb3ZlRmluYWxpemVSZXF1ZXN0LCBDYW52YXNNb3ZlUHJlcGFyYXRpb25SZXF1ZXN0IH0gZnJvbSAnLi9jYW52YXMnO1xuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgRkNyZWF0ZUNvbm5lY3Rpb25FdmVudCxcbiAgRlJlYXNzaWduQ29ubmVjdGlvbkV2ZW50LFxuICBSZWFzc2lnbkNvbm5lY3Rpb25QcmVwYXJhdGlvblJlcXVlc3QsXG4gIFJlYXNzaWduQ29ubmVjdGlvbkZpbmFsaXplUmVxdWVzdCxcbiAgQ3JlYXRlQ29ubmVjdGlvblByZXBhcmF0aW9uUmVxdWVzdCxcbiAgQ3JlYXRlQ29ubmVjdGlvbkZpbmFsaXplUmVxdWVzdFxufSBmcm9tICcuL2Nvbm5lY3Rpb25zJztcbmltcG9ydCB7IEZTZWxlY3Rpb25DaGFuZ2VFdmVudCB9IGZyb20gJy4vZi1zZWxlY3Rpb24tY2hhbmdlLWV2ZW50JztcbmltcG9ydCB7IEZGbG93TWVkaWF0b3IgfSBmcm9tICcuLi9pbmZyYXN0cnVjdHVyZSc7XG5pbXBvcnQgeyBFbWl0VHJhbnNmb3JtQ2hhbmdlc1JlcXVlc3QsIEdldFNlbGVjdGlvblJlcXVlc3QgfSBmcm9tICcuLi9kb21haW4nO1xuaW1wb3J0IHsgaXNFeHRlcm5hbEl0ZW0gfSBmcm9tICcuLi9mLWV4dGVybmFsLWl0ZW0nO1xuaW1wb3J0IHsgU2luZ2xlU2VsZWN0UmVxdWVzdCB9IGZyb20gJy4vc2luZ2xlLXNlbGVjdCc7XG5pbXBvcnQgeyBOb2RlUmVzaXplRmluYWxpemVSZXF1ZXN0LCBOb2RlUmVzaXplUHJlcGFyYXRpb25SZXF1ZXN0IH0gZnJvbSAnLi9ub2RlLXJlc2l6ZSc7XG5pbXBvcnQgeyBTZWxlY3Rpb25BcmVhRmluYWxpemVSZXF1ZXN0LCBTZWxlY3Rpb25BcmVhUHJlcGFyYXRpb25SZXF1ZXN0IH0gZnJvbSAnLi9zZWxlY3Rpb24tYXJlYSc7XG5pbXBvcnQgeyBJQ2FuUnVuT3V0c2lkZUFuZ3VsYXIgfSBmcm9tICcuL2ktY2FuLXJ1bi1vdXRzaWRlLWFuZ3VsYXInO1xuaW1wb3J0IHsgRl9EUkFHX0FORF9EUk9QX1BMVUdJTiwgSUZEcmFnQW5kRHJvcFBsdWdpbiB9IGZyb20gJy4vaS1mLWRyYWctYW5kLWRyb3AtcGx1Z2luJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiBcImYtZmxvd1tmRHJhZ2dhYmxlXVwiLFxuICBleHBvcnRBczogJ2ZEcmFnZ2FibGUnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IEZfRFJBR0dBQkxFLCB1c2VFeGlzdGluZzogRkRyYWdnYWJsZURpcmVjdGl2ZSB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRkRyYWdnYWJsZURpcmVjdGl2ZSBleHRlbmRzIEZEcmFnZ2FibGVCYXNlIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9ucyQ6IFN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICBASW5wdXQoJ2ZEcmFnZ2FibGVEaXNhYmxlZCcpXG4gIHB1YmxpYyBvdmVycmlkZSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHB1YmxpYyBvdmVycmlkZSBnZXQgaG9zdEVsZW1lbnQoKTogSFRNTEVsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnRSZWZlcmVuY2UubmF0aXZlRWxlbWVudDtcbiAgfVxuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgb3ZlcnJpZGUgZlNlbGVjdGlvbkNoYW5nZTogRXZlbnRFbWl0dGVyPEZTZWxlY3Rpb25DaGFuZ2VFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEZTZWxlY3Rpb25DaGFuZ2VFdmVudD4oKTtcblxuICAvLyBAT3V0cHV0KClcbiAgLy8gcHVibGljIG92ZXJyaWRlIGZDb25uZWN0aW9uSW50ZXJzZWN0Tm9kZTogRXZlbnRFbWl0dGVyPENvbm5lY3Rpb25JbnRlcnNlY3ROb2RlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxDb25uZWN0aW9uSW50ZXJzZWN0Tm9kZUV2ZW50PigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgb3ZlcnJpZGUgZkNyZWF0ZU5vZGU6IEV2ZW50RW1pdHRlcjxGQ3JlYXRlTm9kZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8RkNyZWF0ZU5vZGVFdmVudD4oKTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIG92ZXJyaWRlIGZSZWFzc2lnbkNvbm5lY3Rpb246IEV2ZW50RW1pdHRlcjxGUmVhc3NpZ25Db25uZWN0aW9uRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxGUmVhc3NpZ25Db25uZWN0aW9uRXZlbnQ+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBvdmVycmlkZSBmQ3JlYXRlQ29ubmVjdGlvbjogRXZlbnRFbWl0dGVyPEZDcmVhdGVDb25uZWN0aW9uRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxGQ3JlYXRlQ29ubmVjdGlvbkV2ZW50PigpO1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oRl9EUkFHX0FORF9EUk9QX1BMVUdJTiwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICBwcml2YXRlIHBsdWdpbnMhOiBRdWVyeUxpc3Q8SUZEcmFnQW5kRHJvcFBsdWdpbj47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmZXJlbmNlOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICBwcml2YXRlIGZEcmFnZ2FibGVEYXRhQ29udGV4dDogRkRyYWdnYWJsZURhdGFDb250ZXh0LFxuICAgIEBJbmplY3QoTmdab25lKSBAT3B0aW9uYWwoKSBuZ1pvbmU6IElDYW5SdW5PdXRzaWRlQW5ndWxhcixcbiAgICBwcml2YXRlIGZDb21wb25lbnRzU3RvcmU6IEZDb21wb25lbnRzU3RvcmUsXG4gICAgcHJpdmF0ZSBmTWVkaWF0b3I6IEZGbG93TWVkaWF0b3IsXG4gICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2M6IERvY3VtZW50XG4gICkge1xuICAgIHN1cGVyKG5nWm9uZSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5mQ29tcG9uZW50c1N0b3JlLmZEcmFnZ2FibGUgPSB0aGlzO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBzdXBlci5zdWJzY3JpYmUodGhpcy5kb2MpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIG9uUG9pbnRlckRvd24oZXZlbnQ6IElQb2ludGVyRXZlbnQpOiBib29sZWFuIHtcbiAgICB0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5yZXNldCgpO1xuICAgIGxldCByZXN1bHQ6IGJvb2xlYW4gPSBldmVudC5pc01vdXNlTGVmdEJ1dHRvbigpO1xuXG4gICAgdGhpcy5wbHVnaW5zLmZvckVhY2goKHApID0+IHtcbiAgICAgIHAub25Qb2ludGVyRG93bj8uKGV2ZW50KTtcbiAgICB9KTtcblxuICAgIHRoaXMuZk1lZGlhdG9yLnNlbmQ8dm9pZD4obmV3IFNpbmdsZVNlbGVjdFJlcXVlc3QoZXZlbnQpKTtcblxuICAgIHRoaXMuZk1lZGlhdG9yLnNlbmQ8dm9pZD4obmV3IFJlYXNzaWduQ29ubmVjdGlvblByZXBhcmF0aW9uUmVxdWVzdChldmVudCkpO1xuXG4gICAgdGhpcy5mTWVkaWF0b3Iuc2VuZDx2b2lkPihuZXcgQ3JlYXRlQ29ubmVjdGlvblByZXBhcmF0aW9uUmVxdWVzdChldmVudCkpO1xuXG4gICAgaWYgKCFyZXN1bHQpIHtcbiAgICAgIHRoaXMuZmluYWxpemVEcmFnU2VxdWVuY2UoKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBwcmVwYXJlRHJhZ1NlcXVlbmNlKGV2ZW50OiBJUG9pbnRlckV2ZW50KSB7XG5cbiAgICB0aGlzLnBsdWdpbnMuZm9yRWFjaCgocCkgPT4ge1xuICAgICAgcC5wcmVwYXJlRHJhZ1NlcXVlbmNlPy4oZXZlbnQpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5mTWVkaWF0b3Iuc2VuZDx2b2lkPihuZXcgU2VsZWN0aW9uQXJlYVByZXBhcmF0aW9uUmVxdWVzdChldmVudCkpO1xuXG4gICAgdGhpcy5mTWVkaWF0b3Iuc2VuZDx2b2lkPihuZXcgTm9kZVJlc2l6ZVByZXBhcmF0aW9uUmVxdWVzdChldmVudCkpO1xuXG4gICAgdGhpcy5mTWVkaWF0b3Iuc2VuZDx2b2lkPihuZXcgTm9kZU1vdmVQcmVwYXJhdGlvblJlcXVlc3QoZXZlbnQpKTtcblxuICAgIHRoaXMuZk1lZGlhdG9yLnNlbmQ8dm9pZD4obmV3IENhbnZhc01vdmVQcmVwYXJhdGlvblJlcXVlc3QoZXZlbnQpKTtcblxuICAgIHRoaXMuZk1lZGlhdG9yLnNlbmQ8dm9pZD4obmV3IEV4dGVybmFsSXRlbVByZXBhcmF0aW9uUmVxdWVzdChldmVudCkpO1xuXG4gICAgdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuZHJhZ2dhYmxlSXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgaXRlbS5pbml0aWFsaXplPy4oKTtcbiAgICB9KTtcblxuICAgIGlmICh0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5kcmFnZ2FibGVJdGVtcy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmhvc3RFbGVtZW50LmNsYXNzTGlzdC5hZGQoJ2YtZHJhZ2dpbmcnKTtcbiAgICAgIHRoaXMuZW1pdFNlbGVjdGlvbkNoYW5nZUV2ZW50KCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIG9uU2VsZWN0KGV2ZW50OiBFdmVudCk6IHZvaWQge1xuXG4gICAgdGhpcy5wbHVnaW5zLmZvckVhY2goKHApID0+IHtcbiAgICAgIHAub25TZWxlY3Q/LihldmVudCk7XG4gICAgfSk7XG5cbiAgICBpZiAodGhpcy5pc1RhcmdldEl0ZW1FeHRlcm5hbChldmVudCkpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpc1RhcmdldEl0ZW1FeHRlcm5hbChldmVudDogRXZlbnQpOiBib29sZWFuIHtcbiAgICBsZXQgaXNUYXJnZXRJdGVtRXh0ZXJuYWwgPSB0aGlzLmlzRXh0ZXJuYWxJdGVtKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCk7XG4gICAgbGV0IGlzVGFyZ2V0UGFyZW50SXRlbUV4dGVybmFsID0gdGhpcy5pc0V4dGVybmFsSXRlbSgoZXZlbnQudGFyZ2V0IGFzIE5vZGUpLnBhcmVudE5vZGUgYXMgSFRNTEVsZW1lbnQpO1xuICAgIHJldHVybiBpc1RhcmdldEl0ZW1FeHRlcm5hbCB8fCBpc1RhcmdldFBhcmVudEl0ZW1FeHRlcm5hbDtcbiAgfVxuXG4gIHByaXZhdGUgaXNFeHRlcm5hbEl0ZW0odGFyZ2V0OiBIVE1MRWxlbWVudCk6IGJvb2xlYW4ge1xuICAgIGxldCByZXN1bHQgPSBmYWxzZTtcbiAgICB0cnkge1xuICAgICAgcmVzdWx0ID0gaXNFeHRlcm5hbEl0ZW0odGFyZ2V0KTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgb25Qb2ludGVyTW92ZShldmVudDogSVBvaW50ZXJFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHBvaW50ZXJQb3NpdGlvbkluQ2FudmFzID0gUG9pbnQuZnJvbVBvaW50KGV2ZW50LmdldFBvc2l0aW9uKCkpLmVsZW1lbnRUcmFuc2Zvcm0odGhpcy5ob3N0RWxlbWVudCk7XG4gICAgY29uc3QgZGlmZmVyZW5jZSA9IHBvaW50ZXJQb3NpdGlvbkluQ2FudmFzLmRpdih0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5vblBvaW50ZXJEb3duU2NhbGUpLnN1Yih0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5vblBvaW50ZXJEb3duUG9zaXRpb24pO1xuICAgIHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0LmRyYWdnYWJsZUl0ZW1zLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgIGl0ZW0ubW92ZShkaWZmZXJlbmNlKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBvblBvaW50ZXJVcChldmVudDogSVBvaW50ZXJFdmVudCk6IHZvaWQge1xuXG4gICAgdGhpcy5wbHVnaW5zLmZvckVhY2goKHApID0+IHtcbiAgICAgIHAub25Qb2ludGVyVXA/LihldmVudCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLmZNZWRpYXRvci5zZW5kPHZvaWQ+KG5ldyBSZWFzc2lnbkNvbm5lY3Rpb25GaW5hbGl6ZVJlcXVlc3QoZXZlbnQpKTtcblxuICAgIHRoaXMuZk1lZGlhdG9yLnNlbmQ8dm9pZD4obmV3IENyZWF0ZUNvbm5lY3Rpb25GaW5hbGl6ZVJlcXVlc3QoZXZlbnQpKTtcblxuICAgIHRoaXMuZk1lZGlhdG9yLnNlbmQ8dm9pZD4obmV3IFNlbGVjdGlvbkFyZWFGaW5hbGl6ZVJlcXVlc3QoZXZlbnQpKTtcblxuICAgIHRoaXMuZk1lZGlhdG9yLnNlbmQ8dm9pZD4obmV3IE5vZGVSZXNpemVGaW5hbGl6ZVJlcXVlc3QoZXZlbnQpKTtcblxuICAgIHRoaXMuZk1lZGlhdG9yLnNlbmQ8dm9pZD4obmV3IE5vZGVNb3ZlRmluYWxpemVSZXF1ZXN0KGV2ZW50KSk7XG5cbiAgICB0aGlzLmZNZWRpYXRvci5zZW5kPHZvaWQ+KG5ldyBDYW52YXNNb3ZlRmluYWxpemVSZXF1ZXN0KGV2ZW50KSk7XG5cbiAgICB0aGlzLmZNZWRpYXRvci5zZW5kPHZvaWQ+KG5ldyBFeHRlcm5hbEl0ZW1GaW5hbGl6ZVJlcXVlc3QoZXZlbnQpKTtcblxuICAgIHRoaXMuaG9zdEVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZSgnZi1kcmFnZ2luZycpO1xuXG4gICAgdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQucmVzZXQoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBmaW5hbGl6ZURyYWdTZXF1ZW5jZSgpOiB2b2lkIHtcbiAgICB0aGlzLmVtaXRTZWxlY3Rpb25DaGFuZ2VFdmVudCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0U2VsZWN0aW9uQ2hhbmdlRXZlbnQoKTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgIXRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0LmlzU2VsZWN0ZWRDaGFuZ2VkXG4gICAgKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuZlNlbGVjdGlvbkNoYW5nZS5lbWl0KHRoaXMuZk1lZGlhdG9yLnNlbmQ8RlNlbGVjdGlvbkNoYW5nZUV2ZW50PihuZXcgR2V0U2VsZWN0aW9uUmVxdWVzdCgpKSk7XG4gICAgdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuaXNTZWxlY3RlZENoYW5nZWQgPSBmYWxzZTtcbiAgICB0aGlzLmZNZWRpYXRvci5zZW5kPHZvaWQ+KG5ldyBFbWl0VHJhbnNmb3JtQ2hhbmdlc1JlcXVlc3QoKSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgc3VwZXIudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMkLnVuc3Vic2NyaWJlKCk7XG4gIH1cbn1cblxuIl19
@@ -0,0 +1,3 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ export const F_DRAG_AND_DROP_PLUGIN = new InjectionToken('F_DRAG_AND_DROP_PLUGIN');
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaS1mLWRyYWctYW5kLWRyb3AtcGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9pLWYtZHJhZy1hbmQtZHJvcC1wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvQyxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBd0MsSUFBSSxjQUFjLENBQXNCLHdCQUF3QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJUG9pbnRlckV2ZW50IH0gZnJvbSAnQGZvYmxleC9jb3JlJztcbmltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBjb25zdCBGX0RSQUdfQU5EX0RST1BfUExVR0lOOiBJbmplY3Rpb25Ub2tlbjxJRkRyYWdBbmREcm9wUGx1Z2luPiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxJRkRyYWdBbmREcm9wUGx1Z2luPignRl9EUkFHX0FORF9EUk9QX1BMVUdJTicpO1xuXG5leHBvcnQgaW50ZXJmYWNlIElGRHJhZ0FuZERyb3BQbHVnaW4ge1xuXG4gIG9uU2VsZWN0PyhldmVudDogRXZlbnQpOiB2b2lkO1xuXG4gIG9uUG9pbnRlckRvd24/KGV2ZW50OiBJUG9pbnRlckV2ZW50KTogdm9pZDtcblxuICBwcmVwYXJlRHJhZ1NlcXVlbmNlPyhldmVudDogSVBvaW50ZXJFdmVudCk6IHZvaWQ7XG5cbiAgb25Qb2ludGVyVXA/KGV2ZW50OiBJUG9pbnRlckV2ZW50KTogdm9pZDtcbn1cbiJdfQ==
@@ -11,6 +11,7 @@ export * from './f-draggable-base';
11
11
  export * from './f-draggable-data-context';
12
12
  export * from './f-selection-change-event';
13
13
  export * from './i-can-run-outside-angular';
14
+ export * from './i-f-drag-and-drop-plugin';
14
15
  export * from './i-draggable-item';
15
16
  export * from './providers';
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsVUFBVSxDQUFDO0FBRXpCLGNBQWMsZUFBZSxDQUFDO0FBRTlCLGNBQWMsaUJBQWlCLENBQUM7QUFFaEMsY0FBYyxRQUFRLENBQUM7QUFFdkIsY0FBYyxlQUFlLENBQUM7QUFFOUIsY0FBYyxrQkFBa0IsQ0FBQztBQUVqQyxjQUFjLGlCQUFpQixDQUFDO0FBRWhDLGNBQWMsc0JBQXNCLENBQUM7QUFFckMsY0FBYyx5QkFBeUIsQ0FBQztBQUV4QyxjQUFjLG9CQUFvQixDQUFDO0FBRW5DLGNBQWMsNEJBQTRCLENBQUM7QUFFM0MsY0FBYyw0QkFBNEIsQ0FBQztBQUUzQyxjQUFjLDZCQUE2QixDQUFDO0FBRTVDLGNBQWMsb0JBQW9CLENBQUM7QUFFbkMsY0FBYyxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NhbnZhcyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vY29ubmVjdGlvbnMnO1xuXG5leHBvcnQgKiBmcm9tICcuL2V4dGVybmFsLWl0ZW0nO1xuXG5leHBvcnQgKiBmcm9tICcuL25vZGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL25vZGUtcmVzaXplJztcblxuZXhwb3J0ICogZnJvbSAnLi9zZWxlY3Rpb24tYXJlYSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vc2luZ2xlLXNlbGVjdCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vZS1mLWRyYWdnYWJsZS10eXBlJztcblxuZXhwb3J0ICogZnJvbSAnLi9mLWRyYWdnYWJsZS5kaXJlY3RpdmUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2YtZHJhZ2dhYmxlLWJhc2UnO1xuXG5leHBvcnQgKiBmcm9tICcuL2YtZHJhZ2dhYmxlLWRhdGEtY29udGV4dCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vZi1zZWxlY3Rpb24tY2hhbmdlLWV2ZW50JztcblxuZXhwb3J0ICogZnJvbSAnLi9pLWNhbi1ydW4tb3V0c2lkZS1hbmd1bGFyJztcblxuZXhwb3J0ICogZnJvbSAnLi9pLWRyYWdnYWJsZS1pdGVtJztcblxuZXhwb3J0ICogZnJvbSAnLi9wcm92aWRlcnMnO1xuXG5cblxuIl19
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsVUFBVSxDQUFDO0FBRXpCLGNBQWMsZUFBZSxDQUFDO0FBRTlCLGNBQWMsaUJBQWlCLENBQUM7QUFFaEMsY0FBYyxRQUFRLENBQUM7QUFFdkIsY0FBYyxlQUFlLENBQUM7QUFFOUIsY0FBYyxrQkFBa0IsQ0FBQztBQUVqQyxjQUFjLGlCQUFpQixDQUFDO0FBRWhDLGNBQWMsc0JBQXNCLENBQUM7QUFFckMsY0FBYyx5QkFBeUIsQ0FBQztBQUV4QyxjQUFjLG9CQUFvQixDQUFDO0FBRW5DLGNBQWMsNEJBQTRCLENBQUM7QUFFM0MsY0FBYyw0QkFBNEIsQ0FBQztBQUUzQyxjQUFjLDZCQUE2QixDQUFDO0FBRTVDLGNBQWMsNEJBQTRCLENBQUM7QUFFM0MsY0FBYyxvQkFBb0IsQ0FBQztBQUVuQyxjQUFjLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY2FudmFzJztcblxuZXhwb3J0ICogZnJvbSAnLi9jb25uZWN0aW9ucyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vZXh0ZXJuYWwtaXRlbSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbm9kZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbm9kZS1yZXNpemUnO1xuXG5leHBvcnQgKiBmcm9tICcuL3NlbGVjdGlvbi1hcmVhJztcblxuZXhwb3J0ICogZnJvbSAnLi9zaW5nbGUtc2VsZWN0JztcblxuZXhwb3J0ICogZnJvbSAnLi9lLWYtZHJhZ2dhYmxlLXR5cGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2YtZHJhZ2dhYmxlLmRpcmVjdGl2ZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vZi1kcmFnZ2FibGUtYmFzZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vZi1kcmFnZ2FibGUtZGF0YS1jb250ZXh0JztcblxuZXhwb3J0ICogZnJvbSAnLi9mLXNlbGVjdGlvbi1jaGFuZ2UtZXZlbnQnO1xuXG5leHBvcnQgKiBmcm9tICcuL2ktY2FuLXJ1bi1vdXRzaWRlLWFuZ3VsYXInO1xuXG5leHBvcnQgKiBmcm9tICcuL2ktZi1kcmFnLWFuZC1kcm9wLXBsdWdpbic7XG5cbmV4cG9ydCAqIGZyb20gJy4vaS1kcmFnZ2FibGUtaXRlbSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vcHJvdmlkZXJzJztcblxuXG5cbiJdfQ==
@@ -5,6 +5,7 @@ import { EXTERNAL_ITEM_PROVIDERS } from './external-item';
5
5
  import { NODE_PROVIDERS } from './node';
6
6
  import { NODE_RESIZE_PROVIDERS } from './node-resize';
7
7
  import { SELECTION_AREA_PROVIDERS } from './selection-area';
8
+ import { F_MINIMAP_DRAG_AND_DROP_PROVIDERS } from '../f-minimap/domain/providers';
8
9
  export const F_DRAGGABLE_PROVIDERS = [
9
10
  ...CANVAS_PROVIDERS,
10
11
  ...CONNECTIONS_PROVIDERS,
@@ -12,6 +13,7 @@ export const F_DRAGGABLE_PROVIDERS = [
12
13
  ...EXTERNAL_ITEM_PROVIDERS,
13
14
  ...NODE_PROVIDERS,
14
15
  ...NODE_RESIZE_PROVIDERS,
15
- ...SELECTION_AREA_PROVIDERS
16
+ ...SELECTION_AREA_PROVIDERS,
17
+ ...F_MINIMAP_DRAG_AND_DROP_PROVIDERS
16
18
  ];
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9wcm92aWRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUU1RCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRztJQUVuQyxHQUFHLGdCQUFnQjtJQUVuQixHQUFHLHFCQUFxQjtJQUV4QixHQUFHLHVCQUF1QjtJQUUxQixHQUFHLHVCQUF1QjtJQUUxQixHQUFHLGNBQWM7SUFFakIsR0FBRyxxQkFBcUI7SUFFeEIsR0FBRyx3QkFBd0I7Q0FDNUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENBTlZBU19QUk9WSURFUlMgfSBmcm9tICcuL2NhbnZhcyc7XG5pbXBvcnQgeyBDT05ORUNUSU9OU19QUk9WSURFUlMgfSBmcm9tICcuL2Nvbm5lY3Rpb25zJztcbmltcG9ydCB7IFNJTkdMRV9TRUxFQ1RfUFJPVklERVJTIH0gZnJvbSAnLi9zaW5nbGUtc2VsZWN0JztcbmltcG9ydCB7IEVYVEVSTkFMX0lURU1fUFJPVklERVJTIH0gZnJvbSAnLi9leHRlcm5hbC1pdGVtJztcbmltcG9ydCB7IE5PREVfUFJPVklERVJTIH0gZnJvbSAnLi9ub2RlJztcbmltcG9ydCB7IE5PREVfUkVTSVpFX1BST1ZJREVSUyB9IGZyb20gJy4vbm9kZS1yZXNpemUnO1xuaW1wb3J0IHsgU0VMRUNUSU9OX0FSRUFfUFJPVklERVJTIH0gZnJvbSAnLi9zZWxlY3Rpb24tYXJlYSc7XG5cbmV4cG9ydCBjb25zdCBGX0RSQUdHQUJMRV9QUk9WSURFUlMgPSBbXG5cbiAgLi4uQ0FOVkFTX1BST1ZJREVSUyxcblxuICAuLi5DT05ORUNUSU9OU19QUk9WSURFUlMsXG5cbiAgLi4uU0lOR0xFX1NFTEVDVF9QUk9WSURFUlMsXG5cbiAgLi4uRVhURVJOQUxfSVRFTV9QUk9WSURFUlMsXG5cbiAgLi4uTk9ERV9QUk9WSURFUlMsXG5cbiAgLi4uTk9ERV9SRVNJWkVfUFJPVklERVJTLFxuXG4gIC4uLlNFTEVDVElPTl9BUkVBX1BST1ZJREVSU1xuXTtcbiJdfQ==
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9wcm92aWRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUVsRixNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRztJQUVuQyxHQUFHLGdCQUFnQjtJQUVuQixHQUFHLHFCQUFxQjtJQUV4QixHQUFHLHVCQUF1QjtJQUUxQixHQUFHLHVCQUF1QjtJQUUxQixHQUFHLGNBQWM7SUFFakIsR0FBRyxxQkFBcUI7SUFFeEIsR0FBRyx3QkFBd0I7SUFFM0IsR0FBRyxpQ0FBaUM7Q0FDckMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENBTlZBU19QUk9WSURFUlMgfSBmcm9tICcuL2NhbnZhcyc7XG5pbXBvcnQgeyBDT05ORUNUSU9OU19QUk9WSURFUlMgfSBmcm9tICcuL2Nvbm5lY3Rpb25zJztcbmltcG9ydCB7IFNJTkdMRV9TRUxFQ1RfUFJPVklERVJTIH0gZnJvbSAnLi9zaW5nbGUtc2VsZWN0JztcbmltcG9ydCB7IEVYVEVSTkFMX0lURU1fUFJPVklERVJTIH0gZnJvbSAnLi9leHRlcm5hbC1pdGVtJztcbmltcG9ydCB7IE5PREVfUFJPVklERVJTIH0gZnJvbSAnLi9ub2RlJztcbmltcG9ydCB7IE5PREVfUkVTSVpFX1BST1ZJREVSUyB9IGZyb20gJy4vbm9kZS1yZXNpemUnO1xuaW1wb3J0IHsgU0VMRUNUSU9OX0FSRUFfUFJPVklERVJTIH0gZnJvbSAnLi9zZWxlY3Rpb24tYXJlYSc7XG5pbXBvcnQgeyBGX01JTklNQVBfRFJBR19BTkRfRFJPUF9QUk9WSURFUlMgfSBmcm9tICcuLi9mLW1pbmltYXAvZG9tYWluL3Byb3ZpZGVycyc7XG5cbmV4cG9ydCBjb25zdCBGX0RSQUdHQUJMRV9QUk9WSURFUlMgPSBbXG5cbiAgLi4uQ0FOVkFTX1BST1ZJREVSUyxcblxuICAuLi5DT05ORUNUSU9OU19QUk9WSURFUlMsXG5cbiAgLi4uU0lOR0xFX1NFTEVDVF9QUk9WSURFUlMsXG5cbiAgLi4uRVhURVJOQUxfSVRFTV9QUk9WSURFUlMsXG5cbiAgLi4uTk9ERV9QUk9WSURFUlMsXG5cbiAgLi4uTk9ERV9SRVNJWkVfUFJPVklERVJTLFxuXG4gIC4uLlNFTEVDVElPTl9BUkVBX1BST1ZJREVSUyxcblxuICAuLi5GX01JTklNQVBfRFJBR19BTkRfRFJPUF9QUk9WSURFUlNcbl07XG4iXX0=
@@ -1,5 +1,6 @@
1
1
  import { Point, RectExtensions } from '@foblex/core';
2
2
  import { EFDraggableType } from '../e-f-draggable-type';
3
+ import { EmitTransformChangesRequest } from '../../domain';
3
4
  import { GetCanBeSelectedItemsRequest } from '../../domain/get-can-be-selected-items/get-can-be-selected-items-request';
4
5
  export class SelectionAreaDragHandle {
5
6
  fComponentsStore;
@@ -43,6 +44,7 @@ export class SelectionAreaDragHandle {
43
44
  this.selectedByMove.push(item.element);
44
45
  }
45
46
  });
47
+ this.fMediator.send(new EmitTransformChangesRequest());
46
48
  }
47
49
  complete() {
48
50
  this.fDraggableDataContext.fSelectionArea?.hide();
@@ -52,4 +54,4 @@ export class SelectionAreaDragHandle {
52
54
  }
53
55
  }
54
56
  }
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLWFyZWEuZHJhZy1oYW5kbGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL3NlbGVjdGlvbi1hcmVhL3NlbGVjdGlvbi1hcmVhLmRyYWctaGFuZGxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBVSxLQUFLLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTdELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQU14RCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwwRUFBMEUsQ0FBQztBQUV4SCxNQUFNLE9BQU8sdUJBQXVCO0lBYXRCO0lBQ0E7SUFDQTtJQWJJLElBQUksR0FBb0IsZUFBZSxDQUFDLFNBQVMsQ0FBQztJQUUxRCxhQUFhLEdBQTBCLEVBQUUsQ0FBQztJQUUxQyxjQUFjLEdBQWtCLEVBQUUsQ0FBQztJQUUzQyxJQUFZLGNBQWM7UUFDeEIsT0FBTyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFRLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBUSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN6SSxDQUFDO0lBRUQsWUFDWSxnQkFBa0MsRUFDbEMscUJBQTRDLEVBQzVDLFNBQXdCO1FBRnhCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQUM1QyxjQUFTLEdBQVQsU0FBUyxDQUFlO0lBRXBDLENBQUM7SUFFTSxVQUFVO1FBQ2YsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLDRCQUE0QixFQUFFLENBQUMsQ0FBQztRQUU3RSxJQUFJLENBQUMscUJBQXFCLENBQUMsY0FBYyxFQUFFLElBQUksRUFBRSxDQUFDO1FBQ2xELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDO1lBQzlDLElBQUksRUFBRSxJQUFJLENBQUMscUJBQXFCLENBQUMscUJBQXFCLENBQUMsQ0FBQztZQUN4RCxHQUFHLEVBQUUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLHFCQUFxQixDQUFDLENBQUM7WUFDdkQsS0FBSyxFQUFFLENBQUM7WUFDUixNQUFNLEVBQUUsQ0FBQztTQUNWLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxJQUFJLENBQUMsVUFBa0I7UUFDNUIsTUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDdkcsTUFBTSxDQUFDLEdBQVcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMscUJBQXFCLENBQUMsQ0FBQyxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMvRixNQUFNLENBQUMsR0FBVyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRS9GLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXRDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ3BGLElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDbEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUV4QixNQUFNLFFBQVEsR0FBRyxjQUFjLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBRXpFLE1BQU0sV0FBVyxHQUFHLGNBQWMsQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLEVBQUUsY0FBYyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBQ2xILElBQUksV0FBVyxFQUFFLENBQUM7Z0JBRWhCLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ3RCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN6QyxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sUUFBUTtRQUNiLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxjQUFjLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFDbEQsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDdEUsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMscUJBQXFCLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO1FBQ3RELENBQUM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJUG9pbnQsIFBvaW50LCBSZWN0RXh0ZW5zaW9ucyB9IGZyb20gJ0Bmb2JsZXgvY29yZSc7XG5pbXBvcnQgeyBJRHJhZ2dhYmxlSXRlbSB9IGZyb20gJy4uL2ktZHJhZ2dhYmxlLWl0ZW0nO1xuaW1wb3J0IHsgRUZEcmFnZ2FibGVUeXBlIH0gZnJvbSAnLi4vZS1mLWRyYWdnYWJsZS10eXBlJztcbmltcG9ydCB7IEZDb21wb25lbnRzU3RvcmUgfSBmcm9tICcuLi8uLi9mLXN0b3JhZ2UnO1xuaW1wb3J0IHsgRkRyYWdnYWJsZURhdGFDb250ZXh0IH0gZnJvbSAnLi4vZi1kcmFnZ2FibGUtZGF0YS1jb250ZXh0JztcbmltcG9ydCB7IElTZWxlY3RhYmxlV2l0aFJlY3QgfSBmcm9tICcuLi8uLi9kb21haW4nO1xuaW1wb3J0IHsgSVNlbGVjdGFibGUgfSBmcm9tICcuLi8uLi9mLWNvbm5lY3Rpb24nO1xuaW1wb3J0IHsgRkZsb3dNZWRpYXRvciB9IGZyb20gJy4uLy4uL2luZnJhc3RydWN0dXJlJztcbmltcG9ydCB7IEdldENhbkJlU2VsZWN0ZWRJdGVtc1JlcXVlc3QgfSBmcm9tICcuLi8uLi9kb21haW4vZ2V0LWNhbi1iZS1zZWxlY3RlZC1pdGVtcy9nZXQtY2FuLWJlLXNlbGVjdGVkLWl0ZW1zLXJlcXVlc3QnO1xuXG5leHBvcnQgY2xhc3MgU2VsZWN0aW9uQXJlYURyYWdIYW5kbGUgaW1wbGVtZW50cyBJRHJhZ2dhYmxlSXRlbSB7XG5cbiAgcHVibGljIHJlYWRvbmx5IHR5cGU6IEVGRHJhZ2dhYmxlVHlwZSA9IEVGRHJhZ2dhYmxlVHlwZS5TRUxFQ1RJT047XG5cbiAgcHJpdmF0ZSBjYW5CZVNlbGVjdGVkOiBJU2VsZWN0YWJsZVdpdGhSZWN0W10gPSBbXTtcblxuICBwcml2YXRlIHNlbGVjdGVkQnlNb3ZlOiBJU2VsZWN0YWJsZVtdID0gW107XG5cbiAgcHJpdmF0ZSBnZXQgY2FudmFzUG9zaXRpb24oKTogUG9pbnQge1xuICAgIHJldHVybiBQb2ludC5mcm9tUG9pbnQodGhpcy5mQ29tcG9uZW50c1N0b3JlLmZDYW52YXMhLnRyYW5zZm9ybS5wb3NpdGlvbikuYWRkKHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mQ2FudmFzIS50cmFuc2Zvcm0uc2NhbGVkUG9zaXRpb24pO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgICBwcml2YXRlIGZDb21wb25lbnRzU3RvcmU6IEZDb21wb25lbnRzU3RvcmUsXG4gICAgICBwcml2YXRlIGZEcmFnZ2FibGVEYXRhQ29udGV4dDogRkRyYWdnYWJsZURhdGFDb250ZXh0LFxuICAgICAgcHJpdmF0ZSBmTWVkaWF0b3I6IEZGbG93TWVkaWF0b3IsXG4gICkge1xuICB9XG5cbiAgcHVibGljIGluaXRpYWxpemUoKTogdm9pZCB7XG4gICAgdGhpcy5jYW5CZVNlbGVjdGVkID0gdGhpcy5mTWVkaWF0b3Iuc2VuZChuZXcgR2V0Q2FuQmVTZWxlY3RlZEl0ZW1zUmVxdWVzdCgpKTtcblxuICAgIHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0LmZTZWxlY3Rpb25BcmVhPy5zaG93KCk7XG4gICAgdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuZlNlbGVjdGlvbkFyZWE/LmRyYXcoe1xuICAgICAgbGVmdDogdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQub25Qb2ludGVyRG93blBvc2l0aW9uLngsXG4gICAgICB0b3A6IHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0Lm9uUG9pbnRlckRvd25Qb3NpdGlvbi55LFxuICAgICAgd2lkdGg6IDAsXG4gICAgICBoZWlnaHQ6IDBcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBtb3ZlKGRpZmZlcmVuY2U6IElQb2ludCk6IHZvaWQge1xuICAgIGNvbnN0IGN1cnJlbnRQb2ludCA9IFBvaW50LmZyb21Qb2ludChkaWZmZXJlbmNlKS5hZGQodGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQub25Qb2ludGVyRG93blBvc2l0aW9uKTtcbiAgICBjb25zdCB4OiBudW1iZXIgPSBNYXRoLm1pbih0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5vblBvaW50ZXJEb3duUG9zaXRpb24ueCwgY3VycmVudFBvaW50LngpO1xuICAgIGNvbnN0IHk6IG51bWJlciA9IE1hdGgubWluKHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0Lm9uUG9pbnRlckRvd25Qb3NpdGlvbi55LCBjdXJyZW50UG9pbnQueSk7XG5cbiAgICBjb25zdCB3aWR0aCA9IE1hdGguYWJzKGRpZmZlcmVuY2UueCk7XG4gICAgY29uc3QgaGVpZ2h0ID0gTWF0aC5hYnMoZGlmZmVyZW5jZS55KTtcblxuICAgIHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0LmZTZWxlY3Rpb25BcmVhPy5kcmF3KHsgbGVmdDogeCwgdG9wOiB5LCB3aWR0aCwgaGVpZ2h0IH0pO1xuICAgIHRoaXMuc2VsZWN0ZWRCeU1vdmUgPSBbXTtcbiAgICB0aGlzLmNhbkJlU2VsZWN0ZWQuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgaXRlbS5lbGVtZW50LmRlc2VsZWN0KCk7XG5cbiAgICAgIGNvbnN0IGl0ZW1SZWN0ID0gUmVjdEV4dGVuc2lvbnMuYWRkUG9pbnQoaXRlbS5yZWN0LCB0aGlzLmNhbnZhc1Bvc2l0aW9uKTtcblxuICAgICAgY29uc3QgaXNJbnRlcnNlY3QgPSBSZWN0RXh0ZW5zaW9ucy5pbnRlcnNlY3Rpb25XaXRoUmVjdChpdGVtUmVjdCwgUmVjdEV4dGVuc2lvbnMuaW5pdGlhbGl6ZSh4LCB5LCB3aWR0aCwgaGVpZ2h0KSk7XG4gICAgICBpZiAoaXNJbnRlcnNlY3QpIHtcblxuICAgICAgICBpdGVtLmVsZW1lbnQuc2VsZWN0KCk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRCeU1vdmUucHVzaChpdGVtLmVsZW1lbnQpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGNvbXBsZXRlKCk6IHZvaWQge1xuICAgIHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0LmZTZWxlY3Rpb25BcmVhPy5oaWRlKCk7XG4gICAgdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuc2VsZWN0ZWRJdGVtcy5wdXNoKC4uLnRoaXMuc2VsZWN0ZWRCeU1vdmUpO1xuICAgIGlmICh0aGlzLnNlbGVjdGVkQnlNb3ZlLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0LmlzU2VsZWN0ZWRDaGFuZ2VkID0gdHJ1ZTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLWFyZWEuZHJhZy1oYW5kbGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL3NlbGVjdGlvbi1hcmVhL3NlbGVjdGlvbi1hcmVhLmRyYWctaGFuZGxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBVSxLQUFLLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTdELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUd4RCxPQUFPLEVBQUUsMkJBQTJCLEVBQXVCLE1BQU0sY0FBYyxDQUFDO0FBR2hGLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDBFQUEwRSxDQUFDO0FBRXhILE1BQU0sT0FBTyx1QkFBdUI7SUFhdEI7SUFDQTtJQUNBO0lBYkksSUFBSSxHQUFvQixlQUFlLENBQUMsU0FBUyxDQUFDO0lBRTFELGFBQWEsR0FBMEIsRUFBRSxDQUFDO0lBRTFDLGNBQWMsR0FBa0IsRUFBRSxDQUFDO0lBRTNDLElBQVksY0FBYztRQUN4QixPQUFPLEtBQUssQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQVEsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFRLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3pJLENBQUM7SUFFRCxZQUNZLGdCQUFrQyxFQUNsQyxxQkFBNEMsRUFDNUMsU0FBd0I7UUFGeEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQywwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBQzVDLGNBQVMsR0FBVCxTQUFTLENBQWU7SUFFcEMsQ0FBQztJQUVNLFVBQVU7UUFDZixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElB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eHRlbnNpb25zIH0gZnJvbSAnQGZvYmxleC9jb3JlJztcbmltcG9ydCB7IElEcmFnZ2FibGVJdGVtIH0gZnJvbSAnLi4vaS1kcmFnZ2FibGUtaXRlbSc7XG5pbXBvcnQgeyBFRkRyYWdnYWJsZVR5cGUgfSBmcm9tICcuLi9lLWYtZHJhZ2dhYmxlLXR5cGUnO1xuaW1wb3J0IHsgRkNvbXBvbmVudHNTdG9yZSB9IGZyb20gJy4uLy4uL2Ytc3RvcmFnZSc7XG5pbXBvcnQgeyBGRHJhZ2dhYmxlRGF0YUNvbnRleHQgfSBmcm9tICcuLi9mLWRyYWdnYWJsZS1kYXRhLWNvbnRleHQnO1xuaW1wb3J0IHsgRW1pdFRyYW5zZm9ybUNoYW5nZXNSZXF1ZXN0LCBJU2VsZWN0YWJsZVdpdGhSZWN0IH0gZnJvbSAnLi4vLi4vZG9tYWluJztcbmltcG9ydCB7IElTZWxlY3RhYmxlIH0gZnJvbSAnLi4vLi4vZi1jb25uZWN0aW9uJztcbmltcG9ydCB7IEZGbG93TWVkaWF0b3IgfSBmcm9tICcuLi8uLi9pbmZyYXN0cnVjdHVyZSc7XG5pbXBvcnQgeyBHZXRDYW5CZVNlbGVjdGVkSXRlbXNSZXF1ZXN0IH0gZnJvbSAnLi4vLi4vZG9tYWluL2dldC1jYW4tYmUtc2VsZWN0ZWQtaXRlbXMvZ2V0LWNhbi1iZS1zZWxlY3RlZC1pdGVtcy1yZXF1ZXN0JztcblxuZXhwb3J0IGNsYXNzIFNlbGVjdGlvbkFyZWFEcmFnSGFuZGxlIGltcGxlbWVudHMgSURyYWdnYWJsZUl0ZW0ge1xuXG4gIHB1YmxpYyByZWFkb25seSB0eXBlOiBFRkRyYWdnYWJsZVR5cGUgPSBFRkRyYWdnYWJsZVR5cGUuU0VMRUNUSU9OO1xuXG4gIHByaXZhdGUgY2FuQmVTZWxlY3RlZDogSVNlbGVjdGFibGVXaXRoUmVjdFtdID0gW107XG5cbiAgcHJpdmF0ZSBzZWxlY3RlZEJ5TW92ZTogSVNlbGVjdGFibGVbXSA9IFtdO1xuXG4gIHByaXZhdGUgZ2V0IGNhbnZhc1Bvc2l0aW9uKCk6IFBvaW50IHtcbiAgICByZXR1cm4gUG9pbnQuZnJvbVBvaW50KHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mQ2FudmFzIS50cmFuc2Zvcm0ucG9zaXRpb24pLmFkZCh0aGlzLmZDb21wb25lbnRzU3RvcmUuZkNhbnZhcyEudHJhbnNmb3JtLnNjYWxlZFBvc2l0aW9uKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgICAgcHJpdmF0ZSBmQ29tcG9uZW50c1N0b3JlOiBGQ29tcG9uZW50c1N0b3JlLFxuICAgICAgcHJpdmF0ZSBmRHJhZ2dhYmxlRGF0YUNvbnRleHQ6IEZEcmFnZ2FibGVEYXRhQ29udGV4dCxcbiAgICAgIHByaXZhdGUgZk1lZGlhdG9yOiBGRmxvd01lZGlhdG9yLFxuICApIHtcbiAgfVxuXG4gIHB1YmxpYyBpbml0aWFsaXplKCk6IHZvaWQge1xuICAgIHRoaXMuY2FuQmVTZWxlY3RlZCA9IHRoaXMuZk1lZGlhdG9yLnNlbmQobmV3IEdldENhbkJlU2VsZWN0ZWRJdGVtc1JlcXVlc3QoKSk7XG5cbiAgICB0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5mU2VsZWN0aW9uQXJlYT8uc2hvdygpO1xuICAgIHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0LmZTZWxlY3Rpb25BcmVhPy5kcmF3KHtcbiAgICAgIGxlZnQ6IHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0Lm9uUG9pbnRlckRvd25Qb3NpdGlvbi54LFxuICAgICAgdG9wOiB0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5vblBvaW50ZXJEb3duUG9zaXRpb24ueSxcbiAgICAgIHdpZHRoOiAwLFxuICAgICAgaGVpZ2h0OiAwXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbW92ZShkaWZmZXJlbmNlOiBJUG9pbnQpOiB2b2lkIHtcbiAgICBjb25zdCBjdXJyZW50UG9pbnQgPSBQb2ludC5mcm9tUG9pbnQoZGlmZmVyZW5jZSkuYWRkKHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0Lm9uUG9pbnRlckRvd25Qb3NpdGlvbik7XG4gICAgY29uc3QgeDogbnVtYmVyID0gTWF0aC5taW4odGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQub25Qb2ludGVyRG93blBvc2l0aW9uLngsIGN1cnJlbnRQb2ludC54KTtcbiAgICBjb25zdCB5OiBudW1iZXIgPSBNYXRoLm1pbih0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5vblBvaW50ZXJEb3duUG9zaXRpb24ueSwgY3VycmVudFBvaW50LnkpO1xuXG4gICAgY29uc3Qgd2lkdGggPSBNYXRoLmFicyhkaWZmZXJlbmNlLngpO1xuICAgIGNvbnN0IGhlaWdodCA9IE1hdGguYWJzKGRpZmZlcmVuY2UueSk7XG5cbiAgICB0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5mU2VsZWN0aW9uQXJlYT8uZHJhdyh7IGxlZnQ6IHgsIHRvcDogeSwgd2lkdGgsIGhlaWdodCB9KTtcbiAgICB0aGlzLnNlbGVjdGVkQnlNb3ZlID0gW107XG4gICAgdGhpcy5jYW5CZVNlbGVjdGVkLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgIGl0ZW0uZWxlbWVudC5kZXNlbGVjdCgpO1xuXG4gICAgICBjb25zdCBpdGVtUmVjdCA9IFJlY3RFeHRlbnNpb25zLmFkZFBvaW50KGl0ZW0ucmVjdCwgdGhpcy5jYW52YXNQb3NpdGlvbik7XG5cbiAgICAgIGNvbnN0IGlzSW50ZXJzZWN0ID0gUmVjdEV4dGVuc2lvbnMuaW50ZXJzZWN0aW9uV2l0aFJlY3QoaXRlbVJlY3QsIFJlY3RFeHRlbnNpb25zLmluaXRpYWxpemUoeCwgeSwgd2lkdGgsIGhlaWdodCkpO1xuICAgICAgaWYgKGlzSW50ZXJzZWN0KSB7XG5cbiAgICAgICAgaXRlbS5lbGVtZW50LnNlbGVjdCgpO1xuICAgICAgICB0aGlzLnNlbGVjdGVkQnlNb3ZlLnB1c2goaXRlbS5lbGVtZW50KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLmZNZWRpYXRvci5zZW5kPHZvaWQ+KG5ldyBFbWl0VHJhbnNmb3JtQ2hhbmdlc1JlcXVlc3QoKSk7XG4gIH1cblxuICBwdWJsaWMgY29tcGxldGUoKTogdm9pZCB7XG4gICAgdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuZlNlbGVjdGlvbkFyZWE/LmhpZGUoKTtcbiAgICB0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5zZWxlY3RlZEl0ZW1zLnB1c2goLi4udGhpcy5zZWxlY3RlZEJ5TW92ZSk7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRCeU1vdmUubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuaXNTZWxlY3RlZENoYW5nZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -4,15 +4,19 @@ import { FValidatorRegister } from '../../infrastructure';
4
4
  import { SingleSelectRequest } from './single-select.request';
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "../../f-storage";
7
+ import * as i2 from "../f-draggable-data-context";
7
8
  let SingleSelectValidator = class SingleSelectValidator {
8
9
  fComponentsStore;
9
- constructor(fComponentsStore) {
10
+ fDraggableDataContext;
11
+ constructor(fComponentsStore, fDraggableDataContext) {
10
12
  this.fComponentsStore = fComponentsStore;
13
+ this.fDraggableDataContext = fDraggableDataContext;
11
14
  }
12
15
  handle(request) {
13
- return this.fComponentsStore.fFlow.hostElement.contains(request.event.targetElement);
16
+ return this.fComponentsStore.fFlow.hostElement.contains(request.event.targetElement)
17
+ && !this.fDraggableDataContext.draggableItems.length;
14
18
  }
15
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: SingleSelectValidator, deps: [{ token: i1.FComponentsStore }], target: i0.ɵɵFactoryTarget.Injectable });
19
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: SingleSelectValidator, deps: [{ token: i1.FComponentsStore }, { token: i2.FDraggableDataContext }], target: i0.ɵɵFactoryTarget.Injectable });
16
20
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: SingleSelectValidator });
17
21
  };
18
22
  SingleSelectValidator = __decorate([
@@ -21,5 +25,5 @@ SingleSelectValidator = __decorate([
21
25
  export { SingleSelectValidator };
22
26
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: SingleSelectValidator, decorators: [{
23
27
  type: Injectable
24
- }], ctorParameters: () => [{ type: i1.FComponentsStore }] });
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xlLXNlbGVjdC52YWxpZGF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL3NpbmdsZS1zZWxlY3Qvc2luZ2xlLXNlbGVjdC52YWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGtCQUFrQixFQUFjLE1BQU0sc0JBQXNCLENBQUM7QUFDdEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7OztBQUt2RCxJQUFNLHFCQUFxQixHQUEzQixNQUFNLHFCQUFxQjtJQUd0QjtJQURWLFlBQ1UsZ0JBQWtDO1FBQWxDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7SUFFNUMsQ0FBQztJQUVNLE1BQU0sQ0FBQyxPQUE0QjtRQUN4QyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFNLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3hGLENBQUM7dUdBVFUscUJBQXFCOzJHQUFyQixxQkFBcUI7O0FBQXJCLHFCQUFxQjtJQURqQyxrQkFBa0IsQ0FBQyxtQkFBbUIsQ0FBQztHQUMzQixxQkFBcUIsQ0FVakM7OzJGQVZZLHFCQUFxQjtrQkFGakMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZWYWxpZGF0b3JSZWdpc3RlciwgSVZhbGlkYXRvciB9IGZyb20gJy4uLy4uL2luZnJhc3RydWN0dXJlJztcbmltcG9ydCB7IFNpbmdsZVNlbGVjdFJlcXVlc3QgfSBmcm9tICcuL3NpbmdsZS1zZWxlY3QucmVxdWVzdCc7XG5pbXBvcnQgeyBGQ29tcG9uZW50c1N0b3JlIH0gZnJvbSAnLi4vLi4vZi1zdG9yYWdlJztcblxuQEluamVjdGFibGUoKVxuQEZWYWxpZGF0b3JSZWdpc3RlcihTaW5nbGVTZWxlY3RSZXF1ZXN0KVxuZXhwb3J0IGNsYXNzIFNpbmdsZVNlbGVjdFZhbGlkYXRvciBpbXBsZW1lbnRzIElWYWxpZGF0b3I8U2luZ2xlU2VsZWN0UmVxdWVzdD4ge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZkNvbXBvbmVudHNTdG9yZTogRkNvbXBvbmVudHNTdG9yZVxuICApIHtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGUocmVxdWVzdDogU2luZ2xlU2VsZWN0UmVxdWVzdCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmZDb21wb25lbnRzU3RvcmUuZkZsb3chLmhvc3RFbGVtZW50LmNvbnRhaW5zKHJlcXVlc3QuZXZlbnQudGFyZ2V0RWxlbWVudCk7XG4gIH1cbn1cbiJdfQ==
28
+ }], ctorParameters: () => [{ type: i1.FComponentsStore }, { type: i2.FDraggableDataContext }] });
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xlLXNlbGVjdC52YWxpZGF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL3NpbmdsZS1zZWxlY3Qvc2luZ2xlLXNlbGVjdC52YWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGtCQUFrQixFQUFjLE1BQU0sc0JBQXNCLENBQUM7QUFDdEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7QUFNdkQsSUFBTSxxQkFBcUIsR0FBM0IsTUFBTSxxQkFBcUI7SUFHdEI7SUFDQTtJQUZWLFlBQ1UsZ0JBQWtDLEVBQ2xDLHFCQUE0QztRQUQ1QyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7SUFFdEQsQ0FBQztJQUVNLE1BQU0sQ0FBQyxPQUE0QjtRQUN4QyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFNLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQztlQUNoRixDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDO0lBQ3pELENBQUM7dUdBWFUscUJBQXFCOzJHQUFyQixxQkFBcUI7O0FBQXJCLHFCQUFxQjtJQURqQyxrQkFBa0IsQ0FBQyxtQkFBbUIsQ0FBQztHQUMzQixxQkFBcUIsQ0FZakM7OzJGQVpZLHFCQUFxQjtrQkFGakMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZWYWxpZGF0b3JSZWdpc3RlciwgSVZhbGlkYXRvciB9IGZyb20gJy4uLy4uL2luZnJhc3RydWN0dXJlJztcbmltcG9ydCB7IFNpbmdsZVNlbGVjdFJlcXVlc3QgfSBmcm9tICcuL3NpbmdsZS1zZWxlY3QucmVxdWVzdCc7XG5pbXBvcnQgeyBGQ29tcG9uZW50c1N0b3JlIH0gZnJvbSAnLi4vLi4vZi1zdG9yYWdlJztcbmltcG9ydCB7IEZEcmFnZ2FibGVEYXRhQ29udGV4dCB9IGZyb20gJy4uL2YtZHJhZ2dhYmxlLWRhdGEtY29udGV4dCc7XG5cbkBJbmplY3RhYmxlKClcbkBGVmFsaWRhdG9yUmVnaXN0ZXIoU2luZ2xlU2VsZWN0UmVxdWVzdClcbmV4cG9ydCBjbGFzcyBTaW5nbGVTZWxlY3RWYWxpZGF0b3IgaW1wbGVtZW50cyBJVmFsaWRhdG9yPFNpbmdsZVNlbGVjdFJlcXVlc3Q+IHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZDb21wb25lbnRzU3RvcmU6IEZDb21wb25lbnRzU3RvcmUsXG4gICAgcHJpdmF0ZSBmRHJhZ2dhYmxlRGF0YUNvbnRleHQ6IEZEcmFnZ2FibGVEYXRhQ29udGV4dFxuICApIHtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGUocmVxdWVzdDogU2luZ2xlU2VsZWN0UmVxdWVzdCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmZDb21wb25lbnRzU3RvcmUuZkZsb3chLmhvc3RFbGVtZW50LmNvbnRhaW5zKHJlcXVlc3QuZXZlbnQudGFyZ2V0RWxlbWVudClcbiAgICAgICYmICF0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5kcmFnZ2FibGVJdGVtcy5sZW5ndGg7XG4gIH1cbn1cbiJdfQ==
@@ -1,11 +1,11 @@
1
1
  import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
2
2
  import { F_FLOW, FFlowBase } from './f-flow-base';
3
3
  import { debounceTime, startWith, Subscription } from 'rxjs';
4
- import { ClearSelectionRequest, COMMON_PROVIDERS, GetNodesRectRequest, GetPositionInFlowRequest, GetSelectionRequest, RedrawConnectionsRequest, SelectAllRequest, SelectRequest, } from '../domain';
4
+ import { ClearSelectionRequest, COMMON_PROVIDERS, GetExternalNodesRectRequest, GetPositionInFlowRequest, GetSelectionRequest, RedrawConnectionsRequest, SelectAllRequest, SelectRequest, } from '../domain';
5
5
  import { FFlowMediator } from '../infrastructure';
6
6
  import { F_DRAGGABLE_PROVIDERS, FDraggableDataContext } from '../f-draggable';
7
7
  import { FConnectionFactory } from '../f-connection';
8
- import { FComponentsStore } from '../f-storage';
8
+ import { FComponentsStore, FTransformStore } from '../f-storage';
9
9
  import * as i0 from "@angular/core";
10
10
  import * as i1 from "../f-storage";
11
11
  import * as i2 from "../infrastructure";
@@ -49,7 +49,7 @@ export class FFlowComponent extends FFlowBase {
49
49
  this.isLoaded = false;
50
50
  }
51
51
  getNodesRect() {
52
- return this.fMediator.send(new GetNodesRectRequest());
52
+ return this.fMediator.send(new GetExternalNodesRectRequest());
53
53
  }
54
54
  getSelection() {
55
55
  return this.fMediator.send(new GetSelectionRequest());
@@ -73,12 +73,13 @@ export class FFlowComponent extends FFlowBase {
73
73
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.2", type: FFlowComponent, selector: "f-flow", inputs: { fFlowId: "fFlowId" }, outputs: { fLoaded: "fLoaded" }, host: { properties: { "attr.id": "fFlowId" }, classAttribute: "f-component f-flow" }, providers: [
74
74
  FFlowMediator,
75
75
  FComponentsStore,
76
+ FTransformStore,
76
77
  FDraggableDataContext,
77
78
  FConnectionFactory,
78
79
  ...F_DRAGGABLE_PROVIDERS,
79
80
  ...COMMON_PROVIDERS,
80
81
  { provide: F_FLOW, useExisting: FFlowComponent },
81
- ], usesInheritance: true, ngImport: i0, template: "<ng-container>\n <ng-content select=\"[fDefinitions]\"></ng-content>\n\n <ng-content select=\"f-background\"></ng-content>\n\n <ng-content select=\"f-line-alignment\"></ng-content>\n\n <ng-content select=\"f-canvas\"></ng-content>\n\n <ng-content select=\"f-selection-area\"></ng-content>\n\n <ng-content select=\"f-mini-map\"></ng-content>\n</ng-container>\n", styles: [":host{display:block;position:relative;width:100%;height:100%;overflow:hidden;pointer-events:all;-webkit-user-select:none;user-select:none;touch-action:none}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
82
+ ], usesInheritance: true, ngImport: i0, template: "<ng-container>\n <ng-content select=\"[fDefinitions]\"></ng-content>\n\n <ng-content select=\"f-background\"></ng-content>\n\n <ng-content select=\"f-line-alignment\"></ng-content>\n\n <ng-content select=\"f-canvas\"></ng-content>\n\n <ng-content select=\"f-selection-area\"></ng-content>\n\n <ng-content select=\"f-minimap\"></ng-content>\n</ng-container>\n", styles: [":host{display:block;position:relative;width:100%;height:100%;overflow:hidden;pointer-events:all;-webkit-user-select:none;user-select:none;touch-action:none}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
82
83
  }
83
84
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: FFlowComponent, decorators: [{
84
85
  type: Component,
@@ -88,15 +89,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImpor
88
89
  }, providers: [
89
90
  FFlowMediator,
90
91
  FComponentsStore,
92
+ FTransformStore,
91
93
  FDraggableDataContext,
92
94
  FConnectionFactory,
93
95
  ...F_DRAGGABLE_PROVIDERS,
94
96
  ...COMMON_PROVIDERS,
95
97
  { provide: F_FLOW, useExisting: FFlowComponent },
96
- ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container>\n <ng-content select=\"[fDefinitions]\"></ng-content>\n\n <ng-content select=\"f-background\"></ng-content>\n\n <ng-content select=\"f-line-alignment\"></ng-content>\n\n <ng-content select=\"f-canvas\"></ng-content>\n\n <ng-content select=\"f-selection-area\"></ng-content>\n\n <ng-content select=\"f-mini-map\"></ng-content>\n</ng-container>\n", styles: [":host{display:block;position:relative;width:100%;height:100%;overflow:hidden;pointer-events:all;-webkit-user-select:none;user-select:none;touch-action:none}\n"] }]
98
+ ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container>\n <ng-content select=\"[fDefinitions]\"></ng-content>\n\n <ng-content select=\"f-background\"></ng-content>\n\n <ng-content select=\"f-line-alignment\"></ng-content>\n\n <ng-content select=\"f-canvas\"></ng-content>\n\n <ng-content select=\"f-selection-area\"></ng-content>\n\n <ng-content select=\"f-minimap\"></ng-content>\n</ng-container>\n", styles: [":host{display:block;position:relative;width:100%;height:100%;overflow:hidden;pointer-events:all;-webkit-user-select:none;user-select:none;touch-action:none}\n"] }]
97
99
  }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.FComponentsStore }, { type: i2.FFlowMediator }], propDecorators: { fFlowId: [{
98
100
  type: Input
99
101
  }], fLoaded: [{
100
102
  type: Output
101
103
  }] } });
102
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1mbG93LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1mbG93L2YtZmxvdy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZmxvdy9mLWZsb3cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQWMsWUFBWSxFQUNuQyxLQUFLLEVBQXFCLE1BQU0sRUFDakMsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdELE9BQU8sRUFDTCxxQkFBcUIsRUFDckIsZ0JBQWdCLEVBQUUsbUJBQW1CLEVBQUUsd0JBQXdCLEVBQy9ELG1CQUFtQixFQUNuQix3QkFBd0IsRUFDeEIsZ0JBQWdCLEVBQUUsYUFBYSxHQUNoQyxNQUFNLFdBQVcsQ0FBQztBQUVuQixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUNMLHFCQUFxQixFQUNyQixxQkFBcUIsRUFDdEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxjQUFjLENBQUM7Ozs7QUFFaEQsSUFBSSxRQUFRLEdBQVcsQ0FBQyxDQUFDO0FBcUJ6QixNQUFNLE9BQU8sY0FBZSxTQUFRLFNBQVM7SUFpQmpDO0lBQ0E7SUFDQTtJQWpCRixhQUFhLEdBQWlCLElBQUksWUFBWSxFQUFFLENBQUM7SUFHekMsT0FBTyxHQUFXLFVBQVcsUUFBUSxFQUFHLEVBQUUsQ0FBQztJQUUz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QUNFLFFBQVEsUUFHWjt3QkFDSixXQUFXLEVBQUUsU0FBUzt3QkFDdEIsS0FBSyxFQUFFLG9CQUFvQjtxQkFDNUIsYUFDVTt3QkFDVCxhQUFhO3dCQUNiLGdCQUFnQjt3QkFDaEIscUJBQXFCO3dCQUNyQixrQkFBa0I7d0JBQ2xCLEdBQUcscUJBQXFCO3dCQUN4QixHQUFHLGdCQUFnQjt3QkFDbkIsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFdBQVcsZ0JBQWdCLEVBQUU7cUJBQ2pELG1CQUNnQix1QkFBdUIsQ0FBQyxNQUFNOzBJQU8vQixPQUFPO3NCQUR0QixLQUFLO2dCQVFVLE9BQU87c0JBRHRCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsXG4gIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRl9GTE9XLCBGRmxvd0Jhc2UgfSBmcm9tICcuL2YtZmxvdy1iYXNlJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgc3RhcnRXaXRoLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIENsZWFyU2VsZWN0aW9uUmVxdWVzdCxcbiAgQ09NTU9OX1BST1ZJREVSUywgR2V0Tm9kZXNSZWN0UmVxdWVzdCwgR2V0UG9zaXRpb25JbkZsb3dSZXF1ZXN0LFxuICBHZXRTZWxlY3Rpb25SZXF1ZXN0LFxuICBSZWRyYXdDb25uZWN0aW9uc1JlcXVlc3QsXG4gIFNlbGVjdEFsbFJlcXVlc3QsIFNlbGVjdFJlcXVlc3QsXG59IGZyb20gJy4uL2RvbWFpbic7XG5pbXBvcnQgeyBJUG9pbnQsIElSZWN0IH0gZnJvbSAnQGZvYmxleC9jb3JlJztcbmltcG9ydCB7IEZGbG93TWVkaWF0b3IgfSBmcm9tICcuLi9pbmZyYXN0cnVjdHVyZSc7XG5pbXBvcnQge1xuICBGX0RSQUdHQUJMRV9QUk9WSURFUlMsXG4gIEZEcmFnZ2FibGVEYXRhQ29udGV4dCwgRlNlbGVjdGlvbkNoYW5nZUV2ZW50XG59IGZyb20gJy4uL2YtZHJhZ2dhYmxlJztcbmltcG9ydCB7IEZDb25uZWN0aW9uRmFjdG9yeSB9IGZyb20gJy4uL2YtY29ubmVjdGlvbic7XG5pbXBvcnQgeyBGQ29tcG9uZW50c1N0b3JlIH0gZnJvbSAnLi4vZi1zdG9yYWdlJztcblxubGV0IHVuaXF1ZUlkOiBudW1iZXIgPSAwO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmLWZsb3cnLFxuICB0ZW1wbGF0ZVVybDogJy4vZi1mbG93LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbICcuL2YtZmxvdy5jb21wb25lbnQuc2NzcycgXSxcbiAgaG9zdDoge1xuICAgICdbYXR0ci5pZF0nOiAnZkZsb3dJZCcsXG4gICAgY2xhc3M6IFwiZi1jb21wb25lbnQgZi1mbG93XCIsXG4gIH0sXG4gIHByb3ZpZGVyczogW1xuICAgIEZGbG93TWVkaWF0b3IsXG4gICAgRkNvbXBvbmVudHNTdG9yZSxcbiAgICBGRHJhZ2dhYmxlRGF0YUNvbnRleHQsXG4gICAgRkNvbm5lY3Rpb25GYWN0b3J5LFxuICAgIC4uLkZfRFJBR0dBQkxFX1BST1ZJREVSUyxcbiAgICAuLi5DT01NT05fUFJPVklERVJTLFxuICAgIHsgcHJvdmlkZTogRl9GTE9XLCB1c2VFeGlzdGluZzogRkZsb3dDb21wb25lbnQgfSxcbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEZGbG93Q29tcG9uZW50IGV4dGVuZHMgRkZsb3dCYXNlIGltcGxlbWVudHMgT25Jbml0LCBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3kge1xuXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uJDogU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBvdmVycmlkZSBmRmxvd0lkOiBzdHJpbmcgPSBgZi1mbG93LSR7IHVuaXF1ZUlkKysgfWA7XG5cbiAgcHVibGljIG92ZXJyaWRlIGdldCBob3N0RWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudFJlZmVyZW5jZS5uYXRpdmVFbGVtZW50O1xuICB9XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBvdmVycmlkZSBmTG9hZGVkOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgcHJpdmF0ZSBpc0xvYWRlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWxlbWVudFJlZmVyZW5jZTogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgcHJpdmF0ZSBmQ29tcG9uZW50c1N0b3JlOiBGQ29tcG9uZW50c1N0b3JlLFxuICAgIHByaXZhdGUgZk1lZGlhdG9yOiBGRmxvd01lZGlhdG9yLFxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mRmxvdyA9IHRoaXM7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uJC5hZGQoXG4gICAgICB0aGlzLnN1YnNjcmliZU9uRWxlbWVudHNDaGFuZ2VzKClcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBzdWJzY3JpYmVPbkVsZW1lbnRzQ2hhbmdlcygpOiBTdWJzY3JpcHRpb24ge1xuICAgIHJldHVybiB0aGlzLmZDb21wb25lbnRzU3RvcmUuY2hhbmdlcy5waXBlKHN0YXJ0V2l0aChudWxsKSwgZGVib3VuY2VUaW1lKDIwKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuZk1lZGlhdG9yLnNlbmQobmV3IFJlZHJhd0Nvbm5lY3Rpb25zUmVxdWVzdCgpKTtcblxuICAgICAgaWYgKCF0aGlzLmlzTG9hZGVkKSB7XG4gICAgICAgIHRoaXMuaXNMb2FkZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLmZMb2FkZWQuZW1pdCgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHJlZHJhdygpOiB2b2lkIHtcbiAgICB0aGlzLmZDb21wb25lbnRzU3RvcmUuY2hhbmdlcy5uZXh0KCk7XG4gIH1cblxuICBwdWJsaWMgcmVzZXQoKTogdm9pZCB7XG4gICAgdGhpcy5pc0xvYWRlZCA9IGZhbHNlO1xuICB9XG5cbiAgcHVibGljIGdldE5vZGVzUmVjdCgpOiBJUmVjdCB7XG4gICAgcmV0dXJuIHRoaXMuZk1lZGlhdG9yLnNlbmQ8SVJlY3Q+KG5ldyBHZXROb2Rlc1JlY3RSZXF1ZXN0KCkpO1xuICB9XG5cbiAgcHVibGljIGdldFNlbGVjdGlvbigpOiBGU2VsZWN0aW9uQ2hhbmdlRXZlbnQge1xuICAgIHJldHVybiB0aGlzLmZNZWRpYXRvci5zZW5kPEZTZWxlY3Rpb25DaGFuZ2VFdmVudD4obmV3IEdldFNlbGVjdGlvblJlcXVlc3QoKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0UG9zaXRpb25JbkZsb3cocG9zaXRpb246IElQb2ludCk6IElSZWN0IHtcbiAgICByZXR1cm4gdGhpcy5mTWVkaWF0b3Iuc2VuZChuZXcgR2V0UG9zaXRpb25JbkZsb3dSZXF1ZXN0KHBvc2l0aW9uKSk7XG4gIH1cblxuICBwdWJsaWMgc2VsZWN0QWxsKCk6IHZvaWQge1xuICAgIHRoaXMuZk1lZGlhdG9yLnNlbmQ8dm9pZD4obmV3IFNlbGVjdEFsbFJlcXVlc3QoKSk7XG4gIH1cblxuICBwdWJsaWMgc2VsZWN0KG5vZGVzOiBzdHJpbmdbXSwgY29ubmVjdGlvbnM6IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgdGhpcy5mTWVkaWF0b3Iuc2VuZDx2b2lkPihuZXcgU2VsZWN0UmVxdWVzdChub2RlcywgY29ubmVjdGlvbnMpKTtcbiAgfVxuXG4gIHB1YmxpYyBjbGVhclNlbGVjdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLmZNZWRpYXRvci5zZW5kPHZvaWQ+KG5ldyBDbGVhclNlbGVjdGlvblJlcXVlc3QoKSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24kLnVuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXI+XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cIltmRGVmaW5pdGlvbnNdXCI+PC9uZy1jb250ZW50PlxuXG4gIDxuZy1jb250ZW50IHNlbGVjdD1cImYtYmFja2dyb3VuZFwiPjwvbmctY29udGVudD5cblxuICA8bmctY29udGVudCBzZWxlY3Q9XCJmLWxpbmUtYWxpZ25tZW50XCI+PC9uZy1jb250ZW50PlxuXG4gIDxuZy1jb250ZW50IHNlbGVjdD1cImYtY2FudmFzXCI+PC9uZy1jb250ZW50PlxuXG4gIDxuZy1jb250ZW50IHNlbGVjdD1cImYtc2VsZWN0aW9uLWFyZWFcIj48L25nLWNvbnRlbnQ+XG5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZi1taW5pLW1hcFwiPjwvbmctY29udGVudD5cbjwvbmctY29udGFpbmVyPlxuIl19
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1mbG93LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1mbG93L2YtZmxvdy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZmxvdy9mLWZsb3cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQWMsWUFBWSxFQUNuQyxLQUFLLEVBQXFCLE1BQU0sRUFDakMsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdELE9BQU8sRUFDTCxxQkFBcUIsRUFDckIsZ0JBQWdCLEVBQUUsMkJBQTJCLEVBQUUsd0JBQXdCLEVBQ3ZFLG1CQUFtQixFQUNuQix3QkFBd0IsRUFDeEIsZ0JBQWdCLEVBQUUsYUFBYSxHQUNoQyxNQUFNLFdBQVcsQ0FBQztBQUVuQixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUNMLHFCQUFxQixFQUNyQixxQkFBcUIsRUFDdEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7O0FBRWpFLElBQUksUUFBUSxHQUFXLENBQUMsQ0FBQztBQXNCekIsTUFBTSxPQUFPLGNBQWUsU0FBUSxTQUFTO0lBaUJqQztJQUNBO0lBQ0E7SUFqQkYsYUFBYSxHQUFpQixJQUFJLFlBQVksRUFBRSxDQUFDO0lBR3pDLE9BQU8sR0FBVyxVQUFXLFFBQVEsRUFBRyxFQUFF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Y0FBYztrQkFwQjFCLFNBQVM7K0JBQ0UsUUFBUSxRQUdaO3dCQUNKLFdBQVcsRUFBRSxTQUFTO3dCQUN0QixLQUFLLEVBQUUsb0JBQW9CO3FCQUM1QixhQUNVO3dCQUNULGFBQWE7d0JBQ2IsZ0JBQWdCO3dCQUNoQixlQUFlO3dCQUNmLHFCQUFxQjt3QkFDckIsa0JBQWtCO3dCQUNsQixHQUFHLHFCQUFxQjt3QkFDeEIsR0FBRyxnQkFBZ0I7d0JBQ25CLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxXQUFXLGdCQUFnQixFQUFFO3FCQUNqRCxtQkFDZ0IsdUJBQXVCLENBQUMsTUFBTTswSUFPL0IsT0FBTztzQkFEdEIsS0FBSztnQkFRVSxPQUFPO3NCQUR0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZfRkxPVywgRkZsb3dCYXNlIH0gZnJvbSAnLi9mLWZsb3ctYmFzZSc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIHN0YXJ0V2l0aCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1xuICBDbGVhclNlbGVjdGlvblJlcXVlc3QsXG4gIENPTU1PTl9QUk9WSURFUlMsIEdldEV4dGVybmFsTm9kZXNSZWN0UmVxdWVzdCwgR2V0UG9zaXRpb25JbkZsb3dSZXF1ZXN0LFxuICBHZXRTZWxlY3Rpb25SZXF1ZXN0LFxuICBSZWRyYXdDb25uZWN0aW9uc1JlcXVlc3QsXG4gIFNlbGVjdEFsbFJlcXVlc3QsIFNlbGVjdFJlcXVlc3QsXG59IGZyb20gJy4uL2RvbWFpbic7XG5pbXBvcnQgeyBJUG9pbnQsIElSZWN0IH0gZnJvbSAnQGZvYmxleC9jb3JlJztcbmltcG9ydCB7IEZGbG93TWVkaWF0b3IgfSBmcm9tICcuLi9pbmZyYXN0cnVjdHVyZSc7XG5pbXBvcnQge1xuICBGX0RSQUdHQUJMRV9QUk9WSURFUlMsXG4gIEZEcmFnZ2FibGVEYXRhQ29udGV4dCwgRlNlbGVjdGlvbkNoYW5nZUV2ZW50XG59IGZyb20gJy4uL2YtZHJhZ2dhYmxlJztcbmltcG9ydCB7IEZDb25uZWN0aW9uRmFjdG9yeSB9IGZyb20gJy4uL2YtY29ubmVjdGlvbic7XG5pbXBvcnQgeyBGQ29tcG9uZW50c1N0b3JlLCBGVHJhbnNmb3JtU3RvcmUgfSBmcm9tICcuLi9mLXN0b3JhZ2UnO1xuXG5sZXQgdW5pcXVlSWQ6IG51bWJlciA9IDA7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2YtZmxvdycsXG4gIHRlbXBsYXRlVXJsOiAnLi9mLWZsb3cuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsgJy4vZi1mbG93LmNvbXBvbmVudC5zY3NzJyBdLFxuICBob3N0OiB7XG4gICAgJ1thdHRyLmlkXSc6ICdmRmxvd0lkJyxcbiAgICBjbGFzczogXCJmLWNvbXBvbmVudCBmLWZsb3dcIixcbiAgfSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgRkZsb3dNZWRpYXRvcixcbiAgICBGQ29tcG9uZW50c1N0b3JlLFxuICAgIEZUcmFuc2Zvcm1TdG9yZSxcbiAgICBGRHJhZ2dhYmxlRGF0YUNvbnRleHQsXG4gICAgRkNvbm5lY3Rpb25GYWN0b3J5LFxuICAgIC4uLkZfRFJBR0dBQkxFX1BST1ZJREVSUyxcbiAgICAuLi5DT01NT05fUFJPVklERVJTLFxuICAgIHsgcHJvdmlkZTogRl9GTE9XLCB1c2VFeGlzdGluZzogRkZsb3dDb21wb25lbnQgfSxcbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEZGbG93Q29tcG9uZW50IGV4dGVuZHMgRkZsb3dCYXNlIGltcGxlbWVudHMgT25Jbml0LCBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3kge1xuXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uJDogU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBvdmVycmlkZSBmRmxvd0lkOiBzdHJpbmcgPSBgZi1mbG93LSR7IHVuaXF1ZUlkKysgfWA7XG5cbiAgcHVibGljIG92ZXJyaWRlIGdldCBob3N0RWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudFJlZmVyZW5jZS5uYXRpdmVFbGVtZW50O1xuICB9XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBvdmVycmlkZSBmTG9hZGVkOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgcHJpdmF0ZSBpc0xvYWRlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWxlbWVudFJlZmVyZW5jZTogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgcHJpdmF0ZSBmQ29tcG9uZW50c1N0b3JlOiBGQ29tcG9uZW50c1N0b3JlLFxuICAgIHByaXZhdGUgZk1lZGlhdG9yOiBGRmxvd01lZGlhdG9yLFxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mRmxvdyA9IHRoaXM7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uJC5hZGQoXG4gICAgICB0aGlzLnN1YnNjcmliZU9uRWxlbWVudHNDaGFuZ2VzKClcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBzdWJzY3JpYmVPbkVsZW1lbnRzQ2hhbmdlcygpOiBTdWJzY3JpcHRpb24ge1xuICAgIHJldHVybiB0aGlzLmZDb21wb25lbnRzU3RvcmUuY2hhbmdlcy5waXBlKHN0YXJ0V2l0aChudWxsKSwgZGVib3VuY2VUaW1lKDIwKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuZk1lZGlhdG9yLnNlbmQobmV3IFJlZHJhd0Nvbm5lY3Rpb25zUmVxdWVzdCgpKTtcblxuICAgICAgaWYgKCF0aGlzLmlzTG9hZGVkKSB7XG4gICAgICAgIHRoaXMuaXNMb2FkZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLmZMb2FkZWQuZW1pdCgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHJlZHJhdygpOiB2b2lkIHtcbiAgICB0aGlzLmZDb21wb25lbnRzU3RvcmUuY2hhbmdlcy5uZXh0KCk7XG4gIH1cblxuICBwdWJsaWMgcmVzZXQoKTogdm9pZCB7XG4gICAgdGhpcy5pc0xvYWRlZCA9IGZhbHNlO1xuICB9XG5cbiAgcHVibGljIGdldE5vZGVzUmVjdCgpOiBJUmVjdCB7XG4gICAgcmV0dXJuIHRoaXMuZk1lZGlhdG9yLnNlbmQ8SVJlY3Q+KG5ldyBHZXRFeHRlcm5hbE5vZGVzUmVjdFJlcXVlc3QoKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0U2VsZWN0aW9uKCk6IEZTZWxlY3Rpb25DaGFuZ2VFdmVudCB7XG4gICAgcmV0dXJuIHRoaXMuZk1lZGlhdG9yLnNlbmQ8RlNlbGVjdGlvbkNoYW5nZUV2ZW50PihuZXcgR2V0U2VsZWN0aW9uUmVxdWVzdCgpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRQb3NpdGlvbkluRmxvdyhwb3NpdGlvbjogSVBvaW50KTogSVJlY3Qge1xuICAgIHJldHVybiB0aGlzLmZNZWRpYXRvci5zZW5kKG5ldyBHZXRQb3NpdGlvbkluRmxvd1JlcXVlc3QocG9zaXRpb24pKTtcbiAgfVxuXG4gIHB1YmxpYyBzZWxlY3RBbGwoKTogdm9pZCB7XG4gICAgdGhpcy5mTWVkaWF0b3Iuc2VuZDx2b2lkPihuZXcgU2VsZWN0QWxsUmVxdWVzdCgpKTtcbiAgfVxuXG4gIHB1YmxpYyBzZWxlY3Qobm9kZXM6IHN0cmluZ1tdLCBjb25uZWN0aW9uczogc3RyaW5nW10pOiB2b2lkIHtcbiAgICB0aGlzLmZNZWRpYXRvci5zZW5kPHZvaWQ+KG5ldyBTZWxlY3RSZXF1ZXN0KG5vZGVzLCBjb25uZWN0aW9ucykpO1xuICB9XG5cbiAgcHVibGljIGNsZWFyU2VsZWN0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuZk1lZGlhdG9yLnNlbmQ8dm9pZD4obmV3IENsZWFyU2VsZWN0aW9uUmVxdWVzdCgpKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbiQudW5zdWJzY3JpYmUoKTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lcj5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2ZEZWZpbml0aW9uc11cIj48L25nLWNvbnRlbnQ+XG5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZi1iYWNrZ3JvdW5kXCI+PC9uZy1jb250ZW50PlxuXG4gIDxuZy1jb250ZW50IHNlbGVjdD1cImYtbGluZS1hbGlnbm1lbnRcIj48L25nLWNvbnRlbnQ+XG5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZi1jYW52YXNcIj48L25nLWNvbnRlbnQ+XG5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZi1zZWxlY3Rpb24tYXJlYVwiPjwvbmctY29udGVudD5cblxuICA8bmctY29udGVudCBzZWxlY3Q9XCJmLW1pbmltYXBcIj48L25nLWNvbnRlbnQ+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
@@ -10,12 +10,14 @@ import { FDraggableDirective } from './f-draggable';
10
10
  import { F_EXTERNAL_ITEM_PROVIDERS } from './f-external-item';
11
11
  import { F_SELECTION_AREA_PROVIDERS } from './f-selection-area';
12
12
  import { F_LINE_ALIGNMENT_PROVIDERS } from './f-line-alignment';
13
+ import { F_MINIMAP_PROVIDERS } from './f-minimap';
14
+ import { F_ZOOM_PROVIDERS } from './f-zoom';
13
15
  import * as i0 from "@angular/core";
14
16
  import * as i1 from "./f-backgroud/f-background.component";
15
17
  import * as i2 from "./f-backgroud/f-rect-pattern/f-rect-pattern.component";
16
18
  import * as i3 from "./f-backgroud/f-circle-pattern/f-circle-pattern.component";
17
19
  import * as i4 from "./f-canvas/f-canvas.component";
18
- import * as i5 from "./f-canvas/f-zoom/f-zoom.directive";
20
+ import * as i5 from "./f-zoom/f-zoom.directive";
19
21
  import * as i6 from "./f-connection/common/f-connection-text/f-connection-text.component";
20
22
  import * as i7 from "./f-connection/common/f-connection-text/f-connection-text-path.directive";
21
23
  import * as i8 from "./f-connection/common/f-drag-handle/f-connection-drag-handle.component";
@@ -32,13 +34,17 @@ import * as i18 from "./f-connectors/f-node-output/f-node-output.directive";
32
34
  import * as i19 from "./f-external-item/f-external-item.directive";
33
35
  import * as i20 from "./f-flow/f-flow.component";
34
36
  import * as i21 from "./f-line-alignment/f-line-alignment.component";
35
- import * as i22 from "./f-node/f-node.directive";
36
- import * as i23 from "./f-node/f-drag-handle/f-drag-handle.directive";
37
- import * as i24 from "./f-node/f-resize-handle/f-resize-handle.directive";
38
- import * as i25 from "./f-selection-area/f-selection-area.component";
37
+ import * as i22 from "./f-minimap/f-minimap.component";
38
+ import * as i23 from "./f-minimap/f-minimap-canvas.directive";
39
+ import * as i24 from "./f-minimap/f-minimap-view.directive";
40
+ import * as i25 from "./f-minimap/f-minimap-flow.directive";
41
+ import * as i26 from "./f-node/f-node.directive";
42
+ import * as i27 from "./f-node/f-drag-handle/f-drag-handle.directive";
43
+ import * as i28 from "./f-node/f-resize-handle/f-resize-handle.directive";
44
+ import * as i29 from "./f-selection-area/f-selection-area.component";
39
45
  export class FFlowModule {
40
46
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: FFlowModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
41
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.2", ngImport: i0, type: FFlowModule, declarations: [i1.FBackgroundComponent, i2.FRectPatternComponent, i3.FCirclePatternComponent, i4.FCanvasComponent, i5.FZoomDirective, i6.FConnectionTextComponent, i7.FConnectionTextPathDirective, i8.FConnectionDragHandleComponent, i9.FConnectionGradientComponent, i10.FConnectionPathComponent, i11.FConnectionSelectionComponent, i12.FConnectionComponent, i13.FConnectionCenterDirective, i14.FConnectionForCreateComponent, i15.FMarkerDirective, i16.FNodeInputDirective, i17.FNodeOutletDirective, i18.FNodeOutputDirective, i19.FExternalItemDirective, i20.FFlowComponent, i21.FLineAlignmentComponent, i22.FNodeDirective, i23.FDragHandleDirective, i24.FResizeHandleDirective, i25.FSelectionAreaComponent, FDraggableDirective], imports: [CommonModule], exports: [i1.FBackgroundComponent, i2.FRectPatternComponent, i3.FCirclePatternComponent, i4.FCanvasComponent, i5.FZoomDirective, i6.FConnectionTextComponent, i7.FConnectionTextPathDirective, i8.FConnectionDragHandleComponent, i9.FConnectionGradientComponent, i10.FConnectionPathComponent, i11.FConnectionSelectionComponent, i12.FConnectionComponent, i13.FConnectionCenterDirective, i14.FConnectionForCreateComponent, i15.FMarkerDirective, i16.FNodeInputDirective, i17.FNodeOutletDirective, i18.FNodeOutputDirective, i19.FExternalItemDirective, i20.FFlowComponent, i21.FLineAlignmentComponent, i22.FNodeDirective, i23.FDragHandleDirective, i24.FResizeHandleDirective, i25.FSelectionAreaComponent, FDraggableDirective] });
47
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.2", ngImport: i0, type: FFlowModule, declarations: [i1.FBackgroundComponent, i2.FRectPatternComponent, i3.FCirclePatternComponent, i4.FCanvasComponent, i5.FZoomDirective, i6.FConnectionTextComponent, i7.FConnectionTextPathDirective, i8.FConnectionDragHandleComponent, i9.FConnectionGradientComponent, i10.FConnectionPathComponent, i11.FConnectionSelectionComponent, i12.FConnectionComponent, i13.FConnectionCenterDirective, i14.FConnectionForCreateComponent, i15.FMarkerDirective, i16.FNodeInputDirective, i17.FNodeOutletDirective, i18.FNodeOutputDirective, i19.FExternalItemDirective, i20.FFlowComponent, i21.FLineAlignmentComponent, i22.FMinimapComponent, i23.FMinimapCanvasDirective, i24.FMinimapViewDirective, i25.FMinimapFlowDirective, i26.FNodeDirective, i27.FDragHandleDirective, i28.FResizeHandleDirective, i29.FSelectionAreaComponent, FDraggableDirective], imports: [CommonModule], exports: [i1.FBackgroundComponent, i2.FRectPatternComponent, i3.FCirclePatternComponent, i4.FCanvasComponent, i5.FZoomDirective, i6.FConnectionTextComponent, i7.FConnectionTextPathDirective, i8.FConnectionDragHandleComponent, i9.FConnectionGradientComponent, i10.FConnectionPathComponent, i11.FConnectionSelectionComponent, i12.FConnectionComponent, i13.FConnectionCenterDirective, i14.FConnectionForCreateComponent, i15.FMarkerDirective, i16.FNodeInputDirective, i17.FNodeOutletDirective, i18.FNodeOutputDirective, i19.FExternalItemDirective, i20.FFlowComponent, i21.FLineAlignmentComponent, i22.FMinimapComponent, i23.FMinimapCanvasDirective, i24.FMinimapViewDirective, i25.FMinimapFlowDirective, i26.FNodeDirective, i27.FDragHandleDirective, i28.FResizeHandleDirective, i29.FSelectionAreaComponent, FDraggableDirective] });
42
48
  static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: FFlowModule, imports: [CommonModule] });
43
49
  }
44
50
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: FFlowModule, decorators: [{
@@ -47,11 +53,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImpor
47
53
  declarations: [
48
54
  ...F_BACKGROUND_PROVIDERS,
49
55
  ...F_CANVAS_PROVIDERS,
56
+ ...F_ZOOM_PROVIDERS,
50
57
  ...F_CONNECTION_PROVIDERS,
51
58
  ...F_CONNECTORS_PROVIDERS,
52
59
  ...F_EXTERNAL_ITEM_PROVIDERS,
53
60
  ...F_FLOW_PROVIDERS,
54
61
  ...F_LINE_ALIGNMENT_PROVIDERS,
62
+ ...F_MINIMAP_PROVIDERS,
55
63
  ...F_NODE_PROVIDERS,
56
64
  ...F_SELECTION_AREA_PROVIDERS,
57
65
  FDraggableDirective,
@@ -62,15 +70,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImpor
62
70
  exports: [
63
71
  ...F_BACKGROUND_PROVIDERS,
64
72
  ...F_CANVAS_PROVIDERS,
73
+ ...F_ZOOM_PROVIDERS,
65
74
  ...F_CONNECTION_PROVIDERS,
66
75
  ...F_CONNECTORS_PROVIDERS,
67
76
  ...F_EXTERNAL_ITEM_PROVIDERS,
68
77
  ...F_FLOW_PROVIDERS,
69
78
  ...F_LINE_ALIGNMENT_PROVIDERS,
79
+ ...F_MINIMAP_PROVIDERS,
70
80
  ...F_NODE_PROVIDERS,
71
81
  ...F_SELECTION_AREA_PROVIDERS,
72
82
  FDraggableDirective,
73
83
  ]
74
84
  }]
75
85
  }] });
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1mbG93Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1mbG93Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsc0JBQXNCLEdBQUcsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDNUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDaEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzlELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFpQ2hFLE1BQU0sT0FBTyxXQUFXO3VHQUFYLFdBQVc7d0dBQVgsV0FBVywrckJBbkJwQixtQkFBbUIsYUFHbkIsWUFBWSwyckJBYVosbUJBQW1CO3dHQUdWLFdBQVcsWUFoQnBCLFlBQVk7OzJGQWdCSCxXQUFXO2tCQS9CdkIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osR0FBRyxzQkFBc0I7d0JBQ3pCLEdBQUcsa0JBQWtCO3dCQUNyQixHQUFHLHNCQUFzQjt3QkFDekIsR0FBRyxzQkFBc0I7d0JBQ3pCLEdBQUcseUJBQXlCO3dCQUM1QixHQUFHLGdCQUFnQjt3QkFDbkIsR0FBRywwQkFBMEI7d0JBQzdCLEdBQUcsZ0JBQWdCO3dCQUNuQixHQUFHLDBCQUEwQjt3QkFFN0IsbUJBQW1CO3FCQUNwQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTtxQkFDYjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsR0FBRyxzQkFBc0I7d0JBQ3pCLEdBQUcsa0JBQWtCO3dCQUNyQixHQUFHLHNCQUFzQjt3QkFDekIsR0FBRyxzQkFBc0I7d0JBQ3pCLEdBQUcseUJBQXlCO3dCQUM1QixHQUFHLGdCQUFnQjt3QkFDbkIsR0FBRywwQkFBMEI7d0JBQzdCLEdBQUcsZ0JBQWdCO3dCQUNuQixHQUFHLDBCQUEwQjt3QkFFN0IsbUJBQW1CO3FCQUNwQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRl9DT05ORUNUSU9OX1BST1ZJREVSUywgfSBmcm9tICcuL2YtY29ubmVjdGlvbic7XG5pbXBvcnQgeyBGX05PREVfUFJPVklERVJTIH0gZnJvbSAnLi9mLW5vZGUnO1xuaW1wb3J0IHsgRl9GTE9XX1BST1ZJREVSUyB9IGZyb20gJy4vZi1mbG93JztcbmltcG9ydCB7IEZfQkFDS0dST1VORF9QUk9WSURFUlMgfSBmcm9tICcuL2YtYmFja2dyb3VkJztcbmltcG9ydCB7IEZfQ0FOVkFTX1BST1ZJREVSUyB9IGZyb20gJy4vZi1jYW52YXMnO1xuaW1wb3J0IHsgRl9DT05ORUNUT1JTX1BST1ZJREVSUyB9IGZyb20gJy4vZi1jb25uZWN0b3JzJztcbmltcG9ydCB7IEZEcmFnZ2FibGVEaXJlY3RpdmUgfSBmcm9tICcuL2YtZHJhZ2dhYmxlJztcbmltcG9ydCB7IEZfRVhURVJOQUxfSVRFTV9QUk9WSURFUlMgfSBmcm9tICcuL2YtZXh0ZXJuYWwtaXRlbSc7XG5pbXBvcnQgeyBGX1NFTEVDVElPTl9BUkVBX1BST1ZJREVSUyB9IGZyb20gJy4vZi1zZWxlY3Rpb24tYXJlYSc7XG5pbXBvcnQgeyBGX0xJTkVfQUxJR05NRU5UX1BST1ZJREVSUyB9IGZyb20gJy4vZi1saW5lLWFsaWdubWVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIC4uLkZfQkFDS0dST1VORF9QUk9WSURFUlMsXG4gICAgLi4uRl9DQU5WQVNfUFJPVklERVJTLFxuICAgIC4uLkZfQ09OTkVDVElPTl9QUk9WSURFUlMsXG4gICAgLi4uRl9DT05ORUNUT1JTX1BST1ZJREVSUyxcbiAgICAuLi5GX0VYVEVSTkFMX0lURU1fUFJPVklERVJTLFxuICAgIC4uLkZfRkxPV19QUk9WSURFUlMsXG4gICAgLi4uRl9MSU5FX0FMSUdOTUVOVF9QUk9WSURFUlMsXG4gICAgLi4uRl9OT0RFX1BST1ZJREVSUyxcbiAgICAuLi5GX1NFTEVDVElPTl9BUkVBX1BST1ZJREVSUyxcblxuICAgIEZEcmFnZ2FibGVEaXJlY3RpdmUsXG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICAuLi5GX0JBQ0tHUk9VTkRfUFJPVklERVJTLFxuICAgIC4uLkZfQ0FOVkFTX1BST1ZJREVSUyxcbiAgICAuLi5GX0NPTk5FQ1RJT05fUFJPVklERVJTLFxuICAgIC4uLkZfQ09OTkVDVE9SU19QUk9WSURFUlMsXG4gICAgLi4uRl9FWFRFUk5BTF9JVEVNX1BST1ZJREVSUyxcbiAgICAuLi5GX0ZMT1dfUFJPVklERVJTLFxuICAgIC4uLkZfTElORV9BTElHTk1FTlRfUFJPVklERVJTLFxuICAgIC4uLkZfTk9ERV9QUk9WSURFUlMsXG4gICAgLi4uRl9TRUxFQ1RJT05fQVJFQV9QUk9WSURFUlMsXG5cbiAgICBGRHJhZ2dhYmxlRGlyZWN0aXZlLFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEZGbG93TW9kdWxlIHtcbn1cbiJdfQ==
86
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1mbG93Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1mbG93Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsc0JBQXNCLEdBQUcsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDNUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDaEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzlELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxVQUFVLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFxQzVDLE1BQU0sT0FBTyxXQUFXO3VHQUFYLFdBQVc7d0dBQVgsV0FBVyx5eUJBckJwQixtQkFBbUIsYUFHbkIsWUFBWSxxeUJBZVosbUJBQW1CO3dHQUdWLFdBQVcsWUFsQnBCLFlBQVk7OzJGQWtCSCxXQUFXO2tCQW5DdkIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osR0FBRyxzQkFBc0I7d0JBQ3pCLEdBQUcsa0JBQWtCO3dCQUNyQixHQUFHLGdCQUFnQjt3QkFDbkIsR0FBRyxzQkFBc0I7d0JBQ3pCLEdBQUcsc0JBQXNCO3dCQUN6QixHQUFHLHlCQUF5Qjt3QkFDNUIsR0FBRyxnQkFBZ0I7d0JBQ25CLEdBQUcsMEJBQTBCO3dCQUM3QixHQUFHLG1CQUFtQjt3QkFDdEIsR0FBRyxnQkFBZ0I7d0JBQ25CLEdBQUcsMEJBQTBCO3dCQUU3QixtQkFBbUI7cUJBQ3BCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3FCQUNiO29CQUNELE9BQU8sRUFBRTt3QkFDUCxHQUFHLHNCQUFzQjt3QkFDekIsR0FBRyxrQkFBa0I7d0JBQ3JCLEdBQUcsZ0JBQWdCO3dCQUNuQixHQUFHLHNCQUFzQjt3QkFDekIsR0FBRyxzQkFBc0I7d0JBQ3pCLEdBQUcseUJBQXlCO3dCQUM1QixHQUFHLGdCQUFnQjt3QkFDbkIsR0FBRywwQkFBMEI7d0JBQzdCLEdBQUcsbUJBQW1CO3dCQUN0QixHQUFHLGdCQUFnQjt3QkFDbkIsR0FBRywwQkFBMEI7d0JBRTdCLG1CQUFtQjtxQkFDcEI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZfQ09OTkVDVElPTl9QUk9WSURFUlMsIH0gZnJvbSAnLi9mLWNvbm5lY3Rpb24nO1xuaW1wb3J0IHsgRl9OT0RFX1BST1ZJREVSUyB9IGZyb20gJy4vZi1ub2RlJztcbmltcG9ydCB7IEZfRkxPV19QUk9WSURFUlMgfSBmcm9tICcuL2YtZmxvdyc7XG5pbXBvcnQgeyBGX0JBQ0tHUk9VTkRfUFJPVklERVJTIH0gZnJvbSAnLi9mLWJhY2tncm91ZCc7XG5pbXBvcnQgeyBGX0NBTlZBU19QUk9WSURFUlMgfSBmcm9tICcuL2YtY2FudmFzJztcbmltcG9ydCB7IEZfQ09OTkVDVE9SU19QUk9WSURFUlMgfSBmcm9tICcuL2YtY29ubmVjdG9ycyc7XG5pbXBvcnQgeyBGRHJhZ2dhYmxlRGlyZWN0aXZlIH0gZnJvbSAnLi9mLWRyYWdnYWJsZSc7XG5pbXBvcnQgeyBGX0VYVEVSTkFMX0lURU1fUFJPVklERVJTIH0gZnJvbSAnLi9mLWV4dGVybmFsLWl0ZW0nO1xuaW1wb3J0IHsgRl9TRUxFQ1RJT05fQVJFQV9QUk9WSURFUlMgfSBmcm9tICcuL2Ytc2VsZWN0aW9uLWFyZWEnO1xuaW1wb3J0IHsgRl9MSU5FX0FMSUdOTUVOVF9QUk9WSURFUlMgfSBmcm9tICcuL2YtbGluZS1hbGlnbm1lbnQnO1xuaW1wb3J0IHsgRl9NSU5JTUFQX1BST1ZJREVSUyB9IGZyb20gJy4vZi1taW5pbWFwJztcbmltcG9ydCB7IEZfWk9PTV9QUk9WSURFUlMgfSBmcm9tICcuL2Ytem9vbSc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIC4uLkZfQkFDS0dST1VORF9QUk9WSURFUlMsXG4gICAgLi4uRl9DQU5WQVNfUFJPVklERVJTLFxuICAgIC4uLkZfWk9PTV9QUk9WSURFUlMsXG4gICAgLi4uRl9DT05ORUNUSU9OX1BST1ZJREVSUyxcbiAgICAuLi5GX0NPTk5FQ1RPUlNfUFJPVklERVJTLFxuICAgIC4uLkZfRVhURVJOQUxfSVRFTV9QUk9WSURFUlMsXG4gICAgLi4uRl9GTE9XX1BST1ZJREVSUyxcbiAgICAuLi5GX0xJTkVfQUxJR05NRU5UX1BST1ZJREVSUyxcbiAgICAuLi5GX01JTklNQVBfUFJPVklERVJTLFxuICAgIC4uLkZfTk9ERV9QUk9WSURFUlMsXG4gICAgLi4uRl9TRUxFQ1RJT05fQVJFQV9QUk9WSURFUlMsXG5cbiAgICBGRHJhZ2dhYmxlRGlyZWN0aXZlLFxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgLi4uRl9CQUNLR1JPVU5EX1BST1ZJREVSUyxcbiAgICAuLi5GX0NBTlZBU19QUk9WSURFUlMsXG4gICAgLi4uRl9aT09NX1BST1ZJREVSUyxcbiAgICAuLi5GX0NPTk5FQ1RJT05fUFJPVklERVJTLFxuICAgIC4uLkZfQ09OTkVDVE9SU19QUk9WSURFUlMsXG4gICAgLi4uRl9FWFRFUk5BTF9JVEVNX1BST1ZJREVSUyxcbiAgICAuLi5GX0ZMT1dfUFJPVklERVJTLFxuICAgIC4uLkZfTElORV9BTElHTk1FTlRfUFJPVklERVJTLFxuICAgIC4uLkZfTUlOSU1BUF9QUk9WSURFUlMsXG4gICAgLi4uRl9OT0RFX1BST1ZJREVSUyxcbiAgICAuLi5GX1NFTEVDVElPTl9BUkVBX1BST1ZJREVSUyxcblxuICAgIEZEcmFnZ2FibGVEaXJlY3RpdmUsXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRkZsb3dNb2R1bGUge1xufVxuIl19
@@ -0,0 +1,43 @@
1
+ import { __decorate } from "tslib";
2
+ import { Point, PointExtensions, RectExtensions } from '@foblex/core';
3
+ import { CalculateFlowPointFromMinimapPointRequest } from './calculate-flow-point-from-minimap-point.request';
4
+ import { Injectable } from '@angular/core';
5
+ import { FExecutionRegister } from '../../../infrastructure';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "../../../f-storage";
8
+ let CalculateFlowPointFromMinimapPointExecution = class CalculateFlowPointFromMinimapPointExecution {
9
+ fComponentsStore;
10
+ get canvasScale() {
11
+ return this.fComponentsStore.fCanvas.transform.scale;
12
+ }
13
+ constructor(fComponentsStore) {
14
+ this.fComponentsStore = fComponentsStore;
15
+ }
16
+ handle(payload) {
17
+ return PointExtensions.sub(payload.canvasPosition, PointExtensions.sub(this.getPositionInViewBox(payload.eventPoint, payload.minimap), this.getNormalizedFlowCenter(payload.flowRect)));
18
+ }
19
+ getNormalizedFlowCenter(flowRect) {
20
+ return Point.fromPoint(flowRect.gravityCenter).sub(flowRect);
21
+ }
22
+ getPositionInViewBox(eventPoint, minimap) {
23
+ const eventPointInFlow = this.normalizeEventPoint(eventPoint, minimap);
24
+ return PointExtensions.sum(eventPointInFlow, RectExtensions.mult(minimap.viewBox, this.canvasScale));
25
+ }
26
+ normalizeEventPoint(point, minimap) {
27
+ return this.getEventPointInMinimap(point, minimap)
28
+ .mult(minimap.scale).mult(this.canvasScale);
29
+ }
30
+ getEventPointInMinimap(eventPoint, minimap) {
31
+ return Point.fromPoint(eventPoint).elementTransform(minimap.element);
32
+ }
33
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: CalculateFlowPointFromMinimapPointExecution, deps: [{ token: i1.FComponentsStore }], target: i0.ɵɵFactoryTarget.Injectable });
34
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: CalculateFlowPointFromMinimapPointExecution });
35
+ };
36
+ CalculateFlowPointFromMinimapPointExecution = __decorate([
37
+ FExecutionRegister(CalculateFlowPointFromMinimapPointRequest)
38
+ ], CalculateFlowPointFromMinimapPointExecution);
39
+ export { CalculateFlowPointFromMinimapPointExecution };
40
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: CalculateFlowPointFromMinimapPointExecution, decorators: [{
41
+ type: Injectable
42
+ }], ctorParameters: () => [{ type: i1.FComponentsStore }] });
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsY3VsYXRlLWZsb3ctcG9pbnQtZnJvbS1taW5pbWFwLXBvaW50LmV4ZWN1dGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1taW5pbWFwL2RvbWFpbi9jYWxjdWxhdGUtZmxvdy1wb2ludC1mcm9tLW1pbmltYXAtcG9pbnQvY2FsY3VsYXRlLWZsb3ctcG9pbnQtZnJvbS1taW5pbWFwLXBvaW50LmV4ZWN1dGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFpQixLQUFLLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNyRixPQUFPLEVBQUUseUNBQXlDLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUM5RyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxrQkFBa0IsRUFBYyxNQUFNLHlCQUF5QixDQUFDOzs7QUFLbEUsSUFBTSwyQ0FBMkMsR0FBakQsTUFBTSwyQ0FBMkM7SUFRNUM7SUFMVixJQUFZLFdBQVc7UUFDckIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBUSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7SUFDeEQsQ0FBQztJQUVELFlBQ1UsZ0JBQWtDO1FBQWxDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7SUFFNUMsQ0FBQztJQUVNLE1BQU0sQ0FBQyxPQUFrRDtRQUM5RCxPQUFPLGVBQWUsQ0FBQyxHQUFHLENBQ3hCLE9BQU8sQ0FBQyxjQUFjLEVBQ3RCLGVBQWUsQ0FBQyxHQUFHLENBQ2pCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFDOUQsSUFBSSxDQUFDLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FDL0MsQ0FDRixDQUFDO0lBQ0osQ0FBQztJQUVPLHVCQUF1QixDQUFDLFFBQWU7UUFDN0MsT0FBTyxLQUFLLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVPLG9CQUFvQixDQUFDLFVBQWtCLEVBQUUsT0FBcUI7UUFDcEUsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3ZFLE9BQU8sZUFBZSxDQUFDLEdBQUcsQ0FDeEIsZ0JBQWdCLEVBQ2hCLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQ3ZELENBQUM7SUFDSixDQUFDO0lBRU0sbUJBQW1CLENBQUMsS0FBYSxFQUFFLE9BQXFCO1FBQzdELE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLEtBQUssRUFBRSxPQUFPLENBQUM7YUFDaEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFTyxzQkFBc0IsQ0FBQyxVQUFrQixFQUFFLE9BQXFCO1FBQ3RFLE9BQU8sS0FBSyxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsT0FBaUMsQ0FBQyxDQUFDO0lBQ2pHLENBQUM7dUdBekNVLDJDQUEyQzsyR0FBM0MsMkNBQTJDOztBQUEzQywyQ0FBMkM7SUFEdkQsa0JBQWtCLENBQUMseUNBQXlDLENBQUM7R0FDakQsMkNBQTJDLENBMEN2RDs7MkZBMUNZLDJDQUEyQztrQkFGdkQsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElQb2ludCwgSVJlY3QsIFBvaW50LCBQb2ludEV4dGVuc2lvbnMsIFJlY3RFeHRlbnNpb25zIH0gZnJvbSAnQGZvYmxleC9jb3JlJztcbmltcG9ydCB7IENhbGN1bGF0ZUZsb3dQb2ludEZyb21NaW5pbWFwUG9pbnRSZXF1ZXN0IH0gZnJvbSAnLi9jYWxjdWxhdGUtZmxvdy1wb2ludC1mcm9tLW1pbmltYXAtcG9pbnQucmVxdWVzdCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGQ29tcG9uZW50c1N0b3JlIH0gZnJvbSAnLi4vLi4vLi4vZi1zdG9yYWdlJztcbmltcG9ydCB7IEZFeGVjdXRpb25SZWdpc3RlciwgSUV4ZWN1dGlvbiB9IGZyb20gJy4uLy4uLy4uL2luZnJhc3RydWN0dXJlJztcbmltcG9ydCB7IEZNaW5pbWFwRGF0YSB9IGZyb20gJy4uL2YtbWluaW1hcC1kYXRhJztcblxuQEluamVjdGFibGUoKVxuQEZFeGVjdXRpb25SZWdpc3RlcihDYWxjdWxhdGVGbG93UG9pbnRGcm9tTWluaW1hcFBvaW50UmVxdWVzdClcbmV4cG9ydCBjbGFzcyBDYWxjdWxhdGVGbG93UG9pbnRGcm9tTWluaW1hcFBvaW50RXhlY3V0aW9uXG4gIGltcGxlbWVudHMgSUV4ZWN1dGlvbjxDYWxjdWxhdGVGbG93UG9pbnRGcm9tTWluaW1hcFBvaW50UmVxdWVzdCwgSVBvaW50PiB7XG5cbiAgcHJpdmF0ZSBnZXQgY2FudmFzU2NhbGUoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5mQ29tcG9uZW50c1N0b3JlLmZDYW52YXMhLnRyYW5zZm9ybS5zY2FsZTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZkNvbXBvbmVudHNTdG9yZTogRkNvbXBvbmVudHNTdG9yZVxuICApIHtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGUocGF5bG9hZDogQ2FsY3VsYXRlRmxvd1BvaW50RnJvbU1pbmltYXBQb2ludFJlcXVlc3QpOiBJUG9pbnQge1xuICAgIHJldHVybiBQb2ludEV4dGVuc2lvbnMuc3ViKFxuICAgICAgcGF5bG9hZC5jYW52YXNQb3NpdGlvbixcbiAgICAgIFBvaW50RXh0ZW5zaW9ucy5zdWIoXG4gICAgICAgIHRoaXMuZ2V0UG9zaXRpb25JblZpZXdCb3gocGF5bG9hZC5ldmVudFBvaW50LCBwYXlsb2FkLm1pbmltYXApLFxuICAgICAgICB0aGlzLmdldE5vcm1hbGl6ZWRGbG93Q2VudGVyKHBheWxvYWQuZmxvd1JlY3QpXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Tm9ybWFsaXplZEZsb3dDZW50ZXIoZmxvd1JlY3Q6IElSZWN0KTogSVBvaW50IHtcbiAgICByZXR1cm4gUG9pbnQuZnJvbVBvaW50KGZsb3dSZWN0LmdyYXZpdHlDZW50ZXIpLnN1YihmbG93UmVjdCk7XG4gIH1cblxuICBwcml2YXRlIGdldFBvc2l0aW9uSW5WaWV3Qm94KGV2ZW50UG9pbnQ6IElQb2ludCwgbWluaW1hcDogRk1pbmltYXBEYXRhKTogSVBvaW50IHtcbiAgICBjb25zdCBldmVudFBvaW50SW5GbG93ID0gdGhpcy5ub3JtYWxpemVFdmVudFBvaW50KGV2ZW50UG9pbnQsIG1pbmltYXApO1xuICAgIHJldHVybiBQb2ludEV4dGVuc2lvbnMuc3VtKFxuICAgICAgZXZlbnRQb2ludEluRmxvdyxcbiAgICAgIFJlY3RFeHRlbnNpb25zLm11bHQobWluaW1hcC52aWV3Qm94LCB0aGlzLmNhbnZhc1NjYWxlKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgbm9ybWFsaXplRXZlbnRQb2ludChwb2ludDogSVBvaW50LCBtaW5pbWFwOiBGTWluaW1hcERhdGEpOiBQb2ludCB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0RXZlbnRQb2ludEluTWluaW1hcChwb2ludCwgbWluaW1hcClcbiAgICAgLm11bHQobWluaW1hcC5zY2FsZSkubXVsdCh0aGlzLmNhbnZhc1NjYWxlKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RXZlbnRQb2ludEluTWluaW1hcChldmVudFBvaW50OiBJUG9pbnQsIG1pbmltYXA6IEZNaW5pbWFwRGF0YSk6IFBvaW50IHtcbiAgICByZXR1cm4gUG9pbnQuZnJvbVBvaW50KGV2ZW50UG9pbnQpLmVsZW1lbnRUcmFuc2Zvcm0obWluaW1hcC5lbGVtZW50IGFzIHVua25vd24gYXMgSFRNTEVsZW1lbnQpO1xuICB9XG59XG4iXX0=