ghost 6.37.1 → 6.38.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (258) hide show
  1. package/components/tryghost-i18n-0.0.0.tgz +0 -0
  2. package/core/boot.js +13 -9
  3. package/core/bridge.js +10 -6
  4. package/core/built/admin/assets/{PolarAngleAxis-Cavik65s.js → PolarAngleAxis-CB-FJBDa.js} +1 -1
  5. package/core/built/admin/assets/{_baseAssignValue-CnqN6ZMT.js → _baseAssignValue-BEAjPAfy.js} +1 -1
  6. package/core/built/admin/assets/{a-large-small-Wi4LtZX-.js → a-large-small-L1BJa6mG.js} +1 -1
  7. package/core/built/admin/assets/admin-x-settings/admin-x-settings.js +1 -1
  8. package/core/built/admin/assets/admin-x-settings/{code-editor-view-Cf8T5Jfd.mjs → code-editor-view-bOZzJ3a1.mjs} +2 -2
  9. package/core/built/admin/assets/admin-x-settings/{index-BMWEh-vR.mjs → index-BRuMxaCz.mjs} +2 -2
  10. package/core/built/admin/assets/admin-x-settings/{index-Aj-hFSnY.mjs → index-CTAQj489.mjs} +5 -5
  11. package/core/built/admin/assets/admin-x-settings/{index-DjBJrXYn.mjs → index-WoKKBOe4.mjs} +2 -2
  12. package/core/built/admin/assets/admin-x-settings/{modals-8WpWZZdI.mjs → modals-BQ5M-RTA.mjs} +3 -3
  13. package/core/built/admin/assets/{arrow-right-BiAOKOto.js → arrow-right-B2j-ecEK.js} +1 -1
  14. package/core/built/admin/assets/{at-sign-z5gBMxDW.js → at-sign-CtAw8_lw.js} +1 -1
  15. package/core/built/admin/assets/{audience-DxNilLIv.js → audience-CvSOqHuo.js} +1 -1
  16. package/core/built/admin/assets/automations-BVUNuVOh.js +1 -0
  17. package/core/built/admin/assets/automations-Bi9RJq5E.js +1 -0
  18. package/core/built/admin/assets/{avatar-flipboard-5OzseZFV.js → avatar-flipboard-DocLTXLh.js} +1 -1
  19. package/core/built/admin/assets/{bluesky-sharing-D9YcSpW8.js → bluesky-sharing-DafX2lE1.js} +1 -1
  20. package/core/built/admin/assets/chart-BRQeD9eh.js +67 -0
  21. package/core/built/admin/assets/{chevron-up-DVt6fhV3.js → chevron-up-v4_QwmnL.js} +1 -1
  22. package/core/built/admin/assets/{chunk.524.fcd26ef812d73e2b0620.js → chunk.524.c3d844070c24d7984fd7.js} +4 -4
  23. package/core/built/admin/assets/{chunk.582.b61ffaad1c2fa4aba820.js → chunk.582.0e0ede1eac12926acceb.js} +6 -6
  24. package/core/built/admin/assets/{chunk.383.adb5a3fe32b6b98c43ff.js → chunk.995.4b32363ab39da3e7f5d7.js} +3 -3
  25. package/core/built/admin/assets/circle-alert-Dbz54fYb.js +1 -0
  26. package/core/built/admin/assets/{code-editor-view-CbQIqTrK.js → code-editor-view-D-pYCcdu.js} +1 -1
  27. package/core/built/admin/assets/comments-DSv09jRn.js +1 -0
  28. package/core/built/admin/assets/{content-helpers-jANWGIfA.js → content-helpers-DQdPPDGb.js} +1 -1
  29. package/core/built/admin/assets/{copy-BBLeLEnG.js → copy-BULQsPZ4.js} +1 -1
  30. package/core/built/admin/assets/{data-list-BveeOSGI.js → data-list-WxXC0iKE.js} +1 -1
  31. package/core/built/admin/assets/{deleted-feed-item-DupAEk4P.js → deleted-feed-item-ZBLfgRkK.js} +1 -1
  32. package/core/built/admin/assets/{dropzone-D3PSdAHN.js → dropzone-B8mAoWrn.js} +1 -1
  33. package/core/built/admin/assets/{edit-profile-NrCR9_bi.js → edit-profile-Bj3th8H0.js} +1 -1
  34. package/core/built/admin/assets/editor-BZV40eAE.css +1 -0
  35. package/core/built/admin/assets/editor-u20VuPzn.js +7 -0
  36. package/core/built/admin/assets/{empty-indicator-Dhi_KeYX.js → empty-indicator-P3IsUguf.js} +1 -1
  37. package/core/built/admin/assets/{en-BontI3SP.js → en-C9bUnuy7.js} +1 -1
  38. package/core/built/admin/assets/{feed-B3Kfiz5R.js → feed-B94mO944.js} +1 -1
  39. package/core/built/admin/assets/{filter-query-core-Dwh4Qulu.js → filter-query-core-CM0KKIr2.js} +1 -1
  40. package/core/built/admin/assets/filters-D52FTE0z.js +1 -0
  41. package/core/built/admin/assets/gh-chart-Xa6Nvzwz.js +1 -0
  42. package/core/built/admin/assets/{ghost-c25434d5bbf5a5429883d4c3590f1946.js → ghost-82f1c4ffe0e1cd058ce4b66b5253b620.js} +159 -201
  43. package/core/built/admin/assets/{ghost-dark-52df27573e5f2a75e6cf4b1d06eea9e4.css → ghost-dark-9897cf5102772faedf566e5e54d4fbee.css} +1 -1
  44. package/core/built/admin/assets/{ghost-fcf460028e04192f392f16e173f2e3a8.css → ghost-e11f1814be0f38e98bb77b49eba11178.css} +1 -1
  45. package/core/built/admin/assets/{growth-DRH8zUIJ.js → growth-D3TW3JIB.js} +1 -1
  46. package/core/built/admin/assets/{hash-UvX5iOa9.js → hash-CstXS-iB.js} +1 -1
  47. package/core/built/admin/assets/{header-G1a38jnf.js → header-StkTITw-.js} +1 -1
  48. package/core/built/admin/assets/{inbox-By7HZskI.js → inbox-D1RM3kVF.js} +1 -1
  49. package/core/built/admin/assets/index-BEkJ9xtY.css +1 -0
  50. package/core/built/admin/assets/{index-CS_ZmI8F.js → index-BJx5Uas5.js} +1 -1
  51. package/core/built/admin/assets/index-BKzg6OE7.js +1 -0
  52. package/core/built/admin/assets/{index-D7JyKf1m.js → index-BM-MBdD0.js} +1 -1
  53. package/core/built/admin/assets/index-BRzvVuXt.js +2 -0
  54. package/core/built/admin/assets/index-B_3xqeM9.js +1 -0
  55. package/core/built/admin/assets/{index-ydyrczVl.js → index-C-OdR2wJ.js} +1 -1
  56. package/core/built/admin/assets/{index-X-MG1ikg.js → index-C59QlJqT.js} +1 -1
  57. package/core/built/admin/assets/{index-CJo0Qh4V.js → index-CCq_1tCo.js} +1 -1
  58. package/core/built/admin/assets/{index-qHUvPjQB.js → index-CYyEyBYw.js} +11 -11
  59. package/core/built/admin/assets/{index-CX4ztLSk.js → index-DHbiBjyq.js} +1 -1
  60. package/core/built/admin/assets/{index-BP6hBbPK.js → index-DTVgSMyL.js} +2 -2
  61. package/core/built/admin/assets/{index-vZMbI8e8.js → index-DiUjEgRw.js} +1 -1
  62. package/core/built/admin/assets/{index-YM4ZplGj.js → index-DugxKzA6.js} +1 -1
  63. package/core/built/admin/assets/{index-D8InZCr2.js → index-DzVHlhO1.js} +1 -1
  64. package/core/built/admin/assets/{index-D4b7U6K-.js → index-LsaD9Cq7.js} +1 -1
  65. package/core/built/admin/assets/{index-DRUPF8nN.js → index-x0hNfyqU.js} +1 -1
  66. package/core/built/admin/assets/{inline-Bc9zHR7e.js → inline-B4cWemrJ.js} +1 -1
  67. package/core/built/admin/assets/{koenig-lexical-B-ZnqRE1.js → koenig-lexical-BOdeH3QJ.js} +1 -1
  68. package/core/built/admin/assets/{kpi-card-zyi5Onb0.js → kpi-card-P7zSpcx0.js} +1 -1
  69. package/core/built/admin/assets/{kpi-card-CzlPIEPE.js → kpi-card-plhYOEtA.js} +1 -1
  70. package/core/built/admin/assets/{kpi-tabs-Dsa5ldXK.js → kpi-tabs-DZw2Qktb.js} +1 -1
  71. package/core/built/admin/assets/{kpis-Cw5ZRQhk.js → kpis-CDHM0xhW.js} +1 -1
  72. package/core/built/admin/assets/{label-BvxmsD1M.js → label-Ckacdx14.js} +1 -1
  73. package/core/built/admin/assets/{links-CiS5BPKS.js → links-BtXE5d0Y.js} +1 -1
  74. package/core/built/admin/assets/{list-filter-zmkB7rg4.js → list-filter-DLjjiktn.js} +1 -1
  75. package/core/built/admin/assets/{list-header-Cp779e3H.js → list-header-Cc7Ia3nr.js} +1 -1
  76. package/core/built/admin/assets/loader-circle-DLJd-dNm.js +1 -0
  77. package/core/built/admin/assets/{mail-i2qs8CIG.js → mail-B97w28e2.js} +1 -1
  78. package/core/built/admin/assets/{main-layout-KCvKOX8F.js → main-layout-bwWvzc9B.js} +1 -1
  79. package/core/built/admin/assets/{members-w601v5JJ.js → members-CokS8MI2.js} +5 -5
  80. package/core/built/admin/assets/{message-square-text-bG9IoWIt.js → message-square-text-D3rsjDFR.js} +1 -1
  81. package/core/built/admin/assets/minus-BzXQVmMw.js +1 -0
  82. package/core/built/admin/assets/{modals-lNzhiL0o.js → modals-D0lip-iy.js} +2 -2
  83. package/core/built/admin/assets/{moderation-CyfNRSWj.js → moderation-Dv7AadCV.js} +1 -1
  84. package/core/built/admin/assets/newsletter-BazC5rIj.js +1 -0
  85. package/core/built/admin/assets/{newsletters-B8xSXSr_.js → newsletters-m6HQgU5J.js} +1 -1
  86. package/core/built/admin/assets/{note-dNfKEpxw.js → note-CCGiEKz-.js} +1 -1
  87. package/core/built/admin/assets/{onboarding-route-Drbw0QtT.js → onboarding-route-Cbt7qWNE.js} +1 -1
  88. package/core/built/admin/assets/overview-TN50tzUh.js +1 -0
  89. package/core/built/admin/assets/{pagemenu-VJXMoMB4.js → pagemenu-BXrHWtsU.js} +1 -1
  90. package/core/built/admin/assets/{pencil-DHNmlLjO.js → pencil-BL1r8KVy.js} +1 -1
  91. package/core/built/admin/assets/{post-analytics-PsqLsS2e.js → post-analytics-BqEXi6Ps.js} +1 -1
  92. package/core/built/admin/assets/{post-analytics-context-QLZsZCFg.js → post-analytics-context-DekYNlb3.js} +1 -1
  93. package/core/built/admin/assets/{post-analytics-header-PecXsIT-.js → post-analytics-header-AkNbn6uc.js} +1 -1
  94. package/core/built/admin/assets/{post-share-modal-B4Rvo7W1.js → post-share-modal-CXDGVKoQ.js} +1 -1
  95. package/core/built/admin/assets/posts/{app-utils-DIc5TmxO.mjs → app-utils-DxA7edI_.mjs} +2 -2
  96. package/core/built/admin/assets/posts/{automations-BZpT35kJ.mjs → automations-Cwu_gHl4.mjs} +64 -67
  97. package/core/built/admin/assets/posts/automations-D81hV_2c.mjs +13 -0
  98. package/core/built/admin/assets/posts/{avatar-K63cvqSS.mjs → avatar-IkjEzEjI.mjs} +19 -19
  99. package/core/built/admin/assets/posts/{button-ufGBCcsV.mjs → button-KaJZKcou.mjs} +21 -21
  100. package/core/built/admin/assets/posts/{check-IcEnuTpD.mjs → check-Cf74RvZ1.mjs} +21 -21
  101. package/core/built/admin/assets/posts/{comments-CyJU9Ums.mjs → comments-pdKhYbYG.mjs} +54 -52
  102. package/core/built/admin/assets/posts/createLucideIcon-Cj7h3r9g.mjs +320 -0
  103. package/core/built/admin/assets/posts/{dialog-D6_lBvtT.mjs → dialog-Ci3W8fjx.mjs} +71 -76
  104. package/core/built/admin/assets/posts/{dropdown-menu-BSSmAory.mjs → dropdown-menu-DZ9XCHSw.mjs} +5 -5
  105. package/core/built/admin/assets/posts/editor-Bb-xle0o.mjs +6084 -0
  106. package/core/built/admin/assets/posts/ellipsis-ChhZo9aT.mjs +10 -0
  107. package/core/built/admin/assets/posts/{empty-indicator-DvGCvRAX.mjs → empty-indicator-DnFs7hDy.mjs} +2 -2
  108. package/core/built/admin/assets/posts/{filters-BLBaHhJz.mjs → filters-CO_FUPX-.mjs} +42 -40
  109. package/core/built/admin/assets/posts/get-site-timezone-C21yKZT_.mjs +87 -0
  110. package/core/built/admin/assets/posts/{growth-Bz1ChJNB.mjs → growth-CtX9Efm2.mjs} +12 -12
  111. package/core/built/admin/assets/posts/heading-DZ_KtDTL.mjs +138 -0
  112. package/core/built/admin/assets/posts/{hooks-BEngBys9.mjs → hooks-DVhBDVlA.mjs} +3 -2
  113. package/core/built/admin/assets/posts/{index-BAF0YXsp.mjs → index-B4db8w_H.mjs} +181 -172
  114. package/core/built/admin/assets/posts/{inline-C2YFQAdU.mjs → inline-BfB-SNk0.mjs} +2 -2
  115. package/core/built/admin/assets/posts/{input-surface-TqJlNSp_.mjs → input-surface-CNwZJloi.mjs} +2 -2
  116. package/core/built/admin/assets/posts/{kpis-DAX5_0-Q.mjs → kpis-BvY_5Y1u.mjs} +8792 -8803
  117. package/core/built/admin/assets/posts/{links-A1YTsBbF.mjs → links-Ck-h7SKg.mjs} +57 -57
  118. package/core/built/admin/assets/posts/{loading-indicator-BZsjmp8g.mjs → loading-indicator-B_rU9Lie.mjs} +3 -3
  119. package/core/built/admin/assets/posts/mail-DiZ3oKEW.mjs +9 -0
  120. package/core/built/admin/assets/posts/{main-layout-D_HHTP_n.mjs → main-layout-aYo6qOBZ.mjs} +2 -2
  121. package/core/built/admin/assets/posts/{newsletter-BRzgjOIa.mjs → newsletter-BQc53TF2.mjs} +31 -30
  122. package/core/built/admin/assets/posts/{overview-C41VFjn7.mjs → overview-blz9Ak9q.mjs} +42 -41
  123. package/core/built/admin/assets/posts/plus-YVjtYaK3.mjs +15 -0
  124. package/core/built/admin/assets/posts/{post-analytics-DGgMkFaf.mjs → post-analytics-BQbWGoeu.mjs} +6 -6
  125. package/core/built/admin/assets/posts/{post-analytics-context-B1r3HBrp.mjs → post-analytics-context-Be7THgnd.mjs} +7 -7
  126. package/core/built/admin/assets/posts/{post-analytics-header-DTWSO0Aq.mjs → post-analytics-header-iDFy7Bao.mjs} +2762 -2764
  127. package/core/built/admin/assets/posts/{post-share-modal-ohHwk0Yt.mjs → post-share-modal-akP16idN.mjs} +50 -48
  128. package/core/built/admin/assets/posts/posts.js +2 -1
  129. package/core/built/admin/assets/posts/{settings-CZYL6Jhr.mjs → settings-BdQhfHxY.mjs} +2 -2
  130. package/core/built/admin/assets/posts/{sheet-D7YesQJE.mjs → sheet-3dBlKeXf.mjs} +14 -13
  131. package/core/built/admin/assets/posts/{skeleton-S1k58YKa.mjs → skeleton-DMgSvYqr.mjs} +11 -11
  132. package/core/built/admin/assets/posts/{source-icon-DnpCy5N4.mjs → source-icon-Bp5Qxq1E.mjs} +4 -4
  133. package/core/built/admin/assets/posts/{stats-CbOpowXb.mjs → stats-DJx9qc_u.mjs} +4 -4
  134. package/core/built/admin/assets/posts/{table-Cw3Wxf1C.mjs → table-BpVwuzeH.mjs} +2 -2
  135. package/core/built/admin/assets/posts/{data-list-BnZARP88.mjs → tabs-CbZCpxfI.mjs} +4885 -5284
  136. package/core/built/admin/assets/posts/{tags-BoMt6Ce3.mjs → tags-CNtvDS6f.mjs} +33 -33
  137. package/core/built/admin/assets/posts/{tags-CNdsvTtZ.mjs → tags-DFOoFZ_3.mjs} +2 -2
  138. package/core/built/admin/assets/posts/{tooltip-CTcyINxz.mjs → tooltip-Cc_09RDU.mjs} +106 -117
  139. package/core/built/admin/assets/posts/value-CwGM7M-1.mjs +410 -0
  140. package/core/built/admin/assets/posts/{virtual-list-window-Bs88yrut.mjs → virtual-list-window-D6nRoL0y.mjs} +5 -5
  141. package/core/built/admin/assets/posts/{web-Bsd8eTP6.mjs → web-yfPssEt8.mjs} +1042 -1040
  142. package/core/built/admin/assets/posts/x-DrUGcpfp.mjs +9 -0
  143. package/core/built/admin/assets/posts/zap-DAN0ur-o.mjs +24 -0
  144. package/core/built/admin/assets/posts-D-jyPPE6.js +1 -0
  145. package/core/built/admin/assets/power-Cc5ncYVl.js +1 -0
  146. package/core/built/admin/assets/{referrers-kcBT5smx.js → referrers-qnXsKsuv.js} +1 -1
  147. package/core/built/admin/assets/{repeat-Cn2sKd-L.js → repeat-BGIBynZH.js} +1 -1
  148. package/core/built/admin/assets/{reply-D7E-ZMd5.js → reply-DOKdAsL_.js} +1 -1
  149. package/core/built/admin/assets/{rocket-DnH0XAGW.js → rocket-CAN2NB82.js} +1 -1
  150. package/core/built/admin/assets/{select-f0MMMQWu.js → select-8S9kYGSM.js} +1 -1
  151. package/core/built/admin/assets/{settings-BAQNP3gU.js → settings-DeD-bmZc.js} +4 -4
  152. package/core/built/admin/assets/{settings-ORttG1jT.js → settings-e4IB9sx6.js} +1 -1
  153. package/core/built/admin/assets/{share-modal-CXU4tGY8.js → share-modal-CBavk20I.js} +1 -1
  154. package/core/built/admin/assets/{sort-button-BXMrChFu.js → sort-button-DlSKBzUq.js} +1 -1
  155. package/core/built/admin/assets/{source-icon-cjy79jGT.js → source-icon-27VIJSXr.js} +1 -1
  156. package/core/built/admin/assets/{sprout-DZ4tZ78G.js → sprout-D66nqc79.js} +1 -1
  157. package/core/built/admin/assets/{square-vOzqJf7x.js → square-DccaXQWe.js} +1 -1
  158. package/core/built/admin/assets/stats/{audience-5NeJICtP.mjs → audience-B84ClTDM.mjs} +3 -3
  159. package/core/built/admin/assets/stats/{content-helpers-DFSTl3uB.mjs → content-helpers-CBAddUg7.mjs} +4 -4
  160. package/core/built/admin/assets/stats/{index-C4T7u699.mjs → index-Bz5oVpED.mjs} +5 -5
  161. package/core/built/admin/assets/stats/{index-B8bp6qe2.mjs → index-Cs8i1uR4.mjs} +74 -75
  162. package/core/built/admin/assets/stats/{index-wvi17m79.mjs → index-DEsP_Tbd.mjs} +8 -8
  163. package/core/built/admin/assets/stats/{index-CFfAYHdD.mjs → index-Ds-pM47x.mjs} +5 -5
  164. package/core/built/admin/assets/stats/{index-Chqk7VlR.mjs → index-Wzk1IcAz.mjs} +6 -6
  165. package/core/built/admin/assets/stats/{kpi-tabs-Df9yOI2P.mjs → kpi-tabs-Cs4l8B_M.mjs} +7 -7
  166. package/core/built/admin/assets/stats/{sort-button-Doi8OgMU.mjs → sort-button-rR-GA9Hu.mjs} +3 -3
  167. package/core/built/admin/assets/stats/{stats-FXeCefyd.mjs → stats-RFpEJpEq.mjs} +34 -34
  168. package/core/built/admin/assets/stats/stats.js +1 -1
  169. package/core/built/admin/assets/stats/{use-growth-stats-93C_3EZk.mjs → use-growth-stats-DwgFzbq9.mjs} +3 -3
  170. package/core/built/admin/assets/{stats-CIGz2Win.js → stats-B4OybenW.js} +1 -1
  171. package/core/built/admin/assets/{stats-view-BTKRxYTQ.js → stats-view-BuExwFXa.js} +1 -1
  172. package/core/built/admin/assets/{step-1-BSMHbT-q.js → step-1-D_5LOQrC.js} +1 -1
  173. package/core/built/admin/assets/{step-2-_YC0LCZv.js → step-2-BZLBj8cj.js} +1 -1
  174. package/core/built/admin/assets/{step-3-DWMqP2bO.js → step-3-s5uNbcOH.js} +1 -1
  175. package/core/built/admin/assets/{table-mHKjXQba.js → table-pGS7EeJe.js} +1 -1
  176. package/core/built/admin/assets/{tabs-B93IVRBz.js → tabs-CjdKssUe.js} +1 -1
  177. package/core/built/admin/assets/{tags-DCb-x2ZB.js → tags-B0vRk0A6.js} +1 -1
  178. package/core/built/admin/assets/{tags-kUHJ1MZo.js → tags-Dso4-FA_.js} +1 -1
  179. package/core/built/admin/assets/{textarea-DswCtM7_.js → textarea-DzFnun0_.js} +1 -1
  180. package/core/built/admin/assets/{tiers-DueraQKd.js → tiers-4Vkr_D-L.js} +1 -1
  181. package/core/built/admin/assets/{toggle-group-ChTo8MPD.js → toggle-group-hDsr47IB.js} +1 -1
  182. package/core/built/admin/assets/{topic-filter-DrW3fYWo.js → topic-filter-C7TpPe1G.js} +1 -1
  183. package/core/built/admin/assets/{trash-B2ESGftj.js → trash-DCVuk7ZX.js} +1 -1
  184. package/core/built/admin/assets/{underline-vo-bPRac.js → underline-CjK8la2G.js} +1 -1
  185. package/core/built/admin/assets/{upload-DXQRkBBq.js → upload-CPYhmtWZ.js} +1 -1
  186. package/core/built/admin/assets/{use-growth-stats-CoB8-lsd.js → use-growth-stats-CaFSgp_R.js} +1 -1
  187. package/core/built/admin/assets/{use-simple-pagination-Y_Wv2N6g.js → use-simple-pagination-D0vJBMvF.js} +1 -1
  188. package/core/built/admin/assets/{user-round-check-Dp9a2x-e.js → user-round-check-CzQQeFd8.js} +1 -1
  189. package/core/built/admin/assets/{user-round-x-DwCTGlxc.js → user-round-x-BDFm8yQj.js} +1 -1
  190. package/core/built/admin/assets/value-BGBiTkF3.js +1 -0
  191. package/core/built/admin/assets/{vendor-17f3b979ba6f3898d1a8c5249cc22ff1.js → vendor-ce3fc901ccbcf37f36eb791b4e454138.js} +29 -31
  192. package/core/built/admin/assets/{virtual-list-window-BF7IvGMC.js → virtual-list-window-EKtWZ5cP.js} +1 -1
  193. package/core/built/admin/assets/{wallet-cards-IEmcxJvG.js → wallet-cards-C1NOBbWE.js} +1 -1
  194. package/core/built/admin/assets/web-DCA7HR1S.js +1 -0
  195. package/core/built/admin/index.html +8 -8
  196. package/core/frontend/helpers/social_accounts.js +91 -0
  197. package/core/frontend/services/sitemap/handler.js +14 -2
  198. package/core/frontend/services/sitemap/site-map-manager.js +133 -9
  199. package/core/frontend/web/middleware/handle-image-sizes.js +4 -0
  200. package/core/server/api/endpoints/automations.js +38 -45
  201. package/core/server/models/member.js +30 -25
  202. package/core/server/services/automations/automations-api.js +58 -0
  203. package/core/server/services/automations/automations-api.ts +71 -0
  204. package/core/server/services/automations/automations-repository.js +2 -0
  205. package/core/server/services/automations/automations-repository.ts +63 -0
  206. package/core/server/services/automations/fake-database-automations-repository.js +210 -0
  207. package/core/server/services/automations/fake-database-automations-repository.ts +273 -0
  208. package/core/server/services/automations/temporary-fake-database.js +5 -4
  209. package/core/server/services/gifts/email-templates/gift-purchase-confirmation.hbs +10 -32
  210. package/core/server/services/gifts/email-templates/gift-purchase-confirmation.js +6 -8
  211. package/core/server/services/gifts/email-templates/gift-purchase-confirmation.ts +6 -8
  212. package/core/server/services/gifts/email-templates/gift-reminder.hbs +12 -37
  213. package/core/server/services/gifts/email-templates/gift-reminder.js +5 -9
  214. package/core/server/services/gifts/email-templates/gift-reminder.ts +5 -9
  215. package/core/server/services/gifts/gift-service.js +1 -1
  216. package/core/server/services/gifts/gift-service.ts +2 -2
  217. package/core/server/services/member-welcome-emails/service.js +0 -1
  218. package/core/server/services/members/members-api/controllers/router-controller.js +52 -7
  219. package/core/server/services/members/members-api/services/member-bread-service.js +0 -8
  220. package/core/server/services/route-settings/route-settings.js +18 -2
  221. package/core/server/services/staff/email-templates/gift.hbs +1 -1
  222. package/core/server/services/staff/email-templates/gift.txt.js +1 -1
  223. package/core/server/services/staff/email-templates/new-gift-subscription.hbs +1 -1
  224. package/core/server/services/staff/email-templates/new-gift-subscription.txt.js +1 -1
  225. package/core/server/services/staff/staff-service-emails.js +1 -1
  226. package/core/server/services/url/index.js +16 -1
  227. package/core/server/services/url/lazy-find-resource.js +49 -0
  228. package/core/server/services/url/lazy-find-resource.ts +62 -0
  229. package/core/server/services/url/lazy-url-service.js +220 -0
  230. package/core/server/services/url/lazy-url-service.ts +265 -0
  231. package/core/server/web/api/endpoints/admin/routes.js +1 -0
  232. package/core/server/web/gift-preview/Inter.ttf +0 -0
  233. package/core/server/web/gift-preview/controller.js +56 -6
  234. package/core/server/web/gift-preview/gift-card-noise.png +0 -0
  235. package/core/server/web/gift-preview/gift-card-orb.png +0 -0
  236. package/core/server/web/gift-preview/image.js +170 -43
  237. package/core/shared/config/defaults.json +1 -0
  238. package/core/shared/one-at-a-time.js +28 -33
  239. package/core/shared/one-at-a-time.ts +58 -0
  240. package/package.json +18 -16
  241. package/pnpm-lock.yaml +989 -356
  242. package/core/built/admin/assets/automations-D1uMjd06.js +0 -1
  243. package/core/built/admin/assets/chart-_EXssQtm.js +0 -67
  244. package/core/built/admin/assets/comments-E00h1SbR.js +0 -1
  245. package/core/built/admin/assets/filters-CC7XfjOS.js +0 -1
  246. package/core/built/admin/assets/gh-chart-B9_ywrJJ.js +0 -1
  247. package/core/built/admin/assets/index-AsV-aY0z.css +0 -1
  248. package/core/built/admin/assets/index-B0y_ynZw.js +0 -1
  249. package/core/built/admin/assets/index-Bs6wWbLA.js +0 -2
  250. package/core/built/admin/assets/index-Cb4641XW.js +0 -1
  251. package/core/built/admin/assets/loader-circle-B5UPqSok.js +0 -1
  252. package/core/built/admin/assets/minus-DWx9VUtr.js +0 -1
  253. package/core/built/admin/assets/newsletter-fkQye9OK.js +0 -1
  254. package/core/built/admin/assets/overview-CZ-VrnXy.js +0 -1
  255. package/core/built/admin/assets/posts/createLucideIcon-DcUfTBt_.mjs +0 -454
  256. package/core/built/admin/assets/posts/get-site-timezone-DlXmHA3y.mjs +0 -93
  257. package/core/built/admin/assets/posts-Bx1RWrub.js +0 -1
  258. package/core/built/admin/assets/web-DSME3e8c.js +0 -1
