@foblex/flow 12.2.2 → 12.2.3

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 (157) hide show
  1. package/domain/create-connection-markers/create-connection-markers-request.d.ts +5 -0
  2. package/domain/create-connection-markers/create-connection-markers.handler.d.ts +10 -0
  3. package/domain/create-connection-markers/index.d.ts +2 -0
  4. package/domain/get-connection.handler.d.ts +1 -1
  5. package/domain/get-element-rect-in-flow/get-element-rect-in-flow.handler.d.ts +1 -1
  6. package/domain/get-incoming-connections.handler.d.ts +1 -1
  7. package/domain/get-input-rect-in-flow/get-input-rect-in-flow.handler.d.ts +1 -1
  8. package/domain/get-nodes-rect/get-nodes-rect.handler.d.ts +1 -1
  9. package/domain/get-outgoing-connections.handler.d.ts +1 -1
  10. package/domain/get-output-rect-in-flow/get-output-rect-in-flow.handler.d.ts +1 -1
  11. package/domain/get-position-in-flow/get-position-in-flow-request.d.ts +5 -0
  12. package/domain/get-position-in-flow/get-position-in-flow.handler.d.ts +13 -0
  13. package/domain/get-position-in-flow/index.d.ts +2 -0
  14. package/domain/index.d.ts +2 -0
  15. package/domain/providers.d.ts +3 -1
  16. package/domain/redraw-connections/redraw-connections.handler.d.ts +2 -1
  17. package/domain/select/select.handler.d.ts +1 -1
  18. package/domain/select-all/select-all.handler.d.ts +1 -1
  19. package/esm2022/domain/create-connection-markers/create-connection-markers-request.mjs +6 -0
  20. package/esm2022/domain/create-connection-markers/create-connection-markers.handler.mjs +49 -0
  21. package/esm2022/domain/create-connection-markers/index.mjs +3 -0
  22. package/esm2022/domain/get-connection.handler.mjs +3 -4
  23. package/esm2022/domain/get-element-rect-in-flow/get-element-rect-in-flow.handler.mjs +3 -4
  24. package/esm2022/domain/get-incoming-connections.handler.mjs +2 -2
  25. package/esm2022/domain/get-input-rect-in-flow/get-input-rect-in-flow.handler.mjs +2 -2
  26. package/esm2022/domain/get-nodes-rect/get-nodes-rect.handler.mjs +2 -2
  27. package/esm2022/domain/get-outgoing-connections.handler.mjs +2 -2
  28. package/esm2022/domain/get-output-rect-in-flow/get-output-rect-in-flow.handler.mjs +2 -2
  29. package/esm2022/domain/get-position-in-flow/get-position-in-flow-request.mjs +6 -0
  30. package/esm2022/domain/get-position-in-flow/get-position-in-flow.handler.mjs +32 -0
  31. package/esm2022/domain/get-position-in-flow/index.mjs +3 -0
  32. package/esm2022/domain/index.mjs +3 -1
  33. package/esm2022/domain/providers.mjs +5 -4
  34. package/esm2022/domain/redraw-connections/redraw-connections.handler.mjs +11 -4
  35. package/esm2022/domain/select/select.handler.mjs +3 -3
  36. package/esm2022/domain/select-all/select-all.handler.mjs +2 -2
  37. package/esm2022/f-backgroud/f-background.component.mjs +4 -4
  38. package/esm2022/f-backgroud/f-circle-pattern/f-circle-pattern.component.mjs +100 -0
  39. package/esm2022/f-backgroud/f-circle-pattern/index.mjs +2 -0
  40. package/esm2022/f-backgroud/f-rect-pattern/f-rect-pattern.component.mjs +118 -0
  41. package/esm2022/f-backgroud/{f-cell-pattern → f-rect-pattern}/index.mjs +2 -2
  42. package/esm2022/f-backgroud/index.mjs +3 -2
  43. package/esm2022/f-canvas/f-canvas.component.mjs +4 -4
  44. package/esm2022/f-canvas/f-zoom/f-zoom-base.mjs +1 -1
  45. package/esm2022/f-canvas/f-zoom/f-zoom.directive.mjs +2 -2
  46. package/esm2022/f-connection/common/domain/calculate-connection-center/calculate-connection-center.handler.mjs +2 -3
  47. package/esm2022/f-connection/common/domain/f-bezier.path-builder.mjs +2 -2
  48. package/esm2022/f-connection/common/domain/f-segment.path-builder.mjs +2 -2
  49. package/esm2022/f-connection/common/domain/f-straight.path-builder.mjs +2 -2
  50. package/esm2022/f-connection/common/f-connection-base.mjs +4 -36
  51. package/esm2022/f-connection/common/f-path/f-connection-path.component.mjs +11 -15
  52. package/esm2022/f-connection/common/f-path/get-path-marker-id.mjs +15 -0
  53. package/esm2022/f-connection/common/f-path/index.mjs +2 -1
  54. package/esm2022/f-connection/common/mixins/change-connection-selection.mixin.mjs +4 -2
  55. package/esm2022/f-connection/f-connection/f-connection.component.mjs +71 -13
  56. package/esm2022/f-connection/f-connection-for-create/f-connection-for-create.component.mjs +46 -9
  57. package/esm2022/f-connection/f-marker/f-marker-base.mjs +1 -1
  58. package/esm2022/f-connection/f-marker/f-marker.directive.mjs +19 -5
  59. package/esm2022/f-connectors/f-node-input/f-node-input.directive.mjs +5 -7
  60. package/esm2022/f-connectors/f-node-outlet/f-node-outlet.directive.mjs +4 -4
  61. package/esm2022/f-connectors/f-node-output/f-node-output.directive.mjs +5 -4
  62. package/esm2022/f-draggable/canvas/canvas.drag-handler.mjs +1 -1
  63. package/esm2022/f-draggable/canvas/canvas.prepare-drag-sequence.mjs +2 -2
  64. package/esm2022/f-draggable/connections/create-connection/create-connection.on-pointer-up.mjs +2 -2
  65. package/esm2022/f-draggable/connections/create-connection/create-connection.prepare-drag-sequence.mjs +3 -3
  66. package/esm2022/f-draggable/connections/create-connection/find-first-can-be-connected-output-by-outlet/find-first-can-be-connected-output-by-outlet.handler.mjs +2 -2
  67. package/esm2022/f-draggable/connections/find-inputs-under-pointer/find-inputs-under-pointer.handler.mjs +2 -2
  68. package/esm2022/f-draggable/connections/find-inputs-under-pointer/first-not-connected-input-of-node-under-pointer/first-not-connected-input-of-node-under-pointer.handler.mjs +2 -2
  69. package/esm2022/f-draggable/connections/reassign-connection/reassign-connection.on-pointer-up.mjs +2 -2
  70. package/esm2022/f-draggable/connections/reassign-connection/reassign-connection.prepare-drag-sequence.mjs +2 -2
  71. package/esm2022/f-draggable/external-item/external-item.drag-handler.mjs +2 -1
  72. package/esm2022/f-draggable/external-item/external-item.on-pointer-up.mjs +3 -3
  73. package/esm2022/f-draggable/external-item/external-item.prepare-drag-sequence.mjs +2 -2
  74. package/esm2022/f-draggable/f-draggable-base.mjs +8 -1
  75. package/esm2022/f-draggable/f-draggable-data-context.mjs +1 -2
  76. package/esm2022/f-draggable/f-draggable.directive.mjs +11 -2
  77. package/esm2022/f-draggable/node/domain/is-connection-under-node/is-connection-under-node.handler.mjs +2 -2
  78. package/esm2022/f-draggable/node/node.on-pointer-up.mjs +2 -2
  79. package/esm2022/f-draggable/node/node.prepare-drag-sequence.mjs +2 -2
  80. package/esm2022/f-draggable/selection-area/get-can-be-selected-items/get-can-be-selected-items.handler.mjs +2 -2
  81. package/esm2022/f-draggable/selection-area/selection-area.drag-handle.mjs +1 -1
  82. package/esm2022/f-draggable/selection-area/selection-area.prepare-drag-sequence.mjs +2 -2
  83. package/esm2022/f-draggable/single-select/single-select.on-pointer-down.mjs +2 -2
  84. package/esm2022/f-flow/f-flow.component.mjs +12 -10
  85. package/esm2022/f-flow.module.mjs +10 -6
  86. package/esm2022/f-group/f-group-base.mjs +3 -10
  87. package/esm2022/f-group/f-group.directive.mjs +64 -11
  88. package/esm2022/f-line-alignment/f-line-alignment.component.mjs +2 -2
  89. package/esm2022/f-node/f-node-base.mjs +1 -1
  90. package/esm2022/f-node/f-node.directive.mjs +14 -11
  91. package/esm2022/f-storage/f-components-store.mjs +41 -0
  92. package/esm2022/f-storage/index.mjs +2 -0
  93. package/esm2022/public-api.mjs +2 -3
  94. package/f-backgroud/f-background.component.d.ts +1 -1
  95. package/f-backgroud/f-circle-pattern/f-circle-pattern.component.d.ts +32 -0
  96. package/f-backgroud/f-circle-pattern/index.d.ts +1 -0
  97. package/f-backgroud/f-rect-pattern/f-rect-pattern.component.d.ts +37 -0
  98. package/f-backgroud/f-rect-pattern/index.d.ts +1 -0
  99. package/f-backgroud/index.d.ts +2 -1
  100. package/f-canvas/f-canvas.component.d.ts +2 -2
  101. package/f-canvas/f-zoom/f-zoom-base.d.ts +1 -1
  102. package/f-canvas/f-zoom/f-zoom.directive.d.ts +1 -1
  103. package/f-connection/common/f-connection-base.d.ts +4 -5
  104. package/f-connection/common/f-path/f-connection-path.component.d.ts +1 -2
  105. package/f-connection/common/f-path/get-path-marker-id.d.ts +4 -0
  106. package/f-connection/common/f-path/index.d.ts +1 -0
  107. package/f-connection/f-connection/f-connection.component.d.ts +27 -11
  108. package/f-connection/f-connection-for-create/f-connection-for-create.component.d.ts +17 -7
  109. package/f-connection/f-marker/f-marker-base.d.ts +2 -0
  110. package/f-connection/f-marker/f-marker.directive.d.ts +10 -4
  111. package/f-connectors/f-node-input/f-node-input.directive.d.ts +1 -1
  112. package/f-connectors/f-node-outlet/f-node-outlet.directive.d.ts +1 -1
  113. package/f-connectors/f-node-output/f-node-output.directive.d.ts +1 -1
  114. package/f-draggable/canvas/canvas.drag-handler.d.ts +1 -1
  115. package/f-draggable/canvas/canvas.prepare-drag-sequence.d.ts +1 -1
  116. package/f-draggable/canvas/providers.d.ts +1 -1
  117. package/f-draggable/connections/create-connection/create-connection.on-pointer-up.d.ts +1 -1
  118. package/f-draggable/connections/create-connection/create-connection.prepare-drag-sequence.d.ts +1 -1
  119. package/f-draggable/connections/create-connection/find-first-can-be-connected-output-by-outlet/find-first-can-be-connected-output-by-outlet.handler.d.ts +1 -1
  120. package/f-draggable/connections/find-inputs-under-pointer/find-inputs-under-pointer.handler.d.ts +1 -1
  121. package/f-draggable/connections/find-inputs-under-pointer/first-not-connected-input-of-node-under-pointer/first-not-connected-input-of-node-under-pointer.handler.d.ts +1 -1
  122. package/f-draggable/connections/providers.d.ts +1 -1
  123. package/f-draggable/connections/reassign-connection/reassign-connection.on-pointer-up.d.ts +1 -1
  124. package/f-draggable/connections/reassign-connection/reassign-connection.prepare-drag-sequence.d.ts +1 -1
  125. package/f-draggable/external-item/external-item.on-pointer-up.d.ts +1 -1
  126. package/f-draggable/external-item/external-item.prepare-drag-sequence.d.ts +1 -1
  127. package/f-draggable/f-draggable-base.d.ts +2 -0
  128. package/f-draggable/f-draggable.directive.d.ts +2 -1
  129. package/f-draggable/node/domain/is-connection-under-node/is-connection-under-node.handler.d.ts +1 -1
  130. package/f-draggable/node/node.on-pointer-up.d.ts +1 -1
  131. package/f-draggable/node/node.prepare-drag-sequence.d.ts +1 -1
  132. package/f-draggable/node/providers.d.ts +1 -1
  133. package/f-draggable/selection-area/get-can-be-selected-items/get-can-be-selected-items.handler.d.ts +1 -1
  134. package/f-draggable/selection-area/providers.d.ts +1 -1
  135. package/f-draggable/selection-area/selection-area.drag-handle.d.ts +1 -1
  136. package/f-draggable/selection-area/selection-area.prepare-drag-sequence.d.ts +1 -1
  137. package/f-draggable/single-select/single-select.on-pointer-down.d.ts +1 -1
  138. package/f-flow/f-flow.component.d.ts +4 -2
  139. package/f-flow.module.d.ts +18 -17
  140. package/f-group/f-group-base.d.ts +3 -9
  141. package/f-group/f-group.directive.d.ts +17 -7
  142. package/f-line-alignment/f-line-alignment.component.d.ts +1 -1
  143. package/f-node/f-node-base.d.ts +1 -1
  144. package/f-node/f-node.directive.d.ts +3 -3
  145. package/f-storage/f-components-store.d.ts +33 -0
  146. package/f-storage/index.d.ts +1 -0
  147. package/fesm2022/foblex-flow.mjs +599 -282
  148. package/fesm2022/foblex-flow.mjs.map +1 -1
  149. package/package.json +1 -1
  150. package/public-api.d.ts +1 -2
  151. package/esm2022/f-backgroud/f-cell-pattern/f-cell-pattern.component.mjs +0 -90
  152. package/esm2022/f-components-store.mjs +0 -77
  153. package/esm2022/get-flow-uid.mjs +0 -8
  154. package/f-backgroud/f-cell-pattern/f-cell-pattern.component.d.ts +0 -31
  155. package/f-backgroud/f-cell-pattern/index.d.ts +0 -1
  156. package/f-components-store.d.ts +0 -42
  157. package/get-flow-uid.d.ts +0 -4
@@ -33,10 +33,12 @@ export class FDraggableBase {
33
33
  this.dragStartTime = Date.now();
34
34
  this.dragStartPosition = mouseEvent.getPosition();
35
35
  this.ngZone.runOutsideAngular(() => {
36
+ this.document?.addEventListener('selectstart', this.onSelectStart, EventExtensions.activeListener());
36
37
  this.document?.addEventListener('mousemove', this.onMouseMove);
37
38
  this.document?.addEventListener('mouseup', this.onMouseUp);
38
39
  });
39
40
  this.mouseListeners = () => {
41
+ this.document?.removeEventListener('selectstart', this.onSelectStart, EventExtensions.activeListener());
40
42
  this.document?.removeEventListener('mousemove', this.onMouseMove);
41
43
  this.document?.removeEventListener('mouseup', this.onMouseUp);
42
44
  };
@@ -53,15 +55,20 @@ export class FDraggableBase {
53
55
  this.dragStartTime = Date.now();
54
56
  this.dragStartPosition = touchEvent.getPosition();
55
57
  this.ngZone.runOutsideAngular(() => {
58
+ this.document?.addEventListener('selectstart', this.onSelectStart, EventExtensions.activeListener());
56
59
  this.document?.addEventListener('touchmove', this.onTouchMove);
57
60
  this.document?.addEventListener('touchend', this.onTouchUp);
58
61
  });
59
62
  this.touchListeners = () => {
63
+ this.document?.removeEventListener('selectstart', this.onSelectStart, EventExtensions.activeListener());
60
64
  this.document?.removeEventListener('touchmove', this.onTouchMove);
61
65
  this.document?.removeEventListener('touchend', this.onTouchUp);
62
66
  };
63
67
  }
64
68
  };
69
+ this.onSelectStart = (event) => {
70
+ this.onSelect(event);
71
+ };
65
72
  this.onMouseMove = (event) => {
66
73
  this.moveHandler(new IMouseEvent(event));
67
74
  };
@@ -153,4 +160,4 @@ function isFakeTouchstartFromScreenReader(event) {
153
160
  (touch.radiusX == null || touch.radiusX === 1) &&
154
161
  (touch.radiusY == null || touch.radiusY === 1));
155
162
  }
