@foblex/flow 18.2.1 → 18.4.0

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 (161) hide show
  1. package/AI.md +69 -0
  2. package/README.md +40 -3
  3. package/STYLING.md +35 -0
  4. package/domain/f-connection/create-connection-markers/create-connection-markers.d.ts +3 -2
  5. package/domain/f-connection/index.d.ts +1 -0
  6. package/domain/f-connection/providers.d.ts +2 -1
  7. package/domain/f-connection/redraw-connections/redraw-connections.d.ts +3 -0
  8. package/domain/f-connection/resolve-connection-endpoint-rotation-context/index.d.ts +2 -0
  9. package/domain/f-connection/resolve-connection-endpoint-rotation-context/resolve-connection-endpoint-rotation-context-request.d.ts +8 -0
  10. package/domain/f-connection/resolve-connection-endpoint-rotation-context/resolve-connection-endpoint-rotation-context.d.ts +10 -0
  11. package/domain/f-draggable/on-pointer-move/on-pointer-move-request.d.ts +1 -1
  12. package/domain/f-draggable/on-pointer-move/on-pointer-move.d.ts +1 -0
  13. package/domain/get-normalized-connector-rect/get-normalized-connector-rect.d.ts +8 -0
  14. package/domain/providers.d.ts +1 -1
  15. package/esm2022/domain/f-connection/create-connection-markers/create-connection-markers.mjs +33 -6
  16. package/esm2022/domain/f-connection/index.mjs +2 -1
  17. package/esm2022/domain/f-connection/providers.mjs +3 -1
  18. package/esm2022/domain/f-connection/redraw-connections/redraw-connections.mjs +51 -4
  19. package/esm2022/domain/f-connection/resolve-connection-endpoint-rotation-context/index.mjs +3 -0
  20. package/esm2022/domain/f-connection/resolve-connection-endpoint-rotation-context/resolve-connection-endpoint-rotation-context-request.mjs +8 -0
  21. package/esm2022/domain/f-connection/resolve-connection-endpoint-rotation-context/resolve-connection-endpoint-rotation-context.mjs +35 -0
  22. package/esm2022/domain/f-draggable/on-pointer-move/on-pointer-move-request.mjs +1 -1
  23. package/esm2022/domain/f-draggable/on-pointer-move/on-pointer-move.mjs +6 -2
  24. package/esm2022/domain/get-normalized-connector-rect/get-normalized-connector-rect.mjs +33 -3
  25. package/esm2022/f-auto-pan/f-auto-pan-base.mjs +11 -0
  26. package/esm2022/f-auto-pan/f-auto-pan.mjs +38 -0
  27. package/esm2022/f-auto-pan/index.mjs +4 -0
  28. package/esm2022/f-auto-pan/providers.mjs +3 -0
  29. package/esm2022/f-canvas/f-canvas.component.mjs +2 -2
  30. package/esm2022/f-connection/f-connection/f-connection.component.mjs +6 -6
  31. package/esm2022/f-connection/f-connection-for-create/f-connection-for-create.component.mjs +6 -7
  32. package/esm2022/f-connection/f-snap-connection/f-snap-connection.component.mjs +6 -7
  33. package/esm2022/f-connection/providers.mjs +8 -4
  34. package/esm2022/f-connection-v2/components/connection-content/f-connection-content.mjs +18 -4
  35. package/esm2022/f-connection-v2/components/connection-gradient/components/index.mjs +2 -0
  36. package/esm2022/f-connection-v2/components/connection-gradient/components/render/f-connection-gradient-renderer.mjs +17 -0
  37. package/esm2022/f-connection-v2/components/connection-gradient/components/render/index.mjs +3 -0
  38. package/esm2022/f-connection-v2/components/connection-gradient/components/render/models/f-connection-gradient-renderer-base.mjs +81 -0
  39. package/esm2022/f-connection-v2/components/connection-gradient/components/render/models/index.mjs +2 -0
  40. package/esm2022/f-connection-v2/components/connection-gradient/f-connection-gradient.mjs +14 -46
  41. package/esm2022/f-connection-v2/components/connection-gradient/index.mjs +2 -1
  42. package/esm2022/f-connection-v2/components/connection-gradient/models/f-connection-gradient-base.mjs +2 -3
  43. package/esm2022/f-connection-v2/components/connection-path/f-connection-path.mjs +11 -7
  44. package/esm2022/f-connection-v2/components/f-connection-base.mjs +13 -9
  45. package/esm2022/f-connection-v2/models/f-connection-components-parent.mjs +1 -1
  46. package/esm2022/f-connection-v2/utils/connection-behaviour/connection-behaviour-builder-request.mjs +6 -2
  47. package/esm2022/f-connection-v2/utils/connection-behaviour/connection-behaviour-builder.mjs +3 -1
  48. package/esm2022/f-connection-v2/utils/connection-behaviour/models/i-calculate-behavior-request.mjs +1 -1
  49. package/esm2022/f-connection-v2/utils/connection-behaviour/utils/floating-behavior.mjs +8 -8
  50. package/esm2022/f-connection-v2/utils/connection-behaviour/utils/get-rotated-rounded-rect-intersection.mjs +35 -0
  51. package/esm2022/f-connection-v2/utils/create-gradient-dom-identifier.mjs +3 -3
  52. package/esm2022/f-connection-v2/utils/create-gradient-dom-url.mjs +3 -3
  53. package/esm2022/f-connection-worker/features/calculate-connection-worker-payload-item/calculate-connection-worker-payload-item.mjs +13 -1
  54. package/esm2022/f-connection-worker/features/ensure-connection-worker/ensure-connection-worker.mjs +11 -4
  55. package/esm2022/f-connection-worker/features/is-connection-worker-enabled/is-connection-worker-enabled.mjs +3 -2
  56. package/esm2022/f-connection-worker/model/f-connection-worker.mjs +5 -1
  57. package/esm2022/f-connection-worker/model/i-f-connection-worker-rect.mjs +1 -1
  58. package/esm2022/f-connection-worker/model/i-f-connection-worker-request-item.mjs +1 -1
  59. package/esm2022/f-connection-worker/worker/connection-worker-runtime.mjs +247 -0
  60. package/esm2022/f-draggable/auto-pan/auto-pan.utils.mjs +58 -0
  61. package/esm2022/f-draggable/auto-pan/index.mjs +7 -0
  62. package/esm2022/f-draggable/auto-pan/providers.mjs +5 -0
  63. package/esm2022/f-draggable/auto-pan/run-auto-pan-frame/index.mjs +3 -0
  64. package/esm2022/f-draggable/auto-pan/run-auto-pan-frame/run-auto-pan-frame-request.mjs +4 -0
  65. package/esm2022/f-draggable/auto-pan/run-auto-pan-frame/run-auto-pan-frame.mjs +97 -0
  66. package/esm2022/f-draggable/auto-pan/stop-auto-pan/index.mjs +3 -0
  67. package/esm2022/f-draggable/auto-pan/stop-auto-pan/stop-auto-pan-request.mjs +4 -0
  68. package/esm2022/f-draggable/auto-pan/stop-auto-pan/stop-auto-pan.mjs +32 -0
  69. package/esm2022/f-draggable/auto-pan/stored-pointer-event.mjs +25 -0
  70. package/esm2022/f-draggable/auto-pan/sync-auto-pan/index.mjs +3 -0
  71. package/esm2022/f-draggable/auto-pan/sync-auto-pan/sync-auto-pan-request.mjs +4 -0
  72. package/esm2022/f-draggable/auto-pan/sync-auto-pan/sync-auto-pan.mjs +75 -0
  73. package/esm2022/f-draggable/connection/create-connection/create-connection-handler/create-connection-handler.mjs +7 -4
  74. package/esm2022/f-draggable/connection/reassign-connection/reassign-connection-handler/reassign-connection-source-handler.mjs +7 -4
  75. package/esm2022/f-draggable/connection/reassign-connection/reassign-connection-handler/reassign-connection-target-handler.mjs +7 -4
  76. package/esm2022/f-draggable/drag-canvas/drag-canvas-handler/drag-canvas-handler.mjs +6 -3
  77. package/esm2022/f-draggable/drag-node/drag-node-dependent-connection-handlers/drag-node-connection-handler-base.mjs +6 -3
  78. package/esm2022/f-draggable/f-draggable-data-context.mjs +14 -1
  79. package/esm2022/f-draggable/f-draggable.directive.mjs +4 -1
  80. package/esm2022/f-draggable/index.mjs +2 -1
  81. package/esm2022/f-draggable/providers.mjs +3 -1
  82. package/esm2022/f-draggable/resize-node/resize-node-handler/resize-node-dependent-connection-handlers/resize-node-connection-handler-base.mjs +6 -3
  83. package/esm2022/f-flow/f-flow.component.mjs +2 -2
  84. package/esm2022/f-flow.module.mjs +31 -26
  85. package/esm2022/f-storage/f-components-store.mjs +3 -1
  86. package/esm2022/f-zoom/f-zoom.directive.mjs +9 -11
  87. package/esm2022/f-zoom/wheel-zoom.utils.mjs +34 -0
  88. package/esm2022/public-api.mjs +2 -1
  89. package/f-auto-pan/f-auto-pan-base.d.ts +11 -0
  90. package/f-auto-pan/f-auto-pan.d.ts +13 -0
  91. package/f-auto-pan/index.d.ts +3 -0
  92. package/f-auto-pan/providers.d.ts +2 -0
  93. package/f-connection/f-connection/f-connection.component.d.ts +1 -1
  94. package/f-connection/f-connection-for-create/f-connection-for-create.component.d.ts +1 -1
  95. package/f-connection/f-snap-connection/f-snap-connection.component.d.ts +1 -1
  96. package/f-connection/providers.d.ts +3 -3
  97. package/f-connection-v2/components/connection-gradient/components/index.d.ts +1 -0
  98. package/f-connection-v2/components/connection-gradient/components/render/f-connection-gradient-renderer.d.ts +8 -0
  99. package/f-connection-v2/components/connection-gradient/components/render/index.d.ts +2 -0
  100. package/f-connection-v2/components/connection-gradient/components/render/models/f-connection-gradient-renderer-base.d.ts +25 -0
  101. package/f-connection-v2/components/connection-gradient/components/render/models/index.d.ts +1 -0
  102. package/f-connection-v2/components/connection-gradient/f-connection-gradient.d.ts +3 -11
  103. package/f-connection-v2/components/connection-gradient/index.d.ts +1 -0
  104. package/f-connection-v2/components/connection-gradient/models/f-connection-gradient-base.d.ts +3 -5
  105. package/f-connection-v2/components/connection-path/f-connection-path.d.ts +3 -2
  106. package/f-connection-v2/components/f-connection-base.d.ts +7 -4
  107. package/f-connection-v2/models/f-connection-components-parent.d.ts +0 -2
  108. package/f-connection-v2/utils/connection-behaviour/connection-behaviour-builder-request.d.ts +4 -1
  109. package/f-connection-v2/utils/connection-behaviour/models/i-calculate-behavior-request.d.ts +7 -1
  110. package/f-connection-v2/utils/connection-behaviour/utils/floating-behavior.d.ts +1 -1
  111. package/f-connection-v2/utils/connection-behaviour/utils/get-rotated-rounded-rect-intersection.d.ts +3 -0
  112. package/f-connection-v2/utils/create-gradient-dom-identifier.d.ts +1 -1
  113. package/f-connection-v2/utils/create-gradient-dom-url.d.ts +1 -1
  114. package/f-connection-worker/features/calculate-connection-worker-payload-item/calculate-connection-worker-payload-item.d.ts +1 -0
  115. package/f-connection-worker/model/f-connection-worker.d.ts +1 -0
  116. package/f-connection-worker/model/i-f-connection-worker-rect.d.ts +4 -0
  117. package/f-connection-worker/model/i-f-connection-worker-request-item.d.ts +2 -0
  118. package/f-connection-worker/worker/connection-worker-runtime.d.ts +11 -0
  119. package/f-draggable/auto-pan/auto-pan.utils.d.ts +6 -0
  120. package/f-draggable/auto-pan/index.d.ts +6 -0
  121. package/f-draggable/auto-pan/providers.d.ts +4 -0
  122. package/f-draggable/auto-pan/run-auto-pan-frame/index.d.ts +2 -0
  123. package/f-draggable/auto-pan/run-auto-pan-frame/run-auto-pan-frame-request.d.ts +3 -0
  124. package/f-draggable/auto-pan/run-auto-pan-frame/run-auto-pan-frame.d.ts +21 -0
  125. package/f-draggable/auto-pan/stop-auto-pan/index.d.ts +2 -0
  126. package/f-draggable/auto-pan/stop-auto-pan/stop-auto-pan-request.d.ts +3 -0
  127. package/f-draggable/auto-pan/stop-auto-pan/stop-auto-pan.d.ts +10 -0
  128. package/f-draggable/auto-pan/stored-pointer-event.d.ts +12 -0
  129. package/f-draggable/auto-pan/sync-auto-pan/index.d.ts +2 -0
  130. package/f-draggable/auto-pan/sync-auto-pan/sync-auto-pan-request.d.ts +3 -0
  131. package/f-draggable/auto-pan/sync-auto-pan/sync-auto-pan.d.ts +19 -0
  132. package/f-draggable/connection/create-connection/create-connection-handler/create-connection-handler.d.ts +1 -0
  133. package/f-draggable/connection/reassign-connection/reassign-connection-handler/reassign-connection-source-handler.d.ts +1 -0
  134. package/f-draggable/connection/reassign-connection/reassign-connection-handler/reassign-connection-target-handler.d.ts +1 -0
  135. package/f-draggable/drag-node/drag-node-dependent-connection-handlers/drag-node-connection-handler-base.d.ts +1 -0
  136. package/f-draggable/f-draggable-data-context.d.ts +7 -1
  137. package/f-draggable/index.d.ts +1 -0
  138. package/f-draggable/providers.d.ts +1 -1
  139. package/f-draggable/resize-node/resize-node-handler/resize-node-dependent-connection-handlers/resize-node-connection-handler-base.d.ts +1 -0
  140. package/f-flow.module.d.ts +29 -27
  141. package/f-storage/f-components-store.d.ts +2 -0
  142. package/f-zoom/f-zoom.directive.d.ts +0 -1
  143. package/f-zoom/wheel-zoom.utils.d.ts +3 -0
  144. package/fesm2022/foblex-flow.mjs +8048 -7134
  145. package/fesm2022/foblex-flow.mjs.map +1 -1
  146. package/package.json +7 -7
  147. package/public-api.d.ts +1 -0
  148. package/schematics/ng-add/index.js +63 -2
  149. package/schematics/ng-add/index.js.map +1 -1
  150. package/schematics/shared/foblex-dependencies.js +1 -1
  151. package/styles/_index.scss +31 -0
  152. package/styles/default.scss +4 -0
  153. package/styles/domains/_connection.scss +175 -0
  154. package/styles/domains/_connector.scss +150 -0
  155. package/styles/domains/_external-item.scss +44 -0
  156. package/styles/domains/_flow-canvas.scss +41 -0
  157. package/styles/domains/_node-group.scss +230 -0
  158. package/styles/domains/_plugins.scss +100 -0
  159. package/styles/tokens/_ff-aliases.scss +117 -0
  160. package/styles/tokens/_primitive.scss +86 -0
  161. package/styles/tokens/_semantic.scss +131 -0
@@ -3,9 +3,11 @@ import { inject, Injectable } from '@angular/core';
3
3
  import { FExecutionRegister, FMediator } from '@foblex/mediator';
4
4
  import { CalculateConnectionWorkerPayloadItemRequest } from './calculate-connection-worker-payload-item-request';
5
5
  import { ResolveConnectionWorkerContextRequest, } from '../resolve-connection-worker-context';
6
+ import { FComponentsStore } from '../../../f-storage';
6
7
  import * as i0 from "@angular/core";
