@foblex/flow 12.2.0 → 12.2.2

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 (53) hide show
  1. package/domain/index.d.ts +1 -2
  2. package/domain/providers.d.ts +2 -3
  3. package/domain/update-item-layer/index.d.ts +2 -0
  4. package/domain/update-item-layer/update-item-layer.handler.d.ts +8 -0
  5. package/domain/update-item-layer/update-item-layer.request.d.ts +6 -0
  6. package/esm2022/domain/get-element-rect-in-flow/get-element-rect-in-flow.handler.mjs +1 -1
  7. package/esm2022/domain/index.mjs +2 -3
  8. package/esm2022/domain/providers.mjs +6 -5
  9. package/esm2022/domain/redraw-connections/redraw-connections.handler.mjs +2 -2
  10. package/esm2022/domain/update-item-layer/index.mjs +3 -0
  11. package/esm2022/domain/update-item-layer/update-item-layer.handler.mjs +29 -0
  12. package/esm2022/domain/update-item-layer/update-item-layer.request.mjs +7 -0
  13. package/esm2022/f-components-store.mjs +10 -1
  14. package/esm2022/f-connection/common/f-connection-base.mjs +1 -1
  15. package/esm2022/f-connection/common/mixins/change-connection-selection.mixin.mjs +2 -1
  16. package/esm2022/f-connection/f-connection/f-connection.component.mjs +3 -3
  17. package/esm2022/f-draggable/connections/create-connection/create-connection.on-pointer-up.mjs +13 -15
  18. package/esm2022/f-draggable/connections/create-connection/f-create-connection.event.mjs +3 -2
  19. package/esm2022/f-draggable/connections/reassign-connection/reassign-connection.prepare-drag-sequence.mjs +6 -6
  20. package/esm2022/f-draggable/f-draggable-data-context.mjs +4 -1
  21. package/esm2022/f-draggable/node/node.prepare-drag-sequence.mjs +6 -6
  22. package/esm2022/f-draggable/single-select/single-select.on-pointer-down.mjs +45 -55
  23. package/esm2022/f-flow.module.mjs +4 -1
  24. package/esm2022/f-group/f-group-base.mjs +13 -0
  25. package/esm2022/f-group/f-group.directive.mjs +57 -0
  26. package/esm2022/f-group/index.mjs +4 -0
  27. package/esm2022/f-group/is-group.mjs +4 -0
  28. package/esm2022/public-api.mjs +2 -1
  29. package/f-components-store.d.ts +4 -0
  30. package/f-connection/common/mixins/change-connection-selection.mixin.d.ts +1 -0
  31. package/f-draggable/canvas/providers.d.ts +1 -1
  32. package/f-draggable/connections/create-connection/f-create-connection.event.d.ts +4 -2
  33. package/f-draggable/connections/providers.d.ts +1 -1
  34. package/f-draggable/connections/reassign-connection/reassign-connection.prepare-drag-sequence.d.ts +2 -3
  35. package/f-draggable/external-item/providers.d.ts +1 -1
  36. package/f-draggable/f-draggable-data-context.d.ts +1 -0
  37. package/f-draggable/node/node.prepare-drag-sequence.d.ts +2 -3
  38. package/f-draggable/node/providers.d.ts +1 -1
  39. package/f-draggable/selection-area/providers.d.ts +1 -1
  40. package/f-draggable/single-select/single-select.on-pointer-down.d.ts +11 -6
  41. package/f-flow.module.d.ts +14 -13
  42. package/f-group/f-group-base.d.ts +12 -0
  43. package/f-group/f-group.directive.d.ts +21 -0
  44. package/f-group/index.d.ts +3 -0
  45. package/f-group/is-group.d.ts +1 -0
  46. package/fesm2022/foblex-flow.mjs +205 -156
  47. package/fesm2022/foblex-flow.mjs.map +1 -1
  48. package/package.json +1 -1
  49. package/public-api.d.ts +1 -0
  50. package/domain/update-connection-layer.handler.d.ts +0 -12
  51. package/domain/update-node-layer.handler.d.ts +0 -12
  52. package/esm2022/domain/update-connection-layer.handler.mjs +0 -29
  53. package/esm2022/domain/update-node-layer.handler.mjs +0 -29
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@foblex/flow",
3
- "version": "12.2.0",
3
+ "version": "12.2.2",
4
4
  "description": "An Angular library designed to simplify the creation and manipulation of dynamic flow. Provides components for flows, nodes, and connections, automating node manipulation and inter-node connections.",
