@foblex/flow 1.0.1 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/esm2022/lib/components/f-connection/f-connection-base.mjs +6 -1
  2. package/esm2022/lib/components/f-connection/f-path/f-connection-path.component.mjs +4 -1
  3. package/esm2022/lib/components/f-flow/f-flow-base.mjs +9 -14
  4. package/esm2022/lib/components/f-flow/f-flow.component.mjs +6 -6
  5. package/esm2022/lib/components/f-node/f-node-base.mjs +7 -2
  6. package/esm2022/lib/components/f-node/f-node.component.mjs +1 -2
  7. package/esm2022/lib/components/f-node/index.mjs +2 -1
  8. package/esm2022/lib/components/f-node/is-node.mjs +4 -0
  9. package/esm2022/lib/directives/f-containers/f-items-container/canvas-change.event.mjs +7 -0
  10. package/esm2022/lib/directives/f-containers/f-items-container/f-items-container-base.mjs +5 -4
  11. package/esm2022/lib/directives/f-containers/f-items-container/f-items-container.directive.mjs +20 -3
  12. package/esm2022/lib/directives/f-containers/f-items-container/index.mjs +2 -1
  13. package/esm2022/lib/directives/f-containers/f-items-container/public-api.mjs +2 -1
  14. package/esm2022/lib/directives/f-draggable/connections/reassign-connection/reassign-on-pointer-up/reassign-connection.on-pointer-up.mjs +4 -1
  15. package/esm2022/lib/directives/f-draggable/selection/selection-on-pointer-down/selection.on-pointer-down.mjs +7 -6
  16. package/esm2022/lib/directives/f-zoom/f-zoom-base.mjs +5 -3
  17. package/esm2022/lib/f-flow.module.mjs +2 -2
  18. package/esm2022/lib/i-selectable.mjs +1 -1
  19. package/fesm2022/foblex-flow.mjs +497 -460
  20. package/fesm2022/foblex-flow.mjs.map +1 -1
  21. package/lib/components/f-connection/f-connection-base.d.ts +5 -1
  22. package/lib/components/f-connection/f-path/f-connection-path.component.d.ts +1 -0
  23. package/lib/components/f-flow/f-flow-base.d.ts +4 -4
  24. package/lib/components/f-flow/f-flow.component.d.ts +4 -4
  25. package/lib/components/f-node/f-node-base.d.ts +2 -0
  26. package/lib/components/f-node/f-node.component.d.ts +0 -1
  27. package/lib/components/f-node/index.d.ts +1 -0
  28. package/lib/components/f-node/is-node.d.ts +1 -0
  29. package/lib/directives/f-containers/f-items-container/canvas-change.event.d.ts +6 -0
  30. package/lib/directives/f-containers/f-items-container/f-items-container-base.d.ts +2 -1
  31. package/lib/directives/f-containers/f-items-container/f-items-container.directive.d.ts +6 -2
  32. package/lib/directives/f-containers/f-items-container/index.d.ts +1 -0
  33. package/lib/directives/f-containers/f-items-container/public-api.d.ts +1 -0
  34. package/lib/i-selectable.d.ts +1 -0
  35. package/package.json +3 -2
@@ -4,9 +4,11 @@ import { FNodeOutputBase } from '../f-connectors';
4
4
  import { IInputOutputModel } from './i-input-output-model';
5
5
  import { ISelectable } from '../../i-selectable';
6
6
  import { FConnectionPathComponent } from './f-path/f-connection-path.component';
7
+ import { IHasStateChanges } from '../../i-has-state-changes';
8
+ import { Subject } from 'rxjs';
7
9
  import * as i0 from "@angular/core";
8
10
  export declare const F_CONNECTION_COMPONENT: InjectionToken<FConnectionBase<FNodeOutputBase>>;
9
- export declare abstract class FConnectionBase<TOutput = FNodeOutputBase> implements IHasHostElement, ISelectable {
11
+ export declare abstract class FConnectionBase<TOutput = FNodeOutputBase> implements IHasHostElement, ISelectable, IHasStateChanges {
10
12
  abstract id: any;
11
13
  abstract hostElement: SVGGElement;
12
14
  abstract outputId: any;
@@ -15,6 +17,7 @@ export declare abstract class FConnectionBase<TOutput = FNodeOutputBase> impleme
15
17
  abstract fPath: FConnectionPathComponent;
16
18
  path: string;
17
19
  vector: IVector;
20
+ readonly stateChanges: Subject<void>;
18
21
  initialize(): void;
19
22
  isContains(element: HTMLElement | SVGElement): boolean;
20
23
  abstract initializeDrag(): void;
@@ -23,6 +26,7 @@ export declare abstract class FConnectionBase<TOutput = FNodeOutputBase> impleme
23
26
  abstract completeDrag(): void;
24
27
  deselect(): void;
25
28
  select(): void;
29
+ isSelected(): boolean;
26
30
  static ɵfac: i0.ɵɵFactoryDeclaration<FConnectionBase<any>, never>;
27
31
  static ɵdir: i0.ɵɵDirectiveDeclaration<FConnectionBase<any>, never, never, {}, {}, never, never, false, never>;
28
32
  }
@@ -15,6 +15,7 @@ export declare class FConnectionPathComponent implements IHasHostElement, ISelec
15
15
  setPath(path: string): void;
16
16
  select(): void;
17
17
  deselect(): void;
18
+ isSelected(): boolean;
18
19
  static ɵfac: i0.ɵɵFactoryDeclaration<FConnectionPathComponent, never>;
19
20
  static ɵcmp: i0.ɵɵComponentDeclaration<FConnectionPathComponent, "path[f-connection-path]", never, { "fromTo": { "alias": "fromTo"; "required": false; }; }, {}, never, never, false, never>;
20
21
  }