156
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1kcmFnZ2FibGUtYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1kcmFnZ2FibGUvZi1kcmFnZ2FibGUtYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsZUFBZSxFQUNFLFdBQVcsRUFBeUIsZUFBZSxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUN0SCxNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFPLEVBQ0wsU0FBUyxFQUVULGNBQWMsR0FDZixNQUFNLGVBQWUsQ0FBQzs7QUFPdkIsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLElBQUksY0FBYyxDQUFpQixhQUFhLENBQUMsQ0FBQztBQUU3RSxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxHQUFHLENBQUM7QUFHM0MsTUFBTSxPQUFnQixjQUFjO0lBbUIzQixnQkFBZ0IsQ0FBQyxLQUFpQjtRQUN2QyxNQUFNLGdCQUFnQixHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCO1lBQ2hELENBQUMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLHVCQUF1QixHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ25FLE9BQU8sZ0JBQWdCLENBQUM7SUFDMUIsQ0FBQztJQWVELFlBQ1ksTUFBNkI7UUFBN0IsV0FBTSxHQUFOLE1BQU0sQ0FBdUI7UUF6QmpDLG1CQUFjLEdBQWEsZUFBZSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzNELG1CQUFjLEdBQWEsZUFBZSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBRTNELG1CQUFjLEdBQWEsZUFBZSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBUTNELHVCQUFrQixHQUFXLENBQUMsQ0FBQztRQUVoQyxrQkFBYSxHQUFZLEtBQUssQ0FBQztRQUM5Qix1QkFBa0IsR0FBVyxDQUFDLENBQUM7UUFDL0IsbUJBQWMsR0FBVyxDQUFDLENBQUM7UUFFM0Is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LENBQUMsY0FBYyxHQUFHLGVBQWUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN4RCxDQUFDOzhHQTVMbUIsY0FBYztrR0FBZCxjQUFjOzsyRkFBZCxjQUFjO2tCQURuQyxTQUFTOztBQWdNVixTQUFTLFlBQVksQ0FBQyxLQUE4QjtJQUNsRCxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUUsQ0FBQyxDQUFFLEtBQUssR0FBRyxDQUFDO0FBQ2pDLENBQUM7QUFFRCxTQUFTLCtCQUErQixDQUFDLEtBQWlCO0lBQ3hELE9BQU8sS0FBSyxDQUFDLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQzdFLENBQUM7QUFFRCxTQUFTLGdDQUFnQyxDQUFDLEtBQWlCO0lBQ3pELE1BQU0sS0FBSyxHQUNULENBQUMsS0FBSyxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFFLENBQUMsQ0FBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxJQUFJLEtBQUssQ0FBQyxjQUFjLENBQUUsQ0FBQyxDQUFFLENBQUMsQ0FBQztJQUMvRixPQUFPLENBQ0wsQ0FBQyxDQUFDLEtBQUs7UUFDUCxLQUFLLENBQUMsVUFBVSxLQUFLLENBQUMsQ0FBQztRQUN2QixDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksSUFBSSxJQUFJLEtBQUssQ0FBQyxPQUFPLEtBQUssQ0FBQyxDQUFDO1FBQzlDLENBQUMsS0FBSyxDQUFDLE9BQU8sSUFBSSxJQUFJLElBQUksS0FBSyxDQUFDLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FDL0MsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBFdmVudEV4dGVuc2lvbnMsXG4gIElIYXNIb3N0RWxlbWVudCwgSU1vdXNlRXZlbnQsIElQb2ludCwgSVBvaW50ZXJFdmVudCwgSVRvdWNoRG93bkV2ZW50LCBJVG91Y2hNb3ZlRXZlbnQsIElUb3VjaFVwRXZlbnQsIFBvaW50RXh0ZW5zaW9uc1xufSBmcm9tICdAZm9ibGV4L2NvcmUnO1xuaW1wb3J0IHtcbiAgRGlyZWN0aXZlLFxuICBFdmVudEVtaXR0ZXIsXG4gIEluamVjdGlvblRva2VuLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZDcmVhdGVOb2RlRXZlbnR9IGZyb20gJy4vZXh0ZXJuYWwtaXRlbSc7XG5pbXBvcnQgeyBGUmVhc3NpZ25Db25uZWN0aW9uRXZlbnQgfSBmcm9tICcuL2Nvbm5lY3Rpb25zJztcbmltcG9ydCB7IEZDcmVhdGVDb25uZWN0aW9uRXZlbnQgfSBmcm9tICcuL2Nvbm5lY3Rpb25zJztcbmltcG9ydCB7IEZTZWxlY3Rpb25DaGFuZ2VFdmVudCB9IGZyb20gJy4vZi1zZWxlY3Rpb24tY2hhbmdlLWV2ZW50JztcbmltcG9ydCB7IElDYW5SdW5PdXRzaWRlQW5ndWxhciB9IGZyb20gJ0Bmb2JsZXgvY29yZS9kcmFnLWFuZC1kcm9wL2ktY2FuLXJ1bi1vdXRzaWRlLWFuZ3VsYXInO1xuXG5leHBvcnQgY29uc3QgRl9EUkFHR0FCTEUgPSBuZXcgSW5qZWN0aW9uVG9rZW48RkRyYWdnYWJsZUJhc2U+KCdGX0RSQUdHQUJMRScpO1xuXG5leHBvcnQgY29uc3QgTU9VU0VfRVZFTlRfSUdOT1JFX1RJTUUgPSA4MDA7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEZEcmFnZ2FibGVCYXNlIGltcGxlbWVudHMgSUhhc0hvc3RFbGVtZW50IHtcblxuICBwdWJsaWMgYWJzdHJhY3QgaG9zdEVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmU2VsZWN0aW9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RlNlbGVjdGlvbkNoYW5nZUV2ZW50PjtcblxuICBwdWJsaWMgYWJzdHJhY3QgZkNyZWF0ZU5vZGU6IEV2ZW50RW1pdHRlcjxGQ3JlYXRlTm9kZUV2ZW50PjtcblxuICBwdWJsaWMgYWJzdHJhY3QgZlJlYXNzaWduQ29ubmVjdGlvbjogRXZlbnRFbWl0dGVyPEZSZWFzc2lnbkNvbm5lY3Rpb25FdmVudD47XG5cbiAgcHVibGljIGFic3RyYWN0IGZDcmVhdGVDb25uZWN0aW9uOiBFdmVudEVtaXR0ZXI8RkNyZWF0ZUNvbm5lY3Rpb25FdmVudD47XG5cbiAgcHJpdmF0ZSBkb2N1bWVudDogRG9jdW1lbnQgfCB1bmRlZmluZWQ7XG5cbiAgcHJpdmF0ZSBtb3VzZUxpc3RlbmVyczogRnVuY3Rpb24gPSBFdmVudEV4dGVuc2lvbnMuZW1wdHlMaXN0ZW5lcigpO1xuICBwcml2YXRlIHRvdWNoTGlzdGVuZXJzOiBGdW5jdGlvbiA9IEV2ZW50RXh0ZW5zaW9ucy5lbXB0eUxpc3RlbmVyKCk7XG5cbiAgcHJpdmF0ZSBzdGFydExpc3RlbmVyczogRnVuY3Rpb24gPSBFdmVudEV4dGVuc2lvbnMuZW1wdHlMaXN0ZW5lcigpO1xuXG4gIHB1YmxpYyBpc1N5bnRoZXRpY0V2ZW50KGV2ZW50OiBNb3VzZUV2ZW50KTogYm9vbGVhbiB7XG4gICAgY29uc3QgaXNTeW50aGV0aWNFdmVudCA9ICEhdGhpcy5sYXN0VG91Y2hFdmVudFRpbWUgJiZcbiAgICAgICh0aGlzLmxhc3RUb3VjaEV2ZW50VGltZSArIE1PVVNFX0VWRU5UX0lHTk9SRV9USU1FID4gRGF0ZS5ub3coKSk7XG4gICAgcmV0dXJuIGlzU3ludGhldGljRXZlbnQ7XG4gIH1cblxuICBwcml2YXRlIGxhc3RUb3VjaEV2ZW50VGltZTogbnVtYmVyID0gMDtcblxuICBwdWJsaWMgaXNEcmFnU3RhcnRlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIGRyYWdTdGFydFRocmVzaG9sZDogbnVtYmVyID0gNTtcbiAgcHJpdmF0ZSBkcmFnU3RhcnREZWxheTogbnVtYmVyID0gMDtcblxuICBwcml2YXRlIGRyYWdTdGFydFRpbWU6IG51bWJlciA9IDA7XG4gIHByaXZhdGUgZHJhZ1N0YXJ0UG9zaXRpb246IElQb2ludCA9IFBvaW50RXh0ZW5zaW9ucy5pbml0aWFsaXplKCk7XG5cbiAgcHVibGljIGFic3RyYWN0IGRpc2FibGVkOiBib29sZWFuO1xuXG4gIHByaXZhdGUgbW92ZUhhbmRsZXI6IEZ1bmN0aW9uID0gdGhpcy5jaGVja0RyYWdTZXF1ZW5jZVRvU3RhcnQ7XG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBuZ1pvbmU6IElDYW5SdW5PdXRzaWRlQW5ndWxhclxuICApIHtcbiAgfVxuXG4gIHByaXZhdGUgb25Nb3VzZURvd24gPSAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICBjb25zdCBpc1N5bnRoZXRpY0V2ZW50ID0gdGhpcy5pc1N5bnRoZXRpY0V2ZW50KGV2ZW50KTtcbiAgICBjb25zdCBpc0Zha2VFdmVudCA9IGlzRmFrZU1vdXNlZG93bkZyb21TY3JlZW5SZWFkZXIoZXZlbnQpO1xuICAgIGNvbnN0IG1vdXNlRXZlbnQgPSBuZXcgSU1vdXNlRXZlbnQoZXZlbnQpO1xuXG4gICAgaWYgKGlzU3ludGhldGljRXZlbnQgfHwgaXNGYWtlRXZlbnQgfHwgdGhpcy5kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBsZXQgcmVzdWx0ID0gdGhpcy5vblBvaW50ZXJEb3duKG1vdXNlRXZlbnQpO1xuICAgIGlmIChyZXN1bHQpIHtcblxuICAgICAgdGhpcy5kcmFnU3RhcnRUaW1lID0gRGF0ZS5ub3coKTtcbiAgICAgIHRoaXMuZHJhZ1N0YXJ0UG9zaXRpb24gPSBtb3VzZUV2ZW50LmdldFBvc2l0aW9uKCk7XG5cbiAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgdGhpcy5kb2N1bWVudD8uYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgdGhpcy5vbk1vdXNlTW92ZSk7XG4gICAgICAgIHRoaXMuZG9jdW1lbnQ/LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCB0aGlzLm9uTW91c2VVcCk7XG4gICAgICB9KTtcblxuICAgICAgdGhpcy5tb3VzZUxpc3RlbmVycyA9ICgpID0+IHtcbiAgICAgICAgdGhpcy5kb2N1bWVudD8ucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgdGhpcy5vbk1vdXNlTW92ZSk7XG4gICAgICAgIHRoaXMuZG9jdW1lbnQ/LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNldXAnLCB0aGlzLm9uTW91c2VVcCk7XG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgb25Ub3VjaERvd24gPSAoZXZlbnQ6IFRvdWNoRXZlbnQpID0+IHtcbiAgICBjb25zdCBpc0Zha2VFdmVudCA9IGlzRmFrZVRvdWNoc3RhcnRGcm9tU2NyZWVuUmVhZGVyKGV2ZW50IGFzIFRvdWNoRXZlbnQpXG4gICAgY29uc3QgdG91Y2hFdmVudCA9IG5ldyBJVG91Y2hEb3duRXZlbnQoZXZlbnQpO1xuXG4gICAgaWYgKGlzRmFrZUV2ZW50IHx8IHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgbGV0IHJlc3VsdCA9IHRoaXMub25Qb2ludGVyRG93bihuZXcgSVRvdWNoRG93bkV2ZW50KGV2ZW50KSk7XG4gICAgaWYgKHJlc3VsdCkge1xuXG4gICAgICB0aGlzLmRyYWdTdGFydFRpbWUgPSBEYXRlLm5vdygpO1xuICAgICAgdGhpcy5kcmFnU3RhcnRQb3NpdGlvbiA9IHRvdWNoRXZlbnQuZ2V0UG9zaXRpb24oKTtcblxuICAgICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICB0aGlzLmRvY3VtZW50Py5hZGRFdmVudExpc3RlbmVyKCd0b3VjaG1vdmUnLCB0aGlzLm9uVG91Y2hNb3ZlKTtcbiAgICAgICAgdGhpcy5kb2N1bWVudD8uYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hlbmQnLCB0aGlzLm9uVG91Y2hVcCk7XG4gICAgICB9KTtcblxuICAgICAgdGhpcy50b3VjaExpc3RlbmVycyA9ICgpID0+IHtcbiAgICAgICAgdGhpcy5kb2N1bWVudD8ucmVtb3ZlRXZlbnRMaXN0ZW5lcigndG91Y2htb3ZlJywgdGhpcy5vblRvdWNoTW92ZSk7XG4gICAgICAgIHRoaXMuZG9jdW1lbnQ/LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3RvdWNoZW5kJywgdGhpcy5vblRvdWNoVXApO1xuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG9uTW91c2VNb3ZlID0gKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgdGhpcy5tb3ZlSGFuZGxlcihuZXcgSU1vdXNlRXZlbnQoZXZlbnQpKTtcbiAgfVxuXG4gIHByaXZhdGUgb25Ub3VjaE1vdmUgPSAoZXZlbnQ6IFRvdWNoRXZlbnQpID0+IHtcbiAgICB0aGlzLm1vdmVIYW5kbGVyKG5ldyBJVG91Y2hNb3ZlRXZlbnQoZXZlbnQpKTtcbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tEcmFnU2VxdWVuY2VUb1N0YXJ0KGV2ZW50OiBJUG9pbnRlckV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgcG9pbnRlclBvc2l0aW9uID0gZXZlbnQuZ2V0UG9zaXRpb24oKTtcblxuICAgIGlmICghdGhpcy5pc0RyYWdTdGFydGVkKSB7XG4gICAgICBjb25zdCBkaXN0YW5jZVggPSBNYXRoLmFicyhwb2ludGVyUG9zaXRpb24ueCAtIHRoaXMuZHJhZ1N0YXJ0UG9zaXRpb24ueCk7XG4gICAgICBjb25zdCBkaXN0YW5jZVkgPSBNYXRoLmFicyhwb2ludGVyUG9zaXRpb24ueSAtIHRoaXMuZHJhZ1N0YXJ0UG9zaXRpb24ueSk7XG4gICAgICBjb25zdCBpc092ZXJUaHJlc2hvbGQgPSBkaXN0YW5jZVggKyBkaXN0YW5jZVkgPj0gdGhpcy5kcmFnU3RhcnRUaHJlc2hvbGQ7XG5cbiAgICAgIGlmIChpc092ZXJUaHJlc2hvbGQpIHtcbiAgICAgICAgY29uc3QgaXNEZWxheUVsYXBzZWQgPSBEYXRlLm5vdygpID49IHRoaXMuZHJhZ1N0YXJ0VGltZSArIHRoaXMuZHJhZ1N0YXJ0RGVsYXk7XG5cbiAgICAgICAgaWYgKCFpc0RlbGF5RWxhcHNlZCkge1xuICAgICAgICAgIHRoaXMuZW5kRHJhZ1NlcXVlbmNlKCk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy5wcmVwYXJlRHJhZ1NlcXVlbmNlKGV2ZW50KTtcbiAgICAgICAgdGhpcy5pc0RyYWdTdGFydGVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5tb3ZlSGFuZGxlciA9IHRoaXMub25Qb2ludGVyTW92ZTtcbiAgICAgICAgaWYgKGlzVG91Y2hFdmVudChldmVudC5vcmlnaW5hbEV2ZW50KSkge1xuICAgICAgICAgIHRoaXMubGFzdFRvdWNoRXZlbnRUaW1lID0gRGF0ZS5ub3coKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBwcmVwYXJlRHJhZ1NlcXVlbmNlKGV2ZW50OiBJUG9pbnRlckV2ZW50KTogdm9pZDtcblxuICBwcml2YXRlIG9uTW91c2VVcCA9IChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgIGlmICh0aGlzLmlzRHJhZ1N0YXJ0ZWQpIHtcbiAgICAgIHRoaXMub25Qb2ludGVyVXAobmV3IElNb3VzZUV2ZW50KGV2ZW50KSk7XG4gICAgfVxuICAgIHRoaXMuZW5kRHJhZ1NlcXVlbmNlKCk7XG4gIH1cblxuICBwcml2YXRlIG9uVG91Y2hVcCA9IChldmVudDogVG91Y2hFdmVudCkgPT4ge1xuICAgIGlmICh0aGlzLmlzRHJhZ1N0YXJ0ZWQpIHtcbiAgICAgIHRoaXMub25Qb2ludGVyVXAobmV3IElUb3VjaFVwRXZlbnQoZXZlbnQpKTtcbiAgICB9XG4gICAgdGhpcy5lbmREcmFnU2VxdWVuY2UoKTtcbiAgfVxuXG4gIHByaXZhdGUgZW5kRHJhZ1NlcXVlbmNlKCk6IHZvaWQge1xuICAgIHRoaXMuaXNEcmFnU3RhcnRlZCA9IGZhbHNlO1xuICAgIHRoaXMubW92ZUhhbmRsZXIgPSB0aGlzLmNoZWNrRHJhZ1NlcXVlbmNlVG9TdGFydDtcbiAgICB0aGlzLm1vdXNlTGlzdGVuZXJzKCk7XG4gICAgdGhpcy5tb3VzZUxpc3RlbmVycyA9IEV2ZW50RXh0ZW5zaW9ucy5lbXB0eUxpc3RlbmVyKCk7XG4gICAgdGhpcy50b3VjaExpc3RlbmVycygpO1xuICAgIHRoaXMudG91Y2hMaXN0ZW5lcnMgPSBFdmVudEV4dGVuc2lvbnMuZW1wdHlMaXN0ZW5lcigpO1xuICAgIHRoaXMuZmluYWxpemVEcmFnU2VxdWVuY2UoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBmaW5hbGl6ZURyYWdTZXF1ZW5jZSgpOiB2b2lkO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBvblBvaW50ZXJEb3duKGV2ZW50OiBJUG9pbnRlckV2ZW50KTogYm9vbGVhbjtcblxuICBwdWJsaWMgYWJzdHJhY3Qgb25Qb2ludGVyTW92ZShldmVudDogSVBvaW50ZXJFdmVudCk6IHZvaWQ7XG5cbiAgcHVibGljIGFic3RyYWN0IG9uUG9pbnRlclVwKGV2ZW50OiBJUG9pbnRlckV2ZW50KTogdm9pZDtcblxuICBwdWJsaWMgc3Vic2NyaWJlKGRvY3VtZW50OiBEb2N1bWVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRvY3VtZW50KSB7XG4gICAgICB0aGlzLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICAgIHRoaXMuZG9jdW1lbnQgPSBkb2N1bWVudDtcblxuICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIHRoaXMub25Nb3VzZURvd24sIEV2ZW50RXh0ZW5zaW9ucy5hY3RpdmVMaXN0ZW5lcigpKTtcbiAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCB0aGlzLm9uVG91Y2hEb3duLCBFdmVudEV4dGVuc2lvbnMucGFzc2l2ZUxpc3RlbmVyKCkpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5zdGFydExpc3RlbmVycyA9ICgpID0+IHtcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIHRoaXMub25Nb3VzZURvd24sIEV2ZW50RXh0ZW5zaW9ucy5hY3RpdmVMaXN0ZW5lcigpKTtcbiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCB0aGlzLm9uVG91Y2hEb3duLCBFdmVudEV4dGVuc2lvbnMucGFzc2l2ZUxpc3RlbmVyKCkpO1xuICAgIH07XG4gIH1cblxuICBwdWJsaWMgdW5zdWJzY3JpYmUoKTogdm9pZCB7XG5cbiAgICB0aGlzLnN0YXJ0TGlzdGVuZXJzKCk7XG4gICAgdGhpcy5zdGFydExpc3RlbmVycyA9IEV2ZW50RXh0ZW5zaW9ucy5lbXB0eUxpc3RlbmVyKCk7XG4gICAgdGhpcy50b3VjaExpc3RlbmVycygpO1xuICAgIHRoaXMudG91Y2hMaXN0ZW5lcnMgPSBFdmVudEV4dGVuc2lvbnMuZW1wdHlMaXN0ZW5lcigpO1xuICAgIHRoaXMubW91c2VMaXN0ZW5lcnMoKTtcbiAgICB0aGlzLm1vdXNlTGlzdGVuZXJzID0gRXZlbnRFeHRlbnNpb25zLmVtcHR5TGlzdGVuZXIoKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBpc1RvdWNoRXZlbnQoZXZlbnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50KTogZXZlbnQgaXMgVG91Y2hFdmVudCB7XG4gIHJldHVybiBldmVudC50eXBlWyAwIF0gPT09ICd0Jztcbn1cblxuZnVuY3Rpb24gaXNGYWtlTW91c2Vkb3duRnJvbVNjcmVlblJlYWRlcihldmVudDogTW91c2VFdmVudCk6IGJvb2xlYW4ge1xuICByZXR1cm4gZXZlbnQuYnV0dG9ucyA9PT0gMCB8fCAoZXZlbnQub2Zmc2V0WCA9PT0gMCAmJiBldmVudC5vZmZzZXRZID09PSAwKTtcbn1cblxuZnVuY3Rpb24gaXNGYWtlVG91Y2hzdGFydEZyb21TY3JlZW5SZWFkZXIoZXZlbnQ6IFRvdWNoRXZlbnQpOiBib29sZWFuIHtcbiAgY29uc3QgdG91Y2g6IFRvdWNoIHwgdW5kZWZpbmVkID1cbiAgICAoZXZlbnQudG91Y2hlcyAmJiBldmVudC50b3VjaGVzWyAwIF0pIHx8IChldmVudC5jaGFuZ2VkVG91Y2hlcyAmJiBldmVudC5jaGFuZ2VkVG91Y2hlc1sgMCBdKTtcbiAgcmV0dXJuIChcbiAgICAhIXRvdWNoICYmXG4gICAgdG91Y2guaWRlbnRpZmllciA9PT0gLTEgJiZcbiAgICAodG91Y2gucmFkaXVzWCA9PSBudWxsIHx8IHRvdWNoLnJhZGl1c1ggPT09IDEpICYmXG4gICAgKHRvdWNoLnJhZGl1c1kgPT0gbnVsbCB8fCB0b3VjaC5yYWRpdXNZID09PSAxKVxuICApO1xufVxuIl19
163
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1kcmFnZ2FibGUtYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1kcmFnZ2FibGUvZi1kcmFnZ2FibGUtYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsZUFBZSxFQUNFLFdBQVcsRUFBeUIsZUFBZSxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUN0SCxNQUFNLGNBQWMsQ0FBQztBQUN0QixPQUFPLEVBQ0wsU0FBUyxFQUVULGNBQWMsR0FDZixNQUFNLGVBQWUsQ0FBQzs7QUFPdkIsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLElBQUksY0FBYyxDQUFpQixhQUFhLENBQUMsQ0FBQztBQUU3RSxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxHQUFHLENBQUM7QUFHM0MsTUFBTSxPQUFnQixjQUFjO0lBbUIzQixnQkFBZ0IsQ0FBQyxLQUFpQjtRQUN2QyxNQUFNLGdCQUFnQixHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsa0JBQWtCO1lBQ2hELENBQUMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLHVCQUF1QixHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ25FLE9BQU8sZ0JBQWdCLENBQUM7SUFDMUIsQ0FBQztJQWVELFlBQ1ksTUFBNkI7UUFBN0IsV0FBTSxHQUFOLE1BQU0sQ0FBdUI7UUF6QmpDLG1CQUFjLEdBQWEsZUFBZSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzNELG1CQUFjLEdBQWEsZUFBZSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBRTNELG1CQUFjLEdBQWEsZUFBZSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBUTNELHVCQUFrQixHQUFXLENBQUMsQ0FBQztRQUVoQyxrQkFBYSxHQUFZLEtBQUssQ0FBQztRQUM5Qix1QkFBa0IsR0FBVyxDQUFDLENBQUM7UUFDL0IsbUJBQWMsR0FBVyxDQUFDLENBQUM7UUFFM0Is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QU8sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFFLENBQUMsQ0FBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxJQUFJLEtBQUssQ0FBQyxjQUFjLENBQUUsQ0FBQyxDQUFFLENBQUMsQ0FBQztJQUMvRixPQUFPLENBQ0wsQ0FBQyxDQUFDLEtBQUs7UUFDUCxLQUFLLENBQUMsVUFBVSxLQUFLLENBQUMsQ0FBQztRQUN2QixDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksSUFBSSxJQUFJLEtBQUssQ0FBQyxPQUFPLEtBQUssQ0FBQyxDQUFDO1FBQzlDLENBQUMsS0FBSyxDQUFDLE9BQU8sSUFBSSxJQUFJLElBQUksS0FBSyxDQUFDLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FDL0MsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBFdmVudEV4dGVuc2lvbnMsXG4gIElIYXNIb3N0RWxlbWVudCwgSU1vdXNlRXZlbnQsIElQb2ludCwgSVBvaW50ZXJFdmVudCwgSVRvdWNoRG93bkV2ZW50LCBJVG91Y2hNb3ZlRXZlbnQsIElUb3VjaFVwRXZlbnQsIFBvaW50RXh0ZW5zaW9uc1xufSBmcm9tICdAZm9ibGV4L2NvcmUnO1xuaW1wb3J0IHtcbiAgRGlyZWN0aXZlLFxuICBFdmVudEVtaXR0ZXIsXG4gIEluamVjdGlvblRva2VuLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZDcmVhdGVOb2RlRXZlbnQgfSBmcm9tICcuL2V4dGVybmFsLWl0ZW0nO1xuaW1wb3J0IHsgRlJlYXNzaWduQ29ubmVjdGlvbkV2ZW50IH0gZnJvbSAnLi9jb25uZWN0aW9ucyc7XG5pbXBvcnQgeyBGQ3JlYXRlQ29ubmVjdGlvbkV2ZW50IH0gZnJvbSAnLi9jb25uZWN0aW9ucyc7XG5pbXBvcnQgeyBGU2VsZWN0aW9uQ2hhbmdlRXZlbnQgfSBmcm9tICcuL2Ytc2VsZWN0aW9uLWNoYW5nZS1ldmVudCc7XG5pbXBvcnQgeyBJQ2FuUnVuT3V0c2lkZUFuZ3VsYXIgfSBmcm9tICdAZm9ibGV4L2NvcmUvZHJhZy1hbmQtZHJvcC9pLWNhbi1ydW4tb3V0c2lkZS1hbmd1bGFyJztcblxuZXhwb3J0IGNvbnN0IEZfRFJBR0dBQkxFID0gbmV3IEluamVjdGlvblRva2VuPEZEcmFnZ2FibGVCYXNlPignRl9EUkFHR0FCTEUnKTtcblxuZXhwb3J0IGNvbnN0IE1PVVNFX0VWRU5UX0lHTk9SRV9USU1FID0gODAwO1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBGRHJhZ2dhYmxlQmFzZSBpbXBsZW1lbnRzIElIYXNIb3N0RWxlbWVudCB7XG5cbiAgcHVibGljIGFic3RyYWN0IGhvc3RFbGVtZW50OiBIVE1MRWxlbWVudDtcblxuICBwdWJsaWMgYWJzdHJhY3QgZlNlbGVjdGlvbkNoYW5nZTogRXZlbnRFbWl0dGVyPEZTZWxlY3Rpb25DaGFuZ2VFdmVudD47XG5cbiAgcHVibGljIGFic3RyYWN0IGZDcmVhdGVOb2RlOiBFdmVudEVtaXR0ZXI8RkNyZWF0ZU5vZGVFdmVudD47XG5cbiAgcHVibGljIGFic3RyYWN0IGZSZWFzc2lnbkNvbm5lY3Rpb246IEV2ZW50RW1pdHRlcjxGUmVhc3NpZ25Db25uZWN0aW9uRXZlbnQ+O1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmQ3JlYXRlQ29ubmVjdGlvbjogRXZlbnRFbWl0dGVyPEZDcmVhdGVDb25uZWN0aW9uRXZlbnQ+O1xuXG4gIHByaXZhdGUgZG9jdW1lbnQ6IERvY3VtZW50IHwgdW5kZWZpbmVkO1xuXG4gIHByaXZhdGUgbW91c2VMaXN0ZW5lcnM6IEZ1bmN0aW9uID0gRXZlbnRFeHRlbnNpb25zLmVtcHR5TGlzdGVuZXIoKTtcbiAgcHJpdmF0ZSB0b3VjaExpc3RlbmVyczogRnVuY3Rpb24gPSBFdmVudEV4dGVuc2lvbnMuZW1wdHlMaXN0ZW5lcigpO1xuXG4gIHByaXZhdGUgc3RhcnRMaXN0ZW5lcnM6IEZ1bmN0aW9uID0gRXZlbnRFeHRlbnNpb25zLmVtcHR5TGlzdGVuZXIoKTtcblxuICBwdWJsaWMgaXNTeW50aGV0aWNFdmVudChldmVudDogTW91c2VFdmVudCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGlzU3ludGhldGljRXZlbnQgPSAhIXRoaXMubGFzdFRvdWNoRXZlbnRUaW1lICYmXG4gICAgICAodGhpcy5sYXN0VG91Y2hFdmVudFRpbWUgKyBNT1VTRV9FVkVOVF9JR05PUkVfVElNRSA+IERhdGUubm93KCkpO1xuICAgIHJldHVybiBpc1N5bnRoZXRpY0V2ZW50O1xuICB9XG5cbiAgcHJpdmF0ZSBsYXN0VG91Y2hFdmVudFRpbWU6IG51bWJlciA9IDA7XG5cbiAgcHVibGljIGlzRHJhZ1N0YXJ0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBkcmFnU3RhcnRUaHJlc2hvbGQ6IG51bWJlciA9IDU7XG4gIHByaXZhdGUgZHJhZ1N0YXJ0RGVsYXk6IG51bWJlciA9IDA7XG5cbiAgcHJpdmF0ZSBkcmFnU3RhcnRUaW1lOiBudW1iZXIgPSAwO1xuICBwcml2YXRlIGRyYWdTdGFydFBvc2l0aW9uOiBJUG9pbnQgPSBQb2ludEV4dGVuc2lvbnMuaW5pdGlhbGl6ZSgpO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBkaXNhYmxlZDogYm9vbGVhbjtcblxuICBwcml2YXRlIG1vdmVIYW5kbGVyOiBGdW5jdGlvbiA9IHRoaXMuY2hlY2tEcmFnU2VxdWVuY2VUb1N0YXJ0O1xuXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgbmdab25lOiBJQ2FuUnVuT3V0c2lkZUFuZ3VsYXJcbiAgKSB7XG4gIH1cblxuICBwcml2YXRlIG9uTW91c2VEb3duID0gKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgY29uc3QgaXNTeW50aGV0aWNFdmVudCA9IHRoaXMuaXNTeW50aGV0aWNFdmVudChldmVudCk7XG4gICAgY29uc3QgaXNGYWtlRXZlbnQgPSBpc0Zha2VNb3VzZWRvd25Gcm9tU2NyZWVuUmVhZGVyKGV2ZW50KTtcbiAgICBjb25zdCBtb3VzZUV2ZW50ID0gbmV3IElNb3VzZUV2ZW50KGV2ZW50KTtcblxuICAgIGlmIChpc1N5bnRoZXRpY0V2ZW50IHx8IGlzRmFrZUV2ZW50IHx8IHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgbGV0IHJlc3VsdCA9IHRoaXMub25Qb2ludGVyRG93bihtb3VzZUV2ZW50KTtcbiAgICBpZiAocmVzdWx0KSB7XG5cbiAgICAgIHRoaXMuZHJhZ1N0YXJ0VGltZSA9IERhdGUubm93KCk7XG4gICAgICB0aGlzLmRyYWdTdGFydFBvc2l0aW9uID0gbW91c2VFdmVudC5nZXRQb3NpdGlvbigpO1xuXG4gICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgIHRoaXMuZG9jdW1lbnQ/LmFkZEV2ZW50TGlzdGVuZXIoJ3NlbGVjdHN0YXJ0JywgdGhpcy5vblNlbGVjdFN0YXJ0LCBFdmVudEV4dGVuc2lvbnMuYWN0aXZlTGlzdGVuZXIoKSk7XG4gICAgICAgIHRoaXMuZG9jdW1lbnQ/LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHRoaXMub25Nb3VzZU1vdmUpO1xuICAgICAgICB0aGlzLmRvY3VtZW50Py5hZGRFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgdGhpcy5vbk1vdXNlVXApO1xuICAgICAgfSk7XG5cbiAgICAgIHRoaXMubW91c2VMaXN0ZW5lcnMgPSAoKSA9PiB7XG4gICAgICAgIHRoaXMuZG9jdW1lbnQ/LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3NlbGVjdHN0YXJ0JywgdGhpcy5vblNlbGVjdFN0YXJ0LCBFdmVudEV4dGVuc2lvbnMuYWN0aXZlTGlzdGVuZXIoKSk7XG4gICAgICAgIHRoaXMuZG9jdW1lbnQ/LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHRoaXMub25Nb3VzZU1vdmUpO1xuICAgICAgICB0aGlzLmRvY3VtZW50Py5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZXVwJywgdGhpcy5vbk1vdXNlVXApO1xuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG9uVG91Y2hEb3duID0gKGV2ZW50OiBUb3VjaEV2ZW50KSA9PiB7XG4gICAgY29uc3QgaXNGYWtlRXZlbnQgPSBpc0Zha2VUb3VjaHN0YXJ0RnJvbVNjcmVlblJlYWRlcihldmVudCBhcyBUb3VjaEV2ZW50KVxuICAgIGNvbnN0IHRvdWNoRXZlbnQgPSBuZXcgSVRvdWNoRG93bkV2ZW50KGV2ZW50KTtcblxuICAgIGlmIChpc0Zha2VFdmVudCB8fCB0aGlzLmRpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGxldCByZXN1bHQgPSB0aGlzLm9uUG9pbnRlckRvd24obmV3IElUb3VjaERvd25FdmVudChldmVudCkpO1xuICAgIGlmIChyZXN1bHQpIHtcblxuICAgICAgdGhpcy5kcmFnU3RhcnRUaW1lID0gRGF0ZS5ub3coKTtcbiAgICAgIHRoaXMuZHJhZ1N0YXJ0UG9zaXRpb24gPSB0b3VjaEV2ZW50LmdldFBvc2l0aW9uKCk7XG5cbiAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgdGhpcy5kb2N1bWVudD8uYWRkRXZlbnRMaXN0ZW5lcignc2VsZWN0c3RhcnQnLCB0aGlzLm9uU2VsZWN0U3RhcnQsIEV2ZW50RXh0ZW5zaW9ucy5hY3RpdmVMaXN0ZW5lcigpKTtcbiAgICAgICAgdGhpcy5kb2N1bWVudD8uYWRkRXZlbnRMaXN0ZW5lcigndG91Y2htb3ZlJywgdGhpcy5vblRvdWNoTW92ZSk7XG4gICAgICAgIHRoaXMuZG9jdW1lbnQ/LmFkZEV2ZW50TGlzdGVuZXIoJ3RvdWNoZW5kJywgdGhpcy5vblRvdWNoVXApO1xuICAgICAgfSk7XG5cbiAgICAgIHRoaXMudG91Y2hMaXN0ZW5lcnMgPSAoKSA9PiB7XG4gICAgICAgIHRoaXMuZG9jdW1lbnQ/LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3NlbGVjdHN0YXJ0JywgdGhpcy5vblNlbGVjdFN0YXJ0LCBFdmVudEV4dGVuc2lvbnMuYWN0aXZlTGlzdGVuZXIoKSk7XG4gICAgICAgIHRoaXMuZG9jdW1lbnQ/LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3RvdWNobW92ZScsIHRoaXMub25Ub3VjaE1vdmUpO1xuICAgICAgICB0aGlzLmRvY3VtZW50Py5yZW1vdmVFdmVudExpc3RlbmVyKCd0b3VjaGVuZCcsIHRoaXMub25Ub3VjaFVwKTtcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBvblNlbGVjdFN0YXJ0ID0gKGV2ZW50OiBFdmVudCkgPT4ge1xuICAgIHRoaXMub25TZWxlY3QoZXZlbnQpO1xuICB9XG5cbiAgcHJpdmF0ZSBvbk1vdXNlTW92ZSA9IChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgIHRoaXMubW92ZUhhbmRsZXIobmV3IElNb3VzZUV2ZW50KGV2ZW50KSk7XG4gIH1cblxuICBwcml2YXRlIG9uVG91Y2hNb3ZlID0gKGV2ZW50OiBUb3VjaEV2ZW50KSA9PiB7XG4gICAgdGhpcy5tb3ZlSGFuZGxlcihuZXcgSVRvdWNoTW92ZUV2ZW50KGV2ZW50KSk7XG4gIH1cblxuICBwcml2YXRlIGNoZWNrRHJhZ1NlcXVlbmNlVG9TdGFydChldmVudDogSVBvaW50ZXJFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHBvaW50ZXJQb3NpdGlvbiA9IGV2ZW50LmdldFBvc2l0aW9uKCk7XG5cbiAgICBpZiAoIXRoaXMuaXNEcmFnU3RhcnRlZCkge1xuICAgICAgY29uc3QgZGlzdGFuY2VYID0gTWF0aC5hYnMocG9pbnRlclBvc2l0aW9uLnggLSB0aGlzLmRyYWdTdGFydFBvc2l0aW9uLngpO1xuICAgICAgY29uc3QgZGlzdGFuY2VZID0gTWF0aC5hYnMocG9pbnRlclBvc2l0aW9uLnkgLSB0aGlzLmRyYWdTdGFydFBvc2l0aW9uLnkpO1xuICAgICAgY29uc3QgaXNPdmVyVGhyZXNob2xkID0gZGlzdGFuY2VYICsgZGlzdGFuY2VZID49IHRoaXMuZHJhZ1N0YXJ0VGhyZXNob2xkO1xuXG4gICAgICBpZiAoaXNPdmVyVGhyZXNob2xkKSB7XG4gICAgICAgIGNvbnN0IGlzRGVsYXlFbGFwc2VkID0gRGF0ZS5ub3coKSA+PSB0aGlzLmRyYWdTdGFydFRpbWUgKyB0aGlzLmRyYWdTdGFydERlbGF5O1xuXG4gICAgICAgIGlmICghaXNEZWxheUVsYXBzZWQpIHtcbiAgICAgICAgICB0aGlzLmVuZERyYWdTZXF1ZW5jZSgpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMucHJlcGFyZURyYWdTZXF1ZW5jZShldmVudCk7XG4gICAgICAgIHRoaXMuaXNEcmFnU3RhcnRlZCA9IHRydWU7XG4gICAgICAgIHRoaXMubW92ZUhhbmRsZXIgPSB0aGlzLm9uUG9pbnRlck1vdmU7XG4gICAgICAgIGlmIChpc1RvdWNoRXZlbnQoZXZlbnQub3JpZ2luYWxFdmVudCkpIHtcbiAgICAgICAgICB0aGlzLmxhc3RUb3VjaEV2ZW50VGltZSA9IERhdGUubm93KCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgcHJlcGFyZURyYWdTZXF1ZW5jZShldmVudDogSVBvaW50ZXJFdmVudCk6IHZvaWQ7XG5cbiAgcHJpdmF0ZSBvbk1vdXNlVXAgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICBpZiAodGhpcy5pc0RyYWdTdGFydGVkKSB7XG4gICAgICB0aGlzLm9uUG9pbnRlclVwKG5ldyBJTW91c2VFdmVudChldmVudCkpO1xuICAgIH1cbiAgICB0aGlzLmVuZERyYWdTZXF1ZW5jZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBvblRvdWNoVXAgPSAoZXZlbnQ6IFRvdWNoRXZlbnQpID0+IHtcbiAgICBpZiAodGhpcy5pc0RyYWdTdGFydGVkKSB7XG4gICAgICB0aGlzLm9uUG9pbnRlclVwKG5ldyBJVG91Y2hVcEV2ZW50KGV2ZW50KSk7XG4gICAgfVxuICAgIHRoaXMuZW5kRHJhZ1NlcXVlbmNlKCk7XG4gIH1cblxuICBwcml2YXRlIGVuZERyYWdTZXF1ZW5jZSgpOiB2b2lkIHtcbiAgICB0aGlzLmlzRHJhZ1N0YXJ0ZWQgPSBmYWxzZTtcbiAgICB0aGlzLm1vdmVIYW5kbGVyID0gdGhpcy5jaGVja0RyYWdTZXF1ZW5jZVRvU3RhcnQ7XG4gICAgdGhpcy5tb3VzZUxpc3RlbmVycygpO1xuICAgIHRoaXMubW91c2VMaXN0ZW5lcnMgPSBFdmVudEV4dGVuc2lvbnMuZW1wdHlMaXN0ZW5lcigpO1xuICAgIHRoaXMudG91Y2hMaXN0ZW5lcnMoKTtcbiAgICB0aGlzLnRvdWNoTGlzdGVuZXJzID0gRXZlbnRFeHRlbnNpb25zLmVtcHR5TGlzdGVuZXIoKTtcbiAgICB0aGlzLmZpbmFsaXplRHJhZ1NlcXVlbmNlKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgZmluYWxpemVEcmFnU2VxdWVuY2UoKTogdm9pZDtcblxuICBwcm90ZWN0ZWQgYWJzdHJhY3Qgb25TZWxlY3QoZXZlbnQ6IEV2ZW50KTogdm9pZDtcblxuICBwdWJsaWMgYWJzdHJhY3Qgb25Qb2ludGVyRG93bihldmVudDogSVBvaW50ZXJFdmVudCk6IGJvb2xlYW47XG5cbiAgcHVibGljIGFic3RyYWN0IG9uUG9pbnRlck1vdmUoZXZlbnQ6IElQb2ludGVyRXZlbnQpOiB2b2lkO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBvblBvaW50ZXJVcChldmVudDogSVBvaW50ZXJFdmVudCk6IHZvaWQ7XG5cbiAgcHVibGljIHN1YnNjcmliZShkb2N1bWVudDogRG9jdW1lbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kb2N1bWVudCkge1xuICAgICAgdGhpcy51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgICB0aGlzLmRvY3VtZW50ID0gZG9jdW1lbnQ7XG5cbiAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCB0aGlzLm9uTW91c2VEb3duLCBFdmVudEV4dGVuc2lvbnMuYWN0aXZlTGlzdGVuZXIoKSk7XG4gICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgdGhpcy5vblRvdWNoRG93biwgRXZlbnRFeHRlbnNpb25zLnBhc3NpdmVMaXN0ZW5lcigpKTtcbiAgICB9KTtcblxuICAgIHRoaXMuc3RhcnRMaXN0ZW5lcnMgPSAoKSA9PiB7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCB0aGlzLm9uTW91c2VEb3duLCBFdmVudEV4dGVuc2lvbnMuYWN0aXZlTGlzdGVuZXIoKSk7XG4gICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgdGhpcy5vblRvdWNoRG93biwgRXZlbnRFeHRlbnNpb25zLnBhc3NpdmVMaXN0ZW5lcigpKTtcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIHVuc3Vic2NyaWJlKCk6IHZvaWQge1xuXG4gICAgdGhpcy5zdGFydExpc3RlbmVycygpO1xuICAgIHRoaXMuc3RhcnRMaXN0ZW5lcnMgPSBFdmVudEV4dGVuc2lvbnMuZW1wdHlMaXN0ZW5lcigpO1xuICAgIHRoaXMudG91Y2hMaXN0ZW5lcnMoKTtcbiAgICB0aGlzLnRvdWNoTGlzdGVuZXJzID0gRXZlbnRFeHRlbnNpb25zLmVtcHR5TGlzdGVuZXIoKTtcbiAgICB0aGlzLm1vdXNlTGlzdGVuZXJzKCk7XG4gICAgdGhpcy5tb3VzZUxpc3RlbmVycyA9IEV2ZW50RXh0ZW5zaW9ucy5lbXB0eUxpc3RlbmVyKCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gaXNUb3VjaEV2ZW50KGV2ZW50OiBNb3VzZUV2ZW50IHwgVG91Y2hFdmVudCk6IGV2ZW50IGlzIFRvdWNoRXZlbnQge1xuICByZXR1cm4gZXZlbnQudHlwZVsgMCBdID09PSAndCc7XG59XG5cbmZ1bmN0aW9uIGlzRmFrZU1vdXNlZG93bkZyb21TY3JlZW5SZWFkZXIoZXZlbnQ6IE1vdXNlRXZlbnQpOiBib29sZWFuIHtcbiAgcmV0dXJuIGV2ZW50LmJ1dHRvbnMgPT09IDAgfHwgKGV2ZW50Lm9mZnNldFggPT09IDAgJiYgZXZlbnQub2Zmc2V0WSA9PT0gMCk7XG59XG5cbmZ1bmN0aW9uIGlzRmFrZVRvdWNoc3RhcnRGcm9tU2NyZWVuUmVhZGVyKGV2ZW50OiBUb3VjaEV2ZW50KTogYm9vbGVhbiB7XG4gIGNvbnN0IHRvdWNoOiBUb3VjaCB8IHVuZGVmaW5lZCA9XG4gICAgKGV2ZW50LnRvdWNoZXMgJiYgZXZlbnQudG91Y2hlc1sgMCBdKSB8fCAoZXZlbnQuY2hhbmdlZFRvdWNoZXMgJiYgZXZlbnQuY2hhbmdlZFRvdWNoZXNbIDAgXSk7XG4gIHJldHVybiAoXG4gICAgISF0b3VjaCAmJlxuICAgIHRvdWNoLmlkZW50aWZpZXIgPT09IC0xICYmXG4gICAgKHRvdWNoLnJhZGl1c1ggPT0gbnVsbCB8fCB0b3VjaC5yYWRpdXNYID09PSAxKSAmJlxuICAgICh0b3VjaC5yYWRpdXNZID09IG51bGwgfHwgdG91Y2gucmFkaXVzWSA9PT0gMSlcbiAgKTtcbn1cbiJdfQ==
@@ -13,7 +13,6 @@ export class FDraggableDataContext {
13
13
  this.draggableItems = [];
14
14
  this.onPointerDownScale = 1;
15
15
  this.onPointerDownPosition = new Point(0, 0);
16
- this.isSelectedChanged = false;
17
16
  }
