@foblex/flow 17.8.9 → 17.9.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/README.md +1 -1
- package/domain/f-node/providers.d.ts +1 -1
- package/domain/providers.d.ts +1 -1
- package/drag-toolkit/drag-and-drop-base.d.ts +29 -30
- package/drag-toolkit/event.extensions.d.ts +4 -4
- package/drag-toolkit/index.d.ts +0 -1
- package/esm2022/drag-toolkit/drag-and-drop-base.mjs +94 -93
- package/esm2022/drag-toolkit/event.extensions.mjs +13 -14
- package/esm2022/drag-toolkit/index.mjs +1 -2
- package/esm2022/f-canvas/f-canvas.component.mjs +2 -2
- package/esm2022/f-connection/f-connection/f-connection.component.mjs +3 -3
- package/esm2022/f-draggable/f-canvas/f-canvas.drag-handler.mjs +3 -1
- package/esm2022/f-draggable/f-draggable-base.mjs +3 -4
- package/esm2022/f-draggable/f-draggable-data-context.mjs +1 -2
- package/esm2022/f-draggable/f-draggable.directive.mjs +6 -11
- package/esm2022/f-draggable/f-single-select/f-single-select.execution.mjs +5 -4
- package/esm2022/f-flow/f-flow.component.mjs +2 -2
- package/f-connection/providers.d.ts +1 -1
- package/f-draggable/f-draggable-base.d.ts +2 -2
- package/f-draggable/f-draggable-data-context.d.ts +0 -1
- package/f-draggable/f-draggable.directive.d.ts +0 -3
- package/f-draggable/providers.d.ts +1 -1
- package/f-external-item/domain/providers.d.ts +1 -1
- package/f-storage/providers.d.ts +1 -1
- package/fesm2022/foblex-flow.mjs +123 -130
- package/fesm2022/foblex-flow.mjs.map +1 -1
- package/package.json +1 -1
- package/drag-toolkit/i-can-run-outside-angular.d.ts +0 -3
- package/esm2022/drag-toolkit/i-can-run-outside-angular.mjs +0 -2
package/fesm2022/foblex-flow.mjs
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { InjectionToken, inject, Injectable, Directive, input, computed, signal, Injector, Renderer2, effect, untracked, DestroyRef, model, output, booleanAttribute, ElementRef, Input, viewChild, Component, ChangeDetectionStrategy, isDevMode, contentChildren, numberAttribute, ViewContainerRef, TemplateRef,
|
|
2
|
+
import { InjectionToken, inject, Injectable, Directive, input, computed, signal, Injector, Renderer2, effect, untracked, DestroyRef, model, output, booleanAttribute, ElementRef, Input, viewChild, Component, ChangeDetectionStrategy, isDevMode, contentChildren, numberAttribute, ViewContainerRef, TemplateRef, NgZone, EventEmitter, Output, ContentChildren, contentChild, NgModule } from '@angular/core';
|
|
3
3
|
import { RectExtensions, RoundedRect, TransformModelExtensions, PointExtensions, Point, LineExtensions, GetIntersections, SizeExtensions, findClosestAlignment, setRectToElement, adjustRectToMinSize, setRectToViewBox } from '@foblex/2d';
|
|
4
4
|
import { __decorate } from 'tslib';
|
|
5
5
|
import { FExecutionRegister, FMediator } from '@foblex/mediator';
|
|
6
6
|
import { BrowserService, PlatformService, EOperationSystem } from '@foblex/platform';
|
|
7
7
|
import { normalizeDomElementId, castToEnum, isClosestElementHasClass, flatMap, getOrCreateRootNodeForViewRef, deepCloneNode, disableDragInteractions, extendStyles, getDataAttrValueFromClosestElementWithClass } from '@foblex/utils';
|
|
8
8
|
import { coerceNumberProperty } from '@angular/cdk/coercion';
|
|
9
|
-
import { CommonModule } from '@angular/common';
|
|
9
|
+
import { DOCUMENT, CommonModule } from '@angular/common';
|
|
10
10
|
|
|
11
11
|
const F_BACKGROUND_PATTERN = new InjectionToken('F_BACKGROUND_PATTERN');
|
|
12
12
|
|
|
@@ -3326,7 +3326,7 @@ class FConnectionComponent extends FConnectionBase {
|
|
|
3326
3326
|
this._mediator.execute(new RemoveConnectionFromStoreRequest(this));
|
|
3327
3327
|
}
|
|
3328
3328
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FConnectionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
3329
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: FConnectionComponent, selector: "f-connection", inputs: { fId: { classPropertyName: "fId", publicName: "fConnectionId", isSignal: true, isRequired: false, transformFunction: null }, fText: { classPropertyName: "fText", publicName: "fText", isSignal: false, isRequired: false, transformFunction: null }, fTextStartOffset: { classPropertyName: "fTextStartOffset", publicName: "fTextStartOffset", isSignal: false, isRequired: false, transformFunction: null }, fOutputId: { classPropertyName: "fOutputId", publicName: "fOutputId", isSignal: true, isRequired: false, transformFunction: null }, fInputId: { classPropertyName: "fInputId", publicName: "fInputId", isSignal: true, isRequired: false, transformFunction: null }, fRadius: { classPropertyName: "fRadius", publicName: "fRadius", isSignal: false, isRequired: false, transformFunction: numberAttribute }, fOffset: { classPropertyName: "fOffset", publicName: "fOffset", isSignal: false, isRequired: false, transformFunction: numberAttribute }, fBehavior: { classPropertyName: "fBehavior", publicName: "fBehavior", isSignal: false, isRequired: false, transformFunction: (value) => castToEnum(value, 'fBehavior', EFConnectionBehavior) }, fType: { classPropertyName: "fType", publicName: "fType", isSignal: false, isRequired: false, transformFunction: null }, fSelectionDisabled: { classPropertyName: "fSelectionDisabled", publicName: "fSelectionDisabled", isSignal: true, isRequired: false, transformFunction: null }, fReassignableStart: { classPropertyName: "fReassignableStart", publicName: "fReassignableStart", isSignal: true, isRequired: false, transformFunction: null }, fDraggingDisabled: { classPropertyName: "fDraggingDisabled", publicName: "fReassignDisabled", isSignal: true, isRequired: false, transformFunction: null }, fInputSide: { classPropertyName: "fInputSide", publicName: "fInputSide", isSignal: true, isRequired: false, transformFunction: null }, fOutputSide: { classPropertyName: "fOutputSide", publicName: "fOutputSide", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.id": "fId()", "class.f-connection-selection-disabled": "fSelectionDisabled()", "class.f-connection-reassign-disabled": "fDraggingDisabled()" }, classAttribute: "f-component f-connection" }, providers: [{ provide: F_CONNECTION, useExisting: FConnectionComponent }], exportAs: ["fComponent"], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<svg\n xmlns=\"http://www.w3.org/2000/svg\"\n style=\"
|
|
3329
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: FConnectionComponent, selector: "f-connection", inputs: { fId: { classPropertyName: "fId", publicName: "fConnectionId", isSignal: true, isRequired: false, transformFunction: null }, fText: { classPropertyName: "fText", publicName: "fText", isSignal: false, isRequired: false, transformFunction: null }, fTextStartOffset: { classPropertyName: "fTextStartOffset", publicName: "fTextStartOffset", isSignal: false, isRequired: false, transformFunction: null }, fOutputId: { classPropertyName: "fOutputId", publicName: "fOutputId", isSignal: true, isRequired: false, transformFunction: null }, fInputId: { classPropertyName: "fInputId", publicName: "fInputId", isSignal: true, isRequired: false, transformFunction: null }, fRadius: { classPropertyName: "fRadius", publicName: "fRadius", isSignal: false, isRequired: false, transformFunction: numberAttribute }, fOffset: { classPropertyName: "fOffset", publicName: "fOffset", isSignal: false, isRequired: false, transformFunction: numberAttribute }, fBehavior: { classPropertyName: "fBehavior", publicName: "fBehavior", isSignal: false, isRequired: false, transformFunction: (value) => castToEnum(value, 'fBehavior', EFConnectionBehavior) }, fType: { classPropertyName: "fType", publicName: "fType", isSignal: false, isRequired: false, transformFunction: null }, fSelectionDisabled: { classPropertyName: "fSelectionDisabled", publicName: "fSelectionDisabled", isSignal: true, isRequired: false, transformFunction: null }, fReassignableStart: { classPropertyName: "fReassignableStart", publicName: "fReassignableStart", isSignal: true, isRequired: false, transformFunction: null }, fDraggingDisabled: { classPropertyName: "fDraggingDisabled", publicName: "fReassignDisabled", isSignal: true, isRequired: false, transformFunction: null }, fInputSide: { classPropertyName: "fInputSide", publicName: "fInputSide", isSignal: true, isRequired: false, transformFunction: null }, fOutputSide: { classPropertyName: "fOutputSide", publicName: "fOutputSide", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.id": "fId()", "class.f-connection-selection-disabled": "fSelectionDisabled()", "class.f-connection-reassign-disabled": "fDraggingDisabled()" }, classAttribute: "f-component f-connection" }, providers: [{ provide: F_CONNECTION, useExisting: FConnectionComponent }], exportAs: ["fComponent"], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<svg\n xmlns=\"http://www.w3.org/2000/svg\"\n style=\"display: block; vertical-align: middle;\"\n>\n <defs #defs></defs>\n <ng-content></ng-content>\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 @if (fReassignableStart()) {\n <circle f-connection-drag-handle-start r=\"8\"></circle>\n }\n <circle f-connection-drag-handle-end r=\"8\"></circle>\n </g>\n <text f-connection-text></text>\n </g>\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}:host svg{overflow:visible!important;position:absolute}:host svg .f-connection-group{pointer-events:all}:host .f-connection-center,:host .f-connection-content{pointer-events:all}\n"], dependencies: [{ kind: "component", type: FConnectionTextComponent, selector: "text[f-connection-text]" }, { kind: "component", type: FConnectionDragHandleStartComponent, selector: "circle[f-connection-drag-handle-start]" }, { kind: "component", type: FConnectionDragHandleEndComponent, selector: "circle[f-connection-drag-handle-end]" }, { kind: "component", type: FConnectionGradientComponent, selector: "linearGradient[fConnectionGradient]" }, { kind: "component", type: FConnectionPathComponent, selector: "path[f-connection-path]" }, { kind: "component", type: FConnectionSelectionComponent, selector: "path[fConnectionSelection]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3330
3330
|
}
|
|
3331
3331
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FConnectionComponent, decorators: [{
|
|
3332
3332
|
type: Component,
|
|
@@ -3335,7 +3335,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
3335
3335
|
class: 'f-component f-connection',
|
|
3336
3336
|
'[class.f-connection-selection-disabled]': 'fSelectionDisabled()',
|
|
3337
3337
|
'[class.f-connection-reassign-disabled]': 'fDraggingDisabled()',
|
|
3338
|
-
}, providers: [{ provide: F_CONNECTION, useExisting: FConnectionComponent }], template: "<svg\n xmlns=\"http://www.w3.org/2000/svg\"\n style=\"
|
|
3338
|
+
}, providers: [{ provide: F_CONNECTION, useExisting: FConnectionComponent }], template: "<svg\n xmlns=\"http://www.w3.org/2000/svg\"\n style=\"display: block; vertical-align: middle;\"\n>\n <defs #defs></defs>\n <ng-content></ng-content>\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 @if (fReassignableStart()) {\n <circle f-connection-drag-handle-start r=\"8\"></circle>\n }\n <circle f-connection-drag-handle-end r=\"8\"></circle>\n </g>\n <text f-connection-text></text>\n </g>\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}:host svg{overflow:visible!important;position:absolute}:host svg .f-connection-group{pointer-events:all}:host .f-connection-center,:host .f-connection-content{pointer-events:all}\n"] }]
|
|
3339
3339
|
}], propDecorators: { fText: [{
|
|
3340
3340
|
type: Input
|
|
3341
3341
|
}], fTextStartOffset: [{
|
|
@@ -4841,7 +4841,6 @@ class FCanvasMoveFinalizeRequest {
|
|
|
4841
4841
|
}
|
|
4842
4842
|
|
|
4843
4843
|
class FDraggableDataContext {
|
|
4844
|
-
isDragging = false;
|
|
4845
4844
|
selectedItems = [];
|
|
4846
4845
|
isSelectedChanged = false;
|
|
4847
4846
|
onPointerDownScale = 1;
|
|
@@ -4871,6 +4870,7 @@ class FCanvasDragHandler {
|
|
|
4871
4870
|
_onPointerDownPosition = PointExtensions.initialize();
|
|
4872
4871
|
constructor(_injector) {
|
|
4873
4872
|
this._store = _injector.get(FComponentsStore);
|
|
4873
|
+
this._store.fCanvas?.hostElement.classList.add('canvas-dragging');
|
|
4874
4874
|
}
|
|
4875
4875
|
prepareDragSequence() {
|
|
4876
4876
|
this._onPointerDownPosition = this._store.fCanvas.transform.position;
|
|
@@ -4881,6 +4881,7 @@ class FCanvasDragHandler {
|
|
|
4881
4881
|
}
|
|
4882
4882
|
onPointerUp() {
|
|
4883
4883
|
this._store.fCanvas.emitCanvasChangeEvent();
|
|
4884
|
+
this._store.fCanvas?.hostElement.classList.remove('canvas-dragging');
|
|
4884
4885
|
}
|
|
4885
4886
|
}
|
|
4886
4887
|
|
|
@@ -8669,11 +8670,12 @@ let FSingleSelectExecution = class FSingleSelectExecution {
|
|
|
8669
8670
|
return this._getNodeOrGroup(event.targetElement) || this._getConnection(event.targetElement);
|
|
8670
8671
|
}
|
|
8671
8672
|
_getNodeOrGroup(targetElement) {
|
|
8672
|
-
return this._store.fNodes.find((x) =>
|
|
8673
|
+
return this._store.fNodes.find((x) => x.isContains(targetElement));
|
|
8673
8674
|
}
|
|
8674
8675
|
_getConnection(element) {
|
|
8675
|
-
return this._store.fConnections
|
|
8676
|
-
|
|
8676
|
+
return this._store.fConnections.find((c) => c.isContains(element) ||
|
|
8677
|
+
c.fConnectionCenter()?.nativeElement?.contains(element) ||
|
|
8678
|
+
Array.from(c.fConnectionContents()?.values() ?? []).some((content) => content.hostElement?.contains(element)));
|
|
8677
8679
|
}
|
|
8678
8680
|
_updateItemAndChildrenLayers(fItem) {
|
|
8679
8681
|
if (fItem) {
|
|
@@ -8853,34 +8855,33 @@ class ITouchMoveEvent extends IPointerEvent {
|
|
|
8853
8855
|
}
|
|
8854
8856
|
|
|
8855
8857
|
class EventExtensions {
|
|
8856
|
-
static
|
|
8857
|
-
static
|
|
8858
|
-
if (EventExtensions.
|
|
8858
|
+
static _isSupported;
|
|
8859
|
+
static _isPassiveEventListenerSupported() {
|
|
8860
|
+
if (EventExtensions._isSupported == null && typeof window !== 'undefined') {
|
|
8859
8861
|
try {
|
|
8860
8862
|
window.addEventListener('test', EventExtensions.emptyListener, { passive: true });
|
|
8861
|
-
EventExtensions.
|
|
8863
|
+
EventExtensions._isSupported = true;
|
|
8862
8864
|
}
|
|
8863
8865
|
catch (e) {
|
|
8864
|
-
EventExtensions.
|
|
8866
|
+
EventExtensions._isSupported = false;
|
|
8865
8867
|
}
|
|
8866
8868
|
}
|
|
8867
|
-
return EventExtensions.
|
|
8869
|
+
return EventExtensions._isSupported;
|
|
8868
8870
|
}
|
|
8869
|
-
static
|
|
8870
|
-
return EventExtensions.
|
|
8871
|
+
static _passiveEventListener(options) {
|
|
8872
|
+
return EventExtensions._isPassiveEventListenerSupported() ? options : !!options.capture;
|
|
8871
8873
|
}
|
|
8872
8874
|
static activeListener() {
|
|
8873
|
-
return EventExtensions.
|
|
8875
|
+
return EventExtensions._passiveEventListener({ passive: false });
|
|
8874
8876
|
}
|
|
8875
8877
|
static passiveListener() {
|
|
8876
|
-
return EventExtensions.
|
|
8878
|
+
return EventExtensions._passiveEventListener({ passive: true });
|
|
8877
8879
|
}
|
|
8878
8880
|
static activeCaptureListener() {
|
|
8879
|
-
return EventExtensions.
|
|
8881
|
+
return EventExtensions._passiveEventListener({ passive: false, capture: true });
|
|
8880
8882
|
}
|
|
8881
8883
|
static emptyListener() {
|
|
8882
|
-
return () => {
|
|
8883
|
-
};
|
|
8884
|
+
return () => { };
|
|
8884
8885
|
}
|
|
8885
8886
|
}
|
|
8886
8887
|
|
|
@@ -8891,57 +8892,53 @@ const MOUSE_EVENT_IGNORE_TIME = 800;
|
|
|
8891
8892
|
* and provides abstract methods for derived classes to implement specific behaviors.
|
|
8892
8893
|
*/
|
|
8893
8894
|
class DragAndDropBase {
|
|
8894
|
-
|
|
8895
|
-
|
|
8896
|
-
|
|
8897
|
-
|
|
8898
|
-
|
|
8899
|
-
isSyntheticEvent(
|
|
8900
|
-
return !!this.
|
|
8901
|
-
|
|
8902
|
-
|
|
8903
|
-
lastTouchEventTime = 0;
|
|
8895
|
+
_document = inject(DOCUMENT);
|
|
8896
|
+
_ngZone = inject(NgZone, { optional: true });
|
|
8897
|
+
_mouseListeners = EventExtensions.emptyListener();
|
|
8898
|
+
_touchListeners = EventExtensions.emptyListener();
|
|
8899
|
+
_startListeners = EventExtensions.emptyListener();
|
|
8900
|
+
isSyntheticEvent(_event) {
|
|
8901
|
+
return (!!this._lastTouchEventTime && this._lastTouchEventTime + MOUSE_EVENT_IGNORE_TIME > Date.now());
|
|
8902
|
+
}
|
|
8903
|
+
_lastTouchEventTime = 0;
|
|
8904
8904
|
isDragStarted = false;
|
|
8905
|
-
|
|
8906
|
-
|
|
8907
|
-
|
|
8908
|
-
|
|
8909
|
-
|
|
8910
|
-
|
|
8911
|
-
constructor(ngZone) {
|
|
8912
|
-
this.ngZone = ngZone;
|
|
8913
|
-
}
|
|
8905
|
+
_dragStartThreshold = 3;
|
|
8906
|
+
_dragStartDelay = 0;
|
|
8907
|
+
_dragStartTime = 0;
|
|
8908
|
+
_dragStartPosition = { x: 0, y: 0 };
|
|
8909
|
+
_moveHandler = this._checkDragSequenceToStart;
|
|
8910
|
+
_pointerDownElement = null;
|
|
8914
8911
|
/**
|
|
8915
8912
|
* Handles the mouse down event to initiate the drag sequence.
|
|
8916
8913
|
* It checks if the event is synthetic or fake, and if the drag is already started.
|
|
8917
8914
|
* If not, it sets up the drag start sequence by adding necessary event listeners.
|
|
8918
8915
|
* @param event - The mouse event that triggered the drag.
|
|
8919
8916
|
*/
|
|
8920
|
-
|
|
8917
|
+
_onMouseDown = (event) => {
|
|
8921
8918
|
const isSyntheticEvent = this.isSyntheticEvent(event);
|
|
8922
8919
|
const isFakeEvent = isFakeMousedownFromScreenReader(event);
|
|
8923
8920
|
const mouseEvent = new IMouseEvent(event);
|
|
8924
8921
|
if (isSyntheticEvent || isFakeEvent || this.disabled || this.isDragStarted) {
|
|
8925
8922
|
return;
|
|
8926
8923
|
}
|
|
8927
|
-
this.
|
|
8924
|
+
this._pointerDownElement = mouseEvent.targetElement;
|
|
8928
8925
|
const result = this.onPointerDown(mouseEvent);
|
|
8929
8926
|
if (result) {
|
|
8930
|
-
this.
|
|
8931
|
-
this.
|
|
8932
|
-
this.
|
|
8933
|
-
this.
|
|
8934
|
-
this.
|
|
8935
|
-
this.
|
|
8936
|
-
this.
|
|
8937
|
-
this.
|
|
8927
|
+
this._dragStartTime = Date.now();
|
|
8928
|
+
this._dragStartPosition = mouseEvent.getPosition();
|
|
8929
|
+
this._ngZone?.runOutsideAngular(() => {
|
|
8930
|
+
this._listen('selectstart', this._onSelectStart, EventExtensions.activeListener());
|
|
8931
|
+
this._listen('mousemove', this._onMouseMove);
|
|
8932
|
+
this._listen('pointerup', this._onPointerUpEvent);
|
|
8933
|
+
this._listen('pointercancel', this._onPointerUpEvent, EventExtensions.activeCaptureListener());
|
|
8934
|
+
this._listen('contextmenu', this._preventDuringDrag, EventExtensions.activeCaptureListener());
|
|
8938
8935
|
});
|
|
8939
|
-
this.
|
|
8940
|
-
this.
|
|
8941
|
-
this.
|
|
8942
|
-
this.
|
|
8943
|
-
this.
|
|
8944
|
-
this.
|
|
8936
|
+
this._mouseListeners = () => {
|
|
8937
|
+
this._unlisten('selectstart', this._onSelectStart, EventExtensions.activeListener());
|
|
8938
|
+
this._unlisten('mousemove', this._onMouseMove);
|
|
8939
|
+
this._unlisten('pointerup', this._onPointerUpEvent);
|
|
8940
|
+
this._unlisten('pointercancel', this._onPointerUpEvent, EventExtensions.activeCaptureListener());
|
|
8941
|
+
this._unlisten('contextmenu', this._preventDuringDrag, EventExtensions.activeCaptureListener());
|
|
8945
8942
|
};
|
|
8946
8943
|
}
|
|
8947
8944
|
};
|
|
@@ -8951,30 +8948,30 @@ class DragAndDropBase {
|
|
|
8951
8948
|
* If not, it sets up the drag start sequence by adding necessary event listeners.
|
|
8952
8949
|
* @param event - The touch event that triggered the drag.
|
|
8953
8950
|
*/
|
|
8954
|
-
|
|
8951
|
+
_onTouchDown = (event) => {
|
|
8955
8952
|
const isFakeEvent = isFakeTouchstartFromScreenReader(event);
|
|
8956
8953
|
const touchEvent = new ITouchDownEvent(event);
|
|
8957
8954
|
if (isFakeEvent || this.disabled || this.isDragStarted) {
|
|
8958
8955
|
return;
|
|
8959
8956
|
}
|
|
8960
|
-
this.
|
|
8957
|
+
this._pointerDownElement = touchEvent.targetElement;
|
|
8961
8958
|
const result = this.onPointerDown(touchEvent);
|
|
8962
8959
|
if (result) {
|
|
8963
|
-
this.
|
|
8964
|
-
this.
|
|
8965
|
-
this.
|
|
8966
|
-
this.
|
|
8967
|
-
this.
|
|
8968
|
-
this.
|
|
8969
|
-
this.
|
|
8970
|
-
this.
|
|
8960
|
+
this._dragStartTime = Date.now();
|
|
8961
|
+
this._dragStartPosition = touchEvent.getPosition();
|
|
8962
|
+
this._ngZone?.runOutsideAngular(() => {
|
|
8963
|
+
this._listen('selectstart', this._onSelectStart, EventExtensions.activeListener());
|
|
8964
|
+
this._listen('touchmove', this._onTouchMove);
|
|
8965
|
+
this._listen('pointerup', this._onPointerUpEvent);
|
|
8966
|
+
this._listen('pointercancel', this._onPointerUpEvent, EventExtensions.activeCaptureListener());
|
|
8967
|
+
this._listen('contextmenu', this._preventDuringDrag, EventExtensions.activeCaptureListener());
|
|
8971
8968
|
});
|
|
8972
|
-
this.
|
|
8973
|
-
this.
|
|
8974
|
-
this.
|
|
8975
|
-
this.
|
|
8976
|
-
this.
|
|
8977
|
-
this.
|
|
8969
|
+
this._touchListeners = () => {
|
|
8970
|
+
this._unlisten('selectstart', this._onSelectStart, EventExtensions.activeListener());
|
|
8971
|
+
this._unlisten('touchmove', this._onTouchMove);
|
|
8972
|
+
this._unlisten('pointerup', this._onPointerUpEvent);
|
|
8973
|
+
this._unlisten('pointercancel', this._onPointerUpEvent, EventExtensions.activeCaptureListener());
|
|
8974
|
+
this._unlisten('contextmenu', this._preventDuringDrag, EventExtensions.activeCaptureListener());
|
|
8978
8975
|
};
|
|
8979
8976
|
}
|
|
8980
8977
|
};
|
|
@@ -8984,7 +8981,7 @@ class DragAndDropBase {
|
|
|
8984
8981
|
* It prevents the default behavior and calls the onSelect method to handle the selection.
|
|
8985
8982
|
* @param event - The event that triggered the select start.
|
|
8986
8983
|
*/
|
|
8987
|
-
|
|
8984
|
+
_onSelectStart = (event) => {
|
|
8988
8985
|
this.onSelect(event);
|
|
8989
8986
|
};
|
|
8990
8987
|
/**
|
|
@@ -8992,16 +8989,16 @@ class DragAndDropBase {
|
|
|
8992
8989
|
* It checks if the drag sequence should start and calls the move handler accordingly.
|
|
8993
8990
|
* @param event - The mouse event that triggered the move.
|
|
8994
8991
|
*/
|
|
8995
|
-
|
|
8996
|
-
this.
|
|
8992
|
+
_onMouseMove = (event) => {
|
|
8993
|
+
this._moveHandler(new IMouseEvent(event));
|
|
8997
8994
|
};
|
|
8998
8995
|
/**
|
|
8999
8996
|
* Handles the touch move event during the drag sequence.
|
|
9000
8997
|
* It checks if the drag sequence should start and calls the move handler accordingly.
|
|
9001
8998
|
* @param event - The touch event that triggered the move.
|
|
9002
8999
|
*/
|
|
9003
|
-
|
|
9004
|
-
this.
|
|
9000
|
+
_onTouchMove = (event) => {
|
|
9001
|
+
this._moveHandler(new ITouchMoveEvent(event));
|
|
9005
9002
|
};
|
|
9006
9003
|
/**
|
|
9007
9004
|
* Checks if the drag sequence should start based on the pointer position.
|
|
@@ -9011,25 +9008,25 @@ class DragAndDropBase {
|
|
|
9011
9008
|
* it prepares the drag sequence and sets the move handler to onPointerMove.
|
|
9012
9009
|
* @param event - The pointer event that triggered the check.
|
|
9013
9010
|
*/
|
|
9014
|
-
|
|
9011
|
+
_checkDragSequenceToStart(event) {
|
|
9015
9012
|
const pointerPosition = event.getPosition();
|
|
9016
|
-
if (!this.isDragStarted && this.
|
|
9017
|
-
event.setTarget(this.
|
|
9018
|
-
const distanceX = Math.abs(pointerPosition.x - this.
|
|
9019
|
-
const distanceY = Math.abs(pointerPosition.y - this.
|
|
9020
|
-
const isOverThreshold = distanceX + distanceY >= this.
|
|
9013
|
+
if (!this.isDragStarted && this._pointerDownElement) {
|
|
9014
|
+
event.setTarget(this._pointerDownElement);
|
|
9015
|
+
const distanceX = Math.abs(pointerPosition.x - this._dragStartPosition.x);
|
|
9016
|
+
const distanceY = Math.abs(pointerPosition.y - this._dragStartPosition.y);
|
|
9017
|
+
const isOverThreshold = distanceX + distanceY >= this._dragStartThreshold;
|
|
9021
9018
|
if (isOverThreshold) {
|
|
9022
|
-
const isDelayElapsed = Date.now() >= this.
|
|
9019
|
+
const isDelayElapsed = Date.now() >= this._dragStartTime + this._dragStartDelay;
|
|
9023
9020
|
if (!isDelayElapsed) {
|
|
9024
|
-
this.
|
|
9021
|
+
this._endDragSequence();
|
|
9025
9022
|
return;
|
|
9026
9023
|
}
|
|
9027
9024
|
event.preventDefault();
|
|
9028
9025
|
this.prepareDragSequence(event);
|
|
9029
9026
|
this.isDragStarted = true;
|
|
9030
|
-
this.
|
|
9027
|
+
this._moveHandler = this.onPointerMove;
|
|
9031
9028
|
if (isTouchEvent(event.originalEvent)) {
|
|
9032
|
-
this.
|
|
9029
|
+
this._lastTouchEventTime = Date.now();
|
|
9033
9030
|
}
|
|
9034
9031
|
}
|
|
9035
9032
|
}
|
|
@@ -9041,11 +9038,11 @@ class DragAndDropBase {
|
|
|
9041
9038
|
* This method is called when the user releases the mouse button or lifts their finger from the touch screen.
|
|
9042
9039
|
* @param event - The pointer event that triggered the up action.
|
|
9043
9040
|
*/
|
|
9044
|
-
|
|
9041
|
+
_onPointerUpEvent = (event) => {
|
|
9045
9042
|
if (this.isDragStarted) {
|
|
9046
9043
|
this.onPointerUp(new IPointerUpEvent(event));
|
|
9047
9044
|
}
|
|
9048
|
-
this.
|
|
9045
|
+
this._endDragSequence();
|
|
9049
9046
|
};
|
|
9050
9047
|
/**
|
|
9051
9048
|
* Ends the drag sequence by resetting the state and removing event listeners.
|
|
@@ -9053,39 +9050,42 @@ class DragAndDropBase {
|
|
|
9053
9050
|
* and resets the moveHandler to checkDragSequenceToStart.
|
|
9054
9051
|
* It also removes all mouse and touch event listeners that were added during the drag sequence.
|
|
9055
9052
|
*/
|
|
9056
|
-
|
|
9053
|
+
_endDragSequence() {
|
|
9057
9054
|
this.isDragStarted = false;
|
|
9058
|
-
this.
|
|
9059
|
-
this.
|
|
9060
|
-
this.
|
|
9061
|
-
this.
|
|
9062
|
-
this.
|
|
9063
|
-
this.
|
|
9055
|
+
this._pointerDownElement = null;
|
|
9056
|
+
this._moveHandler = this._checkDragSequenceToStart;
|
|
9057
|
+
this._mouseListeners();
|
|
9058
|
+
this._mouseListeners = EventExtensions.emptyListener();
|
|
9059
|
+
this._touchListeners();
|
|
9060
|
+
this._touchListeners = EventExtensions.emptyListener();
|
|
9064
9061
|
this.finalizeDragSequence();
|
|
9065
9062
|
}
|
|
9066
|
-
subscribe(
|
|
9067
|
-
|
|
9068
|
-
|
|
9069
|
-
|
|
9070
|
-
|
|
9071
|
-
this.ngZone?.runOutsideAngular(() => {
|
|
9072
|
-
fDocument.addEventListener('mousedown', this.onMouseDown, EventExtensions.activeListener());
|
|
9073
|
-
fDocument.addEventListener('touchstart', this.onTouchDown, EventExtensions.passiveListener());
|
|
9063
|
+
subscribe() {
|
|
9064
|
+
this.unsubscribe();
|
|
9065
|
+
this._ngZone?.runOutsideAngular(() => {
|
|
9066
|
+
this._listen('mousedown', this._onMouseDown, EventExtensions.activeListener());
|
|
9067
|
+
this._listen('touchstart', this._onTouchDown, EventExtensions.passiveListener());
|
|
9074
9068
|
});
|
|
9075
|
-
this.
|
|
9076
|
-
|
|
9077
|
-
|
|
9069
|
+
this._startListeners = () => {
|
|
9070
|
+
this._unlisten('mousedown', this._onMouseDown, EventExtensions.activeListener());
|
|
9071
|
+
this._unlisten('touchstart', this._onTouchDown, EventExtensions.passiveListener());
|
|
9078
9072
|
};
|
|
9079
9073
|
}
|
|
9080
9074
|
unsubscribe() {
|
|
9081
|
-
this.
|
|
9082
|
-
this.
|
|
9083
|
-
this.
|
|
9084
|
-
this.
|
|
9085
|
-
this.
|
|
9086
|
-
this.
|
|
9087
|
-
}
|
|
9088
|
-
|
|
9075
|
+
this._startListeners();
|
|
9076
|
+
this._startListeners = EventExtensions.emptyListener();
|
|
9077
|
+
this._touchListeners();
|
|
9078
|
+
this._touchListeners = EventExtensions.emptyListener();
|
|
9079
|
+
this._mouseListeners();
|
|
9080
|
+
this._mouseListeners = EventExtensions.emptyListener();
|
|
9081
|
+
}
|
|
9082
|
+
_listen(type, listener, options) {
|
|
9083
|
+
this._document.addEventListener(type, listener, options);
|
|
9084
|
+
}
|
|
9085
|
+
_unlisten(type, listener, options) {
|
|
9086
|
+
this._document.removeEventListener(type, listener, options);
|
|
9087
|
+
}
|
|
9088
|
+
_preventDuringDrag = (e) => {
|
|
9089
9089
|
if (this.isDragStarted) {
|
|
9090
9090
|
e.preventDefault();
|
|
9091
9091
|
}
|
|
@@ -9106,9 +9106,7 @@ function isFakeTouchstartFromScreenReader(event) {
|
|
|
9106
9106
|
}
|
|
9107
9107
|
|
|
9108
9108
|
class FDraggableBase extends DragAndDropBase {
|
|
9109
|
-
|
|
9110
|
-
super(ngZone || undefined);
|
|
9111
|
-
}
|
|
9109
|
+
hostElement = inject(ElementRef).nativeElement;
|
|
9112
9110
|
}
|
|
9113
9111
|
|
|
9114
9112
|
const F_BEFORE_MAIN_PLUGIN = new InjectionToken('F_BEFORE_MAIN_PLUGIN');
|
|
@@ -9170,11 +9168,9 @@ function isDragBlocker(element) {
|
|
|
9170
9168
|
// │ To Start │
|
|
9171
9169
|
// └──────────────────────────────────────┘
|
|
9172
9170
|
class FDraggableDirective extends FDraggableBase {
|
|
9173
|
-
hostElement = inject(ElementRef).nativeElement;
|
|
9174
9171
|
_result = inject(FDragHandlerResult);
|
|
9175
9172
|
_mediator = inject(FMediator);
|
|
9176
9173
|
_platform = inject(PlatformService);
|
|
9177
|
-
_browser = inject(BrowserService);
|
|
9178
9174
|
disabled = false;
|
|
9179
9175
|
fMultiSelectTrigger = (event) => {
|
|
9180
9176
|
return this._platform.getOS() === EOperationSystem.MAC_OS ? event.metaKey : event.ctrlKey;
|
|
@@ -9222,14 +9218,11 @@ class FDraggableDirective extends FDraggableBase {
|
|
|
9222
9218
|
fDragEnded = new EventEmitter();
|
|
9223
9219
|
_beforePlugins;
|
|
9224
9220
|
_afterPlugins;
|
|
9225
|
-
constructor() {
|
|
9226
|
-
super(inject(NgZone, { optional: true }));
|
|
9227
|
-
}
|
|
9228
9221
|
ngOnInit() {
|
|
9229
9222
|
this._mediator.execute(new AddDndToStoreRequest(this));
|
|
9230
9223
|
}
|
|
9231
9224
|
ngAfterViewInit() {
|
|
9232
|
-
super.subscribe(
|
|
9225
|
+
super.subscribe();
|
|
9233
9226
|
}
|
|
9234
9227
|
onPointerDown(event) {
|
|
9235
9228
|
if (isDragBlocker(event.targetElement)) {
|
|
@@ -9287,7 +9280,7 @@ class FDraggableDirective extends FDraggableBase {
|
|
|
9287
9280
|
this._mediator.execute(new RemoveDndFromStoreRequest());
|
|
9288
9281
|
super.unsubscribe();
|
|
9289
9282
|
}
|
|
9290
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FDraggableDirective, deps:
|
|
9283
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FDraggableDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
9291
9284
|
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.13", type: FDraggableDirective, selector: "f-flow[fDraggable]", inputs: { disabled: { classPropertyName: "disabled", publicName: "fDraggableDisabled", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, fMultiSelectTrigger: { classPropertyName: "fMultiSelectTrigger", publicName: "fMultiSelectTrigger", isSignal: false, isRequired: false, transformFunction: null }, fReassignConnectionTrigger: { classPropertyName: "fReassignConnectionTrigger", publicName: "fReassignConnectionTrigger", isSignal: false, isRequired: false, transformFunction: null }, fCreateConnectionTrigger: { classPropertyName: "fCreateConnectionTrigger", publicName: "fCreateConnectionTrigger", isSignal: false, isRequired: false, transformFunction: null }, fNodeResizeTrigger: { classPropertyName: "fNodeResizeTrigger", publicName: "fNodeResizeTrigger", isSignal: false, isRequired: false, transformFunction: null }, fNodeRotateTrigger: { classPropertyName: "fNodeRotateTrigger", publicName: "fNodeRotateTrigger", isSignal: false, isRequired: false, transformFunction: null }, fNodeMoveTrigger: { classPropertyName: "fNodeMoveTrigger", publicName: "fNodeMoveTrigger", isSignal: false, isRequired: false, transformFunction: null }, fCanvasMoveTrigger: { classPropertyName: "fCanvasMoveTrigger", publicName: "fCanvasMoveTrigger", isSignal: false, isRequired: false, transformFunction: null }, fExternalItemTrigger: { classPropertyName: "fExternalItemTrigger", publicName: "fExternalItemTrigger", isSignal: false, isRequired: false, transformFunction: null }, fEmitOnNodeIntersect: { classPropertyName: "fEmitOnNodeIntersect", publicName: "fEmitOnNodeIntersect", isSignal: false, isRequired: false, transformFunction: booleanAttribute }, vCellSize: { classPropertyName: "vCellSize", publicName: "vCellSize", isSignal: true, isRequired: false, transformFunction: null }, hCellSize: { classPropertyName: "hCellSize", publicName: "hCellSize", isSignal: true, isRequired: false, transformFunction: null }, fCellSizeWhileDragging: { classPropertyName: "fCellSizeWhileDragging", publicName: "fCellSizeWhileDragging", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { fSelectionChange: "fSelectionChange", fNodeIntersectedWithConnections: "fNodeIntersectedWithConnections", fCreateNode: "fCreateNode", fMoveNodes: "fMoveNodes", fReassignConnection: "fReassignConnection", fCreateConnection: "fCreateConnection", fDropToGroup: "fDropToGroup", fDragStarted: "fDragStarted", fDragEnded: "fDragEnded" }, providers: [FDragHandlerResult], queries: [{ propertyName: "_beforePlugins", predicate: F_BEFORE_MAIN_PLUGIN, descendants: true }, { propertyName: "_afterPlugins", predicate: F_AFTER_MAIN_PLUGIN, descendants: true }], exportAs: ["fDraggable"], usesInheritance: true, ngImport: i0 });
|
|
9292
9285
|
}
|
|
9293
9286
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FDraggableDirective, decorators: [{
|
|
@@ -9297,7 +9290,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
9297
9290
|
exportAs: 'fDraggable',
|
|
9298
9291
|
providers: [FDragHandlerResult],
|
|
9299
9292
|
}]
|
|
9300
|
-
}],
|
|
9293
|
+
}], propDecorators: { disabled: [{
|
|
9301
9294
|
type: Input,
|
|
9302
9295
|
args: [{ transform: booleanAttribute, alias: 'fDraggableDisabled' }]
|
|
9303
9296
|
}], fMultiSelectTrigger: [{
|
|
@@ -12536,7 +12529,7 @@ class FCanvasComponent extends FCanvasBase {
|
|
|
12536
12529
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FCanvasComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
12537
12530
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.13", type: FCanvasComponent, isStandalone: true, selector: "f-canvas", inputs: { position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, scale: { classPropertyName: "scale", publicName: "scale", isSignal: true, isRequired: false, transformFunction: null }, debounceTime: { classPropertyName: "debounceTime", publicName: "debounceTime", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { fCanvasChange: "fCanvasChange" }, host: { classAttribute: "f-component f-canvas" }, providers: [
|
|
12538
12531
|
{ provide: F_CANVAS, useExisting: FCanvasComponent },
|
|
12539
|
-
], viewQueries: [{ propertyName: "fGroupsContainer", first: true, predicate: ["fGroupsContainer"], descendants: true, isSignal: true }, { propertyName: "fNodesContainer", first: true, predicate: ["fNodesContainer"], descendants: true, isSignal: true }, { propertyName: "fConnectionsContainer", first: true, predicate: ["fConnectionsContainer"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<ng-container>\n <div #fGroupsContainer>\n <ng-content select=\"[fGroup]\"></ng-content>\n </div>\n <div #fConnectionsContainer>\n <ng-content select=\"f-snap-connection\"></ng-content>\n <ng-content select=\"f-connection\"></ng-content>\n <ng-content select=\"f-connection-for-create\"></ng-content>\n </div>\n\n <div #fNodesContainer>\n <ng-content select=\"[fNode]\"></ng-content>\n </div>\n</ng-container>\n", styles: [":host{position:absolute;overflow:visible;width:100%;height:100%;left:0;top:0;transform-origin:0 0;pointer-events:none}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
12532
|
+
], viewQueries: [{ propertyName: "fGroupsContainer", first: true, predicate: ["fGroupsContainer"], descendants: true, isSignal: true }, { propertyName: "fNodesContainer", first: true, predicate: ["fNodesContainer"], descendants: true, isSignal: true }, { propertyName: "fConnectionsContainer", first: true, predicate: ["fConnectionsContainer"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<ng-container>\n <div #fGroupsContainer>\n <ng-content select=\"[fGroup]\"></ng-content>\n </div>\n <div #fConnectionsContainer>\n <ng-content select=\"f-snap-connection\"></ng-content>\n <ng-content select=\"f-connection\"></ng-content>\n <ng-content select=\"f-connection-for-create\"></ng-content>\n </div>\n\n <div #fNodesContainer>\n <ng-content select=\"[fNode]\"></ng-content>\n </div>\n</ng-container>\n", styles: [":host{position:absolute;overflow:visible;width:100%;height:100%;left:0;top:0;transform-origin:0 0;pointer-events:none}:host.canvas-dragging{will-change:transform;transform:translateZ(0)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
12540
12533
|
}
|
|
12541
12534
|
__decorate([
|
|
12542
12535
|
Deprecated('setScale')
|
|
@@ -12550,7 +12543,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
12550
12543
|
'class': 'f-component f-canvas',
|
|
12551
12544
|
}, providers: [
|
|
12552
12545
|
{ provide: F_CANVAS, useExisting: FCanvasComponent },
|
|
12553
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container>\n <div #fGroupsContainer>\n <ng-content select=\"[fGroup]\"></ng-content>\n </div>\n <div #fConnectionsContainer>\n <ng-content select=\"f-snap-connection\"></ng-content>\n <ng-content select=\"f-connection\"></ng-content>\n <ng-content select=\"f-connection-for-create\"></ng-content>\n </div>\n\n <div #fNodesContainer>\n <ng-content select=\"[fNode]\"></ng-content>\n </div>\n</ng-container>\n", styles: [":host{position:absolute;overflow:visible;width:100%;height:100%;left:0;top:0;transform-origin:0 0;pointer-events:none}\n"] }]
|
|
12546
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container>\n <div #fGroupsContainer>\n <ng-content select=\"[fGroup]\"></ng-content>\n </div>\n <div #fConnectionsContainer>\n <ng-content select=\"f-snap-connection\"></ng-content>\n <ng-content select=\"f-connection\"></ng-content>\n <ng-content select=\"f-connection-for-create\"></ng-content>\n </div>\n\n <div #fNodesContainer>\n <ng-content select=\"[fNode]\"></ng-content>\n </div>\n</ng-container>\n", styles: [":host{position:absolute;overflow:visible;width:100%;height:100%;left:0;top:0;transform-origin:0 0;pointer-events:none}:host.canvas-dragging{will-change:transform;transform:translateZ(0)}\n"] }]
|
|
12554
12547
|
}], propDecorators: { setZoom: [], resetZoom: [] } });
|
|
12555
12548
|
|
|
12556
12549
|
const F_CANVAS_PROVIDERS = [
|
|
@@ -12787,7 +12780,7 @@ class FFlowComponent extends FFlowBase {
|
|
|
12787
12780
|
...COMMON_PROVIDERS,
|
|
12788
12781
|
...F_DRAGGABLE_PROVIDERS,
|
|
12789
12782
|
{ provide: F_FLOW, useExisting: FFlowComponent },
|
|
12790
|
-
], usesInheritance: true, ngImport: i0, template: "<ng-container>\n <ng-content select=\"[fDefinitions]\"></ng-content>\n\n <ng-content select=\"f-background\"></ng-content>\n\n <ng-content select=\"f-line-alignment\"></ng-content>\n\n <ng-content select=\"f-canvas\"></ng-content>\n\n <ng-content select=\"f-selection-area\"></ng-content>\n\n <ng-content></ng-content>\n</ng-container>\n", styles: [":host{display:block;position:relative;width:100%;height:100%;overflow:hidden;pointer-events:all;-webkit-user-select:none;user-select:none;touch-action:none}::ng-deep .f-connection-content{position:
|
|
12783
|
+
], usesInheritance: true, ngImport: i0, template: "<ng-container>\n <ng-content select=\"[fDefinitions]\"></ng-content>\n\n <ng-content select=\"f-background\"></ng-content>\n\n <ng-content select=\"f-line-alignment\"></ng-content>\n\n <ng-content select=\"f-canvas\"></ng-content>\n\n <ng-content select=\"f-selection-area\"></ng-content>\n\n <ng-content></ng-content>\n</ng-container>\n", styles: [":host{display:block;position:relative;width:100%;height:100%;overflow:hidden;pointer-events:all;-webkit-user-select:none;user-select:none;touch-action:none}::ng-deep .f-connection-content{position:absolute;left:0;top:0;pointer-events:all;transform-origin:50% 50%;will-change:transform}::ng-deep .f-node,::ng-deep .f-group{position:absolute!important;transform-origin:center;-webkit-user-select:none;user-select:none;pointer-events:all;left:0!important;top:0!important}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
12791
12784
|
}
|
|
12792
12785
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FFlowComponent, decorators: [{
|
|
12793
12786
|
type: Component,
|
|
@@ -12802,7 +12795,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
12802
12795
|
...COMMON_PROVIDERS,
|
|
12803
12796
|
...F_DRAGGABLE_PROVIDERS,
|
|
12804
12797
|
{ provide: F_FLOW, useExisting: FFlowComponent },
|
|
12805
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container>\n <ng-content select=\"[fDefinitions]\"></ng-content>\n\n <ng-content select=\"f-background\"></ng-content>\n\n <ng-content select=\"f-line-alignment\"></ng-content>\n\n <ng-content select=\"f-canvas\"></ng-content>\n\n <ng-content select=\"f-selection-area\"></ng-content>\n\n <ng-content></ng-content>\n</ng-container>\n", styles: [":host{display:block;position:relative;width:100%;height:100%;overflow:hidden;pointer-events:all;-webkit-user-select:none;user-select:none;touch-action:none}::ng-deep .f-connection-content{position:
|
|
12798
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container>\n <ng-content select=\"[fDefinitions]\"></ng-content>\n\n <ng-content select=\"f-background\"></ng-content>\n\n <ng-content select=\"f-line-alignment\"></ng-content>\n\n <ng-content select=\"f-canvas\"></ng-content>\n\n <ng-content select=\"f-selection-area\"></ng-content>\n\n <ng-content></ng-content>\n</ng-container>\n", styles: [":host{display:block;position:relative;width:100%;height:100%;overflow:hidden;pointer-events:all;-webkit-user-select:none;user-select:none;touch-action:none}::ng-deep .f-connection-content{position:absolute;left:0;top:0;pointer-events:all;transform-origin:50% 50%;will-change:transform}::ng-deep .f-node,::ng-deep .f-group{position:absolute!important;transform-origin:center;-webkit-user-select:none;user-select:none;pointer-events:all;left:0!important;top:0!important}\n"] }]
|
|
12806
12799
|
}] });
|
|
12807
12800
|
|
|
12808
12801
|
const F_FLOW_PROVIDERS = [
|