@@ -1,10 +1,10 @@
1
1
  import { AfterContentInit, ChangeDetectorRef, ElementRef, InjectionToken, NgZone, OnDestroy, QueryList } from '@angular/core';
2
2
  import { IHasHostElement, ITransformModel } from '@foblex/core';
3
- import { FItemsContainerBase } from '../../directives/f-containers/f-items-container';
3
+ import { FItemsContainerBase } from '../../directives';
4
4
  import { FNodeInputBase, FNodeOutletBase, FNodeOutputBase } from '../f-connectors';
5
- import { FBackgroundBase } from '../../internal/f-backgroud';
6
- import { FConnectionsContainerBase } from '../../directives/f-containers/f-connections-container/f-connections-container-base';
7
- import { FNodesContainerBase } from '../../directives/f-containers/f-nodes-container';
5
+ import { FBackgroundBase } from '../../internal';
6
+ import { FConnectionsContainerBase } from '../../directives';
7
+ import { FNodesContainerBase } from '../../directives';
8
8
  import * as i0 from "@angular/core";
9
9
  export declare const F_FLOW_COMPONENT: InjectionToken<FFlowBase>;
10
10
  export declare abstract class FFlowBase implements IHasHostElement, AfterContentInit, OnDestroy {
@@ -1,11 +1,11 @@
1
1
  import { ChangeDetectorRef, ElementRef, NgZone, QueryList } from '@angular/core';
2
- import { FItemsContainerBase } from '../../directives/f-containers/f-items-container';
2
+ import { FItemsContainerBase } from '../../directives';
3
3
  import { FFlowBase } from './f-flow-base';
4
4
  import { ITransformModel } from '@foblex/core';
5
5
  import { FNodeInputBase, FNodeOutletBase, FNodeOutputBase } from '../f-connectors';
6
- import { FNodesContainerBase } from '../../directives/f-containers/f-nodes-container';
7
- import { FConnectionsContainerBase } from '../../directives/f-containers/f-connections-container/f-connections-container-base';
8
- import { FBackgroundBase } from '../../internal/f-backgroud';
6
+ import { FNodesContainerBase } from '../../directives';
7
+ import { FConnectionsContainerBase } from '../../directives';
8
+ import { FBackgroundBase } from '../../internal';
9
9
  import * as i0 from "@angular/core";
10
10
  import * as i1 from "../../internal/f-canvas/f-canvas.directive";
11
11
  export declare const CONNECTION_MARKER_START = "connection-marker-start";
@@ -14,11 +14,13 @@ export declare abstract class FNodeBase implements IHasStateChanges, ISelectable
14
14
  readonly stateChanges: Subject<void>;
15
15
  abstract positionChange: EventEmitter<IPoint>;
16
16
  abstract position: IPoint;
17
+ protected _position: IPoint;
17
18
  abstract refresh(): void;
18
19
  isContains(element: HTMLElement | SVGElement): boolean;
19
20
  redraw(): void;
20
21
  deselect(): void;
21
22
  select(): void;
23
+ isSelected(): boolean;
22
24
  updatePosition(position: IPoint): void;
23
25
  completeDrag(): void;
24
26
  }
@@ -11,7 +11,6 @@ export declare class FNodeComponent extends FNodeBase implements OnInit, IHasHos
11
11
  fForeignObject: FForeignObjectBase;
12
12
  set position(value: PointInput);
13
13
  get position(): IPoint;
14
- private _position;
15
14
  positionChange: EventEmitter<IPoint>;
16
15
  get hostElement(): SVGGElement;
17
16
  constructor(elementReference: ElementRef<SVGGElement>);
@@ -2,3 +2,4 @@ export * from './f-drag-handle';
2
2
  export * from './f-foreign-object';
3
3
  export * from './f-node.component';
4
4
  export * from './f-node-base';