7
8
  let CalculateConnectionWorkerPayloadItem = class CalculateConnectionWorkerPayloadItem {
8
9
  _mediator = inject(FMediator);
10
+ _store = inject(FComponentsStore);
9
11
  handle({ connection, cache, }) {
10
12
  const context = this._mediator.execute(new ResolveConnectionWorkerContextRequest(connection, cache));
11
13
  if (!context) {
@@ -18,17 +20,27 @@ let CalculateConnectionWorkerPayloadItem = class CalculateConnectionWorkerPayloa
18
20
  inputSide: connection.fInputSide(),
19
21
  sourceConnectableSide: source.fConnectableSide,
20
22
  targetConnectableSide: target.fConnectableSide,
23
+ sourceRotation: this._store.nodes.get(source.fNodeId)?._rotate || 0,
24
+ targetRotation: this._store.nodes.get(target.fNodeId)?._rotate || 0,
21
25
  sourceRect: {
22
26
  x: sourceRect.x,
23
27
  y: sourceRect.y,
24
28
  width: sourceRect.width,
25
29
  height: sourceRect.height,
30
+ radius1: sourceRect.radius1,
31
+ radius2: sourceRect.radius2,
32
+ radius3: sourceRect.radius3,
33
+ radius4: sourceRect.radius4,
26
34
  },
27
35
  targetRect: {
28
36
  x: targetRect.x,
29
37
  y: targetRect.y,
30
38
  width: targetRect.width,
31
39
  height: targetRect.height,
40
+ radius1: targetRect.radius1,
41
+ radius2: targetRect.radius2,
42
+ radius3: targetRect.radius3,
43
+ radius4: targetRect.radius4,
32
44
  },
33
45
  };
34
46
  }
@@ -42,4 +54,4 @@ export { CalculateConnectionWorkerPayloadItem };
42
54
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CalculateConnectionWorkerPayloadItem, decorators: [{
43
55
  type: Injectable
44
56
  }] });
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsY3VsYXRlLWNvbm5lY3Rpb24td29ya2VyLXBheWxvYWQtaXRlbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1jb25uZWN0aW9uLXdvcmtlci9mZWF0dXJlcy9jYWxjdWxhdGUtY29ubmVjdGlvbi13b3JrZXItcGF5bG9hZC1pdGVtL2NhbGN1bGF0ZS1jb25uZWN0aW9uLXdvcmtlci1wYXlsb2FkLWl0ZW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxTQUFTLEVBQWMsTUFBTSxrQkFBa0IsQ0FBQztBQUU3RSxPQUFPLEVBQUUsMkNBQTJDLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUNqSCxPQUFPLEVBRUwscUNBQXFDLEdBQ3RDLE1BQU0sc0NBQXNDLENBQUM7O0FBSXZDLElBQU0sb0NBQW9DLEdBQTFDLE1BQU0sb0NBQW9DO0lBSTlCLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFeEMsTUFBTSxDQUFDLEVBQ1osVUFBVSxFQUNWLEtBQUssR0FDdUM7UUFDNUMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQ3BDLElBQUkscUNBQXFDLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxDQUM3RCxDQUFDO1FBQ0YsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2IsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBRUQsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxHQUFHLE9BQU8sQ0FBQztRQUUzRCxPQUFPO1lBQ0wsUUFBUSxFQUFFLFVBQVUsQ0FBQyxTQUFTO1lBQzlCLFVBQVUsRUFBRSxVQUFVLENBQUMsV0FBVyxFQUFFO1lBQ3BDLFNBQVMsRUFBRSxVQUFVLENBQUMsVUFBVSxFQUFFO1lBQ2xDLHFCQUFxQixFQUFFLE1BQU0sQ0FBQyxnQkFBZ0I7WUFDOUMscUJBQXFCLEVBQUUsTUFBTSxDQUFDLGdCQUFnQjtZQUM5QyxVQUFVLEVBQUU7Z0JBQ1YsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO2dCQUNmLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQztnQkFDZixLQUFLLEVBQUUsVUFBVSxDQUFDLEtBQUs7Z0JBQ3ZCLE1BQU0sRUFBRSxVQUFVLENBQUMsTUFBTTthQUMxQjtZQUNELFVBQVUsRUFBRTtnQkFDVixDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQ2YsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO2dCQUNmLEtBQUssRUFBRSxVQUFVLENBQUMsS0FBSztnQkFDdkIsTUFBTSxFQUFFLFVBQVUsQ0FBQyxNQUFNO2FBQzFCO1NBQ0YsQ0FBQztJQUNKLENBQUM7d0dBdENVLG9DQUFvQzs0R0FBcEMsb0NBQW9DOztBQUFwQyxvQ0FBb0M7SUFEaEQsa0JBQWtCLENBQUMsMkNBQTJDLENBQUM7R0FDbkQsb0NBQW9DLENBdUNoRDs7NEZBdkNZLG9DQUFvQztrQkFGaEQsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRkV4ZWN1dGlvblJlZ2lzdGVyLCBGTWVkaWF0b3IsIElFeGVjdXRpb24gfSBmcm9tICdAZm9ibGV4L21lZGlhdG9yJztcbmltcG9ydCB7IElGQ29ubmVjdGlvbldvcmtlclJlcXVlc3RJdGVtIH0gZnJvbSAnLi4vLi4vbW9kZWwnO1xuaW1wb3J0IHsgQ2FsY3VsYXRlQ29ubmVjdGlvbldvcmtlclBheWxvYWRJdGVtUmVxdWVzdCB9IGZyb20gJy4vY2FsY3VsYXRlLWNvbm5lY3Rpb24td29ya2VyLXBheWxvYWQtaXRlbS1yZXF1ZXN0JztcbmltcG9ydCB7XG4gIElGQ29ubmVjdGlvbldvcmtlckNvbnRleHQsXG4gIFJlc29sdmVDb25uZWN0aW9uV29ya2VyQ29udGV4dFJlcXVlc3QsXG59IGZyb20gJy4uL3Jlc29sdmUtY29ubmVjdGlvbi13b3JrZXItY29udGV4dCc7XG5cbkBJbmplY3RhYmxlKClcbkBGRXhlY3V0aW9uUmVnaXN0ZXIoQ2FsY3VsYXRlQ29ubmVjdGlvbldvcmtlclBheWxvYWRJdGVtUmVxdWVzdClcbmV4cG9ydCBjbGFzcyBDYWxjdWxhdGVDb25uZWN0aW9uV29ya2VyUGF5bG9hZEl0ZW0gaW1wbGVtZW50cyBJRXhlY3V0aW9uPFxuICBDYWxjdWxhdGVDb25uZWN0aW9uV29ya2VyUGF5bG9hZEl0ZW1SZXF1ZXN0LFxuICBJRkNvbm5lY3Rpb25Xb3JrZXJSZXF1ZXN0SXRlbSB8IG51bGxcbj4ge1xuICBwcml2YXRlIHJlYWRvbmx5IF9tZWRpYXRvciA9IGluamVjdChGTWVkaWF0b3IpO1xuXG4gIHB1YmxpYyBoYW5kbGUoe1xuICAgIGNvbm5lY3Rpb24sXG4gICAgY2FjaGUsXG4gIH06IENhbGN1bGF0ZUNvbm5lY3Rpb25Xb3JrZXJQYXlsb2FkSXRlbVJlcXVlc3QpOiBJRkNvbm5lY3Rpb25Xb3JrZXJSZXF1ZXN0SXRlbSB8IG51bGwge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLl9tZWRpYXRvci5leGVjdXRlPElGQ29ubmVjdGlvbldvcmtlckNvbnRleHQgfCBudWxsPihcbiAgICAgIG5ldyBSZXNvbHZlQ29ubmVjdGlvbldvcmtlckNvbnRleHRSZXF1ZXN0KGNvbm5lY3Rpb24sIGNhY2hlKSxcbiAgICApO1xuICAgIGlmICghY29udGV4dCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3QgeyBzb3VyY2UsIHRhcmdldCwgc291cmNlUmVjdCwgdGFyZ2V0UmVjdCB9ID0gY29udGV4dDtcblxuICAgIHJldHVybiB7XG4gICAgICBiZWhhdmlvcjogY29ubmVjdGlvbi5mQmVoYXZpb3IsXG4gICAgICBvdXRwdXRTaWRlOiBjb25uZWN0aW9uLmZPdXRwdXRTaWRlKCksXG4gICAgICBpbnB1dFNpZGU6IGNvbm5lY3Rpb24uZklucHV0U2lkZSgpLFxuICAgICAgc291cmNlQ29ubmVjdGFibGVTaWRlOiBzb3VyY2UuZkNvbm5lY3RhYmxlU2lkZSxcbiAgICAgIHRhcmdldENvbm5lY3RhYmxlU2lkZTogdGFyZ2V0LmZDb25uZWN0YWJsZVNpZGUsXG4gICAgICBzb3VyY2VSZWN0OiB7XG4gICAgICAgIHg6IHNvdXJjZVJlY3QueCxcbiAgICAgICAgeTogc291cmNlUmVjdC55LFxuICAgICAgICB3aWR0aDogc291cmNlUmVjdC53aWR0aCxcbiAgICAgICAgaGVpZ2h0OiBzb3VyY2VSZWN0LmhlaWdodCxcbiAgICAgIH0sXG4gICAgICB0YXJnZXRSZWN0OiB7XG4gICAgICAgIHg6IHRhcmdldFJlY3QueCxcbiAgICAgICAgeTogdGFyZ2V0UmVjdC55LFxuICAgICAgICB3aWR0aDogdGFyZ2V0UmVjdC53aWR0aCxcbiAgICAgICAgaGVpZ2h0OiB0YXJnZXRSZWN0LmhlaWdodCxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxufVxuIl19
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsY3VsYXRlLWNvbm5lY3Rpb24td29ya2VyLXBheWxvYWQtaXRlbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1jb25uZWN0aW9uLXdvcmtlci9mZWF0dXJlcy9jYWxjdWxhdGUtY29ubmVjdGlvbi13b3JrZXItcGF5bG9hZC1pdGVtL2NhbGN1bGF0ZS1jb25uZWN0aW9uLXdvcmtlci1wYXlsb2FkLWl0ZW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxTQUFTLEVBQWMsTUFBTSxrQkFBa0IsQ0FBQztBQUU3RSxPQUFPLEVBQUUsMkNBQTJDLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUNqSCxPQUFPLEVBRUwscUNBQXFDLEdBQ3RDLE1BQU0sc0NBQXNDLENBQUM7QUFDOUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBSS9DLElBQU0sb0NBQW9DLEdBQTFDLE1BQU0sb0NBQW9DO0lBSTlCLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDOUIsTUFBTSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBRTVDLE1BQU0sQ0FBQyxFQUNaLFVBQVUsRUFDVixLQUFLLEdBQ3VDO1FBQzVDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUNwQyxJQUFJLHFDQUFxQyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FDN0QsQ0FBQztRQUNGLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNiLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUVELE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsR0FBRyxPQUFPLENBQUM7UUFFM0QsT0FBTztZQUNMLFFBQVEsRUFBRSxVQUFVLENBQUMsU0FBUztZQUM5QixVQUFVLEVBQUUsVUFBVSxDQUFDLFdBQVcsRUFBRTtZQUNwQyxTQUFTLEVBQUUsVUFBVSxDQUFDLFVBQVUsRUFBRTtZQUNsQyxxQkFBcUIsRUFBRSxNQUFNLENBQUMsZ0JBQWdCO1lBQzlDLHFCQUFxQixFQUFFLE1BQU0sQ0FBQyxnQkFBZ0I7WUFDOUMsY0FBYyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsT0FBTyxJQUFJLENBQUM7WUFDbkUsY0FBYyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsT0FBTyxJQUFJLENBQUM7WUFDbkUsVUFBVSxFQUFFO2dCQUNWLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQztnQkFDZixDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQ2YsS0FBSyxFQUFFLFVBQVUsQ0FBQyxLQUFLO2dCQUN2QixNQUFNLEVBQUUsVUFBVSxDQUFDLE1BQU07Z0JBQ3pCLE9BQU8sRUFBRSxVQUFVLENBQUMsT0FBTztnQkFDM0IsT0FBTyxFQUFFLFVBQVUsQ0FBQyxPQUFPO2dCQUMzQixPQUFPLEVBQUUsVUFBVSxDQUFDLE9BQU87Z0JBQzNCLE9BQU8sRUFBRSxVQUFVLENBQUMsT0FBTzthQUM1QjtZQUNELFVBQVUsRUFBRTtnQkFDVixDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQ2YsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO2dCQUNmLEtBQUssRUFBRSxVQUFVLENBQUMsS0FBSztnQkFDdkIsTUFBTSxFQUFFLFVBQVUsQ0FBQyxNQUFNO2dCQUN6QixPQUFPLEVBQUUsVUFBVSxDQUFDLE9BQU87Z0JBQzNCLE9BQU8sRUFBRSxVQUFVLENBQUMsT0FBTztnQkFDM0IsT0FBTyxFQUFFLFVBQVUsQ0FBQyxPQUFPO2dCQUMzQixPQUFPLEVBQUUsVUFBVSxDQUFDLE9BQU87YUFDNUI7U0FDRixDQUFDO0lBQ0osQ0FBQzt3R0FqRFUsb0NBQW9DOzRHQUFwQyxvQ0FBb0M7O0FBQXBDLG9DQUFvQztJQURoRCxrQkFBa0IsQ0FBQywyQ0FBMkMsQ0FBQztHQUNuRCxvQ0FBb0MsQ0FrRGhEOzs0RkFsRFksb0NBQW9DO2tCQUZoRCxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGRXhlY3V0aW9uUmVnaXN0ZXIsIEZNZWRpYXRvciwgSUV4ZWN1dGlvbiB9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuaW1wb3J0IHsgSUZDb25uZWN0aW9uV29ya2VyUmVxdWVzdEl0ZW0gfSBmcm9tICcuLi8uLi9tb2RlbCc7XG5pbXBvcnQgeyBDYWxjdWxhdGVDb25uZWN0aW9uV29ya2VyUGF5bG9hZEl0ZW1SZXF1ZXN0IH0gZnJvbSAnLi9jYWxjdWxhdGUtY29ubmVjdGlvbi13b3JrZXItcGF5bG9hZC1pdGVtLXJlcXVlc3QnO1xuaW1wb3J0IHtcbiAgSUZDb25uZWN0aW9uV29ya2VyQ29udGV4dCxcbiAgUmVzb2x2ZUNvbm5lY3Rpb25Xb3JrZXJDb250ZXh0UmVxdWVzdCxcbn0gZnJvbSAnLi4vcmVzb2x2ZS1jb25uZWN0aW9uLXdvcmtlci1jb250ZXh0JztcbmltcG9ydCB7IEZDb21wb25lbnRzU3RvcmUgfSBmcm9tICcuLi8uLi8uLi9mLXN0b3JhZ2UnO1xuXG5ASW5qZWN0YWJsZSgpXG5ARkV4ZWN1dGlvblJlZ2lzdGVyKENhbGN1bGF0ZUNvbm5lY3Rpb25Xb3JrZXJQYXlsb2FkSXRlbVJlcXVlc3QpXG5leHBvcnQgY2xhc3MgQ2FsY3VsYXRlQ29ubmVjdGlvbldvcmtlclBheWxvYWRJdGVtXG4gIGltcGxlbWVudHNcbiAgICBJRXhlY3V0aW9uPENhbGN1bGF0ZUNvbm5lY3Rpb25Xb3JrZXJQYXlsb2FkSXRlbVJlcXVlc3QsIElGQ29ubmVjdGlvbldvcmtlclJlcXVlc3RJdGVtIHwgbnVsbD5cbntcbiAgcHJpdmF0ZSByZWFkb25seSBfbWVkaWF0b3IgPSBpbmplY3QoRk1lZGlhdG9yKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfc3RvcmUgPSBpbmplY3QoRkNvbXBvbmVudHNTdG9yZSk7XG5cbiAgcHVibGljIGhhbmRsZSh7XG4gICAgY29ubmVjdGlvbixcbiAgICBjYWNoZSxcbiAgfTogQ2FsY3VsYXRlQ29ubmVjdGlvbldvcmtlclBheWxvYWRJdGVtUmVxdWVzdCk6IElGQ29ubmVjdGlvbldvcmtlclJlcXVlc3RJdGVtIHwgbnVsbCB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuX21lZGlhdG9yLmV4ZWN1dGU8SUZDb25uZWN0aW9uV29ya2VyQ29udGV4dCB8IG51bGw+KFxuICAgICAgbmV3IFJlc29sdmVDb25uZWN0aW9uV29ya2VyQ29udGV4dFJlcXVlc3QoY29ubmVjdGlvbiwgY2FjaGUpLFxuICAgICk7XG4gICAgaWYgKCFjb250ZXh0KSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCB7IHNvdXJjZSwgdGFyZ2V0LCBzb3VyY2VSZWN0LCB0YXJnZXRSZWN0IH0gPSBjb250ZXh0O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGJlaGF2aW9yOiBjb25uZWN0aW9uLmZCZWhhdmlvcixcbiAgICAgIG91dHB1dFNpZGU6IGNvbm5lY3Rpb24uZk91dHB1dFNpZGUoKSxcbiAgICAgIGlucHV0U2lkZTogY29ubmVjdGlvbi5mSW5wdXRTaWRlKCksXG4gICAgICBzb3VyY2VDb25uZWN0YWJsZVNpZGU6IHNvdXJjZS5mQ29ubmVjdGFibGVTaWRlLFxuICAgICAgdGFyZ2V0Q29ubmVjdGFibGVTaWRlOiB0YXJnZXQuZkNvbm5lY3RhYmxlU2lkZSxcbiAgICAgIHNvdXJjZVJvdGF0aW9uOiB0aGlzLl9zdG9yZS5ub2Rlcy5nZXQoc291cmNlLmZOb2RlSWQpPy5fcm90YXRlIHx8IDAsXG4gICAgICB0YXJnZXRSb3RhdGlvbjogdGhpcy5fc3RvcmUubm9kZXMuZ2V0KHRhcmdldC5mTm9kZUlkKT8uX3JvdGF0ZSB8fCAwLFxuICAgICAgc291cmNlUmVjdDoge1xuICAgICAgICB4OiBzb3VyY2VSZWN0LngsXG4gICAgICAgIHk6IHNvdXJjZVJlY3QueSxcbiAgICAgICAgd2lkdGg6IHNvdXJjZVJlY3Qud2lkdGgsXG4gICAgICAgIGhlaWdodDogc291cmNlUmVjdC5oZWlnaHQsXG4gICAgICAgIHJhZGl1czE6IHNvdXJjZVJlY3QucmFkaXVzMSxcbiAgICAgICAgcmFkaXVzMjogc291cmNlUmVjdC5yYWRpdXMyLFxuICAgICAgICByYWRpdXMzOiBzb3VyY2VSZWN0LnJhZGl1czMsXG4gICAgICAgIHJhZGl1czQ6IHNvdXJjZVJlY3QucmFkaXVzNCxcbiAgICAgIH0sXG4gICAgICB0YXJnZXRSZWN0OiB7XG4gICAgICAgIHg6IHRhcmdldFJlY3QueCxcbiAgICAgICAgeTogdGFyZ2V0UmVjdC55LFxuICAgICAgICB3aWR0aDogdGFyZ2V0UmVjdC53aWR0aCxcbiAgICAgICAgaGVpZ2h0OiB0YXJnZXRSZWN0LmhlaWdodCxcbiAgICAgICAgcmFkaXVzMTogdGFyZ2V0UmVjdC5yYWRpdXMxLFxuICAgICAgICByYWRpdXMyOiB0YXJnZXRSZWN0LnJhZGl1czIsXG4gICAgICAgIHJhZGl1czM6IHRhcmdldFJlY3QucmFkaXVzMyxcbiAgICAgICAgcmFkaXVzNDogdGFyZ2V0UmVjdC5yYWRpdXM0LFxuICAgICAgfSxcbiAgICB9O1xuICB9XG59XG4iXX0=
@@ -7,6 +7,7 @@ import { HandleConnectionWorkerMessageRequest } from '../handle-connection-worke
7
7
  import { FConnectionWorker } from '../../model';
