@foblex/flow 17.8.5 → 17.8.6
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/drag-rect-cache.d.ts +8 -0
- package/domain/f-background/providers.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 +7 -7
- package/domain/f-connection/calculate-connection-line-by-behavior/calculate-connection-line-by-behavior.d.ts +37 -3
- package/domain/f-connection/calculate-connection-line-by-behavior/index.d.ts +4 -3
- package/domain/f-connection/calculate-connection-line-by-behavior/models/calculate-behavior-request.d.ts +8 -0
- package/domain/f-connection/calculate-connection-line-by-behavior/{fixed-center-behavior.d.ts → utils/fixed-center-behavior.d.ts} +2 -2
- package/domain/f-connection/calculate-connection-line-by-behavior/{fixed-outbound-behavior.d.ts → utils/fixed-outbound-behavior.d.ts} +2 -2
- package/domain/f-connection/calculate-connection-line-by-behavior/{floating-behavior.d.ts → utils/floating-behavior.d.ts} +2 -2
- package/domain/f-connection/providers.d.ts +2 -2
- package/domain/f-connection/redraw-connections/index.d.ts +1 -1
- package/domain/f-connection/redraw-connections/{redraw-connections.execution.d.ts → redraw-connections.d.ts} +3 -3
- package/domain/f-draggable/emit-selection-change-event/emit-selection-change-event.execution.d.ts +1 -1
- package/domain/f-flow/providers.d.ts +1 -1
- package/domain/f-line-alignment/add-line-alignment-to-store/add-line-alignment-to-store-request.d.ts +2 -2
- package/domain/f-line-alignment/add-line-alignment-to-store/{add-line-alignment-to-store.execution.d.ts → add-line-alignment-to-store.d.ts} +4 -4
- package/domain/f-line-alignment/add-line-alignment-to-store/index.d.ts +1 -1
- package/domain/f-line-alignment/providers.d.ts +3 -3
- package/domain/f-line-alignment/remove-line-alignment-from-store/index.d.ts +1 -1
- package/domain/f-line-alignment/remove-line-alignment-from-store/{remove-line-alignment-from-store.execution.d.ts → remove-line-alignment-from-store.d.ts} +4 -4
- package/domain/f-node/get-parent-nodes/get-parent-nodes.d.ts +1 -1
- package/domain/f-node/get-parent-nodes/get-parent-nodes.request.d.ts +2 -2
- package/domain/f-node/remove-node-from-store/remove-node-from-store-request.d.ts +2 -2
- package/domain/f-node/remove-node-from-store/remove-node-from-store.d.ts +1 -1
- package/domain/f-zoom/providers.d.ts +1 -1
- package/domain/index.d.ts +1 -0
- package/domain/providers.d.ts +4 -3
- package/domain/update-item-and-children-layers/move-front-elements-before-target-element/index.d.ts +2 -2
- package/domain/update-item-and-children-layers/move-front-elements-before-target-element/{move-front-elements-before-target-element.request.d.ts → move-front-elements-before-target-element-request.d.ts} +4 -4
- package/domain/update-item-and-children-layers/move-front-elements-before-target-element/{move-front-elements-before-target-element.execution.d.ts → move-front-elements-before-target-element.d.ts} +4 -4
- package/esm2022/domain/drag-rect-cache.mjs +19 -0
- package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/calculate-connection-line-by-behavior-request.mjs +4 -4
- package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/calculate-connection-line-by-behavior.mjs +126 -13
- package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/index.mjs +5 -4
- package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/models/calculate-behavior-request.mjs +2 -0
- package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/utils/fixed-center-behavior.mjs +12 -0
- package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/utils/fixed-outbound-behavior.mjs +31 -0
- package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/utils/floating-behavior.mjs +22 -0
- package/esm2022/domain/f-connection/providers.mjs +3 -3
- package/esm2022/domain/f-connection/redraw-connections/index.mjs +2 -2
- package/esm2022/domain/f-connection/redraw-connections/redraw-connections.mjs +75 -0
- package/esm2022/domain/f-draggable/emit-selection-change-event/emit-selection-change-event-request.mjs +1 -1
- package/esm2022/domain/f-draggable/emit-selection-change-event/emit-selection-change-event.execution.mjs +2 -2
- package/esm2022/domain/f-line-alignment/add-line-alignment-to-store/add-line-alignment-to-store-request.mjs +4 -4
- package/esm2022/domain/f-line-alignment/add-line-alignment-to-store/add-line-alignment-to-store.mjs +25 -0
- package/esm2022/domain/f-line-alignment/add-line-alignment-to-store/index.mjs +2 -2
- package/esm2022/domain/f-line-alignment/providers.mjs +4 -7
- package/esm2022/domain/f-line-alignment/remove-line-alignment-from-store/index.mjs +2 -2
- package/esm2022/domain/f-line-alignment/remove-line-alignment-from-store/remove-line-alignment-from-store.mjs +25 -0
- package/esm2022/domain/f-node/calculate-nodes-bounding-box-normalized-position/calculate-nodes-bounding-box-normalized-position.mjs +1 -1
- 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/get-parent-nodes/get-parent-nodes.mjs +8 -8
- package/esm2022/domain/f-node/get-parent-nodes/get-parent-nodes.request.mjs +4 -4
- package/esm2022/domain/f-node/remove-node-from-store/remove-node-from-store-request.mjs +4 -4
- package/esm2022/domain/f-node/remove-node-from-store/remove-node-from-store.mjs +3 -3
- package/esm2022/domain/index.mjs +2 -1
- package/esm2022/domain/providers.mjs +5 -5
- package/esm2022/domain/update-item-and-children-layers/move-front-elements-before-target-element/index.mjs +3 -3
- package/esm2022/domain/update-item-and-children-layers/move-front-elements-before-target-element/move-front-elements-before-target-element-request.mjs +15 -0
- package/esm2022/domain/update-item-and-children-layers/move-front-elements-before-target-element/move-front-elements-before-target-element.mjs +34 -0
- package/esm2022/f-connection/common/domain/adaptive-curve-builder.mjs +201 -0
- package/esm2022/f-connection/common/domain/index.mjs +2 -1
- package/esm2022/f-connection/common/e-f-connection-connectable-side.mjs +12 -0
- package/esm2022/f-connection/common/e-f-connection-type.mjs +2 -1
- package/esm2022/f-connection/common/f-connection-base.mjs +28 -5
- package/esm2022/f-connection/common/index.mjs +2 -1
- package/esm2022/f-connection/f-connection/f-connection.component.mjs +13 -3
- package/esm2022/f-connection/f-connection-builder/f-connection-factory.mjs +9 -17
- package/esm2022/f-connection/f-connection-content/f-connection-content.mjs +10 -4
- package/esm2022/f-connection/f-connection-content/polyline-content-engine/polyline-content-layout-engine.mjs +4 -5
- package/esm2022/f-connection/f-connection-content/polyline-content-engine/polyline-content-place.mjs +3 -2
- package/esm2022/f-connection/f-connection-for-create/f-connection-for-create.component.mjs +14 -4
- package/esm2022/f-connection/f-snap-connection/f-snap-connection.component.mjs +14 -4
- package/esm2022/f-draggable/f-connection/f-create-connection/f-create-connection.drag-handler.mjs +5 -5
- package/esm2022/f-draggable/f-connection/f-reassign-connection/f-reassign-source.drag-handler.mjs +5 -5
- package/esm2022/f-draggable/f-connection/f-reassign-connection/f-reassign-target.drag-handler.mjs +5 -5
- package/esm2022/f-draggable/f-draggable.directive.mjs +3 -2
- package/esm2022/f-draggable/f-node-move/connection-drag-handlers/base-connection.drag-handler.mjs +3 -3
- package/esm2022/f-draggable/f-node-move/move-preparation/f-node-move-preparation.execution.mjs +1 -1
- package/esm2022/f-flow/f-flow.component.mjs +2 -2
- package/f-backgroud/providers.d.ts +1 -1
- package/f-connection/common/domain/adaptive-curve-builder.d.ts +102 -0
- package/f-connection/common/domain/index.d.ts +1 -0
- package/f-connection/common/e-f-connection-connectable-side.d.ts +10 -0
- package/f-connection/common/e-f-connection-type.d.ts +2 -1
- package/f-connection/common/f-connection-base.d.ts +14 -2
- package/f-connection/common/index.d.ts +1 -0
- package/f-connection/f-connection/f-connection.component.d.ts +4 -2
- package/f-connection/f-connection-builder/f-connection-factory.d.ts +2 -4
- package/f-connection/f-connection-content/f-connection-content.d.ts +2 -2
- package/f-connection/f-connection-for-create/f-connection-for-create.component.d.ts +4 -2
- package/f-connection/f-snap-connection/f-snap-connection.component.d.ts +4 -2
- package/f-connection/providers.d.ts +1 -1
- package/f-connectors/providers.d.ts +1 -1
- package/f-draggable/f-connection/providers.d.ts +1 -1
- package/f-draggable/f-drop-to-group/providers.d.ts +1 -1
- package/f-draggable/providers.d.ts +1 -1
- package/f-minimap/providers.d.ts +1 -1
- package/f-node/providers.d.ts +1 -1
- package/fesm2022/foblex-flow.mjs +502 -113
- package/fesm2022/foblex-flow.mjs.map +1 -1
- package/package.json +1 -1
- package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/fixed-center-behavior.mjs +0 -12
- package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/fixed-outbound-behavior.mjs +0 -31
- package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/floating-behavior.mjs +0 -22
- package/esm2022/domain/f-connection/redraw-connections/redraw-connections.execution.mjs +0 -73
- package/esm2022/domain/f-line-alignment/add-line-alignment-to-store/add-line-alignment-to-store.execution.mjs +0 -25
- package/esm2022/domain/f-line-alignment/remove-line-alignment-from-store/remove-line-alignment-from-store.execution.mjs +0 -25
- package/esm2022/domain/update-item-and-children-layers/move-front-elements-before-target-element/move-front-elements-before-target-element.execution.mjs +0 -34
- package/esm2022/domain/update-item-and-children-layers/move-front-elements-before-target-element/move-front-elements-before-target-element.request.mjs +0 -15
|
@@ -33,4 +33,4 @@ export { CalculateNodesBoundingBoxNormalizedPosition };
|
|
|
33
33
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CalculateNodesBoundingBoxNormalizedPosition, decorators: [{
|
|
34
34
|
type: Injectable
|
|
35
35
|
}] });
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsY3VsYXRlLW5vZGVzLWJvdW5kaW5nLWJveC1ub3JtYWxpemVkLXBvc2l0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9kb21haW4vZi1ub2RlL2NhbGN1bGF0ZS1ub2Rlcy1ib3VuZGluZy1ib3gtbm9ybWFsaXplZC1wb3NpdGlvbi9jYWxjdWxhdGUtbm9kZXMtYm91bmRpbmctYm94LW5vcm1hbGl6ZWQtcG9zaXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBUyxjQUFjLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDbkQsT0FBTyxFQUFFLGtEQUFrRCxFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDaEksT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFFLGtCQUFrQixFQUFjLE1BQU0sa0JBQWtCLENBQUM7O0FBR2xFOzs7O0dBSUc7QUFHSSxJQUFNLDJDQUEyQyxHQUFqRCxNQUFNLDJDQUEyQztJQUdyQyxNQUFNLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFFNUMsTUFBTSxDQUFDLE9BQTJEO1FBQ3ZFLE9BQU8sY0FBYyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ3pGLENBQUM7SUFFTyxjQUFjLENBQUMsTUFBbUI7UUFDeEMsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDdEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsRUFBRSxjQUFjLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQzVFLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLGVBQWUsQ0FBQyxLQUFnQixFQUFFLElBQVc7UUFDbkQsT0FBTyxjQUFjLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2xHLENBQUM7d0dBakJVLDJDQUEyQzs0R0FBM0MsMkNBQTJDOztBQUEzQywyQ0FBMkM7SUFEdkQsa0JBQWtCLENBQUMsa0RBQWtELENBQUM7R0FDMUQsMkNBQTJDLENBa0J2RDs7NEZBbEJZLDJDQUEyQztrQkFGdkQsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElSZWN0LCBSZWN0RXh0ZW5zaW9ucyB9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuaW1wb3J0IHsgQ2FsY3VsYXRlTm9kZXNCb3VuZGluZ0JveE5vcm1hbGl6ZWRQb3NpdGlvblJlcXVlc3QgfSBmcm9tICcuL2NhbGN1bGF0ZS1ub2Rlcy1ib3VuZGluZy1ib3gtbm9ybWFsaXplZC1wb3NpdGlvbi5yZXF1ZXN0JztcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRkNvbXBvbmVudHNTdG9yZSB9IGZyb20gJy4uLy4uLy4uL2Ytc3RvcmFnZSc7XG5pbXBvcnQgeyBGRXhlY3V0aW9uUmVnaXN0ZXIsIElFeGVjdXRpb24gfSBmcm9tICdAZm9ibGV4L21lZGlhdG9yJztcbmltcG9ydCB7IEZOb2RlQmFzZSB9IGZyb20gJy4uLy4uLy4uL2Ytbm9kZSc7XG5cbi8qKlxuICogRXhlY3V0aW9uIHRoYXQgY2FsY3VsYXRlcyB0aGUgYm91bmRpbmcgYm94IG9mIGFsbCBub2RlcyBpbiB0aGUgRkNvbXBvbmVudHNTdG9yZVxuICogYW5kIHJldHVybnMgdGhlaXIgbm9ybWFsaXplZCBwb3NpdGlvbnMuXG4gKiBJdCByZXRyaWV2ZXMgdGhlIHJlY3RhbmdsZXMgb2YgZWFjaCBub2RlJ3MgaG9zdCBlbGVtZW50IGFuZCBjb21wdXRlcyB0aGVpciB1bmlvbi5cbiAqL1xuQEluamVjdGFibGUoKVxuQEZFeGVjdXRpb25SZWdpc3RlcihDYWxjdWxhdGVOb2Rlc0JvdW5kaW5nQm94Tm9ybWFsaXplZFBvc2l0aW9uUmVxdWVzdClcbmV4cG9ydCBjbGFzcyBDYWxjdWxhdGVOb2Rlc0JvdW5kaW5nQm94Tm9ybWFsaXplZFBvc2l0aW9uXG4gIGltcGxlbWVudHMgSUV4ZWN1dGlvbjxDYWxjdWxhdGVOb2Rlc0JvdW5kaW5nQm94Tm9ybWFsaXplZFBvc2l0aW9uUmVxdWVzdCwgSVJlY3QgfCBudWxsPlxue1xuICBwcml2YXRlIHJlYWRvbmx5IF9zdG9yZSA9IGluamVjdChGQ29tcG9uZW50c1N0b3JlKTtcblxuICBwdWJsaWMgaGFuZGxlKHJlcXVlc3Q6IENhbGN1bGF0ZU5vZGVzQm91bmRpbmdCb3hOb3JtYWxpemVkUG9zaXRpb25SZXF1ZXN0KTogSVJlY3QgfCBudWxsIHtcbiAgICByZXR1cm4gUmVjdEV4dGVuc2lvbnMudW5pb24odGhpcy5fZ2V0Tm9kZXNSZWN0cyhyZXF1ZXN0LmZOb2RlcyB8fCB0aGlzLl9zdG9yZS5mTm9kZXMpKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldE5vZGVzUmVjdHMoZk5vZGVzOiBGTm9kZUJhc2VbXSk6IElSZWN0W10ge1xuICAgIHJldHVybiBmTm9kZXMubWFwKCh4KSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5fZ2V0RWxlbWVudFJlY3QoeCwgUmVjdEV4dGVuc2lvbnMuZnJvbUVsZW1lbnQoeC5ob3N0RWxlbWVudCkpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0RWxlbWVudFJlY3QoZk5vZGU6IEZOb2RlQmFzZSwgcmVjdDogSVJlY3QpOiBJUmVjdCB7XG4gICAgcmV0dXJuIFJlY3RFeHRlbnNpb25zLmluaXRpYWxpemUoZk5vZGUuX3Bvc2l0aW9uLngsIGZOb2RlLl9wb3NpdGlvbi55LCByZWN0LndpZHRoLCByZWN0LmhlaWdodCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -5,4 +5,4 @@ export class FitToChildNodesAndGroupsRequest {
|
|
|
5
5
|
this.nodeOrGroup = nodeOrGroup;
|
|
6
6
|
}
|
|
7
7
|
}
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZml0LXRvLWNoaWxkLW5vZGVzLWFuZC1ncm91cHMtcmVxdWVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZG9tYWluL2Ytbm9kZS9maXQtdG8tY2hpbGQtbm9kZXMtYW5kLWdyb3Vwcy9maXQtdG8tY2hpbGQtbm9kZXMtYW5kLWdyb3Vwcy1yZXF1ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTywrQkFBK0I7SUFHZDtJQUY1QixNQUFNLENBQVUsTUFBTSxHQUFHLE1BQU0sQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO0lBRW5FLFlBQTRCLFdBQXNCO1FBQXRCLGdCQUFXLEdBQVgsV0FBVyxDQUFXO0lBQUcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZOb2RlQmFzZSB9IGZyb20gJy4uLy4uLy4uL2Ytbm9kZSc7XG5cbmV4cG9ydCBjbGFzcyBGaXRUb0NoaWxkTm9kZXNBbmRHcm91cHNSZXF1ZXN0IHtcbiAgc3RhdGljIHJlYWRvbmx5IGZUb2tlbiA9IFN5bWJvbCgnRml0VG9DaGlsZE5vZGVzQW5kR3JvdXBzUmVxdWVzdCcpO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBub2RlT3JHcm91cDogRk5vZGVCYXNlKSB7fVxufVxuIl19
|
|
@@ -9,15 +9,15 @@ import * as i0 from "@angular/core";
|
|
|
9
9
|
*/
|
|
10
10
|
let GetParentNodes = class GetParentNodes {
|
|
11
11
|
_store = inject(FComponentsStore);
|
|
12
|
-
handle(
|
|
13
|
-
return this._getParentNodes(
|
|
12
|
+
handle({ nodeOrGroup }) {
|
|
13
|
+
return this._getParentNodes(nodeOrGroup, new Set(), []);
|
|
14
14
|
}
|
|
15
|
-
_getParentNodes(
|
|
16
|
-
if (visited.has(
|
|
17
|
-
throw new Error('Circular reference detected in the node hierarchy. Node id: ' +
|
|
15
|
+
_getParentNodes(nodeOrGroup, visited, result) {
|
|
16
|
+
if (visited.has(nodeOrGroup.fId())) {
|
|
17
|
+
throw new Error('Circular reference detected in the node hierarchy. Node id: ' + nodeOrGroup.fId());
|
|
18
18
|
}
|
|
19
|
-
visited.add(
|
|
20
|
-
const parent = this._store.fNodes.find((x) => x.fId() ===
|
|
19
|
+
visited.add(nodeOrGroup.fId());
|
|
20
|
+
const parent = this._store.fNodes.find((x) => x.fId() === nodeOrGroup.fParentId());
|
|
21
21
|
if (!parent) {
|
|
22
22
|
return result;
|
|
23
23
|
}
|
|
@@ -34,4 +34,4 @@ export { GetParentNodes };
|
|
|
34
34
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: GetParentNodes, decorators: [{
|
|
35
35
|
type: Injectable
|
|
36
36
|
}] });
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXBhcmVudC1ub2Rlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZG9tYWluL2Ytbm9kZS9nZXQtcGFyZW50LW5vZGVzL2dldC1wYXJlbnQtbm9kZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxrQkFBa0IsRUFBYyxNQUFNLGtCQUFrQixDQUFDO0FBRWxFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQUV0RDs7R0FFRztBQUdJLElBQU0sY0FBYyxHQUFwQixNQUFNLGNBQWM7SUFDUixNQUFNLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFFNUMsTUFBTSxDQUFDLEVBQUUsV0FBVyxFQUF5QjtRQUNsRCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxFQUFFLElBQUksR0FBRyxFQUFVLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVPLGVBQWUsQ0FDckIsV0FBc0IsRUFDdEIsT0FBb0IsRUFDcEIsTUFBbUI7UUFFbkIsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDbkMsTUFBTSxJQUFJLEtBQUssQ0FDYiw4REFBOEQsR0FBRyxXQUFXLENBQUMsR0FBRyxFQUFFLENBQ25GLENBQUM7UUFDSixDQUFDO1FBQ0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztRQUUvQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxXQUFXLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUNuRixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDWixPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDO1FBRUQsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUVwQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUN2RCxDQUFDO3dHQTNCVSxjQUFjOzRHQUFkLGNBQWM7O0FBQWQsY0FBYztJQUQxQixrQkFBa0IsQ0FBQyxxQkFBcUIsQ0FBQztHQUM3QixjQUFjLENBNEIxQjs7NEZBNUJZLGNBQWM7a0JBRjFCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEdldFBhcmVudE5vZGVzUmVxdWVzdCB9IGZyb20gJy4vZ2V0LXBhcmVudC1ub2Rlcy5yZXF1ZXN0JztcbmltcG9ydCB7IEZFeGVjdXRpb25SZWdpc3RlciwgSUV4ZWN1dGlvbiB9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuaW1wb3J0IHsgRk5vZGVCYXNlIH0gZnJvbSAnLi4vLi4vLi4vZi1ub2RlJztcbmltcG9ydCB7IEZDb21wb25lbnRzU3RvcmUgfSBmcm9tICcuLi8uLi8uLi9mLXN0b3JhZ2UnO1xuXG4vKipcbiAqIEV4ZWN1dGlvbiB0aGF0IHJldHJpZXZlcyBhbGwgcGFyZW50IG5vZGVzIG9mIGEgZ2l2ZW4gbm9kZSBmcm9tIHRoZSBGQ29tcG9uZW50c1N0b3JlLlxuICovXG5ASW5qZWN0YWJsZSgpXG5ARkV4ZWN1dGlvblJlZ2lzdGVyKEdldFBhcmVudE5vZGVzUmVxdWVzdClcbmV4cG9ydCBjbGFzcyBHZXRQYXJlbnROb2RlcyBpbXBsZW1lbnRzIElFeGVjdXRpb248R2V0UGFyZW50Tm9kZXNSZXF1ZXN0LCBGTm9kZUJhc2VbXT4ge1xuICBwcml2YXRlIHJlYWRvbmx5IF9zdG9yZSA9IGluamVjdChGQ29tcG9uZW50c1N0b3JlKTtcblxuICBwdWJsaWMgaGFuZGxlKHsgbm9kZU9yR3JvdXAgfTogR2V0UGFyZW50Tm9kZXNSZXF1ZXN0KTogRk5vZGVCYXNlW10ge1xuICAgIHJldHVybiB0aGlzLl9nZXRQYXJlbnROb2Rlcyhub2RlT3JHcm91cCwgbmV3IFNldDxzdHJpbmc+KCksIFtdKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldFBhcmVudE5vZGVzKFxuICAgIG5vZGVPckdyb3VwOiBGTm9kZUJhc2UsXG4gICAgdmlzaXRlZDogU2V0PHN0cmluZz4sXG4gICAgcmVzdWx0OiBGTm9kZUJhc2VbXSxcbiAgKTogRk5vZGVCYXNlW10ge1xuICAgIGlmICh2aXNpdGVkLmhhcyhub2RlT3JHcm91cC5mSWQoKSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ0NpcmN1bGFyIHJlZmVyZW5jZSBkZXRlY3RlZCBpbiB0aGUgbm9kZSBoaWVyYXJjaHkuIE5vZGUgaWQ6ICcgKyBub2RlT3JHcm91cC5mSWQoKSxcbiAgICAgICk7XG4gICAgfVxuICAgIHZpc2l0ZWQuYWRkKG5vZGVPckdyb3VwLmZJZCgpKTtcblxuICAgIGNvbnN0IHBhcmVudCA9IHRoaXMuX3N0b3JlLmZOb2Rlcy5maW5kKCh4KSA9PiB4LmZJZCgpID09PSBub2RlT3JHcm91cC5mUGFyZW50SWQoKSk7XG4gICAgaWYgKCFwYXJlbnQpIHtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgcmVzdWx0LnB1c2gocGFyZW50KTtcblxuICAgIHJldHVybiB0aGlzLl9nZXRQYXJlbnROb2RlcyhwYXJlbnQsIHZpc2l0ZWQsIHJlc3VsdCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export class GetParentNodesRequest {
|
|
2
|
-
|
|
2
|
+
nodeOrGroup;
|
|
3
3
|
static fToken = Symbol('GetParentNodesRequest');
|
|
4
|
-
constructor(
|
|
5
|
-
this.
|
|
4
|
+
constructor(nodeOrGroup) {
|
|
5
|
+
this.nodeOrGroup = nodeOrGroup;
|
|
6
6
|
}
|
|
7
7
|
}
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXBhcmVudC1ub2Rlcy5yZXF1ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9kb21haW4vZi1ub2RlL2dldC1wYXJlbnQtbm9kZXMvZ2V0LXBhcmVudC1ub2Rlcy5yZXF1ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxxQkFBcUI7SUFFSjtJQUQ1QixNQUFNLENBQVUsTUFBTSxHQUFHLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBQ3pELFlBQTRCLFdBQXNCO1FBQXRCLGdCQUFXLEdBQVgsV0FBVyxDQUFXO0lBQUcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZOb2RlQmFzZSB9IGZyb20gJy4uLy4uLy4uL2Ytbm9kZSc7XG5cbmV4cG9ydCBjbGFzcyBHZXRQYXJlbnROb2Rlc1JlcXVlc3Qge1xuICBzdGF0aWMgcmVhZG9ubHkgZlRva2VuID0gU3ltYm9sKCdHZXRQYXJlbnROb2Rlc1JlcXVlc3QnKTtcbiAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IG5vZGVPckdyb3VwOiBGTm9kZUJhc2UpIHt9XG59XG4iXX0=
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
export class RemoveNodeFromStoreRequest {
|
|
2
|
-
|
|
2
|
+
instance;
|
|
3
3
|
static fToken = Symbol('RemoveNodeFromStoreRequest');
|
|
4
|
-
constructor(
|
|
5
|
-
this.
|
|
4
|
+
constructor(instance) {
|
|
5
|
+
this.instance = instance;
|
|
6
6
|
}
|
|
7
7
|
}
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3ZlLW5vZGUtZnJvbS1zdG9yZS1yZXF1ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9kb21haW4vZi1ub2RlL3JlbW92ZS1ub2RlLWZyb20tc3RvcmUvcmVtb3ZlLW5vZGUtZnJvbS1zdG9yZS1yZXF1ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTywwQkFBMEI7SUFFVDtJQUQ1QixNQUFNLENBQVUsTUFBTSxHQUFHLE1BQU0sQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO0lBQzlELFlBQTRCLFFBQW1CO1FBQW5CLGFBQVEsR0FBUixRQUFRLENBQVc7SUFBRyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRk5vZGVCYXNlIH0gZnJvbSAnLi4vLi4vLi4vZi1ub2RlJztcblxuZXhwb3J0IGNsYXNzIFJlbW92ZU5vZGVGcm9tU3RvcmVSZXF1ZXN0IHtcbiAgc3RhdGljIHJlYWRvbmx5IGZUb2tlbiA9IFN5bWJvbCgnUmVtb3ZlTm9kZUZyb21TdG9yZVJlcXVlc3QnKTtcbiAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IGluc3RhbmNlOiBGTm9kZUJhc2UpIHt9XG59XG4iXX0=
|
|
@@ -9,8 +9,8 @@ import * as i0 from "@angular/core";
|
|
|
9
9
|
*/
|
|
10
10
|
let RemoveNodeFromStore = class RemoveNodeFromStore {
|
|
11
11
|
_store = inject(FComponentsStore);
|
|
12
|
-
handle(
|
|
13
|
-
this._store.removeComponent(this._store.fNodes,
|
|
12
|
+
handle({ instance }) {
|
|
13
|
+
this._store.removeComponent(this._store.fNodes, instance);
|
|
14
14
|
}
|
|
15
15
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RemoveNodeFromStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
16
16
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RemoveNodeFromStore });
|
|
@@ -22,4 +22,4 @@ export { RemoveNodeFromStore };
|
|
|
22
22
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RemoveNodeFromStore, decorators: [{
|
|
23
23
|
type: Injectable
|
|
24
24
|
}] });
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3ZlLW5vZGUtZnJvbS1zdG9yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZG9tYWluL2Ytbm9kZS9yZW1vdmUtbm9kZS1mcm9tLXN0b3JlL3JlbW92ZS1ub2RlLWZyb20tc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxrQkFBa0IsRUFBYyxNQUFNLGtCQUFrQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDOztBQUV0RDs7R0FFRztBQUdJLElBQU0sbUJBQW1CLEdBQXpCLE1BQU0sbUJBQW1CO0lBQ2IsTUFBTSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBRTVDLE1BQU0sQ0FBQyxFQUFFLFFBQVEsRUFBOEI7UUFDcEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDNUQsQ0FBQzt3R0FMVSxtQkFBbUI7NEdBQW5CLG1CQUFtQjs7QUFBbkIsbUJBQW1CO0lBRC9CLGtCQUFrQixDQUFDLDBCQUEwQixDQUFDO0dBQ2xDLG1CQUFtQixDQU0vQjs7NEZBTlksbUJBQW1CO2tCQUYvQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGRXhlY3V0aW9uUmVnaXN0ZXIsIElFeGVjdXRpb24gfSBmcm9tICdAZm9ibGV4L21lZGlhdG9yJztcbmltcG9ydCB7IFJlbW92ZU5vZGVGcm9tU3RvcmVSZXF1ZXN0IH0gZnJvbSAnLi9yZW1vdmUtbm9kZS1mcm9tLXN0b3JlLXJlcXVlc3QnO1xuaW1wb3J0IHsgRkNvbXBvbmVudHNTdG9yZSB9IGZyb20gJy4uLy4uLy4uL2Ytc3RvcmFnZSc7XG5cbi8qKlxuICogRXhlY3V0aW9uIHRoYXQgcmVtb3ZlcyBhIG5vZGUgZnJvbSB0aGUgRkNvbXBvbmVudHNTdG9yZS5cbiAqL1xuQEluamVjdGFibGUoKVxuQEZFeGVjdXRpb25SZWdpc3RlcihSZW1vdmVOb2RlRnJvbVN0b3JlUmVxdWVzdClcbmV4cG9ydCBjbGFzcyBSZW1vdmVOb2RlRnJvbVN0b3JlIGltcGxlbWVudHMgSUV4ZWN1dGlvbjxSZW1vdmVOb2RlRnJvbVN0b3JlUmVxdWVzdCwgdm9pZD4ge1xuICBwcml2YXRlIHJlYWRvbmx5IF9zdG9yZSA9IGluamVjdChGQ29tcG9uZW50c1N0b3JlKTtcblxuICBwdWJsaWMgaGFuZGxlKHsgaW5zdGFuY2UgfTogUmVtb3ZlTm9kZUZyb21TdG9yZVJlcXVlc3QpOiB2b2lkIHtcbiAgICB0aGlzLl9zdG9yZS5yZW1vdmVDb21wb25lbnQodGhpcy5fc3RvcmUuZk5vZGVzLCBpbnN0YW5jZSk7XG4gIH1cbn1cbiJdfQ==
|
package/esm2022/domain/index.mjs
CHANGED
|
@@ -23,5 +23,6 @@ export * from './is-mobile';
|
|
|
23
23
|
export * from './log-deprecated';
|
|
24
24
|
export * from './log-execution-time';
|
|
25
25
|
export * from './providers';
|
|
26
|
+
export * from './drag-rect-cache';
|
|
26
27
|
export * from './transition-end';
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2RvbWFpbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDRCQUE0QixDQUFDO0FBRTNDLGNBQWMsZ0JBQWdCLENBQUM7QUFFL0IsY0FBYyxZQUFZLENBQUM7QUFFM0IsY0FBYyxnQkFBZ0IsQ0FBQztBQUUvQixjQUFjLGdCQUFnQixDQUFDO0FBRS9CLGNBQWMsZUFBZSxDQUFDO0FBRTlCLGNBQWMsVUFBVSxDQUFDO0FBRXpCLGNBQWMsb0JBQW9CLENBQUM7QUFFbkMsY0FBYyxVQUFVLENBQUM7QUFFekIsY0FBYyxlQUFlLENBQUM7QUFFOUIsY0FBYyxVQUFVLENBQUM7QUFFekIsY0FBYyxzQ0FBc0MsQ0FBQztBQUVyRCxjQUFjLGlDQUFpQyxDQUFDO0FBRWhELGNBQWMsK0JBQStCLENBQUM7QUFFOUMsY0FBYyx3QkFBd0IsQ0FBQztBQUV2QyxjQUFjLG9CQUFvQixDQUFDO0FBRW5DLGNBQWMsbUNBQW1DLENBQUM7QUFFbEQsY0FBYyxzQkFBc0IsQ0FBQztBQUVyQyxjQUFjLFdBQVcsQ0FBQztBQUUxQixjQUFjLG1CQUFtQixDQUFDO0FBRWxDLGNBQWMsU0FBUyxDQUFDO0FBRXhCLGNBQWMsYUFBYSxDQUFDO0FBRTVCLGNBQWMsa0JBQWtCLENBQUM7QUFFakMsY0FBYyxzQkFBc0IsQ0FBQztBQUVyQyxjQUFjLGFBQWEsQ0FBQztBQUU1QixjQUFjLG1CQUFtQixDQUFDO0FBRWxDLGNBQWMsa0JBQWtCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2dldC1lbGVtZW50LXJvdW5kZWQtcmVjdCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vZi1iYWNrZ3JvdW5kJztcblxuZXhwb3J0ICogZnJvbSAnLi9mLWNhbnZhcyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vZi1jb25uZWN0aW9uJztcblxuZXhwb3J0ICogZnJvbSAnLi9mLWNvbm5lY3RvcnMnO1xuXG5leHBvcnQgKiBmcm9tICcuL2YtZHJhZ2dhYmxlJztcblxuZXhwb3J0ICogZnJvbSAnLi9mLWZsb3cnO1xuXG5leHBvcnQgKiBmcm9tICcuL2YtbGluZS1hbGlnbm1lbnQnO1xuXG5leHBvcnQgKiBmcm9tICcuL2Ytbm9kZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vZi1zZWxlY3Rpb24nO1xuXG5leHBvcnQgKiBmcm9tICcuL2Ytem9vbSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vZ2V0LWRlZXAtY2hpbGRyZW4tbm9kZXMtYW5kLWdyb3Vwcyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vZ2V0LW5vcm1hbGl6ZWQtY29ubmVjdG9yLXJlY3QnO1xuXG5leHBvcnQgKiBmcm9tICcuL2dldC1ub3JtYWxpemVkLWVsZW1lbnQtcmVjdCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vZ2V0LW5vcm1hbGl6ZWQtcG9pbnQnO1xuXG5leHBvcnQgKiBmcm9tICcuL3NvcnQtaXRlbS1sYXllcnMnO1xuXG5leHBvcnQgKiBmcm9tICcuL3VwZGF0ZS1pdGVtLWFuZC1jaGlsZHJlbi1sYXllcnMnO1xuXG5leHBvcnQgKiBmcm9tICcuL2NyZWF0ZS1kb20tZWxlbWVudCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vY3NzLWNscyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vZi1ldmVudC10cmlnZ2VyJztcblxuZXhwb3J0ICogZnJvbSAnLi9pLW1hcCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vaXMtbW9iaWxlJztcblxuZXhwb3J0ICogZnJvbSAnLi9sb2ctZGVwcmVjYXRlZCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbG9nLWV4ZWN1dGlvbi10aW1lJztcblxuZXhwb3J0ICogZnJvbSAnLi9wcm92aWRlcnMnO1xuXG5leHBvcnQgKiBmcm9tICcuL2RyYWctcmVjdC1jYWNoZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vdHJhbnNpdGlvbi1lbmQnO1xuIl19
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { GetNormalizedElementRectExecution } from './get-normalized-element-rect';
|
|
2
|
-
import {
|
|
2
|
+
import { MoveFrontElementsBeforeTargetElement, UpdateItemAndChildrenLayersExecution, } from './update-item-and-children-layers';
|
|
3
3
|
import { GetNormalizedPointExecution } from './get-normalized-point';
|
|
4
|
-
import { SortItemLayersExecution, SortItemsByParentExecution, SortNodeLayersExecution } from './sort-item-layers';
|
|
4
|
+
import { SortItemLayersExecution, SortItemsByParentExecution, SortNodeLayersExecution, } from './sort-item-layers';
|
|
5
5
|
import { GetDeepChildrenNodesAndGroupsExecution } from './get-deep-children-nodes-and-groups';
|
|
6
6
|
import { GetElementRoundedRectExecution } from './get-element-rounded-rect';
|
|
7
7
|
import { F_SELECTION_FEATURES } from './f-selection';
|
|
@@ -14,7 +14,7 @@ import { F_DRAGGABLE_FEATURES } from './f-draggable';
|
|
|
14
14
|
import { F_NODE_FEATURES } from './f-node';
|
|
15
15
|
import { F_LINE_ALIGNMENT_FEATURES } from './f-line-alignment';
|
|
16
16
|
import { F_ZOOM_FEATURES } from './f-zoom';
|
|
17
|
-
import { GetNormalizedConnectorRectExecution } from
|
|
17
|
+
import { GetNormalizedConnectorRectExecution } from './get-normalized-connector-rect';
|
|
18
18
|
/**
|
|
19
19
|
* This module provides a collection of common providers for the FFlow domain.
|
|
20
20
|
* It includes features related to canvas, connections, background, connectors,
|
|
@@ -41,6 +41,6 @@ export const COMMON_PROVIDERS = [
|
|
|
41
41
|
SortItemsByParentExecution,
|
|
42
42
|
SortNodeLayersExecution,
|
|
43
43
|
UpdateItemAndChildrenLayersExecution,
|
|
44
|
-
|
|
44
|
+
MoveFrontElementsBeforeTargetElement,
|
|
45
45
|
];
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9kb21haW4vcHJvdmlkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xGLE9BQU8sRUFDTCxvQ0FBb0MsRUFDcEMsb0NBQW9DLEdBQ3JDLE1BQU0sbUNBQW1DLENBQUM7QUFDM0MsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckUsT0FBTyxFQUNMLHVCQUF1QixFQUN2QiwwQkFBMEIsRUFDMUIsdUJBQXVCLEdBQ3hCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLHNDQUFzQyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDOUYsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDNUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUMvQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQzNDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDM0MsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFdEY7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRztJQUM5QixHQUFHLGlCQUFpQjtJQUVwQixHQUFHLHFCQUFxQjtJQUV4QixHQUFHLHFCQUFxQjtJQUV4QixHQUFHLHFCQUFxQjtJQUV4QixHQUFHLG9CQUFvQjtJQUV2QixHQUFHLGVBQWU7SUFFbEIsR0FBRyx5QkFBeUI7SUFFNUIsR0FBRyxlQUFlO0lBRWxCLDhCQUE4QjtJQUU5QixHQUFHLG9CQUFvQjtJQUV2QixHQUFHLGVBQWU7SUFFbEIsc0NBQXNDO0lBRXRDLG1DQUFtQztJQUVuQyxpQ0FBaUM7SUFFakMsMkJBQTJCO0lBRTNCLHVCQUF1QjtJQUV2QiwwQkFBMEI7SUFFMUIsdUJBQXVCO0lBRXZCLG9DQUFvQztJQUVwQyxvQ0FBb0M7Q0FDckMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEdldE5vcm1hbGl6ZWRFbGVtZW50UmVjdEV4ZWN1dGlvbiB9IGZyb20gJy4vZ2V0LW5vcm1hbGl6ZWQtZWxlbWVudC1yZWN0JztcbmltcG9ydCB7XG4gIE1vdmVGcm9udEVsZW1lbnRzQmVmb3JlVGFyZ2V0RWxlbWVudCxcbiAgVXBkYXRlSXRlbUFuZENoaWxkcmVuTGF5ZXJzRXhlY3V0aW9uLFxufSBmcm9tICcuL3VwZGF0ZS1pdGVtLWFuZC1jaGlsZHJlbi1sYXllcnMnO1xuaW1wb3J0IHsgR2V0Tm9ybWFsaXplZFBvaW50RXhlY3V0aW9uIH0gZnJvbSAnLi9nZXQtbm9ybWFsaXplZC1wb2ludCc7XG5pbXBvcnQge1xuICBTb3J0SXRlbUxheWVyc0V4ZWN1dGlvbixcbiAgU29ydEl0ZW1zQnlQYXJlbnRFeGVjdXRpb24sXG4gIFNvcnROb2RlTGF5ZXJzRXhlY3V0aW9uLFxufSBmcm9tICcuL3NvcnQtaXRlbS1sYXllcnMnO1xuaW1wb3J0IHsgR2V0RGVlcENoaWxkcmVuTm9kZXNBbmRHcm91cHNFeGVjdXRpb24gfSBmcm9tICcuL2dldC1kZWVwLWNoaWxkcmVuLW5vZGVzLWFuZC1ncm91cHMnO1xuaW1wb3J0IHsgR2V0RWxlbWVudFJvdW5kZWRSZWN0RXhlY3V0aW9uIH0gZnJvbSAnLi9nZXQtZWxlbWVudC1yb3VuZGVkLXJlY3QnO1xuaW1wb3J0IHsgRl9TRUxFQ1RJT05fRkVBVFVSRVMgfSBmcm9tICcuL2Ytc2VsZWN0aW9uJztcbmltcG9ydCB7IEZfQkFDS0dST1VORF9GRUFUVVJFUyB9IGZyb20gJy4vZi1iYWNrZ3JvdW5kJztcbmltcG9ydCB7IEZfQ0FOVkFTX0ZFQVRVUkVTIH0gZnJvbSAnLi9mLWNhbnZhcyc7XG5pbXBvcnQgeyBGX0NPTk5FQ1RJT05fRkVBVFVSRVMgfSBmcm9tICcuL2YtY29ubmVjdGlvbic7XG5pbXBvcnQgeyBGX0NPTk5FQ1RPUlNfRkVBVFVSRVMgfSBmcm9tICcuL2YtY29ubmVjdG9ycyc7XG5pbXBvcnQgeyBGX0ZMT1dfRkVBVFVSRVMgfSBmcm9tICcuL2YtZmxvdyc7XG5pbXBvcnQgeyBGX0RSQUdHQUJMRV9GRUFUVVJFUyB9IGZyb20gJy4vZi1kcmFnZ2FibGUnO1xuaW1wb3J0IHsgRl9OT0RFX0ZFQVRVUkVTIH0gZnJvbSAnLi9mLW5vZGUnO1xuaW1wb3J0IHsgRl9MSU5FX0FMSUdOTUVOVF9GRUFUVVJFUyB9IGZyb20gJy4vZi1saW5lLWFsaWdubWVudCc7XG5pbXBvcnQgeyBGX1pPT01fRkVBVFVSRVMgfSBmcm9tICcuL2Ytem9vbSc7XG5pbXBvcnQgeyBHZXROb3JtYWxpemVkQ29ubmVjdG9yUmVjdEV4ZWN1dGlvbiB9IGZyb20gJy4vZ2V0LW5vcm1hbGl6ZWQtY29ubmVjdG9yLXJlY3QnO1xuXG4vKipcbiAqIFRoaXMgbW9kdWxlIHByb3ZpZGVzIGEgY29sbGVjdGlvbiBvZiBjb21tb24gcHJvdmlkZXJzIGZvciB0aGUgRkZsb3cgZG9tYWluLlxuICogSXQgaW5jbHVkZXMgZmVhdHVyZXMgcmVsYXRlZCB0byBjYW52YXMsIGNvbm5lY3Rpb25zLCBiYWNrZ3JvdW5kLCBjb25uZWN0b3JzLFxuICogZHJhZ2dhYmxlIGVsZW1lbnRzLCBmbG93LCBsaW5lIGFsaWdubWVudCwgbm9kZXMsIHNlbGVjdGlvbiwgem9vbSxcbiAqIGFuZCB2YXJpb3VzIHV0aWxpdHkgZXhlY3V0aW9ucy5cbiAqL1xuZXhwb3J0IGNvbnN0IENPTU1PTl9QUk9WSURFUlMgPSBbXG4gIC4uLkZfQ0FOVkFTX0ZFQVRVUkVTLFxuXG4gIC4uLkZfQ09OTkVDVElPTl9GRUFUVVJFUyxcblxuICAuLi5GX0JBQ0tHUk9VTkRfRkVBVFVSRVMsXG5cbiAgLi4uRl9DT05ORUNUT1JTX0ZFQVRVUkVTLFxuXG4gIC4uLkZfRFJBR0dBQkxFX0ZFQVRVUkVTLFxuXG4gIC4uLkZfRkxPV19GRUFUVVJFUyxcblxuICAuLi5GX0xJTkVfQUxJR05NRU5UX0ZFQVRVUkVTLFxuXG4gIC4uLkZfTk9ERV9GRUFUVVJFUyxcblxuICBHZXRFbGVtZW50Um91bmRlZFJlY3RFeGVjdXRpb24sXG5cbiAgLi4uRl9TRUxFQ1RJT05fRkVBVFVSRVMsXG5cbiAgLi4uRl9aT09NX0ZFQVRVUkVTLFxuXG4gIEdldERlZXBDaGlsZHJlbk5vZGVzQW5kR3JvdXBzRXhlY3V0aW9uLFxuXG4gIEdldE5vcm1hbGl6ZWRDb25uZWN0b3JSZWN0RXhlY3V0aW9uLFxuXG4gIEdldE5vcm1hbGl6ZWRFbGVtZW50UmVjdEV4ZWN1dGlvbixcblxuICBHZXROb3JtYWxpemVkUG9pbnRFeGVjdXRpb24sXG5cbiAgU29ydEl0ZW1MYXllcnNFeGVjdXRpb24sXG5cbiAgU29ydEl0ZW1zQnlQYXJlbnRFeGVjdXRpb24sXG5cbiAgU29ydE5vZGVMYXllcnNFeGVjdXRpb24sXG5cbiAgVXBkYXRlSXRlbUFuZENoaWxkcmVuTGF5ZXJzRXhlY3V0aW9uLFxuXG4gIE1vdmVGcm9udEVsZW1lbnRzQmVmb3JlVGFyZ2V0RWxlbWVudCxcbl07XG4iXX0=
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export * from './move-front-elements-before-target-element
|
|
2
|
-
export * from './move-front-elements-before-target-element
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
export * from './move-front-elements-before-target-element';
|
|
2
|
+
export * from './move-front-elements-before-target-element-request';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2RvbWFpbi91cGRhdGUtaXRlbS1hbmQtY2hpbGRyZW4tbGF5ZXJzL21vdmUtZnJvbnQtZWxlbWVudHMtYmVmb3JlLXRhcmdldC1lbGVtZW50L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsNkNBQTZDLENBQUM7QUFFNUQsY0FBYyxxREFBcUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbW92ZS1mcm9udC1lbGVtZW50cy1iZWZvcmUtdGFyZ2V0LWVsZW1lbnQnO1xuXG5leHBvcnQgKiBmcm9tICcuL21vdmUtZnJvbnQtZWxlbWVudHMtYmVmb3JlLXRhcmdldC1lbGVtZW50LXJlcXVlc3QnO1xuIl19
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export class MoveFrontElementsBeforeTargetElementRequest {
|
|
2
|
+
fItemsContainer;
|
|
3
|
+
allElements;
|
|
4
|
+
elementsThatShouldBeInFront;
|
|
5
|
+
targetIndex;
|
|
6
|
+
static fToken = Symbol('MoveFrontElementsBeforeTargetElementRequest');
|
|
7
|
+
constructor(fItemsContainer, // fGroupsContainer || fNodesContainer || fConnectionsContainer
|
|
8
|
+
allElements, elementsThatShouldBeInFront, targetIndex) {
|
|
9
|
+
this.fItemsContainer = fItemsContainer;
|
|
10
|
+
this.allElements = allElements;
|
|
11
|
+
this.elementsThatShouldBeInFront = elementsThatShouldBeInFront;
|
|
12
|
+
this.targetIndex = targetIndex;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW92ZS1mcm9udC1lbGVtZW50cy1iZWZvcmUtdGFyZ2V0LWVsZW1lbnQtcmVxdWVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZG9tYWluL3VwZGF0ZS1pdGVtLWFuZC1jaGlsZHJlbi1sYXllcnMvbW92ZS1mcm9udC1lbGVtZW50cy1iZWZvcmUtdGFyZ2V0LWVsZW1lbnQvbW92ZS1mcm9udC1lbGVtZW50cy1iZWZvcmUtdGFyZ2V0LWVsZW1lbnQtcmVxdWVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sMkNBQTJDO0lBR3BDO0lBQ0E7SUFDQTtJQUNBO0lBTGxCLE1BQU0sQ0FBVSxNQUFNLEdBQUcsTUFBTSxDQUFDLDZDQUE2QyxDQUFDLENBQUM7SUFDL0UsWUFDa0IsZUFBNEIsRUFBRSwrREFBK0Q7SUFDN0YsV0FBc0IsRUFDdEIsMkJBQXNDLEVBQ3RDLFdBQW1CO1FBSG5CLG9CQUFlLEdBQWYsZUFBZSxDQUFhO1FBQzVCLGdCQUFXLEdBQVgsV0FBVyxDQUFXO1FBQ3RCLGdDQUEyQixHQUEzQiwyQkFBMkIsQ0FBVztRQUN0QyxnQkFBVyxHQUFYLFdBQVcsQ0FBUTtJQUNsQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIE1vdmVGcm9udEVsZW1lbnRzQmVmb3JlVGFyZ2V0RWxlbWVudFJlcXVlc3Qge1xuICBzdGF0aWMgcmVhZG9ubHkgZlRva2VuID0gU3ltYm9sKCdNb3ZlRnJvbnRFbGVtZW50c0JlZm9yZVRhcmdldEVsZW1lbnRSZXF1ZXN0Jyk7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSBmSXRlbXNDb250YWluZXI6IEhUTUxFbGVtZW50LCAvLyBmR3JvdXBzQ29udGFpbmVyIHx8IGZOb2Rlc0NvbnRhaW5lciB8fCBmQ29ubmVjdGlvbnNDb250YWluZXJcbiAgICBwdWJsaWMgcmVhZG9ubHkgYWxsRWxlbWVudHM6IEVsZW1lbnRbXSxcbiAgICBwdWJsaWMgcmVhZG9ubHkgZWxlbWVudHNUaGF0U2hvdWxkQmVJbkZyb250OiBFbGVtZW50W10sXG4gICAgcHVibGljIHJlYWRvbmx5IHRhcmdldEluZGV4OiBudW1iZXIsXG4gICkge31cbn1cbiJdfQ==
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { MoveFrontElementsBeforeTargetElementRequest } from './move-front-elements-before-target-element-request';
|
|
3
|
+
import { Injectable } from '@angular/core';
|
|
4
|
+
import { FExecutionRegister } from '@foblex/mediator';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
/**
|
|
7
|
+
* Execution that moves elements in the FItemsContainer before a target element.
|
|
8
|
+
* It removes elements that should not be in front and inserts them before the target element.
|
|
9
|
+
*/
|
|
10
|
+
let MoveFrontElementsBeforeTargetElement = class MoveFrontElementsBeforeTargetElement {
|
|
11
|
+
handle(request) {
|
|
12
|
+
const elementsToMove = [];
|
|
13
|
+
for (let i = request.targetIndex + 1; i < request.allElements.length; i++) {
|
|
14
|
+
const element = request.allElements[i];
|
|
15
|
+
if (!request.elementsThatShouldBeInFront.includes(element)) {
|
|
16
|
+
elementsToMove.push(element);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
elementsToMove.forEach((x) => {
|
|
20
|
+
request.fItemsContainer.removeChild(x);
|
|
21
|
+
request.fItemsContainer.insertBefore(x, request.allElements[request.targetIndex]);
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MoveFrontElementsBeforeTargetElement, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
25
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MoveFrontElementsBeforeTargetElement });
|
|
26
|
+
};
|
|
27
|
+
MoveFrontElementsBeforeTargetElement = __decorate([
|
|
28
|
+
FExecutionRegister(MoveFrontElementsBeforeTargetElementRequest)
|
|
29
|
+
], MoveFrontElementsBeforeTargetElement);
|
|
30
|
+
export { MoveFrontElementsBeforeTargetElement };
|
|
31
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MoveFrontElementsBeforeTargetElement, decorators: [{
|
|
32
|
+
type: Injectable
|
|
33
|
+
}] });
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW92ZS1mcm9udC1lbGVtZW50cy1iZWZvcmUtdGFyZ2V0LWVsZW1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2RvbWFpbi91cGRhdGUtaXRlbS1hbmQtY2hpbGRyZW4tbGF5ZXJzL21vdmUtZnJvbnQtZWxlbWVudHMtYmVmb3JlLXRhcmdldC1lbGVtZW50L21vdmUtZnJvbnQtZWxlbWVudHMtYmVmb3JlLXRhcmdldC1lbGVtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsMkNBQTJDLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUNsSCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxrQkFBa0IsRUFBYyxNQUFNLGtCQUFrQixDQUFDOztBQUVsRTs7O0dBR0c7QUFHSSxJQUFNLG9DQUFvQyxHQUExQyxNQUFNLG9DQUFvQztJQUd4QyxNQUFNLENBQUMsT0FBb0Q7UUFDaEUsTUFBTSxjQUFjLEdBQWMsRUFBRSxDQUFDO1FBQ3JDLEtBQUssSUFBSSxDQUFDLEdBQUcsT0FBTyxDQUFDLFdBQVcsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDMUUsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN2QyxJQUFJLENBQUMsT0FBTyxDQUFDLDJCQUEyQixDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO2dCQUMzRCxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQy9CLENBQUM7UUFDSCxDQUFDO1FBQ0QsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQzNCLE9BQU8sQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3ZDLE9BQU8sQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQ3BGLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzt3R0FmVSxvQ0FBb0M7NEdBQXBDLG9DQUFvQzs7QUFBcEMsb0NBQW9DO0lBRGhELGtCQUFrQixDQUFDLDJDQUEyQyxDQUFDO0dBQ25ELG9DQUFvQyxDQWdCaEQ7OzRGQWhCWSxvQ0FBb0M7a0JBRmhELFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb3ZlRnJvbnRFbGVtZW50c0JlZm9yZVRhcmdldEVsZW1lbnRSZXF1ZXN0IH0gZnJvbSAnLi9tb3ZlLWZyb250LWVsZW1lbnRzLWJlZm9yZS10YXJnZXQtZWxlbWVudC1yZXF1ZXN0JztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZFeGVjdXRpb25SZWdpc3RlciwgSUV4ZWN1dGlvbiB9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuXG4vKipcbiAqIEV4ZWN1dGlvbiB0aGF0IG1vdmVzIGVsZW1lbnRzIGluIHRoZSBGSXRlbXNDb250YWluZXIgYmVmb3JlIGEgdGFyZ2V0IGVsZW1lbnQuXG4gKiBJdCByZW1vdmVzIGVsZW1lbnRzIHRoYXQgc2hvdWxkIG5vdCBiZSBpbiBmcm9udCBhbmQgaW5zZXJ0cyB0aGVtIGJlZm9yZSB0aGUgdGFyZ2V0IGVsZW1lbnQuXG4gKi9cbkBJbmplY3RhYmxlKClcbkBGRXhlY3V0aW9uUmVnaXN0ZXIoTW92ZUZyb250RWxlbWVudHNCZWZvcmVUYXJnZXRFbGVtZW50UmVxdWVzdClcbmV4cG9ydCBjbGFzcyBNb3ZlRnJvbnRFbGVtZW50c0JlZm9yZVRhcmdldEVsZW1lbnRcbiAgaW1wbGVtZW50cyBJRXhlY3V0aW9uPE1vdmVGcm9udEVsZW1lbnRzQmVmb3JlVGFyZ2V0RWxlbWVudFJlcXVlc3QsIHZvaWQ+XG57XG4gIHB1YmxpYyBoYW5kbGUocmVxdWVzdDogTW92ZUZyb250RWxlbWVudHNCZWZvcmVUYXJnZXRFbGVtZW50UmVxdWVzdCk6IHZvaWQge1xuICAgIGNvbnN0IGVsZW1lbnRzVG9Nb3ZlOiBFbGVtZW50W10gPSBbXTtcbiAgICBmb3IgKGxldCBpID0gcmVxdWVzdC50YXJnZXRJbmRleCArIDE7IGkgPCByZXF1ZXN0LmFsbEVsZW1lbnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBlbGVtZW50ID0gcmVxdWVzdC5hbGxFbGVtZW50c1tpXTtcbiAgICAgIGlmICghcmVxdWVzdC5lbGVtZW50c1RoYXRTaG91bGRCZUluRnJvbnQuaW5jbHVkZXMoZWxlbWVudCkpIHtcbiAgICAgICAgZWxlbWVudHNUb01vdmUucHVzaChlbGVtZW50KTtcbiAgICAgIH1cbiAgICB9XG4gICAgZWxlbWVudHNUb01vdmUuZm9yRWFjaCgoeCkgPT4ge1xuICAgICAgcmVxdWVzdC5mSXRlbXNDb250YWluZXIucmVtb3ZlQ2hpbGQoeCk7XG4gICAgICByZXF1ZXN0LmZJdGVtc0NvbnRhaW5lci5pbnNlcnRCZWZvcmUoeCwgcmVxdWVzdC5hbGxFbGVtZW50c1tyZXF1ZXN0LnRhcmdldEluZGV4XSk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
import { EFConnectableSide } from '../../../f-connectors';
|
|
2
|
+
import { CalculateConnectionCenterHandler, CalculateConnectionCenterRequest, } from './calculate-connection-center';
|
|
3
|
+
/**
|
|
4
|
+
* AdaptiveCurveBuilder
|
|
5
|
+
*
|
|
6
|
+
* Builds a smooth **adaptive connector curve** between two points using a cubic Bézier path,
|
|
7
|
+
* but with control points computed differently from a classic “Bezier” connector.
|
|
8
|
+
*
|
|
9
|
+
* Key differences from a classic Bézier builder:
|
|
10
|
+
* - Control handles are **aligned with the port side** (LEFT/RIGHT/TOP/BOTTOM),
|
|
11
|
+
* yet are **slightly blended toward the target direction** to reduce harsh S-shapes.
|
|
12
|
+
* - Handle lengths are **adaptive**: based on the `offset` (your “padding” from ports)
|
|
13
|
+
* and the projected distance along the side’s axis. This produces a subtler curvature
|
|
14
|
+
* and a distinct look & feel compared to a standard Bézier connector.
|
|
15
|
+
*
|
|
16
|
+
* Compatibility:
|
|
17
|
+
* - Implements {@link IFConnectionBuilder}; output shape is the same:
|
|
18
|
+
* SVG path, sampled points for hit-testing, and connection center.
|
|
19
|
+
* - Only the four base sides are expected to be passed here:
|
|
20
|
+
* {@link EFConnectableSide.LEFT}, {@link EFConnectableSide.RIGHT},
|
|
21
|
+
* {@link EFConnectableSide.TOP}, {@link EFConnectableSide.BOTTOM}.
|
|
22
|
+
*
|
|
23
|
+
* Usage example:
|
|
24
|
+
* ```ts
|
|
25
|
+
* const builder = new AdaptiveCurveBuilder();
|
|
26
|
+
* const res = builder.handle({
|
|
27
|
+
* source: { x: 100, y: 120 },
|
|
28
|
+
* sourceSide: EFConnectableSide.RIGHT,
|
|
29
|
+
* target: { x: 340, y: 220 },
|
|
30
|
+
* targetSide: EFConnectableSide.LEFT,
|
|
31
|
+
* offset: 16, // acts as padding + minimal handle baseline
|
|
32
|
+
* });
|
|
33
|
+
* // res.path -> SVG "M … C …" string
|
|
34
|
+
* // res.points -> sampled points along the curve
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
export class AdaptiveCurveBuilder {
|
|
38
|
+
/**
|
|
39
|
+
* Returns a unit direction vector for a given side.
|
|
40
|
+
*
|
|
41
|
+
* @param side - One of LEFT/RIGHT/TOP/BOTTOM.
|
|
42
|
+
* @returns Unit vector pointing outwards from the side.
|
|
43
|
+
* @remarks
|
|
44
|
+
* Only base sides should reach this builder. A fallback `{0,0}` is returned
|
|
45
|
+
* defensively, but should not occur in normal usage.
|
|
46
|
+
*/
|
|
47
|
+
static _dir(side) {
|
|
48
|
+
switch (side) {
|
|
49
|
+
case EFConnectableSide.LEFT:
|
|
50
|
+
return { x: -1, y: 0 };
|
|
51
|
+
case EFConnectableSide.RIGHT:
|
|
52
|
+
return { x: 1, y: 0 };
|
|
53
|
+
case EFConnectableSide.TOP:
|
|
54
|
+
return { x: 0, y: -1 };
|
|
55
|
+
case EFConnectableSide.BOTTOM:
|
|
56
|
+
return { x: 0, y: 1 };
|
|
57
|
+
}
|
|
58
|
+
return { x: 0, y: 0 };
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Checks whether a side is horizontal (LEFT/RIGHT).
|
|
62
|
+
*
|
|
63
|
+
* @param side - Side to check.
|
|
64
|
+
* @returns `true` for LEFT/RIGHT, otherwise `false`.
|
|
65
|
+
*/
|
|
66
|
+
static _isH(side) {
|
|
67
|
+
return side === EFConnectableSide.LEFT || side === EFConnectableSide.RIGHT;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Computes a **soft** handle length for a control point.
|
|
71
|
+
*
|
|
72
|
+
* The handle length is derived from:
|
|
73
|
+
* - `offset` (acts as padding & the baseline handle),
|
|
74
|
+
* - distance projected along the side’s axis (dx for horizontal, dy for vertical),
|
|
75
|
+
* - a conservative upper bound to avoid bloated curves.
|
|
76
|
+
*
|
|
77
|
+
* @param p0 - Start (or end) point of the segment.
|
|
78
|
+
* @param p3 - Opposite end (or start) point.
|
|
79
|
+
* @param side - Side at which the handle originates.
|
|
80
|
+
* @param offset - Visual padding/minimal handle baseline (must be ≥ 0).
|
|
81
|
+
* @returns A bounded positive handle length.
|
|
82
|
+
*/
|
|
83
|
+
static _handleLen(p0, p3, side, offset) {
|
|
84
|
+
const dx = Math.abs(p3.x - p0.x);
|
|
85
|
+
const dy = Math.abs(p3.y - p0.y);
|
|
86
|
+
const d = Math.hypot(dx, dy);
|
|
87
|
+
const along = this._isH(side) ? dx : dy;
|
|
88
|
+
const MIN = Math.max(8, offset);
|
|
89
|
+
const MAX = offset + 0.5 * d; // upper cap to keep the shape compact
|
|
90
|
+
const len = offset * 1.05 + along * 0.3; // moderate growth along the axis
|
|
91
|
+
return Math.min(MAX, Math.max(MIN, len));
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Computes a control point by taking the side direction and **lightly blending**
|
|
95
|
+
* it toward the target direction. This reduces harsh inflections while keeping
|
|
96
|
+
* the perceptual attachment to the port side.
|
|
97
|
+
*
|
|
98
|
+
* @param side - Base side defining the primary direction (LEFT/RIGHT/TOP/BOTTOM).
|
|
99
|
+
* @param source - Anchor point where the control handle is attached.
|
|
100
|
+
* @param target - Opposite end; used to orient the handle slightly toward the goal.
|
|
101
|
+
* @param handle - Handle length (see {@link _handleLen}).
|
|
102
|
+
* @returns Control point coordinates for the cubic Bézier segment.
|
|
103
|
+
*/
|
|
104
|
+
static _softControl(side, source, target, handle) {
|
|
105
|
+
const v = this._dir(side);
|
|
106
|
+
const dx = target.x - source.x;
|
|
107
|
+
const dy = target.y - source.y;
|
|
108
|
+
const dist = Math.hypot(dx, dy) || 1;
|
|
109
|
+
const tx = dx / dist;
|
|
110
|
+
const ty = dy / dist;
|
|
111
|
+
// Orientation of side vs. target direction (in [-1, 1])
|
|
112
|
+
const dot = v.x * tx + v.y * ty;
|
|
113
|
+
// Small base blend toward the target; slightly increase if the side points away.
|
|
114
|
+
const baseBlend = 0.12;
|
|
115
|
+
const extra = Math.max(0, -dot) * 0.08; // add a bit when pointing “backwards”
|
|
116
|
+
const blend = Math.min(0.2, baseBlend + extra);
|
|
117
|
+
const dirX = v.x * (1 - blend) + tx * blend;
|
|
118
|
+
const dirY = v.y * (1 - blend) + ty * blend;
|
|
119
|
+
const len = Math.hypot(dirX, dirY) || 1;
|
|
120
|
+
return { x: source.x + (dirX / len) * handle, y: source.y + (dirY / len) * handle };
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Builds an adaptive connector between `source` and `target`.
|
|
124
|
+
*
|
|
125
|
+
* @param request - Connection build request.
|
|
126
|
+
* @param request.source - Start point of the connector.
|
|
127
|
+
* @param request.sourceSide - Side at the source port (LEFT/RIGHT/TOP/BOTTOM).
|
|
128
|
+
* @param request.target - End point of the connector.
|
|
129
|
+
* @param request.targetSide - Side at the target port (LEFT/RIGHT/TOP/BOTTOM).
|
|
130
|
+
* @param request.offset - Visual padding & minimal handle baseline (≥ 0).
|
|
131
|
+
*
|
|
132
|
+
* @returns Standard {@link IFConnectionBuilderResponse}:
|
|
133
|
+
* - `path`: SVG cubic path (“M … C …”),
|
|
134
|
+
* - `points`: discretized samples along the curve,
|
|
135
|
+
* - `connectionCenter`: approximate visual center for labeling/interaction,
|
|
136
|
+
* - `secondPoint`/`penultimatePoint`: first/second control points (for tooling).
|
|
137
|
+
*
|
|
138
|
+
* @remarks
|
|
139
|
+
* The returned path slightly offsets the end point by +0.0002 on both axes
|
|
140
|
+
* to avoid edge cases in some renderers and hit-testing implementations.
|
|
141
|
+
*/
|
|
142
|
+
handle(request) {
|
|
143
|
+
const { source, sourceSide, target, targetSide } = request;
|
|
144
|
+
const offset = Math.max(0, request.offset ?? 0);
|
|
145
|
+
const p0 = { x: source.x, y: source.y };
|
|
146
|
+
const p3 = { x: target.x, y: target.y };
|
|
147
|
+
const h0 = AdaptiveCurveBuilder._handleLen(p0, p3, sourceSide, offset);
|
|
148
|
+
const h3 = AdaptiveCurveBuilder._handleLen(p3, p0, targetSide, offset);
|
|
149
|
+
const c1 = AdaptiveCurveBuilder._softControl(sourceSide, p0, p3, h0);
|
|
150
|
+
const c2 = AdaptiveCurveBuilder._softControl(targetSide, p3, p0, h3);
|
|
151
|
+
const path = `M ${p0.x} ${p0.y} C ${c1.x} ${c1.y}, ${c2.x} ${c2.y}, ${p3.x + 0.0002} ${p3.y + 0.0002}`;
|
|
152
|
+
const connectionCenter = new CalculateConnectionCenterHandler().handle(new CalculateConnectionCenterRequest([p0, c1, c2, p3]));
|
|
153
|
+
return {
|
|
154
|
+
path,
|
|
155
|
+
connectionCenter,
|
|
156
|
+
secondPoint: c1,
|
|
157
|
+
penultimatePoint: c2,
|
|
158
|
+
points: _sampleCubic(p0, c1, c2, p3, 32),
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Evaluates a cubic Bézier at parameter `t` in [0, 1].
|
|
164
|
+
*
|
|
165
|
+
* @param p0 - Start point.
|
|
166
|
+
* @param p1 - First control point.
|
|
167
|
+
* @param p2 - Second control point.
|
|
168
|
+
* @param p3 - End point.
|
|
169
|
+
* @param t - Parameter in [0, 1].
|
|
170
|
+
* @returns Point on the curve at `t`.
|
|
171
|
+
*/
|
|
172
|
+
function bez3(p0, p1, p2, p3, t) {
|
|
173
|
+
const u = 1 - t, tt = t * t, uu = u * u, uuu = uu * u, ttt = tt * t;
|
|
174
|
+
return {
|
|
175
|
+
x: uuu * p0.x + 3 * uu * t * p1.x + 3 * u * tt * p2.x + ttt * p3.x,
|
|
176
|
+
y: uuu * p0.y + 3 * uu * t * p1.y + 3 * u * tt * p2.y + ttt * p3.y,
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Uniformly samples a cubic Bézier segment.
|
|
181
|
+
*
|
|
182
|
+
* @param p0 - Start point.
|
|
183
|
+
* @param p1 - First control point.
|
|
184
|
+
* @param p2 - Second control point.
|
|
185
|
+
* @param p3 - End point.
|
|
186
|
+
* @param samples - Number of sub-segments (default: 32). The function returns `samples + 1` points.
|
|
187
|
+
* @returns Array of sampled points including both endpoints.
|
|
188
|
+
* @remarks
|
|
189
|
+
* Sampling is uniform in parameter `t`, not in arc length. This is typically
|
|
190
|
+
* sufficient for hit-testing and bounding boxes; if you need error-bounded
|
|
191
|
+
* flattening, consider an adaptive subdivision strategy instead.
|
|
192
|
+
*/
|
|
193
|
+
function _sampleCubic(p0, p1, p2, p3, samples = 32) {
|
|
194
|
+
const out = new Array(samples + 1);
|
|
195
|
+
out[0] = { ...p0 };
|
|
196
|
+
for (let i = 1; i <= samples; i++) {
|
|
197
|
+
out[i] = bez3(p0, p1, p2, p3, i / samples);
|
|
198
|
+
}
|
|
199
|
+
return out;
|
|
200
|
+
}
|
|
201
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRhcHRpdmUtY3VydmUtYnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1jb25uZWN0aW9uL2NvbW1vbi9kb21haW4vYWRhcHRpdmUtY3VydmUtYnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQ0wsZ0NBQWdDLEVBQ2hDLGdDQUFnQyxHQUNqQyxNQUFNLCtCQUErQixDQUFDO0FBT3ZDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQ0c7QUFDSCxNQUFNLE9BQU8sb0JBQW9CO0lBQy9COzs7Ozs7OztPQVFHO0lBQ0ssTUFBTSxDQUFDLElBQUksQ0FBQyxJQUF1QjtRQUN6QyxRQUFRLElBQUksRUFBRSxDQUFDO1lBQ2IsS0FBSyxpQkFBaUIsQ0FBQyxJQUFJO2dCQUN6QixPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUN6QixLQUFLLGlCQUFpQixDQUFDLEtBQUs7Z0JBQzFCLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUN4QixLQUFLLGlCQUFpQixDQUFDLEdBQUc7Z0JBQ3hCLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3pCLEtBQUssaUJBQWlCLENBQUMsTUFBTTtnQkFDM0IsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO1FBQzFCLENBQUM7UUFFRCxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVEOzs7OztPQUtH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LEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDbEUsQ0FBQyxFQUFFLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsR0FBRyxHQUFHLEdBQUcsRUFBRSxDQUFDLENBQUM7S0FDbkUsQ0FBQztBQUNKLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7OztHQWFHO0FBQ0gsU0FBUyxZQUFZLENBQUMsRUFBVSxFQUFFLEVBQVUsRUFBRSxFQUFVLEVBQUUsRUFBVSxFQUFFLE9BQU8sR0FBRyxFQUFFO0lBQ2hGLE1BQU0sR0FBRyxHQUFhLElBQUksS0FBSyxDQUFDLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQztJQUM3QyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDO0lBQ25CLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxPQUFPLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUNsQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElQb2ludCB9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuaW1wb3J0IHsgRUZDb25uZWN0YWJsZVNpZGUgfSBmcm9tICcuLi8uLi8uLi9mLWNvbm5lY3RvcnMnO1xuaW1wb3J0IHtcbiAgQ2FsY3VsYXRlQ29ubmVjdGlvbkNlbnRlckhhbmRsZXIsXG4gIENhbGN1bGF0ZUNvbm5lY3Rpb25DZW50ZXJSZXF1ZXN0LFxufSBmcm9tICcuL2NhbGN1bGF0ZS1jb25uZWN0aW9uLWNlbnRlcic7XG5pbXBvcnQge1xuICBJRkNvbm5lY3Rpb25CdWlsZGVyLFxuICBJRkNvbm5lY3Rpb25CdWlsZGVyUmVxdWVzdCxcbiAgSUZDb25uZWN0aW9uQnVpbGRlclJlc3BvbnNlLFxufSBmcm9tICcuLi8uLi9mLWNvbm5lY3Rpb24tYnVpbGRlcic7XG5cbi8qKlxuICogQWRhcHRpdmVDdXJ2ZUJ1aWxkZXJcbiAqXG4gKiBCdWlsZHMgYSBzbW9vdGggKiphZGFwdGl2ZSBjb25uZWN0b3IgY3VydmUqKiBiZXR3ZWVuIHR3byBwb2ludHMgdXNpbmcgYSBjdWJpYyBCw6l6aWVyIHBhdGgsXG4gKiBidXQgd2l0aCBjb250cm9sIHBvaW50cyBjb21wdXRlZCBkaWZmZXJlbnRseSBmcm9tIGEgY2xhc3NpYyDigJxCZXppZXLigJ0gY29ubmVjdG9yLlxuICpcbiAqIEtleSBkaWZmZXJlbmNlcyBmcm9tIGEgY2xhc3NpYyBCw6l6aWVyIGJ1aWxkZXI6XG4gKiAtIENvbnRyb2wgaGFuZGxlcyBhcmUgKiphbGlnbmVkIHdpdGggdGhlIHBvcnQgc2lkZSoqIChMRUZUL1JJR0hUL1RPUC9CT1RUT00pLFxuICogICB5ZXQgYXJlICoqc2xpZ2h0bHkgYmxlbmRlZCB0b3dhcmQgdGhlIHRhcmdldCBkaXJlY3Rpb24qKiB0byByZWR1Y2UgaGFyc2ggUy1zaGFwZXMuXG4gKiAtIEhhbmRsZSBsZW5ndGhzIGFyZSAqKmFkYXB0aXZlKio6IGJhc2VkIG9uIHRoZSBgb2Zmc2V0YCAoeW91ciDigJxwYWRkaW5n4oCdIGZyb20gcG9ydHMpXG4gKiAgIGFuZCB0aGUgcHJvamVjdGVkIGRpc3RhbmNlIGFsb25nIHRoZSBzaWRl4oCZcyBheGlzLiBUaGlzIHByb2R1Y2VzIGEgc3VidGxlciBjdXJ2YXR1cmVcbiAqICAgYW5kIGEgZGlzdGluY3QgbG9vayAmIGZlZWwgY29tcGFyZWQgdG8gYSBzdGFuZGFyZCBCw6l6aWVyIGNvbm5lY3Rvci5cbiAqXG4gKiBDb21wYXRpYmlsaXR5OlxuICogLSBJbXBsZW1lbnRzIHtAbGluayBJRkNvbm5lY3Rpb25CdWlsZGVyfTsgb3V0cHV0IHNoYXBlIGlzIHRoZSBzYW1lOlxuICogICBTVkcgcGF0aCwgc2FtcGxlZCBwb2ludHMgZm9yIGhpdC10ZXN0aW5nLCBhbmQgY29ubmVjdGlvbiBjZW50ZXIuXG4gKiAtIE9ubHkgdGhlIGZvdXIgYmFzZSBzaWRlcyBhcmUgZXhwZWN0ZWQgdG8gYmUgcGFzc2VkIGhlcmU6XG4gKiAgIHtAbGluayBFRkNvbm5lY3RhYmxlU2lkZS5MRUZUfSwge0BsaW5rIEVGQ29ubmVjdGFibGVTaWRlLlJJR0hUfSxcbiAqICAge0BsaW5rIEVGQ29ubmVjdGFibGVTaWRlLlRPUH0sIHtAbGluayBFRkNvbm5lY3RhYmxlU2lkZS5CT1RUT019LlxuICpcbiAqIFVzYWdlIGV4YW1wbGU6XG4gKiBgYGB0c1xuICogY29uc3QgYnVpbGRlciA9IG5ldyBBZGFwdGl2ZUN1cnZlQnVpbGRlcigpO1xuICogY29uc3QgcmVzID0gYnVpbGRlci5oYW5kbGUoe1xuICogICBzb3VyY2U6IHsgeDogMTAwLCB5OiAxMjAgfSxcbiAqICAgc291cmNlU2lkZTogRUZDb25uZWN0YWJsZVNpZGUuUklHSFQsXG4gKiAgIHRhcmdldDogeyB4OiAzNDAsIHk6IDIyMCB9LFxuICogICB0YXJnZXRTaWRlOiBFRkNvbm5lY3RhYmxlU2lkZS5MRUZULFxuICogICBvZmZzZXQ6IDE2LCAvLyBhY3RzIGFzIHBhZGRpbmcgKyBtaW5pbWFsIGhhbmRsZSBiYXNlbGluZVxuICogfSk7XG4gKiAvLyByZXMucGF0aCAtPiBTVkcgXCJNIOKApiBDIOKAplwiIHN0cmluZ1xuICogLy8gcmVzLnBvaW50cyAtPiBzYW1wbGVkIHBvaW50cyBhbG9uZyB0aGUgY3VydmVcbiAqIGBgYFxuICovXG5leHBvcnQgY2xhc3MgQWRhcHRpdmVDdXJ2ZUJ1aWxkZXIgaW1wbGVtZW50cyBJRkNvbm5lY3Rpb25CdWlsZGVyIHtcbiAgLyoqXG4gICAqIFJldHVybnMgYSB1bml0IGRpcmVjdGlvbiB2ZWN0b3IgZm9yIGEgZ2l2ZW4gc2lkZS5cbiAgICpcbiAgICogQHBhcmFtIHNpZGUgLSBPbmUgb2YgTEVGVC9SSUdIVC9UT1AvQk9UVE9NLlxuICAgKiBAcmV0dXJucyBVbml0IHZlY3RvciBwb2ludGluZyBvdXR3YXJkcyBmcm9tIHRoZSBzaWRlLlxuICAgKiBAcmVtYXJrc1xuICAgKiBPbmx5IGJhc2Ugc2lkZXMgc2hvdWxkIHJlYWNoIHRoaXMgYnVpbGRlci4gQSBmYWxsYmFjayBgezAsMH1gIGlzIHJldHVybmVkXG4gICAqIGRlZmVuc2l2ZWx5LCBidXQgc2hvdWxkIG5vdCBvY2N1ciBpbiBub3JtYWwgdXNhZ2UuXG4gICAqL1xuICBwcml2YXRlIHN0YXRpYyBfZGlyKHNpZGU6IEVGQ29ubmVjdGFibGVTaWRlKTogSVBvaW50IHtcbiAgICBzd2l0Y2ggKHNpZGUpIHtcbiAgICAgIGNhc2UgRUZDb25uZWN0YWJsZVNpZGUuTEVGVDpcbiAgICAgICAgcmV0dXJuIHsgeDogLTEsIHk6IDAgfTtcbiAgICAgIGNhc2UgRUZDb25uZWN0YWJsZVNpZGUuUklHSFQ6XG4gICAgICAgIHJldHVybiB7IHg6IDEsIHk6IDAgfTtcbiAgICAgIGNhc2UgRUZDb25uZWN0YWJsZVNpZGUuVE9QOlxuICAgICAgICByZXR1cm4geyB4OiAwLCB5OiAtMSB9O1xuICAgICAgY2FzZSBFRkNvbm5lY3RhYmxlU2lkZS5CT1RUT006XG4gICAgICAgIHJldHVybiB7IHg6IDAsIHk6IDEgfTtcbiAgICB9XG5cbiAgICByZXR1cm4geyB4OiAwLCB5OiAwIH07XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIHdoZXRoZXIgYSBzaWRlIGlzIGhvcml6b250YWwgKExFRlQvUklHSFQpLlxuICAgKlxuICAgKiBAcGFyYW0gc2lkZSAtIFNpZGUgdG8gY2hlY2suXG4gICAqIEByZXR1cm5zIGB0cnVlYCBmb3IgTEVGVC9SSUdIVCwgb3RoZXJ3aXNlIGBmYWxzZWAuXG4gICAqL1xuICBwcml2YXRlIHN0YXRpYyBfaXNIKHNpZGU6IEVGQ29ubmVjdGFibGVTaWRlKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHNpZGUgPT09IEVGQ29ubmVjdGFibGVTaWRlLkxFRlQgfHwgc2lkZSA9PT0gRUZDb25uZWN0YWJsZVNpZGUuUklHSFQ7XG4gIH1cblxuICAvKipcbiAgICogQ29tcHV0ZXMgYSAqKnNvZnQqKiBoYW5kbGUgbGVuZ3RoIGZvciBhIGNvbnRyb2wgcG9pbnQuXG4gICAqXG4gICAqIFRoZSBoYW5kbGUgbGVuZ3RoIGlzIGRlcml2ZWQgZnJvbTpcbiAgICogLSBgb2Zmc2V0YCAoYWN0cyBhcyBwYWRkaW5nICYgdGhlIGJhc2VsaW5lIGhhbmRsZSksXG4gICAqIC0gZGlzdGFuY2UgcHJvamVjdGVkIGFsb25nIHRoZSBzaWRl4oCZcyBheGlzIChkeCBmb3IgaG9yaXpvbnRhbCwgZHkgZm9yIHZlcnRpY2FsKSxcbiAgICogLSBhIGNvbnNlcnZhdGl2ZSB1cHBlciBib3VuZCB0byBhdm9pZCBibG9hdGVkIGN1cnZlcy5cbiAgICpcbiAgICogQHBhcmFtIHAwIC0gU3RhcnQgKG9yIGVuZCkgcG9pbnQgb2YgdGhlIHNlZ21lbnQuXG4gICAqIEBwYXJhbSBwMyAtIE9wcG9zaXRlIGVuZCAob3Igc3RhcnQpIHBvaW50LlxuICAgKiBAcGFyYW0gc2lkZSAtIFNpZGUgYXQgd2hpY2ggdGhlIGhhbmRsZSBvcmlnaW5hdGVzLlxuICAgKiBAcGFyYW0gb2Zmc2V0IC0gVmlzdWFsIHBhZGRpbmcvbWluaW1hbCBoYW5kbGUgYmFzZWxpbmUgKG11c3QgYmUg4omlIDApLlxuICAgKiBAcmV0dXJucyBBIGJvdW5kZWQgcG9zaXRpdmUgaGFuZGxlIGxlbmd0aC5cbiAgICovXG4gIHByaXZhdGUgc3RhdGljIF9oYW5kbGVMZW4oXG4gICAgcDA6IElQb2ludCxcbiAgICBwMzogSVBvaW50LFxuICAgIHNpZGU6IEVGQ29ubmVjdGFibGVTaWRlLFxuICAgIG9mZnNldDogbnVtYmVyLFxuICApOiBudW1iZXIge1xuICAgIGNvbnN0IGR4ID0gTWF0aC5hYnMocDMueCAtIHAwLngpO1xuICAgIGNvbnN0IGR5ID0gTWF0aC5hYnMocDMueSAtIHAwLnkpO1xuICAgIGNvbnN0IGQgPSBNYXRoLmh5cG90KGR4LCBkeSk7XG4gICAgY29uc3QgYWxvbmcgPSB0aGlzLl9pc0goc2lkZSkgPyBkeCA6IGR5O1xuXG4gICAgY29uc3QgTUlOID0gTWF0aC5tYXgoOCwgb2Zmc2V0KTtcbiAgICBjb25zdCBNQVggPSBvZmZzZXQgKyAwLjUgKiBkOyAvLyB1cHBlciBjYXAgdG8ga2VlcCB0aGUgc2hhcGUgY29tcGFjdFxuICAgIGNvbnN0IGxlbiA9IG9mZnNldCAqIDEuMDUgKyBhbG9uZyAqIDAuMzsgLy8gbW9kZXJhdGUgZ3Jvd3RoIGFsb25nIHRoZSBheGlzXG5cbiAgICByZXR1cm4gTWF0aC5taW4oTUFYLCBNYXRoLm1heChNSU4sIGxlbikpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbXB1dGVzIGEgY29udHJvbCBwb2ludCBieSB0YWtpbmcgdGhlIHNpZGUgZGlyZWN0aW9uIGFuZCAqKmxpZ2h0bHkgYmxlbmRpbmcqKlxuICAgKiBpdCB0b3dhcmQgdGhlIHRhcmdldCBkaXJlY3Rpb24uIFRoaXMgcmVkdWNlcyBoYXJzaCBpbmZsZWN0aW9ucyB3aGlsZSBrZWVwaW5nXG4gICAqIHRoZSBwZXJjZXB0dWFsIGF0dGFjaG1lbnQgdG8gdGhlIHBvcnQgc2lkZS5cbiAgICpcbiAgICogQHBhcmFtIHNpZGUgLSBCYXNlIHNpZGUgZGVmaW5pbmcgdGhlIHByaW1hcnkgZGlyZWN0aW9uIChMRUZUL1JJR0hUL1RPUC9CT1RUT00pLlxuICAgKiBAcGFyYW0gc291cmNlIC0gQW5jaG9yIHBvaW50IHdoZXJlIHRoZSBjb250cm9sIGhhbmRsZSBpcyBhdHRhY2hlZC5cbiAgICogQHBhcmFtIHRhcmdldCAtIE9wcG9zaXRlIGVuZDsgdXNlZCB0byBvcmllbnQgdGhlIGhhbmRsZSBzbGlnaHRseSB0b3dhcmQgdGhlIGdvYWwuXG4gICAqIEBwYXJhbSBoYW5kbGUgLSBIYW5kbGUgbGVuZ3RoIChzZWUge0BsaW5rIF9oYW5kbGVMZW59KS5cbiAgICogQHJldHVybnMgQ29udHJvbCBwb2ludCBjb29yZGluYXRlcyBmb3IgdGhlIGN1YmljIELDqXppZXIgc2VnbWVudC5cbiAgICovXG4gIHByaXZhdGUgc3RhdGljIF9zb2Z0Q29udHJvbChcbiAgICBzaWRlOiBFRkNvbm5lY3RhYmxlU2lkZSxcbiAgICBzb3VyY2U6IElQb2ludCxcbiAgICB0YXJnZXQ6IElQb2ludCxcbiAgICBoYW5kbGU6IG51bWJlcixcbiAgKTogSVBvaW50IHtcbiAgICBjb25zdCB2ID0gdGhpcy5fZGlyKHNpZGUpO1xuXG4gICAgY29uc3QgZHggPSB0YXJnZXQueCAtIHNvdXJjZS54O1xuICAgIGNvbnN0IGR5ID0gdGFyZ2V0LnkgLSBzb3VyY2UueTtcbiAgICBjb25zdCBkaXN0ID0gTWF0aC5oeXBvdChkeCwgZHkpIHx8IDE7XG4gICAgY29uc3QgdHggPSBkeCAvIGRpc3Q7XG4gICAgY29uc3QgdHkgPSBkeSAvIGRpc3Q7XG5cbiAgICAvLyBPcmllbnRhdGlvbiBvZiBzaWRlIHZzLiB0YXJnZXQgZGlyZWN0aW9uIChpbiBbLTEsIDFdKVxuICAgIGNvbnN0IGRvdCA9IHYueCAqIHR4ICsgdi55ICogdHk7XG5cbiAgICAvLyBTbWFsbCBiYXNlIGJsZW5kIHRvd2FyZCB0aGUgdGFyZ2V0OyBzbGlnaHRseSBpbmNyZWFzZSBpZiB0aGUgc2lkZSBwb2ludHMgYXdheS5cbiAgICBjb25zdCBiYXNlQmxlbmQgPSAwLjEyO1xuICAgIGNvbnN0IGV4dHJhID0gTWF0aC5tYXgoMCwgLWRvdCkgKiAwLjA4OyAvLyBhZGQgYSBiaXQgd2hlbiBwb2ludGluZyDigJxiYWNrd2FyZHPigJ1cbiAgICBjb25zdCBibGVuZCA9IE1hdGgubWluKDAuMiwgYmFzZUJsZW5kICsgZXh0cmEpO1xuXG4gICAgY29uc3QgZGlyWCA9IHYueCAqICgxIC0gYmxlbmQpICsgdHggKiBibGVuZDtcbiAgICBjb25zdCBkaXJZID0gdi55ICogKDEgLSBibGVuZCkgKyB0eSAqIGJsZW5kO1xuICAgIGNvbnN0IGxlbiA9IE1hdGguaHlwb3QoZGlyWCwgZGlyWSkgfHwgMTtcblxuICAgIHJldHVybiB7IHg6IHNvdXJjZS54ICsgKGRpclggLyBsZW4pICogaGFuZGxlLCB5OiBzb3VyY2UueSArIChkaXJZIC8gbGVuKSAqIGhhbmRsZSB9O1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkcyBhbiBhZGFwdGl2ZSBjb25uZWN0b3IgYmV0d2VlbiBgc291cmNlYCBhbmQgYHRhcmdldGAuXG4gICAqXG4gICAqIEBwYXJhbSByZXF1ZXN0IC0gQ29ubmVjdGlvbiBidWlsZCByZXF1ZXN0LlxuICAgKiBAcGFyYW0gcmVxdWVzdC5zb3VyY2UgLSBTdGFydCBwb2ludCBvZiB0aGUgY29ubmVjdG9yLlxuICAgKiBAcGFyYW0gcmVxdWVzdC5zb3VyY2VTaWRlIC0gU2lkZSBhdCB0aGUgc291cmNlIHBvcnQgKExFRlQvUklHSFQvVE9QL0JPVFRPTSkuXG4gICAqIEBwYXJhbSByZXF1ZXN0LnRhcmdldCAtIEVuZCBwb2ludCBvZiB0aGUgY29ubmVjdG9yLlxuICAgKiBAcGFyYW0gcmVxdWVzdC50YXJnZXRTaWRlIC0gU2lkZSBhdCB0aGUgdGFyZ2V0IHBvcnQgKExFRlQvUklHSFQvVE9QL0JPVFRPTSkuXG4gICAqIEBwYXJhbSByZXF1ZXN0Lm9mZnNldCAtIFZpc3VhbCBwYWRkaW5nICYgbWluaW1hbCBoYW5kbGUgYmFzZWxpbmUgKOKJpSAwKS5cbiAgICpcbiAgICogQHJldHVybnMgU3RhbmRhcmQge0BsaW5rIElGQ29ubmVjdGlvbkJ1aWxkZXJSZXNwb25zZX06XG4gICAqIC0gYHBhdGhgOiBTVkcgY3ViaWMgcGF0aCAo4oCcTSDigKYgQyDigKbigJ0pLFxuICAgKiAtIGBwb2ludHNgOiBkaXNjcmV0aXplZCBzYW1wbGVzIGFsb25nIHRoZSBjdXJ2ZSxcbiAgICogLSBgY29ubmVjdGlvbkNlbnRlcmA6IGFwcHJveGltYXRlIHZpc3VhbCBjZW50ZXIgZm9yIGxhYmVsaW5nL2ludGVyYWN0aW9uLFxuICAgKiAtIGBzZWNvbmRQb2ludGAvYHBlbnVsdGltYXRlUG9pbnRgOiBmaXJzdC9zZWNvbmQgY29udHJvbCBwb2ludHMgKGZvciB0b29saW5nKS5cbiAgICpcbiAgICogQHJlbWFya3NcbiAgICogVGhlIHJldHVybmVkIHBhdGggc2xpZ2h0bHkgb2Zmc2V0cyB0aGUgZW5kIHBvaW50IGJ5ICswLjAwMDIgb24gYm90aCBheGVzXG4gICAqIHRvIGF2b2lkIGVkZ2UgY2FzZXMgaW4gc29tZSByZW5kZXJlcnMgYW5kIGhpdC10ZXN0aW5nIGltcGxlbWVudGF0aW9ucy5cbiAgICovXG4gIHB1YmxpYyBoYW5kbGUocmVxdWVzdDogSUZDb25uZWN0aW9uQnVpbGRlclJlcXVlc3QpOiBJRkNvbm5lY3Rpb25CdWlsZGVyUmVzcG9uc2Uge1xuICAgIGNvbnN0IHsgc291cmNlLCBzb3VyY2VTaWRlLCB0YXJnZXQsIHRhcmdldFNpZGUgfSA9IHJlcXVlc3Q7XG4gICAgY29uc3Qgb2Zmc2V0ID0gTWF0aC5tYXgoMCwgcmVxdWVzdC5vZmZzZXQgPz8gMCk7XG5cbiAgICBjb25zdCBwMCA9IHsgeDogc291cmNlLngsIHk6IHNvdXJjZS55IH07XG4gICAgY29uc3QgcDMgPSB7IHg6IHRhcmdldC54LCB5OiB0YXJnZXQueSB9O1xuXG4gICAgY29uc3QgaDAgPSBBZGFwdGl2ZUN1cnZlQnVpbGRlci5faGFuZGxlTGVuKHAwLCBwMywgc291cmNlU2lkZSwgb2Zmc2V0KTtcbiAgICBjb25zdCBoMyA9IEFkYXB0aXZlQ3VydmVCdWlsZGVyLl9oYW5kbGVMZW4ocDMsIHAwLCB0YXJnZXRTaWRlLCBvZmZzZXQpO1xuXG4gICAgY29uc3QgYzEgPSBBZGFwdGl2ZUN1cnZlQnVpbGRlci5fc29mdENvbnRyb2woc291cmNlU2lkZSwgcDAsIHAzLCBoMCk7XG4gICAgY29uc3QgYzIgPSBBZGFwdGl2ZUN1cnZlQnVpbGRlci5fc29mdENvbnRyb2wodGFyZ2V0U2lkZSwgcDMsIHAwLCBoMyk7XG5cbiAgICBjb25zdCBwYXRoID0gYE0gJHtwMC54fSAke3AwLnl9IEMgJHtjMS54fSAke2MxLnl9LCAke2MyLnh9ICR7YzIueX0sICR7cDMueCArIDAuMDAwMn0gJHtwMy55ICsgMC4wMDAyfWA7XG5cbiAgICBjb25zdCBjb25uZWN0aW9uQ2VudGVyID0gbmV3IENhbGN1bGF0ZUNvbm5lY3Rpb25DZW50ZXJIYW5kbGVyKCkuaGFuZGxlKFxuICAgICAgbmV3IENhbGN1bGF0ZUNvbm5lY3Rpb25DZW50ZXJSZXF1ZXN0KFtwMCwgYzEsIGMyLCBwM10pLFxuICAgICk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgcGF0aCxcbiAgICAgIGNvbm5lY3Rpb25DZW50ZXIsXG4gICAgICBzZWNvbmRQb2ludDogYzEsXG4gICAgICBwZW51bHRpbWF0ZVBvaW50OiBjMixcbiAgICAgIHBvaW50czogX3NhbXBsZUN1YmljKHAwLCBjMSwgYzIsIHAzLCAzMiksXG4gICAgfTtcbiAgfVxufVxuXG4vKipcbiAqIEV2YWx1YXRlcyBhIGN1YmljIELDqXppZXIgYXQgcGFyYW1ldGVyIGB0YCBpbiBbMCwgMV0uXG4gKlxuICogQHBhcmFtIHAwIC0gU3RhcnQgcG9pbnQuXG4gKiBAcGFyYW0gcDEgLSBGaXJzdCBjb250cm9sIHBvaW50LlxuICogQHBhcmFtIHAyIC0gU2Vjb25kIGNvbnRyb2wgcG9pbnQuXG4gKiBAcGFyYW0gcDMgLSBFbmQgcG9pbnQuXG4gKiBAcGFyYW0gdCAtIFBhcmFtZXRlciBpbiBbMCwgMV0uXG4gKiBAcmV0dXJucyBQb2ludCBvbiB0aGUgY3VydmUgYXQgYHRgLlxuICovXG5mdW5jdGlvbiBiZXozKHAwOiBJUG9pbnQsIHAxOiBJUG9pbnQsIHAyOiBJUG9pbnQsIHAzOiBJUG9pbnQsIHQ6IG51bWJlcik6IElQb2ludCB7XG4gIGNvbnN0IHUgPSAxIC0gdCxcbiAgICB0dCA9IHQgKiB0LFxuICAgIHV1ID0gdSAqIHUsXG4gICAgdXV1ID0gdXUgKiB1LFxuICAgIHR0dCA9IHR0ICogdDtcblxuICByZXR1cm4ge1xuICAgIHg6IHV1dSAqIHAwLnggKyAzICogdXUgKiB0ICogcDEueCArIDMgKiB1ICogdHQgKiBwMi54ICsgdHR0ICogcDMueCxcbiAgICB5OiB1dXUgKiBwMC55ICsgMyAqIHV1ICogdCAqIHAxLnkgKyAzICogdSAqIHR0ICogcDIueSArIHR0dCAqIHAzLnksXG4gIH07XG59XG5cbi8qKlxuICogVW5pZm9ybWx5IHNhbXBsZXMgYSBjdWJpYyBCw6l6aWVyIHNlZ21lbnQuXG4gKlxuICogQHBhcmFtIHAwIC0gU3RhcnQgcG9pbnQuXG4gKiBAcGFyYW0gcDEgLSBGaXJzdCBjb250cm9sIHBvaW50LlxuICogQHBhcmFtIHAyIC0gU2Vjb25kIGNvbnRyb2wgcG9pbnQuXG4gKiBAcGFyYW0gcDMgLSBFbmQgcG9pbnQuXG4gKiBAcGFyYW0gc2FtcGxlcyAtIE51bWJlciBvZiBzdWItc2VnbWVudHMgKGRlZmF1bHQ6IDMyKS4gVGhlIGZ1bmN0aW9uIHJldHVybnMgYHNhbXBsZXMgKyAxYCBwb2ludHMuXG4gKiBAcmV0dXJucyBBcnJheSBvZiBzYW1wbGVkIHBvaW50cyBpbmNsdWRpbmcgYm90aCBlbmRwb2ludHMuXG4gKiBAcmVtYXJrc1xuICogU2FtcGxpbmcgaXMgdW5pZm9ybSBpbiBwYXJhbWV0ZXIgYHRgLCBub3QgaW4gYXJjIGxlbmd0aC4gVGhpcyBpcyB0eXBpY2FsbHlcbiAqIHN1ZmZpY2llbnQgZm9yIGhpdC10ZXN0aW5nIGFuZCBib3VuZGluZyBib3hlczsgaWYgeW91IG5lZWQgZXJyb3ItYm91bmRlZFxuICogZmxhdHRlbmluZywgY29uc2lkZXIgYW4gYWRhcHRpdmUgc3ViZGl2aXNpb24gc3RyYXRlZ3kgaW5zdGVhZC5cbiAqL1xuZnVuY3Rpb24gX3NhbXBsZUN1YmljKHAwOiBJUG9pbnQsIHAxOiBJUG9pbnQsIHAyOiBJUG9pbnQsIHAzOiBJUG9pbnQsIHNhbXBsZXMgPSAzMik6IElQb2ludFtdIHtcbiAgY29uc3Qgb3V0OiBJUG9pbnRbXSA9IG5ldyBBcnJheShzYW1wbGVzICsgMSk7XG4gIG91dFswXSA9IHsgLi4ucDAgfTtcbiAgZm9yIChsZXQgaSA9IDE7IGkgPD0gc2FtcGxlczsgaSsrKSB7XG4gICAgb3V0W2ldID0gYmV6MyhwMCwgcDEsIHAyLCBwMywgaSAvIHNhbXBsZXMpO1xuICB9XG5cbiAgcmV0dXJuIG91dDtcbn1cbiJdfQ==
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export * from './calculate-center-between-points';
|
|
2
2
|
export * from './calculate-connection-center';
|
|
3
|
+
export * from './adaptive-curve-builder';
|
|
3
4
|
export * from './f-bezier.path-builder';
|
|
4
5
|
export * from './f-segment.path-builder';
|
|
5
6
|
export * from './f-straight.path-builder';
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdGlvbi9jb21tb24vZG9tYWluL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsbUNBQW1DLENBQUM7QUFFbEQsY0FBYywrQkFBK0IsQ0FBQztBQUU5QyxjQUFjLDBCQUEwQixDQUFDO0FBRXpDLGNBQWMseUJBQXlCLENBQUM7QUFFeEMsY0FBYywwQkFBMEIsQ0FBQztBQUV6QyxjQUFjLDJCQUEyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jYWxjdWxhdGUtY2VudGVyLWJldHdlZW4tcG9pbnRzJztcblxuZXhwb3J0ICogZnJvbSAnLi9jYWxjdWxhdGUtY29ubmVjdGlvbi1jZW50ZXInO1xuXG5leHBvcnQgKiBmcm9tICcuL2FkYXB0aXZlLWN1cnZlLWJ1aWxkZXInO1xuXG5leHBvcnQgKiBmcm9tICcuL2YtYmV6aWVyLnBhdGgtYnVpbGRlcic7XG5cbmV4cG9ydCAqIGZyb20gJy4vZi1zZWdtZW50LnBhdGgtYnVpbGRlcic7XG5cbmV4cG9ydCAqIGZyb20gJy4vZi1zdHJhaWdodC5wYXRoLWJ1aWxkZXInO1xuIl19
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export var EFConnectionConnectableSide;
|
|
2
|
+
(function (EFConnectionConnectableSide) {
|
|
3
|
+
EFConnectionConnectableSide["DEFAULT"] = "default";
|
|
4
|
+
EFConnectionConnectableSide["TOP"] = "top";
|
|
5
|
+
EFConnectionConnectableSide["BOTTOM"] = "bottom";
|
|
6
|
+
EFConnectionConnectableSide["LEFT"] = "left";
|
|
7
|
+
EFConnectionConnectableSide["RIGHT"] = "right";
|
|
8
|
+
EFConnectionConnectableSide["CALCULATE"] = "calculate";
|
|
9
|
+
EFConnectionConnectableSide["CALCULATE_HORIZONTAL"] = "calculate_horizontal";
|
|
10
|
+
EFConnectionConnectableSide["CALCULATE_VERTICAL"] = "calculate_vertical";
|
|
11
|
+
})(EFConnectionConnectableSide || (EFConnectionConnectableSide = {}));
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZS1mLWNvbm5lY3Rpb24tY29ubmVjdGFibGUtc2lkZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1jb25uZWN0aW9uL2NvbW1vbi9lLWYtY29ubmVjdGlvbi1jb25uZWN0YWJsZS1zaWRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLDJCQWdCWDtBQWhCRCxXQUFZLDJCQUEyQjtJQUNyQyxrREFBbUIsQ0FBQTtJQUVuQiwwQ0FBVyxDQUFBO0lBRVgsZ0RBQWlCLENBQUE7SUFFakIsNENBQWEsQ0FBQTtJQUViLDhDQUFlLENBQUE7SUFFZixzREFBdUIsQ0FBQTtJQUV2Qiw0RUFBNkMsQ0FBQTtJQUU3Qyx3RUFBeUMsQ0FBQTtBQUMzQyxDQUFDLEVBaEJXLDJCQUEyQixLQUEzQiwyQkFBMkIsUUFnQnRDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gRUZDb25uZWN0aW9uQ29ubmVjdGFibGVTaWRlIHtcbiAgREVGQVVMVCA9ICdkZWZhdWx0JyxcblxuICBUT1AgPSAndG9wJyxcblxuICBCT1RUT00gPSAnYm90dG9tJyxcblxuICBMRUZUID0gJ2xlZnQnLFxuXG4gIFJJR0hUID0gJ3JpZ2h0JyxcblxuICBDQUxDVUxBVEUgPSAnY2FsY3VsYXRlJyxcblxuICBDQUxDVUxBVEVfSE9SSVpPTlRBTCA9ICdjYWxjdWxhdGVfaG9yaXpvbnRhbCcsXG5cbiAgQ0FMQ1VMQVRFX1ZFUlRJQ0FMID0gJ2NhbGN1bGF0ZV92ZXJ0aWNhbCcsXG59XG4iXX0=
|
|
@@ -3,5 +3,6 @@ export var EFConnectionType;
|
|
|
3
3
|
EFConnectionType["SEGMENT"] = "segment";
|
|
4
4
|
EFConnectionType["STRAIGHT"] = "straight";
|
|
5
5
|
EFConnectionType["BEZIER"] = "bezier";
|
|
6
|
+
EFConnectionType["ADAPTIVE_CURVE"] = "adaptive-curve";
|
|
6
7
|
})(EFConnectionType || (EFConnectionType = {}));
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZS1mLWNvbm5lY3Rpb24tdHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1jb25uZWN0aW9uL2NvbW1vbi9lLWYtY29ubmVjdGlvbi10eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLGdCQVFYO0FBUkQsV0FBWSxnQkFBZ0I7SUFDMUIsdUNBQW1CLENBQUE7SUFFbkIseUNBQXFCLENBQUE7SUFFckIscUNBQWlCLENBQUE7SUFFakIscURBQWlDLENBQUE7QUFDbkMsQ0FBQyxFQVJXLGdCQUFnQixLQUFoQixnQkFBZ0IsUUFRM0IiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZW51bSBFRkNvbm5lY3Rpb25UeXBlIHtcbiAgU0VHTUVOVCA9ICdzZWdtZW50JyxcblxuICBTVFJBSUdIVCA9ICdzdHJhaWdodCcsXG5cbiAgQkVaSUVSID0gJ2JlemllcicsXG5cbiAgQURBUFRJVkVfQ1VSVkUgPSAnYWRhcHRpdmUtY3VydmUnLFxufVxuIl19
|