18
17
  markSelectionAsChanged() {
19
18
  this.isSelectedChanged = true;
@@ -24,4 +23,4 @@ export class FDraggableDataContext {
24
23
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: FDraggableDataContext, decorators: [{
25
24
  type: Injectable
26
25
  }] });
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1kcmFnZ2FibGUtZGF0YS1jb250ZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9mLWRyYWdnYWJsZS1kYXRhLWNvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sY0FBYyxDQUFDOztBQU9yQyxNQUFNLE9BQU8scUJBQXFCO0lBRGxDO1FBR1Msa0JBQWEsR0FBa0IsRUFBRSxDQUFDO1FBRWxDLHNCQUFpQixHQUFZLEtBQUssQ0FBQztRQUVuQyx1QkFBa0IsR0FBVyxDQUFDLENBQUM7UUFFL0IsMEJBQXFCLEdBQVUsSUFBSSxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRS9DLG1CQUFjLEdBQXFCLEVBQUUsQ0FBQztLQWdCOUM7SUFWUSxLQUFLO1FBQ1YsSUFBSSxDQUFDLGNBQWMsR0FBRyxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUM7SUFDakMsQ0FBQztJQUVNLHNCQUFzQjtRQUMzQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO0lBQ2hDLENBQUM7OEdBekJVLHFCQUFxQjtrSEFBckIscUJBQXFCOzsyRkFBckIscUJBQXFCO2tCQURqQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUG9pbnQgfSBmcm9tICdAZm9ibGV4L2NvcmUnO1xuaW1wb3J0IHsgSURyYWdnYWJsZUl0ZW0gfSBmcm9tICcuL2ktZHJhZ2dhYmxlLWl0ZW0nO1xuaW1wb3J0IHsgSVNlbGVjdGFibGUgfSBmcm9tICcuLi9mLWNvbm5lY3Rpb24nO1xuaW1wb3J0IHsgRkxpbmVBbGlnbm1lbnRCYXNlIH0gZnJvbSAnLi4vZi1saW5lLWFsaWdubWVudCc7XG5pbXBvcnQgeyBGU2VsZWN0aW9uQXJlYUJhc2UgfSBmcm9tICcuLi9mLXNlbGVjdGlvbi1hcmVhJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEZEcmFnZ2FibGVEYXRhQ29udGV4dCB7XG5cbiAgcHVibGljIHNlbGVjdGVkSXRlbXM6IElTZWxlY3RhYmxlW10gPSBbXTtcblxuICBwdWJsaWMgaXNTZWxlY3RlZENoYW5nZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwdWJsaWMgb25Qb2ludGVyRG93blNjYWxlOiBudW1iZXIgPSAxO1xuXG4gIHB1YmxpYyBvblBvaW50ZXJEb3duUG9zaXRpb246IFBvaW50ID0gbmV3IFBvaW50KDAsIDApO1xuXG4gIHB1YmxpYyBkcmFnZ2FibGVJdGVtczogSURyYWdnYWJsZUl0ZW1bXSA9IFtdO1xuXG4gIHB1YmxpYyBmU2VsZWN0aW9uQXJlYTogRlNlbGVjdGlvbkFyZWFCYXNlIHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyBmTGluZUFsaWdubWVudDogRkxpbmVBbGlnbm1lbnRCYXNlIHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyByZXNldCgpOiB2b2lkIHtcbiAgICB0aGlzLmRyYWdnYWJsZUl0ZW1zID0gW107XG4gICAgdGhpcy5vblBvaW50ZXJEb3duU2NhbGUgPSAxO1xuICAgIHRoaXMub25Qb2ludGVyRG93blBvc2l0aW9uID0gbmV3IFBvaW50KDAsIDApO1xuICAgIHRoaXMuaXNTZWxlY3RlZENoYW5nZWQgPSBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBtYXJrU2VsZWN0aW9uQXNDaGFuZ2VkKCk6IHZvaWQge1xuICAgIHRoaXMuaXNTZWxlY3RlZENoYW5nZWQgPSB0cnVlO1xuICB9XG59XG4iXX0=
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1kcmFnZ2FibGUtZGF0YS1jb250ZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9mLWRyYWdnYWJsZS1kYXRhLWNvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sY0FBYyxDQUFDOztBQU9yQyxNQUFNLE9BQU8scUJBQXFCO0lBRGxDO1FBR1Msa0JBQWEsR0FBa0IsRUFBRSxDQUFDO1FBRWxDLHNCQUFpQixHQUFZLEtBQUssQ0FBQztRQUVuQyx1QkFBa0IsR0FBVyxDQUFDLENBQUM7UUFFL0IsMEJBQXFCLEdBQVUsSUFBSSxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRS9DLG1CQUFjLEdBQXFCLEVBQUUsQ0FBQztLQWU5QztJQVRRLEtBQUs7UUFDVixJQUFJLENBQUMsY0FBYyxHQUFHLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsa0JBQWtCLEdBQUcsQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVNLHNCQUFzQjtRQUMzQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDO0lBQ2hDLENBQUM7OEdBeEJVLHFCQUFxQjtrSEFBckIscUJBQXFCOzsyRkFBckIscUJBQXFCO2tCQURqQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUG9pbnQgfSBmcm9tICdAZm9ibGV4L2NvcmUnO1xuaW1wb3J0IHsgSURyYWdnYWJsZUl0ZW0gfSBmcm9tICcuL2ktZHJhZ2dhYmxlLWl0ZW0nO1xuaW1wb3J0IHsgSVNlbGVjdGFibGUgfSBmcm9tICcuLi9mLWNvbm5lY3Rpb24nO1xuaW1wb3J0IHsgRkxpbmVBbGlnbm1lbnRCYXNlIH0gZnJvbSAnLi4vZi1saW5lLWFsaWdubWVudCc7XG5pbXBvcnQgeyBGU2VsZWN0aW9uQXJlYUJhc2UgfSBmcm9tICcuLi9mLXNlbGVjdGlvbi1hcmVhJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEZEcmFnZ2FibGVEYXRhQ29udGV4dCB7XG5cbiAgcHVibGljIHNlbGVjdGVkSXRlbXM6IElTZWxlY3RhYmxlW10gPSBbXTtcblxuICBwdWJsaWMgaXNTZWxlY3RlZENoYW5nZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwdWJsaWMgb25Qb2ludGVyRG93blNjYWxlOiBudW1iZXIgPSAxO1xuXG4gIHB1YmxpYyBvblBvaW50ZXJEb3duUG9zaXRpb246IFBvaW50ID0gbmV3IFBvaW50KDAsIDApO1xuXG4gIHB1YmxpYyBkcmFnZ2FibGVJdGVtczogSURyYWdnYWJsZUl0ZW1bXSA9IFtdO1xuXG4gIHB1YmxpYyBmU2VsZWN0aW9uQXJlYTogRlNlbGVjdGlvbkFyZWFCYXNlIHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyBmTGluZUFsaWdubWVudDogRkxpbmVBbGlnbm1lbnRCYXNlIHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyByZXNldCgpOiB2b2lkIHtcbiAgICB0aGlzLmRyYWdnYWJsZUl0ZW1zID0gW107XG4gICAgdGhpcy5vblBvaW50ZXJEb3duU2NhbGUgPSAxO1xuICAgIHRoaXMub25Qb2ludGVyRG93blBvc2l0aW9uID0gbmV3IFBvaW50KDAsIDApO1xuICB9XG5cbiAgcHVibGljIG1hcmtTZWxlY3Rpb25Bc0NoYW5nZWQoKTogdm9pZCB7XG4gICAgdGhpcy5pc1NlbGVjdGVkQ2hhbmdlZCA9IHRydWU7XG4gIH1cbn1cbiJdfQ==
@@ -10,9 +10,10 @@ import { CanvasOnPointerUp, CanvasPrepareDragSequence } from './canvas';
10
10
  import { DOCUMENT } from '@angular/common';
11
11
  import { CreateConnectionOnPointerUp, CreateConnectionPrepareDragSequence, ReassignConnectionOnPointerUp, ReassignConnectionPrepareDragSequence } from './connections';
12
12
  import { GetSelectionRequest } from '../domain';
13
+ import { isExternalItem } from '../f-external-item';
13
14
  import * as i0 from "@angular/core";
14
15
  import * as i1 from "./f-draggable-data-context";
15
- import * as i2 from "../f-components-store";
16
+ import * as i2 from "../f-storage";
16
17
  import * as i3 from "../f-mediator";
17
18
  export class FDraggableDirective extends FDraggableBase {
18
19
  get hostElement() {
@@ -64,6 +65,13 @@ export class FDraggableDirective extends FDraggableBase {
64
65
  this.hostElement.classList.add('f-dragging');
65
66
  }
66
67
  }
68
+ onSelect(event) {
69
+ const isTargetNotHtml = event.constructor.name === 'Event';
70
+ const target = isTargetNotHtml ? event.target.parentNode : event.target;
71
+ if (target && isExternalItem(target)) {
72
+ event.preventDefault();
73
+ }
74
+ }
67
75
  onPointerMove(event) {
68
76
  const pointerPositionInCanvas = Point.fromPoint(event.getPosition()).elementTransform(this.hostElement);
69
77
  const difference = pointerPositionInCanvas.div(this.fDraggableDataContext.onPointerDownScale).sub(this.fDraggableDataContext.onPointerDownPosition);
@@ -90,6 +98,7 @@ export class FDraggableDirective extends FDraggableBase {
90
98
  }
91
99
  const result = this.fMediator.send(new GetSelectionRequest());
92
100
  this.fSelectionChange.emit(result);
101
+ this.fDraggableDataContext.isSelectedChanged = false;
93
102
  }
94
103
  ngOnDestroy() {
95
104
  super.unsubscribe();
@@ -124,4 +133,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImpor
124
133
  }], fCreateConnection: [{
125
134
  type: Output
126
135
  }] } });
127
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1kcmFnZ2FibGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9mLWRyYWdnYWJsZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFFVCxZQUFZLEVBQUUsTUFBTSxFQUVwQixLQUFLLEVBR0csTUFBTSxFQUNmLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFHakUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQW9CLHVCQUF1QixFQUFFLCtCQUErQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDN0csT0FBTyxFQUFpQixLQUFLLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDcEQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLGdDQUFnQyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDOUYsT0FBTyxFQUFFLGVBQWUsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNsRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDeEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFFTCwyQkFBMkIsRUFDM0IsbUNBQW1DLEVBQ25DLDZCQUE2QixFQUM3QixxQ0FBcUMsRUFDdEMsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sV0FBVyxDQUFDOzs7OztBQVNoRCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsY0FBYztJQU9yRCxJQUFvQixXQUFXO1FBQzdCLE9BQU8sSUFBSSxDQUFDLGdC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dCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlciwgSW5qZWN0LFxuICBJbmplY3RvcixcbiAgSW5wdXQsXG4gIE5nWm9uZSxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsIE91dHB1dFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRl9EUkFHR0FCTEUsIEZEcmFnZ2FibGVCYXNlIH0gZnJvbSAnLi9mLWRyYWdnYWJsZS1iYXNlJztcbmltcG9ydCB7IEZDb21wb25lbnRzU3RvcmUgfSBmcm9tICcuLi9mLWNvbXBvbmVudHMtc3RvcmUnO1xuaW1wb3J0IHsgRkRyYWdnYWJsZURhdGFDb250ZXh0IH0gZnJvbSAnLi9mLWRyYWdnYWJsZS1kYXRhLWNvbnRleHQnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGQ3JlYXRlTm9kZUV2ZW50LCBFeHRlcm5hbEl0ZW1PblBvaW50ZXJVcCwgRXh0ZXJuYWxJdGVtUHJlcGFyZURyYWdTZXF1ZW5jZSB9IGZyb20gJy4vZXh0ZXJuYWwtaXRlbSc7XG5pbXBvcnQgeyBJUG9pbnRlckV2ZW50LCBQb2ludCB9IGZyb20gJ0Bmb2JsZXgvY29yZSc7XG5pbXBvcnQgeyBTaW5nbGVTZWxlY3RPblBvaW50ZXJEb3duIH0gZnJvbSAnLi9zaW5nbGUtc2VsZWN0JztcbmltcG9ydCB7IFNlbGVjdGlvbkFyZWFPblBvaW50ZXJVcCwgU2VsZWN0aW9uQXJlYVByZXBhcmVEcmFnU2VxdWVuY2UgfSBmcm9tICcuL3NlbGVjdGlvbi1hcmVhJztcbmltcG9ydCB7IE5vZGVPblBvaW50ZXJVcCwgTm9kZVByZXBhcmVEcmFnU2VxdWVuY2UgfSBmcm9tICcuL25vZGUnO1xuaW1wb3J0IHsgQ2FudmFzT25Qb2ludGVyVXAsIENhbnZhc1ByZXBhcmVEcmFnU2VxdWVuY2UgfSBmcm9tICcuL2NhbnZhcyc7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBGQ3JlYXRlQ29ubmVjdGlvbkV2ZW50LFxuICBDcmVhdGVDb25uZWN0aW9uT25Qb2ludGVyVXAsXG4gIENyZWF0ZUNvbm5lY3Rpb25QcmVwYXJlRHJhZ1NlcXVlbmNlLCBGUmVhc3NpZ25Db25uZWN0aW9uRXZlbnQsXG4gIFJlYXNzaWduQ29ubmVjdGlvbk9uUG9pbnRlclVwLFxuICBSZWFzc2lnbkNvbm5lY3Rpb25QcmVwYXJlRHJhZ1NlcXVlbmNlXG59IGZyb20gJy4vY29ubmVjdGlvbnMnO1xuaW1wb3J0IHsgRlNlbGVjdGlvbkNoYW5nZUV2ZW50IH0gZnJvbSAnLi9mLXNlbGVjdGlvbi1jaGFuZ2UtZXZlbnQnO1xuaW1wb3J0IHsgRkZsb3dNZWRpYXRvciB9IGZyb20gJy4uL2YtbWVkaWF0b3InO1xuaW1wb3J0IHsgR2V0U2VsZWN0aW9uUmVxdWVzdCB9IGZyb20gJy4uL2RvbWFpbic7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogXCJmLWZsb3dbZkRyYWdnYWJsZV1cIixcbiAgZXhwb3J0QXM6ICdmRHJhZ2dhYmxlJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBGX0RSQUdHQUJMRSwgdXNlRXhpc3Rpbmc6IEZEcmFnZ2FibGVEaXJlY3RpdmUgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEZEcmFnZ2FibGVEaXJlY3RpdmUgZXh0ZW5kcyBGRHJhZ2dhYmxlQmFzZSBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcblxuICBwcml2YXRlIHN1YnNjcmlwdGlvbnMkOiBTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgQElucHV0KCdmRHJhZ2dhYmxlRGlzYWJsZWQnKVxuICBwdWJsaWMgb3ZlcnJpZGUgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwdWJsaWMgb3ZlcnJpZGUgZ2V0IGhvc3RFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmZXJlbmNlLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICBAT3V0cHV0KClcbiAgcHVibGljIG92ZXJyaWRlIGZTZWxlY3Rpb25DaGFuZ2U6IEV2ZW50RW1pdHRlcjxGU2VsZWN0aW9uQ2hhbmdlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxGU2VsZWN0aW9uQ2hhbmdlRXZlbnQ+KCk7XG5cbiAgLy8gQE91dHB1dCgpXG4gIC8vIHB1YmxpYyBvdmVycmlkZSBmQ29ubmVjdGlvbkludGVyc2VjdE5vZGU6IEV2ZW50RW1pdHRlcjxDb25uZWN0aW9uSW50ZXJzZWN0Tm9kZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8Q29ubmVjdGlvbkludGVyc2VjdE5vZGVFdmVudD4oKTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIG92ZXJyaWRlIGZDcmVhdGVOb2RlOiBFdmVudEVtaXR0ZXI8RkNyZWF0ZU5vZGVFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEZDcmVhdGVOb2RlRXZlbnQ+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBvdmVycmlkZSBmUmVhc3NpZ25Db25uZWN0aW9uOiBFdmVudEVtaXR0ZXI8RlJlYXNzaWduQ29ubmVjdGlvbkV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8RlJlYXNzaWduQ29ubmVjdGlvbkV2ZW50PigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgb3ZlcnJpZGUgZkNyZWF0ZUNvbm5lY3Rpb246IEV2ZW50RW1pdHRlcjxGQ3JlYXRlQ29ubmVjdGlvbkV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8RkNyZWF0ZUNvbm5lY3Rpb25FdmVudD4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVsZW1lbnRSZWZlcmVuY2U6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgIHByaXZhdGUgZkRyYWdnYWJsZURhdGFDb250ZXh0OiBGRHJhZ2dhYmxlRGF0YUNvbnRleHQsXG4gICAgbmdab25lOiBOZ1pvbmUsXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHJpdmF0ZSBmQ29tcG9uZW50c1N0b3JlOiBGQ29tcG9uZW50c1N0b3JlLFxuICAgIHByaXZhdGUgZk1lZGlhdG9yOiBGRmxvd01lZGlhdG9yLFxuICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jOiBEb2N1bWVudFxuICApIHtcbiAgICBzdXBlcihuZ1pvbmUpO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mRHJhZ2dhYmxlID0gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgc3VwZXIuc3Vic2NyaWJlKHRoaXMuZG9jKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBvblBvaW50ZXJEb3duKGV2ZW50OiBJUG9pbnRlckV2ZW50KTogYm9vbGVhbiB7XG4gICAgdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQucmVzZXQoKTtcbiAgICBsZXQgcmVzdWx0OiBib29sZWFuID0gZXZlbnQuaXNNb3VzZUxlZnRCdXR0b24oKTtcblxuICAgIHRoaXMuaW5qZWN0b3IuZ2V0KFNpbmdsZVNlbGVjdE9uUG9pbnRlckRvd24pLmhhbmRsZShldmVudCk7XG5cbiAgICB0aGlzLmluamVjdG9yLmdldChSZWFzc2lnbkNvbm5lY3Rpb25QcmVwYXJlRHJhZ1NlcXVlbmNlKS5oYW5kbGUoZXZlbnQpO1xuXG4gICAgdGhpcy5pbmplY3Rvci5nZXQoQ3JlYXRlQ29ubmVjdGlvblByZXBhcmVEcmFnU2VxdWVuY2UpLmhhbmRsZShldmVudCk7XG5cbiAgICBpZiAoIXJlc3VsdCkge1xuICAgICAgdGhpcy5maW5hbGl6ZURyYWdTZXF1ZW5jZSgpO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBwcmVwYXJlRHJhZ1NlcXVlbmNlKGV2ZW50OiBJUG9pbnRlckV2ZW50KSB7XG4gICAgdGhpcy5pbmplY3Rvci5nZXQoU2VsZWN0aW9uQXJlYVByZXBhcmVEcmFnU2VxdWVuY2UpLmhhbmRsZShldmVudCk7XG5cbiAgICB0aGlzLmluamVjdG9yLmdldChOb2RlUHJlcGFyZURyYWdTZXF1ZW5jZSkuaGFuZGxlKGV2ZW50KTtcblxuICAgIHRoaXMuaW5qZWN0b3IuZ2V0KENhbnZhc1ByZXBhcmVEcmFnU2VxdWVuY2UpLmhhbmRsZShldmVudCk7XG5cbiAgICB0aGlzLmluamVjdG9yLmdldChFeHRlcm5hbEl0ZW1QcmVwYXJlRHJhZ1NlcXVlbmNlKS5oYW5kbGUoZXZlbnQpO1xuXG4gICAgdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuZHJhZ2dhYmxlSXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgaXRlbS5pbml0aWFsaXplPy4oKTtcbiAgICB9KTtcblxuICAgIGlmICh0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5kcmFnZ2FibGVJdGVtcy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmhvc3RFbGVtZW50LmNsYXNzTGlzdC5hZGQoJ2YtZHJhZ2dpbmcnKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgb25Qb2ludGVyTW92ZShldmVudDogSVBvaW50ZXJFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHBvaW50ZXJQb3NpdGlvbkluQ2FudmFzID0gUG9pbnQuZnJvbVBvaW50KGV2ZW50LmdldFBvc2l0aW9uKCkpLmVsZW1lbnRUcmFuc2Zvcm0odGhpcy5ob3N0RWxlbWVudCk7XG4gICAgY29uc3QgZGlmZmVyZW5jZSA9IHBvaW50ZXJQb3NpdGlvbkluQ2FudmFzLmRpdih0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5vblBvaW50ZXJEb3duU2NhbGUpLnN1Yih0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5vblBvaW50ZXJEb3duUG9zaXRpb24pO1xuICAgIHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0LmRyYWdnYWJsZUl0ZW1zLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgIGl0ZW0ubW92ZShkaWZmZXJlbmNlKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBvblBvaW50ZXJVcChldmVudDogSVBvaW50ZXJFdmVudCk6IHZvaWQge1xuXG4gICAgdGhpcy5pbmplY3Rvci5nZXQoUmVhc3NpZ25Db25uZWN0aW9uT25Qb2ludGVyVXApLmhhbmRsZShldmVudCk7XG5cbiAgICB0aGlzLmluamVjdG9yLmdldChDcmVhdGVDb25uZWN0aW9uT25Qb2ludGVyVXApLmhhbmRsZShldmVudCk7XG5cbiAgICB0aGlzLmluamVjdG9yLmdldChTZWxlY3Rpb25BcmVhT25Qb2ludGVyVXApLmhhbmRsZShldmVudCk7XG5cbiAgICB0aGlzLmluamVjdG9yLmdldChOb2RlT25Qb2ludGVyVXApLmhhbmRsZShldmVudCk7XG5cbiAgICB0aGlzLmluamVjdG9yLmdldChDYW52YXNPblBvaW50ZXJVcCkuaGFuZGxlKGV2ZW50KTtcblxuICAgIHRoaXMuaW5qZWN0b3IuZ2V0KEV4dGVybmFsSXRlbU9uUG9pbnRlclVwKS5oYW5kbGUoZXZlbnQpO1xuXG4gICAgdGhpcy5ob3N0RWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCdmLWRyYWdnaW5nJyk7XG5cbiAgICB0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5yZXNldCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGZpbmFsaXplRHJhZ1NlcXVlbmNlKCk6IHZvaWQge1xuICAgIHRoaXMuZW1pdFNlbGVjdGlvbkNoYW5nZUV2ZW50KCk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRTZWxlY3Rpb25DaGFuZ2VFdmVudCgpOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICAhdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuaXNTZWxlY3RlZENoYW5nZWRcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgcmVzdWx0ID0gdGhpcy5mTWVkaWF0b3Iuc2VuZDxGU2VsZWN0aW9uQ2hhbmdlRXZlbnQ+KG5ldyBHZXRTZWxlY3Rpb25SZXF1ZXN0KCkpO1xuICAgIHRoaXMuZlNlbGVjdGlvbkNoYW5nZS5lbWl0KHJlc3VsdCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgc3VwZXIudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMkLnVuc3Vic2NyaWJlKCk7XG4gIH1cbn1cblxuIl19
136
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1kcmFnZ2FibGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9mLWRyYWdnYWJsZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFFVCxZQUFZLEVBQUUsTUFBTSxFQUVwQixLQUFLLEVBR0csTUFBTSxFQUNmLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFHakUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQW9CLHVCQUF1QixFQUFFLCtCQUErQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDN0csT0FBTyxFQUFpQixLQUFLLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDcEQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLGdDQUFnQyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDOUYsT0FBTyxFQUFFLGVBQWUsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNsRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDeEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFFTCwyQkFBMkIsRUFDM0IsbUNBQW1DLEVBQ25DLDZCQUE2QixFQUM3QixxQ0FBcUMsRUFDdEMsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7QUFTcEQsTUFBTSxPQUFPLG1CQUFvQixTQUFRLGNB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QUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFO1NBQzNEOzsyRkFFVSxtQkFBbUI7a0JBUC9CLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLFNBQVMsRUFBRTt3QkFDVCxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxxQkFBcUIsRUFBRTtxQkFDM0Q7aUJBQ0Y7OzBCQWtDSSxNQUFNOzJCQUFDLFFBQVE7eUNBNUJGLFFBQVE7c0JBRHZCLEtBQUs7dUJBQUMsb0JBQW9CO2dCQVFYLGdCQUFnQjtzQkFEL0IsTUFBTTtnQkFPUyxXQUFXO3NCQUQxQixNQUFNO2dCQUlTLG1CQUFtQjtzQkFEbEMsTUFBTTtnQkFJUyxpQkFBaUI7c0JBRGhDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlciwgSW5qZWN0LFxuICBJbmplY3RvcixcbiAgSW5wdXQsXG4gIE5nWm9uZSxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsIE91dHB1dFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRl9EUkFHR0FCTEUsIEZEcmFnZ2FibGVCYXNlIH0gZnJvbSAnLi9mLWRyYWdnYWJsZS1iYXNlJztcbmltcG9ydCB7IEZDb21wb25lbnRzU3RvcmUgfSBmcm9tICcuLi9mLXN0b3JhZ2UnO1xuaW1wb3J0IHsgRkRyYWdnYWJsZURhdGFDb250ZXh0IH0gZnJvbSAnLi9mLWRyYWdnYWJsZS1kYXRhLWNvbnRleHQnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGQ3JlYXRlTm9kZUV2ZW50LCBFeHRlcm5hbEl0ZW1PblBvaW50ZXJVcCwgRXh0ZXJuYWxJdGVtUHJlcGFyZURyYWdTZXF1ZW5jZSB9IGZyb20gJy4vZXh0ZXJuYWwtaXRlbSc7XG5pbXBvcnQgeyBJUG9pbnRlckV2ZW50LCBQb2ludCB9IGZyb20gJ0Bmb2JsZXgvY29yZSc7XG5pbXBvcnQgeyBTaW5nbGVTZWxlY3RPblBvaW50ZXJEb3duIH0gZnJvbSAnLi9zaW5nbGUtc2VsZWN0JztcbmltcG9ydCB7IFNlbGVjdGlvbkFyZWFPblBvaW50ZXJVcCwgU2VsZWN0aW9uQXJlYVByZXBhcmVEcmFnU2VxdWVuY2UgfSBmcm9tICcuL3NlbGVjdGlvbi1hcmVhJztcbmltcG9ydCB7IE5vZGVPblBvaW50ZXJVcCwgTm9kZVByZXBhcmVEcmFnU2VxdWVuY2UgfSBmcm9tICcuL25vZGUnO1xuaW1wb3J0IHsgQ2FudmFzT25Qb2ludGVyVXAsIENhbnZhc1ByZXBhcmVEcmFnU2VxdWVuY2UgfSBmcm9tICcuL2NhbnZhcyc7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBGQ3JlYXRlQ29ubmVjdGlvbkV2ZW50LFxuICBDcmVhdGVDb25uZWN0aW9uT25Qb2ludGVyVXAsXG4gIENyZWF0ZUNvbm5lY3Rpb25QcmVwYXJlRHJhZ1NlcXVlbmNlLCBGUmVhc3NpZ25Db25uZWN0aW9uRXZlbnQsXG4gIFJlYXNzaWduQ29ubmVjdGlvbk9uUG9pbnRlclVwLFxuICBSZWFzc2lnbkNvbm5lY3Rpb25QcmVwYXJlRHJhZ1NlcXVlbmNlXG59IGZyb20gJy4vY29ubmVjdGlvbnMnO1xuaW1wb3J0IHsgRlNlbGVjdGlvbkNoYW5nZUV2ZW50IH0gZnJvbSAnLi9mLXNlbGVjdGlvbi1jaGFuZ2UtZXZlbnQnO1xuaW1wb3J0IHsgRkZsb3dNZWRpYXRvciB9IGZyb20gJy4uL2YtbWVkaWF0b3InO1xuaW1wb3J0IHsgR2V0U2VsZWN0aW9uUmVxdWVzdCB9IGZyb20gJy4uL2RvbWFpbic7XG5pbXBvcnQgeyBpc0V4dGVybmFsSXRlbSB9IGZyb20gJy4uL2YtZXh0ZXJuYWwtaXRlbSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogXCJmLWZsb3dbZkRyYWdnYWJsZV1cIixcbiAgZXhwb3J0QXM6ICdmRHJhZ2dhYmxlJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBGX0RSQUdHQUJMRSwgdXNlRXhpc3Rpbmc6IEZEcmFnZ2FibGVEaXJlY3RpdmUgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIEZEcmFnZ2FibGVEaXJlY3RpdmUgZXh0ZW5kcyBGRHJhZ2dhYmxlQmFzZSBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcblxuICBwcml2YXRlIHN1YnNjcmlwdGlvbnMkOiBTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgQElucHV0KCdmRHJhZ2dhYmxlRGlzYWJsZWQnKVxuICBwdWJsaWMgb3ZlcnJpZGUgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBwdWJsaWMgb3ZlcnJpZGUgZ2V0IGhvc3RFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50UmVmZXJlbmNlLm5hdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICBAT3V0cHV0KClcbiAgcHVibGljIG92ZXJyaWRlIGZTZWxlY3Rpb25DaGFuZ2U6IEV2ZW50RW1pdHRlcjxGU2VsZWN0aW9uQ2hhbmdlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxGU2VsZWN0aW9uQ2hhbmdlRXZlbnQ+KCk7XG5cbiAgLy8gQE91dHB1dCgpXG4gIC8vIHB1YmxpYyBvdmVycmlkZSBmQ29ubmVjdGlvbkludGVyc2VjdE5vZGU6IEV2ZW50RW1pdHRlcjxDb25uZWN0aW9uSW50ZXJzZWN0Tm9kZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8Q29ubmVjdGlvbkludGVyc2VjdE5vZGVFdmVudD4oKTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIG92ZXJyaWRlIGZDcmVhdGVOb2RlOiBFdmVudEVtaXR0ZXI8RkNyZWF0ZU5vZGVFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEZDcmVhdGVOb2RlRXZlbnQ+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBvdmVycmlkZSBmUmVhc3NpZ25Db25uZWN0aW9uOiBFdmVudEVtaXR0ZXI8RlJlYXNzaWduQ29ubmVjdGlvbkV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8RlJlYXNzaWduQ29ubmVjdGlvbkV2ZW50PigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgb3ZlcnJpZGUgZkNyZWF0ZUNvbm5lY3Rpb246IEV2ZW50RW1pdHRlcjxGQ3JlYXRlQ29ubmVjdGlvbkV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8RkNyZWF0ZUNvbm5lY3Rpb25FdmVudD4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVsZW1lbnRSZWZlcmVuY2U6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgIHByaXZhdGUgZkRyYWdnYWJsZURhdGFDb250ZXh0OiBGRHJhZ2dhYmxlRGF0YUNvbnRleHQsXG4gICAgbmdab25lOiBOZ1pvbmUsXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHJpdmF0ZSBmQ29tcG9uZW50c1N0b3JlOiBGQ29tcG9uZW50c1N0b3JlLFxuICAgIHByaXZhdGUgZk1lZGlhdG9yOiBGRmxvd01lZGlhdG9yLFxuICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jOiBEb2N1bWVudFxuICApIHtcbiAgICBzdXBlcihuZ1pvbmUpO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mRHJhZ2dhYmxlID0gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgc3VwZXIuc3Vic2NyaWJlKHRoaXMuZG9jKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBvblBvaW50ZXJEb3duKGV2ZW50OiBJUG9pbnRlckV2ZW50KTogYm9vbGVhbiB7XG4gICAgdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQucmVzZXQoKTtcbiAgICBsZXQgcmVzdWx0OiBib29sZWFuID0gZXZlbnQuaXNNb3VzZUxlZnRCdXR0b24oKTtcblxuICAgIHRoaXMuaW5qZWN0b3IuZ2V0KFNpbmdsZVNlbGVjdE9uUG9pbnRlckRvd24pLmhhbmRsZShldmVudCk7XG5cbiAgICB0aGlzLmluamVjdG9yLmdldChSZWFzc2lnbkNvbm5lY3Rpb25QcmVwYXJlRHJhZ1NlcXVlbmNlKS5oYW5kbGUoZXZlbnQpO1xuXG4gICAgdGhpcy5pbmplY3Rvci5nZXQoQ3JlYXRlQ29ubmVjdGlvblByZXBhcmVEcmFnU2VxdWVuY2UpLmhhbmRsZShldmVudCk7XG5cbiAgICBpZiAoIXJlc3VsdCkge1xuICAgICAgdGhpcy5maW5hbGl6ZURyYWdTZXF1ZW5jZSgpO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcHJlcGFyZURyYWdTZXF1ZW5jZShldmVudDogSVBvaW50ZXJFdmVudCkge1xuICAgIHRoaXMuaW5qZWN0b3IuZ2V0KFNlbGVjdGlvbkFyZWFQcmVwYXJlRHJhZ1NlcXVlbmNlKS5oYW5kbGUoZXZlbnQpO1xuXG4gICAgdGhpcy5pbmplY3Rvci5nZXQoTm9kZVByZXBhcmVEcmFnU2VxdWVuY2UpLmhhbmRsZShldmVudCk7XG5cbiAgICB0aGlzLmluamVjdG9yLmdldChDYW52YXNQcmVwYXJlRHJhZ1NlcXVlbmNlKS5oYW5kbGUoZXZlbnQpO1xuXG4gICAgdGhpcy5pbmplY3Rvci5nZXQoRXh0ZXJuYWxJdGVtUHJlcGFyZURyYWdTZXF1ZW5jZSkuaGFuZGxlKGV2ZW50KTtcblxuICAgIHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0LmRyYWdnYWJsZUl0ZW1zLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgIGl0ZW0uaW5pdGlhbGl6ZT8uKCk7XG4gICAgfSk7XG5cbiAgICBpZiAodGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuZHJhZ2dhYmxlSXRlbXMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5ob3N0RWxlbWVudC5jbGFzc0xpc3QuYWRkKCdmLWRyYWdnaW5nJyk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIG9uU2VsZWN0KGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGlzVGFyZ2V0Tm90SHRtbCA9IGV2ZW50LmNvbnN0cnVjdG9yLm5hbWUgPT09ICdFdmVudCc7XG4gICAgY29uc3QgdGFyZ2V0ID0gaXNUYXJnZXROb3RIdG1sID8gKGV2ZW50LnRhcmdldCBhcyBOb2RlKS5wYXJlbnROb2RlIGFzIEhUTUxFbGVtZW50IDogZXZlbnQudGFyZ2V0O1xuICAgIGlmKHRhcmdldCAmJiBpc0V4dGVybmFsSXRlbSh0YXJnZXQgYXMgSFRNTEVsZW1lbnQpKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBvblBvaW50ZXJNb3ZlKGV2ZW50OiBJUG9pbnRlckV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgcG9pbnRlclBvc2l0aW9uSW5DYW52YXMgPSBQb2ludC5mcm9tUG9pbnQoZXZlbnQuZ2V0UG9zaXRpb24oKSkuZWxlbWVudFRyYW5zZm9ybSh0aGlzLmhvc3RFbGVtZW50KTtcbiAgICBjb25zdCBkaWZmZXJlbmNlID0gcG9pbnRlclBvc2l0aW9uSW5DYW52YXMuZGl2KHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0Lm9uUG9pbnRlckRvd25TY2FsZSkuc3ViKHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0Lm9uUG9pbnRlckRvd25Qb3NpdGlvbik7XG4gICAgdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuZHJhZ2dhYmxlSXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgaXRlbS5tb3ZlKGRpZmZlcmVuY2UpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIG9uUG9pbnRlclVwKGV2ZW50OiBJUG9pbnRlckV2ZW50KTogdm9pZCB7XG5cbiAgICB0aGlzLmluamVjdG9yLmdldChSZWFzc2lnbkNvbm5lY3Rpb25PblBvaW50ZXJVcCkuaGFuZGxlKGV2ZW50KTtcblxuICAgIHRoaXMuaW5qZWN0b3IuZ2V0KENyZWF0ZUNvbm5lY3Rpb25PblBvaW50ZXJVcCkuaGFuZGxlKGV2ZW50KTtcblxuICAgIHRoaXMuaW5qZWN0b3IuZ2V0KFNlbGVjdGlvbkFyZWFPblBvaW50ZXJVcCkuaGFuZGxlKGV2ZW50KTtcblxuICAgIHRoaXMuaW5qZWN0b3IuZ2V0KE5vZGVPblBvaW50ZXJVcCkuaGFuZGxlKGV2ZW50KTtcblxuICAgIHRoaXMuaW5qZWN0b3IuZ2V0KENhbnZhc09uUG9pbnRlclVwKS5oYW5kbGUoZXZlbnQpO1xuXG4gICAgdGhpcy5pbmplY3Rvci5nZXQoRXh0ZXJuYWxJdGVtT25Qb2ludGVyVXApLmhhbmRsZShldmVudCk7XG5cbiAgICB0aGlzLmhvc3RFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoJ2YtZHJhZ2dpbmcnKTtcblxuICAgIHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0LnJlc2V0KCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZmluYWxpemVEcmFnU2VxdWVuY2UoKTogdm9pZCB7XG4gICAgdGhpcy5lbWl0U2VsZWN0aW9uQ2hhbmdlRXZlbnQoKTtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdFNlbGVjdGlvbkNoYW5nZUV2ZW50KCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgICF0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5pc1NlbGVjdGVkQ2hhbmdlZFxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCByZXN1bHQgPSB0aGlzLmZNZWRpYXRvci5zZW5kPEZTZWxlY3Rpb25DaGFuZ2VFdmVudD4obmV3IEdldFNlbGVjdGlvblJlcXVlc3QoKSk7XG4gICAgdGhpcy5mU2VsZWN0aW9uQ2hhbmdlLmVtaXQocmVzdWx0KTtcbiAgICB0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5pc1NlbGVjdGVkQ2hhbmdlZCA9IGZhbHNlO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHN1cGVyLnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zJC51bnN1YnNjcmliZSgpO1xuICB9XG59XG5cbiJdfQ==
@@ -3,7 +3,7 @@ import { Injectable } from '@angular/core';
3
3
  import { EFDraggableType } from '../../../e-f-draggable-type';
