difit 5.0.0 → 5.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (182) hide show
  1. package/README.ja.md +0 -1
  2. package/README.ko.md +0 -1
  3. package/README.md +0 -1
  4. package/README.zh.md +0 -1
  5. package/dist/cli/index.js +0 -4
  6. package/dist/cli/index.test.js +0 -110
  7. package/dist/client/assets/{arc-DbOd2jxV.js → arc-6rfKPaO5.js} +1 -1
  8. package/dist/client/assets/architecture-7EHR7CIX-BVjNdUJk.js +1 -0
  9. package/dist/client/assets/{architectureDiagram-Q4EWVU46-BFXI_tUS.js → architectureDiagram-3BPJPVTR-DAPpx935.js} +3 -3
  10. package/dist/client/assets/blockDiagram-GPEHLZMM-CDPNTGF3.js +132 -0
  11. package/dist/client/assets/{c4Diagram-AHTNJAMY-BdIoPSTS.js → c4Diagram-AAUBKEIU-CQ1lD37n.js} +2 -2
  12. package/dist/client/assets/channel-CI_kbhRo.js +1 -0
  13. package/dist/client/assets/{chunk-EDXVE4YY-EPdmphYw.js → chunk-2J33WTMH-wS77xj1o.js} +1 -1
  14. package/dist/client/assets/chunk-3OPIFGDE-DC3iOSQY.js +62 -0
  15. package/dist/client/assets/{chunk-4BX2VUAB-CNkIhTNe.js → chunk-4BX2VUAB-C_jnlJZs.js} +1 -1
  16. package/dist/client/assets/chunk-4EGX6M5U-B5J4lyUG.js +1 -0
  17. package/dist/client/assets/{chunk-55IACEB6-J_10GkPG.js → chunk-55IACEB6-BJ8kKTix.js} +1 -1
  18. package/dist/client/assets/chunk-5DO6E6H7-UL04E-Sm.js +1 -0
  19. package/dist/client/assets/chunk-5ZQYHXKU-Bh6BPUBA.js +2 -0
  20. package/dist/client/assets/chunk-727SXJPM-BKLMyeWY.js +206 -0
  21. package/dist/client/assets/chunk-AQP2D5EJ-Df_usvOe.js +231 -0
  22. package/dist/client/assets/{chunk-LIHQZDEY-BEYvjNoB.js → chunk-BR22UD5L-iAygIt6T.js} +1 -1
  23. package/dist/client/assets/{chunk-BSJP7CBP-DiXS795w.js → chunk-BSJP7CBP-DE9tFfBp.js} +1 -1
  24. package/dist/client/assets/chunk-CSCIHK7Q-4xM5RfGk.js +124 -0
  25. package/dist/client/assets/chunk-FHYWG6QK-BgSLVmZJ.js +1 -0
  26. package/dist/client/assets/{chunk-FMBD7UC4-Dgx4um1Q.js → chunk-FMBD7UC4-Cv9IlI4O.js} +1 -1
  27. package/dist/client/assets/chunk-KSCS5N6A-DWLHH_AM.js +10 -0
  28. package/dist/client/assets/{chunk-ZZ45TVLE-CwpZ5yb7.js → chunk-L5ZTLDWV-DOT8BvSV.js} +1 -1
  29. package/dist/client/assets/chunk-LZXEDZCA-D6qoNMjr.js +2 -0
  30. package/dist/client/assets/chunk-MPE355IW-cyI0EFc3.js +1 -0
  31. package/dist/client/assets/chunk-MZUSXYTE-5xqZ7HV0.js +1 -0
  32. package/dist/client/assets/chunk-N66VUXT2-CoBMKqlP.js +1 -0
  33. package/dist/client/assets/{chunk-YZCP3GAM-D_AeoI3D.js → chunk-ND2GUHAM-CL1pz8JY.js} +1 -1
  34. package/dist/client/assets/chunk-NNHCCRGN-CyaCWJWT.js +159 -0
  35. package/dist/client/assets/{chunk-X2U36JSP-BAcfna0L.js → chunk-NZK2D7GU-C5yW1m8s.js} +1 -1
  36. package/dist/client/assets/{chunk-U2HBQHQK-CpVfEbNc.js → chunk-O5CBEL6O-DxoQOZDE.js} +4 -4
  37. package/dist/client/assets/chunk-PUPMXCY4-DkoNKY6Q.js +1 -0
  38. package/dist/client/assets/chunk-QZHKN3VN-Bo6EoZG3.js +1 -0
  39. package/dist/client/assets/chunk-UIBZB4QT-3h9dqf89.js +1 -0
  40. package/dist/client/assets/chunk-WCWK7LTN-CoJXc1FG.js +1 -0
  41. package/dist/client/assets/chunk-WU5MYG2G-wj9gaxvS.js +1 -0
  42. package/dist/client/assets/{chunk-XPW4576I-D0wrDPCQ.js → chunk-XPW4576I-CaGs7AFA.js} +1 -1
  43. package/dist/client/assets/classDiagram-4FO5ZUOK--B_Qh3IG.js +1 -0
  44. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-ChlqxE3w.js +1 -0
  45. package/dist/client/assets/{cose-bilkent-S5V4N54A-DJvkrscF.js → cose-bilkent-S5V4N54A-0teiw0GI.js} +1 -1
  46. package/dist/client/assets/cytoscape.esm-CJYKJE1R.js +321 -0
  47. package/dist/client/assets/dagre-BLlLfumR.js +1 -0
  48. package/dist/client/assets/dagre-BM42HDAG-D_-3GRUj.js +4 -0
  49. package/dist/client/assets/diagram-2AECGRRQ-_W3aY5Zc.js +43 -0
  50. package/dist/client/assets/{diagram-5BDNPKRD-CJSn8eie.js → diagram-5GNKFQAL-CMT8oSlm.js} +2 -2
  51. package/dist/client/assets/diagram-KO2AKTUF-B9w0z9LU.js +3 -0
  52. package/dist/client/assets/{diagram-TYMM5635-DKIgp_-m.js → diagram-LMA3HP47-BuYAHh0a.js} +1 -1
  53. package/dist/client/assets/diagram-OG6HWLK6-C2f4LrLS.js +24 -0
  54. package/dist/client/assets/{dist-CL_sSZWx.js → dist-DpSceyb-.js} +1 -1
  55. package/dist/client/assets/{erDiagram-SMLLAGMA-Iw0m0edr.js → erDiagram-TEJ5UH35-BDcc9ZeJ.js} +2 -2
  56. package/dist/client/assets/eventmodeling-FCH6USID-BMkJE7Xb.js +1 -0
  57. package/dist/client/assets/{flowDiagram-DWJPFMVM-CtXQs1rX.js → flowDiagram-I6XJVG4X-C46q_MLU.js} +6 -6
  58. package/dist/client/assets/ganttDiagram-6RSMTGT7-DgM194yE.js +292 -0
  59. package/dist/client/assets/gitGraph-WXDBUCRP-hUiiT7ot.js +1 -0
  60. package/dist/client/assets/gitGraphDiagram-PVQCEYII-CpIhNWuv.js +106 -0
  61. package/dist/client/assets/graphlib-DkOQ9ah2.js +1 -0
  62. package/dist/client/assets/index-CFVmjhs_.css +2 -0
  63. package/dist/client/assets/index-abQ5IgAS.js +82 -0
  64. package/dist/client/assets/info-J43DQDTF-Dn8zxm9V.js +1 -0
  65. package/dist/client/assets/{infoDiagram-42DDH7IO-Cfjrwz2v.js → infoDiagram-5YYISTIA-ZvGYZ-kQ.js} +1 -1
  66. package/dist/client/assets/{ishikawaDiagram-UXIWVN3A-Cc-jozqB.js → ishikawaDiagram-YF4QCWOH-B9iBTUWg.js} +2 -2
  67. package/dist/client/assets/{journeyDiagram-VCZTEJTY-Bjx1sC-s.js → journeyDiagram-JHISSGLW-BjR1KB-M.js} +3 -3
  68. package/dist/client/assets/{kanban-definition-6JOO6SKY-CIkJYslO.js → kanban-definition-UN3LZRKU-C-omJVr_.js} +6 -6
  69. package/dist/client/assets/katex-Du_qQZ_j.js +257 -0
  70. package/dist/client/assets/line-BrFp4RcF.js +1 -0
  71. package/dist/client/assets/{linear-DCAQGlgU.js → linear-Ce90hYCv.js} +1 -1
  72. package/dist/client/assets/mermaid-parser.core-DyzS6net.js +4 -0
  73. package/dist/client/assets/mermaid.core-dZvhJRm4.js +9 -0
  74. package/dist/client/assets/{mindmap-definition-QFDTVHPH-CPflWkUN.js → mindmap-definition-RKZ34NQL-B1-aSgk-.js} +28 -28
  75. package/dist/client/assets/{ordinal-DIg8h6NI.js → ordinal-7rXhq2H9.js} +1 -1
  76. package/dist/client/assets/packet-YPE3B663-D4pLqEWp.js +1 -0
  77. package/dist/client/assets/pie-LRSECV5Y-Cl1Syrbg.js +1 -0
  78. package/dist/client/assets/pieDiagram-4H26LBE5-Dsq8XbGX.js +30 -0
  79. package/dist/client/assets/quadrantDiagram-W4KKPZXB-Cown2EYl.js +7 -0
  80. package/dist/client/assets/radar-GUYGQ44K-DJuoaUBO.js +1 -0
  81. package/dist/client/assets/{requirementDiagram-MS252O5E-CZW6zJs_.js → requirementDiagram-4Y6WPE33-IHqUu4n-.js} +4 -4
  82. package/dist/client/assets/{sankeyDiagram-XADWPNL6-D4r0GNlW.js → sankeyDiagram-5OEKKPKP-BvIfULX_.js} +36 -6
  83. package/dist/client/assets/sequenceDiagram-3UESZ5HK-DNZh6NI8.js +162 -0
  84. package/dist/client/assets/src-iMPju4xR.js +1 -0
  85. package/dist/client/assets/stateDiagram-AJRCARHV-CGHI9QKF.js +1 -0
  86. package/dist/client/assets/stateDiagram-v2-BHNVJYJU-Cags9ZgQ.js +1 -0
  87. package/dist/client/assets/{timeline-definition-GMOUNBTQ-DmlaOXs4.js → timeline-definition-PNZ67QCA-C3MNpio4.js} +5 -5
  88. package/dist/client/assets/treeView-BLDUP644-DsanmcrA.js +1 -0
  89. package/dist/client/assets/treemap-LRROVOQU-CCkKzd8F.js +1 -0
  90. package/dist/client/assets/vennDiagram-CIIHVFJN-2XAu0kKE.js +34 -0
  91. package/dist/client/assets/wardley-L42UT6IY-BuMHDenj.js +1 -0
  92. package/dist/client/assets/{wardleyDiagram-NUSXRM2D-B5lHUuTU.js → wardleyDiagram-YWT4CUSO-e5Pq-VXT.js} +61 -3
  93. package/dist/client/assets/{xychartDiagram-5P7HB3ND-D8nLdJo8.js → xychartDiagram-2RQKCTM6-DlYK0YFq.js} +3 -3
  94. package/dist/client/index.html +2 -2
  95. package/dist/server/file-watcher.test.js +40 -36
  96. package/dist/server/git-diff.test.js +6 -4
  97. package/dist/server/server.d.ts +0 -1
  98. package/dist/server/server.js +25 -7
  99. package/dist/server/server.test.js +120 -39
  100. package/dist/types/diff.d.ts +1 -2
  101. package/dist/utils/commentImports.js +4 -1
  102. package/package.json +3 -3
  103. package/dist/client/assets/_baseFor-Dq1lbcoh.js +0 -1
  104. package/dist/client/assets/architecture-YZFGNWBL-0n2ZLuLj.js +0 -1
  105. package/dist/client/assets/blockDiagram-DXYQGD6D-BOEZDsFe.js +0 -132
  106. package/dist/client/assets/channel-DPag0OPA.js +0 -1
  107. package/dist/client/assets/chunk-2KRD3SAO-BaHSMZbk.js +0 -1
  108. package/dist/client/assets/chunk-336JU56O-BGfMTguc.js +0 -2
  109. package/dist/client/assets/chunk-426QAEUC-Ct2OJ1s3.js +0 -1
  110. package/dist/client/assets/chunk-4TB4RGXK-wFMAN-Ug.js +0 -206
  111. package/dist/client/assets/chunk-5FUZZQ4R-0NY9W0kL.js +0 -62
  112. package/dist/client/assets/chunk-5PVQY5BW-nUEO-vub.js +0 -2
  113. package/dist/client/assets/chunk-67CJDMHE-CpK_DCjw.js +0 -1
  114. package/dist/client/assets/chunk-7N4EOEYR-CJfX2SRB.js +0 -1
  115. package/dist/client/assets/chunk-AA7GKIK3-DGHjDQX4.js +0 -1
  116. package/dist/client/assets/chunk-CIAEETIT-DaOGL_z8.js +0 -1
  117. package/dist/client/assets/chunk-ENJZ2VHE-9x7-Qpzy.js +0 -10
  118. package/dist/client/assets/chunk-FOC6F5B3-BaVe0aqm.js +0 -1
  119. package/dist/client/assets/chunk-ICPOFSXX-C9l3r2YR.js +0 -122
  120. package/dist/client/assets/chunk-K5T4RW27-Bv0dnd8C.js +0 -94
  121. package/dist/client/assets/chunk-KGLVRYIC-BdTDi9hU.js +0 -1
  122. package/dist/client/assets/chunk-ORNJ4GCN-CHeeoEx_.js +0 -1
  123. package/dist/client/assets/chunk-OYMX7WX6-Bapbqtyc.js +0 -231
  124. package/dist/client/assets/chunk-QZHKN3VN-CNqVW4m2.js +0 -1
  125. package/dist/client/assets/classDiagram-6PBFFD2Q-aX3PLX0y.js +0 -1
  126. package/dist/client/assets/classDiagram-v2-HSJHXN6E-CshAcrwe.js +0 -1
  127. package/dist/client/assets/clone-J5cJUwR3.js +0 -1
  128. package/dist/client/assets/cytoscape.esm-DdcHPZAZ.js +0 -321
  129. package/dist/client/assets/dagre-BADyoi72.js +0 -1
  130. package/dist/client/assets/dagre-KV5264BT-BDTirpEd.js +0 -4
  131. package/dist/client/assets/diagram-G4DWMVQ6-COzN0wAe.js +0 -24
  132. package/dist/client/assets/diagram-MMDJMWI5-Bau__Yfk.js +0 -43
  133. package/dist/client/assets/flatten-SRIRKgqP.js +0 -1
  134. package/dist/client/assets/ganttDiagram-T4ZO3ILL-B0341I_2.js +0 -292
  135. package/dist/client/assets/gitGraph-7Q5UKJZL-NWgYXB7y.js +0 -1
  136. package/dist/client/assets/gitGraphDiagram-UUTBAWPF-Yv3oicIa.js +0 -106
  137. package/dist/client/assets/graphlib-BLiSTux3.js +0 -1
  138. package/dist/client/assets/index-C2jd9xpN.js +0 -79
  139. package/dist/client/assets/index-v-PY_jQI.css +0 -2
  140. package/dist/client/assets/info-OMHHGYJF-Bvc7BWzq.js +0 -1
  141. package/dist/client/assets/isEmpty-CStpjy4G.js +0 -1
  142. package/dist/client/assets/katex-CeIlAR55.js +0 -257
  143. package/dist/client/assets/line-yxqmb99x.js +0 -1
  144. package/dist/client/assets/mermaid-parser.core-B5ufZrv2.js +0 -4
  145. package/dist/client/assets/mermaid.core-BFOnV1aK.js +0 -11
  146. package/dist/client/assets/packet-4T2RLAQJ-DNpLsp8v.js +0 -1
  147. package/dist/client/assets/pie-ZZUOXDRM-D8uToFEL.js +0 -1
  148. package/dist/client/assets/pieDiagram-DEJITSTG-Dl3gScVb.js +0 -30
  149. package/dist/client/assets/quadrantDiagram-34T5L4WZ-38YyGeXU.js +0 -7
  150. package/dist/client/assets/radar-PYXPWWZC-VrpLp1jL.js +0 -1
  151. package/dist/client/assets/reduce-CG4cgj93.js +0 -1
  152. package/dist/client/assets/sequenceDiagram-FGHM5R23-2xItvAxs.js +0 -157
  153. package/dist/client/assets/src-YK4ClFOB.js +0 -1
  154. package/dist/client/assets/stateDiagram-FHFEXIEX-lBViG7kM.js +0 -1
  155. package/dist/client/assets/stateDiagram-v2-QKLJ7IA2-BcU-AM4S.js +0 -1
  156. package/dist/client/assets/treeView-SZITEDCU-B1qc9ijP.js +0 -1
  157. package/dist/client/assets/treemap-W4RFUUIX-Dl7yWWae.js +0 -1
  158. package/dist/client/assets/vennDiagram-DHZGUBPP-BOLv0A8q.js +0 -34
  159. package/dist/client/assets/wardley-RL74JXVD-CEXd-1Ht.js +0 -1
  160. /package/dist/client/assets/{array-DOVTz2Mq.js → array-yLZkcI6Y.js} +0 -0
  161. /package/dist/client/assets/{defaultLocale-Ck2Xxk-C.js → defaultLocale-Bld4b7vH.js} +0 -0
  162. /package/dist/client/assets/{init-Bft5Ffpj.js → init-rddNFwID.js} +0 -0
  163. /package/dist/client/assets/{path-DfRbCp9y.js → path-BJQEcSo7.js} +0 -0
  164. /package/dist/client/assets/{prism-bash-CPkZUJMA.js → prism-bash-ElxVK2UI.js} +0 -0
  165. /package/dist/client/assets/{prism-clojure-BpoF2XhX.js → prism-clojure-Coed_dlT.js} +0 -0
  166. /package/dist/client/assets/{prism-csharp-BEk8D1-3.js → prism-csharp-BvoTEt-U.js} +0 -0
  167. /package/dist/client/assets/{prism-dart-ByLYrdQB.js → prism-dart-59mV4Nzl.js} +0 -0
  168. /package/dist/client/assets/{prism-elixir-BZtyIEab.js → prism-elixir-VMbXB0ch.js} +0 -0
  169. /package/dist/client/assets/{prism-haskell-NAsbeo3V.js → prism-haskell-DbMQ4t9D.js} +0 -0
  170. /package/dist/client/assets/{prism-hcl-crnGqmVp.js → prism-hcl-DaTFd4M9.js} +0 -0
  171. /package/dist/client/assets/{prism-java-BovStacA.js → prism-java-Bvhe07ID.js} +0 -0
  172. /package/dist/client/assets/{prism-markup-templating-Cl8NiLjy.js → prism-markup-templating-DOf10VS2.js} +0 -0
  173. /package/dist/client/assets/{prism-nix-BS_cm_1n.js → prism-nix-CNZSWapd.js} +0 -0
  174. /package/dist/client/assets/{prism-perl-DGLVMq5H.js → prism-perl-ZBgEPf6s.js} +0 -0
  175. /package/dist/client/assets/{prism-php-BskSwJN8.js → prism-php-CBX1LG5n.js} +0 -0
  176. /package/dist/client/assets/{prism-protobuf-DfbIYpO7.js → prism-protobuf-KYCaTc8s.js} +0 -0
  177. /package/dist/client/assets/{prism-ruby-FBVh1PRE.js → prism-ruby-Dtn_AROP.js} +0 -0
  178. /package/dist/client/assets/{prism-scala--9AfMHPY.js → prism-scala-B4gvAG5X.js} +0 -0
  179. /package/dist/client/assets/{prism-solidity-BgJNkj1z.js → prism-solidity-BS9JVLL6.js} +0 -0
  180. /package/dist/client/assets/{prism-sql-C9Czmpov.js → prism-sql-DL_NEVBy.js} +0 -0
  181. /package/dist/client/assets/{prism-vim-CzUNf0WQ.js → prism-vim-DqdsfG3_.js} +0 -0
  182. /package/dist/client/assets/{rough.esm-Bbn_-PMU.js → rough.esm-KjoEK0it.js} +0 -0