8
8
  import { EnsureConnectionWorkerRequest } from './ensure-connection-worker-request';
9
9
  import { ResetConnectionWorkerRuntimeRequest } from '../reset-connection-worker-runtime';
10
+ import { createConnectionWorkerUrl, isConnectionWorkerRuntimeSupported, resolveConnectionWorkerRuntime, revokeConnectionWorkerUrl, } from '../../worker/connection-worker-runtime';
10
11
  import * as i0 from "@angular/core";
11
12
  let EnsureConnectionWorker = class EnsureConnectionWorker {
12
13
  _browser = inject(BrowserService);
@@ -17,12 +18,16 @@ let EnsureConnectionWorker = class EnsureConnectionWorker {
17
18
  return this._state.worker;
18
19
  }
19
20
  const windowRef = this._browser.document.defaultView;
20
- if (!windowRef?.Worker) {
21
+ if (!isConnectionWorkerRuntimeSupported(windowRef)) {
21
22
  return null;
22
23
  }
24
+ const runtime = resolveConnectionWorkerRuntime(windowRef);
25
+ if (!runtime) {
26
+ return null;
27
+ }
28
+ const workerUrl = createConnectionWorkerUrl(runtime);
23
29
  try {
24
- const worker = new windowRef.Worker(new URL('../../worker/f-connection.worker.ts', import.meta.url), {
25
- type: 'module',
30
+ const worker = new runtime.workerCtor(workerUrl, {
26
31
  name: 'f-flow-connection-worker',
27
32
  });
28
33
  worker.onmessage = (event) => {
@@ -34,10 +39,12 @@ let EnsureConnectionWorker = class EnsureConnectionWorker {
34
39
  worker.onmessageerror = () => {
35
40
  this._resetWorkerAfterRuntimeError(new Error('Connection worker message deserialization error.'));
36
41
  };
42
+ this._state.workerUrl = workerUrl;
37
43
  this._state.worker = worker;
38
44
  return worker;
39
45
  }
40
46
  catch (error) {
47
+ revokeConnectionWorkerUrl(workerUrl, runtime.urlApi);
41
48
  this._disableWorker(error instanceof Error ? error : new Error('Connection worker initialization failed.'));
42
49
  return null;
43
50
  }
@@ -58,4 +65,4 @@ export { EnsureConnectionWorker };
58
65
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EnsureConnectionWorker, decorators: [{
59
66
  type: Injectable
60
67
  }] });
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5zdXJlLWNvbm5lY3Rpb24td29ya2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNvbm5lY3Rpb24td29ya2VyL2ZlYXR1cmVzL2Vuc3VyZS1jb25uZWN0aW9uLXdvcmtlci9lbnN1cmUtY29ubmVjdGlvbi13b3JrZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsU0FBUyxFQUFjLE1BQU0sa0JBQWtCLENBQUM7QUFDN0UsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDOUUsT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDM0YsT0FBTyxFQUFFLGlCQUFpQixFQUE4QixNQUFNLGFBQWEsQ0FBQztBQUM1RSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNuRixPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7QUFJbEYsSUFBTSxzQkFBc0IsR0FBNUIsTUFBTSxzQkFBc0I7SUFJaEIsUUFBUSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNsQyxNQUFNLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDbkMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUV4QyxNQUFNLENBQUMsQ0FBZ0M7UUFDNUMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3ZCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7UUFDNUIsQ0FBQztRQUVELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQztRQUNyRCxJQUFJLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQ3ZCLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUVELElBQUksQ0FBQztZQUNILE1BQU0sTUFBTSxHQUFHLElBQUksU0FBUyxDQUFDLE1BQU0sQ0FDakMsSUFBSSxHQUFHLENBQUMscUNBQXFDLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFDL0Q7Z0JBQ0UsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsSUFBSSxFQUFFLDBCQUEwQjthQUNqQyxDQUNGLENBQUM7WUFFRixNQUFNLENBQUMsU0FBUyxHQUFHLENBQUMsS0FBK0MsRUFBRSxFQUFFO2dCQUNyRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLG9DQUFvQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQy9FLENBQUMsQ0FBQztZQUNGLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxFQUFFO2dCQUNwQixJQUFJLENBQUMsNkJBQTZCLENBQUMsSUFBSSxLQUFLLENBQUMsa0NBQWtDLENBQUMsQ0FBQyxDQUFDO1lBQ3BGLENBQUMsQ0FBQztZQUNGLE1BQU0sQ0FBQyxjQUFjLEdBQUcsR0FBRyxFQUFFO2dCQUMzQixJQUFJLENBQUMsNkJBQTZCLENBQ2hDLElBQUksS0FBSyxDQUFDLGtEQUFrRCxDQUFDLENBQzlELENBQUM7WUFDSixDQUFDLENBQUM7WUFFRixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7WUFFNUIsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMsY0FBYyxDQUNqQixLQUFLLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLDBDQUEwQyxDQUFDLENBQ3ZGLENBQUM7WUFFRixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7SUFDSCxDQUFDO0lBRU8sY0FBYyxDQUFDLEtBQVk7UUFDakMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSw4QkFBOEIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFTyw2QkFBNkIsQ0FBQyxLQUFZO1FBQ2hELElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksbUNBQW1DLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN6RSxDQUFDO3dHQXpEVSxzQkFBc0I7NEdBQXRCLHNCQUFzQjs7QUFBdEIsc0JBQXNCO0lBRGxDLGtCQUFrQixDQUFDLDZCQUE2QixDQUFDO0dBQ3JDLHNCQUFzQixDQTBEbEM7OzRGQTFEWSxzQkFBc0I7a0JBRmxDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJyb3dzZXJTZXJ2aWNlIH0gZnJvbSAnQGZvYmxleC9wbGF0Zm9ybSc7XG5pbXBvcnQgeyBGRXhlY3V0aW9uUmVnaXN0ZXIsIEZNZWRpYXRvciwgSUV4ZWN1dGlvbiB9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuaW1wb3J0IHsgRGlzYWJsZUNvbm5lY3Rpb25Xb3JrZXJSZXF1ZXN0IH0gZnJvbSAnLi4vZGlzYWJsZS1jb25uZWN0aW9uLXdvcmtlcic7XG5pbXBvcnQgeyBIYW5kbGVDb25uZWN0aW9uV29ya2VyTWVzc2FnZVJlcXVlc3QgfSBmcm9tICcuLi9oYW5kbGUtY29ubmVjdGlvbi13b3JrZXItbWVzc2FnZSc7XG5pbXBvcnQgeyBGQ29ubmVjdGlvbldvcmtlciwgSUZDb25uZWN0aW9uV29ya2VyUmVzcG9uc2UgfSBmcm9tICcuLi8uLi9tb2RlbCc7XG5pbXBvcnQgeyBFbnN1cmVDb25uZWN0aW9uV29ya2VyUmVxdWVzdCB9IGZyb20gJy4vZW5zdXJlLWNvbm5lY3Rpb24td29ya2VyLXJlcXVlc3QnO1xuaW1wb3J0IHsgUmVzZXRDb25uZWN0aW9uV29ya2VyUnVudGltZVJlcXVlc3QgfSBmcm9tICcuLi9yZXNldC1jb25uZWN0aW9uLXdvcmtlci1ydW50aW1lJztcblxuQEluamVjdGFibGUoKVxuQEZFeGVjdXRpb25SZWdpc3RlcihFbnN1cmVDb25uZWN0aW9uV29ya2VyUmVxdWVzdClcbmV4cG9ydCBjbGFzcyBFbnN1cmVDb25uZWN0aW9uV29ya2VyIGltcGxlbWVudHMgSUV4ZWN1dGlvbjxcbiAgRW5zdXJlQ29ubmVjdGlvbldvcmtlclJlcXVlc3QsXG4gIFdvcmtlciB8IG51bGxcbj4ge1xuICBwcml2YXRlIHJlYWRvbmx5IF9icm93c2VyID0gaW5qZWN0KEJyb3dzZXJTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfc3RhdGUgPSBpbmplY3QoRkNvbm5lY3Rpb25Xb3JrZXIpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9tZWRpYXRvciA9IGluamVjdChGTWVkaWF0b3IpO1xuXG4gIHB1YmxpYyBoYW5kbGUoXzogRW5zdXJlQ29ubmVjdGlvbldvcmtlclJlcXVlc3QpOiBXb3JrZXIgfCBudWxsIHtcbiAgICBpZiAodGhpcy5fc3RhdGUud29ya2VyKSB7XG4gICAgICByZXR1cm4gdGhpcy5fc3RhdGUud29ya2VyO1xuICAgIH1cblxuICAgIGNvbnN0IHdpbmRvd1JlZiA9IHRoaXMuX2Jyb3dzZXIuZG9jdW1lbnQuZGVmYXVsdFZpZXc7XG4gICAgaWYgKCF3aW5kb3dSZWY/Lldvcmtlcikge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHdvcmtlciA9IG5ldyB3aW5kb3dSZWYuV29ya2VyKFxuICAgICAgICBuZXcgVVJMKCcuLi8uLi93b3JrZXIvZi1jb25uZWN0aW9uLndvcmtlci50cycsIGltcG9ydC5tZXRhLnVybCksXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiAnbW9kdWxlJyxcbiAgICAgICAgICBuYW1lOiAnZi1mbG93LWNvbm5lY3Rpb24td29ya2VyJyxcbiAgICAgICAgfSxcbiAgICAgICk7XG5cbiAgICAgIHdvcmtlci5vbm1lc3NhZ2UgPSAoZXZlbnQ6IE1lc3NhZ2VFdmVudDxJRkNvbm5lY3Rpb25Xb3JrZXJSZXNwb25zZT4pID0+IHtcbiAgICAgICAgdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZShuZXcgSGFuZGxlQ29ubmVjdGlvbldvcmtlck1lc3NhZ2VSZXF1ZXN0KGV2ZW50LmRhdGEpKTtcbiAgICAgIH07XG4gICAgICB3b3JrZXIub25lcnJvciA9ICgpID0+IHtcbiAgICAgICAgdGhpcy5fcmVzZXRXb3JrZXJBZnRlclJ1bnRpbWVFcnJvcihuZXcgRXJyb3IoJ0Nvbm5lY3Rpb24gd29ya2VyIHJ1bnRpbWUgZXJyb3IuJykpO1xuICAgICAgfTtcbiAgICAgIHdvcmtlci5vbm1lc3NhZ2VlcnJvciA9ICgpID0+IHtcbiAgICAgICAgdGhpcy5fcmVzZXRXb3JrZXJBZnRlclJ1bnRpbWVFcnJvcihcbiAgICAgICAgICBuZXcgRXJyb3IoJ0Nvbm5lY3Rpb24gd29ya2VyIG1lc3NhZ2UgZGVzZXJpYWxpemF0aW9uIGVycm9yLicpLFxuICAgICAgICApO1xuICAgICAgfTtcblxuICAgICAgdGhpcy5fc3RhdGUud29ya2VyID0gd29ya2VyO1xuXG4gICAgICByZXR1cm4gd29ya2VyO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aGlzLl9kaXNhYmxlV29ya2VyKFxuICAgICAgICBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IgOiBuZXcgRXJyb3IoJ0Nvbm5lY3Rpb24gd29ya2VyIGluaXRpYWxpemF0aW9uIGZhaWxlZC4nKSxcbiAgICAgICk7XG5cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2Rpc2FibGVXb3JrZXIoZXJyb3I6IEVycm9yKTogdm9pZCB7XG4gICAgdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZShuZXcgRGlzYWJsZUNvbm5lY3Rpb25Xb3JrZXJSZXF1ZXN0KGVycm9yKSk7XG4gIH1cblxuICBwcml2YXRlIF9yZXNldFdvcmtlckFmdGVyUnVudGltZUVycm9yKGVycm9yOiBFcnJvcik6IHZvaWQge1xuICAgIHRoaXMuX21lZGlhdG9yLmV4ZWN1dGUobmV3IFJlc2V0Q29ubmVjdGlvbldvcmtlclJ1bnRpbWVSZXF1ZXN0KGVycm9yKSk7XG4gIH1cbn1cbiJdfQ==
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5zdXJlLWNvbm5lY3Rpb24td29ya2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNvbm5lY3Rpb24td29ya2VyL2ZlYXR1cmVzL2Vuc3VyZS1jb25uZWN0aW9uLXdvcmtlci9lbnN1cmUtY29ubmVjdGlvbi13b3JrZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsU0FBUyxFQUFjLE1BQU0sa0JBQWtCLENBQUM7QUFDN0UsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDOUUsT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDM0YsT0FBTyxFQUFFLGlCQUFpQixFQUE4QixNQUFNLGFBQWEsQ0FBQztBQUM1RSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNuRixPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUN6RixPQUFPLEVBQ0wseUJBQXlCLEVBQ3pCLGtDQUFrQyxFQUNsQyw4QkFBOEIsRUFDOUIseUJBQXlCLEdBQzFCLE1BQU0sd0NBQXdDLENBQUM7O0FBSXpDLElBQU0sc0JBQXNCLEdBQTVCLE1BQU0sc0JBQXNCO0lBR2hCLFFBQVEsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDbEMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ25DLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFeEMsTUFBTSxDQUFDLENBQWdDO1FBQzVDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN2QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO1FBQzVCLENBQUM7UUFFRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUM7UUFDckQsSUFBSSxDQUFDLGtDQUFrQyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDbkQsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBRUQsTUFBTSxPQUFPLEdBQUcsOEJBQThCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDMUQsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2IsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBRUQsTUFBTSxTQUFTLEdBQUcseUJBQXlCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFckQsSUFBSSxDQUFDO1lBQ0gsTUFBTSxNQUFNLEdBQUcsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRTtnQkFDL0MsSUFBSSxFQUFFLDBCQUEwQjthQUNqQyxDQUFDLENBQUM7WUFFSCxNQUFNLENBQUMsU0FBUyxHQUFHLENBQUMsS0FBK0MsRUFBRSxFQUFFO2dCQUNyRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLG9DQUFvQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQy9FLENBQUMsQ0FBQztZQUNGLE1BQU0sQ0FBQyxPQUFPLEdBQUcsR0FBRyxFQUFFO2dCQUNwQixJQUFJLENBQUMsNkJBQTZCLENBQUMsSUFBSSxLQUFLLENBQUMsa0NBQWtDLENBQUMsQ0FBQyxDQUFDO1lBQ3BGLENBQUMsQ0FBQztZQUNGLE1BQU0sQ0FBQyxjQUFjLEdBQUcsR0FBRyxFQUFFO2dCQUMzQixJQUFJLENBQUMsNkJBQTZCLENBQ2hDLElBQUksS0FBSyxDQUFDLGtEQUFrRCxDQUFDLENBQzlELENBQUM7WUFDSixDQUFDLENBQUM7WUFFRixJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7WUFDbEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1lBRTVCLE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YseUJBQXlCLENBQUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUNyRCxJQUFJLENBQUMsY0FBYyxDQUNqQixLQUFLLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLDBDQUEwQyxDQUFDLENBQ3ZGLENBQUM7WUFFRixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7SUFDSCxDQUFDO0lBRU8sY0FBYyxDQUFDLEtBQVk7UUFDakMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSw4QkFBOEIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFTyw2QkFBNkIsQ0FBQyxLQUFZO1FBQ2hELElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksbUNBQW1DLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN6RSxDQUFDO3dHQTdEVSxzQkFBc0I7NEdBQXRCLHNCQUFzQjs7QUFBdEIsc0JBQXNCO0lBRGxDLGtCQUFrQixDQUFDLDZCQUE2QixDQUFDO0dBQ3JDLHNCQUFzQixDQThEbEM7OzRGQTlEWSxzQkFBc0I7a0JBRmxDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJyb3dzZXJTZXJ2aWNlIH0gZnJvbSAnQGZvYmxleC9wbGF0Zm9ybSc7XG5pbXBvcnQgeyBGRXhlY3V0aW9uUmVnaXN0ZXIsIEZNZWRpYXRvciwgSUV4ZWN1dGlvbiB9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuaW1wb3J0IHsgRGlzYWJsZUNvbm5lY3Rpb25Xb3JrZXJSZXF1ZXN0IH0gZnJvbSAnLi4vZGlzYWJsZS1jb25uZWN0aW9uLXdvcmtlcic7XG5pbXBvcnQgeyBIYW5kbGVDb25uZWN0aW9uV29ya2VyTWVzc2FnZVJlcXVlc3QgfSBmcm9tICcuLi9oYW5kbGUtY29ubmVjdGlvbi13b3JrZXItbWVzc2FnZSc7XG5pbXBvcnQgeyBGQ29ubmVjdGlvbldvcmtlciwgSUZDb25uZWN0aW9uV29ya2VyUmVzcG9uc2UgfSBmcm9tICcuLi8uLi9tb2RlbCc7XG5pbXBvcnQgeyBFbnN1cmVDb25uZWN0aW9uV29ya2VyUmVxdWVzdCB9IGZyb20gJy4vZW5zdXJlLWNvbm5lY3Rpb24td29ya2VyLXJlcXVlc3QnO1xuaW1wb3J0IHsgUmVzZXRDb25uZWN0aW9uV29ya2VyUnVudGltZVJlcXVlc3QgfSBmcm9tICcuLi9yZXNldC1jb25uZWN0aW9uLXdvcmtlci1ydW50aW1lJztcbmltcG9ydCB7XG4gIGNyZWF0ZUNvbm5lY3Rpb25Xb3JrZXJVcmwsXG4gIGlzQ29ubmVjdGlvbldvcmtlclJ1bnRpbWVTdXBwb3J0ZWQsXG4gIHJlc29sdmVDb25uZWN0aW9uV29ya2VyUnVudGltZSxcbiAgcmV2b2tlQ29ubmVjdGlvbldvcmtlclVybCxcbn0gZnJvbSAnLi4vLi4vd29ya2VyL2Nvbm5lY3Rpb24td29ya2VyLXJ1bnRpbWUnO1xuXG5ASW5qZWN0YWJsZSgpXG5ARkV4ZWN1dGlvblJlZ2lzdGVyKEVuc3VyZUNvbm5lY3Rpb25Xb3JrZXJSZXF1ZXN0KVxuZXhwb3J0IGNsYXNzIEVuc3VyZUNvbm5lY3Rpb25Xb3JrZXJcbiAgaW1wbGVtZW50cyBJRXhlY3V0aW9uPEVuc3VyZUNvbm5lY3Rpb25Xb3JrZXJSZXF1ZXN0LCBXb3JrZXIgfCBudWxsPlxue1xuICBwcml2YXRlIHJlYWRvbmx5IF9icm93c2VyID0gaW5qZWN0KEJyb3dzZXJTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfc3RhdGUgPSBpbmplY3QoRkNvbm5lY3Rpb25Xb3JrZXIpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9tZWRpYXRvciA9IGluamVjdChGTWVkaWF0b3IpO1xuXG4gIHB1YmxpYyBoYW5kbGUoXzogRW5zdXJlQ29ubmVjdGlvbldvcmtlclJlcXVlc3QpOiBXb3JrZXIgfCBudWxsIHtcbiAgICBpZiAodGhpcy5fc3RhdGUud29ya2VyKSB7XG4gICAgICByZXR1cm4gdGhpcy5fc3RhdGUud29ya2VyO1xuICAgIH1cblxuICAgIGNvbnN0IHdpbmRvd1JlZiA9IHRoaXMuX2Jyb3dzZXIuZG9jdW1lbnQuZGVmYXVsdFZpZXc7XG4gICAgaWYgKCFpc0Nvbm5lY3Rpb25Xb3JrZXJSdW50aW1lU3VwcG9ydGVkKHdpbmRvd1JlZikpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IHJ1bnRpbWUgPSByZXNvbHZlQ29ubmVjdGlvbldvcmtlclJ1bnRpbWUod2luZG93UmVmKTtcbiAgICBpZiAoIXJ1bnRpbWUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGNvbnN0IHdvcmtlclVybCA9IGNyZWF0ZUNvbm5lY3Rpb25Xb3JrZXJVcmwocnVudGltZSk7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3Qgd29ya2VyID0gbmV3IHJ1bnRpbWUud29ya2VyQ3Rvcih3b3JrZXJVcmwsIHtcbiAgICAgICAgbmFtZTogJ2YtZmxvdy1jb25uZWN0aW9uLXdvcmtlcicsXG4gICAgICB9KTtcblxuICAgICAgd29ya2VyLm9ubWVzc2FnZSA9IChldmVudDogTWVzc2FnZUV2ZW50PElGQ29ubmVjdGlvbldvcmtlclJlc3BvbnNlPikgPT4ge1xuICAgICAgICB0aGlzLl9tZWRpYXRvci5leGVjdXRlKG5ldyBIYW5kbGVDb25uZWN0aW9uV29ya2VyTWVzc2FnZVJlcXVlc3QoZXZlbnQuZGF0YSkpO1xuICAgICAgfTtcbiAgICAgIHdvcmtlci5vbmVycm9yID0gKCkgPT4ge1xuICAgICAgICB0aGlzLl9yZXNldFdvcmtlckFmdGVyUnVudGltZUVycm9yKG5ldyBFcnJvcignQ29ubmVjdGlvbiB3b3JrZXIgcnVudGltZSBlcnJvci4nKSk7XG4gICAgICB9O1xuICAgICAgd29ya2VyLm9ubWVzc2FnZWVycm9yID0gKCkgPT4ge1xuICAgICAgICB0aGlzLl9yZXNldFdvcmtlckFmdGVyUnVudGltZUVycm9yKFxuICAgICAgICAgIG5ldyBFcnJvcignQ29ubmVjdGlvbiB3b3JrZXIgbWVzc2FnZSBkZXNlcmlhbGl6YXRpb24gZXJyb3IuJyksXG4gICAgICAgICk7XG4gICAgICB9O1xuXG4gICAgICB0aGlzLl9zdGF0ZS53b3JrZXJVcmwgPSB3b3JrZXJVcmw7XG4gICAgICB0aGlzLl9zdGF0ZS53b3JrZXIgPSB3b3JrZXI7XG5cbiAgICAgIHJldHVybiB3b3JrZXI7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHJldm9rZUNvbm5lY3Rpb25Xb3JrZXJVcmwod29ya2VyVXJsLCBydW50aW1lLnVybEFwaSk7XG4gICAgICB0aGlzLl9kaXNhYmxlV29ya2VyKFxuICAgICAgICBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IgOiBuZXcgRXJyb3IoJ0Nvbm5lY3Rpb24gd29ya2VyIGluaXRpYWxpemF0aW9uIGZhaWxlZC4nKSxcbiAgICAgICk7XG5cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2Rpc2FibGVXb3JrZXIoZXJyb3I6IEVycm9yKTogdm9pZCB7XG4gICAgdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZShuZXcgRGlzYWJsZUNvbm5lY3Rpb25Xb3JrZXJSZXF1ZXN0KGVycm9yKSk7XG4gIH1cblxuICBwcml2YXRlIF9yZXNldFdvcmtlckFmdGVyUnVudGltZUVycm9yKGVycm9yOiBFcnJvcik6IHZvaWQge1xuICAgIHRoaXMuX21lZGlhdG9yLmV4ZWN1dGUobmV3IFJlc2V0Q29ubmVjdGlvbldvcmtlclJ1bnRpbWVSZXF1ZXN0KGVycm9yKSk7XG4gIH1cbn1cbiJdfQ==
@@ -4,6 +4,7 @@ import { BrowserService } from '@foblex/platform';
4
4
  import { FExecutionRegister } from '@foblex/mediator';
5
5
  import { FConnectionWorker } from '../../model';
6
6
  import { IsConnectionWorkerEnabledRequest } from './is-connection-worker-enabled-request';
7
+ import { isConnectionWorkerRuntimeSupported } from '../../worker/connection-worker-runtime';
7
8
  import * as i0 from "@angular/core";
8
9
  let IsConnectionWorkerEnabled = class IsConnectionWorkerEnabled {
9
10
  _browser = inject(BrowserService);
@@ -16,7 +17,7 @@ let IsConnectionWorkerEnabled = class IsConnectionWorkerEnabled {
16
17
  return false;
17
18
  }
18
19
  const windowRef = this._browser.document.defaultView;
19
- return !!windowRef?.Worker;
20
+ return isConnectionWorkerRuntimeSupported(windowRef);
20
21
  }
21
22
  _isWorkerAvailable() {
22
23
  return this._browser.isBrowser();
@@ -31,4 +32,4 @@ export { IsConnectionWorkerEnabled };
31
32
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IsConnectionWorkerEnabled, decorators: [{
32
33
  type: Injectable
33
34
  }] });
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtY29ubmVjdGlvbi13b3JrZXItZW5hYmxlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1jb25uZWN0aW9uLXdvcmtlci9mZWF0dXJlcy9pcy1jb25uZWN0aW9uLXdvcmtlci1lbmFibGVkL2lzLWNvbm5lY3Rpb24td29ya2VyLWVuYWJsZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsa0JBQWtCLEVBQWMsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDaEQsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7O0FBSW5GLElBQU0seUJBQXlCLEdBQS9CLE1BQU0seUJBQXlCO0lBSW5CLFFBQVEsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDbEMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBRTdDLE1BQU0sQ0FBQyxDQUFtQztRQUMvQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDM0IsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLENBQUM7WUFDL0IsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBRUQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDO1FBRXJELE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUM7SUFDN0IsQ0FBQztJQUVPLGtCQUFrQjtRQUN4QixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkMsQ0FBQzt3R0F2QlUseUJBQXlCOzRHQUF6Qix5QkFBeUI7O0FBQXpCLHlCQUF5QjtJQURyQyxrQkFBa0IsQ0FBQyxnQ0FBZ0MsQ0FBQztHQUN4Qyx5QkFBeUIsQ0F3QnJDOzs0RkF4QlkseUJBQXlCO2tCQUZyQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCcm93c2VyU2VydmljZSB9IGZyb20gJ0Bmb2JsZXgvcGxhdGZvcm0nO1xuaW1wb3J0IHsgRkV4ZWN1dGlvblJlZ2lzdGVyLCBJRXhlY3V0aW9uIH0gZnJvbSAnQGZvYmxleC9tZWRpYXRvcic7XG5pbXBvcnQgeyBGQ29ubmVjdGlvbldvcmtlciB9IGZyb20gJy4uLy4uL21vZGVsJztcbmltcG9ydCB7IElzQ29ubmVjdGlvbldvcmtlckVuYWJsZWRSZXF1ZXN0IH0gZnJvbSAnLi9pcy1jb25uZWN0aW9uLXdvcmtlci1lbmFibGVkLXJlcXVlc3QnO1xuXG5ASW5qZWN0YWJsZSgpXG5ARkV4ZWN1dGlvblJlZ2lzdGVyKElzQ29ubmVjdGlvbldvcmtlckVuYWJsZWRSZXF1ZXN0KVxuZXhwb3J0IGNsYXNzIElzQ29ubmVjdGlvbldvcmtlckVuYWJsZWQgaW1wbGVtZW50cyBJRXhlY3V0aW9uPFxuICBJc0Nvbm5lY3Rpb25Xb3JrZXJFbmFibGVkUmVxdWVzdCxcbiAgYm9vbGVhblxuPiB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2Jyb3dzZXIgPSBpbmplY3QoQnJvd3NlclNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9zdGF0ZSA9IGluamVjdChGQ29ubmVjdGlvbldvcmtlcik7XG5cbiAgcHVibGljIGhhbmRsZShfOiBJc0Nvbm5lY3Rpb25Xb3JrZXJFbmFibGVkUmVxdWVzdCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLl9zdGF0ZS5pc0Rpc2FibGVkKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLl9pc1dvcmtlckF2YWlsYWJsZSgpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3Qgd2luZG93UmVmID0gdGhpcy5fYnJvd3Nlci5kb2N1bWVudC5kZWZhdWx0VmlldztcblxuICAgIHJldHVybiAhIXdpbmRvd1JlZj8uV29ya2VyO1xuICB9XG5cbiAgcHJpdmF0ZSBfaXNXb3JrZXJBdmFpbGFibGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2Jyb3dzZXIuaXNCcm93c2VyKCk7XG4gIH1cbn1cbiJdfQ==
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXMtY29ubmVjdGlvbi13b3JrZXItZW5hYmxlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1jb25uZWN0aW9uLXdvcmtlci9mZWF0dXJlcy9pcy1jb25uZWN0aW9uLXdvcmtlci1lbmFibGVkL2lzLWNvbm5lY3Rpb24td29ya2VyLWVuYWJsZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsa0JBQWtCLEVBQWMsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDaEQsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDMUYsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7O0FBSXJGLElBQU0seUJBQXlCLEdBQS9CLE1BQU0seUJBQXlCO0lBR25CLFFBQVEsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDbEMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBRTdDLE1BQU0sQ0FBQyxDQUFtQztRQUMvQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDM0IsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLENBQUM7WUFDL0IsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBRUQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDO1FBRXJELE9BQU8sa0NBQWtDLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVPLGtCQUFrQjtRQUN4QixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkMsQ0FBQzt3R0F0QlUseUJBQXlCOzRHQUF6Qix5QkFBeUI7O0FBQXpCLHlCQUF5QjtJQURyQyxrQkFBa0IsQ0FBQyxnQ0FBZ0MsQ0FBQztHQUN4Qyx5QkFBeUIsQ0F1QnJDOzs0RkF2QlkseUJBQXlCO2tCQUZyQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCcm93c2VyU2VydmljZSB9IGZyb20gJ0Bmb2JsZXgvcGxhdGZvcm0nO1xuaW1wb3J0IHsgRkV4ZWN1dGlvblJlZ2lzdGVyLCBJRXhlY3V0aW9uIH0gZnJvbSAnQGZvYmxleC9tZWRpYXRvcic7XG5pbXBvcnQgeyBGQ29ubmVjdGlvbldvcmtlciB9IGZyb20gJy4uLy4uL21vZGVsJztcbmltcG9ydCB7IElzQ29ubmVjdGlvbldvcmtlckVuYWJsZWRSZXF1ZXN0IH0gZnJvbSAnLi9pcy1jb25uZWN0aW9uLXdvcmtlci1lbmFibGVkLXJlcXVlc3QnO1xuaW1wb3J0IHsgaXNDb25uZWN0aW9uV29ya2VyUnVudGltZVN1cHBvcnRlZCB9IGZyb20gJy4uLy4uL3dvcmtlci9jb25uZWN0aW9uLXdvcmtlci1ydW50aW1lJztcblxuQEluamVjdGFibGUoKVxuQEZFeGVjdXRpb25SZWdpc3RlcihJc0Nvbm5lY3Rpb25Xb3JrZXJFbmFibGVkUmVxdWVzdClcbmV4cG9ydCBjbGFzcyBJc0Nvbm5lY3Rpb25Xb3JrZXJFbmFibGVkXG4gIGltcGxlbWVudHMgSUV4ZWN1dGlvbjxJc0Nvbm5lY3Rpb25Xb3JrZXJFbmFibGVkUmVxdWVzdCwgYm9vbGVhbj5cbntcbiAgcHJpdmF0ZSByZWFkb25seSBfYnJvd3NlciA9IGluamVjdChCcm93c2VyU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3N0YXRlID0gaW5qZWN0KEZDb25uZWN0aW9uV29ya2VyKTtcblxuICBwdWJsaWMgaGFuZGxlKF86IElzQ29ubmVjdGlvbldvcmtlckVuYWJsZWRSZXF1ZXN0KTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuX3N0YXRlLmlzRGlzYWJsZWQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuX2lzV29ya2VyQXZhaWxhYmxlKCkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCB3aW5kb3dSZWYgPSB0aGlzLl9icm93c2VyLmRvY3VtZW50LmRlZmF1bHRWaWV3O1xuXG4gICAgcmV0dXJuIGlzQ29ubmVjdGlvbldvcmtlclJ1bnRpbWVTdXBwb3J0ZWQod2luZG93UmVmKTtcbiAgfVxuXG4gIHByaXZhdGUgX2lzV29ya2VyQXZhaWxhYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9icm93c2VyLmlzQnJvd3NlcigpO1xuICB9XG59XG4iXX0=
@@ -1,7 +1,9 @@
1
1
  import { Injectable } from '@angular/core';
2
+ import { revokeConnectionWorkerUrl } from '../worker/connection-worker-runtime';
2
3
  import * as i0 from "@angular/core";
3
4
  export class FConnectionWorker {
4
5
  worker = null;
6
+ workerUrl = null;
5
7
  nextRequestId = 0;
6
8
  isDisabled = false;
7
9
  pending = new Map();
@@ -10,6 +12,8 @@ export class FConnectionWorker {
10
12
  this.pending.clear();
11
13
  this.worker?.terminate();
12
14
  this.worker = null;
15
+ revokeConnectionWorkerUrl(this.workerUrl);
16
+ this.workerUrl = null;
13
17
  }
14
18
  dispose() {
15
19
  this.resetRuntime(new Error('Connection worker was destroyed.'));
@@ -20,4 +24,4 @@ export class FConnectionWorker {
20
24
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FConnectionWorker, decorators: [{
21
25
  type: Injectable
22
26
  }] });
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jb25uZWN0aW9uLXdvcmtlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1jb25uZWN0aW9uLXdvcmtlci9tb2RlbC9mLWNvbm5lY3Rpb24td29ya2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSTNDLE1BQU0sT0FBTyxpQkFBaUI7SUFDckIsTUFBTSxHQUFrQixJQUFJLENBQUM7SUFFN0IsYUFBYSxHQUFHLENBQUMsQ0FBQztJQUNsQixVQUFVLEdBQUcsS0FBSyxDQUFDO0lBRVYsT0FBTyxHQUFHLElBQUksR0FBRyxFQUE0QyxDQUFDO0lBRXZFLFlBQVksQ0FBQyxLQUFZO1FBQzlCLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUVyQixJQUFJLENBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO0lBQ3JCLENBQUM7SUFFTSxPQUFPO1FBQ1osSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEtBQUssQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDLENBQUM7SUFDbkUsQ0FBQzt3R0FsQlUsaUJBQWlCOzRHQUFqQixpQkFBaUI7OzRGQUFqQixpQkFBaUI7a0JBRDdCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBURkNvbm5lY3Rpb25Xb3JrZXJQZW5kaW5nUmVxdWVzdCB9IGZyb20gJy4vdC1mLWNvbm5lY3Rpb24td29ya2VyLXBlbmRpbmctcmVxdWVzdCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBGQ29ubmVjdGlvbldvcmtlciB7XG4gIHB1YmxpYyB3b3JrZXI6IFdvcmtlciB8IG51bGwgPSBudWxsO1xuXG4gIHB1YmxpYyBuZXh0UmVxdWVzdElkID0gMDtcbiAgcHVibGljIGlzRGlzYWJsZWQgPSBmYWxzZTtcblxuICBwdWJsaWMgcmVhZG9ubHkgcGVuZGluZyA9IG5ldyBNYXA8bnVtYmVyLCBURkNvbm5lY3Rpb25Xb3JrZXJQZW5kaW5nUmVxdWVzdD4oKTtcblxuICBwdWJsaWMgcmVzZXRSdW50aW1lKGVycm9yOiBFcnJvcik6IHZvaWQge1xuICAgIHRoaXMucGVuZGluZy5mb3JFYWNoKChyZXF1ZXN0KSA9PiByZXF1ZXN0LnJlamVjdChlcnJvcikpO1xuICAgIHRoaXMucGVuZGluZy5jbGVhcigpO1xuXG4gICAgdGhpcy53b3JrZXI/LnRlcm1pbmF0ZSgpO1xuICAgIHRoaXMud29ya2VyID0gbnVsbDtcbiAgfVxuXG4gIHB1YmxpYyBkaXNwb3NlKCk6IHZvaWQge1xuICAgIHRoaXMucmVzZXRSdW50aW1lKG5ldyBFcnJvcignQ29ubmVjdGlvbiB3b3JrZXIgd2FzIGRlc3Ryb3llZC4nKSk7XG4gIH1cbn1cbiJdfQ==
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jb25uZWN0aW9uLXdvcmtlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1jb25uZWN0aW9uLXdvcmtlci9tb2RlbC9mLWNvbm5lY3Rpb24td29ya2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0scUNBQXFDLENBQUM7O0FBR2hGLE1BQU0sT0FBTyxpQkFBaUI7SUFDckIsTUFBTSxHQUFrQixJQUFJLENBQUM7SUFDN0IsU0FBUyxHQUFrQixJQUFJLENBQUM7SUFFaEMsYUFBYSxHQUFHLENBQUMsQ0FBQztJQUNsQixVQUFVLEdBQUcsS0FBSyxDQUFDO0lBRVYsT0FBTyxHQUFHLElBQUksR0FBRyxFQUE0QyxDQUFDO0lBRXZFLFlBQVksQ0FBQyxLQUFZO1FBQzlCLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUVyQixJQUFJLENBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBRW5CLHlCQUF5QixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztJQUN4QixDQUFDO0lBRU0sT0FBTztRQUNaLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxLQUFLLENBQUMsa0NBQWtDLENBQUMsQ0FBQyxDQUFDO0lBQ25FLENBQUM7d0dBdEJVLGlCQUFpQjs0R0FBakIsaUJBQWlCOzs0RkFBakIsaUJBQWlCO2tCQUQ3QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVEZDb25uZWN0aW9uV29ya2VyUGVuZGluZ1JlcXVlc3QgfSBmcm9tICcuL3QtZi1jb25uZWN0aW9uLXdvcmtlci1wZW5kaW5nLXJlcXVlc3QnO1xuaW1wb3J0IHsgcmV2b2tlQ29ubmVjdGlvbldvcmtlclVybCB9IGZyb20gJy4uL3dvcmtlci9jb25uZWN0aW9uLXdvcmtlci1ydW50aW1lJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEZDb25uZWN0aW9uV29ya2VyIHtcbiAgcHVibGljIHdvcmtlcjogV29ya2VyIHwgbnVsbCA9IG51bGw7XG4gIHB1YmxpYyB3b3JrZXJVcmw6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIHB1YmxpYyBuZXh0UmVxdWVzdElkID0gMDtcbiAgcHVibGljIGlzRGlzYWJsZWQgPSBmYWxzZTtcblxuICBwdWJsaWMgcmVhZG9ubHkgcGVuZGluZyA9IG5ldyBNYXA8bnVtYmVyLCBURkNvbm5lY3Rpb25Xb3JrZXJQZW5kaW5nUmVxdWVzdD4oKTtcblxuICBwdWJsaWMgcmVzZXRSdW50aW1lKGVycm9yOiBFcnJvcik6IHZvaWQge1xuICAgIHRoaXMucGVuZGluZy5mb3JFYWNoKChyZXF1ZXN0KSA9PiByZXF1ZXN0LnJlamVjdChlcnJvcikpO1xuICAgIHRoaXMucGVuZGluZy5jbGVhcigpO1xuXG4gICAgdGhpcy53b3JrZXI/LnRlcm1pbmF0ZSgpO1xuICAgIHRoaXMud29ya2VyID0gbnVsbDtcblxuICAgIHJldm9rZUNvbm5lY3Rpb25Xb3JrZXJVcmwodGhpcy53b3JrZXJVcmwpO1xuICAgIHRoaXMud29ya2VyVXJsID0gbnVsbDtcbiAgfVxuXG4gIHB1YmxpYyBkaXNwb3NlKCk6IHZvaWQge1xuICAgIHRoaXMucmVzZXRSdW50aW1lKG5ldyBFcnJvcignQ29ubmVjdGlvbiB3b3JrZXIgd2FzIGRlc3Ryb3llZC4nKSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaS1mLWNvbm5lY3Rpb24td29ya2VyLXJlY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdGlvbi13b3JrZXIvbW9kZWwvaS1mLWNvbm5lY3Rpb24td29ya2VyLXJlY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgSUZDb25uZWN0aW9uV29ya2VyUmVjdCB7XG4gIHg6IG51bWJlcjtcbiAgeTogbnVtYmVyO1xuICB3aWR0aDogbnVtYmVyO1xuICBoZWlnaHQ6IG51bWJlcjtcbn1cbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaS1mLWNvbm5lY3Rpb24td29ya2VyLXJlY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdGlvbi13b3JrZXIvbW9kZWwvaS1mLWNvbm5lY3Rpb24td29ya2VyLXJlY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgSUZDb25uZWN0aW9uV29ya2VyUmVjdCB7XG4gIHg6IG51bWJlcjtcbiAgeTogbnVtYmVyO1xuICB3aWR0aDogbnVtYmVyO1xuICBoZWlnaHQ6IG51bWJlcjtcbiAgcmFkaXVzMTogbnVtYmVyO1xuICByYWRpdXMyOiBudW1iZXI7XG4gIHJhZGl1czM6IG51bWJlcjtcbiAgcmFkaXVzNDogbnVtYmVyO1xufVxuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaS1mLWNvbm5lY3Rpb24td29ya2VyLXJlcXVlc3QtaXRlbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1jb25uZWN0aW9uLXdvcmtlci9tb2RlbC9pLWYtY29ubmVjdGlvbi13b3JrZXItcmVxdWVzdC1pdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJRkNvbm5lY3Rpb25Xb3JrZXJSZWN0IH0gZnJvbSAnLi9pLWYtY29ubmVjdGlvbi13b3JrZXItcmVjdCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUZDb25uZWN0aW9uV29ya2VyUmVxdWVzdEl0ZW0ge1xuICBvcmlnaW5hbEluZGV4PzogbnVtYmVyO1xuICBiZWhhdmlvcjogc3RyaW5nO1xuICBvdXRwdXRTaWRlOiBzdHJpbmc7XG4gIGlucHV0U2lkZTogc3RyaW5nO1xuICBzb3VyY2VDb25uZWN0YWJsZVNpZGU6IHN0cmluZztcbiAgdGFyZ2V0Q29ubmVjdGFibGVTaWRlOiBzdHJpbmc7XG4gIHNvdXJjZVJlY3Q6IElGQ29ubmVjdGlvbldvcmtlclJlY3Q7XG4gIHRhcmdldFJlY3Q6IElGQ29ubmVjdGlvbldvcmtlclJlY3Q7XG59XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaS1mLWNvbm5lY3Rpb24td29ya2VyLXJlcXVlc3QtaXRlbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1jb25uZWN0aW9uLXdvcmtlci9tb2RlbC9pLWYtY29ubmVjdGlvbi13b3JrZXItcmVxdWVzdC1pdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJRkNvbm5lY3Rpb25Xb3JrZXJSZWN0IH0gZnJvbSAnLi9pLWYtY29ubmVjdGlvbi13b3JrZXItcmVjdCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUZDb25uZWN0aW9uV29ya2VyUmVxdWVzdEl0ZW0ge1xuICBvcmlnaW5hbEluZGV4PzogbnVtYmVyO1xuICBiZWhhdmlvcjogc3RyaW5nO1xuICBvdXRwdXRTaWRlOiBzdHJpbmc7XG4gIGlucHV0U2lkZTogc3RyaW5nO1xuICBzb3VyY2VDb25uZWN0YWJsZVNpZGU6IHN0cmluZztcbiAgdGFyZ2V0Q29ubmVjdGFibGVTaWRlOiBzdHJpbmc7XG4gIHNvdXJjZVJvdGF0aW9uOiBudW1iZXI7XG4gIHRhcmdldFJvdGF0aW9uOiBudW1iZXI7XG4gIHNvdXJjZVJlY3Q6IElGQ29ubmVjdGlvbldvcmtlclJlY3Q7XG4gIHRhcmdldFJlY3Q6IElGQ29ubmVjdGlvbldvcmtlclJlY3Q7XG59XG4iXX0=
@@ -0,0 +1,247 @@
1
+ const F_CONNECTION_WORKER_SOURCE = String.raw `
2
+ const EPSILON = 0.5;
3
+
4
+ addEventListener('message', (event) => {
5
+ const data = event?.data;
6
+ const requestId = data?.requestId;
7
+ const items = Array.isArray(data?.items) ? data.items : [];
8
+
9
+ try {
10
+ const results = items.map((item) => calculateItem(item));
11
+ postMessage({ requestId, results });
12
+ } catch (error) {
13
+ const message = error instanceof Error ? error.message : 'Connection worker failed.';
14
+ postMessage({ requestId, error: message });
15
+ }
16
+ });
17
+
18
+ function calculateItem(item) {
19
+ const sourceCenterX = item.sourceRect.x + item.sourceRect.width / 2;
20
+ const sourceCenterY = item.sourceRect.y + item.sourceRect.height / 2;
21
+ const targetCenterX = item.targetRect.x + item.targetRect.width / 2;
22
+ const targetCenterY = item.targetRect.y + item.targetRect.height / 2;
23
+
24
+ const sourceSide = resolveConnectableSide(
25
+ item.outputSide,
26
+ targetCenterX - sourceCenterX,
27
+ targetCenterY - sourceCenterY,
28
+ item.sourceConnectableSide,
29
+ );
30
+
31
+ const targetSide = resolveConnectableSide(
32
+ item.inputSide,
33
+ sourceCenterX - targetCenterX,
34
+ sourceCenterY - targetCenterY,
35
+ item.targetConnectableSide,
36
+ );
37
+
38
+ if (item.behavior === 'fixed_center') {
39
+ return {
40
+ originalIndex: item.originalIndex,
41
+ supported: true,
42
+ sourceSide,
43
+ targetSide,
44
+ line: {
45
+ point1: { x: sourceCenterX, y: sourceCenterY },
46
+ point2: { x: targetCenterX, y: targetCenterY },
47
+ },
48
+ };
49
+ }
50
+
51
+ if (item.sourceRotation || item.targetRotation) {
52
+ return { originalIndex: item.originalIndex, supported: false };
53
+ }
54
+
55
+ if (item.behavior !== 'fixed') {
56
+ if (item.behavior !== 'floating') {
57
+ return { originalIndex: item.originalIndex, supported: false };
58
+ }
59
+
60
+ if (hasRoundedCorners(item.sourceRect) || hasRoundedCorners(item.targetRect)) {
61
+ return { originalIndex: item.originalIndex, supported: false };
62
+ }
63
+
64
+ return {
65
+ originalIndex: item.originalIndex,
66
+ supported: true,
67
+ sourceSide,
68
+ targetSide,
69
+ line: buildFloatingLine(item.sourceRect, item.targetRect),
70
+ };
71
+ }
72
+
73
+ const line = buildFixedLine(item.sourceRect, item.targetRect, sourceSide, targetSide);
74
+ if (!line) {
75
+ return { originalIndex: item.originalIndex, supported: false };
76
+ }
77
+
78
+ return {
79
+ originalIndex: item.originalIndex,
80
+ supported: true,
81
+ sourceSide,
82
+ targetSide,
83
+ line,
84
+ };
85
+ }
86
+
87
+ function resolveConnectableSide(requestedSide, deltaX, deltaY, fallbackSide) {
88
+ if (requestedSide === 'default') {
89
+ return fallbackSide;
90
+ }
91
+
92
+ const absX = Math.abs(deltaX);
93
+ const absY = Math.abs(deltaY);
94
+ const nearZero = absX < EPSILON && absY < EPSILON;
95
+
96
+ if (nearZero) {
97
+ return fallbackSide;
98
+ }
99
+
100
+ const horizontalDominant = absX >= absY;
101
+
102
+ switch (requestedSide) {
103
+ case 'calculate':
104
+ return horizontalDominant ? (deltaX >= 0 ? 'right' : 'left') : deltaY >= 0 ? 'bottom' : 'top';
105
+
106
+ case 'calculate_horizontal':
107
+ if (absX < EPSILON) {
108
+ return fallbackSide;
109
+ }
110
+
111
+ return deltaX >= 0 ? 'right' : 'left';
112
+
113
+ case 'calculate_vertical':
114
+ if (absY < EPSILON) {
115
+ return fallbackSide;
116
+ }
117
+
118
+ return deltaY >= 0 ? 'bottom' : 'top';
119
+
120
+ case 'top':
121
+ case 'bottom':
122
+ case 'left':
123
+ case 'right':
124
+ return requestedSide;
125
+
126
+ default:
127
+ return fallbackSide;
128
+ }
129
+ }
130
+
131
+ function buildFixedLine(sourceRect, targetRect, sourceSide, targetSide) {
132
+ const sourceAnchor = sourceSide === 'auto' ? 'bottom' : sourceSide;
133
+ const targetAnchor = targetSide === 'auto' ? 'top' : targetSide;
134
+
135
+ const point1 = getSidePoint(sourceRect, sourceAnchor);
136
+ const point2 = getSidePoint(targetRect, targetAnchor);
137
+
138
+ if (!point1 || !point2) {
139
+ return null;
140
+ }
141
+
142
+ return { point1, point2 };
143
+ }
144
+
145
+ function buildFloatingLine(sourceRect, targetRect) {
146
+ const sourceCenter = getRectCenter(sourceRect);
147
+ const targetCenter = getRectCenter(targetRect);
148
+
149
+ return {
150
+ point1: getRectBorderIntersection(sourceRect, sourceCenter, targetCenter),
151
+ point2: getRectBorderIntersection(targetRect, targetCenter, sourceCenter),
152
+ };
153
+ }
154
+
155
+ function hasRoundedCorners(rect) {
156
+ return !!(rect.radius1 || rect.radius2 || rect.radius3 || rect.radius4);
157
+ }
158
+
159
+ function getRectCenter(rect) {
160
+ return {
161
+ x: rect.x + rect.width / 2,
162
+ y: rect.y + rect.height / 2,
163
+ };
164
+ }
165
+
166
+ function getRectBorderIntersection(rect, from, to) {
167
+ const halfWidth = rect.width / 2;
168
+ const halfHeight = rect.height / 2;
169
+ const center = getRectCenter(rect);
170
+
171
+ const dx = to.x - from.x;
172
+ const dy = to.y - from.y;
173
+
174
+ if (Math.abs(dx) < EPSILON && Math.abs(dy) < EPSILON) {
175
+ return center;
176
+ }
177
+
178
+ const scaleX = Math.abs(dx) < EPSILON ? Number.POSITIVE_INFINITY : halfWidth / Math.abs(dx);
179
+ const scaleY = Math.abs(dy) < EPSILON ? Number.POSITIVE_INFINITY : halfHeight / Math.abs(dy);
180
+ const scale = Math.min(scaleX, scaleY);
181
+
182
+ return {
183
+ x: center.x + dx * scale,
184
+ y: center.y + dy * scale,
185
+ };
186
+ }
187
+
188
+ function getSidePoint(rect, side) {
189
+ const centerX = rect.x + rect.width / 2;
190
+ const centerY = rect.y + rect.height / 2;
191
+
192
+ switch (side) {
193
+ case 'top':
194
+ return { x: centerX, y: rect.y };
195
+
196
+ case 'right':
197
+ return { x: rect.x + rect.width, y: centerY };
198
+
199
+ case 'bottom':
200
+ return { x: centerX, y: rect.y + rect.height };
201
+
202
+ case 'left':
203
+ return { x: rect.x, y: centerY };
204
+
205
+ default:
206
+ return null;
207
+ }
208
+ }
209
+ `.trim();
210
+ export function isConnectionWorkerRuntimeSupported(windowRef) {
211
+ return !!resolveConnectionWorkerRuntime(windowRef);
212
+ }
213
+ export function resolveConnectionWorkerRuntime(windowRef) {
214
+ const runtimeWindow = windowRef;
215
+ const blobCtor = runtimeWindow?.Blob;
216
+ const workerCtor = runtimeWindow?.Worker;
217
+ const urlApi = runtimeWindow?.URL;
218
+ if (!blobCtor || !workerCtor) {
219
+ return null;
220
+ }
221
+ if (typeof urlApi?.createObjectURL !== 'function' ||
222
+ typeof urlApi.revokeObjectURL !== 'function') {
223
+ return null;
224
+ }
225
+ return {
226
+ blobCtor,
227
+ workerCtor,
228
+ urlApi,
229
+ };
230
+ }
231
+ export function createConnectionWorkerUrl(runtime) {
232
+ const blob = new runtime.blobCtor([F_CONNECTION_WORKER_SOURCE], {
233
+ type: 'text/javascript',
234
+ });
235
+ return runtime.urlApi.createObjectURL(blob);
236
+ }
237
+ export function revokeConnectionWorkerUrl(workerUrl, urlApi) {
238
+ if (!workerUrl) {
239
+ return;
240
+ }
241
+ const resolvedUrlApi = urlApi ?? (typeof URL === 'undefined' ? null : URL);
242
+ if (typeof resolvedUrlApi?.revokeObjectURL !== 'function') {
243
+ return;
244
+ }
245
+ resolvedUrlApi.revokeObjectURL(workerUrl);
246
+ }
247
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29ubmVjdGlvbi13b3JrZXItcnVudGltZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1jb25uZWN0aW9uLXdvcmtlci93b3JrZXIvY29ubmVjdGlvbi13b3JrZXItcnVudGltZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFRQSxNQUFNLDBCQUEwQixHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FnTjVDLENBQUMsSUFBSSxFQUFFLENBQUM7QUFFVCxNQUFNLFVBQVUsa0NBQWtDLENBQUMsU0FBb0M7SUFDckYsT0FBTyxDQUFDLENBQUMsOEJBQThCLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDckQsQ0FBQztBQUVELE1BQU0sVUFBVSw4QkFBOEIsQ0FDNUMsU0FBb0M7SUFFcEMsTUFBTSxhQUFhLEdBQUcsU0FBbUUsQ0FBQztJQUMxRixNQUFNLFFBQVEsR0FBRyxhQUFhLEVBQUUsSUFBSSxDQUFDO0lBQ3JDLE1BQU0sVUFBVSxHQUFHLGFBQWEsRUFBRSxNQUFNLENBQUM7SUFDekMsTUFBTSxNQUFNLEdBQUcsYUFBYSxFQUFFLEdBQUcsQ0FBQztJQUNsQyxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDN0IsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsSUFDRSxPQUFPLE1BQU0sRUFBRSxlQUFlLEtBQUssVUFBVTtRQUM3QyxPQUFPLE1BQU0sQ0FBQyxlQUFlLEtBQUssVUFBVSxFQUM1QyxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsT0FBTztRQUNMLFFBQVE7UUFDUixVQUFVO1FBQ1YsTUFBTTtLQUNQLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLHlCQUF5QixDQUFDLE9BQWlDO0lBQ3pFLE1BQU0sSUFBSSxHQUFHLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLDBCQUEwQixDQUFDLEVBQUU7UUFDOUQsSUFBSSxFQUFFLGlCQUFpQjtLQUN4QixDQUFDLENBQUM7SUFFSCxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzlDLENBQUM7QUFFRCxNQUFNLFVBQVUseUJBQXlCLENBQ3ZDLFNBQW9DLEVBQ3BDLE1BQW1EO0lBRW5ELElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNmLE9BQU87SUFDVCxDQUFDO0lBRUQsTUFBTSxjQUFjLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzNFLElBQUksT0FBTyxjQUFjLEVBQUUsZUFBZSxLQUFLLFVBQVUsRUFBRSxDQUFDO1FBQzFELE9BQU87SUFDVCxDQUFDO0lBRUQsY0FBYyxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUM1QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsidHlwZSBUQ29ubmVjdGlvbldvcmtlclVybEFwaSA9IFBpY2s8dHlwZW9mIFVSTCwgJ2NyZWF0ZU9iamVjdFVSTCcgfCAncmV2b2tlT2JqZWN0VVJMJz47XG5cbnR5cGUgVENvbm5lY3Rpb25Xb3JrZXJSdW50aW1lID0ge1xuICBibG9iQ3RvcjogdHlwZW9mIEJsb2I7XG4gIHdvcmtlckN0b3I6IHR5cGVvZiBXb3JrZXI7XG4gIHVybEFwaTogVENvbm5lY3Rpb25Xb3JrZXJVcmxBcGk7XG59O1xuXG5jb25zdCBGX0NPTk5FQ1RJT05fV09SS0VSX1NPVVJDRSA9IFN0cmluZy5yYXdgXG5jb25zdCBFUFNJTE9OID0gMC41O1xuXG5hZGRFdmVudExpc3RlbmVyKCdtZXNzYWdlJywgKGV2ZW50KSA9PiB7XG4gIGNvbnN0IGRhdGEgPSBldmVudD8uZGF0YTtcbiAgY29uc3QgcmVxdWVzdElkID0gZGF0YT8ucmVxdWVzdElkO1xuICBjb25zdCBpdGVtcyA9IEFycmF5LmlzQXJyYXkoZGF0YT8uaXRlbXMpID8gZGF0YS5pdGVtcyA6IFtdO1xuXG4gIHRyeSB7XG4gICAgY29uc3QgcmVzdWx0cyA9IGl0ZW1zLm1hcCgoaXRlbSkgPT4gY2FsY3VsYXRlSXRlbShpdGVtKSk7XG4gICAgcG9zdE1lc3NhZ2UoeyByZXF1ZXN0SWQsIHJlc3VsdHMgfSk7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29uc3QgbWVzc2FnZSA9IGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogJ0Nvbm5lY3Rpb24gd29ya2VyIGZhaWxlZC4nO1xuICAgIHBvc3RNZXNzYWdlKHsgcmVxdWVzdElkLCBlcnJvcjogbWVzc2FnZSB9KTtcbiAgfVxufSk7XG5cbmZ1bmN0aW9uIGNhbGN1bGF0ZUl0ZW0oaXRlbSkge1xuICBjb25zdCBzb3VyY2VDZW50ZXJYID0gaXRlbS5zb3VyY2VSZWN0LnggKyBpdGVtLnNvdXJjZVJlY3Qud2lkdGggLyAyO1xuICBjb25zdCBzb3VyY2VDZW50ZXJZID0gaXRlbS5zb3VyY2VSZWN0LnkgKyBpdGVtLnNvdXJjZVJlY3QuaGVpZ2h0IC8gMjtcbiAgY29uc3QgdGFyZ2V0Q2VudGVyWCA9IGl0ZW0udGFyZ2V0UmVjdC54ICsgaXRlbS50YXJnZXRSZWN0LndpZHRoIC8gMjtcbiAgY29uc3QgdGFyZ2V0Q2VudGVyWSA9IGl0ZW0udGFyZ2V0UmVjdC55ICsgaXRlbS50YXJnZXRSZWN0LmhlaWdodCAvIDI7XG5cbiAgY29uc3Qgc291cmNlU2lkZSA9IHJlc29sdmVDb25uZWN0YWJsZVNpZGUoXG4gICAgaXRlbS5vdXRwdXRTaWRlLFxuICAgIHRhcmdldENlbnRlclggLSBzb3VyY2VDZW50ZXJYLFxuICAgIHRhcmdldENlbnRlclkgLSBzb3VyY2VDZW50ZXJZLFxuICAgIGl0ZW0uc291cmNlQ29ubmVjdGFibGVTaWRlLFxuICApO1xuXG4gIGNvbnN0IHRhcmdldFNpZGUgPSByZXNvbHZlQ29ubmVjdGFibGVTaWRlKFxuICAgIGl0ZW0uaW5wdXRTaWRlLFxuICAgIHNvdXJjZUNlbnRlclggLSB0YXJnZXRDZW50ZXJYLFxuICAgIHNvdXJjZUNlbnRlclkgLSB0YXJnZXRDZW50ZXJZLFxuICAgIGl0ZW0udGFyZ2V0Q29ubmVjdGFibGVTaWRlLFxuICApO1xuXG4gIGlmIChpdGVtLmJlaGF2aW9yID09PSAnZml4ZWRfY2VudGVyJykge1xuICAgIHJldHVybiB7XG4gICAgICBvcmlnaW5hbEluZGV4OiBpdGVtLm9yaWdpbmFsSW5kZXgsXG4gICAgICBzdXBwb3J0ZWQ6IHRydWUsXG4gICAgICBzb3VyY2VTaWRlLFxuICAgICAgdGFyZ2V0U2lkZSxcbiAgICAgIGxpbmU6IHtcbiAgICAgICAgcG9pbnQxOiB7IHg6IHNvdXJjZUNlbnRlclgsIHk6IHNvdXJjZUNlbnRlclkgfSxcbiAgICAgICAgcG9pbnQyOiB7IHg6IHRhcmdldENlbnRlclgsIHk6IHRhcmdldENlbnRlclkgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIGlmIChpdGVtLnNvdXJjZVJvdGF0aW9uIHx8IGl0ZW0udGFyZ2V0Um90YXRpb24pIHtcbiAgICByZXR1cm4geyBvcmlnaW5hbEluZGV4OiBpdGVtLm9yaWdpbmFsSW5kZXgsIHN1cHBvcnRlZDogZmFsc2UgfTtcbiAgfVxuXG4gIGlmIChpdGVtLmJlaGF2aW9yICE9PSAnZml4ZWQnKSB7XG4gICAgaWYgKGl0ZW0uYmVoYXZpb3IgIT09ICdmbG9hdGluZycpIHtcbiAgICAgIHJldHVybiB7IG9yaWdpbmFsSW5kZXg6IGl0ZW0ub3JpZ2luYWxJbmRleCwgc3VwcG9ydGVkOiBmYWxzZSB9O1xuICAgIH1cblxuICAgIGlmIChoYXNSb3VuZGVkQ29ybmVycyhpdGVtLnNvdXJjZVJlY3QpIHx8IGhhc1JvdW5kZWRDb3JuZXJzKGl0ZW0udGFyZ2V0UmVjdCkpIHtcbiAgICAgIHJldHVybiB7IG9yaWdpbmFsSW5kZXg6IGl0ZW0ub3JpZ2luYWxJbmRleCwgc3VwcG9ydGVkOiBmYWxzZSB9O1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBvcmlnaW5hbEluZGV4OiBpdGVtLm9yaWdpbmFsSW5kZXgsXG4gICAgICBzdXBwb3J0ZWQ6IHRydWUsXG4gICAgICBzb3VyY2VTaWRlLFxuICAgICAgdGFyZ2V0U2lkZSxcbiAgICAgIGxpbmU6IGJ1aWxkRmxvYXRpbmdMaW5lKGl0ZW0uc291cmNlUmVjdCwgaXRlbS50YXJnZXRSZWN0KSxcbiAgICB9O1xuICB9XG5cbiAgY29uc3QgbGluZSA9IGJ1aWxkRml4ZWRMaW5lKGl0ZW0uc291cmNlUmVjdCwgaXRlbS50YXJnZXRSZWN0LCBzb3VyY2VTaWRlLCB0YXJnZXRTaWRlKTtcbiAgaWYgKCFsaW5lKSB7XG4gICAgcmV0dXJuIHsgb3JpZ2luYWxJbmRleDogaXRlbS5vcmlnaW5hbEluZGV4LCBzdXBwb3J0ZWQ6IGZhbHNlIH07XG4gIH1cblxuICByZXR1cm4ge1xuICAgIG9yaWdpbmFsSW5kZXg6IGl0ZW0ub3JpZ2luYWxJbmRleCxcbiAgICBzdXBwb3J0ZWQ6IHRydWUsXG4gICAgc291cmNlU2lkZSxcbiAgICB0YXJnZXRTaWRlLFxuICAgIGxpbmUsXG4gIH07XG59XG5cbmZ1bmN0aW9uIHJlc29sdmVDb25uZWN0YWJsZVNpZGUocmVxdWVzdGVkU2lkZSwgZGVsdGFYLCBkZWx0YVksIGZhbGxiYWNrU2lkZSkge1xuICBpZiAocmVxdWVzdGVkU2lkZSA9PT0gJ2RlZmF1bHQnKSB7XG4gICAgcmV0dXJuIGZhbGxiYWNrU2lkZTtcbiAgfVxuXG4gIGNvbnN0IGFic1ggPSBNYXRoLmFicyhkZWx0YVgpO1xuICBjb25zdCBhYnNZID0gTWF0aC5hYnMoZGVsdGFZKTtcbiAgY29uc3QgbmVhclplcm8gPSBhYnNYIDwgRVBTSUxPTiAmJiBhYnNZIDwgRVBTSUxPTjtcblxuICBpZiAobmVhclplcm8pIHtcbiAgICByZXR1cm4gZmFsbGJhY2tTaWRlO1xuICB9XG5cbiAgY29uc3QgaG9yaXpvbnRhbERvbWluYW50ID0gYWJzWCA+PSBhYnNZO1xuXG4gIHN3aXRjaCAocmVxdWVzdGVkU2lkZSkge1xuICAgIGNhc2UgJ2NhbGN1bGF0ZSc6XG4gICAgICByZXR1cm4gaG9yaXpvbnRhbERvbWluYW50ID8gKGRlbHRhWCA+PSAwID8gJ3JpZ2h0JyA6ICdsZWZ0JykgOiBkZWx0YVkgPj0gMCA/ICdib3R0b20nIDogJ3RvcCc7XG5cbiAgICBjYXNlICdjYWxjdWxhdGVfaG9yaXpvbnRhbCc6XG4gICAgICBpZiAoYWJzWCA8IEVQU0lMT04pIHtcbiAgICAgICAgcmV0dXJuIGZhbGxiYWNrU2lkZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGRlbHRhWCA+PSAwID8gJ3JpZ2h0JyA6ICdsZWZ0JztcblxuICAgIGNhc2UgJ2NhbGN1bGF0ZV92ZXJ0aWNhbCc6XG4gICAgICBpZiAoYWJzWSA8IEVQU0lMT04pIHtcbiAgICAgICAgcmV0dXJuIGZhbGxiYWNrU2lkZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGRlbHRhWSA+PSAwID8gJ2JvdHRvbScgOiAndG9wJztcblxuICAgIGNhc2UgJ3RvcCc6XG4gICAgY2FzZSAnYm90dG9tJzpcbiAgICBjYXNlICdsZWZ0JzpcbiAgICBjYXNlICdyaWdodCc6XG4gICAgICByZXR1cm4gcmVxdWVzdGVkU2lkZTtcblxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gZmFsbGJhY2tTaWRlO1xuICB9XG59XG5cbmZ1bmN0aW9uIGJ1aWxkRml4ZWRMaW5lKHNvdXJjZVJlY3QsIHRhcmdldFJlY3QsIHNvdXJjZVNpZGUsIHRhcmdldFNpZGUpIHtcbiAgY29uc3Qgc291cmNlQW5jaG9yID0gc291cmNlU2lkZSA9PT0gJ2F1dG8nID8gJ2JvdHRvbScgOiBzb3VyY2VTaWRlO1xuICBjb25zdCB0YXJnZXRBbmNob3IgPSB0YXJnZXRTaWRlID09PSAnYXV0bycgPyAndG9wJyA6IHRhcmdldFNpZGU7XG5cbiAgY29uc3QgcG9pbnQxID0gZ2V0U2lkZVBvaW50KHNvdXJjZVJlY3QsIHNvdXJjZUFuY2hvcik7XG4gIGNvbnN0IHBvaW50MiA9IGdldFNpZGVQb2ludCh0YXJnZXRSZWN0LCB0YXJnZXRBbmNob3IpO1xuXG4gIGlmICghcG9pbnQxIHx8ICFwb2ludDIpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiB7IHBvaW50MSwgcG9pbnQyIH07XG59XG5cbmZ1bmN0aW9uIGJ1aWxkRmxvYXRpbmdMaW5lKHNvdXJjZVJlY3QsIHRhcmdldFJlY3QpIHtcbiAgY29uc3Qgc291cmNlQ2VudGVyID0gZ2V0UmVjdENlbnRlcihzb3VyY2VSZWN0KTtcbiAgY29uc3QgdGFyZ2V0Q2VudGVyID0gZ2V0UmVjdENlbnRlcih0YXJnZXRSZWN0KTtcblxuICByZXR1cm4ge1xuICAgIHBvaW50MTogZ2V0UmVjdEJvcmRlckludGVyc2VjdGlvbihzb3VyY2VSZWN0LCBzb3VyY2VDZW50ZXIsIHRhcmdldENlbnRlciksXG4gICAgcG9pbnQyOiBnZXRSZWN0Qm9yZGVySW50ZXJzZWN0aW9uKHRhcmdldFJlY3QsIHRhcmdldENlbnRlciwgc291cmNlQ2VudGVyKSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gaGFzUm91bmRlZENvcm5lcnMocmVjdCkge1xuICByZXR1cm4gISEocmVjdC5yYWRpdXMxIHx8IHJlY3QucmFkaXVzMiB8fCByZWN0LnJhZGl1czMgfHwgcmVjdC5yYWRpdXM0KTtcbn1cblxuZnVuY3Rpb24gZ2V0UmVjdENlbnRlcihyZWN0KSB7XG4gIHJldHVybiB7XG4gICAgeDogcmVjdC54ICsgcmVjdC53aWR0aCAvIDIsXG4gICAgeTogcmVjdC55ICsgcmVjdC5oZWlnaHQgLyAyLFxuICB9O1xufVxuXG5mdW5jdGlvbiBnZXRSZWN0Qm9yZGVySW50ZXJzZWN0aW9uKHJlY3QsIGZyb20sIHRvKSB7XG4gIGNvbnN0IGhhbGZXaWR0aCA9IHJlY3Qud2lkdGggLyAyO1xuICBjb25zdCBoYWxmSGVpZ2h0ID0gcmVjdC5oZWlnaHQgLyAyO1xuICBjb25zdCBjZW50ZXIgPSBnZXRSZWN0Q2VudGVyKHJlY3QpO1xuXG4gIGNvbnN0IGR4ID0gdG8ueCAtIGZyb20ueDtcbiAgY29uc3QgZHkgPSB0by55IC0gZnJvbS55O1xuXG4gIGlmIChNYXRoLmFicyhkeCkgPCBFUFNJTE9OICYmIE1hdGguYWJzKGR5KSA8IEVQU0lMT04pIHtcbiAgICByZXR1cm4gY2VudGVyO1xuICB9XG5cbiAgY29uc3Qgc2NhbGVYID0gTWF0aC5hYnMoZHgpIDwgRVBTSUxPTiA/IE51bWJlci5QT1NJVElWRV9JTkZJTklUWSA6IGhhbGZXaWR0aCAvIE1hdGguYWJzKGR4KTtcbiAgY29uc3Qgc2NhbGVZID0gTWF0aC5hYnMoZHkpIDwgRVBTSUxPTiA/IE51bWJlci5QT1NJVElWRV9JTkZJTklUWSA6IGhhbGZIZWlnaHQgLyBNYXRoLmFicyhkeSk7XG4gIGNvbnN0IHNjYWxlID0gTWF0aC5taW4oc2NhbGVYLCBzY2FsZVkpO1xuXG4gIHJldHVybiB7XG4gICAgeDogY2VudGVyLnggKyBkeCAqIHNjYWxlLFxuICAgIHk6IGNlbnRlci55ICsgZHkgKiBzY2FsZSxcbiAgfTtcbn1cblxuZnVuY3Rpb24gZ2V0U2lkZVBvaW50KHJlY3QsIHNpZGUpIHtcbiAgY29uc3QgY2VudGVyWCA9IHJlY3QueCArIHJlY3Qud2lkdGggLyAyO1xuICBjb25zdCBjZW50ZXJZID0gcmVjdC55ICsgcmVjdC5oZWlnaHQgLyAyO1xuXG4gIHN3aXRjaCAoc2lkZSkge1xuICAgIGNhc2UgJ3RvcCc6XG4gICAgICByZXR1cm4geyB4OiBjZW50ZXJYLCB5OiByZWN0LnkgfTtcblxuICAgIGNhc2UgJ3JpZ2h0JzpcbiAgICAgIHJldHVybiB7IHg6IHJlY3QueCArIHJlY3Qud2lkdGgsIHk6IGNlbnRlclkgfTtcblxuICAgIGNhc2UgJ2JvdHRvbSc6XG4gICAgICByZXR1cm4geyB4OiBjZW50ZXJYLCB5OiByZWN0LnkgKyByZWN0LmhlaWdodCB9O1xuXG4gICAgY2FzZSAnbGVmdCc6XG4gICAgICByZXR1cm4geyB4OiByZWN0LngsIHk6IGNlbnRlclkgfTtcblxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuYC50cmltKCk7XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0Nvbm5lY3Rpb25Xb3JrZXJSdW50aW1lU3VwcG9ydGVkKHdpbmRvd1JlZjogV2luZG93IHwgbnVsbCB8IHVuZGVmaW5lZCk6IGJvb2xlYW4ge1xuICByZXR1cm4gISFyZXNvbHZlQ29ubmVjdGlvbldvcmtlclJ1bnRpbWUod2luZG93UmVmKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVDb25uZWN0aW9uV29ya2VyUnVudGltZShcbiAgd2luZG93UmVmOiBXaW5kb3cgfCBudWxsIHwgdW5kZWZpbmVkLFxuKTogVENvbm5lY3Rpb25Xb3JrZXJSdW50aW1lIHwgbnVsbCB7XG4gIGNvbnN0IHJ1bnRpbWVXaW5kb3cgPSB3aW5kb3dSZWYgYXMgUGFydGlhbDxXaW5kb3cgJiB0eXBlb2YgZ2xvYmFsVGhpcz4gfCBudWxsIHwgdW5kZWZpbmVkO1xuICBjb25zdCBibG9iQ3RvciA9IHJ1bnRpbWVXaW5kb3c/LkJsb2I7XG4gIGNvbnN0IHdvcmtlckN0b3IgPSBydW50aW1lV2luZG93Py5Xb3JrZXI7XG4gIGNvbnN0IHVybEFwaSA9IHJ1bnRpbWVXaW5kb3c/LlVSTDtcbiAgaWYgKCFibG9iQ3RvciB8fCAhd29ya2VyQ3Rvcikge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgaWYgKFxuICAgIHR5cGVvZiB1cmxBcGk/LmNyZWF0ZU9iamVjdFVSTCAhPT0gJ2Z1bmN0aW9uJyB8fFxuICAgIHR5cGVvZiB1cmxBcGkucmV2b2tlT2JqZWN0VVJMICE9PSAnZnVuY3Rpb24nXG4gICkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICBibG9iQ3RvcixcbiAgICB3b3JrZXJDdG9yLFxuICAgIHVybEFwaSxcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUNvbm5lY3Rpb25Xb3JrZXJVcmwocnVudGltZTogVENvbm5lY3Rpb25Xb3JrZXJSdW50aW1lKTogc3RyaW5nIHtcbiAgY29uc3QgYmxvYiA9IG5ldyBydW50aW1lLmJsb2JDdG9yKFtGX0NPTk5FQ1RJT05fV09SS0VSX1NPVVJDRV0sIHtcbiAgICB0eXBlOiAndGV4dC9qYXZhc2NyaXB0JyxcbiAgfSk7XG5cbiAgcmV0dXJuIHJ1bnRpbWUudXJsQXBpLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJldm9rZUNvbm5lY3Rpb25Xb3JrZXJVcmwoXG4gIHdvcmtlclVybDogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCxcbiAgdXJsQXBpPzogUGljazx0eXBlb2YgVVJMLCAncmV2b2tlT2JqZWN0VVJMJz4gfCBudWxsLFxuKTogdm9pZCB7XG4gIGlmICghd29ya2VyVXJsKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29uc3QgcmVzb2x2ZWRVcmxBcGkgPSB1cmxBcGkgPz8gKHR5cGVvZiBVUkwgPT09ICd1bmRlZmluZWQnID8gbnVsbCA6IFVSTCk7XG4gIGlmICh0eXBlb2YgcmVzb2x2ZWRVcmxBcGk/LnJldm9rZU9iamVjdFVSTCAhPT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHJlc29sdmVkVXJsQXBpLnJldm9rZU9iamVjdFVSTCh3b3JrZXJVcmwpO1xufVxuIl19
@@ -0,0 +1,58 @@
1
+ import { Point, PointExtensions } from '@foblex/2d';
2
+ const REBASE_AUTO_PAN_KINDS = new Set(['create-connection', 'reassign-connection', 'drag-node']);
3
+ const DIRECT_AUTO_PAN_KINDS = new Set(['selection-area']);
4
+ const AUXILIARY_AUTO_PAN_KINDS = new Set(['assign-to-container']);
5
+ export function resolveAutoPanMode(kinds) {
6
+ let result = null;
7
+ for (const kind of kinds) {
8
+ if (AUXILIARY_AUTO_PAN_KINDS.has(kind)) {
9
+ continue;
10
+ }
11
+ const next = REBASE_AUTO_PAN_KINDS.has(kind)
12
+ ? 'rebase'
13
+ : DIRECT_AUTO_PAN_KINDS.has(kind)
14
+ ? 'direct'
15
+ : null;
16
+ if (!next) {
17
+ return null;
18
+ }
19
+ if (!result) {
20
+ result = next;
21
+ continue;
22
+ }
23
+ if (result !== next) {
24
+ return null;
25
+ }
26
+ }
27
+ return result;
28
+ }
29
+ export function calculateAutoPanDelta(pointerPosition, hostRect, threshold, speed, acceleration) {
30
+ return PointExtensions.initialize(calculateAutoPanAxisDelta(pointerPosition.x, hostRect.left, hostRect.right, threshold, speed, acceleration), calculateAutoPanAxisDelta(pointerPosition.y, hostRect.top, hostRect.bottom, threshold, speed, acceleration));
31
+ }
32
+ export function calculateAutoPanAxisDelta(pointerCoordinate, min, max, threshold, speed, acceleration) {
33
+ const normalizedThreshold = Math.max(0, threshold);
34
+ const normalizedSpeed = Math.max(0, speed);
35
+ if (!normalizedThreshold || !normalizedSpeed) {
36
+ return 0;
37
+ }
38
+ if (pointerCoordinate <= min + normalizedThreshold) {
39
+ const ratio = clamp((min + normalizedThreshold - pointerCoordinate) / normalizedThreshold, 0, 1);
40
+ return resolveAxisSpeed(ratio, normalizedSpeed, acceleration);
41
+ }
42
+ if (pointerCoordinate >= max - normalizedThreshold) {
43
+ const ratio = clamp((pointerCoordinate - (max - normalizedThreshold)) / normalizedThreshold, 0, 1);
44
+ return -resolveAxisSpeed(ratio, normalizedSpeed, acceleration);
45
+ }
46
+ return 0;
47
+ }
48
+ export function rebaseAutoPanPointerDownPosition(position, canvasDelta, scale) {
49
+ const normalizedScale = scale || 1;
50
+ return Point.fromPoint(position).add(Point.fromPoint(canvasDelta).div(normalizedScale));
51
+ }
52
+ function resolveAxisSpeed(ratio, speed, acceleration) {
53
+ return acceleration ? speed * ratio : speed;
54
+ }
55
+ function clamp(value, min, max) {
56
+ return Math.max(min, Math.min(max, value));
57
+ }
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0by1wYW4udXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2F1dG8tcGFuL2F1dG8tcGFuLnV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBVSxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBSTVELE1BQU0scUJBQXFCLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxtQkFBbUIsRUFBRSxxQkFBcUIsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDO0FBQ2pHLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7QUFDMUQsTUFBTSx3QkFBd0IsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQztBQUVsRSxNQUFNLFVBQVUsa0JBQWtCLENBQUMsS0FBZTtJQUNoRCxJQUFJLE1BQU0sR0FBd0IsSUFBSSxDQUFDO0lBRXZDLEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFLENBQUM7UUFDekIsSUFBSSx3QkFBd0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUN2QyxTQUFTO1FBQ1gsQ0FBQztRQUVELE1BQU0sSUFBSSxHQUFHLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUM7WUFDMUMsQ0FBQyxDQUFDLFFBQVE7WUFDVixDQUFDLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQztnQkFDL0IsQ0FBQyxDQUFDLFFBQVE7Z0JBQ1YsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUVYLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNWLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUVELElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNaLE1BQU0sR0FBRyxJQUFJLENBQUM7WUFFZCxTQUFTO1FBQ1gsQ0FBQztRQUVELElBQUksTUFBTSxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ3BCLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBRUQsTUFBTSxVQUFVLHFCQUFxQixDQUNuQyxlQUF1QixFQUN2QixRQUFpQixFQUNqQixTQUFpQixFQUNqQixLQUFhLEVBQ2IsWUFBcUI7SUFFckIsT0FBTyxlQUFlLENBQUMsVUFBVSxDQUMvQix5QkFBeUIsQ0FDdkIsZUFBZSxDQUFDLENBQUMsRUFDakIsUUFBUSxDQUFDLElBQUksRUFDYixRQUFRLENBQUMsS0FBSyxFQUNkLFNBQVMsRUFDVCxLQUFLLEVBQ0wsWUFBWSxDQUNiLEVBQ0QseUJBQXlCLENBQ3ZCLGVBQWUsQ0FBQyxDQUFDLEVBQ2pCLFFBQVEsQ0FBQyxHQUFHLEVBQ1osUUFBUSxDQUFDLE1BQU0sRUFDZixTQUFTLEVBQ1QsS0FBSyxFQUNMLFlBQVksQ0FDYixDQUNGLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLHlCQUF5QixDQUN2QyxpQkFBeUIsRUFDekIsR0FBVyxFQUNYLEdBQVcsRUFDWCxTQUFpQixFQUNqQixLQUFhLEVBQ2IsWUFBcUI7SUFFckIsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUNuRCxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUUzQyxJQUFJLENBQUMsbUJBQW1CLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUM3QyxPQUFPLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFRCxJQUFJLGlCQUFpQixJQUFJLEdBQUcsR0FBRyxtQkFBbUIsRUFBRSxDQUFDO1FBQ25ELE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FDakIsQ0FBQyxHQUFHLEdBQUcsbUJBQW1CLEdBQUcsaUJBQWlCLENBQUMsR0FBRyxtQkFBbUIsRUFDckUsQ0FBQyxFQUNELENBQUMsQ0FDRixDQUFDO1FBRUYsT0FBTyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsZUFBZSxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRCxJQUFJLGlCQUFpQixJQUFJLEdBQUcsR0FBRyxtQkFBbUIsRUFBRSxDQUFDO1FBQ25ELE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FDakIsQ0FBQyxpQkFBaUIsR0FBRyxDQUFDLEdBQUcsR0FBRyxtQkFBbUIsQ0FBQyxDQUFDLEdBQUcsbUJBQW1CLEVBQ3ZFLENBQUMsRUFDRCxDQUFDLENBQ0YsQ0FBQztRQUVGLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLEVBQUUsZUFBZSxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxPQUFPLENBQUMsQ0FBQztBQUNYLENBQUM7QUFFRCxNQUFNLFVBQVUsZ0NBQWdDLENBQzlDLFFBQWdCLEVBQ2hCLFdBQW1CLEVBQ25CLEtBQWE7SUFFYixNQUFNLGVBQWUsR0FBRyxLQUFLLElBQUksQ0FBQyxDQUFDO0lBRW5DLE9BQU8sS0FBSyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztBQUMxRixDQUFDO0FBRUQsU0FBUyxnQkFBZ0IsQ0FBQyxLQUFhLEVBQUUsS0FBYSxFQUFFLFlBQXFCO0lBQzNFLE9BQU8sWUFBWSxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7QUFDOUMsQ0FBQztBQUVELFNBQVMsS0FBSyxDQUFDLEtBQWEsRUFBRSxHQUFXLEVBQUUsR0FBVztJQUNwRCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDN0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElQb2ludCwgUG9pbnQsIFBvaW50RXh0ZW5zaW9ucyB9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuXG5leHBvcnQgdHlwZSBUQXV0b1Bhbk1vZGUgPSAncmViYXNlJyB8ICdkaXJlY3QnO1xuXG5jb25zdCBSRUJBU0VfQVVUT19QQU5fS0lORFMgPSBuZXcgU2V0KFsnY3JlYXRlLWNvbm5lY3Rpb24nLCAncmVhc3NpZ24tY29ubmVjdGlvbicsICdkcmFnLW5vZGUnXSk7XG5jb25zdCBESVJFQ1RfQVVUT19QQU5fS0lORFMgPSBuZXcgU2V0KFsnc2VsZWN0aW9uLWFyZWEnXSk7XG5jb25zdCBBVVhJTElBUllfQVVUT19QQU5fS0lORFMgPSBuZXcgU2V0KFsnYXNzaWduLXRvLWNvbnRhaW5lciddKTtcblxuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVBdXRvUGFuTW9kZShraW5kczogc3RyaW5nW10pOiBUQXV0b1Bhbk1vZGUgfCBudWxsIHtcbiAgbGV0IHJlc3VsdDogVEF1dG9QYW5Nb2RlIHwgbnVsbCA9IG51bGw7XG5cbiAgZm9yIChjb25zdCBraW5kIG9mIGtpbmRzKSB7XG4gICAgaWYgKEFVWElMSUFSWV9BVVRPX1BBTl9LSU5EUy5oYXMoa2luZCkpIHtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cblxuICAgIGNvbnN0IG5leHQgPSBSRUJBU0VfQVVUT19QQU5fS0lORFMuaGFzKGtpbmQpXG4gICAgICA/ICdyZWJhc2UnXG4gICAgICA6IERJUkVDVF9BVVRPX1BBTl9LSU5EUy5oYXMoa2luZClcbiAgICAgICAgPyAnZGlyZWN0J1xuICAgICAgICA6IG51bGw7XG5cbiAgICBpZiAoIW5leHQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGlmICghcmVzdWx0KSB7XG4gICAgICByZXN1bHQgPSBuZXh0O1xuXG4gICAgICBjb250aW51ZTtcbiAgICB9XG5cbiAgICBpZiAocmVzdWx0ICE9PSBuZXh0KSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2FsY3VsYXRlQXV0b1BhbkRlbHRhKFxuICBwb2ludGVyUG9zaXRpb246IElQb2ludCxcbiAgaG9zdFJlY3Q6IERPTVJlY3QsXG4gIHRocmVzaG9sZDogbnVtYmVyLFxuICBzcGVlZDogbnVtYmVyLFxuICBhY2NlbGVyYXRpb246IGJvb2xlYW4sXG4pOiBJUG9pbnQge1xuICByZXR1cm4gUG9pbnRFeHRlbnNpb25zLmluaXRpYWxpemUoXG4gICAgY2FsY3VsYXRlQXV0b1BhbkF4aXNEZWx0YShcbiAgICAgIHBvaW50ZXJQb3NpdGlvbi54LFxuICAgICAgaG9zdFJlY3QubGVmdCxcbiAgICAgIGhvc3RSZWN0LnJpZ2h0LFxuICAgICAgdGhyZXNob2xkLFxuICAgICAgc3BlZWQsXG4gICAgICBhY2NlbGVyYXRpb24sXG4gICAgKSxcbiAgICBjYWxjdWxhdGVBdXRvUGFuQXhpc0RlbHRhKFxuICAgICAgcG9pbnRlclBvc2l0aW9uLnksXG4gICAgICBob3N0UmVjdC50b3AsXG4gICAgICBob3N0UmVjdC5ib3R0b20sXG4gICAgICB0aHJlc2hvbGQsXG4gICAgICBzcGVlZCxcbiAgICAgIGFjY2VsZXJhdGlvbixcbiAgICApLFxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2FsY3VsYXRlQXV0b1BhbkF4aXNEZWx0YShcbiAgcG9pbnRlckNvb3JkaW5hdGU6IG51bWJlcixcbiAgbWluOiBudW1iZXIsXG4gIG1heDogbnVtYmVyLFxuICB0aHJlc2hvbGQ6IG51bWJlcixcbiAgc3BlZWQ6IG51bWJlcixcbiAgYWNjZWxlcmF0aW9uOiBib29sZWFuLFxuKTogbnVtYmVyIHtcbiAgY29uc3Qgbm9ybWFsaXplZFRocmVzaG9sZCA9IE1hdGgubWF4KDAsIHRocmVzaG9sZCk7XG4gIGNvbnN0IG5vcm1hbGl6ZWRTcGVlZCA9IE1hdGgubWF4KDAsIHNwZWVkKTtcblxuICBpZiAoIW5vcm1hbGl6ZWRUaHJlc2hvbGQgfHwgIW5vcm1hbGl6ZWRTcGVlZCkge1xuICAgIHJldHVybiAwO1xuICB9XG5cbiAgaWYgKHBvaW50ZXJDb29yZGluYXRlIDw9IG1pbiArIG5vcm1hbGl6ZWRUaHJlc2hvbGQpIHtcbiAgICBjb25zdCByYXRpbyA9IGNsYW1wKFxuICAgICAgKG1pbiArIG5vcm1hbGl6ZWRUaHJlc2hvbGQgLSBwb2ludGVyQ29vcmRpbmF0ZSkgLyBub3JtYWxpemVkVGhyZXNob2xkLFxuICAgICAgMCxcbiAgICAgIDEsXG4gICAgKTtcblxuICAgIHJldHVybiByZXNvbHZlQXhpc1NwZWVkKHJhdGlvLCBub3JtYWxpemVkU3BlZWQsIGFjY2VsZXJhdGlvbik7XG4gIH1cblxuICBpZiAocG9pbnRlckNvb3JkaW5hdGUgPj0gbWF4IC0gbm9ybWFsaXplZFRocmVzaG9sZCkge1xuICAgIGNvbnN0IHJhdGlvID0gY2xhbXAoXG4gICAgICAocG9pbnRlckNvb3JkaW5hdGUgLSAobWF4IC0gbm9ybWFsaXplZFRocmVzaG9sZCkpIC8gbm9ybWFsaXplZFRocmVzaG9sZCxcbiAgICAgIDAsXG4gICAgICAxLFxuICAgICk7XG5cbiAgICByZXR1cm4gLXJlc29sdmVBeGlzU3BlZWQocmF0aW8sIG5vcm1hbGl6ZWRTcGVlZCwgYWNjZWxlcmF0aW9uKTtcbiAgfVxuXG4gIHJldHVybiAwO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmViYXNlQXV0b1BhblBvaW50ZXJEb3duUG9zaXRpb24oXG4gIHBvc2l0aW9uOiBJUG9pbnQsXG4gIGNhbnZhc0RlbHRhOiBJUG9pbnQsXG4gIHNjYWxlOiBudW1iZXIsXG4pOiBQb2ludCB7XG4gIGNvbnN0IG5vcm1hbGl6ZWRTY2FsZSA9IHNjYWxlIHx8IDE7XG5cbiAgcmV0dXJuIFBvaW50LmZyb21Qb2ludChwb3NpdGlvbikuYWRkKFBvaW50LmZyb21Qb2ludChjYW52YXNEZWx0YSkuZGl2KG5vcm1hbGl6ZWRTY2FsZSkpO1xufVxuXG5mdW5jdGlvbiByZXNvbHZlQXhpc1NwZWVkKHJhdGlvOiBudW1iZXIsIHNwZWVkOiBudW1iZXIsIGFjY2VsZXJhdGlvbjogYm9vbGVhbik6IG51bWJlciB7XG4gIHJldHVybiBhY2NlbGVyYXRpb24gPyBzcGVlZCAqIHJhdGlvIDogc3BlZWQ7XG59XG5cbmZ1bmN0aW9uIGNsYW1wKHZhbHVlOiBudW1iZXIsIG1pbjogbnVtYmVyLCBtYXg6IG51bWJlcik6IG51bWJlciB7XG4gIHJldHVybiBNYXRoLm1heChtaW4sIE1hdGgubWluKG1heCwgdmFsdWUpKTtcbn1cbiJdfQ==
@@ -0,0 +1,7 @@
1
+ export * from './auto-pan.utils';
2
+ export * from './providers';
3
+ export * from './run-auto-pan-frame';
4
+ export * from './stop-auto-pan';
5
+ export * from './stored-pointer-event';
6
+ export * from './sync-auto-pan';
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2F1dG8tcGFuL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyxpQkFBaUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYXV0by1wYW4udXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9wcm92aWRlcnMnO1xuZXhwb3J0ICogZnJvbSAnLi9ydW4tYXV0by1wYW4tZnJhbWUnO1xuZXhwb3J0ICogZnJvbSAnLi9zdG9wLWF1dG8tcGFuJztcbmV4cG9ydCAqIGZyb20gJy4vc3RvcmVkLXBvaW50ZXItZXZlbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zeW5jLWF1dG8tcGFuJztcbiJdfQ==
@@ -0,0 +1,5 @@
1
+ import { RunAutoPanFrame } from './run-auto-pan-frame';
2
+ import { StopAutoPan } from './stop-auto-pan';
3
+ import { SyncAutoPan } from './sync-auto-pan';
4
+ export const DRAG_AUTO_PAN_PROVIDERS = [SyncAutoPan, RunAutoPanFrame, StopAutoPan];
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWRyYWdnYWJsZS9hdXRvLXBhbi9wcm92aWRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFOUMsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsQ0FBQyxXQUFXLEVBQUUsZUFBZSxFQUFFLFdBQVcsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUnVuQXV0b1BhbkZyYW1lIH0gZnJvbSAnLi9ydW4tYXV0by1wYW4tZnJhbWUnO1xuaW1wb3J0IHsgU3RvcEF1dG9QYW4gfSBmcm9tICcuL3N0b3AtYXV0by1wYW4nO1xuaW1wb3J0IHsgU3luY0F1dG9QYW4gfSBmcm9tICcuL3N5bmMtYXV0by1wYW4nO1xuXG5leHBvcnQgY29uc3QgRFJBR19BVVRPX1BBTl9QUk9WSURFUlMgPSBbU3luY0F1dG9QYW4sIFJ1bkF1dG9QYW5GcmFtZSwgU3RvcEF1dG9QYW5dO1xuIl19
@@ -0,0 +1,3 @@
1
+ export * from './run-auto-pan-frame';
2
+ export * from './run-auto-pan-frame-request';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2F1dG8tcGFuL3J1bi1hdXRvLXBhbi1mcmFtZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsOEJBQThCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3J1bi1hdXRvLXBhbi1mcmFtZSc7XG5leHBvcnQgKiBmcm9tICcuL3J1bi1hdXRvLXBhbi1mcmFtZS1yZXF1ZXN0JztcbiJdfQ==
@@ -0,0 +1,4 @@
1
+ export class RunAutoPanFrameRequest {
2
+ static fToken = Symbol('RunAutoPanFrameRequest');
3
+ }
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuLWF1dG8tcGFuLWZyYW1lLXJlcXVlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtZHJhZ2dhYmxlL2F1dG8tcGFuL3J1bi1hdXRvLXBhbi1mcmFtZS9ydW4tYXV0by1wYW4tZnJhbWUtcmVxdWVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sc0JBQXNCO0lBQ2pDLE1BQU0sQ0FBVSxNQUFNLEdBQUcsTUFBTSxDQUFDLHdCQUF3QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgUnVuQXV0b1BhbkZyYW1lUmVxdWVzdCB7XG4gIHN0YXRpYyByZWFkb25seSBmVG9rZW4gPSBTeW1ib2woJ1J1bkF1dG9QYW5GcmFtZVJlcXVlc3QnKTtcbn1cbiJdfQ==