4
4
  import { GetElementRectInFlowRequest } from '../../../../domain';
5
5
  import * as i0 from "@angular/core";
6
- import * as i1 from "../../../../f-components-store";
6
+ import * as i1 from "../../../../f-storage";
7
7
  import * as i2 from "../../../f-draggable-data-context";
8
8
  import * as i3 from "../../../../f-mediator";
9
9
  import * as i4 from "../../../../domain";
@@ -70,4 +70,4 @@ export class IsConnectionUnderNodeHandler {
70
70
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: IsConnectionUnderNodeHandler, decorators: [{
71
71
  type: Injectable
72
72
  }], ctorParameters: () => [{ type: i1.FComponentsStore }, { type: i2.FDraggableDataContext }, { type: i3.FFlowMediator }, { type: i4.GetOutgoingConnectionsHandler }, { type: i4.GetIncomingConnectionsHandler }] });
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtY29ubmVjdGlvbi11bmRlci1ub2RlLmhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL25vZGUvZG9tYWluL2lzLWNvbm5lY3Rpb24tdW5kZXItbm9kZS9pcy1jb25uZWN0aW9uLXVuZGVyLW5vZGUuaGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9DLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNoRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSTNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RCxPQUFPLEVBQ0wsMkJBQTJCLEVBRzVCLE1BQU0sb0JBQW9CLENBQUM7Ozs7OztBQU81QixNQUFNLE9BQU8sNEJBQTRCO0lBRXZDLElBQVksU0FBUztRQUNuQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFRLENBQUMsU0FBUyxDQUFDO0lBQ2xELENBQUM7SUFFRCxJQUFZLFFBQVE7UUFDbEIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBTSxDQUFDLFdBQVcsQ0FBQztJQUNsRCxDQUFDO0lBRUQsWUFDWSxnQkFBa0MsRUFDbEMscUJBQTRDLEVBQzVDLFNBQXdCLEVBQ3hCLDZCQUE0RCxFQUM1RCw2QkFBNEQ7UUFKNUQscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQywwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBQzVDLGNBQVMsR0FBVCxTQUFTLENBQWU7UUFDeEIsa0NBQTZCLEdBQTdCLDZCQUE2QixDQUErQjtRQUM1RCxrQ0FBNkIsR0FBN0IsNkJBQTZCLENBQStCO0lBRXhFLENBQUM7SUFFTSxNQUFNO1FBRVgsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxP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QUFDLEVBQUUsRUFBRTtZQUNyRCxNQUFNLFlBQVksR0FBRyxjQUFjLENBQUMsc0JBQXNCLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDdkcsT0FBTyxDQUFDLFlBQVksSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFBO1FBQ3hDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0F6RVUsNEJBQTRCO2tIQUE1Qiw0QkFBNEI7OzJGQUE1Qiw0QkFBNEI7a0JBRHhDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJSGFuZGxlciwgSVJlY3QsIElUcmFuc2Zvcm1Nb2RlbCwgUmVjdEV4dGVuc2lvbnMgfSBmcm9tICdAZm9ibGV4L2NvcmUnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRkNvbXBvbmVudHNTdG9yZSB9IGZyb20gJy4uLy4uLy4uLy4uL2YtY29tcG9uZW50cy1zdG9yZSc7XG5pbXBvcnQgeyBGRHJhZ2dhYmxlRGF0YUNvbnRleHQgfSBmcm9tICcuLi8uLi8uLi9mLWRyYWdnYWJsZS1kYXRhLWNvbnRleHQnO1xuaW1wb3J0IHsgTm9kZURyYWdIYW5kbGVyIH0gZnJvbSAnLi4vLi4vbm9kZS5kcmFnLWhhbmRsZXInO1xuaW1wb3J0IHsgRUZEcmFnZ2FibGVUeXBlIH0gZnJvbSAnLi4vLi4vLi4vZS1mLWRyYWdnYWJsZS10eXBlJztcbmltcG9ydCB7XG4gIEdldEVsZW1lbnRSZWN0SW5GbG93UmVxdWVzdCxcbiAgR2V0SW5jb21pbmdDb25uZWN0aW9uc0hhbmRsZXIsXG4gIEdldE91dGdvaW5nQ29ubmVjdGlvbnNIYW5kbGVyXG59IGZyb20gJy4uLy4uLy4uLy4uL2RvbWFpbic7XG5pbXBvcnQgeyBGQ29ubmVjdGlvbkJhc2UgfSBmcm9tICcuLi8uLi8uLi8uLi9mLWNvbm5lY3Rpb24nO1xuaW1wb3J0IHsgRk5vZGVCYXNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZi1ub2RlJztcbmltcG9ydCB7IEZDb25uZWN0b3JCYXNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZi1jb25uZWN0b3JzJztcbmltcG9ydCB7IEZGbG93TWVkaWF0b3IgfSBmcm9tICcuLi8uLi8uLi8uLi9mLW1lZGlhdG9yJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIElzQ29ubmVjdGlvblVuZGVyTm9kZUhhbmRsZXIgaW1wbGVtZW50cyBJSGFuZGxlcjx2b2lkPiB7XG5cbiAgcHJpdmF0ZSBnZXQgdHJhbnNmb3JtKCk6IElUcmFuc2Zvcm1Nb2RlbCB7XG4gICAgcmV0dXJuIHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mQ2FudmFzIS50cmFuc2Zvcm07XG4gIH1cblxuICBwcml2YXRlIGdldCBmbG93SG9zdCgpOiBIVE1MRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mRmxvdyEuaG9zdEVsZW1lbnQ7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICAgIHByaXZhdGUgZkNvbXBvbmVudHNTdG9yZTogRkNvbXBvbmVudHNTdG9yZSxcbiAgICAgIHByaXZhdGUgZkRyYWdnYWJsZURhdGFDb250ZXh0OiBGRHJhZ2dhYmxlRGF0YUNvbnRleHQsXG4gICAgICBwcml2YXRlIGZNZWRpYXRvcjogRkZsb3dNZWRpYXRvcixcbiAgICAgIHByaXZhdGUgZ2V0T3V0Z29pbmdDb25uZWN0aW9uc0hhbmRsZXI6IEdldE91dGdvaW5nQ29ubmVjdGlvbnNIYW5kbGVyLFxuICAgICAgcHJpdmF0ZSBnZXRJbmNvbWluZ0Nvbm5lY3Rpb25zSGFuZGxlcjogR2V0SW5jb21pbmdDb25uZWN0aW9uc0hhbmRsZXJcbiAgKSB7XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlKCk6IHZvaWQge1xuXG4gICAgY29uc3QgaXNWYWxpZCA9IHRoaXMuaXNWYWxpZFJlcXVlc3QoKTtcbiAgICBpZiAoIWlzVmFsaWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBmTm9kZSA9ICh0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5kcmFnZ2FibGVJdGVtc1sgMCBdIGFzIE5vZGVEcmFnSGFuZGxlcikuZk5vZGU7XG5cbiAgICBjb25zdCBvdXRwdXRzT2ZOb2RlID0gdGhpcy5nZXRPdXRwdXRzRm9yTm9kZShmTm9kZSk7XG4gICAgY29uc3QgaW5wdXRzT2ZOb2RlID0gdGhpcy5nZXRJbnB1dHNGb3JOb2RlKGZOb2RlKTtcblxuICAgIGNvbnN0IGlzQ2FudEJlQ29ubmVjdGVkQnlPdXRwdXQgPSBvdXRwdXRzT2ZOb2RlLnNvbWUoKHgpID0+ICF4LmNhbkJlQ29ubmVjdGVkKTtcblxuICAgIGNvbnN0IGlzQ2FudEJlQ29ubmVjdGVkQnlJbnB1dCA9IHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mQ29ubmVjdGlvbnMuc29tZSgoeCkgPT4ge1xuICAgICAgcmV0dXJuIGlucHV0c09mTm9kZS5maW5kKChpbnB1dCkgPT4gaW5wdXQuaWQgPT09IHguZklucHV0SWQpO1xuICAgIH0pO1xuXG4gICAgaWYgKCFpc0NhbnRCZUNvbm5lY3RlZEJ5SW5wdXQgJiYgb3V0cHV0c09mTm9kZS5sZW5ndGggJiYgIWlzQ2FudEJlQ29ubmVjdGVkQnlPdXRwdXQgJiYgaW5wdXRzT2ZOb2RlLmxlbmd0aCkge1xuICAgICAgY29uc3Qgb3V0cHV0ID0gb3V0cHV0c09mTm9kZVsgMCBdO1xuICAgICAgY29uc3QgaW5wdXQgPSBpbnB1dHNPZk5vZGVbIDAgXTtcbiAgICAgIGNvbnN0IG91dGdvaW5nQ29ubmVjdGlvbnMgPSB0aGlzLmdldE91dGdvaW5nQ29ubmVjdGlvbnNIYW5kbGVyLmhhbmRsZShbIG91dHB1dCBdKTtcbiAgICAgIGNvbnN0IGluY29taW5nQ29ubmVjdGlvbnMgPSB0aGlzLmdldEluY29taW5nQ29ubmVjdGlvbnNIYW5kbGVyLmhhbmRsZShbIGlucHV0IF0pO1xuICAgICAgaWYgKG91dGdvaW5nQ29ubmVjdGlvbnMubGVuZ3RoID09PSAwICYmIGluY29taW5nQ29ubmVjdGlvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIGNvbnN0IGNvbm5lY3Rpb25zID0gdGhpcy5maW5kQ29ubmVjdGlvbnNVbmRlck5vZGUoZk5vZGUpO1xuICAgICAgICBpZiAoY29ubmVjdGlvbnMubGVuZ3RoKSB7XG4gICAgICAgICAgLy9UT0RPOiBuZWVkIHRvIGltcGxlbWVudFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpc1ZhbGlkUmVxdWVzdCgpOiBib29sZWFuIHtcbiAgICBjb25zdCByZXN1bHQgPVxuICAgICAgICB0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5kcmFnZ2FibGVJdGVtcy5sZW5ndGggPT09IDEgJiZcbiAgICAgICAgdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuZHJhZ2dhYmxlSXRlbXNbIDAgXS50eXBlID09PSBFRkRyYWdnYWJsZVR5cGUuTk9ERTtcblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcml2YXRlIGdldE91dHB1dHNGb3JOb2RlKG5vZGU6IEZOb2RlQmFzZSk6IEZDb25uZWN0b3JCYXNlW10ge1xuICAgIHJldHVybiB0aGlzLmZDb21wb25lbnRzU3RvcmUuZk91dHB1dHMuZmlsdGVyKCh4KSA9PiBub2RlLmlzQ29udGFpbnMoeC5ob3N0RWxlbWVudCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRJbnB1dHNGb3JOb2RlKG5vZGU6IEZOb2RlQmFzZSk6IEZDb25uZWN0b3JCYXNlW10ge1xuICAgIHJldHVybiB0aGlzLmZDb21wb25lbnRzU3RvcmUuZklucHV0cy5maWx0ZXIoKHgpID0+IG5vZGUuaXNDb250YWlucyh4Lmhvc3RFbGVtZW50KSk7XG4gIH1cblxuICBwcml2YXRlIGZpbmRDb25uZWN0aW9uc1VuZGVyTm9kZShub2RlOiBGTm9kZUJhc2UpOiBGQ29ubmVjdGlvbkJhc2VbXSB7XG4gICAgY29uc3Qgbm9kZVJlY3QgPSB0aGlzLmZNZWRpYXRvci5zZW5kPElSZWN0PihuZXcgR2V0RWxlbWVudFJlY3RJbkZsb3dSZXF1ZXN0KG5vZGUuaG9zdEVsZW1lbnQpKTtcbiAgICByZXR1cm4gdGhpcy5mQ29tcG9uZW50c1N0b3JlLmZDb25uZWN0aW9ucy5maWx0ZXIoKHgpID0+IHtcbiAgICAgIGNvbnN0IGludGVyc2VjdGlvbiA9IFJlY3RFeHRlbnNpb25zLmludGVyc2VjdGlvbldpdGhWZWN0b3Iobm9kZVJlY3QsIHgudmVjdG9yLnBvaW50MSwgeC52ZWN0b3IucG9pbnQyKTtcbiAgICAgIHJldHVybiAoaW50ZXJzZWN0aW9uIHx8IFtdKS5sZW5ndGggPiAwXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtY29ubmVjdGlvbi11bmRlci1ub2RlLmhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL25vZGUvZG9tYWluL2lzLWNvbm5lY3Rpb24tdW5kZXItbm9kZS9pcy1jb25uZWN0aW9uLXVuZGVyLW5vZGUuaGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9DLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNoRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSTNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RCxPQUFPLEVBQ0wsMkJBQTJCLEVBRzVCLE1BQU0sb0JBQW9CLENBQUM7Ozs7OztBQU81QixNQUFNLE9BQU8sNEJBQTRCO0lBRXZDLElBQVksU0FBUztRQUNuQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFRLENBQUMsU0FBUyxDQUFDO0lBQ2xELENBQUM7SUFFRCxJQUFZLFFBQVE7UUFDbEIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBTSxDQUFDLFdBQVcsQ0FBQztJQUNsRCxDQUFDO0lBRUQsWUFDWSxnQkFBa0MsRUFDbEMscUJBQTRDLEVBQzVDLFNBQXdCLEVBQ3hCLDZCQUE0RCxFQUM1RCw2QkFBNEQ7UUFKNUQscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQywwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBQzVDLGNBQVMsR0FBVCxTQUFTLENBQWU7UUFDeEIsa0NBQTZCLEdBQTdCLDZCQUE2QixDQUErQjtRQUM1RCxrQ0FBNkIsR0FBN0IsNkJBQTZCLENBQStCO0lBRXhFLENBQUM7SUFFTSxNQUFNO1FBRVgsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxP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QUFDLEVBQUUsRUFBRTtZQUNyRCxNQUFNLFlBQVksR0FBRyxjQUFjLENBQUMsc0JBQXNCLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDdkcsT0FBTyxDQUFDLFlBQVksSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFBO1FBQ3hDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0F6RVUsNEJBQTRCO2tIQUE1Qiw0QkFBNEI7OzJGQUE1Qiw0QkFBNEI7a0JBRHhDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJSGFuZGxlciwgSVJlY3QsIElUcmFuc2Zvcm1Nb2RlbCwgUmVjdEV4dGVuc2lvbnMgfSBmcm9tICdAZm9ibGV4L2NvcmUnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRkNvbXBvbmVudHNTdG9yZSB9IGZyb20gJy4uLy4uLy4uLy4uL2Ytc3RvcmFnZSc7XG5pbXBvcnQgeyBGRHJhZ2dhYmxlRGF0YUNvbnRleHQgfSBmcm9tICcuLi8uLi8uLi9mLWRyYWdnYWJsZS1kYXRhLWNvbnRleHQnO1xuaW1wb3J0IHsgTm9kZURyYWdIYW5kbGVyIH0gZnJvbSAnLi4vLi4vbm9kZS5kcmFnLWhhbmRsZXInO1xuaW1wb3J0IHsgRUZEcmFnZ2FibGVUeXBlIH0gZnJvbSAnLi4vLi4vLi4vZS1mLWRyYWdnYWJsZS10eXBlJztcbmltcG9ydCB7XG4gIEdldEVsZW1lbnRSZWN0SW5GbG93UmVxdWVzdCxcbiAgR2V0SW5jb21pbmdDb25uZWN0aW9uc0hhbmRsZXIsXG4gIEdldE91dGdvaW5nQ29ubmVjdGlvbnNIYW5kbGVyXG59IGZyb20gJy4uLy4uLy4uLy4uL2RvbWFpbic7XG5pbXBvcnQgeyBGQ29ubmVjdGlvbkJhc2UgfSBmcm9tICcuLi8uLi8uLi8uLi9mLWNvbm5lY3Rpb24nO1xuaW1wb3J0IHsgRk5vZGVCYXNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZi1ub2RlJztcbmltcG9ydCB7IEZDb25uZWN0b3JCYXNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZi1jb25uZWN0b3JzJztcbmltcG9ydCB7IEZGbG93TWVkaWF0b3IgfSBmcm9tICcuLi8uLi8uLi8uLi9mLW1lZGlhdG9yJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIElzQ29ubmVjdGlvblVuZGVyTm9kZUhhbmRsZXIgaW1wbGVtZW50cyBJSGFuZGxlcjx2b2lkPiB7XG5cbiAgcHJpdmF0ZSBnZXQgdHJhbnNmb3JtKCk6IElUcmFuc2Zvcm1Nb2RlbCB7XG4gICAgcmV0dXJuIHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mQ2FudmFzIS50cmFuc2Zvcm07XG4gIH1cblxuICBwcml2YXRlIGdldCBmbG93SG9zdCgpOiBIVE1MRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mRmxvdyEuaG9zdEVsZW1lbnQ7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICAgIHByaXZhdGUgZkNvbXBvbmVudHNTdG9yZTogRkNvbXBvbmVudHNTdG9yZSxcbiAgICAgIHByaXZhdGUgZkRyYWdnYWJsZURhdGFDb250ZXh0OiBGRHJhZ2dhYmxlRGF0YUNvbnRleHQsXG4gICAgICBwcml2YXRlIGZNZWRpYXRvcjogRkZsb3dNZWRpYXRvcixcbiAgICAgIHByaXZhdGUgZ2V0T3V0Z29pbmdDb25uZWN0aW9uc0hhbmRsZXI6IEdldE91dGdvaW5nQ29ubmVjdGlvbnNIYW5kbGVyLFxuICAgICAgcHJpdmF0ZSBnZXRJbmNvbWluZ0Nvbm5lY3Rpb25zSGFuZGxlcjogR2V0SW5jb21pbmdDb25uZWN0aW9uc0hhbmRsZXJcbiAgKSB7XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlKCk6IHZvaWQge1xuXG4gICAgY29uc3QgaXNWYWxpZCA9IHRoaXMuaXNWYWxpZFJlcXVlc3QoKTtcbiAgICBpZiAoIWlzVmFsaWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBmTm9kZSA9ICh0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5kcmFnZ2FibGVJdGVtc1sgMCBdIGFzIE5vZGVEcmFnSGFuZGxlcikuZk5vZGU7XG5cbiAgICBjb25zdCBvdXRwdXRzT2ZOb2RlID0gdGhpcy5nZXRPdXRwdXRzRm9yTm9kZShmTm9kZSk7XG4gICAgY29uc3QgaW5wdXRzT2ZOb2RlID0gdGhpcy5nZXRJbnB1dHNGb3JOb2RlKGZOb2RlKTtcblxuICAgIGNvbnN0IGlzQ2FudEJlQ29ubmVjdGVkQnlPdXRwdXQgPSBvdXRwdXRzT2ZOb2RlLnNvbWUoKHgpID0+ICF4LmNhbkJlQ29ubmVjdGVkKTtcblxuICAgIGNvbnN0IGlzQ2FudEJlQ29ubmVjdGVkQnlJbnB1dCA9IHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mQ29ubmVjdGlvbnMuc29tZSgoeCkgPT4ge1xuICAgICAgcmV0dXJuIGlucHV0c09mTm9kZS5maW5kKChpbnB1dCkgPT4gaW5wdXQuaWQgPT09IHguZklucHV0SWQpO1xuICAgIH0pO1xuXG4gICAgaWYgKCFpc0NhbnRCZUNvbm5lY3RlZEJ5SW5wdXQgJiYgb3V0cHV0c09mTm9kZS5sZW5ndGggJiYgIWlzQ2FudEJlQ29ubmVjdGVkQnlPdXRwdXQgJiYgaW5wdXRzT2ZOb2RlLmxlbmd0aCkge1xuICAgICAgY29uc3Qgb3V0cHV0ID0gb3V0cHV0c09mTm9kZVsgMCBdO1xuICAgICAgY29uc3QgaW5wdXQgPSBpbnB1dHNPZk5vZGVbIDAgXTtcbiAgICAgIGNvbnN0IG91dGdvaW5nQ29ubmVjdGlvbnMgPSB0aGlzLmdldE91dGdvaW5nQ29ubmVjdGlvbnNIYW5kbGVyLmhhbmRsZShbIG91dHB1dCBdKTtcbiAgICAgIGNvbnN0IGluY29taW5nQ29ubmVjdGlvbnMgPSB0aGlzLmdldEluY29taW5nQ29ubmVjdGlvbnNIYW5kbGVyLmhhbmRsZShbIGlucHV0IF0pO1xuICAgICAgaWYgKG91dGdvaW5nQ29ubmVjdGlvbnMubGVuZ3RoID09PSAwICYmIGluY29taW5nQ29ubmVjdGlvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIGNvbnN0IGNvbm5lY3Rpb25zID0gdGhpcy5maW5kQ29ubmVjdGlvbnNVbmRlck5vZGUoZk5vZGUpO1xuICAgICAgICBpZiAoY29ubmVjdGlvbnMubGVuZ3RoKSB7XG4gICAgICAgICAgLy9UT0RPOiBuZWVkIHRvIGltcGxlbWVudFxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpc1ZhbGlkUmVxdWVzdCgpOiBib29sZWFuIHtcbiAgICBjb25zdCByZXN1bHQgPVxuICAgICAgICB0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5kcmFnZ2FibGVJdGVtcy5sZW5ndGggPT09IDEgJiZcbiAgICAgICAgdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuZHJhZ2dhYmxlSXRlbXNbIDAgXS50eXBlID09PSBFRkRyYWdnYWJsZVR5cGUuTk9ERTtcblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcml2YXRlIGdldE91dHB1dHNGb3JOb2RlKG5vZGU6IEZOb2RlQmFzZSk6IEZDb25uZWN0b3JCYXNlW10ge1xuICAgIHJldHVybiB0aGlzLmZDb21wb25lbnRzU3RvcmUuZk91dHB1dHMuZmlsdGVyKCh4KSA9PiBub2RlLmlzQ29udGFpbnMoeC5ob3N0RWxlbWVudCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRJbnB1dHNGb3JOb2RlKG5vZGU6IEZOb2RlQmFzZSk6IEZDb25uZWN0b3JCYXNlW10ge1xuICAgIHJldHVybiB0aGlzLmZDb21wb25lbnRzU3RvcmUuZklucHV0cy5maWx0ZXIoKHgpID0+IG5vZGUuaXNDb250YWlucyh4Lmhvc3RFbGVtZW50KSk7XG4gIH1cblxuICBwcml2YXRlIGZpbmRDb25uZWN0aW9uc1VuZGVyTm9kZShub2RlOiBGTm9kZUJhc2UpOiBGQ29ubmVjdGlvbkJhc2VbXSB7XG4gICAgY29uc3Qgbm9kZVJlY3QgPSB0aGlzLmZNZWRpYXRvci5zZW5kPElSZWN0PihuZXcgR2V0RWxlbWVudFJlY3RJbkZsb3dSZXF1ZXN0KG5vZGUuaG9zdEVsZW1lbnQpKTtcbiAgICByZXR1cm4gdGhpcy5mQ29tcG9uZW50c1N0b3JlLmZDb25uZWN0aW9ucy5maWx0ZXIoKHgpID0+IHtcbiAgICAgIGNvbnN0IGludGVyc2VjdGlvbiA9IFJlY3RFeHRlbnNpb25zLmludGVyc2VjdGlvbldpdGhWZWN0b3Iobm9kZVJlY3QsIHgudmVjdG9yLnBvaW50MSwgeC52ZWN0b3IucG9pbnQyKTtcbiAgICAgIHJldHVybiAoaW50ZXJzZWN0aW9uIHx8IFtdKS5sZW5ndGggPiAwXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -2,7 +2,7 @@ import { Point } from '@foblex/core';
2
2
  import { EFDraggableType } from '../e-f-draggable-type';