@@ -115,8 +115,9 @@ describe('Server Integration Tests', () => {
115
115
  body: JSON.stringify({ comments }),
116
116
  });
117
117
  expect(response.status).toBe(200);
118
- const apiResult = await response.json();
119
- expect(apiResult).toEqual({ success: true });
118
+ const apiResult = (await response.json());
119
+ expect(apiResult).toMatchObject({ success: true, merged: false });
120
+ expect(typeof apiResult.version).toBe('number');
120
121
  // Verify the formatted output
121
122
  const outputResponse = await fetch(`http://localhost:${result.port}/api/comments-output`);
122
123
  const output = await outputResponse.text();
@@ -170,6 +171,123 @@ describe('Server Integration Tests', () => {
170
171
  }
171
172
  }
172
173
  });
174
+ const isoNow = '2024-01-01T00:00:00Z';
175
+ const makeThread = (id, filePath, line, body) => ({
176
+ id,
177
+ filePath,
178
+ createdAt: isoNow,
179
+ updatedAt: isoNow,
180
+ position: { side: 'new', line },
181
+ messages: [{ id, body, createdAt: isoNow, updatedAt: isoNow }],
182
+ });
183
+ const postThreads = (port, threads, baseVersion) => fetch(`http://localhost:${port}/api/comments`, {
184
+ method: 'POST',
185
+ headers: { 'Content-Type': 'application/json' },
186
+ body: JSON.stringify({ threads, baseVersion }),
187
+ });
188
+ const getSession = async (port) => {
189
+ const res = await fetch(`http://localhost:${port}/api/comments-json`);
190
+ return (await res.json());
191
+ };
192
+ it('merges concurrent agent additions instead of clobbering on a stale push', async () => {
193
+ const port = await getAvailablePort(4966);
194
+ const result = await startServer({ preferredPort: port, openBrowser: false });
195
+ try {
196
+ // Browser establishes a thread; it now knows version 1.
197
+ await postThreads(result.port, [makeThread('t1', 'src/a.ts', 10, 'human thread')]);
198
+ const afterFirst = await getSession(result.port);
199
+ expect(afterFirst.version).toBe(1);
200
+ // An agent adds a second thread out of band (e.g. `difit comment add`).
201
+ const agentImport = [
202
+ {
203
+ type: 'thread',
204
+ id: 'agent-1',
205
+ filePath: 'src/b.ts',
206
+ position: { side: 'new', line: 20 },
207
+ body: 'agent finding',
208
+ author: 'Agent',
209
+ },
210
+ ];
211
+ await fetch(`http://localhost:${result.port}/api/comment-imports`, {
212
+ method: 'POST',
213
+ headers: { 'Content-Type': 'application/json' },
214
+ body: JSON.stringify(agentImport),
215
+ });
216
+ // The browser, unaware of the agent's thread, pushes its stale set
217
+ // tagged with the version it last observed (1).
218
+ const staleResponse = await postThreads(result.port, [makeThread('t1', 'src/a.ts', 10, 'human thread')], 1);
219
+ const staleResult = (await staleResponse.json());
220
+ expect(staleResult.merged).toBe(true);
221
+ // The agent's thread must survive the stale push.
222
+ const final = await getSession(result.port);
223
+ expect(final.threads).toHaveLength(2);
224
+ expect(final.threads.some((thread) => thread.id === 't1')).toBe(true);
225
+ expect(final.threads.some((thread) => thread.id === 'agent-1')).toBe(true);
226
+ }
227
+ finally {
228
+ if (result.server) {
229
+ await new Promise((resolve) => {
230
+ result.server.close(() => resolve());
231
+ });
232
+ }
233
+ }
234
+ });
235
+ it('replaces (honoring deletions) when the push version matches', async () => {
236
+ const port = await getAvailablePort(4966);
237
+ const result = await startServer({ preferredPort: port, openBrowser: false });
238
+ try {
239
+ await postThreads(result.port, [makeThread('t1', 'src/a.ts', 10, 'human thread')]);
240
+ const afterFirst = await getSession(result.port);
241
+ expect(afterFirst.version).toBe(1);
242
+ expect(afterFirst.threads).toHaveLength(1);
243
+ // Same version means no concurrent writer, so an empty set is a real
244
+ // deletion and must be honored (not merged back).
245
+ const response = await postThreads(result.port, [], afterFirst.version);
246
+ const body = (await response.json());
247
+ expect(body.merged).toBe(false);
248
+ const final = await getSession(result.port);
249
+ expect(final.threads).toHaveLength(0);
250
+ }
251
+ finally {
252
+ if (result.server) {
253
+ await new Promise((resolve) => {
254
+ result.server.close(() => resolve());
255
+ });
256
+ }
257
+ }
258
+ });
259
+ it('bumps the version when a reply is imported (so the change is broadcast)', async () => {
260
+ const port = await getAvailablePort(4966);
261
+ const result = await startServer({ preferredPort: port, openBrowser: false });
262
+ try {
263
+ await postThreads(result.port, [makeThread('t1', 'src/a.ts', 10, 'human thread')]);
264
+ const before = await getSession(result.port);
265
+ // A reply via comment-imports must register as a change — otherwise the
266
+ // server skips the commentsChanged broadcast and open browsers go stale.
267
+ await fetch(`http://localhost:${result.port}/api/comment-imports`, {
268
+ method: 'POST',
269
+ headers: { 'Content-Type': 'application/json' },
270
+ body: JSON.stringify([
271
+ {
272
+ type: 'reply',
273
+ filePath: 'src/a.ts',
274
+ position: { side: 'new', line: 10 },
275
+ body: 'agent reply',
276
+ author: 'Agent',
277
+ },
278
+ ]),
279
+ });
280
+ const after = await getSession(result.port);
281
+ expect(after.version).toBeGreaterThan(before.version);
282
+ }
283
+ finally {
284
+ if (result.server) {
285
+ await new Promise((resolve) => {
286
+ result.server.close(() => resolve());
287
+ });
288
+ }
289
+ }
290
+ });
173
291
  });
174
292
  let servers = [];
175
293
  let originalProcessExit;
@@ -833,43 +951,6 @@ describe('Server Integration Tests', () => {
833
951
  expect(response.status).toBe(404);
834
952
  });
835
953
  });
