@foblex/flow 17.8.4 → 17.8.6

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 (257) hide show
  1. package/domain/drag-rect-cache.d.ts +8 -0
  2. package/domain/f-background/providers.d.ts +1 -1
  3. package/domain/f-canvas/providers.d.ts +1 -1
  4. package/domain/f-connection/calculate-connection-line-by-behavior/calculate-connection-line-by-behavior-request.d.ts +7 -7
  5. package/domain/f-connection/calculate-connection-line-by-behavior/calculate-connection-line-by-behavior.d.ts +37 -3
  6. package/domain/f-connection/calculate-connection-line-by-behavior/index.d.ts +4 -3
  7. package/domain/f-connection/calculate-connection-line-by-behavior/models/calculate-behavior-request.d.ts +8 -0
  8. package/domain/f-connection/calculate-connection-line-by-behavior/{fixed-center-behavior.d.ts → utils/fixed-center-behavior.d.ts} +2 -2
  9. package/domain/f-connection/calculate-connection-line-by-behavior/{fixed-outbound-behavior.d.ts → utils/fixed-outbound-behavior.d.ts} +2 -2
  10. package/domain/f-connection/calculate-connection-line-by-behavior/{floating-behavior.d.ts → utils/floating-behavior.d.ts} +2 -2
  11. package/domain/f-connection/providers.d.ts +2 -2
  12. package/domain/f-connection/redraw-connections/index.d.ts +1 -1
  13. package/domain/f-connection/redraw-connections/{redraw-connections.execution.d.ts → redraw-connections.d.ts} +3 -3
  14. package/domain/f-connectors/calculate-source-connectors-to-connect/calculate-source-connectors-to-connect-request.d.ts +8 -0
  15. package/domain/f-connectors/calculate-source-connectors-to-connect/calculate-source-connectors-to-connect.d.ts +21 -0
  16. package/domain/f-connectors/calculate-source-connectors-to-connect/index.d.ts +2 -0
  17. package/domain/f-connectors/calculate-target-connectors-to-connect/calculate-target-connectors-to-connect-request.d.ts +8 -0
  18. package/domain/f-connectors/calculate-target-connectors-to-connect/calculate-target-connectors-to-connect.d.ts +20 -0
  19. package/domain/f-connectors/calculate-target-connectors-to-connect/index.d.ts +2 -0
  20. package/domain/f-connectors/index.d.ts +2 -2
  21. package/domain/f-connectors/providers.d.ts +3 -3
  22. package/domain/f-draggable/emit-selection-change-event/emit-selection-change-event.execution.d.ts +1 -1
  23. package/domain/f-event-trigger.d.ts +1 -1
  24. package/domain/f-line-alignment/add-line-alignment-to-store/add-line-alignment-to-store-request.d.ts +2 -2
  25. package/domain/f-line-alignment/add-line-alignment-to-store/{add-line-alignment-to-store.execution.d.ts → add-line-alignment-to-store.d.ts} +4 -4
  26. package/domain/f-line-alignment/add-line-alignment-to-store/index.d.ts +1 -1
  27. package/domain/f-line-alignment/providers.d.ts +3 -3
  28. package/domain/f-line-alignment/remove-line-alignment-from-store/index.d.ts +1 -1
  29. package/domain/f-line-alignment/remove-line-alignment-from-store/{remove-line-alignment-from-store.execution.d.ts → remove-line-alignment-from-store.d.ts} +4 -4
  30. package/domain/f-node/add-node-to-store/add-node-to-store-request.d.ts +2 -2
  31. package/domain/f-node/calculate-connectors-connectable-sides/calculate-connectable-side-by-connected-positions/calculate-connectable-side-by-connected-positions-request.d.ts +8 -0
  32. package/domain/f-node/{calculate-node-connectors-connectable-sides → calculate-connectors-connectable-sides}/calculate-connectable-side-by-connected-positions/calculate-connectable-side-by-connected-positions.d.ts +2 -28
  33. package/domain/f-node/calculate-connectors-connectable-sides/calculate-connectable-side-by-internal-position/calculate-connectable-side-by-internal-position.d.ts +52 -0
  34. package/domain/f-node/calculate-connectors-connectable-sides/calculate-connectors-connectable-sides-request.d.ts +6 -0
  35. package/domain/f-node/calculate-connectors-connectable-sides/calculate-connectors-connectable-sides.d.ts +22 -0
  36. package/domain/f-node/calculate-connectors-connectable-sides/constants/calculatable-sides.d.ts +6 -0
  37. package/domain/f-node/calculate-connectors-connectable-sides/constants/index.d.ts +1 -0
  38. package/domain/f-node/calculate-connectors-connectable-sides/index.d.ts +7 -0
  39. package/domain/f-node/calculate-connectors-connectable-sides/models/index.d.ts +1 -0
  40. package/domain/f-node/calculate-connectors-connectable-sides/models/t-calculate-mode.d.ts +2 -0
  41. package/domain/f-node/calculate-connectors-connectable-sides/utils/determine-side.d.ts +10 -0
  42. package/domain/f-node/calculate-connectors-connectable-sides/utils/index.d.ts +2 -0
  43. package/domain/f-node/calculate-connectors-connectable-sides/utils/is-calculate-mode.d.ts +7 -0
  44. package/domain/f-node/calculate-input-connections/calculate-input-connections-request.d.ts +2 -2
  45. package/domain/f-node/calculate-input-connections/calculate-input-connections.d.ts +3 -3
  46. package/domain/f-node/calculate-nodes-bounding-box/calculate-nodes-bounding-box.d.ts +2 -3
  47. package/domain/f-node/calculate-output-connections/calculate-output-connections-request.d.ts +2 -2
  48. package/domain/f-node/calculate-output-connections/calculate-output-connections.d.ts +3 -3
  49. package/domain/f-node/get-parent-nodes/get-parent-nodes.d.ts +1 -1
  50. package/domain/f-node/get-parent-nodes/get-parent-nodes.request.d.ts +2 -2
  51. package/domain/f-node/index.d.ts +1 -2
  52. package/domain/f-node/providers.d.ts +2 -3
  53. package/domain/f-node/remove-node-from-store/remove-node-from-store-request.d.ts +2 -2
  54. package/domain/f-node/remove-node-from-store/remove-node-from-store.d.ts +1 -1
  55. package/domain/f-selection/select-and-update-node-layer/select-and-update-node-layer.execution.d.ts +2 -2
  56. package/domain/f-selection/select-and-update-node-layer/select-and-update-node-layer.request.d.ts +2 -2
  57. package/domain/index.d.ts +1 -0
  58. package/domain/providers.d.ts +4 -3
  59. package/domain/update-item-and-children-layers/move-front-elements-before-target-element/index.d.ts +2 -2
  60. package/domain/update-item-and-children-layers/move-front-elements-before-target-element/{move-front-elements-before-target-element.request.d.ts → move-front-elements-before-target-element-request.d.ts} +4 -4
  61. package/domain/update-item-and-children-layers/move-front-elements-before-target-element/{move-front-elements-before-target-element.execution.d.ts → move-front-elements-before-target-element.d.ts} +4 -4
  62. package/esm2022/domain/css-cls.mjs +2 -1
  63. package/esm2022/domain/drag-rect-cache.mjs +19 -0
  64. package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/calculate-connection-line-by-behavior-request.mjs +4 -4
  65. package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/calculate-connection-line-by-behavior.mjs +126 -13
  66. package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/index.mjs +5 -4
  67. package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/models/calculate-behavior-request.mjs +2 -0
  68. package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/utils/fixed-center-behavior.mjs +12 -0
  69. package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/utils/fixed-outbound-behavior.mjs +31 -0
  70. package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/utils/floating-behavior.mjs +22 -0
  71. package/esm2022/domain/f-connection/providers.mjs +3 -3
  72. package/esm2022/domain/f-connection/redraw-connections/index.mjs +2 -2
  73. package/esm2022/domain/f-connection/redraw-connections/redraw-connections.mjs +75 -0
  74. package/esm2022/domain/f-connectors/calculate-source-connectors-to-connect/calculate-source-connectors-to-connect-request.mjs +10 -0
  75. package/esm2022/domain/f-connectors/calculate-source-connectors-to-connect/calculate-source-connectors-to-connect.mjs +59 -0
  76. package/esm2022/domain/f-connectors/calculate-source-connectors-to-connect/index.mjs +3 -0
  77. package/esm2022/domain/f-connectors/calculate-target-connectors-to-connect/calculate-target-connectors-to-connect-request.mjs +10 -0
  78. package/esm2022/domain/f-connectors/calculate-target-connectors-to-connect/calculate-target-connectors-to-connect.mjs +64 -0
  79. package/esm2022/domain/f-connectors/calculate-target-connectors-to-connect/index.mjs +3 -0
  80. package/esm2022/domain/f-connectors/index.mjs +3 -3
  81. package/esm2022/domain/f-connectors/providers.mjs +5 -5
  82. package/esm2022/domain/f-draggable/emit-selection-change-event/emit-selection-change-event-request.mjs +1 -1
  83. package/esm2022/domain/f-draggable/emit-selection-change-event/emit-selection-change-event.execution.mjs +2 -2
  84. package/esm2022/domain/f-event-trigger.mjs +2 -2
  85. package/esm2022/domain/f-line-alignment/add-line-alignment-to-store/add-line-alignment-to-store-request.mjs +4 -4
  86. package/esm2022/domain/f-line-alignment/add-line-alignment-to-store/add-line-alignment-to-store.mjs +25 -0
  87. package/esm2022/domain/f-line-alignment/add-line-alignment-to-store/index.mjs +2 -2
  88. package/esm2022/domain/f-line-alignment/providers.mjs +4 -7
  89. package/esm2022/domain/f-line-alignment/remove-line-alignment-from-store/index.mjs +2 -2
  90. package/esm2022/domain/f-line-alignment/remove-line-alignment-from-store/remove-line-alignment-from-store.mjs +25 -0
  91. package/esm2022/domain/f-node/add-node-to-store/add-node-to-store-request.mjs +4 -4
  92. package/esm2022/domain/f-node/add-node-to-store/add-node-to-store.mjs +2 -2
  93. package/esm2022/domain/f-node/calculate-connectors-connectable-sides/calculate-connectable-side-by-connected-positions/calculate-connectable-side-by-connected-positions-request.mjs +10 -0
  94. package/esm2022/domain/f-node/calculate-connectors-connectable-sides/calculate-connectable-side-by-connected-positions/calculate-connectable-side-by-connected-positions.mjs +59 -0
  95. package/esm2022/domain/f-node/calculate-connectors-connectable-sides/calculate-connectable-side-by-connected-positions/index.mjs +3 -0
  96. package/esm2022/domain/f-node/calculate-connectors-connectable-sides/calculate-connectable-side-by-internal-position/calculate-connectable-side-by-internal-position-request.mjs +8 -0
  97. package/esm2022/domain/f-node/calculate-connectors-connectable-sides/calculate-connectable-side-by-internal-position/calculate-connectable-side-by-internal-position.mjs +132 -0
  98. package/esm2022/domain/f-node/calculate-connectors-connectable-sides/calculate-connectable-side-by-internal-position/index.mjs +3 -0
  99. package/esm2022/domain/f-node/calculate-connectors-connectable-sides/calculate-connectors-connectable-sides-request.mjs +8 -0
  100. package/esm2022/domain/f-node/calculate-connectors-connectable-sides/calculate-connectors-connectable-sides.mjs +73 -0
  101. package/esm2022/domain/f-node/calculate-connectors-connectable-sides/constants/calculatable-sides.mjs +12 -0
  102. package/esm2022/domain/f-node/calculate-connectors-connectable-sides/constants/index.mjs +2 -0
  103. package/esm2022/domain/f-node/calculate-connectors-connectable-sides/index.mjs +8 -0
  104. package/esm2022/domain/f-node/calculate-connectors-connectable-sides/models/index.mjs +2 -0
  105. package/esm2022/domain/f-node/calculate-connectors-connectable-sides/models/t-calculate-mode.mjs +2 -0
  106. package/esm2022/domain/f-node/calculate-connectors-connectable-sides/utils/determine-side.mjs +124 -0
  107. package/esm2022/domain/f-node/calculate-connectors-connectable-sides/utils/index.mjs +3 -0
  108. package/esm2022/domain/f-node/calculate-connectors-connectable-sides/utils/is-calculate-mode.mjs +12 -0
  109. package/esm2022/domain/f-node/calculate-input-connections/calculate-input-connections-request.mjs +4 -4
  110. package/esm2022/domain/f-node/calculate-input-connections/calculate-input-connections.mjs +20 -7
  111. package/esm2022/domain/f-node/calculate-nodes-bounding-box/calculate-nodes-bounding-box.mjs +5 -8
  112. package/esm2022/domain/f-node/calculate-nodes-bounding-box-normalized-position/calculate-nodes-bounding-box-normalized-position.mjs +1 -1
  113. package/esm2022/domain/f-node/calculate-output-connections/calculate-output-connections-request.mjs +4 -4
  114. package/esm2022/domain/f-node/calculate-output-connections/calculate-output-connections.mjs +20 -7
  115. package/esm2022/domain/f-node/fit-to-child-nodes-and-groups/fit-to-child-nodes-and-groups-request.mjs +1 -1
  116. package/esm2022/domain/f-node/get-child-node-ids/get-child-node-ids.request.mjs +1 -1
  117. package/esm2022/domain/f-node/get-parent-nodes/get-parent-nodes.mjs +8 -8
  118. package/esm2022/domain/f-node/get-parent-nodes/get-parent-nodes.request.mjs +4 -4
  119. package/esm2022/domain/f-node/index.mjs +2 -3
  120. package/esm2022/domain/f-node/providers.mjs +3 -5
  121. package/esm2022/domain/f-node/remove-node-from-store/remove-node-from-store-request.mjs +4 -4
  122. package/esm2022/domain/f-node/remove-node-from-store/remove-node-from-store.mjs +3 -3
  123. package/esm2022/domain/f-node/update-node-when-state-or-size-changed/update-node-when-state-or-size-changed.mjs +3 -3
  124. package/esm2022/domain/f-selection/select-and-update-node-layer/select-and-update-node-layer.execution.mjs +5 -5
  125. package/esm2022/domain/f-selection/select-and-update-node-layer/select-and-update-node-layer.request.mjs +4 -4
  126. package/esm2022/domain/get-normalized-connector-rect/get-normalized-connector-rect-request.mjs +1 -1
  127. package/esm2022/domain/get-normalized-connector-rect/get-normalized-connector-rect.execution.mjs +2 -2
  128. package/esm2022/domain/get-normalized-element-rect/get-normalized-element-rect.execution.mjs +2 -14
  129. package/esm2022/domain/get-normalized-point/get-normalized-point.execution.mjs +4 -1
  130. package/esm2022/domain/index.mjs +2 -1
  131. package/esm2022/domain/is-mobile.mjs +5 -3
  132. package/esm2022/domain/providers.mjs +5 -5
  133. package/esm2022/domain/update-item-and-children-layers/move-front-elements-before-target-element/index.mjs +3 -3
  134. package/esm2022/domain/update-item-and-children-layers/move-front-elements-before-target-element/move-front-elements-before-target-element-request.mjs +15 -0
  135. package/esm2022/domain/update-item-and-children-layers/move-front-elements-before-target-element/move-front-elements-before-target-element.mjs +34 -0
  136. package/esm2022/f-connection/common/domain/adaptive-curve-builder.mjs +201 -0
  137. package/esm2022/f-connection/common/domain/index.mjs +2 -1
  138. package/esm2022/f-connection/common/e-f-connection-connectable-side.mjs +12 -0
  139. package/esm2022/f-connection/common/e-f-connection-type.mjs +2 -1
  140. package/esm2022/f-connection/common/f-connection-base.mjs +28 -5
  141. package/esm2022/f-connection/common/index.mjs +2 -1
  142. package/esm2022/f-connection/f-connection/f-connection.component.mjs +13 -3
  143. package/esm2022/f-connection/f-connection-builder/f-connection-factory.mjs +9 -17
  144. package/esm2022/f-connection/f-connection-content/f-connection-content.mjs +10 -4
  145. package/esm2022/f-connection/f-connection-content/polyline-content-engine/polyline-content-layout-engine.mjs +4 -5
  146. package/esm2022/f-connection/f-connection-content/polyline-content-engine/polyline-content-place.mjs +3 -2
  147. package/esm2022/f-connection/f-connection-for-create/f-connection-for-create.component.mjs +14 -4
  148. package/esm2022/f-connection/f-snap-connection/f-snap-connection.component.mjs +14 -4
  149. package/esm2022/f-connectors/f-node-output/f-node-output.directive.mjs +1 -1
  150. package/esm2022/f-draggable/f-connection/f-create-connection/create-preparation/create-connection-preparation-request.mjs +10 -0
  151. package/esm2022/f-draggable/f-connection/f-create-connection/create-preparation/create-connection-preparation.mjs +58 -0
  152. package/esm2022/f-draggable/f-connection/f-create-connection/create-preparation/from-output-preparation/create-connection-from-output-preparation-request.mjs +10 -0
  153. package/esm2022/f-draggable/f-connection/f-create-connection/create-preparation/from-output-preparation/create-connection-from-output-preparation.mjs +47 -0
  154. package/esm2022/f-draggable/f-connection/f-create-connection/create-preparation/from-output-preparation/index.mjs +3 -3
  155. package/esm2022/f-draggable/f-connection/f-create-connection/create-preparation/index.mjs +3 -3
  156. package/esm2022/f-draggable/f-connection/f-create-connection/f-create-connection.drag-handler.mjs +12 -12
  157. package/esm2022/f-draggable/f-connection/f-reassign-connection/f-reassign-source.drag-handler.mjs +7 -7
  158. package/esm2022/f-draggable/f-connection/f-reassign-connection/f-reassign-target.drag-handler.mjs +10 -10
  159. package/esm2022/f-draggable/f-connection/providers.mjs +4 -4
  160. package/esm2022/f-draggable/f-draggable.directive.mjs +5 -4
  161. package/esm2022/f-draggable/f-drop-to-group/drop-to-group-preparation/drop-to-group-preparation-request.mjs +1 -1
  162. package/esm2022/f-draggable/f-drop-to-group/drop-to-group-preparation/drop-to-group-preparation.mjs +11 -13
  163. package/esm2022/f-draggable/f-node-move/connection-drag-handlers/base-connection.drag-handler.mjs +3 -3
  164. package/esm2022/f-draggable/f-node-move/move-preparation/f-node-move-preparation.execution.mjs +14 -12
  165. package/esm2022/f-draggable/f-node-move/move-preparation/f-node-move-preparation.request.mjs +1 -1
  166. package/esm2022/f-flow/f-flow.component.mjs +2 -2
  167. package/esm2022/f-node/f-group.directive.mjs +3 -3
  168. package/esm2022/f-node/f-node.directive.mjs +3 -3
  169. package/esm2022/f-storage/f-connectors-store.mjs +11 -0
  170. package/esm2022/f-storage/index.mjs +2 -1
  171. package/f-backgroud/providers.d.ts +1 -1
  172. package/f-connection/common/domain/adaptive-curve-builder.d.ts +102 -0
  173. package/f-connection/common/domain/index.d.ts +1 -0
  174. package/f-connection/common/e-f-connection-connectable-side.d.ts +10 -0
  175. package/f-connection/common/e-f-connection-type.d.ts +2 -1
  176. package/f-connection/common/f-connection-base.d.ts +14 -2
  177. package/f-connection/common/index.d.ts +1 -0
  178. package/f-connection/f-connection/f-connection.component.d.ts +4 -2
  179. package/f-connection/f-connection-builder/f-connection-factory.d.ts +2 -4
  180. package/f-connection/f-connection-content/f-connection-content.d.ts +2 -2
  181. package/f-connection/f-connection-for-create/f-connection-for-create.component.d.ts +4 -2
  182. package/f-connection/f-snap-connection/f-snap-connection.component.d.ts +4 -2
  183. package/f-connection/providers.d.ts +1 -1
  184. package/f-draggable/f-connection/f-create-connection/create-preparation/create-connection-preparation-request.d.ts +8 -0
  185. package/f-draggable/f-connection/f-create-connection/create-preparation/create-connection-preparation.d.ts +16 -0
  186. package/f-draggable/f-connection/f-create-connection/create-preparation/from-output-preparation/create-connection-from-output-preparation-request.d.ts +8 -0
  187. package/f-draggable/f-connection/f-create-connection/create-preparation/from-output-preparation/create-connection-from-output-preparation.d.ts +14 -0
  188. package/f-draggable/f-connection/f-create-connection/create-preparation/from-output-preparation/index.d.ts +2 -2
  189. package/f-draggable/f-connection/f-create-connection/create-preparation/index.d.ts +2 -2
  190. package/f-draggable/f-connection/providers.d.ts +2 -2
  191. package/f-draggable/f-drop-to-group/drop-to-group-preparation/drop-to-group-preparation-request.d.ts +2 -2
  192. package/f-draggable/f-drop-to-group/providers.d.ts +1 -1
  193. package/f-draggable/f-node-move/create-drag-model-from-selection/providers.d.ts +1 -1
  194. package/f-draggable/f-node-move/move-preparation/f-node-move-preparation.execution.d.ts +1 -1
  195. package/f-draggable/f-node-move/move-preparation/f-node-move-preparation.request.d.ts +1 -1
  196. package/f-draggable/f-node-move/providers.d.ts +1 -1
  197. package/f-draggable/providers.d.ts +1 -1
  198. package/f-minimap/domain/providers.d.ts +1 -1
  199. package/f-node/providers.d.ts +1 -1
  200. package/f-selection-area/domain/providers.d.ts +1 -1
  201. package/f-storage/f-connectors-store.d.ts +6 -0
  202. package/f-storage/index.d.ts +1 -0
  203. package/f-storage/providers.d.ts +1 -1
  204. package/fesm2022/foblex-flow.mjs +1741 -1235
  205. package/fesm2022/foblex-flow.mjs.map +1 -1
  206. package/package.json +1 -1
  207. package/domain/f-connectors/get-all-can-be-connected-inputs-and-rects/get-all-can-be-connected-inputs-and-rects.execution.d.ts +0 -17
  208. package/domain/f-connectors/get-all-can-be-connected-inputs-and-rects/get-all-can-be-connected-inputs-and-rects.request.d.ts +0 -6
  209. package/domain/f-connectors/get-all-can-be-connected-inputs-and-rects/index.d.ts +0 -2
  210. package/domain/f-connectors/get-all-can-be-connected-source-connectors-and-rects/get-all-can-be-connected-source-connectors-and-rects.execution.d.ts +0 -18
  211. package/domain/f-connectors/get-all-can-be-connected-source-connectors-and-rects/get-all-can-be-connected-source-connectors-and-rects.request.d.ts +0 -6
  212. package/domain/f-connectors/get-all-can-be-connected-source-connectors-and-rects/index.d.ts +0 -2
  213. package/domain/f-node/calculate-node-connectors-connectable-sides/calculate-connectable-side-by-connected-positions/calculate-connectable-side-by-connected-positions-request.d.ts +0 -9
  214. package/domain/f-node/calculate-node-connectors-connectable-sides/calculate-connectable-side-by-internal-position/calculate-connectable-side-by-internal-position.d.ts +0 -20
  215. package/domain/f-node/calculate-node-connectors-connectable-sides/calculate-node-connectors-connectable-sides-request.d.ts +0 -6
  216. package/domain/f-node/calculate-node-connectors-connectable-sides/calculate-node-connectors-connectable-sides.d.ts +0 -28
  217. package/domain/f-node/calculate-node-connectors-connectable-sides/index.d.ts +0 -4
  218. package/domain/f-node/get-nodes/get-nodes-request.d.ts +0 -3
  219. package/domain/f-node/get-nodes/get-nodes.d.ts +0 -13
  220. package/domain/f-node/get-nodes/index.d.ts +0 -2
  221. package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/fixed-center-behavior.mjs +0 -12
  222. package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/fixed-outbound-behavior.mjs +0 -31
  223. package/esm2022/domain/f-connection/calculate-connection-line-by-behavior/floating-behavior.mjs +0 -22
  224. package/esm2022/domain/f-connection/redraw-connections/redraw-connections.execution.mjs +0 -73
  225. package/esm2022/domain/f-connectors/get-all-can-be-connected-inputs-and-rects/get-all-can-be-connected-inputs-and-rects.execution.mjs +0 -48
  226. package/esm2022/domain/f-connectors/get-all-can-be-connected-inputs-and-rects/get-all-can-be-connected-inputs-and-rects.request.mjs +0 -8
  227. package/esm2022/domain/f-connectors/get-all-can-be-connected-inputs-and-rects/index.mjs +0 -3
  228. package/esm2022/domain/f-connectors/get-all-can-be-connected-source-connectors-and-rects/get-all-can-be-connected-source-connectors-and-rects.execution.mjs +0 -43
  229. package/esm2022/domain/f-connectors/get-all-can-be-connected-source-connectors-and-rects/get-all-can-be-connected-source-connectors-and-rects.request.mjs +0 -8
  230. package/esm2022/domain/f-connectors/get-all-can-be-connected-source-connectors-and-rects/index.mjs +0 -3
  231. package/esm2022/domain/f-line-alignment/add-line-alignment-to-store/add-line-alignment-to-store.execution.mjs +0 -25
  232. package/esm2022/domain/f-line-alignment/remove-line-alignment-from-store/remove-line-alignment-from-store.execution.mjs +0 -25
  233. package/esm2022/domain/f-node/calculate-node-connectors-connectable-sides/calculate-connectable-side-by-connected-positions/calculate-connectable-side-by-connected-positions-request.mjs +0 -16
  234. package/esm2022/domain/f-node/calculate-node-connectors-connectable-sides/calculate-connectable-side-by-connected-positions/calculate-connectable-side-by-connected-positions.mjs +0 -181
  235. package/esm2022/domain/f-node/calculate-node-connectors-connectable-sides/calculate-connectable-side-by-connected-positions/index.mjs +0 -3
  236. package/esm2022/domain/f-node/calculate-node-connectors-connectable-sides/calculate-connectable-side-by-internal-position/calculate-connectable-side-by-internal-position-request.mjs +0 -8
  237. package/esm2022/domain/f-node/calculate-node-connectors-connectable-sides/calculate-connectable-side-by-internal-position/calculate-connectable-side-by-internal-position.mjs +0 -55
  238. package/esm2022/domain/f-node/calculate-node-connectors-connectable-sides/calculate-connectable-side-by-internal-position/index.mjs +0 -3
  239. package/esm2022/domain/f-node/calculate-node-connectors-connectable-sides/calculate-node-connectors-connectable-sides-request.mjs +0 -8
  240. package/esm2022/domain/f-node/calculate-node-connectors-connectable-sides/calculate-node-connectors-connectable-sides.mjs +0 -90
  241. package/esm2022/domain/f-node/calculate-node-connectors-connectable-sides/index.mjs +0 -5
  242. package/esm2022/domain/f-node/get-nodes/get-nodes-request.mjs +0 -4
  243. package/esm2022/domain/f-node/get-nodes/get-nodes.mjs +0 -25
  244. package/esm2022/domain/f-node/get-nodes/index.mjs +0 -3
  245. package/esm2022/domain/update-item-and-children-layers/move-front-elements-before-target-element/move-front-elements-before-target-element.execution.mjs +0 -34
  246. package/esm2022/domain/update-item-and-children-layers/move-front-elements-before-target-element/move-front-elements-before-target-element.request.mjs +0 -15
  247. package/esm2022/f-draggable/f-connection/f-create-connection/create-preparation/f-create-connection-preparation.execution.mjs +0 -52
  248. package/esm2022/f-draggable/f-connection/f-create-connection/create-preparation/f-create-connection-preparation.request.mjs +0 -10
  249. package/esm2022/f-draggable/f-connection/f-create-connection/create-preparation/from-output-preparation/f-create-connection-from-output-preparation.execution.mjs +0 -49
  250. package/esm2022/f-draggable/f-connection/f-create-connection/create-preparation/from-output-preparation/f-create-connection-from-output-preparation.request.mjs +0 -10
  251. package/f-draggable/f-connection/f-create-connection/create-preparation/f-create-connection-preparation.execution.d.ts +0 -16
  252. package/f-draggable/f-connection/f-create-connection/create-preparation/f-create-connection-preparation.request.d.ts +0 -8
  253. package/f-draggable/f-connection/f-create-connection/create-preparation/from-output-preparation/f-create-connection-from-output-preparation.execution.d.ts +0 -14
  254. package/f-draggable/f-connection/f-create-connection/create-preparation/from-output-preparation/f-create-connection-from-output-preparation.request.d.ts +0 -8
  255. /package/domain/f-node/{calculate-node-connectors-connectable-sides → calculate-connectors-connectable-sides}/calculate-connectable-side-by-connected-positions/index.d.ts +0 -0
  256. /package/domain/f-node/{calculate-node-connectors-connectable-sides → calculate-connectors-connectable-sides}/calculate-connectable-side-by-internal-position/calculate-connectable-side-by-internal-position-request.d.ts +0 -0
  257. /package/domain/f-node/{calculate-node-connectors-connectable-sides → calculate-connectors-connectable-sides}/calculate-connectable-side-by-internal-position/index.d.ts +0 -0