3
3
  import { Injectable } from '@angular/core';
4
4
  import * as i0 from "@angular/core";
5
- import * as i1 from "../../f-components-store";
5
+ import * as i1 from "../../f-storage";
6
6
  import * as i2 from "../f-draggable-data-context";
7
7
  import * as i3 from "./domain/is-connection-under-node";
8
8
  export class NodeOnPointerUp {
@@ -38,4 +38,4 @@ export class NodeOnPointerUp {
38
38
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: NodeOnPointerUp, decorators: [{
39
39
  type: Injectable
40
40
  }], ctorParameters: () => [{ type: i1.FComponentsStore }, { type: i2.FDraggableDataContext }, { type: i3.IsConnectionUnderNodeHandler }] });
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5vbi1wb2ludGVyLXVwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9ub2RlL25vZGUub24tcG9pbnRlci11cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTJCLEtBQUssRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUc5RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFJM0MsTUFBTSxPQUFPLGVBQWU7SUFHMUIsSUFBWSxRQUFRO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQU0sQ0FBQyxXQUFXLENBQUM7SUFDbEQsQ0FBQztJQUVELFlBQ1ksZ0JBQWtDLEVBQ2xDLHFCQUE0QyxFQUM1Qyw0QkFBMEQ7UUFGMUQscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQywwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBQzVDLGlDQUE0QixHQUE1Qiw0QkFBNEIsQ0FBOEI7SUFFdEUsQ0FBQztJQUVNLE1BQU0sQ0FBQyxLQUFvQjtRQUNoQyxNQUFNLHFCQUFxQixHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ25HLElBQUksVUFBVSxHQUFHLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFFaEosTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTNHLElBQUksV0FBVyxFQUFFLENBQUM7WUFDaEIsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsY0FBYyxFQUFFLHFCQUFxQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3pHLElBQUksbUJBQW1CLEVBQUUsQ0FBQztnQkFDeEIsVUFBVSxDQUFDLENBQUMsR0FBRyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsbUJBQW1CLENBQUMsT0FBTyxDQUFDLFFBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO2dCQUN6SCxVQUFVLENBQUMsQ0FBQyxHQUFHLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsR0FBRyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsUUFBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7WUFDM0gsQ0FBQztZQUNELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3RELENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQ25CLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO1lBQ2pCLENBQUMsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLDRCQUE0QixDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzNDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxjQUFjLEVBQUUsUUFBUSxFQUFFLENBQUM7UUFDeEQsQ0FBQztJQUNILENBQUM7OEdBakNVLGVBQWU7a0hBQWYsZUFBZTs7MkZBQWYsZUFBZTtrQkFEM0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElIYW5kbGVyLCBJUG9pbnRlckV2ZW50LCBQb2ludCB9IGZyb20gJ0Bmb2JsZXgvY29yZSc7XG5pbXBvcnQgeyBGQ29tcG9uZW50c1N0b3JlIH0gZnJvbSAnLi4vLi4vZi1jb21wb25lbnRzLXN0b3JlJztcbmltcG9ydCB7IEZEcmFnZ2FibGVEYXRhQ29udGV4dCB9IGZyb20gJy4uL2YtZHJhZ2dhYmxlLWRhdGEtY29udGV4dCc7XG5pbXBvcnQgeyBFRkRyYWdnYWJsZVR5cGUgfSBmcm9tICcuLi9lLWYtZHJhZ2dhYmxlLXR5cGUnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSXNDb25uZWN0aW9uVW5kZXJOb2RlSGFuZGxlciB9IGZyb20gJy4vZG9tYWluL2lzLWNvbm5lY3Rpb24tdW5kZXItbm9kZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBOb2RlT25Qb2ludGVyVXBcbiAgICBpbXBsZW1lbnRzIElIYW5kbGVyPElQb2ludGVyRXZlbnQsIHZvaWQ+IHtcblxuICBwcml2YXRlIGdldCBmbG93SG9zdCgpOiBIVE1MRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mRmxvdyEuaG9zdEVsZW1lbnQ7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICAgIHByaXZhdGUgZkNvbXBvbmVudHNTdG9yZTogRkNvbXBvbmVudHNTdG9yZSxcbiAgICAgIHByaXZhdGUgZkRyYWdnYWJsZURhdGFDb250ZXh0OiBGRHJhZ2dhYmxlRGF0YUNvbnRleHQsXG4gICAgICBwcml2YXRlIGlzQ29ubmVjdGlvblVuZGVyTm9kZUhhbmRsZXI6IElzQ29ubmVjdGlvblVuZGVyTm9kZUhhbmRsZXIsXG4gICkge1xuICB9XG5cbiAgcHVibGljIGhhbmRsZShldmVudDogSVBvaW50ZXJFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHBvaW50ZXJQb3NpdGlvbkluRmxvdyA9IFBvaW50LmZyb21Qb2ludChldmVudC5nZXRQb3NpdGlvbigpKS5lbGVtZW50VHJhbnNmb3JtKHRoaXMuZmxvd0hvc3QpO1xuICAgIGxldCBkaWZmZXJlbmNlID0gcG9pbnRlclBvc2l0aW9uSW5GbG93LmRpdih0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5vblBvaW50ZXJEb3duU2NhbGUpLnN1Yih0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5vblBvaW50ZXJEb3duUG9zaXRpb24pO1xuXG4gICAgY29uc3QgaXNEcmFnTm9kZXMgPSB0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5kcmFnZ2FibGVJdGVtcy5zb21lKCh4KSA9PiB4LnR5cGUgPT09IEVGRHJhZ2dhYmxlVHlwZS5OT0RFKTtcblxuICAgIGlmIChpc0RyYWdOb2Rlcykge1xuICAgICAgY29uc3QgbmVhcmVzdEludGVyc2VjdGlvbiA9IHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0LmZMaW5lQWxpZ25tZW50Py5maW5kTmVhcmVzdENvb3JkaW5hdGUoZGlmZmVyZW5jZSk7XG4gICAgICBpZiAobmVhcmVzdEludGVyc2VjdGlvbikge1xuICAgICAgICBkaWZmZXJlbmNlLnggPSBuZWFyZXN0SW50ZXJzZWN0aW9uLnhSZXN1bHQudmFsdWUgPyAoZGlmZmVyZW5jZS54IC0gbmVhcmVzdEludGVyc2VjdGlvbi54UmVzdWx0LmRpc3RhbmNlISkgOiBkaWZmZXJlbmNlLng7XG4gICAgICAgIGRpZmZlcmVuY2UueSA9IG5lYXJlc3RJbnRlcnNlY3Rpb24ueVJlc3VsdC52YWx1ZSA/IChkaWZmZXJlbmNlLnkgLSBuZWFyZXN0SW50ZXJzZWN0aW9uLnlSZXN1bHQuZGlzdGFuY2UhKSA6IGRpZmZlcmVuY2UueTtcbiAgICAgIH1cbiAgICAgIHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0LmRyYWdnYWJsZUl0ZW1zLmZvckVhY2goKHgpID0+IHtcbiAgICAgICAgeC5tb3ZlKGRpZmZlcmVuY2UpO1xuICAgICAgICB4LmNvbXBsZXRlPy4oKTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5pc0Nvbm5lY3Rpb25VbmRlck5vZGVIYW5kbGVyLmhhbmRsZSgpO1xuICAgICAgdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuZkxpbmVBbGlnbm1lbnQ/LmNvbXBsZXRlKCk7XG4gICAgfVxuICB9XG59XG4iXX0=
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5vbi1wb2ludGVyLXVwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9ub2RlL25vZGUub24tcG9pbnRlci11cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTJCLEtBQUssRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUc5RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFJM0MsTUFBTSxPQUFPLGVBQWU7SUFHMUIsSUFBWSxRQUFRO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQU0sQ0FBQyxXQUFXLENBQUM7SUFDbEQsQ0FBQztJQUVELFlBQ1ksZ0JBQWtDLEVBQ2xDLHFCQUE0QyxFQUM1Qyw0QkFBMEQ7UUFGMUQscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQywwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBQzVDLGlDQUE0QixHQUE1Qiw0QkFBNEIsQ0FBOEI7SUFFdEUsQ0FBQztJQUVNLE1BQU0sQ0FBQyxLQUFvQjtRQUNoQyxNQUFNLHFCQUFxQixHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ25HLElBQUksVUFBVSxHQUFHLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFFaEosTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTNHLElBQUksV0FBVyxFQUFFLENBQUM7WUFDaEIsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsY0FBYyxFQUFFLHFCQUFxQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3pHLElBQUksbUJBQW1CLEVBQUUsQ0FBQztnQkFDeEIsVUFBVSxDQUFDLENBQUMsR0FBRyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEdBQUcsbUJBQW1CLENBQUMsT0FBTyxDQUFDLFFBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO2dCQUN6SCxVQUFVLENBQUMsQ0FBQyxHQUFHLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsR0FBRyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsUUFBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7WUFDM0gsQ0FBQztZQUNELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3RELENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQ25CLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO1lBQ2pCLENBQUMsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLDRCQUE0QixDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzNDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxjQUFjLEVBQUUsUUFBUSxFQUFFLENBQUM7UUFDeEQsQ0FBQztJQUNILENBQUM7OEdBakNVLGVBQWU7a0hBQWYsZUFBZTs7MkZBQWYsZUFBZTtrQkFEM0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElIYW5kbGVyLCBJUG9pbnRlckV2ZW50LCBQb2ludCB9IGZyb20gJ0Bmb2JsZXgvY29yZSc7XG5pbXBvcnQgeyBGQ29tcG9uZW50c1N0b3JlIH0gZnJvbSAnLi4vLi4vZi1zdG9yYWdlJztcbmltcG9ydCB7IEZEcmFnZ2FibGVEYXRhQ29udGV4dCB9IGZyb20gJy4uL2YtZHJhZ2dhYmxlLWRhdGEtY29udGV4dCc7XG5pbXBvcnQgeyBFRkRyYWdnYWJsZVR5cGUgfSBmcm9tICcuLi9lLWYtZHJhZ2dhYmxlLXR5cGUnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSXNDb25uZWN0aW9uVW5kZXJOb2RlSGFuZGxlciB9IGZyb20gJy4vZG9tYWluL2lzLWNvbm5lY3Rpb24tdW5kZXItbm9kZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBOb2RlT25Qb2ludGVyVXBcbiAgICBpbXBsZW1lbnRzIElIYW5kbGVyPElQb2ludGVyRXZlbnQsIHZvaWQ+IHtcblxuICBwcml2YXRlIGdldCBmbG93SG9zdCgpOiBIVE1MRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mRmxvdyEuaG9zdEVsZW1lbnQ7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICAgIHByaXZhdGUgZkNvbXBvbmVudHNTdG9yZTogRkNvbXBvbmVudHNTdG9yZSxcbiAgICAgIHByaXZhdGUgZkRyYWdnYWJsZURhdGFDb250ZXh0OiBGRHJhZ2dhYmxlRGF0YUNvbnRleHQsXG4gICAgICBwcml2YXRlIGlzQ29ubmVjdGlvblVuZGVyTm9kZUhhbmRsZXI6IElzQ29ubmVjdGlvblVuZGVyTm9kZUhhbmRsZXIsXG4gICkge1xuICB9XG5cbiAgcHVibGljIGhhbmRsZShldmVudDogSVBvaW50ZXJFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHBvaW50ZXJQb3NpdGlvbkluRmxvdyA9IFBvaW50LmZyb21Qb2ludChldmVudC5nZXRQb3NpdGlvbigpKS5lbGVtZW50VHJhbnNmb3JtKHRoaXMuZmxvd0hvc3QpO1xuICAgIGxldCBkaWZmZXJlbmNlID0gcG9pbnRlclBvc2l0aW9uSW5GbG93LmRpdih0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5vblBvaW50ZXJEb3duU2NhbGUpLnN1Yih0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5vblBvaW50ZXJEb3duUG9zaXRpb24pO1xuXG4gICAgY29uc3QgaXNEcmFnTm9kZXMgPSB0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5kcmFnZ2FibGVJdGVtcy5zb21lKCh4KSA9PiB4LnR5cGUgPT09IEVGRHJhZ2dhYmxlVHlwZS5OT0RFKTtcblxuICAgIGlmIChpc0RyYWdOb2Rlcykge1xuICAgICAgY29uc3QgbmVhcmVzdEludGVyc2VjdGlvbiA9IHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0LmZMaW5lQWxpZ25tZW50Py5maW5kTmVhcmVzdENvb3JkaW5hdGUoZGlmZmVyZW5jZSk7XG4gICAgICBpZiAobmVhcmVzdEludGVyc2VjdGlvbikge1xuICAgICAgICBkaWZmZXJlbmNlLnggPSBuZWFyZXN0SW50ZXJzZWN0aW9uLnhSZXN1bHQudmFsdWUgPyAoZGlmZmVyZW5jZS54IC0gbmVhcmVzdEludGVyc2VjdGlvbi54UmVzdWx0LmRpc3RhbmNlISkgOiBkaWZmZXJlbmNlLng7XG4gICAgICAgIGRpZmZlcmVuY2UueSA9IG5lYXJlc3RJbnRlcnNlY3Rpb24ueVJlc3VsdC52YWx1ZSA/IChkaWZmZXJlbmNlLnkgLSBuZWFyZXN0SW50ZXJzZWN0aW9uLnlSZXN1bHQuZGlzdGFuY2UhKSA6IGRpZmZlcmVuY2UueTtcbiAgICAgIH1cbiAgICAgIHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0LmRyYWdnYWJsZUl0ZW1zLmZvckVhY2goKHgpID0+IHtcbiAgICAgICAgeC5tb3ZlKGRpZmZlcmVuY2UpO1xuICAgICAgICB4LmNvbXBsZXRlPy4oKTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy5pc0Nvbm5lY3Rpb25VbmRlck5vZGVIYW5kbGVyLmhhbmRsZSgpO1xuICAgICAgdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuZkxpbmVBbGlnbm1lbnQ/LmNvbXBsZXRlKCk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -8,7 +8,7 @@ import { ConnectionDragHandler } from './connection.drag-handler';
8
8
  import { UpdateItemLayerRequest } from '../../domain';
9
9
  import { isNodeDragHandle } from '../../f-node';
10
10
  import * as i0 from "@angular/core";
11
- import * as i1 from "../../f-components-store";
11
+ import * as i1 from "../../f-storage";
12
12
  import * as i2 from "../f-draggable-data-context";
13
13
  import * as i3 from "../../domain";
14
14
  import * as i4 from "../../f-mediator";
@@ -98,4 +98,4 @@ export class NodePrepareDragSequence {
98
98
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: NodePrepareDragSequence, decorators: [{
99
99
  type: Injectable
100
100
  }], ctorParameters: () => [{ type: i1.FComponentsStore }, { type: i2.FDraggableDataContext }, { type: i3.GetOutgoingConnectionsHandler }, { type: i3.GetIncomingConnectionsHandler }, { type: i4.FFlowMediator }] });