836
- describe('Mode option handling', () => {
837
- it('accepts mode option in server configuration', async () => {
838
- // Test that mode option is accepted without error
839
- const result = await startServer({
840
- selection: { targetCommitish: 'HEAD', baseCommitish: 'HEAD^' },
841
- mode: 'unified',
842
- });
843
- servers.push(result.server);
844
- expect(result.port).toBeGreaterThanOrEqual(4966);
845
- expect(result.url).toContain('http://localhost:');
846
- });
847
- it('accepts different mode values', async () => {
848
- const inlineResult = await startServer({
849
- selection: { targetCommitish: 'HEAD', baseCommitish: 'HEAD^' },
850
- mode: 'unified',
851
- });
852
- servers.push(inlineResult.server);
853
- const sideBySideResult = await startServer({
854
- selection: { targetCommitish: 'HEAD', baseCommitish: 'HEAD^' },
855
- mode: 'split',
856
- });
857
- servers.push(sideBySideResult.server);
858
- expect(inlineResult.port).toBeGreaterThanOrEqual(4966);
859
- expect(sideBySideResult.port).toBeGreaterThanOrEqual(4966);
860
- });
861
- it('mode option should be included in diff response', async () => {
862
- const result = await startServer({
863
- selection: { targetCommitish: 'HEAD', baseCommitish: 'HEAD^' },
864
- mode: 'inline',
865
- });
866
- servers.push(result.server);
867
- const response = await fetch(`http://localhost:${result.port}/api/diff`);
868
- const data = await response.json();
869
- // The mode should be included in the response
870
- expect(data).toHaveProperty('mode', 'unified');
871
- });
872
- });
873
954
  describe('Revision options API', () => {
874
955
  it('returns available revisions', async () => {
875
956
  const result = await startServer({
@@ -22,7 +22,6 @@ export interface DiffLine {
22
22
  newLineNumber?: number;
23
23
  }
24
24
  export type DiffViewMode = 'split' | 'unified';
25
- type LegacyDiffViewMode = 'side-by-side' | 'inline';
26
25
  export type DiffSide = 'old' | 'new';
27
26
  export type DiffLineRange = number | {
28
27
  start: number;
@@ -47,7 +46,6 @@ export interface DiffResponse {
47
46
  files: DiffFile[];
48
47
  ignoreWhitespace?: boolean;
49
48
  isEmpty?: boolean;
50
- mode?: DiffViewMode | LegacyDiffViewMode;
51
49
  openInEditorAvailable?: boolean;
52
50
  baseCommitish?: string;
53
51
  targetCommitish?: string;
@@ -167,6 +165,7 @@ export interface CommentThread {
167
165
  createdAt: string;
168
166
  updatedAt: string;
169
167
  codeContent?: string;
168
+ isOutdated?: boolean;
170
169
  messages: DiffCommentMessage[];
171
170
  }
172
171
  interface RevisionOption {
@@ -350,7 +350,10 @@ export function serializeCommentImports(commentImports) {
350
350
  })));
351
351
  }
352
352
  export function mergeCommentImports(existingThreads, commentImports) {
353
- const threads = [...existingThreads];
353
+ // Clone (don't shallow-copy) so appending a reply doesn't mutate the caller's
354
+ // thread objects in place — otherwise the server can't detect the change and
355
+ // skips the commentsChanged broadcast, leaving open browsers stale.
356
+ const threads = existingThreads.map(cloneThread);
354
357
  const warnings = [];
355
358
  for (const commentImport of commentImports) {
356
359
  const now = new Date().toISOString();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "difit",
3
- "version": "5.0.0",
3
+ "version": "5.0.2",
4
4
  "description": "A lightweight command-line tool that spins up a local web server to display Git commit diffs in a GitHub-like Files changed view",
5
5
  "keywords": [
6
6
  "cli",
@@ -95,7 +95,7 @@
95
95
  "happy-dom": "^20.0.0",
96
96
  "knip": "^6.0.0",
97
97
  "lefthook": "^2.0.0",
98
- "oxfmt": "^0.47.0",
98
+ "oxfmt": "^0.49.0",
99
99
  "oxlint": "^1.49.0",
100
100
  "oxlint-tsgolint": "^0.22.0",
101
101
  "playwright": "^1.54.1",
@@ -109,5 +109,5 @@
109
109
  "engines": {
110
110
  "node": ">=21.0.0"
111
111
  },
112
- "packageManager": "pnpm@11.0.0"
112
+ "packageManager": "pnpm@11.1.2"
113
113
  }
@@ -1 +0,0 @@
1
- function e(){this.__data__=[],this.size=0}function t(e,t){return e===t||e!==e&&t!==t}function n(e,n){for(var r=e.length;r--;)if(t(e[r][0],n))return r;return-1}var r=Array.prototype.splice;function i(e){var t=this.__data__,i=n(t,e);return i<0?!1:(i==t.length-1?t.pop():r.call(t,i,1),--this.size,!0)}function a(e){var t=this.__data__,r=n(t,e);return r<0?void 0:t[r][1]}function o(e){return n(this.__data__,e)>-1}function s(e,t){var r=this.__data__,i=n(r,e);return i<0?(++this.size,r.push([e,t])):r[i][1]=t,this}function c(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}c.prototype.clear=e,c.prototype.delete=i,c.prototype.get=a,c.prototype.has=o,c.prototype.set=s;function l(){this.__data__=new c,this.size=0}function ee(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}function te(e){return this.__data__.get(e)}function ne(e){return this.__data__.has(e)}var u=typeof global==`object`&&global&&global.Object===Object&&global,re=typeof self==`object`&&self&&self.Object===Object&&self,d=u||re||Function(`return this`)(),f=d.Symbol,p=Object.prototype,ie=p.hasOwnProperty,ae=p.toString,m=f?f.toStringTag:void 0;function oe(e){var t=ie.call(e,m),n=e[m];try{e[m]=void 0;var r=!0}catch{}var i=ae.call(e);return r&&(t?e[m]=n:delete e[m]),i}var se=Object.prototype.toString;function ce(e){return se.call(e)}var le=`[object Null]`,ue=`[object Undefined]`,h=f?f.toStringTag:void 0;function g(e){return e==null?e===void 0?ue:le:h&&h in Object(e)?oe(e):ce(e)}function _(e){var t=typeof e;return e!=null&&(t==`object`||t==`function`)}var de=`[object AsyncFunction]`,fe=`[object Function]`,pe=`[object GeneratorFunction]`,me=`[object Proxy]`;function v(e){if(!_(e))return!1;var t=g(e);return t==fe||t==pe||t==de||t==me}var y=d[`__core-js_shared__`],b=function(){var e=/[^.]+$/.exec(y&&y.keys&&y.keys.IE_PROTO||``);return e?`Symbol(src)_1.`+e:``}();function he(e){return!!b&&b in e}var ge=Function.prototype.toString;function x(e){if(e!=null){try{return ge.call(e)}catch{}try{return e+``}catch{}}return``}var _e=/[\\^$.*+?()[\]{}|]/g,ve=/^\[object .+?Constructor\]$/,ye=Function.prototype,be=Object.prototype,xe=ye.toString,Se=be.hasOwnProperty,Ce=RegExp(`^`+xe.call(Se).replace(_e,`\\$&`).replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,`$1.*?`)+`$`);function we(e){return!_(e)||he(e)?!1:(v(e)?Ce:ve).test(x(e))}function Te(e,t){return e?.[t]}function S(e,t){var n=Te(e,t);return we(n)?n:void 0}var C=S(d,`Map`),w=S(Object,`create`);function T(){this.__data__=w?w(null):{},this.size=0}function E(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=+!!t,t}var D=`__lodash_hash_undefined__`,O=Object.prototype.hasOwnProperty;function Ee(e){var t=this.__data__;if(w){var n=t[e];return n===D?void 0:n}return O.call(t,e)?t[e]:void 0}var De=Object.prototype.hasOwnProperty;function Oe(e){var t=this.__data__;return w?t[e]!==void 0:De.call(t,e)}var ke=`__lodash_hash_undefined__`;function Ae(e,t){var n=this.__data__;return this.size+=+!this.has(e),n[e]=w&&t===void 0?ke:t,this}function k(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}k.prototype.clear=T,k.prototype.delete=E,k.prototype.get=Ee,k.prototype.has=Oe,k.prototype.set=Ae;function je(){this.size=0,this.__data__={hash:new k,map:new(C||c),string:new k}}function Me(e){var t=typeof e;return t==`string`||t==`number`||t==`symbol`||t==`boolean`?e!==`__proto__`:e===null}function A(e,t){var n=e.__data__;return Me(t)?n[typeof t==`string`?`string`:`hash`]:n.map}function Ne(e){var t=A(this,e).delete(e);return this.size-=+!!t,t}function Pe(e){return A(this,e).get(e)}function Fe(e){return A(this,e).has(e)}function Ie(e,t){var n=A(this,e),r=n.size;return n.set(e,t),this.size+=n.size==r?0:1,this}function j(e){var t=-1,n=e==null?0:e.length;for(this.clear();++t<n;){var r=e[t];this.set(r[0],r[1])}}j.prototype.clear=je,j.prototype.delete=Ne,j.prototype.get=Pe,j.prototype.has=Fe,j.prototype.set=Ie;var Le=200;function Re(e,t){var n=this.__data__;if(n instanceof c){var r=n.__data__;if(!C||r.length<Le-1)return r.push([e,t]),this.size=++n.size,this;n=this.__data__=new j(r)}return n.set(e,t),this.size=n.size,this}function M(e){var t=this.__data__=new c(e);this.size=t.size}M.prototype.clear=l,M.prototype.delete=ee,M.prototype.get=te,M.prototype.has=ne,M.prototype.set=Re;var ze=d.Uint8Array,N=Array.isArray;function Be(e,t){for(var n=-1,r=Array(e);++n<e;)r[n]=t(n);return r}function P(e){return typeof e==`object`&&!!e}var Ve=`[object Arguments]`;function F(e){return P(e)&&g(e)==Ve}var I=Object.prototype,He=I.hasOwnProperty,Ue=I.propertyIsEnumerable,L=F(function(){return arguments}())?F:function(e){return P(e)&&He.call(e,`callee`)&&!Ue.call(e,`callee`)};function We(){return!1}var R=typeof exports==`object`&&exports&&!exports.nodeType&&exports,z=R&&typeof module==`object`&&module&&!module.nodeType&&module,B=z&&z.exports===R?d.Buffer:void 0,V=(B?B.isBuffer:void 0)||We,Ge=9007199254740991,Ke=/^(?:0|[1-9]\d*)$/;function H(e,t){var n=typeof e;return t??=Ge,!!t&&(n==`number`||n!=`symbol`&&Ke.test(e))&&e>-1&&e%1==0&&e<t}var qe=9007199254740991;function U(e){return typeof e==`number`&&e>-1&&e%1==0&&e<=qe}var Je=`[object Arguments]`,Ye=`[object Array]`,Xe=`[object Boolean]`,Ze=`[object Date]`,Qe=`[object Error]`,$e=`[object Function]`,et=`[object Map]`,tt=`[object Number]`,nt=`[object Object]`,rt=`[object RegExp]`,it=`[object Set]`,at=`[object String]`,ot=`[object WeakMap]`,st=`[object ArrayBuffer]`,ct=`[object DataView]`,lt=`[object Float32Array]`,ut=`[object Float64Array]`,dt=`[object Int8Array]`,ft=`[object Int16Array]`,pt=`[object Int32Array]`,mt=`[object Uint8Array]`,ht=`[object Uint8ClampedArray]`,gt=`[object Uint16Array]`,_t=`[object Uint32Array]`,W={};W[lt]=W[ut]=W[dt]=W[ft]=W[pt]=W[mt]=W[ht]=W[gt]=W[_t]=!0,W[Je]=W[Ye]=W[st]=W[Xe]=W[ct]=W[Ze]=W[Qe]=W[$e]=W[et]=W[tt]=W[nt]=W[rt]=W[it]=W[at]=W[ot]=!1;function vt(e){return P(e)&&U(e.length)&&!!W[g(e)]}function G(e){return function(t){return e(t)}}var K=typeof exports==`object`&&exports&&!exports.nodeType&&exports,q=K&&typeof module==`object`&&module&&!module.nodeType&&module,J=q&&q.exports===K&&u.process,Y=function(){try{return q&&q.require&&q.require(`util`).types||J&&J.binding&&J.binding(`util`)}catch{}}(),X=Y&&Y.isTypedArray,Z=X?G(X):vt,yt=Object.prototype.hasOwnProperty;function bt(e,t){var n=N(e),r=!n&&L(e),i=!n&&!r&&V(e),a=!n&&!r&&!i&&Z(e),o=n||r||i||a,s=o?Be(e.length,String):[],c=s.length;for(var l in e)(t||yt.call(e,l))&&!(o&&(l==`length`||i&&(l==`offset`||l==`parent`)||a&&(l==`buffer`||l==`byteLength`||l==`byteOffset`)||H(l,c)))&&s.push(l);return s}var xt=Object.prototype;function St(e){var t=e&&e.constructor;return e===(typeof t==`function`&&t.prototype||xt)}function Ct(e,t){return function(n){return e(t(n))}}function wt(e){return e!=null&&U(e.length)&&!v(e)}var Tt=`Expected a function`;function Q(e,t){if(typeof e!=`function`||t!=null&&typeof t!=`function`)throw TypeError(Tt);var n=function(){var r=arguments,i=t?t.apply(this,r):r[0],a=n.cache;if(a.has(i))return a.get(i);var o=e.apply(this,r);return n.cache=a.set(i,o)||a,o};return n.cache=new(Q.Cache||j),n}Q.Cache=j;function $(e){return e}function Et(e){return function(t,n,r){for(var i=-1,a=Object(t),o=r(t),s=o.length;s--;){var c=o[e?s:++i];if(n(a[c],c,a)===!1)break}return t}}var Dt=Et();export{v as C,d as D,f as E,t as O,x as S,g as T,ze as _,Ct as a,C as b,Z as c,U as d,H as f,N as g,P as h,wt as i,Y as l,L as m,$ as n,St as o,V as p,Q as r,bt as s,Dt as t,G as u,M as v,_ as w,S as x,j as y};
@@ -1 +0,0 @@
1
- import"./chunk-K5T4RW27-Bv0dnd8C.js";import{n as e}from"./chunk-7N4EOEYR-CJfX2SRB.js";export{e as createArchitectureServices};
@@ -1,132 +0,0 @@
1
- import{g as e,h as t,p as n}from"./src-YK4ClFOB.js";import{D as r,L as i,a,b as o,c as s,nt as c,s as l,w as u,y as d}from"./chunk-ICPOFSXX-C9l3r2YR.js";import{t as f}from"./channel-DPag0OPA.js";import{H as p,c as m,h,i as g}from"./chunk-5PVQY5BW-nUEO-vub.js";import{t as _}from"./line-yxqmb99x.js";import{n as v}from"./chunk-U2HBQHQK-CpVfEbNc.js";import{t as y}from"./chunk-FMBD7UC4-Dgx4um1Q.js";import{n as b,t as x}from"./chunk-BSJP7CBP-DiXS795w.js";import{n as S,t as C}from"./chunk-ZZ45TVLE-CwpZ5yb7.js";import{t as w}from"./graphlib-BLiSTux3.js";import{t as T}from"./clone-J5cJUwR3.js";var E=(function(){var e=t(function(e,t,n,r){for(n||={},r=e.length;r--;n[e[r]]=t);return n},`o`),n=[1,15],r=[1,7],i=[1,13],a=[1,14],o=[1,19],s=[1,16],c=[1,17],l=[1,18],u=[8,30],d=[8,10,21,28,29,30,31,39,43,46],f=[1,23],p=[1,24],m=[8,10,15,16,21,28,29,30,31,39,43,46],h=[8,10,15,16,21,27,28,29,30,31,39,43,46],g=[1,49],_={trace:t(function(){},`trace`),yy:{},symbols_:{error:2,spaceLines:3,SPACELINE:4,NL:5,separator:6,SPACE:7,EOF:8,start:9,BLOCK_DIAGRAM_KEY:10,document:11,stop:12,statement:13,link:14,LINK:15,START_LINK:16,LINK_LABEL:17,STR:18,nodeStatement:19,columnsStatement:20,SPACE_BLOCK:21,blockStatement:22,classDefStatement:23,cssClassStatement:24,styleStatement:25,node:26,SIZE:27,COLUMNS:28,"id-block":29,end:30,NODE_ID:31,nodeShapeNLabel:32,dirList:33,DIR:34,NODE_DSTART:35,NODE_DEND:36,BLOCK_ARROW_START:37,BLOCK_ARROW_END:38,classDef:39,CLASSDEF_ID:40,CLASSDEF_STYLEOPTS:41,DEFAULT:42,class:43,CLASSENTITY_IDS:44,STYLECLASS:45,style:46,STYLE_ENTITY_IDS:47,STYLE_DEFINITION_DATA:48,$accept:0,$end:1},terminals_:{2:`error`,4:`SPACELINE`,5:`NL`,7:`SPACE`,8:`EOF`,10:`BLOCK_DIAGRAM_KEY`,15:`LINK`,16:`START_LINK`,17:`LINK_LABEL`,18:`STR`,21:`SPACE_BLOCK`,27:`SIZE`,28:`COLUMNS`,29:`id-block`,30:`end`,31:`NODE_ID`,34:`DIR`,35:`NODE_DSTART`,36:`NODE_DEND`,37:`BLOCK_ARROW_START`,38:`BLOCK_ARROW_END`,39:`classDef`,40:`CLASSDEF_ID`,41:`CLASSDEF_STYLEOPTS`,42:`DEFAULT`,43:`class`,44:`CLASSENTITY_IDS`,45:`STYLECLASS`,46:`style`,47:`STYLE_ENTITY_IDS`,48:`STYLE_DEFINITION_DATA`},productions_:[0,[3,1],[3,2],[3,2],[6,1],[6,1],[6,1],[9,3],[12,1],[12,1],[12,2],[12,2],[11,1],[11,2],[14,1],[14,4],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[13,1],[19,3],[19,2],[19,1],[20,1],[22,4],[22,3],[26,1],[26,2],[33,1],[33,2],[32,3],[32,4],[23,3],[23,3],[24,3],[25,3]],performAction:t(function(e,t,n,r,i,a,o){var s=a.length-1;switch(i){case 4:r.getLogger().debug(`Rule: separator (NL) `);break;case 5:r.getLogger().debug(`Rule: separator (Space) `);break;case 6:r.getLogger().debug(`Rule: separator (EOF) `);break;case 7:r.getLogger().debug(`Rule: hierarchy: `,a[s-1]),r.setHierarchy(a[s-1]);break;case 8:r.getLogger().debug(`Stop NL `);break;case 9:r.getLogger().debug(`Stop EOF `);break;case 10:r.getLogger().debug(`Stop NL2 `);break;case 11:r.getLogger().debug(`Stop EOF2 `);break;case 12:r.getLogger().debug(`Rule: statement: `,a[s]),typeof a[s].length==`number`?this.$=a[s]:this.$=[a[s]];break;case 13:r.getLogger().debug(`Rule: statement #2: `,a[s-1]),this.$=[a[s-1]].concat(a[s]);break;case 14:r.getLogger().debug(`Rule: link: `,a[s],e),this.$={edgeTypeStr:a[s],label:``};break;case 15:r.getLogger().debug(`Rule: LABEL link: `,a[s-3],a[s-1],a[s]),this.$={edgeTypeStr:a[s],label:a[s-1]};break;case 18:let t=parseInt(a[s]),n=r.generateId();this.$={id:n,type:`space`,label:``,width:t,children:[]};break;case 23:r.getLogger().debug(`Rule: (nodeStatement link node) `,a[s-2],a[s-1],a[s],` typestr: `,a[s-1].edgeTypeStr);let i=r.edgeStrToEdgeData(a[s-1].edgeTypeStr);this.$=[{id:a[s-2].id,label:a[s-2].label,type:a[s-2].type,directions:a[s-2].directions},{id:a[s-2].id+`-`+a[s].id,start:a[s-2].id,end:a[s].id,label:a[s-1].label,type:`edge`,directions:a[s].directions,arrowTypeEnd:i,arrowTypeStart:`arrow_open`},{id:a[s].id,label:a[s].label,type:r.typeStr2Type(a[s].typeStr),directions:a[s].directions}];break;case 24:r.getLogger().debug(`Rule: nodeStatement (abc88 node size) `,a[s-1],a[s]),this.$={id:a[s-1].id,label:a[s-1].label,type:r.typeStr2Type(a[s-1].typeStr),directions:a[s-1].directions,widthInColumns:parseInt(a[s],10)};break;case 25:r.getLogger().debug(`Rule: nodeStatement (node) `,a[s]),this.$={id:a[s].id,label:a[s].label,type:r.typeStr2Type(a[s].typeStr),directions:a[s].directions,widthInColumns:1};break;case 26:r.getLogger().debug(`APA123`,this?this:`na`),r.getLogger().debug(`COLUMNS: `,a[s]),this.$={type:`column-setting`,columns:a[s]===`auto`?-1:parseInt(a[s])};break;case 27:r.getLogger().debug(`Rule: id-block statement : `,a[s-2],a[s-1]),r.generateId(),this.$={...a[s-2],type:`composite`,children:a[s-1]};break;case 28:r.getLogger().debug(`Rule: blockStatement : `,a[s-2],a[s-1],a[s]);let o=r.generateId();this.$={id:o,type:`composite`,label:``,children:a[s-1]};break;case 29:r.getLogger().debug(`Rule: node (NODE_ID separator): `,a[s]),this.$={id:a[s]};break;case 30:r.getLogger().debug(`Rule: node (NODE_ID nodeShapeNLabel separator): `,a[s-1],a[s]),this.$={id:a[s-1],label:a[s].label,typeStr:a[s].typeStr,directions:a[s].directions};break;case 31:r.getLogger().debug(`Rule: dirList: `,a[s]),this.$=[a[s]];break;case 32:r.getLogger().debug(`Rule: dirList: `,a[s-1],a[s]),this.$=[a[s-1]].concat(a[s]);break;case 33:r.getLogger().debug(`Rule: nodeShapeNLabel: `,a[s-2],a[s-1],a[s]),this.$={typeStr:a[s-2]+a[s],label:a[s-1]};break;case 34:r.getLogger().debug(`Rule: BLOCK_ARROW nodeShapeNLabel: `,a[s-3],a[s-2],` #3:`,a[s-1],a[s]),this.$={typeStr:a[s-3]+a[s],label:a[s-2],directions:a[s-1]};break;case 35:case 36:this.$={type:`classDef`,id:a[s-1].trim(),css:a[s].trim()};break;case 37:this.$={type:`applyClass`,id:a[s-1].trim(),styleClass:a[s].trim()};break;case 38:this.$={type:`applyStyles`,id:a[s-1].trim(),stylesStr:a[s].trim()};break}},`anonymous`),table:[{9:1,10:[1,2]},{1:[3]},{10:n,11:3,13:4,19:5,20:6,21:r,22:8,23:9,24:10,25:11,26:12,28:i,29:a,31:o,39:s,43:c,46:l},{8:[1,20]},e(u,[2,12],{13:4,19:5,20:6,22:8,23:9,24:10,25:11,26:12,11:21,10:n,21:r,28:i,29:a,31:o,39:s,43:c,46:l}),e(d,[2,16],{14:22,15:f,16:p}),e(d,[2,17]),e(d,[2,18]),e(d,[2,19]),e(d,[2,20]),e(d,[2,21]),e(d,[2,22]),e(m,[2,25],{27:[1,25]}),e(d,[2,26]),{19:26,26:12,31:o},{10:n,11:27,13:4,19:5,20:6,21:r,22:8,23:9,24:10,25:11,26:12,28:i,29:a,31:o,39:s,43:c,46:l},{40:[1,28],42:[1,29]},{44:[1,30]},{47:[1,31]},e(h,[2,29],{32:32,35:[1,33],37:[1,34]}),{1:[2,7]},e(u,[2,13]),{26:35,31:o},{31:[2,14]},{17:[1,36]},e(m,[2,24]),{10:n,11:37,13:4,14:22,15:f,16:p,19:5,20:6,21:r,22:8,23:9,24:10,25:11,26:12,28:i,29:a,31:o,39:s,43:c,46:l},{30:[1,38]},{41:[1,39]},{41:[1,40]},{45:[1,41]},{48:[1,42]},e(h,[2,30]),{18:[1,43]},{18:[1,44]},e(m,[2,23]),{18:[1,45]},{30:[1,46]},e(d,[2,28]),e(d,[2,35]),e(d,[2,36]),e(d,[2,37]),e(d,[2,38]),{36:[1,47]},{33:48,34:g},{15:[1,50]},e(d,[2,27]),e(h,[2,33]),{38:[1,51]},{33:52,34:g,38:[2,31]},{31:[2,15]},e(h,[2,34]),{38:[2,32]}],defaultActions:{20:[2,7],23:[2,14],50:[2,15],52:[2,32]},parseError:t(function(e,t){if(t.recoverable)this.trace(e);else{var n=Error(e);throw n.hash=t,n}},`parseError`),parse:t(function(e){var n=this,r=[0],i=[],a=[null],o=[],s=this.table,c=``,l=0,u=0,d=0,f=2,p=1,m=o.slice.call(arguments,1),h=Object.create(this.lexer),g={yy:{}};for(var _ in this.yy)Object.prototype.hasOwnProperty.call(this.yy,_)&&(g.yy[_]=this.yy[_]);h.setInput(e,g.yy),g.yy.lexer=h,g.yy.parser=this,h.yylloc===void 0&&(h.yylloc={});var v=h.yylloc;o.push(v);var y=h.options&&h.options.ranges;typeof g.yy.parseError==`function`?this.parseError=g.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function b(e){r.length-=2*e,a.length-=e,o.length-=e}t(b,`popStack`);function x(){var e=i.pop()||h.lex()||p;return typeof e!=`number`&&(e instanceof Array&&(i=e,e=i.pop()),e=n.symbols_[e]||e),e}t(x,`lex`);for(var S,C,w,T,E,D={},O,k,A,j;;){if(w=r[r.length-1],this.defaultActions[w]?T=this.defaultActions[w]:(S??=x(),T=s[w]&&s[w][S]),T===void 0||!T.length||!T[0]){var M=``;for(O in j=[],s[w])this.terminals_[O]&&O>f&&j.push(`'`+this.terminals_[O]+`'`);M=h.showPosition?`Parse error on line `+(l+1)+`:
2
- `+h.showPosition()+`
3
- Expecting `+j.join(`, `)+`, got '`+(this.terminals_[S]||S)+`'`:`Parse error on line `+(l+1)+`: Unexpected `+(S==p?`end of input`:`'`+(this.terminals_[S]||S)+`'`),this.parseError(M,{text:h.match,token:this.terminals_[S]||S,line:h.yylineno,loc:v,expected:j})}if(T[0]instanceof Array&&T.length>1)throw Error(`Parse Error: multiple actions possible at state: `+w+`, token: `+S);switch(T[0]){case 1:r.push(S),a.push(h.yytext),o.push(h.yylloc),r.push(T[1]),S=null,C?(S=C,C=null):(u=h.yyleng,c=h.yytext,l=h.yylineno,v=h.yylloc,d>0&&d--);break;case 2:if(k=this.productions_[T[1]][1],D.$=a[a.length-k],D._$={first_line:o[o.length-(k||1)].first_line,last_line:o[o.length-1].last_line,first_column:o[o.length-(k||1)].first_column,last_column:o[o.length-1].last_column},y&&(D._$.range=[o[o.length-(k||1)].range[0],o[o.length-1].range[1]]),E=this.performAction.apply(D,[c,u,l,g.yy,T[1],a,o].concat(m)),E!==void 0)return E;k&&(r=r.slice(0,-1*k*2),a=a.slice(0,-1*k),o=o.slice(0,-1*k)),r.push(this.productions_[T[1]][0]),a.push(D.$),o.push(D._$),A=s[r[r.length-2]][r[r.length-1]],r.push(A);break;case 3:return!0}}return!0},`parse`)};_.lexer=(function(){return{EOF:1,parseError:t(function(e,t){if(this.yy.parser)this.yy.parser.parseError(e,t);else throw Error(e)},`parseError`),setInput:t(function(e,t){return this.yy=t||this.yy||{},this._input=e,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match=``,this.conditionStack=[`INITIAL`],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},`setInput`),input:t(function(){var e=this._input[0];return this.yytext+=e,this.yyleng++,this.offset++,this.match+=e,this.matched+=e,e.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),e},`input`),unput:t(function(e){var t=e.length,n=e.split(/(?:\r\n?|\n)/g);this._input=e+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-t),this.offset-=t;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-t},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-t]),this.yyleng=this.yytext.length,this},`unput`),more:t(function(){return this._more=!0,this},`more`),reject:t(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError(`Lexical error on line `+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
4
- `+this.showPosition(),{text:``,token:null,line:this.yylineno});return this},`reject`),less:t(function(e){this.unput(this.match.slice(e))},`less`),pastInput:t(function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?`...`:``)+e.substr(-20).replace(/\n/g,``)},`pastInput`),upcomingInput:t(function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?`...`:``)).replace(/\n/g,``)},`upcomingInput`),showPosition:t(function(){var e=this.pastInput(),t=Array(e.length+1).join(`-`);return e+this.upcomingInput()+`
5
- `+t+`^`},`showPosition`),test_match:t(function(e,t){var n,r,i;if(this.options.backtrack_lexer&&(i={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(i.yylloc.range=this.yylloc.range.slice(0))),r=e[0].match(/(?:\r\n?|\n).*/g),r&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+e[0].length},this.yytext+=e[0],this.match+=e[0],this.matches=e,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(e[0].length),this.matched+=e[0],n=this.performAction.call(this,this.yy,this,t,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var a in i)this[a]=i[a];return!1}return!1},`test_match`),next:t(function(){if(this.done)return this.EOF;this._input||(this.done=!0);var e,t,n,r;this._more||(this.yytext=``,this.match=``);for(var i=this._currentRules(),a=0;a<i.length;a++)if(n=this._input.match(this.rules[i[a]]),n&&(!t||n[0].length>t[0].length)){if(t=n,r=a,this.options.backtrack_lexer){if(e=this.test_match(n,i[a]),e!==!1)return e;if(this._backtrack){t=!1;continue}else return!1}else if(!this.options.flex)break}return t?(e=this.test_match(t,i[r]),e===!1?!1:e):this._input===``?this.EOF:this.parseError(`Lexical error on line `+(this.yylineno+1)+`. Unrecognized text.
6
- `+this.showPosition(),{text:``,token:null,line:this.yylineno})},`next`),lex:t(function(){return this.next()||this.lex()},`lex`),begin:t(function(e){this.conditionStack.push(e)},`begin`),popState:t(function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},`popState`),_currentRules:t(function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},`_currentRules`),topState:t(function(e){return e=this.conditionStack.length-1-Math.abs(e||0),e>=0?this.conditionStack[e]:`INITIAL`},`topState`),pushState:t(function(e){this.begin(e)},`pushState`),stateStackSize:t(function(){return this.conditionStack.length},`stateStackSize`),options:{},performAction:t(function(e,t,n,r){switch(n){case 0:return e.getLogger().debug(`Found block-beta`),10;case 1:return e.getLogger().debug(`Found id-block`),29;case 2:return e.getLogger().debug(`Found block`),10;case 3:e.getLogger().debug(`.`,t.yytext);break;case 4:e.getLogger().debug(`_`,t.yytext);break;case 5:return 5;case 6:return t.yytext=-1,28;case 7:return t.yytext=t.yytext.replace(/columns\s+/,``),e.getLogger().debug(`COLUMNS (LEX)`,t.yytext),28;case 8:this.pushState(`md_string`);break;case 9:return`MD_STR`;case 10:this.popState();break;case 11:this.pushState(`string`);break;case 12:e.getLogger().debug(`LEX: POPPING STR:`,t.yytext),this.popState();break;case 13:return e.getLogger().debug(`LEX: STR end:`,t.yytext),`STR`;case 14:return t.yytext=t.yytext.replace(/space\:/,``),e.getLogger().debug(`SPACE NUM (LEX)`,t.yytext),21;case 15:return t.yytext=`1`,e.getLogger().debug(`COLUMNS (LEX)`,t.yytext),21;case 16:return 42;case 17:return`LINKSTYLE`;case 18:return`INTERPOLATE`;case 19:return this.pushState(`CLASSDEF`),39;case 20:return this.popState(),this.pushState(`CLASSDEFID`),`DEFAULT_CLASSDEF_ID`;case 21:return this.popState(),this.pushState(`CLASSDEFID`),40;case 22:return this.popState(),41;case 23:return this.pushState(`CLASS`),43;case 24:return this.popState(),this.pushState(`CLASS_STYLE`),44;case 25:return this.popState(),45;case 26:return this.pushState(`STYLE_STMNT`),46;case 27:return this.popState(),this.pushState(`STYLE_DEFINITION`),47;case 28:return this.popState(),48;case 29:return this.pushState(`acc_title`),`acc_title`;case 30:return this.popState(),`acc_title_value`;case 31:return this.pushState(`acc_descr`),`acc_descr`;case 32:return this.popState(),`acc_descr_value`;case 33:this.pushState(`acc_descr_multiline`);break;case 34:this.popState();break;case 35:return`acc_descr_multiline_value`;case 36:return 30;case 37:return this.popState(),e.getLogger().debug(`Lex: ((`),`NODE_DEND`;case 38:return this.popState(),e.getLogger().debug(`Lex: ((`),`NODE_DEND`;case 39:return this.popState(),e.getLogger().debug(`Lex: ))`),`NODE_DEND`;case 40:return this.popState(),e.getLogger().debug(`Lex: ((`),`NODE_DEND`;case 41:return this.popState(),e.getLogger().debug(`Lex: ((`),`NODE_DEND`;case 42:return this.popState(),e.getLogger().debug(`Lex: (-`),`NODE_DEND`;case 43:return this.popState(),e.getLogger().debug(`Lex: -)`),`NODE_DEND`;case 44:return this.popState(),e.getLogger().debug(`Lex: ((`),`NODE_DEND`;case 45:return this.popState(),e.getLogger().debug(`Lex: ]]`),`NODE_DEND`;case 46:return this.popState(),e.getLogger().debug(`Lex: (`),`NODE_DEND`;case 47:return this.popState(),e.getLogger().debug(`Lex: ])`),`NODE_DEND`;case 48:return this.popState(),e.getLogger().debug(`Lex: /]`),`NODE_DEND`;case 49:return this.popState(),e.getLogger().debug(`Lex: /]`),`NODE_DEND`;case 50:return this.popState(),e.getLogger().debug(`Lex: )]`),`NODE_DEND`;case 51:return this.popState(),e.getLogger().debug(`Lex: )`),`NODE_DEND`;case 52:return this.popState(),e.getLogger().debug(`Lex: ]>`),`NODE_DEND`;case 53:return this.popState(),e.getLogger().debug(`Lex: ]`),`NODE_DEND`;case 54:return e.getLogger().debug(`Lexa: -)`),this.pushState(`NODE`),35;case 55:return e.getLogger().debug(`Lexa: (-`),this.pushState(`NODE`),35;case 56:return e.getLogger().debug(`Lexa: ))`),this.pushState(`NODE`),35;case 57:return e.getLogger().debug(`Lexa: )`),this.pushState(`NODE`),35;case 58:return e.getLogger().debug(`Lex: (((`),this.pushState(`NODE`),35;case 59:return e.getLogger().debug(`Lexa: )`),this.pushState(`NODE`),35;case 60:return e.getLogger().debug(`Lexa: )`),this.pushState(`NODE`),35;case 61:return e.getLogger().debug(`Lexa: )`),this.pushState(`NODE`),35;case 62:return e.getLogger().debug(`Lexc: >`),this.pushState(`NODE`),35;case 63:return e.getLogger().debug(`Lexa: ([`),this.pushState(`NODE`),35;case 64:return e.getLogger().debug(`Lexa: )`),this.pushState(`NODE`),35;case 65:return this.pushState(`NODE`),35;case 66:return this.pushState(`NODE`),35;case 67:return this.pushState(`NODE`),35;case 68:return this.pushState(`NODE`),35;case 69:return this.pushState(`NODE`),35;case 70:return this.pushState(`NODE`),35;case 71:return this.pushState(`NODE`),35;case 72:return e.getLogger().debug(`Lexa: [`),this.pushState(`NODE`),35;case 73:return this.pushState(`BLOCK_ARROW`),e.getLogger().debug(`LEX ARR START`),37;case 74:return e.getLogger().debug(`Lex: NODE_ID`,t.yytext),31;case 75:return e.getLogger().debug(`Lex: EOF`,t.yytext),8;case 76:this.pushState(`md_string`);break;case 77:this.pushState(`md_string`);break;case 78:return`NODE_DESCR`;case 79:this.popState();break;case 80:e.getLogger().debug(`Lex: Starting string`),this.pushState(`string`);break;case 81:e.getLogger().debug(`LEX ARR: Starting string`),this.pushState(`string`);break;case 82:return e.getLogger().debug(`LEX: NODE_DESCR:`,t.yytext),`NODE_DESCR`;case 83:e.getLogger().debug(`LEX POPPING`),this.popState();break;case 84:e.getLogger().debug(`Lex: =>BAE`),this.pushState(`ARROW_DIR`);break;case 85:return t.yytext=t.yytext.replace(/^,\s*/,``),e.getLogger().debug(`Lex (right): dir:`,t.yytext),`DIR`;case 86:return t.yytext=t.yytext.replace(/^,\s*/,``),e.getLogger().debug(`Lex (left):`,t.yytext),`DIR`;case 87:return t.yytext=t.yytext.replace(/^,\s*/,``),e.getLogger().debug(`Lex (x):`,t.yytext),`DIR`;case 88:return t.yytext=t.yytext.replace(/^,\s*/,``),e.getLogger().debug(`Lex (y):`,t.yytext),`DIR`;case 89:return t.yytext=t.yytext.replace(/^,\s*/,``),e.getLogger().debug(`Lex (up):`,t.yytext),`DIR`;case 90:return t.yytext=t.yytext.replace(/^,\s*/,``),e.getLogger().debug(`Lex (down):`,t.yytext),`DIR`;case 91:return t.yytext=`]>`,e.getLogger().debug(`Lex (ARROW_DIR end):`,t.yytext),this.popState(),this.popState(),`BLOCK_ARROW_END`;case 92:return e.getLogger().debug(`Lex: LINK`,`#`+t.yytext+`#`),15;case 93:return e.getLogger().debug(`Lex: LINK`,t.yytext),15;case 94:return e.getLogger().debug(`Lex: LINK`,t.yytext),15;case 95:return e.getLogger().debug(`Lex: LINK`,t.yytext),15;case 96:return e.getLogger().debug(`Lex: START_LINK`,t.yytext),this.pushState(`LLABEL`),16;case 97:return e.getLogger().debug(`Lex: START_LINK`,t.yytext),this.pushState(`LLABEL`),16;case 98:return e.getLogger().debug(`Lex: START_LINK`,t.yytext),this.pushState(`LLABEL`),16;case 99:this.pushState(`md_string`);break;case 100:return e.getLogger().debug(`Lex: Starting string`),this.pushState(`string`),`LINK_LABEL`;case 101:return this.popState(),e.getLogger().debug(`Lex: LINK`,`#`+t.yytext+`#`),15;case 102:return this.popState(),e.getLogger().debug(`Lex: LINK`,t.yytext),15;case 103:return this.popState(),e.getLogger().debug(`Lex: LINK`,t.yytext),15;case 104:return e.getLogger().debug(`Lex: COLON`,t.yytext),t.yytext=t.yytext.slice(1),27}},`anonymous`),rules:[/^(?:block-beta\b)/,/^(?:block:)/,/^(?:block\b)/,/^(?:[\s]+)/,/^(?:[\n]+)/,/^(?:((\u000D\u000A)|(\u000A)))/,/^(?:columns\s+auto\b)/,/^(?:columns\s+[\d]+)/,/^(?:["][`])/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["])/,/^(?:["])/,/^(?:[^"]*)/,/^(?:space[:]\d+)/,/^(?:space\b)/,/^(?:default\b)/,/^(?:linkStyle\b)/,/^(?:interpolate\b)/,/^(?:classDef\s+)/,/^(?:DEFAULT\s+)/,/^(?:\w+\s+)/,/^(?:[^\n]*)/,/^(?:class\s+)/,/^(?:(\w+)+((,\s*\w+)*))/,/^(?:[^\n]*)/,/^(?:style\s+)/,/^(?:(\w+)+((,\s*\w+)*))/,/^(?:[^\n]*)/,/^(?:accTitle\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*:\s*)/,/^(?:(?!\n||)*[^\n]*)/,/^(?:accDescr\s*\{\s*)/,/^(?:[\}])/,/^(?:[^\}]*)/,/^(?:end\b\s*)/,/^(?:\(\(\()/,/^(?:\)\)\))/,/^(?:[\)]\))/,/^(?:\}\})/,/^(?:\})/,/^(?:\(-)/,/^(?:-\))/,/^(?:\(\()/,/^(?:\]\])/,/^(?:\()/,/^(?:\]\))/,/^(?:\\\])/,/^(?:\/\])/,/^(?:\)\])/,/^(?:[\)])/,/^(?:\]>)/,/^(?:[\]])/,/^(?:-\))/,/^(?:\(-)/,/^(?:\)\))/,/^(?:\))/,/^(?:\(\(\()/,/^(?:\(\()/,/^(?:\{\{)/,/^(?:\{)/,/^(?:>)/,/^(?:\(\[)/,/^(?:\()/,/^(?:\[\[)/,/^(?:\[\|)/,/^(?:\[\()/,/^(?:\)\)\))/,/^(?:\[\\)/,/^(?:\[\/)/,/^(?:\[\\)/,/^(?:\[)/,/^(?:<\[)/,/^(?:[^\(\[\n\-\)\{\}\s\<\>:]+)/,/^(?:$)/,/^(?:["][`])/,/^(?:["][`])/,/^(?:[^`"]+)/,/^(?:[`]["])/,/^(?:["])/,/^(?:["])/,/^(?:[^"]+)/,/^(?:["])/,/^(?:\]>\s*\()/,/^(?:,?\s*right\s*)/,/^(?:,?\s*left\s*)/,/^(?:,?\s*x\s*)/,/^(?:,?\s*y\s*)/,/^(?:,?\s*up\s*)/,/^(?:,?\s*down\s*)/,/^(?:\)\s*)/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?:\s*~~[\~]+\s*)/,/^(?:\s*[xo<]?--\s*)/,/^(?:\s*[xo<]?==\s*)/,/^(?:\s*[xo<]?-\.\s*)/,/^(?:["][`])/,/^(?:["])/,/^(?:\s*[xo<]?--+[-xo>]\s*)/,/^(?:\s*[xo<]?==+[=xo>]\s*)/,/^(?:\s*[xo<]?-?\.+-[xo>]?\s*)/,/^(?::\d+)/],conditions:{STYLE_DEFINITION:{rules:[28],inclusive:!1},STYLE_STMNT:{rules:[27],inclusive:!1},CLASSDEFID:{rules:[22],inclusive:!1},CLASSDEF:{rules:[20,21],inclusive:!1},CLASS_STYLE:{rules:[25],inclusive:!1},CLASS:{rules:[24],inclusive:!1},LLABEL:{rules:[99,100,101,102,103],inclusive:!1},ARROW_DIR:{rules:[85,86,87,88,89,90,91],inclusive:!1},BLOCK_ARROW:{rules:[76,81,84],inclusive:!1},NODE:{rules:[37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,77,80],inclusive:!1},md_string:{rules:[9,10,78,79],inclusive:!1},space:{rules:[],inclusive:!1},string:{rules:[12,13,82,83],inclusive:!1},acc_descr_multiline:{rules:[34,35],inclusive:!1},acc_descr:{rules:[32],inclusive:!1},acc_title:{rules:[30],inclusive:!1},INITIAL:{rules:[0,1,2,3,4,5,6,7,8,11,14,15,16,17,18,19,23,26,29,31,33,36,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,92,93,94,95,96,97,98,104],inclusive:!0}}}})();function v(){this.yy={}}return t(v,`Parser`),v.prototype=_,_.Parser=v,new v})();E.parser=E;var D=E,O=new Map,k=[],A=new Map,j=`color`,M=`fill`,ee=`bgFill`,te=`,`,ne=o(),N=new Map,P=``,re=t(e=>l.sanitizeText(e,ne),`sanitizeText`),ie=t(function(e,t=``){let n=N.get(e);n||(n={id:e,styles:[],textStyles:[]},N.set(e,n)),t?.split(te).forEach(e=>{let t=e.replace(/([^;]*);/,`$1`).trim();if(RegExp(j).exec(e)){let e=t.replace(M,ee).replace(j,M);n.textStyles.push(e)}n.styles.push(t)})},`addStyleClass`),ae=t(function(e,t=``){let n=O.get(e);t!=null&&(n.styles=t.split(te))},`addStyle2Node`),oe=t(function(e,t){e.split(`,`).forEach(function(e){let n=O.get(e);if(n===void 0){let t=e.trim();n={id:t,type:`na`,children:[]},O.set(t,n)}n.classes||=[],n.classes.push(t)})},`setCssClass`),se=t((t,n)=>{let r=t.flat(),i=[],a=r.find(e=>e?.type===`column-setting`)?.columns??-1;for(let t of r){if(typeof a==`number`&&a>0&&t.type!==`column-setting`&&typeof t.widthInColumns==`number`&&t.widthInColumns>a&&e.warn(`Block ${t.id} width ${t.widthInColumns} exceeds configured column width ${a}`),t.label&&=re(t.label),t.type===`classDef`){ie(t.id,t.css);continue}if(t.type===`applyClass`){oe(t.id,t?.styleClass??``);continue}if(t.type===`applyStyles`){t?.stylesStr&&ae(t.id,t?.stylesStr);continue}if(t.type===`column-setting`)n.columns=t.columns??-1;else if(t.type===`edge`){let e=(A.get(t.id)??0)+1;A.set(t.id,e),t.id=e+`-`+t.id,k.push(t)}else{t.label||(t.type===`composite`?t.label=``:t.label=t.id);let e=O.get(t.id);if(e===void 0?O.set(t.id,t):(t.type!==`na`&&(e.type=t.type),t.label!==t.id&&(e.label=t.label)),t.children&&se(t.children,t),t.type===`space`){let e=t.width??1;for(let n=0;n<e;n++){let e=T(t);e.id=e.id+`-`+n,O.set(e.id,e),i.push(e)}}else e===void 0&&i.push(t)}}n.children=i},`populateBlockDatabase`),ce=[],F={id:`root`,type:`composite`,children:[],columns:-1},le=t(()=>{e.debug(`Clear called`),a(),F={id:`root`,type:`composite`,children:[],columns:-1},O=new Map([[`root`,F]]),ce=[],N=new Map,k=[],A=new Map,P=``},`clear`);function ue(t){switch(e.debug(`typeStr2Type`,t),t){case`[]`:return`square`;case`()`:return e.debug(`we have a round`),`round`;case`(())`:return`circle`;case`>]`:return`rect_left_inv_arrow`;case`{}`:return`diamond`;case`{{}}`:return`hexagon`;case`([])`:return`stadium`;case`[[]]`:return`subroutine`;case`[()]`:return`cylinder`;case`((()))`:return`doublecircle`;case`[//]`:return`lean_right`;case`[\\\\]`:return`lean_left`;case`[/\\]`:return`trapezoid`;case`[\\/]`:return`inv_trapezoid`;case`<[]>`:return`block_arrow`;default:return`na`}}t(ue,`typeStr2Type`);function de(t){switch(e.debug(`typeStr2Type`,t),t){case`==`:return`thick`;default:return`normal`}}t(de,`edgeTypeStr2Type`);function fe(e){switch(e.replace(/^[\s-]+|[\s-]+$/g,``)){case`x`:return`arrow_cross`;case`o`:return`arrow_circle`;case`>`:return`arrow_point`;default:return``}}t(fe,`edgeStrToEdgeData`);var pe=0,me={getConfig:t(()=>d().block,`getConfig`),typeStr2Type:ue,edgeTypeStr2Type:de,edgeStrToEdgeData:fe,getLogger:t(()=>e,`getLogger`),getBlocksFlat:t(()=>[...O.values()],`getBlocksFlat`),getBlocks:t(()=>ce||[],`getBlocks`),getEdges:t(()=>k,`getEdges`),setHierarchy:t(e=>{F.children=e,se(e,F),ce=F.children},`setHierarchy`),getBlock:t(e=>O.get(e),`getBlock`),setBlock:t(e=>{O.set(e.id,e)},`setBlock`),getColumns:t(e=>{let t=O.get(e);return t?t.columns?t.columns:t.children?t.children.length:-1:-1},`getColumns`),getClasses:t(function(){return N},`getClasses`),clear:le,generateId:t(()=>(pe++,`id-`+Math.random().toString(36).substr(2,12)+`-`+pe),`generateId`),setDiagramId:t(e=>{P=e},`setDiagramId`),getDiagramId:t(()=>P,`getDiagramId`)},he=t((e,t)=>{let n=f;return c(n(e,`r`),n(e,`g`),n(e,`b`),t)},`fade`),ge=t(e=>`.label {
7
- font-family: ${e.fontFamily};
8
- color: ${e.nodeTextColor||e.textColor};
9
- }
10
- .cluster-label text {
11
- fill: ${e.titleColor};
12
- }
13
- .cluster-label span,p {
14
- color: ${e.titleColor};
15
- }
16
-
17
-
18
-
19
- .label text,span,p {
20
- fill: ${e.nodeTextColor||e.textColor};
21
- color: ${e.nodeTextColor||e.textColor};
22
- }
23
-
24
- .node rect,
25
- .node circle,
26
- .node ellipse,
27
- .node polygon,
28
- .node path {
29
- fill: ${e.mainBkg};
30
- stroke: ${e.nodeBorder};
31
- stroke-width: 1px;
32
- }
33
- .flowchart-label text {
34
- text-anchor: middle;
35
- }
36
- // .flowchart-label .text-outer-tspan {
37
- // text-anchor: middle;
38
- // }
39
- // .flowchart-label .text-inner-tspan {
40
- // text-anchor: start;
41
- // }
42
-
43
- .node .label {
44
- text-align: center;
45
- }
46
- .node.clickable {
47
- cursor: pointer;
48
- }
49
-
50
- .arrowheadPath {
51
- fill: ${e.arrowheadColor};
52
- }
53
-
54
- .edgePath .path {
55
- stroke: ${e.lineColor};
56
- stroke-width: 2.0px;
57
- }
58
-
59
- .flowchart-link {
60
- stroke: ${e.lineColor};
61
- fill: none;
62
- }
63
-
64
- .edgeLabel {
65
- background-color: ${e.edgeLabelBackground};
66
- /*
67
- * This is for backward compatibility with existing code that didn't
68
- * add a \`<p>\` around edge labels.
69
- *
70
- * TODO: We should probably remove this in a future release.
71
- */
72
- p {
73
- margin: 0;
74
- padding: 0;
75
- display: inline;
76
- }
77
- rect {
78
- opacity: 0.5;
79
- background-color: ${e.edgeLabelBackground};
80
- fill: ${e.edgeLabelBackground};
81
- }
82
- text-align: center;
83
- }
84
-
85
- /* For html labels only */
86
- .labelBkg {
87
- background-color: ${e.edgeLabelBackground};
88
- }
89
-
90
- .node .cluster {
91
- // fill: ${he(e.mainBkg,.5)};
92
- fill: ${he(e.clusterBkg,.5)};
93
- stroke: ${he(e.clusterBorder,.2)};
94
- box-shadow: rgba(50, 50, 93, 0.25) 0px 13px 27px -5px, rgba(0, 0, 0, 0.3) 0px 8px 16px -8px;
95
- stroke-width: 1px;
96
- }
97
-
98
- .cluster text {
99
- fill: ${e.titleColor};
100
- }
101
-
102
- .cluster span,p {
103
- color: ${e.titleColor};
104
- }
105
- /* .cluster div {
106
- color: ${e.titleColor};
107
- } */
108
-
109
- div.mermaidTooltip {
110
- position: absolute;
111
- text-align: center;
112
- max-width: 200px;
113
- padding: 2px;
114
- font-family: ${e.fontFamily};
115
- font-size: 12px;
116
- background: ${e.tertiaryColor};
117
- border: 1px solid ${e.border2};
118
- border-radius: 2px;
119
- pointer-events: none;
120
- z-index: 100;
121
- }
122
-
123
- .flowchartTitleText {
124
- text-anchor: middle;
125
- font-size: 18px;
126
- fill: ${e.textColor};
127
- }
128
- ${y()}
129
- `,`getStyles`),_e=t((e,t,n,r)=>{t.forEach(t=>{ve[t](e,n,r)})},`insertMarkers`),ve={extension:t((t,n,r)=>{e.trace(`Making markers for `,r),t.append(`defs`).append(`marker`).attr(`id`,r+`_`+n+`-extensionStart`).attr(`class`,`marker extension `+n).attr(`refX`,18).attr(`refY`,7).attr(`markerWidth`,190).attr(`markerHeight`,240).attr(`orient`,`auto`).append(`path`).attr(`d`,`M 1,7 L18,13 V 1 Z`),t.append(`defs`).append(`marker`).attr(`id`,r+`_`+n+`-extensionEnd`).attr(`class`,`marker extension `+n).attr(`refX`,1).attr(`refY`,7).attr(`markerWidth`,20).attr(`markerHeight`,28).attr(`orient`,`auto`).append(`path`).attr(`d`,`M 1,1 V 13 L18,7 Z`)},`extension`),composition:t((e,t,n)=>{e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-compositionStart`).attr(`class`,`marker composition `+t).attr(`refX`,18).attr(`refY`,7).attr(`markerWidth`,190).attr(`markerHeight`,240).attr(`orient`,`auto`).append(`path`).attr(`d`,`M 18,7 L9,13 L1,7 L9,1 Z`),e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-compositionEnd`).attr(`class`,`marker composition `+t).attr(`refX`,1).attr(`refY`,7).attr(`markerWidth`,20).attr(`markerHeight`,28).attr(`orient`,`auto`).append(`path`).attr(`d`,`M 18,7 L9,13 L1,7 L9,1 Z`)},`composition`),aggregation:t((e,t,n)=>{e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-aggregationStart`).attr(`class`,`marker aggregation `+t).attr(`refX`,18).attr(`refY`,7).attr(`markerWidth`,190).attr(`markerHeight`,240).attr(`orient`,`auto`).append(`path`).attr(`d`,`M 18,7 L9,13 L1,7 L9,1 Z`),e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-aggregationEnd`).attr(`class`,`marker aggregation `+t).attr(`refX`,1).attr(`refY`,7).attr(`markerWidth`,20).attr(`markerHeight`,28).attr(`orient`,`auto`).append(`path`).attr(`d`,`M 18,7 L9,13 L1,7 L9,1 Z`)},`aggregation`),dependency:t((e,t,n)=>{e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-dependencyStart`).attr(`class`,`marker dependency `+t).attr(`refX`,6).attr(`refY`,7).attr(`markerWidth`,190).attr(`markerHeight`,240).attr(`orient`,`auto`).append(`path`).attr(`d`,`M 5,7 L9,13 L1,7 L9,1 Z`),e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-dependencyEnd`).attr(`class`,`marker dependency `+t).attr(`refX`,13).attr(`refY`,7).attr(`markerWidth`,20).attr(`markerHeight`,28).attr(`orient`,`auto`).append(`path`).attr(`d`,`M 18,7 L9,13 L14,7 L9,1 Z`)},`dependency`),lollipop:t((e,t,n)=>{e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-lollipopStart`).attr(`class`,`marker lollipop `+t).attr(`refX`,13).attr(`refY`,7).attr(`markerWidth`,190).attr(`markerHeight`,240).attr(`orient`,`auto`).append(`circle`).attr(`stroke`,`black`).attr(`fill`,`transparent`).attr(`cx`,7).attr(`cy`,7).attr(`r`,6),e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-lollipopEnd`).attr(`class`,`marker lollipop `+t).attr(`refX`,1).attr(`refY`,7).attr(`markerWidth`,190).attr(`markerHeight`,240).attr(`orient`,`auto`).append(`circle`).attr(`stroke`,`black`).attr(`fill`,`transparent`).attr(`cx`,7).attr(`cy`,7).attr(`r`,6)},`lollipop`),point:t((e,t,n)=>{e.append(`marker`).attr(`id`,n+`_`+t+`-pointEnd`).attr(`class`,`marker `+t).attr(`viewBox`,`0 0 10 10`).attr(`refX`,6).attr(`refY`,5).attr(`markerUnits`,`userSpaceOnUse`).attr(`markerWidth`,12).attr(`markerHeight`,12).attr(`orient`,`auto`).append(`path`).attr(`d`,`M 0 0 L 10 5 L 0 10 z`).attr(`class`,`arrowMarkerPath`).style(`stroke-width`,1).style(`stroke-dasharray`,`1,0`),e.append(`marker`).attr(`id`,n+`_`+t+`-pointStart`).attr(`class`,`marker `+t).attr(`viewBox`,`0 0 10 10`).attr(`refX`,4.5).attr(`refY`,5).attr(`markerUnits`,`userSpaceOnUse`).attr(`markerWidth`,12).attr(`markerHeight`,12).attr(`orient`,`auto`).append(`path`).attr(`d`,`M 0 5 L 10 10 L 10 0 z`).attr(`class`,`arrowMarkerPath`).style(`stroke-width`,1).style(`stroke-dasharray`,`1,0`)},`point`),circle:t((e,t,n)=>{e.append(`marker`).attr(`id`,n+`_`+t+`-circleEnd`).attr(`class`,`marker `+t).attr(`viewBox`,`0 0 10 10`).attr(`refX`,11).attr(`refY`,5).attr(`markerUnits`,`userSpaceOnUse`).attr(`markerWidth`,11).attr(`markerHeight`,11).attr(`orient`,`auto`).append(`circle`).attr(`cx`,`5`).attr(`cy`,`5`).attr(`r`,`5`).attr(`class`,`arrowMarkerPath`).style(`stroke-width`,1).style(`stroke-dasharray`,`1,0`),e.append(`marker`).attr(`id`,n+`_`+t+`-circleStart`).attr(`class`,`marker `+t).attr(`viewBox`,`0 0 10 10`).attr(`refX`,-1).attr(`refY`,5).attr(`markerUnits`,`userSpaceOnUse`).attr(`markerWidth`,11).attr(`markerHeight`,11).attr(`orient`,`auto`).append(`circle`).attr(`cx`,`5`).attr(`cy`,`5`).attr(`r`,`5`).attr(`class`,`arrowMarkerPath`).style(`stroke-width`,1).style(`stroke-dasharray`,`1,0`)},`circle`),cross:t((e,t,n)=>{e.append(`marker`).attr(`id`,n+`_`+t+`-crossEnd`).attr(`class`,`marker cross `+t).attr(`viewBox`,`0 0 11 11`).attr(`refX`,12).attr(`refY`,5.2).attr(`markerUnits`,`userSpaceOnUse`).attr(`markerWidth`,11).attr(`markerHeight`,11).attr(`orient`,`auto`).append(`path`).attr(`d`,`M 1,1 l 9,9 M 10,1 l -9,9`).attr(`class`,`arrowMarkerPath`).style(`stroke-width`,2).style(`stroke-dasharray`,`1,0`),e.append(`marker`).attr(`id`,n+`_`+t+`-crossStart`).attr(`class`,`marker cross `+t).attr(`viewBox`,`0 0 11 11`).attr(`refX`,-1).attr(`refY`,5.2).attr(`markerUnits`,`userSpaceOnUse`).attr(`markerWidth`,11).attr(`markerHeight`,11).attr(`orient`,`auto`).append(`path`).attr(`d`,`M 1,1 l 9,9 M 10,1 l -9,9`).attr(`class`,`arrowMarkerPath`).style(`stroke-width`,2).style(`stroke-dasharray`,`1,0`)},`cross`),barb:t((e,t,n)=>{e.append(`defs`).append(`marker`).attr(`id`,n+`_`+t+`-barbEnd`).attr(`refX`,19).attr(`refY`,7).attr(`markerWidth`,20).attr(`markerHeight`,14).attr(`markerUnits`,`strokeWidth`).attr(`orient`,`auto`).append(`path`).attr(`d`,`M 19,7 L9,13 L14,7 L9,1 Z`)},`barb`)},ye=_e,I=o()?.block?.padding??8;function L(e,t){if(e===0||!Number.isInteger(e))throw Error(`Columns must be an integer !== 0.`);if(t<0||!Number.isInteger(t))throw Error(`Position must be a non-negative integer.`+t);return e<0?{px:t,py:0}:e===1?{px:0,py:t}:{px:t%e,py:Math.floor(t/e)}}t(L,`calculateBlockPosition`);var be=t(t=>{let n=0,r=0;for(let i of t.children){let{width:t,height:a,x:o,y:s}=i.size??{width:0,height:0,x:0,y:0};e.debug(`getMaxChildSize abc95 child:`,i.id,`width:`,t,`height:`,a,`x:`,o,`y:`,s,i.type),i.type!==`space`&&(t>n&&(n=t/(i.widthInColumns??1)),a>r&&(r=a))}return{width:n,height:r}},`getMaxChildSize`);function R(t,n,r=0,i=0){e.debug(`setBlockSizes abc95 (start)`,t.id,t?.size?.x,`block width =`,t?.size,`siblingWidth`,r),t?.size?.width||(t.size={width:r,height:i,x:0,y:0});let a=0,o=0;if(t.children?.length>0){for(let e of t.children)R(e,n);let s=be(t);a=s.width,o=s.height,e.debug(`setBlockSizes abc95 maxWidth of`,t.id,`:s children is `,a,o);for(let n of t.children)n.size&&(e.debug(`abc95 Setting size of children of ${t.id} id=${n.id} ${a} ${o} ${JSON.stringify(n.size)}`),n.size.width=a*(n.widthInColumns??1)+I*((n.widthInColumns??1)-1),n.size.height=o,n.size.x=0,n.size.y=0,e.debug(`abc95 updating size of ${t.id} children child:${n.id} maxWidth:${a} maxHeight:${o}`));for(let e of t.children)R(e,n,a,o);let c=t.columns??-1,l=0;for(let e of t.children)l+=e.widthInColumns??1;let u=t.children.length;c>0&&c<l&&(u=c);let d=Math.ceil(l/u),f=u*(a+I)+I,p=d*(o+I)+I;if(f<r){e.debug(`Detected to small sibling: abc95 ${t.id} siblingWidth ${r} siblingHeight ${i} width ${f}`),f=r,p=i;let n=(r-u*I-I)/u,s=(i-d*I-I)/d;e.debug(`Size indata abc88`,t.id,`childWidth`,n,`maxWidth`,a),e.debug(`Size indata abc88`,t.id,`childHeight`,s,`maxHeight`,o),e.debug(`Size indata abc88 xSize`,u,`padding`,I);for(let e of t.children)e.size&&(e.size.width=n,e.size.height=s,e.size.x=0,e.size.y=0)}if(e.debug(`abc95 (finale calc) ${t.id} xSize ${u} ySize ${d} columns ${c}${t.children.length} width=${Math.max(f,t.size?.width||0)}`),f<(t?.size?.width||0)){f=t?.size?.width||0;let n=c>0?Math.min(t.children.length,c):t.children.length;if(n>0){let r=(f-n*I-I)/n;e.debug(`abc95 (growing to fit) width`,t.id,f,t.size?.width,r);for(let e of t.children)e.size&&(e.size.width=r)}}t.size={width:f,height:p,x:0,y:0}}e.debug(`setBlockSizes abc94 (done)`,t.id,t?.size?.x,t?.size?.width,t?.size?.y,t?.size?.height)}t(R,`setBlockSizes`);function z(t,n){e.debug(`abc85 layout blocks (=>layoutBlocks) ${t.id} x: ${t?.size?.x} y: ${t?.size?.y} width: ${t?.size?.width}`);let r=t.columns??-1;if(e.debug(`layoutBlocks columns abc95`,t.id,`=>`,r,t),t.children&&t.children.length>0){let i=t?.children[0]?.size?.width??0,a=t.children.length*i+(t.children.length-1)*I;e.debug(`widthOfChildren 88`,a,`posX`);let o=new Map;{let e=0;for(let n of t.children){if(!n.size)continue;let{py:t}=L(r,e),i=o.get(t)??0;n.size.height>i&&o.set(t,n.size.height);let a=n?.widthInColumns??1;r>0&&(a=Math.min(a,r-e%r)),e+=a}}let s=new Map;{let e=0,t=[...o.keys()].sort((e,t)=>e-t);for(let n of t)s.set(n,e),e+=(o.get(n)??0)+I}let c=0;e.debug(`abc91 block?.size?.x`,t.id,t?.size?.x);let l=t?.size?.x?t?.size?.x+(-t?.size?.width/2||0):-I,u=0;for(let i of t.children){let a=t;if(!i.size)continue;let{width:d,height:f}=i.size,{px:p,py:m}=L(r,c);if(m!=u&&(u=m,l=t?.size?.x?t?.size?.x+(-t?.size?.width/2||0):-I,e.debug(`New row in layout for block`,t.id,` and child `,i.id,u)),e.debug(`abc89 layout blocks (child) id: ${i.id} Pos: ${c} (px, py) ${p},${m} (${a?.size?.x},${a?.size?.y}) parent: ${a.id} width: ${d}${I}`),a.size){let t=d/2;i.size.x=l+I+t,e.debug(`abc91 layout blocks (calc) px, pyid:${i.id} startingPos=X${l} new startingPosX${i.size.x} ${t} padding=${I} width=${d} halfWidth=${t} => x:${i.size.x} y:${i.size.y} ${i.widthInColumns} (width * (child?.w || 1)) / 2 ${d*(i?.widthInColumns??1)/2}`),l=i.size.x+t;let n=s.get(m)??0,r=o.get(m)??f;i.size.y=a.size.y-a.size.height/2+n+r/2+I,e.debug(`abc88 layout blocks (calc) px, pyid:${i.id}startingPosX${l}${I}${t}=>x:${i.size.x}y:${i.size.y}${i.widthInColumns}(width * (child?.w || 1)) / 2${d*(i?.widthInColumns??1)/2}`)}i.children&&z(i,n);let h=i?.widthInColumns??1;r>0&&(h=Math.min(h,r-c%r)),c+=h,e.debug(`abc88 columnsPos`,i,c)}}e.debug(`layout blocks (<==layoutBlocks) ${t.id} x: ${t?.size?.x} y: ${t?.size?.y} width: ${t?.size?.width}`)}t(z,`layoutBlocks`);function B(e,{minX:t,minY:n,maxX:r,maxY:i}={minX:0,minY:0,maxX:0,maxY:0}){if(e.size&&e.id!==`root`){let{x:a,y:o,width:s,height:c}=e.size;a-s/2<t&&(t=a-s/2),o-c/2<n&&(n=o-c/2),a+s/2>r&&(r=a+s/2),o+c/2>i&&(i=o+c/2)}if(e.children)for(let a of e.children)({minX:t,minY:n,maxX:r,maxY:i}=B(a,{minX:t,minY:n,maxX:r,maxY:i}));return{minX:t,minY:n,maxX:r,maxY:i}}t(B,`findBounds`);function xe(t){let n=t.getBlock(`root`);if(!n)return;R(n,t,0,0),z(n,t),e.debug(`getBlocks`,JSON.stringify(n,null,2));let{minX:r,minY:i,maxX:a,maxY:o}=B(n),s=o-i;return{x:r,y:i,width:a-r,height:s}}t(xe,`layout`);var V=t(async(e,t,n,r=!1,i=!1)=>{let a=t||``;typeof a==`object`&&(a=a[0]);let s=o(),c=u(s);return await v(e,a,{style:n,isTitle:r,useHtmlLabels:c,markdown:!1,isNode:i,width:1/0},s)},`createLabel`),Se=t((e,t,n,r,i)=>{t.arrowTypeStart&&we(e,`start`,t.arrowTypeStart,n,r,i),t.arrowTypeEnd&&we(e,`end`,t.arrowTypeEnd,n,r,i)},`addEdgeMarkers`),Ce={arrow_cross:`cross`,arrow_point:`point`,arrow_barb:`barb`,arrow_circle:`circle`,aggregation:`aggregation`,extension:`extension`,composition:`composition`,dependency:`dependency`,lollipop:`lollipop`},we=t((t,n,r,i,a,o)=>{let s=Ce[r];if(!s){e.warn(`Unknown arrow type: ${r}`);return}let c=n===`start`?`Start`:`End`;t.attr(`marker-${n}`,`url(${i}#${a}_${o}-${s}${c})`)},`addEdgeMarker`),H={},U={},Te=t(async(e,t)=>{let r=o(),i=u(r),a=e.insert(`g`).attr(`class`,`edgeLabel`),s=a.insert(`g`).attr(`class`,`label`),c=t.labelType===`markdown`,l=await v(e,t.label,{style:t.labelStyle,useHtmlLabels:i,addSvgBackground:c,isNode:!1,markdown:c,width:c?void 0:1/0},r);s.node().appendChild(l);let d=l.getBBox(),f=d;if(i){let e=l.children[0],t=n(l);d=e.getBoundingClientRect(),f=d,t.attr(`width`,d.width),t.attr(`height`,d.height)}else{let e=n(l).select(`text`).node();e&&typeof e.getBBox==`function`&&(f=e.getBBox())}s.attr(`transform`,x(f,i)),H[t.id]=a,t.width=d.width,t.height=d.height;let p;if(t.startLabelLeft){let r=e.insert(`g`).attr(`class`,`edgeTerminals`),a=r.insert(`g`).attr(`class`,`inner`),o=await V(a,t.startLabelLeft,t.labelStyle);p=o;let s=o.getBBox();if(i){let e=o.children[0],t=n(o);s=e.getBoundingClientRect(),t.attr(`width`,s.width),t.attr(`height`,s.height)}a.attr(`transform`,x(s,i)),U[t.id]||(U[t.id]={}),U[t.id].startLeft=r,W(p,t.startLabelLeft)}if(t.startLabelRight){let r=e.insert(`g`).attr(`class`,`edgeTerminals`),a=r.insert(`g`).attr(`class`,`inner`),o=await V(r,t.startLabelRight,t.labelStyle);p=o,a.node().appendChild(o);let s=o.getBBox();if(i){let e=o.children[0],t=n(o);s=e.getBoundingClientRect(),t.attr(`width`,s.width),t.attr(`height`,s.height)}a.attr(`transform`,x(s,i)),U[t.id]||(U[t.id]={}),U[t.id].startRight=r,W(p,t.startLabelRight)}if(t.endLabelLeft){let r=e.insert(`g`).attr(`class`,`edgeTerminals`),a=r.insert(`g`).attr(`class`,`inner`),o=await V(a,t.endLabelLeft,t.labelStyle);p=o;let s=o.getBBox();if(i){let e=o.children[0],t=n(o);s=e.getBoundingClientRect(),t.attr(`width`,s.width),t.attr(`height`,s.height)}a.attr(`transform`,x(s,i)),r.node().appendChild(o),U[t.id]||(U[t.id]={}),U[t.id].endLeft=r,W(p,t.endLabelLeft)}if(t.endLabelRight){let r=e.insert(`g`).attr(`class`,`edgeTerminals`),a=r.insert(`g`).attr(`class`,`inner`),o=await V(a,t.endLabelRight,t.labelStyle);p=o;let s=o.getBBox();if(i){let e=o.children[0],t=n(o);s=e.getBoundingClientRect(),t.attr(`width`,s.width),t.attr(`height`,s.height)}a.attr(`transform`,x(s,i)),r.node().appendChild(o),U[t.id]||(U[t.id]={}),U[t.id].endRight=r,W(p,t.endLabelRight)}return l},`insertEdgeLabel`);function W(e,t){u(o())&&e&&(e.style.width=t.length*9+`px`,e.style.height=`12px`)}t(W,`setTerminalWidth`);var Ee=t((t,n)=>{e.debug(`Moving label abc88 `,t.id,t.label,H[t.id],n);let r=n.updatedPath?n.updatedPath:n.originalPath,{subGraphTitleTotalMargin:i}=S(o());if(t.label){let a=H[t.id],o=t.x,s=t.y;if(r){let i=h.calcLabelPosition(r);e.debug(`Moving label `+t.label+` from (`,o,`,`,s,`) to (`,i.x,`,`,i.y,`) abc88`),n.updatedPath&&(o=i.x,s=i.y)}a.attr(`transform`,`translate(${o}, ${s+i/2})`)}if(t.startLabelLeft){let e=U[t.id].startLeft,n=t.x,i=t.y;if(r){let e=h.calcTerminalLabelPosition(t.arrowTypeStart?10:0,`start_left`,r);n=e.x,i=e.y}e.attr(`transform`,`translate(${n}, ${i})`)}if(t.startLabelRight){let e=U[t.id].startRight,n=t.x,i=t.y;if(r){let e=h.calcTerminalLabelPosition(t.arrowTypeStart?10:0,`start_right`,r);n=e.x,i=e.y}e.attr(`transform`,`translate(${n}, ${i})`)}if(t.endLabelLeft){let e=U[t.id].endLeft,n=t.x,i=t.y;if(r){let e=h.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,`end_left`,r);n=e.x,i=e.y}e.attr(`transform`,`translate(${n}, ${i})`)}if(t.endLabelRight){let e=U[t.id].endRight,n=t.x,i=t.y;if(r){let e=h.calcTerminalLabelPosition(t.arrowTypeEnd?10:0,`end_right`,r);n=e.x,i=e.y}e.attr(`transform`,`translate(${n}, ${i})`)}},`positionEdgeLabel`),De=t((e,t)=>{let n=e.x,r=e.y,i=Math.abs(t.x-n),a=Math.abs(t.y-r),o=e.width/2,s=e.height/2;return i>=o||a>=s},`outsideNode`),Oe=t((t,n,r)=>{e.debug(`intersection calc abc89:
130
- outsidePoint: ${JSON.stringify(n)}
131
- insidePoint : ${JSON.stringify(r)}
132
- node : x:${t.x} y:${t.y} w:${t.width} h:${t.height}`);let i=t.x,a=t.y,o=Math.abs(i-r.x),s=t.width/2,c=r.x<n.x?s-o:s+o,l=t.height/2,u=Math.abs(n.y-r.y),d=Math.abs(n.x-r.x);if(Math.abs(a-n.y)*s>Math.abs(i-n.x)*l){let t=r.y<n.y?n.y-l-a:a-l-n.y;c=d*t/u;let i={x:r.x<n.x?r.x+c:r.x-d+c,y:r.y<n.y?r.y+u-t:r.y-u+t};return c===0&&(i.x=n.x,i.y=n.y),d===0&&(i.x=n.x),u===0&&(i.y=n.y),e.debug(`abc89 topp/bott calc, Q ${u}, q ${t}, R ${d}, r ${c}`,i),i}else{c=r.x<n.x?n.x-s-i:i-s-n.x;let t=u*c/d,a=r.x<n.x?r.x+d-c:r.x-d+c,o=r.y<n.y?r.y+t:r.y-t;return e.debug(`sides calc abc89, Q ${u}, q ${t}, R ${d}, r ${c}`,{_x:a,_y:o}),c===0&&(a=n.x,o=n.y),d===0&&(a=n.x),u===0&&(o=n.y),{x:a,y:o}}},`intersection`),ke=t((t,n)=>{e.debug(`abc88 cutPathAtIntersect`,t,n);let r=[],i=t[0],a=!1;return t.forEach(e=>{if(!De(n,e)&&!a){let t=Oe(n,i,e),o=!1;r.forEach(e=>{o||=e.x===t.x&&e.y===t.y}),r.some(e=>e.x===t.x&&e.y===t.y)||r.push(t),a=!0}else i=e,a||r.push(e)}),r},`cutPathAtIntersect`),Ae=t(function(t,n,i,a,s,c,l){let u=i.points;e.debug(`abc88 InsertEdge: edge=`,i,`e=`,n);let d=!1,f=c.node(n.v);var m=c.node(n.w);m?.intersect&&f?.intersect&&(u=u.slice(1,i.points.length-1),u.unshift(f.intersect(u[0])),u.push(m.intersect(u[u.length-1]))),i.toCluster&&(e.debug(`to cluster abc88`,a[i.toCluster]),u=ke(i.points,a[i.toCluster].node),d=!0),i.fromCluster&&(e.debug(`from cluster abc88`,a[i.fromCluster]),u=ke(u.reverse(),a[i.fromCluster].node).reverse(),d=!0);let h=u.filter(e=>!Number.isNaN(e.y)),g=p;i.curve&&(s===`graph`||s===`flowchart`)&&(g=i.curve);let{x:v,y}=b(i),x=_().x(v).y(y).curve(g),S;switch(i.thickness){case`normal`:S=`edge-thickness-normal`;break;case`thick`:S=`edge-thickness-thick`;break;case`invisible`:S=`edge-thickness-thick`;break;default:S=``}switch(i.pattern){case`solid`:S+=` edge-pattern-solid`;break;case`dotted`:S+=` edge-pattern-dotted`;break;case`dashed`:S+=` edge-pattern-dashed`;break}let C=t.append(`path`).attr(`d`,x(h)).attr(`id`,i.id).attr(`class`,` `+S+(i.classes?` `+i.classes:``)).attr(`style`,i.style),w=``;(o().flowchart.arrowMarkerAbsolute||o().state.arrowMarkerAbsolute)&&(w=r(!0)),Se(C,i,w,l,s);let T={};return d&&(T.updatedPath=u),T.originalPath=i.points,T},`insertEdge`),je=t(e=>{let t=new Set;for(let n of e)switch(n){case`x`:t.add(`right`),t.add(`left`);break;case`y`:t.add(`up`),t.add(`down`);break;default:t.add(n);break}return t},`expandAndDeduplicateDirections`),Me=t((e,t,n)=>{let r=je(e),i=t.height+2*n.padding,a=i/2,o=t.width+2*a+n.padding,s=n.padding/2;return r.has(`right`)&&r.has(`left`)&&r.has(`up`)&&r.has(`down`)?[{x:0,y:0},{x:a,y:0},{x:o/2,y:2*s},{x:o-a,y:0},{x:o,y:0},{x:o,y:-i/3},{x:o+2*s,y:-i/2},{x:o,y:-2*i/3},{x:o,y:-i},{x:o-a,y:-i},{x:o/2,y:-i-2*s},{x:a,y:-i},{x:0,y:-i},{x:0,y:-2*i/3},{x:-2*s,y:-i/2},{x:0,y:-i/3}]:r.has(`right`)&&r.has(`left`)&&r.has(`up`)?[{x:a,y:0},{x:o-a,y:0},{x:o,y:-i/2},{x:o-a,y:-i},{x:a,y:-i},{x:0,y:-i/2}]:r.has(`right`)&&r.has(`left`)&&r.has(`down`)?[{x:0,y:0},{x:a,y:-i},{x:o-a,y:-i},{x:o,y:0}]:r.has(`right`)&&r.has(`up`)&&r.has(`down`)?[{x:0,y:0},{x:o,y:-a},{x:o,y:-i+a},{x:0,y:-i}]:r.has(`left`)&&r.has(`up`)&&r.has(`down`)?[{x:o,y:0},{x:0,y:-a},{x:0,y:-i+a},{x:o,y:-i}]:r.has(`right`)&&r.has(`left`)?[{x:a,y:0},{x:a,y:-s},{x:o-a,y:-s},{x:o-a,y:0},{x:o,y:-i/2},{x:o-a,y:-i},{x:o-a,y:-i+s},{x:a,y:-i+s},{x:a,y:-i},{x:0,y:-i/2}]:r.has(`up`)&&r.has(`down`)?[{x:o/2,y:0},{x:0,y:-s},{x:a,y:-s},{x:a,y:-i+s},{x:0,y:-i+s},{x:o/2,y:-i},{x:o,y:-i+s},{x:o-a,y:-i+s},{x:o-a,y:-s},{x:o,y:-s}]:r.has(`right`)&&r.has(`up`)?[{x:0,y:0},{x:o,y:-a},{x:0,y:-i}]:r.has(`right`)&&r.has(`down`)?[{x:0,y:0},{x:o,y:0},{x:0,y:-i}]:r.has(`left`)&&r.has(`up`)?[{x:o,y:0},{x:0,y:-a},{x:o,y:-i}]:r.has(`left`)&&r.has(`down`)?[{x:o,y:0},{x:0,y:0},{x:o,y:-i}]:r.has(`right`)?[{x:a,y:-s},{x:a,y:-s},{x:o-a,y:-s},{x:o-a,y:0},{x:o,y:-i/2},{x:o-a,y:-i},{x:o-a,y:-i+s},{x:a,y:-i+s},{x:a,y:-i+s}]:r.has(`left`)?[{x:a,y:0},{x:a,y:-s},{x:o-a,y:-s},{x:o-a,y:-i+s},{x:a,y:-i+s},{x:a,y:-i},{x:0,y:-i/2}]:r.has(`up`)?[{x:a,y:-s},{x:a,y:-i+s},{x:0,y:-i+s},{x:o/2,y:-i},{x:o,y:-i+s},{x:o-a,y:-i+s},{x:o-a,y:-s}]:r.has(`down`)?[{x:o/2,y:0},{x:0,y:-s},{x:a,y:-s},{x:a,y:-i+s},{x:o-a,y:-i+s},{x:o-a,y:-s},{x:o,y:-s}]:[{x:0,y:0}]},`getArrowPoints`);function Ne(e,t){return e.intersect(t)}t(Ne,`intersectNode`);var Pe=Ne;function Fe(e,t,n,r){var i=e.x,a=e.y,o=i-r.x,s=a-r.y,c=Math.sqrt(t*t*s*s+n*n*o*o),l=Math.abs(t*n*o/c);r.x<i&&(l=-l);var u=Math.abs(t*n*s/c);return r.y<a&&(u=-u),{x:i+l,y:a+u}}t(Fe,`intersectEllipse`);var Ie=Fe;function Le(e,t,n){return Ie(e,t,t,n)}t(Le,`intersectCircle`);var Re=Le;function ze(e,t,n,r){var i=t.y-e.y,a,o=e.x-t.x,s,c=t.x*e.y-e.x*t.y,l,u,d,f=i*n.x+o*n.y+c,p=i*r.x+o*r.y+c,m,h,g,_,v;if(!(f!==0&&p!==0&&G(f,p))&&(a=r.y-n.y,s=n.x-r.x,l=r.x*n.y-n.x*r.y,u=a*e.x+s*e.y+l,d=a*t.x+s*t.y+l,!(u!==0&&d!==0&&G(u,d))&&(m=i*s-a*o,m!==0)))return h=Math.abs(m/2),g=o*l-s*c,_=g<0?(g-h)/m:(g+h)/m,g=a*c-i*l,v=g<0?(g-h)/m:(g+h)/m,{x:_,y:v}}t(ze,`intersectLine`);function G(e,t){return e*t>0}t(G,`sameSign`);var Be=ze,Ve=He;function He(e,t,n){var r=e.x,i=e.y,a=[],o=1/0,s=1/0;typeof t.forEach==`function`?t.forEach(function(e){o=Math.min(o,e.x),s=Math.min(s,e.y)}):(o=Math.min(o,t.x),s=Math.min(s,t.y));for(var c=r-e.width/2-o,l=i-e.height/2-s,u=0;u<t.length;u++){var d=t[u],f=t[u<t.length-1?u+1:0],p=Be(e,n,{x:c+d.x,y:l+d.y},{x:c+f.x,y:l+f.y});p&&a.push(p)}return a.length?(a.length>1&&a.sort(function(e,t){var r=e.x-n.x,i=e.y-n.y,a=Math.sqrt(r*r+i*i),o=t.x-n.x,s=t.y-n.y,c=Math.sqrt(o*o+s*s);return a<c?-1:a===c?0:1}),a[0]):e}t(He,`intersectPolygon`);var K={node:Pe,circle:Re,ellipse:Ie,polygon:Ve,rect:t((e,t)=>{var n=e.x,r=e.y,i=t.x-n,a=t.y-r,o=e.width/2,s=e.height/2,c,l;return Math.abs(a)*o>Math.abs(i)*s?(a<0&&(s=-s),c=a===0?0:s*i/a,l=s):(i<0&&(o=-o),c=o,l=i===0?0:o*a/i),{x:n+c,y:r+l}},`intersectRect`)},q=t(async(e,t,r,a)=>{let s=o(),c,l=t.useHtmlLabels||u(s);c=r||`node default`;let d=e.insert(`g`).attr(`class`,c).attr(`id`,t.domId||t.id),f=d.insert(`g`).attr(`class`,`label`).attr(`style`,t.labelStyle),p;p=t.labelText===void 0?``:typeof t.labelText==`string`?t.labelText:t.labelText[0];let m;m=t.labelType===`markdown`?v(f,i(g(p),s),{useHtmlLabels:l,width:t.width||s.flowchart.wrappingWidth,classes:`markdown-node-label`},s):await V(f,i(g(p),s),t.labelStyle,!1,a);let h=m.getBBox(),_=t.padding/2;if(u(s)){let e=m.children[0],t=n(m);await C(e,p),h=e.getBoundingClientRect(),t.attr(`width`,h.width),t.attr(`height`,h.height)}return l?f.attr(`transform`,`translate(`+-h.width/2+`, `+-h.height/2+`)`):f.attr(`transform`,`translate(0, `+-h.height/2+`)`),t.centerLabel&&f.attr(`transform`,`translate(`+-h.width/2+`, `+-h.height/2+`)`),f.insert(`rect`,`:first-child`),{shapeSvg:d,bbox:h,halfPadding:_,label:f}},`labelHelper`),J=t((e,t)=>{let n=t.node().getBBox();e.width=n.width,e.height=n.height},`updateNodeBounds`);function Y(e,t,n,r){return e.insert(`polygon`,`:first-child`).attr(`points`,r.map(function(e){return e.x+`,`+e.y}).join(` `)).attr(`class`,`label-container`).attr(`transform`,`translate(`+-t/2+`,`+n/2+`)`)}t(Y,`insertPolygonShape`);var Ue=t(async(t,n)=>{n.useHtmlLabels||u(o())||(n.centerLabel=!0);let{shapeSvg:r,bbox:i,halfPadding:a}=await q(t,n,`node `+n.classes,!0);e.info(`Classes = `,n.classes);let s=r.insert(`rect`,`:first-child`);return s.attr(`rx`,n.rx).attr(`ry`,n.ry).attr(`x`,-i.width/2-a).attr(`y`,-i.height/2-a).attr(`width`,i.width+n.padding).attr(`height`,i.height+n.padding),J(n,s),n.intersect=function(e){return K.rect(n,e)},r},`note`),We=t(e=>e?` `+e:``,`formatClass`),X=t((e,t)=>`${t||`node default`}${We(e.classes)} ${We(e.class)}`,`getClassesFromNode`),Ge=t(async(t,n)=>{let{shapeSvg:r,bbox:i}=await q(t,n,X(n,void 0),!0),a=i.width+n.padding+(i.height+n.padding),o=[{x:a/2,y:0},{x:a,y:-a/2},{x:a/2,y:-a},{x:0,y:-a/2}];e.info(`Question main (Circle)`);let s=Y(r,a,a,o);return s.attr(`style`,n.style),J(n,s),n.intersect=function(t){return e.warn(`Intersect called`),K.polygon(n,o,t)},r},`question`),Ke=t((e,t)=>{let n=e.insert(`g`).attr(`class`,`node default`).attr(`id`,t.domId||t.id);return n.insert(`polygon`,`:first-child`).attr(`points`,[{x:0,y:28/2},{x:28/2,y:0},{x:0,y:-28/2},{x:-28/2,y:0}].map(function(e){return e.x+`,`+e.y}).join(` `)).attr(`class`,`state-start`).attr(`r`,7).attr(`width`,28).attr(`height`,28),t.width=28,t.height=28,t.intersect=function(e){return K.circle(t,14,e)},n},`choice`),qe=t(async(e,t)=>{let{shapeSvg:n,bbox:r}=await q(e,t,X(t,void 0),!0),i=r.height+t.padding,a=i/4,o=r.width+2*a+t.padding,s=[{x:a,y:0},{x:o-a,y:0},{x:o,y:-i/2},{x:o-a,y:-i},{x:a,y:-i},{x:0,y:-i/2}],c=Y(n,o,i,s);return c.attr(`style`,t.style),J(t,c),t.intersect=function(e){return K.polygon(t,s,e)},n},`hexagon`),Je=t(async(e,t)=>{let{shapeSvg:n,bbox:r}=await q(e,t,void 0,!0),i=r.height+2*t.padding,a=i/2,o=r.width+2*a+t.padding,s=Me(t.directions,r,t),c=Y(n,o,i,s);return c.attr(`style`,t.style),J(t,c),t.intersect=function(e){return K.polygon(t,s,e)},n},`block_arrow`),Ye=t(async(e,t)=>{let{shapeSvg:n,bbox:r}=await q(e,t,X(t,void 0),!0),i=r.width+t.padding,a=r.height+t.padding,o=[{x:-a/2,y:0},{x:i,y:0},{x:i,y:-a},{x:-a/2,y:-a},{x:0,y:-a/2}];return Y(n,i,a,o).attr(`style`,t.style),t.width=i+a,t.height=a,t.intersect=function(e){return K.polygon(t,o,e)},n},`rect_left_inv_arrow`),Xe=t(async(e,t)=>{let{shapeSvg:n,bbox:r}=await q(e,t,X(t),!0),i=r.width+t.padding,a=r.height+t.padding,o=[{x:-2*a/6,y:0},{x:i-a/6,y:0},{x:i+2*a/6,y:-a},{x:a/6,y:-a}],s=Y(n,i,a,o);return s.attr(`style`,t.style),J(t,s),t.intersect=function(e){return K.polygon(t,o,e)},n},`lean_right`),Ze=t(async(e,t)=>{let{shapeSvg:n,bbox:r}=await q(e,t,X(t,void 0),!0),i=r.width+t.padding,a=r.height+t.padding,o=[{x:2*a/6,y:0},{x:i+a/6,y:0},{x:i-2*a/6,y:-a},{x:-a/6,y:-a}],s=Y(n,i,a,o);return s.attr(`style`,t.style),J(t,s),t.intersect=function(e){return K.polygon(t,o,e)},n},`lean_left`),Qe=t(async(e,t)=>{let{shapeSvg:n,bbox:r}=await q(e,t,X(t,void 0),!0),i=r.width+t.padding,a=r.height+t.padding,o=[{x:-2*a/6,y:0},{x:i+2*a/6,y:0},{x:i-a/6,y:-a},{x:a/6,y:-a}],s=Y(n,i,a,o);return s.attr(`style`,t.style),J(t,s),t.intersect=function(e){return K.polygon(t,o,e)},n},`trapezoid`),$e=t(async(e,t)=>{let{shapeSvg:n,bbox:r}=await q(e,t,X(t,void 0),!0),i=r.width+t.padding,a=r.height+t.padding,o=[{x:a/6,y:0},{x:i-a/6,y:0},{x:i+2*a/6,y:-a},{x:-2*a/6,y:-a}],s=Y(n,i,a,o);return s.attr(`style`,t.style),J(t,s),t.intersect=function(e){return K.polygon(t,o,e)},n},`inv_trapezoid`),et=t(async(e,t)=>{let{shapeSvg:n,bbox:r}=await q(e,t,X(t,void 0),!0),i=r.width+t.padding,a=r.height+t.padding,o=[{x:0,y:0},{x:i+a/2,y:0},{x:i,y:-a/2},{x:i+a/2,y:-a},{x:0,y:-a}],s=Y(n,i,a,o);return s.attr(`style`,t.style),J(t,s),t.intersect=function(e){return K.polygon(t,o,e)},n},`rect_right_inv_arrow`),tt=t(async(e,t)=>{let{shapeSvg:n,bbox:r}=await q(e,t,X(t,void 0),!0),i=r.width+t.padding,a=i/2,o=a/(2.5+i/50),s=r.height+o+t.padding,c=`M 0,`+o+` a `+a+`,`+o+` 0,0,0 `+i+` 0 a `+a+`,`+o+` 0,0,0 `+-i+` 0 l 0,`+s+` a `+a+`,`+o+` 0,0,0 `+i+` 0 l 0,`+-s;return J(t,n.attr(`label-offset-y`,o).insert(`path`,`:first-child`).attr(`style`,t.style).attr(`d`,c).attr(`transform`,`translate(`+-i/2+`,`+-(s/2+o)+`)`)),t.intersect=function(e){let n=K.rect(t,e),r=n.x-t.x;if(a!=0&&(Math.abs(r)<t.width/2||Math.abs(r)==t.width/2&&Math.abs(n.y-t.y)>t.height/2-o)){let i=o*o*(1-r*r/(a*a));i!=0&&(i=Math.sqrt(i)),i=o-i,e.y-t.y>0&&(i=-i),n.y+=i}return n},n},`cylinder`),nt=t(async(t,n)=>{let{shapeSvg:r,bbox:i,halfPadding:a}=await q(t,n,`node `+n.classes+` `+n.class,!0),o=r.insert(`rect`,`:first-child`),s=n.positioned?n.width:i.width+n.padding,c=n.positioned?n.height:i.height+n.padding,l=n.positioned?-s/2:-i.width/2-a,u=n.positioned?-c/2:-i.height/2-a;if(o.attr(`class`,`basic label-container`).attr(`style`,n.style).attr(`rx`,n.rx).attr(`ry`,n.ry).attr(`x`,l).attr(`y`,u).attr(`width`,s).attr(`height`,c),n.props){let t=new Set(Object.keys(n.props));n.props.borders&&(Z(o,n.props.borders,s,c),t.delete(`borders`)),t.forEach(t=>{e.warn(`Unknown node property ${t}`)})}return J(n,o),n.intersect=function(e){return K.rect(n,e)},r},`rect`),rt=t(async(t,n)=>{let{shapeSvg:r,bbox:i,halfPadding:a}=await q(t,n,`node `+n.classes,!0),o=r.insert(`rect`,`:first-child`),s=n.positioned?n.width:i.width+n.padding,c=n.positioned?n.height:i.height+n.padding,l=n.positioned?-s/2:-i.width/2-a,u=n.positioned?-c/2:-i.height/2-a;if(o.attr(`class`,`basic cluster composite label-container`).attr(`style`,n.style).attr(`rx`,n.rx).attr(`ry`,n.ry).attr(`x`,l).attr(`y`,u).attr(`width`,s).attr(`height`,c),n.props){let t=new Set(Object.keys(n.props));n.props.borders&&(Z(o,n.props.borders,s,c),t.delete(`borders`)),t.forEach(t=>{e.warn(`Unknown node property ${t}`)})}return J(n,o),n.intersect=function(e){return K.rect(n,e)},r},`composite`),it=t(async(t,n)=>{let{shapeSvg:r}=await q(t,n,`label`,!0);e.trace(`Classes = `,n.class);let i=r.insert(`rect`,`:first-child`);if(i.attr(`width`,0).attr(`height`,0),r.attr(`class`,`label edgeLabel`),n.props){let t=new Set(Object.keys(n.props));n.props.borders&&(Z(i,n.props.borders,0,0),t.delete(`borders`)),t.forEach(t=>{e.warn(`Unknown node property ${t}`)})}return J(n,i),n.intersect=function(e){return K.rect(n,e)},r},`labelRect`);function Z(n,r,i,a){let o=[],s=t(e=>{o.push(e,0)},`addBorder`),c=t(e=>{o.push(0,e)},`skipBorder`);r.includes(`t`)?(e.debug(`add top border`),s(i)):c(i),r.includes(`r`)?(e.debug(`add right border`),s(a)):c(a),r.includes(`b`)?(e.debug(`add bottom border`),s(i)):c(i),r.includes(`l`)?(e.debug(`add left border`),s(a)):c(a),n.attr(`stroke-dasharray`,o.join(` `))}t(Z,`applyNodePropertyBorders`);var at=t(async(t,r)=>{let i;i=r.classes?`node `+r.classes:`node default`;let a=t.insert(`g`).attr(`class`,i).attr(`id`,r.domId||r.id),s=a.insert(`rect`,`:first-child`),c=a.insert(`line`),l=a.insert(`g`).attr(`class`,`label`),d=r.labelText.flat?r.labelText.flat():r.labelText,f=``;f=typeof d==`object`?d[0]:d,e.info(`Label text abc79`,f,d,typeof d==`object`);let p=await V(l,f,r.labelStyle,!0,!0),m={width:0,height:0};if(u(o())){let e=p.children[0],t=n(p);m=e.getBoundingClientRect(),t.attr(`width`,m.width),t.attr(`height`,m.height)}e.info(`Text 2`,d);let h=d.slice(1,d.length),g=p.getBBox(),_=await V(l,h.join?h.join(`<br/>`):h,r.labelStyle,!0,!0);if(u(o())){let e=_.children[0],t=n(_);m=e.getBoundingClientRect(),t.attr(`width`,m.width),t.attr(`height`,m.height)}let v=r.padding/2;return n(_).attr(`transform`,`translate( `+(m.width>g.width?0:(g.width-m.width)/2)+`, `+(g.height+v+5)+`)`),n(p).attr(`transform`,`translate( `+(m.width<g.width?0:-(g.width-m.width)/2)+`, 0)`),m=l.node().getBBox(),l.attr(`transform`,`translate(`+-m.width/2+`, `+(-m.height/2-v+3)+`)`),s.attr(`class`,`outer title-state`).attr(`x`,-m.width/2-v).attr(`y`,-m.height/2-v).attr(`width`,m.width+r.padding).attr(`height`,m.height+r.padding),c.attr(`class`,`divider`).attr(`x1`,-m.width/2-v).attr(`x2`,m.width/2+v).attr(`y1`,-m.height/2-v+g.height+v).attr(`y2`,-m.height/2-v+g.height+v),J(r,s),r.intersect=function(e){return K.rect(r,e)},a},`rectWithTitle`),ot=t(async(e,t)=>{let{shapeSvg:n,bbox:r}=await q(e,t,X(t,void 0),!0),i=r.height+t.padding,a=r.width+i/4+t.padding;return J(t,n.insert(`rect`,`:first-child`).attr(`style`,t.style).attr(`rx`,i/2).attr(`ry`,i/2).attr(`x`,-a/2).attr(`y`,-i/2).attr(`width`,a).attr(`height`,i)),t.intersect=function(e){return K.rect(t,e)},n},`stadium`),st=t(async(t,n)=>{let{shapeSvg:r,bbox:i,halfPadding:a}=await q(t,n,X(n,void 0),!0),o=r.insert(`circle`,`:first-child`);return o.attr(`style`,n.style).attr(`rx`,n.rx).attr(`ry`,n.ry).attr(`r`,i.width/2+a).attr(`width`,i.width+n.padding).attr(`height`,i.height+n.padding),e.info(`Circle main`),J(n,o),n.intersect=function(t){return e.info(`Circle intersect`,n,i.width/2+a,t),K.circle(n,i.width/2+a,t)},r},`circle`),ct=t(async(t,n)=>{let{shapeSvg:r,bbox:i,halfPadding:a}=await q(t,n,X(n,void 0),!0),o=r.insert(`g`,`:first-child`),s=o.insert(`circle`),c=o.insert(`circle`);return o.attr(`class`,n.class),s.attr(`style`,n.style).attr(`rx`,n.rx).attr(`ry`,n.ry).attr(`r`,i.width/2+a+5).attr(`width`,i.width+n.padding+10).attr(`height`,i.height+n.padding+10),c.attr(`style`,n.style).attr(`rx`,n.rx).attr(`ry`,n.ry).attr(`r`,i.width/2+a).attr(`width`,i.width+n.padding).attr(`height`,i.height+n.padding),e.info(`DoubleCircle main`),J(n,s),n.intersect=function(t){return e.info(`DoubleCircle intersect`,n,i.width/2+a+5,t),K.circle(n,i.width/2+a+5,t)},r},`doublecircle`),lt=t(async(e,t)=>{let{shapeSvg:n,bbox:r}=await q(e,t,X(t,void 0),!0),i=r.width+t.padding,a=r.height+t.padding,o=[{x:0,y:0},{x:i,y:0},{x:i,y:-a},{x:0,y:-a},{x:0,y:0},{x:-8,y:0},{x:i+8,y:0},{x:i+8,y:-a},{x:-8,y:-a},{x:-8,y:0}],s=Y(n,i,a,o);return s.attr(`style`,t.style),J(t,s),t.intersect=function(e){return K.polygon(t,o,e)},n},`subroutine`),ut=t((e,t)=>{let n=e.insert(`g`).attr(`class`,`node default`).attr(`id`,t.domId||t.id),r=n.insert(`circle`,`:first-child`);return r.attr(`class`,`state-start`).attr(`r`,7).attr(`width`,14).attr(`height`,14),J(t,r),t.intersect=function(e){return K.circle(t,7,e)},n},`start`),dt=t((e,t,n)=>{let r=e.insert(`g`).attr(`class`,`node default`).attr(`id`,t.domId||t.id),i=70,a=10;return n===`LR`&&(i=10,a=70),J(t,r.append(`rect`).attr(`x`,-1*i/2).attr(`y`,-1*a/2).attr(`width`,i).attr(`height`,a).attr(`class`,`fork-join`)),t.height+=t.padding/2,t.width+=t.padding/2,t.intersect=function(e){return K.rect(t,e)},r},`forkJoin`),ft={rhombus:Ge,composite:rt,question:Ge,rect:nt,labelRect:it,rectWithTitle:at,choice:Ke,circle:st,doublecircle:ct,stadium:ot,hexagon:qe,block_arrow:Je,rect_left_inv_arrow:Ye,lean_right:Xe,lean_left:Ze,trapezoid:Qe,inv_trapezoid:$e,rect_right_inv_arrow:et,cylinder:tt,start:ut,end:t((e,t)=>{let n=e.insert(`g`).attr(`class`,`node default`).attr(`id`,t.domId||t.id),r=n.insert(`circle`,`:first-child`),i=n.insert(`circle`,`:first-child`);return i.attr(`class`,`state-start`).attr(`r`,7).attr(`width`,14).attr(`height`,14),r.attr(`class`,`state-end`).attr(`r`,5).attr(`width`,10).attr(`height`,10),J(t,i),t.intersect=function(e){return K.circle(t,7,e)},n},`end`),note:Ue,subroutine:lt,fork:dt,join:dt,class_box:t(async(e,t)=>{let r=t.padding/2,i;i=t.classes?`node `+t.classes:`node default`;let a=e.insert(`g`).attr(`class`,i).attr(`id`,t.domId||t.id),s=a.insert(`rect`,`:first-child`),c=a.insert(`line`),l=a.insert(`line`),d=0,f=4,p=a.insert(`g`).attr(`class`,`label`),m=0,h=t.classData.annotations?.[0],g=await V(p,t.classData.annotations[0]?`«`+t.classData.annotations[0]+`»`:``,t.labelStyle,!0,!0),_=g.getBBox();if(u(o())){let e=g.children[0],t=n(g);_=e.getBoundingClientRect(),t.attr(`width`,_.width),t.attr(`height`,_.height)}t.classData.annotations[0]&&(f+=_.height+4,d+=_.width);let v=t.classData.label;t.classData.type!==void 0&&t.classData.type!==``&&(u(o())?v+=`&lt;`+t.classData.type+`&gt;`:v+=`<`+t.classData.type+`>`);let y=await V(p,v,t.labelStyle,!0,!0);n(y).attr(`class`,`classTitle`);let b=y.getBBox();if(u(o())){let e=y.children[0],t=n(y);b=e.getBoundingClientRect(),t.attr(`width`,b.width),t.attr(`height`,b.height)}f+=b.height+4,b.width>d&&(d=b.width);let x=[];t.classData.members.forEach(async e=>{let r=e.getDisplayDetails(),i=r.displayText;u(o())&&(i=i.replace(/</g,`&lt;`).replace(/>/g,`&gt;`));let a=await V(p,i,r.cssStyle?r.cssStyle:t.labelStyle,!0,!0),s=a.getBBox();if(u(o())){let e=a.children[0],t=n(a);s=e.getBoundingClientRect(),t.attr(`width`,s.width),t.attr(`height`,s.height)}s.width>d&&(d=s.width),f+=s.height+4,x.push(a)}),f+=8;let S=[];if(t.classData.methods.forEach(async e=>{let r=e.getDisplayDetails(),i=r.displayText;u(o())&&(i=i.replace(/</g,`&lt;`).replace(/>/g,`&gt;`));let a=await V(p,i,r.cssStyle?r.cssStyle:t.labelStyle,!0,!0),s=a.getBBox();if(u(o())){let e=a.children[0],t=n(a);s=e.getBoundingClientRect(),t.attr(`width`,s.width),t.attr(`height`,s.height)}s.width>d&&(d=s.width),f+=s.height+4,S.push(a)}),f+=8,h){let e=(d-_.width)/2;n(g).attr(`transform`,`translate( `+(-1*d/2+e)+`, `+-1*f/2+`)`),m=_.height+4}let C=(d-b.width)/2;return n(y).attr(`transform`,`translate( `+(-1*d/2+C)+`, `+(-1*f/2+m)+`)`),m+=b.height+4,c.attr(`class`,`divider`).attr(`x1`,-d/2-r).attr(`x2`,d/2+r).attr(`y1`,-f/2-r+8+m).attr(`y2`,-f/2-r+8+m),m+=8,x.forEach(e=>{n(e).attr(`transform`,`translate( `+-d/2+`, `+(-1*f/2+m+8/2)+`)`);let t=e?.getBBox();m+=(t?.height??0)+4}),m+=8,l.attr(`class`,`divider`).attr(`x1`,-d/2-r).attr(`x2`,d/2+r).attr(`y1`,-f/2-r+8+m).attr(`y2`,-f/2-r+8+m),m+=8,S.forEach(e=>{n(e).attr(`transform`,`translate( `+-d/2+`, `+(-1*f/2+m)+`)`);let t=e?.getBBox();m+=(t?.height??0)+4}),s.attr(`style`,t.style).attr(`class`,`outer title-state`).attr(`x`,-d/2-r).attr(`y`,-(f/2)-r).attr(`width`,d+t.padding).attr(`height`,f+t.padding),J(t,s),t.intersect=function(e){return K.rect(t,e)},a},`class_box`)},Q={},pt=t(async(e,t,n)=>{let r,i;if(t.link){let a;o().securityLevel===`sandbox`?a=`_top`:t.linkTarget&&(a=t.linkTarget||`_blank`),r=e.insert(`svg:a`).attr(`xlink:href`,t.link).attr(`target`,a),i=await ft[t.shape](r,t,n)}else i=await ft[t.shape](e,t,n),r=i;return t.tooltip&&i.attr(`title`,t.tooltip),t.class&&i.attr(`class`,`node default `+t.class),Q[t.id]=r,t.haveCallback&&Q[t.id].attr(`class`,Q[t.id].attr(`class`)+` clickable`),r},`insertNode`),mt=t(t=>{let n=Q[t.id];e.trace(`Transforming node`,t.diff,t,`translate(`+(t.x-t.width/2-5)+`, `+t.width/2+`)`);let r=t.diff||0;return t.clusterNode?n.attr(`transform`,`translate(`+(t.x+r-t.width/2)+`, `+(t.y-t.height/2-8)+`)`):n.attr(`transform`,`translate(`+t.x+`, `+t.y+`)`),r},`positionNode`);function ht(e,t,n=!1){let r=e,i=`default`;(r?.classes?.length||0)>0&&(i=(r?.classes??[]).join(` `)),i+=` flowchart-label`;let a=0,o=``,s;switch(r.type){case`round`:a=5,o=`rect`;break;case`composite`:a=0,o=`composite`,s=0;break;case`square`:o=`rect`;break;case`diamond`:o=`question`;break;case`hexagon`:o=`hexagon`;break;case`block_arrow`:o=`block_arrow`;break;case`odd`:o=`rect_left_inv_arrow`;break;case`lean_right`:o=`lean_right`;break;case`lean_left`:o=`lean_left`;break;case`trapezoid`:o=`trapezoid`;break;case`inv_trapezoid`:o=`inv_trapezoid`;break;case`rect_left_inv_arrow`:o=`rect_left_inv_arrow`;break;case`circle`:o=`circle`;break;case`ellipse`:o=`ellipse`;break;case`stadium`:o=`stadium`;break;case`subroutine`:o=`subroutine`;break;case`cylinder`:o=`cylinder`;break;case`group`:o=`rect`;break;case`doublecircle`:o=`doublecircle`;break;default:o=`rect`}let c=m(r?.styles??[]),l=r.label,u=r.size??{width:0,height:0,x:0,y:0},f=t.getDiagramId();return{labelStyle:c.labelStyle,shape:o,labelText:l,rx:a,ry:a,class:i,style:c.style,id:r.id,domId:f?`${f}-${r.id}`:r.id,directions:r.directions,width:u.width,height:u.height,x:u.x,y:u.y,positioned:n,intersect:void 0,type:r.type,padding:s??d()?.block?.padding??0}}t(ht,`getNodeFromBlock`);async function gt(e,t,n){let r=ht(t,n,!1);if(r.type===`group`)return;let i=await pt(e,r,{config:d()}),a=i.node().getBBox(),o=n.getBlock(r.id);o.size={width:a.width,height:a.height,x:0,y:0,node:i},n.setBlock(o),i.remove()}t(gt,`calculateBlockSize`);async function _t(e,t,n){let r=ht(t,n,!0);n.getBlock(r.id).type!==`space`&&(await pt(e,r,{config:d()}),t.intersect=r?.intersect,mt(r))}t(_t,`insertBlockPositioned`);async function $(e,t,n,r){for(let i of t)await r(e,i,n),i.children&&await $(e,i.children,n,r)}t($,`performOperations`);async function vt(e,t,n){await $(e,t,n,gt)}t(vt,`calculateBlockSizes`);async function yt(e,t,n){await $(e,t,n,_t)}t(yt,`insertBlocks`);async function bt(e,t,n,r,i){let a=new w({multigraph:!0,compound:!0});a.setGraph({rankdir:`TB`,nodesep:10,ranksep:10,marginx:8,marginy:8});for(let e of n)e.size&&a.setNode(e.id,{width:e.size.width,height:e.size.height,intersect:e.intersect});for(let n of t)if(n.start&&n.end){let t=r.getBlock(n.start),o=r.getBlock(n.end);if(t?.size&&o?.size){let r=t.size,s=o.size,c=[{x:r.x,y:r.y},{x:r.x+(s.x-r.x)/2,y:r.y+(s.y-r.y)/2},{x:s.x,y:s.y}],l=i?`${i}-${n.id}`:n.id;Ae(e,{v:n.start,w:n.end,name:l},{...n,id:l,arrowTypeEnd:n.arrowTypeEnd,arrowTypeStart:n.arrowTypeStart,points:c,classes:`edge-thickness-normal edge-pattern-solid flowchart-link LS-a1 LE-b1`},void 0,`block`,a,i),n.label&&(await Te(e,{...n,label:n.label,labelStyle:`stroke: #333; stroke-width: 1.5px;fill:none;`,arrowTypeEnd:n.arrowTypeEnd,arrowTypeStart:n.arrowTypeStart,points:c,classes:`edge-thickness-normal edge-pattern-solid flowchart-link LS-a1 LE-b1`}),Ee({...n,x:c[1].x,y:c[1].y},{originalPath:c}))}}}t(bt,`insertEdges`);var xt={parser:D,db:me,renderer:{draw:t(async function(t,r,i,a){let{securityLevel:o,block:c}=d(),l=a.db;l.setDiagramId(r);let u;o===`sandbox`&&(u=n(`#i`+r));let f=n(o===`sandbox`?u.nodes()[0].contentDocument.body:`body`),p=o===`sandbox`?f.select(`[id="${r}"]`):n(`[id="${r}"]`);ye(p,[`point`,`circle`,`cross`],a.type,r);let m=l.getBlocks(),h=l.getBlocksFlat(),g=l.getEdges(),_=p.insert(`g`).attr(`class`,`block`);await vt(_,m,l);let v=xe(l);if(await yt(_,m,l),await bt(_,g,h,l,r),v){let t=v,n=Math.max(1,Math.round(.125*(t.width/t.height))),r=t.height+n+10,i=t.width+10,{useMaxWidth:a}=c;s(p,r,i,!!a),e.debug(`Here Bounds`,v,t),p.attr(`viewBox`,`${t.x-5} ${t.y-5} ${t.width+10} ${t.height+10}`)}},`draw`),getClasses:t(function(e,t){return t.db.getClasses()},`getClasses`)},styles:ge};export{xt as diagram};
@@ -1 +0,0 @@
1
- import{it as e,rt as t}from"./chunk-ICPOFSXX-C9l3r2YR.js";var n=(n,r)=>e.lang.round(t.parse(n)[r]);export{n as t};
@@ -1 +0,0 @@
1
- import{_ as e,g as t,h as n,i as r,m as i,s as a,t as o,u as s,v as c}from"./chunk-K5T4RW27-Bv0dnd8C.js";var l=class extends o{static{i(this,`RadarTokenBuilder`)}constructor(){super([`radar-beta`])}},u={parser:{TokenBuilder:i(()=>new l,`TokenBuilder`),ValueConverter:i(()=>new r,`ValueConverter`)}};function d(r=n){let i=t(c(r),a),o=t(e({shared:i}),s,u);return i.ServiceRegistry.register(o),{shared:i,Radar:o}}i(d,`createRadarServices`);export{d as n,u as t};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/dagre-KV5264BT-BDTirpEd.js","assets/chunk-U2HBQHQK-CpVfEbNc.js","assets/src-YK4ClFOB.js","assets/index-C2jd9xpN.js","assets/index-v-PY_jQI.css","assets/chunk-5PVQY5BW-nUEO-vub.js","assets/dist-CL_sSZWx.js","assets/chunk-ICPOFSXX-C9l3r2YR.js","assets/_baseFor-Dq1lbcoh.js","assets/dagre-BADyoi72.js","assets/graphlib-BLiSTux3.js","assets/isEmpty-CStpjy4G.js","assets/reduce-CG4cgj93.js","assets/flatten-SRIRKgqP.js","assets/clone-J5cJUwR3.js","assets/chunk-5FUZZQ4R-0NY9W0kL.js","assets/chunk-X2U36JSP-BAcfna0L.js","assets/chunk-ZZ45TVLE-CwpZ5yb7.js","assets/rough.esm-Bbn_-PMU.js","assets/chunk-BSJP7CBP-DiXS795w.js","assets/chunk-ENJZ2VHE-9x7-Qpzy.js","assets/line-yxqmb99x.js","assets/path-DfRbCp9y.js","assets/array-DOVTz2Mq.js","assets/cose-bilkent-S5V4N54A-DJvkrscF.js","assets/cytoscape.esm-DdcHPZAZ.js"])))=>i.map(i=>d[i]);
2
- import{t as e}from"./index-C2jd9xpN.js";import{g as t,h as n}from"./src-YK4ClFOB.js";import{s as r,y as i}from"./chunk-ICPOFSXX-C9l3r2YR.js";import{u as a}from"./chunk-5PVQY5BW-nUEO-vub.js";import{a as o,i as s,s as c}from"./chunk-5FUZZQ4R-0NY9W0kL.js";import{a as l,i as u,n as d,r as f}from"./chunk-ENJZ2VHE-9x7-Qpzy.js";var p={common:r,getConfig:i,insertCluster:s,insertEdge:d,insertEdgeLabel:f,insertMarkers:u,insertNode:o,interpolateToCurve:a,labelHelper:c,log:t,positionEdgeLabel:l},m={},h=n(e=>{for(let t of e)m[t.name]=t},`registerLayoutLoaders`);n(()=>{h([{name:`dagre`,loader:n(async()=>await e(()=>import(`./dagre-KV5264BT-BDTirpEd.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23])),`loader`)},...[{name:`cose-bilkent`,loader:n(async()=>await e(()=>import(`./cose-bilkent-S5V4N54A-DJvkrscF.js`),__vite__mapDeps([24,3,4,25,2])),`loader`)}]])},`registerDefaultLayoutLoaders`)();var g=n(async(e,t)=>{if(!(e.layoutAlgorithm in m))throw Error(`Unknown layout algorithm: ${e.layoutAlgorithm}`);if(e.diagramId)for(let t of e.nodes){let n=t.domId||t.id;t.domId=`${e.diagramId}-${n}`}let n=m[e.layoutAlgorithm],r=await n.loader(),{theme:i,themeVariables:a}=e.config,{useGradient:o,gradientStart:s,gradientStop:c}=a,l=t.attr(`id`);if(t.append(`defs`).append(`filter`).attr(`id`,`${l}-drop-shadow`).attr(`height`,`130%`).attr(`width`,`130%`).append(`feDropShadow`).attr(`dx`,`4`).attr(`dy`,`4`).attr(`stdDeviation`,0).attr(`flood-opacity`,`0.06`).attr(`flood-color`,`${i?.includes(`dark`)?`#FFFFFF`:`#000000`}`),t.append(`defs`).append(`filter`).attr(`id`,`${l}-drop-shadow-small`).attr(`height`,`150%`).attr(`width`,`150%`).append(`feDropShadow`).attr(`dx`,`2`).attr(`dy`,`2`).attr(`stdDeviation`,0).attr(`flood-opacity`,`0.06`).attr(`flood-color`,`${i?.includes(`dark`)?`#FFFFFF`:`#000000`}`),o){let e=t.append(`linearGradient`).attr(`id`,t.attr(`id`)+`-gradient`).attr(`gradientUnits`,`objectBoundingBox`).attr(`x1`,`0%`).attr(`y1`,`0%`).attr(`x2`,`100%`).attr(`y2`,`0%`);e.append(`svg:stop`).attr(`offset`,`0%`).attr(`stop-color`,s).attr(`stop-opacity`,1),e.append(`svg:stop`).attr(`offset`,`100%`).attr(`stop-color`,c).attr(`stop-opacity`,1)}return r.render(e,t,p,{algorithm:n.algorithm})},`render`),_=n((e=``,{fallback:n=`dagre`}={})=>{if(e in m)return e;if(n in m)return t.warn(`Layout algorithm ${e} is not registered. Using ${n} as fallback.`),n;throw Error(`Both layout algorithms ${e} and ${n} are not registered.`)},`getRegisteredLayoutAlgorithm`);export{h as n,g as r,_ as t};
@@ -1 +0,0 @@
1
- import{h as e,p as t}from"./src-YK4ClFOB.js";import{b as n}from"./chunk-ICPOFSXX-C9l3r2YR.js";var r=e(e=>{let{securityLevel:r}=n(),i=t(`body`);return r===`sandbox`&&(i=t((t(`#i${e}`).node()?.contentDocument??document).body)),i.select(`#${e}`)},`selectSvgElement`);export{r as t};