@@ -0,0 +1,7 @@
1
+ import{cU as Ps,dy as Ds,ch as Ts,t as rt,r as $,j as _,e as $s,dg as zs,dz as Hs,d7 as Ls,B as Kt,G as Rs,aP as Os,S as Bs,aM as Vs,aO as js,b5 as Fs,aN as Ys,b7 as Xs,u as Zs}from"./index-CYyEyBYw.js";import{i as Ee,c as Xn,a as Zn,b as Ws,d as Ut}from"./value-BGBiTkF3.js";import{C as Gs}from"./circle-alert-Dbz54fYb.js";import{M as qs}from"./mail-B97w28e2.js";import{C as Ks,P as Us}from"./power-Cc5ncYVl.js";import{a as Qs}from"./automations-Bi9RJq5E.js";var Wn=180/Math.PI,ln={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function Xo(e,t,n,o,r,i){var s,a,c;return(s=Math.sqrt(e*e+t*t))&&(e/=s,t/=s),(c=e*n+t*o)&&(n-=e*c,o-=t*c),(a=Math.sqrt(n*n+o*o))&&(n/=a,o/=a,c/=a),e*o<t*n&&(e=-e,t=-t,c=-c,s=-s),{translateX:r,translateY:i,rotate:Math.atan2(t,e)*Wn,skewX:Math.atan(c)*Wn,scaleX:s,scaleY:a}}var gt;function Js(e){const t=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?ln:Xo(t.a,t.b,t.c,t.d,t.e,t.f)}function ea(e){return e==null||(gt||(gt=document.createElementNS("http://www.w3.org/2000/svg","g")),gt.setAttribute("transform",e),!(e=gt.transform.baseVal.consolidate()))?ln:(e=e.matrix,Xo(e.a,e.b,e.c,e.d,e.e,e.f))}function Zo(e,t,n,o){function r(l){return l.length?l.pop()+" ":""}function i(l,d,f,u,h,m){if(l!==f||d!==u){var p=h.push("translate(",null,t,null,n);m.push({i:p-4,x:Ee(l,f)},{i:p-2,x:Ee(d,u)})}else(f||u)&&h.push("translate("+f+t+u+n)}function s(l,d,f,u){l!==d?(l-d>180?d+=360:d-l>180&&(l+=360),u.push({i:f.push(r(f)+"rotate(",null,o)-2,x:Ee(l,d)})):d&&f.push(r(f)+"rotate("+d+o)}function a(l,d,f,u){l!==d?u.push({i:f.push(r(f)+"skewX(",null,o)-2,x:Ee(l,d)}):d&&f.push(r(f)+"skewX("+d+o)}function c(l,d,f,u,h,m){if(l!==f||d!==u){var p=h.push(r(h)+"scale(",null,",",null,")");m.push({i:p-4,x:Ee(l,f)},{i:p-2,x:Ee(d,u)})}else(f!==1||u!==1)&&h.push(r(h)+"scale("+f+","+u+")")}return function(l,d){var f=[],u=[];return l=e(l),d=e(d),i(l.translateX,l.translateY,d.translateX,d.translateY,f,u),s(l.rotate,d.rotate,f,u),a(l.skewX,d.skewX,f,u),c(l.scaleX,l.scaleY,d.scaleX,d.scaleY,f,u),l=d=null,function(h){for(var m=-1,p=u.length,v;++m<p;)f[(v=u[m]).i]=v.x(h);return f.join("")}}}var ta=Zo(Js,"px, ","px)","deg)"),na=Zo(ea,", ",")",")"),oa=1e-12;function Gn(e){return((e=Math.exp(e))+1/e)/2}function ra(e){return((e=Math.exp(e))-1/e)/2}function ia(e){return((e=Math.exp(2*e))-1)/(e+1)}const _t=(function e(t,n,o){function r(i,s){var a=i[0],c=i[1],l=i[2],d=s[0],f=s[1],u=s[2],h=d-a,m=f-c,p=h*h+m*m,v,w;if(p<oa)w=Math.log(u/l)/t,v=function(k){return[a+k*h,c+k*m,l*Math.exp(t*k*w)]};else{var C=Math.sqrt(p),g=(u*u-l*l+o*p)/(2*l*n*C),y=(u*u-l*l-o*p)/(2*u*n*C),S=Math.log(Math.sqrt(g*g+1)-g),b=Math.log(Math.sqrt(y*y+1)-y);w=(b-S)/t,v=function(k){var I=k*w,T=Gn(S),V=l/(n*C)*(T*ia(t*I+S)-ra(S));return[a+V*h,c+V*m,l*T/Gn(t*I+S)]}}return v.duration=w*1e3*t/Math.SQRT2,v}return r.rho=function(i){var s=Math.max(.001,+i),a=s*s,c=a*a;return e(s,a,c)},r})(Math.SQRT2,2,4);function re(e){if(typeof e=="string"||typeof e=="number")return""+e;let t="";if(Array.isArray(e))for(let n=0,o;n<e.length;n++)(o=re(e[n]))!==""&&(t+=(t&&" ")+o);else for(let n in e)e[n]&&(t+=(t&&" ")+n);return t}var sa={value:()=>{}};function zt(){for(var e=0,t=arguments.length,n={},o;e<t;++e){if(!(o=arguments[e]+"")||o in n||/[\s.]/.test(o))throw new Error("illegal type: "+o);n[o]=[]}return new bt(n)}function bt(e){this._=e}function aa(e,t){return e.trim().split(/^|\s+/).map(function(n){var o="",r=n.indexOf(".");if(r>=0&&(o=n.slice(r+1),n=n.slice(0,r)),n&&!t.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:o}})}bt.prototype=zt.prototype={constructor:bt,on:function(e,t){var n=this._,o=aa(e+"",n),r,i=-1,s=o.length;if(arguments.length<2){for(;++i<s;)if((r=(e=o[i]).type)&&(r=ca(n[r],e.name)))return r;return}if(t!=null&&typeof t!="function")throw new Error("invalid callback: "+t);for(;++i<s;)if(r=(e=o[i]).type)n[r]=qn(n[r],e.name,t);else if(t==null)for(r in n)n[r]=qn(n[r],e.name,null);return this},copy:function(){var e={},t=this._;for(var n in t)e[n]=t[n].slice();return new bt(e)},call:function(e,t){if((r=arguments.length-2)>0)for(var n=new Array(r),o=0,r,i;o<r;++o)n[o]=arguments[o+2];if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(i=this._[e],o=0,r=i.length;o<r;++o)i[o].value.apply(t,n)},apply:function(e,t,n){if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(var o=this._[e],r=0,i=o.length;r<i;++r)o[r].value.apply(t,n)}};function ca(e,t){for(var n=0,o=e.length,r;n<o;++n)if((r=e[n]).name===t)return r.value}function qn(e,t,n){for(var o=0,r=e.length;o<r;++o)if(e[o].name===t){e[o]=sa,e=e.slice(0,o).concat(e.slice(o+1));break}return n!=null&&e.push({name:t,value:n}),e}var un="http://www.w3.org/1999/xhtml";const Kn={svg:"http://www.w3.org/2000/svg",xhtml:un,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function Ht(e){var t=e+="",n=t.indexOf(":");return n>=0&&(t=e.slice(0,n))!=="xmlns"&&(e=e.slice(n+1)),Kn.hasOwnProperty(t)?{space:Kn[t],local:e}:e}function la(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===un&&t.documentElement.namespaceURI===un?t.createElement(e):t.createElementNS(n,e)}}function ua(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function Wo(e){var t=Ht(e);return(t.local?ua:la)(t)}function da(){}function _n(e){return e==null?da:function(){return this.querySelector(e)}}function fa(e){typeof e!="function"&&(e=_n(e));for(var t=this._groups,n=t.length,o=new Array(n),r=0;r<n;++r)for(var i=t[r],s=i.length,a=o[r]=new Array(s),c,l,d=0;d<s;++d)(c=i[d])&&(l=e.call(c,c.__data__,d,i))&&("__data__"in c&&(l.__data__=c.__data__),a[d]=l);return new ce(o,this._parents)}function ha(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function ga(){return[]}function Go(e){return e==null?ga:function(){return this.querySelectorAll(e)}}function pa(e){return function(){return ha(e.apply(this,arguments))}}function ma(e){typeof e=="function"?e=pa(e):e=Go(e);for(var t=this._groups,n=t.length,o=[],r=[],i=0;i<n;++i)for(var s=t[i],a=s.length,c,l=0;l<a;++l)(c=s[l])&&(o.push(e.call(c,c.__data__,l,s)),r.push(c));return new ce(o,r)}function qo(e){return function(){return this.matches(e)}}function Ko(e){return function(t){return t.matches(e)}}var ya=Array.prototype.find;function xa(e){return function(){return ya.call(this.children,e)}}function wa(){return this.firstElementChild}function va(e){return this.select(e==null?wa:xa(typeof e=="function"?e:Ko(e)))}var _a=Array.prototype.filter;function ba(){return Array.from(this.children)}function Ea(e){return function(){return _a.call(this.children,e)}}function Sa(e){return this.selectAll(e==null?ba:Ea(typeof e=="function"?e:Ko(e)))}function Na(e){typeof e!="function"&&(e=qo(e));for(var t=this._groups,n=t.length,o=new Array(n),r=0;r<n;++r)for(var i=t[r],s=i.length,a=o[r]=[],c,l=0;l<s;++l)(c=i[l])&&e.call(c,c.__data__,l,i)&&a.push(c);return new ce(o,this._parents)}function Uo(e){return new Array(e.length)}function Ca(){return new ce(this._enter||this._groups.map(Uo),this._parents)}function Ct(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}Ct.prototype={constructor:Ct,appendChild:function(e){return this._parent.insertBefore(e,this._next)},insertBefore:function(e,t){return this._parent.insertBefore(e,t)},querySelector:function(e){return this._parent.querySelector(e)},querySelectorAll:function(e){return this._parent.querySelectorAll(e)}};function Ma(e){return function(){return e}}function ka(e,t,n,o,r,i){for(var s=0,a,c=t.length,l=i.length;s<l;++s)(a=t[s])?(a.__data__=i[s],o[s]=a):n[s]=new Ct(e,i[s]);for(;s<c;++s)(a=t[s])&&(r[s]=a)}function Ia(e,t,n,o,r,i,s){var a,c,l=new Map,d=t.length,f=i.length,u=new Array(d),h;for(a=0;a<d;++a)(c=t[a])&&(u[a]=h=s.call(c,c.__data__,a,t)+"",l.has(h)?r[a]=c:l.set(h,c));for(a=0;a<f;++a)h=s.call(e,i[a],a,i)+"",(c=l.get(h))?(o[a]=c,c.__data__=i[a],l.delete(h)):n[a]=new Ct(e,i[a]);for(a=0;a<d;++a)(c=t[a])&&l.get(u[a])===c&&(r[a]=c)}function Aa(e){return e.__data__}function Pa(e,t){if(!arguments.length)return Array.from(this,Aa);var n=t?Ia:ka,o=this._parents,r=this._groups;typeof e!="function"&&(e=Ma(e));for(var i=r.length,s=new Array(i),a=new Array(i),c=new Array(i),l=0;l<i;++l){var d=o[l],f=r[l],u=f.length,h=Da(e.call(d,d&&d.__data__,l,o)),m=h.length,p=a[l]=new Array(m),v=s[l]=new Array(m),w=c[l]=new Array(u);n(d,f,p,v,w,h,t);for(var C=0,g=0,y,S;C<m;++C)if(y=p[C]){for(C>=g&&(g=C+1);!(S=v[g])&&++g<m;);y._next=S||null}}return s=new ce(s,o),s._enter=a,s._exit=c,s}function Da(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function Ta(){return new ce(this._exit||this._groups.map(Uo),this._parents)}function $a(e,t,n){var o=this.enter(),r=this,i=this.exit();return typeof e=="function"?(o=e(o),o&&(o=o.selection())):o=o.append(e+""),t!=null&&(r=t(r),r&&(r=r.selection())),n==null?i.remove():n(i),o&&r?o.merge(r).order():r}function za(e){for(var t=e.selection?e.selection():e,n=this._groups,o=t._groups,r=n.length,i=o.length,s=Math.min(r,i),a=new Array(r),c=0;c<s;++c)for(var l=n[c],d=o[c],f=l.length,u=a[c]=new Array(f),h,m=0;m<f;++m)(h=l[m]||d[m])&&(u[m]=h);for(;c<r;++c)a[c]=n[c];return new ce(a,this._parents)}function Ha(){for(var e=this._groups,t=-1,n=e.length;++t<n;)for(var o=e[t],r=o.length-1,i=o[r],s;--r>=0;)(s=o[r])&&(i&&s.compareDocumentPosition(i)^4&&i.parentNode.insertBefore(s,i),i=s);return this}function La(e){e||(e=Ra);function t(f,u){return f&&u?e(f.__data__,u.__data__):!f-!u}for(var n=this._groups,o=n.length,r=new Array(o),i=0;i<o;++i){for(var s=n[i],a=s.length,c=r[i]=new Array(a),l,d=0;d<a;++d)(l=s[d])&&(c[d]=l);c.sort(t)}return new ce(r,this._parents).order()}function Ra(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function Oa(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function Ba(){return Array.from(this)}function Va(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var o=e[t],r=0,i=o.length;r<i;++r){var s=o[r];if(s)return s}return null}function ja(){let e=0;for(const t of this)++e;return e}function Fa(){return!this.node()}function Ya(e){for(var t=this._groups,n=0,o=t.length;n<o;++n)for(var r=t[n],i=0,s=r.length,a;i<s;++i)(a=r[i])&&e.call(a,a.__data__,i,r);return this}function Xa(e){return function(){this.removeAttribute(e)}}function Za(e){return function(){this.removeAttributeNS(e.space,e.local)}}function Wa(e,t){return function(){this.setAttribute(e,t)}}function Ga(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function qa(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttribute(e):this.setAttribute(e,n)}}function Ka(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttributeNS(e.space,e.local):this.setAttributeNS(e.space,e.local,n)}}function Ua(e,t){var n=Ht(e);if(arguments.length<2){var o=this.node();return n.local?o.getAttributeNS(n.space,n.local):o.getAttribute(n)}return this.each((t==null?n.local?Za:Xa:typeof t=="function"?n.local?Ka:qa:n.local?Ga:Wa)(n,t))}function Qo(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function Qa(e){return function(){this.style.removeProperty(e)}}function Ja(e,t,n){return function(){this.style.setProperty(e,t,n)}}function ec(e,t,n){return function(){var o=t.apply(this,arguments);o==null?this.style.removeProperty(e):this.style.setProperty(e,o,n)}}function tc(e,t,n){return arguments.length>1?this.each((t==null?Qa:typeof t=="function"?ec:Ja)(e,t,n??"")):$e(this.node(),e)}function $e(e,t){return e.style.getPropertyValue(t)||Qo(e).getComputedStyle(e,null).getPropertyValue(t)}function nc(e){return function(){delete this[e]}}function oc(e,t){return function(){this[e]=t}}function rc(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function ic(e,t){return arguments.length>1?this.each((t==null?nc:typeof t=="function"?rc:oc)(e,t)):this.node()[e]}function Jo(e){return e.trim().split(/^|\s+/)}function bn(e){return e.classList||new er(e)}function er(e){this._node=e,this._names=Jo(e.getAttribute("class")||"")}er.prototype={add:function(e){var t=this._names.indexOf(e);t<0&&(this._names.push(e),this._node.setAttribute("class",this._names.join(" ")))},remove:function(e){var t=this._names.indexOf(e);t>=0&&(this._names.splice(t,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(e){return this._names.indexOf(e)>=0}};function tr(e,t){for(var n=bn(e),o=-1,r=t.length;++o<r;)n.add(t[o])}function nr(e,t){for(var n=bn(e),o=-1,r=t.length;++o<r;)n.remove(t[o])}function sc(e){return function(){tr(this,e)}}function ac(e){return function(){nr(this,e)}}function cc(e,t){return function(){(t.apply(this,arguments)?tr:nr)(this,e)}}function lc(e,t){var n=Jo(e+"");if(arguments.length<2){for(var o=bn(this.node()),r=-1,i=n.length;++r<i;)if(!o.contains(n[r]))return!1;return!0}return this.each((typeof t=="function"?cc:t?sc:ac)(n,t))}function uc(){this.textContent=""}function dc(e){return function(){this.textContent=e}}function fc(e){return function(){var t=e.apply(this,arguments);this.textContent=t??""}}function hc(e){return arguments.length?this.each(e==null?uc:(typeof e=="function"?fc:dc)(e)):this.node().textContent}function gc(){this.innerHTML=""}function pc(e){return function(){this.innerHTML=e}}function mc(e){return function(){var t=e.apply(this,arguments);this.innerHTML=t??""}}function yc(e){return arguments.length?this.each(e==null?gc:(typeof e=="function"?mc:pc)(e)):this.node().innerHTML}function xc(){this.nextSibling&&this.parentNode.appendChild(this)}function wc(){return this.each(xc)}function vc(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function _c(){return this.each(vc)}function bc(e){var t=typeof e=="function"?e:Wo(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}function Ec(){return null}function Sc(e,t){var n=typeof e=="function"?e:Wo(e),o=t==null?Ec:typeof t=="function"?t:_n(t);return this.select(function(){return this.insertBefore(n.apply(this,arguments),o.apply(this,arguments)||null)})}function Nc(){var e=this.parentNode;e&&e.removeChild(this)}function Cc(){return this.each(Nc)}function Mc(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function kc(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function Ic(e){return this.select(e?kc:Mc)}function Ac(e){return arguments.length?this.property("__data__",e):this.node().__data__}function Pc(e){return function(t){e.call(this,t,this.__data__)}}function Dc(e){return e.trim().split(/^|\s+/).map(function(t){var n="",o=t.indexOf(".");return o>=0&&(n=t.slice(o+1),t=t.slice(0,o)),{type:t,name:n}})}function Tc(e){return function(){var t=this.__on;if(t){for(var n=0,o=-1,r=t.length,i;n<r;++n)i=t[n],(!e.type||i.type===e.type)&&i.name===e.name?this.removeEventListener(i.type,i.listener,i.options):t[++o]=i;++o?t.length=o:delete this.__on}}}function $c(e,t,n){return function(){var o=this.__on,r,i=Pc(t);if(o){for(var s=0,a=o.length;s<a;++s)if((r=o[s]).type===e.type&&r.name===e.name){this.removeEventListener(r.type,r.listener,r.options),this.addEventListener(r.type,r.listener=i,r.options=n),r.value=t;return}}this.addEventListener(e.type,i,n),r={type:e.type,name:e.name,value:t,listener:i,options:n},o?o.push(r):this.__on=[r]}}function zc(e,t,n){var o=Dc(e+""),r,i=o.length,s;if(arguments.length<2){var a=this.node().__on;if(a){for(var c=0,l=a.length,d;c<l;++c)for(r=0,d=a[c];r<i;++r)if((s=o[r]).type===d.type&&s.name===d.name)return d.value}return}for(a=t?$c:Tc,r=0;r<i;++r)this.each(a(o[r],t,n));return this}function or(e,t,n){var o=Qo(e),r=o.CustomEvent;typeof r=="function"?r=new r(t,n):(r=o.document.createEvent("Event"),n?(r.initEvent(t,n.bubbles,n.cancelable),r.detail=n.detail):r.initEvent(t,!1,!1)),e.dispatchEvent(r)}function Hc(e,t){return function(){return or(this,e,t)}}function Lc(e,t){return function(){return or(this,e,t.apply(this,arguments))}}function Rc(e,t){return this.each((typeof t=="function"?Lc:Hc)(e,t))}function*Oc(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var o=e[t],r=0,i=o.length,s;r<i;++r)(s=o[r])&&(yield s)}var rr=[null];function ce(e,t){this._groups=e,this._parents=t}function it(){return new ce([[document.documentElement]],rr)}function Bc(){return this}ce.prototype=it.prototype={constructor:ce,select:fa,selectAll:ma,selectChild:va,selectChildren:Sa,filter:Na,data:Pa,enter:Ca,exit:Ta,join:$a,merge:za,selection:Bc,order:Ha,sort:La,call:Oa,nodes:Ba,node:Va,size:ja,empty:Fa,each:Ya,attr:Ua,style:tc,property:ic,classed:lc,text:hc,html:yc,raise:wc,lower:_c,append:bc,insert:Sc,remove:Cc,clone:Ic,datum:Ac,on:zc,dispatch:Rc,[Symbol.iterator]:Oc};function ae(e){return typeof e=="string"?new ce([[document.querySelector(e)]],[document.documentElement]):new ce([[e]],rr)}function Vc(e){let t;for(;t=e.sourceEvent;)e=t;return e}function le(e,t){if(e=Vc(e),t===void 0&&(t=e.currentTarget),t){var n=t.ownerSVGElement||t;if(n.createSVGPoint){var o=n.createSVGPoint();return o.x=e.clientX,o.y=e.clientY,o=o.matrixTransform(t.getScreenCTM().inverse()),[o.x,o.y]}if(t.getBoundingClientRect){var r=t.getBoundingClientRect();return[e.clientX-r.left-t.clientLeft,e.clientY-r.top-t.clientTop]}}return[e.pageX,e.pageY]}const jc={passive:!1},qe={capture:!0,passive:!1};function Qt(e){e.stopImmediatePropagation()}function Te(e){e.preventDefault(),e.stopImmediatePropagation()}function ir(e){var t=e.document.documentElement,n=ae(e).on("dragstart.drag",Te,qe);"onselectstart"in t?n.on("selectstart.drag",Te,qe):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect="none")}function sr(e,t){var n=e.document.documentElement,o=ae(e).on("dragstart.drag",null);t&&(o.on("click.drag",Te,qe),setTimeout(function(){o.on("click.drag",null)},0)),"onselectstart"in n?o.on("selectstart.drag",null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}const pt=e=>()=>e;function dn(e,{sourceEvent:t,subject:n,target:o,identifier:r,active:i,x:s,y:a,dx:c,dy:l,dispatch:d}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:o,enumerable:!0,configurable:!0},identifier:{value:r,enumerable:!0,configurable:!0},active:{value:i,enumerable:!0,configurable:!0},x:{value:s,enumerable:!0,configurable:!0},y:{value:a,enumerable:!0,configurable:!0},dx:{value:c,enumerable:!0,configurable:!0},dy:{value:l,enumerable:!0,configurable:!0},_:{value:d}})}dn.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function Fc(e){return!e.ctrlKey&&!e.button}function Yc(){return this.parentNode}function Xc(e,t){return t??{x:e.x,y:e.y}}function Zc(){return navigator.maxTouchPoints||"ontouchstart"in this}function ar(){var e=Fc,t=Yc,n=Xc,o=Zc,r={},i=zt("start","drag","end"),s=0,a,c,l,d,f=0;function u(y){y.on("mousedown.drag",h).filter(o).on("touchstart.drag",v).on("touchmove.drag",w,jc).on("touchend.drag touchcancel.drag",C).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function h(y,S){if(!(d||!e.call(this,y,S))){var b=g(this,t.call(this,y,S),y,S,"mouse");b&&(ae(y.view).on("mousemove.drag",m,qe).on("mouseup.drag",p,qe),ir(y.view),Qt(y),l=!1,a=y.clientX,c=y.clientY,b("start",y))}}function m(y){if(Te(y),!l){var S=y.clientX-a,b=y.clientY-c;l=S*S+b*b>f}r.mouse("drag",y)}function p(y){ae(y.view).on("mousemove.drag mouseup.drag",null),sr(y.view,l),Te(y),r.mouse("end",y)}function v(y,S){if(e.call(this,y,S)){var b=y.changedTouches,k=t.call(this,y,S),I=b.length,T,V;for(T=0;T<I;++T)(V=g(this,k,y,S,b[T].identifier,b[T]))&&(Qt(y),V("start",y,b[T]))}}function w(y){var S=y.changedTouches,b=S.length,k,I;for(k=0;k<b;++k)(I=r[S[k].identifier])&&(Te(y),I("drag",y,S[k]))}function C(y){var S=y.changedTouches,b=S.length,k,I;for(d&&clearTimeout(d),d=setTimeout(function(){d=null},500),k=0;k<b;++k)(I=r[S[k].identifier])&&(Qt(y),I("end",y,S[k]))}function g(y,S,b,k,I,T){var V=i.copy(),O=le(T||b,S),A,H,x;if((x=n.call(y,new dn("beforestart",{sourceEvent:b,target:u,identifier:I,active:s,x:O[0],y:O[1],dx:0,dy:0,dispatch:V}),k))!=null)return A=x.x-O[0]||0,H=x.y-O[1]||0,function M(E,N,D){var P=O,z;switch(E){case"start":r[I]=M,z=s++;break;case"end":delete r[I],--s;case"drag":O=le(D||N,S),z=s;break}V.call(E,y,new dn(E,{sourceEvent:N,subject:x,target:u,identifier:I,active:z,x:O[0]+A,y:O[1]+H,dx:O[0]-P[0],dy:O[1]-P[1],dispatch:V}),k)}}return u.filter=function(y){return arguments.length?(e=typeof y=="function"?y:pt(!!y),u):e},u.container=function(y){return arguments.length?(t=typeof y=="function"?y:pt(y),u):t},u.subject=function(y){return arguments.length?(n=typeof y=="function"?y:pt(y),u):n},u.touchable=function(y){return arguments.length?(o=typeof y=="function"?y:pt(!!y),u):o},u.on=function(){var y=i.on.apply(i,arguments);return y===i?u:y},u.clickDistance=function(y){return arguments.length?(f=(y=+y)*y,u):Math.sqrt(f)},u}var ze=0,Ze=0,Ye=0,cr=1e3,Mt,We,kt=0,Ce=0,Lt=0,Ke=typeof performance=="object"&&performance.now?performance:Date,lr=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function En(){return Ce||(lr(Wc),Ce=Ke.now()+Lt)}function Wc(){Ce=0}function It(){this._call=this._time=this._next=null}It.prototype=ur.prototype={constructor:It,restart:function(e,t,n){if(typeof e!="function")throw new TypeError("callback is not a function");n=(n==null?En():+n)+(t==null?0:+t),!this._next&&We!==this&&(We?We._next=this:Mt=this,We=this),this._call=e,this._time=n,fn()},stop:function(){this._call&&(this._call=null,this._time=1/0,fn())}};function ur(e,t,n){var o=new It;return o.restart(e,t,n),o}function Gc(){En(),++ze;for(var e=Mt,t;e;)(t=Ce-e._time)>=0&&e._call.call(void 0,t),e=e._next;--ze}function Un(){Ce=(kt=Ke.now())+Lt,ze=Ze=0;try{Gc()}finally{ze=0,Kc(),Ce=0}}function qc(){var e=Ke.now(),t=e-kt;t>cr&&(Lt-=t,kt=e)}function Kc(){for(var e,t=Mt,n,o=1/0;t;)t._call?(o>t._time&&(o=t._time),e=t,t=t._next):(n=t._next,t._next=null,t=e?e._next=n:Mt=n);We=e,fn(o)}function fn(e){if(!ze){Ze&&(Ze=clearTimeout(Ze));var t=e-Ce;t>24?(e<1/0&&(Ze=setTimeout(Un,e-Ke.now()-Lt)),Ye&&(Ye=clearInterval(Ye))):(Ye||(kt=Ke.now(),Ye=setInterval(qc,cr)),ze=1,lr(Un))}}function Qn(e,t,n){var o=new It;return t=t==null?0:+t,o.restart(r=>{o.stop(),e(r+t)},t,n),o}var Uc=zt("start","end","cancel","interrupt"),Qc=[],dr=0,Jn=1,hn=2,Et=3,eo=4,gn=5,St=6;function Rt(e,t,n,o,r,i){var s=e.__transition;if(!s)e.__transition={};else if(n in s)return;Jc(e,n,{name:t,index:o,group:r,on:Uc,tween:Qc,time:i.time,delay:i.delay,duration:i.duration,ease:i.ease,timer:null,state:dr})}function Sn(e,t){var n=fe(e,t);if(n.state>dr)throw new Error("too late; already scheduled");return n}function ge(e,t){var n=fe(e,t);if(n.state>Et)throw new Error("too late; already running");return n}function fe(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}function Jc(e,t,n){var o=e.__transition,r;o[t]=n,n.timer=ur(i,0,n.time);function i(l){n.state=Jn,n.timer.restart(s,n.delay,n.time),n.delay<=l&&s(l-n.delay)}function s(l){var d,f,u,h;if(n.state!==Jn)return c();for(d in o)if(h=o[d],h.name===n.name){if(h.state===Et)return Qn(s);h.state===eo?(h.state=St,h.timer.stop(),h.on.call("interrupt",e,e.__data__,h.index,h.group),delete o[d]):+d<t&&(h.state=St,h.timer.stop(),h.on.call("cancel",e,e.__data__,h.index,h.group),delete o[d])}if(Qn(function(){n.state===Et&&(n.state=eo,n.timer.restart(a,n.delay,n.time),a(l))}),n.state=hn,n.on.call("start",e,e.__data__,n.index,n.group),n.state===hn){for(n.state=Et,r=new Array(u=n.tween.length),d=0,f=-1;d<u;++d)(h=n.tween[d].value.call(e,e.__data__,n.index,n.group))&&(r[++f]=h);r.length=f+1}}function a(l){for(var d=l<n.duration?n.ease.call(null,l/n.duration):(n.timer.restart(c),n.state=gn,1),f=-1,u=r.length;++f<u;)r[f].call(e,d);n.state===gn&&(n.on.call("end",e,e.__data__,n.index,n.group),c())}function c(){n.state=St,n.timer.stop(),delete o[t];for(var l in o)return;delete e.__transition}}function Nt(e,t){var n=e.__transition,o,r,i=!0,s;if(n){t=t==null?null:t+"";for(s in n){if((o=n[s]).name!==t){i=!1;continue}r=o.state>hn&&o.state<gn,o.state=St,o.timer.stop(),o.on.call(r?"interrupt":"cancel",e,e.__data__,o.index,o.group),delete n[s]}i&&delete e.__transition}}function el(e){return this.each(function(){Nt(this,e)})}function tl(e,t){var n,o;return function(){var r=ge(this,e),i=r.tween;if(i!==n){o=n=i;for(var s=0,a=o.length;s<a;++s)if(o[s].name===t){o=o.slice(),o.splice(s,1);break}}r.tween=o}}function nl(e,t,n){var o,r;if(typeof n!="function")throw new Error;return function(){var i=ge(this,e),s=i.tween;if(s!==o){r=(o=s).slice();for(var a={name:t,value:n},c=0,l=r.length;c<l;++c)if(r[c].name===t){r[c]=a;break}c===l&&r.push(a)}i.tween=r}}function ol(e,t){var n=this._id;if(e+="",arguments.length<2){for(var o=fe(this.node(),n).tween,r=0,i=o.length,s;r<i;++r)if((s=o[r]).name===e)return s.value;return null}return this.each((t==null?tl:nl)(n,e,t))}function Nn(e,t,n){var o=e._id;return e.each(function(){var r=ge(this,o);(r.value||(r.value={}))[t]=n.apply(this,arguments)}),function(r){return fe(r,o).value[t]}}function fr(e,t){var n;return(typeof t=="number"?Ee:t instanceof Xn?Zn:(n=Xn(t))?(t=n,Zn):Ws)(e,t)}function rl(e){return function(){this.removeAttribute(e)}}function il(e){return function(){this.removeAttributeNS(e.space,e.local)}}function sl(e,t,n){var o,r=n+"",i;return function(){var s=this.getAttribute(e);return s===r?null:s===o?i:i=t(o=s,n)}}function al(e,t,n){var o,r=n+"",i;return function(){var s=this.getAttributeNS(e.space,e.local);return s===r?null:s===o?i:i=t(o=s,n)}}function cl(e,t,n){var o,r,i;return function(){var s,a=n(this),c;return a==null?void this.removeAttribute(e):(s=this.getAttribute(e),c=a+"",s===c?null:s===o&&c===r?i:(r=c,i=t(o=s,a)))}}function ll(e,t,n){var o,r,i;return function(){var s,a=n(this),c;return a==null?void this.removeAttributeNS(e.space,e.local):(s=this.getAttributeNS(e.space,e.local),c=a+"",s===c?null:s===o&&c===r?i:(r=c,i=t(o=s,a)))}}function ul(e,t){var n=Ht(e),o=n==="transform"?na:fr;return this.attrTween(e,typeof t=="function"?(n.local?ll:cl)(n,o,Nn(this,"attr."+e,t)):t==null?(n.local?il:rl)(n):(n.local?al:sl)(n,o,t))}function dl(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}function fl(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}function hl(e,t){var n,o;function r(){var i=t.apply(this,arguments);return i!==o&&(n=(o=i)&&fl(e,i)),n}return r._value=t,r}function gl(e,t){var n,o;function r(){var i=t.apply(this,arguments);return i!==o&&(n=(o=i)&&dl(e,i)),n}return r._value=t,r}function pl(e,t){var n="attr."+e;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(t==null)return this.tween(n,null);if(typeof t!="function")throw new Error;var o=Ht(e);return this.tween(n,(o.local?hl:gl)(o,t))}function ml(e,t){return function(){Sn(this,e).delay=+t.apply(this,arguments)}}function yl(e,t){return t=+t,function(){Sn(this,e).delay=t}}function xl(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?ml:yl)(t,e)):fe(this.node(),t).delay}function wl(e,t){return function(){ge(this,e).duration=+t.apply(this,arguments)}}function vl(e,t){return t=+t,function(){ge(this,e).duration=t}}function _l(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?wl:vl)(t,e)):fe(this.node(),t).duration}function bl(e,t){if(typeof t!="function")throw new Error;return function(){ge(this,e).ease=t}}function El(e){var t=this._id;return arguments.length?this.each(bl(t,e)):fe(this.node(),t).ease}function Sl(e,t){return function(){var n=t.apply(this,arguments);if(typeof n!="function")throw new Error;ge(this,e).ease=n}}function Nl(e){if(typeof e!="function")throw new Error;return this.each(Sl(this._id,e))}function Cl(e){typeof e!="function"&&(e=qo(e));for(var t=this._groups,n=t.length,o=new Array(n),r=0;r<n;++r)for(var i=t[r],s=i.length,a=o[r]=[],c,l=0;l<s;++l)(c=i[l])&&e.call(c,c.__data__,l,i)&&a.push(c);return new ye(o,this._parents,this._name,this._id)}function Ml(e){if(e._id!==this._id)throw new Error;for(var t=this._groups,n=e._groups,o=t.length,r=n.length,i=Math.min(o,r),s=new Array(o),a=0;a<i;++a)for(var c=t[a],l=n[a],d=c.length,f=s[a]=new Array(d),u,h=0;h<d;++h)(u=c[h]||l[h])&&(f[h]=u);for(;a<o;++a)s[a]=t[a];return new ye(s,this._parents,this._name,this._id)}function kl(e){return(e+"").trim().split(/^|\s+/).every(function(t){var n=t.indexOf(".");return n>=0&&(t=t.slice(0,n)),!t||t==="start"})}function Il(e,t,n){var o,r,i=kl(t)?Sn:ge;return function(){var s=i(this,e),a=s.on;a!==o&&(r=(o=a).copy()).on(t,n),s.on=r}}function Al(e,t){var n=this._id;return arguments.length<2?fe(this.node(),n).on.on(e):this.each(Il(n,e,t))}function Pl(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function Dl(){return this.on("end.remove",Pl(this._id))}function Tl(e){var t=this._name,n=this._id;typeof e!="function"&&(e=_n(e));for(var o=this._groups,r=o.length,i=new Array(r),s=0;s<r;++s)for(var a=o[s],c=a.length,l=i[s]=new Array(c),d,f,u=0;u<c;++u)(d=a[u])&&(f=e.call(d,d.__data__,u,a))&&("__data__"in d&&(f.__data__=d.__data__),l[u]=f,Rt(l[u],t,n,u,l,fe(d,n)));return new ye(i,this._parents,t,n)}function $l(e){var t=this._name,n=this._id;typeof e!="function"&&(e=Go(e));for(var o=this._groups,r=o.length,i=[],s=[],a=0;a<r;++a)for(var c=o[a],l=c.length,d,f=0;f<l;++f)if(d=c[f]){for(var u=e.call(d,d.__data__,f,c),h,m=fe(d,n),p=0,v=u.length;p<v;++p)(h=u[p])&&Rt(h,t,n,p,u,m);i.push(u),s.push(d)}return new ye(i,s,t,n)}var zl=it.prototype.constructor;function Hl(){return new zl(this._groups,this._parents)}function Ll(e,t){var n,o,r;return function(){var i=$e(this,e),s=(this.style.removeProperty(e),$e(this,e));return i===s?null:i===n&&s===o?r:r=t(n=i,o=s)}}function hr(e){return function(){this.style.removeProperty(e)}}function Rl(e,t,n){var o,r=n+"",i;return function(){var s=$e(this,e);return s===r?null:s===o?i:i=t(o=s,n)}}function Ol(e,t,n){var o,r,i;return function(){var s=$e(this,e),a=n(this),c=a+"";return a==null&&(c=a=(this.style.removeProperty(e),$e(this,e))),s===c?null:s===o&&c===r?i:(r=c,i=t(o=s,a))}}function Bl(e,t){var n,o,r,i="style."+t,s="end."+i,a;return function(){var c=ge(this,e),l=c.on,d=c.value[i]==null?a||(a=hr(t)):void 0;(l!==n||r!==d)&&(o=(n=l).copy()).on(s,r=d),c.on=o}}function Vl(e,t,n){var o=(e+="")=="transform"?ta:fr;return t==null?this.styleTween(e,Ll(e,o)).on("end.style."+e,hr(e)):typeof t=="function"?this.styleTween(e,Ol(e,o,Nn(this,"style."+e,t))).each(Bl(this._id,e)):this.styleTween(e,Rl(e,o,t),n).on("end.style."+e,null)}function jl(e,t,n){return function(o){this.style.setProperty(e,t.call(this,o),n)}}function Fl(e,t,n){var o,r;function i(){var s=t.apply(this,arguments);return s!==r&&(o=(r=s)&&jl(e,s,n)),o}return i._value=t,i}function Yl(e,t,n){var o="style."+(e+="");if(arguments.length<2)return(o=this.tween(o))&&o._value;if(t==null)return this.tween(o,null);if(typeof t!="function")throw new Error;return this.tween(o,Fl(e,t,n??""))}function Xl(e){return function(){this.textContent=e}}function Zl(e){return function(){var t=e(this);this.textContent=t??""}}function Wl(e){return this.tween("text",typeof e=="function"?Zl(Nn(this,"text",e)):Xl(e==null?"":e+""))}function Gl(e){return function(t){this.textContent=e.call(this,t)}}function ql(e){var t,n;function o(){var r=e.apply(this,arguments);return r!==n&&(t=(n=r)&&Gl(r)),t}return o._value=e,o}function Kl(e){var t="text";if(arguments.length<1)return(t=this.tween(t))&&t._value;if(e==null)return this.tween(t,null);if(typeof e!="function")throw new Error;return this.tween(t,ql(e))}function Ul(){for(var e=this._name,t=this._id,n=gr(),o=this._groups,r=o.length,i=0;i<r;++i)for(var s=o[i],a=s.length,c,l=0;l<a;++l)if(c=s[l]){var d=fe(c,t);Rt(c,e,n,l,s,{time:d.time+d.delay+d.duration,delay:0,duration:d.duration,ease:d.ease})}return new ye(o,this._parents,e,n)}function Ql(){var e,t,n=this,o=n._id,r=n.size();return new Promise(function(i,s){var a={value:s},c={value:function(){--r===0&&i()}};n.each(function(){var l=ge(this,o),d=l.on;d!==e&&(t=(e=d).copy(),t._.cancel.push(a),t._.interrupt.push(a),t._.end.push(c)),l.on=t}),r===0&&i()})}var Jl=0;function ye(e,t,n,o){this._groups=e,this._parents=t,this._name=n,this._id=o}function gr(){return++Jl}var pe=it.prototype;ye.prototype={constructor:ye,select:Tl,selectAll:$l,selectChild:pe.selectChild,selectChildren:pe.selectChildren,filter:Cl,merge:Ml,selection:Hl,transition:Ul,call:pe.call,nodes:pe.nodes,node:pe.node,size:pe.size,empty:pe.empty,each:pe.each,on:Al,attr:ul,attrTween:pl,style:Vl,styleTween:Yl,text:Wl,textTween:Kl,remove:Dl,tween:ol,delay:xl,duration:_l,ease:El,easeVarying:Nl,end:Ql,[Symbol.iterator]:pe[Symbol.iterator]};function eu(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var tu={time:null,delay:0,duration:250,ease:eu};function nu(e,t){for(var n;!(n=e.__transition)||!(n=n[t]);)if(!(e=e.parentNode))throw new Error(`transition ${t} not found`);return n}function ou(e){var t,n;e instanceof ye?(t=e._id,e=e._name):(t=gr(),(n=tu).time=En(),e=e==null?null:e+"");for(var o=this._groups,r=o.length,i=0;i<r;++i)for(var s=o[i],a=s.length,c,l=0;l<a;++l)(c=s[l])&&Rt(c,e,t,l,s,n||nu(c,t));return new ye(o,this._parents,e,t)}it.prototype.interrupt=el;it.prototype.transition=ou;const mt=e=>()=>e;function ru(e,{sourceEvent:t,target:n,transform:o,dispatch:r}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:o,enumerable:!0,configurable:!0},_:{value:r}})}function me(e,t,n){this.k=e,this.x=t,this.y=n}me.prototype={constructor:me,scale:function(e){return e===1?this:new me(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new me(this.k,this.x+this.k*e,this.y+this.k*t)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var Ot=new me(1,0,0);pr.prototype=me.prototype;function pr(e){for(;!e.__zoom;)if(!(e=e.parentNode))return Ot;return e.__zoom}function Jt(e){e.stopImmediatePropagation()}function Xe(e){e.preventDefault(),e.stopImmediatePropagation()}function iu(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function su(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e,e.hasAttribute("viewBox")?(e=e.viewBox.baseVal,[[e.x,e.y],[e.x+e.width,e.y+e.height]]):[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]):[[0,0],[e.clientWidth,e.clientHeight]]}function to(){return this.__zoom||Ot}function au(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function cu(){return navigator.maxTouchPoints||"ontouchstart"in this}function lu(e,t,n){var o=e.invertX(t[0][0])-n[0][0],r=e.invertX(t[1][0])-n[1][0],i=e.invertY(t[0][1])-n[0][1],s=e.invertY(t[1][1])-n[1][1];return e.translate(r>o?(o+r)/2:Math.min(0,o)||Math.max(0,r),s>i?(i+s)/2:Math.min(0,i)||Math.max(0,s))}function mr(){var e=iu,t=su,n=lu,o=au,r=cu,i=[0,1/0],s=[[-1/0,-1/0],[1/0,1/0]],a=250,c=_t,l=zt("start","zoom","end"),d,f,u,h=500,m=150,p=0,v=10;function w(x){x.property("__zoom",to).on("wheel.zoom",I,{passive:!1}).on("mousedown.zoom",T).on("dblclick.zoom",V).filter(r).on("touchstart.zoom",O).on("touchmove.zoom",A).on("touchend.zoom touchcancel.zoom",H).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}w.transform=function(x,M,E,N){var D=x.selection?x.selection():x;D.property("__zoom",to),x!==D?S(x,M,E,N):D.interrupt().each(function(){b(this,arguments).event(N).start().zoom(null,typeof M=="function"?M.apply(this,arguments):M).end()})},w.scaleBy=function(x,M,E,N){w.scaleTo(x,function(){var D=this.__zoom.k,P=typeof M=="function"?M.apply(this,arguments):M;return D*P},E,N)},w.scaleTo=function(x,M,E,N){w.transform(x,function(){var D=t.apply(this,arguments),P=this.__zoom,z=E==null?y(D):typeof E=="function"?E.apply(this,arguments):E,L=P.invert(z),R=typeof M=="function"?M.apply(this,arguments):M;return n(g(C(P,R),z,L),D,s)},E,N)},w.translateBy=function(x,M,E,N){w.transform(x,function(){return n(this.__zoom.translate(typeof M=="function"?M.apply(this,arguments):M,typeof E=="function"?E.apply(this,arguments):E),t.apply(this,arguments),s)},null,N)},w.translateTo=function(x,M,E,N,D){w.transform(x,function(){var P=t.apply(this,arguments),z=this.__zoom,L=N==null?y(P):typeof N=="function"?N.apply(this,arguments):N;return n(Ot.translate(L[0],L[1]).scale(z.k).translate(typeof M=="function"?-M.apply(this,arguments):-M,typeof E=="function"?-E.apply(this,arguments):-E),P,s)},N,D)};function C(x,M){return M=Math.max(i[0],Math.min(i[1],M)),M===x.k?x:new me(M,x.x,x.y)}function g(x,M,E){var N=M[0]-E[0]*x.k,D=M[1]-E[1]*x.k;return N===x.x&&D===x.y?x:new me(x.k,N,D)}function y(x){return[(+x[0][0]+ +x[1][0])/2,(+x[0][1]+ +x[1][1])/2]}function S(x,M,E,N){x.on("start.zoom",function(){b(this,arguments).event(N).start()}).on("interrupt.zoom end.zoom",function(){b(this,arguments).event(N).end()}).tween("zoom",function(){var D=this,P=arguments,z=b(D,P).event(N),L=t.apply(D,P),R=E==null?y(L):typeof E=="function"?E.apply(D,P):E,F=Math.max(L[1][0]-L[0][0],L[1][1]-L[0][1]),j=D.__zoom,W=typeof M=="function"?M.apply(D,P):M,K=c(j.invert(R).concat(F/j.k),W.invert(R).concat(F/W.k));return function(Y){if(Y===1)Y=W;else{var B=K(Y),Z=F/B[2];Y=new me(Z,R[0]-B[0]*Z,R[1]-B[1]*Z)}z.zoom(null,Y)}})}function b(x,M,E){return!E&&x.__zooming||new k(x,M)}function k(x,M){this.that=x,this.args=M,this.active=0,this.sourceEvent=null,this.extent=t.apply(x,M),this.taps=0}k.prototype={event:function(x){return x&&(this.sourceEvent=x),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(x,M){return this.mouse&&x!=="mouse"&&(this.mouse[1]=M.invert(this.mouse[0])),this.touch0&&x!=="touch"&&(this.touch0[1]=M.invert(this.touch0[0])),this.touch1&&x!=="touch"&&(this.touch1[1]=M.invert(this.touch1[0])),this.that.__zoom=M,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(x){var M=ae(this.that).datum();l.call(x,this.that,new ru(x,{sourceEvent:this.sourceEvent,target:w,transform:this.that.__zoom,dispatch:l}),M)}};function I(x,...M){if(!e.apply(this,arguments))return;var E=b(this,M).event(x),N=this.__zoom,D=Math.max(i[0],Math.min(i[1],N.k*Math.pow(2,o.apply(this,arguments)))),P=le(x);if(E.wheel)(E.mouse[0][0]!==P[0]||E.mouse[0][1]!==P[1])&&(E.mouse[1]=N.invert(E.mouse[0]=P)),clearTimeout(E.wheel);else{if(N.k===D)return;E.mouse=[P,N.invert(P)],Nt(this),E.start()}Xe(x),E.wheel=setTimeout(z,m),E.zoom("mouse",n(g(C(N,D),E.mouse[0],E.mouse[1]),E.extent,s));function z(){E.wheel=null,E.end()}}function T(x,...M){if(u||!e.apply(this,arguments))return;var E=x.currentTarget,N=b(this,M,!0).event(x),D=ae(x.view).on("mousemove.zoom",R,!0).on("mouseup.zoom",F,!0),P=le(x,E),z=x.clientX,L=x.clientY;ir(x.view),Jt(x),N.mouse=[P,this.__zoom.invert(P)],Nt(this),N.start();function R(j){if(Xe(j),!N.moved){var W=j.clientX-z,K=j.clientY-L;N.moved=W*W+K*K>p}N.event(j).zoom("mouse",n(g(N.that.__zoom,N.mouse[0]=le(j,E),N.mouse[1]),N.extent,s))}function F(j){D.on("mousemove.zoom mouseup.zoom",null),sr(j.view,N.moved),Xe(j),N.event(j).end()}}function V(x,...M){if(e.apply(this,arguments)){var E=this.__zoom,N=le(x.changedTouches?x.changedTouches[0]:x,this),D=E.invert(N),P=E.k*(x.shiftKey?.5:2),z=n(g(C(E,P),N,D),t.apply(this,M),s);Xe(x),a>0?ae(this).transition().duration(a).call(S,z,N,x):ae(this).call(w.transform,z,N,x)}}function O(x,...M){if(e.apply(this,arguments)){var E=x.touches,N=E.length,D=b(this,M,x.changedTouches.length===N).event(x),P,z,L,R;for(Jt(x),z=0;z<N;++z)L=E[z],R=le(L,this),R=[R,this.__zoom.invert(R),L.identifier],D.touch0?!D.touch1&&D.touch0[2]!==R[2]&&(D.touch1=R,D.taps=0):(D.touch0=R,P=!0,D.taps=1+!!d);d&&(d=clearTimeout(d)),P&&(D.taps<2&&(f=R[0],d=setTimeout(function(){d=null},h)),Nt(this),D.start())}}function A(x,...M){if(this.__zooming){var E=b(this,M).event(x),N=x.changedTouches,D=N.length,P,z,L,R;for(Xe(x),P=0;P<D;++P)z=N[P],L=le(z,this),E.touch0&&E.touch0[2]===z.identifier?E.touch0[0]=L:E.touch1&&E.touch1[2]===z.identifier&&(E.touch1[0]=L);if(z=E.that.__zoom,E.touch1){var F=E.touch0[0],j=E.touch0[1],W=E.touch1[0],K=E.touch1[1],Y=(Y=W[0]-F[0])*Y+(Y=W[1]-F[1])*Y,B=(B=K[0]-j[0])*B+(B=K[1]-j[1])*B;z=C(z,Math.sqrt(Y/B)),L=[(F[0]+W[0])/2,(F[1]+W[1])/2],R=[(j[0]+K[0])/2,(j[1]+K[1])/2]}else if(E.touch0)L=E.touch0[0],R=E.touch0[1];else return;E.zoom("touch",n(g(z,L,R),E.extent,s))}}function H(x,...M){if(this.__zooming){var E=b(this,M).event(x),N=x.changedTouches,D=N.length,P,z;for(Jt(x),u&&clearTimeout(u),u=setTimeout(function(){u=null},h),P=0;P<D;++P)z=N[P],E.touch0&&E.touch0[2]===z.identifier?delete E.touch0:E.touch1&&E.touch1[2]===z.identifier&&delete E.touch1;if(E.touch1&&!E.touch0&&(E.touch0=E.touch1,delete E.touch1),E.touch0)E.touch0[1]=this.__zoom.invert(E.touch0[0]);else if(E.end(),E.taps===2&&(z=le(z,this),Math.hypot(f[0]-z[0],f[1]-z[1])<v)){var L=ae(this).on("dblclick.zoom");L&&L.apply(this,arguments)}}}return w.wheelDelta=function(x){return arguments.length?(o=typeof x=="function"?x:mt(+x),w):o},w.filter=function(x){return arguments.length?(e=typeof x=="function"?x:mt(!!x),w):e},w.touchable=function(x){return arguments.length?(r=typeof x=="function"?x:mt(!!x),w):r},w.extent=function(x){return arguments.length?(t=typeof x=="function"?x:mt([[+x[0][0],+x[0][1]],[+x[1][0],+x[1][1]]]),w):t},w.scaleExtent=function(x){return arguments.length?(i[0]=+x[0],i[1]=+x[1],w):[i[0],i[1]]},w.translateExtent=function(x){return arguments.length?(s[0][0]=+x[0][0],s[1][0]=+x[1][0],s[0][1]=+x[0][1],s[1][1]=+x[1][1],w):[[s[0][0],s[0][1]],[s[1][0],s[1][1]]]},w.constrain=function(x){return arguments.length?(n=x,w):n},w.duration=function(x){return arguments.length?(a=+x,w):a},w.interpolate=function(x){return arguments.length?(c=x,w):c},w.on=function(){var x=l.on.apply(l,arguments);return x===l?w:x},w.clickDistance=function(x){return arguments.length?(p=(x=+x)*x,w):Math.sqrt(p)},w.tapDistance=function(x){return arguments.length?(v=+x,w):v},w}const he={error001:()=>"[React Flow]: Seems like you have not used zustand provider as an ancestor. Help: https://reactflow.dev/error#001",error002:()=>"It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.",error003:e=>`Node type "${e}" not found. Using fallback type "default".`,error004:()=>"The React Flow parent container needs a width and a height to render the graph.",error005:()=>"Only child nodes can use a parent extent.",error006:()=>"Can't create edge. An edge needs a source and a target.",error007:e=>`The old edge with id=${e} does not exist.`,error009:e=>`Marker type "${e}" doesn't exist.`,error008:(e,{id:t,sourceHandle:n,targetHandle:o})=>`Couldn't create edge for ${e} handle id: "${e==="source"?n:o}", edge id: ${t}.`,error010:()=>"Handle: No node id found. Make sure to only use a Handle inside a custom Node.",error011:e=>`Edge type "${e}" not found. Using fallback type "default".`,error012:e=>`Node with id "${e}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`,error013:(e="react")=>`It seems that you haven't loaded the styles. Please import '@xyflow/${e}/dist/style.css' or base.css to make sure everything is working properly.`,error014:()=>"useNodeConnections: No node ID found. Call useNodeConnections inside a custom Node or provide a node ID.",error015:()=>"It seems that you are trying to drag a node that is not initialized. Please use onNodesChange as explained in the docs."},Ue=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],yr=["Enter"," ","Escape"],xr={"node.a11yDescription.default":"Press enter or space to select a node. Press delete to remove it and escape to cancel.","node.a11yDescription.keyboardDisabled":"Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.","node.a11yDescription.ariaLiveMessage":({direction:e,x:t,y:n})=>`Moved selected node ${e}. New position, x: ${t}, y: ${n}`,"edge.a11yDescription.default":"Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.","controls.ariaLabel":"Control Panel","controls.zoomIn.ariaLabel":"Zoom In","controls.zoomOut.ariaLabel":"Zoom Out","controls.fitView.ariaLabel":"Fit View","controls.interactive.ariaLabel":"Toggle Interactivity","minimap.ariaLabel":"Mini Map","handle.ariaLabel":"Handle"};var He;(function(e){e.Strict="strict",e.Loose="loose"})(He||(He={}));var Ne;(function(e){e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal"})(Ne||(Ne={}));var Qe;(function(e){e.Partial="partial",e.Full="full"})(Qe||(Qe={}));const wr={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null};var _e;(function(e){e.Bezier="default",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e.SimpleBezier="simplebezier"})(_e||(_e={}));var At;(function(e){e.Arrow="arrow",e.ArrowClosed="arrowclosed"})(At||(At={}));var X;(function(e){e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom"})(X||(X={}));const no={[X.Left]:X.Right,[X.Right]:X.Left,[X.Top]:X.Bottom,[X.Bottom]:X.Top};function vr(e){return e===null?null:e?"valid":"invalid"}const _r=e=>"id"in e&&"source"in e&&"target"in e,uu=e=>"id"in e&&"position"in e&&!("source"in e)&&!("target"in e),Cn=e=>"id"in e&&"internals"in e&&!("source"in e)&&!("target"in e),st=(e,t=[0,0])=>{const{width:n,height:o}=xe(e),r=e.origin??t,i=n*r[0],s=o*r[1];return{x:e.position.x-i,y:e.position.y-s}},du=(e,t={nodeOrigin:[0,0]})=>{if(e.length===0)return{x:0,y:0,width:0,height:0};const n=e.reduce((o,r)=>{const i=typeof r=="string";let s=!t.nodeLookup&&!i?r:void 0;t.nodeLookup&&(s=i?t.nodeLookup.get(r):Cn(r)?r:t.nodeLookup.get(r.id));const a=s?Pt(s,t.nodeOrigin):{x:0,y:0,x2:0,y2:0};return Bt(o,a)},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return Vt(n)},at=(e,t={})=>{if(e.size===0)return{x:0,y:0,width:0,height:0};let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0};return e.forEach(o=>{if(t.filter===void 0||t.filter(o)){const r=Pt(o);n=Bt(n,r)}}),Vt(n)},Mn=(e,t,[n,o,r]=[0,0,1],i=!1,s=!1)=>{const a={...lt(t,[n,o,r]),width:t.width/r,height:t.height/r},c=[];for(const l of e.values()){const{measured:d,selectable:f=!0,hidden:u=!1}=l;if(s&&!f||u)continue;const h=d.width??l.width??l.initialWidth??null,m=d.height??l.height??l.initialHeight??null,p=Je(a,Re(l)),v=(h??0)*(m??0),w=i&&p>0;(!l.internals.handleBounds||w||p>=v||l.dragging)&&c.push(l)}return c},fu=(e,t)=>{const n=new Set;return e.forEach(o=>{n.add(o.id)}),t.filter(o=>n.has(o.source)||n.has(o.target))};function hu(e,t){const n=new Map,o=t?.nodes?new Set(t.nodes.map(r=>r.id)):null;return e.forEach(r=>{r.measured.width&&r.measured.height&&(t?.includeHiddenNodes||!r.hidden)&&(!o||o.has(r.id))&&n.set(r.id,r)}),n}async function gu({nodes:e,width:t,height:n,panZoom:o,minZoom:r,maxZoom:i},s){if(e.size===0)return Promise.resolve(!0);const a=hu(e,s),c=at(a),l=kn(c,t,n,s?.minZoom??r,s?.maxZoom??i,s?.padding??.1);return await o.setViewport(l,{duration:s?.duration,ease:s?.ease,interpolate:s?.interpolate}),Promise.resolve(!0)}function br({nodeId:e,nextPosition:t,nodeLookup:n,nodeOrigin:o=[0,0],nodeExtent:r,onError:i}){const s=n.get(e),a=s.parentId?n.get(s.parentId):void 0,{x:c,y:l}=a?a.internals.positionAbsolute:{x:0,y:0},d=s.origin??o;let f=s.extent||r;if(s.extent==="parent"&&!s.expandParent)if(!a)i?.("005",he.error005());else{const h=a.measured.width,m=a.measured.height;h&&m&&(f=[[c,l],[c+h,l+m]])}else a&&Oe(s.extent)&&(f=[[s.extent[0][0]+c,s.extent[0][1]+l],[s.extent[1][0]+c,s.extent[1][1]+l]]);const u=Oe(f)?Me(t,f,s.measured):t;return(s.measured.width===void 0||s.measured.height===void 0)&&i?.("015",he.error015()),{position:{x:u.x-c+(s.measured.width??0)*d[0],y:u.y-l+(s.measured.height??0)*d[1]},positionAbsolute:u}}async function pu({nodesToRemove:e=[],edgesToRemove:t=[],nodes:n,edges:o,onBeforeDelete:r}){const i=new Set(e.map(u=>u.id)),s=[];for(const u of n){if(u.deletable===!1)continue;const h=i.has(u.id),m=!h&&u.parentId&&s.find(p=>p.id===u.parentId);(h||m)&&s.push(u)}const a=new Set(t.map(u=>u.id)),c=o.filter(u=>u.deletable!==!1),d=fu(s,c);for(const u of c)a.has(u.id)&&!d.find(m=>m.id===u.id)&&d.push(u);if(!r)return{edges:d,nodes:s};const f=await r({nodes:s,edges:d});return typeof f=="boolean"?f?{edges:d,nodes:s}:{edges:[],nodes:[]}:f}const Le=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),Me=(e={x:0,y:0},t,n)=>({x:Le(e.x,t[0][0],t[1][0]-(n?.width??0)),y:Le(e.y,t[0][1],t[1][1]-(n?.height??0))});function Er(e,t,n){const{width:o,height:r}=xe(n),{x:i,y:s}=n.internals.positionAbsolute;return Me(e,[[i,s],[i+o,s+r]],t)}const oo=(e,t,n)=>e<t?Le(Math.abs(e-t),1,t)/t:e>n?-Le(Math.abs(e-n),1,t)/t:0,Sr=(e,t,n=15,o=40)=>{const r=oo(e.x,o,t.width-o)*n,i=oo(e.y,o,t.height-o)*n;return[r,i]},Bt=(e,t)=>({x:Math.min(e.x,t.x),y:Math.min(e.y,t.y),x2:Math.max(e.x2,t.x2),y2:Math.max(e.y2,t.y2)}),pn=({x:e,y:t,width:n,height:o})=>({x:e,y:t,x2:e+n,y2:t+o}),Vt=({x:e,y:t,x2:n,y2:o})=>({x:e,y:t,width:n-e,height:o-t}),Re=(e,t=[0,0])=>{const{x:n,y:o}=Cn(e)?e.internals.positionAbsolute:st(e,t);return{x:n,y:o,width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}},Pt=(e,t=[0,0])=>{const{x:n,y:o}=Cn(e)?e.internals.positionAbsolute:st(e,t);return{x:n,y:o,x2:n+(e.measured?.width??e.width??e.initialWidth??0),y2:o+(e.measured?.height??e.height??e.initialHeight??0)}},Nr=(e,t)=>Vt(Bt(pn(e),pn(t))),Je=(e,t)=>{const n=Math.max(0,Math.min(e.x+e.width,t.x+t.width)-Math.max(e.x,t.x)),o=Math.max(0,Math.min(e.y+e.height,t.y+t.height)-Math.max(e.y,t.y));return Math.ceil(n*o)},ro=e=>ue(e.width)&&ue(e.height)&&ue(e.x)&&ue(e.y),ue=e=>!isNaN(e)&&isFinite(e),mu=(e,t)=>{},ct=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),lt=({x:e,y:t},[n,o,r],i=!1,s=[1,1])=>{const a={x:(e-n)/r,y:(t-o)/r};return i?ct(a,s):a},Dt=({x:e,y:t},[n,o,r])=>({x:e*r+n,y:t*r+o});function Ae(e,t){if(typeof e=="number")return Math.floor((t-t/(1+e))*.5);if(typeof e=="string"&&e.endsWith("px")){const n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(n)}if(typeof e=="string"&&e.endsWith("%")){const n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(t*n*.01)}return console.error(`[React Flow] The padding value "${e}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}function yu(e,t,n){if(typeof e=="string"||typeof e=="number"){const o=Ae(e,n),r=Ae(e,t);return{top:o,right:r,bottom:o,left:r,x:r*2,y:o*2}}if(typeof e=="object"){const o=Ae(e.top??e.y??0,n),r=Ae(e.bottom??e.y??0,n),i=Ae(e.left??e.x??0,t),s=Ae(e.right??e.x??0,t);return{top:o,right:s,bottom:r,left:i,x:i+s,y:o+r}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}function xu(e,t,n,o,r,i){const{x:s,y:a}=Dt(e,[t,n,o]),{x:c,y:l}=Dt({x:e.x+e.width,y:e.y+e.height},[t,n,o]),d=r-c,f=i-l;return{left:Math.floor(s),top:Math.floor(a),right:Math.floor(d),bottom:Math.floor(f)}}const kn=(e,t,n,o,r,i)=>{const s=yu(i,t,n),a=(t-s.x)/e.width,c=(n-s.y)/e.height,l=Math.min(a,c),d=Le(l,o,r),f=e.x+e.width/2,u=e.y+e.height/2,h=t/2-f*d,m=n/2-u*d,p=xu(e,h,m,d,t,n),v={left:Math.min(p.left-s.left,0),top:Math.min(p.top-s.top,0),right:Math.min(p.right-s.right,0),bottom:Math.min(p.bottom-s.bottom,0)};return{x:h-v.left+v.right,y:m-v.top+v.bottom,zoom:d}},et=()=>typeof navigator<"u"&&navigator?.userAgent?.indexOf("Mac")>=0;function Oe(e){return e!=null&&e!=="parent"}function xe(e){return{width:e.measured?.width??e.width??e.initialWidth??0,height:e.measured?.height??e.height??e.initialHeight??0}}function Cr(e){return(e.measured?.width??e.width??e.initialWidth)!==void 0&&(e.measured?.height??e.height??e.initialHeight)!==void 0}function Mr(e,t={width:0,height:0},n,o,r){const i={...e},s=o.get(n);if(s){const a=s.origin||r;i.x+=s.internals.positionAbsolute.x-(t.width??0)*a[0],i.y+=s.internals.positionAbsolute.y-(t.height??0)*a[1]}return i}function io(e,t){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}function wu(){let e,t;return{promise:new Promise((o,r)=>{e=o,t=r}),resolve:e,reject:t}}function vu(e){return{...xr,...e||{}}}function Ge(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:o,containerBounds:r}){const{x:i,y:s}=de(e),a=lt({x:i-(r?.left??0),y:s-(r?.top??0)},o),{x:c,y:l}=n?ct(a,t):a;return{xSnapped:c,ySnapped:l,...a}}const In=e=>({width:e.offsetWidth,height:e.offsetHeight}),kr=e=>e?.getRootNode?.()||window?.document,_u=["INPUT","SELECT","TEXTAREA"];function Ir(e){const t=e.composedPath?.()?.[0]||e.target;return t?.nodeType!==1?!1:_u.includes(t.nodeName)||t.hasAttribute("contenteditable")||!!t.closest(".nokey")}const Ar=e=>"clientX"in e,de=(e,t)=>{const n=Ar(e),o=n?e.clientX:e.touches?.[0].clientX,r=n?e.clientY:e.touches?.[0].clientY;return{x:o-(t?.left??0),y:r-(t?.top??0)}},so=(e,t,n,o,r)=>{const i=t.querySelectorAll(`.${e}`);return!i||!i.length?null:Array.from(i).map(s=>{const a=s.getBoundingClientRect();return{id:s.getAttribute("data-handleid"),type:e,nodeId:r,position:s.getAttribute("data-handlepos"),x:(a.left-n.left)/o,y:(a.top-n.top)/o,...In(s)}})};function Pr({sourceX:e,sourceY:t,targetX:n,targetY:o,sourceControlX:r,sourceControlY:i,targetControlX:s,targetControlY:a}){const c=e*.125+r*.375+s*.375+n*.125,l=t*.125+i*.375+a*.375+o*.125,d=Math.abs(c-e),f=Math.abs(l-t);return[c,l,d,f]}function yt(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function ao({pos:e,x1:t,y1:n,x2:o,y2:r,c:i}){switch(e){case X.Left:return[t-yt(t-o,i),n];case X.Right:return[t+yt(o-t,i),n];case X.Top:return[t,n-yt(n-r,i)];case X.Bottom:return[t,n+yt(r-n,i)]}}function Dr({sourceX:e,sourceY:t,sourcePosition:n=X.Bottom,targetX:o,targetY:r,targetPosition:i=X.Top,curvature:s=.25}){const[a,c]=ao({pos:n,x1:e,y1:t,x2:o,y2:r,c:s}),[l,d]=ao({pos:i,x1:o,y1:r,x2:e,y2:t,c:s}),[f,u,h,m]=Pr({sourceX:e,sourceY:t,targetX:o,targetY:r,sourceControlX:a,sourceControlY:c,targetControlX:l,targetControlY:d});return[`M${e},${t} C${a},${c} ${l},${d} ${o},${r}`,f,u,h,m]}function Tr({sourceX:e,sourceY:t,targetX:n,targetY:o}){const r=Math.abs(n-e)/2,i=n<e?n+r:n-r,s=Math.abs(o-t)/2,a=o<t?o+s:o-s;return[i,a,r,s]}function bu({sourceNode:e,targetNode:t,selected:n=!1,zIndex:o,elevateOnSelect:r=!1}){if(o!==void 0)return o;const i=r&&n?1e3:0,s=Math.max(e.parentId||r&&e.selected?e.internals.z:0,t.parentId||r&&t.selected?t.internals.z:0);return i+s}function Eu({sourceNode:e,targetNode:t,width:n,height:o,transform:r}){const i=Bt(Pt(e),Pt(t));i.x===i.x2&&(i.x2+=1),i.y===i.y2&&(i.y2+=1);const s={x:-r[0]/r[2],y:-r[1]/r[2],width:n/r[2],height:o/r[2]};return Je(s,Vt(i))>0}const Su=({source:e,sourceHandle:t,target:n,targetHandle:o})=>`xy-edge__${e}${t||""}-${n}${o||""}`,Nu=(e,t)=>t.some(n=>n.source===e.source&&n.target===e.target&&(n.sourceHandle===e.sourceHandle||!n.sourceHandle&&!e.sourceHandle)&&(n.targetHandle===e.targetHandle||!n.targetHandle&&!e.targetHandle)),Cu=(e,t)=>{if(!e.source||!e.target)return t;let n;return _r(e)?n={...e}:n={...e,id:Su(e)},Nu(n,t)?t:(n.sourceHandle===null&&delete n.sourceHandle,n.targetHandle===null&&delete n.targetHandle,t.concat(n))};function $r({sourceX:e,sourceY:t,targetX:n,targetY:o}){const[r,i,s,a]=Tr({sourceX:e,sourceY:t,targetX:n,targetY:o});return[`M ${e},${t}L ${n},${o}`,r,i,s,a]}const co={[X.Left]:{x:-1,y:0},[X.Right]:{x:1,y:0},[X.Top]:{x:0,y:-1},[X.Bottom]:{x:0,y:1}},Mu=({source:e,sourcePosition:t=X.Bottom,target:n})=>t===X.Left||t===X.Right?e.x<n.x?{x:1,y:0}:{x:-1,y:0}:e.y<n.y?{x:0,y:1}:{x:0,y:-1},lo=(e,t)=>Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2));function ku({source:e,sourcePosition:t=X.Bottom,target:n,targetPosition:o=X.Top,center:r,offset:i,stepPosition:s}){const a=co[t],c=co[o],l={x:e.x+a.x*i,y:e.y+a.y*i},d={x:n.x+c.x*i,y:n.y+c.y*i},f=Mu({source:l,sourcePosition:t,target:d}),u=f.x!==0?"x":"y",h=f[u];let m=[],p,v;const w={x:0,y:0},C={x:0,y:0},[,,g,y]=Tr({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(a[u]*c[u]===-1){u==="x"?(p=r.x??l.x+(d.x-l.x)*s,v=r.y??(l.y+d.y)/2):(p=r.x??(l.x+d.x)/2,v=r.y??l.y+(d.y-l.y)*s);const b=[{x:p,y:l.y},{x:p,y:d.y}],k=[{x:l.x,y:v},{x:d.x,y:v}];a[u]===h?m=u==="x"?b:k:m=u==="x"?k:b}else{const b=[{x:l.x,y:d.y}],k=[{x:d.x,y:l.y}];if(u==="x"?m=a.x===h?k:b:m=a.y===h?b:k,t===o){const A=Math.abs(e[u]-n[u]);if(A<=i){const H=Math.min(i-1,i-A);a[u]===h?w[u]=(l[u]>e[u]?-1:1)*H:C[u]=(d[u]>n[u]?-1:1)*H}}if(t!==o){const A=u==="x"?"y":"x",H=a[u]===c[A],x=l[A]>d[A],M=l[A]<d[A];(a[u]===1&&(!H&&x||H&&M)||a[u]!==1&&(!H&&M||H&&x))&&(m=u==="x"?b:k)}const I={x:l.x+w.x,y:l.y+w.y},T={x:d.x+C.x,y:d.y+C.y},V=Math.max(Math.abs(I.x-m[0].x),Math.abs(T.x-m[0].x)),O=Math.max(Math.abs(I.y-m[0].y),Math.abs(T.y-m[0].y));V>=O?(p=(I.x+T.x)/2,v=m[0].y):(p=m[0].x,v=(I.y+T.y)/2)}return[[e,{x:l.x+w.x,y:l.y+w.y},...m,{x:d.x+C.x,y:d.y+C.y},n],p,v,g,y]}function Iu(e,t,n,o){const r=Math.min(lo(e,t)/2,lo(t,n)/2,o),{x:i,y:s}=t;if(e.x===i&&i===n.x||e.y===s&&s===n.y)return`L${i} ${s}`;if(e.y===s){const l=e.x<n.x?-1:1,d=e.y<n.y?1:-1;return`L ${i+r*l},${s}Q ${i},${s} ${i},${s+r*d}`}const a=e.x<n.x?1:-1,c=e.y<n.y?-1:1;return`L ${i},${s+r*c}Q ${i},${s} ${i+r*a},${s}`}function mn({sourceX:e,sourceY:t,sourcePosition:n=X.Bottom,targetX:o,targetY:r,targetPosition:i=X.Top,borderRadius:s=5,centerX:a,centerY:c,offset:l=20,stepPosition:d=.5}){const[f,u,h,m,p]=ku({source:{x:e,y:t},sourcePosition:n,target:{x:o,y:r},targetPosition:i,center:{x:a,y:c},offset:l,stepPosition:d});return[f.reduce((w,C,g)=>{let y="";return g>0&&g<f.length-1?y=Iu(f[g-1],C,f[g+1],s):y=`${g===0?"M":"L"}${C.x} ${C.y}`,w+=y,w},""),u,h,m,p]}function uo(e){return e&&!!(e.internals.handleBounds||e.handles?.length)&&!!(e.measured.width||e.width||e.initialWidth)}function Au(e){const{sourceNode:t,targetNode:n}=e;if(!uo(t)||!uo(n))return null;const o=t.internals.handleBounds||fo(t.handles),r=n.internals.handleBounds||fo(n.handles),i=ho(o?.source??[],e.sourceHandle),s=ho(e.connectionMode===He.Strict?r?.target??[]:(r?.target??[]).concat(r?.source??[]),e.targetHandle);if(!i||!s)return e.onError?.("008",he.error008(i?"target":"source",{id:e.id,sourceHandle:e.sourceHandle,targetHandle:e.targetHandle})),null;const a=i?.position||X.Bottom,c=s?.position||X.Top,l=tt(t,i,a),d=tt(n,s,c);return{sourceX:l.x,sourceY:l.y,targetX:d.x,targetY:d.y,sourcePosition:a,targetPosition:c}}function fo(e){if(!e)return null;const t=[],n=[];for(const o of e)o.width=o.width??1,o.height=o.height??1,o.type==="source"?t.push(o):o.type==="target"&&n.push(o);return{source:t,target:n}}function tt(e,t,n=X.Left,o=!1){const r=(t?.x??0)+e.internals.positionAbsolute.x,i=(t?.y??0)+e.internals.positionAbsolute.y,{width:s,height:a}=t??xe(e);if(o)return{x:r+s/2,y:i+a/2};switch(t?.position??n){case X.Top:return{x:r+s/2,y:i};case X.Right:return{x:r+s,y:i+a/2};case X.Bottom:return{x:r+s/2,y:i+a};case X.Left:return{x:r,y:i+a/2}}}function ho(e,t){return e&&(t?e.find(n=>n.id===t):e[0])||null}function yn(e,t){return e?typeof e=="string"?e:`${t?`${t}__`:""}${Object.keys(e).sort().map(o=>`${o}=${e[o]}`).join("&")}`:""}function Pu(e,{id:t,defaultColor:n,defaultMarkerStart:o,defaultMarkerEnd:r}){const i=new Set;return e.reduce((s,a)=>([a.markerStart||o,a.markerEnd||r].forEach(c=>{if(c&&typeof c=="object"){const l=yn(c,t);i.has(l)||(s.push({id:l,color:c.color||n,...c}),i.add(l))}}),s),[]).sort((s,a)=>s.id.localeCompare(a.id))}const An={nodeOrigin:[0,0],nodeExtent:Ue,elevateNodesOnSelect:!0,defaults:{}},Du={...An,checkEquality:!0};function Pn(e,t){const n={...e};for(const o in t)t[o]!==void 0&&(n[o]=t[o]);return n}function Tu(e,t,n){const o=Pn(An,n);for(const r of e.values())if(r.parentId)Dn(r,e,t,o);else{const i=st(r,o.nodeOrigin),s=Oe(r.extent)?r.extent:o.nodeExtent,a=Me(i,s,xe(r));r.internals.positionAbsolute=a}}function $u(e,t){if(!e.handles)return e.measured?t?.internals.handleBounds:void 0;const n=[],o=[];for(const r of e.handles){const i={id:r.id,width:r.width??1,height:r.height??1,nodeId:e.id,x:r.x,y:r.y,position:r.position,type:r.type};r.type==="source"?n.push(i):r.type==="target"&&o.push(i)}return{source:n,target:o}}function xn(e,t,n,o){const r=Pn(Du,o);let i=e.length>0;const s=new Map(t),a=r?.elevateNodesOnSelect?1e3:0;t.clear(),n.clear();for(const c of e){let l=s.get(c.id);if(r.checkEquality&&c===l?.internals.userNode)t.set(c.id,l);else{const d=st(c,r.nodeOrigin),f=Oe(c.extent)?c.extent:r.nodeExtent,u=Me(d,f,xe(c));l={...r.defaults,...c,measured:{width:c.measured?.width,height:c.measured?.height},internals:{positionAbsolute:u,handleBounds:$u(c,l),z:zr(c,a),userNode:c}},t.set(c.id,l)}(l.measured===void 0||l.measured.width===void 0||l.measured.height===void 0)&&!l.hidden&&(i=!1),c.parentId&&Dn(l,t,n,o)}return i}function zu(e,t){if(!e.parentId)return;const n=t.get(e.parentId);n?n.set(e.id,e):t.set(e.parentId,new Map([[e.id,e]]))}function Dn(e,t,n,o){const{elevateNodesOnSelect:r,nodeOrigin:i,nodeExtent:s}=Pn(An,o),a=e.parentId,c=t.get(a);if(!c){console.warn(`Parent node ${a} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);return}zu(e,n);const l=r?1e3:0,{x:d,y:f,z:u}=Hu(e,c,i,s,l),{positionAbsolute:h}=e.internals,m=d!==h.x||f!==h.y;(m||u!==e.internals.z)&&t.set(e.id,{...e,internals:{...e.internals,positionAbsolute:m?{x:d,y:f}:h,z:u}})}function zr(e,t){return(ue(e.zIndex)?e.zIndex:0)+(e.selected?t:0)}function Hu(e,t,n,o,r){const{x:i,y:s}=t.internals.positionAbsolute,a=xe(e),c=st(e,n),l=Oe(e.extent)?Me(c,e.extent,a):c;let d=Me({x:i+l.x,y:s+l.y},o,a);e.extent==="parent"&&(d=Er(d,a,t));const f=zr(e,r),u=t.internals.z??0;return{x:d.x,y:d.y,z:u>=f?u+1:f}}function Tn(e,t,n,o=[0,0]){const r=[],i=new Map;for(const s of e){const a=t.get(s.parentId);if(!a)continue;const c=i.get(s.parentId)?.expandedRect??Re(a),l=Nr(c,s.rect);i.set(s.parentId,{expandedRect:l,parent:a})}return i.size>0&&i.forEach(({expandedRect:s,parent:a},c)=>{const l=a.internals.positionAbsolute,d=xe(a),f=a.origin??o,u=s.x<l.x?Math.round(Math.abs(l.x-s.x)):0,h=s.y<l.y?Math.round(Math.abs(l.y-s.y)):0,m=Math.max(d.width,Math.round(s.width)),p=Math.max(d.height,Math.round(s.height)),v=(m-d.width)*f[0],w=(p-d.height)*f[1];(u>0||h>0||v||w)&&(r.push({id:c,type:"position",position:{x:a.position.x-u+v,y:a.position.y-h+w}}),n.get(c)?.forEach(C=>{e.some(g=>g.id===C.id)||r.push({id:C.id,type:"position",position:{x:C.position.x+u,y:C.position.y+h}})})),(d.width<s.width||d.height<s.height||u||h)&&r.push({id:c,type:"dimensions",setAttributes:!0,dimensions:{width:m+(u?f[0]*u-v:0),height:p+(h?f[1]*h-w:0)}})}),r}function Lu(e,t,n,o,r,i){const s=o?.querySelector(".xyflow__viewport");let a=!1;if(!s)return{changes:[],updatedInternals:a};const c=[],l=window.getComputedStyle(s),{m22:d}=new window.DOMMatrixReadOnly(l.transform),f=[];for(const u of e.values()){const h=t.get(u.id);if(!h)continue;if(h.hidden){t.set(h.id,{...h,internals:{...h.internals,handleBounds:void 0}}),a=!0;continue}const m=In(u.nodeElement),p=h.measured.width!==m.width||h.measured.height!==m.height;if(!!(m.width&&m.height&&(p||!h.internals.handleBounds||u.force))){const w=u.nodeElement.getBoundingClientRect(),C=Oe(h.extent)?h.extent:i;let{positionAbsolute:g}=h.internals;h.parentId&&h.extent==="parent"?g=Er(g,m,t.get(h.parentId)):C&&(g=Me(g,C,m));const y={...h,measured:m,internals:{...h.internals,positionAbsolute:g,handleBounds:{source:so("source",u.nodeElement,w,d,h.id),target:so("target",u.nodeElement,w,d,h.id)}}};t.set(h.id,y),h.parentId&&Dn(y,t,n,{nodeOrigin:r}),a=!0,p&&(c.push({id:h.id,type:"dimensions",dimensions:m}),h.expandParent&&h.parentId&&f.push({id:h.id,parentId:h.parentId,rect:Re(y,r)}))}}if(f.length>0){const u=Tn(f,t,n,r);c.push(...u)}return{changes:c,updatedInternals:a}}async function Ru({delta:e,panZoom:t,transform:n,translateExtent:o,width:r,height:i}){if(!t||!e.x&&!e.y)return Promise.resolve(!1);const s=await t.setViewportConstrained({x:n[0]+e.x,y:n[1]+e.y,zoom:n[2]},[[0,0],[r,i]],o),a=!!s&&(s.x!==n[0]||s.y!==n[1]||s.k!==n[2]);return Promise.resolve(a)}function go(e,t,n,o,r,i){let s=r;const a=o.get(s)||new Map;o.set(s,a.set(n,t)),s=`${r}-${e}`;const c=o.get(s)||new Map;if(o.set(s,c.set(n,t)),i){s=`${r}-${e}-${i}`;const l=o.get(s)||new Map;o.set(s,l.set(n,t))}}function Hr(e,t,n){e.clear(),t.clear();for(const o of n){const{source:r,target:i,sourceHandle:s=null,targetHandle:a=null}=o,c={edgeId:o.id,source:r,target:i,sourceHandle:s,targetHandle:a},l=`${r}-${s}--${i}-${a}`,d=`${i}-${a}--${r}-${s}`;go("source",c,d,e,r,s),go("target",c,l,e,i,a),t.set(o.id,o)}}function Lr(e,t){if(!e.parentId)return!1;const n=t.get(e.parentId);return n?n.selected?!0:Lr(n,t):!1}function po(e,t,n){let o=e;do{if(o?.matches?.(t))return!0;if(o===n)return!1;o=o?.parentElement}while(o);return!1}function Ou(e,t,n,o){const r=new Map;for(const[i,s]of e)if((s.selected||s.id===o)&&(!s.parentId||!Lr(s,e))&&(s.draggable||t&&typeof s.draggable>"u")){const a=e.get(i);a&&r.set(i,{id:i,position:a.position||{x:0,y:0},distance:{x:n.x-a.internals.positionAbsolute.x,y:n.y-a.internals.positionAbsolute.y},extent:a.extent,parentId:a.parentId,origin:a.origin,expandParent:a.expandParent,internals:{positionAbsolute:a.internals.positionAbsolute||{x:0,y:0}},measured:{width:a.measured.width??0,height:a.measured.height??0}})}return r}function en({nodeId:e,dragItems:t,nodeLookup:n,dragging:o=!0}){const r=[];for(const[s,a]of t){const c=n.get(s)?.internals.userNode;c&&r.push({...c,position:a.position,dragging:o})}if(!e)return[r[0],r];const i=n.get(e)?.internals.userNode;return[i?{...i,position:t.get(e)?.position||i.position,dragging:o}:r[0],r]}function Bu({dragItems:e,snapGrid:t,x:n,y:o}){const r=e.values().next().value;if(!r)return null;const i={x:n-r.distance.x,y:o-r.distance.y},s=ct(i,t);return{x:s.x-i.x,y:s.y-i.y}}function Vu({onNodeMouseDown:e,getStoreItems:t,onDragStart:n,onDrag:o,onDragStop:r}){let i={x:null,y:null},s=0,a=new Map,c=!1,l={x:0,y:0},d=null,f=!1,u=null,h=!1,m=!1,p=null;function v({noDragClassName:C,handleSelector:g,domNode:y,isSelectable:S,nodeId:b,nodeClickDistance:k=0}){u=ae(y);function I({x:A,y:H}){const{nodeLookup:x,nodeExtent:M,snapGrid:E,snapToGrid:N,nodeOrigin:D,onNodeDrag:P,onSelectionDrag:z,onError:L,updateNodePositions:R}=t();i={x:A,y:H};let F=!1;const j=a.size>1,W=j&&M?pn(at(a)):null,K=j&&N?Bu({dragItems:a,snapGrid:E,x:A,y:H}):null;for(const[Y,B]of a){if(!x.has(Y))continue;let Z={x:A-B.distance.x,y:H-B.distance.y};N&&(Z=K?{x:Math.round(Z.x+K.x),y:Math.round(Z.y+K.y)}:ct(Z,E));let ee=null;if(j&&M&&!B.extent&&W){const{positionAbsolute:q}=B.internals,U=q.x-W.x+M[0][0],te=q.x+B.measured.width-W.x2+M[1][0],ie=q.y-W.y+M[0][1],se=q.y+B.measured.height-W.y2+M[1][1];ee=[[U,ie],[te,se]]}const{position:J,positionAbsolute:G}=br({nodeId:Y,nextPosition:Z,nodeLookup:x,nodeExtent:ee||M,nodeOrigin:D,onError:L});F=F||B.position.x!==J.x||B.position.y!==J.y,B.position=J,B.internals.positionAbsolute=G}if(m=m||F,!!F&&(R(a,!0),p&&(o||P||!b&&z))){const[Y,B]=en({nodeId:b,dragItems:a,nodeLookup:x});o?.(p,a,Y,B),P?.(p,Y,B),b||z?.(p,B)}}async function T(){if(!d)return;const{transform:A,panBy:H,autoPanSpeed:x,autoPanOnNodeDrag:M}=t();if(!M){c=!1,cancelAnimationFrame(s);return}const[E,N]=Sr(l,d,x);(E!==0||N!==0)&&(i.x=(i.x??0)-E/A[2],i.y=(i.y??0)-N/A[2],await H({x:E,y:N})&&I(i)),s=requestAnimationFrame(T)}function V(A){const{nodeLookup:H,multiSelectionActive:x,nodesDraggable:M,transform:E,snapGrid:N,snapToGrid:D,selectNodesOnDrag:P,onNodeDragStart:z,onSelectionDragStart:L,unselectNodesAndEdges:R}=t();f=!0,(!P||!S)&&!x&&b&&(H.get(b)?.selected||R()),S&&P&&b&&e?.(b);const F=Ge(A.sourceEvent,{transform:E,snapGrid:N,snapToGrid:D,containerBounds:d});if(i=F,a=Ou(H,M,F,b),a.size>0&&(n||z||!b&&L)){const[j,W]=en({nodeId:b,dragItems:a,nodeLookup:H});n?.(A.sourceEvent,a,j,W),z?.(A.sourceEvent,j,W),b||L?.(A.sourceEvent,W)}}const O=ar().clickDistance(k).on("start",A=>{const{domNode:H,nodeDragThreshold:x,transform:M,snapGrid:E,snapToGrid:N}=t();d=H?.getBoundingClientRect()||null,h=!1,m=!1,p=A.sourceEvent,x===0&&V(A),i=Ge(A.sourceEvent,{transform:M,snapGrid:E,snapToGrid:N,containerBounds:d}),l=de(A.sourceEvent,d)}).on("drag",A=>{const{autoPanOnNodeDrag:H,transform:x,snapGrid:M,snapToGrid:E,nodeDragThreshold:N,nodeLookup:D}=t(),P=Ge(A.sourceEvent,{transform:x,snapGrid:M,snapToGrid:E,containerBounds:d});if(p=A.sourceEvent,(A.sourceEvent.type==="touchmove"&&A.sourceEvent.touches.length>1||b&&!D.has(b))&&(h=!0),!h){if(!c&&H&&f&&(c=!0,T()),!f){const z=de(A.sourceEvent,d),L=z.x-l.x,R=z.y-l.y;Math.sqrt(L*L+R*R)>N&&V(A)}(i.x!==P.xSnapped||i.y!==P.ySnapped)&&a&&f&&(l=de(A.sourceEvent,d),I(P))}}).on("end",A=>{if(!(!f||h)&&(c=!1,f=!1,cancelAnimationFrame(s),a.size>0)){const{nodeLookup:H,updateNodePositions:x,onNodeDragStop:M,onSelectionDragStop:E}=t();if(m&&(x(a,!1),m=!1),r||M||!b&&E){const[N,D]=en({nodeId:b,dragItems:a,nodeLookup:H,dragging:!1});r?.(A.sourceEvent,a,N,D),M?.(A.sourceEvent,N,D),b||E?.(A.sourceEvent,D)}}}).filter(A=>{const H=A.target;return!A.button&&(!C||!po(H,`.${C}`,y))&&(!g||po(H,g,y))});u.call(O)}function w(){u?.on(".drag",null)}return{update:v,destroy:w}}function ju(e,t,n){const o=[],r={x:e.x-n,y:e.y-n,width:n*2,height:n*2};for(const i of t.values())Je(r,Re(i))>0&&o.push(i);return o}const Fu=250;function Yu(e,t,n,o){let r=[],i=1/0;const s=ju(e,n,t+Fu);for(const a of s){const c=[...a.internals.handleBounds?.source??[],...a.internals.handleBounds?.target??[]];for(const l of c){if(o.nodeId===l.nodeId&&o.type===l.type&&o.id===l.id)continue;const{x:d,y:f}=tt(a,l,l.position,!0),u=Math.sqrt(Math.pow(d-e.x,2)+Math.pow(f-e.y,2));u>t||(u<i?(r=[{...l,x:d,y:f}],i=u):u===i&&r.push({...l,x:d,y:f}))}}if(!r.length)return null;if(r.length>1){const a=o.type==="source"?"target":"source";return r.find(c=>c.type===a)??r[0]}return r[0]}function Rr(e,t,n,o,r,i=!1){const s=o.get(e);if(!s)return null;const a=r==="strict"?s.internals.handleBounds?.[t]:[...s.internals.handleBounds?.source??[],...s.internals.handleBounds?.target??[]],c=(n?a?.find(l=>l.id===n):a?.[0])??null;return c&&i?{...c,...tt(s,c,c.position,!0)}:c}function Or(e,t){return e||(t?.classList.contains("target")?"target":t?.classList.contains("source")?"source":null)}function Xu(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}const Br=()=>!0;function Zu(e,{connectionMode:t,connectionRadius:n,handleId:o,nodeId:r,edgeUpdaterType:i,isTarget:s,domNode:a,nodeLookup:c,lib:l,autoPanOnConnect:d,flowId:f,panBy:u,cancelConnection:h,onConnectStart:m,onConnect:p,onConnectEnd:v,isValidConnection:w=Br,onReconnectEnd:C,updateConnection:g,getTransform:y,getFromHandle:S,autoPanSpeed:b,dragThreshold:k=1,handleDomNode:I}){const T=kr(e.target);let V=0,O;const{x:A,y:H}=de(e),x=Or(i,I),M=a?.getBoundingClientRect();let E=!1;if(!M||!x)return;const N=Rr(r,x,o,c,t);if(!N)return;let D=de(e,M),P=!1,z=null,L=!1,R=null;function F(){if(!d||!M)return;const[J,G]=Sr(D,M,b);u({x:J,y:G}),V=requestAnimationFrame(F)}const j={...N,nodeId:r,type:x,position:N.position},W=c.get(r);let Y={inProgress:!0,isValid:null,from:tt(W,j,X.Left,!0),fromHandle:j,fromPosition:j.position,fromNode:W,to:D,toHandle:null,toPosition:no[j.position],toNode:null};function B(){E=!0,g(Y),m?.(e,{nodeId:r,handleId:o,handleType:x})}k===0&&B();function Z(J){if(!E){const{x:te,y:ie}=de(J),se=te-A,ke=ie-H;if(!(se*se+ke*ke>k*k))return;B()}if(!S()||!j){ee(J);return}const G=y();D=de(J,M),O=Yu(lt(D,G,!1,[1,1]),n,c,j),P||(F(),P=!0);const q=Vr(J,{handle:O,connectionMode:t,fromNodeId:r,fromHandleId:o,fromType:s?"target":"source",isValidConnection:w,doc:T,lib:l,flowId:f,nodeLookup:c});R=q.handleDomNode,z=q.connection,L=Xu(!!O,q.isValid);const U={...Y,isValid:L,to:q.toHandle&&L?Dt({x:q.toHandle.x,y:q.toHandle.y},G):D,toHandle:q.toHandle,toPosition:L&&q.toHandle?q.toHandle.position:no[j.position],toNode:q.toHandle?c.get(q.toHandle.nodeId):null};L&&O&&Y.toHandle&&U.toHandle&&Y.toHandle.type===U.toHandle.type&&Y.toHandle.nodeId===U.toHandle.nodeId&&Y.toHandle.id===U.toHandle.id&&Y.to.x===U.to.x&&Y.to.y===U.to.y||(g(U),Y=U)}function ee(J){if(!("touches"in J&&J.touches.length>0)){if(E){(O||R)&&z&&L&&p?.(z);const{inProgress:G,...q}=Y,U={...q,toPosition:Y.toHandle?Y.toPosition:null};v?.(J,U),i&&C?.(J,U)}h(),cancelAnimationFrame(V),P=!1,L=!1,z=null,R=null,T.removeEventListener("mousemove",Z),T.removeEventListener("mouseup",ee),T.removeEventListener("touchmove",Z),T.removeEventListener("touchend",ee)}}T.addEventListener("mousemove",Z),T.addEventListener("mouseup",ee),T.addEventListener("touchmove",Z),T.addEventListener("touchend",ee)}function Vr(e,{handle:t,connectionMode:n,fromNodeId:o,fromHandleId:r,fromType:i,doc:s,lib:a,flowId:c,isValidConnection:l=Br,nodeLookup:d}){const f=i==="target",u=t?s.querySelector(`.${a}-flow__handle[data-id="${c}-${t?.nodeId}-${t?.id}-${t?.type}"]`):null,{x:h,y:m}=de(e),p=s.elementFromPoint(h,m),v=p?.classList.contains(`${a}-flow__handle`)?p:u,w={handleDomNode:v,isValid:!1,connection:null,toHandle:null};if(v){const C=Or(void 0,v),g=v.getAttribute("data-nodeid"),y=v.getAttribute("data-handleid"),S=v.classList.contains("connectable"),b=v.classList.contains("connectableend");if(!g||!C)return w;const k={source:f?g:o,sourceHandle:f?y:r,target:f?o:g,targetHandle:f?r:y};w.connection=k;const T=S&&b&&(n===He.Strict?f&&C==="source"||!f&&C==="target":g!==o||y!==r);w.isValid=T&&l(k),w.toHandle=Rr(g,C,y,d,n,!0)}return w}const wn={onPointerDown:Zu,isValid:Vr};function Wu({domNode:e,panZoom:t,getTransform:n,getViewScale:o}){const r=ae(e);function i({translateExtent:a,width:c,height:l,zoomStep:d=1,pannable:f=!0,zoomable:u=!0,inversePan:h=!1}){const m=g=>{if(g.sourceEvent.type!=="wheel"||!t)return;const y=n(),S=g.sourceEvent.ctrlKey&&et()?10:1,b=-g.sourceEvent.deltaY*(g.sourceEvent.deltaMode===1?.05:g.sourceEvent.deltaMode?1:.002)*d,k=y[2]*Math.pow(2,b*S);t.scaleTo(k)};let p=[0,0];const v=g=>{(g.sourceEvent.type==="mousedown"||g.sourceEvent.type==="touchstart")&&(p=[g.sourceEvent.clientX??g.sourceEvent.touches[0].clientX,g.sourceEvent.clientY??g.sourceEvent.touches[0].clientY])},w=g=>{const y=n();if(g.sourceEvent.type!=="mousemove"&&g.sourceEvent.type!=="touchmove"||!t)return;const S=[g.sourceEvent.clientX??g.sourceEvent.touches[0].clientX,g.sourceEvent.clientY??g.sourceEvent.touches[0].clientY],b=[S[0]-p[0],S[1]-p[1]];p=S;const k=o()*Math.max(y[2],Math.log(y[2]))*(h?-1:1),I={x:y[0]-b[0]*k,y:y[1]-b[1]*k},T=[[0,0],[c,l]];t.setViewportConstrained({x:I.x,y:I.y,zoom:y[2]},T,a)},C=mr().on("start",v).on("zoom",f?w:null).on("zoom.wheel",u?m:null);r.call(C,{})}function s(){r.on("zoom",null)}return{update:i,destroy:s,pointer:le}}const Gu=(e,t)=>e.x!==t.x||e.y!==t.y||e.zoom!==t.k,jt=e=>({x:e.x,y:e.y,zoom:e.k}),tn=({x:e,y:t,zoom:n})=>Ot.translate(e,t).scale(n),Pe=(e,t)=>e.target.closest(`.${t}`),jr=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),qu=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,nn=(e,t=0,n=qu,o=()=>{})=>{const r=typeof t=="number"&&t>0;return r||o(),r?e.transition().duration(t).ease(n).on("end",o):e},Fr=e=>{const t=e.ctrlKey&&et()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function Ku({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:o,panOnScrollMode:r,panOnScrollSpeed:i,zoomOnPinch:s,onPanZoomStart:a,onPanZoom:c,onPanZoomEnd:l}){return d=>{if(Pe(d,t))return d.ctrlKey&&d.preventDefault(),!1;d.preventDefault(),d.stopImmediatePropagation();const f=n.property("__zoom").k||1;if(d.ctrlKey&&s){const v=le(d),w=Fr(d),C=f*Math.pow(2,w);o.scaleTo(n,C,v,d);return}const u=d.deltaMode===1?20:1;let h=r===Ne.Vertical?0:d.deltaX*u,m=r===Ne.Horizontal?0:d.deltaY*u;!et()&&d.shiftKey&&r!==Ne.Vertical&&(h=d.deltaY*u,m=0),o.translateBy(n,-(h/f)*i,-(m/f)*i,{internal:!0});const p=jt(n.property("__zoom"));clearTimeout(e.panScrollTimeout),e.isPanScrolling||(e.isPanScrolling=!0,a?.(d,p)),e.isPanScrolling&&(c?.(d,p),e.panScrollTimeout=setTimeout(()=>{l?.(d,p),e.isPanScrolling=!1},150))}}function Uu({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(o,r){const i=o.type==="wheel",s=!t&&i&&!o.ctrlKey,a=Pe(o,e);if(o.ctrlKey&&i&&a&&o.preventDefault(),s||a)return null;o.preventDefault(),n.call(this,o,r)}}function Qu({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return o=>{if(o.sourceEvent?.internal)return;const r=jt(o.transform);e.mouseButton=o.sourceEvent?.button||0,e.isZoomingOrPanning=!0,e.prevViewport=r,o.sourceEvent?.type==="mousedown"&&t(!0),n&&n?.(o.sourceEvent,r)}}function Ju({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:o,onPanZoom:r}){return i=>{e.usedRightMouseButton=!!(n&&jr(t,e.mouseButton??0)),i.sourceEvent?.sync||o([i.transform.x,i.transform.y,i.transform.k]),r&&!i.sourceEvent?.internal&&r?.(i.sourceEvent,jt(i.transform))}}function ed({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:o,onPanZoomEnd:r,onPaneContextMenu:i}){return s=>{if(!s.sourceEvent?.internal&&(e.isZoomingOrPanning=!1,i&&jr(t,e.mouseButton??0)&&!e.usedRightMouseButton&&s.sourceEvent&&i(s.sourceEvent),e.usedRightMouseButton=!1,o(!1),r&&Gu(e.prevViewport,s.transform))){const a=jt(s.transform);e.prevViewport=a,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{r?.(s.sourceEvent,a)},n?150:0)}}}function td({zoomActivationKeyPressed:e,zoomOnScroll:t,zoomOnPinch:n,panOnDrag:o,panOnScroll:r,zoomOnDoubleClick:i,userSelectionActive:s,noWheelClassName:a,noPanClassName:c,lib:l,connectionInProgress:d}){return f=>{const u=e||t,h=n&&f.ctrlKey,m=f.type==="wheel";if(f.button===1&&f.type==="mousedown"&&(Pe(f,`${l}-flow__node`)||Pe(f,`${l}-flow__edge`)))return!0;if(!o&&!u&&!r&&!i&&!n||s||d&&!m||Pe(f,a)&&m||Pe(f,c)&&(!m||r&&m&&!e)||!n&&f.ctrlKey&&m)return!1;if(!n&&f.type==="touchstart"&&f.touches?.length>1)return f.preventDefault(),!1;if(!u&&!r&&!h&&m||!o&&(f.type==="mousedown"||f.type==="touchstart")||Array.isArray(o)&&!o.includes(f.button)&&f.type==="mousedown")return!1;const p=Array.isArray(o)&&o.includes(f.button)||!f.button||f.button<=1;return(!f.ctrlKey||m)&&p}}function nd({domNode:e,minZoom:t,maxZoom:n,paneClickDistance:o,translateExtent:r,viewport:i,onPanZoom:s,onPanZoomStart:a,onPanZoomEnd:c,onDraggingChange:l}){const d={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{x:0,y:0,zoom:0},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},f=e.getBoundingClientRect(),u=mr().clickDistance(!ue(o)||o<0?0:o).scaleExtent([t,n]).translateExtent(r),h=ae(e).call(u);g({x:i.x,y:i.y,zoom:Le(i.zoom,t,n)},[[0,0],[f.width,f.height]],r);const m=h.on("wheel.zoom"),p=h.on("dblclick.zoom");u.wheelDelta(Fr);function v(A,H){return h?new Promise(x=>{u?.interpolate(H?.interpolate==="linear"?Ut:_t).transform(nn(h,H?.duration,H?.ease,()=>x(!0)),A)}):Promise.resolve(!1)}function w({noWheelClassName:A,noPanClassName:H,onPaneContextMenu:x,userSelectionActive:M,panOnScroll:E,panOnDrag:N,panOnScrollMode:D,panOnScrollSpeed:P,preventScrolling:z,zoomOnPinch:L,zoomOnScroll:R,zoomOnDoubleClick:F,zoomActivationKeyPressed:j,lib:W,onTransformChange:K,connectionInProgress:Y}){M&&!d.isZoomingOrPanning&&C();const Z=E&&!j&&!M?Ku({zoomPanValues:d,noWheelClassName:A,d3Selection:h,d3Zoom:u,panOnScrollMode:D,panOnScrollSpeed:P,zoomOnPinch:L,onPanZoomStart:a,onPanZoom:s,onPanZoomEnd:c}):Uu({noWheelClassName:A,preventScrolling:z,d3ZoomHandler:m});if(h.on("wheel.zoom",Z,{passive:!1}),!M){const J=Qu({zoomPanValues:d,onDraggingChange:l,onPanZoomStart:a});u.on("start",J);const G=Ju({zoomPanValues:d,panOnDrag:N,onPaneContextMenu:!!x,onPanZoom:s,onTransformChange:K});u.on("zoom",G);const q=ed({zoomPanValues:d,panOnDrag:N,panOnScroll:E,onPaneContextMenu:x,onPanZoomEnd:c,onDraggingChange:l});u.on("end",q)}const ee=td({zoomActivationKeyPressed:j,panOnDrag:N,zoomOnScroll:R,panOnScroll:E,zoomOnDoubleClick:F,zoomOnPinch:L,userSelectionActive:M,noPanClassName:H,noWheelClassName:A,lib:W,connectionInProgress:Y});u.filter(ee),F?h.on("dblclick.zoom",p):h.on("dblclick.zoom",null)}function C(){u.on("zoom",null)}async function g(A,H,x){const M=tn(A),E=u?.constrain()(M,H,x);return E&&await v(E),new Promise(N=>N(E))}async function y(A,H){const x=tn(A);return await v(x,H),new Promise(M=>M(x))}function S(A){if(h){const H=tn(A),x=h.property("__zoom");(x.k!==A.zoom||x.x!==A.x||x.y!==A.y)&&u?.transform(h,H,null,{sync:!0})}}function b(){const A=h?pr(h.node()):{x:0,y:0,k:1};return{x:A.x,y:A.y,zoom:A.k}}function k(A,H){return h?new Promise(x=>{u?.interpolate(H?.interpolate==="linear"?Ut:_t).scaleTo(nn(h,H?.duration,H?.ease,()=>x(!0)),A)}):Promise.resolve(!1)}function I(A,H){return h?new Promise(x=>{u?.interpolate(H?.interpolate==="linear"?Ut:_t).scaleBy(nn(h,H?.duration,H?.ease,()=>x(!0)),A)}):Promise.resolve(!1)}function T(A){u?.scaleExtent(A)}function V(A){u?.translateExtent(A)}function O(A){const H=!ue(A)||A<0?0:A;u?.clickDistance(H)}return{update:w,destroy:C,setViewport:y,setViewportConstrained:g,getViewport:b,scaleTo:k,scaleBy:I,setScaleExtent:T,setTranslateExtent:V,syncViewport:S,setClickDistance:O}}var Be;(function(e){e.Line="line",e.Handle="handle"})(Be||(Be={}));function od({width:e,prevWidth:t,height:n,prevHeight:o,affectsX:r,affectsY:i}){const s=e-t,a=n-o,c=[s>0?1:s<0?-1:0,a>0?1:a<0?-1:0];return s&&r&&(c[0]=c[0]*-1),a&&i&&(c[1]=c[1]*-1),c}function rd(e){const t=e.includes("right")||e.includes("left"),n=e.includes("bottom")||e.includes("top"),o=e.includes("left"),r=e.includes("top");return{isHorizontal:t,isVertical:n,affectsX:o,affectsY:r}}function we(e,t){return Math.max(0,t-e)}function ve(e,t){return Math.max(0,e-t)}function xt(e,t,n){return Math.max(0,t-e,e-n)}function mo(e,t){return e?!t:t}function id(e,t,n,o,r,i,s,a){let{affectsX:c,affectsY:l}=t;const{isHorizontal:d,isVertical:f}=t,u=d&&f,{xSnapped:h,ySnapped:m}=n,{minWidth:p,maxWidth:v,minHeight:w,maxHeight:C}=o,{x:g,y,width:S,height:b,aspectRatio:k}=e;let I=Math.floor(d?h-e.pointerX:0),T=Math.floor(f?m-e.pointerY:0);const V=S+(c?-I:I),O=b+(l?-T:T),A=-i[0]*S,H=-i[1]*b;let x=xt(V,p,v),M=xt(O,w,C);if(s){let D=0,P=0;c&&I<0?D=we(g+I+A,s[0][0]):!c&&I>0&&(D=ve(g+V+A,s[1][0])),l&&T<0?P=we(y+T+H,s[0][1]):!l&&T>0&&(P=ve(y+O+H,s[1][1])),x=Math.max(x,D),M=Math.max(M,P)}if(a){let D=0,P=0;c&&I>0?D=ve(g+I,a[0][0]):!c&&I<0&&(D=we(g+V,a[1][0])),l&&T>0?P=ve(y+T,a[0][1]):!l&&T<0&&(P=we(y+O,a[1][1])),x=Math.max(x,D),M=Math.max(M,P)}if(r){if(d){const D=xt(V/k,w,C)*k;if(x=Math.max(x,D),s){let P=0;!c&&!l||c&&!l&&u?P=ve(y+H+V/k,s[1][1])*k:P=we(y+H+(c?I:-I)/k,s[0][1])*k,x=Math.max(x,P)}if(a){let P=0;!c&&!l||c&&!l&&u?P=we(y+V/k,a[1][1])*k:P=ve(y+(c?I:-I)/k,a[0][1])*k,x=Math.max(x,P)}}if(f){const D=xt(O*k,p,v)/k;if(M=Math.max(M,D),s){let P=0;!c&&!l||l&&!c&&u?P=ve(g+O*k+A,s[1][0])/k:P=we(g+(l?T:-T)*k+A,s[0][0])/k,M=Math.max(M,P)}if(a){let P=0;!c&&!l||l&&!c&&u?P=we(g+O*k,a[1][0])/k:P=ve(g+(l?T:-T)*k,a[0][0])/k,M=Math.max(M,P)}}}T=T+(T<0?M:-M),I=I+(I<0?x:-x),r&&(u?V>O*k?T=(mo(c,l)?-I:I)/k:I=(mo(c,l)?-T:T)*k:d?(T=I/k,l=c):(I=T*k,c=l));const E=c?g+I:g,N=l?y+T:y;return{width:S+(c?-I:I),height:b+(l?-T:T),x:i[0]*I*(c?-1:1)+E,y:i[1]*T*(l?-1:1)+N}}const Yr={width:0,height:0,x:0,y:0},sd={...Yr,pointerX:0,pointerY:0,aspectRatio:1};function ad(e){return[[0,0],[e.measured.width,e.measured.height]]}function cd(e,t,n){const o=t.position.x+e.position.x,r=t.position.y+e.position.y,i=e.measured.width??0,s=e.measured.height??0,a=n[0]*i,c=n[1]*s;return[[o-a,r-c],[o+i-a,r+s-c]]}function ld({domNode:e,nodeId:t,getStoreItems:n,onChange:o,onEnd:r}){const i=ae(e);function s({controlPosition:c,boundaries:l,keepAspectRatio:d,resizeDirection:f,onResizeStart:u,onResize:h,onResizeEnd:m,shouldResize:p}){let v={...Yr},w={...sd};const C=rd(c);let g,y=null,S=[],b,k,I,T=!1;const V=ar().on("start",O=>{const{nodeLookup:A,transform:H,snapGrid:x,snapToGrid:M,nodeOrigin:E,paneDomNode:N}=n();if(g=A.get(t),!g)return;y=N?.getBoundingClientRect()??null;const{xSnapped:D,ySnapped:P}=Ge(O.sourceEvent,{transform:H,snapGrid:x,snapToGrid:M,containerBounds:y});v={width:g.measured.width??0,height:g.measured.height??0,x:g.position.x??0,y:g.position.y??0},w={...v,pointerX:D,pointerY:P,aspectRatio:v.width/v.height},b=void 0,g.parentId&&(g.extent==="parent"||g.expandParent)&&(b=A.get(g.parentId),k=b&&g.extent==="parent"?ad(b):void 0),S=[],I=void 0;for(const[z,L]of A)if(L.parentId===t&&(S.push({id:z,position:{...L.position},extent:L.extent}),L.extent==="parent"||L.expandParent)){const R=cd(L,g,L.origin??E);I?I=[[Math.min(R[0][0],I[0][0]),Math.min(R[0][1],I[0][1])],[Math.max(R[1][0],I[1][0]),Math.max(R[1][1],I[1][1])]]:I=R}u?.(O,{...v})}).on("drag",O=>{const{transform:A,snapGrid:H,snapToGrid:x,nodeOrigin:M}=n(),E=Ge(O.sourceEvent,{transform:A,snapGrid:H,snapToGrid:x,containerBounds:y}),N=[];if(!g)return;const{x:D,y:P,width:z,height:L}=v,R={},F=g.origin??M,{width:j,height:W,x:K,y:Y}=id(w,C,E,l,d,F,k,I),B=j!==z,Z=W!==L,ee=K!==D&&B,J=Y!==P&&Z;if(!ee&&!J&&!B&&!Z)return;if((ee||J||F[0]===1||F[1]===1)&&(R.x=ee?K:v.x,R.y=J?Y:v.y,v.x=R.x,v.y=R.y,S.length>0)){const te=K-D,ie=Y-P;for(const se of S)se.position={x:se.position.x-te+F[0]*(j-z),y:se.position.y-ie+F[1]*(W-L)},N.push(se)}if((B||Z)&&(R.width=B&&(!f||f==="horizontal")?j:v.width,R.height=Z&&(!f||f==="vertical")?W:v.height,v.width=R.width,v.height=R.height),b&&g.expandParent){const te=F[0]*(R.width??0);R.x&&R.x<te&&(v.x=te,w.x=w.x-(R.x-te));const ie=F[1]*(R.height??0);R.y&&R.y<ie&&(v.y=ie,w.y=w.y-(R.y-ie))}const G=od({width:v.width,prevWidth:z,height:v.height,prevHeight:L,affectsX:C.affectsX,affectsY:C.affectsY}),q={...v,direction:G};p?.(O,q)!==!1&&(T=!0,h?.(O,q),o(R,N))}).on("end",O=>{T&&(m?.(O,{...v}),r?.({...v}),T=!1)});i.call(V)}function a(){i.on(".drag",null)}return{update:s,destroy:a}}var on={exports:{}},rn={};var yo;function ud(){if(yo)return rn;yo=1;var e=Ps(),t=Ds();function n(l,d){return l===d&&(l!==0||1/l===1/d)||l!==l&&d!==d}var o=typeof Object.is=="function"?Object.is:n,r=t.useSyncExternalStore,i=e.useRef,s=e.useEffect,a=e.useMemo,c=e.useDebugValue;return rn.useSyncExternalStoreWithSelector=function(l,d,f,u,h){var m=i(null);if(m.current===null){var p={hasValue:!1,value:null};m.current=p}else p=m.current;m=a(function(){function w(b){if(!C){if(C=!0,g=b,b=u(b),h!==void 0&&p.hasValue){var k=p.value;if(h(k,b))return y=k}return y=b}if(k=y,o(g,b))return k;var I=u(b);return h!==void 0&&h(k,I)?(g=b,k):(g=b,y=I)}var C=!1,g,y,S=f===void 0?null:f;return[function(){return w(d())},S===null?void 0:function(){return w(S())}]},[d,f,u,h]);var v=r(l,m[0],m[1]);return s(function(){p.hasValue=!0,p.value=v},[v]),c(v),v},rn}var xo;function dd(){return xo||(xo=1,on.exports=ud()),on.exports}var fd=dd();const hd=Ts(fd),gd={},wo=e=>{let t;const n=new Set,o=(d,f)=>{const u=typeof d=="function"?d(t):d;if(!Object.is(u,t)){const h=t;t=f??(typeof u!="object"||u===null)?u:Object.assign({},t,u),n.forEach(m=>m(t,h))}},r=()=>t,c={setState:o,getState:r,getInitialState:()=>l,subscribe:d=>(n.add(d),()=>n.delete(d)),destroy:()=>{(gd?"production":void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),n.clear()}},l=t=e(o,r,c);return c},pd=e=>e?wo(e):wo,{useDebugValue:md}=rt,{useSyncExternalStoreWithSelector:yd}=hd,xd=e=>e;function Xr(e,t=xd,n){const o=yd(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return md(o),o}const vo=(e,t)=>{const n=pd(e),o=(r,i=t)=>Xr(n,r,i);return Object.assign(o,n),o},wd=(e,t)=>e?vo(e,t):vo;function oe(e,t){if(Object.is(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(const[o,r]of e)if(!Object.is(r,t.get(o)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(const o of e)if(!t.has(o))return!1;return!0}const n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(const o of n)if(!Object.prototype.hasOwnProperty.call(t,o)||!Object.is(e[o],t[o]))return!1;return!0}const Ft=$.createContext(null),vd=Ft.Provider,Zr=he.error001();function Q(e,t){const n=$.useContext(Ft);if(n===null)throw new Error(Zr);return Xr(n,e,t)}function ne(){const e=$.useContext(Ft);if(e===null)throw new Error(Zr);return $.useMemo(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}const _o={display:"none"},_d={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},Wr="react-flow__node-desc",Gr="react-flow__edge-desc",bd="react-flow__aria-live",Ed=e=>e.ariaLiveMessage,Sd=e=>e.ariaLabelConfig;function Nd({rfId:e}){const t=Q(Ed);return _.jsx("div",{id:`${bd}-${e}`,"aria-live":"assertive","aria-atomic":"true",style:_d,children:t})}function Cd({rfId:e,disableKeyboardA11y:t}){const n=Q(Sd);return _.jsxs(_.Fragment,{children:[_.jsx("div",{id:`${Wr}-${e}`,style:_o,children:t?n["node.a11yDescription.default"]:n["node.a11yDescription.keyboardDisabled"]}),_.jsx("div",{id:`${Gr}-${e}`,style:_o,children:n["edge.a11yDescription.default"]}),!t&&_.jsx(Nd,{rfId:e})]})}const Yt=$.forwardRef(({position:e="top-left",children:t,className:n,style:o,...r},i)=>{const s=`${e}`.split("-");return _.jsx("div",{className:re(["react-flow__panel",n,...s]),style:o,ref:i,...r,children:t})});Yt.displayName="Panel";function Md({proOptions:e,position:t="bottom-right"}){return e?.hideAttribution?null:_.jsx(Yt,{position:t,className:"react-flow__attribution","data-message":"Please only hide this attribution when you are subscribed to React Flow Pro: https://pro.reactflow.dev",children:_.jsx("a",{href:"https://reactflow.dev",target:"_blank",rel:"noopener noreferrer","aria-label":"React Flow attribution",children:"React Flow"})})}const kd=e=>{const t=[],n=[];for(const[,o]of e.nodeLookup)o.selected&&t.push(o.internals.userNode);for(const[,o]of e.edgeLookup)o.selected&&n.push(o);return{selectedNodes:t,selectedEdges:n}},wt=e=>e.id;function Id(e,t){return oe(e.selectedNodes.map(wt),t.selectedNodes.map(wt))&&oe(e.selectedEdges.map(wt),t.selectedEdges.map(wt))}function Ad({onSelectionChange:e}){const t=ne(),{selectedNodes:n,selectedEdges:o}=Q(kd,Id);return $.useEffect(()=>{const r={nodes:n,edges:o};e?.(r),t.getState().onSelectionChangeHandlers.forEach(i=>i(r))},[n,o,e]),null}const Pd=e=>!!e.onSelectionChangeHandlers;function Dd({onSelectionChange:e}){const t=Q(Pd);return e||t?_.jsx(Ad,{onSelectionChange:e}):null}const qr=[0,0],Td={x:0,y:0,zoom:1},$d=["nodes","edges","defaultNodes","defaultEdges","onConnect","onConnectStart","onConnectEnd","onClickConnectStart","onClickConnectEnd","nodesDraggable","autoPanOnNodeFocus","nodesConnectable","nodesFocusable","edgesFocusable","edgesReconnectable","elevateNodesOnSelect","elevateEdgesOnSelect","minZoom","maxZoom","nodeExtent","onNodesChange","onEdgesChange","elementsSelectable","connectionMode","snapGrid","snapToGrid","translateExtent","connectOnClick","defaultEdgeOptions","fitView","fitViewOptions","onNodesDelete","onEdgesDelete","onDelete","onNodeDrag","onNodeDragStart","onNodeDragStop","onSelectionDrag","onSelectionDragStart","onSelectionDragStop","onMoveStart","onMove","onMoveEnd","noPanClassName","nodeOrigin","autoPanOnConnect","autoPanOnNodeDrag","onError","connectionRadius","isValidConnection","selectNodesOnDrag","nodeDragThreshold","connectionDragThreshold","onBeforeDelete","debug","autoPanSpeed","paneClickDistance","ariaLabelConfig"],bo=[...$d,"rfId"],zd=e=>({setNodes:e.setNodes,setEdges:e.setEdges,setMinZoom:e.setMinZoom,setMaxZoom:e.setMaxZoom,setTranslateExtent:e.setTranslateExtent,setNodeExtent:e.setNodeExtent,reset:e.reset,setDefaultNodesAndEdges:e.setDefaultNodesAndEdges,setPaneClickDistance:e.setPaneClickDistance}),Eo={translateExtent:Ue,nodeOrigin:qr,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:"nopan",rfId:"1",paneClickDistance:0};function Hd(e){const{setNodes:t,setEdges:n,setMinZoom:o,setMaxZoom:r,setTranslateExtent:i,setNodeExtent:s,reset:a,setDefaultNodesAndEdges:c,setPaneClickDistance:l}=Q(zd,oe),d=ne();$.useEffect(()=>(c(e.defaultNodes,e.defaultEdges),()=>{f.current=Eo,a()}),[]);const f=$.useRef(Eo);return $.useEffect(()=>{for(const u of bo){const h=e[u],m=f.current[u];h!==m&&(typeof e[u]>"u"||(u==="nodes"?t(h):u==="edges"?n(h):u==="minZoom"?o(h):u==="maxZoom"?r(h):u==="translateExtent"?i(h):u==="nodeExtent"?s(h):u==="paneClickDistance"?l(h):u==="ariaLabelConfig"?d.setState({ariaLabelConfig:vu(h)}):u==="fitView"?d.setState({fitViewQueued:h}):u==="fitViewOptions"?d.setState({fitViewOptions:h}):d.setState({[u]:h})))}f.current=e},bo.map(u=>e[u])),null}function So(){return typeof window>"u"||!window.matchMedia?null:window.matchMedia("(prefers-color-scheme: dark)")}function Ld(e){const[t,n]=$.useState(e==="system"?null:e);return $.useEffect(()=>{if(e!=="system"){n(e);return}const o=So(),r=()=>n(o?.matches?"dark":"light");return r(),o?.addEventListener("change",r),()=>{o?.removeEventListener("change",r)}},[e]),t!==null?t:So()?.matches?"dark":"light"}const No=typeof document<"u"?document:null;function nt(e=null,t={target:No,actInsideInputWithModifier:!0}){const[n,o]=$.useState(!1),r=$.useRef(!1),i=$.useRef(new Set([])),[s,a]=$.useMemo(()=>{if(e!==null){const l=(Array.isArray(e)?e:[e]).filter(f=>typeof f=="string").map(f=>f.replace("+",`
2
+ `).replace(`
3
+
4
+ `,`
5
+ +`).split(`
6
+ `)),d=l.reduce((f,u)=>f.concat(...u),[]);return[l,d]}return[[],[]]},[e]);return $.useEffect(()=>{const c=t?.target??No,l=t?.actInsideInputWithModifier??!0;if(e!==null){const d=h=>{if(r.current=h.ctrlKey||h.metaKey||h.shiftKey||h.altKey,(!r.current||r.current&&!l)&&Ir(h))return!1;const p=Mo(h.code,a);if(i.current.add(h[p]),Co(s,i.current,!1)){const v=h.composedPath?.()?.[0]||h.target,w=v?.nodeName==="BUTTON"||v?.nodeName==="A";t.preventDefault!==!1&&(r.current||!w)&&h.preventDefault(),o(!0)}},f=h=>{const m=Mo(h.code,a);Co(s,i.current,!0)?(o(!1),i.current.clear()):i.current.delete(h[m]),h.key==="Meta"&&i.current.clear(),r.current=!1},u=()=>{i.current.clear(),o(!1)};return c?.addEventListener("keydown",d),c?.addEventListener("keyup",f),window.addEventListener("blur",u),window.addEventListener("contextmenu",u),()=>{c?.removeEventListener("keydown",d),c?.removeEventListener("keyup",f),window.removeEventListener("blur",u),window.removeEventListener("contextmenu",u)}}},[e,o]),n}function Co(e,t,n){return e.filter(o=>n||o.length===t.size).some(o=>o.every(r=>t.has(r)))}function Mo(e,t){return t.includes(e)?"code":"key"}const Rd=()=>{const e=ne();return $.useMemo(()=>({zoomIn:t=>{const{panZoom:n}=e.getState();return n?n.scaleBy(1.2,{duration:t?.duration}):Promise.resolve(!1)},zoomOut:t=>{const{panZoom:n}=e.getState();return n?n.scaleBy(1/1.2,{duration:t?.duration}):Promise.resolve(!1)},zoomTo:(t,n)=>{const{panZoom:o}=e.getState();return o?o.scaleTo(t,{duration:n?.duration}):Promise.resolve(!1)},getZoom:()=>e.getState().transform[2],setViewport:async(t,n)=>{const{transform:[o,r,i],panZoom:s}=e.getState();return s?(await s.setViewport({x:t.x??o,y:t.y??r,zoom:t.zoom??i},n),Promise.resolve(!0)):Promise.resolve(!1)},getViewport:()=>{const[t,n,o]=e.getState().transform;return{x:t,y:n,zoom:o}},setCenter:async(t,n,o)=>e.getState().setCenter(t,n,o),fitBounds:async(t,n)=>{const{width:o,height:r,minZoom:i,maxZoom:s,panZoom:a}=e.getState(),c=kn(t,o,r,i,s,n?.padding??.1);return a?(await a.setViewport(c,{duration:n?.duration,ease:n?.ease,interpolate:n?.interpolate}),Promise.resolve(!0)):Promise.resolve(!1)},screenToFlowPosition:(t,n={})=>{const{transform:o,snapGrid:r,snapToGrid:i,domNode:s}=e.getState();if(!s)return t;const{x:a,y:c}=s.getBoundingClientRect(),l={x:t.x-a,y:t.y-c},d=n.snapGrid??r,f=n.snapToGrid??i;return lt(l,o,f,d)},flowToScreenPosition:t=>{const{transform:n,domNode:o}=e.getState();if(!o)return t;const{x:r,y:i}=o.getBoundingClientRect(),s=Dt(t,n);return{x:s.x+r,y:s.y+i}}}),[])};function Kr(e,t){const n=[],o=new Map,r=[];for(const i of e)if(i.type==="add"){r.push(i);continue}else if(i.type==="remove"||i.type==="replace")o.set(i.id,[i]);else{const s=o.get(i.id);s?s.push(i):o.set(i.id,[i])}for(const i of t){const s=o.get(i.id);if(!s){n.push(i);continue}if(s[0].type==="remove")continue;if(s[0].type==="replace"){n.push({...s[0].item});continue}const a={...i};for(const c of s)Od(c,a);n.push(a)}return r.length&&r.forEach(i=>{i.index!==void 0?n.splice(i.index,0,{...i.item}):n.push({...i.item})}),n}function Od(e,t){switch(e.type){case"select":{t.selected=e.selected;break}case"position":{typeof e.position<"u"&&(t.position=e.position),typeof e.dragging<"u"&&(t.dragging=e.dragging);break}case"dimensions":{typeof e.dimensions<"u"&&(t.measured??={},t.measured.width=e.dimensions.width,t.measured.height=e.dimensions.height,e.setAttributes&&((e.setAttributes===!0||e.setAttributes==="width")&&(t.width=e.dimensions.width),(e.setAttributes===!0||e.setAttributes==="height")&&(t.height=e.dimensions.height))),typeof e.resizing=="boolean"&&(t.resizing=e.resizing);break}}}function Bd(e,t){return Kr(e,t)}function Vd(e,t){return Kr(e,t)}function Se(e,t){return{id:e,type:"select",selected:t}}function De(e,t=new Set,n=!1){const o=[];for(const[r,i]of e){const s=t.has(r);!(i.selected===void 0&&!s)&&i.selected!==s&&(n&&(i.selected=s),o.push(Se(i.id,s)))}return o}function ko({items:e=[],lookup:t}){const n=[],o=new Map(e.map(r=>[r.id,r]));for(const[r,i]of e.entries()){const s=t.get(i.id),a=s?.internals?.userNode??s;a!==void 0&&a!==i&&n.push({id:i.id,item:i,type:"replace"}),a===void 0&&n.push({item:i,type:"add",index:r})}for(const[r]of t)o.get(r)===void 0&&n.push({id:r,type:"remove"});return n}function Io(e){return{id:e.id,type:"remove"}}const Ao=e=>uu(e),jd=e=>_r(e);function Ur(e){return $.forwardRef(e)}const Fd=typeof window<"u"?$.useLayoutEffect:$.useEffect;function Po(e){const[t,n]=$.useState(BigInt(0)),[o]=$.useState(()=>Yd(()=>n(r=>r+BigInt(1))));return Fd(()=>{const r=o.get();r.length&&(e(r),o.reset())},[t]),o}function Yd(e){let t=[];return{get:()=>t,reset:()=>{t=[]},push:n=>{t.push(n),e()}}}const Qr=$.createContext(null);function Xd({children:e}){const t=ne(),n=$.useCallback(a=>{const{nodes:c=[],setNodes:l,hasDefaultNodes:d,onNodesChange:f,nodeLookup:u,fitViewQueued:h}=t.getState();let m=c;for(const v of a)m=typeof v=="function"?v(m):v;const p=ko({items:m,lookup:u});d&&l(m),p.length>0?f?.(p):h&&window.requestAnimationFrame(()=>{const{fitViewQueued:v,nodes:w,setNodes:C}=t.getState();v&&C(w)})},[]),o=Po(n),r=$.useCallback(a=>{const{edges:c=[],setEdges:l,hasDefaultEdges:d,onEdgesChange:f,edgeLookup:u}=t.getState();let h=c;for(const m of a)h=typeof m=="function"?m(h):m;d?l(h):f&&f(ko({items:h,lookup:u}))},[]),i=Po(r),s=$.useMemo(()=>({nodeQueue:o,edgeQueue:i}),[]);return _.jsx(Qr.Provider,{value:s,children:e})}function Zd(){const e=$.useContext(Qr);if(!e)throw new Error("useBatchContext must be used within a BatchProvider");return e}const Wd=e=>!!e.panZoom;function $n(){const e=Rd(),t=ne(),n=Zd(),o=Q(Wd),r=$.useMemo(()=>{const i=f=>t.getState().nodeLookup.get(f),s=f=>{n.nodeQueue.push(f)},a=f=>{n.edgeQueue.push(f)},c=f=>{const{nodeLookup:u,nodeOrigin:h}=t.getState(),m=Ao(f)?f:u.get(f.id),p=m.parentId?Mr(m.position,m.measured,m.parentId,u,h):m.position,v={...m,position:p,width:m.measured?.width??m.width,height:m.measured?.height??m.height};return Re(v)},l=(f,u,h={replace:!1})=>{s(m=>m.map(p=>{if(p.id===f){const v=typeof u=="function"?u(p):u;return h.replace&&Ao(v)?v:{...p,...v}}return p}))},d=(f,u,h={replace:!1})=>{a(m=>m.map(p=>{if(p.id===f){const v=typeof u=="function"?u(p):u;return h.replace&&jd(v)?v:{...p,...v}}return p}))};return{getNodes:()=>t.getState().nodes.map(f=>({...f})),getNode:f=>i(f)?.internals.userNode,getInternalNode:i,getEdges:()=>{const{edges:f=[]}=t.getState();return f.map(u=>({...u}))},getEdge:f=>t.getState().edgeLookup.get(f),setNodes:s,setEdges:a,addNodes:f=>{const u=Array.isArray(f)?f:[f];n.nodeQueue.push(h=>[...h,...u])},addEdges:f=>{const u=Array.isArray(f)?f:[f];n.edgeQueue.push(h=>[...h,...u])},toObject:()=>{const{nodes:f=[],edges:u=[],transform:h}=t.getState(),[m,p,v]=h;return{nodes:f.map(w=>({...w})),edges:u.map(w=>({...w})),viewport:{x:m,y:p,zoom:v}}},deleteElements:async({nodes:f=[],edges:u=[]})=>{const{nodes:h,edges:m,onNodesDelete:p,onEdgesDelete:v,triggerNodeChanges:w,triggerEdgeChanges:C,onDelete:g,onBeforeDelete:y}=t.getState(),{nodes:S,edges:b}=await pu({nodesToRemove:f,edgesToRemove:u,nodes:h,edges:m,onBeforeDelete:y}),k=b.length>0,I=S.length>0;if(k){const T=b.map(Io);v?.(b),C(T)}if(I){const T=S.map(Io);p?.(S),w(T)}return(I||k)&&g?.({nodes:S,edges:b}),{deletedNodes:S,deletedEdges:b}},getIntersectingNodes:(f,u=!0,h)=>{const m=ro(f),p=m?f:c(f),v=h!==void 0;return p?(h||t.getState().nodes).filter(w=>{const C=t.getState().nodeLookup.get(w.id);if(C&&!m&&(w.id===f.id||!C.internals.positionAbsolute))return!1;const g=Re(v?w:C),y=Je(g,p);return u&&y>0||y>=g.width*g.height||y>=p.width*p.height}):[]},isNodeIntersecting:(f,u,h=!0)=>{const p=ro(f)?f:c(f);if(!p)return!1;const v=Je(p,u);return h&&v>0||v>=u.width*u.height||v>=p.width*p.height},updateNode:l,updateNodeData:(f,u,h={replace:!1})=>{l(f,m=>{const p=typeof u=="function"?u(m):u;return h.replace?{...m,data:p}:{...m,data:{...m.data,...p}}},h)},updateEdge:d,updateEdgeData:(f,u,h={replace:!1})=>{d(f,m=>{const p=typeof u=="function"?u(m):u;return h.replace?{...m,data:p}:{...m,data:{...m.data,...p}}},h)},getNodesBounds:f=>{const{nodeLookup:u,nodeOrigin:h}=t.getState();return du(f,{nodeLookup:u,nodeOrigin:h})},getHandleConnections:({type:f,id:u,nodeId:h})=>Array.from(t.getState().connectionLookup.get(`${h}-${f}${u?`-${u}`:""}`)?.values()??[]),getNodeConnections:({type:f,handleId:u,nodeId:h})=>Array.from(t.getState().connectionLookup.get(`${h}${f?u?`-${f}-${u}`:`-${f}`:""}`)?.values()??[]),fitView:async f=>{const u=t.getState().fitViewResolver??wu();return t.setState({fitViewQueued:!0,fitViewOptions:f,fitViewResolver:u}),n.nodeQueue.push(h=>[...h]),u.promise}}},[]);return $.useMemo(()=>({...r,...e,viewportInitialized:o}),[o])}const Do=e=>e.selected,Gd=typeof window<"u"?window:void 0;function qd({deleteKeyCode:e,multiSelectionKeyCode:t}){const n=ne(),{deleteElements:o}=$n(),r=nt(e,{actInsideInputWithModifier:!1}),i=nt(t,{target:Gd});$.useEffect(()=>{if(r){const{edges:s,nodes:a}=n.getState();o({nodes:a.filter(Do),edges:s.filter(Do)}),n.setState({nodesSelectionActive:!1})}},[r]),$.useEffect(()=>{n.setState({multiSelectionActive:i})},[i])}function Kd(e){const t=ne();$.useEffect(()=>{const n=()=>{if(!e.current||!(e.current.checkVisibility?.()??!0))return!1;const o=In(e.current);(o.height===0||o.width===0)&&t.getState().onError?.("004",he.error004()),t.setState({width:o.width||500,height:o.height||500})};if(e.current){n(),window.addEventListener("resize",n);const o=new ResizeObserver(()=>n());return o.observe(e.current),()=>{window.removeEventListener("resize",n),o&&e.current&&o.unobserve(e.current)}}},[])}const Xt={position:"absolute",width:"100%",height:"100%",top:0,left:0},Ud=e=>({userSelectionActive:e.userSelectionActive,lib:e.lib,connectionInProgress:e.connection.inProgress});function Qd({onPaneContextMenu:e,zoomOnScroll:t=!0,zoomOnPinch:n=!0,panOnScroll:o=!1,panOnScrollSpeed:r=.5,panOnScrollMode:i=Ne.Free,zoomOnDoubleClick:s=!0,panOnDrag:a=!0,defaultViewport:c,translateExtent:l,minZoom:d,maxZoom:f,zoomActivationKeyCode:u,preventScrolling:h=!0,children:m,noWheelClassName:p,noPanClassName:v,onViewportChange:w,isControlledViewport:C,paneClickDistance:g}){const y=ne(),S=$.useRef(null),{userSelectionActive:b,lib:k,connectionInProgress:I}=Q(Ud,oe),T=nt(u),V=$.useRef();Kd(S);const O=$.useCallback(A=>{w?.({x:A[0],y:A[1],zoom:A[2]}),C||y.setState({transform:A})},[w,C]);return $.useEffect(()=>{if(S.current){V.current=nd({domNode:S.current,minZoom:d,maxZoom:f,translateExtent:l,viewport:c,paneClickDistance:g,onDraggingChange:M=>y.setState({paneDragging:M}),onPanZoomStart:(M,E)=>{const{onViewportChangeStart:N,onMoveStart:D}=y.getState();D?.(M,E),N?.(E)},onPanZoom:(M,E)=>{const{onViewportChange:N,onMove:D}=y.getState();D?.(M,E),N?.(E)},onPanZoomEnd:(M,E)=>{const{onViewportChangeEnd:N,onMoveEnd:D}=y.getState();D?.(M,E),N?.(E)}});const{x:A,y:H,zoom:x}=V.current.getViewport();return y.setState({panZoom:V.current,transform:[A,H,x],domNode:S.current.closest(".react-flow")}),()=>{V.current?.destroy()}}},[]),$.useEffect(()=>{V.current?.update({onPaneContextMenu:e,zoomOnScroll:t,zoomOnPinch:n,panOnScroll:o,panOnScrollSpeed:r,panOnScrollMode:i,zoomOnDoubleClick:s,panOnDrag:a,zoomActivationKeyPressed:T,preventScrolling:h,noPanClassName:v,userSelectionActive:b,noWheelClassName:p,lib:k,onTransformChange:O,connectionInProgress:I})},[e,t,n,o,r,i,s,a,T,h,v,b,p,k,O,I]),_.jsx("div",{className:"react-flow__renderer",ref:S,style:Xt,children:m})}const Jd=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function ef(){const{userSelectionActive:e,userSelectionRect:t}=Q(Jd,oe);return e&&t?_.jsx("div",{className:"react-flow__selection react-flow__container",style:{width:t.width,height:t.height,transform:`translate(${t.x}px, ${t.y}px)`}}):null}const sn=(e,t)=>n=>{n.target===t.current&&e?.(n)},tf=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,connectionInProgress:e.connection.inProgress,dragging:e.paneDragging});function nf({isSelecting:e,selectionKeyPressed:t,selectionMode:n=Qe.Full,panOnDrag:o,selectionOnDrag:r,onSelectionStart:i,onSelectionEnd:s,onPaneClick:a,onPaneContextMenu:c,onPaneScroll:l,onPaneMouseEnter:d,onPaneMouseMove:f,onPaneMouseLeave:u,children:h}){const m=ne(),{userSelectionActive:p,elementsSelectable:v,dragging:w,connectionInProgress:C}=Q(tf,oe),g=v&&(e||p),y=$.useRef(null),S=$.useRef(),b=$.useRef(new Set),k=$.useRef(new Set),I=$.useRef(!1),T=$.useRef(!1),V=N=>{if(I.current||C){I.current=!1;return}a?.(N),m.getState().resetSelectedElements(),m.setState({nodesSelectionActive:!1})},O=N=>{if(Array.isArray(o)&&o?.includes(2)){N.preventDefault();return}c?.(N)},A=l?N=>l(N):void 0,H=N=>{const{resetSelectedElements:D,domNode:P}=m.getState();if(S.current=P?.getBoundingClientRect(),!v||!e||N.button!==0||N.target!==y.current||!S.current)return;N.target?.setPointerCapture?.(N.pointerId),T.current=!0,I.current=!1;const{x:z,y:L}=de(N.nativeEvent,S.current);D(),m.setState({userSelectionRect:{width:0,height:0,startX:z,startY:L,x:z,y:L}}),i?.(N)},x=N=>{const{userSelectionRect:D,transform:P,nodeLookup:z,edgeLookup:L,connectionLookup:R,triggerNodeChanges:F,triggerEdgeChanges:j,defaultEdgeOptions:W}=m.getState();if(!S.current||!D)return;I.current=!0;const{x:K,y:Y}=de(N.nativeEvent,S.current),{startX:B,startY:Z}=D,ee={startX:B,startY:Z,x:K<B?K:B,y:Y<Z?Y:Z,width:Math.abs(K-B),height:Math.abs(Y-Z)},J=b.current,G=k.current;b.current=new Set(Mn(z,ee,P,n===Qe.Partial,!0).map(U=>U.id)),k.current=new Set;const q=W?.selectable??!0;for(const U of b.current){const te=R.get(U);if(te)for(const{edgeId:ie}of te.values()){const se=L.get(ie);se&&(se.selectable??q)&&k.current.add(ie)}}if(!io(J,b.current)){const U=De(z,b.current,!0);F(U)}if(!io(G,k.current)){const U=De(L,k.current);j(U)}m.setState({userSelectionRect:ee,userSelectionActive:!0,nodesSelectionActive:!1})},M=N=>{if(N.button!==0||!T.current)return;N.target?.releasePointerCapture?.(N.pointerId);const{userSelectionRect:D}=m.getState();!p&&D&&N.target===y.current&&V?.(N),m.setState({userSelectionActive:!1,userSelectionRect:null,nodesSelectionActive:b.current.size>0}),s?.(N),(t||r)&&(I.current=!1),T.current=!1},E=o===!0||Array.isArray(o)&&o.includes(0);return _.jsxs("div",{className:re(["react-flow__pane",{draggable:E,dragging:w,selection:e}]),onClick:g?void 0:sn(V,y),onContextMenu:sn(O,y),onWheel:sn(A,y),onPointerEnter:g?void 0:d,onPointerDown:g?H:f,onPointerMove:g?x:f,onPointerUp:g?M:void 0,onPointerLeave:u,ref:y,style:Xt,children:[h,_.jsx(ef,{})]})}function vn({id:e,store:t,unselect:n=!1,nodeRef:o}){const{addSelectedNodes:r,unselectNodesAndEdges:i,multiSelectionActive:s,nodeLookup:a,onError:c}=t.getState(),l=a.get(e);if(!l){c?.("012",he.error012(e));return}t.setState({nodesSelectionActive:!1}),l.selected?(n||l.selected&&s)&&(i({nodes:[l],edges:[]}),requestAnimationFrame(()=>o?.current?.blur())):r([e])}function Jr({nodeRef:e,disabled:t=!1,noDragClassName:n,handleSelector:o,nodeId:r,isSelectable:i,nodeClickDistance:s}){const a=ne(),[c,l]=$.useState(!1),d=$.useRef();return $.useEffect(()=>{d.current=Vu({getStoreItems:()=>a.getState(),onNodeMouseDown:f=>{vn({id:f,store:a,nodeRef:e})},onDragStart:()=>{l(!0)},onDragStop:()=>{l(!1)}})},[]),$.useEffect(()=>{if(t)d.current?.destroy();else if(e.current)return d.current?.update({noDragClassName:n,handleSelector:o,domNode:e.current,isSelectable:i,nodeId:r,nodeClickDistance:s}),()=>{d.current?.destroy()}},[n,o,t,i,e,r]),c}const of=e=>t=>t.selected&&(t.draggable||e&&typeof t.draggable>"u");function ei(){const e=ne();return $.useCallback(n=>{const{nodeExtent:o,snapToGrid:r,snapGrid:i,nodesDraggable:s,onError:a,updateNodePositions:c,nodeLookup:l,nodeOrigin:d}=e.getState(),f=new Map,u=of(s),h=r?i[0]:5,m=r?i[1]:5,p=n.direction.x*h*n.factor,v=n.direction.y*m*n.factor;for(const[,w]of l){if(!u(w))continue;let C={x:w.internals.positionAbsolute.x+p,y:w.internals.positionAbsolute.y+v};r&&(C=ct(C,i));const{position:g,positionAbsolute:y}=br({nodeId:w.id,nextPosition:C,nodeLookup:l,nodeExtent:o,nodeOrigin:d,onError:a});w.position=g,w.internals.positionAbsolute=y,f.set(w.id,w)}c(f)},[])}const zn=$.createContext(null),rf=zn.Provider;zn.Consumer;const ti=()=>$.useContext(zn),sf=e=>({connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName,rfId:e.rfId}),af=(e,t,n)=>o=>{const{connectionClickStartHandle:r,connectionMode:i,connection:s}=o,{fromHandle:a,toHandle:c,isValid:l}=s,d=c?.nodeId===e&&c?.id===t&&c?.type===n;return{connectingFrom:a?.nodeId===e&&a?.id===t&&a?.type===n,connectingTo:d,clickConnecting:r?.nodeId===e&&r?.id===t&&r?.type===n,isPossibleEndHandle:i===He.Strict?a?.type!==n:e!==a?.nodeId||t!==a?.id,connectionInProcess:!!a,clickConnectionInProcess:!!r,valid:d&&l}};function cf({type:e="source",position:t=X.Top,isValidConnection:n,isConnectable:o=!0,isConnectableStart:r=!0,isConnectableEnd:i=!0,id:s,onConnect:a,children:c,className:l,onMouseDown:d,onTouchStart:f,...u},h){const m=s||null,p=e==="target",v=ne(),w=ti(),{connectOnClick:C,noPanClassName:g,rfId:y}=Q(sf,oe),{connectingFrom:S,connectingTo:b,clickConnecting:k,isPossibleEndHandle:I,connectionInProcess:T,clickConnectionInProcess:V,valid:O}=Q(af(w,m,e),oe);w||v.getState().onError?.("010",he.error010());const A=M=>{const{defaultEdgeOptions:E,onConnect:N,hasDefaultEdges:D}=v.getState(),P={...E,...M};if(D){const{edges:z,setEdges:L}=v.getState();L(Cu(P,z))}N?.(P),a?.(P)},H=M=>{if(!w)return;const E=Ar(M.nativeEvent);if(r&&(E&&M.button===0||!E)){const N=v.getState();wn.onPointerDown(M.nativeEvent,{handleDomNode:M.currentTarget,autoPanOnConnect:N.autoPanOnConnect,connectionMode:N.connectionMode,connectionRadius:N.connectionRadius,domNode:N.domNode,nodeLookup:N.nodeLookup,lib:N.lib,isTarget:p,handleId:m,nodeId:w,flowId:N.rfId,panBy:N.panBy,cancelConnection:N.cancelConnection,onConnectStart:N.onConnectStart,onConnectEnd:N.onConnectEnd,updateConnection:N.updateConnection,onConnect:A,isValidConnection:n||N.isValidConnection,getTransform:()=>v.getState().transform,getFromHandle:()=>v.getState().connection.fromHandle,autoPanSpeed:N.autoPanSpeed,dragThreshold:N.connectionDragThreshold})}E?d?.(M):f?.(M)},x=M=>{const{onClickConnectStart:E,onClickConnectEnd:N,connectionClickStartHandle:D,connectionMode:P,isValidConnection:z,lib:L,rfId:R,nodeLookup:F,connection:j}=v.getState();if(!w||!D&&!r)return;if(!D){E?.(M.nativeEvent,{nodeId:w,handleId:m,handleType:e}),v.setState({connectionClickStartHandle:{nodeId:w,type:e,id:m}});return}const W=kr(M.target),K=n||z,{connection:Y,isValid:B}=wn.isValid(M.nativeEvent,{handle:{nodeId:w,id:m,type:e},connectionMode:P,fromNodeId:D.nodeId,fromHandleId:D.id||null,fromType:D.type,isValidConnection:K,flowId:R,doc:W,lib:L,nodeLookup:F});B&&Y&&A(Y);const Z=structuredClone(j);delete Z.inProgress,Z.toPosition=Z.toHandle?Z.toHandle.position:null,N?.(M,Z),v.setState({connectionClickStartHandle:null})};return _.jsx("div",{"data-handleid":m,"data-nodeid":w,"data-handlepos":t,"data-id":`${y}-${w}-${m}-${e}`,className:re(["react-flow__handle",`react-flow__handle-${t}`,"nodrag",g,l,{source:!p,target:p,connectable:o,connectablestart:r,connectableend:i,clickconnecting:k,connectingfrom:S,connectingto:b,valid:O,connectionindicator:o&&(!T||I)&&(T||V?i:r)}]),onMouseDown:H,onTouchStart:H,onClick:C?x:void 0,ref:h,...u,children:c})}const ot=$.memo(Ur(cf));function lf({data:e,isConnectable:t,sourcePosition:n=X.Bottom}){return _.jsxs(_.Fragment,{children:[e?.label,_.jsx(ot,{type:"source",position:n,isConnectable:t})]})}function uf({data:e,isConnectable:t,targetPosition:n=X.Top,sourcePosition:o=X.Bottom}){return _.jsxs(_.Fragment,{children:[_.jsx(ot,{type:"target",position:n,isConnectable:t}),e?.label,_.jsx(ot,{type:"source",position:o,isConnectable:t})]})}function df(){return null}function ff({data:e,isConnectable:t,targetPosition:n=X.Top}){return _.jsxs(_.Fragment,{children:[_.jsx(ot,{type:"target",position:n,isConnectable:t}),e?.label]})}const Tt={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},To={input:lf,default:uf,output:ff,group:df};function hf(e){return e.internals.handleBounds===void 0?{width:e.width??e.initialWidth??e.style?.width,height:e.height??e.initialHeight??e.style?.height}:{width:e.width??e.style?.width,height:e.height??e.style?.height}}const gf=e=>{const{width:t,height:n,x:o,y:r}=at(e.nodeLookup,{filter:i=>!!i.selected});return{width:ue(t)?t:null,height:ue(n)?n:null,userSelectionActive:e.userSelectionActive,transformString:`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]}) translate(${o}px,${r}px)`}};function pf({onSelectionContextMenu:e,noPanClassName:t,disableKeyboardA11y:n}){const o=ne(),{width:r,height:i,transformString:s,userSelectionActive:a}=Q(gf,oe),c=ei(),l=$.useRef(null);if($.useEffect(()=>{n||l.current?.focus({preventScroll:!0})},[n]),Jr({nodeRef:l}),a||!r||!i)return null;const d=e?u=>{const h=o.getState().nodes.filter(m=>m.selected);e(u,h)}:void 0,f=u=>{Object.prototype.hasOwnProperty.call(Tt,u.key)&&(u.preventDefault(),c({direction:Tt[u.key],factor:u.shiftKey?4:1}))};return _.jsx("div",{className:re(["react-flow__nodesselection","react-flow__container",t]),style:{transform:s},children:_.jsx("div",{ref:l,className:"react-flow__nodesselection-rect",onContextMenu:d,tabIndex:n?void 0:-1,onKeyDown:n?void 0:f,style:{width:r,height:i}})})}const $o=typeof window<"u"?window:void 0,mf=e=>({nodesSelectionActive:e.nodesSelectionActive,userSelectionActive:e.userSelectionActive});function ni({children:e,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:o,onPaneMouseLeave:r,onPaneContextMenu:i,onPaneScroll:s,paneClickDistance:a,deleteKeyCode:c,selectionKeyCode:l,selectionOnDrag:d,selectionMode:f,onSelectionStart:u,onSelectionEnd:h,multiSelectionKeyCode:m,panActivationKeyCode:p,zoomActivationKeyCode:v,elementsSelectable:w,zoomOnScroll:C,zoomOnPinch:g,panOnScroll:y,panOnScrollSpeed:S,panOnScrollMode:b,zoomOnDoubleClick:k,panOnDrag:I,defaultViewport:T,translateExtent:V,minZoom:O,maxZoom:A,preventScrolling:H,onSelectionContextMenu:x,noWheelClassName:M,noPanClassName:E,disableKeyboardA11y:N,onViewportChange:D,isControlledViewport:P}){const{nodesSelectionActive:z,userSelectionActive:L}=Q(mf),R=nt(l,{target:$o}),F=nt(p,{target:$o}),j=F||I,W=F||y,K=d&&j!==!0,Y=R||L||K;return qd({deleteKeyCode:c,multiSelectionKeyCode:m}),_.jsx(Qd,{onPaneContextMenu:i,elementsSelectable:w,zoomOnScroll:C,zoomOnPinch:g,panOnScroll:W,panOnScrollSpeed:S,panOnScrollMode:b,zoomOnDoubleClick:k,panOnDrag:!R&&j,defaultViewport:T,translateExtent:V,minZoom:O,maxZoom:A,zoomActivationKeyCode:v,preventScrolling:H,noWheelClassName:M,noPanClassName:E,onViewportChange:D,isControlledViewport:P,paneClickDistance:a,children:_.jsxs(nf,{onSelectionStart:u,onSelectionEnd:h,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:o,onPaneMouseLeave:r,onPaneContextMenu:i,onPaneScroll:s,panOnDrag:j,isSelecting:!!Y,selectionMode:f,selectionKeyPressed:R,selectionOnDrag:K,children:[e,z&&_.jsx(pf,{onSelectionContextMenu:x,noPanClassName:E,disableKeyboardA11y:N})]})})}ni.displayName="FlowRenderer";const yf=$.memo(ni),xf=e=>t=>e?Mn(t.nodeLookup,{x:0,y:0,width:t.width,height:t.height},t.transform,!0).map(n=>n.id):Array.from(t.nodeLookup.keys());function wf(e){return Q($.useCallback(xf(e),[e]),oe)}const vf=e=>e.updateNodeInternals;function _f(){const e=Q(vf),[t]=$.useState(()=>typeof ResizeObserver>"u"?null:new ResizeObserver(n=>{const o=new Map;n.forEach(r=>{const i=r.target.getAttribute("data-id");o.set(i,{id:i,nodeElement:r.target,force:!0})}),e(o)}));return $.useEffect(()=>()=>{t?.disconnect()},[t]),t}function bf({node:e,nodeType:t,hasDimensions:n,resizeObserver:o}){const r=ne(),i=$.useRef(null),s=$.useRef(null),a=$.useRef(e.sourcePosition),c=$.useRef(e.targetPosition),l=$.useRef(t),d=n&&!!e.internals.handleBounds;return $.useEffect(()=>{i.current&&!e.hidden&&(!d||s.current!==i.current)&&(s.current&&o?.unobserve(s.current),o?.observe(i.current),s.current=i.current)},[d,e.hidden]),$.useEffect(()=>()=>{s.current&&(o?.unobserve(s.current),s.current=null)},[]),$.useEffect(()=>{if(i.current){const f=l.current!==t,u=a.current!==e.sourcePosition,h=c.current!==e.targetPosition;(f||u||h)&&(l.current=t,a.current=e.sourcePosition,c.current=e.targetPosition,r.getState().updateNodeInternals(new Map([[e.id,{id:e.id,nodeElement:i.current,force:!0}]])))}},[e.id,t,e.sourcePosition,e.targetPosition]),i}function Ef({id:e,onClick:t,onMouseEnter:n,onMouseMove:o,onMouseLeave:r,onContextMenu:i,onDoubleClick:s,nodesDraggable:a,elementsSelectable:c,nodesConnectable:l,nodesFocusable:d,resizeObserver:f,noDragClassName:u,noPanClassName:h,disableKeyboardA11y:m,rfId:p,nodeTypes:v,nodeClickDistance:w,onError:C}){const{node:g,internals:y,isParent:S}=Q(B=>{const Z=B.nodeLookup.get(e),ee=B.parentLookup.has(e);return{node:Z,internals:Z.internals,isParent:ee}},oe);let b=g.type||"default",k=v?.[b]||To[b];k===void 0&&(C?.("003",he.error003(b)),b="default",k=v?.default||To.default);const I=!!(g.draggable||a&&typeof g.draggable>"u"),T=!!(g.selectable||c&&typeof g.selectable>"u"),V=!!(g.connectable||l&&typeof g.connectable>"u"),O=!!(g.focusable||d&&typeof g.focusable>"u"),A=ne(),H=Cr(g),x=bf({node:g,nodeType:b,hasDimensions:H,resizeObserver:f}),M=Jr({nodeRef:x,disabled:g.hidden||!I,noDragClassName:u,handleSelector:g.dragHandle,nodeId:e,isSelectable:T,nodeClickDistance:w}),E=ei();if(g.hidden)return null;const N=xe(g),D=hf(g),P=T||I||t||n||o||r,z=n?B=>n(B,{...y.userNode}):void 0,L=o?B=>o(B,{...y.userNode}):void 0,R=r?B=>r(B,{...y.userNode}):void 0,F=i?B=>i(B,{...y.userNode}):void 0,j=s?B=>s(B,{...y.userNode}):void 0,W=B=>{const{selectNodesOnDrag:Z,nodeDragThreshold:ee}=A.getState();T&&(!Z||!I||ee>0)&&vn({id:e,store:A,nodeRef:x}),t&&t(B,{...y.userNode})},K=B=>{if(!(Ir(B.nativeEvent)||m)){if(yr.includes(B.key)&&T){const Z=B.key==="Escape";vn({id:e,store:A,unselect:Z,nodeRef:x})}else if(I&&g.selected&&Object.prototype.hasOwnProperty.call(Tt,B.key)){B.preventDefault();const{ariaLabelConfig:Z}=A.getState();A.setState({ariaLiveMessage:Z["node.a11yDescription.ariaLiveMessage"]({direction:B.key.replace("Arrow","").toLowerCase(),x:~~y.positionAbsolute.x,y:~~y.positionAbsolute.y})}),E({direction:Tt[B.key],factor:B.shiftKey?4:1})}}},Y=()=>{if(m||!x.current?.matches(":focus-visible"))return;const{transform:B,width:Z,height:ee,autoPanOnNodeFocus:J,setCenter:G}=A.getState();if(!J)return;Mn(new Map([[e,g]]),{x:0,y:0,width:Z,height:ee},B,!0).length>0||G(g.position.x+N.width/2,g.position.y+N.height/2,{zoom:B[2]})};return _.jsx("div",{className:re(["react-flow__node",`react-flow__node-${b}`,{[h]:I},g.className,{selected:g.selected,selectable:T,parent:S,draggable:I,dragging:M}]),ref:x,style:{zIndex:y.z,transform:`translate(${y.positionAbsolute.x}px,${y.positionAbsolute.y}px)`,pointerEvents:P?"all":"none",visibility:H?"visible":"hidden",...g.style,...D},"data-id":e,"data-testid":`rf__node-${e}`,onMouseEnter:z,onMouseMove:L,onMouseLeave:R,onContextMenu:F,onClick:W,onDoubleClick:j,onKeyDown:O?K:void 0,tabIndex:O?0:void 0,onFocus:O?Y:void 0,role:g.ariaRole??(O?"group":void 0),"aria-roledescription":"node","aria-describedby":m?void 0:`${Wr}-${p}`,"aria-label":g.ariaLabel,...g.domAttributes,children:_.jsx(rf,{value:e,children:_.jsx(k,{id:e,data:g.data,type:b,positionAbsoluteX:y.positionAbsolute.x,positionAbsoluteY:y.positionAbsolute.y,selected:g.selected??!1,selectable:T,draggable:I,deletable:g.deletable??!0,isConnectable:V,sourcePosition:g.sourcePosition,targetPosition:g.targetPosition,dragging:M,dragHandle:g.dragHandle,zIndex:y.z,parentId:g.parentId,...N})})})}const Sf=e=>({nodesDraggable:e.nodesDraggable,nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,onError:e.onError});function oi(e){const{nodesDraggable:t,nodesConnectable:n,nodesFocusable:o,elementsSelectable:r,onError:i}=Q(Sf,oe),s=wf(e.onlyRenderVisibleElements),a=_f();return _.jsx("div",{className:"react-flow__nodes",style:Xt,children:s.map(c=>_.jsx(Ef,{id:c,nodeTypes:e.nodeTypes,nodeExtent:e.nodeExtent,onClick:e.onNodeClick,onMouseEnter:e.onNodeMouseEnter,onMouseMove:e.onNodeMouseMove,onMouseLeave:e.onNodeMouseLeave,onContextMenu:e.onNodeContextMenu,onDoubleClick:e.onNodeDoubleClick,noDragClassName:e.noDragClassName,noPanClassName:e.noPanClassName,rfId:e.rfId,disableKeyboardA11y:e.disableKeyboardA11y,resizeObserver:a,nodesDraggable:t,nodesConnectable:n,nodesFocusable:o,elementsSelectable:r,nodeClickDistance:e.nodeClickDistance,onError:i},c))})}oi.displayName="NodeRenderer";const Nf=$.memo(oi);function Cf(e){return Q($.useCallback(n=>{if(!e)return n.edges.map(r=>r.id);const o=[];if(n.width&&n.height)for(const r of n.edges){const i=n.nodeLookup.get(r.source),s=n.nodeLookup.get(r.target);i&&s&&Eu({sourceNode:i,targetNode:s,width:n.width,height:n.height,transform:n.transform})&&o.push(r.id)}return o},[e]),oe)}const Mf=({color:e="none",strokeWidth:t=1})=>{const n={strokeWidth:t,...e&&{stroke:e}};return _.jsx("polyline",{className:"arrow",style:n,strokeLinecap:"round",fill:"none",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4"})},kf=({color:e="none",strokeWidth:t=1})=>{const n={strokeWidth:t,...e&&{stroke:e,fill:e}};return _.jsx("polyline",{className:"arrowclosed",style:n,strokeLinecap:"round",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4 -5,-4"})},zo={[At.Arrow]:Mf,[At.ArrowClosed]:kf};function If(e){const t=ne();return $.useMemo(()=>Object.prototype.hasOwnProperty.call(zo,e)?zo[e]:(t.getState().onError?.("009",he.error009(e)),null),[e])}const Af=({id:e,type:t,color:n,width:o=12.5,height:r=12.5,markerUnits:i="strokeWidth",strokeWidth:s,orient:a="auto-start-reverse"})=>{const c=If(t);return c?_.jsx("marker",{className:"react-flow__arrowhead",id:e,markerWidth:`${o}`,markerHeight:`${r}`,viewBox:"-10 -10 20 20",markerUnits:i,orient:a,refX:"0",refY:"0",children:_.jsx(c,{color:n,strokeWidth:s})}):null},ri=({defaultColor:e,rfId:t})=>{const n=Q(i=>i.edges),o=Q(i=>i.defaultEdgeOptions),r=$.useMemo(()=>Pu(n,{id:t,defaultColor:e,defaultMarkerStart:o?.markerStart,defaultMarkerEnd:o?.markerEnd}),[n,o,t,e]);return r.length?_.jsx("svg",{className:"react-flow__marker","aria-hidden":"true",children:_.jsx("defs",{children:r.map(i=>_.jsx(Af,{id:i.id,type:i.type,color:i.color,width:i.width,height:i.height,markerUnits:i.markerUnits,strokeWidth:i.strokeWidth,orient:i.orient},i.id))})}):null};ri.displayName="MarkerDefinitions";var Pf=$.memo(ri);function ii({x:e,y:t,label:n,labelStyle:o,labelShowBg:r=!0,labelBgStyle:i,labelBgPadding:s=[2,4],labelBgBorderRadius:a=2,children:c,className:l,...d}){const[f,u]=$.useState({x:1,y:0,width:0,height:0}),h=re(["react-flow__edge-textwrapper",l]),m=$.useRef(null);return $.useEffect(()=>{if(m.current){const p=m.current.getBBox();u({x:p.x,y:p.y,width:p.width,height:p.height})}},[n]),n?_.jsxs("g",{transform:`translate(${e-f.width/2} ${t-f.height/2})`,className:h,visibility:f.width?"visible":"hidden",...d,children:[r&&_.jsx("rect",{width:f.width+2*s[0],x:-s[0],y:-s[1],height:f.height+2*s[1],className:"react-flow__edge-textbg",style:i,rx:a,ry:a}),_.jsx("text",{className:"react-flow__edge-text",y:f.height/2,dy:"0.3em",ref:m,style:o,children:n}),c]}):null}ii.displayName="EdgeText";const Df=$.memo(ii);function Zt({path:e,labelX:t,labelY:n,label:o,labelStyle:r,labelShowBg:i,labelBgStyle:s,labelBgPadding:a,labelBgBorderRadius:c,interactionWidth:l=20,...d}){return _.jsxs(_.Fragment,{children:[_.jsx("path",{...d,d:e,fill:"none",className:re(["react-flow__edge-path",d.className])}),l?_.jsx("path",{d:e,fill:"none",strokeOpacity:0,strokeWidth:l,className:"react-flow__edge-interaction"}):null,o&&ue(t)&&ue(n)?_.jsx(Df,{x:t,y:n,label:o,labelStyle:r,labelShowBg:i,labelBgStyle:s,labelBgPadding:a,labelBgBorderRadius:c}):null]})}function Ho({pos:e,x1:t,y1:n,x2:o,y2:r}){return e===X.Left||e===X.Right?[.5*(t+o),n]:[t,.5*(n+r)]}function si({sourceX:e,sourceY:t,sourcePosition:n=X.Bottom,targetX:o,targetY:r,targetPosition:i=X.Top}){const[s,a]=Ho({pos:n,x1:e,y1:t,x2:o,y2:r}),[c,l]=Ho({pos:i,x1:o,y1:r,x2:e,y2:t}),[d,f,u,h]=Pr({sourceX:e,sourceY:t,targetX:o,targetY:r,sourceControlX:s,sourceControlY:a,targetControlX:c,targetControlY:l});return[`M${e},${t} C${s},${a} ${c},${l} ${o},${r}`,d,f,u,h]}function ai(e){return $.memo(({id:t,sourceX:n,sourceY:o,targetX:r,targetY:i,sourcePosition:s,targetPosition:a,label:c,labelStyle:l,labelShowBg:d,labelBgStyle:f,labelBgPadding:u,labelBgBorderRadius:h,style:m,markerEnd:p,markerStart:v,interactionWidth:w})=>{const[C,g,y]=si({sourceX:n,sourceY:o,sourcePosition:s,targetX:r,targetY:i,targetPosition:a}),S=e.isInternal?void 0:t;return _.jsx(Zt,{id:S,path:C,labelX:g,labelY:y,label:c,labelStyle:l,labelShowBg:d,labelBgStyle:f,labelBgPadding:u,labelBgBorderRadius:h,style:m,markerEnd:p,markerStart:v,interactionWidth:w})})}const Tf=ai({isInternal:!1}),ci=ai({isInternal:!0});Tf.displayName="SimpleBezierEdge";ci.displayName="SimpleBezierEdgeInternal";function li(e){return $.memo(({id:t,sourceX:n,sourceY:o,targetX:r,targetY:i,label:s,labelStyle:a,labelShowBg:c,labelBgStyle:l,labelBgPadding:d,labelBgBorderRadius:f,style:u,sourcePosition:h=X.Bottom,targetPosition:m=X.Top,markerEnd:p,markerStart:v,pathOptions:w,interactionWidth:C})=>{const[g,y,S]=mn({sourceX:n,sourceY:o,sourcePosition:h,targetX:r,targetY:i,targetPosition:m,borderRadius:w?.borderRadius,offset:w?.offset,stepPosition:w?.stepPosition}),b=e.isInternal?void 0:t;return _.jsx(Zt,{id:b,path:g,labelX:y,labelY:S,label:s,labelStyle:a,labelShowBg:c,labelBgStyle:l,labelBgPadding:d,labelBgBorderRadius:f,style:u,markerEnd:p,markerStart:v,interactionWidth:C})})}const ui=li({isInternal:!1}),di=li({isInternal:!0});ui.displayName="SmoothStepEdge";di.displayName="SmoothStepEdgeInternal";function fi(e){return $.memo(({id:t,...n})=>{const o=e.isInternal?void 0:t;return _.jsx(ui,{...n,id:o,pathOptions:$.useMemo(()=>({borderRadius:0,offset:n.pathOptions?.offset}),[n.pathOptions?.offset])})})}const $f=fi({isInternal:!1}),hi=fi({isInternal:!0});$f.displayName="StepEdge";hi.displayName="StepEdgeInternal";function gi(e){return $.memo(({id:t,sourceX:n,sourceY:o,targetX:r,targetY:i,label:s,labelStyle:a,labelShowBg:c,labelBgStyle:l,labelBgPadding:d,labelBgBorderRadius:f,style:u,markerEnd:h,markerStart:m,interactionWidth:p})=>{const[v,w,C]=$r({sourceX:n,sourceY:o,targetX:r,targetY:i}),g=e.isInternal?void 0:t;return _.jsx(Zt,{id:g,path:v,labelX:w,labelY:C,label:s,labelStyle:a,labelShowBg:c,labelBgStyle:l,labelBgPadding:d,labelBgBorderRadius:f,style:u,markerEnd:h,markerStart:m,interactionWidth:p})})}const zf=gi({isInternal:!1}),pi=gi({isInternal:!0});zf.displayName="StraightEdge";pi.displayName="StraightEdgeInternal";function mi(e){return $.memo(({id:t,sourceX:n,sourceY:o,targetX:r,targetY:i,sourcePosition:s=X.Bottom,targetPosition:a=X.Top,label:c,labelStyle:l,labelShowBg:d,labelBgStyle:f,labelBgPadding:u,labelBgBorderRadius:h,style:m,markerEnd:p,markerStart:v,pathOptions:w,interactionWidth:C})=>{const[g,y,S]=Dr({sourceX:n,sourceY:o,sourcePosition:s,targetX:r,targetY:i,targetPosition:a,curvature:w?.curvature}),b=e.isInternal?void 0:t;return _.jsx(Zt,{id:b,path:g,labelX:y,labelY:S,label:c,labelStyle:l,labelShowBg:d,labelBgStyle:f,labelBgPadding:u,labelBgBorderRadius:h,style:m,markerEnd:p,markerStart:v,interactionWidth:C})})}const Hf=mi({isInternal:!1}),yi=mi({isInternal:!0});Hf.displayName="BezierEdge";yi.displayName="BezierEdgeInternal";const Lo={default:yi,straight:pi,step:hi,smoothstep:di,simplebezier:ci},Ro={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null},Lf=(e,t,n)=>n===X.Left?e-t:n===X.Right?e+t:e,Rf=(e,t,n)=>n===X.Top?e-t:n===X.Bottom?e+t:e,Oo="react-flow__edgeupdater";function Bo({position:e,centerX:t,centerY:n,radius:o=10,onMouseDown:r,onMouseEnter:i,onMouseOut:s,type:a}){return _.jsx("circle",{onMouseDown:r,onMouseEnter:i,onMouseOut:s,className:re([Oo,`${Oo}-${a}`]),cx:Lf(t,o,e),cy:Rf(n,o,e),r:o,stroke:"transparent",fill:"transparent"})}function Of({isReconnectable:e,reconnectRadius:t,edge:n,sourceX:o,sourceY:r,targetX:i,targetY:s,sourcePosition:a,targetPosition:c,onReconnect:l,onReconnectStart:d,onReconnectEnd:f,setReconnecting:u,setUpdateHover:h}){const m=ne(),p=(y,S)=>{if(y.button!==0)return;const{autoPanOnConnect:b,domNode:k,isValidConnection:I,connectionMode:T,connectionRadius:V,lib:O,onConnectStart:A,onConnectEnd:H,cancelConnection:x,nodeLookup:M,rfId:E,panBy:N,updateConnection:D}=m.getState(),P=S.type==="target",z=(F,j)=>{u(!1),f?.(F,n,S.type,j)},L=F=>l?.(n,F),R=(F,j)=>{u(!0),d?.(y,n,S.type),A?.(F,j)};wn.onPointerDown(y.nativeEvent,{autoPanOnConnect:b,connectionMode:T,connectionRadius:V,domNode:k,handleId:S.id,nodeId:S.nodeId,nodeLookup:M,isTarget:P,edgeUpdaterType:S.type,lib:O,flowId:E,cancelConnection:x,panBy:N,isValidConnection:I,onConnect:L,onConnectStart:R,onConnectEnd:H,onReconnectEnd:z,updateConnection:D,getTransform:()=>m.getState().transform,getFromHandle:()=>m.getState().connection.fromHandle,dragThreshold:m.getState().connectionDragThreshold,handleDomNode:y.currentTarget})},v=y=>p(y,{nodeId:n.target,id:n.targetHandle??null,type:"target"}),w=y=>p(y,{nodeId:n.source,id:n.sourceHandle??null,type:"source"}),C=()=>h(!0),g=()=>h(!1);return _.jsxs(_.Fragment,{children:[(e===!0||e==="source")&&_.jsx(Bo,{position:a,centerX:o,centerY:r,radius:t,onMouseDown:v,onMouseEnter:C,onMouseOut:g,type:"source"}),(e===!0||e==="target")&&_.jsx(Bo,{position:c,centerX:i,centerY:s,radius:t,onMouseDown:w,onMouseEnter:C,onMouseOut:g,type:"target"})]})}function Bf({id:e,edgesFocusable:t,edgesReconnectable:n,elementsSelectable:o,onClick:r,onDoubleClick:i,onContextMenu:s,onMouseEnter:a,onMouseMove:c,onMouseLeave:l,reconnectRadius:d,onReconnect:f,onReconnectStart:u,onReconnectEnd:h,rfId:m,edgeTypes:p,noPanClassName:v,onError:w,disableKeyboardA11y:C}){let g=Q(G=>G.edgeLookup.get(e));const y=Q(G=>G.defaultEdgeOptions);g=y?{...y,...g}:g;let S=g.type||"default",b=p?.[S]||Lo[S];b===void 0&&(w?.("011",he.error011(S)),S="default",b=p?.default||Lo.default);const k=!!(g.focusable||t&&typeof g.focusable>"u"),I=typeof f<"u"&&(g.reconnectable||n&&typeof g.reconnectable>"u"),T=!!(g.selectable||o&&typeof g.selectable>"u"),V=$.useRef(null),[O,A]=$.useState(!1),[H,x]=$.useState(!1),M=ne(),{zIndex:E,sourceX:N,sourceY:D,targetX:P,targetY:z,sourcePosition:L,targetPosition:R}=Q($.useCallback(G=>{const q=G.nodeLookup.get(g.source),U=G.nodeLookup.get(g.target);if(!q||!U)return{zIndex:g.zIndex,...Ro};const te=Au({id:e,sourceNode:q,targetNode:U,sourceHandle:g.sourceHandle||null,targetHandle:g.targetHandle||null,connectionMode:G.connectionMode,onError:w});return{zIndex:bu({selected:g.selected,zIndex:g.zIndex,sourceNode:q,targetNode:U,elevateOnSelect:G.elevateEdgesOnSelect}),...te||Ro}},[g.source,g.target,g.sourceHandle,g.targetHandle,g.selected,g.zIndex]),oe),F=$.useMemo(()=>g.markerStart?`url('#${yn(g.markerStart,m)}')`:void 0,[g.markerStart,m]),j=$.useMemo(()=>g.markerEnd?`url('#${yn(g.markerEnd,m)}')`:void 0,[g.markerEnd,m]);if(g.hidden||N===null||D===null||P===null||z===null)return null;const W=G=>{const{addSelectedEdges:q,unselectNodesAndEdges:U,multiSelectionActive:te}=M.getState();T&&(M.setState({nodesSelectionActive:!1}),g.selected&&te?(U({nodes:[],edges:[g]}),V.current?.blur()):q([e])),r&&r(G,g)},K=i?G=>{i(G,{...g})}:void 0,Y=s?G=>{s(G,{...g})}:void 0,B=a?G=>{a(G,{...g})}:void 0,Z=c?G=>{c(G,{...g})}:void 0,ee=l?G=>{l(G,{...g})}:void 0,J=G=>{if(!C&&yr.includes(G.key)&&T){const{unselectNodesAndEdges:q,addSelectedEdges:U}=M.getState();G.key==="Escape"?(V.current?.blur(),q({edges:[g]})):U([e])}};return _.jsx("svg",{style:{zIndex:E},children:_.jsxs("g",{className:re(["react-flow__edge",`react-flow__edge-${S}`,g.className,v,{selected:g.selected,animated:g.animated,inactive:!T&&!r,updating:O,selectable:T}]),onClick:W,onDoubleClick:K,onContextMenu:Y,onMouseEnter:B,onMouseMove:Z,onMouseLeave:ee,onKeyDown:k?J:void 0,tabIndex:k?0:void 0,role:g.ariaRole??(k?"group":"img"),"aria-roledescription":"edge","data-id":e,"data-testid":`rf__edge-${e}`,"aria-label":g.ariaLabel===null?void 0:g.ariaLabel||`Edge from ${g.source} to ${g.target}`,"aria-describedby":k?`${Gr}-${m}`:void 0,ref:V,...g.domAttributes,children:[!H&&_.jsx(b,{id:e,source:g.source,target:g.target,type:g.type,selected:g.selected,animated:g.animated,selectable:T,deletable:g.deletable??!0,label:g.label,labelStyle:g.labelStyle,labelShowBg:g.labelShowBg,labelBgStyle:g.labelBgStyle,labelBgPadding:g.labelBgPadding,labelBgBorderRadius:g.labelBgBorderRadius,sourceX:N,sourceY:D,targetX:P,targetY:z,sourcePosition:L,targetPosition:R,data:g.data,style:g.style,sourceHandleId:g.sourceHandle,targetHandleId:g.targetHandle,markerStart:F,markerEnd:j,pathOptions:"pathOptions"in g?g.pathOptions:void 0,interactionWidth:g.interactionWidth}),I&&_.jsx(Of,{edge:g,isReconnectable:I,reconnectRadius:d,onReconnect:f,onReconnectStart:u,onReconnectEnd:h,sourceX:N,sourceY:D,targetX:P,targetY:z,sourcePosition:L,targetPosition:R,setUpdateHover:A,setReconnecting:x})]})})}const Vf=e=>({edgesFocusable:e.edgesFocusable,edgesReconnectable:e.edgesReconnectable,elementsSelectable:e.elementsSelectable,connectionMode:e.connectionMode,onError:e.onError});function xi({defaultMarkerColor:e,onlyRenderVisibleElements:t,rfId:n,edgeTypes:o,noPanClassName:r,onReconnect:i,onEdgeContextMenu:s,onEdgeMouseEnter:a,onEdgeMouseMove:c,onEdgeMouseLeave:l,onEdgeClick:d,reconnectRadius:f,onEdgeDoubleClick:u,onReconnectStart:h,onReconnectEnd:m,disableKeyboardA11y:p}){const{edgesFocusable:v,edgesReconnectable:w,elementsSelectable:C,onError:g}=Q(Vf,oe),y=Cf(t);return _.jsxs("div",{className:"react-flow__edges",children:[_.jsx(Pf,{defaultColor:e,rfId:n}),y.map(S=>_.jsx(Bf,{id:S,edgesFocusable:v,edgesReconnectable:w,elementsSelectable:C,noPanClassName:r,onReconnect:i,onContextMenu:s,onMouseEnter:a,onMouseMove:c,onMouseLeave:l,onClick:d,reconnectRadius:f,onDoubleClick:u,onReconnectStart:h,onReconnectEnd:m,rfId:n,onError:g,edgeTypes:o,disableKeyboardA11y:p},S))]})}xi.displayName="EdgeRenderer";const jf=$.memo(xi),Ff=e=>`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`;function Yf({children:e}){const t=Q(Ff);return _.jsx("div",{className:"react-flow__viewport xyflow__viewport react-flow__container",style:{transform:t},children:e})}function Xf(e){const t=$n(),n=$.useRef(!1);$.useEffect(()=>{!n.current&&t.viewportInitialized&&e&&(setTimeout(()=>e(t),1),n.current=!0)},[e,t.viewportInitialized])}const Zf=e=>e.panZoom?.syncViewport;function Wf(e){const t=Q(Zf),n=ne();return $.useEffect(()=>{e&&(t?.(e),n.setState({transform:[e.x,e.y,e.zoom]}))},[e,t]),null}function Gf(e){return e.connection.inProgress?{...e.connection,to:lt(e.connection.to,e.transform)}:{...e.connection}}function qf(e){return Gf}function Kf(e){const t=qf();return Q(t,oe)}const Uf=e=>({nodesConnectable:e.nodesConnectable,isValid:e.connection.isValid,inProgress:e.connection.inProgress,width:e.width,height:e.height});function Qf({containerStyle:e,style:t,type:n,component:o}){const{nodesConnectable:r,width:i,height:s,isValid:a,inProgress:c}=Q(Uf,oe);return!(i&&r&&c)?null:_.jsx("svg",{style:e,width:i,height:s,className:"react-flow__connectionline react-flow__container",children:_.jsx("g",{className:re(["react-flow__connection",vr(a)]),children:_.jsx(wi,{style:t,type:n,CustomComponent:o,isValid:a})})})}const wi=({style:e,type:t=_e.Bezier,CustomComponent:n,isValid:o})=>{const{inProgress:r,from:i,fromNode:s,fromHandle:a,fromPosition:c,to:l,toNode:d,toHandle:f,toPosition:u}=Kf();if(!r)return;if(n)return _.jsx(n,{connectionLineType:t,connectionLineStyle:e,fromNode:s,fromHandle:a,fromX:i.x,fromY:i.y,toX:l.x,toY:l.y,fromPosition:c,toPosition:u,connectionStatus:vr(o),toNode:d,toHandle:f});let h="";const m={sourceX:i.x,sourceY:i.y,sourcePosition:c,targetX:l.x,targetY:l.y,targetPosition:u};switch(t){case _e.Bezier:[h]=Dr(m);break;case _e.SimpleBezier:[h]=si(m);break;case _e.Step:[h]=mn({...m,borderRadius:0});break;case _e.SmoothStep:[h]=mn(m);break;default:[h]=$r(m)}return _.jsx("path",{d:h,fill:"none",className:"react-flow__connection-path",style:e})};wi.displayName="ConnectionLine";const Jf={};function Vo(e=Jf){$.useRef(e),ne(),$.useEffect(()=>{},[e])}function eh(){ne(),$.useRef(!1),$.useEffect(()=>{},[])}function vi({nodeTypes:e,edgeTypes:t,onInit:n,onNodeClick:o,onEdgeClick:r,onNodeDoubleClick:i,onEdgeDoubleClick:s,onNodeMouseEnter:a,onNodeMouseMove:c,onNodeMouseLeave:l,onNodeContextMenu:d,onSelectionContextMenu:f,onSelectionStart:u,onSelectionEnd:h,connectionLineType:m,connectionLineStyle:p,connectionLineComponent:v,connectionLineContainerStyle:w,selectionKeyCode:C,selectionOnDrag:g,selectionMode:y,multiSelectionKeyCode:S,panActivationKeyCode:b,zoomActivationKeyCode:k,deleteKeyCode:I,onlyRenderVisibleElements:T,elementsSelectable:V,defaultViewport:O,translateExtent:A,minZoom:H,maxZoom:x,preventScrolling:M,defaultMarkerColor:E,zoomOnScroll:N,zoomOnPinch:D,panOnScroll:P,panOnScrollSpeed:z,panOnScrollMode:L,zoomOnDoubleClick:R,panOnDrag:F,onPaneClick:j,onPaneMouseEnter:W,onPaneMouseMove:K,onPaneMouseLeave:Y,onPaneScroll:B,onPaneContextMenu:Z,paneClickDistance:ee,nodeClickDistance:J,onEdgeContextMenu:G,onEdgeMouseEnter:q,onEdgeMouseMove:U,onEdgeMouseLeave:te,reconnectRadius:ie,onReconnect:se,onReconnectStart:ke,onReconnectEnd:ut,noDragClassName:dt,noWheelClassName:ft,noPanClassName:Ve,disableKeyboardA11y:je,nodeExtent:Wt,rfId:ht,viewport:Ie,onViewportChange:Fe}){return Vo(e),Vo(t),eh(),Xf(n),Wf(Ie),_.jsx(yf,{onPaneClick:j,onPaneMouseEnter:W,onPaneMouseMove:K,onPaneMouseLeave:Y,onPaneContextMenu:Z,onPaneScroll:B,paneClickDistance:ee,deleteKeyCode:I,selectionKeyCode:C,selectionOnDrag:g,selectionMode:y,onSelectionStart:u,onSelectionEnd:h,multiSelectionKeyCode:S,panActivationKeyCode:b,zoomActivationKeyCode:k,elementsSelectable:V,zoomOnScroll:N,zoomOnPinch:D,zoomOnDoubleClick:R,panOnScroll:P,panOnScrollSpeed:z,panOnScrollMode:L,panOnDrag:F,defaultViewport:O,translateExtent:A,minZoom:H,maxZoom:x,onSelectionContextMenu:f,preventScrolling:M,noDragClassName:dt,noWheelClassName:ft,noPanClassName:Ve,disableKeyboardA11y:je,onViewportChange:Fe,isControlledViewport:!!Ie,children:_.jsxs(Yf,{children:[_.jsx(jf,{edgeTypes:t,onEdgeClick:r,onEdgeDoubleClick:s,onReconnect:se,onReconnectStart:ke,onReconnectEnd:ut,onlyRenderVisibleElements:T,onEdgeContextMenu:G,onEdgeMouseEnter:q,onEdgeMouseMove:U,onEdgeMouseLeave:te,reconnectRadius:ie,defaultMarkerColor:E,noPanClassName:Ve,disableKeyboardA11y:je,rfId:ht}),_.jsx(Qf,{style:p,type:m,component:v,containerStyle:w}),_.jsx("div",{className:"react-flow__edgelabel-renderer"}),_.jsx(Nf,{nodeTypes:e,onNodeClick:o,onNodeDoubleClick:i,onNodeMouseEnter:a,onNodeMouseMove:c,onNodeMouseLeave:l,onNodeContextMenu:d,nodeClickDistance:J,onlyRenderVisibleElements:T,noPanClassName:Ve,noDragClassName:dt,disableKeyboardA11y:je,nodeExtent:Wt,rfId:ht}),_.jsx("div",{className:"react-flow__viewport-portal"})]})})}vi.displayName="GraphView";const th=$.memo(vi),jo=({nodes:e,edges:t,defaultNodes:n,defaultEdges:o,width:r,height:i,fitView:s,fitViewOptions:a,minZoom:c=.5,maxZoom:l=2,nodeOrigin:d,nodeExtent:f}={})=>{const u=new Map,h=new Map,m=new Map,p=new Map,v=o??t??[],w=n??e??[],C=d??[0,0],g=f??Ue;Hr(m,p,v);const y=xn(w,u,h,{nodeOrigin:C,nodeExtent:g,elevateNodesOnSelect:!1});let S=[0,0,1];if(s&&r&&i){const b=at(u,{filter:V=>!!((V.width||V.initialWidth)&&(V.height||V.initialHeight))}),{x:k,y:I,zoom:T}=kn(b,r,i,c,l,a?.padding??.1);S=[k,I,T]}return{rfId:"1",width:r??0,height:i??0,transform:S,nodes:w,nodesInitialized:y,nodeLookup:u,parentLookup:h,edges:v,edgeLookup:p,connectionLookup:m,onNodesChange:null,onEdgesChange:null,hasDefaultNodes:n!==void 0,hasDefaultEdges:o!==void 0,panZoom:null,minZoom:c,maxZoom:l,translateExtent:Ue,nodeExtent:g,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:He.Strict,domNode:null,paneDragging:!1,noPanClassName:"nopan",nodeOrigin:C,nodeDragThreshold:1,connectionDragThreshold:1,snapGrid:[15,15],snapToGrid:!1,nodesDraggable:!0,nodesConnectable:!0,nodesFocusable:!0,edgesFocusable:!0,edgesReconnectable:!0,elementsSelectable:!0,elevateNodesOnSelect:!0,elevateEdgesOnSelect:!1,selectNodesOnDrag:!0,multiSelectionActive:!1,fitViewQueued:s??!1,fitViewOptions:a,fitViewResolver:null,connection:{...wr},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:"",autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:mu,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:"react",debug:!1,ariaLabelConfig:xr}},nh=({nodes:e,edges:t,defaultNodes:n,defaultEdges:o,width:r,height:i,fitView:s,fitViewOptions:a,minZoom:c,maxZoom:l,nodeOrigin:d,nodeExtent:f})=>wd((u,h)=>{async function m(){const{nodeLookup:p,panZoom:v,fitViewOptions:w,fitViewResolver:C,width:g,height:y,minZoom:S,maxZoom:b}=h();v&&(await gu({nodes:p,width:g,height:y,panZoom:v,minZoom:S,maxZoom:b},w),C?.resolve(!0),u({fitViewResolver:null}))}return{...jo({nodes:e,edges:t,width:r,height:i,fitView:s,fitViewOptions:a,minZoom:c,maxZoom:l,nodeOrigin:d,nodeExtent:f,defaultNodes:n,defaultEdges:o}),setNodes:p=>{const{nodeLookup:v,parentLookup:w,nodeOrigin:C,elevateNodesOnSelect:g,fitViewQueued:y}=h(),S=xn(p,v,w,{nodeOrigin:C,nodeExtent:f,elevateNodesOnSelect:g,checkEquality:!0});y&&S?(m(),u({nodes:p,nodesInitialized:S,fitViewQueued:!1,fitViewOptions:void 0})):u({nodes:p,nodesInitialized:S})},setEdges:p=>{const{connectionLookup:v,edgeLookup:w}=h();Hr(v,w,p),u({edges:p})},setDefaultNodesAndEdges:(p,v)=>{if(p){const{setNodes:w}=h();w(p),u({hasDefaultNodes:!0})}if(v){const{setEdges:w}=h();w(v),u({hasDefaultEdges:!0})}},updateNodeInternals:p=>{const{triggerNodeChanges:v,nodeLookup:w,parentLookup:C,domNode:g,nodeOrigin:y,nodeExtent:S,debug:b,fitViewQueued:k}=h(),{changes:I,updatedInternals:T}=Lu(p,w,C,g,y,S);T&&(Tu(w,C,{nodeOrigin:y,nodeExtent:S}),k?(m(),u({fitViewQueued:!1,fitViewOptions:void 0})):u({}),I?.length>0&&(b&&console.log("React Flow: trigger node changes",I),v?.(I)))},updateNodePositions:(p,v=!1)=>{const w=[],C=[],{nodeLookup:g,triggerNodeChanges:y}=h();for(const[S,b]of p){const k=g.get(S),I=!!(k?.expandParent&&k?.parentId&&b?.position),T={id:S,type:"position",position:I?{x:Math.max(0,b.position.x),y:Math.max(0,b.position.y)}:b.position,dragging:v};I&&k.parentId&&w.push({id:S,parentId:k.parentId,rect:{...b.internals.positionAbsolute,width:b.measured.width??0,height:b.measured.height??0}}),C.push(T)}if(w.length>0){const{parentLookup:S,nodeOrigin:b}=h(),k=Tn(w,g,S,b);C.push(...k)}y(C)},triggerNodeChanges:p=>{const{onNodesChange:v,setNodes:w,nodes:C,hasDefaultNodes:g,debug:y}=h();if(p?.length){if(g){const S=Bd(p,C);w(S)}y&&console.log("React Flow: trigger node changes",p),v?.(p)}},triggerEdgeChanges:p=>{const{onEdgesChange:v,setEdges:w,edges:C,hasDefaultEdges:g,debug:y}=h();if(p?.length){if(g){const S=Vd(p,C);w(S)}y&&console.log("React Flow: trigger edge changes",p),v?.(p)}},addSelectedNodes:p=>{const{multiSelectionActive:v,edgeLookup:w,nodeLookup:C,triggerNodeChanges:g,triggerEdgeChanges:y}=h();if(v){const S=p.map(b=>Se(b,!0));g(S);return}g(De(C,new Set([...p]),!0)),y(De(w))},addSelectedEdges:p=>{const{multiSelectionActive:v,edgeLookup:w,nodeLookup:C,triggerNodeChanges:g,triggerEdgeChanges:y}=h();if(v){const S=p.map(b=>Se(b,!0));y(S);return}y(De(w,new Set([...p]))),g(De(C,new Set,!0))},unselectNodesAndEdges:({nodes:p,edges:v}={})=>{const{edges:w,nodes:C,nodeLookup:g,triggerNodeChanges:y,triggerEdgeChanges:S}=h(),b=p||C,k=v||w,I=b.map(V=>{const O=g.get(V.id);return O&&(O.selected=!1),Se(V.id,!1)}),T=k.map(V=>Se(V.id,!1));y(I),S(T)},setMinZoom:p=>{const{panZoom:v,maxZoom:w}=h();v?.setScaleExtent([p,w]),u({minZoom:p})},setMaxZoom:p=>{const{panZoom:v,minZoom:w}=h();v?.setScaleExtent([w,p]),u({maxZoom:p})},setTranslateExtent:p=>{h().panZoom?.setTranslateExtent(p),u({translateExtent:p})},setPaneClickDistance:p=>{h().panZoom?.setClickDistance(p)},resetSelectedElements:()=>{const{edges:p,nodes:v,triggerNodeChanges:w,triggerEdgeChanges:C,elementsSelectable:g}=h();if(!g)return;const y=v.reduce((b,k)=>k.selected?[...b,Se(k.id,!1)]:b,[]),S=p.reduce((b,k)=>k.selected?[...b,Se(k.id,!1)]:b,[]);w(y),C(S)},setNodeExtent:p=>{const{nodes:v,nodeLookup:w,parentLookup:C,nodeOrigin:g,elevateNodesOnSelect:y,nodeExtent:S}=h();p[0][0]===S[0][0]&&p[0][1]===S[0][1]&&p[1][0]===S[1][0]&&p[1][1]===S[1][1]||(xn(v,w,C,{nodeOrigin:g,nodeExtent:p,elevateNodesOnSelect:y,checkEquality:!1}),u({nodeExtent:p}))},panBy:p=>{const{transform:v,width:w,height:C,panZoom:g,translateExtent:y}=h();return Ru({delta:p,panZoom:g,transform:v,translateExtent:y,width:w,height:C})},setCenter:async(p,v,w)=>{const{width:C,height:g,maxZoom:y,panZoom:S}=h();if(!S)return Promise.resolve(!1);const b=typeof w?.zoom<"u"?w.zoom:y;return await S.setViewport({x:C/2-p*b,y:g/2-v*b,zoom:b},{duration:w?.duration,ease:w?.ease,interpolate:w?.interpolate}),Promise.resolve(!0)},cancelConnection:()=>{u({connection:{...wr}})},updateConnection:p=>{u({connection:p})},reset:()=>u({...jo()})}},Object.is);function oh({initialNodes:e,initialEdges:t,defaultNodes:n,defaultEdges:o,initialWidth:r,initialHeight:i,initialMinZoom:s,initialMaxZoom:a,initialFitViewOptions:c,fitView:l,nodeOrigin:d,nodeExtent:f,children:u}){const[h]=$.useState(()=>nh({nodes:e,edges:t,defaultNodes:n,defaultEdges:o,width:r,height:i,fitView:l,minZoom:s,maxZoom:a,fitViewOptions:c,nodeOrigin:d,nodeExtent:f}));return _.jsx(vd,{value:h,children:_.jsx(Xd,{children:u})})}function rh({children:e,nodes:t,edges:n,defaultNodes:o,defaultEdges:r,width:i,height:s,fitView:a,fitViewOptions:c,minZoom:l,maxZoom:d,nodeOrigin:f,nodeExtent:u}){return $.useContext(Ft)?_.jsx(_.Fragment,{children:e}):_.jsx(oh,{initialNodes:t,initialEdges:n,defaultNodes:o,defaultEdges:r,initialWidth:i,initialHeight:s,fitView:a,initialFitViewOptions:c,initialMinZoom:l,initialMaxZoom:d,nodeOrigin:f,nodeExtent:u,children:e})}const ih={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0};function sh({nodes:e,edges:t,defaultNodes:n,defaultEdges:o,className:r,nodeTypes:i,edgeTypes:s,onNodeClick:a,onEdgeClick:c,onInit:l,onMove:d,onMoveStart:f,onMoveEnd:u,onConnect:h,onConnectStart:m,onConnectEnd:p,onClickConnectStart:v,onClickConnectEnd:w,onNodeMouseEnter:C,onNodeMouseMove:g,onNodeMouseLeave:y,onNodeContextMenu:S,onNodeDoubleClick:b,onNodeDragStart:k,onNodeDrag:I,onNodeDragStop:T,onNodesDelete:V,onEdgesDelete:O,onDelete:A,onSelectionChange:H,onSelectionDragStart:x,onSelectionDrag:M,onSelectionDragStop:E,onSelectionContextMenu:N,onSelectionStart:D,onSelectionEnd:P,onBeforeDelete:z,connectionMode:L,connectionLineType:R=_e.Bezier,connectionLineStyle:F,connectionLineComponent:j,connectionLineContainerStyle:W,deleteKeyCode:K="Backspace",selectionKeyCode:Y="Shift",selectionOnDrag:B=!1,selectionMode:Z=Qe.Full,panActivationKeyCode:ee="Space",multiSelectionKeyCode:J=et()?"Meta":"Control",zoomActivationKeyCode:G=et()?"Meta":"Control",snapToGrid:q,snapGrid:U,onlyRenderVisibleElements:te=!1,selectNodesOnDrag:ie,nodesDraggable:se,autoPanOnNodeFocus:ke,nodesConnectable:ut,nodesFocusable:dt,nodeOrigin:ft=qr,edgesFocusable:Ve,edgesReconnectable:je,elementsSelectable:Wt=!0,defaultViewport:ht=Td,minZoom:Ie=.5,maxZoom:Fe=2,translateExtent:Hn=Ue,preventScrolling:Ii=!0,nodeExtent:Gt,defaultMarkerColor:Ai="#b1b1b7",zoomOnScroll:Pi=!0,zoomOnPinch:Di=!0,panOnScroll:Ti=!1,panOnScrollSpeed:$i=.5,panOnScrollMode:zi=Ne.Free,zoomOnDoubleClick:Hi=!0,panOnDrag:Li=!0,onPaneClick:Ri,onPaneMouseEnter:Oi,onPaneMouseMove:Bi,onPaneMouseLeave:Vi,onPaneScroll:ji,onPaneContextMenu:Fi,paneClickDistance:Ln=0,nodeClickDistance:Yi=0,children:Xi,onReconnect:Zi,onReconnectStart:Wi,onReconnectEnd:Gi,onEdgeContextMenu:qi,onEdgeDoubleClick:Ki,onEdgeMouseEnter:Ui,onEdgeMouseMove:Qi,onEdgeMouseLeave:Ji,reconnectRadius:es=10,onNodesChange:ts,onEdgesChange:ns,noDragClassName:os="nodrag",noWheelClassName:rs="nowheel",noPanClassName:Rn="nopan",fitView:On,fitViewOptions:Bn,connectOnClick:is,attributionPosition:ss,proOptions:as,defaultEdgeOptions:cs,elevateNodesOnSelect:ls,elevateEdgesOnSelect:us,disableKeyboardA11y:Vn=!1,autoPanOnConnect:ds,autoPanOnNodeDrag:fs,autoPanSpeed:hs,connectionRadius:gs,isValidConnection:ps,onError:ms,style:ys,id:jn,nodeDragThreshold:xs,connectionDragThreshold:ws,viewport:vs,onViewportChange:_s,width:bs,height:Es,colorMode:Ss="light",debug:Ns,onScroll:Fn,ariaLabelConfig:Cs,...Ms},ks){const qt=jn||"1",Is=Ld(Ss),As=$.useCallback(Yn=>{Yn.currentTarget.scrollTo({top:0,left:0,behavior:"instant"}),Fn?.(Yn)},[Fn]);return _.jsx("div",{"data-testid":"rf__wrapper",...Ms,onScroll:As,style:{...ys,...ih},ref:ks,className:re(["react-flow",r,Is]),id:jn,role:"application",children:_.jsxs(rh,{nodes:e,edges:t,width:bs,height:Es,fitView:On,fitViewOptions:Bn,minZoom:Ie,maxZoom:Fe,nodeOrigin:ft,nodeExtent:Gt,children:[_.jsx(th,{onInit:l,onNodeClick:a,onEdgeClick:c,onNodeMouseEnter:C,onNodeMouseMove:g,onNodeMouseLeave:y,onNodeContextMenu:S,onNodeDoubleClick:b,nodeTypes:i,edgeTypes:s,connectionLineType:R,connectionLineStyle:F,connectionLineComponent:j,connectionLineContainerStyle:W,selectionKeyCode:Y,selectionOnDrag:B,selectionMode:Z,deleteKeyCode:K,multiSelectionKeyCode:J,panActivationKeyCode:ee,zoomActivationKeyCode:G,onlyRenderVisibleElements:te,defaultViewport:ht,translateExtent:Hn,minZoom:Ie,maxZoom:Fe,preventScrolling:Ii,zoomOnScroll:Pi,zoomOnPinch:Di,zoomOnDoubleClick:Hi,panOnScroll:Ti,panOnScrollSpeed:$i,panOnScrollMode:zi,panOnDrag:Li,onPaneClick:Ri,onPaneMouseEnter:Oi,onPaneMouseMove:Bi,onPaneMouseLeave:Vi,onPaneScroll:ji,onPaneContextMenu:Fi,paneClickDistance:Ln,nodeClickDistance:Yi,onSelectionContextMenu:N,onSelectionStart:D,onSelectionEnd:P,onReconnect:Zi,onReconnectStart:Wi,onReconnectEnd:Gi,onEdgeContextMenu:qi,onEdgeDoubleClick:Ki,onEdgeMouseEnter:Ui,onEdgeMouseMove:Qi,onEdgeMouseLeave:Ji,reconnectRadius:es,defaultMarkerColor:Ai,noDragClassName:os,noWheelClassName:rs,noPanClassName:Rn,rfId:qt,disableKeyboardA11y:Vn,nodeExtent:Gt,viewport:vs,onViewportChange:_s}),_.jsx(Hd,{nodes:e,edges:t,defaultNodes:n,defaultEdges:o,onConnect:h,onConnectStart:m,onConnectEnd:p,onClickConnectStart:v,onClickConnectEnd:w,nodesDraggable:se,autoPanOnNodeFocus:ke,nodesConnectable:ut,nodesFocusable:dt,edgesFocusable:Ve,edgesReconnectable:je,elementsSelectable:Wt,elevateNodesOnSelect:ls,elevateEdgesOnSelect:us,minZoom:Ie,maxZoom:Fe,nodeExtent:Gt,onNodesChange:ts,onEdgesChange:ns,snapToGrid:q,snapGrid:U,connectionMode:L,translateExtent:Hn,connectOnClick:is,defaultEdgeOptions:cs,fitView:On,fitViewOptions:Bn,onNodesDelete:V,onEdgesDelete:O,onDelete:A,onNodeDragStart:k,onNodeDrag:I,onNodeDragStop:T,onSelectionDrag:M,onSelectionDragStart:x,onSelectionDragStop:E,onMove:d,onMoveStart:f,onMoveEnd:u,noPanClassName:Rn,nodeOrigin:ft,rfId:qt,autoPanOnConnect:ds,autoPanOnNodeDrag:fs,autoPanSpeed:hs,onError:ms,connectionRadius:gs,isValidConnection:ps,selectNodesOnDrag:ie,nodeDragThreshold:xs,connectionDragThreshold:ws,onBeforeDelete:z,paneClickDistance:Ln,debug:Ns,ariaLabelConfig:Cs}),_.jsx(Dd,{onSelectionChange:H}),Xi,_.jsx(Md,{proOptions:as,position:ss}),_.jsx(Cd,{rfId:qt,disableKeyboardA11y:Vn})]})})}var ah=Ur(sh);function ch({dimensions:e,lineWidth:t,variant:n,className:o}){return _.jsx("path",{strokeWidth:t,d:`M${e[0]/2} 0 V${e[1]} M0 ${e[1]/2} H${e[0]}`,className:re(["react-flow__background-pattern",n,o])})}function lh({radius:e,className:t}){return _.jsx("circle",{cx:e,cy:e,r:e,className:re(["react-flow__background-pattern","dots",t])})}var be;(function(e){e.Lines="lines",e.Dots="dots",e.Cross="cross"})(be||(be={}));const uh={[be.Dots]:1,[be.Lines]:1,[be.Cross]:6},dh=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function _i({id:e,variant:t=be.Dots,gap:n=20,size:o,lineWidth:r=1,offset:i=0,color:s,bgColor:a,style:c,className:l,patternClassName:d}){const f=$.useRef(null),{transform:u,patternId:h}=Q(dh,oe),m=o||uh[t],p=t===be.Dots,v=t===be.Cross,w=Array.isArray(n)?n:[n,n],C=[w[0]*u[2]||1,w[1]*u[2]||1],g=m*u[2],y=Array.isArray(i)?i:[i,i],S=v?[g,g]:C,b=[y[0]*u[2]||1+S[0]/2,y[1]*u[2]||1+S[1]/2],k=`${h}${e||""}`;return _.jsxs("svg",{className:re(["react-flow__background",l]),style:{...c,...Xt,"--xy-background-color-props":a,"--xy-background-pattern-color-props":s},ref:f,"data-testid":"rf__background",children:[_.jsx("pattern",{id:k,x:u[0]%C[0],y:u[1]%C[1],width:C[0],height:C[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${b[0]},-${b[1]})`,children:p?_.jsx(lh,{radius:g/2,className:d}):_.jsx(ch,{dimensions:S,lineWidth:r,variant:t,className:d})}),_.jsx("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${k})`})]})}_i.displayName="Background";const fh=$.memo(_i);function hh(){return _.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",children:_.jsx("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"})})}function gh(){return _.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5",children:_.jsx("path",{d:"M0 0h32v4.2H0z"})})}function ph(){return _.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30",children:_.jsx("path",{d:"M3.692 4.63c0-.53.4-.938.939-.938h5.215V0H4.708C2.13 0 0 2.054 0 4.63v5.216h3.692V4.631zM27.354 0h-5.2v3.692h5.17c.53 0 .984.4.984.939v5.215H32V4.631A4.624 4.624 0 0027.354 0zm.954 24.83c0 .532-.4.94-.939.94h-5.215v3.768h5.215c2.577 0 4.631-2.13 4.631-4.707v-5.139h-3.692v5.139zm-23.677.94c-.531 0-.939-.4-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z"})})}function mh(){return _.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:_.jsx("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0 8 0 4.571 3.429 4.571 7.619v3.048H3.048A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047zm4.724-13.866H7.467V7.619c0-2.59 2.133-4.724 4.723-4.724 2.591 0 4.724 2.133 4.724 4.724v3.048z"})})}function yh(){return _.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:_.jsx("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0c-4.114 1.828-1.37 2.133.305 2.438 1.676.305 4.42 2.59 4.42 5.181v3.048H3.047A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047z"})})}function vt({children:e,className:t,...n}){return _.jsx("button",{type:"button",className:re(["react-flow__controls-button",t]),...n,children:e})}const xh=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom,ariaLabelConfig:e.ariaLabelConfig});function bi({style:e,showZoom:t=!0,showFitView:n=!0,showInteractive:o=!0,fitViewOptions:r,onZoomIn:i,onZoomOut:s,onFitView:a,onInteractiveChange:c,className:l,children:d,position:f="bottom-left",orientation:u="vertical","aria-label":h}){const m=ne(),{isInteractive:p,minZoomReached:v,maxZoomReached:w,ariaLabelConfig:C}=Q(xh,oe),{zoomIn:g,zoomOut:y,fitView:S}=$n(),b=()=>{g(),i?.()},k=()=>{y(),s?.()},I=()=>{S(r),a?.()},T=()=>{m.setState({nodesDraggable:!p,nodesConnectable:!p,elementsSelectable:!p}),c?.(!p)},V=u==="horizontal"?"horizontal":"vertical";return _.jsxs(Yt,{className:re(["react-flow__controls",V,l]),position:f,style:e,"data-testid":"rf__controls","aria-label":h??C["controls.ariaLabel"],children:[t&&_.jsxs(_.Fragment,{children:[_.jsx(vt,{onClick:b,className:"react-flow__controls-zoomin",title:C["controls.zoomIn.ariaLabel"],"aria-label":C["controls.zoomIn.ariaLabel"],disabled:w,children:_.jsx(hh,{})}),_.jsx(vt,{onClick:k,className:"react-flow__controls-zoomout",title:C["controls.zoomOut.ariaLabel"],"aria-label":C["controls.zoomOut.ariaLabel"],disabled:v,children:_.jsx(gh,{})})]}),n&&_.jsx(vt,{className:"react-flow__controls-fitview",onClick:I,title:C["controls.fitView.ariaLabel"],"aria-label":C["controls.fitView.ariaLabel"],children:_.jsx(ph,{})}),o&&_.jsx(vt,{className:"react-flow__controls-interactive",onClick:T,title:C["controls.interactive.ariaLabel"],"aria-label":C["controls.interactive.ariaLabel"],children:p?_.jsx(yh,{}):_.jsx(mh,{})}),d]})}bi.displayName="Controls";$.memo(bi);function wh({id:e,x:t,y:n,width:o,height:r,style:i,color:s,strokeColor:a,strokeWidth:c,className:l,borderRadius:d,shapeRendering:f,selected:u,onClick:h}){const{background:m,backgroundColor:p}=i||{},v=s||m||p;return _.jsx("rect",{className:re(["react-flow__minimap-node",{selected:u},l]),x:t,y:n,rx:d,ry:d,width:o,height:r,style:{fill:v,stroke:a,strokeWidth:c},shapeRendering:f,onClick:h?w=>h(w,e):void 0})}const vh=$.memo(wh),_h=e=>e.nodes.map(t=>t.id),an=e=>e instanceof Function?e:()=>e;function bh({nodeStrokeColor:e,nodeColor:t,nodeClassName:n="",nodeBorderRadius:o=5,nodeStrokeWidth:r,nodeComponent:i=vh,onClick:s}){const a=Q(_h,oe),c=an(t),l=an(e),d=an(n),f=typeof window>"u"||window.chrome?"crispEdges":"geometricPrecision";return _.jsx(_.Fragment,{children:a.map(u=>_.jsx(Sh,{id:u,nodeColorFunc:c,nodeStrokeColorFunc:l,nodeClassNameFunc:d,nodeBorderRadius:o,nodeStrokeWidth:r,NodeComponent:i,onClick:s,shapeRendering:f},u))})}function Eh({id:e,nodeColorFunc:t,nodeStrokeColorFunc:n,nodeClassNameFunc:o,nodeBorderRadius:r,nodeStrokeWidth:i,shapeRendering:s,NodeComponent:a,onClick:c}){const{node:l,x:d,y:f,width:u,height:h}=Q(m=>{const{internals:p}=m.nodeLookup.get(e),v=p.userNode,{x:w,y:C}=p.positionAbsolute,{width:g,height:y}=xe(v);return{node:v,x:w,y:C,width:g,height:y}},oe);return!l||l.hidden||!Cr(l)?null:_.jsx(a,{x:d,y:f,width:u,height:h,style:l.style,selected:!!l.selected,className:o(l),color:t(l),borderRadius:r,strokeColor:n(l),strokeWidth:i,shapeRendering:s,onClick:c,id:l.id})}const Sh=$.memo(Eh);var Nh=$.memo(bh);const Ch=200,Mh=150,kh=e=>!e.hidden,Ih=e=>{const t={x:-e.transform[0]/e.transform[2],y:-e.transform[1]/e.transform[2],width:e.width/e.transform[2],height:e.height/e.transform[2]};return{viewBB:t,boundingRect:e.nodeLookup.size>0?Nr(at(e.nodeLookup,{filter:kh}),t):t,rfId:e.rfId,panZoom:e.panZoom,translateExtent:e.translateExtent,flowWidth:e.width,flowHeight:e.height,ariaLabelConfig:e.ariaLabelConfig}},Ah="react-flow__minimap-desc";function Ei({style:e,className:t,nodeStrokeColor:n,nodeColor:o,nodeClassName:r="",nodeBorderRadius:i=5,nodeStrokeWidth:s,nodeComponent:a,bgColor:c,maskColor:l,maskStrokeColor:d,maskStrokeWidth:f,position:u="bottom-right",onClick:h,onNodeClick:m,pannable:p=!1,zoomable:v=!1,ariaLabel:w,inversePan:C,zoomStep:g=1,offsetScale:y=5}){const S=ne(),b=$.useRef(null),{boundingRect:k,viewBB:I,rfId:T,panZoom:V,translateExtent:O,flowWidth:A,flowHeight:H,ariaLabelConfig:x}=Q(Ih,oe),M=e?.width??Ch,E=e?.height??Mh,N=k.width/M,D=k.height/E,P=Math.max(N,D),z=P*M,L=P*E,R=y*P,F=k.x-(z-k.width)/2-R,j=k.y-(L-k.height)/2-R,W=z+R*2,K=L+R*2,Y=`${Ah}-${T}`,B=$.useRef(0),Z=$.useRef();B.current=P,$.useEffect(()=>{if(b.current&&V)return Z.current=Wu({domNode:b.current,panZoom:V,getTransform:()=>S.getState().transform,getViewScale:()=>B.current}),()=>{Z.current?.destroy()}},[V]),$.useEffect(()=>{Z.current?.update({translateExtent:O,width:A,height:H,inversePan:C,pannable:p,zoomStep:g,zoomable:v})},[p,v,C,g,O,A,H]);const ee=h?q=>{const[U,te]=Z.current?.pointer(q)||[0,0];h(q,{x:U,y:te})}:void 0,J=m?$.useCallback((q,U)=>{const te=S.getState().nodeLookup.get(U).internals.userNode;m(q,te)},[]):void 0,G=w??x["minimap.ariaLabel"];return _.jsx(Yt,{position:u,style:{...e,"--xy-minimap-background-color-props":typeof c=="string"?c:void 0,"--xy-minimap-mask-background-color-props":typeof l=="string"?l:void 0,"--xy-minimap-mask-stroke-color-props":typeof d=="string"?d:void 0,"--xy-minimap-mask-stroke-width-props":typeof f=="number"?f*P:void 0,"--xy-minimap-node-background-color-props":typeof o=="string"?o:void 0,"--xy-minimap-node-stroke-color-props":typeof n=="string"?n:void 0,"--xy-minimap-node-stroke-width-props":typeof s=="number"?s:void 0},className:re(["react-flow__minimap",t]),"data-testid":"rf__minimap",children:_.jsxs("svg",{width:M,height:E,viewBox:`${F} ${j} ${W} ${K}`,className:"react-flow__minimap-svg",role:"img","aria-labelledby":Y,ref:b,onClick:ee,children:[G&&_.jsx("title",{id:Y,children:G}),_.jsx(Nh,{onClick:J,nodeColor:o,nodeStrokeColor:n,nodeBorderRadius:i,nodeClassName:r,nodeStrokeWidth:s,nodeComponent:a}),_.jsx("path",{className:"react-flow__minimap-mask",d:`M${F-R},${j-R}h${W+R*2}v${K+R*2}h${-W-R*2}z
7
+ M${I.x},${I.y}h${I.width}v${I.height}h${-I.width}z`,fillRule:"evenodd",pointerEvents:"none"})]})})}Ei.displayName="MiniMap";$.memo(Ei);const Ph=e=>t=>e?`${Math.max(1/t.transform[2],1)}`:void 0,Dh={[Be.Line]:"right",[Be.Handle]:"bottom-right"};function Th({nodeId:e,position:t,variant:n=Be.Handle,className:o,style:r=void 0,children:i,color:s,minWidth:a=10,minHeight:c=10,maxWidth:l=Number.MAX_VALUE,maxHeight:d=Number.MAX_VALUE,keepAspectRatio:f=!1,resizeDirection:u,autoScale:h=!0,shouldResize:m,onResizeStart:p,onResize:v,onResizeEnd:w}){const C=ti(),g=typeof e=="string"?e:C,y=ne(),S=$.useRef(null),b=n===Be.Handle,k=Q($.useCallback(Ph(b&&h),[b,h]),oe),I=$.useRef(null),T=t??Dh[n];$.useEffect(()=>{if(!(!S.current||!g))return I.current||(I.current=ld({domNode:S.current,nodeId:g,getStoreItems:()=>{const{nodeLookup:O,transform:A,snapGrid:H,snapToGrid:x,nodeOrigin:M,domNode:E}=y.getState();return{nodeLookup:O,transform:A,snapGrid:H,snapToGrid:x,nodeOrigin:M,paneDomNode:E}},onChange:(O,A)=>{const{triggerNodeChanges:H,nodeLookup:x,parentLookup:M,nodeOrigin:E}=y.getState(),N=[],D={x:O.x,y:O.y},P=x.get(g);if(P&&P.expandParent&&P.parentId){const z=P.origin??E,L=O.width??P.measured.width??0,R=O.height??P.measured.height??0,F={id:P.id,parentId:P.parentId,rect:{width:L,height:R,...Mr({x:O.x??P.position.x,y:O.y??P.position.y},{width:L,height:R},P.parentId,x,z)}},j=Tn([F],x,M,E);N.push(...j),D.x=O.x?Math.max(z[0]*L,O.x):void 0,D.y=O.y?Math.max(z[1]*R,O.y):void 0}if(D.x!==void 0&&D.y!==void 0){const z={id:g,type:"position",position:{...D}};N.push(z)}if(O.width!==void 0&&O.height!==void 0){const L={id:g,type:"dimensions",resizing:!0,setAttributes:u?u==="horizontal"?"width":"height":!0,dimensions:{width:O.width,height:O.height}};N.push(L)}for(const z of A){const L={...z,type:"position"};N.push(L)}H(N)},onEnd:({width:O,height:A})=>{const H={id:g,type:"dimensions",resizing:!1,dimensions:{width:O,height:A}};y.getState().triggerNodeChanges([H])}})),I.current.update({controlPosition:T,boundaries:{minWidth:a,minHeight:c,maxWidth:l,maxHeight:d},keepAspectRatio:f,resizeDirection:u,onResizeStart:p,onResize:v,onResizeEnd:w,shouldResize:m}),()=>{I.current?.destroy()}},[T,a,c,l,d,f,p,v,w,m]);const V=T.split("-");return _.jsx("div",{className:re(["react-flow__resize-control","nodrag",...V,n,o]),ref:S,style:{...r,scale:k,...s&&{[b?"backgroundColor":"borderColor"]:s}},children:i})}$.memo(Th);const Fo="__tail__",cn=0,Yo=180,$h={opacity:0,pointerEvents:"none",background:"transparent",border:"none"},zh={stroke:"var(--color-grey-500)"},$t=({type:e,position:t})=>_.jsx(ot,{isConnectable:!1,position:t,style:$h,type:e}),Si=({children:e,className:t})=>_.jsx("div",{className:`flex w-64 items-center gap-3 rounded-lg bg-white px-4 py-3 text-left text-sm shadow-sm ${t??""}`,children:e}),Ni=({data:e})=>{const t=e.icon;return _.jsxs(_.Fragment,{children:[_.jsx("div",{className:"flex size-8 shrink-0 items-center justify-center rounded-md bg-grey-100 text-grey-700",children:_.jsx(t,{className:"size-4"})}),_.jsxs("div",{className:"flex min-w-0 flex-col text-left",children:[_.jsx("span",{className:"text-xs text-grey-600",children:e.label}),e.value&&_.jsx("span",{className:"truncate font-medium",children:e.value})]})]})},Ci=rt.memo(({data:e})=>_.jsxs(Si,{children:[_.jsx(Ni,{data:e}),_.jsx($t,{position:X.Bottom,type:"source"})]}));Ci.displayName="TriggerNode";const Mi=rt.memo(({data:e})=>_.jsxs(Si,{children:[_.jsx($t,{position:X.Top,type:"target"}),_.jsx(Ni,{data:e}),_.jsx($t,{position:X.Bottom,type:"source"})]}));Mi.displayName="StepNode";const ki=rt.memo(()=>_.jsxs("div",{"aria-hidden":"true",className:"flex h-12 w-64 items-center justify-center rounded-lg border border-dashed border-grey-300 bg-white",children:[_.jsx($t,{position:X.Top,type:"target"}),_.jsx(Ls,{className:"size-5 text-grey-500",strokeWidth:1.5})]}));ki.displayName="TailNode";const Hh={trigger:Ci,step:Mi,tail:ki},Lh=e=>{if(e<=0)throw new Error("Wait time must be a positive number of hours.");if(e%24===0){const t=e/24;return t===1?"1 day":`${t} days`}return e===1?"1 hour":`${e} hours`},Rh=e=>{switch(e.type){case"wait":return{icon:Ks,label:"Wait",value:Lh(e.data.wait_hours)};case"send_email":return{icon:qs,label:"Send email",value:e.data.email_subject};default:{const t=e;throw new Error(`Unknown automation action type: ${t}`)}}},Oh=e=>{if(e.actions.length===0)return[];const t=new Map(e.actions.map(c=>[c.id,c])),n=new Set(e.edges.map(c=>c.target_action_id)),o=e.actions.find(c=>!n.has(c.id));if(!o)throw new Error(`Could not determine the starting step for automation ${e.id}.`);const r=new Map(e.edges.map(c=>[c.source_action_id,c.target_action_id])),i=[],s=new Set;let a=o;for(;a;){if(s.has(a.id))throw new Error(`Detected a loop in automation ${e.id}.`);i.push(a),s.add(a.id);const c=r.get(a.id);a=c?t.get(c):void 0}if(i.length!==e.actions.length)throw new Error(`Some steps in automation ${e.id} are missing or disconnected.`);return i},Bh=e=>{const t=Oh(e),n={draggable:!1,selectable:!1,connectable:!1,focusable:!1},o=[{id:"trigger",type:"trigger",position:{x:cn,y:0},data:{icon:Hs,label:"Trigger",value:"Member signs up"},...n}];t.forEach((a,c)=>{o.push({id:a.id,type:"step",position:{x:cn,y:Yo*(c+1)},data:Rh(a),...n})}),o.push({id:Fo,type:"tail",position:{x:cn,y:Yo*(t.length+1)},data:{},...n});const r=[];let i="trigger";const s=(a,c)=>{r.push({id:`e-${a}-${c}`,source:a,target:c,type:"smoothstep",focusable:!1,style:zh})};return t.forEach(a=>{s(i,a.id),i=a.id}),s(i,Fo),{nodes:o,edges:r}},Vh=({automation:e,isLoading:t,isError:n})=>{const o=rt.useMemo(()=>e?Bh(e):null,[e]);return t?_.jsx("div",{className:"flex flex-1 items-center justify-center bg-grey-75","data-testid":"automation-canvas-loading",children:_.jsx($s,{size:"lg"})}):n||!e||!o?_.jsx("div",{className:"flex flex-1 items-start justify-center bg-grey-75 px-4 py-8",children:_.jsx(zs,{className:"max-w-md",role:"alert",variant:"destructive",children:_.jsxs("div",{className:"flex items-start gap-3",children:[_.jsx(Gs,{className:"mt-0.5 size-5 text-red"}),_.jsxs("div",{children:[_.jsx("strong",{className:"block",children:"Couldn't load automation"}),_.jsx("p",{className:"text-sm text-muted-foreground",children:"Try refreshing the page."})]})]})})}):_.jsx("div",{className:"flex-1 bg-grey-75","data-testid":"automation-canvas",children:_.jsx(ah,{edges:o.edges,edgesFocusable:!1,fitViewOptions:{maxZoom:1,padding:.4},nodes:o.nodes,nodesConnectable:!1,nodesDraggable:!1,nodesFocusable:!1,nodeTypes:Hh,proOptions:{hideAttribution:!0},zoomOnScroll:!1,fitView:!0,panOnScroll:!0,children:_.jsx(fh,{color:"var(--color-grey-400)"})})})},jh=({automation:e,isLoading:t})=>{const n=e?.name,o=e?.status==="active";return _.jsxs("header",{className:"relative z-10 flex h-14 shrink-0 items-center justify-between bg-background px-4 shadow-sm",children:[_.jsxs("div",{className:"flex min-w-0 items-center gap-3",children:[_.jsx(Kt,{size:"icon",variant:"ghost",asChild:!0,children:_.jsx(Rs,{"aria-label":"Back to automations",to:"/automations",children:_.jsx(Os,{strokeWidth:2})})}),t?_.jsx(Bs,{className:"h-5 w-40"}):_.jsx("span",{className:"truncate font-medium",children:n})]}),_.jsxs("div",{className:"flex shrink-0 items-center gap-3",children:[o&&_.jsxs(Vs,{children:[_.jsx(js,{asChild:!0,children:_.jsx(Kt,{"aria-label":"Automation options",size:"icon",variant:"ghost",children:_.jsx(Fs,{})})}),_.jsx(Ys,{align:"end",children:_.jsxs(Xs,{children:[_.jsx(Us,{className:"size-4"}),"Turn off"]})})]}),_.jsx(Kt,{disabled:t||o,children:o?"Published":"Publish changes"})]})]})},qh=()=>{const{id:e=""}=Zs(),{data:t,isLoading:n,isError:o}=Qs(e,{defaultErrorHandler:!1}),r=t?.automations[0];return _.jsxs("div",{className:"flex h-full w-full flex-col","data-testid":"automation-editor",children:[_.jsx(jh,{automation:r,isLoading:n}),_.jsx(Vh,{automation:r,isError:o,isLoading:n})]})};export{qh as default};
@@ -1 +1 @@
1
- import{t as d,j as e,z as n}from"./index-qHUvPjQB.js";const x=d.forwardRef(({children:s,className:r,...a},t)=>e.jsx("div",{ref:t,className:n("flex items-center justify-center rounded-full bg-muted w-12 h-12 max-w-12 max-h-12 [&_svg]:size-4 [&_svg]:text-muted-foreground [&_svg]:shrink-0",r),...a,children:s}));x.displayName="EmptyBadge";const l=d.forwardRef(({children:s,className:r,title:a,description:t,actions:m,...c},i)=>e.jsxs("div",{ref:i,className:n("flex flex-col items-center justify-center space-y-3 text-center",r),...c,children:[e.jsx(x,{children:s}),e.jsxs("div",{className:"max-w-[320px] space-y-1.5",children:[e.jsx("h3",{className:"text-md font-medium tracking-normal text-pretty text-foreground",children:a}),t&&e.jsx("p",{className:"text-sm leading-tight text-pretty text-muted-foreground",children:t})]}),m&&e.jsx("div",{className:"flex items-center gap-2",children:m})]}));l.displayName="EmptyIndicator";export{l as E};
1
+ import{t as d,j as e,z as n}from"./index-CYyEyBYw.js";const x=d.forwardRef(({children:s,className:r,...a},t)=>e.jsx("div",{ref:t,className:n("flex items-center justify-center rounded-full bg-muted w-12 h-12 max-w-12 max-h-12 [&_svg]:size-4 [&_svg]:text-muted-foreground [&_svg]:shrink-0",r),...a,children:s}));x.displayName="EmptyBadge";const l=d.forwardRef(({children:s,className:r,title:a,description:t,actions:m,...c},i)=>e.jsxs("div",{ref:i,className:n("flex flex-col items-center justify-center space-y-3 text-center",r),...c,children:[e.jsx(x,{children:s}),e.jsxs("div",{className:"max-w-[320px] space-y-1.5",children:[e.jsx("h3",{className:"text-md font-medium tracking-normal text-pretty text-foreground",children:a}),t&&e.jsx("p",{className:"text-sm leading-tight text-pretty text-muted-foreground",children:t})]}),m&&e.jsx("div",{className:"flex items-center gap-2",children:m})]}));l.displayName="EmptyIndicator";export{l as E};