101
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5wcmVwYXJlLWRyYWctc2VxdWVuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL25vZGUvbm9kZS5wcmVwYXJlLWRyYWctc2VxdWVuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUE0QyxLQUFLLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDL0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUkzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFHTCxzQkFBc0IsRUFDdkIsTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxFQUFhLGdCQUFnQixFQUFFLE1BQU0sY0FBYyxDQUFDOzs7Ozs7QUFLM0QsTUFBTSxPQUFPLHVCQUF1QjtJQUVsQyxJQUFZLFNBQVM7UUFDbkIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBUSxDQUFDLFNBQVMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsSUFBWSxRQUFRO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQU0sQ0FBQyxXQUFXLENBQUM7SUFDbEQsQ0FBQztJQUVELFlBQ1ksZ0JBQWtDLEVBQ2xDLHFCQUE0QyxFQUM1Qyw2QkFBNEQsRUFDNUQsNkJBQTRELEVBQzVELFNBQXdCO1FBSnhCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQUM1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QUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFDckYsQ0FBQztJQUVPLGlCQUFpQixDQUFDLElBQWU7UUFDdkMsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUN0RixDQUFDOzhHQXZHVSx1QkFBdUI7a0hBQXZCLHVCQUF1Qjs7MkZBQXZCLHVCQUF1QjtrQkFEbkMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElIYW5kbGVyLCBJUG9pbnRlckV2ZW50LCBJVHJhbnNmb3JtTW9kZWwsIFBvaW50IH0gZnJvbSAnQGZvYmxleC9jb3JlJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZDb21wb25lbnRzU3RvcmUgfSBmcm9tICcuLi8uLi9mLWNvbXBvbmVudHMtc3RvcmUnO1xuaW1wb3J0IHsgRkRyYWdnYWJsZURhdGFDb250ZXh0IH0gZnJvbSAnLi4vZi1kcmFnZ2FibGUtZGF0YS1jb250ZXh0JztcbmltcG9ydCB7IElEcmFnZ2FibGVJdGVtIH0gZnJvbSAnLi4vaS1kcmFnZ2FibGUtaXRlbSc7XG5pbXBvcnQgeyBFRkRyYWdnYWJsZVR5cGUgfSBmcm9tICcuLi9lLWYtZHJhZ2dhYmxlLXR5cGUnO1xuaW1wb3J0IHsgTm9kZURyYWdIYW5kbGVyIH0gZnJvbSAnLi9ub2RlLmRyYWctaGFuZGxlcic7XG5pbXBvcnQgeyBDb25uZWN0aW9uVGFyZ2V0RHJhZ0hhbmRsZXIgfSBmcm9tICcuL2Nvbm5lY3Rpb24tdGFyZ2V0LmRyYWctaGFuZGxlcic7XG5pbXBvcnQgeyBDb25uZWN0aW9uU291cmNlRHJhZ0hhbmRsZXIgfSBmcm9tICcuL2Nvbm5lY3Rpb24tc291cmNlLmRyYWctaGFuZGxlcic7XG5pbXBvcnQgeyBDb25uZWN0aW9uRHJhZ0hhbmRsZXIgfSBmcm9tICcuL2Nvbm5lY3Rpb24uZHJhZy1oYW5kbGVyJztcbmltcG9ydCB7XG4gIEdldEluY29taW5nQ29ubmVjdGlvbnNIYW5kbGVyLFxuICBHZXRPdXRnb2luZ0Nvbm5lY3Rpb25zSGFuZGxlcixcbiAgVXBkYXRlSXRlbUxheWVyUmVxdWVzdFxufSBmcm9tICcuLi8uLi9kb21haW4nO1xuaW1wb3J0IHsgRk5vZGVCYXNlLCBpc05vZGVEcmFnSGFuZGxlIH0gZnJvbSAnLi4vLi4vZi1ub2RlJztcbmltcG9ydCB7IEZDb25uZWN0b3JCYXNlIH0gZnJvbSAnLi4vLi4vZi1jb25uZWN0b3JzJztcbmltcG9ydCB7IEZGbG93TWVkaWF0b3IgfSBmcm9tICcuLi8uLi9mLW1lZGlhdG9yJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE5vZGVQcmVwYXJlRHJhZ1NlcXVlbmNlIGltcGxlbWVudHMgSUhhbmRsZXI8SVBvaW50ZXJFdmVudCwgdm9pZD4ge1xuXG4gIHByaXZhdGUgZ2V0IHRyYW5zZm9ybSgpOiBJVHJhbnNmb3JtTW9kZWwge1xuICAgIHJldHVybiB0aGlzLmZDb21wb25lbnRzU3RvcmUuZkNhbnZhcyEudHJhbnNmb3JtO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgZmxvd0hvc3QoKTogSFRNTEVsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLmZDb21wb25lbnRzU3RvcmUuZkZsb3chLmhvc3RFbGVtZW50O1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgICBwcml2YXRlIGZDb21wb25lbnRzU3RvcmU6IEZDb21wb25lbnRzU3RvcmUsXG4gICAgICBwcml2YXRlIGZEcmFnZ2FibGVEYXRhQ29udGV4dDogRkRyYWdnYWJsZURhdGFDb250ZXh0LFxuICAgICAgcHJpdmF0ZSBnZXRPdXRnb2luZ0Nvbm5lY3Rpb25zSGFuZGxlcjogR2V0T3V0Z29pbmdDb25uZWN0aW9uc0hhbmRsZXIsXG4gICAgICBwcml2YXRlIGdldEluY29taW5nQ29ubmVjdGlvbnNIYW5kbGVyOiBHZXRJbmNvbWluZ0Nvbm5lY3Rpb25zSGFuZGxlcixcbiAgICAgIHByaXZhdGUgZk1lZGlhdG9yOiBGRmxvd01lZGlhdG9yXG4gICkge1xuICB9XG5cbiAgcHVibGljIGhhbmRsZShldmVudDogSVBvaW50ZXJFdmVudCk6IHZvaWQge1xuXG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuZkNvbXBvbmVudHNTdG9yZS5maW5kTm9kZShldmVudC50YXJnZXRFbGVtZW50KTtcbiAgICBjb25zdCBwb2ludGVyUG9zaXRpb25JbkZsb3cgPSBQb2ludC5mcm9tUG9pbnQoZXZlbnQuZ2V0UG9zaXRpb24oKSkuZWxlbWVudFRyYW5zZm9ybSh0aGlzLmZsb3dIb3N0KTtcblxuICAgIGlmIChub2RlICYmICFub2RlLmZEcmFnZ2luZ0Rpc2FibGVkICYmICF0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5kcmFnZ2FibGVJdGVtcy5sZW5ndGgpIHtcbiAgICAgIGlmIChpc05vZGVEcmFnSGFuZGxlKGV2ZW50LnRhcmdldEVsZW1lbnQpKSB7XG4gICAgICAgIGlmICghdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuc2VsZWN0ZWRJdGVtcy5pbmNsdWRlcyhub2RlKSAmJiAhbm9kZS5mU2VsZWN0aW9uRGlzYWJsZWQpIHtcbiAgICAgICAgICB0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5zZWxlY3RlZEl0ZW1zLnB1c2gobm9kZSk7XG4gICAgICAgICAgbm9kZS5zZWxlY3QoKTtcbiAgICAgICAgICB0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5pc1NlbGVjdGVkQ2hhbmdlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5mTWVkaWF0b3Iuc2VuZDx2b2lkPihuZXcgVXBkYXRlSXRlbUxheWVyUmVxdWVzdChub2RlLCB0aGlzLmZDb21wb25lbnRzU3RvcmUuZkNhbnZhcyEuZk5vZGVzQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQpKTtcbiAgICAgICAgY29uc3QgaXRlbXNUb0RyYWc6IElEcmFnZ2FibGVJdGVtW10gPSB0aGlzLmNhbGN1bGF0ZURyYWdnYWJsZUNvbm5lY3Rpb25zQW5kTm9kZXMoKTtcblxuICAgICAgICBjb25zdCBkcmFnZ2VkTm9kZXMgPSBpdGVtc1RvRHJhZy5maWx0ZXIoKHgpID0+IHtcbiAgICAgICAgICByZXR1cm4geC50eXBlID09PSBFRkRyYWdnYWJsZVR5cGUuTk9ERTtcbiAgICAgICAgfSkubWFwKCh4KSA9PiAoeCBhcyBOb2RlRHJhZ0hhbmRsZXIpLmZOb2RlKTtcblxuICAgICAgICB0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5mTGluZUFsaWdubWVudD8uaW5pdGlhbGl6ZSh0aGlzLmZDb21wb25lbnRzU3RvcmUuZk5vZGVzLCBkcmFnZ2VkTm9kZXMpO1xuXG4gICAgICAgIHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0Lm9uUG9pbnRlckRvd25TY2FsZSA9IHRoaXMudHJhbnNmb3JtLnNjYWxlO1xuICAgICAgICB0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5vblBvaW50ZXJEb3duUG9zaXRpb24gPSBwb2ludGVyUG9zaXRpb25JbkZsb3cuZGl2KHRoaXMudHJhbnNmb3JtLnNjYWxlKTtcbiAgICAgICAgdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuZHJhZ2dhYmxlSXRlbXMgPSBpdGVtc1RvRHJhZztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNhbGN1bGF0ZURyYWdnYWJsZUNvbm5lY3Rpb25zQW5kTm9kZXMoKTogSURyYWdnYWJsZUl0ZW1bXSB7XG4gICAgbGV0IGl0ZW1zVG9EcmFnOiBJRHJhZ2dhYmxlSXRlbVtdID0gW107XG5cbiAgICBjb25zdCBzZWxlY3RlZE5vZGVzID0gdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuc2VsZWN0ZWRJdGVtcy5tYXAoKHgpID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmZDb21wb25lbnRzU3RvcmUuZmluZE5vZGUoeC5ob3N0RWxlbWVudCk7XG4gICAgfSkuZmlsdGVyKCh4KSA9PiAhIXgpIGFzIEZOb2RlQmFzZVtdO1xuXG4gICAgY29uc3Qgbm9kZURyYWdIYW5kbGVycyA9IHNlbGVjdGVkTm9kZXMubWFwKCh4KSA9PiBuZXcgTm9kZURyYWdIYW5kbGVyKHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0LCB4KSk7XG4gICAgaXRlbXNUb0RyYWcgPSBub2RlRHJhZ0hhbmRsZXJzO1xuXG4gICAgY29uc3QgYWxsT3V0cHV0SWRzOiBhbnlbXSA9IHNlbGVjdGVkTm9kZXMucmVkdWNlKChyZXN1bHQ6IEZDb25uZWN0b3JCYXNlW10sIHg6IEZOb2RlQmFzZSkgPT4ge1xuICAgICAgcmV0dXJuIHJlc3VsdC5jb25jYXQodGhpcy5nZXRPdXRwdXRzRm9yTm9kZSh4KSk7XG4gICAgfSwgW10pLm1hcCgoeCkgPT4geC5pZCk7XG5cbiAgICBjb25zdCBhbGxJbnB1dElkczogYW55W10gPSBzZWxlY3RlZE5vZGVzLnJlZHVjZSgocmVzdWx0OiBGQ29ubmVjdG9yQmFzZVtdLCB4OiBGTm9kZUJhc2UpID0+IHtcbiAgICAgIHJldHVybiByZXN1bHQuY29uY2F0KHRoaXMuZ2V0SW5wdXRzRm9yTm9kZSh4KSk7XG4gICAgfSwgW10pLm1hcCgoeCkgPT4geC5pZCk7XG5cbiAgICBub2RlRHJhZ0hhbmRsZXJzLmZvckVhY2goKG5vZGVIYW5kbGVyKSA9PiB7XG4gICAgICBjb25zdCBvdXRwdXRDb25uZWN0aW9ucyA9IHRoaXMuZ2V0T3V0Z29pbmdDb25uZWN0aW9uc0hhbmRsZXIuaGFuZGxlKHRoaXMuZ2V0T3V0cHV0c0Zvck5vZGUobm9kZUhhbmRsZXIuZk5vZGUpKTtcbiAgICAgIG91dHB1dENvbm5lY3Rpb25zLmZvckVhY2goKGMpID0+IHtcbiAgICAgICAgaWYgKGFsbElucHV0SWRzLmluY2x1ZGVzKGMuZklucHV0SWQpKSB7XG4gICAgICAgICAgaXRlbXNUb0RyYWcucHVzaChcbiAgICAgICAgICAgICAgbmV3IENvbm5lY3Rpb25EcmFnSGFuZGxlcih0aGlzLmZNZWRpYXRvciwgYylcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGl0ZW1zVG9EcmFnLnB1c2goXG4gICAgICAgICAgICAgIG5ldyBDb25uZWN0aW9uU291cmNlRHJhZ0hhbmRsZXIodGhpcy5mTWVkaWF0b3IsIGMpXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICBjb25zdCBpbnB1dENvbm5lY3Rpb25zID0gdGhpcy5nZXRJbmNvbWluZ0Nvbm5lY3Rpb25zSGFuZGxlci5oYW5kbGUodGhpcy5nZXRJbnB1dHNGb3JOb2RlKG5vZGVIYW5kbGVyLmZOb2RlKSk7XG4gICAgICBpbnB1dENvbm5lY3Rpb25zLmZvckVhY2goKGMpID0+IHtcbiAgICAgICAgaWYgKGFsbE91dHB1dElkcy5pbmNsdWRlcyhjLmZPdXRwdXRJZCkpIHtcbiAgICAgICAgICBjb25zdCBpbmRleCA9IGl0ZW1zVG9EcmFnLmZpbmRJbmRleCgoeCkgPT4geC50eXBlID09PSBFRkRyYWdnYWJsZVR5cGUuQ09OTkVDVElPTiAmJiAoeCBhcyBDb25uZWN0aW9uRHJhZ0hhbmRsZXIpLmNvbm5lY3Rpb24uZkNvbm5lY3Rpb25JZCA9PT0gYy5mQ29ubmVjdGlvbklkKTtcbiAgICAgICAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgICBpdGVtc1RvRHJhZy5wdXNoKFxuICAgICAgICAgICAgICAgIG5ldyBDb25uZWN0aW9uRHJhZ0hhbmRsZXIodGhpcy5mTWVkaWF0b3IsIGMpXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpdGVtc1RvRHJhZy5wdXNoKFxuICAgICAgICAgICAgICBuZXcgQ29ubmVjdGlvblRhcmdldERyYWdIYW5kbGVyKHRoaXMuZk1lZGlhdG9yLCBjKVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIHJldHVybiBpdGVtc1RvRHJhZztcbiAgfVxuXG4gIHByaXZhdGUgZ2V0SW5wdXRzRm9yTm9kZShub2RlOiBGTm9kZUJhc2UpOiBGQ29ubmVjdG9yQmFzZVtdIHtcbiAgICByZXR1cm4gdGhpcy5mQ29tcG9uZW50c1N0b3JlLmZJbnB1dHMuZmlsdGVyKCh4KSA9PiBub2RlLmlzQ29udGFpbnMoeC5ob3N0RWxlbWVudCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRPdXRwdXRzRm9yTm9kZShub2RlOiBGTm9kZUJhc2UpOiBGQ29ubmVjdG9yQmFzZVtdIHtcbiAgICByZXR1cm4gdGhpcy5mQ29tcG9uZW50c1N0b3JlLmZPdXRwdXRzLmZpbHRlcigoeCkgPT4gbm9kZS5pc0NvbnRhaW5zKHguaG9zdEVsZW1lbnQpKTtcbiAgfVxufVxuIl19
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZS5wcmVwYXJlLWRyYWctc2VxdWVuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL25vZGUvbm9kZS5wcmVwYXJlLWRyYWctc2VxdWVuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUE0QyxLQUFLLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDL0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUkzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFHTCxzQkFBc0IsRUFDdkIsTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxFQUFhLGdCQUFnQixFQUFFLE1BQU0sY0FBYyxDQUFDOzs7Ozs7QUFLM0QsTUFBTSxPQUFPLHVCQUF1QjtJQUVsQyxJQUFZLFNBQVM7UUFDbkIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBUSxDQUFDLFNBQVMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsSUFBWSxRQUFRO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQU0sQ0FBQyxXQUFXLENBQUM7SUFDbEQsQ0FBQztJQUVELFlBQ1ksZ0JBQWtDLEVBQ2xDLHFCQUE0QyxFQUM1Qyw2QkFBNEQsRUFDNUQsNkJBQTRELEVBQzVELFNBQXdCO1FBSnhCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQUM1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QUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFDckYsQ0FBQztJQUVPLGlCQUFpQixDQUFDLElBQWU7UUFDdkMsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUN0RixDQUFDOzhHQXZHVSx1QkFBdUI7a0hBQXZCLHVCQUF1Qjs7MkZBQXZCLHVCQUF1QjtrQkFEbkMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElIYW5kbGVyLCBJUG9pbnRlckV2ZW50LCBJVHJhbnNmb3JtTW9kZWwsIFBvaW50IH0gZnJvbSAnQGZvYmxleC9jb3JlJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZDb21wb25lbnRzU3RvcmUgfSBmcm9tICcuLi8uLi9mLXN0b3JhZ2UnO1xuaW1wb3J0IHsgRkRyYWdnYWJsZURhdGFDb250ZXh0IH0gZnJvbSAnLi4vZi1kcmFnZ2FibGUtZGF0YS1jb250ZXh0JztcbmltcG9ydCB7IElEcmFnZ2FibGVJdGVtIH0gZnJvbSAnLi4vaS1kcmFnZ2FibGUtaXRlbSc7XG5pbXBvcnQgeyBFRkRyYWdnYWJsZVR5cGUgfSBmcm9tICcuLi9lLWYtZHJhZ2dhYmxlLXR5cGUnO1xuaW1wb3J0IHsgTm9kZURyYWdIYW5kbGVyIH0gZnJvbSAnLi9ub2RlLmRyYWctaGFuZGxlcic7XG5pbXBvcnQgeyBDb25uZWN0aW9uVGFyZ2V0RHJhZ0hhbmRsZXIgfSBmcm9tICcuL2Nvbm5lY3Rpb24tdGFyZ2V0LmRyYWctaGFuZGxlcic7XG5pbXBvcnQgeyBDb25uZWN0aW9uU291cmNlRHJhZ0hhbmRsZXIgfSBmcm9tICcuL2Nvbm5lY3Rpb24tc291cmNlLmRyYWctaGFuZGxlcic7XG5pbXBvcnQgeyBDb25uZWN0aW9uRHJhZ0hhbmRsZXIgfSBmcm9tICcuL2Nvbm5lY3Rpb24uZHJhZy1oYW5kbGVyJztcbmltcG9ydCB7XG4gIEdldEluY29taW5nQ29ubmVjdGlvbnNIYW5kbGVyLFxuICBHZXRPdXRnb2luZ0Nvbm5lY3Rpb25zSGFuZGxlcixcbiAgVXBkYXRlSXRlbUxheWVyUmVxdWVzdFxufSBmcm9tICcuLi8uLi9kb21haW4nO1xuaW1wb3J0IHsgRk5vZGVCYXNlLCBpc05vZGVEcmFnSGFuZGxlIH0gZnJvbSAnLi4vLi4vZi1ub2RlJztcbmltcG9ydCB7IEZDb25uZWN0b3JCYXNlIH0gZnJvbSAnLi4vLi4vZi1jb25uZWN0b3JzJztcbmltcG9ydCB7IEZGbG93TWVkaWF0b3IgfSBmcm9tICcuLi8uLi9mLW1lZGlhdG9yJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE5vZGVQcmVwYXJlRHJhZ1NlcXVlbmNlIGltcGxlbWVudHMgSUhhbmRsZXI8SVBvaW50ZXJFdmVudCwgdm9pZD4ge1xuXG4gIHByaXZhdGUgZ2V0IHRyYW5zZm9ybSgpOiBJVHJhbnNmb3JtTW9kZWwge1xuICAgIHJldHVybiB0aGlzLmZDb21wb25lbnRzU3RvcmUuZkNhbnZhcyEudHJhbnNmb3JtO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgZmxvd0hvc3QoKTogSFRNTEVsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLmZDb21wb25lbnRzU3RvcmUuZkZsb3chLmhvc3RFbGVtZW50O1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgICBwcml2YXRlIGZDb21wb25lbnRzU3RvcmU6IEZDb21wb25lbnRzU3RvcmUsXG4gICAgICBwcml2YXRlIGZEcmFnZ2FibGVEYXRhQ29udGV4dDogRkRyYWdnYWJsZURhdGFDb250ZXh0LFxuICAgICAgcHJpdmF0ZSBnZXRPdXRnb2luZ0Nvbm5lY3Rpb25zSGFuZGxlcjogR2V0T3V0Z29pbmdDb25uZWN0aW9uc0hhbmRsZXIsXG4gICAgICBwcml2YXRlIGdldEluY29taW5nQ29ubmVjdGlvbnNIYW5kbGVyOiBHZXRJbmNvbWluZ0Nvbm5lY3Rpb25zSGFuZGxlcixcbiAgICAgIHByaXZhdGUgZk1lZGlhdG9yOiBGRmxvd01lZGlhdG9yXG4gICkge1xuICB9XG5cbiAgcHVibGljIGhhbmRsZShldmVudDogSVBvaW50ZXJFdmVudCk6IHZvaWQge1xuXG4gICAgY29uc3Qgbm9kZSA9IHRoaXMuZkNvbXBvbmVudHNTdG9yZS5maW5kTm9kZShldmVudC50YXJnZXRFbGVtZW50KTtcbiAgICBjb25zdCBwb2ludGVyUG9zaXRpb25JbkZsb3cgPSBQb2ludC5mcm9tUG9pbnQoZXZlbnQuZ2V0UG9zaXRpb24oKSkuZWxlbWVudFRyYW5zZm9ybSh0aGlzLmZsb3dIb3N0KTtcblxuICAgIGlmIChub2RlICYmICFub2RlLmZEcmFnZ2luZ0Rpc2FibGVkICYmICF0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5kcmFnZ2FibGVJdGVtcy5sZW5ndGgpIHtcbiAgICAgIGlmIChpc05vZGVEcmFnSGFuZGxlKGV2ZW50LnRhcmdldEVsZW1lbnQpKSB7XG4gICAgICAgIGlmICghdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuc2VsZWN0ZWRJdGVtcy5pbmNsdWRlcyhub2RlKSAmJiAhbm9kZS5mU2VsZWN0aW9uRGlzYWJsZWQpIHtcbiAgICAgICAgICB0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5zZWxlY3RlZEl0ZW1zLnB1c2gobm9kZSk7XG4gICAgICAgICAgbm9kZS5zZWxlY3QoKTtcbiAgICAgICAgICB0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5pc1NlbGVjdGVkQ2hhbmdlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5mTWVkaWF0b3Iuc2VuZDx2b2lkPihuZXcgVXBkYXRlSXRlbUxheWVyUmVxdWVzdChub2RlLCB0aGlzLmZDb21wb25lbnRzU3RvcmUuZkNhbnZhcyEuZk5vZGVzQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQpKTtcbiAgICAgICAgY29uc3QgaXRlbXNUb0RyYWc6IElEcmFnZ2FibGVJdGVtW10gPSB0aGlzLmNhbGN1bGF0ZURyYWdnYWJsZUNvbm5lY3Rpb25zQW5kTm9kZXMoKTtcblxuICAgICAgICBjb25zdCBkcmFnZ2VkTm9kZXMgPSBpdGVtc1RvRHJhZy5maWx0ZXIoKHgpID0+IHtcbiAgICAgICAgICByZXR1cm4geC50eXBlID09PSBFRkRyYWdnYWJsZVR5cGUuTk9ERTtcbiAgICAgICAgfSkubWFwKCh4KSA9PiAoeCBhcyBOb2RlRHJhZ0hhbmRsZXIpLmZOb2RlKTtcblxuICAgICAgICB0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5mTGluZUFsaWdubWVudD8uaW5pdGlhbGl6ZSh0aGlzLmZDb21wb25lbnRzU3RvcmUuZk5vZGVzLCBkcmFnZ2VkTm9kZXMpO1xuXG4gICAgICAgIHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0Lm9uUG9pbnRlckRvd25TY2FsZSA9IHRoaXMudHJhbnNmb3JtLnNjYWxlO1xuICAgICAgICB0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5vblBvaW50ZXJEb3duUG9zaXRpb24gPSBwb2ludGVyUG9zaXRpb25JbkZsb3cuZGl2KHRoaXMudHJhbnNmb3JtLnNjYWxlKTtcbiAgICAgICAgdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuZHJhZ2dhYmxlSXRlbXMgPSBpdGVtc1RvRHJhZztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNhbGN1bGF0ZURyYWdnYWJsZUNvbm5lY3Rpb25zQW5kTm9kZXMoKTogSURyYWdnYWJsZUl0ZW1bXSB7XG4gICAgbGV0IGl0ZW1zVG9EcmFnOiBJRHJhZ2dhYmxlSXRlbVtdID0gW107XG5cbiAgICBjb25zdCBzZWxlY3RlZE5vZGVzID0gdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuc2VsZWN0ZWRJdGVtcy5tYXAoKHgpID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmZDb21wb25lbnRzU3RvcmUuZmluZE5vZGUoeC5ob3N0RWxlbWVudCk7XG4gICAgfSkuZmlsdGVyKCh4KSA9PiAhIXgpIGFzIEZOb2RlQmFzZVtdO1xuXG4gICAgY29uc3Qgbm9kZURyYWdIYW5kbGVycyA9IHNlbGVjdGVkTm9kZXMubWFwKCh4KSA9PiBuZXcgTm9kZURyYWdIYW5kbGVyKHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0LCB4KSk7XG4gICAgaXRlbXNUb0RyYWcgPSBub2RlRHJhZ0hhbmRsZXJzO1xuXG4gICAgY29uc3QgYWxsT3V0cHV0SWRzOiBhbnlbXSA9IHNlbGVjdGVkTm9kZXMucmVkdWNlKChyZXN1bHQ6IEZDb25uZWN0b3JCYXNlW10sIHg6IEZOb2RlQmFzZSkgPT4ge1xuICAgICAgcmV0dXJuIHJlc3VsdC5jb25jYXQodGhpcy5nZXRPdXRwdXRzRm9yTm9kZSh4KSk7XG4gICAgfSwgW10pLm1hcCgoeCkgPT4geC5pZCk7XG5cbiAgICBjb25zdCBhbGxJbnB1dElkczogYW55W10gPSBzZWxlY3RlZE5vZGVzLnJlZHVjZSgocmVzdWx0OiBGQ29ubmVjdG9yQmFzZVtdLCB4OiBGTm9kZUJhc2UpID0+IHtcbiAgICAgIHJldHVybiByZXN1bHQuY29uY2F0KHRoaXMuZ2V0SW5wdXRzRm9yTm9kZSh4KSk7XG4gICAgfSwgW10pLm1hcCgoeCkgPT4geC5pZCk7XG5cbiAgICBub2RlRHJhZ0hhbmRsZXJzLmZvckVhY2goKG5vZGVIYW5kbGVyKSA9PiB7XG4gICAgICBjb25zdCBvdXRwdXRDb25uZWN0aW9ucyA9IHRoaXMuZ2V0T3V0Z29pbmdDb25uZWN0aW9uc0hhbmRsZXIuaGFuZGxlKHRoaXMuZ2V0T3V0cHV0c0Zvck5vZGUobm9kZUhhbmRsZXIuZk5vZGUpKTtcbiAgICAgIG91dHB1dENvbm5lY3Rpb25zLmZvckVhY2goKGMpID0+IHtcbiAgICAgICAgaWYgKGFsbElucHV0SWRzLmluY2x1ZGVzKGMuZklucHV0SWQpKSB7XG4gICAgICAgICAgaXRlbXNUb0RyYWcucHVzaChcbiAgICAgICAgICAgICAgbmV3IENvbm5lY3Rpb25EcmFnSGFuZGxlcih0aGlzLmZNZWRpYXRvciwgYylcbiAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGl0ZW1zVG9EcmFnLnB1c2goXG4gICAgICAgICAgICAgIG5ldyBDb25uZWN0aW9uU291cmNlRHJhZ0hhbmRsZXIodGhpcy5mTWVkaWF0b3IsIGMpXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICBjb25zdCBpbnB1dENvbm5lY3Rpb25zID0gdGhpcy5nZXRJbmNvbWluZ0Nvbm5lY3Rpb25zSGFuZGxlci5oYW5kbGUodGhpcy5nZXRJbnB1dHNGb3JOb2RlKG5vZGVIYW5kbGVyLmZOb2RlKSk7XG4gICAgICBpbnB1dENvbm5lY3Rpb25zLmZvckVhY2goKGMpID0+IHtcbiAgICAgICAgaWYgKGFsbE91dHB1dElkcy5pbmNsdWRlcyhjLmZPdXRwdXRJZCkpIHtcbiAgICAgICAgICBjb25zdCBpbmRleCA9IGl0ZW1zVG9EcmFnLmZpbmRJbmRleCgoeCkgPT4geC50eXBlID09PSBFRkRyYWdnYWJsZVR5cGUuQ09OTkVDVElPTiAmJiAoeCBhcyBDb25uZWN0aW9uRHJhZ0hhbmRsZXIpLmNvbm5lY3Rpb24uZkNvbm5lY3Rpb25JZCA9PT0gYy5mQ29ubmVjdGlvbklkKTtcbiAgICAgICAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgICBpdGVtc1RvRHJhZy5wdXNoKFxuICAgICAgICAgICAgICAgIG5ldyBDb25uZWN0aW9uRHJhZ0hhbmRsZXIodGhpcy5mTWVkaWF0b3IsIGMpXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpdGVtc1RvRHJhZy5wdXNoKFxuICAgICAgICAgICAgICBuZXcgQ29ubmVjdGlvblRhcmdldERyYWdIYW5kbGVyKHRoaXMuZk1lZGlhdG9yLCBjKVxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIHJldHVybiBpdGVtc1RvRHJhZztcbiAgfVxuXG4gIHByaXZhdGUgZ2V0SW5wdXRzRm9yTm9kZShub2RlOiBGTm9kZUJhc2UpOiBGQ29ubmVjdG9yQmFzZVtdIHtcbiAgICByZXR1cm4gdGhpcy5mQ29tcG9uZW50c1N0b3JlLmZJbnB1dHMuZmlsdGVyKCh4KSA9PiBub2RlLmlzQ29udGFpbnMoeC5ob3N0RWxlbWVudCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRPdXRwdXRzRm9yTm9kZShub2RlOiBGTm9kZUJhc2UpOiBGQ29ubmVjdG9yQmFzZVtdIHtcbiAgICByZXR1cm4gdGhpcy5mQ29tcG9uZW50c1N0b3JlLmZPdXRwdXRzLmZpbHRlcigoeCkgPT4gbm9kZS5pc0NvbnRhaW5zKHguaG9zdEVsZW1lbnQpKTtcbiAgfVxufVxuIl19
@@ -2,7 +2,7 @@ import { Injectable } from '@angular/core';
2
2
  import { RectExtensions } from '@foblex/core';
3
3
  import { GetElementRectInFlowRequest } from '../../../domain';
4
4
  import * as i0 from "@angular/core";
5
- import * as i1 from "../../../f-components-store";
5
+ import * as i1 from "../../../f-storage";
6
6
  import * as i2 from "../../f-draggable-data-context";
7
7
  import * as i3 from "../../../f-mediator";
