@foblex/flow 17.7.1 → 17.8.1
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-pattern-to-background/add-pattern-to-background.execution.d.ts +2 -2
- package/domain/f-background/remove-background-from-store/remove-background-from-store.execution.d.ts +1 -1
- package/domain/f-canvas/providers.d.ts +1 -1
- package/domain/f-connection/calculate-connection-line-by-behavior/calculate-connection-line-by-behavior-request.d.ts +12 -0
- package/domain/f-connection/calculate-connection-line-by-behavior/{calculate-connection-line-by-behavior.execution.d.ts → calculate-connection-line-by-behavior.d.ts} +4 -4
- package/domain/f-connection/calculate-connection-line-by-behavior/fixed-center-behavior.d.ts +2 -2
- package/domain/f-connection/calculate-connection-line-by-behavior/fixed-outbound-behavior.d.ts +2 -2
- package/domain/f-connection/calculate-connection-line-by-behavior/floating-behavior.d.ts +2 -2
- package/domain/f-connection/calculate-connection-line-by-behavior/index.d.ts +2 -2
- package/domain/f-connection/providers.d.ts +2 -2
- package/domain/f-connection/redraw-connections/redraw-connections.execution.d.ts +2 -2
- package/domain/f-connectors/add-input-to-store/add-input-to-store-request.d.ts +2 -2
- package/domain/f-connectors/add-input-to-store/add-input-to-store.d.ts +12 -0
- package/domain/f-connectors/add-input-to-store/index.d.ts +1 -1
- package/domain/f-connectors/add-outlet-to-store/add-outlet-to-store-request.d.ts +2 -2
- package/domain/f-connectors/add-outlet-to-store/{add-outlet-to-store.execution.d.ts → add-outlet-to-store.d.ts} +5 -5
- package/domain/f-connectors/add-outlet-to-store/index.d.ts +1 -1
- package/domain/f-connectors/add-output-to-store/add-output-to-store-request.d.ts +2 -2
- package/domain/f-connectors/add-output-to-store/{add-output-to-store.execution.d.ts → add-output-to-store.d.ts} +5 -5
- package/domain/f-connectors/add-output-to-store/index.d.ts +1 -1
- package/domain/f-connectors/{find-closest-connector/find-closest-connector.request.d.ts → calculate-closest-connector/calculate-closest-connector-request.d.ts} +3 -3
- package/domain/f-connectors/calculate-closest-connector/calculate-closest-connector.d.ts +16 -0
- package/domain/f-connectors/calculate-closest-connector/index.d.ts +2 -0
- package/domain/f-connectors/get-all-can-be-connected-inputs-and-rects/get-all-can-be-connected-inputs-and-rects.execution.d.ts +3 -3
- package/domain/f-connectors/get-all-can-be-connected-inputs-and-rects/get-all-can-be-connected-inputs-and-rects.request.d.ts +2 -2
- 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 +2 -2
- package/domain/f-connectors/get-all-can-be-connected-source-connectors-and-rects/get-all-can-be-connected-source-connectors-and-rects.request.d.ts +2 -2
- package/domain/f-connectors/get-connector-and-rect/get-connector-and-rect-request.d.ts +2 -2
- package/domain/f-connectors/get-connector-and-rect/{get-connector-and-rect.execution.d.ts → get-connector-and-rect.d.ts} +4 -4
- package/domain/f-connectors/get-connector-and-rect/index.d.ts +1 -1
- package/domain/f-connectors/index.d.ts +1 -1
- package/domain/f-connectors/mark-connectable-connectors/index.d.ts +2 -2
- package/domain/f-connectors/mark-connectable-connectors/{mark-connectable-connectors.request.d.ts → mark-connectable-connectors-request.d.ts} +2 -2
- package/domain/f-connectors/mark-connectable-connectors/{mark-connectable-connectors.execution.d.ts → mark-connectable-connectors.d.ts} +5 -5
- package/domain/f-connectors/providers.d.ts +11 -11
- package/domain/f-connectors/remove-input-from-store/index.d.ts +1 -1
- package/domain/f-connectors/remove-input-from-store/remove-input-from-store-request.d.ts +2 -2
- package/domain/f-connectors/remove-input-from-store/{remove-input-from-store.execution.d.ts → remove-input-from-store.d.ts} +4 -4
- package/domain/f-connectors/unmark-connectable-connectors/index.d.ts +2 -2
- package/domain/f-connectors/unmark-connectable-connectors/{unmark-connectable-connectors.request.d.ts → unmark-connectable-connectors-request.d.ts} +2 -2
- package/domain/f-connectors/unmark-connectable-connectors/{unmark-connectable-connectors.execution.d.ts → unmark-connectable-connectors.d.ts} +5 -5
- package/domain/f-draggable/providers.d.ts +1 -1
- package/domain/f-draggable/start-drag-sequence/start-drag-sequence.execution.d.ts +2 -2
- package/domain/f-flow/get-flow-state/get-flow-state-connections/get-flow-state-connections.execution.d.ts +1 -1
- package/domain/f-flow/get-flow-state/providers.d.ts +1 -1
- package/domain/f-flow/providers.d.ts +1 -1
- package/domain/f-zoom/remove-zoom-from-store/remove-zoom-from-store.execution.d.ts +1 -1
- package/domain/i-map.d.ts +1 -3
- package/domain/providers.d.ts +1 -1
- package/esm2022/domain/css-cls.mjs +2 -2
- package/esm2022/domain/f-background/add-background-to-store/add-background-to-store-request.mjs +1 -1
- package/esm2022/domain/f-background/add-pattern-to-background/add-pattern-to-background.execution.mjs +8 -8
- package/esm2022/domain/f-background/add-pattern-to-background/add-pattern-to-background.request.mjs +1 -1
- package/esm2022/domain/f-background/providers.mjs +2 -2
- package/esm2022/domain/f-background/remove-background-from-store/remove-background-from-store-request.mjs +1 -1
- package/esm2022/domain/f-background/remove-background-from-store/remove-background-from-store.execution.mjs +2 -2
- package/esm2022/domain/f-background/set-background-transform/set-background-transform-request.mjs +1 -1
- package/esm2022/domain/f-canvas/add-canvas-to-store/add-canvas-to-store-request.mjs +1 -1
- package/esm2022/domain/f-canvas/center-group-or-node/center-group-or-node-request.mjs +1 -1
- package/esm2022/domain/f-canvas/center-group-or-node/center-group-or-node.execution.mjs +1 -1
- package/esm2022/domain/f-canvas/fit-to-flow/fit-to-flow-request.mjs +1 -1
- package/esm2022/domain/f-canvas/fit-to-flow/fit-to-flow.execution.mjs +1 -1
- package/esm2022/domain/f-canvas/get-canvas/get-canvas.execution.mjs +1 -1
- package/esm2022/domain/f-canvas/input-canvas-position/input-canvas-position-request.mjs +1 -1
- package/esm2022/domain/f-canvas/input-canvas-position/input-canvas-position.execution.mjs +1 -1
- package/esm2022/domain/f-canvas/input-canvas-scale/input-canvas-scale-request.mjs +1 -1
- package/esm2022/domain/f-canvas/providers.mjs +2 -2
- package/esm2022/domain/f-canvas/redraw-canvas-with-animation/redraw-canvas-with-animation-request.mjs +1 -1
- package/esm2022/domain/f-canvas/reset-scale-and-center/reset-scale-and-center-request.mjs +1 -1
- package/esm2022/domain/f-canvas/reset-scale-and-center/reset-scale-and-center.execution.mjs +1 -1
- package/esm2022/domain/f-canvas/update-scale/update-scale-request.mjs +1 -1
- package/esm2022/domain/f-connection/add-connection-for-create-to-store/add-connection-for-create-to-store-request.mjs +1 -1
- package/esm2022/domain/f-connection/add-connection-marker-to-store/add-connection-marker-to-store-request.mjs +1 -1
- package/esm2022/domain/f-connection/add-connection-to-store/add-connection-to-store-request.mjs +1 -1
- package/esm2022/domain/f-connection/add-snap-connection-to-store/add-snap-connection-to-store-request.mjs +1 -1
- package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/calculate-connection-line-by-behavior-request.mjs +16 -0
- package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/calculate-connection-line-by-behavior.mjs +32 -0
- package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/fixed-center-behavior.mjs +4 -4
- package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/fixed-outbound-behavior.mjs +8 -4
- package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/floating-behavior.mjs +10 -10
- package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/index.mjs +3 -3
- package/esm2022/domain/f-connection/create-connection-markers/create-connection-markers.execution.mjs +1 -1
- package/esm2022/domain/f-connection/providers.mjs +4 -4
- package/esm2022/domain/f-connection/redraw-connections/redraw-connections-request.mjs +1 -1
- package/esm2022/domain/f-connection/redraw-connections/redraw-connections.execution.mjs +9 -9
- package/esm2022/domain/f-connection/remove-connection-from-store/remove-connection-from-store-request.mjs +1 -1
- package/esm2022/domain/f-connection/remove-connection-from-store/remove-connection-from-store.execution.mjs +1 -1
- package/esm2022/domain/f-connection/remove-connection-marker-from-store/remove-connection-marker-from-store-request.mjs +1 -1
- package/esm2022/domain/f-connectors/add-input-to-store/add-input-to-store-request.mjs +4 -4
- package/esm2022/domain/f-connectors/add-input-to-store/add-input-to-store.mjs +25 -0
- package/esm2022/domain/f-connectors/add-input-to-store/index.mjs +2 -2
- package/esm2022/domain/f-connectors/add-outlet-to-store/add-outlet-to-store-request.mjs +4 -4
- package/esm2022/domain/f-connectors/add-outlet-to-store/add-outlet-to-store.mjs +25 -0
- package/esm2022/domain/f-connectors/add-outlet-to-store/index.mjs +2 -2
- package/esm2022/domain/f-connectors/add-output-to-store/add-output-to-store-request.mjs +4 -4
- package/esm2022/domain/f-connectors/add-output-to-store/add-output-to-store.mjs +25 -0
- package/esm2022/domain/f-connectors/add-output-to-store/index.mjs +2 -2
- package/esm2022/domain/f-connectors/calculate-closest-connector/calculate-closest-connector-request.mjs +10 -0
- package/esm2022/domain/f-connectors/calculate-closest-connector/calculate-closest-connector.mjs +49 -0
- package/esm2022/domain/f-connectors/calculate-closest-connector/index.mjs +3 -0
- package/esm2022/domain/f-connectors/find-connectable-connector-using-priority-and-position/find-connectable-connector-using-priority-and-position.execution.mjs +9 -6
- package/esm2022/domain/f-connectors/get-all-can-be-connected-inputs-and-rects/get-all-can-be-connected-inputs-and-rects.execution.mjs +14 -14
- package/esm2022/domain/f-connectors/get-all-can-be-connected-inputs-and-rects/get-all-can-be-connected-inputs-and-rects.request.mjs +4 -4
- 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 -8
- package/esm2022/domain/f-connectors/get-all-can-be-connected-source-connectors-and-rects/get-all-can-be-connected-source-connectors-and-rects.request.mjs +4 -4
- package/esm2022/domain/f-connectors/get-connector-and-rect/get-connector-and-rect-request.mjs +4 -4
- package/esm2022/domain/f-connectors/get-connector-and-rect/get-connector-and-rect.mjs +31 -0
- package/esm2022/domain/f-connectors/get-connector-and-rect/index.mjs +2 -2
- package/esm2022/domain/f-connectors/index.mjs +2 -2
- package/esm2022/domain/f-connectors/mark-connectable-connectors/index.mjs +3 -3
- package/esm2022/domain/f-connectors/mark-connectable-connectors/mark-connectable-connectors-request.mjs +8 -0
- package/esm2022/domain/f-connectors/mark-connectable-connectors/mark-connectable-connectors.mjs +30 -0
- package/esm2022/domain/f-connectors/providers.mjs +20 -20
- package/esm2022/domain/f-connectors/remove-input-from-store/index.mjs +2 -2
- package/esm2022/domain/f-connectors/remove-input-from-store/remove-input-from-store-request.mjs +4 -4
- package/esm2022/domain/f-connectors/remove-input-from-store/remove-input-from-store.mjs +25 -0
- package/esm2022/domain/f-connectors/remove-outlet-from-store/remove-outlet-from-store-request.mjs +1 -1
- package/esm2022/domain/f-connectors/remove-output-from-store/remove-output-from-store-request.mjs +1 -1
- package/esm2022/domain/f-connectors/unmark-connectable-connectors/index.mjs +3 -3
- package/esm2022/domain/f-connectors/unmark-connectable-connectors/unmark-connectable-connectors-request.mjs +8 -0
- package/esm2022/domain/f-connectors/unmark-connectable-connectors/unmark-connectable-connectors.mjs +30 -0
- package/esm2022/domain/f-draggable/add-dnd-to-store/add-dnd-to-store-request.mjs +1 -1
- package/esm2022/domain/f-draggable/emit-selection-change-event/emit-selection-change-event.execution.mjs +1 -1
- package/esm2022/domain/f-draggable/on-pointer-move/on-pointer-move-request.mjs +1 -1
- package/esm2022/domain/f-draggable/on-pointer-move/on-pointer-move.execution.mjs +1 -1
- package/esm2022/domain/f-draggable/providers.mjs +2 -2
- package/esm2022/domain/f-draggable/start-drag-sequence/start-drag-sequence.execution.mjs +3 -3
- package/esm2022/domain/f-flow/add-flow-to-store/add-flow-to-store-request.mjs +1 -1
- package/esm2022/domain/f-flow/get-flow/get-flow.execution.mjs +1 -1
- package/esm2022/domain/f-flow/get-flow-state/get-flow-state-connections/get-flow-state-connections.execution.mjs +5 -5
- package/esm2022/domain/f-flow/get-flow-state/get-flow-state-nodes/get-flow-state-nodes-request.mjs +1 -1
- package/esm2022/domain/f-flow/get-flow-state/get-flow-state-nodes/get-flow-state-nodes.execution.mjs +15 -9
- package/esm2022/domain/f-flow/get-flow-state/get-flow-state.execution.mjs +2 -2
- package/esm2022/domain/f-flow/get-flow-state/providers.mjs +2 -2
- package/esm2022/domain/f-flow/providers.mjs +2 -2
- package/esm2022/domain/f-line-alignment/add-line-alignment-to-store/add-line-alignment-to-store-request.mjs +1 -1
- package/esm2022/domain/f-line-alignment/providers.mjs +2 -2
- package/esm2022/domain/f-node/add-node-to-store/add-node-to-store-request.mjs +1 -1
- package/esm2022/domain/f-node/calculate-input-connections/calculate-input-connections-request.mjs +1 -1
- package/esm2022/domain/f-node/calculate-input-connections/calculate-input-connections.mjs +3 -6
- package/esm2022/domain/f-node/calculate-output-connections/calculate-output-connections-request.mjs +1 -1
- package/esm2022/domain/f-node/calculate-output-connections/calculate-output-connections.mjs +3 -6
- package/esm2022/domain/f-node/fit-to-child-nodes-and-groups/fit-to-child-nodes-and-groups-request.mjs +1 -1
- package/esm2022/domain/f-node/fit-to-child-nodes-and-groups/fit-to-child-nodes-and-groups.mjs +1 -1
- package/esm2022/domain/f-node/get-child-node-ids/get-child-node-ids.mjs +1 -1
- package/esm2022/domain/f-node/get-child-node-ids/get-child-node-ids.request.mjs +1 -1
- package/esm2022/domain/f-node/get-node-padding/get-node-padding.mjs +2 -2
- package/esm2022/domain/f-node/get-node-padding/get-node-padding.request.mjs +1 -1
- package/esm2022/domain/f-node/get-parent-nodes/get-parent-nodes.mjs +1 -1
- package/esm2022/domain/f-node/get-parent-nodes/get-parent-nodes.request.mjs +1 -1
- package/esm2022/domain/f-node/providers.mjs +3 -3
- package/esm2022/domain/f-node/remove-node-from-store/remove-node-from-store-request.mjs +1 -1
- package/esm2022/domain/f-node/update-node-when-state-or-size-changed/update-node-when-state-or-size-changed-request.mjs +1 -1
- package/esm2022/domain/f-node/update-node-when-state-or-size-changed/update-node-when-state-or-size-changed.mjs +1 -1
- package/esm2022/domain/f-selection/get-can-be-selected-items/get-can-be-selected-items.execution.mjs +3 -3
- package/esm2022/domain/f-selection/get-current-selection/get-current-selection.execution.mjs +2 -2
- package/esm2022/domain/f-selection/providers.mjs +2 -2
- package/esm2022/domain/f-selection/select-and-update-node-layer/select-and-update-node-layer.execution.mjs +1 -1
- package/esm2022/domain/f-selection/select-and-update-node-layer/select-and-update-node-layer.request.mjs +1 -1
- package/esm2022/domain/f-zoom/add-zoom-to-store/add-zoom-to-store-request.mjs +1 -1
- package/esm2022/domain/f-zoom/add-zoom-to-store/add-zoom-to-store.execution.mjs +2 -2
- package/esm2022/domain/f-zoom/providers.mjs +2 -2
- package/esm2022/domain/f-zoom/remove-zoom-from-store/remove-zoom-from-store.execution.mjs +3 -3
- package/esm2022/domain/f-zoom/set-zoom/set-zoom-request.mjs +1 -1
- package/esm2022/domain/f-zoom/set-zoom/set-zoom.execution.mjs +1 -1
- package/esm2022/domain/get-deep-children-nodes-and-groups/get-deep-children-nodes-and-groups.execution.mjs +1 -1
- package/esm2022/domain/get-deep-children-nodes-and-groups/get-deep-children-nodes-and-groups.request.mjs +1 -1
- package/esm2022/domain/get-element-rounded-rect/get-element-rounded-rect.execution.mjs +1 -1
- package/esm2022/domain/get-normalized-connector-rect/get-normalized-connector-rect.execution.mjs +1 -1
- package/esm2022/domain/get-normalized-element-rect/get-normalized-element-rect-request.mjs +1 -1
- package/esm2022/domain/get-normalized-element-rect/get-normalized-element-rect.execution.mjs +2 -2
- package/esm2022/domain/get-normalized-point/get-normalized-point-request.mjs +1 -1
- package/esm2022/domain/get-normalized-point/get-normalized-point.execution.mjs +1 -1
- package/esm2022/domain/i-map.mjs +1 -1
- package/esm2022/domain/log-deprecated.mjs +1 -1
- package/esm2022/domain/log-execution-time.mjs +1 -1
- package/esm2022/domain/providers.mjs +2 -2
- package/esm2022/domain/sort-item-layers/sort-items-by-parent/sort-items-by-parent.execution.mjs +2 -2
- package/esm2022/domain/sort-item-layers/sort-items-by-parent/sort-items-by-parent.request.mjs +2 -3
- package/esm2022/domain/sort-item-layers/sort-node-layers-by-groups/sort-node-layers.execution.mjs +1 -1
- package/esm2022/domain/update-item-and-children-layers/move-front-elements-before-target-element/move-front-elements-before-target-element.request.mjs +1 -1
- package/esm2022/domain/update-item-and-children-layers/update-item-and-children-layers.execution.mjs +1 -1
- package/esm2022/drag-toolkit/drag-and-drop-base.mjs +3 -3
- package/esm2022/drag-toolkit/event.extensions.mjs +1 -1
- package/esm2022/drag-toolkit/pointer-events/i-pointer-up-event.mjs +1 -1
- package/esm2022/drag-toolkit/pointer-events/i-touch-down-event.mjs +1 -1
- package/esm2022/drag-toolkit/pointer-events/i-touch-move-event.mjs +1 -1
- package/esm2022/f-backgroud/f-background.component.mjs +4 -4
- package/esm2022/f-backgroud/f-circle-pattern/f-circle-pattern.component.mjs +7 -7
- package/esm2022/f-backgroud/f-rect-pattern/f-rect-pattern.component.mjs +7 -7
- package/esm2022/f-backgroud/index.mjs +1 -1
- package/esm2022/f-backgroud/providers.mjs +2 -2
- package/esm2022/f-canvas/f-canvas-base.mjs +1 -1
- package/esm2022/f-canvas/f-canvas.component.mjs +3 -3
- package/esm2022/f-connection/common/domain/calculate-center-between-points/calculate-center-between-points-request.mjs +1 -1
- package/esm2022/f-connection/common/domain/calculate-connection-center/calculate-connection-center-request.mjs +1 -1
- package/esm2022/f-connection/common/domain/calculate-connection-center/calculate-connection-center.handler.mjs +2 -2
- package/esm2022/f-connection/common/domain/f-bezier.path-builder.mjs +27 -11
- package/esm2022/f-connection/common/domain/f-segment.path-builder.mjs +43 -25
- package/esm2022/f-connection/common/domain/f-straight.path-builder.mjs +9 -3
- package/esm2022/f-connection/common/f-connection-base.mjs +36 -27
- package/esm2022/f-connection/common/f-connection-identifiers.mjs +2 -2
- package/esm2022/f-connection/common/f-connection-text/f-connection-text-path.directive.mjs +20 -30
- package/esm2022/f-connection/common/f-connection-text/f-connection-text.component.mjs +20 -33
- package/esm2022/f-connection/common/f-drag-handle/f-connection-drag-handle-end.component.mjs +4 -4
- package/esm2022/f-connection/common/f-drag-handle/f-connection-drag-handle-start.component.mjs +4 -4
- package/esm2022/f-connection/common/f-gradient/f-connection-gradient.component.mjs +18 -28
- package/esm2022/f-connection/common/f-path/f-connection-path.component.mjs +16 -26
- package/esm2022/f-connection/common/f-selection/f-connection-selection.component.mjs +10 -20
- package/esm2022/f-connection/common/i-has-connection-color.mjs +1 -1
- package/esm2022/f-connection/common/i-has-connection-from-to.mjs +1 -1
- package/esm2022/f-connection/f-connection/f-connection.component.mjs +25 -26
- package/esm2022/f-connection/f-connection-builder/f-connection-builders.mjs +1 -1
- package/esm2022/f-connection/f-connection-builder/f-connection-factory.mjs +1 -1
- package/esm2022/f-connection/f-connection-builder/i-f-connection-builder-response.mjs +1 -1
- package/esm2022/f-connection/f-connection-center/f-connection-center.directive.mjs +21 -4
- package/esm2022/f-connection/f-connection-content/f-connection-content.mjs +96 -0
- package/esm2022/f-connection/f-connection-content/index.mjs +3 -0
- package/esm2022/f-connection/f-connection-content/polyline-content-engine/i-polyline-content.mjs +2 -0
- package/esm2022/f-connection/f-connection-content/polyline-content-engine/index.mjs +6 -0
- package/esm2022/f-connection/f-connection-content/polyline-content-engine/polyline-content-align.mjs +6 -0
- package/esm2022/f-connection/f-connection-content/polyline-content-engine/polyline-content-layout-engine.mjs +29 -0
- package/esm2022/f-connection/f-connection-content/polyline-content-engine/polyline-content-place.mjs +65 -0
- package/esm2022/f-connection/f-connection-content/polyline-content-engine/polyline-sampler/i-sampler-result.mjs +2 -0
- package/esm2022/f-connection/f-connection-content/polyline-content-engine/polyline-sampler/i-tangent.mjs +2 -0
- package/esm2022/f-connection/f-connection-content/polyline-content-engine/polyline-sampler/index.mjs +5 -0
- package/esm2022/f-connection/f-connection-content/polyline-content-engine/polyline-sampler/polyline-sampler.mjs +143 -0
- package/esm2022/f-connection/f-connection-content/polyline-content-engine/polyline-sampler/polyline.mjs +68 -0
- package/esm2022/f-connection/f-connection-for-create/f-connection-for-create.component.mjs +17 -21
- package/esm2022/f-connection/f-marker/f-marker-base.mjs +2 -8
- package/esm2022/f-connection/f-marker/f-marker.directive.mjs +13 -22
- package/esm2022/f-connection/f-snap-connection/f-snap-connection.component.mjs +17 -21
- package/esm2022/f-connection/index.mjs +2 -1
- package/esm2022/f-connection/providers.mjs +3 -3
- package/esm2022/f-connectors/f-connector-base.mjs +1 -1
- package/esm2022/f-connectors/f-node-input/f-node-input-base.mjs +2 -2
- package/esm2022/f-connectors/f-node-input/f-node-input.directive.mjs +35 -33
- package/esm2022/f-connectors/f-node-outlet/f-node-outlet-base.mjs +6 -6
- package/esm2022/f-connectors/f-node-outlet/f-node-outlet.directive.mjs +23 -26
- package/esm2022/f-connectors/f-node-output/f-node-output-base.mjs +4 -4
- package/esm2022/f-connectors/f-node-output/f-node-output.directive.mjs +31 -33
- package/esm2022/f-connectors/f-source-connector-base.mjs +11 -0
- package/esm2022/f-connectors/index.mjs +2 -1
- package/esm2022/f-connectors/providers.mjs +2 -2
- package/esm2022/f-draggable/domain/f-drag-started-event.mjs +4 -2
- package/esm2022/f-draggable/domain/get-normalized-parent-node-rect/get-normalized-parent-node-rect.execution.mjs +1 -1
- package/esm2022/f-draggable/domain/get-normalized-parent-node-rect/get-normalized-parent-node-rect.request.mjs +1 -1
- package/esm2022/f-draggable/domain/is-array-has-parent-node/is-array-has-parent-node.request.mjs +1 -1
- package/esm2022/f-draggable/domain/is-connection-under-node/is-connection-under-node.execution.mjs +7 -7
- package/esm2022/f-draggable/domain/is-connection-under-node/is-connection-under-node.request.mjs +1 -1
- package/esm2022/f-draggable/f-canvas/move-finalize/f-canvas-move-finalize.execution.mjs +2 -2
- package/esm2022/f-draggable/f-canvas/move-finalize/f-canvas-move-finalize.request.mjs +1 -1
- package/esm2022/f-draggable/f-canvas/move-preparation/f-canvas-move-preparation.execution.mjs +1 -1
- package/esm2022/f-draggable/f-canvas/move-preparation/f-canvas-move-preparation.request.mjs +1 -1
- package/esm2022/f-draggable/f-connection/f-create-connection/create-finalize/f-create-connection-finalize.execution.mjs +20 -18
- package/esm2022/f-draggable/f-connection/f-create-connection/create-finalize/f-create-connection-finalize.request.mjs +1 -1
- package/esm2022/f-draggable/f-connection/f-create-connection/create-preparation/drag-handler-preparation/f-create-connection-drag-handler-preparation.execution.mjs +2 -2
- package/esm2022/f-draggable/f-connection/f-create-connection/create-preparation/drag-handler-preparation/f-create-connection-drag-handler-preparation.request.mjs +1 -1
- package/esm2022/f-draggable/f-connection/f-create-connection/create-preparation/f-create-connection-preparation.execution.mjs +1 -1
- package/esm2022/f-draggable/f-connection/f-create-connection/create-preparation/f-create-connection-preparation.request.mjs +1 -1
- package/esm2022/f-draggable/f-connection/f-create-connection/create-preparation/from-outlet-preparation/f-create-connection-from-outlet-preparation.execution.mjs +1 -1
- package/esm2022/f-draggable/f-connection/f-create-connection/create-preparation/from-outlet-preparation/f-create-connection-from-outlet-preparation.request.mjs +1 -1
- package/esm2022/f-draggable/f-connection/f-create-connection/create-preparation/from-output-preparation/f-create-connection-from-output-preparation.execution.mjs +1 -1
- package/esm2022/f-draggable/f-connection/f-create-connection/create-preparation/from-output-preparation/f-create-connection-from-output-preparation.request.mjs +1 -1
- package/esm2022/f-draggable/f-connection/f-create-connection/f-create-connection.drag-handler.mjs +38 -36
- package/esm2022/f-draggable/f-connection/f-create-connection/get-first-connectable-output/get-first-connectable-output.execution.mjs +1 -1
- package/esm2022/f-draggable/f-connection/f-create-connection/get-first-connectable-output/get-first-connectable-output.request.mjs +1 -1
- package/esm2022/f-draggable/f-connection/f-reassign-connection/f-reassign-connection.drag-handler.mjs +23 -21
- package/esm2022/f-draggable/f-connection/f-reassign-connection/f-reassign-connection.event.mjs +1 -1
- package/esm2022/f-draggable/f-connection/f-reassign-connection/f-reassign-source.drag-handler.mjs +6 -6
- package/esm2022/f-draggable/f-connection/f-reassign-connection/f-reassign-target.drag-handler.mjs +5 -5
- package/esm2022/f-draggable/f-connection/f-reassign-connection/i-f-reassign-handler.mjs +1 -1
- package/esm2022/f-draggable/f-connection/f-reassign-connection/reassign-finalize/f-reassign-connection-finalize.execution.mjs +5 -5
- package/esm2022/f-draggable/f-connection/f-reassign-connection/reassign-finalize/f-reassign-connection-finalize.request.mjs +1 -1
- package/esm2022/f-draggable/f-connection/f-reassign-connection/reassign-preparation/f-reassign-connection-preparation.execution.mjs +3 -3
- package/esm2022/f-draggable/f-connection/f-reassign-connection/reassign-preparation/f-reassign-connection-preparation.request.mjs +1 -1
- package/esm2022/f-draggable/f-connection/f-reassign-connection/reassign-preparation/is-pointer-inside-start-or-end-drag-handles.mjs +1 -1
- package/esm2022/f-draggable/f-drag-blocker.directive.mjs +2 -2
- package/esm2022/f-draggable/f-drag-handler/i-f-drag-handler.mjs +1 -1
- package/esm2022/f-draggable/f-draggable-base.mjs +3 -10
- package/esm2022/f-draggable/f-draggable.directive.mjs +32 -36
- package/esm2022/f-draggable/f-drop-to-group/drop-to-group-finalize/drop-to-group-finalize-request.mjs +1 -1
- package/esm2022/f-draggable/f-drop-to-group/drop-to-group-finalize/drop-to-group-finalize.mjs +1 -1
- package/esm2022/f-draggable/f-drop-to-group/drop-to-group-preparation/drop-to-group-preparation-request.mjs +1 -1
- package/esm2022/f-draggable/f-drop-to-group/drop-to-group-preparation/drop-to-group-preparation.mjs +1 -1
- package/esm2022/f-draggable/f-drop-to-group/f-node-drop-to-group.drag-handler.mjs +12 -19
- package/esm2022/f-draggable/f-drop-to-group/providers.mjs +2 -2
- package/esm2022/f-draggable/f-drop-to-group/sort-containers-for-drop-by-layer/sort-containers-for-drop-by-layer-request.mjs +1 -1
- package/esm2022/f-draggable/f-drop-to-group/sort-containers-for-drop-by-layer/sort-containers-for-drop-by-layer.mjs +13 -7
- package/esm2022/f-draggable/f-node-move/connection-drag-handlers/base-connection.drag-handler.mjs +4 -4
- package/esm2022/f-draggable/f-node-move/constraint/drag-constraint-pipeline.mjs +1 -1
- package/esm2022/f-draggable/f-node-move/constraint/expand-rect-from-baseline.mjs +5 -3
- package/esm2022/f-draggable/f-node-move/constraint/rect-constraint.mjs +3 -2
- package/esm2022/f-draggable/f-node-move/constraint/snap-to-grid.mjs +3 -3
- package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/build-drag-hierarchy/build-drag-hierarchy-request.mjs +1 -1
- package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/build-drag-hierarchy/build-drag-hierarchy-response.mjs +1 -1
- package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/build-drag-hierarchy/build-drag-hierarchy.mjs +1 -1
- package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/calculate-drag-limits/calculate-drag-limits-request.mjs +1 -1
- package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/calculate-drag-limits/calculate-drag-limits.mjs +3 -3
- package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/calculate-drag-limits/i-drag-limits.mjs +1 -1
- package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/calculate-drag-limits/i-soft-limit.mjs +1 -1
- package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/create-drag-model-from-selection-request.mjs +1 -1
- package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/create-drag-model-from-selection.mjs +8 -11
- package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/create-input-connection-handler-and-set-to-node-handler/create-input-connection-handler-and-set-to-node-handler-request.mjs +1 -1
- package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/create-input-connection-handler-and-set-to-node-handler/create-input-connection-handler-and-set-to-node-handler.mjs +5 -5
- package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/create-output-connection-handler-and-set-to-node-handler/create-output-connection-handler-and-set-to-node-handler-request.mjs +1 -1
- package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/create-output-connection-handler-and-set-to-node-handler/create-output-connection-handler-and-set-to-node-handler.mjs +5 -5
- package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/create-summary-drag-handler/create-summary-drag-handler-request.mjs +1 -1
- package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/create-summary-drag-handler/create-summary-drag-handler.mjs +1 -1
- package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/get-node-bounding-include-paddings/get-node-bounding-include-paddings-request.mjs +1 -1
- package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/get-node-bounding-include-paddings/get-node-bounding-include-paddings-response.mjs +1 -1
- package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/get-node-bounding-include-paddings/get-node-bounding-include-paddings.mjs +2 -2
- package/esm2022/f-draggable/f-node-move/create-drag-model-from-selection/providers.mjs +1 -1
- package/esm2022/f-draggable/f-node-move/create-snap-lines/create-snap-lines-request.mjs +1 -1
- package/esm2022/f-draggable/f-node-move/create-snap-lines/create-snap-lines.mjs +1 -1
- package/esm2022/f-draggable/f-node-move/create-snap-lines/snap-lines.drag-handler.mjs +1 -1
- package/esm2022/f-draggable/f-node-move/f-move-nodes.event.mjs +1 -1
- package/esm2022/f-draggable/f-node-move/move-drag-handler.mjs +1 -1
- package/esm2022/f-draggable/f-node-move/move-finalize/f-node-move-finalize.execution.mjs +2 -2
- package/esm2022/f-draggable/f-node-move/move-finalize/f-node-move-finalize.request.mjs +1 -1
- package/esm2022/f-draggable/f-node-move/move-preparation/f-node-move-preparation.execution.mjs +1 -1
- package/esm2022/f-draggable/f-node-move/move-preparation/f-node-move-preparation.request.mjs +1 -1
- package/esm2022/f-draggable/f-node-move/move-summary-drag-handler.mjs +2 -2
- package/esm2022/f-draggable/f-node-resize/apply-child-resize-constraints/apply-child-resize-constraints-request.mjs +1 -1
- package/esm2022/f-draggable/f-node-resize/apply-child-resize-constraints/apply-child-resize-constraints.mjs +3 -2
- package/esm2022/f-draggable/f-node-resize/apply-parent-resize-constraints/apply-parent-resize-constraints-request.mjs +1 -1
- package/esm2022/f-draggable/f-node-resize/apply-parent-resize-constraints/apply-parent-resize-constraints.mjs +15 -13
- package/esm2022/f-draggable/f-node-resize/calculate-changed-rect-from-difference/calculate-changed-rect-from-difference-request.mjs +1 -1
- package/esm2022/f-draggable/f-node-resize/calculate-changed-rect-from-difference/calculate-changed-rect-from-difference.mjs +1 -1
- package/esm2022/f-draggable/f-node-resize/calculate-direct-children-union-rect/calculate-direct-children-union-rect-request.mjs +1 -1
- package/esm2022/f-draggable/f-node-resize/calculate-direct-children-union-rect/calculate-direct-children-union-rect.mjs +1 -1
- package/esm2022/f-draggable/f-node-resize/calculate-resize-limits/calculate-resize-limits-request.mjs +1 -1
- package/esm2022/f-draggable/f-node-resize/calculate-resize-limits/calculate-resize-limits.mjs +2 -2
- package/esm2022/f-draggable/f-node-resize/constraint/i-resize-constraint.mjs +1 -1
- package/esm2022/f-draggable/f-node-resize/constraint/i-resize-limit.mjs +1 -1
- package/esm2022/f-draggable/f-node-resize/constraint/i-resize-limits.mjs +1 -1
- package/esm2022/f-draggable/f-node-resize/node-resize.drag-handler.mjs +1 -1
- package/esm2022/f-draggable/f-node-resize/resize-finalize/node-resize-finalize-request.mjs +1 -1
- package/esm2022/f-draggable/f-node-resize/resize-finalize/node-resize-finalize.mjs +2 -2
- package/esm2022/f-draggable/f-node-resize/resize-preparation/node-resize-preparation-request.mjs +1 -1
- package/esm2022/f-draggable/f-node-resize/resize-preparation/node-resize-preparation.mjs +2 -2
- package/esm2022/f-draggable/f-node-rotate/calculate-difference-after-rotation.mjs +1 -1
- package/esm2022/f-draggable/f-node-rotate/f-node-rotate.drag-handler.mjs +4 -4
- package/esm2022/f-draggable/f-node-rotate/rotate-finalize/f-node-rotate-finalize.execution.mjs +5 -4
- package/esm2022/f-draggable/f-node-rotate/rotate-finalize/f-node-rotate-finalize.request.mjs +1 -1
- package/esm2022/f-draggable/f-node-rotate/rotate-preparation/f-node-rotate-preparation.execution.mjs +29 -17
- package/esm2022/f-draggable/f-node-rotate/rotate-preparation/f-node-rotate-preparation.request.mjs +1 -1
- package/esm2022/f-draggable/f-single-select/f-single-select.execution.mjs +1 -1
- package/esm2022/f-draggable/f-single-select/f-single-select.request.mjs +1 -1
- package/esm2022/f-draggable/i-f-drag-and-drop-plugin.mjs +1 -1
- package/esm2022/f-draggable/index.mjs +1 -1
- package/esm2022/f-draggable/providers.mjs +2 -2
- package/esm2022/f-external-item/domain/constraint/external-rect-constraint.mjs +3 -3
- package/esm2022/f-external-item/domain/create-placeholder/f-external-item-create-placeholder.execution.mjs +1 -1
- package/esm2022/f-external-item/domain/create-preview/f-external-item-create-preview.execution.mjs +2 -2
- package/esm2022/f-external-item/domain/f-create-node.event.mjs +1 -1
- package/esm2022/f-external-item/domain/f-external-item.drag-handler.mjs +2 -2
- package/esm2022/f-external-item/domain/finalize/f-external-item-finalize.execution.mjs +9 -10
- package/esm2022/f-external-item/domain/finalize/f-external-item-finalize.request.mjs +1 -1
- package/esm2022/f-external-item/domain/preparation/f-external-item-preparation.execution.mjs +2 -2
- package/esm2022/f-external-item/domain/preparation/f-external-item-preparation.request.mjs +1 -1
- package/esm2022/f-external-item/domain/prevent-default-is-external-item/prevent-default-is-external-item.execution.mjs +5 -5
- package/esm2022/f-external-item/domain/prevent-default-is-external-item/prevent-default-is-external-item.request.mjs +1 -1
- package/esm2022/f-external-item/f-external-item-base.mjs +1 -1
- package/esm2022/f-external-item/f-external-item-placeholder.directive.mjs +5 -5
- package/esm2022/f-external-item/f-external-item-preview.directive.mjs +4 -4
- package/esm2022/f-external-item/f-external-item.directive.mjs +13 -20
- package/esm2022/f-external-item/f-external-item.service.mjs +3 -3
- package/esm2022/f-external-item/providers.mjs +2 -2
- package/esm2022/f-flow/f-flow.component.mjs +5 -5
- package/esm2022/f-flow/providers.mjs +2 -2
- package/esm2022/f-flow.module.mjs +3 -3
- package/esm2022/f-line-alignment/domain/snap-line-element.mjs +19 -15
- package/esm2022/f-line-alignment/domain/snap-line-service.mjs +16 -18
- package/esm2022/f-line-alignment/f-line-alignment.component.mjs +4 -4
- package/esm2022/f-line-alignment/providers.mjs +2 -2
- package/esm2022/f-minimap/domain/calculate-flow-point-from-minimap-point/calculate-flow-point-from-minimap-point.execution.mjs +14 -18
- package/esm2022/f-minimap/domain/calculate-flow-point-from-minimap-point/calculate-flow-point-from-minimap-point.request.mjs +1 -1
- package/esm2022/f-minimap/domain/f-minimap-data.mjs +1 -1
- package/esm2022/f-minimap/domain/f-minimap.drag-handler.mjs +25 -25
- package/esm2022/f-minimap/domain/minimap-calculate-svg-scale-and-view-box/minimap-calculate-svg-scale-and-view-box.execution.mjs +2 -2
- package/esm2022/f-minimap/domain/minimap-calculate-view-box/minimap-calculate-view-box.execution.mjs +9 -8
- package/esm2022/f-minimap/domain/minimap-drag-finalize/minimap-drag-finalize.execution.mjs +9 -11
- package/esm2022/f-minimap/domain/minimap-drag-finalize/minimap-drag-finalize.request.mjs +1 -1
- package/esm2022/f-minimap/domain/minimap-drag-preparation/minimap-drag-preparation.execution.mjs +26 -32
- package/esm2022/f-minimap/domain/minimap-drag-preparation/minimap-drag-preparation.request.mjs +1 -1
- package/esm2022/f-minimap/domain/minimap-draw-nodes/minimap-draw-nodes.execution.mjs +2 -1
- package/esm2022/f-minimap/f-minimap-canvas.directive.mjs +2 -2
- package/esm2022/f-minimap/f-minimap-flow.directive.mjs +3 -3
- package/esm2022/f-minimap/f-minimap-view.directive.mjs +2 -2
- package/esm2022/f-minimap/f-minimap.component.mjs +1 -1
- package/esm2022/f-node/f-drag-handle.directive.mjs +3 -3
- package/esm2022/f-node/f-group.directive.mjs +6 -4
- package/esm2022/f-node/f-node-base.mjs +1 -1
- package/esm2022/f-node/f-node.directive.mjs +16 -14
- package/esm2022/f-node/f-resize-handle/f-resize-handle.directive.mjs +5 -5
- package/esm2022/f-selection-area/domain/providers.mjs +2 -2
- package/esm2022/f-selection-area/domain/selection-area-finalize/selection-area-finalize.execution.mjs +2 -2
- package/esm2022/f-selection-area/domain/selection-area-finalize/selection-area-finalize.request.mjs +1 -1
- package/esm2022/f-selection-area/domain/selection-area-preparation/selection-area-preparation.execution.mjs +2 -2
- package/esm2022/f-selection-area/domain/selection-area-preparation/selection-area-preparation.request.mjs +1 -1
- package/esm2022/f-selection-area/domain/selection-area.drag-handle.mjs +1 -1
- package/esm2022/f-selection-area/f-selection-area.component.mjs +2 -2
- package/esm2022/f-selection-area/providers.mjs +2 -2
- package/esm2022/f-storage/f-components-store.mjs +1 -1
- package/esm2022/f-storage/features/listen-components-data-changed/listen-data-changes.execution.mjs +3 -4
- package/esm2022/f-storage/features/listen-count-changes/listen-count-changes.execution.mjs +3 -4
- package/esm2022/f-storage/features/listen-transform-changes/listen-transform-changes.execution.mjs +2 -2
- package/esm2022/f-storage/features/notify-data-changed/notify-data-changed.execution.mjs +2 -2
- package/esm2022/f-storage/features/notify-transform-changed/notify-transform-changed.execution.mjs +2 -2
- package/esm2022/f-zoom/f-zoom.directive.mjs +4 -4
- package/esm2022/f-zoom/providers.mjs +2 -2
- package/esm2022/mixins/change-selection/change-selection.mjs +5 -6
- package/esm2022/mixins/change-selection/i-selectable.mjs +1 -1
- package/esm2022/mixins/change-visibility/change-visibility.mjs +4 -3
- package/esm2022/mixins/constructor.mjs +1 -1
- package/esm2022/reactivity/debounce-time.mjs +2 -2
- package/esm2022/reactivity/f-channel-hub.mjs +1 -1
- package/esm2022/reactivity/f-channel.mjs +1 -1
- package/esm2022/reactivity/f-resize-channel.mjs +1 -1
- package/esm2022/reactivity/index.mjs +1 -2
- package/esm2022/reactivity/notify-on-start.mjs +1 -1
- package/esm2022/utils/index.mjs +2 -1
- package/esm2022/utils/infinity-min-max.mjs +2 -2
- package/esm2022/utils/string-attribute.mjs +4 -0
- package/f-backgroud/providers.d.ts +1 -1
- package/f-connection/common/domain/f-bezier.path-builder.d.ts +2 -2
- package/f-connection/common/domain/f-segment.path-builder.d.ts +7 -7
- package/f-connection/common/f-connection-base.d.ts +13 -11
- package/f-connection/common/f-connection-text/f-connection-text-path.directive.d.ts +6 -11
- package/f-connection/common/f-connection-text/f-connection-text.component.d.ts +6 -12
- package/f-connection/common/f-gradient/f-connection-gradient.component.d.ts +5 -10
- package/f-connection/common/f-path/f-connection-path.component.d.ts +2 -7
- package/f-connection/common/f-selection/f-connection-selection.component.d.ts +2 -6
- package/f-connection/common/i-has-connection-from-to.d.ts +3 -3
- package/f-connection/f-connection/f-connection.component.d.ts +6 -6
- package/f-connection/f-connection-builder/f-connection-builders.d.ts +1 -3
- package/f-connection/f-connection-builder/i-f-connection-builder-response.d.ts +1 -0
- package/f-connection/f-connection-center/f-connection-center.directive.d.ts +6 -1
- package/f-connection/f-connection-content/f-connection-content.d.ts +69 -0
- package/f-connection/f-connection-content/index.d.ts +2 -0
- package/f-connection/f-connection-content/polyline-content-engine/i-polyline-content.d.ts +9 -0
- package/f-connection/f-connection-content/polyline-content-engine/index.d.ts +5 -0
- package/f-connection/f-connection-content/polyline-content-engine/polyline-content-align.d.ts +4 -0
- package/f-connection/f-connection-content/polyline-content-engine/polyline-content-layout-engine.d.ts +21 -0
- package/f-connection/f-connection-content/polyline-content-engine/polyline-content-place.d.ts +18 -0
- package/f-connection/f-connection-content/polyline-content-engine/polyline-sampler/i-sampler-result.d.ts +11 -0
- package/f-connection/f-connection-content/polyline-content-engine/polyline-sampler/i-tangent.d.ts +4 -0
- package/f-connection/f-connection-content/polyline-content-engine/polyline-sampler/index.d.ts +4 -0
- package/f-connection/f-connection-content/polyline-content-engine/polyline-sampler/polyline-sampler.d.ts +60 -0
- package/f-connection/f-connection-content/polyline-content-engine/polyline-sampler/polyline.d.ts +29 -0
- package/f-connection/f-connection-for-create/f-connection-for-create.component.d.ts +4 -6
- package/f-connection/f-marker/f-marker-base.d.ts +0 -3
- package/f-connection/f-marker/f-marker.directive.d.ts +4 -6
- package/f-connection/f-snap-connection/f-snap-connection.component.d.ts +4 -6
- package/f-connection/index.d.ts +1 -0
- package/f-connection/providers.d.ts +2 -2
- package/f-connectors/f-connector-base.d.ts +3 -2
- package/f-connectors/f-node-input/f-node-input-base.d.ts +3 -2
- package/f-connectors/f-node-input/f-node-input.directive.d.ts +8 -9
- package/f-connectors/f-node-outlet/f-node-outlet-base.d.ts +3 -3
- package/f-connectors/f-node-outlet/f-node-outlet.directive.d.ts +6 -8
- package/f-connectors/f-node-output/f-node-output-base.d.ts +4 -5
- package/f-connectors/f-node-output/f-node-output.directive.d.ts +7 -9
- package/f-connectors/f-source-connector-base.d.ts +7 -0
- package/f-connectors/index.d.ts +1 -0
- package/f-draggable/domain/is-connection-under-node/is-connection-under-node.execution.d.ts +1 -1
- package/f-draggable/domain/providers.d.ts +1 -1
- package/f-draggable/f-canvas/move-finalize/f-canvas-move-finalize.execution.d.ts +2 -2
- package/f-draggable/f-connection/f-create-connection/create-finalize/f-create-connection-finalize.execution.d.ts +9 -9
- package/f-draggable/f-connection/f-create-connection/f-create-connection.drag-handler.d.ts +5 -5
- package/f-draggable/f-connection/f-reassign-connection/f-reassign-connection.drag-handler.d.ts +4 -4
- package/f-draggable/f-connection/f-reassign-connection/f-reassign-source.drag-handler.d.ts +5 -5
- package/f-draggable/f-connection/f-reassign-connection/f-reassign-target.drag-handler.d.ts +5 -5
- package/f-draggable/f-connection/providers.d.ts +1 -1
- package/f-draggable/f-draggable-base.d.ts +7 -10
- package/f-draggable/f-draggable.directive.d.ts +10 -12
- package/f-draggable/f-drop-to-group/f-node-drop-to-group.drag-handler.d.ts +2 -6
- package/f-draggable/f-node-move/create-drag-model-from-selection/providers.d.ts +1 -1
- package/f-draggable/f-node-move/providers.d.ts +1 -1
- package/f-draggable/f-node-resize/apply-parent-resize-constraints/apply-parent-resize-constraints.d.ts +2 -2
- package/f-draggable/f-node-resize/resize-finalize/node-resize-finalize.d.ts +1 -1
- package/f-draggable/f-node-rotate/f-node-rotate.drag-handler.d.ts +1 -1
- package/f-draggable/f-node-rotate/providers.d.ts +1 -1
- package/f-draggable/f-node-rotate/rotate-finalize/f-node-rotate-finalize.execution.d.ts +1 -1
- package/f-draggable/f-node-rotate/rotate-preparation/f-node-rotate-preparation.execution.d.ts +1 -1
- package/f-draggable/providers.d.ts +1 -1
- package/f-external-item/domain/finalize/f-external-item-finalize.execution.d.ts +1 -1
- package/f-external-item/f-external-item-base.d.ts +3 -3
- package/f-external-item/f-external-item-placeholder.directive.d.ts +1 -1
- package/f-external-item/f-external-item-preview.directive.d.ts +1 -1
- package/f-external-item/f-external-item-token.d.ts +1 -1
- package/f-external-item/f-external-item.directive.d.ts +5 -6
- package/f-external-item/f-external-item.service.d.ts +1 -1
- package/f-line-alignment/domain/snap-line-element.d.ts +2 -3
- package/f-line-alignment/domain/snap-line-service.d.ts +3 -4
- package/f-minimap/domain/calculate-flow-point-from-minimap-point/calculate-flow-point-from-minimap-point.execution.d.ts +5 -7
- package/f-minimap/domain/f-minimap.drag-handler.d.ts +10 -10
- package/f-minimap/domain/minimap-calculate-view-box/minimap-calculate-view-box.execution.d.ts +3 -3
- package/f-minimap/domain/minimap-drag-finalize/minimap-drag-finalize.execution.d.ts +1 -3
- package/f-minimap/domain/minimap-drag-preparation/minimap-drag-preparation.execution.d.ts +7 -10
- package/f-minimap/providers.d.ts +1 -1
- package/f-node/f-node.directive.d.ts +2 -2
- package/f-node/f-resize-handle/f-resize-handle.directive.d.ts +1 -1
- package/f-node/providers.d.ts +1 -1
- package/f-selection-area/domain/selection-area-finalize/selection-area-finalize.execution.d.ts +2 -2
- package/f-storage/f-components-store.d.ts +1 -1
- package/f-storage/features/listen-components-data-changed/listen-data-changes.execution.d.ts +2 -2
- package/f-storage/features/listen-count-changes/listen-count-changes.execution.d.ts +2 -2
- package/f-storage/features/listen-transform-changes/listen-transform-changes.execution.d.ts +2 -2
- package/f-storage/features/notify-data-changed/notify-data-changed.execution.d.ts +2 -2
- package/f-storage/features/notify-transform-changed/notify-transform-changed.execution.d.ts +2 -2
- package/f-storage/providers.d.ts +1 -1
- package/fesm2022/foblex-flow.mjs +1411 -1018
- package/fesm2022/foblex-flow.mjs.map +1 -1
- package/package.json +1 -1
- package/reactivity/index.d.ts +0 -1
- package/schematics/ng-add/index.js +1 -1
- package/schematics/ng-add/index.js.map +1 -1
- package/schematics/ng-update/index.js +1 -1
- package/schematics/ng-update/index.js.map +1 -1
- package/schematics/shared/foblex-dependencies.js +1 -1
- package/utils/index.d.ts +1 -0
- package/utils/infinity-min-max.d.ts +1 -1
- package/utils/string-attribute.d.ts +1 -0
- package/domain/f-connection/calculate-connection-line-by-behavior/calculate-connection-line-by-behavior.request.d.ts +0 -12
- package/domain/f-connectors/add-input-to-store/add-input-to-store.execution.d.ts +0 -12
- package/domain/f-connectors/find-closest-connector/find-closest-connector.execution.d.ts +0 -16
- package/domain/f-connectors/find-closest-connector/index.d.ts +0 -2
- package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/calculate-connection-line-by-behavior.execution.mjs +0 -32
- package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/calculate-connection-line-by-behavior.request.mjs +0 -16
- package/esm2022/domain/f-connectors/add-input-to-store/add-input-to-store.execution.mjs +0 -25
- package/esm2022/domain/f-connectors/add-outlet-to-store/add-outlet-to-store.execution.mjs +0 -25
- package/esm2022/domain/f-connectors/add-output-to-store/add-output-to-store.execution.mjs +0 -25
- package/esm2022/domain/f-connectors/find-closest-connector/find-closest-connector.execution.mjs +0 -47
- package/esm2022/domain/f-connectors/find-closest-connector/find-closest-connector.request.mjs +0 -10
- package/esm2022/domain/f-connectors/find-closest-connector/index.mjs +0 -3
- package/esm2022/domain/f-connectors/get-connector-and-rect/get-connector-and-rect.execution.mjs +0 -31
- package/esm2022/domain/f-connectors/mark-connectable-connectors/mark-connectable-connectors.execution.mjs +0 -30
- package/esm2022/domain/f-connectors/mark-connectable-connectors/mark-connectable-connectors.request.mjs +0 -8
- package/esm2022/domain/f-connectors/remove-input-from-store/remove-input-from-store.execution.mjs +0 -25
- package/esm2022/domain/f-connectors/unmark-connectable-connectors/unmark-connectable-connectors.execution.mjs +0 -30
- package/esm2022/domain/f-connectors/unmark-connectable-connectors/unmark-connectable-connectors.request.mjs +0 -8
- package/esm2022/reactivity/mediator-effect.mjs +0 -14
- package/reactivity/mediator-effect.d.ts +0 -2
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import { Polyline } from './polyline';
|
|
2
|
+
/**
|
|
3
|
+
* Provides sampling (interpolation) along a {@link Polyline}.
|
|
4
|
+
* Separates traversal logic from pure geometry stored in {@link Polyline}.
|
|
5
|
+
*/
|
|
6
|
+
export class PolylineSampler {
|
|
7
|
+
_polyline;
|
|
8
|
+
/**
|
|
9
|
+
* @param points Initial points to build the underlying polyline.
|
|
10
|
+
* You can later call {@link updatePoints} to rebuild.
|
|
11
|
+
*/
|
|
12
|
+
constructor(points = []) {
|
|
13
|
+
this._polyline = new Polyline(points);
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Rebuild the underlying polyline from new points.
|
|
17
|
+
* @returns Total length of the rebuilt polyline.
|
|
18
|
+
*/
|
|
19
|
+
updatePoints(points) {
|
|
20
|
+
this._polyline = new Polyline(points);
|
|
21
|
+
return this._polyline.totalLength;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Backward-compatible alias for older API naming.
|
|
25
|
+
* @returns Total length of the rebuilt polyline.
|
|
26
|
+
*/
|
|
27
|
+
calculateTotalLength(points) {
|
|
28
|
+
return this.updatePoints(points);
|
|
29
|
+
}
|
|
30
|
+
/** Total length of the current polyline. */
|
|
31
|
+
get totalLength() {
|
|
32
|
+
return this._polyline.totalLength;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Sample a point by normalized progress along the whole length.
|
|
36
|
+
*
|
|
37
|
+
* - `progress = 0` → start vertex
|
|
38
|
+
* - `progress = 1` → end vertex
|
|
39
|
+
*
|
|
40
|
+
* Uses a small edge threshold (0.5 units) to snap near-start/near-end queries to exact vertices,
|
|
41
|
+
* mirroring the behavior in the original implementation.
|
|
42
|
+
*
|
|
43
|
+
* @param progress Normalized value in [0..1]. Values are clamped to this range.
|
|
44
|
+
* @returns Interpolated point, segment tangent, and whether it was clamped to an edge.
|
|
45
|
+
*/
|
|
46
|
+
getPointAtProgress(progress) {
|
|
47
|
+
const { points, cumulativeLengths, segmentTangents, totalLength } = this._polyline;
|
|
48
|
+
const clamped = PolylineSampler._clamp(progress, 0, 1);
|
|
49
|
+
const target = clamped * totalLength;
|
|
50
|
+
const edgeThreshold = 0.5;
|
|
51
|
+
if (target <= edgeThreshold) {
|
|
52
|
+
return {
|
|
53
|
+
point: points[0],
|
|
54
|
+
tangent: segmentTangents[0] ?? { x: 1, y: 0 },
|
|
55
|
+
atEdge: true,
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
if (totalLength - target <= edgeThreshold) {
|
|
59
|
+
const last = points.length - 1;
|
|
60
|
+
return {
|
|
61
|
+
point: points[last],
|
|
62
|
+
tangent: segmentTangents[last - 1] ?? { x: 1, y: 0 },
|
|
63
|
+
atEdge: true,
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
const rightIndex = PolylineSampler._findRightIndex(cumulativeLengths, target);
|
|
67
|
+
const i = Math.max(1, rightIndex);
|
|
68
|
+
const leftLen = cumulativeLengths[i - 1];
|
|
69
|
+
const rightLen = cumulativeLengths[i];
|
|
70
|
+
const t = PolylineSampler._safeRatio(target - leftLen, rightLen - leftLen);
|
|
71
|
+
const a = points[i - 1];
|
|
72
|
+
const b = points[i];
|
|
73
|
+
const point = {
|
|
74
|
+
x: PolylineSampler._lerp(a.x, b.x, t),
|
|
75
|
+
y: PolylineSampler._lerp(a.y, b.y, t),
|
|
76
|
+
};
|
|
77
|
+
const tangent = segmentTangents[i - 1] ?? { x: 1, y: 0 };
|
|
78
|
+
return { point, tangent, atEdge: false };
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Backward-compatible alias.
|
|
82
|
+
* Equivalent to {@link getPointAtProgress}.
|
|
83
|
+
*/
|
|
84
|
+
getPointAtLength(progress) {
|
|
85
|
+
return this.getPointAtProgress(progress);
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Sample a point by absolute distance from the start (in the same units as your points).
|
|
89
|
+
* This is a convenience wrapper over {@link getPointAtProgress}.
|
|
90
|
+
*
|
|
91
|
+
* @param distance Distance from 0 to {@link totalLength}. Values outside are clamped.
|
|
92
|
+
* @returns Interpolated point, segment tangent, and whether it was clamped to an edge.
|
|
93
|
+
*/
|
|
94
|
+
getPointAtDistance(distance) {
|
|
95
|
+
const progress = this._polyline.totalLength ? distance / this._polyline.totalLength : 0;
|
|
96
|
+
return this.getPointAtProgress(progress);
|
|
97
|
+
}
|
|
98
|
+
// =============== Internal utilities ===============
|
|
99
|
+
/** Binary-search the first index where cumulativeLengths[index] >= target. */
|
|
100
|
+
static _findRightIndex(cumulativeLengths, target) {
|
|
101
|
+
let lo = 0;
|
|
102
|
+
let hi = cumulativeLengths.length - 1;
|
|
103
|
+
while (lo < hi) {
|
|
104
|
+
const mid = (lo + hi) >> 1;
|
|
105
|
+
if (cumulativeLengths[mid] < target)
|
|
106
|
+
lo = mid + 1;
|
|
107
|
+
else
|
|
108
|
+
hi = mid;
|
|
109
|
+
}
|
|
110
|
+
return lo;
|
|
111
|
+
}
|
|
112
|
+
/** Linear interpolation between `a` and `b`. */
|
|
113
|
+
static _lerp(a, b, t) {
|
|
114
|
+
return a + (b - a) * t;
|
|
115
|
+
}
|
|
116
|
+
/** Clamp `value` into [min, max]. */
|
|
117
|
+
static _clamp(value, min, max) {
|
|
118
|
+
return value < min ? min : value > max ? max : value;
|
|
119
|
+
}
|
|
120
|
+
/** Safe ratio `num / den` with tiny-denominator guard. */
|
|
121
|
+
static _safeRatio(num, den) {
|
|
122
|
+
const d = Math.abs(den) < 1e-6 ? 1e-6 : den;
|
|
123
|
+
return num / d;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
/* ============================
|
|
127
|
+
Example
|
|
128
|
+
===============================
|
|
129
|
+
const sampler = new PolylineSampler([
|
|
130
|
+
{ x: 0, y: 0 },
|
|
131
|
+
{ x: 10, y: 0 },
|
|
132
|
+
{ x: 10, y: 10 },
|
|
133
|
+
]);
|
|
134
|
+
|
|
135
|
+
console.log('Total length:', sampler.totalLength); // -> 20
|
|
136
|
+
|
|
137
|
+
const s1 = sampler.getPointAtProgress(0.25);
|
|
138
|
+
console.log(s1.point, s1.tangent, s1.atEdge);
|
|
139
|
+
|
|
140
|
+
const s2 = sampler.getPointAtDistance(15); // same as progress 0.75
|
|
141
|
+
console.log(s2.point, s2.tangent, s2.atEdge);
|
|
142
|
+
*/
|
|
143
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9seWxpbmUtc2FtcGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1jb25uZWN0aW9uL2YtY29ubmVjdGlvbi1jb250ZW50L3BvbHlsaW5lLWNvbnRlbnQtZW5naW5lL3BvbHlsaW5lLXNhbXBsZXIvcG9seWxpbmUtc2FtcGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBSXRDOzs7R0FHRztBQUNILE1BQU0sT0FBTyxlQUFlO0lBQ2xCLFNBQVMsQ0FBVztJQUU1Qjs7O09BR0c7SUFDSCxZQUFZLFNBQW1CLEVBQUU7UUFDL0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksWUFBWSxDQUFDLE1BQWdCO1FBQ2xDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFdEMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksb0JBQW9CLENBQUMsTUFBZ0I7UUFDMUMsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCw0Q0FBNEM7SUFDNUMsSUFBVyxXQUFXO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUM7SUFDcEMsQ0FBQztJQUVEOzs7Ozs7Ozs7OztPQVdHO0lBQ0ksa0JBQWtCLENBQUMsUUFBZ0I7UUFDeEMsTUFBTSxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUVuRixNQUFNLE9BQU8sR0FBRyxlQUFlLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDdkQsTUFBTSxNQUFNLEdBQUcsT0FBTyxHQUFHLFdBQVcsQ0FBQztRQUVyQyxNQUFNLGFBQWEsR0FBRyxHQUFHLENBQUM7UUFDMUIsSUFBSSxNQUFNLElBQUksYUFBYSxFQUFFLENBQUM7WUFDNUIsT0FBTztnQkFDTCxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztnQkFDaEIsT0FBTyxFQUFFLGVBQWUsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRTtnQkFDN0MsTUFBTSxFQUFFLElBQUk7YUFDYixDQUFDO1FBQ0osQ0FBQztRQUNELElBQUksV0FBVyxHQUFHLE1BQU0sSUFBSSxhQUFhLEVBQUUsQ0FBQztZQUMxQyxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztZQUUvQixPQUFPO2dCQUNMLEtBQUssRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDO2dCQUNuQixPQUFPLEVBQUUsZUFBZSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRTtnQkFDcEQsTUFBTSxFQUFFLElBQUk7YUFDYixDQUFDO1FBQ0osQ0FBQztRQUVELE1BQU0sVUFBVSxHQUFHLGVBQWUsQ0FBQyxlQUFlLENBQUMsaUJBQWlCLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDOUUsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFFbEMsTUFBTSxPQUFPLEdBQUcsaUJBQWlCLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3pDLE1BQU0sUUFBUSxHQUFHLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RDLE1BQU0sQ0FBQyxHQUFHLGVBQWUsQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLE9BQU8sRUFBRSxRQUFRLEdBQUcsT0FBTyxDQUFDLENBQUM7UUFFM0UsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN4QixNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEIsTUFBTSxLQUFLLEdBQUc7WUFDWixDQUFDLEVBQUUsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3JDLENBQUMsRUFBRSxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDdEMsQ0FBQztRQUNGLE1BQU0sT0FBTyxHQUFHLGVBQWUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUV6RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDM0MsQ0FBQztJQUVEOzs7T0FHRztJQUNJLGdCQUFnQixDQUFDLFFBQWdCO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxrQkFBa0IsQ0FBQyxRQUFnQjtRQUN4QyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFeEYsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVELHFEQUFxRDtJQUVyRCw4RUFBOEU7SUFDdEUsTUFBTSxDQUFDLGVBQWUsQ0FBQyxpQkFBMkIsRUFBRSxNQUFjO1FBQ3hFLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQztRQUNYLElBQUksRUFBRSxHQUFHLGlCQUFpQixDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDdEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUM7WUFDZixNQUFNLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDM0IsSUFBSSxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsR0FBRyxNQUFNO2dCQUFFLEVBQUUsR0FBRyxHQUFHLEdBQUcsQ0FBQyxDQUFDOztnQkFDN0MsRUFBRSxHQUFHLEdBQUcsQ0FBQztRQUNoQixDQUFDO1FBRUQsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsZ0RBQWdEO0lBQ3hDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBUyxFQUFFLENBQVMsRUFBRSxDQUFTO1FBQ2xELE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBRUQscUNBQXFDO0lBQzdCLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBYSxFQUFFLEdBQVcsRUFBRSxHQUFXO1FBQzNELE9BQU8sS0FBSyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUN2RCxDQUFDO0lBRUQsMERBQTBEO0lBQ2xELE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBVyxFQUFFLEdBQVc7UUFDaEQsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO1FBRTVDLE9BQU8sR0FBRyxHQUFHLENBQUMsQ0FBQztJQUNqQixDQUFDO0NBQ0Y7QUFFRDs7Ozs7Ozs7Ozs7Ozs7OztFQWdCRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBvbHlsaW5lIH0gZnJvbSAnLi9wb2x5bGluZSc7XG5pbXBvcnQgeyBJUG9pbnQgfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7IElTYW1wbGVyUmVzdWx0IH0gZnJvbSAnLi9pLXNhbXBsZXItcmVzdWx0JztcblxuLyoqXG4gKiBQcm92aWRlcyBzYW1wbGluZyAoaW50ZXJwb2xhdGlvbikgYWxvbmcgYSB7QGxpbmsgUG9seWxpbmV9LlxuICogU2VwYXJhdGVzIHRyYXZlcnNhbCBsb2dpYyBmcm9tIHB1cmUgZ2VvbWV0cnkgc3RvcmVkIGluIHtAbGluayBQb2x5bGluZX0uXG4gKi9cbmV4cG9ydCBjbGFzcyBQb2x5bGluZVNhbXBsZXIge1xuICBwcml2YXRlIF9wb2x5bGluZTogUG9seWxpbmU7XG5cbiAgLyoqXG4gICAqIEBwYXJhbSBwb2ludHMgSW5pdGlhbCBwb2ludHMgdG8gYnVpbGQgdGhlIHVuZGVybHlpbmcgcG9seWxpbmUuXG4gICAqICAgICAgICAgICAgICAgWW91IGNhbiBsYXRlciBjYWxsIHtAbGluayB1cGRhdGVQb2ludHN9IHRvIHJlYnVpbGQuXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwb2ludHM6IElQb2ludFtdID0gW10pIHtcbiAgICB0aGlzLl9wb2x5bGluZSA9IG5ldyBQb2x5bGluZShwb2ludHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlYnVpbGQgdGhlIHVuZGVybHlpbmcgcG9seWxpbmUgZnJvbSBuZXcgcG9pbnRzLlxuICAgKiBAcmV0dXJucyBUb3RhbCBsZW5ndGggb2YgdGhlIHJlYnVpbHQgcG9seWxpbmUuXG4gICAqL1xuICBwdWJsaWMgdXBkYXRlUG9pbnRzKHBvaW50czogSVBvaW50W10pOiBudW1iZXIge1xuICAgIHRoaXMuX3BvbHlsaW5lID0gbmV3IFBvbHlsaW5lKHBvaW50cyk7XG5cbiAgICByZXR1cm4gdGhpcy5fcG9seWxpbmUudG90YWxMZW5ndGg7XG4gIH1cblxuICAvKipcbiAgICogQmFja3dhcmQtY29tcGF0aWJsZSBhbGlhcyBmb3Igb2xkZXIgQVBJIG5hbWluZy5cbiAgICogQHJldHVybnMgVG90YWwgbGVuZ3RoIG9mIHRoZSByZWJ1aWx0IHBvbHlsaW5lLlxuICAgKi9cbiAgcHVibGljIGNhbGN1bGF0ZVRvdGFsTGVuZ3RoKHBvaW50czogSVBvaW50W10pOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnVwZGF0ZVBvaW50cyhwb2ludHMpO1xuICB9XG5cbiAgLyoqIFRvdGFsIGxlbmd0aCBvZiB0aGUgY3VycmVudCBwb2x5bGluZS4gKi9cbiAgcHVibGljIGdldCB0b3RhbExlbmd0aCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9wb2x5bGluZS50b3RhbExlbmd0aDtcbiAgfVxuXG4gIC8qKlxuICAgKiBTYW1wbGUgYSBwb2ludCBieSBub3JtYWxpemVkIHByb2dyZXNzIGFsb25nIHRoZSB3aG9sZSBsZW5ndGguXG4gICAqXG4gICAqIC0gYHByb2dyZXNzID0gMGAg4oaSIHN0YXJ0IHZlcnRleFxuICAgKiAtIGBwcm9ncmVzcyA9IDFgIOKGkiBlbmQgdmVydGV4XG4gICAqXG4gICAqIFVzZXMgYSBzbWFsbCBlZGdlIHRocmVzaG9sZCAoMC41IHVuaXRzKSB0byBzbmFwIG5lYXItc3RhcnQvbmVhci1lbmQgcXVlcmllcyB0byBleGFjdCB2ZXJ0aWNlcyxcbiAgICogbWlycm9yaW5nIHRoZSBiZWhhdmlvciBpbiB0aGUgb3JpZ2luYWwgaW1wbGVtZW50YXRpb24uXG4gICAqXG4gICAqIEBwYXJhbSBwcm9ncmVzcyBOb3JtYWxpemVkIHZhbHVlIGluIFswLi4xXS4gVmFsdWVzIGFyZSBjbGFtcGVkIHRvIHRoaXMgcmFuZ2UuXG4gICAqIEByZXR1cm5zIEludGVycG9sYXRlZCBwb2ludCwgc2VnbWVudCB0YW5nZW50LCBhbmQgd2hldGhlciBpdCB3YXMgY2xhbXBlZCB0byBhbiBlZGdlLlxuICAgKi9cbiAgcHVibGljIGdldFBvaW50QXRQcm9ncmVzcyhwcm9ncmVzczogbnVtYmVyKTogSVNhbXBsZXJSZXN1bHQge1xuICAgIGNvbnN0IHsgcG9pbnRzLCBjdW11bGF0aXZlTGVuZ3Rocywgc2VnbWVudFRhbmdlbnRzLCB0b3RhbExlbmd0aCB9ID0gdGhpcy5fcG9seWxpbmU7XG5cbiAgICBjb25zdCBjbGFtcGVkID0gUG9seWxpbmVTYW1wbGVyLl9jbGFtcChwcm9ncmVzcywgMCwgMSk7XG4gICAgY29uc3QgdGFyZ2V0ID0gY2xhbXBlZCAqIHRvdGFsTGVuZ3RoO1xuXG4gICAgY29uc3QgZWRnZVRocmVzaG9sZCA9IDAuNTtcbiAgICBpZiAodGFyZ2V0IDw9IGVkZ2VUaHJlc2hvbGQpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHBvaW50OiBwb2ludHNbMF0sXG4gICAgICAgIHRhbmdlbnQ6IHNlZ21lbnRUYW5nZW50c1swXSA/PyB7IHg6IDEsIHk6IDAgfSxcbiAgICAgICAgYXRFZGdlOiB0cnVlLFxuICAgICAgfTtcbiAgICB9XG4gICAgaWYgKHRvdGFsTGVuZ3RoIC0gdGFyZ2V0IDw9IGVkZ2VUaHJlc2hvbGQpIHtcbiAgICAgIGNvbnN0IGxhc3QgPSBwb2ludHMubGVuZ3RoIC0gMTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcG9pbnQ6IHBvaW50c1tsYXN0XSxcbiAgICAgICAgdGFuZ2VudDogc2VnbWVudFRhbmdlbnRzW2xhc3QgLSAxXSA/PyB7IHg6IDEsIHk6IDAgfSxcbiAgICAgICAgYXRFZGdlOiB0cnVlLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBjb25zdCByaWdodEluZGV4ID0gUG9seWxpbmVTYW1wbGVyLl9maW5kUmlnaHRJbmRleChjdW11bGF0aXZlTGVuZ3RocywgdGFyZ2V0KTtcbiAgICBjb25zdCBpID0gTWF0aC5tYXgoMSwgcmlnaHRJbmRleCk7XG5cbiAgICBjb25zdCBsZWZ0TGVuID0gY3VtdWxhdGl2ZUxlbmd0aHNbaSAtIDFdO1xuICAgIGNvbnN0IHJpZ2h0TGVuID0gY3VtdWxhdGl2ZUxlbmd0aHNbaV07XG4gICAgY29uc3QgdCA9IFBvbHlsaW5lU2FtcGxlci5fc2FmZVJhdGlvKHRhcmdldCAtIGxlZnRMZW4sIHJpZ2h0TGVuIC0gbGVmdExlbik7XG5cbiAgICBjb25zdCBhID0gcG9pbnRzW2kgLSAxXTtcbiAgICBjb25zdCBiID0gcG9pbnRzW2ldO1xuICAgIGNvbnN0IHBvaW50ID0ge1xuICAgICAgeDogUG9seWxpbmVTYW1wbGVyLl9sZXJwKGEueCwgYi54LCB0KSxcbiAgICAgIHk6IFBvbHlsaW5lU2FtcGxlci5fbGVycChhLnksIGIueSwgdCksXG4gICAgfTtcbiAgICBjb25zdCB0YW5nZW50ID0gc2VnbWVudFRhbmdlbnRzW2kgLSAxXSA/PyB7IHg6IDEsIHk6IDAgfTtcblxuICAgIHJldHVybiB7IHBvaW50LCB0YW5nZW50LCBhdEVkZ2U6IGZhbHNlIH07XG4gIH1cblxuICAvKipcbiAgICogQmFja3dhcmQtY29tcGF0aWJsZSBhbGlhcy5cbiAgICogRXF1aXZhbGVudCB0byB7QGxpbmsgZ2V0UG9pbnRBdFByb2dyZXNzfS5cbiAgICovXG4gIHB1YmxpYyBnZXRQb2ludEF0TGVuZ3RoKHByb2dyZXNzOiBudW1iZXIpOiBJU2FtcGxlclJlc3VsdCB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UG9pbnRBdFByb2dyZXNzKHByb2dyZXNzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTYW1wbGUgYSBwb2ludCBieSBhYnNvbHV0ZSBkaXN0YW5jZSBmcm9tIHRoZSBzdGFydCAoaW4gdGhlIHNhbWUgdW5pdHMgYXMgeW91ciBwb2ludHMpLlxuICAgKiBUaGlzIGlzIGEgY29udmVuaWVuY2Ugd3JhcHBlciBvdmVyIHtAbGluayBnZXRQb2ludEF0UHJvZ3Jlc3N9LlxuICAgKlxuICAgKiBAcGFyYW0gZGlzdGFuY2UgRGlzdGFuY2UgZnJvbSAwIHRvIHtAbGluayB0b3RhbExlbmd0aH0uIFZhbHVlcyBvdXRzaWRlIGFyZSBjbGFtcGVkLlxuICAgKiBAcmV0dXJucyBJbnRlcnBvbGF0ZWQgcG9pbnQsIHNlZ21lbnQgdGFuZ2VudCwgYW5kIHdoZXRoZXIgaXQgd2FzIGNsYW1wZWQgdG8gYW4gZWRnZS5cbiAgICovXG4gIHB1YmxpYyBnZXRQb2ludEF0RGlzdGFuY2UoZGlzdGFuY2U6IG51bWJlcik6IElTYW1wbGVyUmVzdWx0IHtcbiAgICBjb25zdCBwcm9ncmVzcyA9IHRoaXMuX3BvbHlsaW5lLnRvdGFsTGVuZ3RoID8gZGlzdGFuY2UgLyB0aGlzLl9wb2x5bGluZS50b3RhbExlbmd0aCA6IDA7XG5cbiAgICByZXR1cm4gdGhpcy5nZXRQb2ludEF0UHJvZ3Jlc3MocHJvZ3Jlc3MpO1xuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09IEludGVybmFsIHV0aWxpdGllcyA9PT09PT09PT09PT09PT1cblxuICAvKiogQmluYXJ5LXNlYXJjaCB0aGUgZmlyc3QgaW5kZXggd2hlcmUgY3VtdWxhdGl2ZUxlbmd0aHNbaW5kZXhdID49IHRhcmdldC4gKi9cbiAgcHJpdmF0ZSBzdGF0aWMgX2ZpbmRSaWdodEluZGV4KGN1bXVsYXRpdmVMZW5ndGhzOiBudW1iZXJbXSwgdGFyZ2V0OiBudW1iZXIpOiBudW1iZXIge1xuICAgIGxldCBsbyA9IDA7XG4gICAgbGV0IGhpID0gY3VtdWxhdGl2ZUxlbmd0aHMubGVuZ3RoIC0gMTtcbiAgICB3aGlsZSAobG8gPCBoaSkge1xuICAgICAgY29uc3QgbWlkID0gKGxvICsgaGkpID4+IDE7XG4gICAgICBpZiAoY3VtdWxhdGl2ZUxlbmd0aHNbbWlkXSA8IHRhcmdldCkgbG8gPSBtaWQgKyAxO1xuICAgICAgZWxzZSBoaSA9IG1pZDtcbiAgICB9XG5cbiAgICByZXR1cm4gbG87XG4gIH1cblxuICAvKiogTGluZWFyIGludGVycG9sYXRpb24gYmV0d2VlbiBgYWAgYW5kIGBiYC4gKi9cbiAgcHJpdmF0ZSBzdGF0aWMgX2xlcnAoYTogbnVtYmVyLCBiOiBudW1iZXIsIHQ6IG51bWJlcik6IG51bWJlciB7XG4gICAgcmV0dXJuIGEgKyAoYiAtIGEpICogdDtcbiAgfVxuXG4gIC8qKiBDbGFtcCBgdmFsdWVgIGludG8gW21pbiwgbWF4XS4gKi9cbiAgcHJpdmF0ZSBzdGF0aWMgX2NsYW1wKHZhbHVlOiBudW1iZXIsIG1pbjogbnVtYmVyLCBtYXg6IG51bWJlcik6IG51bWJlciB7XG4gICAgcmV0dXJuIHZhbHVlIDwgbWluID8gbWluIDogdmFsdWUgPiBtYXggPyBtYXggOiB2YWx1ZTtcbiAgfVxuXG4gIC8qKiBTYWZlIHJhdGlvIGBudW0gLyBkZW5gIHdpdGggdGlueS1kZW5vbWluYXRvciBndWFyZC4gKi9cbiAgcHJpdmF0ZSBzdGF0aWMgX3NhZmVSYXRpbyhudW06IG51bWJlciwgZGVuOiBudW1iZXIpOiBudW1iZXIge1xuICAgIGNvbnN0IGQgPSBNYXRoLmFicyhkZW4pIDwgMWUtNiA/IDFlLTYgOiBkZW47XG5cbiAgICByZXR1cm4gbnVtIC8gZDtcbiAgfVxufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBFeGFtcGxlXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5jb25zdCBzYW1wbGVyID0gbmV3IFBvbHlsaW5lU2FtcGxlcihbXG4gIHsgeDogMCwgeTogMCB9LFxuICB7IHg6IDEwLCB5OiAwIH0sXG4gIHsgeDogMTAsIHk6IDEwIH0sXG5dKTtcblxuY29uc29sZS5sb2coJ1RvdGFsIGxlbmd0aDonLCBzYW1wbGVyLnRvdGFsTGVuZ3RoKTsgLy8gLT4gMjBcblxuY29uc3QgczEgPSBzYW1wbGVyLmdldFBvaW50QXRQcm9ncmVzcygwLjI1KTtcbmNvbnNvbGUubG9nKHMxLnBvaW50LCBzMS50YW5nZW50LCBzMS5hdEVkZ2UpO1xuXG5jb25zdCBzMiA9IHNhbXBsZXIuZ2V0UG9pbnRBdERpc3RhbmNlKDE1KTsgLy8gc2FtZSBhcyBwcm9ncmVzcyAwLjc1XG5jb25zb2xlLmxvZyhzMi5wb2ludCwgczIudGFuZ2VudCwgczIuYXRFZGdlKTtcbiovXG4iXX0=
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Immutable polyline geometry with precomputed cumulative lengths and segment tangents.
|
|
3
|
+
* Keep this class focused on geometry only; sampling/traversal lives in PolylineSampler.
|
|
4
|
+
*/
|
|
5
|
+
export class Polyline {
|
|
6
|
+
/** Cleaned points (with consecutive duplicates removed). */
|
|
7
|
+
points;
|
|
8
|
+
/** Cumulative length from start to each vertex. Same length as `points`. */
|
|
9
|
+
cumulativeLengths;
|
|
10
|
+
/** Unit tangent per segment `i` for segment [i -> i+1]. Length = points.length - 1. */
|
|
11
|
+
segmentTangents;
|
|
12
|
+
/** Total length of the polyline (>= 1 for the degenerate fallback). */
|
|
13
|
+
totalLength;
|
|
14
|
+
/**
|
|
15
|
+
* Construct a polyline from raw points.
|
|
16
|
+
* Consecutive duplicate points are removed.
|
|
17
|
+
* If less than 2 points remain, it falls back to a unit horizontal segment [0,0] → [1,0].
|
|
18
|
+
*/
|
|
19
|
+
constructor(points) {
|
|
20
|
+
const cleaned = Polyline._removeConsecutiveDuplicates(points);
|
|
21
|
+
if (cleaned.length < 2) {
|
|
22
|
+
// Fallback to a unit segment to avoid zero-length edge cases.
|
|
23
|
+
this.points = [{ x: 0, y: 0 }, { x: 1, y: 0 }];
|
|
24
|
+
this.cumulativeLengths = [0, 1];
|
|
25
|
+
this.segmentTangents = [{ x: 1, y: 0 }];
|
|
26
|
+
this.totalLength = 1;
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
this.points = cleaned;
|
|
30
|
+
const vertexCount = this.points.length;
|
|
31
|
+
const segmentCount = vertexCount - 1;
|
|
32
|
+
const cumulative = new Array(vertexCount).fill(0);
|
|
33
|
+
const tangents = new Array(segmentCount);
|
|
34
|
+
let accumulated = 0;
|
|
35
|
+
for (let i = 0; i < segmentCount; i++) {
|
|
36
|
+
const dx = this.points[i + 1].x - this.points[i].x;
|
|
37
|
+
const dy = this.points[i + 1].y - this.points[i].y;
|
|
38
|
+
const length = Math.hypot(dx, dy);
|
|
39
|
+
const ux = length ? dx / length : 1;
|
|
40
|
+
const uy = length ? dy / length : 0;
|
|
41
|
+
tangents[i] = { x: ux, y: uy };
|
|
42
|
+
accumulated += length;
|
|
43
|
+
cumulative[i + 1] = accumulated;
|
|
44
|
+
}
|
|
45
|
+
this.cumulativeLengths = cumulative;
|
|
46
|
+
this.segmentTangents = tangents;
|
|
47
|
+
this.totalLength = accumulated || 1;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Create a polyline by cloning points (defensive copy).
|
|
51
|
+
* @param points Raw input points; they will be copied and cleaned.
|
|
52
|
+
*/
|
|
53
|
+
static from(points) {
|
|
54
|
+
return new Polyline(points.map(p => ({ x: p.x, y: p.y })));
|
|
55
|
+
}
|
|
56
|
+
/** Remove consecutive duplicate points. */
|
|
57
|
+
static _removeConsecutiveDuplicates(points) {
|
|
58
|
+
const result = [];
|
|
59
|
+
for (const p of points) {
|
|
60
|
+
const last = result[result.length - 1];
|
|
61
|
+
if (!last || last.x !== p.x || last.y !== p.y) {
|
|
62
|
+
result.push({ x: p.x, y: p.y });
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
return result;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9seWxpbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdGlvbi9mLWNvbm5lY3Rpb24tY29udGVudC9wb2x5bGluZS1jb250ZW50LWVuZ2luZS9wb2x5bGluZS1zYW1wbGVyL3BvbHlsaW5lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBOzs7R0FHRztBQUNILE1BQU0sT0FBTyxRQUFRO0lBQ25CLDREQUE0RDtJQUM1QyxNQUFNLENBQVc7SUFDakMsNEVBQTRFO0lBQzVELGlCQUFpQixDQUFXO0lBQzVDLHVGQUF1RjtJQUN2RSxlQUFlLENBQWE7SUFDNUMsdUVBQXVFO0lBQ3ZELFdBQVcsQ0FBUztJQUVwQzs7OztPQUlHO0lBQ0gsWUFBWSxNQUFnQjtRQUMxQixNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsNEJBQTRCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFOUQsSUFBSSxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3ZCLDhEQUE4RDtZQUM5RCxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDL0MsSUFBSSxDQUFDLGlCQUFpQixHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ2hDLElBQUksQ0FBQyxlQUFlLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDeEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUM7WUFFckIsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQztRQUV0QixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztRQUN2QyxNQUFNLFlBQVksR0FBRyxXQUFXLEdBQUcsQ0FBQyxDQUFDO1FBRXJDLE1BQU0sVUFBVSxHQUFhLElBQUksS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM1RCxNQUFNLFFBQVEsR0FBZSxJQUFJLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUVyRCxJQUFJLFdBQVcsR0FBRyxDQUFDLENBQUM7UUFDcEIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFlBQVksRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ3RDLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNuRCxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbkQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFFbEMsTUFBTSxFQUFFLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDcEMsTUFBTSxFQUFFLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFcEMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUM7WUFDL0IsV0FBVyxJQUFJLE1BQU0sQ0FBQztZQUN0QixVQUFVLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLFdBQVcsQ0FBQztRQUNsQyxDQUFDO1FBRUQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLFVBQVUsQ0FBQztRQUNwQyxJQUFJLENBQUMsZUFBZSxHQUFHLFFBQVEsQ0FBQztRQUNoQyxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsSUFBSSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVEOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBZ0I7UUFDakMsT0FBTyxJQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELDJDQUEyQztJQUNuQyxNQUFNLENBQUMsNEJBQTRCLENBQUMsTUFBZ0I7UUFDMUQsTUFBTSxNQUFNLEdBQWEsRUFBRSxDQUFDO1FBQzVCLEtBQUssTUFBTSxDQUFDLElBQUksTUFBTSxFQUFFLENBQUM7WUFDdkIsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDdkMsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQzlDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDbEMsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJUG9pbnQgfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7IElUYW5nZW50IH0gZnJvbSAnLi9pLXRhbmdlbnQnO1xuXG4vKipcbiAqIEltbXV0YWJsZSBwb2x5bGluZSBnZW9tZXRyeSB3aXRoIHByZWNvbXB1dGVkIGN1bXVsYXRpdmUgbGVuZ3RocyBhbmQgc2VnbWVudCB0YW5nZW50cy5cbiAqIEtlZXAgdGhpcyBjbGFzcyBmb2N1c2VkIG9uIGdlb21ldHJ5IG9ubHk7IHNhbXBsaW5nL3RyYXZlcnNhbCBsaXZlcyBpbiBQb2x5bGluZVNhbXBsZXIuXG4gKi9cbmV4cG9ydCBjbGFzcyBQb2x5bGluZSB7XG4gIC8qKiBDbGVhbmVkIHBvaW50cyAod2l0aCBjb25zZWN1dGl2ZSBkdXBsaWNhdGVzIHJlbW92ZWQpLiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcG9pbnRzOiBJUG9pbnRbXTtcbiAgLyoqIEN1bXVsYXRpdmUgbGVuZ3RoIGZyb20gc3RhcnQgdG8gZWFjaCB2ZXJ0ZXguIFNhbWUgbGVuZ3RoIGFzIGBwb2ludHNgLiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgY3VtdWxhdGl2ZUxlbmd0aHM6IG51bWJlcltdO1xuICAvKiogVW5pdCB0YW5nZW50IHBlciBzZWdtZW50IGBpYCBmb3Igc2VnbWVudCBbaSAtPiBpKzFdLiBMZW5ndGggPSBwb2ludHMubGVuZ3RoIC0gMS4gKi9cbiAgcHVibGljIHJlYWRvbmx5IHNlZ21lbnRUYW5nZW50czogSVRhbmdlbnRbXTtcbiAgLyoqIFRvdGFsIGxlbmd0aCBvZiB0aGUgcG9seWxpbmUgKD49IDEgZm9yIHRoZSBkZWdlbmVyYXRlIGZhbGxiYWNrKS4gKi9cbiAgcHVibGljIHJlYWRvbmx5IHRvdGFsTGVuZ3RoOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIENvbnN0cnVjdCBhIHBvbHlsaW5lIGZyb20gcmF3IHBvaW50cy5cbiAgICogQ29uc2VjdXRpdmUgZHVwbGljYXRlIHBvaW50cyBhcmUgcmVtb3ZlZC5cbiAgICogSWYgbGVzcyB0aGFuIDIgcG9pbnRzIHJlbWFpbiwgaXQgZmFsbHMgYmFjayB0byBhIHVuaXQgaG9yaXpvbnRhbCBzZWdtZW50IFswLDBdIOKGkiBbMSwwXS5cbiAgICovXG4gIGNvbnN0cnVjdG9yKHBvaW50czogSVBvaW50W10pIHtcbiAgICBjb25zdCBjbGVhbmVkID0gUG9seWxpbmUuX3JlbW92ZUNvbnNlY3V0aXZlRHVwbGljYXRlcyhwb2ludHMpO1xuXG4gICAgaWYgKGNsZWFuZWQubGVuZ3RoIDwgMikge1xuICAgICAgLy8gRmFsbGJhY2sgdG8gYSB1bml0IHNlZ21lbnQgdG8gYXZvaWQgemVyby1sZW5ndGggZWRnZSBjYXNlcy5cbiAgICAgIHRoaXMucG9pbnRzID0gW3sgeDogMCwgeTogMCB9LCB7IHg6IDEsIHk6IDAgfV07XG4gICAgICB0aGlzLmN1bXVsYXRpdmVMZW5ndGhzID0gWzAsIDFdO1xuICAgICAgdGhpcy5zZWdtZW50VGFuZ2VudHMgPSBbeyB4OiAxLCB5OiAwIH1dO1xuICAgICAgdGhpcy50b3RhbExlbmd0aCA9IDE7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnBvaW50cyA9IGNsZWFuZWQ7XG5cbiAgICBjb25zdCB2ZXJ0ZXhDb3VudCA9IHRoaXMucG9pbnRzLmxlbmd0aDtcbiAgICBjb25zdCBzZWdtZW50Q291bnQgPSB2ZXJ0ZXhDb3VudCAtIDE7XG5cbiAgICBjb25zdCBjdW11bGF0aXZlOiBudW1iZXJbXSA9IG5ldyBBcnJheSh2ZXJ0ZXhDb3VudCkuZmlsbCgwKTtcbiAgICBjb25zdCB0YW5nZW50czogSVRhbmdlbnRbXSA9IG5ldyBBcnJheShzZWdtZW50Q291bnQpO1xuXG4gICAgbGV0IGFjY3VtdWxhdGVkID0gMDtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNlZ21lbnRDb3VudDsgaSsrKSB7XG4gICAgICBjb25zdCBkeCA9IHRoaXMucG9pbnRzW2kgKyAxXS54IC0gdGhpcy5wb2ludHNbaV0ueDtcbiAgICAgIGNvbnN0IGR5ID0gdGhpcy5wb2ludHNbaSArIDFdLnkgLSB0aGlzLnBvaW50c1tpXS55O1xuICAgICAgY29uc3QgbGVuZ3RoID0gTWF0aC5oeXBvdChkeCwgZHkpO1xuXG4gICAgICBjb25zdCB1eCA9IGxlbmd0aCA/IGR4IC8gbGVuZ3RoIDogMTtcbiAgICAgIGNvbnN0IHV5ID0gbGVuZ3RoID8gZHkgLyBsZW5ndGggOiAwO1xuXG4gICAgICB0YW5nZW50c1tpXSA9IHsgeDogdXgsIHk6IHV5IH07XG4gICAgICBhY2N1bXVsYXRlZCArPSBsZW5ndGg7XG4gICAgICBjdW11bGF0aXZlW2kgKyAxXSA9IGFjY3VtdWxhdGVkO1xuICAgIH1cblxuICAgIHRoaXMuY3VtdWxhdGl2ZUxlbmd0aHMgPSBjdW11bGF0aXZlO1xuICAgIHRoaXMuc2VnbWVudFRhbmdlbnRzID0gdGFuZ2VudHM7XG4gICAgdGhpcy50b3RhbExlbmd0aCA9IGFjY3VtdWxhdGVkIHx8IDE7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgcG9seWxpbmUgYnkgY2xvbmluZyBwb2ludHMgKGRlZmVuc2l2ZSBjb3B5KS5cbiAgICogQHBhcmFtIHBvaW50cyBSYXcgaW5wdXQgcG9pbnRzOyB0aGV5IHdpbGwgYmUgY29waWVkIGFuZCBjbGVhbmVkLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tKHBvaW50czogSVBvaW50W10pOiBQb2x5bGluZSB7XG4gICAgcmV0dXJuIG5ldyBQb2x5bGluZShwb2ludHMubWFwKHAgPT4gKHsgeDogcC54LCB5OiBwLnkgfSkpKTtcbiAgfVxuXG4gIC8qKiBSZW1vdmUgY29uc2VjdXRpdmUgZHVwbGljYXRlIHBvaW50cy4gKi9cbiAgcHJpdmF0ZSBzdGF0aWMgX3JlbW92ZUNvbnNlY3V0aXZlRHVwbGljYXRlcyhwb2ludHM6IElQb2ludFtdKTogSVBvaW50W10ge1xuICAgIGNvbnN0IHJlc3VsdDogSVBvaW50W10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IHAgb2YgcG9pbnRzKSB7XG4gICAgICBjb25zdCBsYXN0ID0gcmVzdWx0W3Jlc3VsdC5sZW5ndGggLSAxXTtcbiAgICAgIGlmICghbGFzdCB8fCBsYXN0LnggIT09IHAueCB8fCBsYXN0LnkgIT09IHAueSkge1xuICAgICAgICByZXN1bHQucHVzaCh7IHg6IHAueCwgeTogcC55IH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, inject, Input, numberAttribute, signal } from
|
|
1
|
+
import { ChangeDetectionStrategy, Component, inject, Input, numberAttribute, signal, } from '@angular/core';
|
|
2
2
|
import { EFConnectionBehavior } from '../common';
|
|
3
3
|
import { EFConnectionType } from '../common';
|
|
4
4
|
import { NotifyDataChangedRequest } from '../../f-storage';
|
|
@@ -9,22 +9,21 @@ import { F_CONNECTION } from '../common/f-connection.injection-token';
|
|
|
9
9
|
import { FConnectionBase } from '../common/f-connection-base';
|
|
10
10
|
import { castToEnum } from '@foblex/utils';
|
|
11
11
|
import { FMediator } from '@foblex/mediator';
|
|
12
|
-
import { AddConnectionForCreateToStoreRequest, RemoveConnectionForCreateFromStoreRequest } from '../../domain';
|
|
12
|
+
import { AddConnectionForCreateToStoreRequest, RemoveConnectionForCreateFromStoreRequest, } from '../../domain';
|
|
13
13
|
import * as i0 from "@angular/core";
|
|
14
|
-
import * as i1 from "../f-connection-
|
|
15
|
-
import * as i2 from "../common/f-
|
|
16
|
-
import * as i3 from "../common/f-drag-handle/f-connection-drag-handle-
|
|
17
|
-
import * as i4 from "../common/f-
|
|
18
|
-
import * as i5 from "../common/f-
|
|
19
|
-
import * as i6 from "../common/f-
|
|
20
|
-
import * as i7 from "../common/f-selection/f-connection-selection.component";
|
|
14
|
+
import * as i1 from "../common/f-connection-text/f-connection-text.component";
|
|
15
|
+
import * as i2 from "../common/f-drag-handle/f-connection-drag-handle-start.component";
|
|
16
|
+
import * as i3 from "../common/f-drag-handle/f-connection-drag-handle-end.component";
|
|
17
|
+
import * as i4 from "../common/f-gradient/f-connection-gradient.component";
|
|
18
|
+
import * as i5 from "../common/f-path/f-connection-path.component";
|
|
19
|
+
import * as i6 from "../common/f-selection/f-connection-selection.component";
|
|
21
20
|
let uniqueId = 0;
|
|
22
21
|
export class FConnectionForCreateComponent extends FConnectionBase {
|
|
23
22
|
fId = signal(`f-connection-for-create-${uniqueId++}`);
|
|
24
23
|
fText = '';
|
|
25
24
|
fTextStartOffset = '';
|
|
26
|
-
fOutputId;
|
|
27
|
-
fInputId;
|
|
25
|
+
fOutputId = signal('');
|
|
26
|
+
fInputId = signal('');
|
|
28
27
|
fRadius = 8;
|
|
29
28
|
fOffset = 12;
|
|
30
29
|
fBehavior = EFConnectionBehavior.FIXED;
|
|
@@ -33,9 +32,6 @@ export class FConnectionForCreateComponent extends FConnectionBase {
|
|
|
33
32
|
return this.fPath().hostElement;
|
|
34
33
|
}
|
|
35
34
|
_mediator = inject(FMediator);
|
|
36
|
-
constructor(elementReference, fConnectionFactory) {
|
|
37
|
-
super(elementReference, fConnectionFactory);
|
|
38
|
-
}
|
|
39
35
|
ngOnInit() {
|
|
40
36
|
this._mediator.execute(new AddConnectionForCreateToStoreRequest(this));
|
|
41
37
|
}
|
|
@@ -48,15 +44,15 @@ export class FConnectionForCreateComponent extends FConnectionBase {
|
|
|
48
44
|
ngOnDestroy() {
|
|
49
45
|
this._mediator.execute(new RemoveConnectionForCreateFromStoreRequest());
|
|
50
46
|
}
|
|
51
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FConnectionForCreateComponent, deps:
|
|
52
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: FConnectionForCreateComponent, selector: "f-connection-for-create", inputs: { fRadius: ["fRadius", "fRadius", numberAttribute], fOffset: ["fOffset", "fOffset", numberAttribute], fBehavior: ["fBehavior", "fBehavior", (value) => castToEnum(value, 'fBehavior', EFConnectionBehavior)], fType: "fType" }, host: { classAttribute: "f-component f-connection f-connection-for-create" }, providers: [{ provide: F_CONNECTION, useExisting: FConnectionForCreateComponent }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<svg xmlns=\"http://www.w3.org/2000/svg\">\n <defs #defs></defs>\n <g class=\"f-connection-group\">\n <linearGradient fConnectionGradient></linearGradient>\n <path fConnectionSelection [attr.d]=\"path\"></path>\n <g>\n <path f-connection-path
|
|
47
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FConnectionForCreateComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
48
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: FConnectionForCreateComponent, selector: "f-connection-for-create", inputs: { fRadius: ["fRadius", "fRadius", numberAttribute], fOffset: ["fOffset", "fOffset", numberAttribute], fBehavior: ["fBehavior", "fBehavior", (value) => castToEnum(value, 'fBehavior', EFConnectionBehavior)], fType: "fType" }, host: { classAttribute: "f-component f-connection f-connection-for-create" }, providers: [{ provide: F_CONNECTION, useExisting: FConnectionForCreateComponent }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<svg xmlns=\"http://www.w3.org/2000/svg\">\n <defs #defs></defs>\n <g class=\"f-connection-group\">\n <linearGradient fConnectionGradient></linearGradient>\n <path fConnectionSelection [attr.d]=\"path\"></path>\n <g>\n <path f-connection-path [attr.d]=\"path\"></path>\n <circle f-connection-drag-handle-start r=\"8\"></circle>\n <circle f-connection-drag-handle-end r=\"8\"></circle>\n </g>\n <text f-connection-text></text>\n </g>\n <ng-content></ng-content>\n</svg>\n@if (fConnectionCenters().length) {\n <div #fConnectionCenter class=\"f-connection-center\">\n <ng-content select=\"[fConnectionCenter]\"></ng-content>\n </div>\n}\n\n@if (fConnectionContents().length) {\n <ng-content select=\"[fConnectionContent]\"></ng-content>\n}\n", styles: [":host{pointer-events:none;position:absolute}:host svg{overflow:visible}:host svg .f-connection-group{pointer-events:all}:host .f-connection-center,:host .f-connection-content{pointer-events:all}\n"], dependencies: [{ kind: "component", type: i1.FConnectionTextComponent, selector: "text[f-connection-text]" }, { kind: "component", type: i2.FConnectionDragHandleStartComponent, selector: "circle[f-connection-drag-handle-start]" }, { kind: "component", type: i3.FConnectionDragHandleEndComponent, selector: "circle[f-connection-drag-handle-end]" }, { kind: "component", type: i4.FConnectionGradientComponent, selector: "linearGradient[fConnectionGradient]" }, { kind: "component", type: i5.FConnectionPathComponent, selector: "path[f-connection-path]" }, { kind: "component", type: i6.FConnectionSelectionComponent, selector: "path[fConnectionSelection]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
53
49
|
}
|
|
54
50
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FConnectionForCreateComponent, decorators: [{
|
|
55
51
|
type: Component,
|
|
56
|
-
args: [{ selector:
|
|
57
|
-
class:
|
|
58
|
-
}, providers: [{ provide: F_CONNECTION, useExisting: FConnectionForCreateComponent }], template: "<svg xmlns=\"http://www.w3.org/2000/svg\">\n <defs #defs></defs>\n <g class=\"f-connection-group\">\n <linearGradient fConnectionGradient></linearGradient>\n <path fConnectionSelection [attr.d]=\"path\"></path>\n <g>\n <path f-connection-path
|
|
59
|
-
}],
|
|
52
|
+
args: [{ selector: 'f-connection-for-create', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
53
|
+
class: 'f-component f-connection f-connection-for-create',
|
|
54
|
+
}, providers: [{ provide: F_CONNECTION, useExisting: FConnectionForCreateComponent }], template: "<svg xmlns=\"http://www.w3.org/2000/svg\">\n <defs #defs></defs>\n <g class=\"f-connection-group\">\n <linearGradient fConnectionGradient></linearGradient>\n <path fConnectionSelection [attr.d]=\"path\"></path>\n <g>\n <path f-connection-path [attr.d]=\"path\"></path>\n <circle f-connection-drag-handle-start r=\"8\"></circle>\n <circle f-connection-drag-handle-end r=\"8\"></circle>\n </g>\n <text f-connection-text></text>\n </g>\n <ng-content></ng-content>\n</svg>\n@if (fConnectionCenters().length) {\n <div #fConnectionCenter class=\"f-connection-center\">\n <ng-content select=\"[fConnectionCenter]\"></ng-content>\n </div>\n}\n\n@if (fConnectionContents().length) {\n <ng-content select=\"[fConnectionContent]\"></ng-content>\n}\n", styles: [":host{pointer-events:none;position:absolute}:host svg{overflow:visible}:host svg .f-connection-group{pointer-events:all}:host .f-connection-center,:host .f-connection-content{pointer-events:all}\n"] }]
|
|
55
|
+
}], propDecorators: { fRadius: [{
|
|
60
56
|
type: Input,
|
|
61
57
|
args: [{ transform: numberAttribute }]
|
|
62
58
|
}], fOffset: [{
|
|
@@ -68,4 +64,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
68
64
|
}], fType: [{
|
|
69
65
|
type: Input
|
|
70
66
|
}] } });
|
|
71
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jb25uZWN0aW9uLWZvci1jcmVhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNvbm5lY3Rpb24vZi1jb25uZWN0aW9uLWZvci1jcmVhdGUvZi1jb25uZWN0aW9uLWZvci1jcmVhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNvbm5lY3Rpb24vZi1jb25uZWN0aW9uLWZvci1jcmVhdGUvZi1jb25uZWN0aW9uLWZvci1jcmVhdGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsTUFBTSxFQUNOLEtBQUssRUFDTCxlQUFlLEVBSWYsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDN0MsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3RFLGdIQUFnSDtBQUNoSCx3RUFBd0U7QUFDeEUsZ0RBQWdEO0FBQ2hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM3QyxPQUFPLEVBQ0wsb0NBQW9DLEVBQ3BDLHlDQUF5QyxHQUMxQyxNQUFNLGNBQWMsQ0FBQzs7Ozs7Ozs7QUFFdEIsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDO0FBWWpCLE1BQU0sT0FBTyw2QkFDWCxTQUFRLGVBQWU7SUFHUCxHQUFHLEdBQUcsTUFBTSxDQUFTLDJCQUEyQixRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFOUQsS0FBSyxHQUFXLEVBQUUsQ0FBQztJQUVuQixnQkFBZ0IsR0FBVyxFQUFFLENBQUM7SUFFOUIsU0FBUyxHQUFHLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUV2QixRQUFRLEdBQUcsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBR3RCLE9BQU8sR0FBVyxDQUFDLENBQUM7SUFHcEIsT0FBTyxHQUFXLEVBQUUsQ0FBQztJQUdyQixTQUFTLEdBQXlCLG9CQUFvQixDQUFDLEtBQUssQ0FBQztJQUc3RCxLQUFLLEdBQThCLGdCQUFnQixDQUFDLFFBQVEsQ0FBQztJQUU3RSxJQUFvQixlQUFlO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLFdBQVcsQ0FBQztJQUNsQyxDQUFDO0lBRWdCLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFeEMsUUFBUTtRQUNiLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksb0NBQW9DLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRU0sZUFBZTtRQUNwQixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZCxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLHdCQUF3QixFQUFFLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLHlDQUF5QyxFQUFFLENBQUMsQ0FBQztJQUMxRSxDQUFDO3dHQTlDVSw2QkFBNkI7NEZBQTdCLDZCQUE2QixpRkFjcEIsZUFBZSxtQ0FHZixlQUFlLHlDQUdmLENBQUMsS0FBYyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLFdBQVcsRUFBRSxvQkFBb0IsQ0FBQyw4R0F0QmpGLENBQUMsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSw2QkFBNkIsRUFBRSxDQUFDLHNFQ3JDcEYsNHdCQXVCQTs7NEZEZ0JhLDZCQUE2QjtrQkFWekMsU0FBUzsrQkFDRSx5QkFBeUIsbUJBR2xCLHVCQUF1QixDQUFDLE1BQU0sUUFDekM7d0JBQ0osS0FBSyxFQUFFLGtEQUFrRDtxQkFDMUQsYUFDVSxDQUFDLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLCtCQUErQixFQUFFLENBQUM7OEJBaUJsRSxPQUFPO3NCQUR0QixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRTtnQkFJckIsT0FBTztzQkFEdEIsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUU7Z0JBSXJCLFNBQVM7c0JBRHhCLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxLQUFjLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsV0FBVyxFQUFFLG9CQUFvQixDQUFDLEVBQUU7Z0JBSTlFLEtBQUs7c0JBRHBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBpbmplY3QsXG4gIElucHV0LFxuICBudW1iZXJBdHRyaWJ1dGUsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFRkNvbm5lY3Rpb25CZWhhdmlvciB9IGZyb20gJy4uL2NvbW1vbic7XG5pbXBvcnQgeyBFRkNvbm5lY3Rpb25UeXBlIH0gZnJvbSAnLi4vY29tbW9uJztcbmltcG9ydCB7IE5vdGlmeURhdGFDaGFuZ2VkUmVxdWVzdCB9IGZyb20gJy4uLy4uL2Ytc3RvcmFnZSc7XG5pbXBvcnQgeyBGX0NPTk5FQ1RJT04gfSBmcm9tICcuLi9jb21tb24vZi1jb25uZWN0aW9uLmluamVjdGlvbi10b2tlbic7XG4vL1RPRE86IE5lZWQgdG8gZGVhbCB3aXRoIGN5Y2xpYyBkZXBlbmRlbmNpZXMsIHNpbmNlIGluIHNvbWUgY2FzZXMgYW4gZXJyb3Igb2NjdXJzIHdoZW4gaW1wb3J0aW5nIHRoZW0gLi4vY29tbW9uXG4vLyBUeXBlRXJyb3I6IENsYXNzIGV4dGVuZHMgdmFsdWUgdW5kZWZpbmVkIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGxcbi8vIGF0IGYtY29ubmVjdGlvbi1mb3ItY3JlYXRlLmNvbXBvbmVudC50czozNDoxMVxuaW1wb3J0IHsgRkNvbm5lY3Rpb25CYXNlIH0gZnJvbSAnLi4vY29tbW9uL2YtY29ubmVjdGlvbi1iYXNlJztcbmltcG9ydCB7IGNhc3RUb0VudW0gfSBmcm9tICdAZm9ibGV4L3V0aWxzJztcbmltcG9ydCB7IEZNZWRpYXRvciB9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuaW1wb3J0IHtcbiAgQWRkQ29ubmVjdGlvbkZvckNyZWF0ZVRvU3RvcmVSZXF1ZXN0LFxuICBSZW1vdmVDb25uZWN0aW9uRm9yQ3JlYXRlRnJvbVN0b3JlUmVxdWVzdCxcbn0gZnJvbSAnLi4vLi4vZG9tYWluJztcblxubGV0IHVuaXF1ZUlkID0gMDtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZi1jb25uZWN0aW9uLWZvci1jcmVhdGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vZi1jb25uZWN0aW9uLWZvci1jcmVhdGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mLWNvbm5lY3Rpb24tZm9yLWNyZWF0ZS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAnZi1jb21wb25lbnQgZi1jb25uZWN0aW9uIGYtY29ubmVjdGlvbi1mb3ItY3JlYXRlJyxcbiAgfSxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBGX0NPTk5FQ1RJT04sIHVzZUV4aXN0aW5nOiBGQ29ubmVjdGlvbkZvckNyZWF0ZUNvbXBvbmVudCB9XSxcbn0pXG5leHBvcnQgY2xhc3MgRkNvbm5lY3Rpb25Gb3JDcmVhdGVDb21wb25lbnRcbiAgZXh0ZW5kcyBGQ29ubmVjdGlvbkJhc2VcbiAgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95XG57XG4gIHB1YmxpYyBvdmVycmlkZSBmSWQgPSBzaWduYWw8c3RyaW5nPihgZi1jb25uZWN0aW9uLWZvci1jcmVhdGUtJHt1bmlxdWVJZCsrfWApO1xuXG4gIHB1YmxpYyBvdmVycmlkZSBmVGV4dDogc3RyaW5nID0gJyc7XG5cbiAgcHVibGljIG92ZXJyaWRlIGZUZXh0U3RhcnRPZmZzZXQ6IHN0cmluZyA9ICcnO1xuXG4gIHB1YmxpYyBvdmVycmlkZSBmT3V0cHV0SWQgPSBzaWduYWwoJycpO1xuXG4gIHB1YmxpYyBvdmVycmlkZSBmSW5wdXRJZCA9IHNpZ25hbCgnJyk7XG5cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSlcbiAgcHVibGljIG92ZXJyaWRlIGZSYWRpdXM6IG51bWJlciA9IDg7XG5cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSlcbiAgcHVibGljIG92ZXJyaWRlIGZPZmZzZXQ6IG51bWJlciA9IDEyO1xuXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogKHZhbHVlOiB1bmtub3duKSA9PiBjYXN0VG9FbnVtKHZhbHVlLCAnZkJlaGF2aW9yJywgRUZDb25uZWN0aW9uQmVoYXZpb3IpIH0pXG4gIHB1YmxpYyBvdmVycmlkZSBmQmVoYXZpb3I6IEVGQ29ubmVjdGlvbkJlaGF2aW9yID0gRUZDb25uZWN0aW9uQmVoYXZpb3IuRklYRUQ7XG5cbiAgQElucHV0KClcbiAgcHVibGljIG92ZXJyaWRlIGZUeXBlOiBFRkNvbm5lY3Rpb25UeXBlIHwgc3RyaW5nID0gRUZDb25uZWN0aW9uVHlwZS5TVFJBSUdIVDtcblxuICBwdWJsaWMgb3ZlcnJpZGUgZ2V0IGJvdW5kaW5nRWxlbWVudCgpOiBIVE1MRWxlbWVudCB8IFNWR0VsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLmZQYXRoKCkuaG9zdEVsZW1lbnQ7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IF9tZWRpYXRvciA9IGluamVjdChGTWVkaWF0b3IpO1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9tZWRpYXRvci5leGVjdXRlKG5ldyBBZGRDb25uZWN0aW9uRm9yQ3JlYXRlVG9TdG9yZVJlcXVlc3QodGhpcykpO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmhpZGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLl9tZWRpYXRvci5leGVjdXRlKG5ldyBOb3RpZnlEYXRhQ2hhbmdlZFJlcXVlc3QoKSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZShuZXcgUmVtb3ZlQ29ubmVjdGlvbkZvckNyZWF0ZUZyb21TdG9yZVJlcXVlc3QoKSk7XG4gIH1cbn1cbiIsIjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICA8ZGVmcyAjZGVmcz48L2RlZnM+XG4gIDxnIGNsYXNzPVwiZi1jb25uZWN0aW9uLWdyb3VwXCI+XG4gICAgPGxpbmVhckdyYWRpZW50IGZDb25uZWN0aW9uR3JhZGllbnQ+PC9saW5lYXJHcmFkaWVudD5cbiAgICA8cGF0aCBmQ29ubmVjdGlvblNlbGVjdGlvbiBbYXR0ci5kXT1cInBhdGhcIj48L3BhdGg+XG4gICAgPGc+XG4gICAgICA8cGF0aCBmLWNvbm5lY3Rpb24tcGF0aCBbYXR0ci5kXT1cInBhdGhcIj48L3BhdGg+XG4gICAgICA8Y2lyY2xlIGYtY29ubmVjdGlvbi1kcmFnLWhhbmRsZS1zdGFydCByPVwiOFwiPjwvY2lyY2xlPlxuICAgICAgPGNpcmNsZSBmLWNvbm5lY3Rpb24tZHJhZy1oYW5kbGUtZW5kIHI9XCI4XCI+PC9jaXJjbGU+XG4gICAgPC9nPlxuICAgIDx0ZXh0IGYtY29ubmVjdGlvbi10ZXh0PjwvdGV4dD5cbiAgPC9nPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L3N2Zz5cbkBpZiAoZkNvbm5lY3Rpb25DZW50ZXJzKCkubGVuZ3RoKSB7XG4gIDxkaXYgI2ZDb25uZWN0aW9uQ2VudGVyIGNsYXNzPVwiZi1jb25uZWN0aW9uLWNlbnRlclwiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltmQ29ubmVjdGlvbkNlbnRlcl1cIj48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxufVxuXG5AaWYgKGZDb25uZWN0aW9uQ29udGVudHMoKS5sZW5ndGgpIHtcbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2ZDb25uZWN0aW9uQ29udGVudF1cIj48L25nLWNvbnRlbnQ+XG59XG4iXX0=
|
|
@@ -1,11 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
3
2
|
export const F_MARKER = new InjectionToken('F_MARKER');
|
|
4
3
|
export class FMarkerBase {
|
|
5
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FMarkerBase, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
6
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: FMarkerBase, ngImport: i0 });
|
|
7
4
|
}
|
|
8
|
-
|
|
9
|
-
type: Directive
|
|
10
|
-
}] });
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1tYXJrZXItYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1jb25uZWN0aW9uL2YtbWFya2VyL2YtbWFya2VyLWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRzFELE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxJQUFJLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQztBQUd2RCxNQUFNLE9BQWdCLFdBQVc7d0dBQVgsV0FBVzs0RkFBWCxXQUFXOzs0RkFBWCxXQUFXO2tCQURoQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSUhhc0hvc3RFbGVtZW50IH0gZnJvbSAnLi4vLi4vaS1oYXMtaG9zdC1lbGVtZW50JztcblxuZXhwb3J0IGNvbnN0IEZfTUFSS0VSID0gbmV3IEluamVjdGlvblRva2VuKCdGX01BUktFUicpO1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBGTWFya2VyQmFzZSBpbXBsZW1lbnRzIElIYXNIb3N0RWxlbWVudCB7XG5cbiAgcHVibGljIGFic3RyYWN0IGhvc3RFbGVtZW50OiBIVE1MRWxlbWVudDtcblxuICBwdWJsaWMgYWJzdHJhY3Qgd2lkdGg6IG51bWJlcjtcblxuICBwdWJsaWMgYWJzdHJhY3QgaGVpZ2h0OiBudW1iZXI7XG5cbiAgcHVibGljIGFic3RyYWN0IHJlZlg6IG51bWJlcjtcblxuICBwdWJsaWMgYWJzdHJhY3QgcmVmWTogbnVtYmVyO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCB0eXBlOiBzdHJpbmc7XG5cbiAgcHVibGljIGFic3RyYWN0IG9yaWVudDogJ2F1dG8nIHwgJ2F1dG8tc3RhcnQtcmV2ZXJzZScgfCBzdHJpbmc7XG5cbiAgcHVibGljIGFic3RyYWN0IG1hcmtlclVuaXRzOiAnc3Ryb2tlV2lkdGgnIHwgJ3VzZXJTcGFjZU9uVXNlJztcbn1cbiJdfQ==
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1tYXJrZXItYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1jb25uZWN0aW9uL2YtbWFya2VyL2YtbWFya2VyLWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUcvQyxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsSUFBSSxjQUFjLENBQUMsVUFBVSxDQUFDLENBQUM7QUFFdkQsTUFBTSxPQUFnQixXQUFXO0NBZ0JoQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJSGFzSG9zdEVsZW1lbnQgfSBmcm9tICcuLi8uLi9pLWhhcy1ob3N0LWVsZW1lbnQnO1xuXG5leHBvcnQgY29uc3QgRl9NQVJLRVIgPSBuZXcgSW5qZWN0aW9uVG9rZW4oJ0ZfTUFSS0VSJyk7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBGTWFya2VyQmFzZSBpbXBsZW1lbnRzIElIYXNIb3N0RWxlbWVudCB7XG4gIHB1YmxpYyBhYnN0cmFjdCBob3N0RWxlbWVudDogSFRNTEVsZW1lbnQ7XG5cbiAgcHVibGljIGFic3RyYWN0IHdpZHRoOiBudW1iZXI7XG5cbiAgcHVibGljIGFic3RyYWN0IGhlaWdodDogbnVtYmVyO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCByZWZYOiBudW1iZXI7XG5cbiAgcHVibGljIGFic3RyYWN0IHJlZlk6IG51bWJlcjtcblxuICBwdWJsaWMgYWJzdHJhY3QgdHlwZTogc3RyaW5nO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBvcmllbnQ6ICdhdXRvJyB8ICdhdXRvLXN0YXJ0LXJldmVyc2UnIHwgc3RyaW5nO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBtYXJrZXJVbml0czogJ3N0cm9rZVdpZHRoJyB8ICd1c2VyU3BhY2VPblVzZSc7XG59XG4iXX0=
|
|
@@ -1,14 +1,12 @@
|
|
|
1
|
-
import { Directive, inject, Input } from
|
|
1
|
+
import { Directive, ElementRef, inject, Input } from '@angular/core';
|
|
2
2
|
import { F_MARKER, FMarkerBase } from './f-marker-base';
|
|
3
3
|
import { EFMarkerType } from './e-f-marker-type';
|
|
4
4
|
import { FMediator } from '@foblex/mediator';
|
|
5
|
-
import { AddConnectionMarkerToStoreRequest, RemoveConnectionMarkerFromStoreRequest } from '../../domain';
|
|
5
|
+
import { AddConnectionMarkerToStoreRequest, RemoveConnectionMarkerFromStoreRequest, } from '../../domain';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
7
|
export class FMarkerDirective extends FMarkerBase {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
return this.elementReference.nativeElement;
|
|
11
|
-
}
|
|
8
|
+
hostElement = inject((ElementRef)).nativeElement;
|
|
9
|
+
_mediator = inject(FMediator);
|
|
12
10
|
width = 0;
|
|
13
11
|
height = 0;
|
|
14
12
|
refX = 0;
|
|
@@ -16,33 +14,26 @@ export class FMarkerDirective extends FMarkerBase {
|
|
|
16
14
|
type = EFMarkerType.START;
|
|
17
15
|
orient = 'auto';
|
|
18
16
|
markerUnits = 'strokeWidth';
|
|
19
|
-
_fMediator = inject(FMediator);
|
|
20
|
-
constructor(elementReference) {
|
|
21
|
-
super();
|
|
22
|
-
this.elementReference = elementReference;
|
|
23
|
-
this.hostElement.style.display = 'none';
|
|
24
|
-
}
|
|
25
17
|
ngOnInit() {
|
|
26
|
-
this.
|
|
18
|
+
this.hostElement.style.display = 'none';
|
|
19
|
+
this._mediator.execute(new AddConnectionMarkerToStoreRequest(this));
|
|
27
20
|
}
|
|
28
21
|
ngOnDestroy() {
|
|
29
|
-
this.
|
|
22
|
+
this._mediator.execute(new RemoveConnectionMarkerFromStoreRequest(this));
|
|
30
23
|
}
|
|
31
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FMarkerDirective, deps:
|
|
32
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: FMarkerDirective, selector: "svg[fMarker]", inputs: {
|
|
24
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FMarkerDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
25
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: FMarkerDirective, selector: "svg[fMarker]", inputs: { width: "width", height: "height", refX: "refX", refY: "refY", type: "type", orient: "orient", markerUnits: "markerUnits" }, host: { classAttribute: "f-component f-marker" }, providers: [{ provide: F_MARKER, useExisting: FMarkerDirective }], usesInheritance: true, ngImport: i0 });
|
|
33
26
|
}
|
|
34
27
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FMarkerDirective, decorators: [{
|
|
35
28
|
type: Directive,
|
|
36
29
|
args: [{
|
|
37
|
-
selector:
|
|
30
|
+
selector: 'svg[fMarker]',
|
|
38
31
|
host: {
|
|
39
|
-
class:
|
|
32
|
+
class: 'f-component f-marker',
|
|
40
33
|
},
|
|
41
34
|
providers: [{ provide: F_MARKER, useExisting: FMarkerDirective }],
|
|
42
35
|
}]
|
|
43
|
-
}],
|
|
44
|
-
type: Input
|
|
45
|
-
}], width: [{
|
|
36
|
+
}], propDecorators: { width: [{
|
|
46
37
|
type: Input
|
|
47
38
|
}], height: [{
|
|
48
39
|
type: Input
|
|
@@ -57,4 +48,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
57
48
|
}], markerUnits: [{
|
|
58
49
|
type: Input
|
|
59
50
|
}] } });
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1tYXJrZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNvbm5lY3Rpb24vZi1tYXJrZXIvZi1tYXJrZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM3QyxPQUFPLEVBQ0wsaUNBQWlDLEVBQ2pDLHNDQUFzQyxHQUN2QyxNQUFNLGNBQWMsQ0FBQzs7QUFTdEIsTUFBTSxPQUFPLGdCQUFpQixTQUFRLFdBQVc7SUFDL0IsV0FBVyxHQUFHLE1BQU0sQ0FBQyxDQUFBLFVBQXVCLENBQUEsQ0FBQyxDQUFDLGFBQWEsQ0FBQztJQUMzRCxTQUFTLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRy9CLEtBQUssR0FBVyxDQUFDLENBQUM7SUFHbEIsTUFBTSxHQUFXLENBQUMsQ0FBQztJQUduQixJQUFJLEdBQVcsQ0FBQyxDQUFDO0lBR2pCLElBQUksR0FBVyxDQUFDLENBQUM7SUFHakIsSUFBSSxHQUFXLFlBQVksQ0FBQyxLQUFLLENBQUM7SUFHbEMsTUFBTSxHQUEwRCxNQUFNLENBQUM7SUFHdkUsV0FBVyxHQUFxQyxhQUFhLENBQUM7SUFFdkUsUUFBUTtRQUNiLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7UUFDeEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxpQ0FBaUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksc0NBQXNDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUMzRSxDQUFDO3dHQWhDVSxnQkFBZ0I7NEZBQWhCLGdCQUFnQiwrTkFGaEIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLENBQUM7OzRGQUV0RCxnQkFBZ0I7a0JBUDVCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGNBQWM7b0JBQ3hCLElBQUksRUFBRTt3QkFDSixLQUFLLEVBQUUsc0JBQXNCO3FCQUM5QjtvQkFDRCxTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsV0FBVyxrQkFBa0IsRUFBRSxDQUFDO2lCQUNsRTs4QkFNaUIsS0FBSztzQkFEcEIsS0FBSztnQkFJVSxNQUFNO3NCQURyQixLQUFLO2dCQUlVLElBQUk7c0JBRG5CLEtBQUs7Z0JBSVUsSUFBSTtzQkFEbkIsS0FBSztnQkFJVSxJQUFJO3NCQURuQixLQUFLO2dCQUlVLE1BQU07c0JBRHJCLEtBQUs7Z0JBSVUsV0FBVztzQkFEMUIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgaW5qZWN0LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZfTUFSS0VSLCBGTWFya2VyQmFzZSB9IGZyb20gJy4vZi1tYXJrZXItYmFzZSc7XG5pbXBvcnQgeyBFRk1hcmtlclR5cGUgfSBmcm9tICcuL2UtZi1tYXJrZXItdHlwZSc7XG5pbXBvcnQgeyBGTWVkaWF0b3IgfSBmcm9tICdAZm9ibGV4L21lZGlhdG9yJztcbmltcG9ydCB7XG4gIEFkZENvbm5lY3Rpb25NYXJrZXJUb1N0b3JlUmVxdWVzdCxcbiAgUmVtb3ZlQ29ubmVjdGlvbk1hcmtlckZyb21TdG9yZVJlcXVlc3QsXG59IGZyb20gJy4uLy4uL2RvbWFpbic7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ3N2Z1tmTWFya2VyXScsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ2YtY29tcG9uZW50IGYtbWFya2VyJyxcbiAgfSxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBGX01BUktFUiwgdXNlRXhpc3Rpbmc6IEZNYXJrZXJEaXJlY3RpdmUgfV0sXG59KVxuZXhwb3J0IGNsYXNzIEZNYXJrZXJEaXJlY3RpdmUgZXh0ZW5kcyBGTWFya2VyQmFzZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHVibGljIHJlYWRvbmx5IGhvc3RFbGVtZW50ID0gaW5qZWN0KEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KS5uYXRpdmVFbGVtZW50O1xuICBwcml2YXRlIHJlYWRvbmx5IF9tZWRpYXRvciA9IGluamVjdChGTWVkaWF0b3IpO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBvdmVycmlkZSB3aWR0aDogbnVtYmVyID0gMDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgb3ZlcnJpZGUgaGVpZ2h0OiBudW1iZXIgPSAwO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBvdmVycmlkZSByZWZYOiBudW1iZXIgPSAwO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBvdmVycmlkZSByZWZZOiBudW1iZXIgPSAwO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBvdmVycmlkZSB0eXBlOiBzdHJpbmcgPSBFRk1hcmtlclR5cGUuU1RBUlQ7XG5cbiAgQElucHV0KClcbiAgcHVibGljIG92ZXJyaWRlIG9yaWVudDogJ2F1dG8nIHwgJ2F1dG8tc3RhcnQtcmV2ZXJzZScgfCAnY2FsY3VsYXRlZCcgfCBzdHJpbmcgPSAnYXV0byc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIG92ZXJyaWRlIG1hcmtlclVuaXRzOiAnc3Ryb2tlV2lkdGgnIHwgJ3VzZXJTcGFjZU9uVXNlJyA9ICdzdHJva2VXaWR0aCc7XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaG9zdEVsZW1lbnQuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICB0aGlzLl9tZWRpYXRvci5leGVjdXRlKG5ldyBBZGRDb25uZWN0aW9uTWFya2VyVG9TdG9yZVJlcXVlc3QodGhpcykpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX21lZGlhdG9yLmV4ZWN1dGUobmV3IFJlbW92ZUNvbm5lY3Rpb25NYXJrZXJGcm9tU3RvcmVSZXF1ZXN0KHRoaXMpKTtcbiAgfVxufVxuIl19
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, inject, Input, numberAttribute, signal, } from
|
|
1
|
+
import { ChangeDetectionStrategy, Component, inject, Input, numberAttribute, signal, } from '@angular/core';
|
|
2
2
|
import { EFConnectionBehavior } from '../common';
|
|
3
3
|
import { EFConnectionType } from '../common';
|
|
4
4
|
import { NotifyDataChangedRequest } from '../../f-storage';
|
|
@@ -6,23 +6,22 @@ import { F_CONNECTION } from '../common/f-connection.injection-token';
|
|
|
6
6
|
import { FConnectionBase } from '../common/f-connection-base';
|
|
7
7
|
import { castToEnum } from '@foblex/utils';
|
|
8
8
|
import { FMediator } from '@foblex/mediator';
|
|
9
|
-
import { AddSnapConnectionToStoreRequest, RemoveSnapConnectionFromStoreRequest } from '../../domain';
|
|
9
|
+
import { AddSnapConnectionToStoreRequest, RemoveSnapConnectionFromStoreRequest, } from '../../domain';
|
|
10
10
|
import * as i0 from "@angular/core";
|
|
11
|
-
import * as i1 from "../f-connection-
|
|
12
|
-
import * as i2 from "../common/f-
|
|
13
|
-
import * as i3 from "../common/f-drag-handle/f-connection-drag-handle-
|
|
14
|
-
import * as i4 from "../common/f-
|
|
15
|
-
import * as i5 from "../common/f-
|
|
16
|
-
import * as i6 from "../common/f-
|
|
17
|
-
import * as i7 from "../common/f-selection/f-connection-selection.component";
|
|
11
|
+
import * as i1 from "../common/f-connection-text/f-connection-text.component";
|
|
12
|
+
import * as i2 from "../common/f-drag-handle/f-connection-drag-handle-start.component";
|
|
13
|
+
import * as i3 from "../common/f-drag-handle/f-connection-drag-handle-end.component";
|
|
14
|
+
import * as i4 from "../common/f-gradient/f-connection-gradient.component";
|
|
15
|
+
import * as i5 from "../common/f-path/f-connection-path.component";
|
|
16
|
+
import * as i6 from "../common/f-selection/f-connection-selection.component";
|
|
18
17
|
let uniqueId = 0;
|
|
19
18
|
export class FSnapConnectionComponent extends FConnectionBase {
|
|
20
19
|
fId = signal(`f-snap-connection-${uniqueId++}`);
|
|
21
20
|
fText = '';
|
|
22
21
|
fTextStartOffset = '';
|
|
23
22
|
fSnapThreshold = 20;
|
|
24
|
-
fOutputId;
|
|
25
|
-
fInputId;
|
|
23
|
+
fOutputId = signal('');
|
|
24
|
+
fInputId = signal('');
|
|
26
25
|
fRadius = 8;
|
|
27
26
|
fOffset = 12;
|
|
28
27
|
fBehavior = EFConnectionBehavior.FIXED;
|
|
@@ -31,9 +30,6 @@ export class FSnapConnectionComponent extends FConnectionBase {
|
|
|
31
30
|
return this.fPath().hostElement;
|
|
32
31
|
}
|
|
33
32
|
_mediator = inject(FMediator);
|
|
34
|
-
constructor(elementReference, fConnectionFactory) {
|
|
35
|
-
super(elementReference, fConnectionFactory);
|
|
36
|
-
}
|
|
37
33
|
ngOnInit() {
|
|
38
34
|
this._mediator.execute(new AddSnapConnectionToStoreRequest(this));
|
|
39
35
|
}
|
|
@@ -46,15 +42,15 @@ export class FSnapConnectionComponent extends FConnectionBase {
|
|
|
46
42
|
ngOnDestroy() {
|
|
47
43
|
this._mediator.execute(new RemoveSnapConnectionFromStoreRequest());
|
|
48
44
|
}
|
|
49
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FSnapConnectionComponent, deps:
|
|
50
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: FSnapConnectionComponent, selector: "f-snap-connection", inputs: { fSnapThreshold: ["fSnapThreshold", "fSnapThreshold", numberAttribute], fRadius: ["fRadius", "fRadius", numberAttribute], fOffset: ["fOffset", "fOffset", numberAttribute], fBehavior: ["fBehavior", "fBehavior", (value) => castToEnum(value, 'fBehavior', EFConnectionBehavior)], fType: "fType" }, host: { classAttribute: "f-component f-connection f-snap-connection" }, providers: [{ provide: F_CONNECTION, useExisting: FSnapConnectionComponent }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<svg xmlns=\"http://www.w3.org/2000/svg\">\n <defs #defs></defs>\n <g class=\"f-connection-group\">\n <linearGradient fConnectionGradient></linearGradient>\n <path fConnectionSelection [attr.d]=\"path\"></path>\n <g>\n <path f-connection-path
|
|
45
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FSnapConnectionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
46
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: FSnapConnectionComponent, selector: "f-snap-connection", inputs: { fSnapThreshold: ["fSnapThreshold", "fSnapThreshold", numberAttribute], fRadius: ["fRadius", "fRadius", numberAttribute], fOffset: ["fOffset", "fOffset", numberAttribute], fBehavior: ["fBehavior", "fBehavior", (value) => castToEnum(value, 'fBehavior', EFConnectionBehavior)], fType: "fType" }, host: { classAttribute: "f-component f-connection f-snap-connection" }, providers: [{ provide: F_CONNECTION, useExisting: FSnapConnectionComponent }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<svg xmlns=\"http://www.w3.org/2000/svg\">\n <defs #defs></defs>\n <g class=\"f-connection-group\">\n <linearGradient fConnectionGradient></linearGradient>\n <path fConnectionSelection [attr.d]=\"path\"></path>\n <g>\n <path f-connection-path [attr.d]=\"path\"></path>\n <circle f-connection-drag-handle-start r=\"8\"></circle>\n <circle f-connection-drag-handle-end r=\"8\"></circle>\n </g>\n <text f-connection-text></text>\n </g>\n <ng-content></ng-content>\n</svg>\n@if (fConnectionCenters().length) {\n <div #fConnectionCenter class=\"f-connection-center\">\n <ng-content select=\"[fConnectionCenter]\"></ng-content>\n </div>\n}\n\n@if (fConnectionContents().length) {\n <ng-content select=\"[fConnectionContent]\"></ng-content>\n}\n", styles: [":host{pointer-events:none;position:absolute}:host svg{overflow:visible}:host svg .f-connection-group{pointer-events:all}:host .f-connection-center,:host .f-connection-content{pointer-events:all}\n"], dependencies: [{ kind: "component", type: i1.FConnectionTextComponent, selector: "text[f-connection-text]" }, { kind: "component", type: i2.FConnectionDragHandleStartComponent, selector: "circle[f-connection-drag-handle-start]" }, { kind: "component", type: i3.FConnectionDragHandleEndComponent, selector: "circle[f-connection-drag-handle-end]" }, { kind: "component", type: i4.FConnectionGradientComponent, selector: "linearGradient[fConnectionGradient]" }, { kind: "component", type: i5.FConnectionPathComponent, selector: "path[f-connection-path]" }, { kind: "component", type: i6.FConnectionSelectionComponent, selector: "path[fConnectionSelection]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
51
47
|
}
|
|
52
48
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FSnapConnectionComponent, decorators: [{
|
|
53
49
|
type: Component,
|
|
54
|
-
args: [{ selector:
|
|
55
|
-
class:
|
|
56
|
-
}, providers: [{ provide: F_CONNECTION, useExisting: FSnapConnectionComponent }], template: "<svg xmlns=\"http://www.w3.org/2000/svg\">\n <defs #defs></defs>\n <g class=\"f-connection-group\">\n <linearGradient fConnectionGradient></linearGradient>\n <path fConnectionSelection [attr.d]=\"path\"></path>\n <g>\n <path f-connection-path
|
|
57
|
-
}],
|
|
50
|
+
args: [{ selector: 'f-snap-connection', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
51
|
+
class: 'f-component f-connection f-snap-connection',
|
|
52
|
+
}, providers: [{ provide: F_CONNECTION, useExisting: FSnapConnectionComponent }], template: "<svg xmlns=\"http://www.w3.org/2000/svg\">\n <defs #defs></defs>\n <g class=\"f-connection-group\">\n <linearGradient fConnectionGradient></linearGradient>\n <path fConnectionSelection [attr.d]=\"path\"></path>\n <g>\n <path f-connection-path [attr.d]=\"path\"></path>\n <circle f-connection-drag-handle-start r=\"8\"></circle>\n <circle f-connection-drag-handle-end r=\"8\"></circle>\n </g>\n <text f-connection-text></text>\n </g>\n <ng-content></ng-content>\n</svg>\n@if (fConnectionCenters().length) {\n <div #fConnectionCenter class=\"f-connection-center\">\n <ng-content select=\"[fConnectionCenter]\"></ng-content>\n </div>\n}\n\n@if (fConnectionContents().length) {\n <ng-content select=\"[fConnectionContent]\"></ng-content>\n}\n", styles: [":host{pointer-events:none;position:absolute}:host svg{overflow:visible}:host svg .f-connection-group{pointer-events:all}:host .f-connection-center,:host .f-connection-content{pointer-events:all}\n"] }]
|
|
53
|
+
}], propDecorators: { fSnapThreshold: [{
|
|
58
54
|
type: Input,
|
|
59
55
|
args: [{ transform: numberAttribute }]
|
|
60
56
|
}], fRadius: [{
|
|
@@ -69,4 +65,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
69
65
|
}], fType: [{
|
|
70
66
|
type: Input
|
|
71
67
|
}] } });
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1zbmFwLWNvbm5lY3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNvbm5lY3Rpb24vZi1zbmFwLWNvbm5lY3Rpb24vZi1zbmFwLWNvbm5lY3Rpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNvbm5lY3Rpb24vZi1zbmFwLWNvbm5lY3Rpb24vZi1zbmFwLWNvbm5lY3Rpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsTUFBTSxFQUNOLEtBQUssRUFDTCxlQUFlLEVBSWYsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDN0MsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM3QyxPQUFPLEVBQ0wsK0JBQStCLEVBQy9CLG9DQUFvQyxHQUNyQyxNQUFNLGNBQWMsQ0FBQzs7Ozs7Ozs7QUFFdEIsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDO0FBWWpCLE1BQU0sT0FBTyx3QkFDWCxTQUFRLGVBQWU7SUFHUCxHQUFHLEdBQUcsTUFBTSxDQUFTLHFCQUFxQixRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFeEQsS0FBSyxHQUFXLEVBQUUsQ0FBQztJQUVuQixnQkFBZ0IsR0FBVyxFQUFFLENBQUM7SUFHdkMsY0FBYyxHQUFXLEVBQUUsQ0FBQztJQUVuQixTQUFTLEdBQUcsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRXZCLFFBQVEsR0FBRyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7SUFHdEIsT0FBTyxHQUFXLENBQUMsQ0FBQztJQUdwQixPQUFPLEdBQVcsRUFBRSxDQUFDO0lBR3JCLFNBQVMsR0FBeUIsb0JBQW9CLENBQUMsS0FBSyxDQUFDO0lBRzdELEtBQUssR0FBOEIsZ0JBQWdCLENBQUMsUUFBUSxDQUFDO0lBRTdFLElBQW9CLGVBQWU7UUFDakMsT0FBTyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsV0FBVyxDQUFDO0lBQ2xDLENBQUM7SUFFZ0IsU0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUV4QyxRQUFRO1FBQ2IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSwrQkFBK0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFTSxlQUFlO1FBQ3BCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksd0JBQXdCLEVBQUUsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFTSxXQUFXO1FBQ2hCLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksb0NBQW9DLEVBQUUsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7d0dBakRVLHdCQUF3Qjs0RkFBeEIsd0JBQXdCLGdHQVVmLGVBQWUsbUNBT2YsZUFBZSxtQ0FHZixlQUFlLHlDQUdmLENBQUMsS0FBYyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLFdBQVcsRUFBRSxvQkFBb0IsQ0FBQyx3R0F6QmpGLENBQUMsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSx3QkFBd0IsRUFBRSxDQUFDLHNFQ2xDL0UsNHdCQXVCQTs7NEZEYWEsd0JBQXdCO2tCQVZwQyxTQUFTOytCQUNFLG1CQUFtQixtQkFHWix1QkFBdUIsQ0FBQyxNQUFNLFFBQ3pDO3dCQUNKLEtBQUssRUFBRSw0Q0FBNEM7cUJBQ3BELGFBQ1UsQ0FBQyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVywwQkFBMEIsRUFBRSxDQUFDOzhCQWF0RSxjQUFjO3NCQURwQixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRTtnQkFRckIsT0FBTztzQkFEdEIsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUU7Z0JBSXJCLE9BQU87c0JBRHRCLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFO2dCQUlyQixTQUFTO3NCQUR4QixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLENBQUMsS0FBYyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLFdBQVcsRUFBRSxvQkFBb0IsQ0FBQyxFQUFFO2dCQUk5RSxLQUFLO3NCQURwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgaW5qZWN0LFxuICBJbnB1dCxcbiAgbnVtYmVyQXR0cmlidXRlLFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRUZDb25uZWN0aW9uQmVoYXZpb3IgfSBmcm9tICcuLi9jb21tb24nO1xuaW1wb3J0IHsgRUZDb25uZWN0aW9uVHlwZSB9IGZyb20gJy4uL2NvbW1vbic7XG5pbXBvcnQgeyBOb3RpZnlEYXRhQ2hhbmdlZFJlcXVlc3QgfSBmcm9tICcuLi8uLi9mLXN0b3JhZ2UnO1xuaW1wb3J0IHsgRl9DT05ORUNUSU9OIH0gZnJvbSAnLi4vY29tbW9uL2YtY29ubmVjdGlvbi5pbmplY3Rpb24tdG9rZW4nO1xuaW1wb3J0IHsgRkNvbm5lY3Rpb25CYXNlIH0gZnJvbSAnLi4vY29tbW9uL2YtY29ubmVjdGlvbi1iYXNlJztcbmltcG9ydCB7IGNhc3RUb0VudW0gfSBmcm9tICdAZm9ibGV4L3V0aWxzJztcbmltcG9ydCB7IEZNZWRpYXRvciB9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuaW1wb3J0IHtcbiAgQWRkU25hcENvbm5lY3Rpb25Ub1N0b3JlUmVxdWVzdCxcbiAgUmVtb3ZlU25hcENvbm5lY3Rpb25Gcm9tU3RvcmVSZXF1ZXN0LFxufSBmcm9tICcuLi8uLi9kb21haW4nO1xuXG5sZXQgdW5pcXVlSWQgPSAwO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdmLXNuYXAtY29ubmVjdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9mLXNuYXAtY29ubmVjdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Ytc25hcC1jb25uZWN0aW9uLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdmLWNvbXBvbmVudCBmLWNvbm5lY3Rpb24gZi1zbmFwLWNvbm5lY3Rpb24nLFxuICB9LFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEZfQ09OTkVDVElPTiwgdXNlRXhpc3Rpbmc6IEZTbmFwQ29ubmVjdGlvbkNvbXBvbmVudCB9XSxcbn0pXG5leHBvcnQgY2xhc3MgRlNuYXBDb25uZWN0aW9uQ29tcG9uZW50XG4gIGV4dGVuZHMgRkNvbm5lY3Rpb25CYXNlXG4gIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveVxue1xuICBwdWJsaWMgb3ZlcnJpZGUgZklkID0gc2lnbmFsPHN0cmluZz4oYGYtc25hcC1jb25uZWN0aW9uLSR7dW5pcXVlSWQrK31gKTtcblxuICBwdWJsaWMgb3ZlcnJpZGUgZlRleHQ6IHN0cmluZyA9ICcnO1xuXG4gIHB1YmxpYyBvdmVycmlkZSBmVGV4dFN0YXJ0T2Zmc2V0OiBzdHJpbmcgPSAnJztcblxuICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KVxuICBwdWJsaWMgZlNuYXBUaHJlc2hvbGQ6IG51bWJlciA9IDIwO1xuXG4gIHB1YmxpYyBvdmVycmlkZSBmT3V0cHV0SWQgPSBzaWduYWwoJycpO1xuXG4gIHB1YmxpYyBvdmVycmlkZSBmSW5wdXRJZCA9IHNpZ25hbCgnJyk7XG5cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSlcbiAgcHVibGljIG92ZXJyaWRlIGZSYWRpdXM6IG51bWJlciA9IDg7XG5cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSlcbiAgcHVibGljIG92ZXJyaWRlIGZPZmZzZXQ6IG51bWJlciA9IDEyO1xuXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogKHZhbHVlOiB1bmtub3duKSA9PiBjYXN0VG9FbnVtKHZhbHVlLCAnZkJlaGF2aW9yJywgRUZDb25uZWN0aW9uQmVoYXZpb3IpIH0pXG4gIHB1YmxpYyBvdmVycmlkZSBmQmVoYXZpb3I6IEVGQ29ubmVjdGlvbkJlaGF2aW9yID0gRUZDb25uZWN0aW9uQmVoYXZpb3IuRklYRUQ7XG5cbiAgQElucHV0KClcbiAgcHVibGljIG92ZXJyaWRlIGZUeXBlOiBFRkNvbm5lY3Rpb25UeXBlIHwgc3RyaW5nID0gRUZDb25uZWN0aW9uVHlwZS5TVFJBSUdIVDtcblxuICBwdWJsaWMgb3ZlcnJpZGUgZ2V0IGJvdW5kaW5nRWxlbWVudCgpOiBIVE1MRWxlbWVudCB8IFNWR0VsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLmZQYXRoKCkuaG9zdEVsZW1lbnQ7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IF9tZWRpYXRvciA9IGluamVjdChGTWVkaWF0b3IpO1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9tZWRpYXRvci5leGVjdXRlKG5ldyBBZGRTbmFwQ29ubmVjdGlvblRvU3RvcmVSZXF1ZXN0KHRoaXMpKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5oaWRlKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZShuZXcgTm90aWZ5RGF0YUNoYW5nZWRSZXF1ZXN0KCkpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX21lZGlhdG9yLmV4ZWN1dGUobmV3IFJlbW92ZVNuYXBDb25uZWN0aW9uRnJvbVN0b3JlUmVxdWVzdCgpKTtcbiAgfVxufVxuIiwiPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gIDxkZWZzICNkZWZzPjwvZGVmcz5cbiAgPGcgY2xhc3M9XCJmLWNvbm5lY3Rpb24tZ3JvdXBcIj5cbiAgICA8bGluZWFyR3JhZGllbnQgZkNvbm5lY3Rpb25HcmFkaWVudD48L2xpbmVhckdyYWRpZW50PlxuICAgIDxwYXRoIGZDb25uZWN0aW9uU2VsZWN0aW9uIFthdHRyLmRdPVwicGF0aFwiPjwvcGF0aD5cbiAgICA8Zz5cbiAgICAgIDxwYXRoIGYtY29ubmVjdGlvbi1wYXRoIFthdHRyLmRdPVwicGF0aFwiPjwvcGF0aD5cbiAgICAgIDxjaXJjbGUgZi1jb25uZWN0aW9uLWRyYWctaGFuZGxlLXN0YXJ0IHI9XCI4XCI+PC9jaXJjbGU+XG4gICAgICA8Y2lyY2xlIGYtY29ubmVjdGlvbi1kcmFnLWhhbmRsZS1lbmQgcj1cIjhcIj48L2NpcmNsZT5cbiAgICA8L2c+XG4gICAgPHRleHQgZi1jb25uZWN0aW9uLXRleHQ+PC90ZXh0PlxuICA8L2c+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvc3ZnPlxuQGlmIChmQ29ubmVjdGlvbkNlbnRlcnMoKS5sZW5ndGgpIHtcbiAgPGRpdiAjZkNvbm5lY3Rpb25DZW50ZXIgY2xhc3M9XCJmLWNvbm5lY3Rpb24tY2VudGVyXCI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2ZDb25uZWN0aW9uQ2VudGVyXVwiPjwvbmctY29udGVudD5cbiAgPC9kaXY+XG59XG5cbkBpZiAoZkNvbm5lY3Rpb25Db250ZW50cygpLmxlbmd0aCkge1xuICA8bmctY29udGVudCBzZWxlY3Q9XCJbZkNvbm5lY3Rpb25Db250ZW50XVwiPjwvbmctY29udGVudD5cbn1cbiJdfQ==
|