@foblex/flow 17.0.5 → 17.0.7

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 (137) hide show
  1. package/domain/f-connection/find-closest-input/find-closest-input.execution.d.ts +11 -0
  2. package/domain/f-connection/{find-closest-input-using-snap-threshold/find-closest-input-using-snap-threshold.request.d.ts → find-closest-input/find-closest-input.request.d.ts} +2 -3
  3. package/domain/f-connection/find-closest-input/i-closest-input.d.ts +7 -0
  4. package/domain/f-connection/find-closest-input/index.d.ts +3 -0
  5. package/domain/f-connection/get-connector-with-rect/get-connector-with-rect.execution.d.ts +2 -3
  6. package/domain/f-connection/index.d.ts +1 -1
  7. package/domain/f-connection/providers.d.ts +2 -2
  8. package/domain/f-draggable/providers.d.ts +1 -1
  9. package/{f-draggable/domain → domain/f-node}/get-parent-nodes/get-parent-nodes.execution.d.ts +2 -4
  10. package/domain/f-node/index.d.ts +2 -0
  11. package/domain/f-node/providers.d.ts +3 -1
  12. package/domain/get-normalized-element-rect/get-normalized-element-rect-request.d.ts +2 -1
  13. package/domain/providers.d.ts +1 -1
  14. package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/calculate-connection-line-by-behavior.request.mjs +1 -1
  15. package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/fixed-center-behavior.mjs +5 -3
  16. package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/fixed-outbound-behavior.mjs +19 -29
  17. package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/floating-behavior.mjs +6 -3
  18. package/esm2022/domain/f-connection/find-closest-input/find-closest-input.execution.mjs +42 -0
  19. package/esm2022/domain/f-connection/find-closest-input/find-closest-input.request.mjs +9 -0
  20. package/esm2022/domain/f-connection/find-closest-input/i-closest-input.mjs +2 -0
  21. package/esm2022/domain/f-connection/find-closest-input/index.mjs +4 -0
  22. package/esm2022/domain/f-connection/get-connector-with-rect/get-connector-with-rect-request.mjs +1 -1
  23. package/esm2022/domain/f-connection/get-connector-with-rect/get-connector-with-rect.execution.mjs +7 -11
  24. package/esm2022/domain/f-connection/index.mjs +2 -2
  25. package/esm2022/domain/f-connection/providers.mjs +3 -3
  26. package/esm2022/domain/f-connection/redraw-connections/redraw-connections.execution.mjs +2 -2
  27. package/esm2022/domain/f-node/get-node-padding/get-node-padding.execution.mjs +34 -0
  28. package/esm2022/domain/f-node/get-node-padding/get-node-padding.request.mjs +9 -0
  29. package/esm2022/domain/f-node/get-node-padding/index.mjs +3 -0
  30. package/esm2022/domain/f-node/get-parent-nodes/get-parent-nodes.execution.mjs +34 -0
  31. package/esm2022/domain/f-node/get-parent-nodes/get-parent-nodes.request.mjs +7 -0
  32. package/esm2022/domain/f-node/get-parent-nodes/index.mjs +3 -0
  33. package/esm2022/domain/f-node/index.mjs +3 -1
  34. package/esm2022/domain/f-node/providers.mjs +5 -1
  35. package/esm2022/domain/f-selection/get-can-be-selected-items/get-can-be-selected-items.execution.mjs +3 -3
  36. package/esm2022/domain/get-normalized-element-rect/get-normalized-element-rect-request.mjs +4 -2
  37. package/esm2022/domain/get-normalized-element-rect/get-normalized-element-rect.execution.mjs +5 -5
  38. package/esm2022/f-connection/f-connection/f-connection.component.mjs +6 -5
  39. package/esm2022/f-draggable/connections/create-connection/create-connection.drag-handler.mjs +33 -19
  40. package/esm2022/f-draggable/connections/reassign-connection/reassign-connection.drag-handler.mjs +29 -21
  41. package/esm2022/f-draggable/domain/get-normalized-parent-node-rect/get-normalized-parent-node-rect.execution.mjs +6 -6
  42. package/esm2022/f-draggable/domain/index.mjs +1 -4
  43. package/esm2022/f-draggable/domain/is-array-has-parent-node/is-array-has-parent-node.execution.mjs +2 -2
  44. package/esm2022/f-draggable/domain/is-connection-under-node/is-connection-under-node.execution.mjs +2 -2
  45. package/esm2022/f-draggable/domain/is-connection-under-node/is-connection-under-node.request.mjs +1 -1
  46. package/esm2022/f-draggable/domain/providers.mjs +1 -7
  47. package/esm2022/f-draggable/f-draggable-base.mjs +1 -1
  48. package/esm2022/f-draggable/f-draggable.directive.mjs +8 -2
  49. package/esm2022/f-draggable/node/connection-base-drag-handler.mjs +2 -2
  50. package/esm2022/f-draggable/node/connection-source.drag-handler.mjs +2 -2
  51. package/esm2022/f-draggable/node/connection-target.drag-handler.mjs +2 -2
  52. package/esm2022/f-draggable/node/connection.drag-handler.mjs +2 -2
  53. package/esm2022/f-draggable/node/create-move-nodes-drag-model-from-selection/create-move-nodes-drag-model-from-selection.execution.mjs +32 -35
  54. package/esm2022/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/get-node-move-restrictions/get-node-move-restrictions.execution.mjs +12 -15
  55. package/esm2022/f-draggable/node/node-drag-to-parent-preparation/node-drag-to-parent-preparation.execution.mjs +15 -8
  56. package/esm2022/f-draggable/node/node-drag-to-parent.drag-handler.mjs +32 -17
  57. package/esm2022/f-draggable/node/node-move-finalize/node-move-finalize.execution.mjs +37 -31
  58. package/esm2022/f-draggable/node/node-move-preparation/node-move-preparation.execution.mjs +41 -43
  59. package/esm2022/f-draggable/node/node-move-preparation/node-move-preparation.validator.mjs +19 -23
  60. package/esm2022/f-draggable/node/node.drag-handler.mjs +25 -10
  61. package/esm2022/f-draggable/node-resize/get-node-resize-restrictions/get-node-resize-restrictions.execution.mjs +3 -2
  62. package/esm2022/f-draggable/node-resize/get-normalized-children-nodes-rect/get-normalized-children-nodes-rect.execution.mjs +4 -5
  63. package/esm2022/f-draggable/node-resize/node-resize.drag-handler.mjs +3 -3
  64. package/esm2022/f-external-item/domain/external-item-finalize/external-item-finalize.execution.mjs +2 -2
  65. package/esm2022/f-flow.module.mjs +1 -1
  66. package/esm2022/f-line-alignment/domain/index.mjs +1 -2
  67. package/esm2022/f-line-alignment/f-line-alignment.component.mjs +17 -12
  68. package/esm2022/f-node/f-drag-handle.directive.mjs +22 -0
  69. package/esm2022/f-node/index.mjs +3 -3
  70. package/esm2022/f-node/is-node.mjs +4 -0
  71. package/esm2022/f-node/providers.mjs +2 -2
  72. package/f-backgroud/providers.d.ts +1 -1
  73. package/f-connection/f-connection/f-connection.component.d.ts +4 -2
  74. package/f-connection/providers.d.ts +1 -1
  75. package/f-connectors/providers.d.ts +1 -1
  76. package/f-draggable/connections/create-connection/create-connection.drag-handler.d.ts +8 -4
  77. package/f-draggable/connections/providers.d.ts +1 -1
  78. package/f-draggable/connections/reassign-connection/reassign-connection.drag-handler.d.ts +7 -4
  79. package/f-draggable/domain/get-normalized-parent-node-rect/get-normalized-parent-node-rect.execution.d.ts +1 -1
  80. package/f-draggable/domain/index.d.ts +0 -3
  81. package/f-draggable/domain/providers.d.ts +1 -4
  82. package/f-draggable/f-draggable-base.d.ts +2 -0
  83. package/f-draggable/f-draggable.directive.d.ts +4 -2
  84. package/f-draggable/node/connection-base-drag-handler.d.ts +1 -1
  85. package/f-draggable/node/create-move-nodes-drag-model-from-selection/create-move-nodes-drag-model-from-selection.execution.d.ts +7 -9
  86. package/f-draggable/node/create-move-nodes-drag-model-from-selection/domain/get-node-move-restrictions/get-node-move-restrictions.execution.d.ts +3 -4
  87. package/f-draggable/node/create-move-nodes-drag-model-from-selection/providers.d.ts +1 -1
  88. package/f-draggable/node/node-drag-to-parent-preparation/node-drag-to-parent-preparation.execution.d.ts +4 -3
  89. package/f-draggable/node/node-drag-to-parent.drag-handler.d.ts +9 -4
  90. package/f-draggable/node/node-move-finalize/node-move-finalize.execution.d.ts +11 -11
  91. package/f-draggable/node/node-move-preparation/node-move-preparation.execution.d.ts +11 -14
  92. package/f-draggable/node/node-move-preparation/node-move-preparation.validator.d.ts +6 -9
  93. package/f-draggable/node/node.drag-handler.d.ts +9 -5
  94. package/f-draggable/node/providers.d.ts +1 -1
  95. package/f-draggable/providers.d.ts +1 -1
  96. package/f-flow.module.d.ts +1 -1
  97. package/f-line-alignment/domain/index.d.ts +0 -1
  98. package/f-line-alignment/f-line-alignment.component.d.ts +2 -1
  99. package/f-minimap/domain/providers.d.ts +1 -1
  100. package/f-node/{f-drag-handle/f-drag-handle.directive.d.ts → f-drag-handle.directive.d.ts} +1 -1
  101. package/f-node/index.d.ts +2 -2
  102. package/f-node/providers.d.ts +2 -2
  103. package/f-storage/providers.d.ts +1 -1
  104. package/fesm2022/foblex-flow.mjs +409 -482
  105. package/fesm2022/foblex-flow.mjs.map +1 -1
  106. package/package.json +3 -3
  107. package/domain/f-connection/find-closest-input-using-snap-threshold/find-closest-input-using-snap-threshold.execution.d.ts +0 -11
  108. package/domain/f-connection/find-closest-input-using-snap-threshold/index.d.ts +0 -2
  109. package/esm2022/domain/f-connection/find-closest-input-using-snap-threshold/find-closest-input-using-snap-threshold.execution.mjs +0 -39
  110. package/esm2022/domain/f-connection/find-closest-input-using-snap-threshold/find-closest-input-using-snap-threshold.request.mjs +0 -11
  111. package/esm2022/domain/f-connection/find-closest-input-using-snap-threshold/index.mjs +0 -3
  112. package/esm2022/f-draggable/domain/get-node-padding/get-node-padding.execution.mjs +0 -34
  113. package/esm2022/f-draggable/domain/get-node-padding/get-node-padding.request.mjs +0 -9
  114. package/esm2022/f-draggable/domain/get-node-padding/index.mjs +0 -3
  115. package/esm2022/f-draggable/domain/get-normalized-node-rect/get-normalized-node-rect.execution.mjs +0 -30
  116. package/esm2022/f-draggable/domain/get-normalized-node-rect/get-normalized-node-rect.request.mjs +0 -7
  117. package/esm2022/f-draggable/domain/get-normalized-node-rect/index.mjs +0 -3
  118. package/esm2022/f-draggable/domain/get-parent-nodes/get-parent-nodes.execution.mjs +0 -37
  119. package/esm2022/f-draggable/domain/get-parent-nodes/get-parent-nodes.request.mjs +0 -7
  120. package/esm2022/f-draggable/domain/get-parent-nodes/index.mjs +0 -3
  121. package/esm2022/f-line-alignment/domain/nearest-coordinate.mjs +0 -104
  122. package/esm2022/f-node/domain/index.mjs +0 -2
  123. package/esm2022/f-node/domain/is-node.mjs +0 -4
  124. package/esm2022/f-node/f-drag-handle/f-drag-handle.directive.mjs +0 -22
  125. package/esm2022/f-node/f-drag-handle/index.mjs +0 -2
  126. package/f-draggable/domain/get-normalized-node-rect/get-normalized-node-rect.execution.d.ts +0 -13
  127. package/f-draggable/domain/get-normalized-node-rect/get-normalized-node-rect.request.d.ts +0 -5
  128. package/f-draggable/domain/get-normalized-node-rect/index.d.ts +0 -2
  129. package/f-line-alignment/domain/nearest-coordinate.d.ts +0 -27
  130. package/f-node/domain/index.d.ts +0 -1
  131. package/f-node/f-drag-handle/index.d.ts +0 -1
  132. /package/{f-draggable/domain → domain/f-node}/get-node-padding/get-node-padding.execution.d.ts +0 -0
  133. /package/{f-draggable/domain → domain/f-node}/get-node-padding/get-node-padding.request.d.ts +0 -0
  134. /package/{f-draggable/domain → domain/f-node}/get-node-padding/index.d.ts +0 -0
  135. /package/{f-draggable/domain → domain/f-node}/get-parent-nodes/get-parent-nodes.request.d.ts +0 -0
  136. /package/{f-draggable/domain → domain/f-node}/get-parent-nodes/index.d.ts +0 -0
  137. /package/f-node/{domain/is-node.d.ts → is-node.d.ts} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@foblex/flow",