8
8
  export class GetCanBeSelectedItemsHandler {
@@ -52,4 +52,4 @@ export class GetCanBeSelectedItemsHandler {
52
52
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: GetCanBeSelectedItemsHandler, decorators: [{
53
53
  type: Injectable
54
54
  }], ctorParameters: () => [{ type: i1.FComponentsStore }, { type: i2.FDraggableDataContext }, { type: i3.FFlowMediator }] });
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWNhbi1iZS1zZWxlY3RlZC1pdGVtcy5oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9zZWxlY3Rpb24tYXJlYS9nZXQtY2FuLWJlLXNlbGVjdGVkLWl0ZW1zL2dldC1jYW4tYmUtc2VsZWN0ZWQtaXRlbXMuaGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBb0MsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBT2hGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7OztBQUc5RCxNQUFNLE9BQU8sNEJBQTRCO0lBRXZDLElBQVksTUFBTTtRQUNoQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUM7SUFDdEMsQ0FBQztJQUVELElBQVksWUFBWTtRQUN0QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUM7SUFDNUMsQ0FBQztJQUVELElBQVksU0FBUztRQUNuQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFRLENBQUMsU0FBUyxDQUFDO0lBQ2xELENBQUM7SUFFRCxZQUNZLGdCQUFrQyxFQUNsQyxxQkFBNEMsRUFDNUMsU0FBd0I7UUFGeEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQywwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBQzVDLGNBQVMsR0FBVCxTQUFTLENBQWU7SUFFcEMsQ0FBQztJQUVNLE1BQU07UUFDWCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUUzQyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztRQUVqRCxNQUFNLE1BQU0sR0FBRyxDQUFFLEdBQUcsU0FBUyxFQUFFLEdBQUcsU0FBUyxDQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDekQsT0FBTyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN2RSxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFTyxpQkFBaUI7UUFDdkIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUVoRSxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBUSxJQUFJLDJCQUEyQixDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1lBQ3hGLE9BQU87Z0JBQ0wsT0FBTyxFQUFFLENBQUM7Z0JBQ1YsSUFBSSxFQUFFLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDO2FBQ3RELENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyx1QkFBdUI7UUFDN0IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUN0RSxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBUSxJQUFJLDJCQUEyQixDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO1lBQzVGLE9BQU87Z0JBQ0wsT0FBTyxFQUFFLENBQUM7Z0JBQ1YsSUFBSSxFQUFFLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDO2FBQ3RELENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBcERVLDRCQUE0QjtrSEFBNUIsNEJBQTRCOzsyRkFBNUIsNEJBQTRCO2tCQUR4QyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSUhhbmRsZXIsIElSZWN0LCBJVHJhbnNmb3JtTW9kZWwsIFJlY3RFeHRlbnNpb25zIH0gZnJvbSAnQGZvYmxleC9jb3JlJztcbmltcG9ydCB7IElTZWxlY3RhYmxlV2l0aFJlY3QgfSBmcm9tICcuL2ktc2VsZWN0YWJsZS13aXRoLXJlY3QnO1xuaW1wb3J0IHsgRkNvbXBvbmVudHNTdG9yZSB9IGZyb20gJy4uLy4uLy4uL2YtY29tcG9uZW50cy1zdG9yZSc7XG5pbXBvcnQgeyBGRHJhZ2dhYmxlRGF0YUNvbnRleHQgfSBmcm9tICcuLi8uLi9mLWRyYWdnYWJsZS1kYXRhLWNvbnRleHQnO1xuaW1wb3J0IHsgRkNvbm5lY3Rpb25CYXNlLCBJU2VsZWN0YWJsZSB9IGZyb20gJy4uLy4uLy4uL2YtY29ubmVjdGlvbic7XG5pbXBvcnQgeyBGTm9kZUJhc2UgfSBmcm9tICcuLi8uLi8uLi9mLW5vZGUnO1xuaW1wb3J0IHsgRkZsb3dNZWRpYXRvciB9IGZyb20gJy4uLy4uLy4uL2YtbWVkaWF0b3InO1xuaW1wb3J0IHsgR2V0RWxlbWVudFJlY3RJbkZsb3dSZXF1ZXN0IH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEdldENhbkJlU2VsZWN0ZWRJdGVtc0hhbmRsZXIgaW1wbGVtZW50cyBJSGFuZGxlcjx2b2lkLCBJU2VsZWN0YWJsZVdpdGhSZWN0W10+IHtcblxuICBwcml2YXRlIGdldCBmTm9kZXMoKTogRk5vZGVCYXNlW10ge1xuICAgIHJldHVybiB0aGlzLmZDb21wb25lbnRzU3RvcmUuZk5vZGVzO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgZkNvbm5lY3Rpb25zKCk6IEZDb25uZWN0aW9uQmFzZVtdIHtcbiAgICByZXR1cm4gdGhpcy5mQ29tcG9uZW50c1N0b3JlLmZDb25uZWN0aW9ucztcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IHRyYW5zZm9ybSgpOiBJVHJhbnNmb3JtTW9kZWwge1xuICAgIHJldHVybiB0aGlzLmZDb21wb25lbnRzU3RvcmUuZkNhbnZhcyEudHJhbnNmb3JtO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgICBwcml2YXRlIGZDb21wb25lbnRzU3RvcmU6IEZDb21wb25lbnRzU3RvcmUsXG4gICAgICBwcml2YXRlIGZEcmFnZ2FibGVEYXRhQ29udGV4dDogRkRyYWdnYWJsZURhdGFDb250ZXh0LFxuICAgICAgcHJpdmF0ZSBmTWVkaWF0b3I6IEZGbG93TWVkaWF0b3IsXG4gICkge1xuICB9XG5cbiAgcHVibGljIGhhbmRsZSgpOiBJU2VsZWN0YWJsZVdpdGhSZWN0W10ge1xuICAgIGNvbnN0IG5vZGVSZWN0cyA9IHRoaXMuZ2V0Tm9kZXNXaXRoUmVjdHMoKTtcblxuICAgIGNvbnN0IGxpbmVSZWN0cyA9IHRoaXMuZ2V0Q29ubmVjdGlvbnNXaXRoUmVjdHMoKTtcblxuICAgIGNvbnN0IHJlc3VsdCA9IFsgLi4ubm9kZVJlY3RzLCAuLi5saW5lUmVjdHMgXS5maWx0ZXIoKHgpID0+IHtcbiAgICAgIHJldHVybiAhdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuc2VsZWN0ZWRJdGVtcy5pbmNsdWRlcyh4LmVsZW1lbnQpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Tm9kZXNXaXRoUmVjdHMoKTogeyBlbGVtZW50OiBJU2VsZWN0YWJsZSwgcmVjdDogSVJlY3QgfVtdIHtcbiAgICByZXR1cm4gdGhpcy5mTm9kZXMuZmlsdGVyKCh4KSA9PiAheC5mU2VsZWN0aW9uRGlzYWJsZWQpLm1hcCgoeCkgPT4ge1xuXG4gICAgICBjb25zdCByZWN0ID0gdGhpcy5mTWVkaWF0b3Iuc2VuZDxJUmVjdD4obmV3IEdldEVsZW1lbnRSZWN0SW5GbG93UmVxdWVzdCh4Lmhvc3RFbGVtZW50KSk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBlbGVtZW50OiB4LFxuICAgICAgICByZWN0OiBSZWN0RXh0ZW5zaW9ucy5tdWx0KHJlY3QsIHRoaXMudHJhbnNmb3JtLnNjYWxlKVxuICAgICAgfTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q29ubmVjdGlvbnNXaXRoUmVjdHMoKTogeyBlbGVtZW50OiBJU2VsZWN0YWJsZSwgcmVjdDogSVJlY3QgfVtdIHtcbiAgICByZXR1cm4gdGhpcy5mQ29ubmVjdGlvbnMuZmlsdGVyKCh4KSA9PiAheC5mU2VsZWN0aW9uRGlzYWJsZWQpLm1hcCgoeCkgPT4ge1xuICAgICAgY29uc3QgcmVjdCA9IHRoaXMuZk1lZGlhdG9yLnNlbmQ8SVJlY3Q+KG5ldyBHZXRFbGVtZW50UmVjdEluRmxvd1JlcXVlc3QoeC5ib3VuZGluZ0VsZW1lbnQpKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGVsZW1lbnQ6IHgsXG4gICAgICAgIHJlY3Q6IFJlY3RFeHRlbnNpb25zLm11bHQocmVjdCwgdGhpcy50cmFuc2Zvcm0uc2NhbGUpXG4gICAgICB9O1xuICAgIH0pO1xuICB9XG59XG4iXX0=
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LWNhbi1iZS1zZWxlY3RlZC1pdGVtcy5oYW5kbGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9zZWxlY3Rpb24tYXJlYS9nZXQtY2FuLWJlLXNlbGVjdGVkLWl0ZW1zL2dldC1jYW4tYmUtc2VsZWN0ZWQtaXRlbXMuaGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBb0MsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBT2hGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7OztBQUc5RCxNQUFNLE9BQU8sNEJBQTRCO0lBRXZDLElBQVksTUFBTTtRQUNoQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUM7SUFDdEMsQ0FBQztJQUVELElBQVksWUFBWTtRQUN0QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUM7SUFDNUMsQ0FBQztJQUVELElBQVksU0FBUztRQUNuQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFRLENBQUMsU0FBUyxDQUFDO0lBQ2xELENBQUM7SUFFRCxZQUNZLGdCQUFrQyxFQUNsQyxxQkFBNEMsRUFDNUMsU0FBd0I7UUFGeEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQywwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBQzVDLGNBQVMsR0FBVCxTQUFTLENBQWU7SUFFcEMsQ0FBQztJQUVNLE1BQU07UUFDWCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUUzQyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztRQUVqRCxNQUFNLE1BQU0sR0FBRyxDQUFFLEdBQUcsU0FBUyxFQUFFLEdBQUcsU0FBUyxDQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDekQsT0FBTyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN2RSxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFTyxpQkFBaUI7UUFDdkIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUVoRSxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBUSxJQUFJLDJCQUEyQixDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1lBQ3hGLE9BQU87Z0JBQ0wsT0FBTyxFQUFFLENBQUM7Z0JBQ1YsSUFBSSxFQUFFLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDO2FBQ3RELENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyx1QkFBdUI7UUFDN0IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUN0RSxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBUSxJQUFJLDJCQUEyQixDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO1lBQzVGLE9BQU87Z0JBQ0wsT0FBTyxFQUFFLENBQUM7Z0JBQ1YsSUFBSSxFQUFFLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDO2FBQ3RELENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBcERVLDRCQUE0QjtrSEFBNUIsNEJBQTRCOzsyRkFBNUIsNEJBQTRCO2tCQUR4QyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSUhhbmRsZXIsIElSZWN0LCBJVHJhbnNmb3JtTW9kZWwsIFJlY3RFeHRlbnNpb25zIH0gZnJvbSAnQGZvYmxleC9jb3JlJztcbmltcG9ydCB7IElTZWxlY3RhYmxlV2l0aFJlY3QgfSBmcm9tICcuL2ktc2VsZWN0YWJsZS13aXRoLXJlY3QnO1xuaW1wb3J0IHsgRkNvbXBvbmVudHNTdG9yZSB9IGZyb20gJy4uLy4uLy4uL2Ytc3RvcmFnZSc7XG5pbXBvcnQgeyBGRHJhZ2dhYmxlRGF0YUNvbnRleHQgfSBmcm9tICcuLi8uLi9mLWRyYWdnYWJsZS1kYXRhLWNvbnRleHQnO1xuaW1wb3J0IHsgRkNvbm5lY3Rpb25CYXNlLCBJU2VsZWN0YWJsZSB9IGZyb20gJy4uLy4uLy4uL2YtY29ubmVjdGlvbic7XG5pbXBvcnQgeyBGTm9kZUJhc2UgfSBmcm9tICcuLi8uLi8uLi9mLW5vZGUnO1xuaW1wb3J0IHsgRkZsb3dNZWRpYXRvciB9IGZyb20gJy4uLy4uLy4uL2YtbWVkaWF0b3InO1xuaW1wb3J0IHsgR2V0RWxlbWVudFJlY3RJbkZsb3dSZXF1ZXN0IH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEdldENhbkJlU2VsZWN0ZWRJdGVtc0hhbmRsZXIgaW1wbGVtZW50cyBJSGFuZGxlcjx2b2lkLCBJU2VsZWN0YWJsZVdpdGhSZWN0W10+IHtcblxuICBwcml2YXRlIGdldCBmTm9kZXMoKTogRk5vZGVCYXNlW10ge1xuICAgIHJldHVybiB0aGlzLmZDb21wb25lbnRzU3RvcmUuZk5vZGVzO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgZkNvbm5lY3Rpb25zKCk6IEZDb25uZWN0aW9uQmFzZVtdIHtcbiAgICByZXR1cm4gdGhpcy5mQ29tcG9uZW50c1N0b3JlLmZDb25uZWN0aW9ucztcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IHRyYW5zZm9ybSgpOiBJVHJhbnNmb3JtTW9kZWwge1xuICAgIHJldHVybiB0aGlzLmZDb21wb25lbnRzU3RvcmUuZkNhbnZhcyEudHJhbnNmb3JtO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgICBwcml2YXRlIGZDb21wb25lbnRzU3RvcmU6IEZDb21wb25lbnRzU3RvcmUsXG4gICAgICBwcml2YXRlIGZEcmFnZ2FibGVEYXRhQ29udGV4dDogRkRyYWdnYWJsZURhdGFDb250ZXh0LFxuICAgICAgcHJpdmF0ZSBmTWVkaWF0b3I6IEZGbG93TWVkaWF0b3IsXG4gICkge1xuICB9XG5cbiAgcHVibGljIGhhbmRsZSgpOiBJU2VsZWN0YWJsZVdpdGhSZWN0W10ge1xuICAgIGNvbnN0IG5vZGVSZWN0cyA9IHRoaXMuZ2V0Tm9kZXNXaXRoUmVjdHMoKTtcblxuICAgIGNvbnN0IGxpbmVSZWN0cyA9IHRoaXMuZ2V0Q29ubmVjdGlvbnNXaXRoUmVjdHMoKTtcblxuICAgIGNvbnN0IHJlc3VsdCA9IFsgLi4ubm9kZVJlY3RzLCAuLi5saW5lUmVjdHMgXS5maWx0ZXIoKHgpID0+IHtcbiAgICAgIHJldHVybiAhdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuc2VsZWN0ZWRJdGVtcy5pbmNsdWRlcyh4LmVsZW1lbnQpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Tm9kZXNXaXRoUmVjdHMoKTogeyBlbGVtZW50OiBJU2VsZWN0YWJsZSwgcmVjdDogSVJlY3QgfVtdIHtcbiAgICByZXR1cm4gdGhpcy5mTm9kZXMuZmlsdGVyKCh4KSA9PiAheC5mU2VsZWN0aW9uRGlzYWJsZWQpLm1hcCgoeCkgPT4ge1xuXG4gICAgICBjb25zdCByZWN0ID0gdGhpcy5mTWVkaWF0b3Iuc2VuZDxJUmVjdD4obmV3IEdldEVsZW1lbnRSZWN0SW5GbG93UmVxdWVzdCh4Lmhvc3RFbGVtZW50KSk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBlbGVtZW50OiB4LFxuICAgICAgICByZWN0OiBSZWN0RXh0ZW5zaW9ucy5tdWx0KHJlY3QsIHRoaXMudHJhbnNmb3JtLnNjYWxlKVxuICAgICAgfTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q29ubmVjdGlvbnNXaXRoUmVjdHMoKTogeyBlbGVtZW50OiBJU2VsZWN0YWJsZSwgcmVjdDogSVJlY3QgfVtdIHtcbiAgICByZXR1cm4gdGhpcy5mQ29ubmVjdGlvbnMuZmlsdGVyKCh4KSA9PiAheC5mU2VsZWN0aW9uRGlzYWJsZWQpLm1hcCgoeCkgPT4ge1xuICAgICAgY29uc3QgcmVjdCA9IHRoaXMuZk1lZGlhdG9yLnNlbmQ8SVJlY3Q+KG5ldyBHZXRFbGVtZW50UmVjdEluRmxvd1JlcXVlc3QoeC5ib3VuZGluZ0VsZW1lbnQpKTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGVsZW1lbnQ6IHgsXG4gICAgICAgIHJlY3Q6IFJlY3RFeHRlbnNpb25zLm11bHQocmVjdCwgdGhpcy50cmFuc2Zvcm0uc2NhbGUpXG4gICAgICB9O1xuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -49,4 +49,4 @@ export class SelectionAreaDragHandle {
49
49
  }
50
50
  }
51
51
  }
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLWFyZWEuZHJhZy1oYW5kbGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL3NlbGVjdGlvbi1hcmVhL3NlbGVjdGlvbi1hcmVhLmRyYWctaGFuZGxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBVSxLQUFLLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTdELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUd4RCxPQUFPLEVBQUUsNEJBQTRCLEVBQXVCLE1BQU0sNkJBQTZCLENBQUM7QUFJaEcsTUFBTSxPQUFPLHVCQUF1QjtJQVFsQyxJQUFZLGNBQWM7UUFDeEIsT0FBTyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFRLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBUSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN6SSxDQUFDO0lBRUQsWUFDWSxnQkFBa0MsRUFDbEMscUJBQTRDLEVBQzVDLFFBQWtCO1FBRmxCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQUM1QyxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBYmQsU0FBSSxHQUFvQixlQUFlLENBQUMsU0FBUyxDQUFDO1FBRTFELGtCQUFhLEdBQTBCLEVBQUUsQ0FBQztRQUUxQyxtQkFBYyxHQUFrQixFQUFFLENBQUM7SUFXM0MsQ0FBQztJQUVNLFVBQVU7UUFDZixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLDRCQUE0QixDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFFOUUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGNBQWMsRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUNsRCxJQUFJLENBQUMscUJBQXFCLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQztZQUM5QyxJQUFJLEVBQUUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLHFCQUFxQixDQUFDLENBQUM7WUFDeEQsR0FBRyxFQUFFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1lBQ3ZELEtBQUssRUFBRSxDQUFDO1lBQ1IsTUFBTSxFQUFFLENBQUM7U0FDVixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sSUFBSSxDQUFDLFVBQWtCO1FBQzVCLE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ3ZHLE1BQU0sQ0FBQyxHQUFXLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLHFCQUFxQixDQUFDLENBQUMsRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDL0YsTUFBTSxDQUFDLEdBQVcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMscUJBQXFCLENBQUMsQ0FBQyxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUUvRixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNyQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUV0QyxJQUFJLENBQUMscUJBQXFCLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUNwRixJQUFJLENBQUMsY0FBYyxHQUFHLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ2xDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7WUFFeEIsTUFBTSxRQUFRLEdBQUcsY0FBYyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUV6RSxNQUFNLFdBQVcsR0FBRyxjQUFjLENBQUMsb0JBQW9CLENBQUMsUUFBUSxFQUFFLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUNsSCxJQUFJLFdBQVcsRUFBRSxDQUFDO2dCQUVoQixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUN0QixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDekMsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLFFBQVE7UUFDYixJQUFJLENBQUMscUJBQXFCLENBQUMsY0FBYyxFQUFFLElBQUksRUFBRSxDQUFDO1FBQ2xELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3RFLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQztRQUN0RCxDQUFDO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSVBvaW50LCBQb2ludCwgUmVjdEV4dGVuc2lvbnMgfSBmcm9tICdAZm9ibGV4L2NvcmUnO1xuaW1wb3J0IHsgSURyYWdnYWJsZUl0ZW0gfSBmcm9tICcuLi9pLWRyYWdnYWJsZS1pdGVtJztcbmltcG9ydCB7IEVGRHJhZ2dhYmxlVHlwZSB9IGZyb20gJy4uL2UtZi1kcmFnZ2FibGUtdHlwZSc7XG5pbXBvcnQgeyBGQ29tcG9uZW50c1N0b3JlIH0gZnJvbSAnLi4vLi4vZi1jb21wb25lbnRzLXN0b3JlJztcbmltcG9ydCB7IEZEcmFnZ2FibGVEYXRhQ29udGV4dCB9IGZyb20gJy4uL2YtZHJhZ2dhYmxlLWRhdGEtY29udGV4dCc7XG5pbXBvcnQgeyBHZXRDYW5CZVNlbGVjdGVkSXRlbXNIYW5kbGVyLCBJU2VsZWN0YWJsZVdpdGhSZWN0IH0gZnJvbSAnLi9nZXQtY2FuLWJlLXNlbGVjdGVkLWl0ZW1zJztcbmltcG9ydCB7IEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJU2VsZWN0YWJsZSB9IGZyb20gJy4uLy4uL2YtY29ubmVjdGlvbic7XG5cbmV4cG9ydCBjbGFzcyBTZWxlY3Rpb25BcmVhRHJhZ0hhbmRsZSBpbXBsZW1lbnRzIElEcmFnZ2FibGVJdGVtIHtcblxuICBwdWJsaWMgcmVhZG9ubHkgdHlwZTogRUZEcmFnZ2FibGVUeXBlID0gRUZEcmFnZ2FibGVUeXBlLlNFTEVDVElPTjtcblxuICBwcml2YXRlIGNhbkJlU2VsZWN0ZWQ6IElTZWxlY3RhYmxlV2l0aFJlY3RbXSA9IFtdO1xuXG4gIHByaXZhdGUgc2VsZWN0ZWRCeU1vdmU6IElTZWxlY3RhYmxlW10gPSBbXTtcblxuICBwcml2YXRlIGdldCBjYW52YXNQb3NpdGlvbigpOiBQb2ludCB7XG4gICAgcmV0dXJuIFBvaW50LmZyb21Qb2ludCh0aGlzLmZDb21wb25lbnRzU3RvcmUuZkNhbnZhcyEudHJhbnNmb3JtLnBvc2l0aW9uKS5hZGQodGhpcy5mQ29tcG9uZW50c1N0b3JlLmZDYW52YXMhLnRyYW5zZm9ybS5zY2FsZWRQb3NpdGlvbik7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICAgIHByaXZhdGUgZkNvbXBvbmVudHNTdG9yZTogRkNvbXBvbmVudHNTdG9yZSxcbiAgICAgIHByaXZhdGUgZkRyYWdnYWJsZURhdGFDb250ZXh0OiBGRHJhZ2dhYmxlRGF0YUNvbnRleHQsXG4gICAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvclxuICApIHtcbiAgfVxuXG4gIHB1YmxpYyBpbml0aWFsaXplKCk6IHZvaWQge1xuICAgIHRoaXMuY2FuQmVTZWxlY3RlZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KEdldENhbkJlU2VsZWN0ZWRJdGVtc0hhbmRsZXIpLmhhbmRsZSgpO1xuXG4gICAgdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuZlNlbGVjdGlvbkFyZWE/LnNob3coKTtcbiAgICB0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5mU2VsZWN0aW9uQXJlYT8uZHJhdyh7XG4gICAgICBsZWZ0OiB0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5vblBvaW50ZXJEb3duUG9zaXRpb24ueCxcbiAgICAgIHRvcDogdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQub25Qb2ludGVyRG93blBvc2l0aW9uLnksXG4gICAgICB3aWR0aDogMCxcbiAgICAgIGhlaWdodDogMFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG1vdmUoZGlmZmVyZW5jZTogSVBvaW50KTogdm9pZCB7XG4gICAgY29uc3QgY3VycmVudFBvaW50ID0gUG9pbnQuZnJvbVBvaW50KGRpZmZlcmVuY2UpLmFkZCh0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5vblBvaW50ZXJEb3duUG9zaXRpb24pO1xuICAgIGNvbnN0IHg6IG51bWJlciA9IE1hdGgubWluKHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0Lm9uUG9pbnRlckRvd25Qb3NpdGlvbi54LCBjdXJyZW50UG9pbnQueCk7XG4gICAgY29uc3QgeTogbnVtYmVyID0gTWF0aC5taW4odGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQub25Qb2ludGVyRG93blBvc2l0aW9uLnksIGN1cnJlbnRQb2ludC55KTtcblxuICAgIGNvbnN0IHdpZHRoID0gTWF0aC5hYnMoZGlmZmVyZW5jZS54KTtcbiAgICBjb25zdCBoZWlnaHQgPSBNYXRoLmFicyhkaWZmZXJlbmNlLnkpO1xuXG4gICAgdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuZlNlbGVjdGlvbkFyZWE/LmRyYXcoeyBsZWZ0OiB4LCB0b3A6IHksIHdpZHRoLCBoZWlnaHQgfSk7XG4gICAgdGhpcy5zZWxlY3RlZEJ5TW92ZSA9IFtdO1xuICAgIHRoaXMuY2FuQmVTZWxlY3RlZC5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICBpdGVtLmVsZW1lbnQuZGVzZWxlY3QoKTtcblxuICAgICAgY29uc3QgaXRlbVJlY3QgPSBSZWN0RXh0ZW5zaW9ucy5hZGRQb2ludChpdGVtLnJlY3QsIHRoaXMuY2FudmFzUG9zaXRpb24pO1xuXG4gICAgICBjb25zdCBpc0ludGVyc2VjdCA9IFJlY3RFeHRlbnNpb25zLmludGVyc2VjdGlvbldpdGhSZWN0KGl0ZW1SZWN0LCBSZWN0RXh0ZW5zaW9ucy5pbml0aWFsaXplKHgsIHksIHdpZHRoLCBoZWlnaHQpKTtcbiAgICAgIGlmIChpc0ludGVyc2VjdCkge1xuXG4gICAgICAgIGl0ZW0uZWxlbWVudC5zZWxlY3QoKTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEJ5TW92ZS5wdXNoKGl0ZW0uZWxlbWVudCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgY29tcGxldGUoKTogdm9pZCB7XG4gICAgdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuZlNlbGVjdGlvbkFyZWE/LmhpZGUoKTtcbiAgICB0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5zZWxlY3RlZEl0ZW1zLnB1c2goLi4udGhpcy5zZWxlY3RlZEJ5TW92ZSk7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRCeU1vdmUubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuaXNTZWxlY3RlZENoYW5nZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxufVxuIl19
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLWFyZWEuZHJhZy1oYW5kbGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL3NlbGVjdGlvbi1hcmVhL3NlbGVjdGlvbi1hcmVhLmRyYWctaGFuZGxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBVSxLQUFLLEVBQUUsY0FBYyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTdELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUd4RCxPQUFPLEVBQUUsNEJBQTRCLEVBQXVCLE1BQU0sNkJBQTZCLENBQUM7QUFJaEcsTUFBTSxPQUFPLHVCQUF1QjtJQVFsQyxJQUFZLGNBQWM7UUFDeEIsT0FBTyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFRLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBUSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN6SSxDQUFDO0lBRUQsWUFDWSxnQkFBa0MsRUFDbEMscUJBQTRDLEVBQzVDLFFBQWtCO1FBRmxCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQUM1QyxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBYmQsU0FBSSxHQUFvQixlQUFlLENBQUMsU0FBUyxDQUFDO1FBRTFELGtCQUFhLEdBQTBCLEVBQUUsQ0FBQztRQUUxQyxtQkFBYyxHQUFrQixFQUFFLENBQUM7SUFXM0MsQ0FBQztJQUVNLFVBQVU7UUFDZixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLDRCQUE0QixDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFFOUUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGNBQWMsRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUNsRCxJQUFJLENBQUMscUJBQXFCLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQztZQUM5QyxJQUFJLEVBQUUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLHFCQUFxQixDQUFDLENBQUM7WUFDeEQsR0FBRyxFQUFFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1lBQ3ZELEtBQUssRUFBRSxDQUFDO1lBQ1IsTUFBTSxFQUFFLENBQUM7U0FDVixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sSUFBSSxDQUFDLFVBQWtCO1FBQzVCLE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ3ZHLE1BQU0sQ0FBQyxHQUFXLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLHFCQUFxQixDQUFDLENBQUMsRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDL0YsTUFBTSxDQUFDLEdBQVcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMscUJBQXFCLENBQUMsQ0FBQyxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUUvRixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNyQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUV0QyxJQUFJLENBQUMscUJBQXFCLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUNwRixJQUFJLENBQUMsY0FBYyxHQUFHLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ2xDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7WUFFeEIsTUFBTSxRQUFRLEdBQUcsY0FBYyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUV6RSxNQUFNLFdBQVcsR0FBRyxjQUFjLENBQUMsb0JBQW9CLENBQUMsUUFBUSxFQUFFLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUNsSCxJQUFJLFdBQVcsRUFBRSxDQUFDO2dCQUVoQixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUN0QixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDekMsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLFFBQVE7UUFDYixJQUFJLENBQUMscUJBQXFCLENBQUMsY0FBYyxFQUFFLElBQUksRUFBRSxDQUFDO1FBQ2xELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3RFLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQztRQUN0RCxDQUFDO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSVBvaW50LCBQb2ludCwgUmVjdEV4dGVuc2lvbnMgfSBmcm9tICdAZm9ibGV4L2NvcmUnO1xuaW1wb3J0IHsgSURyYWdnYWJsZUl0ZW0gfSBmcm9tICcuLi9pLWRyYWdnYWJsZS1pdGVtJztcbmltcG9ydCB7IEVGRHJhZ2dhYmxlVHlwZSB9IGZyb20gJy4uL2UtZi1kcmFnZ2FibGUtdHlwZSc7XG5pbXBvcnQgeyBGQ29tcG9uZW50c1N0b3JlIH0gZnJvbSAnLi4vLi4vZi1zdG9yYWdlJztcbmltcG9ydCB7IEZEcmFnZ2FibGVEYXRhQ29udGV4dCB9IGZyb20gJy4uL2YtZHJhZ2dhYmxlLWRhdGEtY29udGV4dCc7XG5pbXBvcnQgeyBHZXRDYW5CZVNlbGVjdGVkSXRlbXNIYW5kbGVyLCBJU2VsZWN0YWJsZVdpdGhSZWN0IH0gZnJvbSAnLi9nZXQtY2FuLWJlLXNlbGVjdGVkLWl0ZW1zJztcbmltcG9ydCB7IEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJU2VsZWN0YWJsZSB9IGZyb20gJy4uLy4uL2YtY29ubmVjdGlvbic7XG5cbmV4cG9ydCBjbGFzcyBTZWxlY3Rpb25BcmVhRHJhZ0hhbmRsZSBpbXBsZW1lbnRzIElEcmFnZ2FibGVJdGVtIHtcblxuICBwdWJsaWMgcmVhZG9ubHkgdHlwZTogRUZEcmFnZ2FibGVUeXBlID0gRUZEcmFnZ2FibGVUeXBlLlNFTEVDVElPTjtcblxuICBwcml2YXRlIGNhbkJlU2VsZWN0ZWQ6IElTZWxlY3RhYmxlV2l0aFJlY3RbXSA9IFtdO1xuXG4gIHByaXZhdGUgc2VsZWN0ZWRCeU1vdmU6IElTZWxlY3RhYmxlW10gPSBbXTtcblxuICBwcml2YXRlIGdldCBjYW52YXNQb3NpdGlvbigpOiBQb2ludCB7XG4gICAgcmV0dXJuIFBvaW50LmZyb21Qb2ludCh0aGlzLmZDb21wb25lbnRzU3RvcmUuZkNhbnZhcyEudHJhbnNmb3JtLnBvc2l0aW9uKS5hZGQodGhpcy5mQ29tcG9uZW50c1N0b3JlLmZDYW52YXMhLnRyYW5zZm9ybS5zY2FsZWRQb3NpdGlvbik7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICAgIHByaXZhdGUgZkNvbXBvbmVudHNTdG9yZTogRkNvbXBvbmVudHNTdG9yZSxcbiAgICAgIHByaXZhdGUgZkRyYWdnYWJsZURhdGFDb250ZXh0OiBGRHJhZ2dhYmxlRGF0YUNvbnRleHQsXG4gICAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvclxuICApIHtcbiAgfVxuXG4gIHB1YmxpYyBpbml0aWFsaXplKCk6IHZvaWQge1xuICAgIHRoaXMuY2FuQmVTZWxlY3RlZCA9IHRoaXMuaW5qZWN0b3IuZ2V0KEdldENhbkJlU2VsZWN0ZWRJdGVtc0hhbmRsZXIpLmhhbmRsZSgpO1xuXG4gICAgdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuZlNlbGVjdGlvbkFyZWE/LnNob3coKTtcbiAgICB0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5mU2VsZWN0aW9uQXJlYT8uZHJhdyh7XG4gICAgICBsZWZ0OiB0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5vblBvaW50ZXJEb3duUG9zaXRpb24ueCxcbiAgICAgIHRvcDogdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQub25Qb2ludGVyRG93blBvc2l0aW9uLnksXG4gICAgICB3aWR0aDogMCxcbiAgICAgIGhlaWdodDogMFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG1vdmUoZGlmZmVyZW5jZTogSVBvaW50KTogdm9pZCB7XG4gICAgY29uc3QgY3VycmVudFBvaW50ID0gUG9pbnQuZnJvbVBvaW50KGRpZmZlcmVuY2UpLmFkZCh0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5vblBvaW50ZXJEb3duUG9zaXRpb24pO1xuICAgIGNvbnN0IHg6IG51bWJlciA9IE1hdGgubWluKHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0Lm9uUG9pbnRlckRvd25Qb3NpdGlvbi54LCBjdXJyZW50UG9pbnQueCk7XG4gICAgY29uc3QgeTogbnVtYmVyID0gTWF0aC5taW4odGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQub25Qb2ludGVyRG93blBvc2l0aW9uLnksIGN1cnJlbnRQb2ludC55KTtcblxuICAgIGNvbnN0IHdpZHRoID0gTWF0aC5hYnMoZGlmZmVyZW5jZS54KTtcbiAgICBjb25zdCBoZWlnaHQgPSBNYXRoLmFicyhkaWZmZXJlbmNlLnkpO1xuXG4gICAgdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuZlNlbGVjdGlvbkFyZWE/LmRyYXcoeyBsZWZ0OiB4LCB0b3A6IHksIHdpZHRoLCBoZWlnaHQgfSk7XG4gICAgdGhpcy5zZWxlY3RlZEJ5TW92ZSA9IFtdO1xuICAgIHRoaXMuY2FuQmVTZWxlY3RlZC5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICBpdGVtLmVsZW1lbnQuZGVzZWxlY3QoKTtcblxuICAgICAgY29uc3QgaXRlbVJlY3QgPSBSZWN0RXh0ZW5zaW9ucy5hZGRQb2ludChpdGVtLnJlY3QsIHRoaXMuY2FudmFzUG9zaXRpb24pO1xuXG4gICAgICBjb25zdCBpc0ludGVyc2VjdCA9IFJlY3RFeHRlbnNpb25zLmludGVyc2VjdGlvbldpdGhSZWN0KGl0ZW1SZWN0LCBSZWN0RXh0ZW5zaW9ucy5pbml0aWFsaXplKHgsIHksIHdpZHRoLCBoZWlnaHQpKTtcbiAgICAgIGlmIChpc0ludGVyc2VjdCkge1xuXG4gICAgICAgIGl0ZW0uZWxlbWVudC5zZWxlY3QoKTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEJ5TW92ZS5wdXNoKGl0ZW0uZWxlbWVudCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgY29tcGxldGUoKTogdm9pZCB7XG4gICAgdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuZlNlbGVjdGlvbkFyZWE/LmhpZGUoKTtcbiAgICB0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5zZWxlY3RlZEl0ZW1zLnB1c2goLi4udGhpcy5zZWxlY3RlZEJ5TW92ZSk7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRCeU1vdmUubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuaXNTZWxlY3RlZENoYW5nZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -2,7 +2,7 @@ import { MouseEventExtensions, Point } from '@foblex/core';
2
2
  import { Injectable } from '@angular/core';
3
3
  import { SelectionAreaDragHandle } from './selection-area.drag-handle';
4
4
  import * as i0 from "@angular/core";
5
- import * as i1 from "../../f-components-store";
5
+ import * as i1 from "../../f-storage";
6
6
  import * as i2 from "../f-draggable-data-context";