@@ -5,10 +5,12 @@ import { CONNECTION_GRADIENT } from './f-gradient';
5
5
  import { FConnectionDragHandleEndComponent, FConnectionDragHandleStartComponent, } from './f-drag-handle';
6
6
  import { FConnectionSelectionComponent } from './f-selection';
7
7
  import { CONNECTION_TEXT } from './f-connection-text';
8
+ import { EFConnectableSide } from '../../f-connectors';
8
9
  import { FConnectionFactory } from '../f-connection-builder';
9
10
  import { mixinChangeSelection, mixinChangeVisibility, } from '../../mixins';
10
11
  import { FConnectionCenterDirective } from '../f-connection-center';
11
12
  import { ConnectionContentLayoutEngine, FConnectionContent } from '../f-connection-content';
13
+ import { EFConnectionConnectableSide } from './e-f-connection-connectable-side';
12
14
  import * as i0 from "@angular/core";
13
15
  const MIXIN_BASE = mixinChangeSelection(mixinChangeVisibility(class {
14
16
  hostElement;
@@ -39,6 +41,10 @@ export class FConnectionBase extends MIXIN_BASE {
39
41
  fConnectionContents = contentChildren(FConnectionContent, {
40
42
  descendants: true,
41
43
  });
44
+ fInputSide = signal(EFConnectionConnectableSide.DEFAULT);
45
+ _sourceSide = EFConnectableSide.AUTO;
46
+ fOutputSide = signal(EFConnectionConnectableSide.DEFAULT);
47
+ _targetSide = EFConnectableSide.AUTO;
42
48
  _penultimatePoint = PointExtensions.initialize();
43
49
  _secondPoint = PointExtensions.initialize();
44
50
  constructor() {
@@ -52,9 +58,9 @@ export class FConnectionBase extends MIXIN_BASE {
52
58
  isContains(element) {
53
59
  return (this.hostElement.firstChild?.lastChild).contains(element);
54
60
  }
55
- setLine({ point1, point2 }, sourceSide, targetSide) {
61
+ setLine({ point1, point2 }) {
56
62
  this.line = LineExtensions.initialize(point1, point2);
57
- const pathResult = this._getPathResult(point1, sourceSide, point2, targetSide);
63
+ const pathResult = this._getPathResult(point1, point2);
58
64
  this.path = pathResult.path;
59
65
  this._penultimatePoint = pathResult.penultimatePoint || point1;
60
66
  this._secondPoint = pathResult.secondPoint || point2;
@@ -64,12 +70,19 @@ export class FConnectionBase extends MIXIN_BASE {
64
70
  _contents() {
65
71
  return Array.from(this.fConnectionContents()?.values() ?? []);
66
72
  }
67
- _getPathResult(source, sourceSide, target, targetSide) {
73
+ _getPathResult(source, target) {
68
74
  const radius = this.fRadius > 0 ? this.fRadius : 0;
69
75
  const offset = this.fOffset > 0 ? this.fOffset : 1;
70
76
  return this._connectionFactory.handle({
71
77
  type: this.fType,
72
- payload: { source, sourceSide, target, targetSide, radius, offset },
78
+ payload: {
79
+ source,
80
+ sourceSide: this._sourceSide,
81
+ target,
82
+ targetSide: this._targetSide,
83
+ radius,
84
+ offset,
85
+ },
73
86
  });
74
87
  }
75
88
  _createTransformString(position, rotate = 0) {
@@ -89,10 +102,20 @@ export class FConnectionBase extends MIXIN_BASE {
89
102
  this.fDragHandleStart()?.redraw(this._secondPoint, this.line.point1);
90
103
  this.fTextComponent().redraw(this.line);
91
104
  }
105
+ /**
106
+ * Applies the resolved sides to the connection. Don't call this method directly; it's used internally.
107
+ *
108
+ * @param sourceSide The resolved side for the source element.
109
+ * @param targetSide The resolved side for the target element.
110
+ */
111
+ _applyResolvedSidesToConnection(sourceSide, targetSide) {
112
+ this._sourceSide = sourceSide;
113
+ this._targetSide = targetSide;
114
+ }
92
115
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FConnectionBase, deps: [], target: i0.ɵɵFactoryTarget.Directive });
93
116
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "18.2.13", type: FConnectionBase, inputs: { fStartColor: { classPropertyName: "fStartColor", publicName: "fStartColor", isSignal: true, isRequired: false, transformFunction: null }, fEndColor: { classPropertyName: "fEndColor", publicName: "fEndColor", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "fConnectionCenters", predicate: FConnectionCenterDirective, descendants: true, isSignal: true }, { propertyName: "fConnectionContents", predicate: FConnectionContent, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "fDefs", first: true, predicate: ["defs"], descendants: true, isSignal: true }, { propertyName: "fPath", first: true, predicate: CONNECTION_PATH, descendants: true, isSignal: true }, { propertyName: "fGradient", first: true, predicate: CONNECTION_GRADIENT, descendants: true, isSignal: true }, { propertyName: "fDragHandleStart", first: true, predicate: FConnectionDragHandleStartComponent, descendants: true, isSignal: true }, { propertyName: "fDragHandleEnd", first: true, predicate: FConnectionDragHandleEndComponent, descendants: true, isSignal: true }, { propertyName: "fSelection", first: true, predicate: FConnectionSelectionComponent, descendants: true, isSignal: true }, { propertyName: "fTextComponent", first: true, predicate: CONNECTION_TEXT, descendants: true, isSignal: true }, { propertyName: "fConnectionCenter", first: true, predicate: ["fConnectionCenter"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0 });
94
117
  }
95
118
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FConnectionBase, decorators: [{
96
119
  type: Directive
97
120
  }], ctorParameters: () => [] });
98
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jb25uZWN0aW9uLWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdGlvbi9jb21tb24vZi1jb25uZWN0aW9uLWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGVBQWUsRUFDZixTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUVOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWlCLGNBQWMsRUFBRSxlQUFlLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFNNUUsT0FBTyxFQUFFLGVBQWUsRUFBbUIsTUFBTSxVQUFVLENBQUM7QUFDNUQsT0FBTyxFQUFFLG1CQUFtQixFQUF1QixNQUFNLGNBQWMsQ0FBQztBQUN4RSxPQUFPLEVBQ0wsaUNBQWlDLEVBQ2pDLG1DQUFtQyxHQUNwQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZUFBZSxFQUFtQixNQUFNLHFCQUFxQixDQUFDO0FBRXZFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTdELE9BQU8sRUFHTCxvQkFBb0IsRUFDcEIscUJBQXFCLEdBQ3RCLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDOztBQUU1RixNQUFNLFVBQVUsR0FBRyxvQkFBb0IsQ0FDckMscUJBQXFCLENBQ25CO0lBQ3FCO0lBQW5CLFlBQW1CLFdBQXdCO1FBQXhCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO0lBQUcsQ0FBQztDQUNoRCxDQUNGLENBQ0YsQ0FBQztBQUdGLE1BQU0s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SUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFTSxNQUFNO1FBQ1gsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN2RSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JFLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzFDLENBQUM7d0dBakptQixlQUFlOzRGQUFmLGVBQWUsdVZBOERrQiwwQkFBMEIseUZBSXpCLGtCQUFrQix1TUF0QlosZUFBZSw0RkFFUCxtQkFBbUIsbUdBRTFDLG1DQUFtQyxpR0FFNUIsaUNBQWlDLDZGQUVyQyw2QkFBNkIsaUdBRVIsZUFBZTs7NEZBdERoRSxlQUFlO2tCQURwQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgY29udGVudENoaWxkcmVuLFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIGluamVjdCxcbiAgaW5wdXQsXG4gIHNpZ25hbCxcbiAgU2lnbmFsLFxuICB2aWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSUxpbmUsIElQb2ludCwgTGluZUV4dGVuc2lvbnMsIFBvaW50RXh0ZW5zaW9ucyB9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuaW1wb3J0IHsgRUZDb25uZWN0aW9uQmVoYXZpb3IgfSBmcm9tICcuL2UtZi1jb25uZWN0aW9uLWJlaGF2aW9yJztcbmltcG9ydCB7IEVGQ29ubmVjdGlvblR5cGUgfSBmcm9tICcuL2UtZi1jb25uZWN0aW9uLXR5cGUnO1xuaW1wb3J0IHsgSUhhc0Nvbm5lY3Rpb25Db2xvciB9IGZyb20gJy4vaS1oYXMtY29ubmVjdGlvbi1jb2xvcic7XG5pbXBvcnQgeyBJSGFzQ29ubmVjdGlvbkZyb21UbyB9IGZyb20gJy4vaS1oYXMtY29ubmVjdGlvbi1mcm9tLXRvJztcbmltcG9ydCB7IElIYXNDb25uZWN0aW9uVGV4dCB9IGZyb20gJy4vaS1oYXMtY29ubmVjdGlvbi10ZXh0JztcbmltcG9ydCB7IENPTk5FQ1RJT05fUEFUSCwgSUNvbm5lY3Rpb25QYXRoIH0gZnJvbSAnLi9mLXBhdGgnO1xuaW1wb3J0IHsgQ09OTkVDVElPTl9HUkFESUVOVCwgSUNvbm5lY3Rpb25HcmFkaWVudCB9IGZyb20gJy4vZi1ncmFkaWVudCc7XG5pbXBvcnQge1xuICBGQ29ubmVjdGlvbkRyYWdIYW5kbGVFbmRDb21wb25lbnQsXG4gIEZDb25uZWN0aW9uRHJhZ0hhbmRsZVN0YXJ0Q29tcG9uZW50LFxufSBmcm9tICcuL2YtZHJhZy1oYW5kbGUnO1xuaW1wb3J0IHsgRkNvbm5lY3Rpb25TZWxlY3Rpb25Db21wb25lbnQgfSBmcm9tICcuL2Ytc2VsZWN0aW9uJztcbmltcG9ydCB7IENPTk5FQ1RJT05fVEVYVCwgSUNvbm5lY3Rpb25UZXh0IH0gZnJvbSAnLi9mLWNvbm5lY3Rpb24tdGV4dCc7XG5pbXBvcnQgeyBFRkNvbm5lY3RhYmxlU2lkZSB9IGZyb20gJy4uLy4uL2YtY29ubmVjdG9ycyc7XG5pbXBvcnQgeyBGQ29ubmVjdGlvbkZhY3RvcnkgfSBmcm9tICcuLi9mLWNvbm5lY3Rpb24tYnVpbGRlcic7XG5pbXBvcnQgeyBJSGFzSG9zdEVsZW1lbnQgfSBmcm9tICcuLi8uLi9pLWhhcy1ob3N0LWVsZW1lbnQnO1xuaW1wb3J0IHtcbiAgSVNlbGVjdGFibGUsXG4gIElDYW5DaGFuZ2VWaXNpYmlsaXR5LFxuICBtaXhpbkNoYW5nZVNlbGVjdGlvbixcbiAgbWl4aW5DaGFuZ2VWaXNpYmlsaXR5LFxufSBmcm9tICcuLi8uLi9taXhpbnMnO1xuaW1wb3J0IHsgRkNvbm5lY3Rpb25DZW50ZXJEaXJlY3RpdmUgfSBmcm9tICcuLi9mLWNvbm5lY3Rpb24tY2VudGVyJztcbmltcG9ydCB7IENvbm5lY3Rpb25Db250ZW50TGF5b3V0RW5naW5lLCBGQ29ubmVjdGlvbkNvbnRlbnQgfSBmcm9tICcuLi9mLWNvbm5lY3Rpb24tY29udGVudCc7XG5cbmNvbnN0IE1JWElOX0JBU0UgPSBtaXhpbkNoYW5nZVNlbGVjdGlvbihcbiAgbWl4aW5DaGFuZ2VWaXNpYmlsaXR5KFxuICAgIGNsYXNzIHtcbiAgICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBob3N0RWxlbWVudDogSFRNTEVsZW1lbnQpIHt9XG4gICAgfSxcbiAgKSxcbik7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEZDb25uZWN0aW9uQmFzZVxuICBleHRlbmRzIE1JWElOX0JBU0VcbiAgaW1wbGVtZW50c1xuICAgIElIYXNIb3N0RWxlbWVudCxcbiAgICBJU2VsZWN0YWJsZSxcbiAgICBJQ2FuQ2hhbmdlVmlzaWJpbGl0eSxcbiAgICBJSGFzQ29ubmVjdGlvbkNvbG9yLFxuICAgIElIYXNDb25uZWN0aW9uRnJvbVRvLFxuICAgIElIYXNDb25uZWN0aW9uVGV4dFxue1xuICBwcml2YXRlIHJlYWRvbmx5IF9jb25uZWN0aW9uRmFjdG9yeSA9IGluamVjdChGQ29ubmVjdGlvbkZhY3RvcnkpO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBvdmVycmlkZSBmSWQ6IFNpZ25hbDxzdHJpbmc+O1xuXG4gIHB1YmxpYyByZWFkb25seSBmU3RhcnRDb2xvciA9IGlucHV0PHN0cmluZz4oJ2JsYWNrJyk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGZFbmRDb2xvciA9IGlucHV0PHN0cmluZz4oJ2JsYWNrJyk7XG5cbiAgcHVibGljIGFic3RyYWN0IGZPdXRwdXRJZDogU2lnbmFsPHN0cmluZz47XG5cbiAgcHVibGljIGFic3RyYWN0IGZJbnB1dElkOiBTaWduYWw8c3RyaW5nPjtcblxuICBwdWJsaWMgYWJzdHJhY3QgZlJhZGl1czogbnVtYmVyO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmT2Zmc2V0OiBudW1iZXI7XG5cbiAgcHVibGljIHBhdGg6IHN0cmluZyA9ICcnO1xuXG4gIHB1YmxpYyBsaW5lID0gTGluZUV4dGVuc2lvbnMuaW5pdGlhbGl6ZSgpO1xuXG4gIHB1YmxpYyByZWFkb25seSBmUmVhc3NpZ25hYmxlU3RhcnQ6IFNpZ25hbDxib29sZWFuPiA9IHNpZ25hbChmYWxzZSk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGZEcmFnZ2luZ0Rpc2FibGVkOiBTaWduYWw8Ym9vbGVhbj4gPSBzaWduYWwoZmFsc2UpO1xuXG4gIHB1YmxpYyBvdmVycmlkZSByZWFkb25seSBmU2VsZWN0aW9uRGlzYWJsZWQ6IFNpZ25hbDxib29sZWFuPiA9IHNpZ25hbChmYWxzZSk7XG5cbiAgcHVibGljIGFic3RyYWN0IGJvdW5kaW5nRWxlbWVudDogSFRNTEVsZW1lbnQgfCBTVkdFbGVtZW50O1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmQmVoYXZpb3I6IEVGQ29ubmVjdGlvbkJlaGF2aW9yO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmVHlwZTogRUZDb25uZWN0aW9uVHlwZSB8IHN0cmluZztcblxuICBwdWJsaWMgcmVhZG9ubHkgZkRlZnMgPSB2aWV3Q2hpbGQucmVxdWlyZWQ8RWxlbWVudFJlZjxTVkdEZWZzRWxlbWVudD4+KCdkZWZzJyk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGZQYXRoID0gdmlld0NoaWxkLnJlcXVpcmVkPElDb25uZWN0aW9uUGF0aD4oQ09OTkVDVElPTl9QQVRIKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgZkdyYWRpZW50ID0gdmlld0NoaWxkLnJlcXVpcmVkPElDb25uZWN0aW9uR3JhZGllbnQ+KENPTk5FQ1RJT05fR1JBRElFTlQpO1xuXG4gIHB1YmxpYyByZWFkb25seSBmRHJhZ0hhbmRsZVN0YXJ0ID0gdmlld0NoaWxkKEZDb25uZWN0aW9uRHJhZ0hhbmRsZVN0YXJ0Q29tcG9uZW50KTtcblxuICBwdWJsaWMgcmVhZG9ubHkgZkRyYWdIYW5kbGVFbmQgPSB2aWV3Q2hpbGQucmVxdWlyZWQoRkNvbm5lY3Rpb25EcmFnSGFuZGxlRW5kQ29tcG9uZW50KTtcblxuICBwdWJsaWMgcmVhZG9ubHkgZlNlbGVjdGlvbiA9IHZpZXdDaGlsZC5yZXF1aXJlZChGQ29ubmVjdGlvblNlbGVjdGlvbkNvbXBvbmVudCk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGZUZXh0Q29tcG9uZW50ID0gdmlld0NoaWxkLnJlcXVpcmVkPElDb25uZWN0aW9uVGV4dD4oQ09OTkVDVElPTl9URVhUKTtcblxuICBwdWJsaWMgYWJzdHJhY3QgZlRleHQ6IHN0cmluZztcblxuICBwdWJsaWMgYWJzdHJhY3QgZlRleHRTdGFydE9mZnNldDogc3RyaW5nO1xuXG4gIHB1YmxpYyByZWFkb25seSBmQ29ubmVjdGlvbkNlbnRlciA9IHZpZXdDaGlsZDxFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50Pj4oJ2ZDb25uZWN0aW9uQ2VudGVyJyk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGZDb25uZWN0aW9uQ2VudGVycyA9IGNvbnRlbnRDaGlsZHJlbihGQ29ubmVjdGlvbkNlbnRlckRpcmVjdGl2ZSwge1xuICAgIGRlc2NlbmRhbnRzOiB0cnVlLFxuICB9KTtcblxuICBwdWJsaWMgcmVhZG9ubHkgZkNvbm5lY3Rpb25Db250ZW50cyA9IGNvbnRlbnRDaGlsZHJlbihGQ29ubmVjdGlvbkNvbnRlbnQsIHtcbiAgICBkZXNjZW5kYW50czogdHJ1ZSxcbiAgfSk7XG5cbiAgcHJpdmF0ZSBfcGVudWx0aW1hdGVQb2ludCA9IFBvaW50RXh0ZW5zaW9ucy5pbml0aWFsaXplKCk7XG4gIHByaXZhdGUgX3NlY29uZFBvaW50ID0gUG9pbnRFeHRlbnNpb25zLmluaXRpYWxpemUoKTtcblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoaW5qZWN0KEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KS5uYXRpdmVFbGVtZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBpbml0aWFsaXplKCk6IHZvaWQge1xuICAgIHRoaXMuZlBhdGgoKS5pbml0aWFsaXplKCk7XG4gICAgdGhpcy5mR3JhZGllbnQoKS5pbml0aWFsaXplKCk7XG4gICAgdGhpcy5yZWRyYXcoKTtcbiAgfVxuXG4gIHB1YmxpYyBpc0NvbnRhaW5zKGVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgU1ZHRWxlbWVudCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAodGhpcy5ob3N0RWxlbWVudC5maXJzdENoaWxkPy5sYXN0Q2hpbGQgYXMgSFRNTEVsZW1lbnQpLmNvbnRhaW5zKGVsZW1lbnQpO1xuICB9XG5cbiAgcHVibGljIHNldExpbmUoXG4gICAgeyBwb2ludDEsIHBvaW50MiB9OiBJTGluZSxcbiAgICBzb3VyY2VTaWRlOiBFRkNvbm5lY3RhYmxlU2lkZSxcbiAgICB0YXJnZXRTaWRlOiBFRkNvbm5lY3RhYmxlU2lkZSxcbiAgKTogdm9pZCB7XG4gICAgdGhpcy5saW5lID0gTGluZUV4dGVuc2lvbnMuaW5pdGlhbGl6ZShwb2ludDEsIHBvaW50Mik7XG4gICAgY29uc3QgcGF0aFJlc3VsdCA9IHRoaXMuX2dldFBhdGhSZXN1bHQocG9pbnQxLCBzb3VyY2VTaWRlLCBwb2ludDIsIHRhcmdldFNpZGUpO1xuXG4gICAgdGhpcy5wYXRoID0gcGF0aFJlc3VsdC5wYXRoO1xuICAgIHRoaXMuX3BlbnVsdGltYXRlUG9pbnQgPSBwYXRoUmVzdWx0LnBlbnVsdGltYXRlUG9pbnQgfHwgcG9pbnQxO1xuICAgIHRoaXMuX3NlY29uZFBvaW50ID0gcGF0aFJlc3VsdC5zZWNvbmRQb2ludCB8fCBwb2ludDI7XG5cbiAgICBuZXcgQ29ubmVjdGlvbkNvbnRlbnRMYXlvdXRFbmdpbmUoKS5sYXlvdXQodGhpcy5saW5lLCBwYXRoUmVzdWx0LCB0aGlzLl9jb250ZW50cygpKTtcblxuICAgIHRoaXMuZkNvbm5lY3Rpb25DZW50ZXIoKT8ubmF0aXZlRWxlbWVudD8uc2V0QXR0cmlidXRlKFxuICAgICAgJ3N0eWxlJyxcbiAgICAgIHRoaXMuX2NyZWF0ZVRyYW5zZm9ybVN0cmluZyhwYXRoUmVzdWx0LmNvbm5lY3Rpb25DZW50ZXIpLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF9jb250ZW50cygpOiBGQ29ubmVjdGlvbkNvbnRlbnRbXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5mQ29ubmVjdGlvbkNvbnRlbnRzKCk/LnZhbHVlcygpID8/IFtdKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldFBhdGhSZXN1bHQoXG4gICAgc291cmNlOiBJUG9pbnQsXG4gICAgc291cmNlU2lkZTogRUZDb25uZWN0YWJsZVNpZGUsXG4gICAgdGFyZ2V0OiBJUG9pbnQsXG4gICAgdGFyZ2V0U2lkZTogRUZDb25uZWN0YWJsZVNpZGUsXG4gICkge1xuICAgIGNvbnN0IHJhZGl1cyA9IHRoaXMuZlJhZGl1cyA+IDAgPyB0aGlzLmZSYWRpdXMgOiAwO1xuICAgIGNvbnN0IG9mZnNldCA9IHRoaXMuZk9mZnNldCA+IDAgPyB0aGlzLmZPZmZzZXQgOiAxO1xuXG4gICAgcmV0dXJuIHRoaXMuX2Nvbm5lY3Rpb25GYWN0b3J5LmhhbmRsZSh7XG4gICAgICB0eXBlOiB0aGlzLmZUeXBlLFxuICAgICAgcGF5bG9hZDogeyBzb3VyY2UsIHNvdXJjZVNpZGUsIHRhcmdldCwgdGFyZ2V0U2lkZSwgcmFkaXVzLCBvZmZzZXQgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2NyZWF0ZVRyYW5zZm9ybVN0cmluZyhwb3NpdGlvbjogSVBvaW50LCByb3RhdGU6IG51bWJlciA9IDApOiBzdHJpbmcge1xuICAgIHJldHVybiBgcG9zaXRpb246IGFic29sdXRlOyBwb2ludGVyLWV2ZW50czogYWxsOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSByb3RhdGUoJHtyb3RhdGV9ZGVnKTsgbGVmdDogJHtwb3NpdGlvbi54fXB4OyB0b3A6ICR7cG9zaXRpb24ueX1weGA7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgbWFya0NoaWxkcmVuQXNTZWxlY3RlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmZQYXRoKCkuc2VsZWN0KCk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgdW5tYXJrQ2hpbGRyZW5Bc1NlbGVjdGVkKCk6IHZvaWQge1xuICAgIHRoaXMuZlBhdGgoKS5kZXNlbGVjdCgpO1xuICB9XG5cbiAgcHVibGljIHJlZHJhdygpOiB2b2lkIHtcbiAgICB0aGlzLmZQYXRoKCkuc2V0UGF0aCh0aGlzLnBhdGgpO1xuICAgIHRoaXMuZlNlbGVjdGlvbigpLnNldFBhdGgodGhpcy5wYXRoKTtcbiAgICB0aGlzLmZHcmFkaWVudCgpLnJlZHJhdyh0aGlzLmxpbmUpO1xuICAgIHRoaXMuZkRyYWdIYW5kbGVFbmQoKS5yZWRyYXcodGhpcy5fcGVudWx0aW1hdGVQb2ludCwgdGhpcy5saW5lLnBvaW50Mik7XG4gICAgdGhpcy5mRHJhZ0hhbmRsZVN0YXJ0KCk/LnJlZHJhdyh0aGlzLl9zZWNvbmRQb2ludCwgdGhpcy5saW5lLnBvaW50MSk7XG4gICAgdGhpcy5mVGV4dENvbXBvbmVudCgpLnJlZHJhdyh0aGlzLmxpbmUpO1xuICB9XG59XG4iXX0=
121
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jb25uZWN0aW9uLWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdGlvbi9jb21tb24vZi1jb25uZWN0aW9uLWJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGVBQWUsRUFDZixTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUVOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWlCLGNBQWMsRUFBRSxlQUFlLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFNNUUsT0FBTyxFQUFFLGVBQWUsRUFBbUIsTUFBTSxVQUFVLENBQUM7QUFDNUQsT0FBTyxFQUFFLG1CQUFtQixFQUF1QixNQUFNLGNBQWMsQ0FBQztBQUN4RSxPQUFPLEVBQ0wsaUNBQWlDLEVBQ2pDLG1DQUFtQyxHQUNwQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZUFBZSxFQUFtQixNQUFNLHFCQUFxQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTdELE9BQU8sRUFHTCxvQkFBb0IsRUFDcEIscUJBQXFCLEdBQ3RCLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzVGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOztBQUVoRixNQUFNLFVBQVUsR0FBRyxvQkFBb0IsQ0FDckMscUJBQXFCLENBQ25CO0lB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QVUsQ0FBQztJQUNoQyxDQUFDO3dHQTFLbUIsZUFBZTs0RkFBZixlQUFlLHVWQThEa0IsMEJBQTBCLHlGQUl6QixrQkFBa0IsdU1BdEJaLGVBQWUsNEZBRVAsbUJBQW1CLG1HQUUxQyxtQ0FBbUMsaUdBRTVCLGlDQUFpQyw2RkFFckMsNkJBQTZCLGlHQUVSLGVBQWU7OzRGQXREaEUsZUFBZTtrQkFEcEMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGNvbnRlbnRDaGlsZHJlbixcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBzaWduYWwsXG4gIFNpZ25hbCxcbiAgdmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElMaW5lLCBJUG9pbnQsIExpbmVFeHRlbnNpb25zLCBQb2ludEV4dGVuc2lvbnMgfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7IEVGQ29ubmVjdGlvbkJlaGF2aW9yIH0gZnJvbSAnLi9lLWYtY29ubmVjdGlvbi1iZWhhdmlvcic7XG5pbXBvcnQgeyBFRkNvbm5lY3Rpb25UeXBlIH0gZnJvbSAnLi9lLWYtY29ubmVjdGlvbi10eXBlJztcbmltcG9ydCB7IElIYXNDb25uZWN0aW9uQ29sb3IgfSBmcm9tICcuL2ktaGFzLWNvbm5lY3Rpb24tY29sb3InO1xuaW1wb3J0IHsgSUhhc0Nvbm5lY3Rpb25Gcm9tVG8gfSBmcm9tICcuL2ktaGFzLWNvbm5lY3Rpb24tZnJvbS10byc7XG5pbXBvcnQgeyBJSGFzQ29ubmVjdGlvblRleHQgfSBmcm9tICcuL2ktaGFzLWNvbm5lY3Rpb24tdGV4dCc7XG5pbXBvcnQgeyBDT05ORUNUSU9OX1BBVEgsIElDb25uZWN0aW9uUGF0aCB9IGZyb20gJy4vZi1wYXRoJztcbmltcG9ydCB7IENPTk5FQ1RJT05fR1JBRElFTlQsIElDb25uZWN0aW9uR3JhZGllbnQgfSBmcm9tICcuL2YtZ3JhZGllbnQnO1xuaW1wb3J0IHtcbiAgRkNvbm5lY3Rpb25EcmFnSGFuZGxlRW5kQ29tcG9uZW50LFxuICBGQ29ubmVjdGlvbkRyYWdIYW5kbGVTdGFydENvbXBvbmVudCxcbn0gZnJvbSAnLi9mLWRyYWctaGFuZGxlJztcbmltcG9ydCB7IEZDb25uZWN0aW9uU2VsZWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9mLXNlbGVjdGlvbic7XG5pbXBvcnQgeyBDT05ORUNUSU9OX1RFWFQsIElDb25uZWN0aW9uVGV4dCB9IGZyb20gJy4vZi1jb25uZWN0aW9uLXRleHQnO1xuaW1wb3J0IHsgRUZDb25uZWN0YWJsZVNpZGUgfSBmcm9tICcuLi8uLi9mLWNvbm5lY3RvcnMnO1xuaW1wb3J0IHsgRkNvbm5lY3Rpb25GYWN0b3J5IH0gZnJvbSAnLi4vZi1jb25uZWN0aW9uLWJ1aWxkZXInO1xuaW1wb3J0IHsgSUhhc0hvc3RFbGVtZW50IH0gZnJvbSAnLi4vLi4vaS1oYXMtaG9zdC1lbGVtZW50JztcbmltcG9ydCB7XG4gIElTZWxlY3RhYmxlLFxuICBJQ2FuQ2hhbmdlVmlzaWJpbGl0eSxcbiAgbWl4aW5DaGFuZ2VTZWxlY3Rpb24sXG4gIG1peGluQ2hhbmdlVmlzaWJpbGl0eSxcbn0gZnJvbSAnLi4vLi4vbWl4aW5zJztcbmltcG9ydCB7IEZDb25uZWN0aW9uQ2VudGVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vZi1jb25uZWN0aW9uLWNlbnRlcic7XG5pbXBvcnQgeyBDb25uZWN0aW9uQ29udGVudExheW91dEVuZ2luZSwgRkNvbm5lY3Rpb25Db250ZW50IH0gZnJvbSAnLi4vZi1jb25uZWN0aW9uLWNvbnRlbnQnO1xuaW1wb3J0IHsgRUZDb25uZWN0aW9uQ29ubmVjdGFibGVTaWRlIH0gZnJvbSAnLi9lLWYtY29ubmVjdGlvbi1jb25uZWN0YWJsZS1zaWRlJztcblxuY29uc3QgTUlYSU5fQkFTRSA9IG1peGluQ2hhbmdlU2VsZWN0aW9uKFxuICBtaXhpbkNoYW5nZVZpc2liaWxpdHkoXG4gICAgY2xhc3Mge1xuICAgICAgY29uc3RydWN0b3IocHVibGljIGhvc3RFbGVtZW50OiBIVE1MRWxlbWVudCkge31cbiAgICB9LFxuICApLFxuKTtcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRkNvbm5lY3Rpb25CYXNlXG4gIGV4dGVuZHMgTUlYSU5fQkFTRVxuICBpbXBsZW1lbnRzXG4gICAgSUhhc0hvc3RFbGVtZW50LFxuICAgIElTZWxlY3RhYmxlLFxuICAgIElDYW5DaGFuZ2VWaXNpYmlsaXR5LFxuICAgIElIYXNDb25uZWN0aW9uQ29sb3IsXG4gICAgSUhhc0Nvbm5lY3Rpb25Gcm9tVG8sXG4gICAgSUhhc0Nvbm5lY3Rpb25UZXh0XG57XG4gIHByaXZhdGUgcmVhZG9ubHkgX2Nvbm5lY3Rpb25GYWN0b3J5ID0gaW5qZWN0KEZDb25uZWN0aW9uRmFjdG9yeSk7XG5cbiAgcHVibGljIGFic3RyYWN0IG92ZXJyaWRlIGZJZDogU2lnbmFsPHN0cmluZz47XG5cbiAgcHVibGljIHJlYWRvbmx5IGZTdGFydENvbG9yID0gaW5wdXQ8c3RyaW5nPignYmxhY2snKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgZkVuZENvbG9yID0gaW5wdXQ8c3RyaW5nPignYmxhY2snKTtcblxuICBwdWJsaWMgYWJzdHJhY3QgZk91dHB1dElkOiBTaWduYWw8c3RyaW5nPjtcblxuICBwdWJsaWMgYWJzdHJhY3QgZklucHV0SWQ6IFNpZ25hbDxzdHJpbmc+O1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmUmFkaXVzOiBudW1iZXI7XG5cbiAgcHVibGljIGFic3RyYWN0IGZPZmZzZXQ6IG51bWJlcjtcblxuICBwcm90ZWN0ZWQgcGF0aDogc3RyaW5nID0gJyc7XG5cbiAgcHVibGljIGxpbmUgPSBMaW5lRXh0ZW5zaW9ucy5pbml0aWFsaXplKCk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGZSZWFzc2lnbmFibGVTdGFydDogU2lnbmFsPGJvb2xlYW4+ID0gc2lnbmFsKGZhbHNlKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgZkRyYWdnaW5nRGlzYWJsZWQ6IFNpZ25hbDxib29sZWFuPiA9IHNpZ25hbChmYWxzZSk7XG5cbiAgcHVibGljIG92ZXJyaWRlIHJlYWRvbmx5IGZTZWxlY3Rpb25EaXNhYmxlZDogU2lnbmFsPGJvb2xlYW4+ID0gc2lnbmFsKGZhbHNlKTtcblxuICBwdWJsaWMgYWJzdHJhY3QgYm91bmRpbmdFbGVtZW50OiBIVE1MRWxlbWVudCB8IFNWR0VsZW1lbnQ7XG5cbiAgcHVibGljIGFic3RyYWN0IGZCZWhhdmlvcjogRUZDb25uZWN0aW9uQmVoYXZpb3I7XG5cbiAgcHVibGljIGFic3RyYWN0IGZUeXBlOiBFRkNvbm5lY3Rpb25UeXBlIHwgc3RyaW5nO1xuXG4gIHB1YmxpYyByZWFkb25seSBmRGVmcyA9IHZpZXdDaGlsZC5yZXF1aXJlZDxFbGVtZW50UmVmPFNWR0RlZnNFbGVtZW50Pj4oJ2RlZnMnKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgZlBhdGggPSB2aWV3Q2hpbGQucmVxdWlyZWQ8SUNvbm5lY3Rpb25QYXRoPihDT05ORUNUSU9OX1BBVEgpO1xuXG4gIHB1YmxpYyByZWFkb25seSBmR3JhZGllbnQgPSB2aWV3Q2hpbGQucmVxdWlyZWQ8SUNvbm5lY3Rpb25HcmFkaWVudD4oQ09OTkVDVElPTl9HUkFESUVOVCk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGZEcmFnSGFuZGxlU3RhcnQgPSB2aWV3Q2hpbGQoRkNvbm5lY3Rpb25EcmFnSGFuZGxlU3RhcnRDb21wb25lbnQpO1xuXG4gIHB1YmxpYyByZWFkb25seSBmRHJhZ0hhbmRsZUVuZCA9IHZpZXdDaGlsZC5yZXF1aXJlZChGQ29ubmVjdGlvbkRyYWdIYW5kbGVFbmRDb21wb25lbnQpO1xuXG4gIHB1YmxpYyByZWFkb25seSBmU2VsZWN0aW9uID0gdmlld0NoaWxkLnJlcXVpcmVkKEZDb25uZWN0aW9uU2VsZWN0aW9uQ29tcG9uZW50KTtcblxuICBwdWJsaWMgcmVhZG9ubHkgZlRleHRDb21wb25lbnQgPSB2aWV3Q2hpbGQucmVxdWlyZWQ8SUNvbm5lY3Rpb25UZXh0PihDT05ORUNUSU9OX1RFWFQpO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmVGV4dDogc3RyaW5nO1xuXG4gIHB1YmxpYyBhYnN0cmFjdCBmVGV4dFN0YXJ0T2Zmc2V0OiBzdHJpbmc7XG5cbiAgcHVibGljIHJlYWRvbmx5IGZDb25uZWN0aW9uQ2VudGVyID0gdmlld0NoaWxkPEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+PignZkNvbm5lY3Rpb25DZW50ZXInKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgZkNvbm5lY3Rpb25DZW50ZXJzID0gY29udGVudENoaWxkcmVuKEZDb25uZWN0aW9uQ2VudGVyRGlyZWN0aXZlLCB7XG4gICAgZGVzY2VuZGFudHM6IHRydWUsXG4gIH0pO1xuXG4gIHB1YmxpYyByZWFkb25seSBmQ29ubmVjdGlvbkNvbnRlbnRzID0gY29udGVudENoaWxkcmVuKEZDb25uZWN0aW9uQ29udGVudCwge1xuICAgIGRlc2NlbmRhbnRzOiB0cnVlLFxuICB9KTtcblxuICBwdWJsaWMgcmVhZG9ubHkgZklucHV0U2lkZTogU2lnbmFsPEVGQ29ubmVjdGlvbkNvbm5lY3RhYmxlU2lkZT4gPSBzaWduYWwoXG4gICAgRUZDb25uZWN0aW9uQ29ubmVjdGFibGVTaWRlLkRFRkFVTFQsXG4gICk7XG5cbiAgcHJpdmF0ZSBfc291cmNlU2lkZSA9IEVGQ29ubmVjdGFibGVTaWRlLkFVVE87XG5cbiAgcHVibGljIHJlYWRvbmx5IGZPdXRwdXRTaWRlOiBTaWduYWw8RUZDb25uZWN0aW9uQ29ubmVjdGFibGVTaWRlPiA9IHNpZ25hbChcbiAgICBFRkNvbm5lY3Rpb25Db25uZWN0YWJsZVNpZGUuREVGQVVMVCxcbiAgKTtcblxuICBwcml2YXRlIF90YXJnZXRTaWRlID0gRUZDb25uZWN0YWJsZVNpZGUuQVVUTztcblxuICBwcml2YXRlIF9wZW51bHRpbWF0ZVBvaW50ID0gUG9pbnRFeHRlbnNpb25zLmluaXRpYWxpemUoKTtcbiAgcHJpdmF0ZSBfc2Vjb25kUG9pbnQgPSBQb2ludEV4dGVuc2lvbnMuaW5pdGlhbGl6ZSgpO1xuXG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcihpbmplY3QoRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pLm5hdGl2ZUVsZW1lbnQpO1xuICB9XG5cbiAgcHVibGljIGluaXRpYWxpemUoKTogdm9pZCB7XG4gICAgdGhpcy5mUGF0aCgpLmluaXRpYWxpemUoKTtcbiAgICB0aGlzLmZHcmFkaWVudCgpLmluaXRpYWxpemUoKTtcbiAgICB0aGlzLnJlZHJhdygpO1xuICB9XG5cbiAgcHVibGljIGlzQ29udGFpbnMoZWxlbWVudDogSFRNTEVsZW1lbnQgfCBTVkdFbGVtZW50KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICh0aGlzLmhvc3RFbGVtZW50LmZpcnN0Q2hpbGQ/Lmxhc3RDaGlsZCBhcyBIVE1MRWxlbWVudCkuY29udGFpbnMoZWxlbWVudCk7XG4gIH1cblxuICBwdWJsaWMgc2V0TGluZSh7IHBvaW50MSwgcG9pbnQyIH06IElMaW5lKTogdm9pZCB7XG4gICAgdGhpcy5saW5lID0gTGluZUV4dGVuc2lvbnMuaW5pdGlhbGl6ZShwb2ludDEsIHBvaW50Mik7XG5cbiAgICBjb25zdCBwYXRoUmVzdWx0ID0gdGhpcy5fZ2V0UGF0aFJlc3VsdChwb2ludDEsIHBvaW50Mik7XG5cbiAgICB0aGlzLnBhdGggPSBwYXRoUmVzdWx0LnBhdGg7XG4gICAgdGhpcy5fcGVudWx0aW1hdGVQb2ludCA9IHBhdGhSZXN1bHQucGVudWx0aW1hdGVQb2ludCB8fCBwb2ludDE7XG4gICAgdGhpcy5fc2Vjb25kUG9pbnQgPSBwYXRoUmVzdWx0LnNlY29uZFBvaW50IHx8IHBvaW50MjtcblxuICAgIG5ldyBDb25uZWN0aW9uQ29udGVudExheW91dEVuZ2luZSgpLmxheW91dCh0aGlzLmxpbmUsIHBhdGhSZXN1bHQsIHRoaXMuX2NvbnRlbnRzKCkpO1xuXG4gICAgdGhpcy5mQ29ubmVjdGlvbkNlbnRlcigpPy5uYXRpdmVFbGVtZW50Py5zZXRBdHRyaWJ1dGUoXG4gICAgICAnc3R5bGUnLFxuICAgICAgdGhpcy5fY3JlYXRlVHJhbnNmb3JtU3RyaW5nKHBhdGhSZXN1bHQuY29ubmVjdGlvbkNlbnRlciksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NvbnRlbnRzKCk6IEZDb25uZWN0aW9uQ29udGVudFtdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmZDb25uZWN0aW9uQ29udGVudHMoKT8udmFsdWVzKCkgPz8gW10pO1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0UGF0aFJlc3VsdChzb3VyY2U6IElQb2ludCwgdGFyZ2V0OiBJUG9pbnQpIHtcbiAgICBjb25zdCByYWRpdXMgPSB0aGlzLmZSYWRpdXMgPiAwID8gdGhpcy5mUmFkaXVzIDogMDtcbiAgICBjb25zdCBvZmZzZXQgPSB0aGlzLmZPZmZzZXQgPiAwID8gdGhpcy5mT2Zmc2V0IDogMTtcblxuICAgIHJldHVybiB0aGlzLl9jb25uZWN0aW9uRmFjdG9yeS5oYW5kbGUoe1xuICAgICAgdHlwZTogdGhpcy5mVHlwZSxcbiAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgc291cmNlLFxuICAgICAgICBzb3VyY2VTaWRlOiB0aGlzLl9zb3VyY2VTaWRlLFxuICAgICAgICB0YXJnZXQsXG4gICAgICAgIHRhcmdldFNpZGU6IHRoaXMuX3RhcmdldFNpZGUsXG4gICAgICAgIHJhZGl1cyxcbiAgICAgICAgb2Zmc2V0LFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2NyZWF0ZVRyYW5zZm9ybVN0cmluZyhwb3NpdGlvbjogSVBvaW50LCByb3RhdGU6IG51bWJlciA9IDApOiBzdHJpbmcge1xuICAgIHJldHVybiBgcG9zaXRpb246IGFic29sdXRlOyBwb2ludGVyLWV2ZW50czogYWxsOyB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSByb3RhdGUoJHtyb3RhdGV9ZGVnKTsgbGVmdDogJHtwb3NpdGlvbi54fXB4OyB0b3A6ICR7cG9zaXRpb24ueX1weGA7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgbWFya0NoaWxkcmVuQXNTZWxlY3RlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmZQYXRoKCkuc2VsZWN0KCk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgdW5tYXJrQ2hpbGRyZW5Bc1NlbGVjdGVkKCk6IHZvaWQge1xuICAgIHRoaXMuZlBhdGgoKS5kZXNlbGVjdCgpO1xuICB9XG5cbiAgcHVibGljIHJlZHJhdygpOiB2b2lkIHtcbiAgICB0aGlzLmZQYXRoKCkuc2V0UGF0aCh0aGlzLnBhdGgpO1xuICAgIHRoaXMuZlNlbGVjdGlvbigpLnNldFBhdGgodGhpcy5wYXRoKTtcbiAgICB0aGlzLmZHcmFkaWVudCgpLnJlZHJhdyh0aGlzLmxpbmUpO1xuICAgIHRoaXMuZkRyYWdIYW5kbGVFbmQoKS5yZWRyYXcodGhpcy5fcGVudWx0aW1hdGVQb2ludCwgdGhpcy5saW5lLnBvaW50Mik7XG4gICAgdGhpcy5mRHJhZ0hhbmRsZVN0YXJ0KCk/LnJlZHJhdyh0aGlzLl9zZWNvbmRQb2ludCwgdGhpcy5saW5lLnBvaW50MSk7XG4gICAgdGhpcy5mVGV4dENvbXBvbmVudCgpLnJlZHJhdyh0aGlzLmxpbmUpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFwcGxpZXMgdGhlIHJlc29sdmVkIHNpZGVzIHRvIHRoZSBjb25uZWN0aW9uLiBEb24ndCBjYWxsIHRoaXMgbWV0aG9kIGRpcmVjdGx5OyBpdCdzIHVzZWQgaW50ZXJuYWxseS5cbiAgICpcbiAgICogQHBhcmFtIHNvdXJjZVNpZGUgVGhlIHJlc29sdmVkIHNpZGUgZm9yIHRoZSBzb3VyY2UgZWxlbWVudC5cbiAgICogQHBhcmFtIHRhcmdldFNpZGUgVGhlIHJlc29sdmVkIHNpZGUgZm9yIHRoZSB0YXJnZXQgZWxlbWVudC5cbiAgICovXG4gIHB1YmxpYyBfYXBwbHlSZXNvbHZlZFNpZGVzVG9Db25uZWN0aW9uKFxuICAgIHNvdXJjZVNpZGU6IEVGQ29ubmVjdGFibGVTaWRlLFxuICAgIHRhcmdldFNpZGU6IEVGQ29ubmVjdGFibGVTaWRlLFxuICApOiB2b2lkIHtcbiAgICB0aGlzLl9zb3VyY2VTaWRlID0gc291cmNlU2lkZTtcbiAgICB0aGlzLl90YXJnZXRTaWRlID0gdGFyZ2V0U2lkZTtcbiAgfVxufVxuIl19
@@ -6,9 +6,10 @@ export * from './f-path';
6
6
  export * from './f-selection';
7
7
  export * from './f-connection-base';
8
8
  export * from './e-f-connection-behavior';
9
+ export * from './e-f-connection-connectable-side';
9
10
  export * from './e-f-connection-type';
10
11
  export * from './f-connection-identifiers';
11
12
  export * from './i-has-connection-color';
12
13
  export * from './i-has-connection-from-to';
13
14
  export * from './i-has-connection-text';
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdGlvbi9jb21tb24vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxVQUFVLENBQUM7QUFFekIsY0FBYyxxQkFBcUIsQ0FBQztBQUVwQyxjQUFjLGlCQUFpQixDQUFDO0FBRWhDLGNBQWMsY0FBYyxDQUFDO0FBRTdCLGNBQWMsVUFBVSxDQUFDO0FBRXpCLGNBQWMsZUFBZSxDQUFDO0FBRTlCLGNBQWMscUJBQXFCLENBQUM7QUFFcEMsY0FBYywyQkFBMkIsQ0FBQztBQUUxQyxjQUFjLHVCQUF1QixDQUFDO0FBRXRDLGNBQWMsNEJBQTRCLENBQUM7QUFFM0MsY0FBYywwQkFBMEIsQ0FBQztBQUV6QyxjQUFjLDRCQUE0QixDQUFDO0FBRTNDLGNBQWMseUJBQXlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2RvbWFpbic7XG5cbmV4cG9ydCAqIGZyb20gJy4vZi1jb25uZWN0aW9uLXRleHQnO1xuXG5leHBvcnQgKiBmcm9tICcuL2YtZHJhZy1oYW5kbGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2YtZ3JhZGllbnQnO1xuXG5leHBvcnQgKiBmcm9tICcuL2YtcGF0aCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vZi1zZWxlY3Rpb24nO1xuXG5leHBvcnQgKiBmcm9tICcuL2YtY29ubmVjdGlvbi1iYXNlJztcblxuZXhwb3J0ICogZnJvbSAnLi9lLWYtY29ubmVjdGlvbi1iZWhhdmlvcic7XG5cbmV4cG9ydCAqIGZyb20gJy4vZS1mLWNvbm5lY3Rpb24tdHlwZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vZi1jb25uZWN0aW9uLWlkZW50aWZpZXJzJztcblxuZXhwb3J0ICogZnJvbSAnLi9pLWhhcy1jb25uZWN0aW9uLWNvbG9yJztcblxuZXhwb3J0ICogZnJvbSAnLi9pLWhhcy1jb25uZWN0aW9uLWZyb20tdG8nO1xuXG5leHBvcnQgKiBmcm9tICcuL2ktaGFzLWNvbm5lY3Rpb24tdGV4dCc7XG4iXX0=
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdGlvbi9jb21tb24vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxVQUFVLENBQUM7QUFFekIsY0FBYyxxQkFBcUIsQ0FBQztBQUVwQyxjQUFjLGlCQUFpQixDQUFDO0FBRWhDLGNBQWMsY0FBYyxDQUFDO0FBRTdCLGNBQWMsVUFBVSxDQUFDO0FBRXpCLGNBQWMsZUFBZSxDQUFDO0FBRTlCLGNBQWMscUJBQXFCLENBQUM7QUFFcEMsY0FBYywyQkFBMkIsQ0FBQztBQUUxQyxjQUFjLG1DQUFtQyxDQUFDO0FBRWxELGNBQWMsdUJBQXVCLENBQUM7QUFFdEMsY0FBYyw0QkFBNEIsQ0FBQztBQUUzQyxjQUFjLDBCQUEwQixDQUFDO0FBRXpDLGNBQWMsNEJBQTRCLENBQUM7QUFFM0MsY0FBYyx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZG9tYWluJztcblxuZXhwb3J0ICogZnJvbSAnLi9mLWNvbm5lY3Rpb24tdGV4dCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vZi1kcmFnLWhhbmRsZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vZi1ncmFkaWVudCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vZi1wYXRoJztcblxuZXhwb3J0ICogZnJvbSAnLi9mLXNlbGVjdGlvbic7XG5cbmV4cG9ydCAqIGZyb20gJy4vZi1jb25uZWN0aW9uLWJhc2UnO1xuXG5leHBvcnQgKiBmcm9tICcuL2UtZi1jb25uZWN0aW9uLWJlaGF2aW9yJztcblxuZXhwb3J0ICogZnJvbSAnLi9lLWYtY29ubmVjdGlvbi1jb25uZWN0YWJsZS1zaWRlJztcblxuZXhwb3J0ICogZnJvbSAnLi9lLWYtY29ubmVjdGlvbi10eXBlJztcblxuZXhwb3J0ICogZnJvbSAnLi9mLWNvbm5lY3Rpb24taWRlbnRpZmllcnMnO1xuXG5leHBvcnQgKiBmcm9tICcuL2ktaGFzLWNvbm5lY3Rpb24tY29sb3InO1xuXG5leHBvcnQgKiBmcm9tICcuL2ktaGFzLWNvbm5lY3Rpb24tZnJvbS10byc7XG5cbmV4cG9ydCAqIGZyb20gJy4vaS1oYXMtY29ubmVjdGlvbi10ZXh0JztcbiJdfQ==
@@ -1,5 +1,5 @@
1
1
  import { booleanAttribute, ChangeDetectionStrategy, Component, inject, input, Input, numberAttribute, } from '@angular/core';
2
- import { EFConnectionBehavior, EFConnectionType } from '../common';
2
+ import { EFConnectionBehavior, EFConnectionConnectableSide, EFConnectionType } from '../common';
3
3
  import { NotifyDataChangedRequest } from '../../f-storage';
4
4
  import { F_CONNECTION } from '../common/f-connection.injection-token';
5
5
  //TODO: Need to deal with cyclic dependencies, since in some cases an error occurs when importing them ../common
@@ -40,6 +40,16 @@ export class FConnectionComponent extends FConnectionBase {
40
40
  alias: 'fReassignDisabled',
41
41
  transform: booleanAttribute,
42
42
  });
43
+ fInputSide = input(EFConnectionConnectableSide.DEFAULT, {
44
+ transform: (x) => {
45
+ return castToEnum(x, 'fInputSide', EFConnectionConnectableSide);
46
+ },
47
+ });
48
+ fOutputSide = input(EFConnectionConnectableSide.DEFAULT, {
49
+ transform: (x) => {
50
+ return castToEnum(x, 'fOutputSide', EFConnectionConnectableSide);
51
+ },
52
+ });
43
53
  get boundingElement() {
44
54
  return this.fPath().hostElement;
45
55
  }
@@ -54,7 +64,7 @@ export class FConnectionComponent extends FConnectionBase {
54
64
  this._mediator.execute(new RemoveConnectionFromStoreRequest(this));
55
65
  }
56
66
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FConnectionComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
57
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: FConnectionComponent, selector: "f-connection", inputs: { fId: { classPropertyName: "fId", publicName: "fConnectionId", isSignal: true, isRequired: false, transformFunction: null }, fText: { classPropertyName: "fText", publicName: "fText", isSignal: false, isRequired: false, transformFunction: null }, fTextStartOffset: { classPropertyName: "fTextStartOffset", publicName: "fTextStartOffset", isSignal: false, isRequired: false, transformFunction: null }, fOutputId: { classPropertyName: "fOutputId", publicName: "fOutputId", isSignal: true, isRequired: false, transformFunction: null }, fInputId: { classPropertyName: "fInputId", publicName: "fInputId", isSignal: true, isRequired: false, transformFunction: null }, fRadius: { classPropertyName: "fRadius", publicName: "fRadius", isSignal: false, isRequired: false, transformFunction: numberAttribute }, fOffset: { classPropertyName: "fOffset", publicName: "fOffset", isSignal: false, isRequired: false, transformFunction: numberAttribute }, fBehavior: { classPropertyName: "fBehavior", publicName: "fBehavior", isSignal: false, isRequired: false, transformFunction: (value) => castToEnum(value, 'fBehavior', EFConnectionBehavior) }, fType: { classPropertyName: "fType", publicName: "fType", isSignal: false, isRequired: false, transformFunction: null }, fSelectionDisabled: { classPropertyName: "fSelectionDisabled", publicName: "fSelectionDisabled", isSignal: true, isRequired: false, transformFunction: null }, fReassignableStart: { classPropertyName: "fReassignableStart", publicName: "fReassignableStart", isSignal: true, isRequired: false, transformFunction: null }, fDraggingDisabled: { classPropertyName: "fDraggingDisabled", publicName: "fReassignDisabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.id": "fId()", "class.f-connection-selection-disabled": "fSelectionDisabled()", "class.f-connection-reassign-disabled": "fDraggingDisabled()" }, classAttribute: "f-component f-connection" }, providers: [{ provide: F_CONNECTION, useExisting: FConnectionComponent }], exportAs: ["fComponent"], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<svg\n xmlns=\"http://www.w3.org/2000/svg\"\n style=\"overflow: visible; display: block; vertical-align: middle;\"\n>\n <defs #defs></defs>\n <ng-content></ng-content>\n <g class=\"f-connection-group\">\n <linearGradient fConnectionGradient></linearGradient>\n <path fConnectionSelection [attr.d]=\"path\"></path>\n <g>\n <path f-connection-path [attr.d]=\"path\"></path>\n @if (fReassignableStart()) {\n <circle f-connection-drag-handle-start r=\"8\"></circle>\n }\n <circle f-connection-drag-handle-end r=\"8\"></circle>\n </g>\n <text f-connection-text></text>\n </g>\n</svg>\n@if (fConnectionCenters().length) {\n <div #fConnectionCenter class=\"f-connection-center\">\n <ng-content select=\"[fConnectionCenter]\"></ng-content>\n </div>\n}\n\n@if (fConnectionContents().length) {\n <ng-content select=\"[fConnectionContent]\"></ng-content>\n}\n", styles: [":host{pointer-events:none;position:absolute}:host svg{overflow:visible}:host svg .f-connection-group{pointer-events:all}:host .f-connection-center,:host .f-connection-content{pointer-events:all}\n"], dependencies: [{ kind: "component", type: i1.FConnectionTextComponent, selector: "text[f-connection-text]" }, { kind: "component", type: i2.FConnectionDragHandleStartComponent, selector: "circle[f-connection-drag-handle-start]" }, { kind: "component", type: i3.FConnectionDragHandleEndComponent, selector: "circle[f-connection-drag-handle-end]" }, { kind: "component", type: i4.FConnectionGradientComponent, selector: "linearGradient[fConnectionGradient]" }, { kind: "component", type: i5.FConnectionPathComponent, selector: "path[f-connection-path]" }, { kind: "component", type: i6.FConnectionSelectionComponent, selector: "path[fConnectionSelection]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
67
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: FConnectionComponent, selector: "f-connection", inputs: { fId: { classPropertyName: "fId", publicName: "fConnectionId", isSignal: true, isRequired: false, transformFunction: null }, fText: { classPropertyName: "fText", publicName: "fText", isSignal: false, isRequired: false, transformFunction: null }, fTextStartOffset: { classPropertyName: "fTextStartOffset", publicName: "fTextStartOffset", isSignal: false, isRequired: false, transformFunction: null }, fOutputId: { classPropertyName: "fOutputId", publicName: "fOutputId", isSignal: true, isRequired: false, transformFunction: null }, fInputId: { classPropertyName: "fInputId", publicName: "fInputId", isSignal: true, isRequired: false, transformFunction: null }, fRadius: { classPropertyName: "fRadius", publicName: "fRadius", isSignal: false, isRequired: false, transformFunction: numberAttribute }, fOffset: { classPropertyName: "fOffset", publicName: "fOffset", isSignal: false, isRequired: false, transformFunction: numberAttribute }, fBehavior: { classPropertyName: "fBehavior", publicName: "fBehavior", isSignal: false, isRequired: false, transformFunction: (value) => castToEnum(value, 'fBehavior', EFConnectionBehavior) }, fType: { classPropertyName: "fType", publicName: "fType", isSignal: false, isRequired: false, transformFunction: null }, fSelectionDisabled: { classPropertyName: "fSelectionDisabled", publicName: "fSelectionDisabled", isSignal: true, isRequired: false, transformFunction: null }, fReassignableStart: { classPropertyName: "fReassignableStart", publicName: "fReassignableStart", isSignal: true, isRequired: false, transformFunction: null }, fDraggingDisabled: { classPropertyName: "fDraggingDisabled", publicName: "fReassignDisabled", isSignal: true, isRequired: false, transformFunction: null }, fInputSide: { classPropertyName: "fInputSide", publicName: "fInputSide", isSignal: true, isRequired: false, transformFunction: null }, fOutputSide: { classPropertyName: "fOutputSide", publicName: "fOutputSide", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.id": "fId()", "class.f-connection-selection-disabled": "fSelectionDisabled()", "class.f-connection-reassign-disabled": "fDraggingDisabled()" }, classAttribute: "f-component f-connection" }, providers: [{ provide: F_CONNECTION, useExisting: FConnectionComponent }], exportAs: ["fComponent"], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<svg\n xmlns=\"http://www.w3.org/2000/svg\"\n style=\"overflow: visible; display: block; vertical-align: middle;\"\n>\n <defs #defs></defs>\n <ng-content></ng-content>\n <g class=\"f-connection-group\">\n <linearGradient fConnectionGradient></linearGradient>\n <path fConnectionSelection [attr.d]=\"path\"></path>\n <g>\n <path f-connection-path [attr.d]=\"path\"></path>\n @if (fReassignableStart()) {\n <circle f-connection-drag-handle-start r=\"8\"></circle>\n }\n <circle f-connection-drag-handle-end r=\"8\"></circle>\n </g>\n <text f-connection-text></text>\n </g>\n</svg>\n@if (fConnectionCenters().length) {\n <div #fConnectionCenter class=\"f-connection-center\">\n <ng-content select=\"[fConnectionCenter]\"></ng-content>\n </div>\n}\n\n@if (fConnectionContents().length) {\n <ng-content select=\"[fConnectionContent]\"></ng-content>\n}\n", styles: [":host{pointer-events:none;position:absolute}:host svg{overflow:visible}:host svg .f-connection-group{pointer-events:all}:host .f-connection-center,:host .f-connection-content{pointer-events:all}\n"], dependencies: [{ kind: "component", type: i1.FConnectionTextComponent, selector: "text[f-connection-text]" }, { kind: "component", type: i2.FConnectionDragHandleStartComponent, selector: "circle[f-connection-drag-handle-start]" }, { kind: "component", type: i3.FConnectionDragHandleEndComponent, selector: "circle[f-connection-drag-handle-end]" }, { kind: "component", type: i4.FConnectionGradientComponent, selector: "linearGradient[fConnectionGradient]" }, { kind: "component", type: i5.FConnectionPathComponent, selector: "path[f-connection-path]" }, { kind: "component", type: i6.FConnectionSelectionComponent, selector: "path[fConnectionSelection]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
58
68
  }
59
69
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FConnectionComponent, decorators: [{
60
70
  type: Component,
@@ -80,4 +90,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
80
90
  }], fType: [{
81
91
  type: Input
82
92
  }] } });
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jb25uZWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1jb25uZWN0aW9uL2YtY29ubmVjdGlvbi9mLWNvbm5lY3Rpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNvbm5lY3Rpb24vZi1jb25uZWN0aW9uL2YtY29ubmVjdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsTUFBTSxFQUNOLEtBQUssRUFDTCxLQUFLLEVBQ0wsZUFBZSxHQUloQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDbkUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3RFLGdIQUFnSDtBQUNoSCx3RUFBd0U7QUFDeEUsZ0RBQWdEO0FBQ2hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDN0YsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7Ozs7Ozs7QUFFOUMsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDO0FBZ0JqQixNQUFNLE9BQU8sb0JBQXFCLFNBQVEsZUFBZTtJQUN2QyxHQUFHLEdBQUcsS0FBSyxDQUFTLGdCQUFnQixRQUFR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RUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxXQUFXLEVBQUUsb0JBQW9CLENBQUMsRUFBRTtnQkFJOUUsS0FBSztzQkFEcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGJvb2xlYW5BdHRyaWJ1dGUsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIGluamVjdCxcbiAgaW5wdXQsXG4gIElucHV0LFxuICBudW1iZXJBdHRyaWJ1dGUsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRUZDb25uZWN0aW9uQmVoYXZpb3IsIEVGQ29ubmVjdGlvblR5cGUgfSBmcm9tICcuLi9jb21tb24nO1xuaW1wb3J0IHsgTm90aWZ5RGF0YUNoYW5nZWRSZXF1ZXN0IH0gZnJvbSAnLi4vLi4vZi1zdG9yYWdlJztcbmltcG9ydCB7IEZfQ09OTkVDVElPTiB9IGZyb20gJy4uL2NvbW1vbi9mLWNvbm5lY3Rpb24uaW5qZWN0aW9uLXRva2VuJztcbi8vVE9ETzogTmVlZCB0byBkZWFsIHdpdGggY3ljbGljIGRlcGVuZGVuY2llcywgc2luY2UgaW4gc29tZSBjYXNlcyBhbiBlcnJvciBvY2N1cnMgd2hlbiBpbXBvcnRpbmcgdGhlbSAuLi9jb21tb25cbi8vIFR5cGVFcnJvcjogQ2xhc3MgZXh0ZW5kcyB2YWx1ZSB1bmRlZmluZWQgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbFxuLy8gYXQgZi1jb25uZWN0aW9uLWZvci1jcmVhdGUuY29tcG9uZW50LnRzOjM0OjExXG5pbXBvcnQgeyBGQ29ubmVjdGlvbkJhc2UgfSBmcm9tICcuLi9jb21tb24vZi1jb25uZWN0aW9uLWJhc2UnO1xuaW1wb3J0IHsgY2FzdFRvRW51bSB9IGZyb20gJ0Bmb2JsZXgvdXRpbHMnO1xuaW1wb3J0IHsgRk1lZGlhdG9yIH0gZnJvbSAnQGZvYmxleC9tZWRpYXRvcic7XG5pbXBvcnQgeyBBZGRDb25uZWN0aW9uVG9TdG9yZVJlcXVlc3QsIFJlbW92ZUNvbm5lY3Rpb25Gcm9tU3RvcmVSZXF1ZXN0IH0gZnJvbSAnLi4vLi4vZG9tYWluJztcbmltcG9ydCB7IHN0cmluZ0F0dHJpYnV0ZSB9IGZyb20gJy4uLy4uL3V0aWxzJztcblxubGV0IHVuaXF1ZUlkID0gMDtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZi1jb25uZWN0aW9uJyxcbiAgZXhwb3J0QXM6ICdmQ29tcG9uZW50JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2YtY29ubmVjdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2YtY29ubmVjdGlvbi5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaG9zdDoge1xuICAgICdbYXR0ci5pZF0nOiAnZklkKCknLFxuICAgIGNsYXNzOiAnZi1jb21wb25lbnQgZi1jb25uZWN0aW9uJyxcbiAgICAnW2NsYXNzLmYtY29ubmVjdGlvbi1zZWxlY3Rpb24tZGlzYWJsZWRdJzogJ2ZTZWxlY3Rpb25EaXNhYmxlZCgpJyxcbiAgICAnW2NsYXNzLmYtY29ubmVjdGlvbi1yZWFzc2lnbi1kaXNhYmxlZF0nOiAnZkRyYWdnaW5nRGlzYWJsZWQoKScsXG4gIH0sXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogRl9DT05ORUNUSU9OLCB1c2VFeGlzdGluZzogRkNvbm5lY3Rpb25Db21wb25lbnQgfV0sXG59KVxuZXhwb3J0IGNsYXNzIEZDb25uZWN0aW9uQ29tcG9uZW50IGV4dGVuZHMgRkNvbm5lY3Rpb25CYXNlIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gIHB1YmxpYyBvdmVycmlkZSBmSWQgPSBpbnB1dDxzdHJpbmc+KGBmLWNvbm5lY3Rpb24tJHt1bmlxdWVJZCsrfWAsIHsgYWxpYXM6ICdmQ29ubmVjdGlvbklkJyB9KTtcblxuICAvKiogQGRlcHJlY2F0ZWQgW2ZUZXh0XSBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdjE4LjAuMC4gVXNlIEZDb25uZWN0aW9uQ29udGVudCBkaXJlY3RpdmUgaW5zdGVhZC4gKi9cbiAgQElucHV0KClcbiAgcHVibGljIG92ZXJyaWRlIGZUZXh0OiBzdHJpbmcgPSAnJztcblxuICAvKiogQGRlcHJlY2F0ZWQgW2ZUZXh0U3RhcnRPZmZzZXRdIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB2MTguMC4wLiBVc2UgRkNvbm5lY3Rpb25Db250ZW50IGRpcmVjdGl2ZSBpbnN0ZWFkLiAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgb3ZlcnJpZGUgZlRleHRTdGFydE9mZnNldDogc3RyaW5nID0gJyc7XG5cbiAgcHVibGljIG92ZXJyaWRlIGZPdXRwdXRJZCA9IGlucHV0PHN0cmluZywgdW5rbm93bj4oJycsIHtcbiAgICB0cmFuc2Zvcm06ICh2YWx1ZSkgPT4gc3RyaW5nQXR0cmlidXRlKHZhbHVlKSB8fCAnJyxcbiAgfSk7XG5cbiAgcHVibGljIG92ZXJyaWRlIGZJbnB1dElkID0gaW5wdXQ8c3RyaW5nLCB1bmtub3duPignJywge1xuICAgIHRyYW5zZm9ybTogKHZhbHVlKSA9PiBzdHJpbmdBdHRyaWJ1dGUodmFsdWUpIHx8ICcnLFxuICB9KTtcblxuICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KVxuICBwdWJsaWMgb3ZlcnJpZGUgZlJhZGl1czogbnVtYmVyID0gODtcblxuICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KVxuICBwdWJsaWMgb3ZlcnJpZGUgZk9mZnNldDogbnVtYmVyID0gMTI7XG5cbiAgQElucHV0KHsgdHJhbnNmb3JtOiAodmFsdWU6IHVua25vd24pID0+IGNhc3RUb0VudW0odmFsdWUsICdmQmVoYXZpb3InLCBFRkNvbm5lY3Rpb25CZWhhdmlvcikgfSlcbiAgcHVibGljIG92ZXJyaWRlIGZCZWhhdmlvcjogRUZDb25uZWN0aW9uQmVoYXZpb3IgPSBFRkNvbm5lY3Rpb25CZWhhdmlvci5GSVhFRDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgb3ZlcnJpZGUgZlR5cGU6IEVGQ29ubmVjdGlvblR5cGUgfCBzdHJpbmcgPSBFRkNvbm5lY3Rpb25UeXBlLlNUUkFJR0hUO1xuXG4gIHB1YmxpYyBvdmVycmlkZSBmU2VsZWN0aW9uRGlzYWJsZWQgPSBpbnB1dChmYWxzZSwgeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSk7XG5cbiAgcHVibGljIG92ZXJyaWRlIGZSZWFzc2lnbmFibGVTdGFydCA9IGlucHV0KGZhbHNlLCB7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KTtcblxuICBwdWJsaWMgb3ZlcnJpZGUgZkRyYWdnaW5nRGlzYWJsZWQgPSBpbnB1dChmYWxzZSwge1xuICAgIGFsaWFzOiAnZlJlYXNzaWduRGlzYWJsZWQnLFxuICAgIHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSxcbiAgfSk7XG5cbiAgcHVibGljIG92ZXJyaWRlIGdldCBib3VuZGluZ0VsZW1lbnQoKTogSFRNTEVsZW1lbnQgfCBTVkdFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5mUGF0aCgpLmhvc3RFbGVtZW50O1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfbWVkaWF0b3IgPSBpbmplY3QoRk1lZGlhdG9yKTtcblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZShuZXcgQWRkQ29ubmVjdGlvblRvU3RvcmVSZXF1ZXN0KHRoaXMpKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLl9tZWRpYXRvci5leGVjdXRlKG5ldyBOb3RpZnlEYXRhQ2hhbmdlZFJlcXVlc3QoKSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZShuZXcgUmVtb3ZlQ29ubmVjdGlvbkZyb21TdG9yZVJlcXVlc3QodGhpcykpO1xuICB9XG59XG4iLCI8c3ZnXG4gIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICBzdHlsZT1cIm92ZXJmbG93OiB2aXNpYmxlOyBkaXNwbGF5OiBibG9jazsgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcIlxuPlxuICA8ZGVmcyAjZGVmcz48L2RlZnM+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPGcgY2xhc3M9XCJmLWNvbm5lY3Rpb24tZ3JvdXBcIj5cbiAgICA8bGluZWFyR3JhZGllbnQgZkNvbm5lY3Rpb25HcmFkaWVudD48L2xpbmVhckdyYWRpZW50PlxuICAgIDxwYXRoIGZDb25uZWN0aW9uU2VsZWN0aW9uIFthdHRyLmRdPVwicGF0aFwiPjwvcGF0aD5cbiAgICA8Zz5cbiAgICAgIDxwYXRoIGYtY29ubmVjdGlvbi1wYXRoIFthdHRyLmRdPVwicGF0aFwiPjwvcGF0aD5cbiAgICAgIEBpZiAoZlJlYXNzaWduYWJsZVN0YXJ0KCkpIHtcbiAgICAgICAgPGNpcmNsZSBmLWNvbm5lY3Rpb24tZHJhZy1oYW5kbGUtc3RhcnQgcj1cIjhcIj48L2NpcmNsZT5cbiAgICAgIH1cbiAgICAgIDxjaXJjbGUgZi1jb25uZWN0aW9uLWRyYWctaGFuZGxlLWVuZCByPVwiOFwiPjwvY2lyY2xlPlxuICAgIDwvZz5cbiAgICA8dGV4dCBmLWNvbm5lY3Rpb24tdGV4dD48L3RleHQ+XG4gIDwvZz5cbjwvc3ZnPlxuQGlmIChmQ29ubmVjdGlvbkNlbnRlcnMoKS5sZW5ndGgpIHtcbiAgPGRpdiAjZkNvbm5lY3Rpb25DZW50ZXIgY2xhc3M9XCJmLWNvbm5lY3Rpb24tY2VudGVyXCI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2ZDb25uZWN0aW9uQ2VudGVyXVwiPjwvbmctY29udGVudD5cbiAgPC9kaXY+XG59XG5cbkBpZiAoZkNvbm5lY3Rpb25Db250ZW50cygpLmxlbmd0aCkge1xuICA8bmctY29udGVudCBzZWxlY3Q9XCJbZkNvbm5lY3Rpb25Db250ZW50XVwiPjwvbmctY29udGVudD5cbn1cbiJdfQ==
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jb25uZWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1jb25uZWN0aW9uL2YtY29ubmVjdGlvbi9mLWNvbm5lY3Rpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNvbm5lY3Rpb24vZi1jb25uZWN0aW9uL2YtY29ubmVjdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsTUFBTSxFQUNOLEtBQUssRUFDTCxLQUFLLEVBQ0wsZUFBZSxHQUloQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsMkJBQTJCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDaEcsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3RFLGdIQUFnSDtBQUNoSCx3RUFBd0U7QUFDeEUsZ0RBQWdEO0FBQ2hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDN0YsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7Ozs7Ozs7QUFFOUMsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDO0FBZ0JqQixNQUFNLE9BQU8sb0JBQXFCLFNBQVEsZUFBZTtJQUN2QyxHQUFHLEdBQUcsS0FBSyxDQUFT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QUssRUFBRSwwQkFBMEI7d0JBQ2pDLHlDQUF5QyxFQUFFLHNCQUFzQjt3QkFDakUsd0NBQXdDLEVBQUUscUJBQXFCO3FCQUNoRSxhQUNVLENBQUMsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLFdBQVcsc0JBQXNCLEVBQUUsQ0FBQzs4QkFPekQsS0FBSztzQkFEcEIsS0FBSztnQkFLVSxnQkFBZ0I7c0JBRC9CLEtBQUs7Z0JBWVUsT0FBTztzQkFEdEIsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUU7Z0JBSXJCLE9BQU87c0JBRHRCLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFO2dCQUlyQixTQUFTO3NCQUR4QixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLENBQUMsS0FBYyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLFdBQVcsRUFBRSxvQkFBb0IsQ0FBQyxFQUFFO2dCQUk5RSxLQUFLO3NCQURwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgSW5wdXQsXG4gIG51bWJlckF0dHJpYnV0ZSxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFRkNvbm5lY3Rpb25CZWhhdmlvciwgRUZDb25uZWN0aW9uQ29ubmVjdGFibGVTaWRlLCBFRkNvbm5lY3Rpb25UeXBlIH0gZnJvbSAnLi4vY29tbW9uJztcbmltcG9ydCB7IE5vdGlmeURhdGFDaGFuZ2VkUmVxdWVzdCB9IGZyb20gJy4uLy4uL2Ytc3RvcmFnZSc7XG5pbXBvcnQgeyBGX0NPTk5FQ1RJT04gfSBmcm9tICcuLi9jb21tb24vZi1jb25uZWN0aW9uLmluamVjdGlvbi10b2tlbic7XG4vL1RPRE86IE5lZWQgdG8gZGVhbCB3aXRoIGN5Y2xpYyBkZXBlbmRlbmNpZXMsIHNpbmNlIGluIHNvbWUgY2FzZXMgYW4gZXJyb3Igb2NjdXJzIHdoZW4gaW1wb3J0aW5nIHRoZW0gLi4vY29tbW9uXG4vLyBUeXBlRXJyb3I6IENsYXNzIGV4dGVuZHMgdmFsdWUgdW5kZWZpbmVkIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGxcbi8vIGF0IGYtY29ubmVjdGlvbi1mb3ItY3JlYXRlLmNvbXBvbmVudC50czozNDoxMVxuaW1wb3J0IHsgRkNvbm5lY3Rpb25CYXNlIH0gZnJvbSAnLi4vY29tbW9uL2YtY29ubmVjdGlvbi1iYXNlJztcbmltcG9ydCB7IGNhc3RUb0VudW0gfSBmcm9tICdAZm9ibGV4L3V0aWxzJztcbmltcG9ydCB7IEZNZWRpYXRvciB9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuaW1wb3J0IHsgQWRkQ29ubmVjdGlvblRvU3RvcmVSZXF1ZXN0LCBSZW1vdmVDb25uZWN0aW9uRnJvbVN0b3JlUmVxdWVzdCB9IGZyb20gJy4uLy4uL2RvbWFpbic7XG5pbXBvcnQgeyBzdHJpbmdBdHRyaWJ1dGUgfSBmcm9tICcuLi8uLi91dGlscyc7XG5cbmxldCB1bmlxdWVJZCA9IDA7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2YtY29ubmVjdGlvbicsXG4gIGV4cG9ydEFzOiAnZkNvbXBvbmVudCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9mLWNvbm5lY3Rpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mLWNvbm5lY3Rpb24uY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGhvc3Q6IHtcbiAgICAnW2F0dHIuaWRdJzogJ2ZJZCgpJyxcbiAgICBjbGFzczogJ2YtY29tcG9uZW50IGYtY29ubmVjdGlvbicsXG4gICAgJ1tjbGFzcy5mLWNvbm5lY3Rpb24tc2VsZWN0aW9uLWRpc2FibGVkXSc6ICdmU2VsZWN0aW9uRGlzYWJsZWQoKScsXG4gICAgJ1tjbGFzcy5mLWNvbm5lY3Rpb24tcmVhc3NpZ24tZGlzYWJsZWRdJzogJ2ZEcmFnZ2luZ0Rpc2FibGVkKCknLFxuICB9LFxuICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IEZfQ09OTkVDVElPTiwgdXNlRXhpc3Rpbmc6IEZDb25uZWN0aW9uQ29tcG9uZW50IH1dLFxufSlcbmV4cG9ydCBjbGFzcyBGQ29ubmVjdGlvbkNvbXBvbmVudCBleHRlbmRzIEZDb25uZWN0aW9uQmFzZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICBwdWJsaWMgb3ZlcnJpZGUgZklkID0gaW5wdXQ8c3RyaW5nPihgZi1jb25uZWN0aW9uLSR7dW5pcXVlSWQrK31gLCB7IGFsaWFzOiAnZkNvbm5lY3Rpb25JZCcgfSk7XG5cbiAgLyoqIEBkZXByZWNhdGVkIFtmVGV4dF0gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHYxOC4wLjAuIFVzZSBGQ29ubmVjdGlvbkNvbnRlbnQgZGlyZWN0aXZlIGluc3RlYWQuICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBvdmVycmlkZSBmVGV4dDogc3RyaW5nID0gJyc7XG5cbiAgLyoqIEBkZXByZWNhdGVkIFtmVGV4dFN0YXJ0T2Zmc2V0XSBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdjE4LjAuMC4gVXNlIEZDb25uZWN0aW9uQ29udGVudCBkaXJlY3RpdmUgaW5zdGVhZC4gKi9cbiAgQElucHV0KClcbiAgcHVibGljIG92ZXJyaWRlIGZUZXh0U3RhcnRPZmZzZXQ6IHN0cmluZyA9ICcnO1xuXG4gIHB1YmxpYyBvdmVycmlkZSBmT3V0cHV0SWQgPSBpbnB1dDxzdHJpbmcsIHVua25vd24+KCcnLCB7XG4gICAgdHJhbnNmb3JtOiAodmFsdWUpID0+IHN0cmluZ0F0dHJpYnV0ZSh2YWx1ZSkgfHwgJycsXG4gIH0pO1xuXG4gIHB1YmxpYyBvdmVycmlkZSBmSW5wdXRJZCA9IGlucHV0PHN0cmluZywgdW5rbm93bj4oJycsIHtcbiAgICB0cmFuc2Zvcm06ICh2YWx1ZSkgPT4gc3RyaW5nQXR0cmlidXRlKHZhbHVlKSB8fCAnJyxcbiAgfSk7XG5cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSlcbiAgcHVibGljIG92ZXJyaWRlIGZSYWRpdXM6IG51bWJlciA9IDg7XG5cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSlcbiAgcHVibGljIG92ZXJyaWRlIGZPZmZzZXQ6IG51bWJlciA9IDEyO1xuXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogKHZhbHVlOiB1bmtub3duKSA9PiBjYXN0VG9FbnVtKHZhbHVlLCAnZkJlaGF2aW9yJywgRUZDb25uZWN0aW9uQmVoYXZpb3IpIH0pXG4gIHB1YmxpYyBvdmVycmlkZSBmQmVoYXZpb3I6IEVGQ29ubmVjdGlvbkJlaGF2aW9yID0gRUZDb25uZWN0aW9uQmVoYXZpb3IuRklYRUQ7XG5cbiAgQElucHV0KClcbiAgcHVibGljIG92ZXJyaWRlIGZUeXBlOiBFRkNvbm5lY3Rpb25UeXBlIHwgc3RyaW5nID0gRUZDb25uZWN0aW9uVHlwZS5TVFJBSUdIVDtcblxuICBwdWJsaWMgb3ZlcnJpZGUgZlNlbGVjdGlvbkRpc2FibGVkID0gaW5wdXQoZmFsc2UsIHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pO1xuXG4gIHB1YmxpYyBvdmVycmlkZSBmUmVhc3NpZ25hYmxlU3RhcnQgPSBpbnB1dChmYWxzZSwgeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSk7XG5cbiAgcHVibGljIG92ZXJyaWRlIGZEcmFnZ2luZ0Rpc2FibGVkID0gaW5wdXQoZmFsc2UsIHtcbiAgICBhbGlhczogJ2ZSZWFzc2lnbkRpc2FibGVkJyxcbiAgICB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUsXG4gIH0pO1xuXG4gIHB1YmxpYyBvdmVycmlkZSBmSW5wdXRTaWRlID0gaW5wdXQoRUZDb25uZWN0aW9uQ29ubmVjdGFibGVTaWRlLkRFRkFVTFQsIHtcbiAgICB0cmFuc2Zvcm06ICh4KSA9PiB7XG4gICAgICByZXR1cm4gY2FzdFRvRW51bSh4LCAnZklucHV0U2lkZScsIEVGQ29ubmVjdGlvbkNvbm5lY3RhYmxlU2lkZSk7XG4gICAgfSxcbiAgfSk7XG5cbiAgcHVibGljIG92ZXJyaWRlIGZPdXRwdXRTaWRlID0gaW5wdXQoRUZDb25uZWN0aW9uQ29ubmVjdGFibGVTaWRlLkRFRkFVTFQsIHtcbiAgICB0cmFuc2Zvcm06ICh4KSA9PiB7XG4gICAgICByZXR1cm4gY2FzdFRvRW51bSh4LCAnZk91dHB1dFNpZGUnLCBFRkNvbm5lY3Rpb25Db25uZWN0YWJsZVNpZGUpO1xuICAgIH0sXG4gIH0pO1xuXG4gIHB1YmxpYyBvdmVycmlkZSBnZXQgYm91bmRpbmdFbGVtZW50KCk6IEhUTUxFbGVtZW50IHwgU1ZHRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuZlBhdGgoKS5ob3N0RWxlbWVudDtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgX21lZGlhdG9yID0gaW5qZWN0KEZNZWRpYXRvcik7XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX21lZGlhdG9yLmV4ZWN1dGUobmV3IEFkZENvbm5lY3Rpb25Ub1N0b3JlUmVxdWVzdCh0aGlzKSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZShuZXcgTm90aWZ5RGF0YUNoYW5nZWRSZXF1ZXN0KCkpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX21lZGlhdG9yLmV4ZWN1dGUobmV3IFJlbW92ZUNvbm5lY3Rpb25Gcm9tU3RvcmVSZXF1ZXN0KHRoaXMpKTtcbiAgfVxufVxuIiwiPHN2Z1xuICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgc3R5bGU9XCJvdmVyZmxvdzogdmlzaWJsZTsgZGlzcGxheTogYmxvY2s7IHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XCJcbj5cbiAgPGRlZnMgI2RlZnM+PC9kZWZzPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDxnIGNsYXNzPVwiZi1jb25uZWN0aW9uLWdyb3VwXCI+XG4gICAgPGxpbmVhckdyYWRpZW50IGZDb25uZWN0aW9uR3JhZGllbnQ+PC9saW5lYXJHcmFkaWVudD5cbiAgICA8cGF0aCBmQ29ubmVjdGlvblNlbGVjdGlvbiBbYXR0ci5kXT1cInBhdGhcIj48L3BhdGg+XG4gICAgPGc+XG4gICAgICA8cGF0aCBmLWNvbm5lY3Rpb24tcGF0aCBbYXR0ci5kXT1cInBhdGhcIj48L3BhdGg+XG4gICAgICBAaWYgKGZSZWFzc2lnbmFibGVTdGFydCgpKSB7XG4gICAgICAgIDxjaXJjbGUgZi1jb25uZWN0aW9uLWRyYWctaGFuZGxlLXN0YXJ0IHI9XCI4XCI+PC9jaXJjbGU+XG4gICAgICB9XG4gICAgICA8Y2lyY2xlIGYtY29ubmVjdGlvbi1kcmFnLWhhbmRsZS1lbmQgcj1cIjhcIj48L2NpcmNsZT5cbiAgICA8L2c+XG4gICAgPHRleHQgZi1jb25uZWN0aW9uLXRleHQ+PC90ZXh0PlxuICA8L2c+XG48L3N2Zz5cbkBpZiAoZkNvbm5lY3Rpb25DZW50ZXJzKCkubGVuZ3RoKSB7XG4gIDxkaXYgI2ZDb25uZWN0aW9uQ2VudGVyIGNsYXNzPVwiZi1jb25uZWN0aW9uLWNlbnRlclwiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltmQ29ubmVjdGlvbkNlbnRlcl1cIj48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxufVxuXG5AaWYgKGZDb25uZWN0aW9uQ29udGVudHMoKS5sZW5ndGgpIHtcbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2ZDb25uZWN0aW9uQ29udGVudF1cIj48L25nLWNvbnRlbnQ+XG59XG4iXX0=
@@ -1,34 +1,26 @@
1
- import { Inject, Injectable, Optional } from '@angular/core';
2
- import { EFConnectionType, FBezierPathBuilder, FSegmentPathBuilder, FStraightPathBuilder } from '../common';
1
+ import { inject, Injectable } from '@angular/core';
2
+ import { AdaptiveCurveBuilder, EFConnectionType, FBezierPathBuilder, FSegmentPathBuilder, FStraightPathBuilder, } from '../common';
3
3
  import { F_CONNECTION_BUILDERS } from './f-connection-builders';
4
4
  import * as i0 from "@angular/core";
5
5
  export class FConnectionFactory {
6
- builders = {
6
+ _builders = {
7
7
  [EFConnectionType.STRAIGHT]: new FStraightPathBuilder(),
8
8
  [EFConnectionType.BEZIER]: new FBezierPathBuilder(),
9
+ [EFConnectionType.ADAPTIVE_CURVE]: new AdaptiveCurveBuilder(),
9
10
  [EFConnectionType.SEGMENT]: new FSegmentPathBuilder(),
11
+ ...(inject(F_CONNECTION_BUILDERS, { optional: true }) || {}),
10
12
  };
11
- constructor(builders) {
12
- if (builders) {
13
- this.builders = { ...this.builders, ...builders };
14
- }
15
- }
16
13
  handle(request) {
17
- const builder = this.builders[request.type];
14
+ const builder = this._builders[request.type];
18
15
  if (!builder) {
19
16
  throw new Error(`FConnectionBuilder not found for type ${request.type}`);
20
17
  }
21
18
  return builder.handle(request.payload);
22
19
  }
23
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FConnectionFactory, deps: [{ token: F_CONNECTION_BUILDERS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
20
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FConnectionFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
24
21
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FConnectionFactory });
25
22
  }
26
23
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FConnectionFactory, decorators: [{
27
24
  type: Injectable
28
- }], ctorParameters: () => [{ type: undefined, decorators: [{
29
- type: Optional
30
- }, {
31
- type: Inject,
32
- args: [F_CONNECTION_BUILDERS]
33
- }] }] });
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jb25uZWN0aW9uLWZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdGlvbi9mLWNvbm5lY3Rpb24tYnVpbGRlci9mLWNvbm5lY3Rpb24tZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFN0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixFQUFFLG1CQUFtQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzVHLE9BQU8sRUFBRSxxQkFBcUIsRUFBd0IsTUFBTSx5QkFBeUIsQ0FBQzs7QUFNdEYsTUFBTSxPQUFPLGtCQUFrQjtJQUVaLFFBQVEsR0FBOEI7UUFFckQsQ0FBRSxnQkFBZ0IsQ0FBQyxRQUFRLENBQUUsRUFBRSxJQUFJLG9CQUFvQixFQUFFO1FBRXpELENBQUUsZ0JBQWdCLENBQUMsTUFBTSxDQUFFLEVBQUUsSUFBSSxrQkFBa0IsRUFBRTtRQUVyRCxDQUFFLGdCQUFnQixDQUFDLE9BQU8sQ0FBRSxFQUFFLElBQUksbUJBQW1CLEVBQUU7S0FDeEQsQ0FBQTtJQUVELFlBQzZDLFFBQThCO1FBRXpFLElBQUksUUFBUSxFQUFFLENBQUM7WUFDYixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsUUFBUSxFQUFFLENBQUM7UUFDcEQsQ0FBQztJQUNILENBQUM7SUFFTSxNQUFNLENBQUMsT0FBbUM7UUFDL0MsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBRSxPQUFPLENBQUMsSUFBSSxDQUFFLENBQUM7UUFDOUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2IsTUFBTSxJQUFJLEtBQUssQ0FBQyx5Q0FBMEMsT0FBTyxDQUFDLElBQUssRUFBRSxDQUFDLENBQUM7UUFDN0UsQ0FBQztRQUVELE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDekMsQ0FBQzt3R0ExQlUsa0JBQWtCLGtCQVlQLHFCQUFxQjs0R0FaaEMsa0JBQWtCOzs0RkFBbEIsa0JBQWtCO2tCQUQ5QixVQUFVOzswQkFhTixRQUFROzswQkFBSSxNQUFNOzJCQUFDLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElGQ29ubmVjdGlvbkJ1aWxkZXIgfSBmcm9tICcuL2ktZi1jb25uZWN0aW9uLWJ1aWxkZXInO1xuaW1wb3J0IHsgRUZDb25uZWN0aW9uVHlwZSwgRkJlemllclBhdGhCdWlsZGVyLCBGU2VnbWVudFBhdGhCdWlsZGVyLCBGU3RyYWlnaHRQYXRoQnVpbGRlciB9IGZyb20gJy4uL2NvbW1vbic7XG5pbXBvcnQgeyBGX0NPTk5FQ1RJT05fQlVJTERFUlMsIElGQ29ubmVjdGlvbkJ1aWxkZXJzIH0gZnJvbSAnLi9mLWNvbm5lY3Rpb24tYnVpbGRlcnMnO1xuaW1wb3J0IHsgSUZDb25uZWN0aW9uRmFjdG9yeVJlcXVlc3QgfSBmcm9tICcuL2ktZi1jb25uZWN0aW9uLWZhY3RvcnktcmVxdWVzdCc7XG5pbXBvcnQgeyBJRkNvbm5lY3Rpb25CdWlsZGVyUmVzcG9uc2UgfSBmcm9tICcuL2ktZi1jb25uZWN0aW9uLWJ1aWxkZXItcmVzcG9uc2UnO1xuaW1wb3J0IHsgSU1hcCB9IGZyb20gJy4uLy4uL2RvbWFpbic7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBGQ29ubmVjdGlvbkZhY3Rvcnkge1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgYnVpbGRlcnM6IElNYXA8SUZDb25uZWN0aW9uQnVpbGRlcj4gPSB7XG5cbiAgICBbIEVGQ29ubmVjdGlvblR5cGUuU1RSQUlHSFQgXTogbmV3IEZTdHJhaWdodFBhdGhCdWlsZGVyKCksXG5cbiAgICBbIEVGQ29ubmVjdGlvblR5cGUuQkVaSUVSIF06IG5ldyBGQmV6aWVyUGF0aEJ1aWxkZXIoKSxcblxuICAgIFsgRUZDb25uZWN0aW9uVHlwZS5TRUdNRU5UIF06IG5ldyBGU2VnbWVudFBhdGhCdWlsZGVyKCksXG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KEZfQ09OTkVDVElPTl9CVUlMREVSUykgYnVpbGRlcnM6IElGQ29ubmVjdGlvbkJ1aWxkZXJzLFxuICApIHtcbiAgICBpZiAoYnVpbGRlcnMpIHtcbiAgICAgIHRoaXMuYnVpbGRlcnMgPSB7IC4uLnRoaXMuYnVpbGRlcnMsIC4uLmJ1aWxkZXJzIH07XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGhhbmRsZShyZXF1ZXN0OiBJRkNvbm5lY3Rpb25GYWN0b3J5UmVxdWVzdCk6IElGQ29ubmVjdGlvbkJ1aWxkZXJSZXNwb25zZSB7XG4gICAgY29uc3QgYnVpbGRlciA9IHRoaXMuYnVpbGRlcnNbIHJlcXVlc3QudHlwZSBdO1xuICAgIGlmICghYnVpbGRlcikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBGQ29ubmVjdGlvbkJ1aWxkZXIgbm90IGZvdW5kIGZvciB0eXBlICR7IHJlcXVlc3QudHlwZSB9YCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGJ1aWxkZXIuaGFuZGxlKHJlcXVlc3QucGF5bG9hZCk7XG4gIH1cbn1cbiJdfQ==
25
+ }] });
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jb25uZWN0aW9uLWZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdGlvbi9mLWNvbm5lY3Rpb24tYnVpbGRlci9mLWNvbm5lY3Rpb24tZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLGdCQUFnQixFQUNoQixrQkFBa0IsRUFDbEIsbUJBQW1CLEVBQ25CLG9CQUFvQixHQUNyQixNQUFNLFdBQVcsQ0FBQztBQUNuQixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFNaEUsTUFBTSxPQUFPLGtCQUFrQjtJQUNaLFNBQVMsR0FBOEI7UUFDdEQsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsRUFBRSxJQUFJLG9CQUFvQixFQUFFO1FBRXZELENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxrQkFBa0IsRUFBRTtRQUVuRCxDQUFDLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxFQUFFLElBQUksb0JBQW9CLEVBQUU7UUFFN0QsQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxJQUFJLG1CQUFtQixFQUFFO1FBRXJELEdBQUcsQ0FBQyxNQUFNLENBQUMscUJBQXFCLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7S0FDN0QsQ0FBQztJQUVLLE1BQU0sQ0FBQyxPQUFtQztRQUMvQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDYixNQUFNLElBQUksS0FBSyxDQUFDLHlDQUF5QyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUMzRSxDQUFDO1FBRUQsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6QyxDQUFDO3dHQXBCVSxrQkFBa0I7NEdBQWxCLGtCQUFrQjs7NEZBQWxCLGtCQUFrQjtrQkFEOUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSUZDb25uZWN0aW9uQnVpbGRlciB9IGZyb20gJy4vaS1mLWNvbm5lY3Rpb24tYnVpbGRlcic7XG5pbXBvcnQge1xuICBBZGFwdGl2ZUN1cnZlQnVpbGRlcixcbiAgRUZDb25uZWN0aW9uVHlwZSxcbiAgRkJlemllclBhdGhCdWlsZGVyLFxuICBGU2VnbWVudFBhdGhCdWlsZGVyLFxuICBGU3RyYWlnaHRQYXRoQnVpbGRlcixcbn0gZnJvbSAnLi4vY29tbW9uJztcbmltcG9ydCB7IEZfQ09OTkVDVElPTl9CVUlMREVSUyB9IGZyb20gJy4vZi1jb25uZWN0aW9uLWJ1aWxkZXJzJztcbmltcG9ydCB7IElGQ29ubmVjdGlvbkZhY3RvcnlSZXF1ZXN0IH0gZnJvbSAnLi9pLWYtY29ubmVjdGlvbi1mYWN0b3J5LXJlcXVlc3QnO1xuaW1wb3J0IHsgSUZDb25uZWN0aW9uQnVpbGRlclJlc3BvbnNlIH0gZnJvbSAnLi9pLWYtY29ubmVjdGlvbi1idWlsZGVyLXJlc3BvbnNlJztcbmltcG9ydCB7IElNYXAgfSBmcm9tICcuLi8uLi9kb21haW4nO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRkNvbm5lY3Rpb25GYWN0b3J5IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfYnVpbGRlcnM6IElNYXA8SUZDb25uZWN0aW9uQnVpbGRlcj4gPSB7XG4gICAgW0VGQ29ubmVjdGlvblR5cGUuU1RSQUlHSFRdOiBuZXcgRlN0cmFpZ2h0UGF0aEJ1aWxkZXIoKSxcblxuICAgIFtFRkNvbm5lY3Rpb25UeXBlLkJFWklFUl06IG5ldyBGQmV6aWVyUGF0aEJ1aWxkZXIoKSxcblxuICAgIFtFRkNvbm5lY3Rpb25UeXBlLkFEQVBUSVZFX0NVUlZFXTogbmV3IEFkYXB0aXZlQ3VydmVCdWlsZGVyKCksXG5cbiAgICBbRUZDb25uZWN0aW9uVHlwZS5TRUdNRU5UXTogbmV3IEZTZWdtZW50UGF0aEJ1aWxkZXIoKSxcblxuICAgIC4uLihpbmplY3QoRl9DT05ORUNUSU9OX0JVSUxERVJTLCB7IG9wdGlvbmFsOiB0cnVlIH0pIHx8IHt9KSxcbiAgfTtcblxuICBwdWJsaWMgaGFuZGxlKHJlcXVlc3Q6IElGQ29ubmVjdGlvbkZhY3RvcnlSZXF1ZXN0KTogSUZDb25uZWN0aW9uQnVpbGRlclJlc3BvbnNlIHtcbiAgICBjb25zdCBidWlsZGVyID0gdGhpcy5fYnVpbGRlcnNbcmVxdWVzdC50eXBlXTtcbiAgICBpZiAoIWJ1aWxkZXIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgRkNvbm5lY3Rpb25CdWlsZGVyIG5vdCBmb3VuZCBmb3IgdHlwZSAke3JlcXVlc3QudHlwZX1gKTtcbiAgICB9XG5cbiAgICByZXR1cm4gYnVpbGRlci5oYW5kbGUocmVxdWVzdC5wYXlsb2FkKTtcbiAgfVxufVxuIl19
@@ -1,8 +1,9 @@
1
- import { Directive, effect, ElementRef, inject, Injector, input, untracked } from '@angular/core';
1
+ import { Directive, effect, ElementRef, inject, Injector, input, untracked, } from '@angular/core';
2
2
  import { NotifyDataChangedRequest } from '../../f-storage';
3
3
  import { FMediator } from '@foblex/mediator';
4
4
  import { castToEnum } from '@foblex/utils';
5
5
  import { PolylineContentAlign } from './polyline-content-engine';
6
+ import { coerceNumberProperty } from '@angular/cdk/coercion';
6
7
  import * as i0 from "@angular/core";
7
8
  /**
8
9
  * Directive for placing custom user content (text, icons, buttons, etc.)
@@ -48,7 +49,10 @@ export class FConnectionContent {
48
49
  * - `0.5` — at the middle of the connection (default).
49
50
  */
50
51
  position = input(0.5, {
51
- transform: (v) => (v < 0 ? 0 : v > 1 ? 1 : v),
52
+ transform: (x) => {
53
+ const v = coerceNumberProperty(x);
54
+ return v < 0 ? 0 : v > 1 ? 1 : v;
55
+ },
52
56
  });
53
57
  /**
54
58
  * Perpendicular offset from the connection line (in pixels).
@@ -58,7 +62,9 @@ export class FConnectionContent {
58
62
  * - Negative values shift it to the left.
59
63
  * - Default: `0` (no shift).
60
64
  */
61
- offset = input(0);
65
+ offset = input(0, {
66
+ transform: (x) => coerceNumberProperty(x),
67
+ });
62
68
  /**
63
69
  * Controls the orientation (rotation) of the content relative to the connection.
64
70
  *
@@ -93,4 +99,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
93
99
  },
94
100
  }]
95
101
  }] });
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jb25uZWN0aW9uLWNvbnRlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdGlvbi9mLWNvbm5lY3Rpb24tY29udGVudC9mLWNvbm5lY3Rpb24tY29udGVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFHLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBb0Isb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7QUFFbkY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMEJHO0FBUUgsTUFBTSxPQUFPLGtCQUFrQjtJQUNaLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDOUIsU0FBUyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUU5Qzs7O09BR0c7SUFDYSxXQUFXLEdBQUcsTUFBTSxDQUFDLENBQUEsVUFBdUIsQ0FBQSxDQUFDLENBQUMsYUFBYSxDQUFDO0lBRTVFOzs7Ozs7O09BT0c7SUFDYSxRQUFRLEdBQUcsS0FBSyxDQUFpQixHQUFHLEVBQUU7UUFDcEQsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDOUMsQ0FBQyxDQUFDO0lBRUg7Ozs7Ozs7T0FPRztJQUNhLE1BQU0sR0FBRyxLQUFLLENBQVMsQ0FBQyxDQUFDLENBQUM7SUFFMUM7Ozs7OztPQU1HO0lBQ2EsS0FBSyxHQUFHLEtBQUssQ0FBZ0Msb0JBQW9CLENBQUMsSUFBSSxFQUFFO1FBQ3RGLFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUF1QixDQUFDLEVBQUUsT0FBTyxFQUFFLG9CQUFvQixDQUFDO0tBQ3JGLENBQUMsQ0FBQztJQUVJLFFBQVE7UUFDYixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVPLGNBQWM7UUFDcEIsTUFBTSxDQUNKLEdBQUcsRUFBRTtZQUNILElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNkLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDYixTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSx3QkFBd0IsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMxRSxDQUFDLEVBQ0QsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUM3QixDQUFDO0lBQ0osQ0FBQzt3R0F6RFUsa0JBQWtCOzRGQUFsQixrQkFBa0I7OzRGQUFsQixrQkFBa0I7a0JBUDlCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHNCQUFzQjtvQkFDaEMsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLElBQUksRUFBRTt3QkFDSixPQUFPLEVBQUUsc0JBQXNCO3FCQUNoQztpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgZWZmZWN0LCBFbGVtZW50UmVmLCBpbmplY3QsIEluamVjdG9yLCBpbnB1dCwgT25Jbml0LCB1bnRyYWNrZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5vdGlmeURhdGFDaGFuZ2VkUmVxdWVzdCB9IGZyb20gJy4uLy4uL2Ytc3RvcmFnZSc7XG5pbXBvcnQgeyBGTWVkaWF0b3IgfSBmcm9tICdAZm9ibGV4L21lZGlhdG9yJztcbmltcG9ydCB7IGNhc3RUb0VudW0gfSBmcm9tICdAZm9ibGV4L3V0aWxzJztcbmltcG9ydCB7IElQb2x5bGluZUNvbnRlbnQsIFBvbHlsaW5lQ29udGVudEFsaWduIH0gZnJvbSAnLi9wb2x5bGluZS1jb250ZW50LWVuZ2luZSc7XG5cbi8qKlxuICogRGlyZWN0aXZlIGZvciBwbGFjaW5nIGN1c3RvbSB1c2VyIGNvbnRlbnQgKHRleHQsIGljb25zLCBidXR0b25zLCBldGMuKVxuICogYWxvbmcgYSBjb25uZWN0aW9uIGxpbmUuXG4gKlxuICogSXQgYWxsb3dzIHlvdSB0byBzcGVjaWZ5IHRoZSBwb3NpdGlvbiBhbG9uZyB0aGUgY29ubmVjdGlvbixcbiAqIHNoaWZ0IHRoZSBjb250ZW50IHNpZGV3YXlzIChwZXJwZW5kaWN1bGFyIHRvIHRoZSBwYXRoKSxcbiAqIGFwcGx5IGEgbWFyZ2luIG5lYXIgdGhlIGVkZ2VzLCBhbmQgY29udHJvbCBvcmllbnRhdGlvbi5cbiAqXG4gKiAjIyMgVXNhZ2UgZXhhbXBsZXNcbiAqXG4gKiBgYGBodG1sXG4gKiA8IS0tIFRleHQgY2VudGVyZWQgb24gdGhlIGNvbm5lY3Rpb24gLS0+XG4gKiA8ZGl2IGZDb25uZWN0aW9uQ29udGVudCBbcG9zaXRpb25dPVwiMC41XCI+XG4gKiAgIEhlbGxvXG4gKiA8L2Rpdj5cbiAqXG4gKiA8IS0tIEJ1dHRvbiBuZWFyIHRoZSBzdGFydCBvZiB0aGUgY29ubmVjdGlvbiwgc2hpZnRlZCB1cHdhcmQgYnkgMTJweCAtLT5cbiAqIDxidXR0b24gZkNvbm5lY3Rpb25Db250ZW50IFtwb3NpdGlvbl09XCIwLjJcIiBbb2Zmc2V0XT1cIi0xMlwiPlxuICogICArXG4gKiA8L2J1dHRvbj5cbiAqXG4gKiA8IS0tIEljb24gYXQgdGhlIGVuZCBvZiB0aGUgY29ubmVjdGlvbiwgd2l0aCA2cHggbWFyZ2luIGFuZCByb3RhdGVkIGFsb25nIHRoZSBwYXRoIC0tPlxuICogPHNwYW4gZkNvbm5lY3Rpb25Db250ZW50IFtwb3NpdGlvbl09XCIxXCIgW21hcmdpbl09XCI2XCIgYWxpZ249XCJhbG9uZ1wiPlxuICogICDirpVcbiAqIDwvc3Bhbj5cbiAqIGBgYFxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbZkNvbm5lY3Rpb25Db250ZW50XScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGhvc3Q6IHtcbiAgICAnY2xhc3MnOiAnZi1jb25uZWN0aW9uLWNvbnRlbnQnLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBGQ29ubmVjdGlvbkNvbnRlbnQgaW1wbGVtZW50cyBPbkluaXQsIElQb2x5bGluZUNvbnRlbnQge1xuICBwcml2YXRlIHJlYWRvbmx5IF9tZWRpYXRvciA9IGluamVjdChGTWVkaWF0b3IpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9pbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG5cbiAgLyoqXG4gICAqIFRoZSBob3N0IERPTSBlbGVtZW50IHRvIHdoaWNoIHRoZSBkaXJlY3RpdmUgaXMgYXBwbGllZC5cbiAgICogVXNlZCBpbnRlcm5hbGx5IGZvciBwb3NpdGlvbmluZyBjYWxjdWxhdGlvbnMuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgaG9zdEVsZW1lbnQgPSBpbmplY3QoRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgLyoqXG4gICAqIFBvc2l0aW9uIGFsb25nIHRoZSBjb25uZWN0aW9uLlxuICAgKlxuICAgKiBBIG5vcm1hbGl6ZWQgdmFsdWUgaW4gdGhlIHJhbmdlIGAwLi4xYDpcbiAgICogLSBgMGAg4oCUIGF0IHRoZSBzdGFydCBvZiB0aGUgY29ubmVjdGlvbixcbiAgICogLSBgMWAg4oCUIGF0IHRoZSBlbmQgb2YgdGhlIGNvbm5lY3Rpb24sXG4gICAqIC0gYDAuNWAg4oCUIGF0IHRoZSBtaWRkbGUgb2YgdGhlIGNvbm5lY3Rpb24gKGRlZmF1bHQpLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHBvc2l0aW9uID0gaW5wdXQ8bnVtYmVyLCBudW1iZXI+KDAuNSwge1xuICAgIHRyYW5zZm9ybTogKHYpID0+ICh2IDwgMCA/IDAgOiB2ID4gMSA/IDEgOiB2KSxcbiAgfSk7XG5cbiAgLyoqXG4gICAqIFBlcnBlbmRpY3VsYXIgb2Zmc2V0IGZyb20gdGhlIGNvbm5lY3Rpb24gbGluZSAoaW4gcGl4ZWxzKS5cbiAgICpcbiAgICogLSBQb3NpdGl2ZSB2YWx1ZXMgc2hpZnQgdGhlIGVsZW1lbnQgdG8gdGhlIHJpZ2h0XG4gICAqICAgcmVsYXRpdmUgdG8gdGhlIGxpbmUgZGlyZWN0aW9uLlxuICAgKiAtIE5lZ2F0aXZlIHZhbHVlcyBzaGlmdCBpdCB0byB0aGUgbGVmdC5cbiAgICogLSBEZWZhdWx0OiBgMGAgKG5vIHNoaWZ0KS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBvZmZzZXQgPSBpbnB1dDxudW1iZXI+KDApO1xuXG4gIC8qKlxuICAgKiBDb250cm9scyB0aGUgb3JpZW50YXRpb24gKHJvdGF0aW9uKSBvZiB0aGUgY29udGVudCByZWxhdGl2ZSB0byB0aGUgY29ubmVjdGlvbi5cbiAgICpcbiAgICogUG9zc2libGUgdmFsdWVzOlxuICAgKiAtIGAnbm9uZSdgIOKAlCBubyByb3RhdGlvbiAoZGVmYXVsdCkuXG4gICAqIC0gYCdhbG9uZydgIOKAlCBhbGlnbmVkIGFsb25nIHRoZSBwYXRoICh0YW5nZW50KS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBhbGlnbiA9IGlucHV0PFBvbHlsaW5lQ29udGVudEFsaWduLCB1bmtub3duPihQb2x5bGluZUNvbnRlbnRBbGlnbi5OT05FLCB7XG4gICAgdHJhbnNmb3JtOiAoeCkgPT4gY2FzdFRvRW51bTxQb2x5bGluZUNvbnRlbnRBbGlnbj4oeCwgJ2FsaWduJywgUG9seWxpbmVDb250ZW50QWxpZ24pLFxuICB9KTtcblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fbGlzdGVuQ2hhbmdlcygpO1xuICB9XG5cbiAgcHJpdmF0ZSBfbGlzdGVuQ2hhbmdlcygpOiB2b2lkIHtcbiAgICBlZmZlY3QoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIHRoaXMub2Zmc2V0KCk7XG4gICAgICAgIHRoaXMucG9zaXRpb24oKTtcbiAgICAgICAgdGhpcy5hbGlnbigpO1xuICAgICAgICB1bnRyYWNrZWQoKCkgPT4gdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZShuZXcgTm90aWZ5RGF0YUNoYW5nZWRSZXF1ZXN0KCkpKTtcbiAgICAgIH0sXG4gICAgICB7IGluamVjdG9yOiB0aGlzLl9pbmplY3RvciB9LFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jb25uZWN0aW9uLWNvbnRlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mLWZsb3cvc3JjL2YtY29ubmVjdGlvbi9mLWNvbm5lY3Rpb24tY29udGVudC9mLWNvbm5lY3Rpb24tY29udGVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULE1BQU0sRUFDTixVQUFVLEVBQ1YsTUFBTSxFQUNOLFFBQVEsRUFDUixLQUFLLEVBRUwsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBb0Isb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNuRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFFN0Q7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBMEJHO0FBUUgsTUFBTSxPQUFPLGtCQUFrQjtJQUNaLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDOUIsU0FBUyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUU5Qzs7O09BR0c7SUFDYSxXQUFXLEdBQUcsTUFBTSxDQUFDLENBQUEsVUFBdUIsQ0FBQSxDQUFDLENBQUMsYUFBYSxDQUFDO0lBRTVFOzs7Ozs7O09BT0c7SUFDYSxRQUFRLEdBQUcsS0FBSyxDQUFrQixHQUFHLEVBQUU7UUFDckQsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDZixNQUFNLENBQUMsR0FBRyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUVsQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkMsQ0FBQztLQUNGLENBQUMsQ0FBQztJQUVIOzs7Ozs7O09BT0c7SUFDYSxNQUFNLEdBQUcsS0FBSyxDQUFrQixDQUFDLEVBQUU7UUFDakQsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUM7S0FDMUMsQ0FBQyxDQUFDO0lBRUg7Ozs7OztPQU1HO0lBQ2EsS0FBSyxHQUFHLEtBQUssQ0FBZ0Msb0JBQW9CLENBQUMsSUFBSSxFQUFFO1FBQ3RGLFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUF1QixDQUFDLEVBQUUsT0FBTyxFQUFFLG9CQUFvQixDQUFDO0tBQ3JGLENBQUMsQ0FBQztJQUVJLFFBQVE7UUFDYixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVPLGNBQWM7UUFDcEIsTUFBTSxDQUNKLEdBQUcsRUFBRTtZQUNILElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNkLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDYixTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSx3QkFBd0IsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMxRSxDQUFDLEVBQ0QsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUM3QixDQUFDO0lBQ0osQ0FBQzt3R0EvRFUsa0JBQWtCOzRGQUFsQixrQkFBa0I7OzRGQUFsQixrQkFBa0I7a0JBUDlCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHNCQUFzQjtvQkFDaEMsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLElBQUksRUFBRTt3QkFDSixPQUFPLEVBQUUsc0JBQXNCO3FCQUNoQztpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERpcmVjdGl2ZSxcbiAgZWZmZWN0LFxuICBFbGVtZW50UmVmLFxuICBpbmplY3QsXG4gIEluamVjdG9yLFxuICBpbnB1dCxcbiAgT25Jbml0LFxuICB1bnRyYWNrZWQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTm90aWZ5RGF0YUNoYW5nZWRSZXF1ZXN0IH0gZnJvbSAnLi4vLi4vZi1zdG9yYWdlJztcbmltcG9ydCB7IEZNZWRpYXRvciB9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuaW1wb3J0IHsgY2FzdFRvRW51bSB9IGZyb20gJ0Bmb2JsZXgvdXRpbHMnO1xuaW1wb3J0IHsgSVBvbHlsaW5lQ29udGVudCwgUG9seWxpbmVDb250ZW50QWxpZ24gfSBmcm9tICcuL3BvbHlsaW5lLWNvbnRlbnQtZW5naW5lJztcbmltcG9ydCB7IGNvZXJjZU51bWJlclByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcblxuLyoqXG4gKiBEaXJlY3RpdmUgZm9yIHBsYWNpbmcgY3VzdG9tIHVzZXIgY29udGVudCAodGV4dCwgaWNvbnMsIGJ1dHRvbnMsIGV0Yy4pXG4gKiBhbG9uZyBhIGNvbm5lY3Rpb24gbGluZS5cbiAqXG4gKiBJdCBhbGxvd3MgeW91IHRvIHNwZWNpZnkgdGhlIHBvc2l0aW9uIGFsb25nIHRoZSBjb25uZWN0aW9uLFxuICogc2hpZnQgdGhlIGNvbnRlbnQgc2lkZXdheXMgKHBlcnBlbmRpY3VsYXIgdG8gdGhlIHBhdGgpLFxuICogYXBwbHkgYSBtYXJnaW4gbmVhciB0aGUgZWRnZXMsIGFuZCBjb250cm9sIG9yaWVudGF0aW9uLlxuICpcbiAqICMjIyBVc2FnZSBleGFtcGxlc1xuICpcbiAqIGBgYGh0bWxcbiAqIDwhLS0gVGV4dCBjZW50ZXJlZCBvbiB0aGUgY29ubmVjdGlvbiAtLT5cbiAqIDxkaXYgZkNvbm5lY3Rpb25Db250ZW50IFtwb3NpdGlvbl09XCIwLjVcIj5cbiAqICAgSGVsbG9cbiAqIDwvZGl2PlxuICpcbiAqIDwhLS0gQnV0dG9uIG5lYXIgdGhlIHN0YXJ0IG9mIHRoZSBjb25uZWN0aW9uLCBzaGlmdGVkIHVwd2FyZCBieSAxMnB4IC0tPlxuICogPGJ1dHRvbiBmQ29ubmVjdGlvbkNvbnRlbnQgW3Bvc2l0aW9uXT1cIjAuMlwiIFtvZmZzZXRdPVwiLTEyXCI+XG4gKiAgICtcbiAqIDwvYnV0dG9uPlxuICpcbiAqIDwhLS0gSWNvbiBhdCB0aGUgZW5kIG9mIHRoZSBjb25uZWN0aW9uLCB3aXRoIDZweCBtYXJnaW4gYW5kIHJvdGF0ZWQgYWxvbmcgdGhlIHBhdGggLS0+XG4gKiA8c3BhbiBmQ29ubmVjdGlvbkNvbnRlbnQgW3Bvc2l0aW9uXT1cIjFcIiBbbWFyZ2luXT1cIjZcIiBhbGlnbj1cImFsb25nXCI+XG4gKiAgIOKulVxuICogPC9zcGFuPlxuICogYGBgXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tmQ29ubmVjdGlvbkNvbnRlbnRdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaG9zdDoge1xuICAgICdjbGFzcyc6ICdmLWNvbm5lY3Rpb24tY29udGVudCcsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIEZDb25uZWN0aW9uQ29udGVudCBpbXBsZW1lbnRzIE9uSW5pdCwgSVBvbHlsaW5lQ29udGVudCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX21lZGlhdG9yID0gaW5qZWN0KEZNZWRpYXRvcik7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2luamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcblxuICAvKipcbiAgICogVGhlIGhvc3QgRE9NIGVsZW1lbnQgdG8gd2hpY2ggdGhlIGRpcmVjdGl2ZSBpcyBhcHBsaWVkLlxuICAgKiBVc2VkIGludGVybmFsbHkgZm9yIHBvc2l0aW9uaW5nIGNhbGN1bGF0aW9ucy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBob3N0RWxlbWVudCA9IGluamVjdChFbGVtZW50UmVmPEhUTUxFbGVtZW50PikubmF0aXZlRWxlbWVudDtcblxuICAvKipcbiAgICogUG9zaXRpb24gYWxvbmcgdGhlIGNvbm5lY3Rpb24uXG4gICAqXG4gICAqIEEgbm9ybWFsaXplZCB2YWx1ZSBpbiB0aGUgcmFuZ2UgYDAuLjFgOlxuICAgKiAtIGAwYCDigJQgYXQgdGhlIHN0YXJ0IG9mIHRoZSBjb25uZWN0aW9uLFxuICAgKiAtIGAxYCDigJQgYXQgdGhlIGVuZCBvZiB0aGUgY29ubmVjdGlvbixcbiAgICogLSBgMC41YCDigJQgYXQgdGhlIG1pZGRsZSBvZiB0aGUgY29ubmVjdGlvbiAoZGVmYXVsdCkuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcG9zaXRpb24gPSBpbnB1dDxudW1iZXIsIHVua25vd24+KDAuNSwge1xuICAgIHRyYW5zZm9ybTogKHgpID0+IHtcbiAgICAgIGNvbnN0IHYgPSBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh4KTtcblxuICAgICAgcmV0dXJuIHYgPCAwID8gMCA6IHYgPiAxID8gMSA6IHY7XG4gICAgfSxcbiAgfSk7XG5cbiAgLyoqXG4gICAqIFBlcnBlbmRpY3VsYXIgb2Zmc2V0IGZyb20gdGhlIGNvbm5lY3Rpb24gbGluZSAoaW4gcGl4ZWxzKS5cbiAgICpcbiAgICogLSBQb3NpdGl2ZSB2YWx1ZXMgc2hpZnQgdGhlIGVsZW1lbnQgdG8gdGhlIHJpZ2h0XG4gICAqICAgcmVsYXRpdmUgdG8gdGhlIGxpbmUgZGlyZWN0aW9uLlxuICAgKiAtIE5lZ2F0aXZlIHZhbHVlcyBzaGlmdCBpdCB0byB0aGUgbGVmdC5cbiAgICogLSBEZWZhdWx0OiBgMGAgKG5vIHNoaWZ0KS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBvZmZzZXQgPSBpbnB1dDxudW1iZXIsIHVua25vd24+KDAsIHtcbiAgICB0cmFuc2Zvcm06ICh4KSA9PiBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh4KSxcbiAgfSk7XG5cbiAgLyoqXG4gICAqIENvbnRyb2xzIHRoZSBvcmllbnRhdGlvbiAocm90YXRpb24pIG9mIHRoZSBjb250ZW50IHJlbGF0aXZlIHRvIHRoZSBjb25uZWN0aW9uLlxuICAgKlxuICAgKiBQb3NzaWJsZSB2YWx1ZXM6XG4gICAqIC0gYCdub25lJ2Ag4oCUIG5vIHJvdGF0aW9uIChkZWZhdWx0KS5cbiAgICogLSBgJ2Fsb25nJ2Ag4oCUIGFsaWduZWQgYWxvbmcgdGhlIHBhdGggKHRhbmdlbnQpLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGFsaWduID0gaW5wdXQ8UG9seWxpbmVDb250ZW50QWxpZ24sIHVua25vd24+KFBvbHlsaW5lQ29udGVudEFsaWduLk5PTkUsIHtcbiAgICB0cmFuc2Zvcm06ICh4KSA9PiBjYXN0VG9FbnVtPFBvbHlsaW5lQ29udGVudEFsaWduPih4LCAnYWxpZ24nLCBQb2x5bGluZUNvbnRlbnRBbGlnbiksXG4gIH0pO1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9saXN0ZW5DaGFuZ2VzKCk7XG4gIH1cblxuICBwcml2YXRlIF9saXN0ZW5DaGFuZ2VzKCk6IHZvaWQge1xuICAgIGVmZmVjdChcbiAgICAgICgpID0+IHtcbiAgICAgICAgdGhpcy5vZmZzZXQoKTtcbiAgICAgICAgdGhpcy5wb3NpdGlvbigpO1xuICAgICAgICB0aGlzLmFsaWduKCk7XG4gICAgICAgIHVudHJhY2tlZCgoKSA9PiB0aGlzLl9tZWRpYXRvci5leGVjdXRlKG5ldyBOb3RpZnlEYXRhQ2hhbmdlZFJlcXVlc3QoKSkpO1xuICAgICAgfSxcbiAgICAgIHsgaW5qZWN0b3I6IHRoaXMuX2luamVjdG9yIH0sXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -14,16 +14,15 @@ export class ConnectionContentLayoutEngine {
14
14
  const total = sampler.totalLength;
15
15
  for (const item of contents) {
16
16
  const { position, rotationDeg } = this._placement.compute(sampler, item);
17
- const style = this._createTransformString(position, rotationDeg);
18
- item.hostElement.setAttribute('style', style);
17
+ item.hostElement.style.transform = this._createTransformString(position, rotationDeg);
19
18
  }
20
19
  return total;
21
20
  }
22
21
  _createTransformString(position, rotationDeg) {
23
- return `position: fixed; pointer-events: all; transform: translate(-50%, -50%) rotate(${rotationDeg}deg); left: ${position.x}px; top: ${position.y}px`;
22
+ return `translate3d(${position.x}px, ${position.y}px, 0) translate(-50%, -50%) rotate(${rotationDeg}deg)`;
24
23
  }
25
24
  }
26
- function calculatePathPointsIfEmpty({ point1, point2 }, { secondPoint, connectionCenter, penultimatePoint }) {
25
+ function calculatePathPointsIfEmpty({ point1, point2 }, { secondPoint, connectionCenter, penultimatePoint, }) {
27
26
  return [point1, secondPoint || point1, connectionCenter, penultimatePoint || point2, point2];
28
27
  }
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9seWxpbmUtY29udGVudC1sYXlvdXQtZW5naW5lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNvbm5lY3Rpb24vZi1jb25uZWN0aW9uLWNvbnRlbnQvcG9seWxpbmUtY29udGVudC1lbmdpbmUvcG9seWxpbmUtY29udGVudC1sYXlvdXQtZW5naW5lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVyRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVoRTs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sNkJBQTZCO0lBRXJCO0lBRG5CLFlBQ21CLGFBQWEsSUFBSSxvQkFBb0IsRUFBRTtRQUF2QyxlQUFVLEdBQVYsVUFBVSxDQUE2QjtJQUN2RCxDQUFDO0lBRUcsTUFBTSxDQUNYLElBQXdDLEVBQ3hDLGFBQTZHLEVBQzdHLFFBQW9DO1FBRXBDLE1BQU0sT0FBTyxHQUFHLElBQUksZUFBZSxDQUFDLGFBQWEsQ0FBQyxNQUFNLElBQUksMEJBQTBCLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUM7UUFDN0csTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQztRQUVsQyxLQUFLLE1BQU0sSUFBSSxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQzVCLE1BQU0sRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ3pFLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLEVBQUUsV0FBVyxDQUFDLENBQUM7WUFDakUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ2hELENBQUM7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFTyxzQkFBc0IsQ0FBQyxRQUFnQixFQUFFLFdBQW1CO1FBQ2xFLE9BQU8saUZBQWlGLFdBQVcsZUFBZSxRQUFRLENBQUMsQ0FBQyxZQUFZLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUN6SixDQUFDO0NBQ0Y7QUFFRCxTQUFTLDBCQUEwQixDQUNqQyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQVMsRUFDekIsRUFBRSxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQStFO0lBRWhJLE9BQU8sQ0FBQyxNQUFNLEVBQUUsV0FBVyxJQUFJLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsSUFBSSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDL0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElMaW5lLCBJUG9pbnQgfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7IFBvbHlsaW5lU2FtcGxlciB9IGZyb20gJy4vcG9seWxpbmUtc2FtcGxlcic7XG5pbXBvcnQgeyBJUG9seWxpbmVDb250ZW50IH0gZnJvbSAnLi9pLXBvbHlsaW5lLWNvbnRlbnQnO1xuaW1wb3J0IHsgUG9seWxpbmVDb250ZW50UGxhY2UgfSBmcm9tICcuL3BvbHlsaW5lLWNvbnRlbnQtcGxhY2UnO1xuXG4vKipcbiAqIEVuZ2luZSB0aGF0IG9yY2hlc3RyYXRlcyBwb3NpdGlvbmluZyBhbmQgb3JpZW50YXRpb24gb2YgYWxsXG4gKiBjb25uZWN0aW9uIGNvbnRlbnRzIGFsb25nIGEgY29tcHV0ZWQgcGF0aC5cbiAqL1xuZXhwb3J0IGNsYXNzIENvbm5lY3Rpb25Db250ZW50TGF5b3V0RW5naW5lIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBfcGxhY2VtZW50ID0gbmV3IFBvbHlsaW5lQ29udGVudFBsYWNlKCksXG4gICkge31cblxuICBwdWJsaWMgbGF5b3V0KFxuICAgIGxpbmU6IHsgcG9pbnQxOiBJUG9pbnQ7IHBvaW50MjogSVBvaW50IH0sXG4gICAgYnVpbGRlclJlc3VsdDogeyBwb2ludHM/OiBJUG9pbnRbXSwgc2Vjb25kUG9pbnQ6IElQb2ludDsgY29ubmVjdGlvbkNlbnRlcjogSVBvaW50OyBwZW51bHRpbWF0ZVBvaW50OiBJUG9pbnQgfSxcbiAgICBjb250ZW50czogSXRlcmFibGU8SVBvbHlsaW5lQ29udGVudD4sXG4gICk6IG51bWJlciB7XG4gICAgY29uc3Qgc2FtcGxlciA9IG5ldyBQb2x5bGluZVNhbXBsZXIoYnVpbGRlclJlc3VsdC5wb2ludHMgPz8gY2FsY3VsYXRlUGF0aFBvaW50c0lmRW1wdHkobGluZSwgYnVpbGRlclJlc3VsdCkpO1xuICAgIGNvbnN0IHRvdGFsID0gc2FtcGxlci50b3RhbExlbmd0aDtcblxuICAgIGZvciAoY29uc3QgaXRlbSBvZiBjb250ZW50cykge1xuICAgICAgY29uc3QgeyBwb3NpdGlvbiwgcm90YXRpb25EZWcgfSA9IHRoaXMuX3BsYWNlbWVudC5jb21wdXRlKHNhbXBsZXIsIGl0ZW0pO1xuICAgICAgY29uc3Qgc3R5bGUgPSB0aGlzLl9jcmVhdGVUcmFuc2Zvcm1TdHJpbmcocG9zaXRpb24sIHJvdGF0aW9uRGVnKTtcbiAgICAgIGl0ZW0uaG9zdEVsZW1lbnQuc2V0QXR0cmlidXRlKCdzdHlsZScsIHN0eWxlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdG90YWw7XG4gIH1cblxuICBwcml2YXRlIF9jcmVhdGVUcmFuc2Zvcm1TdHJpbmcocG9zaXRpb246IElQb2ludCwgcm90YXRpb25EZWc6IG51bWJlcik6IHN0cmluZyB7XG4gICAgcmV0dXJuIGBwb3NpdGlvbjogZml4ZWQ7IHBvaW50ZXItZXZlbnRzOiBhbGw7IHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpIHJvdGF0ZSgke3JvdGF0aW9uRGVnfWRlZyk7IGxlZnQ6ICR7cG9zaXRpb24ueH1weDsgdG9wOiAke3Bvc2l0aW9uLnl9cHhgO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNhbGN1bGF0ZVBhdGhQb2ludHNJZkVtcHR5KFxuICB7IHBvaW50MSwgcG9pbnQyIH06IElMaW5lLFxuICB7IHNlY29uZFBvaW50LCBjb25uZWN0aW9uQ2VudGVyLCBwZW51bHRpbWF0ZVBvaW50IH06IHsgc2Vjb25kUG9pbnQ6IElQb2ludDsgY29ubmVjdGlvbkNlbnRlcjogSVBvaW50OyBwZW51bHRpbWF0ZVBvaW50OiBJUG9pbnQgfSxcbik6IElQb2ludFtdIHtcbiAgcmV0dXJuIFtwb2ludDEsIHNlY29uZFBvaW50IHx8IHBvaW50MSwgY29ubmVjdGlvbkNlbnRlciwgcGVudWx0aW1hdGVQb2ludCB8fCBwb2ludDIsIHBvaW50Ml07XG59XG4iXX0=
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9seWxpbmUtY29udGVudC1sYXlvdXQtZW5naW5lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNvbm5lY3Rpb24vZi1jb25uZWN0aW9uLWNvbnRlbnQvcG9seWxpbmUtY29udGVudC1lbmdpbmUvcG9seWxpbmUtY29udGVudC1sYXlvdXQtZW5naW5lLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVyRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVoRTs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sNkJBQTZCO0lBQ1g7SUFBN0IsWUFBNkIsYUFBYSxJQUFJLG9CQUFvQixFQUFFO1FBQXZDLGVBQVUsR0FBVixVQUFVLENBQTZCO0lBQUcsQ0FBQztJQUVqRSxNQUFNLENBQ1gsSUFBd0MsRUFDeEMsYUFLQyxFQUNELFFBQW9DO1FBRXBDLE1BQU0sT0FBTyxHQUFHLElBQUksZUFBZSxDQUNqQyxhQUFhLENBQUMsTUFBTSxJQUFJLDBCQUEwQixDQUFDLElBQUksRUFBRSxhQUFhLENBQUMsQ0FDeEUsQ0FBQztRQUNGLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUM7UUFFbEMsS0FBSyxNQUFNLElBQUksSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUM1QixNQUFNLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN6RSxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUN4RixDQUFDO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRU8sc0JBQXNCLENBQUMsUUFBZ0IsRUFBRSxXQUFtQjtRQUNsRSxPQUFPLGVBQWUsUUFBUSxDQUFDLENBQUMsT0FBTyxRQUFRLENBQUMsQ0FBQyx1Q0FBdUMsV0FBVyxNQUFNLENBQUM7SUFDNUcsQ0FBQztDQUNGO0FBRUQsU0FBUywwQkFBMEIsQ0FDakMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFTLEVBQ3pCLEVBQ0UsV0FBVyxFQUNYLGdCQUFnQixFQUNoQixnQkFBZ0IsR0FDNEQ7SUFFOUUsT0FBTyxDQUFDLE1BQU0sRUFBRSxXQUFXLElBQUksTUFBTSxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixJQUFJLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztBQUMvRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUxpbmUsIElQb2ludCB9IGZyb20gJ0Bmb2JsZXgvMmQnO1xuaW1wb3J0IHsgUG9seWxpbmVTYW1wbGVyIH0gZnJvbSAnLi9wb2x5bGluZS1zYW1wbGVyJztcbmltcG9ydCB7IElQb2x5bGluZUNvbnRlbnQgfSBmcm9tICcuL2ktcG9seWxpbmUtY29udGVudCc7XG5pbXBvcnQgeyBQb2x5bGluZUNvbnRlbnRQbGFjZSB9IGZyb20gJy4vcG9seWxpbmUtY29udGVudC1wbGFjZSc7XG5cbi8qKlxuICogRW5naW5lIHRoYXQgb3JjaGVzdHJhdGVzIHBvc2l0aW9uaW5nIGFuZCBvcmllbnRhdGlvbiBvZiBhbGxcbiAqIGNvbm5lY3Rpb24gY29udGVudHMgYWxvbmcgYSBjb21wdXRlZCBwYXRoLlxuICovXG5leHBvcnQgY2xhc3MgQ29ubmVjdGlvbkNvbnRlbnRMYXlvdXRFbmdpbmUge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IF9wbGFjZW1lbnQgPSBuZXcgUG9seWxpbmVDb250ZW50UGxhY2UoKSkge31cblxuICBwdWJsaWMgbGF5b3V0KFxuICAgIGxpbmU6IHsgcG9pbnQxOiBJUG9pbnQ7IHBvaW50MjogSVBvaW50IH0sXG4gICAgYnVpbGRlclJlc3VsdDoge1xuICAgICAgcG9pbnRzPzogSVBvaW50W107XG4gICAgICBzZWNvbmRQb2ludDogSVBvaW50O1xuICAgICAgY29ubmVjdGlvbkNlbnRlcjogSVBvaW50O1xuICAgICAgcGVudWx0aW1hdGVQb2ludDogSVBvaW50O1xuICAgIH0sXG4gICAgY29udGVudHM6IEl0ZXJhYmxlPElQb2x5bGluZUNvbnRlbnQ+LFxuICApOiBudW1iZXIge1xuICAgIGNvbnN0IHNhbXBsZXIgPSBuZXcgUG9seWxpbmVTYW1wbGVyKFxuICAgICAgYnVpbGRlclJlc3VsdC5wb2ludHMgPz8gY2FsY3VsYXRlUGF0aFBvaW50c0lmRW1wdHkobGluZSwgYnVpbGRlclJlc3VsdCksXG4gICAgKTtcbiAgICBjb25zdCB0b3RhbCA9IHNhbXBsZXIudG90YWxMZW5ndGg7XG5cbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgY29udGVudHMpIHtcbiAgICAgIGNvbnN0IHsgcG9zaXRpb24sIHJvdGF0aW9uRGVnIH0gPSB0aGlzLl9wbGFjZW1lbnQuY29tcHV0ZShzYW1wbGVyLCBpdGVtKTtcbiAgICAgIGl0ZW0uaG9zdEVsZW1lbnQuc3R5bGUudHJhbnNmb3JtID0gdGhpcy5fY3JlYXRlVHJhbnNmb3JtU3RyaW5nKHBvc2l0aW9uLCByb3RhdGlvbkRlZyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRvdGFsO1xuICB9XG5cbiAgcHJpdmF0ZSBfY3JlYXRlVHJhbnNmb3JtU3RyaW5nKHBvc2l0aW9uOiBJUG9pbnQsIHJvdGF0aW9uRGVnOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiBgdHJhbnNsYXRlM2QoJHtwb3NpdGlvbi54fXB4LCAke3Bvc2l0aW9uLnl9cHgsIDApIHRyYW5zbGF0ZSgtNTAlLCAtNTAlKSByb3RhdGUoJHtyb3RhdGlvbkRlZ31kZWcpYDtcbiAgfVxufVxuXG5mdW5jdGlvbiBjYWxjdWxhdGVQYXRoUG9pbnRzSWZFbXB0eShcbiAgeyBwb2ludDEsIHBvaW50MiB9OiBJTGluZSxcbiAge1xuICAgIHNlY29uZFBvaW50LFxuICAgIGNvbm5lY3Rpb25DZW50ZXIsXG4gICAgcGVudWx0aW1hdGVQb2ludCxcbiAgfTogeyBzZWNvbmRQb2ludDogSVBvaW50OyBjb25uZWN0aW9uQ2VudGVyOiBJUG9pbnQ7IHBlbnVsdGltYXRlUG9pbnQ6IElQb2ludCB9LFxuKTogSVBvaW50W10ge1xuICByZXR1cm4gW3BvaW50MSwgc2Vjb25kUG9pbnQgfHwgcG9pbnQxLCBjb25uZWN0aW9uQ2VudGVyLCBwZW51bHRpbWF0ZVBvaW50IHx8IHBvaW50MiwgcG9pbnQyXTtcbn1cbiJdfQ==
@@ -1,4 +1,5 @@
1
1
  import { PolylineContentAlign } from './polyline-content-align';
2
+ import { DragRectCache } from '../../../domain';
2
3
  /**
3
4
  * Encapsulates placement logic for a single content item along the path.
4
5
  */
@@ -36,7 +37,7 @@ export class PolylineContentPlace {
36
37
  return { x, y };
37
38
  }
38
39
  _sizeAlongDirection(element, dir) {
39
- const rect = element.getBoundingClientRect();
40
+ const rect = DragRectCache.fromElement(element);
40
41
  return Math.abs(dir.x) * rect.width + Math.abs(dir.y) * rect.height;
41
42
  }
42
43
  _normalize180(angleDeg) {
@@ -62,4 +63,4 @@ export class PolylineContentPlace {
62
63
  return result;
63
64
  }
64
65
  }
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9seWxpbmUtY29udGVudC1wbGFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1jb25uZWN0aW9uL2YtY29ubmVjdGlvbi1jb250ZW50L3BvbHlsaW5lLWNvbnRlbnQtZW5naW5lL3BvbHlsaW5lLWNvbnRlbnQtcGxhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFaEU7O0dBRUc7QUFDSCxNQUFNLE9BQU8sb0JBQW9CO0lBQ3hCLE9BQU8sQ0FDWixPQUF3QixFQUN4QixPQUF5QjtRQUV6QixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ25ELE1BQU0sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRTlELG1CQUFtQjtRQUNuQixNQUFNLE1BQU0sR0FBRyxFQUFFLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUUvQyx1QkFBdUI7UUFDdkIsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN0QyxNQUFNLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDO1FBQ3ZDLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUM7UUFFdkMsYUFBYTtRQUNiLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzdFLE1B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QyxLQUFLLEVBQUUsQ0FBQztZQUN6QyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDNUQsTUFBTSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDckMsQ0FBQztRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElQb2x5bGluZUNvbnRlbnQgfSBmcm9tICcuL2ktcG9seWxpbmUtY29udGVudCc7XG5pbXBvcnQgeyBJUG9pbnQgfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7IFBvbHlsaW5lU2FtcGxlciB9IGZyb20gJy4vcG9seWxpbmUtc2FtcGxlcic7XG5pbXBvcnQgeyBQb2x5bGluZUNvbnRlbnRBbGlnbiB9IGZyb20gJy4vcG9seWxpbmUtY29udGVudC1hbGlnbic7XG5cbi8qKlxuICogRW5jYXBzdWxhdGVzIHBsYWNlbWVudCBsb2dpYyBmb3IgYSBzaW5nbGUgY29udGVudCBpdGVtIGFsb25nIHRoZSBwYXRoLlxuICovXG5leHBvcnQgY2xhc3MgUG9seWxpbmVDb250ZW50UGxhY2Uge1xuICBwdWJsaWMgY29tcHV0ZShcbiAgICBzYW1wbGVyOiBQb2x5bGluZVNhbXBsZXIsXG4gICAgY29udGVudDogSVBvbHlsaW5lQ29udGVudCxcbiAgKTogeyBwb3NpdGlvbjogSVBvaW50OyByb3RhdGlvbkRlZzogbnVtYmVyIH0ge1xuICAgIGNvbnN0IHByb2dyZXNzID0gdGhpcy5fY2xhbXAwMShjb250ZW50LnBvc2l0aW9uKCkpO1xuICAgIGNvbnN0IHsgcG9pbnQsIHRhbmdlbnQgfSA9IHNhbXBsZXIuZ2V0UG9pbnRBdExlbmd0aChwcm9ncmVzcyk7XG5cbiAgICAvLyBMZWZ0LWhhbmQgbm9ybWFsXG4gICAgY29uc3Qgbm9ybWFsID0geyB4OiAtdGFuZ2VudC55LCB5OiB0YW5nZW50LnggfTtcblxuICAgIC8vIEFwcGx5IGxhdGVyYWwgb2Zmc2V0XG4gICAgY29uc3QgbGF0ZXJhbCA9IGNvbnRlbnQub2Zmc2V0KCkgPz8gMDtcbiAgICBjb25zdCB4ID0gcG9pbnQueCArIG5vcm1hbC54ICogbGF0ZXJhbDtcbiAgICBjb25zdCB5ID0gcG9pbnQueSArIG5vcm1hbC55ICogbGF0ZXJhbDtcblxuICAgIC8vIEVkZ2UgZ3VhcmRcbiAgICBjb25zdCBwcm9qZWN0ZWRTaXplID0gdGhpcy5fc2l6ZUFsb25nRGlyZWN0aW9uKGNvbnRlbnQuaG9zdEVsZW1lbnQsIHRhbmdlbnQpO1xuICAgIGNvbnN0IGhhbGZFeHRlbnQgPSBwcm9qZWN0ZWRTaXplICogMC41O1xuXG4gICAgY29uc3QgZGlzdGFuY2VGcm9tU3RhcnQgPSBwcm9ncmVzcyAqIHNhbXBsZXIudG90YWxMZW5ndGg7XG4gICAgY29uc3QgZGlzdGFuY2VGcm9tRW5kID0gc2FtcGxlci50b3RhbExlbmd0aCAtIGRpc3RhbmNlRnJvbVN0YXJ0O1xuXG4gICAgY29uc3QgcG9zaXRpb24gPSB0aGlzLl9hcHBseUVkZ2VHdWFyZCh4LCB5LCB0YW5nZW50LCBkaXN0YW5jZUZyb21TdGFydCwgZGlzdGFuY2VGcm9tRW5kLCBoYWxmRXh0ZW50KTtcblxuICAgIGNvbnN0IHJvdGF0aW9uRGVnID0gdGhpcy5fY2FsY3VsYXRlQ29udGVudFJvdGF0aW9uKGNvbnRlbnQuYWxpZ24oKSwgdGFuZ2VudCk7XG5cbiAgICByZXR1cm4geyBwb3NpdGlvbiwgcm90YXRpb25EZWcgfTtcbiAgfVxuXG4gIHByaXZhdGUgX2NsYW1wMDEodjogbnVtYmVyKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdiA8PSAwID8gMCA6IHYgPj0gMSA/IDEgOiB2O1xuICB9XG5cbiAgcHJpdmF0ZSBfYXBwbHlFZGdlR3VhcmQoXG4gICAgeDogbnVtYmVyLFxuICAgIHk6IG51bWJlcixcbiAgICB0YW5nZW50OiBJUG9pbnQsXG4gICAgZGlzdGFuY2VGcm9tU3RhcnQ6IG51bWJlcixcbiAgICBkaXN0YW5jZUZyb21FbmQ6IG51bWJlcixcbiAgICBoYWxmRXh0ZW50OiBudW1iZXIsXG4gICk6IElQb2ludCB7XG4gICAgaWYgKGRpc3RhbmNlRnJvbVN0YXJ0IDw9IGhhbGZFeHRlbnQpIHtcbiAgICAgIGNvbnN0IHB1c2ggPSBoYWxmRXh0ZW50IC0gZGlzdGFuY2VGcm9tU3RhcnQ7XG5cbiAgICAgIHJldHVybiB7IHg6IHggKyB0YW5nZW50LnggKiBwdXNoLCB5OiB5ICsgdGFuZ2VudC55ICogcHVzaCB9O1xuICAgIH1cbiAgICBpZiAoZGlzdGFuY2VGcm9tRW5kIDw9IGhhbGZFeHRlbnQpIHtcbiAgICAgIGNvbnN0IHB1c2ggPSBoYWxmRXh0ZW50IC0gZGlzdGFuY2VGcm9tRW5kO1xuXG4gICAgICByZXR1cm4geyB4OiB4IC0gdGFuZ2VudC54ICogcHVzaCwgeTogeSAtIHRhbmdlbnQueSAqIHB1c2ggfTtcbiAgICB9XG5cbiAgICByZXR1cm4geyB4LCB5IH07XG4gIH1cblxuICBwcml2YXRlIF9zaXplQWxvbmdEaXJlY3Rpb24oZWxlbWVudDogSFRNTEVsZW1lbnQsIGRpcjogSVBvaW50KTogbnVtYmVyIHtcbiAgICBjb25zdCByZWN0ID0gZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgIHJldHVybiBNYXRoLmFicyhkaXIueCkgKiByZWN0LndpZHRoICsgTWF0aC5hYnMoZGlyLnkpICogcmVjdC5oZWlnaHQ7XG4gIH1cblxuICBwcml2YXRlIF9ub3JtYWxpemUxODAoYW5nbGVEZWc6IG51bWJlcik6IG51bWJlciB7XG4gICAgbGV0IGEgPSAoYW5nbGVEZWcgKyAxODApICUgMzYwO1xuICAgIGlmIChhIDwgMCkgYSArPSAzNjA7XG5cbiAgICByZXR1cm4gYSAtIDE4MDtcbiAgfVxuXG4gIHByaXZhdGUgX2tlZXBVcHJpZ2h0KGFuZ2xlRGVnOiBudW1iZXIpOiBudW1iZXIge1xuICAgIGxldCBhID0gdGhpcy5fbm9ybWFsaXplMTgwKGFuZ2xlRGVnKTtcbiAgICBpZiAoYSA+IDkwKSBhIC09IDE4MDtcbiAgICBlbHNlIGlmIChhIDwgLTkwKSBhICs9IDE4MDtcblxuICAgIHJldHVybiBhO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2FsY3VsYXRlQ29udGVudFJvdGF0aW9uKGFsaWduOiBQb2x5bGluZUNvbnRlbnRBbGlnbiwgdGFuZ2VudDogSVBvaW50KSB7XG4gICAgbGV0IHJlc3VsdCA9IDA7XG5cbiAgICBpZiAoYWxpZ24gPT09IFBvbHlsaW5lQ29udGVudEFsaWduLkFMT05HKSB7XG4gICAgICByZXN1bHQgPSAoTWF0aC5hdGFuMih0YW5nZW50LnksIHRhbmdlbnQueCkgKiAxODApIC8gTWF0aC5QSTtcbiAgICAgIHJlc3VsdCA9IHRoaXMuX2tlZXBVcHJpZ2h0KHJlc3VsdCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxufVxuIl19
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9seWxpbmUtY29udGVudC1wbGFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2YtZmxvdy9zcmMvZi1jb25uZWN0aW9uL2YtY29ubmVjdGlvbi1jb250ZW50L3BvbHlsaW5lLWNvbnRlbnQtZW5naW5lL3BvbHlsaW5lLWNvbnRlbnQtcGxhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRWhEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLG9CQUFvQjtJQUN4QixPQUFPLENBQ1osT0FBd0IsRUFDeEIsT0FBeUI7UUFFekIsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUNuRCxNQUFNLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUU5RCxtQkFBbUI7UUFDbkIsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFFL0MsdUJBQXVCO1FBQ3ZCLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDdEMsTUFBTSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQztRQUN2QyxNQUFNLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDO1FBRXZDLGFBQWE7UUFDYixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMs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SSxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBRWYsSUFBSSxLQUFLLEtBQUssb0JBQW9CLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDekMsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQzVELE1BQU0sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JDLENBQUM7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJUG9seWxpbmVDb250ZW50IH0gZnJvbSAnLi9pLXBvbHlsaW5lLWNvbnRlbnQnO1xuaW1wb3J0IHsgSVBvaW50IH0gZnJvbSAnQGZvYmxleC8yZCc7XG5pbXBvcnQgeyBQb2x5bGluZVNhbXBsZXIgfSBmcm9tICcuL3BvbHlsaW5lLXNhbXBsZXInO1xuaW1wb3J0IHsgUG9seWxpbmVDb250ZW50QWxpZ24gfSBmcm9tICcuL3BvbHlsaW5lLWNvbnRlbnQtYWxpZ24nO1xuaW1wb3J0IHsgRHJhZ1JlY3RDYWNoZSB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbic7XG5cbi8qKlxuICogRW5jYXBzdWxhdGVzIHBsYWNlbWVudCBsb2dpYyBmb3IgYSBzaW5nbGUgY29udGVudCBpdGVtIGFsb25nIHRoZSBwYXRoLlxuICovXG5leHBvcnQgY2xhc3MgUG9seWxpbmVDb250ZW50UGxhY2Uge1xuICBwdWJsaWMgY29tcHV0ZShcbiAgICBzYW1wbGVyOiBQb2x5bGluZVNhbXBsZXIsXG4gICAgY29udGVudDogSVBvbHlsaW5lQ29udGVudCxcbiAgKTogeyBwb3NpdGlvbjogSVBvaW50OyByb3RhdGlvbkRlZzogbnVtYmVyIH0ge1xuICAgIGNvbnN0IHByb2dyZXNzID0gdGhpcy5fY2xhbXAwMShjb250ZW50LnBvc2l0aW9uKCkpO1xuICAgIGNvbnN0IHsgcG9pbnQsIHRhbmdlbnQgfSA9IHNhbXBsZXIuZ2V0UG9pbnRBdExlbmd0aChwcm9ncmVzcyk7XG5cbiAgICAvLyBMZWZ0LWhhbmQgbm9ybWFsXG4gICAgY29uc3Qgbm9ybWFsID0geyB4OiAtdGFuZ2VudC55LCB5OiB0YW5nZW50LnggfTtcblxuICAgIC8vIEFwcGx5IGxhdGVyYWwgb2Zmc2V0XG4gICAgY29uc3QgbGF0ZXJhbCA9IGNvbnRlbnQub2Zmc2V0KCkgPz8gMDtcbiAgICBjb25zdCB4ID0gcG9pbnQueCArIG5vcm1hbC54ICogbGF0ZXJhbDtcbiAgICBjb25zdCB5ID0gcG9pbnQueSArIG5vcm1hbC55ICogbGF0ZXJhbDtcblxuICAgIC8vIEVkZ2UgZ3VhcmRcbiAgICBjb25zdCBwcm9qZWN0ZWRTaXplID0gdGhpcy5fc2l6ZUFsb25nRGlyZWN0aW9uKGNvbnRlbnQuaG9zdEVsZW1lbnQsIHRhbmdlbnQpO1xuICAgIGNvbnN0IGhhbGZFeHRlbnQgPSBwcm9qZWN0ZWRTaXplICogMC41O1xuXG4gICAgY29uc3QgZGlzdGFuY2VGcm9tU3RhcnQgPSBwcm9ncmVzcyAqIHNhbXBsZXIudG90YWxMZW5ndGg7XG4gICAgY29uc3QgZGlzdGFuY2VGcm9tRW5kID0gc2FtcGxlci50b3RhbExlbmd0aCAtIGRpc3RhbmNlRnJvbVN0YXJ0O1xuXG4gICAgY29uc3QgcG9zaXRpb24gPSB0aGlzLl9hcHBseUVkZ2VHdWFyZChcbiAgICAgIHgsXG4gICAgICB5LFxuICAgICAgdGFuZ2VudCxcbiAgICAgIGRpc3RhbmNlRnJvbVN0YXJ0LFxuICAgICAgZGlzdGFuY2VGcm9tRW5kLFxuICAgICAgaGFsZkV4dGVudCxcbiAgICApO1xuXG4gICAgY29uc3Qgcm90YXRpb25EZWcgPSB0aGlzLl9jYWxjdWxhdGVDb250ZW50Um90YXRpb24oY29udGVudC5hbGlnbigpLCB0YW5nZW50KTtcblxuICAgIHJldHVybiB7IHBvc2l0aW9uLCByb3RhdGlvbkRlZyB9O1xuICB9XG5cbiAgcHJpdmF0ZSBfY2xhbXAwMSh2OiBudW1iZXIpOiBudW1iZXIge1xuICAgIHJldHVybiB2IDw9IDAgPyAwIDogdiA+PSAxID8gMSA6IHY7XG4gIH1cblxuICBwcml2YXRlIF9hcHBseUVkZ2VHdWFyZChcbiAgICB4OiBudW1iZXIsXG4gICAgeTogbnVtYmVyLFxuICAgIHRhbmdlbnQ6IElQb2ludCxcbiAgICBkaXN0YW5jZUZyb21TdGFydDogbnVtYmVyLFxuICAgIGRpc3RhbmNlRnJvbUVuZDogbnVtYmVyLFxuICAgIGhhbGZFeHRlbnQ6IG51bWJlcixcbiAgKTogSVBvaW50IHtcbiAgICBpZiAoZGlzdGFuY2VGcm9tU3RhcnQgPD0gaGFsZkV4dGVudCkge1xuICAgICAgY29uc3QgcHVzaCA9IGhhbGZFeHRlbnQgLSBkaXN0YW5jZUZyb21TdGFydDtcblxuICAgICAgcmV0dXJuIHsgeDogeCArIHRhbmdlbnQueCAqIHB1c2gsIHk6IHkgKyB0YW5nZW50LnkgKiBwdXNoIH07XG4gICAgfVxuICAgIGlmIChkaXN0YW5jZUZyb21FbmQgPD0gaGFsZkV4dGVudCkge1xuICAgICAgY29uc3QgcHVzaCA9IGhhbGZFeHRlbnQgLSBkaXN0YW5jZUZyb21FbmQ7XG5cbiAgICAgIHJldHVybiB7IHg6IHggLSB0YW5nZW50LnggKiBwdXNoLCB5OiB5IC0gdGFuZ2VudC55ICogcHVzaCB9O1xuICAgIH1cblxuICAgIHJldHVybiB7IHgsIHkgfTtcbiAgfVxuXG4gIHByaXZhdGUgX3NpemVBbG9uZ0RpcmVjdGlvbihlbGVtZW50OiBIVE1MRWxlbWVudCwgZGlyOiBJUG9pbnQpOiBudW1iZXIge1xuICAgIGNvbnN0IHJlY3QgPSBEcmFnUmVjdENhY2hlLmZyb21FbGVtZW50KGVsZW1lbnQpO1xuXG4gICAgcmV0dXJuIE1hdGguYWJzKGRpci54KSAqIHJlY3Qud2lkdGggKyBNYXRoLmFicyhkaXIueSkgKiByZWN0LmhlaWdodDtcbiAgfVxuXG4gIHByaXZhdGUgX25vcm1hbGl6ZTE4MChhbmdsZURlZzogbnVtYmVyKTogbnVtYmVyIHtcbiAgICBsZXQgYSA9IChhbmdsZURlZyArIDE4MCkgJSAzNjA7XG4gICAgaWYgKGEgPCAwKSBhICs9IDM2MDtcblxuICAgIHJldHVybiBhIC0gMTgwO1xuICB9XG5cbiAgcHJpdmF0ZSBfa2VlcFVwcmlnaHQoYW5nbGVEZWc6IG51bWJlcik6IG51bWJlciB7XG4gICAgbGV0IGEgPSB0aGlzLl9ub3JtYWxpemUxODAoYW5nbGVEZWcpO1xuICAgIGlmIChhID4gOTApIGEgLT0gMTgwO1xuICAgIGVsc2UgaWYgKGEgPCAtOTApIGEgKz0gMTgwO1xuXG4gICAgcmV0dXJuIGE7XG4gIH1cblxuICBwcml2YXRlIF9jYWxjdWxhdGVDb250ZW50Um90YXRpb24oYWxpZ246IFBvbHlsaW5lQ29udGVudEFsaWduLCB0YW5nZW50OiBJUG9pbnQpIHtcbiAgICBsZXQgcmVzdWx0ID0gMDtcblxuICAgIGlmIChhbGlnbiA9PT0gUG9seWxpbmVDb250ZW50QWxpZ24uQUxPTkcpIHtcbiAgICAgIHJlc3VsdCA9IChNYXRoLmF0YW4yKHRhbmdlbnQueSwgdGFuZ2VudC54KSAqIDE4MCkgLyBNYXRoLlBJO1xuICAgICAgcmVzdWx0ID0gdGhpcy5fa2VlcFVwcmlnaHQocmVzdWx0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG59XG4iXX0=
@@ -1,5 +1,5 @@
1
- import { ChangeDetectionStrategy, Component, inject, Input, numberAttribute, signal, } from '@angular/core';
2
- import { EFConnectionBehavior } from '../common';
1
+ import { ChangeDetectionStrategy, Component, inject, input, Input, numberAttribute, signal, } from '@angular/core';
2
+ import { EFConnectionBehavior, EFConnectionConnectableSide } from '../common';
3
3
  import { EFConnectionType } from '../common';
4
4
  import { NotifyDataChangedRequest } from '../../f-storage';
5
5
  import { F_CONNECTION } from '../common/f-connection.injection-token';
@@ -28,6 +28,16 @@ export class FConnectionForCreateComponent extends FConnectionBase {
28
28
  fOffset = 12;
29
29
  fBehavior = EFConnectionBehavior.FIXED;
30
30
  fType = EFConnectionType.STRAIGHT;
31
+ fInputSide = input(EFConnectionConnectableSide.DEFAULT, {
32
+ transform: (x) => {
33
+ return castToEnum(x, 'fInputSide', EFConnectionConnectableSide);
34
+ },
35
+ });
36
+ fOutputSide = input(EFConnectionConnectableSide.DEFAULT, {
37
+ transform: (x) => {
38
+ return castToEnum(x, 'fOutputSide', EFConnectionConnectableSide);
39
+ },
40
+ });
31
41
  get boundingElement() {
32
42
  return this.fPath().hostElement;
33
43
  }
@@ -45,7 +55,7 @@ export class FConnectionForCreateComponent extends FConnectionBase {
45
55
  this._mediator.execute(new RemoveConnectionForCreateFromStoreRequest());
46
56
  }
47
57
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FConnectionForCreateComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
48
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: FConnectionForCreateComponent, selector: "f-connection-for-create", inputs: { fRadius: ["fRadius", "fRadius", numberAttribute], fOffset: ["fOffset", "fOffset", numberAttribute], fBehavior: ["fBehavior", "fBehavior", (value) => castToEnum(value, 'fBehavior', EFConnectionBehavior)], fType: "fType" }, host: { classAttribute: "f-component f-connection f-connection-for-create" }, providers: [{ provide: F_CONNECTION, useExisting: FConnectionForCreateComponent }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<svg xmlns=\"http://www.w3.org/2000/svg\">\n <defs #defs></defs>\n <g class=\"f-connection-group\">\n <linearGradient fConnectionGradient></linearGradient>\n <path fConnectionSelection [attr.d]=\"path\"></path>\n <g>\n <path f-connection-path [attr.d]=\"path\"></path>\n <circle f-connection-drag-handle-start r=\"8\"></circle>\n <circle f-connection-drag-handle-end r=\"8\"></circle>\n </g>\n <text f-connection-text></text>\n </g>\n <ng-content></ng-content>\n</svg>\n@if (fConnectionCenters().length) {\n <div #fConnectionCenter class=\"f-connection-center\">\n <ng-content select=\"[fConnectionCenter]\"></ng-content>\n </div>\n}\n\n@if (fConnectionContents().length) {\n <ng-content select=\"[fConnectionContent]\"></ng-content>\n}\n", styles: [":host{pointer-events:none;position:absolute}:host svg{overflow:visible}:host svg .f-connection-group{pointer-events:all}:host .f-connection-center,:host .f-connection-content{pointer-events:all}\n"], dependencies: [{ kind: "component", type: i1.FConnectionTextComponent, selector: "text[f-connection-text]" }, { kind: "component", type: i2.FConnectionDragHandleStartComponent, selector: "circle[f-connection-drag-handle-start]" }, { kind: "component", type: i3.FConnectionDragHandleEndComponent, selector: "circle[f-connection-drag-handle-end]" }, { kind: "component", type: i4.FConnectionGradientComponent, selector: "linearGradient[fConnectionGradient]" }, { kind: "component", type: i5.FConnectionPathComponent, selector: "path[f-connection-path]" }, { kind: "component", type: i6.FConnectionSelectionComponent, selector: "path[fConnectionSelection]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
58
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: FConnectionForCreateComponent, selector: "f-connection-for-create", inputs: { fRadius: { classPropertyName: "fRadius", publicName: "fRadius", isSignal: false, isRequired: false, transformFunction: numberAttribute }, fOffset: { classPropertyName: "fOffset", publicName: "fOffset", isSignal: false, isRequired: false, transformFunction: numberAttribute }, fBehavior: { classPropertyName: "fBehavior", publicName: "fBehavior", isSignal: false, isRequired: false, transformFunction: (value) => castToEnum(value, 'fBehavior', EFConnectionBehavior) }, fType: { classPropertyName: "fType", publicName: "fType", isSignal: false, isRequired: false, transformFunction: null }, fInputSide: { classPropertyName: "fInputSide", publicName: "fInputSide", isSignal: true, isRequired: false, transformFunction: null }, fOutputSide: { classPropertyName: "fOutputSide", publicName: "fOutputSide", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "f-component f-connection f-connection-for-create" }, providers: [{ provide: F_CONNECTION, useExisting: FConnectionForCreateComponent }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<svg xmlns=\"http://www.w3.org/2000/svg\">\n <defs #defs></defs>\n <g class=\"f-connection-group\">\n <linearGradient fConnectionGradient></linearGradient>\n <path fConnectionSelection [attr.d]=\"path\"></path>\n <g>\n <path f-connection-path [attr.d]=\"path\"></path>\n <circle f-connection-drag-handle-start r=\"8\"></circle>\n <circle f-connection-drag-handle-end r=\"8\"></circle>\n </g>\n <text f-connection-text></text>\n </g>\n <ng-content></ng-content>\n</svg>\n@if (fConnectionCenters().length) {\n <div #fConnectionCenter class=\"f-connection-center\">\n <ng-content select=\"[fConnectionCenter]\"></ng-content>\n </div>\n}\n\n@if (fConnectionContents().length) {\n <ng-content select=\"[fConnectionContent]\"></ng-content>\n}\n", styles: [":host{pointer-events:none;position:absolute}:host svg{overflow:visible}:host svg .f-connection-group{pointer-events:all}:host .f-connection-center,:host .f-connection-content{pointer-events:all}\n"], dependencies: [{ kind: "component", type: i1.FConnectionTextComponent, selector: "text[f-connection-text]" }, { kind: "component", type: i2.FConnectionDragHandleStartComponent, selector: "circle[f-connection-drag-handle-start]" }, { kind: "component", type: i3.FConnectionDragHandleEndComponent, selector: "circle[f-connection-drag-handle-end]" }, { kind: "component", type: i4.FConnectionGradientComponent, selector: "linearGradient[fConnectionGradient]" }, { kind: "component", type: i5.FConnectionPathComponent, selector: "path[f-connection-path]" }, { kind: "component", type: i6.FConnectionSelectionComponent, selector: "path[fConnectionSelection]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
49
59
  }
50
60
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FConnectionForCreateComponent, decorators: [{
51
61
  type: Component,
@@ -64,4 +74,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
64
74
  }], fType: [{
65
75
  type: Input
66
76
  }] } });
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jb25uZWN0aW9uLWZvci1jcmVhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNvbm5lY3Rpb24vZi1jb25uZWN0aW9uLWZvci1jcmVhdGUvZi1jb25uZWN0aW9uLWZvci1jcmVhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNvbm5lY3Rpb24vZi1jb25uZWN0aW9uLWZvci1jcmVhdGUvZi1jb25uZWN0aW9uLWZvci1jcmVhdGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsTUFBTSxFQUNOLEtBQUssRUFDTCxlQUFlLEVBSWYsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDN0MsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3RFLGdIQUFnSDtBQUNoSCx3RUFBd0U7QUFDeEUsZ0RBQWdEO0FBQ2hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM3QyxPQUFPLEVBQ0wsb0NBQW9DLEVBQ3BDLHlDQUF5QyxHQUMxQyxNQUFNLGNBQWMsQ0FBQzs7Ozs7Ozs7QUFFdEIsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDO0FBWWpCLE1BQU0sT0FBTyw2QkFDWCxTQUFRLGVBQWU7SUFHUCxHQUFHLEdBQUcsTUFBTSxDQUFTLDJCQUEyQixRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFOUQsS0FBSyxHQUFXLEVBQUUsQ0FBQztJQUVuQixnQkFBZ0IsR0FBVyxFQUFFLENBQUM7SUFFOUIsU0FBUyxHQUFHLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUV2QixRQUFRLEdBQUcsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBR3RCLE9BQU8sR0FBVyxDQUFDLENBQUM7SUFHcEIsT0FBTyxHQUFXLEVBQUUsQ0FBQztJQUdyQixTQUFTLEdBQXlCLG9CQUFvQixDQUFDLEtBQUssQ0FBQztJQUc3RCxLQUFLLEdBQThCLGdCQUFnQixDQUFDLFFBQVEsQ0FBQztJQUU3RSxJQUFvQixlQUFlO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLFdBQVcsQ0FBQztJQUNsQyxDQUFDO0lBRWdCLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFeEMsUUFBUTtRQUNiLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksb0NBQW9DLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRU0sZUFBZTtRQUNwQixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZCxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLHdCQUF3QixFQUFFLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLHlDQUF5QyxFQUFFLENBQUMsQ0FBQztJQUMxRSxDQUFDO3dHQTlDVSw2QkFBNkI7NEZBQTdCLDZCQUE2QixpRkFjcEIsZUFBZSxtQ0FHZixlQUFlLHlDQUdmLENBQUMsS0FBYyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLFdBQVcsRUFBRSxvQkFBb0IsQ0FBQyw4R0F0QmpGLENBQUMsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSw2QkFBNkIsRUFBRSxDQUFDLHNFQ3JDcEYsNHdCQXVCQTs7NEZEZ0JhLDZCQUE2QjtrQkFWekMsU0FBUzsrQkFDRSx5QkFBeUIsbUJBR2xCLHVCQUF1QixDQUFDLE1BQU0sUUFDekM7d0JBQ0osS0FBSyxFQUFFLGtEQUFrRDtxQkFDMUQsYUFDVSxDQUFDLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLCtCQUErQixFQUFFLENBQUM7OEJBaUJsRSxPQUFPO3NCQUR0QixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRTtnQkFJckIsT0FBTztzQkFEdEIsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUU7Z0JBSXJCLFNBQVM7c0JBRHhCLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxLQUFjLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsV0FBVyxFQUFFLG9CQUFvQixDQUFDLEVBQUU7Z0JBSTlFLEtBQUs7c0JBRHBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBpbmplY3QsXG4gIElucHV0LFxuICBudW1iZXJBdHRyaWJ1dGUsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFRkNvbm5lY3Rpb25CZWhhdmlvciB9IGZyb20gJy4uL2NvbW1vbic7XG5pbXBvcnQgeyBFRkNvbm5lY3Rpb25UeXBlIH0gZnJvbSAnLi4vY29tbW9uJztcbmltcG9ydCB7IE5vdGlmeURhdGFDaGFuZ2VkUmVxdWVzdCB9IGZyb20gJy4uLy4uL2Ytc3RvcmFnZSc7XG5pbXBvcnQgeyBGX0NPTk5FQ1RJT04gfSBmcm9tICcuLi9jb21tb24vZi1jb25uZWN0aW9uLmluamVjdGlvbi10b2tlbic7XG4vL1RPRE86IE5lZWQgdG8gZGVhbCB3aXRoIGN5Y2xpYyBkZXBlbmRlbmNpZXMsIHNpbmNlIGluIHNvbWUgY2FzZXMgYW4gZXJyb3Igb2NjdXJzIHdoZW4gaW1wb3J0aW5nIHRoZW0gLi4vY29tbW9uXG4vLyBUeXBlRXJyb3I6IENsYXNzIGV4dGVuZHMgdmFsdWUgdW5kZWZpbmVkIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGxcbi8vIGF0IGYtY29ubmVjdGlvbi1mb3ItY3JlYXRlLmNvbXBvbmVudC50czozNDoxMVxuaW1wb3J0IHsgRkNvbm5lY3Rpb25CYXNlIH0gZnJvbSAnLi4vY29tbW9uL2YtY29ubmVjdGlvbi1iYXNlJztcbmltcG9ydCB7IGNhc3RUb0VudW0gfSBmcm9tICdAZm9ibGV4L3V0aWxzJztcbmltcG9ydCB7IEZNZWRpYXRvciB9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuaW1wb3J0IHtcbiAgQWRkQ29ubmVjdGlvbkZvckNyZWF0ZVRvU3RvcmVSZXF1ZXN0LFxuICBSZW1vdmVDb25uZWN0aW9uRm9yQ3JlYXRlRnJvbVN0b3JlUmVxdWVzdCxcbn0gZnJvbSAnLi4vLi4vZG9tYWluJztcblxubGV0IHVuaXF1ZUlkID0gMDtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZi1jb25uZWN0aW9uLWZvci1jcmVhdGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vZi1jb25uZWN0aW9uLWZvci1jcmVhdGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mLWNvbm5lY3Rpb24tZm9yLWNyZWF0ZS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAnZi1jb21wb25lbnQgZi1jb25uZWN0aW9uIGYtY29ubmVjdGlvbi1mb3ItY3JlYXRlJyxcbiAgfSxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBGX0NPTk5FQ1RJT04sIHVzZUV4aXN0aW5nOiBGQ29ubmVjdGlvbkZvckNyZWF0ZUNvbXBvbmVudCB9XSxcbn0pXG5leHBvcnQgY2xhc3MgRkNvbm5lY3Rpb25Gb3JDcmVhdGVDb21wb25lbnRcbiAgZXh0ZW5kcyBGQ29ubmVjdGlvbkJhc2VcbiAgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95XG57XG4gIHB1YmxpYyBvdmVycmlkZSBmSWQgPSBzaWduYWw8c3RyaW5nPihgZi1jb25uZWN0aW9uLWZvci1jcmVhdGUtJHt1bmlxdWVJZCsrfWApO1xuXG4gIHB1YmxpYyBvdmVycmlkZSBmVGV4dDogc3RyaW5nID0gJyc7XG5cbiAgcHVibGljIG92ZXJyaWRlIGZUZXh0U3RhcnRPZmZzZXQ6IHN0cmluZyA9ICcnO1xuXG4gIHB1YmxpYyBvdmVycmlkZSBmT3V0cHV0SWQgPSBzaWduYWwoJycpO1xuXG4gIHB1YmxpYyBvdmVycmlkZSBmSW5wdXRJZCA9IHNpZ25hbCgnJyk7XG5cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSlcbiAgcHVibGljIG92ZXJyaWRlIGZSYWRpdXM6IG51bWJlciA9IDg7XG5cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSlcbiAgcHVibGljIG92ZXJyaWRlIGZPZmZzZXQ6IG51bWJlciA9IDEyO1xuXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogKHZhbHVlOiB1bmtub3duKSA9PiBjYXN0VG9FbnVtKHZhbHVlLCAnZkJlaGF2aW9yJywgRUZDb25uZWN0aW9uQmVoYXZpb3IpIH0pXG4gIHB1YmxpYyBvdmVycmlkZSBmQmVoYXZpb3I6IEVGQ29ubmVjdGlvbkJlaGF2aW9yID0gRUZDb25uZWN0aW9uQmVoYXZpb3IuRklYRUQ7XG5cbiAgQElucHV0KClcbiAgcHVibGljIG92ZXJyaWRlIGZUeXBlOiBFRkNvbm5lY3Rpb25UeXBlIHwgc3RyaW5nID0gRUZDb25uZWN0aW9uVHlwZS5TVFJBSUdIVDtcblxuICBwdWJsaWMgb3ZlcnJpZGUgZ2V0IGJvdW5kaW5nRWxlbWVudCgpOiBIVE1MRWxlbWVudCB8IFNWR0VsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLmZQYXRoKCkuaG9zdEVsZW1lbnQ7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IF9tZWRpYXRvciA9IGluamVjdChGTWVkaWF0b3IpO1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9tZWRpYXRvci5leGVjdXRlKG5ldyBBZGRDb25uZWN0aW9uRm9yQ3JlYXRlVG9TdG9yZVJlcXVlc3QodGhpcykpO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmhpZGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLl9tZWRpYXRvci5leGVjdXRlKG5ldyBOb3RpZnlEYXRhQ2hhbmdlZFJlcXVlc3QoKSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZShuZXcgUmVtb3ZlQ29ubmVjdGlvbkZvckNyZWF0ZUZyb21TdG9yZVJlcXVlc3QoKSk7XG4gIH1cbn1cbiIsIjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICA8ZGVmcyAjZGVmcz48L2RlZnM+XG4gIDxnIGNsYXNzPVwiZi1jb25uZWN0aW9uLWdyb3VwXCI+XG4gICAgPGxpbmVhckdyYWRpZW50IGZDb25uZWN0aW9uR3JhZGllbnQ+PC9saW5lYXJHcmFkaWVudD5cbiAgICA8cGF0aCBmQ29ubmVjdGlvblNlbGVjdGlvbiBbYXR0ci5kXT1cInBhdGhcIj48L3BhdGg+XG4gICAgPGc+XG4gICAgICA8cGF0aCBmLWNvbm5lY3Rpb24tcGF0aCBbYXR0ci5kXT1cInBhdGhcIj48L3BhdGg+XG4gICAgICA8Y2lyY2xlIGYtY29ubmVjdGlvbi1kcmFnLWhhbmRsZS1zdGFydCByPVwiOFwiPjwvY2lyY2xlPlxuICAgICAgPGNpcmNsZSBmLWNvbm5lY3Rpb24tZHJhZy1oYW5kbGUtZW5kIHI9XCI4XCI+PC9jaXJjbGU+XG4gICAgPC9nPlxuICAgIDx0ZXh0IGYtY29ubmVjdGlvbi10ZXh0PjwvdGV4dD5cbiAgPC9nPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L3N2Zz5cbkBpZiAoZkNvbm5lY3Rpb25DZW50ZXJzKCkubGVuZ3RoKSB7XG4gIDxkaXYgI2ZDb25uZWN0aW9uQ2VudGVyIGNsYXNzPVwiZi1jb25uZWN0aW9uLWNlbnRlclwiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltmQ29ubmVjdGlvbkNlbnRlcl1cIj48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxufVxuXG5AaWYgKGZDb25uZWN0aW9uQ29udGVudHMoKS5sZW5ndGgpIHtcbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2ZDb25uZWN0aW9uQ29udGVudF1cIj48L25nLWNvbnRlbnQ+XG59XG4iXX0=
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZi1jb25uZWN0aW9uLWZvci1jcmVhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNvbm5lY3Rpb24vZi1jb25uZWN0aW9uLWZvci1jcmVhdGUvZi1jb25uZWN0aW9uLWZvci1jcmVhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZi1mbG93L3NyYy9mLWNvbm5lY3Rpb24vZi1jb25uZWN0aW9uLWZvci1jcmVhdGUvZi1jb25uZWN0aW9uLWZvci1jcmVhdGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsTUFBTSxFQUNOLEtBQUssRUFDTCxLQUFLLEVBQ0wsZUFBZSxFQUlmLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDOUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzdDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUN0RSxnSEFBZ0g7QUFDaEgsd0VBQXdFO0FBQ3hFLGdEQUFnRDtBQUNoRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDN0MsT0FBTyxFQUNMLG9DQUFvQyxFQUNwQyx5Q0FBeUMsR0FDMUMsTUFBTSxjQUFjLENBQUM7Ozs7Ozs7O0FBRXRCLElBQUksUUFBUSxHQUFHLENBQUMsQ0FBQztBQVlqQixNQUFNLE9BQU8sNkJBQ1gsU0FBUSxlQUFlO0lBR1AsR0FBRyxHQUFHLE1BQU0sQ0FBUywyQkFBMkIsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRTlELEtBQUssR0FBVyxFQUFFLENBQUM7SUFFbkIsZ0JBQWdCLEdBQVcsRUFBRSxDQUFDO0lBRTlCLFNBQVMsR0FBRyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7SUFFdkIsUUFBUSxHQUFHLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUd0QixPQUFPLEdBQVcsQ0FBQyxDQUFDO0lBR3BCLE9BQU8sR0FBVyxFQUFFLENBQUM7SUFHckIsU0FBUyxHQUF5QixvQkFBb0IsQ0FBQyxLQUFLLENBQUM7SUFHN0QsS0FBSyxHQUE4QixnQkFBZ0IsQ0FBQyxRQUFRLENBQUM7SUFFN0QsVUFBVSxHQUFHLEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxPQUFPLEVBQUU7UUFDdEUsU0FBUyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDZixPQUFPLFVBQVUsQ0FBQyxDQUFDLEVBQUUsWUFBWSxFQUFFLDJCQUEyQixDQUFDLENBQUM7UUFDbEUsQ0FBQztLQUNGLENBQUMsQ0FBQztJQUVhLFdBQVcsR0FBRyxLQUFLLENBQUMsMkJBQTJCLENBQUMsT0FBTyxFQUFFO1FBQ3ZFLFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ2YsT0FBTyxVQUFVLENBQUMsQ0FBQyxFQUFFLGFBQWEsRUFBRSwyQkFBMkIsQ0FBQyxDQUFDO1FBQ25FLENBQUM7S0FDRixDQUFDLENBQUM7SUFFSCxJQUFvQixlQUFlO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLFdBQVcsQ0FBQztJQUNsQyxDQUFDO0lBRWdCLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFeEMsUUFBUTtRQUNiLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksb0NBQW9DLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRU0sZUFBZTtRQUNwQixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDZCxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLHdCQUF3QixFQUFFLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLHlDQUF5QyxFQUFFLENBQUMsQ0FBQztJQUMxRSxDQUFDO3dHQTFEVSw2QkFBNkI7NEZBQTdCLDZCQUE2Qix3S0FjcEIsZUFBZSwySEFHZixlQUFlLGlJQUdmLENBQUMsS0FBYyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLFdBQVcsRUFBRSxvQkFBb0IsQ0FBQyx5ZUF0QmpGLENBQUMsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSw2QkFBNkIsRUFBRSxDQUFDLHNFQ3RDcEYsNHdCQXVCQTs7NEZEaUJhLDZCQUE2QjtrQkFWekMsU0FBUzsrQkFDRSx5QkFBeUIsbUJBR2xCLHVCQUF1QixDQUFDLE1BQU0sUUFDekM7d0JBQ0osS0FBSyxFQUFFLGtEQUFrRDtxQkFDMUQsYUFDVSxDQUFDLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLCtCQUErQixFQUFFLENBQUM7OEJBaUJsRSxPQUFPO3NCQUR0QixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRTtnQkFJckIsT0FBTztzQkFEdEIsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUU7Z0JBSXJCLFNBQVM7c0JBRHhCLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxLQUFjLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsV0FBVyxFQUFFLG9CQUFvQixDQUFDLEVBQUU7Z0JBSTlFLEtBQUs7c0JBRHBCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBJbnB1dCxcbiAgbnVtYmVyQXR0cmlidXRlLFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRUZDb25uZWN0aW9uQmVoYXZpb3IsIEVGQ29ubmVjdGlvbkNvbm5lY3RhYmxlU2lkZSB9IGZyb20gJy4uL2NvbW1vbic7XG5pbXBvcnQgeyBFRkNvbm5lY3Rpb25UeXBlIH0gZnJvbSAnLi4vY29tbW9uJztcbmltcG9ydCB7IE5vdGlmeURhdGFDaGFuZ2VkUmVxdWVzdCB9IGZyb20gJy4uLy4uL2Ytc3RvcmFnZSc7XG5pbXBvcnQgeyBGX0NPTk5FQ1RJT04gfSBmcm9tICcuLi9jb21tb24vZi1jb25uZWN0aW9uLmluamVjdGlvbi10b2tlbic7XG4vL1RPRE86IE5lZWQgdG8gZGVhbCB3aXRoIGN5Y2xpYyBkZXBlbmRlbmNpZXMsIHNpbmNlIGluIHNvbWUgY2FzZXMgYW4gZXJyb3Igb2NjdXJzIHdoZW4gaW1wb3J0aW5nIHRoZW0gLi4vY29tbW9uXG4vLyBUeXBlRXJyb3I6IENsYXNzIGV4dGVuZHMgdmFsdWUgdW5kZWZpbmVkIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGxcbi8vIGF0IGYtY29ubmVjdGlvbi1mb3ItY3JlYXRlLmNvbXBvbmVudC50czozNDoxMVxuaW1wb3J0IHsgRkNvbm5lY3Rpb25CYXNlIH0gZnJvbSAnLi4vY29tbW9uL2YtY29ubmVjdGlvbi1iYXNlJztcbmltcG9ydCB7IGNhc3RUb0VudW0gfSBmcm9tICdAZm9ibGV4L3V0aWxzJztcbmltcG9ydCB7IEZNZWRpYXRvciB9IGZyb20gJ0Bmb2JsZXgvbWVkaWF0b3InO1xuaW1wb3J0IHtcbiAgQWRkQ29ubmVjdGlvbkZvckNyZWF0ZVRvU3RvcmVSZXF1ZXN0LFxuICBSZW1vdmVDb25uZWN0aW9uRm9yQ3JlYXRlRnJvbVN0b3JlUmVxdWVzdCxcbn0gZnJvbSAnLi4vLi4vZG9tYWluJztcblxubGV0IHVuaXF1ZUlkID0gMDtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZi1jb25uZWN0aW9uLWZvci1jcmVhdGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vZi1jb25uZWN0aW9uLWZvci1jcmVhdGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mLWNvbm5lY3Rpb24tZm9yLWNyZWF0ZS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAnZi1jb21wb25lbnQgZi1jb25uZWN0aW9uIGYtY29ubmVjdGlvbi1mb3ItY3JlYXRlJyxcbiAgfSxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBGX0NPTk5FQ1RJT04sIHVzZUV4aXN0aW5nOiBGQ29ubmVjdGlvbkZvckNyZWF0ZUNvbXBvbmVudCB9XSxcbn0pXG5leHBvcnQgY2xhc3MgRkNvbm5lY3Rpb25Gb3JDcmVhdGVDb21wb25lbnRcbiAgZXh0ZW5kcyBGQ29ubmVjdGlvbkJhc2VcbiAgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95XG57XG4gIHB1YmxpYyBvdmVycmlkZSBmSWQgPSBzaWduYWw8c3RyaW5nPihgZi1jb25uZWN0aW9uLWZvci1jcmVhdGUtJHt1bmlxdWVJZCsrfWApO1xuXG4gIHB1YmxpYyBvdmVycmlkZSBmVGV4dDogc3RyaW5nID0gJyc7XG5cbiAgcHVibGljIG92ZXJyaWRlIGZUZXh0U3RhcnRPZmZzZXQ6IHN0cmluZyA9ICcnO1xuXG4gIHB1YmxpYyBvdmVycmlkZSBmT3V0cHV0SWQgPSBzaWduYWwoJycpO1xuXG4gIHB1YmxpYyBvdmVycmlkZSBmSW5wdXRJZCA9IHNpZ25hbCgnJyk7XG5cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSlcbiAgcHVibGljIG92ZXJyaWRlIGZSYWRpdXM6IG51bWJlciA9IDg7XG5cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSlcbiAgcHVibGljIG92ZXJyaWRlIGZPZmZzZXQ6IG51bWJlciA9IDEyO1xuXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogKHZhbHVlOiB1bmtub3duKSA9PiBjYXN0VG9FbnVtKHZhbHVlLCAnZkJlaGF2aW9yJywgRUZDb25uZWN0aW9uQmVoYXZpb3IpIH0pXG4gIHB1YmxpYyBvdmVycmlkZSBmQmVoYXZpb3I6IEVGQ29ubmVjdGlvbkJlaGF2aW9yID0gRUZDb25uZWN0aW9uQmVoYXZpb3IuRklYRUQ7XG5cbiAgQElucHV0KClcbiAgcHVibGljIG92ZXJyaWRlIGZUeXBlOiBFRkNvbm5lY3Rpb25UeXBlIHwgc3RyaW5nID0gRUZDb25uZWN0aW9uVHlwZS5TVFJBSUdIVDtcblxuICBwdWJsaWMgb3ZlcnJpZGUgZklucHV0U2lkZSA9IGlucHV0KEVGQ29ubmVjdGlvbkNvbm5lY3RhYmxlU2lkZS5ERUZBVUxULCB7XG4gICAgdHJhbnNmb3JtOiAoeCkgPT4ge1xuICAgICAgcmV0dXJuIGNhc3RUb0VudW0oeCwgJ2ZJbnB1dFNpZGUnLCBFRkNvbm5lY3Rpb25Db25uZWN0YWJsZVNpZGUpO1xuICAgIH0sXG4gIH0pO1xuXG4gIHB1YmxpYyBvdmVycmlkZSBmT3V0cHV0U2lkZSA9IGlucHV0KEVGQ29ubmVjdGlvbkNvbm5lY3RhYmxlU2lkZS5ERUZBVUxULCB7XG4gICAgdHJhbnNmb3JtOiAoeCkgPT4ge1xuICAgICAgcmV0dXJuIGNhc3RUb0VudW0oeCwgJ2ZPdXRwdXRTaWRlJywgRUZDb25uZWN0aW9uQ29ubmVjdGFibGVTaWRlKTtcbiAgICB9LFxuICB9KTtcblxuICBwdWJsaWMgb3ZlcnJpZGUgZ2V0IGJvdW5kaW5nRWxlbWVudCgpOiBIVE1MRWxlbWVudCB8IFNWR0VsZW1lbnQge1xuICAgIHJldHVybiB0aGlzLmZQYXRoKCkuaG9zdEVsZW1lbnQ7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IF9tZWRpYXRvciA9IGluamVjdChGTWVkaWF0b3IpO1xuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9tZWRpYXRvci5leGVjdXRlKG5ldyBBZGRDb25uZWN0aW9uRm9yQ3JlYXRlVG9TdG9yZVJlcXVlc3QodGhpcykpO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmhpZGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLl9tZWRpYXRvci5leGVjdXRlKG5ldyBOb3RpZnlEYXRhQ2hhbmdlZFJlcXVlc3QoKSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fbWVkaWF0b3IuZXhlY3V0ZShuZXcgUmVtb3ZlQ29ubmVjdGlvbkZvckNyZWF0ZUZyb21TdG9yZVJlcXVlc3QoKSk7XG4gIH1cbn1cbiIsIjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICA8ZGVmcyAjZGVmcz48L2RlZnM+XG4gIDxnIGNsYXNzPVwiZi1jb25uZWN0aW9uLWdyb3VwXCI+XG4gICAgPGxpbmVhckdyYWRpZW50IGZDb25uZWN0aW9uR3JhZGllbnQ+PC9saW5lYXJHcmFkaWVudD5cbiAgICA8cGF0aCBmQ29ubmVjdGlvblNlbGVjdGlvbiBbYXR0ci5kXT1cInBhdGhcIj48L3BhdGg+XG4gICAgPGc+XG4gICAgICA8cGF0aCBmLWNvbm5lY3Rpb24tcGF0aCBbYXR0ci5kXT1cInBhdGhcIj48L3BhdGg+XG4gICAgICA8Y2lyY2xlIGYtY29ubmVjdGlvbi1kcmFnLWhhbmRsZS1zdGFydCByPVwiOFwiPjwvY2lyY2xlPlxuICAgICAgPGNpcmNsZSBmLWNvbm5lY3Rpb24tZHJhZy1oYW5kbGUtZW5kIHI9XCI4XCI+PC9jaXJjbGU+XG4gICAgPC9nPlxuICAgIDx0ZXh0IGYtY29ubmVjdGlvbi10ZXh0PjwvdGV4dD5cbiAgPC9nPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L3N2Zz5cbkBpZiAoZkNvbm5lY3Rpb25DZW50ZXJzKCkubGVuZ3RoKSB7XG4gIDxkaXYgI2ZDb25uZWN0aW9uQ2VudGVyIGNsYXNzPVwiZi1jb25uZWN0aW9uLWNlbnRlclwiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltmQ29ubmVjdGlvbkNlbnRlcl1cIj48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxufVxuXG5AaWYgKGZDb25uZWN0aW9uQ29udGVudHMoKS5sZW5ndGgpIHtcbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2ZDb25uZWN0aW9uQ29udGVudF1cIj48L25nLWNvbnRlbnQ+XG59XG4iXX0=