5
+ export * from './is-node';
@@ -0,0 +1 @@
1
+ export declare function isNode(element: HTMLElement | SVGElement): boolean;
@@ -0,0 +1,6 @@
1
+ import { IPoint } from '@foblex/core';
2
+ export declare class CanvasChangeEvent {
3
+ readonly position: IPoint;
4
+ readonly scale: number;
5
+ constructor(position: IPoint, scale: number);
6
+ }
@@ -1,6 +1,7 @@
1
1
  import { IHasHostElement, ITransformModel } from '@foblex/core';
2
2
  import { ElementRef, EventEmitter, InjectionToken } from '@angular/core';
3
3
  import { ICanChangePosition, ICanChangeZoom, ICanFitToParent, ICanOneToOneCentering } from '../../../common-behaviours';
4
+ import { CanvasChangeEvent } from './canvas-change.event';
4
5
  import * as i0 from "@angular/core";
5
6
  export declare const F_ITEMS_CONTAINER: InjectionToken<FItemsContainerBase>;
6
7
  declare const MIXIN_BASE: import("../../../common-behaviours").Constructor<ICanChangePosition> & import("../../../common-behaviours").AbstractConstructor<ICanChangePosition> & import("../../../common-behaviours").Constructor<ICanFitToParent> & import("../../../common-behaviours").AbstractConstructor<ICanFitToParent> & import("../../../common-behaviours").Constructor<ICanOneToOneCentering> & import("../../../common-behaviours").AbstractConstructor<ICanOneToOneCentering> & import("../../../common-behaviours").Constructor<ICanChangeZoom> & import("../../../common-behaviours").AbstractConstructor<ICanChangeZoom> & {
@@ -10,7 +11,7 @@ declare const MIXIN_BASE: import("../../../common-behaviours").Constructor<ICanC
10
11
  };
11
12
  export declare abstract class FItemsContainerBase extends MIXIN_BASE implements IHasHostElement, ICanChangePosition, ICanFitToParent, ICanOneToOneCentering, ICanChangeZoom {
12
13
  private elementReference;
13
- abstract canvasChange: EventEmitter<void>;
14
+ abstract canvasChange: EventEmitter<CanvasChangeEvent>;
14
15
  get hostElement(): SVGGElement;
15
16
  protected constructor(elementReference: ElementRef<SVGGElement>);
16
17
  parseData(): void;
@@ -1,9 +1,13 @@
1
1
  import { ElementRef, EventEmitter } from "@angular/core";
2
2
  import { FItemsContainerBase } from './f-items-container-base';
3
+ import { IPoint } from '@foblex/core';
4
+ import { CanvasChangeEvent } from './canvas-change.event';
3
5
  import * as i0 from "@angular/core";
4
6
  export declare class FItemsContainerDirective extends FItemsContainerBase {
5
- canvasChange: EventEmitter<void>;
7
+ canvasChange: EventEmitter<CanvasChangeEvent>;
8
+ set position(value: IPoint);
9
+ set scale(value: number);
6
10
  constructor(elementReference: ElementRef<SVGGElement>);
7
11
  static ɵfac: i0.ɵɵFactoryDeclaration<FItemsContainerDirective, never>;
8
- static ɵdir: i0.ɵɵDirectiveDeclaration<FItemsContainerDirective, "g[fItemsContainer]", ["fComponent"], {}, { "canvasChange": "canvasChange"; }, never, never, false, never>;
12
+ static ɵdir: i0.ɵɵDirectiveDeclaration<FItemsContainerDirective, "g[fItemsContainer]", ["fComponent"], { "position": { "alias": "position"; "required": false; }; "scale": { "alias": "scale"; "required": false; }; }, { "canvasChange": "canvasChange"; }, never, never, false, never>;
9
13
  }
@@ -1,2 +1,3 @@
1
1
  export * from './f-items-container.directive';
2
2
  export * from './f-items-container-base';
3
+ export * from './canvas-change.event';
@@ -1 +1,2 @@
1
1
  export * from './f-items-container.directive';
2
+ export * from './canvas-change.event';
@@ -2,5 +2,6 @@ export interface ISelectable {
2
2
  hostElement: HTMLElement | SVGElement;
3
3
  select(): void;
4
4
  deselect(): void;
5
+ isSelected(): boolean;
5
6
  }
6
7
  export declare const F_SELECTED_CLASS = "f-selected";
package/package.json CHANGED
@@ -1,10 +1,11 @@
1
1
  {
2
2
  "name": "@foblex/flow",
3
- "version": "1.0.1",
3
+ "version": "1.0.3",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^16.2.0",
6
6
  "@angular/core": "^16.2.0",
7
- "rxjs": "^7.8.0"
7
+ "rxjs": "^7.8.0",
8
+ "@foblex/core": "^1.0.0"
8
9
  },
9
10
  "dependencies": {
10
11
  "tslib": "^2.3.0"