7
7
  export class SelectionAreaPrepareDragSequence {
8
8
  get fFlow() {
@@ -29,4 +29,4 @@ export class SelectionAreaPrepareDragSequence {
29
29
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: SelectionAreaPrepareDragSequence, decorators: [{
30
30
  type: Injectable
31
31
  }], ctorParameters: () => [{ type: i1.FComponentsStore }, { type: i2.FDraggableDataContext }, { type: i0.Injector }] });
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLWFyZWEucHJlcGFyZS1kcmFnLXNlcXVlbmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9zZWxlY3Rpb24tYXJlYS9zZWxlY3Rpb24tYXJlYS5wcmVwYXJlLWRyYWctc2VxdWVuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUEyQixvQkFBb0IsRUFBRSxLQUFLLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDcEYsT0FBTyxFQUFFLFVBQVUsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUdyRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7OztBQUl2RSxNQUFNLE9BQU8sZ0NBQWdDO0lBRTNDLElBQVksS0FBSztRQUNmLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQWtCLENBQUM7SUFDbEQsQ0FBQztJQUVELFlBQ1ksZ0JBQWtDLEVBQ2xDLHFCQUE0QyxFQUM1QyxRQUFrQjtRQUZsQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7UUFDNUMsYUFBUSxHQUFSLFFBQVEsQ0FBVTtJQUU5QixDQUFDO0lBRU0sTUFBTSxDQUFDLEtBQW9CO1FBQ2hDLE1BQU0scUJBQXFCLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRTVHLElBQUksb0JBQW9CLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsSUFBSSxJQUFJLENBQUMscUJBQXFCLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDMUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGNBQWMsR0FBRztnQkFDMUMsSUFBSSx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLHFCQUFxQixFQUFFLElBQUksQ0FBQyxRQUFRLENBQUM7YUFDOUYsQ0FBQztZQUVGLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxrQkFBa0IsR0FBRyxDQUFDLENBQUM7WUFDbEQsSUFBSSxDQUFDLHFCQUFxQixDQUFDLHFCQUFxQixHQUFHLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNsRixDQUFDO0lBQ0gsQ0FBQzs4R0F4QlUsZ0NBQWdDO2tIQUFoQyxnQ0FBZ0M7OzJGQUFoQyxnQ0FBZ0M7a0JBRDVDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJSGFuZGxlciwgSVBvaW50ZXJFdmVudCwgTW91c2VFdmVudEV4dGVuc2lvbnMsIFBvaW50IH0gZnJvbSAnQGZvYmxleC9jb3JlJztcbmltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGQ29tcG9uZW50c1N0b3JlIH0gZnJvbSAnLi4vLi4vZi1jb21wb25lbnRzLXN0b3JlJztcbmltcG9ydCB7IEZEcmFnZ2FibGVEYXRhQ29udGV4dCB9IGZyb20gJy4uL2YtZHJhZ2dhYmxlLWRhdGEtY29udGV4dCc7XG5pbXBvcnQgeyBTZWxlY3Rpb25BcmVhRHJhZ0hhbmRsZSB9IGZyb20gJy4vc2VsZWN0aW9uLWFyZWEuZHJhZy1oYW5kbGUnO1xuaW1wb3J0IHsgRkZsb3dCYXNlIH0gZnJvbSAnLi4vLi4vZi1mbG93JztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNlbGVjdGlvbkFyZWFQcmVwYXJlRHJhZ1NlcXVlbmNlIGltcGxlbWVudHMgSUhhbmRsZXI8SVBvaW50ZXJFdmVudCwgdm9pZD4ge1xuXG4gIHByaXZhdGUgZ2V0IGZGbG93KCk6IEZGbG93QmFzZSB7XG4gICAgcmV0dXJuIHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mRmxvdyBhcyBGRmxvd0Jhc2U7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICAgIHByaXZhdGUgZkNvbXBvbmVudHNTdG9yZTogRkNvbXBvbmVudHNTdG9yZSxcbiAgICAgIHByaXZhdGUgZkRyYWdnYWJsZURhdGFDb250ZXh0OiBGRHJhZ2dhYmxlRGF0YUNvbnRleHQsXG4gICAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvclxuICApIHtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGUoZXZlbnQ6IElQb2ludGVyRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBwb2ludGVyUG9zaXRpb25JbkZsb3cgPSBQb2ludC5mcm9tUG9pbnQoZXZlbnQuZ2V0UG9zaXRpb24oKSkuZWxlbWVudFRyYW5zZm9ybSh0aGlzLmZGbG93Lmhvc3RFbGVtZW50KTtcblxuICAgIGlmIChNb3VzZUV2ZW50RXh0ZW5zaW9ucy5pc1NoaWZ0UHJlc3NlZChldmVudC5vcmlnaW5hbEV2ZW50KSAmJiB0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5mU2VsZWN0aW9uQXJlYSkge1xuICAgICAgdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuZHJhZ2dhYmxlSXRlbXMgPSBbXG4gICAgICAgIG5ldyBTZWxlY3Rpb25BcmVhRHJhZ0hhbmRsZSh0aGlzLmZDb21wb25lbnRzU3RvcmUsIHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0LCB0aGlzLmluamVjdG9yKVxuICAgICAgXTtcblxuICAgICAgdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQub25Qb2ludGVyRG93blNjYWxlID0gMTtcbiAgICAgIHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0Lm9uUG9pbnRlckRvd25Qb3NpdGlvbiA9IHBvaW50ZXJQb3NpdGlvbkluRmxvdy5kaXYoMSk7XG4gICAgfVxuICB9XG59XG4iXX0=
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLWFyZWEucHJlcGFyZS1kcmFnLXNlcXVlbmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9zZWxlY3Rpb24tYXJlYS9zZWxlY3Rpb24tYXJlYS5wcmVwYXJlLWRyYWctc2VxdWVuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUEyQixvQkFBb0IsRUFBRSxLQUFLLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDcEYsT0FBTyxFQUFFLFVBQVUsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUdyRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7OztBQUl2RSxNQUFNLE9BQU8sZ0NBQWdDO0lBRTNDLElBQVksS0FBSztRQUNmLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQWtCLENBQUM7SUFDbEQsQ0FBQztJQUVELFlBQ1ksZ0JBQWtDLEVBQ2xDLHFCQUE0QyxFQUM1QyxRQUFrQjtRQUZsQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7UUFDNUMsYUFBUSxHQUFSLFFBQVEsQ0FBVTtJQUU5QixDQUFDO0lBRU0sTUFBTSxDQUFDLEtBQW9CO1FBQ2hDLE1BQU0scUJBQXFCLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRTVHLElBQUksb0JBQW9CLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsSUFBSSxJQUFJLENBQUMscUJBQXFCLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDMUcsSUFBSSxDQUFDLHFCQUFxQixDQUFDLGNBQWMsR0FBRztnQkFDMUMsSUFBSSx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLHFCQUFxQixFQUFFLElBQUksQ0FBQyxRQUFRLENBQUM7YUFDOUYsQ0FBQztZQUVGLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxrQkFBa0IsR0FBRyxDQUFDLENBQUM7WUFDbEQsSUFBSSxDQUFDLHFCQUFxQixDQUFDLHFCQUFxQixHQUFHLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNsRixDQUFDO0lBQ0gsQ0FBQzs4R0F4QlUsZ0NBQWdDO2tIQUFoQyxnQ0FBZ0M7OzJGQUFoQyxnQ0FBZ0M7a0JBRDVDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJSGFuZGxlciwgSVBvaW50ZXJFdmVudCwgTW91c2VFdmVudEV4dGVuc2lvbnMsIFBvaW50IH0gZnJvbSAnQGZvYmxleC9jb3JlJztcbmltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGQ29tcG9uZW50c1N0b3JlIH0gZnJvbSAnLi4vLi4vZi1zdG9yYWdlJztcbmltcG9ydCB7IEZEcmFnZ2FibGVEYXRhQ29udGV4dCB9IGZyb20gJy4uL2YtZHJhZ2dhYmxlLWRhdGEtY29udGV4dCc7XG5pbXBvcnQgeyBTZWxlY3Rpb25BcmVhRHJhZ0hhbmRsZSB9IGZyb20gJy4vc2VsZWN0aW9uLWFyZWEuZHJhZy1oYW5kbGUnO1xuaW1wb3J0IHsgRkZsb3dCYXNlIH0gZnJvbSAnLi4vLi4vZi1mbG93JztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNlbGVjdGlvbkFyZWFQcmVwYXJlRHJhZ1NlcXVlbmNlIGltcGxlbWVudHMgSUhhbmRsZXI8SVBvaW50ZXJFdmVudCwgdm9pZD4ge1xuXG4gIHByaXZhdGUgZ2V0IGZGbG93KCk6IEZGbG93QmFzZSB7XG4gICAgcmV0dXJuIHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mRmxvdyBhcyBGRmxvd0Jhc2U7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICAgIHByaXZhdGUgZkNvbXBvbmVudHNTdG9yZTogRkNvbXBvbmVudHNTdG9yZSxcbiAgICAgIHByaXZhdGUgZkRyYWdnYWJsZURhdGFDb250ZXh0OiBGRHJhZ2dhYmxlRGF0YUNvbnRleHQsXG4gICAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvclxuICApIHtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGUoZXZlbnQ6IElQb2ludGVyRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBwb2ludGVyUG9zaXRpb25JbkZsb3cgPSBQb2ludC5mcm9tUG9pbnQoZXZlbnQuZ2V0UG9zaXRpb24oKSkuZWxlbWVudFRyYW5zZm9ybSh0aGlzLmZGbG93Lmhvc3RFbGVtZW50KTtcblxuICAgIGlmIChNb3VzZUV2ZW50RXh0ZW5zaW9ucy5pc1NoaWZ0UHJlc3NlZChldmVudC5vcmlnaW5hbEV2ZW50KSAmJiB0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5mU2VsZWN0aW9uQXJlYSkge1xuICAgICAgdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuZHJhZ2dhYmxlSXRlbXMgPSBbXG4gICAgICAgIG5ldyBTZWxlY3Rpb25BcmVhRHJhZ0hhbmRsZSh0aGlzLmZDb21wb25lbnRzU3RvcmUsIHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0LCB0aGlzLmluamVjdG9yKVxuICAgICAgXTtcblxuICAgICAgdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQub25Qb2ludGVyRG93blNjYWxlID0gMTtcbiAgICAgIHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0Lm9uUG9pbnRlckRvd25Qb3NpdGlvbiA9IHBvaW50ZXJQb3NpdGlvbkluRmxvdy5kaXYoMSk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -2,7 +2,7 @@ import { MouseEventExtensions } from '@foblex/core';
2
2
  import { Injectable } from '@angular/core';
3
3
  import { UpdateItemLayerRequest } from '../../domain';
4
4
  import * as i0 from "@angular/core";
5
- import * as i1 from "../../f-components-store";
5
+ import * as i1 from "../../f-storage";
6
6
  import * as i2 from "../f-draggable-data-context";
7
7
  import * as i3 from "../../domain";
8
8
  import * as i4 from "../../f-mediator";
@@ -72,4 +72,4 @@ export class SingleSelectOnPointerDown {
72
72
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: SingleSelectOnPointerDown, decorators: [{
73
73
  type: Injectable
74
74
  }], ctorParameters: () => [{ type: i1.FComponentsStore }, { type: i2.FDraggableDataContext }, { type: i3.GetConnectionHandler }, { type: i4.FFlowMediator }] });
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xlLXNlbGVjdC5vbi1wb2ludGVyLWRvd24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL3NpbmdsZS1zZWxlY3Qvc2luZ2xlLXNlbGVjdC5vbi1wb2ludGVyLWRvd24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUEyQixvQkFBb0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE9BQU8sRUFBd0Isc0JBQXNCLEVBQUUsTUFBTSxjQUFjLENBQUM7Ozs7OztBQUs1RSxNQUFNLE9BQU8seUJBQXlCO0lBRXBDLFlBQ1UsZ0JBQWtDLEVBQ2xDLHFCQUE0QyxFQUM1QyxvQkFBMEMsRUFDMUMsU0FBd0I7UUFIeEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQywwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBQzVDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFDMUMsY0FBUyxHQUFULFNBQVMsQ0FBZTtJQUVsQyxDQUFDO0lBRU0sTUFBTSxDQUFDLEtBQW9CO1FBQ2hDLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7WUFDNUUsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0MsSUFBRyxJQUFJLEVBQUUsQ0FBQztZQUNSLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFPLElBQUksc0JBQXNCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYyxDQUFDLENBQUMsQ0FBQztRQUMvRixDQUFDO1FBRUQsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RGLENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxLQUFvQjtRQUM1QyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxJQUFJLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3RILENBQUM7SUFFTyxvQkFBb0IsQ0FBQyxLQUFvQjtRQUMvQyxPQUFPLG9CQUFvQixDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDO1lBQzlELG9CQUFvQixDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVPLFlBQVksQ0FBQyxJQUE2QjtRQUNoRCxJQUFHLElBQUksRUFBRSxDQUFDO1lBQ1IsSUFBRyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO2dCQUNsRCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3RCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDeEIsQ0FBQztRQUNILENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3hCLENBQUM7SUFDSCxDQUFDO0lBRU8sV0FBVyxDQUFDLElBQTZCO1FBQy9DLElBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RFLENBQUM7SUFDSCxDQUFDO0lBRU8sWUFBWSxDQUFDLElBQWlCO1FBQ3BDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JFLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMscUJBQXFCLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDNUQsQ0FBQztRQUNELElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMscUJBQXFCLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztJQUN0RCxDQUFDO0lBRU8sVUFBVSxDQUFDLElBQWlCO1FBQ2xDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNkLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ3RELENBQUM7SUFFTyxjQUFjO1FBQ3BCLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDckQsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2IsSUFBSSxDQUFDLHFCQUFxQixDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDdEQsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMscUJBQXFCLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztJQUNoRCxDQUFDOzhHQXRFVSx5QkFBeUI7a0hBQXpCLHlCQUF5Qjs7MkZBQXpCLHlCQUF5QjtrQkFEckMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElIYW5kbGVyLCBJUG9pbnRlckV2ZW50LCBNb3VzZUV2ZW50RXh0ZW5zaW9ucyB9IGZyb20gJ0Bmb2JsZXgvY29yZSc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGQ29tcG9uZW50c1N0b3JlIH0gZnJvbSAnLi4vLi4vZi1jb21wb25lbnRzLXN0b3JlJztcbmltcG9ydCB7IEZEcmFnZ2FibGVEYXRhQ29udGV4dCB9IGZyb20gJy4uL2YtZHJhZ2dhYmxlLWRhdGEtY29udGV4dCc7XG5pbXBvcnQgeyBHZXRDb25uZWN0aW9uSGFuZGxlciwgVXBkYXRlSXRlbUxheWVyUmVxdWVzdCB9IGZyb20gJy4uLy4uL2RvbWFpbic7XG5pbXBvcnQgeyBJU2VsZWN0YWJsZSB9IGZyb20gJy4uLy4uL2YtY29ubmVjdGlvbic7XG5pbXBvcnQgeyBGRmxvd01lZGlhdG9yIH0gZnJvbSAnLi4vLi4vZi1tZWRpYXRvcic7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTaW5nbGVTZWxlY3RPblBvaW50ZXJEb3duIGltcGxlbWVudHMgSUhhbmRsZXI8SVBvaW50ZXJFdmVudCwgdm9pZD4ge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZkNvbXBvbmVudHNTdG9yZTogRkNvbXBvbmVudHNTdG9yZSxcbiAgICBwcml2YXRlIGZEcmFnZ2FibGVEYXRhQ29udGV4dDogRkRyYWdnYWJsZURhdGFDb250ZXh0LFxuICAgIHByaXZhdGUgZ2V0Q29ubmVjdGlvbkhhbmRsZXI6IEdldENvbm5lY3Rpb25IYW5kbGVyLFxuICAgIHByaXZhdGUgZk1lZGlhdG9yOiBGRmxvd01lZGlhdG9yXG4gICkge1xuICB9XG5cbiAgcHVibGljIGhhbmRsZShldmVudDogSVBvaW50ZXJFdmVudCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5mQ29tcG9uZW50c1N0b3JlLmZGbG93Py5ob3N0RWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXRFbGVtZW50KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGl0ZW0gPSB0aGlzLmdldFNlbGVjdGFibGVJdGVtKGV2ZW50KTtcbiAgICBpZihpdGVtKSB7XG4gICAgICB0aGlzLmZNZWRpYXRvci5zZW5kPHZvaWQ+KG5ldyBVcGRhdGVJdGVtTGF5ZXJSZXF1ZXN0KGl0ZW0sIGl0ZW0uaG9zdEVsZW1lbnQucGFyZW50RWxlbWVudCEpKTtcbiAgICB9XG5cbiAgICB0aGlzLmlzTXVsdGlzZWxlY3RFbmFibGVkKGV2ZW50KSA/IHRoaXMubXVsdGlTZWxlY3QoaXRlbSkgOiB0aGlzLnNpbmdsZVNlbGVjdChpdGVtKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U2VsZWN0YWJsZUl0ZW0oZXZlbnQ6IElQb2ludGVyRXZlbnQpOiBJU2VsZWN0YWJsZSB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuZkNvbXBvbmVudHNTdG9yZS5maW5kTm9kZShldmVudC50YXJnZXRFbGVtZW50KSB8fCB0aGlzLmdldENvbm5lY3Rpb25IYW5kbGVyLmhhbmRsZShldmVudC50YXJnZXRFbGVtZW50KTtcbiAgfVxuXG4gIHByaXZhdGUgaXNNdWx0aXNlbGVjdEVuYWJsZWQoZXZlbnQ6IElQb2ludGVyRXZlbnQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gTW91c2VFdmVudEV4dGVuc2lvbnMuaXNDb21tYW5kQnV0dG9uKGV2ZW50Lm9yaWdpbmFsRXZlbnQpIHx8XG4gICAgICBNb3VzZUV2ZW50RXh0ZW5zaW9ucy5pc1NoaWZ0UHJlc3NlZChldmVudC5vcmlnaW5hbEV2ZW50KTtcbiAgfVxuXG4gIHByaXZhdGUgc2luZ2xlU2VsZWN0KGl0ZW06IElTZWxlY3RhYmxlIHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgaWYoaXRlbSkge1xuICAgICAgaWYoIWl0ZW0uaXNTZWxlY3RlZCgpICYmICFpdGVtLmZTZWxlY3Rpb25EaXNhYmxlZCkge1xuICAgICAgICB0aGlzLmNsZWFyU2VsZWN0aW9uKCk7XG4gICAgICAgIHRoaXMuc2VsZWN0SXRlbShpdGVtKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jbGVhclNlbGVjdGlvbigpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbXVsdGlTZWxlY3QoaXRlbTogSVNlbGVjdGFibGUgfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICBpZihpdGVtICYmICFpdGVtLmZTZWxlY3Rpb25EaXNhYmxlZCkge1xuICAgICAgaXRlbS5pc1NlbGVjdGVkKCkgPyB0aGlzLmRlc2VsZWN0SXRlbShpdGVtKSA6IHRoaXMuc2VsZWN0SXRlbShpdGVtKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGRlc2VsZWN0SXRlbShpdGVtOiBJU2VsZWN0YWJsZSk6IHZvaWQge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuc2VsZWN0ZWRJdGVtcy5pbmRleE9mKGl0ZW0pO1xuICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICB0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5zZWxlY3RlZEl0ZW1zLnNwbGljZShpbmRleCwgMSk7XG4gICAgfVxuICAgIGl0ZW0uZGVzZWxlY3QoKTtcbiAgICB0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5tYXJrU2VsZWN0aW9uQXNDaGFuZ2VkKCk7XG4gIH1cblxuICBwcml2YXRlIHNlbGVjdEl0ZW0oaXRlbTogSVNlbGVjdGFibGUpOiB2b2lkIHtcbiAgICB0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5zZWxlY3RlZEl0ZW1zLnB1c2goaXRlbSk7XG4gICAgaXRlbS5zZWxlY3QoKTtcbiAgICB0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5tYXJrU2VsZWN0aW9uQXNDaGFuZ2VkKCk7XG4gIH1cblxuICBwcml2YXRlIGNsZWFyU2VsZWN0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0LnNlbGVjdGVkSXRlbXMuZm9yRWFjaCgoeCkgPT4ge1xuICAgICAgeC5kZXNlbGVjdCgpO1xuICAgICAgdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQubWFya1NlbGVjdGlvbkFzQ2hhbmdlZCgpO1xuICAgIH0pO1xuICAgIHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0LnNlbGVjdGVkSXRlbXMgPSBbXTtcbiAgfVxufVxuIl19
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xlLXNlbGVjdC5vbi1wb2ludGVyLWRvd24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL3NpbmdsZS1zZWxlY3Qvc2luZ2xlLXNlbGVjdC5vbi1wb2ludGVyLWRvd24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUEyQixvQkFBb0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE9BQU8sRUFBd0Isc0JBQXNCLEVBQUUsTUFBTSxjQUFjLENBQUM7Ozs7OztBQUs1RSxNQUFNLE9BQU8seUJBQXlCO0lBRXBDLFlBQ1UsZ0JBQWtDLEVBQ2xDLHFCQUE0QyxFQUM1QyxvQkFBMEMsRUFDMUMsU0FBd0I7UUFIeEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQywwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBQzVDLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFDMUMsY0FBUyxHQUFULFNBQVMsQ0FBZTtJQUVsQyxDQUFDO0lBRU0sTUFBTSxDQUFDLEtBQW9CO1FBQ2hDLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7WUFDNUUsT0FBTztRQUNULENBQUM7UUFHRCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0MsSUFBRyxJQUFJLEVBQUUsQ0FBQztZQUNSLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFPLElBQUksc0JBQXNCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYyxDQUFDLENBQUMsQ0FBQztRQUMvRixDQUFDO1FBRUQsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RGLENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxLQUFvQjtRQUM1QyxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxJQUFJLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3RILENBQUM7SUFFTyxvQkFBb0IsQ0FBQyxLQUFvQjtRQUMvQyxPQUFPLG9CQUFvQixDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDO1lBQzlELG9CQUFvQixDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVPLFlBQVksQ0FBQyxJQUE2QjtRQUNoRCxJQUFHLElBQUksRUFBRSxDQUFDO1lBQ1IsSUFBRyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO2dCQUNsRCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3RCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDeEIsQ0FBQztRQUNILENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3hCLENBQUM7SUFDSCxDQUFDO0lBRU8sV0FBVyxDQUFDLElBQTZCO1FBQy9DLElBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RFLENBQUM7SUFDSCxDQUFDO0lBRU8sWUFBWSxDQUFDLElBQWlCO1FBQ3BDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JFLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMscUJBQXFCLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDNUQsQ0FBQztRQUNELElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMscUJBQXFCLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztJQUN0RCxDQUFDO0lBRU8sVUFBVSxDQUFDLElBQWlCO1FBQ2xDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNkLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO0lBQ3RELENBQUM7SUFFTyxjQUFjO1FBQ3BCLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDckQsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2IsSUFBSSxDQUFDLHFCQUFxQixDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDdEQsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMscUJBQXFCLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztJQUNoRCxDQUFDOzhHQXZFVSx5QkFBeUI7a0hBQXpCLHlCQUF5Qjs7MkZBQXpCLHlCQUF5QjtrQkFEckMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElIYW5kbGVyLCBJUG9pbnRlckV2ZW50LCBNb3VzZUV2ZW50RXh0ZW5zaW9ucyB9IGZyb20gJ0Bmb2JsZXgvY29yZSc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGQ29tcG9uZW50c1N0b3JlIH0gZnJvbSAnLi4vLi4vZi1zdG9yYWdlJztcbmltcG9ydCB7IEZEcmFnZ2FibGVEYXRhQ29udGV4dCB9IGZyb20gJy4uL2YtZHJhZ2dhYmxlLWRhdGEtY29udGV4dCc7XG5pbXBvcnQgeyBHZXRDb25uZWN0aW9uSGFuZGxlciwgVXBkYXRlSXRlbUxheWVyUmVxdWVzdCB9IGZyb20gJy4uLy4uL2RvbWFpbic7XG5pbXBvcnQgeyBJU2VsZWN0YWJsZSB9IGZyb20gJy4uLy4uL2YtY29ubmVjdGlvbic7XG5pbXBvcnQgeyBGRmxvd01lZGlhdG9yIH0gZnJvbSAnLi4vLi4vZi1tZWRpYXRvcic7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTaW5nbGVTZWxlY3RPblBvaW50ZXJEb3duIGltcGxlbWVudHMgSUhhbmRsZXI8SVBvaW50ZXJFdmVudCwgdm9pZD4ge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZkNvbXBvbmVudHNTdG9yZTogRkNvbXBvbmVudHNTdG9yZSxcbiAgICBwcml2YXRlIGZEcmFnZ2FibGVEYXRhQ29udGV4dDogRkRyYWdnYWJsZURhdGFDb250ZXh0LFxuICAgIHByaXZhdGUgZ2V0Q29ubmVjdGlvbkhhbmRsZXI6IEdldENvbm5lY3Rpb25IYW5kbGVyLFxuICAgIHByaXZhdGUgZk1lZGlhdG9yOiBGRmxvd01lZGlhdG9yXG4gICkge1xuICB9XG5cbiAgcHVibGljIGhhbmRsZShldmVudDogSVBvaW50ZXJFdmVudCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5mQ29tcG9uZW50c1N0b3JlLmZGbG93Py5ob3N0RWxlbWVudC5jb250YWlucyhldmVudC50YXJnZXRFbGVtZW50KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuXG4gICAgY29uc3QgaXRlbSA9IHRoaXMuZ2V0U2VsZWN0YWJsZUl0ZW0oZXZlbnQpO1xuICAgIGlmKGl0ZW0pIHtcbiAgICAgIHRoaXMuZk1lZGlhdG9yLnNlbmQ8dm9pZD4obmV3IFVwZGF0ZUl0ZW1MYXllclJlcXVlc3QoaXRlbSwgaXRlbS5ob3N0RWxlbWVudC5wYXJlbnRFbGVtZW50ISkpO1xuICAgIH1cblxuICAgIHRoaXMuaXNNdWx0aXNlbGVjdEVuYWJsZWQoZXZlbnQpID8gdGhpcy5tdWx0aVNlbGVjdChpdGVtKSA6IHRoaXMuc2luZ2xlU2VsZWN0KGl0ZW0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRTZWxlY3RhYmxlSXRlbShldmVudDogSVBvaW50ZXJFdmVudCk6IElTZWxlY3RhYmxlIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5mQ29tcG9uZW50c1N0b3JlLmZpbmROb2RlKGV2ZW50LnRhcmdldEVsZW1lbnQpIHx8IHRoaXMuZ2V0Q29ubmVjdGlvbkhhbmRsZXIuaGFuZGxlKGV2ZW50LnRhcmdldEVsZW1lbnQpO1xuICB9XG5cbiAgcHJpdmF0ZSBpc011bHRpc2VsZWN0RW5hYmxlZChldmVudDogSVBvaW50ZXJFdmVudCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBNb3VzZUV2ZW50RXh0ZW5zaW9ucy5pc0NvbW1hbmRCdXR0b24oZXZlbnQub3JpZ2luYWxFdmVudCkgfHxcbiAgICAgIE1vdXNlRXZlbnRFeHRlbnNpb25zLmlzU2hpZnRQcmVzc2VkKGV2ZW50Lm9yaWdpbmFsRXZlbnQpO1xuICB9XG5cbiAgcHJpdmF0ZSBzaW5nbGVTZWxlY3QoaXRlbTogSVNlbGVjdGFibGUgfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICBpZihpdGVtKSB7XG4gICAgICBpZighaXRlbS5pc1NlbGVjdGVkKCkgJiYgIWl0ZW0uZlNlbGVjdGlvbkRpc2FibGVkKSB7XG4gICAgICAgIHRoaXMuY2xlYXJTZWxlY3Rpb24oKTtcbiAgICAgICAgdGhpcy5zZWxlY3RJdGVtKGl0ZW0pO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNsZWFyU2VsZWN0aW9uKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBtdWx0aVNlbGVjdChpdGVtOiBJU2VsZWN0YWJsZSB8IHVuZGVmaW5lZCk6IHZvaWQge1xuICAgIGlmKGl0ZW0gJiYgIWl0ZW0uZlNlbGVjdGlvbkRpc2FibGVkKSB7XG4gICAgICBpdGVtLmlzU2VsZWN0ZWQoKSA/IHRoaXMuZGVzZWxlY3RJdGVtKGl0ZW0pIDogdGhpcy5zZWxlY3RJdGVtKGl0ZW0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZGVzZWxlY3RJdGVtKGl0ZW06IElTZWxlY3RhYmxlKTogdm9pZCB7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5zZWxlY3RlZEl0ZW1zLmluZGV4T2YoaXRlbSk7XG4gICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgIHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0LnNlbGVjdGVkSXRlbXMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICB9XG4gICAgaXRlbS5kZXNlbGVjdCgpO1xuICAgIHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0Lm1hcmtTZWxlY3Rpb25Bc0NoYW5nZWQoKTtcbiAgfVxuXG4gIHByaXZhdGUgc2VsZWN0SXRlbShpdGVtOiBJU2VsZWN0YWJsZSk6IHZvaWQge1xuICAgIHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0LnNlbGVjdGVkSXRlbXMucHVzaChpdGVtKTtcbiAgICBpdGVtLnNlbGVjdCgpO1xuICAgIHRoaXMuZkRyYWdnYWJsZURhdGFDb250ZXh0Lm1hcmtTZWxlY3Rpb25Bc0NoYW5nZWQoKTtcbiAgfVxuXG4gIHByaXZhdGUgY2xlYXJTZWxlY3Rpb24oKTogdm9pZCB7XG4gICAgdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuc2VsZWN0ZWRJdGVtcy5mb3JFYWNoKCh4KSA9PiB7XG4gICAgICB4LmRlc2VsZWN0KCk7XG4gICAgICB0aGlzLmZEcmFnZ2FibGVEYXRhQ29udGV4dC5tYXJrU2VsZWN0aW9uQXNDaGFuZ2VkKCk7XG4gICAgfSk7XG4gICAgdGhpcy5mRHJhZ2dhYmxlRGF0YUNvbnRleHQuc2VsZWN0ZWRJdGVtcyA9IFtdO1xuICB9XG59XG4iXX0=