3
- "version": "17.0.5",
3
+ "version": "17.0.7",
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",
@@ -32,8 +32,8 @@
32
32
  "@angular/common": ">=15.0.0",
33
33
  "@angular/core": ">=15.0.0",
34
34
  "@foblex/platform": "1.0.4",
35
- "@foblex/mediator": "1.1.0",
36
- "@foblex/2d": "1.1.5",
35
+ "@foblex/mediator": "1.1.2",
36
+ "@foblex/2d": "1.1.7",
37
37
  "@foblex/drag-toolkit": "1.1.0",
38
38
  "@foblex/utils": "1.1.0"
39
39
  },
@@ -1,11 +0,0 @@
1
- import { FindClosestInputUsingSnapThresholdRequest } from './find-closest-input-using-snap-threshold.request';
2
- import { IExecution } from '@foblex/mediator';
3
- import { IConnectorWithRect } from '../get-connector-with-rect';
4
- import * as i0 from "@angular/core";
5
- export declare class FindClosestInputUsingSnapThresholdExecution implements IExecution<FindClosestInputUsingSnapThresholdRequest, IConnectorWithRect | undefined> {
6
- handle(payload: FindClosestInputUsingSnapThresholdRequest): IConnectorWithRect | undefined;
7
- private distanceToRectangle;
8
- private clamp;
9
- static ɵfac: i0.ɵɵFactoryDeclaration<FindClosestInputUsingSnapThresholdExecution, never>;
10
- static ɵprov: i0.ɵɵInjectableDeclaration<FindClosestInputUsingSnapThresholdExecution>;
11
- }
@@ -1,2 +0,0 @@
1
- export * from './find-closest-input-using-snap-threshold.request';
2
- export * from './find-closest-input-using-snap-threshold.execution';
@@ -1,39 +0,0 @@
1
- import { __decorate } from "tslib";
2
- import { FindClosestInputUsingSnapThresholdRequest } from './find-closest-input-using-snap-threshold.request';
3
- import { Injectable } from '@angular/core';
4
- import { FExecutionRegister } from '@foblex/mediator';
5
- import * as i0 from "@angular/core";
6
- let FindClosestInputUsingSnapThresholdExecution = class FindClosestInputUsingSnapThresholdExecution {
7
- handle(payload) {
8
- let result;
9
- let minDistance = Infinity;
10
- for (const element of payload.canBeConnectedInputs) {
11
- const distance = this.distanceToRectangle(payload.position, element);
12
- if (distance < minDistance) {
13
- minDistance = distance;
14
- result = element;
15
- }
16
- }
17
- return minDistance < payload.snapThreshold ? result : undefined;
18
- }
19
- distanceToRectangle(point, inputWithRect) {
20
- const closestX = this.clamp(point.x, inputWithRect.fRect.x, inputWithRect.fRect.x + inputWithRect.fRect.width);
21
- const closestY = this.clamp(point.y, inputWithRect.fRect.y, inputWithRect.fRect.y + inputWithRect.fRect.height);
22
- const dx = point.x - closestX;
23
- const dy = point.y - closestY;
24
- return Math.sqrt(dx * dx + dy * dy);
25
- }
26
- clamp(value, min, max) {
27
- return Math.max(min, Math.min(max, value));
28
- }
29
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FindClosestInputUsingSnapThresholdExecution, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
30
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FindClosestInputUsingSnapThresholdExecution });
31
- };
32
- FindClosestInputUsingSnapThresholdExecution = __decorate([
33
- FExecutionRegister(FindClosestInputUsingSnapThresholdRequest)
34
- ], FindClosestInputUsingSnapThresholdExecution);
35
- export { FindClosestInputUsingSnapThresholdExecution };
36
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FindClosestInputUsingSnapThresholdExecution, decorators: [{
37
- type: Injectable
38
- }] });
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZC1jbG9zZXN0LWlucHV0LXVzaW5nLXNuYXAtdGhyZXNob2xkLmV4ZWN1dGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZG9tYWluL2YtY29ubmVjdGlvbi9maW5kLWNsb3Nlc3QtaW5wdXQtdXNpbmctc25hcC10aHJlc2hvbGQvZmluZC1jbG9zZXN0LWlucHV0LXVzaW5nLXNuYXAtdGhyZXNob2xkLmV4ZWN1dGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLHlDQUF5QyxFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDOUcsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsa0JBQWtCLEVBQWMsTUFBTSxrQkFBa0IsQ0FBQzs7QUFNM0QsSUFBTSwyQ0FBMkMsR0FBakQsTUFBTSwyQ0FBMkM7SUFJL0MsTUFBTSxDQUFDLE9BQWtEO1FBQzlELElBQUksTUFBc0MsQ0FBQztRQUMzQyxJQUFJLFdBQVcsR0FBRyxRQUFRLENBQUM7UUFFM0IsS0FBSyxNQUFNLE9BQU8sSUFBSSxPQUFPLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztZQUNuRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUVyRSxJQUFJLFFBQVEsR0FBRyxXQUFXLEVBQUUsQ0FBQztnQkFDM0IsV0FBVyxHQUFHLFFBQVEsQ0FBQztnQkFDdkIsTUFBTSxHQUFHLE9BQU8sQ0FBQztZQUNuQixDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sV0FBVyxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ2xFLENBQUM7SUFFTyxtQkFBbUIsQ0FBQyxLQUFhLEVBQUUsYUFBaUM7UUFDMUUsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0csTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFaEgsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDLENBQUMsR0FBRyxRQUFRLENBQUM7UUFDOUIsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDLENBQUMsR0FBRyxRQUFRLENBQUM7UUFFOUIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFTyxLQUFLLENBQUMsS0FBYSxFQUFFLEdBQVcsRUFBRSxHQUFXO1FBQ25ELE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUM3QyxDQUFDO3VHQWhDVSwyQ0FBMkM7MkdBQTNDLDJDQUEyQzs7QUFBM0MsMkNBQTJDO0lBRHZELGtCQUFrQixDQUFDLHlDQUF5QyxDQUFDO0dBQ2pELDJDQUEyQyxDQWlDdkQ7OzJGQWpDWSwyQ0FBMkM7a0JBRnZELFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGaW5kQ2xvc2VzdElucHV0VXNpbmdTbmFwVGhyZXNob2xkUmVxdWVzdCB9IGZyb20gJy4vZmluZC1jbG9zZXN0LWlucHV0LXVzaW5nLXNuYXAtdGhyZXNob2xkLnJlcXVlc3QnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRkV4ZWN1dGlvblJlZ2lzdGVyLCBJRXhlY3V0aW9uIH0gZnJvbSAnQGZvYmxleC9tZWRpYXRvcic7XG5pbXBvcnQgeyBJUG9pbnQgfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7IElDb25uZWN0b3JXaXRoUmVjdCB9IGZyb20gJy4uL2dldC1jb25uZWN0b3Itd2l0aC1yZWN0JztcblxuQEluamVjdGFibGUoKVxuQEZFeGVjdXRpb25SZWdpc3RlcihGaW5kQ2xvc2VzdElucHV0VXNpbmdTbmFwVGhyZXNob2xkUmVxdWVzdClcbmV4cG9ydCBjbGFzcyBGaW5kQ2xvc2VzdElucHV0VXNpbmdTbmFwVGhyZXNob2xkRXhlY3V0aW9uXG4gIGltcGxlbWVudHMgSUV4ZWN1dGlvbjxGaW5kQ2xvc2VzdElucHV0VXNpbmdTbmFwVGhyZXNob2xkUmVxdWVzdCwgSUNvbm5lY3RvcldpdGhSZWN0IHwgdW5kZWZpbmVkPiB7XG5cblxuICBwdWJsaWMgaGFuZGxlKHBheWxvYWQ6IEZpbmRDbG9zZXN0SW5wdXRVc2luZ1NuYXBUaHJlc2hvbGRSZXF1ZXN0KTogSUNvbm5lY3RvcldpdGhSZWN0IHwgdW5kZWZpbmVkIHtcbiAgICBsZXQgcmVzdWx0OiBJQ29ubmVjdG9yV2l0aFJlY3QgfCB1bmRlZmluZWQ7XG4gICAgbGV0IG1pbkRpc3RhbmNlID0gSW5maW5pdHk7XG5cbiAgICBmb3IgKGNvbnN0IGVsZW1lbnQgb2YgcGF5bG9hZC5jYW5CZUNvbm5lY3RlZElucHV0cykge1xuICAgICAgY29uc3QgZGlzdGFuY2UgPSB0aGlzLmRpc3RhbmNlVG9SZWN0YW5nbGUocGF5bG9hZC5wb3NpdGlvbiwgZWxlbWVudCk7XG5cbiAgICAgIGlmIChkaXN0YW5jZSA8IG1pbkRpc3RhbmNlKSB7XG4gICAgICAgIG1pbkRpc3RhbmNlID0gZGlzdGFuY2U7XG4gICAgICAgIHJlc3VsdCA9IGVsZW1lbnQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG1pbkRpc3RhbmNlIDwgcGF5bG9hZC5zbmFwVGhyZXNob2xkID8gcmVzdWx0IDogdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJpdmF0ZSBkaXN0YW5jZVRvUmVjdGFuZ2xlKHBvaW50OiBJUG9pbnQsIGlucHV0V2l0aFJlY3Q6IElDb25uZWN0b3JXaXRoUmVjdCk6IG51bWJlciB7XG4gICAgY29uc3QgY2xvc2VzdFggPSB0aGlzLmNsYW1wKHBvaW50LngsIGlucHV0V2l0aFJlY3QuZlJlY3QueCwgaW5wdXRXaXRoUmVjdC5mUmVjdC54ICsgaW5wdXRXaXRoUmVjdC5mUmVjdC53aWR0aCk7XG4gICAgY29uc3QgY2xvc2VzdFkgPSB0aGlzLmNsYW1wKHBvaW50LnksIGlucHV0V2l0aFJlY3QuZlJlY3QueSwgaW5wdXRXaXRoUmVjdC5mUmVjdC55ICsgaW5wdXRXaXRoUmVjdC5mUmVjdC5oZWlnaHQpO1xuXG4gICAgY29uc3QgZHggPSBwb2ludC54IC0gY2xvc2VzdFg7XG4gICAgY29uc3QgZHkgPSBwb2ludC55IC0gY2xvc2VzdFk7XG5cbiAgICByZXR1cm4gTWF0aC5zcXJ0KGR4ICogZHggKyBkeSAqIGR5KTtcbiAgfVxuXG4gIHByaXZhdGUgY2xhbXAodmFsdWU6IG51bWJlciwgbWluOiBudW1iZXIsIG1heDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICByZXR1cm4gTWF0aC5tYXgobWluLCBNYXRoLm1pbihtYXgsIHZhbHVlKSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,11 +0,0 @@
1
- export class FindClosestInputUsingSnapThresholdRequest {
2
- position;
3
- canBeConnectedInputs;
4
- snapThreshold;
5
- constructor(position, canBeConnectedInputs, snapThreshold) {
6
- this.position = position;
7
- this.canBeConnectedInputs = canBeConnectedInputs;
8
- this.snapThreshold = snapThreshold;
9
- }
10
- }
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluZC1jbG9zZXN0LWlucHV0LXVzaW5nLXNuYXAtdGhyZXNob2xkLnJlcXVlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2RvbWFpbi9mLWNvbm5lY3Rpb24vZmluZC1jbG9zZXN0LWlucHV0LXVzaW5nLXNuYXAtdGhyZXNob2xkL2ZpbmQtY2xvc2VzdC1pbnB1dC11c2luZy1zbmFwLXRocmVzaG9sZC5yZXF1ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE1BQU0sT0FBTyx5Q0FBeUM7SUFHM0M7SUFDQTtJQUNBO0lBSFQsWUFDUyxRQUFnQixFQUNoQixvQkFBMEMsRUFDMUMsYUFBcUI7UUFGckIsYUFBUSxHQUFSLFFBQVEsQ0FBUTtRQUNoQix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBQzFDLGtCQUFhLEdBQWIsYUFBYSxDQUFRO0lBRTlCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElQb2ludCB9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuaW1wb3J0IHsgSUNvbm5lY3RvcldpdGhSZWN0IH0gZnJvbSAnLi4vZ2V0LWNvbm5lY3Rvci13aXRoLXJlY3QnO1xuXG5leHBvcnQgY2xhc3MgRmluZENsb3Nlc3RJbnB1dFVzaW5nU25hcFRocmVzaG9sZFJlcXVlc3Qge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBwb3NpdGlvbjogSVBvaW50LFxuICAgIHB1YmxpYyBjYW5CZUNvbm5lY3RlZElucHV0czogSUNvbm5lY3RvcldpdGhSZWN0W10sXG4gICAgcHVibGljIHNuYXBUaHJlc2hvbGQ6IG51bWJlclxuICApIHtcbiAgfVxufVxuIl19
@@ -1,3 +0,0 @@
1
- export * from './find-closest-input-using-snap-threshold.request';
2
- export * from './find-closest-input-using-snap-threshold.execution';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2RvbWFpbi9mLWNvbm5lY3Rpb24vZmluZC1jbG9zZXN0LWlucHV0LXVzaW5nLXNuYXAtdGhyZXNob2xkL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsbURBQW1ELENBQUM7QUFFbEUsY0FBYyxxREFBcUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZmluZC1jbG9zZXN0LWlucHV0LXVzaW5nLXNuYXAtdGhyZXNob2xkLnJlcXVlc3QnO1xuXG5leHBvcnQgKiBmcm9tICcuL2ZpbmQtY2xvc2VzdC1pbnB1dC11c2luZy1zbmFwLXRocmVzaG9sZC5leGVjdXRpb24nO1xuIl19
@@ -1,34 +0,0 @@
1
- import { __decorate } from "tslib";
2
- import { Injectable } from '@angular/core';
3
- import { GetNodePaddingRequest } from './get-node-padding.request';
4
- import { FExecutionRegister } from '@foblex/mediator';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@foblex/platform";
7
- let GetNodePaddingExecution = class GetNodePaddingExecution {
8
- fBrowser;
9
- constructor(fBrowser) {
10
- this.fBrowser = fBrowser;
11
- }
12
- handle(request) {
13
- return request.fNode.fIncludePadding ? this.getPaddingData(request.fNode, request.rect) : [0, 0, 0, 0];
14
- }
15
- getPaddingData(node, rect) {
16
- const style = this.fBrowser.window.getComputedStyle(node.hostElement);
17
- return [
18
- this.fBrowser.toPixels(style.paddingLeft, rect.width, rect.height, style.fontSize),
19
- this.fBrowser.toPixels(style.paddingTop, rect.width, rect.height, style.fontSize),
20
- this.fBrowser.toPixels(style.paddingRight, rect.width, rect.height, style.fontSize),
21
- this.fBrowser.toPixels(style.paddingBottom, rect.width, rect.height, style.fontSize)
22
- ];
23
- }
24
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: GetNodePaddingExecution, deps: [{ token: i1.BrowserService }], target: i0.ɵɵFactoryTarget.Injectable });
25
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: GetNodePaddingExecution });
26
- };
27
- GetNodePaddingExecution = __decorate([
28
- FExecutionRegister(GetNodePaddingRequest)
29
- ], GetNodePaddingExecution);
30
- export { GetNodePaddingExecution };
31
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: GetNodePaddingExecution, decorators: [{
32
- type: Injectable
33
- }], ctorParameters: () => [{ type: i1.BrowserService }] });
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LW5vZGUtcGFkZGluZy5leGVjdXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2RvbWFpbi9nZXQtbm9kZS1wYWRkaW5nL2dldC1ub2RlLXBhZGRpbmcuZXhlY3V0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxrQkFBa0IsRUFBYyxNQUFNLGtCQUFrQixDQUFDOzs7QUFPM0QsSUFBTSx1QkFBdUIsR0FBN0IsTUFBTSx1QkFBdUI7SUFJeEI7SUFEVixZQUNVLFFBQXdCO1FBQXhCLGFBQVEsR0FBUixRQUFRLENBQWdCO0lBRWxDLENBQUM7SUFFTSxNQUFNLENBQUMsT0FBOEI7UUFDMUMsT0FBTyxPQUFPLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUUsQ0FBQztJQUMzRyxDQUFDO0lBRU8sY0FBYyxDQUFDLElBQWUsRUFBRSxJQUFXO1FBQ2pELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN0RSxPQUFPO1lBQ0wsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQztZQUNsRixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsUUFBUSxDQUFDO1lBQ2pGLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUM7WUFDbkYsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQztTQUNyRixDQUFDO0lBQ0osQ0FBQzt1R0FwQlUsdUJBQXVCOzJHQUF2Qix1QkFBdUI7O0FBQXZCLHVCQUF1QjtJQURuQyxrQkFBa0IsQ0FBQyxxQkFBcUIsQ0FBQztHQUM3Qix1QkFBdUIsQ0FxQm5DOzsyRkFyQlksdUJBQXVCO2tCQUZuQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgR2V0Tm9kZVBhZGRpbmdSZXF1ZXN0IH0gZnJvbSAnLi9nZXQtbm9kZS1wYWRkaW5nLnJlcXVlc3QnO1xuaW1wb3J0IHsgRkV4ZWN1dGlvblJlZ2lzdGVyLCBJRXhlY3V0aW9uIH0gZnJvbSAnQGZvYmxleC9tZWRpYXRvcic7XG5pbXBvcnQgeyBGTm9kZUJhc2UgfSBmcm9tICcuLi8uLi8uLi9mLW5vZGUnO1xuaW1wb3J0IHsgSVJlY3QgfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7IEJyb3dzZXJTZXJ2aWNlIH0gZnJvbSAnQGZvYmxleC9wbGF0Zm9ybSc7XG5cbkBJbmplY3RhYmxlKClcbkBGRXhlY3V0aW9uUmVnaXN0ZXIoR2V0Tm9kZVBhZGRpbmdSZXF1ZXN0KVxuZXhwb3J0IGNsYXNzIEdldE5vZGVQYWRkaW5nRXhlY3V0aW9uXG4gIGltcGxlbWVudHMgSUV4ZWN1dGlvbjxHZXROb2RlUGFkZGluZ1JlcXVlc3QsIFsgbnVtYmVyLCBudW1iZXIsIG51bWJlciwgbnVtYmVyIF0+IHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZCcm93c2VyOiBCcm93c2VyU2VydmljZVxuICApIHtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGUocmVxdWVzdDogR2V0Tm9kZVBhZGRpbmdSZXF1ZXN0KTogWyBudW1iZXIsIG51bWJlciwgbnVtYmVyLCBudW1iZXIgXSB7XG4gICAgcmV0dXJuIHJlcXVlc3QuZk5vZGUuZkluY2x1ZGVQYWRkaW5nID8gdGhpcy5nZXRQYWRkaW5nRGF0YShyZXF1ZXN0LmZOb2RlLCByZXF1ZXN0LnJlY3QpIDogWyAwLCAwLCAwLCAwIF07XG4gIH1cblxuICBwcml2YXRlIGdldFBhZGRpbmdEYXRhKG5vZGU6IEZOb2RlQmFzZSwgcmVjdDogSVJlY3QpOiBbIG51bWJlciwgbnVtYmVyLCBudW1iZXIsIG51bWJlciBdIHtcbiAgICBjb25zdCBzdHlsZSA9IHRoaXMuZkJyb3dzZXIud2luZG93LmdldENvbXB1dGVkU3R5bGUobm9kZS5ob3N0RWxlbWVudCk7XG4gICAgcmV0dXJuIFtcbiAgICAgIHRoaXMuZkJyb3dzZXIudG9QaXhlbHMoc3R5bGUucGFkZGluZ0xlZnQsIHJlY3Qud2lkdGgsIHJlY3QuaGVpZ2h0LCBzdHlsZS5mb250U2l6ZSksXG4gICAgICB0aGlzLmZCcm93c2VyLnRvUGl4ZWxzKHN0eWxlLnBhZGRpbmdUb3AsIHJlY3Qud2lkdGgsIHJlY3QuaGVpZ2h0LCBzdHlsZS5mb250U2l6ZSksXG4gICAgICB0aGlzLmZCcm93c2VyLnRvUGl4ZWxzKHN0eWxlLnBhZGRpbmdSaWdodCwgcmVjdC53aWR0aCwgcmVjdC5oZWlnaHQsIHN0eWxlLmZvbnRTaXplKSxcbiAgICAgIHRoaXMuZkJyb3dzZXIudG9QaXhlbHMoc3R5bGUucGFkZGluZ0JvdHRvbSwgcmVjdC53aWR0aCwgcmVjdC5oZWlnaHQsIHN0eWxlLmZvbnRTaXplKVxuICAgIF07XG4gIH1cbn1cbiJdfQ==
@@ -1,9 +0,0 @@
1
- export class GetNodePaddingRequest {
2
- fNode;
3
- rect;
4
- constructor(fNode, rect) {
5
- this.fNode = fNode;
6
- this.rect = rect;
7
- }
8
- }
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LW5vZGUtcGFkZGluZy5yZXF1ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9kb21haW4vZ2V0LW5vZGUtcGFkZGluZy9nZXQtbm9kZS1wYWRkaW5nLnJlcXVlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxPQUFPLHFCQUFxQjtJQUd2QjtJQUNBO0lBRlQsWUFDUyxLQUFnQixFQUNoQixJQUFXO1FBRFgsVUFBSyxHQUFMLEtBQUssQ0FBVztRQUNoQixTQUFJLEdBQUosSUFBSSxDQUFPO0lBRXBCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZOb2RlQmFzZSB9IGZyb20gJy4uLy4uLy4uL2Ytbm9kZSc7XG5pbXBvcnQgeyBJUmVjdCB9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuXG5leHBvcnQgY2xhc3MgR2V0Tm9kZVBhZGRpbmdSZXF1ZXN0IHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZk5vZGU6IEZOb2RlQmFzZSxcbiAgICBwdWJsaWMgcmVjdDogSVJlY3RcbiAgKSB7XG4gIH1cbn1cbiJdfQ==
@@ -1,3 +0,0 @@
1
- export * from './get-node-padding.execution';
2
- export * from './get-node-padding.request';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2RvbWFpbi9nZXQtbm9kZS1wYWRkaW5nL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsOEJBQThCLENBQUM7QUFFN0MsY0FBYyw0QkFBNEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZ2V0LW5vZGUtcGFkZGluZy5leGVjdXRpb24nO1xuXG5leHBvcnQgKiBmcm9tICcuL2dldC1ub2RlLXBhZGRpbmcucmVxdWVzdCc7XG4iXX0=
@@ -1,30 +0,0 @@
1
- import { __decorate } from "tslib";
2
- import { Injectable } from '@angular/core';
3
- import { GetNormalizedNodeRectRequest } from './get-normalized-node-rect.request';
4
- import { RectExtensions } from '@foblex/2d';
5
- import { FExecutionRegister } from '@foblex/mediator';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "../../../f-storage";
8
- let GetNormalizedNodeRectExecution = class GetNormalizedNodeRectExecution {
9
- fComponentsStore;
10
- constructor(fComponentsStore) {
11
- this.fComponentsStore = fComponentsStore;
12
- }
13
- handle(request) {
14
- return this.normalizeRect(RectExtensions.fromElement(request.fNode.hostElement), request.fNode.position);
15
- }
16
- normalizeRect(scaledRect, position) {
17
- const rect = RectExtensions.div(scaledRect, this.fComponentsStore.fCanvas.transform.scale);
18
- return RectExtensions.initialize(position.x, position.y, rect.width, rect.height);
19
- }
20
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: GetNormalizedNodeRectExecution, deps: [{ token: i1.FComponentsStore }], target: i0.ɵɵFactoryTarget.Injectable });
21
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: GetNormalizedNodeRectExecution });
22
- };
23
- GetNormalizedNodeRectExecution = __decorate([
24
- FExecutionRegister(GetNormalizedNodeRectRequest)
25
- ], GetNormalizedNodeRectExecution);
26
- export { GetNormalizedNodeRectExecution };
27
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: GetNormalizedNodeRectExecution, decorators: [{
28
- type: Injectable
29
- }], ctorParameters: () => [{ type: i1.FComponentsStore }] });
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LW5vcm1hbGl6ZWQtbm9kZS1yZWN0LmV4ZWN1dGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1kcmFnZ2FibGUvZG9tYWluL2dldC1ub3JtYWxpemVkLW5vZGUtcmVjdC9nZXQtbm9ybWFsaXplZC1ub2RlLXJlY3QuZXhlY3V0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ2xGLE9BQU8sRUFBaUIsY0FBYyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzNELE9BQU8sRUFBRSxrQkFBa0IsRUFBYyxNQUFNLGtCQUFrQixDQUFDOzs7QUFLM0QsSUFBTSw4QkFBOEIsR0FBcEMsTUFBTSw4QkFBOEI7SUFJL0I7SUFEVixZQUNVLGdCQUFrQztRQUFsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO0lBRTVDLENBQUM7SUFFTSxNQUFNLENBQUMsT0FBcUM7UUFDakQsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzNHLENBQUM7SUFFTyxhQUFhLENBQUMsVUFBaUIsRUFBRSxRQUFnQjtRQUN2RCxNQUFNLElBQUksR0FBRyxjQUFjLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBUSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUU1RixPQUFPLGNBQWMsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3BGLENBQUM7dUdBaEJVLDhCQUE4QjsyR0FBOUIsOEJBQThCOztBQUE5Qiw4QkFBOEI7SUFEMUMsa0JBQWtCLENBQUMsNEJBQTRCLENBQUM7R0FDcEMsOEJBQThCLENBaUIxQzs7MkZBakJZLDhCQUE4QjtrQkFGMUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEdldE5vcm1hbGl6ZWROb2RlUmVjdFJlcXVlc3QgfSBmcm9tICcuL2dldC1ub3JtYWxpemVkLW5vZGUtcmVjdC5yZXF1ZXN0JztcbmltcG9ydCB7IElQb2ludCwgSVJlY3QsIFJlY3RFeHRlbnNpb25zIH0gZnJvbSAnQGZvYmxleC8yZCc7XG5pbXBvcnQgeyBGRXhlY3V0aW9uUmVnaXN0ZXIsIElFeGVjdXRpb24gfSBmcm9tICdAZm9ibGV4L21lZGlhdG9yJztcbmltcG9ydCB7IEZDb21wb25lbnRzU3RvcmUgfSBmcm9tICcuLi8uLi8uLi9mLXN0b3JhZ2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5ARkV4ZWN1dGlvblJlZ2lzdGVyKEdldE5vcm1hbGl6ZWROb2RlUmVjdFJlcXVlc3QpXG5leHBvcnQgY2xhc3MgR2V0Tm9ybWFsaXplZE5vZGVSZWN0RXhlY3V0aW9uXG4gIGltcGxlbWVudHMgSUV4ZWN1dGlvbjxHZXROb3JtYWxpemVkTm9kZVJlY3RSZXF1ZXN0LCBJUmVjdD4ge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZkNvbXBvbmVudHNTdG9yZTogRkNvbXBvbmVudHNTdG9yZVxuICApIHtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGUocmVxdWVzdDogR2V0Tm9ybWFsaXplZE5vZGVSZWN0UmVxdWVzdCk6IElSZWN0IHtcbiAgICByZXR1cm4gdGhpcy5ub3JtYWxpemVSZWN0KFJlY3RFeHRlbnNpb25zLmZyb21FbGVtZW50KHJlcXVlc3QuZk5vZGUuaG9zdEVsZW1lbnQpLCByZXF1ZXN0LmZOb2RlLnBvc2l0aW9uKTtcbiAgfVxuXG4gIHByaXZhdGUgbm9ybWFsaXplUmVjdChzY2FsZWRSZWN0OiBJUmVjdCwgcG9zaXRpb246IElQb2ludCk6IElSZWN0IHtcbiAgICBjb25zdCByZWN0ID0gUmVjdEV4dGVuc2lvbnMuZGl2KHNjYWxlZFJlY3QsIHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mQ2FudmFzIS50cmFuc2Zvcm0uc2NhbGUpO1xuXG4gICAgcmV0dXJuIFJlY3RFeHRlbnNpb25zLmluaXRpYWxpemUocG9zaXRpb24ueCwgcG9zaXRpb24ueSwgcmVjdC53aWR0aCwgcmVjdC5oZWlnaHQpO1xuICB9XG59XG4iXX0=
@@ -1,7 +0,0 @@
1
- export class GetNormalizedNodeRectRequest {
2
- fNode;
3
- constructor(fNode) {
4
- this.fNode = fNode;
5
- }
6
- }
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LW5vcm1hbGl6ZWQtbm9kZS1yZWN0LnJlcXVlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2RvbWFpbi9nZXQtbm9ybWFsaXplZC1ub2RlLXJlY3QvZ2V0LW5vcm1hbGl6ZWQtbm9kZS1yZWN0LnJlcXVlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLDRCQUE0QjtJQUc5QjtJQURULFlBQ1MsS0FBZ0I7UUFBaEIsVUFBSyxHQUFMLEtBQUssQ0FBVztJQUV6QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGTm9kZUJhc2UgfSBmcm9tICcuLi8uLi8uLi9mLW5vZGUnO1xuXG5leHBvcnQgY2xhc3MgR2V0Tm9ybWFsaXplZE5vZGVSZWN0UmVxdWVzdCB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGZOb2RlOiBGTm9kZUJhc2VcbiAgKSB7XG4gIH1cbn1cbiJdfQ==
@@ -1,3 +0,0 @@
1
- export * from './get-normalized-node-rect.execution';
2
- export * from './get-normalized-node-rect.request';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2RvbWFpbi9nZXQtbm9ybWFsaXplZC1ub2RlLXJlY3QvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxzQ0FBc0MsQ0FBQztBQUVyRCxjQUFjLG9DQUFvQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9nZXQtbm9ybWFsaXplZC1ub2RlLXJlY3QuZXhlY3V0aW9uJztcblxuZXhwb3J0ICogZnJvbSAnLi9nZXQtbm9ybWFsaXplZC1ub2RlLXJlY3QucmVxdWVzdCc7XG4iXX0=
@@ -1,37 +0,0 @@
1
- import { __decorate } from "tslib";
2
- import { Injectable } from '@angular/core';
3
- import { GetParentNodesRequest } from './get-parent-nodes.request';
4
- import { FExecutionRegister } from '@foblex/mediator';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "../../../f-storage";
7
- let GetParentNodesExecution = class GetParentNodesExecution {
8
- fComponentsStore;
9
- constructor(fComponentsStore) {
10
- this.fComponentsStore = fComponentsStore;
11
- }
12
- handle(request) {
13
- return this.getParentNodes(request.fNode, new Set(), []);
14
- }
15
- getParentNodes(fNode, visited, result) {
16
- if (visited.has(fNode.fId)) {
17
- throw new Error('Circular reference detected in the node hierarchy. Node id: ' + fNode.fId);
18
- }
19
- visited.add(fNode.fId);
20
- const parent = this.fComponentsStore.fNodes.find((x) => x.fId === fNode.fParentId);
21
- if (!parent) {
22
- return result;
23
- }
24
- result.push(parent);
25
- return this.getParentNodes(parent, visited, result);
26
- }
27
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: GetParentNodesExecution, deps: [{ token: i1.FComponentsStore }], target: i0.ɵɵFactoryTarget.Injectable });
28
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: GetParentNodesExecution });
29
- };
30
- GetParentNodesExecution = __decorate([
31
- FExecutionRegister(GetParentNodesRequest)
32
- ], GetParentNodesExecution);
33
- export { GetParentNodesExecution };
34
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: GetParentNodesExecution, decorators: [{
35
- type: Injectable
36
- }], ctorParameters: () => [{ type: i1.FComponentsStore }] });
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXBhcmVudC1ub2Rlcy5leGVjdXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2RvbWFpbi9nZXQtcGFyZW50LW5vZGVzL2dldC1wYXJlbnQtbm9kZXMuZXhlY3V0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxrQkFBa0IsRUFBYyxNQUFNLGtCQUFrQixDQUFDOzs7QUFNM0QsSUFBTSx1QkFBdUIsR0FBN0IsTUFBTSx1QkFBdUI7SUFJeEI7SUFEVixZQUNVLGdCQUFrQztRQUFsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO0lBRTVDLENBQUM7SUFFTSxNQUFNLENBQUMsT0FBOEI7UUFDMUMsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsSUFBSSxHQUFHLEVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRU8sY0FBYyxDQUFDLEtBQWdCLEVBQUUsT0FBb0IsRUFBRSxNQUFtQjtRQUNoRixJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDM0IsTUFBTSxJQUFJLEtBQUssQ0FBQyw4REFBOEQsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDOUYsQ0FBQztRQUNELE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRXZCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNuRixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDWixPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDO1FBRUQsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUN0RCxDQUFDO3VHQXpCVSx1QkFBdUI7MkdBQXZCLHVCQUF1Qjs7QUFBdkIsdUJBQXVCO0lBRG5DLGtCQUFrQixDQUFDLHFCQUFxQixDQUFDO0dBQzdCLHVCQUF1QixDQTBCbkM7OzJGQTFCWSx1QkFBdUI7a0JBRm5DLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBHZXRQYXJlbnROb2Rlc1JlcXVlc3QgfSBmcm9tICcuL2dldC1wYXJlbnQtbm9kZXMucmVxdWVzdCc7XG5pbXBvcnQgeyBGRXhlY3V0aW9uUmVnaXN0ZXIsIElFeGVjdXRpb24gfSBmcm9tICdAZm9ibGV4L21lZGlhdG9yJztcbmltcG9ydCB7IEZOb2RlQmFzZSB9IGZyb20gJy4uLy4uLy4uL2Ytbm9kZSc7XG5pbXBvcnQgeyBGQ29tcG9uZW50c1N0b3JlIH0gZnJvbSAnLi4vLi4vLi4vZi1zdG9yYWdlJztcblxuQEluamVjdGFibGUoKVxuQEZFeGVjdXRpb25SZWdpc3RlcihHZXRQYXJlbnROb2Rlc1JlcXVlc3QpXG5leHBvcnQgY2xhc3MgR2V0UGFyZW50Tm9kZXNFeGVjdXRpb25cbiAgaW1wbGVtZW50cyBJRXhlY3V0aW9uPEdldFBhcmVudE5vZGVzUmVxdWVzdCwgRk5vZGVCYXNlW10+IHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGZDb21wb25lbnRzU3RvcmU6IEZDb21wb25lbnRzU3RvcmVcbiAgKSB7XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlKHJlcXVlc3Q6IEdldFBhcmVudE5vZGVzUmVxdWVzdCk6IEZOb2RlQmFzZVtdIHtcbiAgICByZXR1cm4gdGhpcy5nZXRQYXJlbnROb2RlcyhyZXF1ZXN0LmZOb2RlLCBuZXcgU2V0PHN0cmluZz4oKSwgW10pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRQYXJlbnROb2RlcyhmTm9kZTogRk5vZGVCYXNlLCB2aXNpdGVkOiBTZXQ8c3RyaW5nPiwgcmVzdWx0OiBGTm9kZUJhc2VbXSk6IEZOb2RlQmFzZVtdIHtcbiAgICBpZiAodmlzaXRlZC5oYXMoZk5vZGUuZklkKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDaXJjdWxhciByZWZlcmVuY2UgZGV0ZWN0ZWQgaW4gdGhlIG5vZGUgaGllcmFyY2h5LiBOb2RlIGlkOiAnICsgZk5vZGUuZklkKTtcbiAgICB9XG4gICAgdmlzaXRlZC5hZGQoZk5vZGUuZklkKTtcblxuICAgIGNvbnN0IHBhcmVudCA9IHRoaXMuZkNvbXBvbmVudHNTdG9yZS5mTm9kZXMuZmluZCgoeCkgPT4geC5mSWQgPT09IGZOb2RlLmZQYXJlbnRJZCk7XG4gICAgaWYgKCFwYXJlbnQpIHtcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgcmVzdWx0LnB1c2gocGFyZW50KTtcbiAgICByZXR1cm4gdGhpcy5nZXRQYXJlbnROb2RlcyhwYXJlbnQsIHZpc2l0ZWQsIHJlc3VsdCk7XG4gIH1cbn1cbiJdfQ==
@@ -1,7 +0,0 @@
1
- export class GetParentNodesRequest {
2
- fNode;
3
- constructor(fNode) {
4
- this.fNode = fNode;
5
- }
6
- }
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXBhcmVudC1ub2Rlcy5yZXF1ZXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9kb21haW4vZ2V0LXBhcmVudC1ub2Rlcy9nZXQtcGFyZW50LW5vZGVzLnJlcXVlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLHFCQUFxQjtJQUd2QjtJQURULFlBQ1MsS0FBZ0I7UUFBaEIsVUFBSyxHQUFMLEtBQUssQ0FBVztJQUV6QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGTm9kZUJhc2UgfSBmcm9tICcuLi8uLi8uLi9mLW5vZGUnO1xuXG5leHBvcnQgY2xhc3MgR2V0UGFyZW50Tm9kZXNSZXF1ZXN0IHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZk5vZGU6IEZOb2RlQmFzZVxuICApIHtcbiAgfVxufVxuIl19
@@ -1,3 +0,0 @@
1
- export * from './get-parent-nodes.execution';
2
- export * from './get-parent-nodes.request';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2RvbWFpbi9nZXQtcGFyZW50LW5vZGVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsOEJBQThCLENBQUM7QUFFN0MsY0FBYyw0QkFBNEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZ2V0LXBhcmVudC1ub2Rlcy5leGVjdXRpb24nO1xuXG5leHBvcnQgKiBmcm9tICcuL2dldC1wYXJlbnQtbm9kZXMucmVxdWVzdCc7XG4iXX0=
@@ -1,104 +0,0 @@
1
- /**
2
- * A class to find the nearest coordinate.
3
- */
4
- export class NearestCoordinateFinder {
5
- alignThreshold;
6
- elements;
7
- target;
8
- /**
9
- * Constructor to initialize the NearestCoordinateFinder.
10
- * @param elements - The array of IRect elements.
11
- * @param target - The target IRect element.
12
- * @param alignThreshold - The threshold to align the elements.
13
- */
14
- constructor(elements, target, alignThreshold = 10) {
15
- this.alignThreshold = alignThreshold;
16
- this.elements = elements;
17
- this.target = target;
18
- }
19
- /**
20
- * Finds the nearest coordinate on a specified axis.
21
- * @returns The nearest coordinate and its distance.
22
- */
23
- findNearestCoordinateByX() {
24
- let nearest;
25
- let minDistance;
26
- for (const element of this.elements) {
27
- const distanceLeftLeft = this.target.x - element.x;
28
- const distanceLeftRight = this.target.x - (element.x + element.width);
29
- const distanceCenterCenter = this.target.gravityCenter.x - element.gravityCenter.x;
30
- const distanceRightLeft = (this.target.x + this.target.width) - element.x;
31
- const distanceRightRight = (this.target.x + this.target.width) - (element.x + element.width);
32
- if (Math.abs(distanceLeftLeft) <= this.alignThreshold ||
33
- Math.abs(distanceLeftRight) <= this.alignThreshold ||
34
- Math.abs(distanceCenterCenter) <= this.alignThreshold ||
35
- Math.abs(distanceRightLeft) <= this.alignThreshold ||
36
- Math.abs(distanceRightRight) <= this.alignThreshold) {
37
- if (minDistance === undefined || Math.abs(distanceCenterCenter) < Math.abs(minDistance)) {
38
- minDistance = distanceCenterCenter;
39
- nearest = element.gravityCenter.x;
40
- }
41
- if (Math.abs(distanceLeftLeft) < Math.abs(minDistance)) {
42
- minDistance = distanceLeftLeft;
43
- nearest = element.x;
44
- }
45
- if (Math.abs(distanceRightRight) < Math.abs(minDistance)) {
46
- minDistance = distanceRightRight;
47
- nearest = element.x + element.width;
48
- }
49
- if (Math.abs(distanceLeftRight) < Math.abs(minDistance)) {
50
- minDistance = distanceLeftRight;
51
- nearest = element.x + element.width;
52
- }
53
- if (Math.abs(distanceRightLeft) < Math.abs(minDistance)) {
54
- minDistance = distanceRightLeft;
55
- nearest = element.x;
56
- }
57
- }
58
- }
59
- return { value: nearest, distance: minDistance };
60
- }
61
- /**
62
- * Finds the nearest coordinate on a specified axis.
63
- * @returns The nearest coordinate and its distance.
64
- */
65
- findNearestCoordinateByY() {
66
- let nearest;
67
- let minDistance;
68
- for (const element of this.elements) {
69
- const distanceTopTop = this.target.y - element.y;
70
- const distanceTopBottom = this.target.y - (element.y + element.height);
71
- const distanceCenterCenter = this.target.gravityCenter.y - element.gravityCenter.y;
72
- const distanceBottomTop = (this.target.y + this.target.height) - element.y;
73
- const distanceBottomBottom = (this.target.y + this.target.height) - (element.y + element.height);
74
- if (Math.abs(distanceTopTop) <= this.alignThreshold ||
75
- Math.abs(distanceTopBottom) <= this.alignThreshold ||
76
- Math.abs(distanceCenterCenter) <= this.alignThreshold ||
77
- Math.abs(distanceBottomTop) <= this.alignThreshold ||
78
- Math.abs(distanceBottomBottom) <= this.alignThreshold) {
79
- if (minDistance === undefined || Math.abs(distanceCenterCenter) < Math.abs(minDistance)) {
80
- minDistance = distanceCenterCenter;
81
- nearest = element.gravityCenter.y;
82
- }
83
- if (Math.abs(distanceTopTop) < Math.abs(minDistance)) {
84
- minDistance = distanceTopTop;
85
- nearest = element.y;
86
- }
87
- if (Math.abs(distanceBottomBottom) < Math.abs(minDistance)) {
88
- minDistance = distanceBottomBottom;
89
- nearest = element.y + element.height;
90
- }
91
- if (Math.abs(distanceTopBottom) < Math.abs(minDistance)) {
92
- minDistance = distanceTopBottom;
93
- nearest = element.y + element.height;
94
- }
95
- if (Math.abs(distanceBottomTop) < Math.abs(minDistance)) {
96
- minDistance = distanceBottomTop;
97
- nearest = element.y;
98
- }
99
- }
100
- }
101
- return { value: nearest, distance: minDistance };
102
- }
103
- }
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmVhcmVzdC1jb29yZGluYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWxpbmUtYWxpZ25tZW50L2RvbWFpbi9uZWFyZXN0LWNvb3JkaW5hdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0E7O0dBRUc7QUFDSCxNQUFNLE9BQU8sdUJBQXVCO0lBWW9CO0lBVDlDLFFBQVEsQ0FBVTtJQUNsQixNQUFNLENBQVE7SUFFdEI7Ozs7O09BS0c7SUFDSCxZQUFZLFFBQWlCLEVBQUUsTUFBYSxFQUFVLGlCQUF5QixFQUFFO1FBQTNCLG1CQUFjLEdBQWQsY0FBYyxDQUFhO1FBQy9FLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7O09BR0c7SUFDSSx3QkFBd0I7UUFDN0IsSUFBSSxPQUEyQixDQUFDO1FBQ2hDLElBQUksV0FBK0IsQ0FBQztRQUVwQyxLQUFLLE1BQU0sT0FBTyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNwQyxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDbkQsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3RFLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1lBQ25GLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLE9B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LFdBQVcsR0FBRyxjQUFjLENBQUM7b0JBQzdCLE9BQU8sR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDO2dCQUN0QixDQUFDO2dCQUNELElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztvQkFDM0QsV0FBVyxHQUFHLG9CQUFvQixDQUFDO29CQUNuQyxPQUFPLEdBQUcsT0FBTyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDO2dCQUN2QyxDQUFDO2dCQUNELElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztvQkFDeEQsV0FBVyxHQUFHLGlCQUFpQixDQUFDO29CQUNoQyxPQUFPLEdBQUcsT0FBTyxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDO2dCQUN2QyxDQUFDO2dCQUNELElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztvQkFDeEQsV0FBVyxHQUFHLGlCQUFpQixDQUFDO29CQUNoQyxPQUFPLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQztnQkFDdEIsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxDQUFDO0lBQ25ELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElSZWN0IH0gZnJvbSAnQGZvYmxleC8yZCc7XG5pbXBvcnQgeyBJTmVhcmVzdENvb3JkaW5hdGVSZXN1bHQgfSBmcm9tICcuL2ktbmVhcmVzdC1jb29yZGluYXRlLXJlc3VsdCc7XG5cbi8qKlxuICogQSBjbGFzcyB0byBmaW5kIHRoZSBuZWFyZXN0IGNvb3JkaW5hdGUuXG4gKi9cbmV4cG9ydCBjbGFzcyBOZWFyZXN0Q29vcmRpbmF0ZUZpbmRlciB7XG5cblxuICBwcml2YXRlIGVsZW1lbnRzOiBJUmVjdFtdO1xuICBwcml2YXRlIHRhcmdldDogSVJlY3Q7XG5cbiAgLyoqXG4gICAqIENvbnN0cnVjdG9yIHRvIGluaXRpYWxpemUgdGhlIE5lYXJlc3RDb29yZGluYXRlRmluZGVyLlxuICAgKiBAcGFyYW0gZWxlbWVudHMgLSBUaGUgYXJyYXkgb2YgSVJlY3QgZWxlbWVudHMuXG4gICAqIEBwYXJhbSB0YXJnZXQgLSBUaGUgdGFyZ2V0IElSZWN0IGVsZW1lbnQuXG4gICAqIEBwYXJhbSBhbGlnblRocmVzaG9sZCAtIFRoZSB0aHJlc2hvbGQgdG8gYWxpZ24gdGhlIGVsZW1lbnRzLlxuICAgKi9cbiAgY29uc3RydWN0b3IoZWxlbWVudHM6IElSZWN0W10sIHRhcmdldDogSVJlY3QsIHByaXZhdGUgYWxpZ25UaHJlc2hvbGQ6IG51bWJlciA9IDEwKSB7XG4gICAgdGhpcy5lbGVtZW50cyA9IGVsZW1lbnRzO1xuICAgIHRoaXMudGFyZ2V0ID0gdGFyZ2V0O1xuICB9XG5cbiAgLyoqXG4gICAqIEZpbmRzIHRoZSBuZWFyZXN0IGNvb3JkaW5hdGUgb24gYSBzcGVjaWZpZWQgYXhpcy5cbiAgICogQHJldHVybnMgVGhlIG5lYXJlc3QgY29vcmRpbmF0ZSBhbmQgaXRzIGRpc3RhbmNlLlxuICAgKi9cbiAgcHVibGljIGZpbmROZWFyZXN0Q29vcmRpbmF0ZUJ5WCgpOiBJTmVhcmVzdENvb3JkaW5hdGVSZXN1bHQge1xuICAgIGxldCBuZWFyZXN0OiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgbGV0IG1pbkRpc3RhbmNlOiBudW1iZXIgfCB1bmRlZmluZWQ7XG5cbiAgICBmb3IgKGNvbnN0IGVsZW1lbnQgb2YgdGhpcy5lbGVtZW50cykge1xuICAgICAgY29uc3QgZGlzdGFuY2VMZWZ0TGVmdCA9IHRoaXMudGFyZ2V0LnggLSBlbGVtZW50Lng7XG4gICAgICBjb25zdCBkaXN0YW5jZUxlZnRSaWdodCA9IHRoaXMudGFyZ2V0LnggLSAoZWxlbWVudC54ICsgZWxlbWVudC53aWR0aCk7XG4gICAgICBjb25zdCBkaXN0YW5jZUNlbnRlckNlbnRlciA9IHRoaXMudGFyZ2V0LmdyYXZpdHlDZW50ZXIueCAtIGVsZW1lbnQuZ3Jhdml0eUNlbnRlci54O1xuICAgICAgY29uc3QgZGlzdGFuY2VSaWdodExlZnQgPSAodGhpcy50YXJnZXQueCArIHRoaXMudGFyZ2V0LndpZHRoKSAtIGVsZW1lbnQueDtcbiAgICAgIGNvbnN0IGRpc3RhbmNlUmlnaHRSaWdodCA9ICh0aGlzLnRhcmdldC54ICsgdGhpcy50YXJnZXQud2lkdGgpIC0gKGVsZW1lbnQueCArIGVsZW1lbnQud2lkdGgpO1xuXG4gICAgICBpZiAoXG4gICAgICAgICAgTWF0aC5hYnMoZGlzdGFuY2VMZWZ0TGVmdCkgPD0gdGhpcy5hbGlnblRocmVzaG9sZCB8fFxuICAgICAgICAgIE1hdGguYWJzKGRpc3RhbmNlTGVmdFJpZ2h0KSA8PSB0aGlzLmFsaWduVGhyZXNob2xkIHx8XG4gICAgICAgICAgTWF0aC5hYnMoZGlzdGFuY2VDZW50ZXJDZW50ZXIpIDw9IHRoaXMuYWxpZ25UaHJlc2hvbGQgfHxcbiAgICAgICAgICBNYXRoLmFicyhkaXN0YW5jZVJpZ2h0TGVmdCkgPD0gdGhpcy5hbGlnblRocmVzaG9sZCB8fFxuICAgICAgICAgIE1hdGguYWJzKGRpc3RhbmNlUmlnaHRSaWdodCkgPD0gdGhpcy5hbGlnblRocmVzaG9sZFxuICAgICAgKSB7XG4gICAgICAgIGlmIChtaW5EaXN0YW5jZSA9PT0gdW5kZWZpbmVkIHx8IE1hdGguYWJzKGRpc3RhbmNlQ2VudGVyQ2VudGVyKSA8IE1hdGguYWJzKG1pbkRpc3RhbmNlKSkge1xuICAgICAgICAgIG1pbkRpc3RhbmNlID0gZGlzdGFuY2VDZW50ZXJDZW50ZXI7XG4gICAgICAgICAgbmVhcmVzdCA9IGVsZW1lbnQuZ3Jhdml0eUNlbnRlci54O1xuICAgICAgICB9XG4gICAgICAgIGlmIChNYXRoLmFicyhkaXN0YW5jZUxlZnRMZWZ0KSA8IE1hdGguYWJzKG1pbkRpc3RhbmNlKSkge1xuICAgICAgICAgIG1pbkRpc3RhbmNlID0gZGlzdGFuY2VMZWZ0TGVmdDtcbiAgICAgICAgICBuZWFyZXN0ID0gZWxlbWVudC54O1xuICAgICAgICB9XG4gICAgICAgIGlmIChNYXRoLmFicyhkaXN0YW5jZVJpZ2h0UmlnaHQpIDwgTWF0aC5hYnMobWluRGlzdGFuY2UpKSB7XG4gICAgICAgICAgbWluRGlzdGFuY2UgPSBkaXN0YW5jZVJpZ2h0UmlnaHQ7XG4gICAgICAgICAgbmVhcmVzdCA9IGVsZW1lbnQueCArIGVsZW1lbnQud2lkdGg7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKE1hdGguYWJzKGRpc3RhbmNlTGVmdFJpZ2h0KSA8IE1hdGguYWJzKG1pbkRpc3RhbmNlKSkge1xuICAgICAgICAgIG1pbkRpc3RhbmNlID0gZGlzdGFuY2VMZWZ0UmlnaHQ7XG4gICAgICAgICAgbmVhcmVzdCA9IGVsZW1lbnQueCArIGVsZW1lbnQud2lkdGg7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKE1hdGguYWJzKGRpc3RhbmNlUmlnaHRMZWZ0KSA8IE1hdGguYWJzKG1pbkRpc3RhbmNlKSkge1xuICAgICAgICAgIG1pbkRpc3RhbmNlID0gZGlzdGFuY2VSaWdodExlZnQ7XG4gICAgICAgICAgbmVhcmVzdCA9IGVsZW1lbnQueDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4geyB2YWx1ZTogbmVhcmVzdCwgZGlzdGFuY2U6IG1pbkRpc3RhbmNlIH07XG4gIH1cblxuXG4gIC8qKlxuICAgKiBGaW5kcyB0aGUgbmVhcmVzdCBjb29yZGluYXRlIG9uIGEgc3BlY2lmaWVkIGF4aXMuXG4gICAqIEByZXR1cm5zIFRoZSBuZWFyZXN0IGNvb3JkaW5hdGUgYW5kIGl0cyBkaXN0YW5jZS5cbiAgICovXG4gIHB1YmxpYyBmaW5kTmVhcmVzdENvb3JkaW5hdGVCeVkoKTogSU5lYXJlc3RDb29yZGluYXRlUmVzdWx0IHtcbiAgICBsZXQgbmVhcmVzdDogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAgIGxldCBtaW5EaXN0YW5jZTogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXG4gICAgZm9yIChjb25zdCBlbGVtZW50IG9mIHRoaXMuZWxlbWVudHMpIHtcbiAgICAgIGNvbnN0IGRpc3RhbmNlVG9wVG9wID0gdGhpcy50YXJnZXQueSAtIGVsZW1lbnQueTtcbiAgICAgIGNvbnN0IGRpc3RhbmNlVG9wQm90dG9tID0gdGhpcy50YXJnZXQueSAtIChlbGVtZW50LnkgKyBlbGVtZW50LmhlaWdodCk7XG4gICAgICBjb25zdCBkaXN0YW5jZUNlbnRlckNlbnRlciA9IHRoaXMudGFyZ2V0LmdyYXZpdHlDZW50ZXIueSAtIGVsZW1lbnQuZ3Jhdml0eUNlbnRlci55O1xuICAgICAgY29uc3QgZGlzdGFuY2VCb3R0b21Ub3AgPSAodGhpcy50YXJnZXQueSArIHRoaXMudGFyZ2V0LmhlaWdodCkgLSBlbGVtZW50Lnk7XG4gICAgICBjb25zdCBkaXN0YW5jZUJvdHRvbUJvdHRvbSA9ICh0aGlzLnRhcmdldC55ICsgdGhpcy50YXJnZXQuaGVpZ2h0KSAtIChlbGVtZW50LnkgKyBlbGVtZW50LmhlaWdodCk7XG5cbiAgICAgIGlmIChcbiAgICAgICAgICBNYXRoLmFicyhkaXN0YW5jZVRvcFRvcCkgPD0gdGhpcy5hbGlnblRocmVzaG9sZCB8fFxuICAgICAgICAgIE1hdGguYWJzKGRpc3RhbmNlVG9wQm90dG9tKSA8PSB0aGlzLmFsaWduVGhyZXNob2xkIHx8XG4gICAgICAgICAgTWF0aC5hYnMoZGlzdGFuY2VDZW50ZXJDZW50ZXIpIDw9IHRoaXMuYWxpZ25UaHJlc2hvbGQgfHxcbiAgICAgICAgICBNYXRoLmFicyhkaXN0YW5jZUJvdHRvbVRvcCkgPD0gdGhpcy5hbGlnblRocmVzaG9sZCB8fFxuICAgICAgICAgIE1hdGguYWJzKGRpc3RhbmNlQm90dG9tQm90dG9tKSA8PSB0aGlzLmFsaWduVGhyZXNob2xkXG4gICAgICApIHtcbiAgICAgICAgaWYgKG1pbkRpc3RhbmNlID09PSB1bmRlZmluZWQgfHwgTWF0aC5hYnMoZGlzdGFuY2VDZW50ZXJDZW50ZXIpIDwgTWF0aC5hYnMobWluRGlzdGFuY2UpKSB7XG4gICAgICAgICAgbWluRGlzdGFuY2UgPSBkaXN0YW5jZUNlbnRlckNlbnRlcjtcbiAgICAgICAgICBuZWFyZXN0ID0gZWxlbWVudC5ncmF2aXR5Q2VudGVyLnk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKE1hdGguYWJzKGRpc3RhbmNlVG9wVG9wKSA8IE1hdGguYWJzKG1pbkRpc3RhbmNlKSkge1xuICAgICAgICAgIG1pbkRpc3RhbmNlID0gZGlzdGFuY2VUb3BUb3A7XG4gICAgICAgICAgbmVhcmVzdCA9IGVsZW1lbnQueTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoTWF0aC5hYnMoZGlzdGFuY2VCb3R0b21Cb3R0b20pIDwgTWF0aC5hYnMobWluRGlzdGFuY2UpKSB7XG4gICAgICAgICAgbWluRGlzdGFuY2UgPSBkaXN0YW5jZUJvdHRvbUJvdHRvbTtcbiAgICAgICAgICBuZWFyZXN0ID0gZWxlbWVudC55ICsgZWxlbWVudC5oZWlnaHQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKE1hdGguYWJzKGRpc3RhbmNlVG9wQm90dG9tKSA8IE1hdGguYWJzKG1pbkRpc3RhbmNlKSkge1xuICAgICAgICAgIG1pbkRpc3RhbmNlID0gZGlzdGFuY2VUb3BCb3R0b207XG4gICAgICAgICAgbmVhcmVzdCA9IGVsZW1lbnQueSArIGVsZW1lbnQuaGVpZ2h0O1xuICAgICAgICB9XG4gICAgICAgIGlmIChNYXRoLmFicyhkaXN0YW5jZUJvdHRvbVRvcCkgPCBNYXRoLmFicyhtaW5EaXN0YW5jZSkpIHtcbiAgICAgICAgICBtaW5EaXN0YW5jZSA9IGRpc3RhbmNlQm90dG9tVG9wO1xuICAgICAgICAgIG5lYXJlc3QgPSBlbGVtZW50Lnk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4geyB2YWx1ZTogbmVhcmVzdCwgZGlzdGFuY2U6IG1pbkRpc3RhbmNlIH07XG4gIH1cbn1cblxuIl19
@@ -1,2 +0,0 @@
1
- export * from './is-node';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2Ytbm9kZS9kb21haW4vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxXQUFXLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2lzLW5vZGUnO1xuIl19
@@ -1,4 +0,0 @@
1
- export function isNode(element) {
2
- return !!element.closest('[fNode]');
3
- }
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtbm9kZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1ub2RlL2RvbWFpbi9pcy1ub2RlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxNQUFNLENBQUMsT0FBaUM7SUFDdEQsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUN0QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIGlzTm9kZShlbGVtZW50OiBIVE1MRWxlbWVudCB8IFNWR0VsZW1lbnQpOiBib29sZWFuIHtcbiAgcmV0dXJuICEhZWxlbWVudC5jbG9zZXN0KCdbZk5vZGVdJyk7XG59XG5cbiJdfQ==
@@ -1,22 +0,0 @@
1
- import { Directive, ElementRef, inject, InjectionToken } from "@angular/core";
2
- import * as i0 from "@angular/core";
3
- export const F_DRAG_HANDLE = new InjectionToken('F_DRAG_HANDLE');
4
- export class FDragHandleDirective {
5
- _elementReference = inject(ElementRef);
6
- get hostElement() {
7
- return this._elementReference.nativeElement;
8
- }
9
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FDragHandleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
10
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.4", type: FDragHandleDirective, selector: "[fDragHandle]", host: { classAttribute: "f-drag-handle f-component" }, providers: [{ provide: F_DRAG_HANDLE, useExisting: FDragHandleDirective }], ngImport: i0 });
11
- }
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: FDragHandleDirective, decorators: [{
13
- type: Directive,
14
- args: [{
15
- selector: "[fDragHandle]",
16
- host: {
17
- class: "f-drag-handle f-component"
18
- },
19
- providers: [{ provide: F_DRAG_HANDLE, useExisting: FDragHandleDirective }],
20
- }]
21
- }] });
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1kcmFnLWhhbmRsZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2Ytbm9kZS9mLWRyYWctaGFuZGxlL2YtZHJhZy1oYW5kbGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQzlDLE1BQU0sZUFBZSxDQUFDOztBQUd2QixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsSUFBSSxjQUFjLENBQXVCLGVBQWUsQ0FBQyxDQUFDO0FBU3ZGLE1BQU0sT0FBTyxvQkFBb0I7SUFFdkIsaUJBQWlCLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRS9DLElBQVcsV0FBVztRQUNwQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUM7SUFDOUMsQ0FBQzt1R0FOVSxvQkFBb0I7MkZBQXBCLG9CQUFvQiwrRkFGcEIsQ0FBRSxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLG9CQUFvQixFQUFFLENBQUU7OzJGQUVqRSxvQkFBb0I7a0JBUGhDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLElBQUksRUFBRTt3QkFDSixLQUFLLEVBQUUsMkJBQTJCO3FCQUNuQztvQkFDRCxTQUFTLEVBQUUsQ0FBRSxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyxzQkFBc0IsRUFBRSxDQUFFO2lCQUM3RSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgaW5qZWN0LCBJbmplY3Rpb25Ub2tlblxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgSUhhc0hvc3RFbGVtZW50IH0gZnJvbSAnLi4vLi4vaS1oYXMtaG9zdC1lbGVtZW50JztcblxuZXhwb3J0IGNvbnN0IEZfRFJBR19IQU5ETEUgPSBuZXcgSW5qZWN0aW9uVG9rZW48RkRyYWdIYW5kbGVEaXJlY3RpdmU+KCdGX0RSQUdfSEFORExFJyk7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogXCJbZkRyYWdIYW5kbGVdXCIsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogXCJmLWRyYWctaGFuZGxlIGYtY29tcG9uZW50XCJcbiAgfSxcbiAgcHJvdmlkZXJzOiBbIHsgcHJvdmlkZTogRl9EUkFHX0hBTkRMRSwgdXNlRXhpc3Rpbmc6IEZEcmFnSGFuZGxlRGlyZWN0aXZlIH0gXSxcbn0pXG5leHBvcnQgY2xhc3MgRkRyYWdIYW5kbGVEaXJlY3RpdmUgaW1wbGVtZW50cyBJSGFzSG9zdEVsZW1lbnQge1xuXG4gIHByaXZhdGUgX2VsZW1lbnRSZWZlcmVuY2UgPSBpbmplY3QoRWxlbWVudFJlZik7XG5cbiAgcHVibGljIGdldCBob3N0RWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuX2VsZW1lbnRSZWZlcmVuY2UubmF0aXZlRWxlbWVudDtcbiAgfVxufVxuIl19
@@ -1,2 +0,0 @@
1
- export * from './f-drag-handle.directive';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2Ytbm9kZS9mLWRyYWctaGFuZGxlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsMkJBQTJCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2YtZHJhZy1oYW5kbGUuZGlyZWN0aXZlJztcbiJdfQ==
@@ -1,13 +0,0 @@
1
- import { GetNormalizedNodeRectRequest } from './get-normalized-node-rect.request';
2
- import { IRect } from '@foblex/2d';
3
- import { IExecution } from '@foblex/mediator';
4
- import { FComponentsStore } from '../../../f-storage';
5
- import * as i0 from "@angular/core";
6
- export declare class GetNormalizedNodeRectExecution implements IExecution<GetNormalizedNodeRectRequest, IRect> {
7
- private fComponentsStore;
8
- constructor(fComponentsStore: FComponentsStore);
9
- handle(request: GetNormalizedNodeRectRequest): IRect;
10
- private normalizeRect;
11
- static ɵfac: i0.ɵɵFactoryDeclaration<GetNormalizedNodeRectExecution, never>;
12
- static ɵprov: i0.ɵɵInjectableDeclaration<GetNormalizedNodeRectExecution>;
13
- }
@@ -1,5 +0,0 @@
1
- import { FNodeBase } from '../../../f-node';
2
- export declare class GetNormalizedNodeRectRequest {
3
- fNode: FNodeBase;
4
- constructor(fNode: FNodeBase);
5
- }
@@ -1,2 +0,0 @@
1
- export * from './get-normalized-node-rect.execution';
2
- export * from './get-normalized-node-rect.request';
@@ -1,27 +0,0 @@
1
- import { IRect } from '@foblex/2d';
2
- import { INearestCoordinateResult } from './i-nearest-coordinate-result';
3
- /**
4
- * A class to find the nearest coordinate.
5
- */
6
- export declare class NearestCoordinateFinder {
7
- private alignThreshold;
8
- private elements;
9
- private target;
10
- /**
11
- * Constructor to initialize the NearestCoordinateFinder.
12
- * @param elements - The array of IRect elements.
13
- * @param target - The target IRect element.
14
- * @param alignThreshold - The threshold to align the elements.
15
- */
16
- constructor(elements: IRect[], target: IRect, alignThreshold?: number);
17
- /**
18
- * Finds the nearest coordinate on a specified axis.
19
- * @returns The nearest coordinate and its distance.
20
- */
21
- findNearestCoordinateByX(): INearestCoordinateResult;
22
- /**
23
- * Finds the nearest coordinate on a specified axis.
24
- * @returns The nearest coordinate and its distance.
25
- */
26
- findNearestCoordinateByY(): INearestCoordinateResult;
27
- }
@@ -1 +0,0 @@
1
- export * from './is-node';
@@ -1 +0,0 @@
1
- export * from './f-drag-handle.directive';
File without changes