5
5
  "main": "index.js",
6
6
  "types": "index.d.ts",
package/public-api.d.ts CHANGED
@@ -8,6 +8,7 @@ export * from './f-external-item';
8
8
  export * from './f-line-alignment';
9
9
  export * from './f-selection-area';
10
10
  export * from './f-flow';
11
+ export * from './f-group';
11
12
  export * from './f-node';
12
13
  export * from './f-mediator';
13
14
  export * from './f-components-store';
@@ -1,12 +0,0 @@
1
- import { IHandler } from '@foblex/core';
2
- import { FComponentsStore } from '../f-components-store';
3
- import { FConnectionBase } from '../f-connection';
4
- import * as i0 from "@angular/core";
5
- export declare class UpdateConnectionLayerHandler implements IHandler<FConnectionBase, void> {
6
- private fComponentsStore;
7
- private get fConnectionsContainer();
8
- constructor(fComponentsStore: FComponentsStore);
9
- handle(connection: FConnectionBase): void;
10
- static ɵfac: i0.ɵɵFactoryDeclaration<UpdateConnectionLayerHandler, never>;
11
- static ɵprov: i0.ɵɵInjectableDeclaration<UpdateConnectionLayerHandler>;
12
- }
@@ -1,12 +0,0 @@
1
- import { IHandler } from '@foblex/core';
2
- import { FComponentsStore } from '../f-components-store';
3
- import { FNodeBase } from '../f-node';
4
- import * as i0 from "@angular/core";
5
- export declare class UpdateNodeLayerHandler implements IHandler<FNodeBase, void> {
6
- private fComponentsStore;
7
- private get fNodesContainer();
8
- constructor(fComponentsStore: FComponentsStore);
9
- handle(node: FNodeBase): void;
10
- static ɵfac: i0.ɵɵFactoryDeclaration<UpdateNodeLayerHandler, never>;
11
- static ɵprov: i0.ɵɵInjectableDeclaration<UpdateNodeLayerHandler>;
12
- }
@@ -1,29 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "../f-components-store";
4
- export class UpdateConnectionLayerHandler {
5
- get fConnectionsContainer() {
6
- return this.fComponentsStore.fCanvas?.fConnectionsContainer?.nativeElement;
7
- }
8
- constructor(fComponentsStore) {
9
- this.fComponentsStore = fComponentsStore;
10
- }
11
- handle(connection) {
12
- const elements = Array.from(this.fConnectionsContainer.children);
13
- const elementsCount = elements.length;
14
- const targetIndex = elements.findIndex((x) => x === connection.hostElement);
15
- if (targetIndex !== elementsCount - 1) {
16
- const afterElements = elements.splice(targetIndex + 1);
17
- afterElements.forEach((x) => {
18
- this.fConnectionsContainer.removeChild(x);
19
- this.fConnectionsContainer.insertBefore(x, connection.hostElement);
20
- });
21
- }
22
- }
23
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: UpdateConnectionLayerHandler, deps: [{ token: i1.FComponentsStore }], target: i0.ɵɵFactoryTarget.Injectable }); }
24
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: UpdateConnectionLayerHandler }); }
25
- }
26
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: UpdateConnectionLayerHandler, decorators: [{
27
- type: Injectable
28
- }], ctorParameters: () => [{ type: i1.FComponentsStore }] });
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLWNvbm5lY3Rpb24tbGF5ZXIuaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZG9tYWluL3VwZGF0ZS1jb25uZWN0aW9uLWxheWVyLmhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBSzNDLE1BQU0sT0FBTyw0QkFBNEI7SUFFdkMsSUFBWSxxQkFBcUI7UUFDL0IsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGFBQWMsQ0FBQztJQUM5RSxDQUFDO0lBRUQsWUFDWSxnQkFBa0M7UUFBbEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtJQUU5QyxDQUFDO0lBRU0sTUFBTSxDQUFDLFVBQTJCO1FBQ3ZDLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2pFLE1BQU0sYUFBYSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUM7UUFDdEMsTUFBTSxXQUFXLEdBQVcsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNwRixJQUFJLFdBQVcsS0FBSyxhQUFhLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDdEMsTUFBTSxhQUFhLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDdkQsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUMxQixJQUFJLENBQUMscUJBQXFCLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUMxQyxJQUFJLENBQUMscUJBQXFCLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBRSxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDckUsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQzs4R0F0QlUsNEJBQTRCO2tIQUE1Qiw0QkFBNEI7OzJGQUE1Qiw0QkFBNEI7a0JBRHhDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJSGFuZGxlciB9IGZyb20gJ0Bmb2JsZXgvY29yZSc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGQ29tcG9uZW50c1N0b3JlIH0gZnJvbSAnLi4vZi1jb21wb25lbnRzLXN0b3JlJztcbmltcG9ydCB7IEZDb25uZWN0aW9uQmFzZSB9IGZyb20gJy4uL2YtY29ubmVjdGlvbic7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBVcGRhdGVDb25uZWN0aW9uTGF5ZXJIYW5kbGVyIGltcGxlbWVudHMgSUhhbmRsZXI8RkNvbm5lY3Rpb25CYXNlLCB2b2lkPiB7XG5cbiAgcHJpdmF0ZSBnZXQgZkNvbm5lY3Rpb25zQ29udGFpbmVyKCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5mQ29tcG9uZW50c1N0b3JlLmZDYW52YXM/LmZDb25uZWN0aW9uc0NvbnRhaW5lcj8ubmF0aXZlRWxlbWVudCE7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICAgIHByaXZhdGUgZkNvbXBvbmVudHNTdG9yZTogRkNvbXBvbmVudHNTdG9yZSxcbiAgKSB7XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlKGNvbm5lY3Rpb246IEZDb25uZWN0aW9uQmFzZSk6IHZvaWQge1xuICAgIGNvbnN0IGVsZW1lbnRzID0gQXJyYXkuZnJvbSh0aGlzLmZDb25uZWN0aW9uc0NvbnRhaW5lci5jaGlsZHJlbik7XG4gICAgY29uc3QgZWxlbWVudHNDb3VudCA9IGVsZW1lbnRzLmxlbmd0aDtcbiAgICBjb25zdCB0YXJnZXRJbmRleDogbnVtYmVyID0gZWxlbWVudHMuZmluZEluZGV4KCh4KSA9PiB4ID09PSBjb25uZWN0aW9uLmhvc3RFbGVtZW50KTtcbiAgICBpZiAodGFyZ2V0SW5kZXggIT09IGVsZW1lbnRzQ291bnQgLSAxKSB7XG4gICAgICBjb25zdCBhZnRlckVsZW1lbnRzID0gZWxlbWVudHMuc3BsaWNlKHRhcmdldEluZGV4ICsgMSk7XG4gICAgICBhZnRlckVsZW1lbnRzLmZvckVhY2goKHgpID0+IHtcbiAgICAgICAgdGhpcy5mQ29ubmVjdGlvbnNDb250YWluZXIucmVtb3ZlQ2hpbGQoeCk7XG4gICAgICAgIHRoaXMuZkNvbm5lY3Rpb25zQ29udGFpbmVyLmluc2VydEJlZm9yZSh4LCBjb25uZWN0aW9uLmhvc3RFbGVtZW50KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -1,29 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "../f-components-store";
4
- export class UpdateNodeLayerHandler {
5
- get fNodesContainer() {
6
- return this.fComponentsStore.fCanvas?.fNodesContainer?.nativeElement;
7
- }
8
- constructor(fComponentsStore) {
9
- this.fComponentsStore = fComponentsStore;
10
- }
11
- handle(node) {
12
- const elements = Array.from(this.fNodesContainer.children);
13
- const elementsCount = elements.length;
14
- const targetIndex = elements.findIndex((x) => x === node.hostElement);
15
- if (targetIndex !== elementsCount - 1) {
16
- const afterElements = elements.splice(targetIndex + 1);
17
- afterElements.forEach((x) => {
18
- this.fNodesContainer.removeChild(x);
19
- this.fNodesContainer.insertBefore(x, node.hostElement);
20
- });
21
- }
22
- }
23
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: UpdateNodeLayerHandler, deps: [{ token: i1.FComponentsStore }], target: i0.ɵɵFactoryTarget.Injectable }); }
24
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: UpdateNodeLayerHandler }); }
25
- }
26
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.1", ngImport: i0, type: UpdateNodeLayerHandler, decorators: [{
27
- type: Injectable
28
- }], ctorParameters: () => [{ type: i1.FComponentsStore }] });
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLW5vZGUtbGF5ZXIuaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZG9tYWluL3VwZGF0ZS1ub2RlLWxheWVyLmhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBSzNDLE1BQU0sT0FBTyxzQkFBc0I7SUFFakMsSUFBWSxlQUFlO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYyxDQUFDO0lBQ3hFLENBQUM7SUFFRCxZQUNZLGdCQUFrQztRQUFsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO0lBRTlDLENBQUM7SUFFTSxNQUFNLENBQUMsSUFBZTtRQUMzQixNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDM0QsTUFBTSxhQUFhLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQztRQUN0QyxNQUFNLFdBQVcsR0FBVyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzlFLElBQUksV0FBVyxLQUFLLGFBQWEsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN0QyxNQUFNLGFBQWEsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUN2RCxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQzFCLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNwQyxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ3pELENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7OEdBdEJVLHNCQUFzQjtrSEFBdEIsc0JBQXNCOzsyRkFBdEIsc0JBQXNCO2tCQURsQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUhhbmRsZXIgfSBmcm9tICdAZm9ibGV4L2NvcmUnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRkNvbXBvbmVudHNTdG9yZSB9IGZyb20gJy4uL2YtY29tcG9uZW50cy1zdG9yZSc7XG5pbXBvcnQgeyBGTm9kZUJhc2UgfSBmcm9tICcuLi9mLW5vZGUnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVXBkYXRlTm9kZUxheWVySGFuZGxlciBpbXBsZW1lbnRzIElIYW5kbGVyPEZOb2RlQmFzZSwgdm9pZD4ge1xuXG4gIHByaXZhdGUgZ2V0IGZOb2Rlc0NvbnRhaW5lcigpOiBIVE1MRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mQ2FudmFzPy5mTm9kZXNDb250YWluZXI/Lm5hdGl2ZUVsZW1lbnQhO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgICBwcml2YXRlIGZDb21wb25lbnRzU3RvcmU6IEZDb21wb25lbnRzU3RvcmUsXG4gICkge1xuICB9XG5cbiAgcHVibGljIGhhbmRsZShub2RlOiBGTm9kZUJhc2UpOiB2b2lkIHtcbiAgICBjb25zdCBlbGVtZW50cyA9IEFycmF5LmZyb20odGhpcy5mTm9kZXNDb250YWluZXIuY2hpbGRyZW4pO1xuICAgIGNvbnN0IGVsZW1lbnRzQ291bnQgPSBlbGVtZW50cy5sZW5ndGg7XG4gICAgY29uc3QgdGFyZ2V0SW5kZXg6IG51bWJlciA9IGVsZW1lbnRzLmZpbmRJbmRleCgoeCkgPT4geCA9PT0gbm9kZS5ob3N0RWxlbWVudCk7XG4gICAgaWYgKHRhcmdldEluZGV4ICE9PSBlbGVtZW50c0NvdW50IC0gMSkge1xuICAgICAgY29uc3QgYWZ0ZXJFbGVtZW50cyA9IGVsZW1lbnRzLnNwbGljZSh0YXJnZXRJbmRleCArIDEpO1xuICAgICAgYWZ0ZXJFbGVtZW50cy5mb3JFYWNoKCh4KSA9PiB7XG4gICAgICAgIHRoaXMuZk5vZGVzQ29udGFpbmVyLnJlbW92ZUNoaWxkKHgpO1xuICAgICAgICB0aGlzLmZOb2Rlc0NvbnRhaW5lci5pbnNlcnRCZWZvcmUoeCwgbm9kZS5ob3N0RWxlbWVudCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==