@foblex/flow 17.6.0 → 17.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/domain/f-background/add-background-to-store/add-background-to-store.execution.d.ts +4 -1
- package/domain/f-background/add-pattern-to-background/add-pattern-to-background.execution.d.ts +4 -1
- package/domain/f-background/providers.d.ts +4 -0
- package/domain/f-background/remove-background-from-store/remove-background-from-store.execution.d.ts +4 -1
- package/domain/f-background/set-background-transform/set-background-transform.execution.d.ts +4 -1
- package/domain/f-canvas/add-canvas-to-store/add-canvas-to-store.execution.d.ts +4 -1
- package/domain/f-canvas/center-group-or-node/center-group-or-node.execution.d.ts +4 -1
- package/domain/f-canvas/fit-to-flow/fit-to-flow.execution.d.ts +4 -1
- package/domain/f-canvas/get-canvas/get-canvas.execution.d.ts +4 -1
- package/domain/f-canvas/input-canvas-position/input-canvas-position.execution.d.ts +4 -1
- package/domain/f-canvas/input-canvas-scale/input-canvas-scale.execution.d.ts +5 -1
- package/domain/f-canvas/providers.d.ts +3 -0
- package/domain/f-canvas/redraw-canvas-with-animation/redraw-canvas-with-animation.execution.d.ts +6 -1
- package/domain/f-canvas/remove-canvas-from-store/remove-canvas-from-store.execution.d.ts +4 -1
- package/domain/f-canvas/reset-scale/reset-scale.execution.d.ts +4 -1
- package/domain/f-canvas/reset-scale-and-center/reset-scale-and-center.execution.d.ts +4 -1
- package/domain/f-canvas/update-scale/update-scale.execution.d.ts +5 -1
- package/domain/f-connection/add-connection-for-create-to-store/add-connection-for-create-to-store.execution.d.ts +4 -1
- package/domain/f-connection/add-connection-marker-to-store/add-connection-marker-to-store.execution.d.ts +4 -1
- package/domain/f-connection/add-connection-to-store/add-connection-to-store.execution.d.ts +4 -1
- package/domain/f-connection/add-snap-connection-to-store/add-snap-connection-to-store.execution.d.ts +4 -1
- package/domain/f-connection/calculate-connection-line-by-behavior/calculate-connection-line-by-behavior.execution.d.ts +3 -0
- package/domain/f-connection/calculate-connection-line-by-behavior/fixed-center-behavior.d.ts +5 -0
- package/domain/f-connection/calculate-connection-line-by-behavior/fixed-outbound-behavior.d.ts +5 -0
- package/domain/f-connection/calculate-connection-line-by-behavior/floating-behavior.d.ts +5 -0
- package/domain/f-connection/create-connection-markers/create-connection-markers.execution.d.ts +4 -1
- package/domain/f-connection/providers.d.ts +3 -0
- package/domain/f-connection/redraw-connections/redraw-connections.execution.d.ts +6 -1
- package/domain/f-connection/remove-connection-for-create-from-store/remove-connection-for-create-from-store.execution.d.ts +4 -1
- package/domain/f-connection/remove-connection-from-store/remove-connection-from-store.execution.d.ts +4 -1
- package/domain/f-connection/remove-connection-marker-from-store/remove-connection-marker-from-store.execution.d.ts +4 -1
- package/domain/f-connection/remove-snap-connection-from-store/remove-snap-connection-from-store.execution.d.ts +4 -1
- package/domain/f-connectors/add-input-to-store/add-input-to-store.execution.d.ts +4 -1
- package/domain/f-connectors/add-outlet-to-store/add-outlet-to-store.execution.d.ts +3 -0
- package/domain/f-connectors/add-output-to-store/add-output-to-store.execution.d.ts +3 -0
- package/domain/f-connectors/find-closest-connector/find-closest-connector.execution.d.ts +5 -0
- package/domain/f-connectors/find-connectable-connector-using-priority-and-position/find-connectable-connector-using-priority-and-position.execution.d.ts +5 -0
- package/domain/f-connectors/get-all-can-be-connected-inputs-and-rects/get-all-can-be-connected-inputs-and-rects.execution.d.ts +4 -1
- package/domain/f-connectors/get-all-can-be-connected-source-connectors-and-rects/get-all-can-be-connected-source-connectors-and-rects.execution.d.ts +6 -1
- package/domain/f-connectors/get-connector-and-rect/get-connector-and-rect.execution.d.ts +4 -1
- package/domain/f-connectors/i-closest-connector.d.ts +3 -0
- package/domain/f-connectors/mark-connectable-connectors/mark-connectable-connectors.execution.d.ts +3 -0
- package/domain/f-connectors/remove-input-from-store/remove-input-from-store.execution.d.ts +4 -1
- package/domain/f-connectors/remove-outlet-from-store/remove-outlet-from-store.execution.d.ts +4 -1
- package/domain/f-connectors/remove-output-from-store/remove-output-from-store.execution.d.ts +4 -1
- package/domain/f-connectors/unmark-connectable-connectors/unmark-connectable-connectors.execution.d.ts +3 -0
- package/domain/f-draggable/add-dnd-to-store/add-dnd-to-store.execution.d.ts +4 -1
- package/domain/f-draggable/emit-selection-change-event/emit-selection-change-event.execution.d.ts +7 -3
- package/domain/f-draggable/end-drag-sequence/end-drag-sequence.execution.d.ts +4 -1
- package/domain/f-draggable/initialize-drag-sequence/initialize-drag-sequence.execution.d.ts +3 -0
- package/domain/f-draggable/is-drag-started/is-drag-started.execution.d.ts +4 -1
- package/domain/f-draggable/on-pointer-move/on-pointer-move.execution.d.ts +6 -1
- package/domain/f-draggable/prepare-drag-sequence/prepare-drag-sequence.execution.d.ts +4 -1
- package/domain/f-draggable/providers.d.ts +4 -1
- package/domain/f-draggable/remove-dnd-from-store/remove-dnd-from-store.execution.d.ts +4 -1
- package/domain/f-draggable/start-drag-sequence/start-drag-sequence.execution.d.ts +5 -2
- package/domain/f-flow/add-flow-to-store/add-flow-to-store.execution.d.ts +4 -1
- package/domain/f-flow/get-flow/get-flow.execution.d.ts +4 -1
- package/domain/f-flow/get-flow-host-element/get-flow-host-element.execution.d.ts +4 -1
- package/domain/f-flow/get-flow-state/get-flow-state-connections/get-flow-state-connections.execution.d.ts +4 -1
- package/domain/f-flow/get-flow-state/get-flow-state-nodes/get-flow-state-nodes.execution.d.ts +4 -3
- package/domain/f-flow/get-flow-state/get-flow-state.execution.d.ts +5 -2
- package/domain/f-flow/get-flow-state/providers.d.ts +3 -0
- package/domain/f-flow/providers.d.ts +5 -0
- package/domain/f-flow/remove-flow-from-store/remove-flow-from-store.execution.d.ts +4 -1
- package/domain/f-line-alignment/add-line-alignment-to-store/add-line-alignment-to-store.execution.d.ts +4 -1
- package/domain/f-line-alignment/providers.d.ts +5 -0
- package/domain/f-line-alignment/remove-line-alignment-from-store/remove-line-alignment-from-store.execution.d.ts +4 -1
- package/domain/f-node/add-node-to-store/add-node-to-store.execution.d.ts +4 -1
- package/domain/f-node/calculate-input-connections/calculate-input-connections.execution.d.ts +4 -1
- package/domain/f-node/calculate-nodes-bounding-box/calculate-nodes-bounding-box.execution.d.ts +5 -1
- package/domain/f-node/calculate-nodes-bounding-box-normalized-position/calculate-nodes-bounding-box-normalized-position.execution.d.ts +6 -1
- package/domain/f-node/calculate-output-connections/calculate-output-connections.execution.d.ts +4 -1
- package/domain/f-node/get-node-padding/get-node-padding.execution.d.ts +4 -0
- package/domain/f-node/get-nodes/get-nodes.execution.d.ts +4 -1
- package/domain/f-node/get-parent-nodes/get-parent-nodes.execution.d.ts +4 -1
- package/domain/f-node/providers.d.ts +3 -0
- package/domain/f-node/remove-node-from-store/remove-node-from-store.execution.d.ts +4 -1
- package/domain/f-node/update-node-when-state-or-size-changed/update-node-when-state-or-size-changed.execution.d.ts +28 -1
- package/domain/f-selection/clear-selection/clear-selection.execution.d.ts +3 -0
- package/domain/f-selection/get-can-be-selected-items/get-can-be-selected-items.execution.d.ts +14 -2
- package/domain/f-selection/get-current-selection/get-current-selection.execution.d.ts +3 -0
- package/domain/f-selection/providers.d.ts +3 -0
- package/domain/f-selection/select/select.execution.d.ts +4 -1
- package/domain/f-selection/select-all/select-all.execution.d.ts +5 -1
- package/domain/f-selection/select-and-update-node-layer/select-and-update-node-layer.execution.d.ts +7 -5
- package/domain/f-zoom/add-zoom-to-store/add-zoom-to-store.execution.d.ts +4 -1
- package/domain/f-zoom/providers.d.ts +5 -0
- package/domain/f-zoom/remove-zoom-from-store/remove-zoom-from-store.execution.d.ts +4 -1
- package/domain/f-zoom/reset-zoom/reset-zoom.execution.d.ts +4 -1
- package/domain/f-zoom/set-zoom/set-zoom.execution.d.ts +6 -2
- package/domain/get-deep-children-nodes-and-groups/get-deep-children-nodes-and-groups.execution.d.ts +5 -1
- package/domain/get-element-rounded-rect/get-element-rounded-rect.execution.d.ts +5 -1
- package/domain/get-normalized-connector-rect/get-normalized-connector-rect.execution.d.ts +7 -2
- package/domain/get-normalized-element-rect/get-normalized-element-rect.execution.d.ts +7 -2
- package/domain/get-normalized-point/get-normalized-point.execution.d.ts +6 -1
- package/domain/providers.d.ts +7 -1
- package/domain/sort-item-layers/sort-item-layers.execution.d.ts +9 -2
- package/domain/sort-item-layers/sort-items-by-parent/sort-items-by-parent.execution.d.ts +8 -3
- package/domain/sort-item-layers/sort-node-layers-by-groups/sort-node-layers.execution.d.ts +8 -3
- package/domain/update-item-and-children-layers/move-front-elements-before-target-element/move-front-elements-before-target-element.execution.d.ts +4 -0
- package/domain/update-item-and-children-layers/update-item-and-children-layers.execution.d.ts +6 -2
- package/drag-toolkit/drag-and-drop-base.d.ts +60 -0
- package/esm2022/domain/f-background/add-background-to-store/add-background-to-store.execution.mjs +6 -3
- package/esm2022/domain/f-background/add-pattern-to-background/add-pattern-to-background.execution.mjs +7 -4
- package/esm2022/domain/f-background/providers.mjs +5 -1
- package/esm2022/domain/f-background/remove-background-from-store/remove-background-from-store.execution.mjs +6 -3
- package/esm2022/domain/f-background/set-background-transform/set-background-transform.execution.mjs +6 -3
- package/esm2022/domain/f-canvas/add-canvas-to-store/add-canvas-to-store.execution.mjs +6 -3
- package/esm2022/domain/f-canvas/center-group-or-node/center-group-or-node.execution.mjs +8 -5
- package/esm2022/domain/f-canvas/fit-to-flow/fit-to-flow.execution.mjs +7 -4
- package/esm2022/domain/f-canvas/get-canvas/get-canvas.execution.mjs +6 -3
- package/esm2022/domain/f-canvas/input-canvas-position/input-canvas-position.execution.mjs +6 -3
- package/esm2022/domain/f-canvas/input-canvas-scale/input-canvas-scale.execution.mjs +7 -3
- package/esm2022/domain/f-canvas/providers.mjs +4 -1
- package/esm2022/domain/f-canvas/redraw-canvas-with-animation/redraw-canvas-with-animation.execution.mjs +13 -8
- package/esm2022/domain/f-canvas/remove-canvas-from-store/remove-canvas-from-store.execution.mjs +6 -3
- package/esm2022/domain/f-canvas/reset-scale/reset-scale.execution.mjs +6 -3
- package/esm2022/domain/f-canvas/reset-scale-and-center/reset-scale-and-center.execution.mjs +7 -4
- package/esm2022/domain/f-canvas/update-scale/update-scale.execution.mjs +7 -3
- package/esm2022/domain/f-connection/add-connection-for-create-to-store/add-connection-for-create-to-store.execution.mjs +6 -3
- package/esm2022/domain/f-connection/add-connection-marker-to-store/add-connection-marker-to-store.execution.mjs +6 -3
- package/esm2022/domain/f-connection/add-connection-to-store/add-connection-to-store.execution.mjs +7 -4
- package/esm2022/domain/f-connection/add-snap-connection-to-store/add-snap-connection-to-store.execution.mjs +6 -3
- package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/calculate-connection-line-by-behavior.execution.mjs +4 -1
- package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/fixed-center-behavior.mjs +6 -1
- package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/fixed-outbound-behavior.mjs +6 -1
- package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/floating-behavior.mjs +6 -1
- package/esm2022/domain/f-connection/create-connection-markers/create-connection-markers.execution.mjs +6 -3
- package/esm2022/domain/f-connection/providers.mjs +4 -1
- package/esm2022/domain/f-connection/redraw-connections/redraw-connections.execution.mjs +16 -11
- package/esm2022/domain/f-connection/remove-connection-for-create-from-store/remove-connection-for-create-from-store.execution.mjs +6 -3
- package/esm2022/domain/f-connection/remove-connection-from-store/remove-connection-from-store.execution.mjs +8 -5
- package/esm2022/domain/f-connection/remove-connection-marker-from-store/remove-connection-marker-from-store.execution.mjs +6 -3
- package/esm2022/domain/f-connection/remove-snap-connection-from-store/remove-snap-connection-from-store.execution.mjs +6 -3
- package/esm2022/domain/f-connectors/add-input-to-store/add-input-to-store.execution.mjs +6 -3
- package/esm2022/domain/f-connectors/add-outlet-to-store/add-outlet-to-store.execution.mjs +4 -1
- package/esm2022/domain/f-connectors/add-output-to-store/add-output-to-store.execution.mjs +4 -1
- package/esm2022/domain/f-connectors/find-closest-connector/find-closest-connector.execution.mjs +6 -1
- package/esm2022/domain/f-connectors/find-connectable-connector-using-priority-and-position/find-connectable-connector-using-priority-and-position.execution.mjs +6 -1
- package/esm2022/domain/f-connectors/get-all-can-be-connected-inputs-and-rects/get-all-can-be-connected-inputs-and-rects.execution.mjs +6 -3
- package/esm2022/domain/f-connectors/get-all-can-be-connected-source-connectors-and-rects/get-all-can-be-connected-source-connectors-and-rects.execution.mjs +8 -3
- package/esm2022/domain/f-connectors/get-connector-and-rect/get-connector-and-rect.execution.mjs +6 -3
- package/esm2022/domain/f-connectors/i-closest-connector.mjs +1 -1
- package/esm2022/domain/f-connectors/mark-connectable-connectors/mark-connectable-connectors.execution.mjs +4 -1
- package/esm2022/domain/f-connectors/providers.mjs +4 -1
- package/esm2022/domain/f-connectors/remove-input-from-store/remove-input-from-store.execution.mjs +6 -3
- package/esm2022/domain/f-connectors/remove-outlet-from-store/remove-outlet-from-store.execution.mjs +6 -3
- package/esm2022/domain/f-connectors/remove-output-from-store/remove-output-from-store.execution.mjs +6 -3
- package/esm2022/domain/f-connectors/unmark-connectable-connectors/unmark-connectable-connectors.execution.mjs +4 -1
- package/esm2022/domain/f-draggable/add-dnd-to-store/add-dnd-to-store.execution.mjs +6 -3
- package/esm2022/domain/f-draggable/emit-selection-change-event/emit-selection-change-event.execution.mjs +10 -6
- package/esm2022/domain/f-draggable/end-drag-sequence/end-drag-sequence.execution.mjs +7 -4
- package/esm2022/domain/f-draggable/initialize-drag-sequence/initialize-drag-sequence.execution.mjs +4 -1
- package/esm2022/domain/f-draggable/is-drag-started/is-drag-started.execution.mjs +6 -3
- package/esm2022/domain/f-draggable/on-pointer-move/on-pointer-move.execution.mjs +8 -3
- package/esm2022/domain/f-draggable/prepare-drag-sequence/prepare-drag-sequence.execution.mjs +6 -3
- package/esm2022/domain/f-draggable/providers.mjs +4 -1
- package/esm2022/domain/f-draggable/remove-dnd-from-store/remove-dnd-from-store.execution.mjs +6 -3
- package/esm2022/domain/f-draggable/start-drag-sequence/start-drag-sequence.execution.mjs +9 -6
- package/esm2022/domain/f-flow/add-flow-to-store/add-flow-to-store.execution.mjs +6 -3
- package/esm2022/domain/f-flow/get-flow/get-flow.execution.mjs +6 -3
- package/esm2022/domain/f-flow/get-flow-host-element/get-flow-host-element.execution.mjs +6 -3
- package/esm2022/domain/f-flow/get-flow-state/get-flow-state-connections/get-flow-state-connections.execution.mjs +6 -3
- package/esm2022/domain/f-flow/get-flow-state/get-flow-state-nodes/get-flow-state-nodes.execution.mjs +12 -12
- package/esm2022/domain/f-flow/get-flow-state/get-flow-state.execution.mjs +11 -8
- package/esm2022/domain/f-flow/get-flow-state/providers.mjs +4 -1
- package/esm2022/domain/f-flow/providers.mjs +6 -1
- package/esm2022/domain/f-flow/remove-flow-from-store/remove-flow-from-store.execution.mjs +6 -3
- package/esm2022/domain/f-line-alignment/add-line-alignment-to-store/add-line-alignment-to-store.execution.mjs +6 -3
- package/esm2022/domain/f-line-alignment/providers.mjs +6 -1
- package/esm2022/domain/f-line-alignment/remove-line-alignment-from-store/remove-line-alignment-from-store.execution.mjs +6 -3
- package/esm2022/domain/f-node/add-node-to-store/add-node-to-store.execution.mjs +6 -3
- package/esm2022/domain/f-node/calculate-input-connections/calculate-input-connections.execution.mjs +7 -4
- package/esm2022/domain/f-node/calculate-nodes-bounding-box/calculate-nodes-bounding-box.execution.mjs +7 -3
- package/esm2022/domain/f-node/calculate-nodes-bounding-box-normalized-position/calculate-nodes-bounding-box-normalized-position.execution.mjs +8 -3
- package/esm2022/domain/f-node/calculate-output-connections/calculate-output-connections.execution.mjs +7 -4
- package/esm2022/domain/f-node/get-node-padding/get-node-padding.execution.mjs +5 -1
- package/esm2022/domain/f-node/get-nodes/get-nodes.execution.mjs +6 -3
- package/esm2022/domain/f-node/get-parent-nodes/get-parent-nodes.execution.mjs +6 -3
- package/esm2022/domain/f-node/providers.mjs +4 -1
- package/esm2022/domain/f-node/remove-node-from-store/remove-node-from-store.execution.mjs +6 -3
- package/esm2022/domain/f-node/update-node-when-state-or-size-changed/update-node-when-state-or-size-changed.execution.mjs +30 -3
- package/esm2022/domain/f-selection/clear-selection/clear-selection.execution.mjs +4 -1
- package/esm2022/domain/f-selection/get-can-be-selected-items/get-can-be-selected-items.execution.mjs +20 -8
- package/esm2022/domain/f-selection/get-current-selection/get-current-selection.execution.mjs +4 -1
- package/esm2022/domain/f-selection/providers.mjs +4 -1
- package/esm2022/domain/f-selection/select/select.execution.mjs +7 -4
- package/esm2022/domain/f-selection/select-all/select-all.execution.mjs +8 -4
- package/esm2022/domain/f-selection/select-and-update-node-layer/select-and-update-node-layer.execution.mjs +17 -17
- package/esm2022/domain/f-zoom/add-zoom-to-store/add-zoom-to-store.execution.mjs +6 -3
- package/esm2022/domain/f-zoom/providers.mjs +6 -1
- package/esm2022/domain/f-zoom/remove-zoom-from-store/remove-zoom-from-store.execution.mjs +6 -3
- package/esm2022/domain/f-zoom/reset-zoom/reset-zoom.execution.mjs +6 -3
- package/esm2022/domain/f-zoom/set-zoom/set-zoom.execution.mjs +11 -7
- package/esm2022/domain/get-deep-children-nodes-and-groups/get-deep-children-nodes-and-groups.execution.mjs +7 -3
- package/esm2022/domain/get-element-rounded-rect/get-element-rounded-rect.execution.mjs +8 -4
- package/esm2022/domain/get-normalized-connector-rect/get-normalized-connector-rect.execution.mjs +11 -6
- package/esm2022/domain/get-normalized-element-rect/get-normalized-element-rect.execution.mjs +10 -5
- package/esm2022/domain/get-normalized-point/get-normalized-point.execution.mjs +9 -4
- package/esm2022/domain/providers.mjs +7 -1
- package/esm2022/domain/sort-item-layers/sort-item-layers.execution.mjs +15 -8
- package/esm2022/domain/sort-item-layers/sort-items-by-parent/sort-items-by-parent.execution.mjs +12 -7
- package/esm2022/domain/sort-item-layers/sort-node-layers-by-groups/sort-node-layers.execution.mjs +13 -8
- package/esm2022/domain/update-item-and-children-layers/move-front-elements-before-target-element/move-front-elements-before-target-element.execution.mjs +5 -1
- package/esm2022/domain/update-item-and-children-layers/update-item-and-children-layers.execution.mjs +10 -6
- package/esm2022/drag-toolkit/drag-and-drop-base.mjs +55 -1
- package/esm2022/f-canvas/f-canvas.component.mjs +67 -20
- package/esm2022/f-zoom/f-zoom.directive.mjs +8 -2
- package/f-canvas/f-canvas.component.d.ts +51 -3
- package/f-connection/providers.d.ts +1 -1
- package/f-draggable/f-connection/providers.d.ts +1 -1
- package/f-draggable/f-node-move/create-move-nodes-drag-model-from-selection/providers.d.ts +1 -1
- package/f-draggable/f-node-move/providers.d.ts +1 -1
- package/f-draggable/providers.d.ts +1 -1
- package/f-external-item/domain/providers.d.ts +1 -1
- package/f-minimap/providers.d.ts +1 -1
- package/f-node/providers.d.ts +2 -2
- package/f-storage/providers.d.ts +1 -1
- package/f-zoom/f-zoom.directive.d.ts +1 -0
- package/fesm2022/foblex-flow.mjs +756 -259
- package/fesm2022/foblex-flow.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
import { IMouseEvent, IPointerUpEvent, ITouchDownEvent, ITouchMoveEvent, } from './pointer-events';
|
|
2
2
|
import { EventExtensions } from './event.extensions';
|
|
3
3
|
export const MOUSE_EVENT_IGNORE_TIME = 800;
|
|
4
|
+
/**
|
|
5
|
+
* Base class for implementing drag and drop functionality.
|
|
6
|
+
* It handles mouse and touch events, manages the drag start sequence,
|
|
7
|
+
* and provides abstract methods for derived classes to implement specific behaviors.
|
|
8
|
+
*/
|
|
4
9
|
export class DragAndDropBase {
|
|
5
10
|
ngZone;
|
|
6
11
|
document;
|
|
@@ -22,6 +27,12 @@ export class DragAndDropBase {
|
|
|
22
27
|
constructor(ngZone) {
|
|
23
28
|
this.ngZone = ngZone;
|
|
24
29
|
}
|
|
30
|
+
/**
|
|
31
|
+
* Handles the mouse down event to initiate the drag sequence.
|
|
32
|
+
* It checks if the event is synthetic or fake, and if the drag is already started.
|
|
33
|
+
* If not, it sets up the drag start sequence by adding necessary event listeners.
|
|
34
|
+
* @param event - The mouse event that triggered the drag.
|
|
35
|
+
*/
|
|
25
36
|
onMouseDown = (event) => {
|
|
26
37
|
const isSyntheticEvent = this.isSyntheticEvent(event);
|
|
27
38
|
const isFakeEvent = isFakeMousedownFromScreenReader(event);
|
|
@@ -50,6 +61,12 @@ export class DragAndDropBase {
|
|
|
50
61
|
};
|
|
51
62
|
}
|
|
52
63
|
};
|
|
64
|
+
/**
|
|
65
|
+
* Handles the touch down event to initiate the drag sequence.
|
|
66
|
+
* It checks if the event is synthetic or fake, and if the drag is already started.
|
|
67
|
+
* If not, it sets up the drag start sequence by adding necessary event listeners.
|
|
68
|
+
* @param event - The touch event that triggered the drag.
|
|
69
|
+
*/
|
|
53
70
|
onTouchDown = (event) => {
|
|
54
71
|
const isFakeEvent = isFakeTouchstartFromScreenReader(event);
|
|
55
72
|
const touchEvent = new ITouchDownEvent(event);
|
|
@@ -77,15 +94,39 @@ export class DragAndDropBase {
|
|
|
77
94
|
};
|
|
78
95
|
}
|
|
79
96
|
};
|
|
97
|
+
/**
|
|
98
|
+
* Handles the select start event.
|
|
99
|
+
* This method is called when the user starts selecting text or elements.
|
|
100
|
+
* It prevents the default behavior and calls the onSelect method to handle the selection.
|
|
101
|
+
* @param event - The event that triggered the select start.
|
|
102
|
+
*/
|
|
80
103
|
onSelectStart = (event) => {
|
|
81
104
|
this.onSelect(event);
|
|
82
105
|
};
|
|
106
|
+
/**
|
|
107
|
+
* Handles the mouse move event during the drag sequence.
|
|
108
|
+
* It checks if the drag sequence should start and calls the move handler accordingly.
|
|
109
|
+
* @param event - The mouse event that triggered the move.
|
|
110
|
+
*/
|
|
83
111
|
onMouseMove = (event) => {
|
|
84
112
|
this.moveHandler(new IMouseEvent(event));
|
|
85
113
|
};
|
|
114
|
+
/**
|
|
115
|
+
* Handles the touch move event during the drag sequence.
|
|
116
|
+
* It checks if the drag sequence should start and calls the move handler accordingly.
|
|
117
|
+
* @param event - The touch event that triggered the move.
|
|
118
|
+
*/
|
|
86
119
|
onTouchMove = (event) => {
|
|
87
120
|
this.moveHandler(new ITouchMoveEvent(event));
|
|
88
121
|
};
|
|
122
|
+
/**
|
|
123
|
+
* Checks if the drag sequence should start based on the pointer position.
|
|
124
|
+
* It compares the current pointer position with the initial drag start position
|
|
125
|
+
* and checks if the distance exceeds the drag start threshold.
|
|
126
|
+
* If the threshold is exceeded and the delay has passed,
|
|
127
|
+
* it prepares the drag sequence and sets the move handler to onPointerMove.
|
|
128
|
+
* @param event - The pointer event that triggered the check.
|
|
129
|
+
*/
|
|
89
130
|
checkDragSequenceToStart(event) {
|
|
90
131
|
const pointerPosition = event.getPosition();
|
|
91
132
|
if (!this.isDragStarted && this.pointerDownElement) {
|
|
@@ -109,12 +150,25 @@ export class DragAndDropBase {
|
|
|
109
150
|
}
|
|
110
151
|
}
|
|
111
152
|
}
|
|
153
|
+
/**
|
|
154
|
+
* Handles the pointer up event at the end of the drag sequence.
|
|
155
|
+
* It checks if the drag has started and calls the onPointerUp method.
|
|
156
|
+
* It also ends the drag sequence by resetting the state and removing event listeners.
|
|
157
|
+
* This method is called when the user releases the mouse button or lifts their finger from the touch screen.
|
|
158
|
+
* @param event - The pointer event that triggered the up action.
|
|
159
|
+
*/
|
|
112
160
|
onPointerUpEvent = (event) => {
|
|
113
161
|
if (this.isDragStarted) {
|
|
114
162
|
this.onPointerUp(new IPointerUpEvent(event));
|
|
115
163
|
}
|
|
116
164
|
this.endDragSequence();
|
|
117
165
|
};
|
|
166
|
+
/**
|
|
167
|
+
* Ends the drag sequence by resetting the state and removing event listeners.
|
|
168
|
+
* It sets the isDragStarted flag to false, clears the pointerDownElement,
|
|
169
|
+
* and resets the moveHandler to checkDragSequenceToStart.
|
|
170
|
+
* It also removes all mouse and touch event listeners that were added during the drag sequence.
|
|
171
|
+
*/
|
|
118
172
|
endDragSequence() {
|
|
119
173
|
this.isDragStarted = false;
|
|
120
174
|
this.pointerDownElement = null;
|
|
@@ -166,4 +220,4 @@ function isFakeTouchstartFromScreenReader(event) {
|
|
|
166
220
|
(touch.radiusX == null || touch.radiusX === 1) &&
|
|
167
221
|
(touch.radiusY == null || touch.radiusY === 1));
|
|
168
222
|
}
|
|
169
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1hbmQtZHJvcC1iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9kcmFnLXRvb2xraXQvZHJhZy1hbmQtZHJvcC1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFDTCxXQUFXLEVBRVgsZUFBZSxFQUNmLGVBQWUsRUFDZixlQUFlLEdBQ2hCLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBRW5ELE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLEdBQUcsQ0FBQztBQUUzQyxNQUFNLE9BQWdCLGVBQWU7SUFnQ3ZCO0lBNUJKLFFBQVEsQ0FBdUI7SUFFL0IsY0FBYyxHQUFhLGVBQWUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMzRCxjQUFjLEdBQWEsZUFBZSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBRTNELGNBQWMsR0FBYSxlQUFlLENBQUMsYUFBYSxFQUFFLENBQUM7SUFFNUQsZ0JBQWdCLENBQUMsS0FBaUI7UUFDdkMsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFrQjtZQUM5QixDQUFDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyx1QkFBdUIsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRU8sa0JBQWtCLEdBQVcsQ0FBQyxDQUFDO0lBRWhDLGFBQWEsR0FBWSxLQUFLLENBQUM7SUFDOUIsa0JBQWtCLEdBQVcsQ0FBQyxDQUFDO0lBQy9CLGNBQWMsR0FBVyxDQUFDLENBQUM7SUFFM0IsYUFBYSxHQUFXLENBQUMsQ0FBQztJQUMxQixpQkFBaUIsR0FBNkIsRUFBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUMsQ0FBQztJQUkzRCxXQUFXLEdBQWEsSUFBSSxDQUFDLHdCQUF3QixDQUFDO0lBRXRELGtCQUFrQixHQUF1QixJ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LE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsSUFBSSxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDM0YsT0FBTyxDQUNMLENBQUMsQ0FBQyxLQUFLO1FBQ1AsS0FBSyxDQUFDLFVBQVUsS0FBSyxDQUFDLENBQUM7UUFDdkIsQ0FBQyxLQUFLLENBQUMsT0FBTyxJQUFJLElBQUksSUFBSSxLQUFLLENBQUMsT0FBTyxLQUFLLENBQUMsQ0FBQztRQUM5QyxDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksSUFBSSxJQUFJLEtBQUssQ0FBQyxPQUFPLEtBQUssQ0FBQyxDQUFDLENBQy9DLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJQ2FuUnVuT3V0c2lkZUFuZ3VsYXJ9IGZyb20gJy4vaS1jYW4tcnVuLW91dHNpZGUtYW5ndWxhcic7XG5pbXBvcnQge1xuICBJTW91c2VFdmVudCxcbiAgSVBvaW50ZXJFdmVudCxcbiAgSVBvaW50ZXJVcEV2ZW50LFxuICBJVG91Y2hEb3duRXZlbnQsXG4gIElUb3VjaE1vdmVFdmVudCxcbn0gZnJvbSAnLi9wb2ludGVyLWV2ZW50cyc7XG5pbXBvcnQge0V2ZW50RXh0ZW5zaW9uc30gZnJvbSAnLi9ldmVudC5leHRlbnNpb25zJztcblxuZXhwb3J0IGNvbnN0IE1PVVNFX0VWRU5UX0lHTk9SRV9USU1FID0gODAwO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRHJhZ0FuZERyb3BCYXNlIHtcblxuICBwdWJsaWMgYWJzdHJhY3QgaG9zdEVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuXG4gIHByaXZhdGUgZG9jdW1lbnQ6IERvY3VtZW50IHwgdW5kZWZpbmVkO1xuXG4gIHByaXZhdGUgbW91c2VMaXN0ZW5lcnM6IEZ1bmN0aW9uID0gRXZlbnRFeHRlbnNpb25zLmVtcHR5TGlzdGVuZXIoKTtcbiAgcHJpdmF0ZSB0b3VjaExpc3RlbmVyczogRnVuY3Rpb24gPSBFdmVudEV4dGVuc2lvbnMuZW1wdHlMaXN0ZW5lcigpO1xuXG4gIHByaXZhdGUgc3RhcnRMaXN0ZW5lcnM6IEZ1bmN0aW9uID0gRXZlbnRFeHRlbnNpb25zLmVtcHR5TGlzdGVuZXIoKTtcblxuICBwdWJsaWMgaXNTeW50aGV0aWNFdmVudChldmVudDogTW91c2VFdmVudCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMubGFzdFRvdWNoRXZlbnRUaW1lICYmXG4gICAgICAodGhpcy5sYXN0VG91Y2hFdmVudFRpbWUgKyBNT1VTRV9FVkVOVF9JR05PUkVfVElNRSA+IERhdGUubm93KCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBsYXN0VG91Y2hFdmVudFRpbWU6IG51bWJlciA9IDA7XG5cbiAgcHVibGljIGlzRHJhZ1N0YXJ0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBkcmFnU3RhcnRUaHJlc2hvbGQ6IG51bWJlciA9IDM7XG4gIHByaXZhdGUgZHJhZ1N0YXJ0RGVsYXk6IG51bWJlciA9IDA7XG5cbiAgcHJpdmF0ZSBkcmFnU3RhcnRUaW1lOiBudW1iZXIgPSAwO1xuICBwcml2YXRlIGRyYWdTdGFydFBvc2l0aW9uOiB7IHg6IG51bWJlciwgeTogbnVtYmVyIH0gPSB7eDogMCwgeTogMH07XG5cbiAgcHVibGljIGFic3RyYWN0IGRpc2FibGVkOiBib29sZWFuO1xuXG4gIHByaXZhdGUgbW92ZUhhbmRsZXI6IEZ1bmN0aW9uID0gdGhpcy5jaGVja0RyYWdTZXF1ZW5jZVRvU3RhcnQ7XG5cbiAgcHJpdmF0ZSBwb2ludGVyRG93bkVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBuZ1pvbmU6IElDYW5SdW5PdXRzaWRlQW5ndWxhciB8IHVuZGVmaW5lZFxuICApIHtcbiAgfVxuXG4gIHByaXZhdGUgb25Nb3VzZURvd24gPSAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICBjb25zdCBpc1N5bnRoZXRpY0V2ZW50ID0gdGhpcy5pc1N5bnRoZXRpY0V2ZW50KGV2ZW50KTtcbiAgICBjb25zdCBpc0Zha2VFdmVudCA9IGlzRmFrZU1vdXNlZG93bkZyb21TY3JlZW5SZWFkZXIoZXZlbnQpO1xuICAgIGNvbnN0IG1vdXNlRXZlbnQgPSBuZXcgSU1vdXNlRXZlbnQoZXZlbnQpO1xuXG4gICAgaWYgKGlzU3ludGhldGljRXZlbnQgfHwgaXNGYWtlRXZlbnQgfHwgdGhpcy5kaXNhYmxlZCB8fCB0aGlzLmlzRHJhZ1N0YXJ0ZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5wb2ludGVyRG93bkVsZW1lbnQgPSBtb3VzZUV2ZW50LnRhcmdldEVsZW1lbnQ7XG4gICAgbGV0IHJlc3VsdCA9IHRoaXMub25Qb2ludGVyRG93bihtb3VzZUV2ZW50KTtcbiAgICBpZiAocmVzdWx0KSB7XG5cbiAgICAgIHRoaXMuZHJhZ1N0YXJ0VGltZSA9IERhdGUubm93KCk7XG4gICAgICB0aGlzLmRyYWdTdGFydFBvc2l0aW9uID0gbW91c2VFdmVudC5nZXRQb3NpdGlvbigpO1xuXG4gICAgICB0aGlzLm5nWm9uZT8ucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICB0aGlzLmRvY3VtZW50Py5hZGRFdmVudExpc3RlbmVyKCdzZWxlY3RzdGFydCcsIHRoaXMub25TZWxlY3RTdGFydCwgRXZlbnRFeHRlbnNpb25zLmFjdGl2ZUxpc3RlbmVyKCkpO1xuICAgICAgICB0aGlzLmRvY3VtZW50Py5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCB0aGlzLm9uTW91c2VNb3ZlKTtcbiAgICAgICAgdGhpcy5kb2N1bWVudD8uYWRkRXZlbnRMaXN0ZW5lcigncG9pbnRlcnVwJywgdGhpcy5vblBvaW50ZXJVcEV2ZW50KTtcbiAgICAgICAgdGhpcy5kb2N1bWVudD8uYWRkRXZlbnRMaXN0ZW5lcigncG9pbnRlcmNhbmNlbCcsIHRoaXMub25Qb2ludGVyVXBFdmVudCwgRXZlbnRFeHRlbnNpb25zLmFjdGl2ZUNhcHR1cmVMaXN0ZW5lcigpKTtcbiAgICAgICAgdGhpcy5kb2N1bWVudD8uYWRkRXZlbnRMaXN0ZW5lcignY29udGV4dG1lbnUnLCB0aGlzLm9uQ29udGV4dE1lbnVEdXJpbmdEcmFnLCBFdmVudEV4dGVuc2lvbnMuYWN0aXZlQ2FwdHVyZUxpc3RlbmVyKCkpO1xuICAgICAgfSk7XG5cbiAgICAgIHRoaXMubW91c2VMaXN0ZW5lcnMgPSAoKSA9PiB7XG4gICAgICAgIHRoaXMuZG9jdW1lbnQ/LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3NlbGVjdHN0YXJ0JywgdGhpcy5vblNlbGVjdFN0YXJ0LCBFdmVudEV4dGVuc2lvbnMuYWN0aXZlTGlzdGVuZXIoKSk7XG4gICAgICAgIHRoaXMuZG9jdW1lbnQ/LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHRoaXMub25Nb3VzZU1vdmUpO1xuICAgICAgICB0aGlzLmRvY3VtZW50Py5yZW1vdmVFdmVudExpc3RlbmVyKCdwb2ludGVydXAnLCB0aGlzLm9uUG9pbnRlclVwRXZlbnQpO1xuICAgICAgICB0aGlzLmRvY3VtZW50Py5yZW1vdmVFdmVudExpc3RlbmVyKCdwb2ludGVyY2FuY2VsJywgdGhpcy5vblBvaW50ZXJVcEV2ZW50LCBFdmVudEV4dGVuc2lvbnMuYWN0aXZlQ2FwdHVyZUxpc3RlbmVyKCkpO1xuICAgICAgICB0aGlzLmRvY3VtZW50Py5yZW1vdmVFdmVudExpc3RlbmVyKCdjb250ZXh0bWVudScsIHRoaXMub25Db250ZXh0TWVudUR1cmluZ0RyYWcsIEV2ZW50RXh0ZW5zaW9ucy5hY3RpdmVDYXB0dXJlTGlzdGVuZXIoKSk7XG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgb25Ub3VjaERvd24gPSAoZXZlbnQ6IFRvdWNoRXZlbnQpID0+IHtcbiAgICBjb25zdCBpc0Zha2VFdmVudCA9IGlzRmFrZVRvdWNoc3RhcnRGcm9tU2NyZWVuUmVhZGVyKGV2ZW50IGFzIFRvdWNoRXZlbnQpXG4gICAgY29uc3QgdG91Y2hFdmVudCA9IG5ldyBJVG91Y2hEb3duRXZlbnQoZXZlbnQpO1xuXG4gICAgaWYgKGlzRmFrZUV2ZW50IHx8IHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5pc0RyYWdTdGFydGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMucG9pbnRlckRvd25FbGVtZW50ID0gdG91Y2hFdmVudC50YXJnZXRFbGVtZW50O1xuICAgIGxldCByZXN1bHQgPSB0aGlzLm9uUG9pbnRlckRvd24odG91Y2hFdmVudCk7XG4gICAgaWYgKHJlc3VsdCkge1xuXG4gICAgICB0aGlzLmRyYWdTdGFydFRpbWUgPSBEYXRlLm5vdygpO1xuICAgICAgdGhpcy5kcmFnU3RhcnRQb3NpdGlvbiA9IHRvdWNoRXZlbnQuZ2V0UG9zaXRpb24oKTtcblxuICAgICAgdGhpcy5uZ1pvbmU/LnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgdGhpcy5kb2N1bWVudD8uYWRkRXZlbnRMaXN0ZW5lcignc2VsZWN0c3RhcnQnLCB0aGlzLm9uU2VsZWN0U3RhcnQsIEV2ZW50RXh0ZW5zaW9ucy5hY3RpdmVMaXN0ZW5lcigpKTtcbiAgICAgICAgdGhpcy5kb2N1bWVudD8uYWRkRXZlbnRMaXN0ZW5lcigndG91Y2htb3ZlJywgdGhpcy5vblRvdWNoTW92ZSk7XG4gICAgICAgIHRoaXMuZG9jdW1lbnQ/LmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJ1cCcsIHRoaXMub25Qb2ludGVyVXBFdmVudCk7XG4gICAgICAgIHRoaXMuZG9jdW1lbnQ/LmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJjYW5jZWwnLCB0aGlzLm9uUG9pbnRlclVwRXZlbnQsIEV2ZW50RXh0ZW5zaW9ucy5hY3RpdmVDYXB0dXJlTGlzdGVuZXIoKSk7XG4gICAgICAgIHRoaXMuZG9jdW1lbnQ/LmFkZEV2ZW50TGlzdGVuZXIoJ2NvbnRleHRtZW51JywgdGhpcy5vbkNvbnRleHRNZW51RHVyaW5nRHJhZywgRXZlbnRFeHRlbnNpb25zLmFjdGl2ZUNhcHR1cmVMaXN0ZW5lcigpKTtcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLnRvdWNoTGlzdGVuZXJzID0gKCkgPT4ge1xuICAgICAgICB0aGlzLmRvY3VtZW50Py5yZW1vdmVFdmVudExpc3RlbmVyKCdzZWxlY3RzdGFydCcsIHRoaXMub25TZWxlY3RTdGFydCwgRXZlbnRFeHRlbnNpb25zLmFjdGl2ZUxpc3RlbmVyKCkpO1xuICAgICAgICB0aGlzLmRvY3VtZW50Py5yZW1vdmVFdmVudExpc3RlbmVyKCd0b3VjaG1vdmUnLCB0aGlzLm9uVG91Y2hNb3ZlKTtcbiAgICAgICAgdGhpcy5kb2N1bWVudD8ucmVtb3ZlRXZlbnRMaXN0ZW5lcigncG9pbnRlcnVwJywgdGhpcy5vblBvaW50ZXJVcEV2ZW50KTtcbiAgICAgICAgdGhpcy5kb2N1bWVudD8ucmVtb3ZlRXZlbnRMaXN0ZW5lcigncG9pbnRlcmNhbmNlbCcsIHRoaXMub25Qb2ludGVyVXBFdmVudCwgRXZlbnRFeHRlbnNpb25zLmFjdGl2ZUNhcHR1cmVMaXN0ZW5lcigpKTtcbiAgICAgICAgdGhpcy5kb2N1bWVudD8ucmVtb3ZlRXZlbnRMaXN0ZW5lcignY29udGV4dG1lbnUnLCB0aGlzLm9uQ29udGV4dE1lbnVEdXJpbmdEcmFnLCBFdmVudEV4dGVuc2lvbnMuYWN0aXZlQ2FwdHVyZUxpc3RlbmVyKCkpO1xuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG9uU2VsZWN0U3RhcnQgPSAoZXZlbnQ6IEV2ZW50KSA9PiB7XG4gICAgdGhpcy5vblNlbGVjdChldmVudCk7XG4gIH1cblxuICBwcml2YXRlIG9uTW91c2VNb3ZlID0gKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgdGhpcy5tb3ZlSGFuZGxlcihuZXcgSU1vdXNlRXZlbnQoZXZlbnQpKTtcbiAgfVxuXG4gIHByaXZhdGUgb25Ub3VjaE1vdmUgPSAoZXZlbnQ6IFRvdWNoRXZlbnQpID0+IHtcbiAgICB0aGlzLm1vdmVIYW5kbGVyKG5ldyBJVG91Y2hNb3ZlRXZlbnQoZXZlbnQpKTtcbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tEcmFnU2VxdWVuY2VUb1N0YXJ0KGV2ZW50OiBJUG9pbnRlckV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgcG9pbnRlclBvc2l0aW9uID0gZXZlbnQuZ2V0UG9zaXRpb24oKTtcblxuICAgIGlmICghdGhpcy5pc0RyYWdTdGFydGVkICYmIHRoaXMucG9pbnRlckRvd25FbGVtZW50KSB7XG4gICAgICBldmVudC5zZXRUYXJnZXQodGhpcy5wb2ludGVyRG93bkVsZW1lbnQpO1xuICAgICAgY29uc3QgZGlzdGFuY2VYID0gTWF0aC5hYnMocG9pbnRlclBvc2l0aW9uLnggLSB0aGlzLmRyYWdTdGFydFBvc2l0aW9uLngpO1xuICAgICAgY29uc3QgZGlzdGFuY2VZID0gTWF0aC5hYnMocG9pbnRlclBvc2l0aW9uLnkgLSB0aGlzLmRyYWdTdGFydFBvc2l0aW9uLnkpO1xuICAgICAgY29uc3QgaXNPdmVyVGhyZXNob2xkID0gZGlzdGFuY2VYICsgZGlzdGFuY2VZID49IHRoaXMuZHJhZ1N0YXJ0VGhyZXNob2xkO1xuXG4gICAgICBpZiAoaXNPdmVyVGhyZXNob2xkKSB7XG4gICAgICAgIGNvbnN0IGlzRGVsYXlFbGFwc2VkID0gRGF0ZS5ub3coKSA+PSB0aGlzLmRyYWdTdGFydFRpbWUgKyB0aGlzLmRyYWdTdGFydERlbGF5O1xuXG4gICAgICAgIGlmICghaXNEZWxheUVsYXBzZWQpIHtcbiAgICAgICAgICB0aGlzLmVuZERyYWdTZXF1ZW5jZSgpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMucHJlcGFyZURyYWdTZXF1ZW5jZShldmVudCk7XG4gICAgICAgIHRoaXMuaXNEcmFnU3RhcnRlZCA9IHRydWU7XG4gICAgICAgIHRoaXMubW92ZUhhbmRsZXIgPSB0aGlzLm9uUG9pbnRlck1vdmU7XG4gICAgICAgIGlmIChpc1RvdWNoRXZlbnQoZXZlbnQub3JpZ2luYWxFdmVudCkpIHtcbiAgICAgICAgICB0aGlzLmxhc3RUb3VjaEV2ZW50VGltZSA9IERhdGUubm93KCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgcHJlcGFyZURyYWdTZXF1ZW5jZShldmVudDogSVBvaW50ZXJFdmVudCk6IHZvaWQ7XG5cbiAgcHJpdmF0ZSBvblBvaW50ZXJVcEV2ZW50ID0gKGV2ZW50OiBQb2ludGVyRXZlbnQpID0+IHtcbiAgICBpZiAodGhpcy5pc0RyYWdTdGFydGVkKSB7XG4gICAgICB0aGlzLm9uUG9pbnRlclVwKG5ldyBJUG9pbnRlclVwRXZlbnQoZXZlbnQpKTtcbiAgICB9XG4gICAgdGhpcy5lbmREcmFnU2VxdWVuY2UoKTtcbiAgfVxuXG4gIHByaXZhdGUgZW5kRHJhZ1NlcXVlbmNlKCk6IHZvaWQge1xuICAgIHRoaXMuaXNEcmFnU3RhcnRlZCA9IGZhbHNlO1xuICAgIHRoaXMucG9pbnRlckRvd25FbGVtZW50ID0gbnVsbDtcblxuICAgIHRoaXMubW92ZUhhbmRsZXIgPSB0aGlzLmNoZWNrRHJhZ1NlcXVlbmNlVG9TdGFydDtcbiAgICB0aGlzLm1vdXNlTGlzdGVuZXJzKCk7XG4gICAgdGhpcy5tb3VzZUxpc3RlbmVycyA9IEV2ZW50RXh0ZW5zaW9ucy5lbXB0eUxpc3RlbmVyKCk7XG4gICAgdGhpcy50b3VjaExpc3RlbmVycygpO1xuICAgIHRoaXMudG91Y2hMaXN0ZW5lcnMgPSBFdmVudEV4dGVuc2lvbnMuZW1wdHlMaXN0ZW5lcigpO1xuICAgIHRoaXMuZmluYWxpemVEcmFnU2VxdWVuY2UoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBmaW5hbGl6ZURyYWdTZXF1ZW5jZSgpOiB2b2lkO1xuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBvblNlbGVjdChldmVudDogRXZlbnQpOiB2b2lkO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBvblBvaW50ZXJEb3duKGV2ZW50OiBJUG9pbnRlckV2ZW50KTogYm9vbGVhbjtcblxuICBwdWJsaWMgYWJzdHJhY3Qgb25Qb2ludGVyTW92ZShldmVudDogSVBvaW50ZXJFdmVudCk6IHZvaWQ7XG5cbiAgcHVibGljIGFic3RyYWN0IG9uUG9pbnRlclVwKGV2ZW50OiBJUG9pbnRlckV2ZW50KTogdm9pZDtcblxuICBwdWJsaWMgc3Vic2NyaWJlKGZEb2N1bWVudDogRG9jdW1lbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kb2N1bWVudCkge1xuICAgICAgdGhpcy51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgICB0aGlzLmRvY3VtZW50ID0gZkRvY3VtZW50O1xuXG4gICAgdGhpcy5uZ1pvbmU/LnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIGZEb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWRvd24nLCB0aGlzLm9uTW91c2VEb3duLCBFdmVudEV4dGVuc2lvbnMuYWN0aXZlTGlzdGVuZXIoKSk7XG4gICAgICBmRG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hzdGFydCcsIHRoaXMub25Ub3VjaERvd24sIEV2ZW50RXh0ZW5zaW9ucy5wYXNzaXZlTGlzdGVuZXIoKSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnN0YXJ0TGlzdGVuZXJzID0gKCkgPT4ge1xuICAgICAgZkRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIHRoaXMub25Nb3VzZURvd24sIEV2ZW50RXh0ZW5zaW9ucy5hY3RpdmVMaXN0ZW5lcigpKTtcbiAgICAgIGZEb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgdGhpcy5vblRvdWNoRG93biwgRXZlbnRFeHRlbnNpb25zLnBhc3NpdmVMaXN0ZW5lcigpKTtcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIHVuc3Vic2NyaWJlKCk6IHZvaWQge1xuXG4gICAgdGhpcy5zdGFydExpc3RlbmVycygpO1xuICAgIHRoaXMuc3RhcnRMaXN0ZW5lcnMgPSBFdmVudEV4dGVuc2lvbnMuZW1wdHlMaXN0ZW5lcigpO1xuICAgIHRoaXMudG91Y2hMaXN0ZW5lcnMoKTtcbiAgICB0aGlzLnRvdWNoTGlzdGVuZXJzID0gRXZlbnRFeHRlbnNpb25zLmVtcHR5TGlzdGVuZXIoKTtcbiAgICB0aGlzLm1vdXNlTGlzdGVuZXJzKCk7XG4gICAgdGhpcy5tb3VzZUxpc3RlbmVycyA9IEV2ZW50RXh0ZW5zaW9ucy5lbXB0eUxpc3RlbmVyKCk7XG4gIH1cblxuICBwcml2YXRlIG9uQ29udGV4dE1lbnVEdXJpbmdEcmFnID0gKGU6IEV2ZW50KSA9PiB7XG4gICAgaWYgKHRoaXMuaXNEcmFnU3RhcnRlZCkge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgfTtcbn1cblxuZnVuY3Rpb24gaXNUb3VjaEV2ZW50KGV2ZW50OiBNb3VzZUV2ZW50IHwgVG91Y2hFdmVudCk6IGV2ZW50IGlzIFRvdWNoRXZlbnQge1xuICByZXR1cm4gZXZlbnQudHlwZVswXSA9PT0gJ3QnO1xufVxuXG5mdW5jdGlvbiBpc0Zha2VNb3VzZWRvd25Gcm9tU2NyZWVuUmVhZGVyKGV2ZW50OiBNb3VzZUV2ZW50KTogYm9vbGVhbiB7XG4gIHJldHVybiBldmVudC5idXR0b25zID09PSAwIHx8IChldmVudC5vZmZzZXRYID09PSAwICYmIGV2ZW50Lm9mZnNldFkgPT09IDApO1xufVxuXG5mdW5jdGlvbiBpc0Zha2VUb3VjaHN0YXJ0RnJvbVNjcmVlblJlYWRlcihldmVudDogVG91Y2hFdmVudCk6IGJvb2xlYW4ge1xuICBjb25zdCB0b3VjaDogVG91Y2ggfCB1bmRlZmluZWQgPVxuICAgIChldmVudC50b3VjaGVzICYmIGV2ZW50LnRvdWNoZXNbMF0pIHx8IChldmVudC5jaGFuZ2VkVG91Y2hlcyAmJiBldmVudC5jaGFuZ2VkVG91Y2hlc1swXSk7XG4gIHJldHVybiAoXG4gICAgISF0b3VjaCAmJlxuICAgIHRvdWNoLmlkZW50aWZpZXIgPT09IC0xICYmXG4gICAgKHRvdWNoLnJhZGl1c1ggPT0gbnVsbCB8fCB0b3VjaC5yYWRpdXNYID09PSAxKSAmJlxuICAgICh0b3VjaC5yYWRpdXNZID09IG51bGwgfHwgdG91Y2gucmFkaXVzWSA9PT0gMSlcbiAgKTtcbn1cbiJdfQ==
|
|
223
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1hbmQtZHJvcC1iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9kcmFnLXRvb2xraXQvZHJhZy1hbmQtZHJvcC1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFDTCxXQUFXLEVBRVgsZUFBZSxFQUNmLGVBQWUsRUFDZixlQUFlLEdBQ2hCLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBRW5ELE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLEdBQUcsQ0FBQztBQUUzQzs7OztHQUlHO0FBQ0gsTUFBTSxPQUFnQixlQUFlO0lBZ0N2QjtJQTVCSixRQUFRLENBQXVCO0lBRS9CLGNBQWMsR0FBYSxlQUFlLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDM0QsY0FBYyxHQUFhLGVBQWUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUUzRCxjQUFjLEdBQWEsZUFBZSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBRTVELGdCQUFnQixDQUFDLEtBQWlCO1FBQ3ZDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0I7WUFDOUIsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsdUJBQXVCLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVPLGtCQUFrQixHQUFXLENBQUMsQ0FBQztJQUVoQyxhQUFhLEdBQVksS0FBSyxDQUFDO0lBQzlCLGtCQUFrQixHQUFXLENBQUMsQ0FBQztJQUMvQixjQUFjLEdBQVcsQ0FBQyxDQUFDO0lBRTNCLGFBQWEsR0FBVyxDQUFDLENBQUM7SUFDMUIsaUJBQWlCLEdBQTZCLEVBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFDLENBQUM7SUFJM0QsV0FBVyxHQUFhLElBQUksQ0FBQyx3QkFBd0IsQ0FBQztJQUV0RCxr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SyxDQUFDLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQztBQUM3RSxDQUFDO0FBRUQsU0FBUyxnQ0FBZ0MsQ0FBQyxLQUFpQjtJQUN6RCxNQUFNLEtBQUssR0FDVCxDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsSUFBSSxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDM0YsT0FBTyxDQUNMLENBQUMsQ0FBQyxLQUFLO1FBQ1AsS0FBSyxDQUFDLFVBQVUsS0FBSyxDQUFDLENBQUM7UUFDdkIsQ0FBQyxLQUFLLENBQUMsT0FBTyxJQUFJLElBQUksSUFBSSxLQUFLLENBQUMsT0FBTyxLQUFLLENBQUMsQ0FBQztRQUM5QyxDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksSUFBSSxJQUFJLEtBQUssQ0FBQyxPQUFPLEtBQUssQ0FBQyxDQUFDLENBQy9DLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJQ2FuUnVuT3V0c2lkZUFuZ3VsYXJ9IGZyb20gJy4vaS1jYW4tcnVuLW91dHNpZGUtYW5ndWxhcic7XG5pbXBvcnQge1xuICBJTW91c2VFdmVudCxcbiAgSVBvaW50ZXJFdmVudCxcbiAgSVBvaW50ZXJVcEV2ZW50LFxuICBJVG91Y2hEb3duRXZlbnQsXG4gIElUb3VjaE1vdmVFdmVudCxcbn0gZnJvbSAnLi9wb2ludGVyLWV2ZW50cyc7XG5pbXBvcnQge0V2ZW50RXh0ZW5zaW9uc30gZnJvbSAnLi9ldmVudC5leHRlbnNpb25zJztcblxuZXhwb3J0IGNvbnN0IE1PVVNFX0VWRU5UX0lHTk9SRV9USU1FID0gODAwO1xuXG4vKipcbiAqIEJhc2UgY2xhc3MgZm9yIGltcGxlbWVudGluZyBkcmFnIGFuZCBkcm9wIGZ1bmN0aW9uYWxpdHkuXG4gKiBJdCBoYW5kbGVzIG1vdXNlIGFuZCB0b3VjaCBldmVudHMsIG1hbmFnZXMgdGhlIGRyYWcgc3RhcnQgc2VxdWVuY2UsXG4gKiBhbmQgcHJvdmlkZXMgYWJzdHJhY3QgbWV0aG9kcyBmb3IgZGVyaXZlZCBjbGFzc2VzIHRvIGltcGxlbWVudCBzcGVjaWZpYyBiZWhhdmlvcnMuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBEcmFnQW5kRHJvcEJhc2Uge1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBob3N0RWxlbWVudDogSFRNTEVsZW1lbnQ7XG5cbiAgcHJpdmF0ZSBkb2N1bWVudDogRG9jdW1lbnQgfCB1bmRlZmluZWQ7XG5cbiAgcHJpdmF0ZSBtb3VzZUxpc3RlbmVyczogRnVuY3Rpb24gPSBFdmVudEV4dGVuc2lvbnMuZW1wdHlMaXN0ZW5lcigpO1xuICBwcml2YXRlIHRvdWNoTGlzdGVuZXJzOiBGdW5jdGlvbiA9IEV2ZW50RXh0ZW5zaW9ucy5lbXB0eUxpc3RlbmVyKCk7XG5cbiAgcHJpdmF0ZSBzdGFydExpc3RlbmVyczogRnVuY3Rpb24gPSBFdmVudEV4dGVuc2lvbnMuZW1wdHlMaXN0ZW5lcigpO1xuXG4gIHB1YmxpYyBpc1N5bnRoZXRpY0V2ZW50KGV2ZW50OiBNb3VzZUV2ZW50KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5sYXN0VG91Y2hFdmVudFRpbWUgJiZcbiAgICAgICh0aGlzLmxhc3RUb3VjaEV2ZW50VGltZSArIE1PVVNFX0VWRU5UX0lHTk9SRV9USU1FID4gRGF0ZS5ub3coKSk7XG4gIH1cblxuICBwcml2YXRlIGxhc3RUb3VjaEV2ZW50VGltZTogbnVtYmVyID0gMDtcblxuICBwdWJsaWMgaXNEcmFnU3RhcnRlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIGRyYWdTdGFydFRocmVzaG9sZDogbnVtYmVyID0gMztcbiAgcHJpdmF0ZSBkcmFnU3RhcnREZWxheTogbnVtYmVyID0gMDtcblxuICBwcml2YXRlIGRyYWdTdGFydFRpbWU6IG51bWJlciA9IDA7XG4gIHByaXZhdGUgZHJhZ1N0YXJ0UG9zaXRpb246IHsgeDogbnVtYmVyLCB5OiBudW1iZXIgfSA9IHt4OiAwLCB5OiAwfTtcblxuICBwdWJsaWMgYWJzdHJhY3QgZGlzYWJsZWQ6IGJvb2xlYW47XG5cbiAgcHJpdmF0ZSBtb3ZlSGFuZGxlcjogRnVuY3Rpb24gPSB0aGlzLmNoZWNrRHJhZ1NlcXVlbmNlVG9TdGFydDtcblxuICBwcml2YXRlIHBvaW50ZXJEb3duRWxlbWVudDogSFRNTEVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIG5nWm9uZTogSUNhblJ1bk91dHNpZGVBbmd1bGFyIHwgdW5kZWZpbmVkXG4gICkge1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgdGhlIG1vdXNlIGRvd24gZXZlbnQgdG8gaW5pdGlhdGUgdGhlIGRyYWcgc2VxdWVuY2UuXG4gICAqIEl0IGNoZWNrcyBpZiB0aGUgZXZlbnQgaXMgc3ludGhldGljIG9yIGZha2UsIGFuZCBpZiB0aGUgZHJhZyBpcyBhbHJlYWR5IHN0YXJ0ZWQuXG4gICAqIElmIG5vdCwgaXQgc2V0cyB1cCB0aGUgZHJhZyBzdGFydCBzZXF1ZW5jZSBieSBhZGRpbmcgbmVjZXNzYXJ5IGV2ZW50IGxpc3RlbmVycy5cbiAgICogQHBhcmFtIGV2ZW50IC0gVGhlIG1vdXNlIGV2ZW50IHRoYXQgdHJpZ2dlcmVkIHRoZSBkcmFnLlxuICAgKi9cbiAgcHJpdmF0ZSBvbk1vdXNlRG93biA9IChldmVudDogTW91c2VFdmVudCkgPT4ge1xuICAgIGNvbnN0IGlzU3ludGhldGljRXZlbnQgPSB0aGlzLmlzU3ludGhldGljRXZlbnQoZXZlbnQpO1xuICAgIGNvbnN0IGlzRmFrZUV2ZW50ID0gaXNGYWtlTW91c2Vkb3duRnJvbVNjcmVlblJlYWRlcihldmVudCk7XG4gICAgY29uc3QgbW91c2VFdmVudCA9IG5ldyBJTW91c2VFdmVudChldmVudCk7XG5cbiAgICBpZiAoaXNTeW50aGV0aWNFdmVudCB8fCBpc0Zha2VFdmVudCB8fCB0aGlzLmRpc2FibGVkIHx8IHRoaXMuaXNEcmFnU3RhcnRlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnBvaW50ZXJEb3duRWxlbWVudCA9IG1vdXNlRXZlbnQudGFyZ2V0RWxlbWVudDtcbiAgICBsZXQgcmVzdWx0ID0gdGhpcy5vblBvaW50ZXJEb3duKG1vdXNlRXZlbnQpO1xuICAgIGlmIChyZXN1bHQpIHtcblxuICAgICAgdGhpcy5kcmFnU3RhcnRUaW1lID0gRGF0ZS5ub3coKTtcbiAgICAgIHRoaXMuZHJhZ1N0YXJ0UG9zaXRpb24gPSBtb3VzZUV2ZW50LmdldFBvc2l0aW9uKCk7XG5cbiAgICAgIHRoaXMubmdab25lPy5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgIHRoaXMuZG9jdW1lbnQ/LmFkZEV2ZW50TGlzdGVuZXIoJ3NlbGVjdHN0YXJ0JywgdGhpcy5vblNlbGVjdFN0YXJ0LCBFdmVudEV4dGVuc2lvbnMuYWN0aXZlTGlzdGVuZXIoKSk7XG4gICAgICAgIHRoaXMuZG9jdW1lbnQ/LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHRoaXMub25Nb3VzZU1vdmUpO1xuICAgICAgICB0aGlzLmRvY3VtZW50Py5hZGRFdmVudExpc3RlbmVyKCdwb2ludGVydXAnLCB0aGlzLm9uUG9pbnRlclVwRXZlbnQpO1xuICAgICAgICB0aGlzLmRvY3VtZW50Py5hZGRFdmVudExpc3RlbmVyKCdwb2ludGVyY2FuY2VsJywgdGhpcy5vblBvaW50ZXJVcEV2ZW50LCBFdmVudEV4dGVuc2lvbnMuYWN0aXZlQ2FwdHVyZUxpc3RlbmVyKCkpO1xuICAgICAgICB0aGlzLmRvY3VtZW50Py5hZGRFdmVudExpc3RlbmVyKCdjb250ZXh0bWVudScsIHRoaXMub25Db250ZXh0TWVudUR1cmluZ0RyYWcsIEV2ZW50RXh0ZW5zaW9ucy5hY3RpdmVDYXB0dXJlTGlzdGVuZXIoKSk7XG4gICAgICB9KTtcblxuICAgICAgdGhpcy5tb3VzZUxpc3RlbmVycyA9ICgpID0+IHtcbiAgICAgICAgdGhpcy5kb2N1bWVudD8ucmVtb3ZlRXZlbnRMaXN0ZW5lcignc2VsZWN0c3RhcnQnLCB0aGlzLm9uU2VsZWN0U3RhcnQsIEV2ZW50RXh0ZW5zaW9ucy5hY3RpdmVMaXN0ZW5lcigpKTtcbiAgICAgICAgdGhpcy5kb2N1bWVudD8ucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgdGhpcy5vbk1vdXNlTW92ZSk7XG4gICAgICAgIHRoaXMuZG9jdW1lbnQ/LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJ1cCcsIHRoaXMub25Qb2ludGVyVXBFdmVudCk7XG4gICAgICAgIHRoaXMuZG9jdW1lbnQ/LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJjYW5jZWwnLCB0aGlzLm9uUG9pbnRlclVwRXZlbnQsIEV2ZW50RXh0ZW5zaW9ucy5hY3RpdmVDYXB0dXJlTGlzdGVuZXIoKSk7XG4gICAgICAgIHRoaXMuZG9jdW1lbnQ/LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NvbnRleHRtZW51JywgdGhpcy5vbkNvbnRleHRNZW51RHVyaW5nRHJhZywgRXZlbnRFeHRlbnNpb25zLmFjdGl2ZUNhcHR1cmVMaXN0ZW5lcigpKTtcbiAgICAgIH07XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgdGhlIHRvdWNoIGRvd24gZXZlbnQgdG8gaW5pdGlhdGUgdGhlIGRyYWcgc2VxdWVuY2UuXG4gICAqIEl0IGNoZWNrcyBpZiB0aGUgZXZlbnQgaXMgc3ludGhldGljIG9yIGZha2UsIGFuZCBpZiB0aGUgZHJhZyBpcyBhbHJlYWR5IHN0YXJ0ZWQuXG4gICAqIElmIG5vdCwgaXQgc2V0cyB1cCB0aGUgZHJhZyBzdGFydCBzZXF1ZW5jZSBieSBhZGRpbmcgbmVjZXNzYXJ5IGV2ZW50IGxpc3RlbmVycy5cbiAgICogQHBhcmFtIGV2ZW50IC0gVGhlIHRvdWNoIGV2ZW50IHRoYXQgdHJpZ2dlcmVkIHRoZSBkcmFnLlxuICAgKi9cbiAgcHJpdmF0ZSBvblRvdWNoRG93biA9IChldmVudDogVG91Y2hFdmVudCkgPT4ge1xuICAgIGNvbnN0IGlzRmFrZUV2ZW50ID0gaXNGYWtlVG91Y2hzdGFydEZyb21TY3JlZW5SZWFkZXIoZXZlbnQgYXMgVG91Y2hFdmVudClcbiAgICBjb25zdCB0b3VjaEV2ZW50ID0gbmV3IElUb3VjaERvd25FdmVudChldmVudCk7XG5cbiAgICBpZiAoaXNGYWtlRXZlbnQgfHwgdGhpcy5kaXNhYmxlZCB8fCB0aGlzLmlzRHJhZ1N0YXJ0ZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5wb2ludGVyRG93bkVsZW1lbnQgPSB0b3VjaEV2ZW50LnRhcmdldEVsZW1lbnQ7XG4gICAgbGV0IHJlc3VsdCA9IHRoaXMub25Qb2ludGVyRG93bih0b3VjaEV2ZW50KTtcbiAgICBpZiAocmVzdWx0KSB7XG5cbiAgICAgIHRoaXMuZHJhZ1N0YXJ0VGltZSA9IERhdGUubm93KCk7XG4gICAgICB0aGlzLmRyYWdTdGFydFBvc2l0aW9uID0gdG91Y2hFdmVudC5nZXRQb3NpdGlvbigpO1xuXG4gICAgICB0aGlzLm5nWm9uZT8ucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICB0aGlzLmRvY3VtZW50Py5hZGRFdmVudExpc3RlbmVyKCdzZWxlY3RzdGFydCcsIHRoaXMub25TZWxlY3RTdGFydCwgRXZlbnRFeHRlbnNpb25zLmFjdGl2ZUxpc3RlbmVyKCkpO1xuICAgICAgICB0aGlzLmRvY3VtZW50Py5hZGRFdmVudExpc3RlbmVyKCd0b3VjaG1vdmUnLCB0aGlzLm9uVG91Y2hNb3ZlKTtcbiAgICAgICAgdGhpcy5kb2N1bWVudD8uYWRkRXZlbnRMaXN0ZW5lcigncG9pbnRlcnVwJywgdGhpcy5vblBvaW50ZXJVcEV2ZW50KTtcbiAgICAgICAgdGhpcy5kb2N1bWVudD8uYWRkRXZlbnRMaXN0ZW5lcigncG9pbnRlcmNhbmNlbCcsIHRoaXMub25Qb2ludGVyVXBFdmVudCwgRXZlbnRFeHRlbnNpb25zLmFjdGl2ZUNhcHR1cmVMaXN0ZW5lcigpKTtcbiAgICAgICAgdGhpcy5kb2N1bWVudD8uYWRkRXZlbnRMaXN0ZW5lcignY29udGV4dG1lbnUnLCB0aGlzLm9uQ29udGV4dE1lbnVEdXJpbmdEcmFnLCBFdmVudEV4dGVuc2lvbnMuYWN0aXZlQ2FwdHVyZUxpc3RlbmVyKCkpO1xuICAgICAgfSk7XG5cbiAgICAgIHRoaXMudG91Y2hMaXN0ZW5lcnMgPSAoKSA9PiB7XG4gICAgICAgIHRoaXMuZG9jdW1lbnQ/LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3NlbGVjdHN0YXJ0JywgdGhpcy5vblNlbGVjdFN0YXJ0LCBFdmVudEV4dGVuc2lvbnMuYWN0aXZlTGlzdGVuZXIoKSk7XG4gICAgICAgIHRoaXMuZG9jdW1lbnQ/LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3RvdWNobW92ZScsIHRoaXMub25Ub3VjaE1vdmUpO1xuICAgICAgICB0aGlzLmRvY3VtZW50Py5yZW1vdmVFdmVudExpc3RlbmVyKCdwb2ludGVydXAnLCB0aGlzLm9uUG9pbnRlclVwRXZlbnQpO1xuICAgICAgICB0aGlzLmRvY3VtZW50Py5yZW1vdmVFdmVudExpc3RlbmVyKCdwb2ludGVyY2FuY2VsJywgdGhpcy5vblBvaW50ZXJVcEV2ZW50LCBFdmVudEV4dGVuc2lvbnMuYWN0aXZlQ2FwdHVyZUxpc3RlbmVyKCkpO1xuICAgICAgICB0aGlzLmRvY3VtZW50Py5yZW1vdmVFdmVudExpc3RlbmVyKCdjb250ZXh0bWVudScsIHRoaXMub25Db250ZXh0TWVudUR1cmluZ0RyYWcsIEV2ZW50RXh0ZW5zaW9ucy5hY3RpdmVDYXB0dXJlTGlzdGVuZXIoKSk7XG4gICAgICB9O1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGVzIHRoZSBzZWxlY3Qgc3RhcnQgZXZlbnQuXG4gICAqIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCB3aGVuIHRoZSB1c2VyIHN0YXJ0cyBzZWxlY3RpbmcgdGV4dCBvciBlbGVtZW50cy5cbiAgICogSXQgcHJldmVudHMgdGhlIGRlZmF1bHQgYmVoYXZpb3IgYW5kIGNhbGxzIHRoZSBvblNlbGVjdCBtZXRob2QgdG8gaGFuZGxlIHRoZSBzZWxlY3Rpb24uXG4gICAqIEBwYXJhbSBldmVudCAtIFRoZSBldmVudCB0aGF0IHRyaWdnZXJlZCB0aGUgc2VsZWN0IHN0YXJ0LlxuICAgKi9cbiAgcHJpdmF0ZSBvblNlbGVjdFN0YXJ0ID0gKGV2ZW50OiBFdmVudCkgPT4ge1xuICAgIHRoaXMub25TZWxlY3QoZXZlbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgdGhlIG1vdXNlIG1vdmUgZXZlbnQgZHVyaW5nIHRoZSBkcmFnIHNlcXVlbmNlLlxuICAgKiBJdCBjaGVja3MgaWYgdGhlIGRyYWcgc2VxdWVuY2Ugc2hvdWxkIHN0YXJ0IGFuZCBjYWxscyB0aGUgbW92ZSBoYW5kbGVyIGFjY29yZGluZ2x5LlxuICAgKiBAcGFyYW0gZXZlbnQgLSBUaGUgbW91c2UgZXZlbnQgdGhhdCB0cmlnZ2VyZWQgdGhlIG1vdmUuXG4gICAqL1xuICBwcml2YXRlIG9uTW91c2VNb3ZlID0gKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgdGhpcy5tb3ZlSGFuZGxlcihuZXcgSU1vdXNlRXZlbnQoZXZlbnQpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGVzIHRoZSB0b3VjaCBtb3ZlIGV2ZW50IGR1cmluZyB0aGUgZHJhZyBzZXF1ZW5jZS5cbiAgICogSXQgY2hlY2tzIGlmIHRoZSBkcmFnIHNlcXVlbmNlIHNob3VsZCBzdGFydCBhbmQgY2FsbHMgdGhlIG1vdmUgaGFuZGxlciBhY2NvcmRpbmdseS5cbiAgICogQHBhcmFtIGV2ZW50IC0gVGhlIHRvdWNoIGV2ZW50IHRoYXQgdHJpZ2dlcmVkIHRoZSBtb3ZlLlxuICAgKi9cbiAgcHJpdmF0ZSBvblRvdWNoTW92ZSA9IChldmVudDogVG91Y2hFdmVudCkgPT4ge1xuICAgIHRoaXMubW92ZUhhbmRsZXIobmV3IElUb3VjaE1vdmVFdmVudChldmVudCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGUgZHJhZyBzZXF1ZW5jZSBzaG91bGQgc3RhcnQgYmFzZWQgb24gdGhlIHBvaW50ZXIgcG9zaXRpb24uXG4gICAqIEl0IGNvbXBhcmVzIHRoZSBjdXJyZW50IHBvaW50ZXIgcG9zaXRpb24gd2l0aCB0aGUgaW5pdGlhbCBkcmFnIHN0YXJ0IHBvc2l0aW9uXG4gICAqIGFuZCBjaGVja3MgaWYgdGhlIGRpc3RhbmNlIGV4Y2VlZHMgdGhlIGRyYWcgc3RhcnQgdGhyZXNob2xkLlxuICAgKiBJZiB0aGUgdGhyZXNob2xkIGlzIGV4Y2VlZGVkIGFuZCB0aGUgZGVsYXkgaGFzIHBhc3NlZCxcbiAgICogaXQgcHJlcGFyZXMgdGhlIGRyYWcgc2VxdWVuY2UgYW5kIHNldHMgdGhlIG1vdmUgaGFuZGxlciB0byBvblBvaW50ZXJNb3ZlLlxuICAgKiBAcGFyYW0gZXZlbnQgLSBUaGUgcG9pbnRlciBldmVudCB0aGF0IHRyaWdnZXJlZCB0aGUgY2hlY2suXG4gICAqL1xuICBwcml2YXRlIGNoZWNrRHJhZ1NlcXVlbmNlVG9TdGFydChldmVudDogSVBvaW50ZXJFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHBvaW50ZXJQb3NpdGlvbiA9IGV2ZW50LmdldFBvc2l0aW9uKCk7XG5cbiAgICBpZiAoIXRoaXMuaXNEcmFnU3RhcnRlZCAmJiB0aGlzLnBvaW50ZXJEb3duRWxlbWVudCkge1xuICAgICAgZXZlbnQuc2V0VGFyZ2V0KHRoaXMucG9pbnRlckRvd25FbGVtZW50KTtcbiAgICAgIGNvbnN0IGRpc3RhbmNlWCA9IE1hdGguYWJzKHBvaW50ZXJQb3NpdGlvbi54IC0gdGhpcy5kcmFnU3RhcnRQb3NpdGlvbi54KTtcbiAgICAgIGNvbnN0IGRpc3RhbmNlWSA9IE1hdGguYWJzKHBvaW50ZXJQb3NpdGlvbi55IC0gdGhpcy5kcmFnU3RhcnRQb3NpdGlvbi55KTtcbiAgICAgIGNvbnN0IGlzT3ZlclRocmVzaG9sZCA9IGRpc3RhbmNlWCArIGRpc3RhbmNlWSA+PSB0aGlzLmRyYWdTdGFydFRocmVzaG9sZDtcblxuICAgICAgaWYgKGlzT3ZlclRocmVzaG9sZCkge1xuICAgICAgICBjb25zdCBpc0RlbGF5RWxhcHNlZCA9IERhdGUubm93KCkgPj0gdGhpcy5kcmFnU3RhcnRUaW1lICsgdGhpcy5kcmFnU3RhcnREZWxheTtcblxuICAgICAgICBpZiAoIWlzRGVsYXlFbGFwc2VkKSB7XG4gICAgICAgICAgdGhpcy5lbmREcmFnU2VxdWVuY2UoKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB0aGlzLnByZXBhcmVEcmFnU2VxdWVuY2UoZXZlbnQpO1xuICAgICAgICB0aGlzLmlzRHJhZ1N0YXJ0ZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLm1vdmVIYW5kbGVyID0gdGhpcy5vblBvaW50ZXJNb3ZlO1xuICAgICAgICBpZiAoaXNUb3VjaEV2ZW50KGV2ZW50Lm9yaWdpbmFsRXZlbnQpKSB7XG4gICAgICAgICAgdGhpcy5sYXN0VG91Y2hFdmVudFRpbWUgPSBEYXRlLm5vdygpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFByZXBhcmVzIHRoZSBkcmFnIHNlcXVlbmNlIGJ5IHNldHRpbmcgdXAgbmVjZXNzYXJ5IGV2ZW50IGxpc3RlbmVyc1xuICAgKiBhbmQgaW5pdGlhbGl6aW5nIGFueSByZXF1aXJlZCBzdGF0ZSBmb3IgdGhlIGRyYWcgb3BlcmF0aW9uLlxuICAgKiBUaGlzIG1ldGhvZCBzaG91bGQgYmUgaW1wbGVtZW50ZWQgYnkgZGVyaXZlZCBjbGFzc2VzIHRvIGRlZmluZSBzcGVjaWZpYyBkcmFnIGJlaGF2aW9yLlxuICAgKiBAcGFyYW0gZXZlbnQgLSBUaGUgcG9pbnRlciBldmVudCB0aGF0IHRyaWdnZXJlZCB0aGUgcHJlcGFyYXRpb24uXG4gICAqL1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgcHJlcGFyZURyYWdTZXF1ZW5jZShldmVudDogSVBvaW50ZXJFdmVudCk6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIEhhbmRsZXMgdGhlIHBvaW50ZXIgdXAgZXZlbnQgYXQgdGhlIGVuZCBvZiB0aGUgZHJhZyBzZXF1ZW5jZS5cbiAgICogSXQgY2hlY2tzIGlmIHRoZSBkcmFnIGhhcyBzdGFydGVkIGFuZCBjYWxscyB0aGUgb25Qb2ludGVyVXAgbWV0aG9kLlxuICAgKiBJdCBhbHNvIGVuZHMgdGhlIGRyYWcgc2VxdWVuY2UgYnkgcmVzZXR0aW5nIHRoZSBzdGF0ZSBhbmQgcmVtb3ZpbmcgZXZlbnQgbGlzdGVuZXJzLlxuICAgKiBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgd2hlbiB0aGUgdXNlciByZWxlYXNlcyB0aGUgbW91c2UgYnV0dG9uIG9yIGxpZnRzIHRoZWlyIGZpbmdlciBmcm9tIHRoZSB0b3VjaCBzY3JlZW4uXG4gICAqIEBwYXJhbSBldmVudCAtIFRoZSBwb2ludGVyIGV2ZW50IHRoYXQgdHJpZ2dlcmVkIHRoZSB1cCBhY3Rpb24uXG4gICAqL1xuICBwcml2YXRlIG9uUG9pbnRlclVwRXZlbnQgPSAoZXZlbnQ6IFBvaW50ZXJFdmVudCkgPT4ge1xuICAgIGlmICh0aGlzLmlzRHJhZ1N0YXJ0ZWQpIHtcbiAgICAgIHRoaXMub25Qb2ludGVyVXAobmV3IElQb2ludGVyVXBFdmVudChldmVudCkpO1xuICAgIH1cbiAgICB0aGlzLmVuZERyYWdTZXF1ZW5jZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEVuZHMgdGhlIGRyYWcgc2VxdWVuY2UgYnkgcmVzZXR0aW5nIHRoZSBzdGF0ZSBhbmQgcmVtb3ZpbmcgZXZlbnQgbGlzdGVuZXJzLlxuICAgKiBJdCBzZXRzIHRoZSBpc0RyYWdTdGFydGVkIGZsYWcgdG8gZmFsc2UsIGNsZWFycyB0aGUgcG9pbnRlckRvd25FbGVtZW50LFxuICAgKiBhbmQgcmVzZXRzIHRoZSBtb3ZlSGFuZGxlciB0byBjaGVja0RyYWdTZXF1ZW5jZVRvU3RhcnQuXG4gICAqIEl0IGFsc28gcmVtb3ZlcyBhbGwgbW91c2UgYW5kIHRvdWNoIGV2ZW50IGxpc3RlbmVycyB0aGF0IHdlcmUgYWRkZWQgZHVyaW5nIHRoZSBkcmFnIHNlcXVlbmNlLlxuICAgKi9cbiAgcHJpdmF0ZSBlbmREcmFnU2VxdWVuY2UoKTogdm9pZCB7XG4gICAgdGhpcy5pc0RyYWdTdGFydGVkID0gZmFsc2U7XG4gICAgdGhpcy5wb2ludGVyRG93bkVsZW1lbnQgPSBudWxsO1xuXG4gICAgdGhpcy5tb3ZlSGFuZGxlciA9IHRoaXMuY2hlY2tEcmFnU2VxdWVuY2VUb1N0YXJ0O1xuICAgIHRoaXMubW91c2VMaXN0ZW5lcnMoKTtcbiAgICB0aGlzLm1vdXNlTGlzdGVuZXJzID0gRXZlbnRFeHRlbnNpb25zLmVtcHR5TGlzdGVuZXIoKTtcbiAgICB0aGlzLnRvdWNoTGlzdGVuZXJzKCk7XG4gICAgdGhpcy50b3VjaExpc3RlbmVycyA9IEV2ZW50RXh0ZW5zaW9ucy5lbXB0eUxpc3RlbmVyKCk7XG4gICAgdGhpcy5maW5hbGl6ZURyYWdTZXF1ZW5jZSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFic3RyYWN0IGZpbmFsaXplRHJhZ1NlcXVlbmNlKCk6IHZvaWQ7XG5cbiAgcHJvdGVjdGVkIGFic3RyYWN0IG9uU2VsZWN0KGV2ZW50OiBFdmVudCk6IHZvaWQ7XG5cbiAgcHVibGljIGFic3RyYWN0IG9uUG9pbnRlckRvd24oZXZlbnQ6IElQb2ludGVyRXZlbnQpOiBib29sZWFuO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBvblBvaW50ZXJNb3ZlKGV2ZW50OiBJUG9pbnRlckV2ZW50KTogdm9pZDtcblxuICBwdWJsaWMgYWJzdHJhY3Qgb25Qb2ludGVyVXAoZXZlbnQ6IElQb2ludGVyRXZlbnQpOiB2b2lkO1xuXG4gIHB1YmxpYyBzdWJzY3JpYmUoZkRvY3VtZW50OiBEb2N1bWVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRvY3VtZW50KSB7XG4gICAgICB0aGlzLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICAgIHRoaXMuZG9jdW1lbnQgPSBmRG9jdW1lbnQ7XG5cbiAgICB0aGlzLm5nWm9uZT8ucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgZkRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIHRoaXMub25Nb3VzZURvd24sIEV2ZW50RXh0ZW5zaW9ucy5hY3RpdmVMaXN0ZW5lcigpKTtcbiAgICAgIGZEb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd0b3VjaHN0YXJ0JywgdGhpcy5vblRvdWNoRG93biwgRXZlbnRFeHRlbnNpb25zLnBhc3NpdmVMaXN0ZW5lcigpKTtcbiAgICB9KTtcblxuICAgIHRoaXMuc3RhcnRMaXN0ZW5lcnMgPSAoKSA9PiB7XG4gICAgICBmRG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgdGhpcy5vbk1vdXNlRG93biwgRXZlbnRFeHRlbnNpb25zLmFjdGl2ZUxpc3RlbmVyKCkpO1xuICAgICAgZkRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3RvdWNoc3RhcnQnLCB0aGlzLm9uVG91Y2hEb3duLCBFdmVudEV4dGVuc2lvbnMucGFzc2l2ZUxpc3RlbmVyKCkpO1xuICAgIH07XG4gIH1cblxuICBwdWJsaWMgdW5zdWJzY3JpYmUoKTogdm9pZCB7XG5cbiAgICB0aGlzLnN0YXJ0TGlzdGVuZXJzKCk7XG4gICAgdGhpcy5zdGFydExpc3RlbmVycyA9IEV2ZW50RXh0ZW5zaW9ucy5lbXB0eUxpc3RlbmVyKCk7XG4gICAgdGhpcy50b3VjaExpc3RlbmVycygpO1xuICAgIHRoaXMudG91Y2hMaXN0ZW5lcnMgPSBFdmVudEV4dGVuc2lvbnMuZW1wdHlMaXN0ZW5lcigpO1xuICAgIHRoaXMubW91c2VMaXN0ZW5lcnMoKTtcbiAgICB0aGlzLm1vdXNlTGlzdGVuZXJzID0gRXZlbnRFeHRlbnNpb25zLmVtcHR5TGlzdGVuZXIoKTtcbiAgfVxuXG4gIHByaXZhdGUgb25Db250ZXh0TWVudUR1cmluZ0RyYWcgPSAoZTogRXZlbnQpID0+IHtcbiAgICBpZiAodGhpcy5pc0RyYWdTdGFydGVkKSB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICB9O1xufVxuXG5mdW5jdGlvbiBpc1RvdWNoRXZlbnQoZXZlbnQ6IE1vdXNlRXZlbnQgfCBUb3VjaEV2ZW50KTogZXZlbnQgaXMgVG91Y2hFdmVudCB7XG4gIHJldHVybiBldmVudC50eXBlWzBdID09PSAndCc7XG59XG5cbmZ1bmN0aW9uIGlzRmFrZU1vdXNlZG93bkZyb21TY3JlZW5SZWFkZXIoZXZlbnQ6IE1vdXNlRXZlbnQpOiBib29sZWFuIHtcbiAgcmV0dXJuIGV2ZW50LmJ1dHRvbnMgPT09IDAgfHwgKGV2ZW50Lm9mZnNldFggPT09IDAgJiYgZXZlbnQub2Zmc2V0WSA9PT0gMCk7XG59XG5cbmZ1bmN0aW9uIGlzRmFrZVRvdWNoc3RhcnRGcm9tU2NyZWVuUmVhZGVyKGV2ZW50OiBUb3VjaEV2ZW50KTogYm9vbGVhbiB7XG4gIGNvbnN0IHRvdWNoOiBUb3VjaCB8IHVuZGVmaW5lZCA9XG4gICAgKGV2ZW50LnRvdWNoZXMgJiYgZXZlbnQudG91Y2hlc1swXSkgfHwgKGV2ZW50LmNoYW5nZWRUb3VjaGVzICYmIGV2ZW50LmNoYW5nZWRUb3VjaGVzWzBdKTtcbiAgcmV0dXJuIChcbiAgICAhIXRvdWNoICYmXG4gICAgdG91Y2guaWRlbnRpZmllciA9PT0gLTEgJiZcbiAgICAodG91Y2gucmFkaXVzWCA9PSBudWxsIHx8IHRvdWNoLnJhZGl1c1ggPT09IDEpICYmXG4gICAgKHRvdWNoLnJhZGl1c1kgPT0gbnVsbCB8fCB0b3VjaC5yYWRpdXNZID09PSAxKVxuICApO1xufVxuIl19
|
|
@@ -1,14 +1,22 @@
|
|
|
1
1
|
import { __decorate } from "tslib";
|
|
2
2
|
import { ChangeDetectionStrategy, Component, computed, effect, ElementRef, inject, Injector, input, numberAttribute, output, viewChild, } from "@angular/core";
|
|
3
|
-
import {
|
|
3
|
+
import { F_CANVAS, FCanvasBase } from './f-canvas-base';
|
|
4
4
|
import { PointExtensions, TransformModelExtensions } from '@foblex/2d';
|
|
5
5
|
import { FMediator } from '@foblex/mediator';
|
|
6
|
-
import { AddCanvasToStoreRequest, CenterGroupOrNodeRequest, FitToFlowRequest, GetFlowRequest, InputCanvasPositionRequest, InputCanvasScaleRequest, isMobile, RemoveCanvasFromStoreRequest, ResetScaleAndCenterRequest, ResetScaleRequest, SetBackgroundTransformRequest, transitionEnd, UpdateScaleRequest, } from '../domain';
|
|
6
|
+
import { AddCanvasToStoreRequest, CenterGroupOrNodeRequest, Deprecated, FitToFlowRequest, GetFlowRequest, InputCanvasPositionRequest, InputCanvasScaleRequest, isMobile, RemoveCanvasFromStoreRequest, ResetScaleAndCenterRequest, ResetScaleRequest, SetBackgroundTransformRequest, transitionEnd, UpdateScaleRequest, } from '../domain';
|
|
7
7
|
import { NotifyTransformChangedRequest } from '../f-storage';
|
|
8
|
-
import { Deprecated } from '../domain';
|
|
9
8
|
import * as i0 from "@angular/core";
|
|
9
|
+
/**
|
|
10
|
+
* Component representing a canvas in the F-Flow framework.
|
|
11
|
+
* It handles the rendering of nodes, connections, and groups,
|
|
12
|
+
* as well as user interactions such as zooming and panning.
|
|
13
|
+
* It extends the FCanvasBase class and implements OnInit and OnDestroy lifecycle hooks.
|
|
14
|
+
* It provides methods to manipulate the canvas, such as centering nodes or groups,
|
|
15
|
+
* fitting the canvas to the screen, and resetting the scale.
|
|
16
|
+
* It also emits events when the canvas changes, allowing other components to react to these changes.
|
|
17
|
+
*/
|
|
10
18
|
export class FCanvasComponent extends FCanvasBase {
|
|
11
|
-
|
|
19
|
+
_mediator = inject(FMediator);
|
|
12
20
|
_elementReference = inject(ElementRef);
|
|
13
21
|
_injector = inject(Injector);
|
|
14
22
|
_flowId;
|
|
@@ -27,41 +35,69 @@ export class FCanvasComponent extends FCanvasBase {
|
|
|
27
35
|
return this._flowId;
|
|
28
36
|
}
|
|
29
37
|
ngOnInit() {
|
|
30
|
-
this._flowId = this.
|
|
31
|
-
this.
|
|
38
|
+
this._flowId = this._mediator.execute(new GetFlowRequest()).fId();
|
|
39
|
+
this._mediator.execute(new AddCanvasToStoreRequest(this));
|
|
32
40
|
this._positionChange();
|
|
33
41
|
this._scaleChange();
|
|
34
42
|
super.subscribeOnCanvasChange();
|
|
35
43
|
}
|
|
36
44
|
_positionChange() {
|
|
37
45
|
effect(() => {
|
|
38
|
-
this.
|
|
46
|
+
this._mediator.execute(new InputCanvasPositionRequest(this.transform, this.position()));
|
|
39
47
|
}, { injector: this._injector });
|
|
40
48
|
}
|
|
41
49
|
_scaleChange() {
|
|
42
50
|
effect(() => {
|
|
43
|
-
this.
|
|
51
|
+
this._mediator.execute(new InputCanvasScaleRequest(this.transform, this.scale()));
|
|
44
52
|
}, { injector: this._injector });
|
|
45
53
|
}
|
|
54
|
+
/**
|
|
55
|
+
* Redraws the canvas by applying the current transformation.
|
|
56
|
+
*/
|
|
46
57
|
redraw() {
|
|
47
|
-
this.
|
|
58
|
+
this._mediator.execute(new SetBackgroundTransformRequest(this.transform));
|
|
48
59
|
this.hostElement.setAttribute("style", `transform: ${TransformModelExtensions.toString(this.transform)}`);
|
|
49
|
-
this.
|
|
60
|
+
this._mediator.execute(new NotifyTransformChangedRequest());
|
|
50
61
|
}
|
|
62
|
+
/**
|
|
63
|
+
* Redraws the canvas with an animation effect.
|
|
64
|
+
* This method applies a CSS transition to the canvas element,
|
|
65
|
+
* allowing for a smooth visual update of the canvas's transformation.
|
|
66
|
+
*/
|
|
51
67
|
redrawWithAnimation() {
|
|
52
|
-
this.
|
|
68
|
+
this._mediator.execute(new SetBackgroundTransformRequest(this.transform));
|
|
53
69
|
this.hostElement.setAttribute("style", `transition: transform ${isMobile() ? 80 : 150}ms ease-in-out; transform: ${TransformModelExtensions.toString(this.transform)}`);
|
|
54
70
|
transitionEnd(this.hostElement, () => this.redraw());
|
|
55
71
|
}
|
|
56
|
-
|
|
57
|
-
|
|
72
|
+
/**
|
|
73
|
+
* Centers the specified group or node on the canvas.
|
|
74
|
+
* @param groupOrNodeId - The ID of the group or node to center.
|
|
75
|
+
* @param animated - If true, the centering will be animated; otherwise, it will be instantaneous.
|
|
76
|
+
*/
|
|
77
|
+
centerGroupOrNode(groupOrNodeId, animated = true) {
|
|
78
|
+
setTimeout(() => this._mediator.execute(new CenterGroupOrNodeRequest(groupOrNodeId, animated)));
|
|
58
79
|
}
|
|
59
|
-
|
|
60
|
-
|
|
80
|
+
/**
|
|
81
|
+
* Fits the canvas to the screen by adjusting the scale and position.
|
|
82
|
+
* @param padding - paddings from the bounds of the canvas
|
|
83
|
+
* @param animated - If true, the fit will be animated; otherwise, it will be instantaneous.
|
|
84
|
+
*/
|
|
85
|
+
fitToScreen(padding = PointExtensions.initialize(), animated = true) {
|
|
86
|
+
setTimeout(() => this._mediator.execute(new FitToFlowRequest(padding, animated)));
|
|
61
87
|
}
|
|
88
|
+
/**
|
|
89
|
+
* Resets the scale and center all nodes and groups on the canvas.
|
|
90
|
+
* This method is used to restore the canvas to its default scale and position,
|
|
91
|
+
* allowing users to quickly return to a standard view of the canvas content.
|
|
92
|
+
* @param animated - If true, the reset will be animated; otherwise, it will be instantaneous.
|
|
93
|
+
* This is useful for providing a smooth user experience when resetting the view.
|
|
94
|
+
*/
|
|
62
95
|
resetScaleAndCenter(animated = true) {
|
|
63
|
-
setTimeout(() => this.
|
|
96
|
+
setTimeout(() => this._mediator.execute(new ResetScaleAndCenterRequest(animated)));
|
|
64
97
|
}
|
|
98
|
+
/**
|
|
99
|
+
* Gets the current scale of the canvas.
|
|
100
|
+
*/
|
|
65
101
|
getScale() {
|
|
66
102
|
return this.transform.scale || 1;
|
|
67
103
|
}
|
|
@@ -71,8 +107,15 @@ export class FCanvasComponent extends FCanvasBase {
|
|
|
71
107
|
setZoom(scale, toPosition = PointExtensions.initialize()) {
|
|
72
108
|
this.setScale(scale, toPosition);
|
|
73
109
|
}
|
|
110
|
+
/**
|
|
111
|
+
* Sets the scale of the canvas to a specified value.
|
|
112
|
+
* This method is used to zoom in or out of the canvas,
|
|
113
|
+
* allowing users to adjust the view of the canvas content.
|
|
114
|
+
* @param scale - The scale factor to set for the canvas.
|
|
115
|
+
* @param toPosition - The position to which the canvas should be centered after scaling.
|
|
116
|
+
*/
|
|
74
117
|
setScale(scale, toPosition = PointExtensions.initialize()) {
|
|
75
|
-
this.
|
|
118
|
+
this._mediator.execute(new UpdateScaleRequest(scale, toPosition));
|
|
76
119
|
}
|
|
77
120
|
/**
|
|
78
121
|
* @deprecated Method "resetZoom" is deprecated. Use "resetScale" instead. This method will be removed in version 18.0.0.`,
|
|
@@ -80,11 +123,15 @@ export class FCanvasComponent extends FCanvasBase {
|
|
|
80
123
|
resetZoom() {
|
|
81
124
|
this.resetScale();
|
|
82
125
|
}
|
|
126
|
+
/**
|
|
127
|
+
* Resets the scale of the canvas to its default value.
|
|
128
|
+
* This method is used to restore the canvas to its original scale.
|
|
129
|
+
*/
|
|
83
130
|
resetScale() {
|
|
84
|
-
this.
|
|
131
|
+
this._mediator.execute(new ResetScaleRequest());
|
|
85
132
|
}
|
|
86
133
|
ngOnDestroy() {
|
|
87
|
-
this.
|
|
134
|
+
this._mediator.execute(new RemoveCanvasFromStoreRequest());
|
|
88
135
|
}
|
|
89
136
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FCanvasComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
90
137
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.13", type: FCanvasComponent, isStandalone: true, selector: "f-canvas", inputs: { position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, scale: { classPropertyName: "scale", publicName: "scale", isSignal: true, isRequired: false, transformFunction: null }, debounceTime: { classPropertyName: "debounceTime", publicName: "debounceTime", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { fCanvasChange: "fCanvasChange" }, host: { classAttribute: "f-component f-canvas" }, providers: [
|
|
@@ -105,4 +152,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
105
152
|
{ provide: F_CANVAS, useExisting: FCanvasComponent }
|
|
106
153
|
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container>\n <div #fGroupsContainer>\n <ng-content select=\"[fGroup]\"></ng-content>\n </div>\n <div #fConnectionsContainer>\n <ng-content select=\"f-snap-connection\"></ng-content>\n <ng-content select=\"f-connection\"></ng-content>\n <ng-content select=\"f-connection-for-create\"></ng-content>\n </div>\n\n <div #fNodesContainer>\n <ng-content select=\"[fNode]\"></ng-content>\n </div>\n</ng-container>\n", styles: [":host{position:absolute;overflow:visible;width:100%;height:100%;left:0;top:0;transform-origin:0 0;pointer-events:none}\n"] }]
|
|
107
154
|
}], propDecorators: { setZoom: [], resetZoom: [] } });
|
|
108
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jYW52YXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNhbnZhcy9mLWNhbnZhcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY2FudmFzL2YtY2FudmFzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUMzQixVQUFVLEVBQ1YsTUFBTSxFQUNOLFFBQVEsRUFDUixLQUFLLEVBQUUsZUFBZSxFQUd0QixNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxXQUFXLEVBQUUsUUFBUSxFQUN0QixNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFBVSxlQUFlLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFJL0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzdDLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsd0JBQXdCLEVBQ3hCLGdCQUFnQixFQUFFLGNBQWMsRUFDaEMsMEJBQTBCLEVBQzFCLHVCQUF1QixFQUFFLFFBQVEsRUFBRSw0QkFBNEIsRUFDL0QsMEJBQTBCLEVBQUUsaUJBQWlCLEVBQUUsNkJBQTZCLEVBQUUsYUFBYSxFQUFFLGtCQUFrQixHQUNoSCxNQUFNLFdBQVcsQ0FBQztBQUNuQixPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDN0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFdBQVcsQ0FBQzs7QUFnQnZDLE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxXQUFXO0lBRTlCLFVBQVUsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDL0IsaUJBQWlCLEdBQUcsTUFBTSxDQUFDLFVB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biAgQ29tcG9uZW50LCBjb21wdXRlZCwgZWZmZWN0LFxuICBFbGVtZW50UmVmLFxuICBpbmplY3QsXG4gIEluamVjdG9yLFxuICBpbnB1dCwgbnVtYmVyQXR0cmlidXRlLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgb3V0cHV0LFxuICB2aWV3Q2hpbGQsXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge1xuICBGQ2FudmFzQmFzZSwgRl9DQU5WQVNcbn0gZnJvbSAnLi9mLWNhbnZhcy1iYXNlJztcbmltcG9ydCB7IElQb2ludCwgUG9pbnRFeHRlbnNpb25zLCBUcmFuc2Zvcm1Nb2RlbEV4dGVuc2lvbnMgfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7XG4gIEZDYW52YXNDaGFuZ2VFdmVudCxcbn0gZnJvbSAnLi9kb21haW4nO1xuaW1wb3J0IHsgRk1lZGlhdG9yIH0gZnJvbSAnQGZvYmxleC9tZWRpYXRvcic7XG5pbXBvcnQge1xuICBBZGRDYW52YXNUb1N0b3JlUmVxdWVzdCxcbiAgQ2VudGVyR3JvdXBPck5vZGVSZXF1ZXN0LFxuICBGaXRUb0Zsb3dSZXF1ZXN0LCBHZXRGbG93UmVxdWVzdCxcbiAgSW5wdXRDYW52YXNQb3NpdGlvblJlcXVlc3QsXG4gIElucHV0Q2FudmFzU2NhbGVSZXF1ZXN0LCBpc01vYmlsZSwgUmVtb3ZlQ2FudmFzRnJvbVN0b3JlUmVxdWVzdCxcbiAgUmVzZXRTY2FsZUFuZENlbnRlclJlcXVlc3QsIFJlc2V0U2NhbGVSZXF1ZXN0LCBTZXRCYWNrZ3JvdW5kVHJhbnNmb3JtUmVxdWVzdCwgdHJhbnNpdGlvbkVuZCwgVXBkYXRlU2NhbGVSZXF1ZXN0LFxufSBmcm9tICcuLi9kb21haW4nO1xuaW1wb3J0IHsgTm90aWZ5VHJhbnNmb3JtQ2hhbmdlZFJlcXVlc3QgfSBmcm9tICcuLi9mLXN0b3JhZ2UnO1xuaW1wb3J0IHsgRGVwcmVjYXRlZCB9IGZyb20gJy4uL2RvbWFpbic7XG5pbXBvcnQgeyBGRmxvd0Jhc2UgfSBmcm9tICcuLi9mLWZsb3cnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmLWNhbnZhcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9mLWNhbnZhcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWyAnLi9mLWNhbnZhcy5jb21wb25lbnQuc2NzcycgXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaG9zdDoge1xuICAgICdjbGFzcyc6ICdmLWNvbXBvbmVudCBmLWNhbnZhcycsXG4gIH0sXG4gIHByb3ZpZGVyczogW1xuICAgIHsgcHJvdmlkZTogRl9DQU5WQVMsIHVzZUV4aXN0aW5nOiBGQ2FudmFzQ29tcG9uZW50IH1cbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEZDYW52YXNDb21wb25lbnQgZXh0ZW5kcyBGQ2FudmFzQmFzZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9mTWVkaWF0b3IgPSBpbmplY3QoRk1lZGlhdG9yKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZWxlbWVudFJlZmVyZW5jZSA9IGluamVjdChFbGVtZW50UmVmKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuXG4gIHByaXZhdGUgX2Zsb3dJZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyBvdmVycmlkZSBmQ2FudmFzQ2hhbmdlID0gb3V0cHV0PEZDYW52YXNDaGFuZ2VFdmVudD4oKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgcG9zaXRpb24gPSBpbnB1dDxJUG9pbnQsIElQb2ludCB8IG51bGwgfCB1bmRlZmluZWQ+KFBvaW50RXh0ZW5zaW9ucy5pbml0aWFsaXplKCksIHsgdHJhbnNmb3JtOiBQb2ludEV4dGVuc2lvbnMuY2FzdFRvUG9pbnQgfSk7XG4gIHB1YmxpYyByZWFkb25seSBzY2FsZSA9IGlucHV0PG51bWJlciwgdW5rbm93bj4oMSwgeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KTtcbiAgcHVibGljIHJlYWRvbmx5IGRlYm91bmNlVGltZSA9IGlucHV0PG51bWJlciwgdW5rbm93bj4oMCwgeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KTtcbiAgcHVibGljIG92ZXJyaWRlIGRlYm91bmNlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5kZWJvdW5jZVRpbWUoKSA8IDAgPyAwIDogdGhpcy5kZWJvdW5jZVRpbWUoKSk7XG5cbiAgcHVibGljIG92ZXJyaWRlIGdldCBob3N0RWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuX2VsZW1lbnRSZWZlcmVuY2UubmF0aXZlRWxlbWVudDtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBmR3JvdXBzQ29udGFpbmVyID0gdmlld0NoaWxkLnJlcXVpcmVkPEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PignZkdyb3Vwc0NvbnRhaW5lcicpO1xuICBwdWJsaWMgb3ZlcnJpZGUgZk5vZGVzQ29udGFpbmVyID0gdmlld0NoaWxkLnJlcXVpcmVkPEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PignZk5vZGVzQ29udGFpbmVyJyk7XG4gIHB1YmxpYyBvdmVycmlkZSBmQ29ubmVjdGlvbnNDb250YWluZXIgPSB2aWV3Q2hpbGQucmVxdWlyZWQ8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KCdmQ29ubmVjdGlvbnNDb250YWluZXInKTtcblxuICBwdWJsaWMgZ2V0IGZsb3dJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9mbG93SWQhO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX2Zsb3dJZCA9IHRoaXMuX2ZNZWRpYXRvci5leGVjdXRlPEZGbG93QmFzZT4obmV3IEdldEZsb3dSZXF1ZXN0KCkpLmZJZCgpO1xuICAgIHRoaXMuX2ZNZWRpYXRvci5leGVjdXRlKG5ldyBBZGRDYW52YXNUb1N0b3JlUmVxdWVzdCh0aGlzKSk7XG4gICAgdGhpcy5fcG9zaXRpb25DaGFuZ2UoKTtcbiAgICB0aGlzLl9zY2FsZUNoYW5nZSgpO1xuICAgIHN1cGVyLnN1YnNjcmliZU9uQ2FudmFzQ2hhbmdlKCk7XG4gIH1cblxuICBwcml2YXRlIF9wb3NpdGlvbkNoYW5nZSgpOiB2b2lkIHtcbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgdGhpcy5fZk1lZGlhdG9yLmV4ZWN1dGUobmV3IElucHV0Q2FudmFzUG9zaXRpb25SZXF1ZXN0KHRoaXMudHJhbnNmb3JtLCB0aGlzLnBvc2l0aW9uKCkpKTtcbiAgICB9LCB7IGluamVjdG9yOiB0aGlzLl9pbmplY3RvciB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX3NjYWxlQ2hhbmdlKCk6IHZvaWQge1xuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICB0aGlzLl9mTWVkaWF0b3IuZXhlY3V0ZShuZXcgSW5wdXRDYW52YXNTY2FsZVJlcXVlc3QodGhpcy50cmFuc2Zvcm0sIHRoaXMuc2NhbGUoKSkpO1xuICAgIH0sIHsgaW5qZWN0b3I6IHRoaXMuX2luamVjdG9yIH0pO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIHJlZHJhdygpOiB2b2lkIHtcbiAgICB0aGlzLl9mTWVkaWF0b3IuZXhlY3V0ZShuZXcgU2V0QmFja2dyb3VuZFRyYW5zZm9ybVJlcXVlc3QodGhpcy50cmFuc2Zvcm0pKTtcbiAgICB0aGlzLmhvc3RFbGVtZW50LnNldEF0dHJpYnV0ZShcInN0eWxlXCIsIGB0cmFuc2Zvcm06ICR7IFRyYW5zZm9ybU1vZGVsRXh0ZW5zaW9ucy50b1N0cmluZyh0aGlzLnRyYW5zZm9ybSkgfWApO1xuICAgIHRoaXMuX2ZNZWRpYXRvci5leGVjdXRlKG5ldyBOb3RpZnlUcmFuc2Zvcm1DaGFuZ2VkUmVxdWVzdCgpKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSByZWRyYXdXaXRoQW5pbWF0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuX2ZNZWRpYXRvci5leGVjdXRlKG5ldyBTZXRCYWNrZ3JvdW5kVHJhbnNmb3JtUmVxdWVzdCh0aGlzLnRyYW5zZm9ybSkpO1xuICAgIHRoaXMuaG9zdEVsZW1lbnQuc2V0QXR0cmlidXRlKFwic3R5bGVcIiwgYHRyYW5zaXRpb246IHRyYW5zZm9ybSAkeyBpc01vYmlsZSgpID8gODAgOiAxNTAgfW1zIGVhc2UtaW4tb3V0OyB0cmFuc2Zvcm06ICR7IFRyYW5zZm9ybU1vZGVsRXh0ZW5zaW9ucy50b1N0cmluZyh0aGlzLnRyYW5zZm9ybSkgfWApO1xuICAgIHRyYW5zaXRpb25FbmQodGhpcy5ob3N0RWxlbWVudCwgKCkgPT4gdGhpcy5yZWRyYXcoKSk7XG4gIH1cblxuICBwdWJsaWMgY2VudGVyR3JvdXBPck5vZGUoaWQ6IHN0cmluZywgYW5pbWF0ZWQ6IGJvb2xlYW4gPSB0cnVlKTogdm9pZCB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLl9mTWVkaWF0b3IuZXhlY3V0ZShuZXcgQ2VudGVyR3JvdXBPck5vZGVSZXF1ZXN0KGlkLCBhbmltYXRlZCkpKTtcbiAgfVxuXG4gIHB1YmxpYyBmaXRUb1NjcmVlbih0b0NlbnRlcjogSVBvaW50ID0gUG9pbnRFeHRlbnNpb25zLmluaXRpYWxpemUoKSwgYW5pbWF0ZWQ6IGJvb2xlYW4gPSB0cnVlKTogdm9pZCB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLl9mTWVkaWF0b3IuZXhlY3V0ZShuZXcgRml0VG9GbG93UmVxdWVzdCh0b0NlbnRlciwgYW5pbWF0ZWQpKSk7XG4gIH1cblxuICBwdWJsaWMgcmVzZXRTY2FsZUFuZENlbnRlcihhbmltYXRlZDogYm9vbGVhbiA9IHRydWUpOiB2b2lkIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuX2ZNZWRpYXRvci5leGVjdXRlKG5ldyBSZXNldFNjYWxlQW5kQ2VudGVyUmVxdWVzdChhbmltYXRlZCkpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRTY2FsZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnRyYW5zZm9ybS5zY2FsZSB8fCAxO1xuICB9XG5cbiAgLyoqXG4gICAqICBAZGVwcmVjYXRlZCBNZXRob2QgXCJzZXRab29tXCIgaXMgZGVwcmVjYXRlZC4gVXNlIFwic2V0U2NhbGVcIiBpbnN0ZWFkLiBUaGlzIG1ldGhvZCB3aWxsIGJlIHJlbW92ZWQgaW4gdmVyc2lvbiAxOC4wLjAuYCxcbiAgICovXG4gIEBEZXByZWNhdGVkKCdzZXRTY2FsZScpXG4gIHB1YmxpYyBzZXRab29tKHNjYWxlOiBudW1iZXIsIHRvUG9zaXRpb246IElQb2ludCA9IFBvaW50RXh0ZW5zaW9ucy5pbml0aWFsaXplKCkpOiB2b2lkIHtcbiAgICB0aGlzLnNldFNjYWxlKHNjYWxlLCB0b1Bvc2l0aW9uKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBzZXRTY2FsZShzY2FsZTogbnVtYmVyLCB0b1Bvc2l0aW9uOiBJUG9pbnQgPSBQb2ludEV4dGVuc2lvbnMuaW5pdGlhbGl6ZSgpKTogdm9pZCB7XG4gICAgdGhpcy5fZk1lZGlhdG9yLmV4ZWN1dGUobmV3IFVwZGF0ZVNjYWxlUmVxdWVzdChzY2FsZSwgdG9Qb3NpdGlvbikpO1xuICB9XG5cbiAgLyoqXG4gICAqICBAZGVwcmVjYXRlZCBNZXRob2QgXCJyZXNldFpvb21cIiBpcyBkZXByZWNhdGVkLiBVc2UgXCJyZXNldFNjYWxlXCIgaW5zdGVhZC4gVGhpcyBtZXRob2Qgd2lsbCBiZSByZW1vdmVkIGluIHZlcnNpb24gMTguMC4wLmAsXG4gICAqL1xuICBARGVwcmVjYXRlZCgncmVzZXRTY2FsZScpXG4gIHB1YmxpYyByZXNldFpvb20oKTogdm9pZCB7XG4gICAgdGhpcy5yZXNldFNjYWxlKCk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgcmVzZXRTY2FsZSgpOiB2b2lkIHtcbiAgICB0aGlzLl9mTWVkaWF0b3IuZXhlY3V0ZShuZXcgUmVzZXRTY2FsZVJlcXVlc3QoKSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fZk1lZGlhdG9yLmV4ZWN1dGUobmV3IFJlbW92ZUNhbnZhc0Zyb21TdG9yZVJlcXVlc3QoKSk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXI+XG4gIDxkaXYgI2ZHcm91cHNDb250YWluZXI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2ZHcm91cF1cIj48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuICA8ZGl2ICNmQ29ubmVjdGlvbnNDb250YWluZXI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZi1zbmFwLWNvbm5lY3Rpb25cIj48L25nLWNvbnRlbnQ+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZi1jb25uZWN0aW9uXCI+PC9uZy1jb250ZW50PlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImYtY29ubmVjdGlvbi1mb3ItY3JlYXRlXCI+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cblxuICA8ZGl2ICNmTm9kZXNDb250YWluZXI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2ZOb2RlXVwiPjwvbmctY29udGVudD5cbiAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
|
|
155
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jYW52YXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNhbnZhcy9mLWNhbnZhcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY2FudmFzL2YtY2FudmFzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFVBQVUsRUFDVixNQUFNLEVBQ04sUUFBUSxFQUNSLEtBQUssRUFDTCxlQUFlLEVBR2YsTUFBTSxFQUNOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsUUFBUSxFQUFFLFdBQVcsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3RELE9BQU8sRUFBUyxlQUFlLEVBQUUsd0JBQXdCLEVBQUMsTUFBTSxZQUFZLENBQUM7QUFFN0UsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQzNDLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsd0JBQXdCLEVBQ3hCLFVBQVUsRUFDVixnQkFBZ0IsRUFDaEIsY0FBYyxFQUNkLDBCQUEwQixFQUMxQix1QkFBdUIsRUFDdkIsUUFBUSxFQUNSLDRCQUE0QixFQUM1QiwwQkFBMEIsRUFDMUIsaUJBQWlCLEVBQ2pCLDZCQUE2QixFQUM3QixhQUFhLEVBQ2Isa0JBQWtCLEdBQ25CLE1BQU0sV0FBVyxDQUFDO0FBQ25CLE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLGNBQWMsQ0FBQzs7QUFHM0Q7Ozs7Ozs7O0dBUUc7QUFjSCxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsV0FBVztJQUU5QixTQUFTLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzlCLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJ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LENBQUMsTUFBTTs4QkE2R3hDLE9BQU8sTUFtQlAsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIGNvbXB1dGVkLFxuICBlZmZlY3QsXG4gIEVsZW1lbnRSZWYsXG4gIGluamVjdCxcbiAgSW5qZWN0b3IsXG4gIGlucHV0LFxuICBudW1iZXJBdHRyaWJ1dGUsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBvdXRwdXQsXG4gIHZpZXdDaGlsZCxcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7Rl9DQU5WQVMsIEZDYW52YXNCYXNlfSBmcm9tICcuL2YtY2FudmFzLWJhc2UnO1xuaW1wb3J0IHtJUG9pbnQsIFBvaW50RXh0ZW5zaW9ucywgVHJhbnNmb3JtTW9kZWxFeHRlbnNpb25zfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7RkNhbnZhc0NoYW5nZUV2ZW50LH0gZnJvbSAnLi9kb21haW4nO1xuaW1wb3J0IHtGTWVkaWF0b3J9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuaW1wb3J0IHtcbiAgQWRkQ2FudmFzVG9TdG9yZVJlcXVlc3QsXG4gIENlbnRlckdyb3VwT3JOb2RlUmVxdWVzdCxcbiAgRGVwcmVjYXRlZCxcbiAgRml0VG9GbG93UmVxdWVzdCxcbiAgR2V0Rmxvd1JlcXVlc3QsXG4gIElucHV0Q2FudmFzUG9zaXRpb25SZXF1ZXN0LFxuICBJbnB1dENhbnZhc1NjYWxlUmVxdWVzdCxcbiAgaXNNb2JpbGUsXG4gIFJlbW92ZUNhbnZhc0Zyb21TdG9yZVJlcXVlc3QsXG4gIFJlc2V0U2NhbGVBbmRDZW50ZXJSZXF1ZXN0LFxuICBSZXNldFNjYWxlUmVxdWVzdCxcbiAgU2V0QmFja2dyb3VuZFRyYW5zZm9ybVJlcXVlc3QsXG4gIHRyYW5zaXRpb25FbmQsXG4gIFVwZGF0ZVNjYWxlUmVxdWVzdCxcbn0gZnJvbSAnLi4vZG9tYWluJztcbmltcG9ydCB7Tm90aWZ5VHJhbnNmb3JtQ2hhbmdlZFJlcXVlc3R9IGZyb20gJy4uL2Ytc3RvcmFnZSc7XG5pbXBvcnQge0ZGbG93QmFzZX0gZnJvbSAnLi4vZi1mbG93JztcblxuLyoqXG4gKiBDb21wb25lbnQgcmVwcmVzZW50aW5nIGEgY2FudmFzIGluIHRoZSBGLUZsb3cgZnJhbWV3b3JrLlxuICogSXQgaGFuZGxlcyB0aGUgcmVuZGVyaW5nIG9mIG5vZGVzLCBjb25uZWN0aW9ucywgYW5kIGdyb3VwcyxcbiAqIGFzIHdlbGwgYXMgdXNlciBpbnRlcmFjdGlvbnMgc3VjaCBhcyB6b29taW5nIGFuZCBwYW5uaW5nLlxuICogSXQgZXh0ZW5kcyB0aGUgRkNhbnZhc0Jhc2UgY2xhc3MgYW5kIGltcGxlbWVudHMgT25Jbml0IGFuZCBPbkRlc3Ryb3kgbGlmZWN5Y2xlIGhvb2tzLlxuICogSXQgcHJvdmlkZXMgbWV0aG9kcyB0byBtYW5pcHVsYXRlIHRoZSBjYW52YXMsIHN1Y2ggYXMgY2VudGVyaW5nIG5vZGVzIG9yIGdyb3VwcyxcbiAqIGZpdHRpbmcgdGhlIGNhbnZhcyB0byB0aGUgc2NyZWVuLCBhbmQgcmVzZXR0aW5nIHRoZSBzY2FsZS5cbiAqIEl0IGFsc28gZW1pdHMgZXZlbnRzIHdoZW4gdGhlIGNhbnZhcyBjaGFuZ2VzLCBhbGxvd2luZyBvdGhlciBjb21wb25lbnRzIHRvIHJlYWN0IHRvIHRoZXNlIGNoYW5nZXMuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2YtY2FudmFzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2YtY2FudmFzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZi1jYW52YXMuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaG9zdDoge1xuICAgICdjbGFzcyc6ICdmLWNvbXBvbmVudCBmLWNhbnZhcycsXG4gIH0sXG4gIHByb3ZpZGVyczogW1xuICAgIHtwcm92aWRlOiBGX0NBTlZBUywgdXNlRXhpc3Rpbmc6IEZDYW52YXNDb21wb25lbnR9XG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBGQ2FudmFzQ29tcG9uZW50IGV4dGVuZHMgRkNhbnZhc0Jhc2UgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfbWVkaWF0b3IgPSBpbmplY3QoRk1lZGlhdG9yKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfZWxlbWVudFJlZmVyZW5jZSA9IGluamVjdChFbGVtZW50UmVmKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuXG4gIHByaXZhdGUgX2Zsb3dJZDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyBvdmVycmlkZSBmQ2FudmFzQ2hhbmdlID0gb3V0cHV0PEZDYW52YXNDaGFuZ2VFdmVudD4oKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgcG9zaXRpb24gPSBpbnB1dDxJUG9pbnQsIElQb2ludCB8IG51bGwgfCB1bmRlZmluZWQ+KFBvaW50RXh0ZW5zaW9ucy5pbml0aWFsaXplKCksIHt0cmFuc2Zvcm06IFBvaW50RXh0ZW5zaW9ucy5jYXN0VG9Qb2ludH0pO1xuICBwdWJsaWMgcmVhZG9ubHkgc2NhbGUgPSBpbnB1dDxudW1iZXIsIHVua25vd24+KDEsIHt0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZX0pO1xuICBwdWJsaWMgcmVhZG9ubHkgZGVib3VuY2VUaW1lID0gaW5wdXQ8bnVtYmVyLCB1bmtub3duPigwLCB7dHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGV9KTtcbiAgcHVibGljIG92ZXJyaWRlIGRlYm91bmNlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5kZWJvdW5jZVRpbWUoKSA8IDAgPyAwIDogdGhpcy5kZWJvdW5jZVRpbWUoKSk7XG5cbiAgcHVibGljIG92ZXJyaWRlIGdldCBob3N0RWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuX2VsZW1lbnRSZWZlcmVuY2UubmF0aXZlRWxlbWVudDtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBmR3JvdXBzQ29udGFpbmVyID0gdmlld0NoaWxkLnJlcXVpcmVkPEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PignZkdyb3Vwc0NvbnRhaW5lcicpO1xuICBwdWJsaWMgb3ZlcnJpZGUgZk5vZGVzQ29udGFpbmVyID0gdmlld0NoaWxkLnJlcXVpcmVkPEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PignZk5vZGVzQ29udGFpbmVyJyk7XG4gIHB1YmxpYyBvdmVycmlkZSBmQ29ubmVjdGlvbnNDb250YWluZXIgPSB2aWV3Q2hpbGQucmVxdWlyZWQ8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KCdmQ29ubmVjdGlvbnNDb250YWluZXInKTtcblxuICBwdWJsaWMgZ2V0IGZsb3dJZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9mbG93SWQhO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX2Zsb3dJZCA9IHRoaXMuX21lZGlhdG9yLmV4ZWN1dGU8RkZsb3dCYXNlPihuZXcgR2V0Rmxvd1JlcXVlc3QoKSkuZklkKCk7XG4gICAgdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZShuZXcgQWRkQ2FudmFzVG9TdG9yZVJlcXVlc3QodGhpcykpO1xuICAgIHRoaXMuX3Bvc2l0aW9uQ2hhbmdlKCk7XG4gICAgdGhpcy5fc2NhbGVDaGFuZ2UoKTtcbiAgICBzdXBlci5zdWJzY3JpYmVPbkNhbnZhc0NoYW5nZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfcG9zaXRpb25DaGFuZ2UoKTogdm9pZCB7XG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIHRoaXMuX21lZGlhdG9yLmV4ZWN1dGUobmV3IElucHV0Q2FudmFzUG9zaXRpb25SZXF1ZXN0KHRoaXMudHJhbnNmb3JtLCB0aGlzLnBvc2l0aW9uKCkpKTtcbiAgICB9LCB7aW5qZWN0b3I6IHRoaXMuX2luamVjdG9yfSk7XG4gIH1cblxuICBwcml2YXRlIF9zY2FsZUNoYW5nZSgpOiB2b2lkIHtcbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZShuZXcgSW5wdXRDYW52YXNTY2FsZVJlcXVlc3QodGhpcy50cmFuc2Zvcm0sIHRoaXMuc2NhbGUoKSkpO1xuICAgIH0sIHtpbmplY3RvcjogdGhpcy5faW5qZWN0b3J9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWRyYXdzIHRoZSBjYW52YXMgYnkgYXBwbHlpbmcgdGhlIGN1cnJlbnQgdHJhbnNmb3JtYXRpb24uXG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgcmVkcmF3KCk6IHZvaWQge1xuICAgIHRoaXMuX21lZGlhdG9yLmV4ZWN1dGUobmV3IFNldEJhY2tncm91bmRUcmFuc2Zvcm1SZXF1ZXN0KHRoaXMudHJhbnNmb3JtKSk7XG4gICAgdGhpcy5ob3N0RWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJzdHlsZVwiLCBgdHJhbnNmb3JtOiAke1RyYW5zZm9ybU1vZGVsRXh0ZW5zaW9ucy50b1N0cmluZyh0aGlzLnRyYW5zZm9ybSl9YCk7XG4gICAgdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZShuZXcgTm90aWZ5VHJhbnNmb3JtQ2hhbmdlZFJlcXVlc3QoKSk7XG4gIH1cblxuICAvKipcbiAgICogUmVkcmF3cyB0aGUgY2FudmFzIHdpdGggYW4gYW5pbWF0aW9uIGVmZmVjdC5cbiAgICogVGhpcyBtZXRob2QgYXBwbGllcyBhIENTUyB0cmFuc2l0aW9uIHRvIHRoZSBjYW52YXMgZWxlbWVudCxcbiAgICogYWxsb3dpbmcgZm9yIGEgc21vb3RoIHZpc3VhbCB1cGRhdGUgb2YgdGhlIGNhbnZhcydzIHRyYW5zZm9ybWF0aW9uLlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIHJlZHJhd1dpdGhBbmltYXRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZShuZXcgU2V0QmFja2dyb3VuZFRyYW5zZm9ybVJlcXVlc3QodGhpcy50cmFuc2Zvcm0pKTtcbiAgICB0aGlzLmhvc3RFbGVtZW50LnNldEF0dHJpYnV0ZShcInN0eWxlXCIsIGB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gJHtpc01vYmlsZSgpID8gODAgOiAxNTB9bXMgZWFzZS1pbi1vdXQ7IHRyYW5zZm9ybTogJHtUcmFuc2Zvcm1Nb2RlbEV4dGVuc2lvbnMudG9TdHJpbmcodGhpcy50cmFuc2Zvcm0pfWApO1xuICAgIHRyYW5zaXRpb25FbmQodGhpcy5ob3N0RWxlbWVudCwgKCkgPT4gdGhpcy5yZWRyYXcoKSk7XG4gIH1cblxuICAvKipcbiAgICogQ2VudGVycyB0aGUgc3BlY2lmaWVkIGdyb3VwIG9yIG5vZGUgb24gdGhlIGNhbnZhcy5cbiAgICogQHBhcmFtIGdyb3VwT3JOb2RlSWQgLSBUaGUgSUQgb2YgdGhlIGdyb3VwIG9yIG5vZGUgdG8gY2VudGVyLlxuICAgKiBAcGFyYW0gYW5pbWF0ZWQgLSBJZiB0cnVlLCB0aGUgY2VudGVyaW5nIHdpbGwgYmUgYW5pbWF0ZWQ7IG90aGVyd2lzZSwgaXQgd2lsbCBiZSBpbnN0YW50YW5lb3VzLlxuICAgKi9cbiAgcHVibGljIGNlbnRlckdyb3VwT3JOb2RlKGdyb3VwT3JOb2RlSWQ6IHN0cmluZywgYW5pbWF0ZWQ6IGJvb2xlYW4gPSB0cnVlKTogdm9pZCB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLl9tZWRpYXRvci5leGVjdXRlKG5ldyBDZW50ZXJHcm91cE9yTm9kZVJlcXVlc3QoZ3JvdXBPck5vZGVJZCwgYW5pbWF0ZWQpKSk7XG4gIH1cblxuICAvKipcbiAgICogRml0cyB0aGUgY2FudmFzIHRvIHRoZSBzY3JlZW4gYnkgYWRqdXN0aW5nIHRoZSBzY2FsZSBhbmQgcG9zaXRpb24uXG4gICAqIEBwYXJhbSBwYWRkaW5nIC0gcGFkZGluZ3MgZnJvbSB0aGUgYm91bmRzIG9mIHRoZSBjYW52YXNcbiAgICogQHBhcmFtIGFuaW1hdGVkIC0gSWYgdHJ1ZSwgdGhlIGZpdCB3aWxsIGJlIGFuaW1hdGVkOyBvdGhlcndpc2UsIGl0IHdpbGwgYmUgaW5zdGFudGFuZW91cy5cbiAgICovXG4gIHB1YmxpYyBmaXRUb1NjcmVlbihwYWRkaW5nOiBJUG9pbnQgPSBQb2ludEV4dGVuc2lvbnMuaW5pdGlhbGl6ZSgpLCBhbmltYXRlZDogYm9vbGVhbiA9IHRydWUpOiB2b2lkIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuX21lZGlhdG9yLmV4ZWN1dGUobmV3IEZpdFRvRmxvd1JlcXVlc3QocGFkZGluZywgYW5pbWF0ZWQpKSk7XG4gIH1cblxuICAvKipcbiAgICogUmVzZXRzIHRoZSBzY2FsZSBhbmQgY2VudGVyIGFsbCBub2RlcyBhbmQgZ3JvdXBzIG9uIHRoZSBjYW52YXMuXG4gICAqIFRoaXMgbWV0aG9kIGlzIHVzZWQgdG8gcmVzdG9yZSB0aGUgY2FudmFzIHRvIGl0cyBkZWZhdWx0IHNjYWxlIGFuZCBwb3NpdGlvbixcbiAgICogYWxsb3dpbmcgdXNlcnMgdG8gcXVpY2tseSByZXR1cm4gdG8gYSBzdGFuZGFyZCB2aWV3IG9mIHRoZSBjYW52YXMgY29udGVudC5cbiAgICogQHBhcmFtIGFuaW1hdGVkIC0gSWYgdHJ1ZSwgdGhlIHJlc2V0IHdpbGwgYmUgYW5pbWF0ZWQ7IG90aGVyd2lzZSwgaXQgd2lsbCBiZSBpbnN0YW50YW5lb3VzLlxuICAgKiBUaGlzIGlzIHVzZWZ1bCBmb3IgcHJvdmlkaW5nIGEgc21vb3RoIHVzZXIgZXhwZXJpZW5jZSB3aGVuIHJlc2V0dGluZyB0aGUgdmlldy5cbiAgICovXG4gIHB1YmxpYyByZXNldFNjYWxlQW5kQ2VudGVyKGFuaW1hdGVkOiBib29sZWFuID0gdHJ1ZSk6IHZvaWQge1xuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZShuZXcgUmVzZXRTY2FsZUFuZENlbnRlclJlcXVlc3QoYW5pbWF0ZWQpKSk7XG4gIH1cblxuICAvKipcbiAgICogIEdldHMgdGhlIGN1cnJlbnQgc2NhbGUgb2YgdGhlIGNhbnZhcy5cbiAgICovXG4gIHB1YmxpYyBnZXRTY2FsZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnRyYW5zZm9ybS5zY2FsZSB8fCAxO1xuICB9XG5cbiAgLyoqXG4gICAqICBAZGVwcmVjYXRlZCBNZXRob2QgXCJzZXRab29tXCIgaXMgZGVwcmVjYXRlZC4gVXNlIFwic2V0U2NhbGVcIiBpbnN0ZWFkLiBUaGlzIG1ldGhvZCB3aWxsIGJlIHJlbW92ZWQgaW4gdmVyc2lvbiAxOC4wLjAuYCxcbiAgICovXG4gIEBEZXByZWNhdGVkKCdzZXRTY2FsZScpXG4gIHB1YmxpYyBzZXRab29tKHNjYWxlOiBudW1iZXIsIHRvUG9zaXRpb246IElQb2ludCA9IFBvaW50RXh0ZW5zaW9ucy5pbml0aWFsaXplKCkpOiB2b2lkIHtcbiAgICB0aGlzLnNldFNjYWxlKHNjYWxlLCB0b1Bvc2l0aW9uKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBzY2FsZSBvZiB0aGUgY2FudmFzIHRvIGEgc3BlY2lmaWVkIHZhbHVlLlxuICAgKiBUaGlzIG1ldGhvZCBpcyB1c2VkIHRvIHpvb20gaW4gb3Igb3V0IG9mIHRoZSBjYW52YXMsXG4gICAqIGFsbG93aW5nIHVzZXJzIHRvIGFkanVzdCB0aGUgdmlldyBvZiB0aGUgY2FudmFzIGNvbnRlbnQuXG4gICAqIEBwYXJhbSBzY2FsZSAtIFRoZSBzY2FsZSBmYWN0b3IgdG8gc2V0IGZvciB0aGUgY2FudmFzLlxuICAgKiBAcGFyYW0gdG9Qb3NpdGlvbiAtIFRoZSBwb3NpdGlvbiB0byB3aGljaCB0aGUgY2FudmFzIHNob3VsZCBiZSBjZW50ZXJlZCBhZnRlciBzY2FsaW5nLlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIHNldFNjYWxlKHNjYWxlOiBudW1iZXIsIHRvUG9zaXRpb246IElQb2ludCA9IFBvaW50RXh0ZW5zaW9ucy5pbml0aWFsaXplKCkpOiB2b2lkIHtcbiAgICB0aGlzLl9tZWRpYXRvci5leGVjdXRlKG5ldyBVcGRhdGVTY2FsZVJlcXVlc3Qoc2NhbGUsIHRvUG9zaXRpb24pKTtcbiAgfVxuXG4gIC8qKlxuICAgKiAgQGRlcHJlY2F0ZWQgTWV0aG9kIFwicmVzZXRab29tXCIgaXMgZGVwcmVjYXRlZC4gVXNlIFwicmVzZXRTY2FsZVwiIGluc3RlYWQuIFRoaXMgbWV0aG9kIHdpbGwgYmUgcmVtb3ZlZCBpbiB2ZXJzaW9uIDE4LjAuMC5gLFxuICAgKi9cbiAgQERlcHJlY2F0ZWQoJ3Jlc2V0U2NhbGUnKVxuICBwdWJsaWMgcmVzZXRab29tKCk6IHZvaWQge1xuICAgIHRoaXMucmVzZXRTY2FsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0cyB0aGUgc2NhbGUgb2YgdGhlIGNhbnZhcyB0byBpdHMgZGVmYXVsdCB2YWx1ZS5cbiAgICogVGhpcyBtZXRob2QgaXMgdXNlZCB0byByZXN0b3JlIHRoZSBjYW52YXMgdG8gaXRzIG9yaWdpbmFsIHNjYWxlLlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIHJlc2V0U2NhbGUoKTogdm9pZCB7XG4gICAgdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZShuZXcgUmVzZXRTY2FsZVJlcXVlc3QoKSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZShuZXcgUmVtb3ZlQ2FudmFzRnJvbVN0b3JlUmVxdWVzdCgpKTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lcj5cbiAgPGRpdiAjZkdyb3Vwc0NvbnRhaW5lcj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZkdyb3VwXVwiPjwvbmctY29udGVudD5cbiAgPC9kaXY+XG4gIDxkaXYgI2ZDb25uZWN0aW9uc0NvbnRhaW5lcj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJmLXNuYXAtY29ubmVjdGlvblwiPjwvbmctY29udGVudD5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJmLWNvbm5lY3Rpb25cIj48L25nLWNvbnRlbnQ+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZi1jb25uZWN0aW9uLWZvci1jcmVhdGVcIj48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuXG4gIDxkaXYgI2ZOb2Rlc0NvbnRhaW5lcj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZk5vZGVdXCI+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuIl19
|
|
@@ -55,8 +55,14 @@ export class FZoomDirective extends FZoomBase {
|
|
|
55
55
|
if (targetElement?.closest('[fLockedContext]')) {
|
|
56
56
|
return;
|
|
57
57
|
}
|
|
58
|
-
|
|
58
|
+
const step = this._normalizeWheelStep(event.deltaY);
|
|
59
|
+
this.setZoom(PointExtensions.initialize(event.clientX, event.clientY), step, this._calculateDirection(event.deltaY), false);
|
|
59
60
|
};
|
|
61
|
+
_normalizeWheelStep(deltaY) {
|
|
62
|
+
const intensity = Math.abs(deltaY) / 100;
|
|
63
|
+
const normalized = Math.max(0.1, Math.min(intensity, 1));
|
|
64
|
+
return this.step * normalized;
|
|
65
|
+
}
|
|
60
66
|
_calculateDirection(deltaY) {
|
|
61
67
|
return deltaY > 0 ? EFZoomDirection.ZOOM_OUT : EFZoomDirection.ZOOM_IN;
|
|
62
68
|
}
|
|
@@ -143,4 +149,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
143
149
|
type: Input,
|
|
144
150
|
args: [{ alias: 'fZoomDblClickStep', transform: numberAttribute }]
|
|
145
151
|
}], getScale: [] } });
|
|
146
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi16b29tLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi16b29tL2Ytem9vbS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFFTCxnQkFBZ0IsRUFDaEIsU0FBUyxFQUNULE1BQU0sRUFDTixLQUFLLEVBQ0wsZUFBZSxFQUlmLFNBQVMsRUFFVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDN0MsT0FBTyxFQUNMLHFCQUFxQixFQUFFLG1CQUFtQixFQUMxQyxVQUFVLEVBRVYsZ0JBQWdCLEVBQ2hCLHlCQUF5QixFQUFFLG1CQUFtQixFQUM5QywwQkFBMEIsRUFDMUIsZ0JBQWdCLEVBQ2hCLGNBQWMsRUFDZixNQUFNLFdBQVcsQ0FBQztBQUVuQixPQUFPLEVBQWlCLGVBQWUsRUFBRSxjQUFjLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDNUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNuQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBV3ZELE1BQU0sT0FBTyxjQUFlLFNBQVEsU0FBUztJQUVuQyxVQUFVLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQy9CLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFOUIsaUJBQWlCLEdBQWUsRUFBRSxDQUFDO0lBR3BDLFNBQVMsR0FBWSxLQUFLLENBQUM7SUFHM0IsYUFBYSxHQUFrQixtQkFBbUIsQ0FBQztJQUduRCxnQkFBZ0IsR0FBa0IsbUJBQW1CLENBQUM7SUFHN0MsT0FBTyxHQUFXLEdBQUcsQ0FBQztJQUd0QixPQUFPLEdBQVcsQ0FBQyxDQUFDO0lB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QkFTUSxTQUFTO3NCQURmLEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFJL0MsYUFBYTtzQkFEbkIsS0FBSztnQkFJQyxnQkFBZ0I7c0JBRHRCLEtBQUs7Z0JBSVUsT0FBTztzQkFEdEIsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRTtnQkFJNUMsT0FBTztzQkFEdEIsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRTtnQkFJNUMsSUFBSTtzQkFEbkIsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRTtnQkFJekMsWUFBWTtzQkFEM0IsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFO2dCQTBHMUQsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIGJvb2xlYW5BdHRyaWJ1dGUsXG4gIERpcmVjdGl2ZSxcbiAgaW5qZWN0LFxuICBJbnB1dCxcbiAgbnVtYmVyQXR0cmlidXRlLFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBSZW5kZXJlcjIsXG4gIFNpbXBsZUNoYW5nZXNcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEZfWk9PTSwgRlpvb21CYXNlIH0gZnJvbSAnLi9mLXpvb20tYmFzZSc7XG5pbXBvcnQgeyBGTWVkaWF0b3IgfSBmcm9tICdAZm9ibGV4L21lZGlhdG9yJztcbmltcG9ydCB7XG4gIEFkZFpvb21Ub1N0b3JlUmVxdWVzdCwgZGVmYXVsdEV2ZW50VHJpZ2dlcixcbiAgRGVwcmVjYXRlZCxcbiAgRkV2ZW50VHJpZ2dlcixcbiAgR2V0Q2FudmFzUmVxdWVzdCxcbiAgR2V0Rmxvd0hvc3RFbGVtZW50UmVxdWVzdCwgaXNWYWxpZEV2ZW50VHJpZ2dlcixcbiAgUmVtb3ZlWm9vbUZyb21TdG9yZVJlcXVlc3QsXG4gIFJlc2V0Wm9vbVJlcXVlc3QsXG4gIFNldFpvb21SZXF1ZXN0XG59IGZyb20gJy4uL2RvbWFpbic7XG5pbXBvcnQgeyBGQ2FudmFzQmFzZSB9IGZyb20gJy4uL2YtY2FudmFzJztcbmltcG9ydCB7IElQb2ludCwgSVJlY3QsIFBvaW50RXh0ZW5zaW9ucywgUmVjdEV4dGVuc2lvbnMgfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7IGlzTm9kZSB9IGZyb20gJy4uL2Ytbm9kZSc7XG5pbXBvcnQgeyBFRlpvb21EaXJlY3Rpb24gfSBmcm9tICcuL2UtZi16b29tLWRpcmVjdGlvbic7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogXCJmLWNhbnZhc1tmWm9vbV1cIixcbiAgZXhwb3J0QXM6ICdmQ29tcG9uZW50JyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaG9zdDoge1xuICAgICdjbGFzcyc6ICdmLXpvb20gZi1jb21wb25lbnQnXG4gIH0sXG4gIHByb3ZpZGVyczogWyB7IHByb3ZpZGU6IEZfWk9PTSwgdXNlRXhpc3Rpbmc6IEZab29tRGlyZWN0aXZlIH0gXSxcbn0pXG5leHBvcnQgY2xhc3MgRlpvb21EaXJlY3RpdmUgZXh0ZW5kcyBGWm9vbUJhc2UgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcblxuICBwcml2YXRlIF9mTWVkaWF0b3IgPSBpbmplY3QoRk1lZGlhdG9yKTtcbiAgcHJpdmF0ZSBfcmVuZGVyZWQgPSBpbmplY3QoUmVuZGVyZXIyKTtcblxuICBwcml2YXRlIF90cmlnZ2Vyc0xpc3RlbmVyOiBGdW5jdGlvbltdID0gW107XG5cbiAgQElucHV0KHsgYWxpYXM6ICdmWm9vbScsIHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICBwdWJsaWMgaXNFbmFibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGZXaGVlbFRyaWdnZXI6IEZFdmVudFRyaWdnZXIgPSBkZWZhdWx0RXZlbnRUcmlnZ2VyO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBmRGJsQ2xpY2tUcmlnZ2VyOiBGRXZlbnRUcmlnZ2VyID0gZGVmYXVsdEV2ZW50VHJpZ2dlcjtcblxuICBASW5wdXQoeyBhbGlhczogJ2Zab29tTWluaW11bScsIHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pXG4gIHB1YmxpYyBvdmVycmlkZSBtaW5pbXVtOiBudW1iZXIgPSAwLjE7XG5cbiAgQElucHV0KHsgYWxpYXM6ICdmWm9vbU1heGltdW0nLCB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KVxuICBwdWJsaWMgb3ZlcnJpZGUgbWF4aW11bTogbnVtYmVyID0gNDtcblxuICBASW5wdXQoeyBhbGlhczogJ2Zab29tU3RlcCcsIHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pXG4gIHB1YmxpYyBvdmVycmlkZSBzdGVwOiBudW1iZXIgPSAwLjE7XG5cbiAgQElucHV0KHsgYWxpYXM6ICdmWm9vbURibENsaWNrU3RlcCcsIHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pXG4gIHB1YmxpYyBvdmVycmlkZSBkYmxDbGlja1N0ZXA6IG51bWJlciA9IDAuNTtcblxuICBwcml2YXRlIGdldCBfZkhvc3QoKTogSFRNTEVsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLl9mTWVkaWF0b3IuZXhlY3V0ZShuZXcgR2V0Rmxvd0hvc3RFbGVtZW50UmVxdWVzdCgpKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IF9mQ2FudmFzKCk6IEZDYW52YXNCYXNlIHtcbiAgICByZXR1cm4gdGhpcy5fZk1lZGlhdG9yLmV4ZWN1dGUobmV3IEdldENhbnZhc1JlcXVlc3QoKSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fZk1lZGlhdG9yLmV4ZWN1dGUobmV3IEFkZFpvb21Ub1N0b3JlUmVxdWVzdCh0aGlzKSk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX2xpc3RlblRyaWdnZXJzKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzWyAnaXNFbmFibGVkJyBdKSB7XG4gICAgICB0aGlzLl9saXN0ZW5UcmlnZ2VycygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2xpc3RlblRyaWdnZXJzKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5fZkhvc3QpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9kaXNwb3NlTGlzdGVuZXJzKCk7XG4gICAgaWYgKCF0aGlzLmlzRW5hYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX3RyaWdnZXJzTGlzdGVuZXIucHVzaCh0aGlzLl9yZW5kZXJlZC5saXN0ZW4odGhpcy5fZkhvc3QsICd3aGVlbCcsIHRoaXMuX29uV2hlZWwpKTtcbiAgICB0aGlzLl90cmlnZ2Vyc0xpc3RlbmVyLnB1c2godGhpcy5fcmVuZGVyZWQubGlzdGVuKHRoaXMuX2ZIb3N0LCAnZGJsY2xpY2snLCB0aGlzLl9vbkRvdWJsZUNsaWNrKSk7XG4gIH1cblxuICBwcml2YXRlIF9vbldoZWVsID0gKGV2ZW50OiBXaGVlbEV2ZW50KSA9PiB7XG4gICAgaWYgKCFpc1ZhbGlkRXZlbnRUcmlnZ2VyKGV2ZW50LCB0aGlzLmZXaGVlbFRyaWdnZXIpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgY29uc3QgdGFyZ2V0RWxlbWVudCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcblxuICAgIGlmICh0YXJnZXRFbGVtZW50Py5jbG9zZXN0KCdbZkxvY2tlZENvbnRleHRdJykpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNldFpvb20oXG4gICAgICBQb2ludEV4dGVuc2lvbnMuaW5pdGlhbGl6ZShldmVudC5jbGllbnRYLCBldmVudC5jbGllbnRZKSxcbiAgICAgIHRoaXMuc3RlcCwgdGhpcy5fY2FsY3VsYXRlRGlyZWN0aW9uKGV2ZW50LmRlbHRhWSksIGZhbHNlXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NhbGN1bGF0ZURpcmVjdGlvbihkZWx0YVk6IG51bWJlcik6IG51bWJlciB7XG4gICAgcmV0dXJuIGRlbHRhWSA+IDAgPyBFRlpvb21EaXJlY3Rpb24uWk9PTV9PVVQgOiBFRlpvb21EaXJlY3Rpb24uWk9PTV9JTjtcbiAgfVxuXG4gIHByaXZhdGUgX29uRG91YmxlQ2xpY2sgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICBpZiAoIWlzVmFsaWRFdmVudFRyaWdnZXIoZXZlbnQsIHRoaXMuZkRibENsaWNrVHJpZ2dlcikpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBjb25zdCB0YXJnZXRFbGVtZW50ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuXG4gICAgaWYgKGlzTm9kZSh0YXJnZXRFbGVtZW50KSB8fCB0YXJnZXRFbGVtZW50Py5jbG9zZXN0KCdbZkxvY2tlZENvbnRleHRdJykpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNldFpvb20oXG4gICAgICBQb2ludEV4dGVuc2lvbnMuaW5pdGlhbGl6ZShldmVudC5jbGllbnRYLCBldmVudC5jbGllbnRZKSxcbiAgICAgIHRoaXMuZGJsQ2xpY2tTdGVwLCBFRlpvb21EaXJlY3Rpb24uWk9PTV9JTiwgdHJ1ZVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRUb0NlbnRlclBvc2l0aW9uKHBvc2l0aW9uOiBJUG9pbnQgfCB1bmRlZmluZWQsIHJlY3Q6IElSZWN0KTogSVBvaW50IHtcbiAgICByZXR1cm4gUG9pbnRFeHRlbnNpb25zLmluaXRpYWxpemUocG9zaXRpb24/LnggfHwgcmVjdC5ncmF2aXR5Q2VudGVyLngsIHBvc2l0aW9uPy55IHx8IHJlY3QuZ3Jhdml0eUNlbnRlci55KTtcbiAgfVxuXG4gIHB1YmxpYyB6b29tSW4ocG9zaXRpb24/OiBJUG9pbnQpOiB2b2lkIHtcbiAgICB0aGlzLl9vblpvb21Ub0NlbnRlcihFRlpvb21EaXJlY3Rpb24uWk9PTV9JTiwgcG9zaXRpb24pO1xuICB9XG5cbiAgcHVibGljIHpvb21PdXQocG9zaXRpb24/OiBJUG9pbnQpOiB2b2lkIHtcbiAgICB0aGlzLl9vblpvb21Ub0NlbnRlcihFRlpvb21EaXJlY3Rpb24uWk9PTV9PVVQsIHBvc2l0aW9uKTtcbiAgfVxuXG4gIHByaXZhdGUgX29uWm9vbVRvQ2VudGVyKGRpcmVjdGlvbjogRUZab29tRGlyZWN0aW9uLCBwb3NpdGlvbj86IElQb2ludCk6IHZvaWQge1xuICAgIHRoaXMuc2V0Wm9vbShcbiAgICAgIHRoaXMuX2dldFRvQ2VudGVyUG9zaXRpb24ocG9zaXRpb24sIFJlY3RFeHRlbnNpb25zLmZyb21FbGVtZW50KHRoaXMuX2ZIb3N0KSksXG4gICAgICB0aGlzLnN0ZXAsIGRpcmVjdGlvbiwgZmFsc2VcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHNldFpvb20ocG9zaXRpb246IElQb2ludCwgc3RlcDogbnVtYmVyLCBkaXJlY3Rpb246IEVGWm9vbURpcmVjdGlvbiwgYW5pbWF0ZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9mTWVkaWF0b3IuZXhlY3V0ZShcbiAgICAgIG5ldyBTZXRab29tUmVxdWVzdChwb3NpdGlvbiwgc3RlcCwgZGlyZWN0aW9uLCBhbmltYXRlZClcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqICBAZGVwcmVjYXRlZCBNZXRob2QgXCJnZXRTY2FsZVwiIGlzIGRlcHJlY2F0ZWQuIFVzZSBcImdldFpvb21WYWx1ZVwiIGluc3RlYWQuIFRoaXMgbWV0aG9kIHdpbGwgYmUgcmVtb3ZlZCBpbiB2ZXJzaW9uIDE4LjAuMC5gLFxuICAgKi9cbiAgQERlcHJlY2F0ZWQoJ2dldFpvb21WYWx1ZScpXG4gIHB1YmxpYyBnZXRTY2FsZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmdldFpvb21WYWx1ZSgpO1xuICB9XG5cbiAgcHVibGljIGdldFpvb21WYWx1ZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9mQ2FudmFzLnRyYW5zZm9ybS5zY2FsZSB8fCAxO1xuICB9XG5cbiAgcHVibGljIHJlc2V0KCk6IHZvaWQge1xuICAgIHRoaXMuX2ZNZWRpYXRvci5leGVjdXRlKG5ldyBSZXNldFpvb21SZXF1ZXN0KCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZGlzcG9zZUxpc3RlbmVycygpOiB2b2lkIHtcbiAgICB0aGlzLl90cmlnZ2Vyc0xpc3RlbmVyLmZvckVhY2goKGxpc3RlbmVyKSA9PiBsaXN0ZW5lcigpKTtcbiAgICB0aGlzLl90cmlnZ2Vyc0xpc3RlbmVyID0gW107XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fZGlzcG9zZUxpc3RlbmVycygpO1xuICAgIHRoaXMuX2ZNZWRpYXRvci5leGVjdXRlKG5ldyBSZW1vdmVab29tRnJvbVN0b3JlUmVxdWVzdCgpKTtcbiAgfVxufVxuIl19
|
|
152
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi16b29tLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi16b29tL2Ytem9vbS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFFTCxnQkFBZ0IsRUFDaEIsU0FBUyxFQUNULE1BQU0sRUFDTixLQUFLLEVBQ0wsZUFBZSxFQUlmLFNBQVMsRUFFVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDN0MsT0FBTyxFQUNMLHFCQUFxQixFQUFFLG1CQUFtQixFQUMxQyxVQUFVLEVBRVYsZ0JBQWdCLEVBQ2hCLHlCQUF5QixFQUFFLG1CQUFtQixFQUM5QywwQkFBMEIsRUFDMUIsZ0JBQWdCLEVBQ2hCLGNBQWMsRUFDZixNQUFNLFdBQVcsQ0FBQztBQUVuQixPQUFPLEVBQWlCLGVBQWUsRUFBRSxjQUFjLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDNUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNuQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBV3ZELE1BQU0sT0FBTyxjQUFlLFNBQVEsU0FBUztJQUVuQyxVQUFVLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQy9CLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFOUIsaUJBQWlCLEdBQWUsRUFBRSxDQUFDO0lBR3BDLFNBQVMsR0FBWSxLQUFLLENBQUM7SUFHM0IsYUFBYSxHQUFrQixtQkFBbUIsQ0FBQztJQUduRCxnQkFBZ0IsR0FBa0IsbUJBQW1CLENBQUM7SUFHN0MsT0FBTyxHQUFXLEdBQUcsQ0FBQztJQUd0QixPQUFPLEdBQVcsQ0FBQyxDQUFDO0lBR3BCLElBQUksR0FBVyxHQUFHLENBQUM7SUFHbkIsWUFBWSxHQUFXLEdBQUcsQ0FBQztJQUUzQyxJQUFZLE1BQU07UUFDaEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLHlCQUF5QixFQUFFLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQsSUFBWSxRQUFRO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVNLFFBQVE7UUFDYixJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVNLGVBQWU7UUFDcEIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFTSxXQUFXLENBQUMsT0FBc0I7UUFDdkMsSUFBSSxPQUFPLENBQUUsV0FBVyxDQUFFLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDekIsQ0FBQztJQUNILENBQUM7SUFFTyxlQUFlO1FBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDakIsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3BCLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUN4RixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO0lBQ25HLENBQUM7SUFFTyxRQUFRLEdBQUcsQ0FBQyxLQUFpQixFQUFFLEVBQUU7UUFDdkMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQztZQUNwRCxPQUFPO1FBQ1QsQ0FBQztRQUNELEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixNQUFNLGFBQWEsR0FBRyxLQUFLLENBQUMsTUFBcUIsQ0FBQztRQUVsRCxJQUFJLGFBQWEsRUFBRSxPQUFPLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDO1lBQy9DLE9BQU87UUFDVCxDQUFDO1FBRUQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsT0FBTyxDQUNWLGVBQWUsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLEVBQ3hELElBQUksRUFDSixJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUN0QyxLQUFLLENBQ04sQ0FBQztJQUNKLENBQUMsQ0FBQTtJQUVPLG1CQUFtQixDQUFDLE1BQWM7UUFDeEMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLENBQUM7UUFDekMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN6RCxPQUFPLElBQUksQ0FBQyxJQUFJLEdBQUcsVUFBVSxDQUFDO0lBQ2hDLENBQUM7SUFFTyxtQkFBbUIsQ0FBQyxNQUFjO1FBQ3hDLE9BQU8sTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQztJQUN6RSxDQUFDO0lBRU8sY0FBYyxHQUFHLENBQUMsS0FBaUIsRUFBRSxFQUFFO1FBQzdDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsQ0FBQztZQUN2RCxPQUFPO1FBQ1QsQ0FBQztRQUNELEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixNQUFNLGFBQWEsR0FBRyxLQUFLLENBQUMsTUFBcUIsQ0FBQztRQUVsRCxJQUFJLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxhQUFhLEVBQUUsT0FBTyxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQztZQUN4RSxPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksQ0FBQyxPQUFPLENBQ1YsZUFBZSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFDeEQsSUFBSSxDQUFDLFlBQVksRUFBRSxlQUFlLENBQUMsT0FBTyxFQUFFLElBQUksQ0FDakQsQ0FBQztJQUNKLENBQUMsQ0FBQTtJQUVPLG9CQUFvQixDQUFDLFFBQTRCLEVBQUUsSUFBVztRQUNwRSxPQUFPLGVBQWUsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDOUcsQ0FBQztJQUVNLE1BQU0sQ0FBQyxRQUFpQjtRQUM3QixJQUFJLENBQUMsZUFBZSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVNLE9BQU8sQ0FBQyxRQUFpQjtRQUM5QixJQUFJLENBQUMsZUFBZSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVPLGVBQWUsQ0FBQyxTQUEwQixFQUFFLFFBQWlCO1FBQ25FLElBQUksQ0FBQyxPQUFPLENBQ1YsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFFBQVEsRUFBRSxjQUFjLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUM1RSxJQUFJLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQzVCLENBQUM7SUFDSixDQUFDO0lBRU0sT0FBTyxDQUFDLFFBQWdCLEVBQUUsSUFBWSxFQUFFLFNBQTBCLEVBQUUsUUFBaUI7UUFDMUYsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQ3JCLElBQUksY0FBYyxDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUN4RCxDQUFDO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBRUksUUFBUTtRQUNiLE9BQU8sSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFTSxZQUFZO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRU0sS0FBSztRQUNWLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFTyxpQkFBaUI7UUFDdkIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUN6RCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksMEJBQTBCLEVBQUUsQ0FBQyxDQUFDO0lBQzVELENBQUM7d0dBaEtVLGNBQWM7NEZBQWQsY0FBYywrRkFPVyxnQkFBZ0IsOEdBU1QsZUFBZSx3Q0FHZixlQUFlLCtCQUdsQixlQUFlLHVEQUdQLGVBQWUsZ0VBM0JwRCxDQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsY0FBYyxFQUFFLENBQUU7O0FBOEl4RDtJQUROLFVBQVUsQ0FBQyxjQUFjLENBQUM7OENBRzFCOzRGQTlJVSxjQUFjO2tCQVQxQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxpQkFBaUI7b0JBQzNCLFFBQVEsRUFBRSxZQUFZO29CQUN0QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsSUFBSSxFQUFFO3dCQUNKLE9BQU8sRUFBRSxvQkFBb0I7cUJBQzlCO29CQUNELFNBQVMsRUFBRSxDQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxXQUFXLGdCQUFnQixFQUFFLENBQUU7aUJBQ2hFOzhCQVNRLFNBQVM7c0JBRGYsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUkvQyxhQUFhO3NCQURuQixLQUFLO2dCQUlDLGdCQUFnQjtzQkFEdEIsS0FBSztnQkFJVSxPQUFPO3NCQUR0QixLQUFLO3VCQUFDLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFO2dCQUk1QyxPQUFPO3NCQUR0QixLQUFLO3VCQUFDLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFO2dCQUk1QyxJQUFJO3NCQURuQixLQUFLO3VCQUFDLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFO2dCQUl6QyxZQUFZO3NCQUQzQixLQUFLO3VCQUFDLEVBQUUsS0FBSyxFQUFFLG1CQUFtQixFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUU7Z0JBbUgxRCxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgRGlyZWN0aXZlLFxuICBpbmplY3QsXG4gIElucHV0LFxuICBudW1iZXJBdHRyaWJ1dGUsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIFJlbmRlcmVyMixcbiAgU2ltcGxlQ2hhbmdlc1xufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRl9aT09NLCBGWm9vbUJhc2UgfSBmcm9tICcuL2Ytem9vbS1iYXNlJztcbmltcG9ydCB7IEZNZWRpYXRvciB9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuaW1wb3J0IHtcbiAgQWRkWm9vbVRvU3RvcmVSZXF1ZXN0LCBkZWZhdWx0RXZlbnRUcmlnZ2VyLFxuICBEZXByZWNhdGVkLFxuICBGRXZlbnRUcmlnZ2VyLFxuICBHZXRDYW52YXNSZXF1ZXN0LFxuICBHZXRGbG93SG9zdEVsZW1lbnRSZXF1ZXN0LCBpc1ZhbGlkRXZlbnRUcmlnZ2VyLFxuICBSZW1vdmVab29tRnJvbVN0b3JlUmVxdWVzdCxcbiAgUmVzZXRab29tUmVxdWVzdCxcbiAgU2V0Wm9vbVJlcXVlc3Rcbn0gZnJvbSAnLi4vZG9tYWluJztcbmltcG9ydCB7IEZDYW52YXNCYXNlIH0gZnJvbSAnLi4vZi1jYW52YXMnO1xuaW1wb3J0IHsgSVBvaW50LCBJUmVjdCwgUG9pbnRFeHRlbnNpb25zLCBSZWN0RXh0ZW5zaW9ucyB9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuaW1wb3J0IHsgaXNOb2RlIH0gZnJvbSAnLi4vZi1ub2RlJztcbmltcG9ydCB7IEVGWm9vbURpcmVjdGlvbiB9IGZyb20gJy4vZS1mLXpvb20tZGlyZWN0aW9uJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiBcImYtY2FudmFzW2Zab29tXVwiLFxuICBleHBvcnRBczogJ2ZDb21wb25lbnQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBob3N0OiB7XG4gICAgJ2NsYXNzJzogJ2Ytem9vbSBmLWNvbXBvbmVudCdcbiAgfSxcbiAgcHJvdmlkZXJzOiBbIHsgcHJvdmlkZTogRl9aT09NLCB1c2VFeGlzdGluZzogRlpvb21EaXJlY3RpdmUgfSBdLFxufSlcbmV4cG9ydCBjbGFzcyBGWm9vbURpcmVjdGl2ZSBleHRlbmRzIEZab29tQmFzZSBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuXG4gIHByaXZhdGUgX2ZNZWRpYXRvciA9IGluamVjdChGTWVkaWF0b3IpO1xuICBwcml2YXRlIF9yZW5kZXJlZCA9IGluamVjdChSZW5kZXJlcjIpO1xuXG4gIHByaXZhdGUgX3RyaWdnZXJzTGlzdGVuZXI6IEZ1bmN0aW9uW10gPSBbXTtcblxuICBASW5wdXQoeyBhbGlhczogJ2Zab29tJywgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gIHB1YmxpYyBpc0VuYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZldoZWVsVHJpZ2dlcjogRkV2ZW50VHJpZ2dlciA9IGRlZmF1bHRFdmVudFRyaWdnZXI7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGZEYmxDbGlja1RyaWdnZXI6IEZFdmVudFRyaWdnZXIgPSBkZWZhdWx0RXZlbnRUcmlnZ2VyO1xuXG4gIEBJbnB1dCh7IGFsaWFzOiAnZlpvb21NaW5pbXVtJywgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSlcbiAgcHVibGljIG92ZXJyaWRlIG1pbmltdW06IG51bWJlciA9IDAuMTtcblxuICBASW5wdXQoeyBhbGlhczogJ2Zab29tTWF4aW11bScsIHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pXG4gIHB1YmxpYyBvdmVycmlkZSBtYXhpbXVtOiBudW1iZXIgPSA0O1xuXG4gIEBJbnB1dCh7IGFsaWFzOiAnZlpvb21TdGVwJywgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSlcbiAgcHVibGljIG92ZXJyaWRlIHN0ZXA6IG51bWJlciA9IDAuMTtcblxuICBASW5wdXQoeyBhbGlhczogJ2Zab29tRGJsQ2xpY2tTdGVwJywgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSlcbiAgcHVibGljIG92ZXJyaWRlIGRibENsaWNrU3RlcDogbnVtYmVyID0gMC41O1xuXG4gIHByaXZhdGUgZ2V0IF9mSG9zdCgpOiBIVE1MRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuX2ZNZWRpYXRvci5leGVjdXRlKG5ldyBHZXRGbG93SG9zdEVsZW1lbnRSZXF1ZXN0KCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgX2ZDYW52YXMoKTogRkNhbnZhc0Jhc2Uge1xuICAgIHJldHVybiB0aGlzLl9mTWVkaWF0b3IuZXhlY3V0ZShuZXcgR2V0Q2FudmFzUmVxdWVzdCgpKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9mTWVkaWF0b3IuZXhlY3V0ZShuZXcgQWRkWm9vbVRvU3RvcmVSZXF1ZXN0KHRoaXMpKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fbGlzdGVuVHJpZ2dlcnMoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbICdpc0VuYWJsZWQnIF0pIHtcbiAgICAgIHRoaXMuX2xpc3RlblRyaWdnZXJzKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfbGlzdGVuVHJpZ2dlcnMoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9mSG9zdCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX2Rpc3Bvc2VMaXN0ZW5lcnMoKTtcbiAgICBpZiAoIXRoaXMuaXNFbmFibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fdHJpZ2dlcnNMaXN0ZW5lci5wdXNoKHRoaXMuX3JlbmRlcmVkLmxpc3Rlbih0aGlzLl9mSG9zdCwgJ3doZWVsJywgdGhpcy5fb25XaGVlbCkpO1xuICAgIHRoaXMuX3RyaWdnZXJzTGlzdGVuZXIucHVzaCh0aGlzLl9yZW5kZXJlZC5saXN0ZW4odGhpcy5fZkhvc3QsICdkYmxjbGljaycsIHRoaXMuX29uRG91YmxlQ2xpY2spKTtcbiAgfVxuXG4gIHByaXZhdGUgX29uV2hlZWwgPSAoZXZlbnQ6IFdoZWVsRXZlbnQpID0+IHtcbiAgICBpZiAoIWlzVmFsaWRFdmVudFRyaWdnZXIoZXZlbnQsIHRoaXMuZldoZWVsVHJpZ2dlcikpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBjb25zdCB0YXJnZXRFbGVtZW50ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuXG4gICAgaWYgKHRhcmdldEVsZW1lbnQ/LmNsb3Nlc3QoJ1tmTG9ja2VkQ29udGV4dF0nKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHN0ZXAgPSB0aGlzLl9ub3JtYWxpemVXaGVlbFN0ZXAoZXZlbnQuZGVsdGFZKTtcbiAgICB0aGlzLnNldFpvb20oXG4gICAgICBQb2ludEV4dGVuc2lvbnMuaW5pdGlhbGl6ZShldmVudC5jbGllbnRYLCBldmVudC5jbGllbnRZKSxcbiAgICAgIHN0ZXAsXG4gICAgICB0aGlzLl9jYWxjdWxhdGVEaXJlY3Rpb24oZXZlbnQuZGVsdGFZKSxcbiAgICAgIGZhbHNlXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX25vcm1hbGl6ZVdoZWVsU3RlcChkZWx0YVk6IG51bWJlcik6IG51bWJlciB7XG4gICAgY29uc3QgaW50ZW5zaXR5ID0gTWF0aC5hYnMoZGVsdGFZKSAvIDEwMDtcbiAgICBjb25zdCBub3JtYWxpemVkID0gTWF0aC5tYXgoMC4xLCBNYXRoLm1pbihpbnRlbnNpdHksIDEpKTtcbiAgICByZXR1cm4gdGhpcy5zdGVwICogbm9ybWFsaXplZDtcbiAgfVxuXG4gIHByaXZhdGUgX2NhbGN1bGF0ZURpcmVjdGlvbihkZWx0YVk6IG51bWJlcik6IG51bWJlciB7XG4gICAgcmV0dXJuIGRlbHRhWSA+IDAgPyBFRlpvb21EaXJlY3Rpb24uWk9PTV9PVVQgOiBFRlpvb21EaXJlY3Rpb24uWk9PTV9JTjtcbiAgfVxuXG4gIHByaXZhdGUgX29uRG91YmxlQ2xpY2sgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICBpZiAoIWlzVmFsaWRFdmVudFRyaWdnZXIoZXZlbnQsIHRoaXMuZkRibENsaWNrVHJpZ2dlcikpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBjb25zdCB0YXJnZXRFbGVtZW50ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xuXG4gICAgaWYgKGlzTm9kZSh0YXJnZXRFbGVtZW50KSB8fCB0YXJnZXRFbGVtZW50Py5jbG9zZXN0KCdbZkxvY2tlZENvbnRleHRdJykpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNldFpvb20oXG4gICAgICBQb2ludEV4dGVuc2lvbnMuaW5pdGlhbGl6ZShldmVudC5jbGllbnRYLCBldmVudC5jbGllbnRZKSxcbiAgICAgIHRoaXMuZGJsQ2xpY2tTdGVwLCBFRlpvb21EaXJlY3Rpb24uWk9PTV9JTiwgdHJ1ZVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9nZXRUb0NlbnRlclBvc2l0aW9uKHBvc2l0aW9uOiBJUG9pbnQgfCB1bmRlZmluZWQsIHJlY3Q6IElSZWN0KTogSVBvaW50IHtcbiAgICByZXR1cm4gUG9pbnRFeHRlbnNpb25zLmluaXRpYWxpemUocG9zaXRpb24/LnggfHwgcmVjdC5ncmF2aXR5Q2VudGVyLngsIHBvc2l0aW9uPy55IHx8IHJlY3QuZ3Jhdml0eUNlbnRlci55KTtcbiAgfVxuXG4gIHB1YmxpYyB6b29tSW4ocG9zaXRpb24/OiBJUG9pbnQpOiB2b2lkIHtcbiAgICB0aGlzLl9vblpvb21Ub0NlbnRlcihFRlpvb21EaXJlY3Rpb24uWk9PTV9JTiwgcG9zaXRpb24pO1xuICB9XG5cbiAgcHVibGljIHpvb21PdXQocG9zaXRpb24/OiBJUG9pbnQpOiB2b2lkIHtcbiAgICB0aGlzLl9vblpvb21Ub0NlbnRlcihFRlpvb21EaXJlY3Rpb24uWk9PTV9PVVQsIHBvc2l0aW9uKTtcbiAgfVxuXG4gIHByaXZhdGUgX29uWm9vbVRvQ2VudGVyKGRpcmVjdGlvbjogRUZab29tRGlyZWN0aW9uLCBwb3NpdGlvbj86IElQb2ludCk6IHZvaWQge1xuICAgIHRoaXMuc2V0Wm9vbShcbiAgICAgIHRoaXMuX2dldFRvQ2VudGVyUG9zaXRpb24ocG9zaXRpb24sIFJlY3RFeHRlbnNpb25zLmZyb21FbGVtZW50KHRoaXMuX2ZIb3N0KSksXG4gICAgICB0aGlzLnN0ZXAsIGRpcmVjdGlvbiwgZmFsc2VcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHNldFpvb20ocG9zaXRpb246IElQb2ludCwgc3RlcDogbnVtYmVyLCBkaXJlY3Rpb246IEVGWm9vbURpcmVjdGlvbiwgYW5pbWF0ZWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9mTWVkaWF0b3IuZXhlY3V0ZShcbiAgICAgIG5ldyBTZXRab29tUmVxdWVzdChwb3NpdGlvbiwgc3RlcCwgZGlyZWN0aW9uLCBhbmltYXRlZClcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqICBAZGVwcmVjYXRlZCBNZXRob2QgXCJnZXRTY2FsZVwiIGlzIGRlcHJlY2F0ZWQuIFVzZSBcImdldFpvb21WYWx1ZVwiIGluc3RlYWQuIFRoaXMgbWV0aG9kIHdpbGwgYmUgcmVtb3ZlZCBpbiB2ZXJzaW9uIDE4LjAuMC5gLFxuICAgKi9cbiAgQERlcHJlY2F0ZWQoJ2dldFpvb21WYWx1ZScpXG4gIHB1YmxpYyBnZXRTY2FsZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmdldFpvb21WYWx1ZSgpO1xuICB9XG5cbiAgcHVibGljIGdldFpvb21WYWx1ZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9mQ2FudmFzLnRyYW5zZm9ybS5zY2FsZSB8fCAxO1xuICB9XG5cbiAgcHVibGljIHJlc2V0KCk6IHZvaWQge1xuICAgIHRoaXMuX2ZNZWRpYXRvci5leGVjdXRlKG5ldyBSZXNldFpvb21SZXF1ZXN0KCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZGlzcG9zZUxpc3RlbmVycygpOiB2b2lkIHtcbiAgICB0aGlzLl90cmlnZ2Vyc0xpc3RlbmVyLmZvckVhY2goKGxpc3RlbmVyKSA9PiBsaXN0ZW5lcigpKTtcbiAgICB0aGlzLl90cmlnZ2Vyc0xpc3RlbmVyID0gW107XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fZGlzcG9zZUxpc3RlbmVycygpO1xuICAgIHRoaXMuX2ZNZWRpYXRvci5leGVjdXRlKG5ldyBSZW1vdmVab29tRnJvbVN0b3JlUmVxdWVzdCgpKTtcbiAgfVxufVxuIl19
|
|
@@ -3,8 +3,17 @@ import { FCanvasBase } from './f-canvas-base';
|
|
|
3
3
|
import { IPoint } from '@foblex/2d';
|
|
4
4
|
import { FCanvasChangeEvent } from './domain';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
|
+
/**
|
|
7
|
+
* Component representing a canvas in the F-Flow framework.
|
|
8
|
+
* It handles the rendering of nodes, connections, and groups,
|
|
9
|
+
* as well as user interactions such as zooming and panning.
|
|
10
|
+
* It extends the FCanvasBase class and implements OnInit and OnDestroy lifecycle hooks.
|
|
11
|
+
* It provides methods to manipulate the canvas, such as centering nodes or groups,
|
|
12
|
+
* fitting the canvas to the screen, and resetting the scale.
|
|
13
|
+
* It also emits events when the canvas changes, allowing other components to react to these changes.
|
|
14
|
+
*/
|
|
6
15
|
export declare class FCanvasComponent extends FCanvasBase implements OnInit, OnDestroy {
|
|
7
|
-
private readonly
|
|
16
|
+
private readonly _mediator;
|
|
8
17
|
private readonly _elementReference;
|
|
9
18
|
private readonly _injector;
|
|
10
19
|
private _flowId;
|
|
@@ -21,21 +30,60 @@ export declare class FCanvasComponent extends FCanvasBase implements OnInit, OnD
|
|
|
21
30
|
ngOnInit(): void;
|
|
22
31
|
private _positionChange;
|
|
23
32
|
private _scaleChange;
|
|
33
|
+
/**
|
|
34
|
+
* Redraws the canvas by applying the current transformation.
|
|
35
|
+
*/
|
|
24
36
|
redraw(): void;
|
|
37
|
+
/**
|
|
38
|
+
* Redraws the canvas with an animation effect.
|
|
39
|
+
* This method applies a CSS transition to the canvas element,
|
|
40
|
+
* allowing for a smooth visual update of the canvas's transformation.
|
|
41
|
+
*/
|
|
25
42
|
redrawWithAnimation(): void;
|
|
26
|
-
|
|
27
|
-
|
|
43
|
+
/**
|
|
44
|
+
* Centers the specified group or node on the canvas.
|
|
45
|
+
* @param groupOrNodeId - The ID of the group or node to center.
|
|
46
|
+
* @param animated - If true, the centering will be animated; otherwise, it will be instantaneous.
|
|
47
|
+
*/
|
|
48
|
+
centerGroupOrNode(groupOrNodeId: string, animated?: boolean): void;
|
|
49
|
+
/**
|
|
50
|
+
* Fits the canvas to the screen by adjusting the scale and position.
|
|
51
|
+
* @param padding - paddings from the bounds of the canvas
|
|
52
|
+
* @param animated - If true, the fit will be animated; otherwise, it will be instantaneous.
|
|
53
|
+
*/
|
|
54
|
+
fitToScreen(padding?: IPoint, animated?: boolean): void;
|
|
55
|
+
/**
|
|
56
|
+
* Resets the scale and center all nodes and groups on the canvas.
|
|
57
|
+
* This method is used to restore the canvas to its default scale and position,
|
|
58
|
+
* allowing users to quickly return to a standard view of the canvas content.
|
|
59
|
+
* @param animated - If true, the reset will be animated; otherwise, it will be instantaneous.
|
|
60
|
+
* This is useful for providing a smooth user experience when resetting the view.
|
|
61
|
+
*/
|
|
28
62
|
resetScaleAndCenter(animated?: boolean): void;
|
|
63
|
+
/**
|
|
64
|
+
* Gets the current scale of the canvas.
|
|
65
|
+
*/
|
|
29
66
|
getScale(): number;
|
|
30
67
|
/**
|
|
31
68
|
* @deprecated Method "setZoom" is deprecated. Use "setScale" instead. This method will be removed in version 18.0.0.`,
|
|
32
69
|
*/
|
|
33
70
|
setZoom(scale: number, toPosition?: IPoint): void;
|
|
71
|
+
/**
|
|
72
|
+
* Sets the scale of the canvas to a specified value.
|
|
73
|
+
* This method is used to zoom in or out of the canvas,
|
|
74
|
+
* allowing users to adjust the view of the canvas content.
|
|
75
|
+
* @param scale - The scale factor to set for the canvas.
|
|
76
|
+
* @param toPosition - The position to which the canvas should be centered after scaling.
|
|
77
|
+
*/
|
|
34
78
|
setScale(scale: number, toPosition?: IPoint): void;
|
|
35
79
|
/**
|
|
36
80
|
* @deprecated Method "resetZoom" is deprecated. Use "resetScale" instead. This method will be removed in version 18.0.0.`,
|
|
37
81
|
*/
|
|
38
82
|
resetZoom(): void;
|
|
83
|
+
/**
|
|
84
|
+
* Resets the scale of the canvas to its default value.
|
|
85
|
+
* This method is used to restore the canvas to its original scale.
|
|
86
|
+
*/
|
|
39
87
|
resetScale(): void;
|
|
40
88
|
ngOnDestroy(): void;
|
|
41
89
|
static ɵfac: i0.ɵɵFactoryDeclaration<FCanvasComponent, never>;
|
|
@@ -4,4 +4,4 @@ import { FConnectionCenterDirective } from './f-connection-center';
|
|
|
4
4
|
import { FConnectionForCreateComponent } from './f-connection-for-create';
|
|
5
5
|
import { FMarkerDirective } from './f-marker';
|
|
6
6
|
import { FSnapConnectionComponent } from './f-snap-connection';
|
|
7
|
-
export declare const F_CONNECTION_PROVIDERS: (typeof
|
|
7
|
+
export declare const F_CONNECTION_PROVIDERS: (typeof FConnectionTextPathDirective | typeof FConnectionTextComponent | typeof FConnectionGradientComponent | typeof FConnectionPathComponent | typeof FConnectionSelectionComponent | typeof FConnectionCenterDirective | typeof FConnectionForCreateComponent | typeof FConnectionComponent | typeof FMarkerDirective | typeof FSnapConnectionComponent)[];
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { FCreateConnectionDragHandlerPreparationExecution, FCreateConnectionFinalizeExecution, FCreateConnectionFromOutletPreparationExecution, FCreateConnectionFromOutputPreparationExecution, FCreateConnectionPreparationExecution, GetFirstConnectableOutputExecution } from './f-create-connection';
|
|
2
2
|
import { FReassignConnectionFinalizeExecution, FReassignConnectionPreparationExecution } from './f-reassign-connection';
|
|
3
|
-
export declare const CONNECTIONS_PROVIDERS: (typeof
|
|
3
|
+
export declare const CONNECTIONS_PROVIDERS: (typeof GetFirstConnectableOutputExecution | typeof FCreateConnectionFinalizeExecution | typeof FCreateConnectionDragHandlerPreparationExecution | typeof FCreateConnectionFromOutletPreparationExecution | typeof FCreateConnectionFromOutputPreparationExecution | typeof FReassignConnectionFinalizeExecution | typeof FReassignConnectionPreparationExecution | typeof FCreateConnectionPreparationExecution)[];
|