plum-e2e 2.10.0 → 2.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (650) hide show
  1. package/.env +1 -1
  2. package/CLAUDE.md +1 -1
  3. package/README.md +7 -7
  4. package/backend/app.js +1 -1
  5. package/backend/lib/csv.js +21 -0
  6. package/backend/lib/exportResponse.js +37 -0
  7. package/backend/lib/serverBootstrap.js +2 -2
  8. package/backend/lib/serverConfig.js +5 -3
  9. package/backend/mcp/server.js +44 -0
  10. package/backend/middleware/runnerOrAdmin.js +1 -1
  11. package/backend/package.json +1 -1
  12. package/backend/routes/reports.routes.js +19 -0
  13. package/backend/routes/runners.routes.js +1 -1
  14. package/backend/routes/test-cases.routes.js +12 -0
  15. package/backend/routes/test-runs.routes.js +17 -0
  16. package/backend/routes/test-suites.routes.js +34 -0
  17. package/backend/scripts/{manage-runners.mjs → manage-nodes.mjs} +67 -52
  18. package/backend/services/exportService.js +339 -0
  19. package/backend/services/testImportService.js +87 -0
  20. package/bin/plum.js +174 -68
  21. package/docker-compose.yml +1 -1
  22. package/frontend/.svelte-kit/adapter-node/.vite/manifest.json +48 -40
  23. package/frontend/.svelte-kit/{output/server/_app/immutable/assets/Toast.DENwYn3g.css → adapter-node/_app/immutable/assets/Button.C1zsJAUG.css} +1 -1
  24. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/ExportMenu.DsJQ1Qua.css +6 -0
  25. package/frontend/{build/client/_app/immutable/assets/_layout.HkPnpRl9.css → .svelte-kit/adapter-node/_app/immutable/assets/_layout.B4TT3qNx.css} +1 -1
  26. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.4bPj83tb.css +6 -0
  27. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.BwgtEi_a.css +6 -0
  28. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.DOC8fPSI.css +6 -0
  29. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.Dm1nSEgE.css +6 -0
  30. package/frontend/.svelte-kit/adapter-node/chunks/{Toast.js → Button.js} +2 -17
  31. package/frontend/.svelte-kit/adapter-node/chunks/ConfirmModal.js +1 -1
  32. package/frontend/.svelte-kit/adapter-node/chunks/EmptyState.js +1 -1
  33. package/frontend/.svelte-kit/adapter-node/chunks/common.js +11 -4
  34. package/frontend/.svelte-kit/adapter-node/chunks/constants.js +1 -1
  35. package/frontend/.svelte-kit/adapter-node/chunks/internal.js +1 -1
  36. package/frontend/.svelte-kit/adapter-node/chunks/repository.js +21 -17
  37. package/frontend/.svelte-kit/adapter-node/entries/pages/_layout.svelte.js +2 -0
  38. package/frontend/.svelte-kit/adapter-node/entries/pages/reports/_id_/_page.svelte.js +11 -2
  39. package/frontend/.svelte-kit/adapter-node/entries/pages/scheduled-tests/_page.svelte.js +2 -5
  40. package/frontend/.svelte-kit/adapter-node/entries/pages/settings/_page.svelte.js +300 -253
  41. package/frontend/.svelte-kit/adapter-node/entries/pages/test-repository/_page.svelte.js +55 -36
  42. package/frontend/.svelte-kit/adapter-node/entries/pages/test-repository/runs/_id_/_page.svelte.js +3 -6
  43. package/frontend/.svelte-kit/adapter-node/entries/pages/test-repository/suites/_id_/_page.svelte.js +15 -17
  44. package/frontend/.svelte-kit/adapter-node/manifest-full.js +1 -1
  45. package/frontend/.svelte-kit/adapter-node/manifest.js +1 -1
  46. package/frontend/.svelte-kit/adapter-node/nodes/0.js +2 -2
  47. package/frontend/.svelte-kit/adapter-node/nodes/1.js +1 -1
  48. package/frontend/.svelte-kit/adapter-node/nodes/10.js +2 -2
  49. package/frontend/.svelte-kit/adapter-node/nodes/11.js +2 -2
  50. package/frontend/.svelte-kit/adapter-node/nodes/12.js +2 -2
  51. package/frontend/.svelte-kit/adapter-node/nodes/2.js +1 -1
  52. package/frontend/.svelte-kit/adapter-node/nodes/3.js +1 -1
  53. package/frontend/.svelte-kit/adapter-node/nodes/4.js +1 -1
  54. package/frontend/.svelte-kit/adapter-node/nodes/5.js +1 -1
  55. package/frontend/.svelte-kit/adapter-node/nodes/6.js +2 -2
  56. package/frontend/.svelte-kit/adapter-node/nodes/7.js +2 -2
  57. package/frontend/.svelte-kit/adapter-node/nodes/8.js +2 -2
  58. package/frontend/.svelte-kit/adapter-node/nodes/9.js +1 -1
  59. package/frontend/.svelte-kit/generated/server/internal.js +1 -1
  60. package/frontend/.svelte-kit/output/client/.vite/manifest.json +459 -412
  61. package/frontend/.svelte-kit/output/client/_app/immutable/assets/{0.CmJTG5mP.css → 0.BEqlRAtD.css} +1 -1
  62. package/frontend/.svelte-kit/output/client/_app/immutable/assets/10.DC0wD6w_.css +6 -0
  63. package/frontend/.svelte-kit/output/client/_app/immutable/assets/12.Dm1nSEgE.css +6 -0
  64. package/frontend/.svelte-kit/output/client/_app/immutable/assets/6.DdQVxyZK.css +6 -0
  65. package/frontend/.svelte-kit/output/client/_app/immutable/assets/8.DOC8fPSI.css +6 -0
  66. package/frontend/.svelte-kit/{adapter-node/_app/immutable/assets/Toast.DENwYn3g.css → output/client/_app/immutable/assets/Button.C1zsJAUG.css} +1 -1
  67. package/frontend/.svelte-kit/output/client/_app/immutable/assets/ExportMenu.DsJQ1Qua.css +6 -0
  68. package/frontend/.svelte-kit/output/client/_app/immutable/assets/{_layout.HkPnpRl9.css → _layout.B4TT3qNx.css} +1 -1
  69. package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.4bPj83tb.css +6 -0
  70. package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.BwgtEi_a.css +6 -0
  71. package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.DOC8fPSI.css +6 -0
  72. package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.Dm1nSEgE.css +6 -0
  73. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/{C2_rQ4aY.js → 3MBVX4Yb.js} +1 -1
  74. package/frontend/{build/client/_app/immutable/chunks/CfkUW1vA.js → .svelte-kit/output/client/_app/immutable/chunks/6VDMVB5U.js} +1 -1
  75. package/frontend/{build/client/_app/immutable/chunks/B0_HKFXV.js → .svelte-kit/output/client/_app/immutable/chunks/B2lVGNml.js} +1 -1
  76. package/frontend/{build/client/_app/immutable/chunks/CboYYxrf.js → .svelte-kit/output/client/_app/immutable/chunks/BCh31ecr.js} +1 -1
  77. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/BDb8hZHu.js +6 -0
  78. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/{CeH-RgMb.js → BIf7lHIm.js} +1 -1
  79. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/BIjh3jiU.js +8 -0
  80. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/BTV7EXZb.js +11 -0
  81. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/{DAmOMhaf.js → BWGoOYU0.js} +1 -1
  82. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/BdBJfKUi.js +6 -0
  83. package/frontend/{build/client/_app/immutable/chunks/BAvTKHxT.js → .svelte-kit/output/client/_app/immutable/chunks/BnXsGCy3.js} +1 -1
  84. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/BtTNggoY.js +8 -0
  85. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/C4Z3p6jE.js +6 -0
  86. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/CNpD-yNH.js +6 -0
  87. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/CUPWZLIN.js +6 -0
  88. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/{Ck6C3Fl0.js → CXQhSK1T.js} +1 -1
  89. package/frontend/{build/client/_app/immutable/chunks/C00jnSU2.js → .svelte-kit/output/client/_app/immutable/chunks/CtgCYzu5.js} +1 -1
  90. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/D72giPTu.js +6 -0
  91. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/{GDjpV3r7.js → DDx3no2z.js} +1 -1
  92. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/D_thT6pZ.js +6 -0
  93. package/frontend/{build/client/_app/immutable/chunks/C8S7qQjQ.js → .svelte-kit/output/client/_app/immutable/chunks/DeiVAbyn.js} +1 -1
  94. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/DiexacSB.js +6 -0
  95. package/frontend/{build/client/_app/immutable/chunks/d2K3c8Kx.js → .svelte-kit/output/client/_app/immutable/chunks/Dlymnwnf.js} +1 -1
  96. package/frontend/{build/client/_app/immutable/chunks/Cgw8TOOy.js → .svelte-kit/output/client/_app/immutable/chunks/gCgJ3Cwu.js} +1 -1
  97. package/frontend/{build/client/_app/immutable/chunks/BJ_ypKl3.js → .svelte-kit/output/client/_app/immutable/chunks/htkwR9b-.js} +1 -1
  98. package/frontend/{build/client/_app/immutable/chunks/C7uEQ-LH.js → .svelte-kit/output/client/_app/immutable/chunks/iL4SCrvY.js} +1 -1
  99. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/{CoTEzvLa.js → kFFd6Oo5.js} +1 -1
  100. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/pNZogwkM.js +6 -0
  101. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/{DWzEJYIF.js → prk8PJfA.js} +1 -1
  102. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/qvxlSGpD.js +6 -0
  103. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/r_d1Iu0W.js +6 -0
  104. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/{B00vxw57.js → tsOANt55.js} +1 -1
  105. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/zXSLr47H.js +6 -0
  106. package/frontend/.svelte-kit/output/client/_app/immutable/entry/app.DgdSwPuN.js +7 -0
  107. package/frontend/{build/client/_app/immutable/entry/start.BXOLyf9R.js → .svelte-kit/output/client/_app/immutable/entry/start.D_lhI48n.js} +1 -1
  108. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/0.D2F-i1I5.js +6 -0
  109. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/{1.BI97il3r.js → 1.JIF2GfHq.js} +1 -1
  110. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/10.A0AHLfOt.js +6 -0
  111. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/11.CVSPxlqY.js +6 -0
  112. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/12.CnAR0AQb.js +6 -0
  113. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/{2.Dr6yugXz.js → 2.Bno00fr8.js} +1 -1
  114. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/3.B6KwaCsM.js +6 -0
  115. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/{4.DDADylfF.js → 4.BX70m3v6.js} +1 -1
  116. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/5.UIFh06yr.js +6 -0
  117. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/6.DZ1OV24V.js +10 -0
  118. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/7.B_XntBZ1.js +6 -0
  119. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/8.CVHgJw-E.js +9 -0
  120. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/{9.BOK0GNF_.js → 9.DDDQPmMj.js} +1 -1
  121. package/frontend/.svelte-kit/output/client/_app/version.json +1 -1
  122. package/frontend/.svelte-kit/output/server/.vite/manifest.json +48 -40
  123. package/frontend/{build/client/_app/immutable/assets/Toast.DENwYn3g.css → .svelte-kit/output/server/_app/immutable/assets/Button.C1zsJAUG.css} +1 -1
  124. package/frontend/.svelte-kit/output/server/_app/immutable/assets/ExportMenu.DsJQ1Qua.css +6 -0
  125. package/frontend/.svelte-kit/{adapter-node/_app/immutable/assets/_layout.HkPnpRl9.css → output/server/_app/immutable/assets/_layout.B4TT3qNx.css} +1 -1
  126. package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.4bPj83tb.css +6 -0
  127. package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.BwgtEi_a.css +6 -0
  128. package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.DOC8fPSI.css +6 -0
  129. package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.Dm1nSEgE.css +6 -0
  130. package/frontend/.svelte-kit/output/server/chunks/{Toast.js → Button.js} +2 -17
  131. package/frontend/.svelte-kit/output/server/chunks/ConfirmModal.js +1 -1
  132. package/frontend/.svelte-kit/output/server/chunks/EmptyState.js +1 -1
  133. package/frontend/.svelte-kit/output/server/chunks/common.js +11 -4
  134. package/frontend/.svelte-kit/output/server/chunks/constants.js +1 -1
  135. package/frontend/.svelte-kit/output/server/chunks/internal.js +1 -1
  136. package/frontend/.svelte-kit/output/server/chunks/repository.js +21 -17
  137. package/frontend/.svelte-kit/output/server/entries/pages/_layout.svelte.js +2 -0
  138. package/frontend/.svelte-kit/output/server/entries/pages/reports/_id_/_page.svelte.js +11 -2
  139. package/frontend/.svelte-kit/output/server/entries/pages/scheduled-tests/_page.svelte.js +2 -5
  140. package/frontend/.svelte-kit/output/server/entries/pages/settings/_page.svelte.js +300 -253
  141. package/frontend/.svelte-kit/output/server/entries/pages/test-repository/_page.svelte.js +55 -36
  142. package/frontend/.svelte-kit/output/server/entries/pages/test-repository/runs/_id_/_page.svelte.js +3 -6
  143. package/frontend/.svelte-kit/output/server/entries/pages/test-repository/suites/_id_/_page.svelte.js +15 -17
  144. package/frontend/.svelte-kit/output/server/manifest-full.js +1 -1
  145. package/frontend/.svelte-kit/output/server/manifest.js +1 -1
  146. package/frontend/.svelte-kit/output/server/nodes/0.js +2 -2
  147. package/frontend/.svelte-kit/output/server/nodes/1.js +1 -1
  148. package/frontend/.svelte-kit/output/server/nodes/10.js +2 -2
  149. package/frontend/.svelte-kit/output/server/nodes/11.js +2 -2
  150. package/frontend/.svelte-kit/output/server/nodes/12.js +2 -2
  151. package/frontend/.svelte-kit/output/server/nodes/2.js +1 -1
  152. package/frontend/.svelte-kit/output/server/nodes/3.js +1 -1
  153. package/frontend/.svelte-kit/output/server/nodes/4.js +1 -1
  154. package/frontend/.svelte-kit/output/server/nodes/5.js +1 -1
  155. package/frontend/.svelte-kit/output/server/nodes/6.js +2 -2
  156. package/frontend/.svelte-kit/output/server/nodes/7.js +2 -2
  157. package/frontend/.svelte-kit/output/server/nodes/8.js +2 -2
  158. package/frontend/.svelte-kit/output/server/nodes/9.js +1 -1
  159. package/frontend/build/client/_app/immutable/assets/{0.CmJTG5mP.css → 0.BEqlRAtD.css} +1 -1
  160. package/frontend/build/client/_app/immutable/assets/0.BEqlRAtD.css.br +0 -0
  161. package/frontend/build/client/_app/immutable/assets/0.BEqlRAtD.css.gz +0 -0
  162. package/frontend/build/client/_app/immutable/assets/10.DC0wD6w_.css +6 -0
  163. package/frontend/build/client/_app/immutable/assets/10.DC0wD6w_.css.br +0 -0
  164. package/frontend/build/client/_app/immutable/assets/10.DC0wD6w_.css.gz +0 -0
  165. package/frontend/build/client/_app/immutable/assets/12.Dm1nSEgE.css +6 -0
  166. package/frontend/build/client/_app/immutable/assets/12.Dm1nSEgE.css.br +0 -0
  167. package/frontend/build/client/_app/immutable/assets/12.Dm1nSEgE.css.gz +0 -0
  168. package/frontend/build/client/_app/immutable/assets/6.DdQVxyZK.css +6 -0
  169. package/frontend/build/client/_app/immutable/assets/6.DdQVxyZK.css.br +0 -0
  170. package/frontend/build/client/_app/immutable/assets/6.DdQVxyZK.css.gz +0 -0
  171. package/frontend/build/client/_app/immutable/assets/8.DOC8fPSI.css +6 -0
  172. package/frontend/build/client/_app/immutable/assets/8.DOC8fPSI.css.br +0 -0
  173. package/frontend/build/client/_app/immutable/assets/8.DOC8fPSI.css.gz +0 -0
  174. package/frontend/{.svelte-kit/output/client/_app/immutable/assets/Toast.DENwYn3g.css → build/client/_app/immutable/assets/Button.C1zsJAUG.css} +1 -1
  175. package/frontend/build/client/_app/immutable/assets/Button.C1zsJAUG.css.br +0 -0
  176. package/frontend/build/client/_app/immutable/assets/Button.C1zsJAUG.css.gz +0 -0
  177. package/frontend/build/client/_app/immutable/assets/ExportMenu.DsJQ1Qua.css +6 -0
  178. package/frontend/build/client/_app/immutable/assets/ExportMenu.DsJQ1Qua.css.br +0 -0
  179. package/frontend/build/client/_app/immutable/assets/ExportMenu.DsJQ1Qua.css.gz +0 -0
  180. package/frontend/{.svelte-kit/output/server/_app/immutable/assets/_layout.HkPnpRl9.css → build/client/_app/immutable/assets/_layout.B4TT3qNx.css} +1 -1
  181. package/frontend/build/client/_app/immutable/assets/_layout.B4TT3qNx.css.br +0 -0
  182. package/frontend/build/client/_app/immutable/assets/_layout.B4TT3qNx.css.gz +0 -0
  183. package/frontend/build/client/_app/immutable/assets/_page.4bPj83tb.css +6 -0
  184. package/frontend/build/client/_app/immutable/assets/_page.4bPj83tb.css.br +0 -0
  185. package/frontend/build/client/_app/immutable/assets/_page.4bPj83tb.css.gz +0 -0
  186. package/frontend/build/client/_app/immutable/assets/_page.BwgtEi_a.css +6 -0
  187. package/frontend/build/client/_app/immutable/assets/_page.BwgtEi_a.css.br +0 -0
  188. package/frontend/build/client/_app/immutable/assets/_page.BwgtEi_a.css.gz +0 -0
  189. package/frontend/build/client/_app/immutable/assets/_page.DOC8fPSI.css +6 -0
  190. package/frontend/build/client/_app/immutable/assets/_page.DOC8fPSI.css.br +0 -0
  191. package/frontend/build/client/_app/immutable/assets/_page.DOC8fPSI.css.gz +0 -0
  192. package/frontend/build/client/_app/immutable/assets/_page.Dm1nSEgE.css +6 -0
  193. package/frontend/build/client/_app/immutable/assets/_page.Dm1nSEgE.css.br +0 -0
  194. package/frontend/build/client/_app/immutable/assets/_page.Dm1nSEgE.css.gz +0 -0
  195. package/frontend/build/client/_app/immutable/chunks/{C2_rQ4aY.js → 3MBVX4Yb.js} +1 -1
  196. package/frontend/build/client/_app/immutable/chunks/3MBVX4Yb.js.br +0 -0
  197. package/frontend/build/client/_app/immutable/chunks/3MBVX4Yb.js.gz +0 -0
  198. package/frontend/{.svelte-kit/output/client/_app/immutable/chunks/CfkUW1vA.js → build/client/_app/immutable/chunks/6VDMVB5U.js} +1 -1
  199. package/frontend/build/client/_app/immutable/chunks/6VDMVB5U.js.br +0 -0
  200. package/frontend/build/client/_app/immutable/chunks/6VDMVB5U.js.gz +0 -0
  201. package/frontend/{.svelte-kit/output/client/_app/immutable/chunks/B0_HKFXV.js → build/client/_app/immutable/chunks/B2lVGNml.js} +1 -1
  202. package/frontend/build/client/_app/immutable/chunks/B2lVGNml.js.br +0 -0
  203. package/frontend/build/client/_app/immutable/chunks/B2lVGNml.js.gz +0 -0
  204. package/frontend/{.svelte-kit/output/client/_app/immutable/chunks/CboYYxrf.js → build/client/_app/immutable/chunks/BCh31ecr.js} +1 -1
  205. package/frontend/build/client/_app/immutable/chunks/BCh31ecr.js.br +6 -0
  206. package/frontend/build/client/_app/immutable/chunks/BCh31ecr.js.gz +0 -0
  207. package/frontend/build/client/_app/immutable/chunks/BDb8hZHu.js +6 -0
  208. package/frontend/build/client/_app/immutable/chunks/BDb8hZHu.js.br +0 -0
  209. package/frontend/build/client/_app/immutable/chunks/BDb8hZHu.js.gz +0 -0
  210. package/frontend/build/client/_app/immutable/chunks/{CeH-RgMb.js → BIf7lHIm.js} +1 -1
  211. package/frontend/build/client/_app/immutable/chunks/BIf7lHIm.js.br +0 -0
  212. package/frontend/build/client/_app/immutable/chunks/{CeH-RgMb.js.gz → BIf7lHIm.js.gz} +0 -0
  213. package/frontend/build/client/_app/immutable/chunks/BIjh3jiU.js +8 -0
  214. package/frontend/build/client/_app/immutable/chunks/BIjh3jiU.js.br +0 -0
  215. package/frontend/build/client/_app/immutable/chunks/BIjh3jiU.js.gz +0 -0
  216. package/frontend/build/client/_app/immutable/chunks/BTV7EXZb.js +11 -0
  217. package/frontend/build/client/_app/immutable/chunks/BTV7EXZb.js.br +0 -0
  218. package/frontend/build/client/_app/immutable/chunks/BTV7EXZb.js.gz +0 -0
  219. package/frontend/build/client/_app/immutable/chunks/{DAmOMhaf.js → BWGoOYU0.js} +1 -1
  220. package/frontend/build/client/_app/immutable/chunks/BWGoOYU0.js.br +0 -0
  221. package/frontend/build/client/_app/immutable/chunks/BWGoOYU0.js.gz +0 -0
  222. package/frontend/build/client/_app/immutable/chunks/BdBJfKUi.js +6 -0
  223. package/frontend/build/client/_app/immutable/chunks/BdBJfKUi.js.br +0 -0
  224. package/frontend/build/client/_app/immutable/chunks/BdBJfKUi.js.gz +0 -0
  225. package/frontend/{.svelte-kit/output/client/_app/immutable/chunks/BAvTKHxT.js → build/client/_app/immutable/chunks/BnXsGCy3.js} +1 -1
  226. package/frontend/build/client/_app/immutable/chunks/BnXsGCy3.js.br +0 -0
  227. package/frontend/build/client/_app/immutable/chunks/BnXsGCy3.js.gz +0 -0
  228. package/frontend/build/client/_app/immutable/chunks/BtTNggoY.js +8 -0
  229. package/frontend/build/client/_app/immutable/chunks/BtTNggoY.js.br +0 -0
  230. package/frontend/build/client/_app/immutable/chunks/BtTNggoY.js.gz +0 -0
  231. package/frontend/build/client/_app/immutable/chunks/C4Z3p6jE.js +6 -0
  232. package/frontend/build/client/_app/immutable/chunks/C4Z3p6jE.js.br +0 -0
  233. package/frontend/build/client/_app/immutable/chunks/C4Z3p6jE.js.gz +0 -0
  234. package/frontend/build/client/_app/immutable/chunks/CNpD-yNH.js +6 -0
  235. package/frontend/build/client/_app/immutable/chunks/CNpD-yNH.js.br +0 -0
  236. package/frontend/build/client/_app/immutable/chunks/CNpD-yNH.js.gz +0 -0
  237. package/frontend/build/client/_app/immutable/chunks/CUPWZLIN.js +6 -0
  238. package/frontend/build/client/_app/immutable/chunks/CUPWZLIN.js.br +0 -0
  239. package/frontend/build/client/_app/immutable/chunks/CUPWZLIN.js.gz +0 -0
  240. package/frontend/build/client/_app/immutable/chunks/{Ck6C3Fl0.js → CXQhSK1T.js} +1 -1
  241. package/frontend/build/client/_app/immutable/chunks/CXQhSK1T.js.br +0 -0
  242. package/frontend/build/client/_app/immutable/chunks/CXQhSK1T.js.gz +0 -0
  243. package/frontend/{.svelte-kit/output/client/_app/immutable/chunks/C00jnSU2.js → build/client/_app/immutable/chunks/CtgCYzu5.js} +1 -1
  244. package/frontend/build/client/_app/immutable/chunks/CtgCYzu5.js.br +0 -0
  245. package/frontend/build/client/_app/immutable/chunks/CtgCYzu5.js.gz +0 -0
  246. package/frontend/build/client/_app/immutable/chunks/D72giPTu.js +6 -0
  247. package/frontend/build/client/_app/immutable/chunks/D72giPTu.js.br +0 -0
  248. package/frontend/build/client/_app/immutable/chunks/D72giPTu.js.gz +0 -0
  249. package/frontend/build/client/_app/immutable/chunks/{GDjpV3r7.js → DDx3no2z.js} +1 -1
  250. package/frontend/build/client/_app/immutable/chunks/DDx3no2z.js.br +0 -0
  251. package/frontend/build/client/_app/immutable/chunks/DDx3no2z.js.gz +0 -0
  252. package/frontend/build/client/_app/immutable/chunks/D_thT6pZ.js +6 -0
  253. package/frontend/build/client/_app/immutable/chunks/D_thT6pZ.js.br +0 -0
  254. package/frontend/build/client/_app/immutable/chunks/D_thT6pZ.js.gz +0 -0
  255. package/frontend/{.svelte-kit/output/client/_app/immutable/chunks/C8S7qQjQ.js → build/client/_app/immutable/chunks/DeiVAbyn.js} +1 -1
  256. package/frontend/build/client/_app/immutable/chunks/DeiVAbyn.js.br +6 -0
  257. package/frontend/build/client/_app/immutable/chunks/DeiVAbyn.js.gz +0 -0
  258. package/frontend/build/client/_app/immutable/chunks/DiexacSB.js +6 -0
  259. package/frontend/build/client/_app/immutable/chunks/DiexacSB.js.br +0 -0
  260. package/frontend/build/client/_app/immutable/chunks/DiexacSB.js.gz +0 -0
  261. package/frontend/{.svelte-kit/output/client/_app/immutable/chunks/d2K3c8Kx.js → build/client/_app/immutable/chunks/Dlymnwnf.js} +1 -1
  262. package/frontend/build/client/_app/immutable/chunks/Dlymnwnf.js.br +0 -0
  263. package/frontend/build/client/_app/immutable/chunks/Dlymnwnf.js.gz +0 -0
  264. package/frontend/{.svelte-kit/output/client/_app/immutable/chunks/Cgw8TOOy.js → build/client/_app/immutable/chunks/gCgJ3Cwu.js} +1 -1
  265. package/frontend/build/client/_app/immutable/chunks/gCgJ3Cwu.js.br +0 -0
  266. package/frontend/build/client/_app/immutable/chunks/gCgJ3Cwu.js.gz +0 -0
  267. package/frontend/{.svelte-kit/output/client/_app/immutable/chunks/BJ_ypKl3.js → build/client/_app/immutable/chunks/htkwR9b-.js} +1 -1
  268. package/frontend/build/client/_app/immutable/chunks/htkwR9b-.js.br +0 -0
  269. package/frontend/build/client/_app/immutable/chunks/htkwR9b-.js.gz +0 -0
  270. package/frontend/{.svelte-kit/output/client/_app/immutable/chunks/C7uEQ-LH.js → build/client/_app/immutable/chunks/iL4SCrvY.js} +1 -1
  271. package/frontend/build/client/_app/immutable/chunks/iL4SCrvY.js.br +0 -0
  272. package/frontend/build/client/_app/immutable/chunks/iL4SCrvY.js.gz +0 -0
  273. package/frontend/build/client/_app/immutable/chunks/{CoTEzvLa.js → kFFd6Oo5.js} +1 -1
  274. package/frontend/build/client/_app/immutable/chunks/kFFd6Oo5.js.br +0 -0
  275. package/frontend/build/client/_app/immutable/chunks/kFFd6Oo5.js.gz +0 -0
  276. package/frontend/build/client/_app/immutable/chunks/pNZogwkM.js +6 -0
  277. package/frontend/build/client/_app/immutable/chunks/pNZogwkM.js.br +0 -0
  278. package/frontend/build/client/_app/immutable/chunks/pNZogwkM.js.gz +0 -0
  279. package/frontend/build/client/_app/immutable/chunks/{DWzEJYIF.js → prk8PJfA.js} +1 -1
  280. package/frontend/build/client/_app/immutable/chunks/prk8PJfA.js.br +0 -0
  281. package/frontend/build/client/_app/immutable/chunks/prk8PJfA.js.gz +0 -0
  282. package/frontend/build/client/_app/immutable/chunks/qvxlSGpD.js +6 -0
  283. package/frontend/build/client/_app/immutable/chunks/qvxlSGpD.js.br +0 -0
  284. package/frontend/build/client/_app/immutable/chunks/qvxlSGpD.js.gz +0 -0
  285. package/frontend/build/client/_app/immutable/chunks/r_d1Iu0W.js +6 -0
  286. package/frontend/build/client/_app/immutable/chunks/r_d1Iu0W.js.br +0 -0
  287. package/frontend/build/client/_app/immutable/chunks/r_d1Iu0W.js.gz +0 -0
  288. package/frontend/build/client/_app/immutable/chunks/{B00vxw57.js → tsOANt55.js} +1 -1
  289. package/frontend/build/client/_app/immutable/chunks/tsOANt55.js.br +0 -0
  290. package/frontend/build/client/_app/immutable/chunks/tsOANt55.js.gz +0 -0
  291. package/frontend/build/client/_app/immutable/chunks/zXSLr47H.js +6 -0
  292. package/frontend/build/client/_app/immutable/chunks/zXSLr47H.js.br +0 -0
  293. package/frontend/build/client/_app/immutable/chunks/zXSLr47H.js.gz +0 -0
  294. package/frontend/build/client/_app/immutable/entry/app.DgdSwPuN.js +7 -0
  295. package/frontend/build/client/_app/immutable/entry/app.DgdSwPuN.js.br +0 -0
  296. package/frontend/build/client/_app/immutable/entry/app.DgdSwPuN.js.gz +0 -0
  297. package/frontend/{.svelte-kit/output/client/_app/immutable/entry/start.BXOLyf9R.js → build/client/_app/immutable/entry/start.D_lhI48n.js} +1 -1
  298. package/frontend/build/client/_app/immutable/entry/{start.BXOLyf9R.js.br → start.D_lhI48n.js.br} +1 -1
  299. package/frontend/build/client/_app/immutable/entry/{start.BXOLyf9R.js.gz → start.D_lhI48n.js.gz} +0 -0
  300. package/frontend/build/client/_app/immutable/nodes/0.D2F-i1I5.js +6 -0
  301. package/frontend/build/client/_app/immutable/nodes/0.D2F-i1I5.js.br +0 -0
  302. package/frontend/build/client/_app/immutable/nodes/0.D2F-i1I5.js.gz +0 -0
  303. package/frontend/build/client/_app/immutable/nodes/{1.BI97il3r.js → 1.JIF2GfHq.js} +1 -1
  304. package/frontend/build/client/_app/immutable/nodes/1.JIF2GfHq.js.br +5 -0
  305. package/frontend/build/client/_app/immutable/nodes/1.JIF2GfHq.js.gz +0 -0
  306. package/frontend/build/client/_app/immutable/nodes/10.A0AHLfOt.js +6 -0
  307. package/frontend/build/client/_app/immutable/nodes/10.A0AHLfOt.js.br +0 -0
  308. package/frontend/build/client/_app/immutable/nodes/10.A0AHLfOt.js.gz +0 -0
  309. package/frontend/build/client/_app/immutable/nodes/11.CVSPxlqY.js +6 -0
  310. package/frontend/build/client/_app/immutable/nodes/11.CVSPxlqY.js.br +0 -0
  311. package/frontend/build/client/_app/immutable/nodes/11.CVSPxlqY.js.gz +0 -0
  312. package/frontend/build/client/_app/immutable/nodes/12.CnAR0AQb.js +6 -0
  313. package/frontend/build/client/_app/immutable/nodes/12.CnAR0AQb.js.br +0 -0
  314. package/frontend/build/client/_app/immutable/nodes/12.CnAR0AQb.js.gz +0 -0
  315. package/frontend/build/client/_app/immutable/nodes/{2.Dr6yugXz.js → 2.Bno00fr8.js} +1 -1
  316. package/frontend/build/client/_app/immutable/nodes/2.Bno00fr8.js.br +0 -0
  317. package/frontend/build/client/_app/immutable/nodes/2.Bno00fr8.js.gz +0 -0
  318. package/frontend/build/client/_app/immutable/nodes/3.B6KwaCsM.js +6 -0
  319. package/frontend/build/client/_app/immutable/nodes/3.B6KwaCsM.js.br +0 -0
  320. package/frontend/build/client/_app/immutable/nodes/3.B6KwaCsM.js.gz +0 -0
  321. package/frontend/build/client/_app/immutable/nodes/{4.DDADylfF.js → 4.BX70m3v6.js} +1 -1
  322. package/frontend/build/client/_app/immutable/nodes/4.BX70m3v6.js.br +0 -0
  323. package/frontend/build/client/_app/immutable/nodes/4.BX70m3v6.js.gz +0 -0
  324. package/frontend/build/client/_app/immutable/nodes/5.UIFh06yr.js +6 -0
  325. package/frontend/build/client/_app/immutable/nodes/5.UIFh06yr.js.br +0 -0
  326. package/frontend/build/client/_app/immutable/nodes/5.UIFh06yr.js.gz +0 -0
  327. package/frontend/build/client/_app/immutable/nodes/6.DZ1OV24V.js +10 -0
  328. package/frontend/build/client/_app/immutable/nodes/6.DZ1OV24V.js.br +0 -0
  329. package/frontend/build/client/_app/immutable/nodes/6.DZ1OV24V.js.gz +0 -0
  330. package/frontend/build/client/_app/immutable/nodes/7.B_XntBZ1.js +6 -0
  331. package/frontend/build/client/_app/immutable/nodes/7.B_XntBZ1.js.br +0 -0
  332. package/frontend/build/client/_app/immutable/nodes/7.B_XntBZ1.js.gz +0 -0
  333. package/frontend/build/client/_app/immutable/nodes/8.CVHgJw-E.js +9 -0
  334. package/frontend/build/client/_app/immutable/nodes/8.CVHgJw-E.js.br +0 -0
  335. package/frontend/build/client/_app/immutable/nodes/8.CVHgJw-E.js.gz +0 -0
  336. package/frontend/build/client/_app/immutable/nodes/{9.BOK0GNF_.js → 9.DDDQPmMj.js} +1 -1
  337. package/frontend/build/client/_app/immutable/nodes/9.DDDQPmMj.js.br +0 -0
  338. package/frontend/build/client/_app/immutable/nodes/9.DDDQPmMj.js.gz +0 -0
  339. package/frontend/build/client/_app/version.json +1 -1
  340. package/frontend/build/client/_app/version.json.br +0 -0
  341. package/frontend/build/client/_app/version.json.gz +0 -0
  342. package/frontend/build/server/chunks/0-38cvTs44.js +22 -0
  343. package/frontend/build/server/chunks/0-38cvTs44.js.map +5 -0
  344. package/frontend/build/server/chunks/{1-B3HpigzL.js → 1-CcYsajvR.js} +2 -2
  345. package/frontend/build/server/chunks/{1-B3HpigzL.js.map → 1-CcYsajvR.js.map} +1 -1
  346. package/frontend/build/server/chunks/10-CFR2MUJt.js +14 -0
  347. package/frontend/build/server/chunks/10-CFR2MUJt.js.map +5 -0
  348. package/frontend/build/server/chunks/11-BmkiRQ9D.js +14 -0
  349. package/frontend/build/server/chunks/11-BmkiRQ9D.js.map +5 -0
  350. package/frontend/build/server/chunks/12-BphJAwnL.js +14 -0
  351. package/frontend/build/server/chunks/12-BphJAwnL.js.map +5 -0
  352. package/frontend/build/server/chunks/2-Dalgd2D4.js +14 -0
  353. package/frontend/build/server/chunks/{2-DioMbKbC.js.map → 2-Dalgd2D4.js.map} +1 -1
  354. package/frontend/build/server/chunks/3-BvsmdXCj.js +14 -0
  355. package/frontend/build/server/chunks/{3-CgiZg_9v.js.map → 3-BvsmdXCj.js.map} +1 -1
  356. package/frontend/build/server/chunks/4-CN18WCEn.js +14 -0
  357. package/frontend/build/server/chunks/{4-BM-49dbE.js.map → 4-CN18WCEn.js.map} +1 -1
  358. package/frontend/build/server/chunks/5-BwLYF3xL.js +14 -0
  359. package/frontend/build/server/chunks/{5-Brx_KOzy.js.map → 5-BwLYF3xL.js.map} +1 -1
  360. package/frontend/build/server/chunks/6-DTM2N_k3.js +14 -0
  361. package/frontend/build/server/chunks/6-DTM2N_k3.js.map +5 -0
  362. package/frontend/build/server/chunks/7-DTNbErSe.js +14 -0
  363. package/frontend/build/server/chunks/7-DTNbErSe.js.map +5 -0
  364. package/frontend/build/server/chunks/8-BfCbb7pl.js +14 -0
  365. package/frontend/build/server/chunks/8-BfCbb7pl.js.map +5 -0
  366. package/frontend/build/server/chunks/9-CQKepnMw.js +14 -0
  367. package/frontend/build/server/chunks/{9-BMAKiAem.js.map → 9-CQKepnMw.js.map} +1 -1
  368. package/frontend/build/server/chunks/{Toast-CHB87F8k.js → Button-B9h9viZX.js} +3 -17
  369. package/frontend/build/server/chunks/Button-B9h9viZX.js.map +5 -0
  370. package/frontend/build/server/chunks/{ConfirmModal-CtGWHl0v.js → ConfirmModal-C6Cz898n.js} +2 -2
  371. package/frontend/build/server/chunks/{ConfirmModal-CtGWHl0v.js.map → ConfirmModal-C6Cz898n.js.map} +1 -1
  372. package/frontend/build/server/chunks/{EmptyState-Zpm9tJe1.js → EmptyState-CRtsJIv6.js} +2 -2
  373. package/frontend/build/server/chunks/{EmptyState-Zpm9tJe1.js.map → EmptyState-CRtsJIv6.js.map} +1 -1
  374. package/frontend/build/server/chunks/{_layout.svelte-C_6nsIpT.js → _layout.svelte-B8vZGefg.js} +6 -7
  375. package/frontend/build/server/chunks/_layout.svelte-B8vZGefg.js.map +5 -0
  376. package/frontend/build/server/chunks/{_page.svelte-CTebwzwy.js → _page.svelte-BrnXHxJ4.js} +14 -7
  377. package/frontend/build/server/chunks/_page.svelte-BrnXHxJ4.js.map +5 -0
  378. package/frontend/build/server/chunks/_page.svelte-C2WqvInJ.js +898 -0
  379. package/frontend/build/server/chunks/_page.svelte-C2WqvInJ.js.map +5 -0
  380. package/frontend/build/server/chunks/{_page.svelte-Bamoq11m.js → _page.svelte-CP6jA1ex.js} +6 -6
  381. package/frontend/build/server/chunks/{_page.svelte-Bamoq11m.js.map → _page.svelte-CP6jA1ex.js.map} +1 -1
  382. package/frontend/build/server/chunks/{_page.svelte-CbTrCeeX.js → _page.svelte-D6b-klLK.js} +9 -9
  383. package/frontend/build/server/chunks/{_page.svelte-CbTrCeeX.js.map → _page.svelte-D6b-klLK.js.map} +1 -1
  384. package/frontend/build/server/chunks/{_page.svelte-CmJKt3-H.js → _page.svelte-DBjTpquQ.js} +18 -21
  385. package/frontend/build/server/chunks/_page.svelte-DBjTpquQ.js.map +5 -0
  386. package/frontend/build/server/chunks/{_page.svelte-DHZhNTPg.js → _page.svelte-DM1_y4Oq.js} +60 -42
  387. package/frontend/build/server/chunks/_page.svelte-DM1_y4Oq.js.map +5 -0
  388. package/frontend/build/server/chunks/{_page.svelte-DObTHQe2.js → _page.svelte-Mo-O3HJ5.js} +7 -7
  389. package/frontend/build/server/chunks/{_page.svelte-DObTHQe2.js.map → _page.svelte-Mo-O3HJ5.js.map} +1 -1
  390. package/frontend/build/server/chunks/{_page.svelte-CAlhaCzS.js → _page.svelte-mZF4NrfU.js} +9 -12
  391. package/frontend/build/server/chunks/_page.svelte-mZF4NrfU.js.map +5 -0
  392. package/frontend/build/server/chunks/{_page.svelte-BNwU9zza.js → _page.svelte-nrlgIFaU.js} +8 -11
  393. package/frontend/build/server/chunks/_page.svelte-nrlgIFaU.js.map +5 -0
  394. package/frontend/build/server/chunks/{common-DYYTVHPw.js → common-DS-Z0UFe.js} +7 -2
  395. package/frontend/build/server/chunks/common-DS-Z0UFe.js.map +5 -0
  396. package/frontend/build/server/chunks/{constants-BYVkTZ-O.js → constants-OmHysD51.js} +2 -2
  397. package/frontend/build/server/chunks/{constants-BYVkTZ-O.js.map → constants-OmHysD51.js.map} +1 -1
  398. package/frontend/build/server/chunks/{format-2pqy61MU.js → format-Bqb0as15.js} +2 -2
  399. package/frontend/build/server/chunks/{format-2pqy61MU.js.map → format-Bqb0as15.js.map} +1 -1
  400. package/frontend/build/server/chunks/{reports-WuXG6tj3.js → reports-chCHCDzB.js} +2 -2
  401. package/frontend/build/server/chunks/{reports-WuXG6tj3.js.map → reports-chCHCDzB.js.map} +1 -1
  402. package/frontend/build/server/chunks/{reports2-CCpI0xkQ.js → reports2-Dr3zu9CD.js} +2 -2
  403. package/frontend/build/server/chunks/{reports2-CCpI0xkQ.js.map → reports2-Dr3zu9CD.js.map} +1 -1
  404. package/frontend/build/server/chunks/{repository-TYWcFuWP.js → repository-DSsWVKEb.js} +5 -3
  405. package/frontend/build/server/chunks/repository-DSsWVKEb.js.map +5 -0
  406. package/frontend/build/server/chunks/{runner-D5yCWOsy.js → runner-aaUtOqck.js} +3 -3
  407. package/frontend/build/server/chunks/{runner-D5yCWOsy.js.map → runner-aaUtOqck.js.map} +1 -1
  408. package/frontend/build/server/index.js +1 -1
  409. package/frontend/build/server/index.js.map +1 -1
  410. package/frontend/build/server/manifest.js +14 -14
  411. package/frontend/build/server/manifest.js.map +1 -1
  412. package/frontend/package-lock.json +14 -0
  413. package/frontend/package.json +2 -0
  414. package/frontend/src/lib/api/reports.js +7 -0
  415. package/frontend/src/lib/api/repository.js +28 -0
  416. package/frontend/src/lib/components/layout/RunnerPanel.svelte +2 -1
  417. package/frontend/src/lib/components/reports/RecordingPlayer.svelte +172 -2
  418. package/frontend/src/lib/components/ui/ExportMenu.svelte +154 -0
  419. package/frontend/src/lib/components/ui/NotificationStack.svelte +177 -0
  420. package/frontend/src/lib/constants.js +1 -1
  421. package/frontend/src/lib/copy/common.js +9 -0
  422. package/frontend/src/lib/copy/reports.js +20 -0
  423. package/frontend/src/lib/copy/repository.js +4 -0
  424. package/frontend/src/lib/copy/settings.js +15 -0
  425. package/frontend/src/lib/stores/notifications.js +23 -0
  426. package/frontend/src/lib/stores/replayVideo.js +51 -0
  427. package/frontend/src/lib/utils/download.js +28 -0
  428. package/frontend/src/lib/utils/replayCapture.js +91 -0
  429. package/frontend/src/lib/utils/replayVideo.js +111 -0
  430. package/frontend/src/routes/+layout.svelte +2 -0
  431. package/frontend/src/routes/reports/[id]/+page.svelte +38 -3
  432. package/frontend/src/routes/scheduled-tests/+page.svelte +9 -17
  433. package/frontend/src/routes/settings/+page.svelte +140 -56
  434. package/frontend/src/routes/test-repository/+page.svelte +44 -16
  435. package/frontend/src/routes/test-repository/runs/[id]/+page.svelte +14 -23
  436. package/frontend/src/routes/test-repository/suites/[id]/+page.svelte +38 -22
  437. package/package.json +1 -1
  438. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.5IJAEAjc.css +0 -6
  439. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.B9H_IpSU.css +0 -6
  440. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.COwSGmmy.css +0 -6
  441. package/frontend/.svelte-kit/adapter-node/_app/immutable/assets/_page.Dp6vaGRc.css +0 -6
  442. package/frontend/.svelte-kit/generated/client/nodes/13.js +0 -6
  443. package/frontend/.svelte-kit/output/client/_app/immutable/assets/10.CdaQUS6U.css +0 -6
  444. package/frontend/.svelte-kit/output/client/_app/immutable/assets/12.B9H_IpSU.css +0 -6
  445. package/frontend/.svelte-kit/output/client/_app/immutable/assets/6.BN5XbLUX.css +0 -6
  446. package/frontend/.svelte-kit/output/client/_app/immutable/assets/8.COwSGmmy.css +0 -6
  447. package/frontend/.svelte-kit/output/client/_app/immutable/assets/Button.FOWXxvc7.css +0 -6
  448. package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.5IJAEAjc.css +0 -6
  449. package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.B9H_IpSU.css +0 -6
  450. package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.COwSGmmy.css +0 -6
  451. package/frontend/.svelte-kit/output/client/_app/immutable/assets/_page.Dp6vaGRc.css +0 -6
  452. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/2-KCkWZO.js +0 -6
  453. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/BbYY_TzB.js +0 -6
  454. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/Beula-TH.js +0 -11
  455. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/CZWchtW8.js +0 -6
  456. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/CegSvdD-.js +0 -6
  457. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/Cfmt4_tJ.js +0 -6
  458. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/DB3YXVFP.js +0 -6
  459. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/DgQy0SB2.js +0 -6
  460. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/DiVmSEJa.js +0 -8
  461. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/Dl-F6VCo.js +0 -6
  462. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/DuAVKaL3.js +0 -6
  463. package/frontend/.svelte-kit/output/client/_app/immutable/chunks/K1h4wprj.js +0 -6
  464. package/frontend/.svelte-kit/output/client/_app/immutable/entry/app.DRjRA71t.js +0 -7
  465. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/0.CRb8Nyce.js +0 -6
  466. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/10.kyazROhw.js +0 -6
  467. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/11.B3vMgT2v.js +0 -6
  468. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/12.DkPcIrgW.js +0 -6
  469. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/3.DUiL7fb5.js +0 -6
  470. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/5.N4CeDeoD.js +0 -6
  471. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/6.DWd93Bv5.js +0 -10
  472. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/7.c8d1cQQM.js +0 -6
  473. package/frontend/.svelte-kit/output/client/_app/immutable/nodes/8.Cvd3MauU.js +0 -9
  474. package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.5IJAEAjc.css +0 -6
  475. package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.B9H_IpSU.css +0 -6
  476. package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.COwSGmmy.css +0 -6
  477. package/frontend/.svelte-kit/output/server/_app/immutable/assets/_page.Dp6vaGRc.css +0 -6
  478. package/frontend/build/client/_app/immutable/assets/0.CmJTG5mP.css.br +0 -0
  479. package/frontend/build/client/_app/immutable/assets/0.CmJTG5mP.css.gz +0 -0
  480. package/frontend/build/client/_app/immutable/assets/10.CdaQUS6U.css +0 -6
  481. package/frontend/build/client/_app/immutable/assets/10.CdaQUS6U.css.br +0 -0
  482. package/frontend/build/client/_app/immutable/assets/10.CdaQUS6U.css.gz +0 -0
  483. package/frontend/build/client/_app/immutable/assets/12.B9H_IpSU.css +0 -6
  484. package/frontend/build/client/_app/immutable/assets/12.B9H_IpSU.css.br +0 -0
  485. package/frontend/build/client/_app/immutable/assets/12.B9H_IpSU.css.gz +0 -0
  486. package/frontend/build/client/_app/immutable/assets/6.BN5XbLUX.css +0 -6
  487. package/frontend/build/client/_app/immutable/assets/6.BN5XbLUX.css.br +0 -0
  488. package/frontend/build/client/_app/immutable/assets/6.BN5XbLUX.css.gz +0 -0
  489. package/frontend/build/client/_app/immutable/assets/8.COwSGmmy.css +0 -6
  490. package/frontend/build/client/_app/immutable/assets/8.COwSGmmy.css.br +0 -0
  491. package/frontend/build/client/_app/immutable/assets/8.COwSGmmy.css.gz +0 -0
  492. package/frontend/build/client/_app/immutable/assets/Button.FOWXxvc7.css +0 -6
  493. package/frontend/build/client/_app/immutable/assets/Button.FOWXxvc7.css.br +0 -0
  494. package/frontend/build/client/_app/immutable/assets/Button.FOWXxvc7.css.gz +0 -0
  495. package/frontend/build/client/_app/immutable/assets/Toast.DENwYn3g.css.br +0 -0
  496. package/frontend/build/client/_app/immutable/assets/Toast.DENwYn3g.css.gz +0 -0
  497. package/frontend/build/client/_app/immutable/assets/_layout.HkPnpRl9.css.br +0 -0
  498. package/frontend/build/client/_app/immutable/assets/_layout.HkPnpRl9.css.gz +0 -0
  499. package/frontend/build/client/_app/immutable/assets/_page.5IJAEAjc.css +0 -6
  500. package/frontend/build/client/_app/immutable/assets/_page.5IJAEAjc.css.br +0 -0
  501. package/frontend/build/client/_app/immutable/assets/_page.5IJAEAjc.css.gz +0 -0
  502. package/frontend/build/client/_app/immutable/assets/_page.B9H_IpSU.css +0 -6
  503. package/frontend/build/client/_app/immutable/assets/_page.B9H_IpSU.css.br +0 -0
  504. package/frontend/build/client/_app/immutable/assets/_page.B9H_IpSU.css.gz +0 -0
  505. package/frontend/build/client/_app/immutable/assets/_page.COwSGmmy.css +0 -6
  506. package/frontend/build/client/_app/immutable/assets/_page.COwSGmmy.css.br +0 -0
  507. package/frontend/build/client/_app/immutable/assets/_page.COwSGmmy.css.gz +0 -0
  508. package/frontend/build/client/_app/immutable/assets/_page.Dp6vaGRc.css +0 -6
  509. package/frontend/build/client/_app/immutable/assets/_page.Dp6vaGRc.css.br +0 -0
  510. package/frontend/build/client/_app/immutable/assets/_page.Dp6vaGRc.css.gz +0 -0
  511. package/frontend/build/client/_app/immutable/chunks/2-KCkWZO.js +0 -6
  512. package/frontend/build/client/_app/immutable/chunks/2-KCkWZO.js.br +0 -0
  513. package/frontend/build/client/_app/immutable/chunks/2-KCkWZO.js.gz +0 -0
  514. package/frontend/build/client/_app/immutable/chunks/B00vxw57.js.br +0 -0
  515. package/frontend/build/client/_app/immutable/chunks/B00vxw57.js.gz +0 -0
  516. package/frontend/build/client/_app/immutable/chunks/B0_HKFXV.js.br +0 -0
  517. package/frontend/build/client/_app/immutable/chunks/B0_HKFXV.js.gz +0 -0
  518. package/frontend/build/client/_app/immutable/chunks/BAvTKHxT.js.br +0 -0
  519. package/frontend/build/client/_app/immutable/chunks/BAvTKHxT.js.gz +0 -0
  520. package/frontend/build/client/_app/immutable/chunks/BJ_ypKl3.js.br +0 -0
  521. package/frontend/build/client/_app/immutable/chunks/BJ_ypKl3.js.gz +0 -0
  522. package/frontend/build/client/_app/immutable/chunks/BbYY_TzB.js +0 -6
  523. package/frontend/build/client/_app/immutable/chunks/BbYY_TzB.js.br +0 -0
  524. package/frontend/build/client/_app/immutable/chunks/BbYY_TzB.js.gz +0 -0
  525. package/frontend/build/client/_app/immutable/chunks/Beula-TH.js +0 -11
  526. package/frontend/build/client/_app/immutable/chunks/Beula-TH.js.br +0 -0
  527. package/frontend/build/client/_app/immutable/chunks/Beula-TH.js.gz +0 -0
  528. package/frontend/build/client/_app/immutable/chunks/C00jnSU2.js.br +0 -0
  529. package/frontend/build/client/_app/immutable/chunks/C00jnSU2.js.gz +0 -0
  530. package/frontend/build/client/_app/immutable/chunks/C2_rQ4aY.js.br +0 -0
  531. package/frontend/build/client/_app/immutable/chunks/C2_rQ4aY.js.gz +0 -0
  532. package/frontend/build/client/_app/immutable/chunks/C7uEQ-LH.js.br +0 -0
  533. package/frontend/build/client/_app/immutable/chunks/C7uEQ-LH.js.gz +0 -0
  534. package/frontend/build/client/_app/immutable/chunks/C8S7qQjQ.js.br +0 -0
  535. package/frontend/build/client/_app/immutable/chunks/C8S7qQjQ.js.gz +0 -0
  536. package/frontend/build/client/_app/immutable/chunks/CZWchtW8.js +0 -6
  537. package/frontend/build/client/_app/immutable/chunks/CZWchtW8.js.br +0 -0
  538. package/frontend/build/client/_app/immutable/chunks/CZWchtW8.js.gz +0 -0
  539. package/frontend/build/client/_app/immutable/chunks/CboYYxrf.js.br +0 -6
  540. package/frontend/build/client/_app/immutable/chunks/CboYYxrf.js.gz +0 -0
  541. package/frontend/build/client/_app/immutable/chunks/CeH-RgMb.js.br +0 -0
  542. package/frontend/build/client/_app/immutable/chunks/CegSvdD-.js +0 -6
  543. package/frontend/build/client/_app/immutable/chunks/CegSvdD-.js.br +0 -0
  544. package/frontend/build/client/_app/immutable/chunks/CegSvdD-.js.gz +0 -0
  545. package/frontend/build/client/_app/immutable/chunks/CfkUW1vA.js.br +0 -0
  546. package/frontend/build/client/_app/immutable/chunks/CfkUW1vA.js.gz +0 -0
  547. package/frontend/build/client/_app/immutable/chunks/Cfmt4_tJ.js +0 -6
  548. package/frontend/build/client/_app/immutable/chunks/Cfmt4_tJ.js.br +0 -0
  549. package/frontend/build/client/_app/immutable/chunks/Cfmt4_tJ.js.gz +0 -0
  550. package/frontend/build/client/_app/immutable/chunks/Cgw8TOOy.js.br +0 -0
  551. package/frontend/build/client/_app/immutable/chunks/Cgw8TOOy.js.gz +0 -0
  552. package/frontend/build/client/_app/immutable/chunks/Ck6C3Fl0.js.br +0 -0
  553. package/frontend/build/client/_app/immutable/chunks/Ck6C3Fl0.js.gz +0 -0
  554. package/frontend/build/client/_app/immutable/chunks/CoTEzvLa.js.br +0 -0
  555. package/frontend/build/client/_app/immutable/chunks/CoTEzvLa.js.gz +0 -0
  556. package/frontend/build/client/_app/immutable/chunks/DAmOMhaf.js.br +0 -0
  557. package/frontend/build/client/_app/immutable/chunks/DAmOMhaf.js.gz +0 -0
  558. package/frontend/build/client/_app/immutable/chunks/DB3YXVFP.js +0 -6
  559. package/frontend/build/client/_app/immutable/chunks/DB3YXVFP.js.br +0 -0
  560. package/frontend/build/client/_app/immutable/chunks/DB3YXVFP.js.gz +0 -0
  561. package/frontend/build/client/_app/immutable/chunks/DWzEJYIF.js.br +0 -7
  562. package/frontend/build/client/_app/immutable/chunks/DWzEJYIF.js.gz +0 -0
  563. package/frontend/build/client/_app/immutable/chunks/DgQy0SB2.js +0 -6
  564. package/frontend/build/client/_app/immutable/chunks/DgQy0SB2.js.br +0 -0
  565. package/frontend/build/client/_app/immutable/chunks/DgQy0SB2.js.gz +0 -0
  566. package/frontend/build/client/_app/immutable/chunks/DiVmSEJa.js +0 -8
  567. package/frontend/build/client/_app/immutable/chunks/DiVmSEJa.js.br +0 -0
  568. package/frontend/build/client/_app/immutable/chunks/DiVmSEJa.js.gz +0 -0
  569. package/frontend/build/client/_app/immutable/chunks/Dl-F6VCo.js +0 -6
  570. package/frontend/build/client/_app/immutable/chunks/Dl-F6VCo.js.br +0 -0
  571. package/frontend/build/client/_app/immutable/chunks/Dl-F6VCo.js.gz +0 -0
  572. package/frontend/build/client/_app/immutable/chunks/DuAVKaL3.js +0 -6
  573. package/frontend/build/client/_app/immutable/chunks/DuAVKaL3.js.br +0 -0
  574. package/frontend/build/client/_app/immutable/chunks/DuAVKaL3.js.gz +0 -0
  575. package/frontend/build/client/_app/immutable/chunks/GDjpV3r7.js.br +0 -0
  576. package/frontend/build/client/_app/immutable/chunks/GDjpV3r7.js.gz +0 -0
  577. package/frontend/build/client/_app/immutable/chunks/K1h4wprj.js +0 -6
  578. package/frontend/build/client/_app/immutable/chunks/K1h4wprj.js.br +0 -0
  579. package/frontend/build/client/_app/immutable/chunks/K1h4wprj.js.gz +0 -0
  580. package/frontend/build/client/_app/immutable/chunks/d2K3c8Kx.js.br +0 -0
  581. package/frontend/build/client/_app/immutable/chunks/d2K3c8Kx.js.gz +0 -0
  582. package/frontend/build/client/_app/immutable/entry/app.DRjRA71t.js +0 -7
  583. package/frontend/build/client/_app/immutable/entry/app.DRjRA71t.js.br +0 -0
  584. package/frontend/build/client/_app/immutable/entry/app.DRjRA71t.js.gz +0 -0
  585. package/frontend/build/client/_app/immutable/nodes/0.CRb8Nyce.js +0 -6
  586. package/frontend/build/client/_app/immutable/nodes/0.CRb8Nyce.js.br +0 -0
  587. package/frontend/build/client/_app/immutable/nodes/0.CRb8Nyce.js.gz +0 -0
  588. package/frontend/build/client/_app/immutable/nodes/1.BI97il3r.js.br +0 -0
  589. package/frontend/build/client/_app/immutable/nodes/1.BI97il3r.js.gz +0 -0
  590. package/frontend/build/client/_app/immutable/nodes/10.kyazROhw.js +0 -6
  591. package/frontend/build/client/_app/immutable/nodes/10.kyazROhw.js.br +0 -0
  592. package/frontend/build/client/_app/immutable/nodes/10.kyazROhw.js.gz +0 -0
  593. package/frontend/build/client/_app/immutable/nodes/11.B3vMgT2v.js +0 -6
  594. package/frontend/build/client/_app/immutable/nodes/11.B3vMgT2v.js.br +0 -0
  595. package/frontend/build/client/_app/immutable/nodes/11.B3vMgT2v.js.gz +0 -0
  596. package/frontend/build/client/_app/immutable/nodes/12.DkPcIrgW.js +0 -6
  597. package/frontend/build/client/_app/immutable/nodes/12.DkPcIrgW.js.br +0 -0
  598. package/frontend/build/client/_app/immutable/nodes/12.DkPcIrgW.js.gz +0 -0
  599. package/frontend/build/client/_app/immutable/nodes/2.Dr6yugXz.js.br +0 -0
  600. package/frontend/build/client/_app/immutable/nodes/2.Dr6yugXz.js.gz +0 -0
  601. package/frontend/build/client/_app/immutable/nodes/3.DUiL7fb5.js +0 -6
  602. package/frontend/build/client/_app/immutable/nodes/3.DUiL7fb5.js.br +0 -0
  603. package/frontend/build/client/_app/immutable/nodes/3.DUiL7fb5.js.gz +0 -0
  604. package/frontend/build/client/_app/immutable/nodes/4.DDADylfF.js.br +0 -0
  605. package/frontend/build/client/_app/immutable/nodes/4.DDADylfF.js.gz +0 -0
  606. package/frontend/build/client/_app/immutable/nodes/5.N4CeDeoD.js +0 -6
  607. package/frontend/build/client/_app/immutable/nodes/5.N4CeDeoD.js.br +0 -0
  608. package/frontend/build/client/_app/immutable/nodes/5.N4CeDeoD.js.gz +0 -0
  609. package/frontend/build/client/_app/immutable/nodes/6.DWd93Bv5.js +0 -10
  610. package/frontend/build/client/_app/immutable/nodes/6.DWd93Bv5.js.br +0 -0
  611. package/frontend/build/client/_app/immutable/nodes/6.DWd93Bv5.js.gz +0 -0
  612. package/frontend/build/client/_app/immutable/nodes/7.c8d1cQQM.js +0 -6
  613. package/frontend/build/client/_app/immutable/nodes/7.c8d1cQQM.js.br +0 -0
  614. package/frontend/build/client/_app/immutable/nodes/7.c8d1cQQM.js.gz +0 -0
  615. package/frontend/build/client/_app/immutable/nodes/8.Cvd3MauU.js +0 -9
  616. package/frontend/build/client/_app/immutable/nodes/8.Cvd3MauU.js.br +0 -0
  617. package/frontend/build/client/_app/immutable/nodes/8.Cvd3MauU.js.gz +0 -0
  618. package/frontend/build/client/_app/immutable/nodes/9.BOK0GNF_.js.br +0 -0
  619. package/frontend/build/client/_app/immutable/nodes/9.BOK0GNF_.js.gz +0 -0
  620. package/frontend/build/server/chunks/0-_rljpEay.js +0 -22
  621. package/frontend/build/server/chunks/0-_rljpEay.js.map +0 -5
  622. package/frontend/build/server/chunks/10-BQBBYpxV.js +0 -14
  623. package/frontend/build/server/chunks/10-BQBBYpxV.js.map +0 -5
  624. package/frontend/build/server/chunks/11-10xw0TIP.js +0 -14
  625. package/frontend/build/server/chunks/11-10xw0TIP.js.map +0 -5
  626. package/frontend/build/server/chunks/12-CZ3_Uw3c.js +0 -14
  627. package/frontend/build/server/chunks/12-CZ3_Uw3c.js.map +0 -5
  628. package/frontend/build/server/chunks/2-DioMbKbC.js +0 -14
  629. package/frontend/build/server/chunks/3-CgiZg_9v.js +0 -14
  630. package/frontend/build/server/chunks/4-BM-49dbE.js +0 -14
  631. package/frontend/build/server/chunks/5-Brx_KOzy.js +0 -14
  632. package/frontend/build/server/chunks/6-C5swINND.js +0 -14
  633. package/frontend/build/server/chunks/6-C5swINND.js.map +0 -5
  634. package/frontend/build/server/chunks/7-B8e4y3CB.js +0 -14
  635. package/frontend/build/server/chunks/7-B8e4y3CB.js.map +0 -5
  636. package/frontend/build/server/chunks/8-BZtkZMIZ.js +0 -14
  637. package/frontend/build/server/chunks/8-BZtkZMIZ.js.map +0 -5
  638. package/frontend/build/server/chunks/9-BMAKiAem.js +0 -14
  639. package/frontend/build/server/chunks/Toast-CHB87F8k.js.map +0 -5
  640. package/frontend/build/server/chunks/_layout.svelte-C_6nsIpT.js.map +0 -5
  641. package/frontend/build/server/chunks/_page.svelte-BNwU9zza.js.map +0 -5
  642. package/frontend/build/server/chunks/_page.svelte-CAlhaCzS.js.map +0 -5
  643. package/frontend/build/server/chunks/_page.svelte-CTebwzwy.js.map +0 -5
  644. package/frontend/build/server/chunks/_page.svelte-CmJKt3-H.js.map +0 -5
  645. package/frontend/build/server/chunks/_page.svelte-DHZhNTPg.js.map +0 -5
  646. package/frontend/build/server/chunks/_page.svelte-ywHy9KCh.js +0 -852
  647. package/frontend/build/server/chunks/_page.svelte-ywHy9KCh.js.map +0 -5
  648. package/frontend/build/server/chunks/common-DYYTVHPw.js.map +0 -5
  649. package/frontend/build/server/chunks/repository-TYWcFuWP.js.map +0 -5
  650. package/frontend/src/lib/components/ui/Toast.svelte +0 -24
@@ -0,0 +1,6 @@
1
+ /*
2
+ * This file is part of Plum.
3
+ * Licensed under the MIT License. See LICENSE file in the project root for details.
4
+ */
5
+
6
+ import{s as j,a as g,e as U,t as E,b as ln,c as Ue}from"../chunks/6VDMVB5U.js";import{i as ct}from"../chunks/CtgCYzu5.js";import{e as nt,u as un,p as lt,o as Yt,s as x,d,j as l,f as re,g as r,k as h,t as H,x as le,c as ut,m as F,ao as hn,l as pe,b as xs,n as Ke}from"../chunks/BIf7lHIm.js";import{i as $,s as ht,a as _e}from"../chunks/D_thT6pZ.js";import{e as $e,t as O,i as je,a as xe,b as As,c as Vt,f as Oe,s as dn,h as pn}from"../chunks/BTV7EXZb.js";import{g as hs}from"../chunks/BIjh3jiU.js";import{p as Ss}from"../chunks/Dlymnwnf.js";import{s as ne,y as Te,A as fn,G as vn,O as ds,B as Nt,Q as ps,U as fs,r as Ot,N as _n,k as gn,q as vs,I as mn,J as yn,z as bn,C as wn}from"../chunks/C4Z3p6jE.js";import{a as Cs}from"../chunks/CXQhSK1T.js";import{b as kn,f as En,a as Rn}from"../chunks/kFFd6Oo5.js";import{b as Ee,p as Be,e as Ut,c as He,m as _s,s as xn,S as Re,a as gs,g as An,h as Sn,i as Cn,R as Tn,j as Bn,k as Ln,l as Nn,n as On,t as $t,T as Un,W as $n,B as In,o as qn,q as Pn,N as Dn,u as Vn,r as Mn,V as Fn,C as Wn,v as Kn,w as Hn,Q as zn,x as ms,y as Yn,z as jn,M as Jn,d as Gn,A as Xn,D as Qn,E as Zn,F as er,G as tr,H as sr}from"../chunks/htkwR9b-.js";import{j as nr,au as ys,av as rr,aw as ir,ax as or,ay as ar}from"../chunks/pNZogwkM.js";import{a as cr,v as lr}from"../chunks/BdBJfKUi.js";import{f as ur}from"../chunks/gCgJ3Cwu.js";import{t as hr,a as dr}from"../chunks/B2lVGNml.js";import{C as pr}from"../chunks/BWGoOYU0.js";import{B as fr}from"../chunks/DeiVAbyn.js";import{c as vr}from"../chunks/CUPWZLIN.js";import{d as _r,a as gr}from"../chunks/BDb8hZHu.js";import{r as mr,a as yr,d as br}from"../chunks/BtTNggoY.js";import{c as wr}from"../chunks/DDx3no2z.js";function It(n,e,t){nt(()=>{var s=un(()=>e(n,t==null?void 0:t())||{});if(s!=null&&s.destroy)return()=>s.destroy()})}const kr=!1,No=Object.freeze(Object.defineProperty({__proto__:null,ssr:kr},Symbol.toStringTag,{value:"Module"}));var Er=E('<span class="nav-sep svelte-10t98u4" aria-hidden="true"></span>'),Rr=E('<!> <a class="link svelte-10t98u4"> </a>',1),xr=E('<img alt="" class="project-logo svelte-10t98u4">'),Ar=E('<div class="project-card svelte-10t98u4"><!> <span class="project-name svelte-10t98u4"> </span></div>'),Sr=E('<span class="nav-user svelte-10t98u4"> </span>'),Cr=E('<hr class="mobile-sep svelte-10t98u4">'),Tr=E('<!> <a class="mobile-link svelte-10t98u4"> </a>',1),Br=E('<div class="mobile-menu svelte-10t98u4"><!> <a href="/settings" class="mobile-link svelte-10t98u4">Settings</a></div>'),Lr=E('<nav class="nav svelte-10t98u4"><div class="inner svelte-10t98u4"><a href="/" class="brand svelte-10t98u4"><span class="brand-serif svelte-10t98u4">Pl</span><span class="brand-sans svelte-10t98u4">um</span></a> <div class="links svelte-10t98u4"></div> <div class="actions svelte-10t98u4"><!> <!> <a href="/settings" class="settings-btn svelte-10t98u4" aria-label="Settings" title="Settings"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="3"></circle><path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83-2.83l.06-.06A1.65 1.65 0 0 0 4.68 15a1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 2.83-2.83l.06.06A1.65 1.65 0 0 0 9 4.68a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 2.83l-.06.06A1.65 1.65 0 0 0 19.4 9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z"></path></svg></a> <button class="hamburger svelte-10t98u4"><span class="svelte-10t98u4"></span> <span class="svelte-10t98u4"></span> <span class="svelte-10t98u4"></span></button></div></div> <!></nav>');function Nr(n,e){lt(e,!1);const[t,s]=ht(),i=()=>_e(Ss,"$page",t),a=()=>_e(Cs,"$auth",t);let u=F(!1),_=F({name:"",logoUrl:""});Yt(async()=>{try{x(_,await kn())}catch{}});const w=[{href:"/",label:"Automated Tests"},{href:"/reports",label:"Reports"},{href:"/scheduled-tests",label:"Scheduled"},{href:"/test-repository",label:"Test Repository",sep:!0}];function B(){x(u,!1)}ct();var C=Lr(),q=d(C),A=d(q),V=l(A,2);$e(V,5,()=>w,je,(I,L)=>{var ee=Rr(),Y=re(ee);{var se=oe=>{var ce=Er();g(oe,ce)};$(Y,oe=>{r(L).sep&&oe(se)})}var X=l(Y,2),he=d(X,!0);h(X),H(oe=>{ne(X,"href",r(L).href),O(X,"repo",r(L).sep),O(X,"active",oe),j(he,r(L).label)},[()=>r(L).href==="/"?i().url.pathname==="/":i().url.pathname.startsWith(r(L).href)],le),g(I,ee)}),h(V);var J=l(V,2),ae=d(J);{var ue=I=>{var L=Ar(),ee=d(L);{var Y=he=>{var oe=xr();H(()=>ne(oe,"src",r(_).logoUrl)),g(he,oe)};$(ee,he=>{r(_).logoUrl&&he(Y)})}var se=l(ee,2),X=d(se,!0);h(se),h(L),H(()=>j(X,r(_).name)),g(I,L)};$(ae,I=>{r(_).name&&I(ue)})}var W=l(ae,2);{var P=I=>{var L=Sr(),ee=d(L,!0);h(L),H(()=>j(ee,a().user.name)),g(I,L)};$(W,I=>{a().user&&I(P)})}var z=l(W,2),R=l(z,2),te=d(R),D=l(te,2),M=l(D,2);h(R),h(J),h(q);var G=l(q,2);{var ie=I=>{var L=Br(),ee=d(L);$e(ee,1,()=>w,je,(se,X)=>{var he=Tr(),oe=re(he);{var ce=Ae=>{var ft=Cr();g(Ae,ft)};$(oe,Ae=>{r(X).sep&&Ae(ce)})}var Ne=l(oe,2),Je=d(Ne,!0);h(Ne),H(Ae=>{ne(Ne,"href",r(X).href),O(Ne,"active",Ae),j(Je,r(X).label)},[()=>r(X).href==="/"?i().url.pathname==="/":i().url.pathname.startsWith(r(X).href)],le),U("click",Ne,B),g(se,he)});var Y=l(ee,2);h(L),H(()=>O(Y,"active",i().url.pathname==="/settings")),U("click",Y,B),xe(3,L,()=>As,()=>({duration:200})),g(I,L)};$(G,I=>{r(u)&&I(ie)})}h(C),H(()=>{O(z,"active",i().url.pathname==="/settings"),ne(R,"aria-label",r(u)?"Close menu":"Open menu"),ne(R,"aria-expanded",r(u)),O(te,"rotated",r(u)),O(D,"hidden",r(u)),O(M,"rotated-reverse",r(u))}),U("click",A,B),U("click",R,()=>x(u,!r(u))),g(n,C),ut(),s()}var Or=E('<main class="shell svelte-28zx1m"><!></main>');function Ur(n,e){var t=Or(),s=d(t);Vt(s,e,"default",{},null),h(t),g(n,t)}const we=Object.create(null);we.open="0";we.close="1";we.ping="2";we.pong="3";we.message="4";we.upgrade="5";we.noop="6";const rt=Object.create(null);Object.keys(we).forEach(n=>{rt[we[n]]=n});const Mt={type:"error",data:"parser error"},Ts=typeof Blob=="function"||typeof Blob<"u"&&Object.prototype.toString.call(Blob)==="[object BlobConstructor]",Bs=typeof ArrayBuffer=="function",Ls=n=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(n):n&&n.buffer instanceof ArrayBuffer,jt=({type:n,data:e},t,s)=>Ts&&e instanceof Blob?t?s(e):bs(e,s):Bs&&(e instanceof ArrayBuffer||Ls(e))?t?s(e):bs(new Blob([e]),s):s(we[n]+(e||"")),bs=(n,e)=>{const t=new FileReader;return t.onload=function(){const s=t.result.split(",")[1];e("b"+(s||""))},t.readAsDataURL(n)};function ws(n){return n instanceof Uint8Array?n:n instanceof ArrayBuffer?new Uint8Array(n):new Uint8Array(n.buffer,n.byteOffset,n.byteLength)}let qt;function $r(n,e){if(Ts&&n.data instanceof Blob)return n.data.arrayBuffer().then(ws).then(e);if(Bs&&(n.data instanceof ArrayBuffer||Ls(n.data)))return e(ws(n.data));jt(n,!1,t=>{qt||(qt=new TextEncoder),e(qt.encode(t))})}const ks="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Ye=typeof Uint8Array>"u"?[]:new Uint8Array(256);for(let n=0;n<ks.length;n++)Ye[ks.charCodeAt(n)]=n;const Ir=n=>{let e=n.length*.75,t=n.length,s,i=0,a,u,_,w;n[n.length-1]==="="&&(e--,n[n.length-2]==="="&&e--);const B=new ArrayBuffer(e),C=new Uint8Array(B);for(s=0;s<t;s+=4)a=Ye[n.charCodeAt(s)],u=Ye[n.charCodeAt(s+1)],_=Ye[n.charCodeAt(s+2)],w=Ye[n.charCodeAt(s+3)],C[i++]=a<<2|u>>4,C[i++]=(u&15)<<4|_>>2,C[i++]=(_&3)<<6|w&63;return B},qr=typeof ArrayBuffer=="function",Jt=(n,e)=>{if(typeof n!="string")return{type:"message",data:Ns(n,e)};const t=n.charAt(0);return t==="b"?{type:"message",data:Pr(n.substring(1),e)}:rt[t]?n.length>1?{type:rt[t],data:n.substring(1)}:{type:rt[t]}:Mt},Pr=(n,e)=>{if(qr){const t=Ir(n);return Ns(t,e)}else return{base64:!0,data:n}},Ns=(n,e)=>{switch(e){case"blob":return n instanceof Blob?n:new Blob([n]);case"arraybuffer":default:return n instanceof ArrayBuffer?n:n.buffer}},Os="",Dr=(n,e)=>{const t=n.length,s=new Array(t);let i=0;n.forEach((a,u)=>{jt(a,!1,_=>{s[u]=_,++i===t&&e(s.join(Os))})})},Vr=(n,e)=>{const t=n.split(Os),s=[];for(let i=0;i<t.length;i++){const a=Jt(t[i],e);if(s.push(a),a.type==="error")break}return s};function Mr(){return new TransformStream({transform(n,e){$r(n,t=>{const s=t.length;let i;if(s<126)i=new Uint8Array(1),new DataView(i.buffer).setUint8(0,s);else if(s<65536){i=new Uint8Array(3);const a=new DataView(i.buffer);a.setUint8(0,126),a.setUint16(1,s)}else{i=new Uint8Array(9);const a=new DataView(i.buffer);a.setUint8(0,127),a.setBigUint64(1,BigInt(s))}n.data&&typeof n.data!="string"&&(i[0]|=128),e.enqueue(i),e.enqueue(t)})}})}let Pt;function tt(n){return n.reduce((e,t)=>e+t.length,0)}function st(n,e){if(n[0].length===e)return n.shift();const t=new Uint8Array(e);let s=0;for(let i=0;i<e;i++)t[i]=n[0][s++],s===n[0].length&&(n.shift(),s=0);return n.length&&s<n[0].length&&(n[0]=n[0].slice(s)),t}function Fr(n,e){Pt||(Pt=new TextDecoder);const t=[];let s=0,i=-1,a=!1;return new TransformStream({transform(u,_){for(t.push(u);;){if(s===0){if(tt(t)<1)break;const w=st(t,1);a=(w[0]&128)===128,i=w[0]&127,i<126?s=3:i===126?s=1:s=2}else if(s===1){if(tt(t)<2)break;const w=st(t,2);i=new DataView(w.buffer,w.byteOffset,w.length).getUint16(0),s=3}else if(s===2){if(tt(t)<8)break;const w=st(t,8),B=new DataView(w.buffer,w.byteOffset,w.length),C=B.getUint32(0);if(C>Math.pow(2,21)-1){_.enqueue(Mt);break}i=C*Math.pow(2,32)+B.getUint32(4),s=3}else{if(tt(t)<i)break;const w=st(t,i);_.enqueue(Jt(a?w:Pt.decode(w),e)),s=0}if(i===0||i>n){_.enqueue(Mt);break}}}})}const Us=4;function Z(n){if(n)return Wr(n)}function Wr(n){for(var e in Z.prototype)n[e]=Z.prototype[e];return n}Z.prototype.on=Z.prototype.addEventListener=function(n,e){return this._callbacks=this._callbacks||{},(this._callbacks["$"+n]=this._callbacks["$"+n]||[]).push(e),this};Z.prototype.once=function(n,e){function t(){this.off(n,t),e.apply(this,arguments)}return t.fn=e,this.on(n,t),this};Z.prototype.off=Z.prototype.removeListener=Z.prototype.removeAllListeners=Z.prototype.removeEventListener=function(n,e){if(this._callbacks=this._callbacks||{},arguments.length==0)return this._callbacks={},this;var t=this._callbacks["$"+n];if(!t)return this;if(arguments.length==1)return delete this._callbacks["$"+n],this;for(var s,i=0;i<t.length;i++)if(s=t[i],s===e||s.fn===e){t.splice(i,1);break}return t.length===0&&delete this._callbacks["$"+n],this};Z.prototype.emit=function(n){this._callbacks=this._callbacks||{};for(var e=new Array(arguments.length-1),t=this._callbacks["$"+n],s=1;s<arguments.length;s++)e[s-1]=arguments[s];if(t){t=t.slice(0);for(var s=0,i=t.length;s<i;++s)t[s].apply(this,e)}return this};Z.prototype.emitReserved=Z.prototype.emit;Z.prototype.listeners=function(n){return this._callbacks=this._callbacks||{},this._callbacks["$"+n]||[]};Z.prototype.hasListeners=function(n){return!!this.listeners(n).length};const dt=typeof Promise=="function"&&typeof Promise.resolve=="function"?e=>Promise.resolve().then(e):(e,t)=>t(e,0),fe=typeof self<"u"?self:typeof window<"u"?window:Function("return this")(),Kr="arraybuffer";function $s(n,...e){return e.reduce((t,s)=>(n.hasOwnProperty(s)&&(t[s]=n[s]),t),{})}const Hr=fe.setTimeout,zr=fe.clearTimeout;function pt(n,e){e.useNativeTimers?(n.setTimeoutFn=Hr.bind(fe),n.clearTimeoutFn=zr.bind(fe)):(n.setTimeoutFn=fe.setTimeout.bind(fe),n.clearTimeoutFn=fe.clearTimeout.bind(fe))}const Yr=1.33;function jr(n){return typeof n=="string"?Jr(n):Math.ceil((n.byteLength||n.size)*Yr)}function Jr(n){let e=0,t=0;for(let s=0,i=n.length;s<i;s++)e=n.charCodeAt(s),e<128?t+=1:e<2048?t+=2:e<55296||e>=57344?t+=3:(s++,t+=4);return t}function Is(){return Date.now().toString(36).substring(3)+Math.random().toString(36).substring(2,5)}function Gr(n){let e="";for(let t in n)n.hasOwnProperty(t)&&(e.length&&(e+="&"),e+=encodeURIComponent(t)+"="+encodeURIComponent(n[t]));return e}function Xr(n){let e={},t=n.split("&");for(let s=0,i=t.length;s<i;s++){let a=t[s].split("=");e[decodeURIComponent(a[0])]=decodeURIComponent(a[1])}return e}class Qr extends Error{constructor(e,t,s){super(e),this.description=t,this.context=s,this.type="TransportError"}}class Gt extends Z{constructor(e){super(),this.writable=!1,pt(this,e),this.opts=e,this.query=e.query,this.socket=e.socket,this.supportsBinary=!e.forceBase64}onError(e,t,s){return super.emitReserved("error",new Qr(e,t,s)),this}open(){return this.readyState="opening",this.doOpen(),this}close(){return(this.readyState==="opening"||this.readyState==="open")&&(this.doClose(),this.onClose()),this}send(e){this.readyState==="open"&&this.write(e)}onOpen(){this.readyState="open",this.writable=!0,super.emitReserved("open")}onData(e){const t=Jt(e,this.socket.binaryType);this.onPacket(t)}onPacket(e){super.emitReserved("packet",e)}onClose(e){this.readyState="closed",super.emitReserved("close",e)}pause(e){}createUri(e,t={}){return e+"://"+this._hostname()+this._port()+this.opts.path+this._query(t)}_hostname(){const e=this.opts.hostname;return e.indexOf(":")===-1?e:"["+e+"]"}_port(){return this.opts.port&&(this.opts.secure&&+(this.opts.port!==443)||!this.opts.secure&&Number(this.opts.port)!==80)?":"+this.opts.port:""}_query(e){const t=Gr(e);return t.length?"?"+t:""}}class Zr extends Gt{constructor(){super(...arguments),this._polling=!1}get name(){return"polling"}doOpen(){this._poll()}pause(e){this.readyState="pausing";const t=()=>{this.readyState="paused",e()};if(this._polling||!this.writable){let s=0;this._polling&&(s++,this.once("pollComplete",function(){--s||t()})),this.writable||(s++,this.once("drain",function(){--s||t()}))}else t()}_poll(){this._polling=!0,this.doPoll(),this.emitReserved("poll")}onData(e){const t=s=>{if(this.readyState==="opening"&&s.type==="open"&&this.onOpen(),s.type==="close")return this.onClose({description:"transport closed by the server"}),!1;this.onPacket(s)};Vr(e,this.socket.binaryType).forEach(t),this.readyState!=="closed"&&(this._polling=!1,this.emitReserved("pollComplete"),this.readyState==="open"&&this._poll())}doClose(){const e=()=>{this.write([{type:"close"}])};this.readyState==="open"?e():this.once("open",e)}write(e){this.writable=!1,Dr(e,t=>{this.doWrite(t,()=>{this.writable=!0,this.emitReserved("drain")})})}uri(){const e=this.opts.secure?"https":"http",t=this.query||{};return this.opts.timestampRequests!==!1&&(t[this.opts.timestampParam]=Is()),!this.supportsBinary&&!t.sid&&(t.b64=1),this.createUri(e,t)}}let qs=!1;try{qs=typeof XMLHttpRequest<"u"&&"withCredentials"in new XMLHttpRequest}catch{}const ei=qs;function ti(){}class si extends Zr{constructor(e){if(super(e),typeof location<"u"){const t=location.protocol==="https:";let s=location.port;s||(s=t?"443":"80"),this.xd=typeof location<"u"&&e.hostname!==location.hostname||s!==e.port}}doWrite(e,t){const s=this.request({method:"POST",data:e});s.on("success",t),s.on("error",(i,a)=>{this.onError("xhr post error",i,a)})}doPoll(){const e=this.request();e.on("data",this.onData.bind(this)),e.on("error",(t,s)=>{this.onError("xhr poll error",t,s)}),this.pollXhr=e}}class be extends Z{constructor(e,t,s){super(),this.createRequest=e,pt(this,s),this._opts=s,this._method=s.method||"GET",this._uri=t,this._data=s.data!==void 0?s.data:null,this._create()}_create(){var e;const t=$s(this._opts,"agent","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","autoUnref");t.xdomain=!!this._opts.xd;const s=this._xhr=this.createRequest(t);try{s.open(this._method,this._uri,!0);try{if(this._opts.extraHeaders){s.setDisableHeaderCheck&&s.setDisableHeaderCheck(!0);for(let i in this._opts.extraHeaders)this._opts.extraHeaders.hasOwnProperty(i)&&s.setRequestHeader(i,this._opts.extraHeaders[i])}}catch{}if(this._method==="POST")try{s.setRequestHeader("Content-type","text/plain;charset=UTF-8")}catch{}try{s.setRequestHeader("Accept","*/*")}catch{}(e=this._opts.cookieJar)===null||e===void 0||e.addCookies(s),"withCredentials"in s&&(s.withCredentials=this._opts.withCredentials),this._opts.requestTimeout&&(s.timeout=this._opts.requestTimeout),s.onreadystatechange=()=>{var i;s.readyState===3&&((i=this._opts.cookieJar)===null||i===void 0||i.parseCookies(s.getResponseHeader("set-cookie"))),s.readyState===4&&(s.status===200||s.status===1223?this._onLoad():this.setTimeoutFn(()=>{this._onError(typeof s.status=="number"?s.status:0)},0))},s.send(this._data)}catch(i){this.setTimeoutFn(()=>{this._onError(i)},0);return}typeof document<"u"&&(this._index=be.requestsCount++,be.requests[this._index]=this)}_onError(e){this.emitReserved("error",e,this._xhr),this._cleanup(!0)}_cleanup(e){if(!(typeof this._xhr>"u"||this._xhr===null)){if(this._xhr.onreadystatechange=ti,e)try{this._xhr.abort()}catch{}typeof document<"u"&&delete be.requests[this._index],this._xhr=null}}_onLoad(){const e=this._xhr.responseText;e!==null&&(this.emitReserved("data",e),this.emitReserved("success"),this._cleanup())}abort(){this._cleanup()}}be.requestsCount=0;be.requests={};if(typeof document<"u"){if(typeof attachEvent=="function")attachEvent("onunload",Es);else if(typeof addEventListener=="function"){const n="onpagehide"in fe?"pagehide":"unload";addEventListener(n,Es,!1)}}function Es(){for(let n in be.requests)be.requests.hasOwnProperty(n)&&be.requests[n].abort()}const ni=function(){const n=Ps({xdomain:!1});return n&&n.responseType!==null}();class ri extends si{constructor(e){super(e);const t=e&&e.forceBase64;this.supportsBinary=ni&&!t}request(e={}){return Object.assign(e,{xd:this.xd},this.opts),new be(Ps,this.uri(),e)}}function Ps(n){const e=n.xdomain;try{if(typeof XMLHttpRequest<"u"&&(!e||ei))return new XMLHttpRequest}catch{}if(!e)try{return new fe[["Active"].concat("Object").join("X")]("Microsoft.XMLHTTP")}catch{}}const Ds=typeof navigator<"u"&&typeof navigator.product=="string"&&navigator.product.toLowerCase()==="reactnative";class ii extends Gt{get name(){return"websocket"}doOpen(){const e=this.uri(),t=this.opts.protocols,s=Ds?{}:$s(this.opts,"agent","perMessageDeflate","pfx","key","passphrase","cert","ca","ciphers","rejectUnauthorized","localAddress","protocolVersion","origin","maxPayload","family","checkServerIdentity");this.opts.extraHeaders&&(s.headers=this.opts.extraHeaders);try{this.ws=this.createSocket(e,t,s)}catch(i){return this.emitReserved("error",i)}this.ws.binaryType=this.socket.binaryType,this.addEventListeners()}addEventListeners(){this.ws.onopen=()=>{this.opts.autoUnref&&this.ws._socket.unref(),this.onOpen()},this.ws.onclose=e=>this.onClose({description:"websocket connection closed",context:e}),this.ws.onmessage=e=>this.onData(e.data),this.ws.onerror=e=>this.onError("websocket error",e)}write(e){this.writable=!1;for(let t=0;t<e.length;t++){const s=e[t],i=t===e.length-1;jt(s,this.supportsBinary,a=>{try{this.doWrite(s,a)}catch{}i&&dt(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){typeof this.ws<"u"&&(this.ws.onerror=()=>{},this.ws.close(),this.ws=null)}uri(){const e=this.opts.secure?"wss":"ws",t=this.query||{};return this.opts.timestampRequests&&(t[this.opts.timestampParam]=Is()),this.supportsBinary||(t.b64=1),this.createUri(e,t)}}const Dt=fe.WebSocket||fe.MozWebSocket;class oi extends ii{createSocket(e,t,s){return Ds?new Dt(e,t,s):t?new Dt(e,t):new Dt(e)}doWrite(e,t){this.ws.send(t)}}class ai extends Gt{get name(){return"webtransport"}doOpen(){try{this._transport=new WebTransport(this.createUri("https"),this.opts.transportOptions[this.name])}catch(e){return this.emitReserved("error",e)}this._transport.closed.then(()=>{this.onClose()}).catch(e=>{this.onError("webtransport error",e)}),this._transport.ready.then(()=>{this._transport.createBidirectionalStream().then(e=>{const t=Fr(Number.MAX_SAFE_INTEGER,this.socket.binaryType),s=e.readable.pipeThrough(t).getReader(),i=Mr();i.readable.pipeTo(e.writable),this._writer=i.writable.getWriter();const a=()=>{s.read().then(({done:_,value:w})=>{_||(this.onPacket(w),a())}).catch(_=>{})};a();const u={type:"open"};this.query.sid&&(u.data=`{"sid":"${this.query.sid}"}`),this._writer.write(u).then(()=>this.onOpen())})})}write(e){this.writable=!1;for(let t=0;t<e.length;t++){const s=e[t],i=t===e.length-1;this._writer.write(s).then(()=>{i&&dt(()=>{this.writable=!0,this.emitReserved("drain")},this.setTimeoutFn)})}}doClose(){var e;(e=this._transport)===null||e===void 0||e.close()}}const ci={websocket:oi,webtransport:ai,polling:ri},li=/^(?:(?![^:@\/?#]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@\/?#]*)(?::([^:@\/?#]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/,ui=["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"];function Ft(n){if(n.length>8e3)throw"URI too long";const e=n,t=n.indexOf("["),s=n.indexOf("]");t!=-1&&s!=-1&&(n=n.substring(0,t)+n.substring(t,s).replace(/:/g,";")+n.substring(s,n.length));let i=li.exec(n||""),a={},u=14;for(;u--;)a[ui[u]]=i[u]||"";return t!=-1&&s!=-1&&(a.source=e,a.host=a.host.substring(1,a.host.length-1).replace(/;/g,":"),a.authority=a.authority.replace("[","").replace("]","").replace(/;/g,":"),a.ipv6uri=!0),a.pathNames=hi(a,a.path),a.queryKey=di(a,a.query),a}function hi(n,e){const t=/\/{2,9}/g,s=e.replace(t,"/").split("/");return(e.slice(0,1)=="/"||e.length===0)&&s.splice(0,1),e.slice(-1)=="/"&&s.splice(s.length-1,1),s}function di(n,e){const t={};return e.replace(/(?:^|&)([^&=]*)=?([^&]*)/g,function(s,i,a){i&&(t[i]=a)}),t}const Wt=typeof addEventListener=="function"&&typeof removeEventListener=="function",it=[];Wt&&addEventListener("offline",()=>{it.forEach(n=>n())},!1);class Le extends Z{constructor(e,t){if(super(),this.binaryType=Kr,this.writeBuffer=[],this._prevBufferLen=0,this._pingInterval=-1,this._pingTimeout=-1,this._maxPayload=-1,this._pingTimeoutTime=1/0,e&&typeof e=="object"&&(t=e,e=null),e){const s=Ft(e);t.hostname=s.host,t.secure=s.protocol==="https"||s.protocol==="wss",t.port=s.port,s.query&&(t.query=s.query)}else t.host&&(t.hostname=Ft(t.host).host);pt(this,t),this.secure=t.secure!=null?t.secure:typeof location<"u"&&location.protocol==="https:",t.hostname&&!t.port&&(t.port=this.secure?"443":"80"),this.hostname=t.hostname||(typeof location<"u"?location.hostname:"localhost"),this.port=t.port||(typeof location<"u"&&location.port?location.port:this.secure?"443":"80"),this.transports=[],this._transportsByName={},t.transports.forEach(s=>{const i=s.prototype.name;this.transports.push(i),this._transportsByName[i]=s}),this.opts=Object.assign({path:"/engine.io",agent:!1,withCredentials:!1,upgrade:!0,timestampParam:"t",rememberUpgrade:!1,addTrailingSlash:!0,rejectUnauthorized:!0,perMessageDeflate:{threshold:1024},transportOptions:{},closeOnBeforeunload:!1},t),this.opts.path=this.opts.path.replace(/\/$/,"")+(this.opts.addTrailingSlash?"/":""),typeof this.opts.query=="string"&&(this.opts.query=Xr(this.opts.query)),Wt&&(this.opts.closeOnBeforeunload&&(this._beforeunloadEventListener=()=>{this.transport&&(this.transport.removeAllListeners(),this.transport.close())},addEventListener("beforeunload",this._beforeunloadEventListener,!1)),this.hostname!=="localhost"&&(this._offlineEventListener=()=>{this._onClose("transport close",{description:"network connection lost"})},it.push(this._offlineEventListener))),this.opts.withCredentials&&(this._cookieJar=void 0),this._open()}createTransport(e){const t=Object.assign({},this.opts.query);t.EIO=Us,t.transport=e,this.id&&(t.sid=this.id);const s=Object.assign({},this.opts,{query:t,socket:this,hostname:this.hostname,secure:this.secure,port:this.port},this.opts.transportOptions[e]);return new this._transportsByName[e](s)}_open(){if(this.transports.length===0){this.setTimeoutFn(()=>{this.emitReserved("error","No transports available")},0);return}const e=this.opts.rememberUpgrade&&Le.priorWebsocketSuccess&&this.transports.indexOf("websocket")!==-1?"websocket":this.transports[0];this.readyState="opening";const t=this.createTransport(e);t.open(),this.setTransport(t)}setTransport(e){this.transport&&this.transport.removeAllListeners(),this.transport=e,e.on("drain",this._onDrain.bind(this)).on("packet",this._onPacket.bind(this)).on("error",this._onError.bind(this)).on("close",t=>this._onClose("transport close",t))}onOpen(){this.readyState="open",Le.priorWebsocketSuccess=this.transport.name==="websocket",this.emitReserved("open"),this.flush()}_onPacket(e){if(this.readyState==="opening"||this.readyState==="open"||this.readyState==="closing")switch(this.emitReserved("packet",e),this.emitReserved("heartbeat"),e.type){case"open":this.onHandshake(JSON.parse(e.data));break;case"ping":this._sendPacket("pong"),this.emitReserved("ping"),this.emitReserved("pong"),this._resetPingTimeout();break;case"error":const t=new Error("server error");t.code=e.data,this._onError(t);break;case"message":this.emitReserved("data",e.data),this.emitReserved("message",e.data);break}}onHandshake(e){this.emitReserved("handshake",e),this.id=e.sid,this.transport.query.sid=e.sid,this._pingInterval=e.pingInterval,this._pingTimeout=e.pingTimeout,this._maxPayload=e.maxPayload,this.onOpen(),this.readyState!=="closed"&&this._resetPingTimeout()}_resetPingTimeout(){this.clearTimeoutFn(this._pingTimeoutTimer);const e=this._pingInterval+this._pingTimeout;this._pingTimeoutTime=Date.now()+e,this._pingTimeoutTimer=this.setTimeoutFn(()=>{this._onClose("ping timeout")},e),this.opts.autoUnref&&this._pingTimeoutTimer.unref()}_onDrain(){this.writeBuffer.splice(0,this._prevBufferLen),this._prevBufferLen=0,this.writeBuffer.length===0?this.emitReserved("drain"):this.flush()}flush(){if(this.readyState!=="closed"&&this.transport.writable&&!this.upgrading&&this.writeBuffer.length){const e=this._getWritablePackets();this.transport.send(e),this._prevBufferLen=e.length,this.emitReserved("flush")}}_getWritablePackets(){if(!(this._maxPayload&&this.transport.name==="polling"&&this.writeBuffer.length>1))return this.writeBuffer;let t=1;for(let s=0;s<this.writeBuffer.length;s++){const i=this.writeBuffer[s].data;if(i&&(t+=jr(i)),s>0&&t>this._maxPayload)return this.writeBuffer.slice(0,s);t+=2}return this.writeBuffer}_hasPingExpired(){if(!this._pingTimeoutTime)return!0;const e=Date.now()>this._pingTimeoutTime;return e&&(this._pingTimeoutTime=0,dt(()=>{this._onClose("ping timeout")},this.setTimeoutFn)),e}write(e,t,s){return this._sendPacket("message",e,t,s),this}send(e,t,s){return this._sendPacket("message",e,t,s),this}_sendPacket(e,t,s,i){if(typeof t=="function"&&(i=t,t=void 0),typeof s=="function"&&(i=s,s=null),this.readyState==="closing"||this.readyState==="closed")return;s=s||{},s.compress=s.compress!==!1;const a={type:e,data:t,options:s};this.emitReserved("packetCreate",a),this.writeBuffer.push(a),i&&this.once("flush",i),this.flush()}close(){const e=()=>{this._onClose("forced close"),this.transport.close()},t=()=>{this.off("upgrade",t),this.off("upgradeError",t),e()},s=()=>{this.once("upgrade",t),this.once("upgradeError",t)};return(this.readyState==="opening"||this.readyState==="open")&&(this.readyState="closing",this.writeBuffer.length?this.once("drain",()=>{this.upgrading?s():e()}):this.upgrading?s():e()),this}_onError(e){if(Le.priorWebsocketSuccess=!1,this.opts.tryAllTransports&&this.transports.length>1&&this.readyState==="opening")return this.transports.shift(),this._open();this.emitReserved("error",e),this._onClose("transport error",e)}_onClose(e,t){if(this.readyState==="opening"||this.readyState==="open"||this.readyState==="closing"){if(this.clearTimeoutFn(this._pingTimeoutTimer),this.transport.removeAllListeners("close"),this.transport.close(),this.transport.removeAllListeners(),Wt&&(this._beforeunloadEventListener&&removeEventListener("beforeunload",this._beforeunloadEventListener,!1),this._offlineEventListener)){const s=it.indexOf(this._offlineEventListener);s!==-1&&it.splice(s,1)}this.readyState="closed",this.id=null,this.emitReserved("close",e,t),this.writeBuffer=[],this._prevBufferLen=0}}}Le.protocol=Us;class pi extends Le{constructor(){super(...arguments),this._upgrades=[]}onOpen(){if(super.onOpen(),this.readyState==="open"&&this.opts.upgrade)for(let e=0;e<this._upgrades.length;e++)this._probe(this._upgrades[e])}_probe(e){let t=this.createTransport(e),s=!1;Le.priorWebsocketSuccess=!1;const i=()=>{s||(t.send([{type:"ping",data:"probe"}]),t.once("packet",q=>{if(!s)if(q.type==="pong"&&q.data==="probe"){if(this.upgrading=!0,this.emitReserved("upgrading",t),!t)return;Le.priorWebsocketSuccess=t.name==="websocket",this.transport.pause(()=>{s||this.readyState!=="closed"&&(C(),this.setTransport(t),t.send([{type:"upgrade"}]),this.emitReserved("upgrade",t),t=null,this.upgrading=!1,this.flush())})}else{const A=new Error("probe error");A.transport=t.name,this.emitReserved("upgradeError",A)}}))};function a(){s||(s=!0,C(),t.close(),t=null)}const u=q=>{const A=new Error("probe error: "+q);A.transport=t.name,a(),this.emitReserved("upgradeError",A)};function _(){u("transport closed")}function w(){u("socket closed")}function B(q){t&&q.name!==t.name&&a()}const C=()=>{t.removeListener("open",i),t.removeListener("error",u),t.removeListener("close",_),this.off("close",w),this.off("upgrading",B)};t.once("open",i),t.once("error",u),t.once("close",_),this.once("close",w),this.once("upgrading",B),this._upgrades.indexOf("webtransport")!==-1&&e!=="webtransport"?this.setTimeoutFn(()=>{s||t.open()},200):t.open()}onHandshake(e){this._upgrades=this._filterUpgrades(e.upgrades),super.onHandshake(e)}_filterUpgrades(e){const t=[];for(let s=0;s<e.length;s++)~this.transports.indexOf(e[s])&&t.push(e[s]);return t}}let fi=class extends pi{constructor(e,t={}){const s=typeof e=="object"?e:t;(!s.transports||s.transports&&typeof s.transports[0]=="string")&&(s.transports=(s.transports||["polling","websocket","webtransport"]).map(i=>ci[i]).filter(i=>!!i)),super(e,s)}};function vi(n,e="",t){let s=n;t=t||typeof location<"u"&&location,n==null&&(n=t.protocol+"//"+t.host),typeof n=="string"&&(n.charAt(0)==="/"&&(n.charAt(1)==="/"?n=t.protocol+n:n=t.host+n),/^(https?|wss?):\/\//.test(n)||(typeof t<"u"?n=t.protocol+"//"+n:n="https://"+n),s=Ft(n)),s.port||(/^(http|ws)$/.test(s.protocol)?s.port="80":/^(http|ws)s$/.test(s.protocol)&&(s.port="443")),s.path=s.path||"/";const a=s.host.indexOf(":")!==-1?"["+s.host+"]":s.host;return s.id=s.protocol+"://"+a+":"+s.port+e,s.href=s.protocol+"://"+a+(t&&t.port===s.port?"":":"+s.port),s}const _i=typeof ArrayBuffer=="function",gi=n=>typeof ArrayBuffer.isView=="function"?ArrayBuffer.isView(n):n.buffer instanceof ArrayBuffer,Vs=Object.prototype.toString,mi=typeof Blob=="function"||typeof Blob<"u"&&Vs.call(Blob)==="[object BlobConstructor]",yi=typeof File=="function"||typeof File<"u"&&Vs.call(File)==="[object FileConstructor]";function Xt(n){return _i&&(n instanceof ArrayBuffer||gi(n))||mi&&n instanceof Blob||yi&&n instanceof File}function ot(n,e){if(!n||typeof n!="object")return!1;if(Array.isArray(n)){for(let t=0,s=n.length;t<s;t++)if(ot(n[t]))return!0;return!1}if(Xt(n))return!0;if(n.toJSON&&typeof n.toJSON=="function"&&arguments.length===1)return ot(n.toJSON(),!0);for(const t in n)if(Object.prototype.hasOwnProperty.call(n,t)&&ot(n[t]))return!0;return!1}function bi(n){const e=[],t=n.data,s=n;return s.data=Kt(t,e),s.attachments=e.length,{packet:s,buffers:e}}function Kt(n,e){if(!n)return n;if(Xt(n)){const t={_placeholder:!0,num:e.length};return e.push(n),t}else if(Array.isArray(n)){const t=new Array(n.length);for(let s=0;s<n.length;s++)t[s]=Kt(n[s],e);return t}else if(typeof n=="object"&&!(n instanceof Date)){const t={};for(const s in n)Object.prototype.hasOwnProperty.call(n,s)&&(t[s]=Kt(n[s],e));return t}return n}function wi(n,e){return n.data=Ht(n.data,e),delete n.attachments,n}function Ht(n,e){if(!n)return n;if(n&&n._placeholder===!0){if(typeof n.num=="number"&&n.num>=0&&n.num<e.length)return e[n.num];throw new Error("illegal attachments")}else if(Array.isArray(n))for(let t=0;t<n.length;t++)n[t]=Ht(n[t],e);else if(typeof n=="object")for(const t in n)Object.prototype.hasOwnProperty.call(n,t)&&(n[t]=Ht(n[t],e));return n}const ki=["connect","connect_error","disconnect","disconnecting","newListener","removeListener"];var S;(function(n){n[n.CONNECT=0]="CONNECT",n[n.DISCONNECT=1]="DISCONNECT",n[n.EVENT=2]="EVENT",n[n.ACK=3]="ACK",n[n.CONNECT_ERROR=4]="CONNECT_ERROR",n[n.BINARY_EVENT=5]="BINARY_EVENT",n[n.BINARY_ACK=6]="BINARY_ACK"})(S||(S={}));class Ei{constructor(e){this.replacer=e}encode(e){return(e.type===S.EVENT||e.type===S.ACK)&&ot(e)?this.encodeAsBinary({type:e.type===S.EVENT?S.BINARY_EVENT:S.BINARY_ACK,nsp:e.nsp,data:e.data,id:e.id}):[this.encodeAsString(e)]}encodeAsString(e){let t=""+e.type;return(e.type===S.BINARY_EVENT||e.type===S.BINARY_ACK)&&(t+=e.attachments+"-"),e.nsp&&e.nsp!=="/"&&(t+=e.nsp+","),e.id!=null&&(t+=e.id),e.data!=null&&(t+=JSON.stringify(e.data,this.replacer)),t}encodeAsBinary(e){const t=bi(e),s=this.encodeAsString(t.packet),i=t.buffers;return i.unshift(s),i}}function Rs(n){return Object.prototype.toString.call(n)==="[object Object]"}class Qt extends Z{constructor(e){super(),this.reviver=e}add(e){let t;if(typeof e=="string"){if(this.reconstructor)throw new Error("got plaintext data when reconstructing a packet");t=this.decodeString(e);const s=t.type===S.BINARY_EVENT;s||t.type===S.BINARY_ACK?(t.type=s?S.EVENT:S.ACK,this.reconstructor=new Ri(t),t.attachments===0&&super.emitReserved("decoded",t)):super.emitReserved("decoded",t)}else if(Xt(e)||e.base64)if(this.reconstructor)t=this.reconstructor.takeBinaryData(e),t&&(this.reconstructor=null,super.emitReserved("decoded",t));else throw new Error("got binary data when not reconstructing a packet");else throw new Error("Unknown type: "+e)}decodeString(e){let t=0;const s={type:Number(e.charAt(0))};if(S[s.type]===void 0)throw new Error("unknown packet type "+s.type);if(s.type===S.BINARY_EVENT||s.type===S.BINARY_ACK){const a=t+1;for(;e.charAt(++t)!=="-"&&t!=e.length;);const u=e.substring(a,t);if(u!=Number(u)||e.charAt(t)!=="-")throw new Error("Illegal attachments");s.attachments=Number(u)}if(e.charAt(t+1)==="/"){const a=t+1;for(;++t&&!(e.charAt(t)===","||t===e.length););s.nsp=e.substring(a,t)}else s.nsp="/";const i=e.charAt(t+1);if(i!==""&&Number(i)==i){const a=t+1;for(;++t;){const u=e.charAt(t);if(u==null||Number(u)!=u){--t;break}if(t===e.length)break}s.id=Number(e.substring(a,t+1))}if(e.charAt(++t)){const a=this.tryParse(e.substr(t));if(Qt.isPayloadValid(s.type,a))s.data=a;else throw new Error("invalid payload")}return s}tryParse(e){try{return JSON.parse(e,this.reviver)}catch{return!1}}static isPayloadValid(e,t){switch(e){case S.CONNECT:return Rs(t);case S.DISCONNECT:return t===void 0;case S.CONNECT_ERROR:return typeof t=="string"||Rs(t);case S.EVENT:case S.BINARY_EVENT:return Array.isArray(t)&&(typeof t[0]=="number"||typeof t[0]=="string"&&ki.indexOf(t[0])===-1);case S.ACK:case S.BINARY_ACK:return Array.isArray(t)}}destroy(){this.reconstructor&&(this.reconstructor.finishedReconstruction(),this.reconstructor=null)}}class Ri{constructor(e){this.packet=e,this.buffers=[],this.reconPack=e}takeBinaryData(e){if(this.buffers.push(e),this.buffers.length===this.reconPack.attachments){const t=wi(this.reconPack,this.buffers);return this.finishedReconstruction(),t}return null}finishedReconstruction(){this.reconPack=null,this.buffers=[]}}const xi=Object.freeze(Object.defineProperty({__proto__:null,Decoder:Qt,Encoder:Ei,get PacketType(){return S}},Symbol.toStringTag,{value:"Module"}));function ve(n,e,t){return n.on(e,t),function(){n.off(e,t)}}const Ai=Object.freeze({connect:1,connect_error:1,disconnect:1,disconnecting:1,newListener:1,removeListener:1});class Ms extends Z{constructor(e,t,s){super(),this.connected=!1,this.recovered=!1,this.receiveBuffer=[],this.sendBuffer=[],this._queue=[],this._queueSeq=0,this.ids=0,this.acks={},this.flags={},this.io=e,this.nsp=t,s&&s.auth&&(this.auth=s.auth),this._opts=Object.assign({},s),this.io._autoConnect&&this.open()}get disconnected(){return!this.connected}subEvents(){if(this.subs)return;const e=this.io;this.subs=[ve(e,"open",this.onopen.bind(this)),ve(e,"packet",this.onpacket.bind(this)),ve(e,"error",this.onerror.bind(this)),ve(e,"close",this.onclose.bind(this))]}get active(){return!!this.subs}connect(){return this.connected?this:(this.subEvents(),this.io._reconnecting||this.io.open(),this.io._readyState==="open"&&this.onopen(),this)}open(){return this.connect()}send(...e){return e.unshift("message"),this.emit.apply(this,e),this}emit(e,...t){var s,i,a;if(Ai.hasOwnProperty(e))throw new Error('"'+e.toString()+'" is a reserved event name');if(t.unshift(e),this._opts.retries&&!this.flags.fromQueue&&!this.flags.volatile)return this._addToQueue(t),this;const u={type:S.EVENT,data:t};if(u.options={},u.options.compress=this.flags.compress!==!1,typeof t[t.length-1]=="function"){const C=this.ids++,q=t.pop();this._registerAckCallback(C,q),u.id=C}const _=(i=(s=this.io.engine)===null||s===void 0?void 0:s.transport)===null||i===void 0?void 0:i.writable,w=this.connected&&!(!((a=this.io.engine)===null||a===void 0)&&a._hasPingExpired());return this.flags.volatile&&!_||(w?(this.notifyOutgoingListeners(u),this.packet(u)):this.sendBuffer.push(u)),this.flags={},this}_registerAckCallback(e,t){var s;const i=(s=this.flags.timeout)!==null&&s!==void 0?s:this._opts.ackTimeout;if(i===void 0){this.acks[e]=t;return}const a=this.io.setTimeoutFn(()=>{delete this.acks[e];for(let _=0;_<this.sendBuffer.length;_++)this.sendBuffer[_].id===e&&this.sendBuffer.splice(_,1);t.call(this,new Error("operation has timed out"))},i),u=(..._)=>{this.io.clearTimeoutFn(a),t.apply(this,_)};u.withError=!0,this.acks[e]=u}emitWithAck(e,...t){return new Promise((s,i)=>{const a=(u,_)=>u?i(u):s(_);a.withError=!0,t.push(a),this.emit(e,...t)})}_addToQueue(e){let t;typeof e[e.length-1]=="function"&&(t=e.pop());const s={id:this._queueSeq++,tryCount:0,pending:!1,args:e,flags:Object.assign({fromQueue:!0},this.flags)};e.push((i,...a)=>s!==this._queue[0]?void 0:(i!==null?s.tryCount>this._opts.retries&&(this._queue.shift(),t&&t(i)):(this._queue.shift(),t&&t(null,...a)),s.pending=!1,this._drainQueue())),this._queue.push(s),this._drainQueue()}_drainQueue(e=!1){if(!this.connected||this._queue.length===0)return;const t=this._queue[0];t.pending&&!e||(t.pending=!0,t.tryCount++,this.flags=t.flags,this.emit.apply(this,t.args))}packet(e){e.nsp=this.nsp,this.io._packet(e)}onopen(){typeof this.auth=="function"?this.auth(e=>{this._sendConnectPacket(e)}):this._sendConnectPacket(this.auth)}_sendConnectPacket(e){this.packet({type:S.CONNECT,data:this._pid?Object.assign({pid:this._pid,offset:this._lastOffset},e):e})}onerror(e){this.connected||this.emitReserved("connect_error",e)}onclose(e,t){this.connected=!1,delete this.id,this.emitReserved("disconnect",e,t),this._clearAcks()}_clearAcks(){Object.keys(this.acks).forEach(e=>{if(!this.sendBuffer.some(s=>String(s.id)===e)){const s=this.acks[e];delete this.acks[e],s.withError&&s.call(this,new Error("socket has been disconnected"))}})}onpacket(e){if(e.nsp===this.nsp)switch(e.type){case S.CONNECT:e.data&&e.data.sid?this.onconnect(e.data.sid,e.data.pid):this.emitReserved("connect_error",new Error("It seems you are trying to reach a Socket.IO server in v2.x with a v3.x client, but they are not compatible (more information here: https://socket.io/docs/v3/migrating-from-2-x-to-3-0/)"));break;case S.EVENT:case S.BINARY_EVENT:this.onevent(e);break;case S.ACK:case S.BINARY_ACK:this.onack(e);break;case S.DISCONNECT:this.ondisconnect();break;case S.CONNECT_ERROR:this.destroy();const s=new Error(e.data.message);s.data=e.data.data,this.emitReserved("connect_error",s);break}}onevent(e){const t=e.data||[];e.id!=null&&t.push(this.ack(e.id)),this.connected?this.emitEvent(t):this.receiveBuffer.push(Object.freeze(t))}emitEvent(e){if(this._anyListeners&&this._anyListeners.length){const t=this._anyListeners.slice();for(const s of t)s.apply(this,e)}super.emit.apply(this,e),this._pid&&e.length&&typeof e[e.length-1]=="string"&&(this._lastOffset=e[e.length-1])}ack(e){const t=this;let s=!1;return function(...i){s||(s=!0,t.packet({type:S.ACK,id:e,data:i}))}}onack(e){const t=this.acks[e.id];typeof t=="function"&&(delete this.acks[e.id],t.withError&&e.data.unshift(null),t.apply(this,e.data))}onconnect(e,t){this.id=e,this.recovered=t&&this._pid===t,this._pid=t,this.connected=!0,this.emitBuffered(),this.emitReserved("connect"),this._drainQueue(!0)}emitBuffered(){this.receiveBuffer.forEach(e=>this.emitEvent(e)),this.receiveBuffer=[],this.sendBuffer.forEach(e=>{this.notifyOutgoingListeners(e),this.packet(e)}),this.sendBuffer=[]}ondisconnect(){this.destroy(),this.onclose("io server disconnect")}destroy(){this.subs&&(this.subs.forEach(e=>e()),this.subs=void 0),this.io._destroy(this)}disconnect(){return this.connected&&this.packet({type:S.DISCONNECT}),this.destroy(),this.connected&&this.onclose("io client disconnect"),this}close(){return this.disconnect()}compress(e){return this.flags.compress=e,this}get volatile(){return this.flags.volatile=!0,this}timeout(e){return this.flags.timeout=e,this}onAny(e){return this._anyListeners=this._anyListeners||[],this._anyListeners.push(e),this}prependAny(e){return this._anyListeners=this._anyListeners||[],this._anyListeners.unshift(e),this}offAny(e){if(!this._anyListeners)return this;if(e){const t=this._anyListeners;for(let s=0;s<t.length;s++)if(e===t[s])return t.splice(s,1),this}else this._anyListeners=[];return this}listenersAny(){return this._anyListeners||[]}onAnyOutgoing(e){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.push(e),this}prependAnyOutgoing(e){return this._anyOutgoingListeners=this._anyOutgoingListeners||[],this._anyOutgoingListeners.unshift(e),this}offAnyOutgoing(e){if(!this._anyOutgoingListeners)return this;if(e){const t=this._anyOutgoingListeners;for(let s=0;s<t.length;s++)if(e===t[s])return t.splice(s,1),this}else this._anyOutgoingListeners=[];return this}listenersAnyOutgoing(){return this._anyOutgoingListeners||[]}notifyOutgoingListeners(e){if(this._anyOutgoingListeners&&this._anyOutgoingListeners.length){const t=this._anyOutgoingListeners.slice();for(const s of t)s.apply(this,e.data)}}}function De(n){n=n||{},this.ms=n.min||100,this.max=n.max||1e4,this.factor=n.factor||2,this.jitter=n.jitter>0&&n.jitter<=1?n.jitter:0,this.attempts=0}De.prototype.duration=function(){var n=this.ms*Math.pow(this.factor,this.attempts++);if(this.jitter){var e=Math.random(),t=Math.floor(e*this.jitter*n);n=Math.floor(e*10)&1?n+t:n-t}return Math.min(n,this.max)|0};De.prototype.reset=function(){this.attempts=0};De.prototype.setMin=function(n){this.ms=n};De.prototype.setMax=function(n){this.max=n};De.prototype.setJitter=function(n){this.jitter=n};class zt extends Z{constructor(e,t){var s;super(),this.nsps={},this.subs=[],e&&typeof e=="object"&&(t=e,e=void 0),t=t||{},t.path=t.path||"/socket.io",this.opts=t,pt(this,t),this.reconnection(t.reconnection!==!1),this.reconnectionAttempts(t.reconnectionAttempts||1/0),this.reconnectionDelay(t.reconnectionDelay||1e3),this.reconnectionDelayMax(t.reconnectionDelayMax||5e3),this.randomizationFactor((s=t.randomizationFactor)!==null&&s!==void 0?s:.5),this.backoff=new De({min:this.reconnectionDelay(),max:this.reconnectionDelayMax(),jitter:this.randomizationFactor()}),this.timeout(t.timeout==null?2e4:t.timeout),this._readyState="closed",this.uri=e;const i=t.parser||xi;this.encoder=new i.Encoder,this.decoder=new i.Decoder,this._autoConnect=t.autoConnect!==!1,this._autoConnect&&this.open()}reconnection(e){return arguments.length?(this._reconnection=!!e,e||(this.skipReconnect=!0),this):this._reconnection}reconnectionAttempts(e){return e===void 0?this._reconnectionAttempts:(this._reconnectionAttempts=e,this)}reconnectionDelay(e){var t;return e===void 0?this._reconnectionDelay:(this._reconnectionDelay=e,(t=this.backoff)===null||t===void 0||t.setMin(e),this)}randomizationFactor(e){var t;return e===void 0?this._randomizationFactor:(this._randomizationFactor=e,(t=this.backoff)===null||t===void 0||t.setJitter(e),this)}reconnectionDelayMax(e){var t;return e===void 0?this._reconnectionDelayMax:(this._reconnectionDelayMax=e,(t=this.backoff)===null||t===void 0||t.setMax(e),this)}timeout(e){return arguments.length?(this._timeout=e,this):this._timeout}maybeReconnectOnOpen(){!this._reconnecting&&this._reconnection&&this.backoff.attempts===0&&this.reconnect()}open(e){if(~this._readyState.indexOf("open"))return this;this.engine=new fi(this.uri,this.opts);const t=this.engine,s=this;this._readyState="opening",this.skipReconnect=!1;const i=ve(t,"open",function(){s.onopen(),e&&e()}),a=_=>{this.cleanup(),this._readyState="closed",this.emitReserved("error",_),e?e(_):this.maybeReconnectOnOpen()},u=ve(t,"error",a);if(this._timeout!==!1){const _=this._timeout,w=this.setTimeoutFn(()=>{i(),a(new Error("timeout")),t.close()},_);this.opts.autoUnref&&w.unref(),this.subs.push(()=>{this.clearTimeoutFn(w)})}return this.subs.push(i),this.subs.push(u),this}connect(e){return this.open(e)}onopen(){this.cleanup(),this._readyState="open",this.emitReserved("open");const e=this.engine;this.subs.push(ve(e,"ping",this.onping.bind(this)),ve(e,"data",this.ondata.bind(this)),ve(e,"error",this.onerror.bind(this)),ve(e,"close",this.onclose.bind(this)),ve(this.decoder,"decoded",this.ondecoded.bind(this)))}onping(){this.emitReserved("ping")}ondata(e){try{this.decoder.add(e)}catch(t){this.onclose("parse error",t)}}ondecoded(e){dt(()=>{this.emitReserved("packet",e)},this.setTimeoutFn)}onerror(e){this.emitReserved("error",e)}socket(e,t){let s=this.nsps[e];return s?this._autoConnect&&!s.active&&s.connect():(s=new Ms(this,e,t),this.nsps[e]=s),s}_destroy(e){const t=Object.keys(this.nsps);for(const s of t)if(this.nsps[s].active)return;this._close()}_packet(e){const t=this.encoder.encode(e);for(let s=0;s<t.length;s++)this.engine.write(t[s],e.options)}cleanup(){this.subs.forEach(e=>e()),this.subs.length=0,this.decoder.destroy()}_close(){this.skipReconnect=!0,this._reconnecting=!1,this.onclose("forced close")}disconnect(){return this._close()}onclose(e,t){var s;this.cleanup(),(s=this.engine)===null||s===void 0||s.close(),this.backoff.reset(),this._readyState="closed",this.emitReserved("close",e,t),this._reconnection&&!this.skipReconnect&&this.reconnect()}reconnect(){if(this._reconnecting||this.skipReconnect)return this;const e=this;if(this.backoff.attempts>=this._reconnectionAttempts)this.backoff.reset(),this.emitReserved("reconnect_failed"),this._reconnecting=!1;else{const t=this.backoff.duration();this._reconnecting=!0;const s=this.setTimeoutFn(()=>{e.skipReconnect||(this.emitReserved("reconnect_attempt",e.backoff.attempts),!e.skipReconnect&&e.open(i=>{i?(e._reconnecting=!1,e.reconnect(),this.emitReserved("reconnect_error",i)):e.onreconnect()}))},t);this.opts.autoUnref&&s.unref(),this.subs.push(()=>{this.clearTimeoutFn(s)})}}onreconnect(){const e=this.backoff.attempts;this._reconnecting=!1,this.backoff.reset(),this.emitReserved("reconnect",e)}}const ze={};function at(n,e){typeof n=="object"&&(e=n,n=void 0),e=e||{};const t=vi(n,e.path||"/socket.io"),s=t.source,i=t.id,a=t.path,u=ze[i]&&a in ze[i].nsps,_=e.forceNew||e["force new connection"]||e.multiplex===!1||u;let w;return _?w=new zt(s,e):(ze[i]||(ze[i]=new zt(s,e)),w=ze[i]),t.query&&!e.query&&(e.query=t.queryKey),w.socket(t.path,e)}Object.assign(at,{Manager:zt,Socket:Ms,io:at,connect:at});var Si=E(' <strong class="svelte-1pcdei1"></strong> ',1),Ci=E('<a class="view-report-btn svelte-1pcdei1"> <svg width="11" height="11" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-1pcdei1"><line x1="5" y1="12" x2="19" y2="12" class="svelte-1pcdei1"></line><polyline points="12 5 19 12 12 19" class="svelte-1pcdei1"></polyline></svg></a>'),Ti=E('<span class="run-chip-spinner svelte-1pcdei1"></span>'),Bi=E('<span class="run-chip-count svelte-1pcdei1"> </span>'),Li=E('<div class="run-chip svelte-1pcdei1"><svg width="9" height="10" viewBox="0 0 10 12" fill="currentColor" stroke="none" style="opacity:0.6;flex-shrink:0" class="svelte-1pcdei1"><polygon points="0,0 10,6 0,12" class="svelte-1pcdei1"></polygon></svg> <span class="run-chip-title svelte-1pcdei1"> </span> <!> <button class="run-chip-clear svelte-1pcdei1"><svg width="9" height="9" viewBox="0 0 14 14" fill="none" class="svelte-1pcdei1"><path d="M1 1l12 12M13 1L1 13" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" class="svelte-1pcdei1"></path></svg></button></div>'),Ni=E('<div class="input-wrap svelte-1pcdei1"><svg class="input-icon svelte-1pcdei1" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8" class="svelte-1pcdei1"></circle><line x1="21" y1="21" x2="16.65" y2="16.65" class="svelte-1pcdei1"></line></svg> <input type="text" class="tag-input svelte-1pcdei1" placeholder="@tag or leave blank for all tests"></div>'),Oi=E('<button class="dropdown-item svelte-1pcdei1"><span style="color:var(--text-muted)" class="svelte-1pcdei1">✕</span> </button> <div class="dropdown-divider svelte-1pcdei1"></div>',1),Ui=E('<div class="dropdown-empty svelte-1pcdei1"></div>'),$i=E('<button class="dropdown-item svelte-1pcdei1"> </button>'),Ii=E('<div class="dropdown-menu run-pick-menu svelte-1pcdei1"><!> <!></div>'),qi=E('<button class="dropdown-item svelte-1pcdei1"> </button>'),Pi=E('<div class="dropdown-menu svelte-1pcdei1"></div>'),Di=E('<label class="runner-option svelte-1pcdei1"><input type="checkbox" class="svelte-1pcdei1"> <span class="runner-dot built-in svelte-1pcdei1"></span> <span class="svelte-1pcdei1"></span></label>'),Vi=E('<label class="runner-option svelte-1pcdei1"><input type="checkbox" class="svelte-1pcdei1"> <span class="runner-dot remote svelte-1pcdei1"></span> <span class="svelte-1pcdei1"> </span></label>'),Mi=E('<div class="dropdown-menu runners-menu svelte-1pcdei1"><!> <!></div>'),Fi=E('<div class="ctrl-divider svelte-1pcdei1"></div> <div class="ctrl-group svelte-1pcdei1"><span class="ctrl-label svelte-1pcdei1"></span> <div class="dropdown-wrap svelte-1pcdei1"><button class="dropdown-trigger svelte-1pcdei1"><span class="svelte-1pcdei1"> </span> <svg width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" class="trigger-chevron svelte-1pcdei1"><polyline points="6 9 12 15 18 9" class="svelte-1pcdei1"></polyline></svg></button> <!></div></div>',1),Wi=E('<button type="button" class="notify-btn svelte-1pcdei1"></button>'),Ki=E('<button type="button" class="notify-btn svelte-1pcdei1"></button>'),Hi=E('<div class="ctrl-divider svelte-1pcdei1"></div> <div class="ctrl-group svelte-1pcdei1"><span class="ctrl-label svelte-1pcdei1"></span> <div class="notify-toggles svelte-1pcdei1"><!> <!></div></div>',1),zi=E('<span class="meta-dot svelte-1pcdei1">·</span> ',1),Yi=E('<div class="run-card svelte-1pcdei1"><span class="run-card-dot svelte-1pcdei1"></span> <a class="run-card-main svelte-1pcdei1"><div class="run-card-info svelte-1pcdei1"><span class="run-card-label svelte-1pcdei1"> </span> <span class="run-card-meta svelte-1pcdei1"> <!></span></div> <!> <svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" class="run-card-arrow svelte-1pcdei1"><line x1="5" y1="12" x2="19" y2="12" class="svelte-1pcdei1"></line><polyline points="12 5 19 12 12 19" class="svelte-1pcdei1"></polyline></svg></a> <button class="run-card-cancel svelte-1pcdei1"><svg width="12" height="12" viewBox="0 0 14 14" fill="none" class="svelte-1pcdei1"><path d="M1 1l12 12M13 1L1 13" stroke="currentColor" stroke-width="1.6" stroke-linecap="round" class="svelte-1pcdei1"></path></svg></button></div>'),ji=E('<div class="empty-runs svelte-1pcdei1"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="empty-icon svelte-1pcdei1"><circle cx="12" cy="12" r="10" class="svelte-1pcdei1"></circle><line x1="10" y1="15" x2="10" y2="12" class="svelte-1pcdei1"></line><line x1="10" y1="9" x2="10.01" y2="9" class="svelte-1pcdei1"></line></svg> </div>'),Ji=E('<div class="body svelte-1pcdei1"><!> <!></div>'),Gi=E('<!> <div class="panel svelte-1pcdei1"><div class="scan-line svelte-1pcdei1"></div> <div class="bar svelte-1pcdei1"><div class="bar-left svelte-1pcdei1"><div class="bar-status svelte-1pcdei1"><span class="status-dot svelte-1pcdei1"></span> <span class="status-word svelte-1pcdei1"> </span></div> <!></div> <span class="flex-gap svelte-1pcdei1"></span> <div class="bar-center svelte-1pcdei1"><!> <div class="ctrl-group svelte-1pcdei1"><span class="ctrl-label svelte-1pcdei1"></span> <div class="dropdown-wrap svelte-1pcdei1"><button class="dropdown-trigger svelte-1pcdei1"><span class="svelte-1pcdei1"> </span> <svg width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" class="trigger-chevron svelte-1pcdei1"><polyline points="6 9 12 15 18 9" class="svelte-1pcdei1"></polyline></svg></button> <!></div></div> <div class="ctrl-divider svelte-1pcdei1"></div> <div class="ctrl-group svelte-1pcdei1"><span class="ctrl-label svelte-1pcdei1"></span> <div class="stepper svelte-1pcdei1"><button class="step-btn svelte-1pcdei1">−</button> <span class="step-val svelte-1pcdei1"> </span> <button class="step-btn svelte-1pcdei1">+</button></div></div> <div class="ctrl-divider svelte-1pcdei1"></div> <div class="ctrl-group svelte-1pcdei1"><span class="ctrl-label svelte-1pcdei1"></span> <div class="dropdown-wrap svelte-1pcdei1"><button class="dropdown-trigger svelte-1pcdei1"><span class="svelte-1pcdei1"> </span> <svg width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" class="trigger-chevron svelte-1pcdei1"><polyline points="6 9 12 15 18 9" class="svelte-1pcdei1"></polyline></svg></button> <!></div></div> <!> <!> <div class="ctrl-divider svelte-1pcdei1"></div> <button class="run-btn svelte-1pcdei1"><svg width="9" height="10" viewBox="0 0 10 12" fill="currentColor" stroke="none" class="svelte-1pcdei1"><polygon points="0,0 10,6 0,12" class="svelte-1pcdei1"></polygon></svg> </button></div> <span class="flex-gap-sm svelte-1pcdei1"></span> <button class="expand-btn svelte-1pcdei1"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-1pcdei1"><polyline points="18 15 12 9 6 15" class="svelte-1pcdei1"></polyline></svg></button></div> <!></div>',1);function Xi(n,e){lt(e,!1);const[t,s]=ht(),i=()=>_e(Ee,"$runnerConfig",t),a=()=>_e(He,"$backgroundRuns",t),u=()=>_e(Mn,"$runsVersion",t),_=()=>_e(Be,"$panelExpanded",t),w=()=>_e(Ut,"$builtInEnabled",t),B=F(),C=F(),q=F(),A=F(),V=F(),J=F(),ae=F(),ue=F(),W=F();let P=F([]),z=F([]),R=F(null),te=F(!1),D=F(!1),M=F(!1),G=F(!1),ie=F(!1),I=F({discordWebhookUrl:"",slackWebhookUrl:"",notifyPublicUrl:""}),L=F(!1),ee=F(!1);function Y(o){function p(k){o.contains(k.target)||o.dispatchEvent(new CustomEvent("clickoutside"))}return document.addEventListener("click",p,!0),{destroy(){document.removeEventListener("click",p,!0)}}}let se,X,he,oe,ce=F(null);Yt(()=>{try{const c=localStorage.getItem("plum:runnerConfig");c&&Ee.update(f=>({...f,...JSON.parse(c)}))}catch{}try{const c=localStorage.getItem("plum:panelExpanded");c!==null&&Be.set(c==="true")}catch{}try{const c=localStorage.getItem("plum:builtInEnabled");c!==null&&Ut.set(c!=="false")}catch{}En().then(c=>{x(P,c);const f=new Set([Te,...c.map(v=>v.id)]);Ee.update(v=>{const y=v.selectedRunners.filter(m=>f.has(m));return{...v,selectedRunners:y.length>0?y:[Te]}})}).catch(()=>{}),Rn().then(c=>x(I,c)).catch(()=>{}),ur().then(c=>{c.length!==0&&(He.update(f=>{const v={...f};for(const{runId:y,kind:m,label:b,meta:N,status:K}of c)v[y]||(v[y]=_s({kind:m,label:b,meta:N,status:K}));return v}),Be.set(!0))}).catch(()=>{}),se=Ee.subscribe(c=>{try{localStorage.setItem("plum:runnerConfig",JSON.stringify(c))}catch{}}),X=Be.subscribe(c=>{try{localStorage.setItem("plum:panelExpanded",String(c))}catch{}}),he=Ut.subscribe(c=>{try{localStorage.setItem("plum:builtInEnabled",String(c))}catch{}Ee.update(f=>{if(!c&&f.selectedRunners.includes(Te)){const v=f.selectedRunners.filter(m=>m!==Te),y=v.length>0?v:r(P)[0]?[r(P)[0].id]:[];return{...f,selectedRunners:y}}return f})});const o=at(fn,{transports:["websocket"]});oe=o,xn.set(o),o.on(Re.REPORT_READY,()=>gs.update(c=>c+1));function p(c,f){He.update(v=>v[c]?{...v,[c]:f(v[c])}:v)}function k(c,{kind:f,label:v,meta:y},m){He.update(b=>({...b,[c]:b[c]?{...b[c],status:m}:_s({kind:f,label:v,meta:y,status:m})})),Be.set(!0)}o.on(Re.BG_RUN_QUEUED,({runId:c,kind:f,label:v,meta:y})=>{k(c,{kind:f,label:v,meta:y},"queued")}),o.on(Re.BG_RUN_START,({runId:c,kind:f,label:v,meta:y})=>{k(c,{kind:f,label:v,meta:y},"running")}),o.on(Re.BG_RUN_LOG,({runId:c,log:f})=>{p(c,v=>({...v,output:v.output+f}))}),o.on(Re.BG_RUN_LANES_INIT,({runId:c,lanes:f})=>{p(c,v=>({...v,lanes:f.map(y=>({...y,status:"running",logs:""}))}))});function T(c,f,v){const y=c.lanes.some(m=>m.id===f)?c.lanes.map(m=>m.id===f?{...m,...v(m)}:m):[...c.lanes,{id:f,name:f,testCount:0,status:"running",logs:"",...v({logs:""})}];return{...c,lanes:y}}o.on(Re.BG_RUN_LANE_LOG,({runId:c,laneId:f,log:v})=>{p(c,y=>T(y,f,m=>({logs:(m.logs||"")+v})))}),o.on(Re.BG_RUN_LANE_STATUS,({runId:c,laneId:f,status:v})=>{p(c,y=>T(y,f,()=>({status:v})))}),o.on(Re.BG_RUN_LANE_RRWEB_BATCH,({runId:c,...f})=>{p(c,v=>({...v,rrwebByLane:An(v.rrwebByLane,f)}))}),o.on(Re.BG_RUN_DONE,({runId:c,code:f,reportId:v})=>{const y=f===0||f===null,m=f===130;p(c,b=>({...b,status:"done",testCompleted:!m,latestReportId:m?null:v,verdict:m?"cancelled":y?"pass":"fail"})),!m&&v&&x(ce,{reportId:v,verdict:y?"pass":"fail"}),m||gs.update(b=>b+1),setTimeout(()=>{He.update(b=>{const N={...b};return delete N[c],N})},vn+5e3)})}),hn(()=>{se==null||se(),X==null||X(),he==null||he(),oe==null||oe.disconnect()});async function Ne(o){x(G,!1),x(R,{id:o.id,title:o.title,tags:null}),x(te,!0);try{const k=(await lr(o.id)).entries.filter(T=>{var c;return(c=T.case)==null?void 0:c.isAutomated}).map(T=>`@${T.case.displayId}`);x(R,{id:o.id,title:o.title,tags:k})}catch{x(R,null)}finally{x(te,!1)}}function Je(){x(R,null)}function Ae(){const o={notifyDiscord:r(L),notifySlack:r(ee)};if(r(R)){if(r(te)||!r(R).tags||r(R).tags.length===0)return;$t(r(R).tags.join(" or "),r(R).id,o,r(R).title)}else i().testID.trim()===""?x(ie,!0):$t(void 0,void 0,o)}function ft(o){o.key==="Enter"&&!r(R)&&Ae()}function Zt(o){Ee.update(p=>({...p,workers:Math.max(ps,Math.min(fs,p.workers+o))}))}function es(o){Ee.update(p=>{const k=p.selectedRunners;if(k.includes(o)&&k.length===1)return p;const T=k.includes(o)?k.filter(c=>c!==o):[...k,o];return{...p,selectedRunners:T}})}function vt(o){return i().selectedRunners.includes(o)}pe(()=>i(),()=>{x(B,i())}),pe(()=>a(),()=>{x(C,Object.entries(a()).filter(([,o])=>o.status==="queued"||o.status==="running"))}),pe(()=>r(C),()=>{x(q,r(C).filter(([,o])=>o.status==="running").length)}),pe(()=>r(C),()=>{x(A,r(C).filter(([,o])=>o.status==="queued").length)}),pe(()=>r(C),()=>{x(V,r(C).length>0)}),pe(()=>(u(),ds),()=>{u()>=0&&cr({limit:ds}).then(o=>x(z,o.runs)).catch(()=>{})}),pe(()=>(r(q),r(A),r(ce)),()=>{var o,p;x(J,r(q)>0?"var(--accent)":r(A)>0?"var(--warn)":((o=r(ce))==null?void 0:o.verdict)==="pass"?"var(--pass)":((p=r(ce))==null?void 0:p.verdict)==="fail"?"var(--fail)":"var(--border)")}),pe(()=>(r(q),r(A),r(ce)),()=>{var o;x(ae,Sn({running:r(q),queued:r(A),verdict:(o=r(ce))==null?void 0:o.verdict}))}),pe(()=>r(B),()=>{x(ue,Nt.find(o=>o.id===r(B).browser)??Nt[0])}),pe(()=>(r(B),r(P)),()=>{x(W,Cn(r(B),r(P)))}),xs(),ct();var ts=Gi(),ss=re(ts);pr(ss,{title:Bn,confirmLabel:Tn,get open(){return r(ie)},set open(o){x(ie,o)},$$events:{confirm:()=>{x(ie,!1),$t(void 0,void 0,{notifyDiscord:r(L),notifySlack:r(ee)})}},children:(o,p)=>{Ke();var k=Si(),T=re(k);T.nodeValue=`${Ln} `;var c=l(T);c.textContent=Nn;var f=l(c);f.nodeValue=` ${On}`,g(o,k)},$$slots:{default:!0},$$legacy:!0});var _t=l(ss,2),Ge=d(_t),gt=l(Ge,2),mt=d(gt),yt=d(mt),bt=d(yt),wt=l(bt,2),Fs=d(wt,!0);h(wt),h(yt);var Ws=l(yt,2);{var Ks=o=>{var p=Ci(),k=d(p);k.nodeValue=`${Fn} `,Ke(),h(p),H(T=>ne(p,"href",T),[()=>nr(r(ce).reportId)],le),U("click",p,()=>Be.set(!1)),xe(3,p,()=>Oe,()=>({x:-6,duration:200})),g(o,p)};$(Ws,o=>{var p;!r(V)&&((p=r(ce))!=null&&p.reportId)&&o(Ks)})}h(mt);var kt=l(mt,4),ns=d(kt);{var Hs=o=>{var p=Li(),k=l(d(p),2),T=d(k,!0);h(k);var c=l(k,2);{var f=m=>{var b=Ti();g(m,b)},v=m=>{var b=Ue(),N=re(b);{var K=Q=>{var de=Bi(),ge=d(de,!0);h(de),H(Fe=>{O(de,"none",r(R).tags.length===0),j(ge,Fe)},[()=>sr(r(R).tags.length)],le),g(Q,de)};$(N,Q=>{r(R).tags!==null&&Q(K)},!0)}g(m,b)};$(c,m=>{r(te)?m(f):m(v,!1)})}var y=l(c,2);ne(y,"aria-label",Wn),h(p),H(()=>{O(p,"loading",r(te)),j(T,r(R).title)}),U("click",y,Je),g(o,p)},zs=o=>{var p=Ni(),k=l(d(p),2);Ot(k),h(p),H(()=>_n(k,i().testID)),U("input",k,T=>Ee.update(c=>({...c,testID:T.currentTarget.value}))),U("keydown",k,ft),g(o,p)};$(ns,o=>{r(R)?o(Hs):o(zs,!1)})}var Et=l(ns,2),rs=d(Et);rs.textContent=Un;var Xe=l(rs,2),Ie=d(Xe),Rt=d(Ie),Ys=d(Rt,!0);h(Rt);var js=l(Rt,2);h(Ie);var Js=l(Ie,2);{var Gs=o=>{var p=Ii(),k=d(p);{var T=y=>{var m=Oi(),b=re(m),N=l(d(b));N.nodeValue=` ${gn}`,h(b),Ke(2),U("click",b,Je),g(y,m)};$(k,y=>{r(R)&&y(T)})}var c=l(k,2);{var f=y=>{var m=Ui();m.textContent=Qn,g(y,m)},v=y=>{var m=Ue(),b=re(m);$e(b,1,()=>r(z).filter(N=>N.status!=="complete"),je,(N,K)=>{var Q=$i(),de=d(Q,!0);h(Q),H(()=>{var ge;O(Q,"active",((ge=r(R))==null?void 0:ge.id)===r(K).id),j(de,r(K).title)}),U("click",Q,()=>Ne(r(K))),g(N,Q)}),g(y,m)};$(c,y=>{r(z).filter(m=>m.status!=="complete").length===0?y(f):y(v,!1)})}h(p),xe(3,p,()=>Oe,()=>({y:6,duration:130})),g(o,p)};$(Js,o=>{r(G)&&o(Gs)})}h(Xe),It(Xe,o=>Y==null?void 0:Y(o)),nt(()=>U("clickoutside",Xe,()=>x(G,!1))),h(Et);var xt=l(Et,4),is=d(xt);is.textContent=$n;var os=l(is,2),At=d(os),St=l(At,2),Xs=d(St,!0);h(St);var as=l(St,2);h(os),h(xt);var Ct=l(xt,4),cs=d(Ct);cs.textContent=In;var Qe=l(cs,2),Ve=d(Qe),Tt=d(Ve),Qs=d(Tt,!0);h(Tt);var Zs=l(Tt,2);h(Ve);var en=l(Ve,2);{var tn=o=>{var p=Pi();$e(p,5,()=>Nt,je,(k,T)=>{var c=qi(),f=d(c,!0);h(c),H(()=>{O(c,"active",r(B).browser===r(T).id),j(f,r(T).label)}),U("click",c,()=>{Ee.update(v=>({...v,browser:r(T).id})),x(D,!1)}),g(k,c)}),h(p),xe(3,p,()=>Oe,()=>({y:6,duration:130})),g(o,p)};$(en,o=>{r(D)&&o(tn)})}h(Qe),It(Qe,o=>Y==null?void 0:Y(o)),nt(()=>U("clickoutside",Qe,()=>x(D,!1))),h(Ct);var ls=l(Ct,2);{var sn=o=>{var p=Fi(),k=l(re(p),2),T=d(k);T.textContent=Kn;var c=l(T,2),f=d(c),v=d(f),y=d(v,!0);h(v);var m=l(v,2);h(f);var b=l(f,2);{var N=K=>{var Q=Mi(),de=d(Q);{var ge=Se=>{var me=Di(),ye=d(me);Ot(ye);var Ce=l(ye,4);Ce.textContent=bn,h(me),H(qe=>vs(ye,qe),[()=>vt(Te)],le),U("change",ye,()=>es(Te)),g(Se,me)};$(de,Se=>{(w()||vt(Te))&&Se(ge)})}var Fe=l(de,2);$e(Fe,1,()=>r(P),je,(Se,me)=>{var ye=Vi(),Ce=d(ye);Ot(Ce);var qe=l(Ce,4),Bt=d(qe,!0);h(qe),h(ye),H(We=>{vs(Ce,We),j(Bt,r(me).name)},[()=>vt(r(me).id)],le),U("change",Ce,()=>es(r(me).id)),g(Se,ye)}),h(Q),xe(3,Q,()=>Oe,()=>({y:6,duration:130})),g(K,Q)};$(b,K=>{r(M)&&K(N)})}h(c),It(c,K=>Y==null?void 0:Y(K)),nt(()=>U("clickoutside",c,()=>x(M,!1))),h(k),H(K=>{O(f,"open",r(M)),O(f,"has-remote",K),j(y,r(W)),O(m,"open",r(M))},[()=>r(B).selectedRunners.some(K=>K!==Te)],le),U("click",f,()=>{x(M,!r(M))}),g(o,p)};$(ls,o=>{r(P).length>0&&o(sn)})}var us=l(ls,2);{var nn=o=>{var p=Hi(),k=l(re(p),2),T=d(k);T.textContent=Hn;var c=l(T,2),f=d(c);{var v=b=>{var N=Wi();N.textContent=mn,H(K=>{ne(N,"title",K),O(N,"active",r(L))},[()=>Zn(r(L))],le),U("click",N,()=>x(L,!r(L))),g(b,N)};$(f,b=>{r(I).discordWebhookUrl&&b(v)})}var y=l(f,2);{var m=b=>{var N=Ki();N.textContent=yn,H(K=>{ne(N,"title",K),O(N,"active",r(ee))},[()=>er(r(ee))],le),U("click",N,()=>x(ee,!r(ee))),g(b,N)};$(y,b=>{r(I).slackWebhookUrl&&b(m)})}h(c),h(k),g(o,p)};$(us,o=>{(r(I).discordWebhookUrl||r(I).slackWebhookUrl)&&o(nn)})}var Me=l(us,4),rn=l(d(Me));rn.nodeValue=` ${qn}`,h(Me),h(kt);var Ze=l(kt,4),on=d(Ze);h(Ze),h(gt);var an=l(gt,2);{var cn=o=>{var p=Ji(),k=d(p);$e(k,3,()=>r(C),([f,v])=>f,(f,v,y)=>{let m=()=>r(v)[0],b=()=>r(v)[1];var N=Yi(),K=d(N),Q=l(K,2),de=d(Q),ge=d(de),Fe=d(ge,!0);h(ge);var Se=l(ge,2),me=d(Se),ye=l(me);{var Ce=ke=>{var Pe=zi(),et=l(re(Pe));H(Lt=>j(et,` ${Lt??""}`),[()=>Xn(b().currentRun.startedBy)],le),g(ke,Pe)};$(ye,ke=>{var Pe;(Pe=b().currentRun)!=null&&Pe.startedBy&&ke(Ce)})}h(Se),h(de);var qe=l(de,2);const Bt=le(()=>b().status==="queued"?"tag":dr(b().kind));fr(qe,{get variant(){return r(Bt)},children:(ke,Pe)=>{Ke();var et=ln();H(Lt=>j(et,Lt),[()=>b().status==="queued"?zn:hr(b().kind)],le),g(ke,et)},$$slots:{default:!0}}),Ke(2),h(Q);var We=l(Q,2);ne(We,"title",ms),ne(We,"aria-label",ms),h(N),H(ke=>{O(N,"active-run",b().status==="running"),O(N,"queued-run",b().status==="queued"),O(K,"pulse-accent",b().status==="running"),O(K,"queued-dot",b().status==="queued"),ne(Q,"href",`/live/${m()??""}`),j(Fe,b().label||Jn),j(me,`${ke??""} `)},[()=>b().status==="queued"?Yn(r(C).slice(0,r(y)).filter(([,ke])=>ke.status==="queued").length+1):jn(b().kind)],le),U("click",Q,()=>Be.set(!1)),U("click",We,()=>Gn(m())),xe(3,N,()=>Oe,()=>({x:-4,duration:160})),g(f,N)});var T=l(k,2);{var c=f=>{var v=ji(),y=l(d(v));y.nodeValue=` ${tr}`,h(v),g(f,v)};$(T,f=>{r(V)||f(c)})}h(p),xe(3,p,()=>As,()=>({duration:200})),g(o,p)};$(an,o=>{_()&&o(cn)})}h(_t),H(o=>{var p,k,T,c;O(_t,"expanded",_()),O(Ge,"scanning",r(q)>0),O(Ge,"line-pass",((p=r(ce))==null?void 0:p.verdict)==="pass"&&!r(V)),O(Ge,"line-fail",((k=r(ce))==null?void 0:k.verdict)==="fail"&&!r(V)),ne(bt,"style",`background:${r(J)??""}`),O(bt,"pulse",r(q)>0),ne(wt,"style",`color:${r(J)??""}`),j(Fs,r(ae)),O(Ie,"open",r(G)),O(Ie,"has-remote",!!r(R)),j(Ys,r(R)?r(R).title:Dn),O(js,"open",r(G)),At.disabled=r(B).workers<=ps,j(Xs,r(B).workers),as.disabled=r(B).workers>=fs,O(Ve,"open",r(D)),j(Qs,r(ue).label),O(Zs,"open",r(D)),Me.disabled=r(te)||r(R)&&((T=r(R).tags)==null?void 0:T.length)===0,ne(Me,"title",r(R)&&((c=r(R).tags)==null?void 0:c.length)===0?Vn:void 0),ne(Ze,"aria-label",o),O(on,"flipped",_())},[()=>Pn(_())],le),U("click",Ie,()=>{x(G,!r(G))}),U("click",At,()=>Zt(-1)),U("click",as,()=>Zt(1)),U("click",Ve,()=>{x(D,!r(D))}),U("click",Me,Ae),U("click",Ze,()=>Be.update(o=>!o)),g(n,ts),ut(),s()}function Qi(n,{from:e,to:t},s={}){var{delay:i=0,duration:a=D=>Math.sqrt(D)*120,easing:u=vr}=s,_=getComputedStyle(n),w=_.transform==="none"?"":_.transform,[B,C]=_.transformOrigin.split(" ").map(parseFloat);B/=n.clientWidth,C/=n.clientHeight;var q=Zi(n),A=n.clientWidth/t.width/q,V=n.clientHeight/t.height/q,J=e.left+e.width*B,ae=e.top+e.height*C,ue=t.left+t.width*B,W=t.top+t.height*C,P=(J-ue)*A,z=(ae-W)*V,R=e.width/t.width,te=e.height/t.height;return{delay:i,duration:typeof a=="function"?a(Math.sqrt(P*P+z*z)):a,easing:u,css:(D,M)=>{var G=M*P,ie=M*z,I=D+M*R,L=D+M*te;return`transform: ${w} translate(${G}px, ${ie}px) scale(${I}, ${L});`}}}function Zi(n){if("currentCSSZoom"in n)return n.currentCSSZoom;for(var e=n,t=1;e!==null;)t*=+getComputedStyle(e).zoom,e=e.parentElement;return t}var eo=E('<div class="row svelte-1l6rncl"><span class="spinner svelte-1l6rncl" aria-hidden="true"></span> <span class="msg svelte-1l6rncl"> </span> <button class="link text svelte-1l6rncl"></button></div> <div class="bar svelte-1l6rncl"><span class="fill svelte-1l6rncl"></span></div> <p class="sub svelte-1l6rncl"></p>',1),to=E('<div class="row svelte-1l6rncl"><span class="dot success svelte-1l6rncl"></span> <span class="msg svelte-1l6rncl"></span></div>'),so=E('<p class="sub svelte-1l6rncl"> </p>'),no=E('<div class="row svelte-1l6rncl"><span class="dot error svelte-1l6rncl"></span> <span class="msg svelte-1l6rncl"></span> <button class="link text svelte-1l6rncl"></button></div> <!>',1),ro=E('<div class="card svelte-1l6rncl"><!></div>'),io=E('<div class="card svelte-1l6rncl"><div class="row svelte-1l6rncl"><span></span> <span class="msg svelte-1l6rncl"> </span> <button class="link svelte-1l6rncl"><svg width="12" height="12" viewBox="0 0 14 14" fill="none"><path d="M1 1l12 12M13 1L1 13" stroke="currentColor" stroke-width="1.6" stroke-linecap="round"></path></svg></button></div></div>'),oo=E('<div class="stack svelte-1l6rncl"><!> <!></div>');function ao(n,e){lt(e,!1);const[t,s]=ht(),i=()=>_e(mr,"$replayVideoJob",t),a=()=>_e(gr,"$notifications",t),u=F(),_=F();pe(()=>i(),()=>{x(u,i())}),pe(()=>r(u),()=>{var A;x(_,Math.round((((A=r(u))==null?void 0:A.progress)??0)*100))}),xs(),ct();var w=oo(),B=d(w);{var C=A=>{var V=ro(),J=d(V);{var ae=W=>{var P=eo(),z=re(P),R=l(d(z),2),te=d(R);h(R);var D=l(R,2);D.textContent=wn,h(z);var M=l(z,2),G=d(M);h(M);var ie=l(M,2);ie.textContent=rr,H(()=>{j(te,`${ir} ${r(_)??""}%`),ne(G,"style",`width:${r(_)??""}%`)}),U("click",D,function(...I){var L;(L=yr)==null||L.apply(this,I)}),g(W,P)},ue=W=>{var P=Ue(),z=re(P);{var R=D=>{var M=to(),G=l(d(M),2);G.textContent=or,h(M),g(D,M)},te=D=>{var M=no(),G=re(M),ie=l(d(G),2);ie.textContent=ar;var I=l(ie,2);I.textContent=ys,h(G);var L=l(G,2);{var ee=Y=>{var se=so(),X=d(se,!0);h(se),H(()=>j(X,r(u).error)),g(Y,se)};$(L,Y=>{r(u).error&&Y(ee)})}U("click",I,function(...Y){var se;(se=br)==null||se.apply(this,Y)}),g(D,M)};$(z,D=>{r(u).status==="done"?D(R):D(te,!1)},!0)}g(W,P)};$(J,W=>{r(u).status==="rendering"?W(ae):W(ue,!1)})}h(V),xe(3,V,()=>Oe,()=>({y:12,duration:200})),g(A,V)};$(B,A=>{r(u)&&A(C)})}var q=l(B,2);$e(q,9,a,A=>A.id,(A,V)=>{var J=io(),ae=d(J),ue=d(ae),W=l(ue,2),P=d(W,!0);h(W);var z=l(W,2);ne(z,"aria-label",ys),h(ae),h(J),H(()=>{dn(ue,`dot ${r(V).type??""} svelte-1l6rncl`),j(P,r(V).message)}),U("click",z,()=>_r(r(V).id)),pn(J,()=>Qi,()=>({duration:180})),xe(3,J,()=>Oe,()=>({y:12,duration:200})),g(A,J)}),h(w),g(n,w),ut(),s()}var co=E("<!> <!> <!> <!>",1),lo=E('<div class="boot-loading svelte-3qbr79">Loading…</div>');function Uo(n,e){lt(e,!1);const[t,s]=ht(),i=()=>_e(Ss,"$page",t),a=()=>_e(Cs,"$auth",t),u=["/login","/setup"];let _=F(!1);Yt(async()=>{const A=i().url.pathname;if(u.includes(A)){x(_,!0);return}if(a().token){x(_,!0);return}try{const J=await wr();await hs(J?"/setup":"/login")}catch{await hs("/login")}finally{x(_,!0)}}),ct();var w=Ue(),B=re(w);{var C=A=>{var V=Ue(),J=re(V);{var ae=W=>{var P=Ue(),z=re(P);Vt(z,e,"default",{},null),g(W,P)},ue=W=>{var P=co(),z=re(P);Nr(z,{});var R=l(z,2);Ur(R,{children:(M,G)=>{var ie=Ue(),I=re(ie);Vt(I,e,"default",{},null),g(M,ie)},$$slots:{default:!0}});var te=l(R,2);Xi(te,{});var D=l(te,2);ao(D,{}),g(W,P)};$(J,W=>{i().url.pathname==="/login"||i().url.pathname==="/setup"?W(ae):W(ue,!1)})}g(A,V)},q=A=>{var V=lo();g(A,V)};$(B,A=>{r(_)?A(C):A(q,!1)})}g(n,w),ut(),s()}export{Uo as component,No as universal};
@@ -3,4 +3,4 @@
3
3
  * Licensed under the MIT License. See LICENSE file in the project root for details.
4
4
  */
5
5
 
6
- import{a as g,t as h,s}from"../chunks/CfkUW1vA.js";import{i as d}from"../chunks/C00jnSU2.js";import{p as l,f as v,t as x,c as _,d as o,k as p,j as k}from"../chunks/CeH-RgMb.js";import{s as $,p as i}from"../chunks/DiVmSEJa.js";const b={get error(){return i.error},get status(){return i.status}};$.updated.check;const m=b;var j=h("<h1> </h1> <p> </p>",1);function z(c,n){l(n,!1),d();var r=j(),t=v(r),f=o(t,!0);p(t);var e=k(t,2),u=o(e,!0);p(e),x(()=>{var a;s(f,m.status),s(u,(a=m.error)==null?void 0:a.message)}),g(c,r),_()}export{z as component};
6
+ import{a as g,t as h,s}from"../chunks/6VDMVB5U.js";import{i as d}from"../chunks/CtgCYzu5.js";import{p as l,f as v,t as x,c as _,d as o,k as p,j as k}from"../chunks/BIf7lHIm.js";import{s as $,p as i}from"../chunks/BIjh3jiU.js";const b={get error(){return i.error},get status(){return i.status}};$.updated.check;const m=b;var j=h("<h1> </h1> <p> </p>",1);function z(c,n){l(n,!1),d();var r=j(),t=v(r),f=o(t,!0);p(t);var e=k(t,2),u=o(e,!0);p(e),x(()=>{var a;s(f,m.status),s(u,(a=m.error)==null?void 0:a.message)}),g(c,r),_()}export{z as component};
@@ -0,0 +1,5 @@
1
+ /*
2
+ This file is part of Plum.
3
+ Licensed under the MIT License. See LICENSE file in the project root for details.
4
+ */
5
+   į�S�Zޝy!�^$������
@@ -0,0 +1,6 @@
1
+ /*
2
+ * This file is part of Plum.
3
+ * Licensed under the MIT License. See LICENSE file in the project root for details.
4
+ */
5
+
6
+ import{h as xt,e as oe,a as i,t as c,c as _e,s as v,r as qt,b as Re}from"../chunks/6VDMVB5U.js";import{i as Lt}from"../chunks/CtgCYzu5.js";import{p as Tt,m as g,o as $t,s as l,l as Ve,b as At,f as G,t as w,g as e,c as St,d as s,j as r,$ as wt,k as t,n as qe,v as Ct,x as ve,y as ke}from"../chunks/BIf7lHIm.js";import{i as b}from"../chunks/D_thT6pZ.js";import{e as me,i as ua,t as Ke,a as pa,f as fa,s as Fe}from"../chunks/BTV7EXZb.js";import{s as R,r as ha,C as Pa,b as It,S as Rt,e as kt,c as Dt,d as Na,L as Ua,R as ze}from"../chunks/C4Z3p6jE.js";import{b as Ze}from"../chunks/BnXsGCy3.js";import{B as De,b as Mt}from"../chunks/qvxlSGpD.js";import{f as Ot,a as Bt,s as Ha,d as Pt,b as Nt,c as Ut,e as Ht,g as Vt,h as Ft}from"../chunks/BdBJfKUi.js";import{E as jt}from"../chunks/zXSLr47H.js";import{H as Gt,a as Yt,S as Wt,R as Jt,F as Qt,P as Xt,D as Va,b as Kt,c as zt,N as Zt,d as es,e as as,f as ts,g as ss,h as rs,i as ls,j as is,T as ns,k as os,l as vs,m as ds,s as cs,n as _s,r as us,o as ps,p as fs,q as hs,t as ms,u as gs,v as Es,w as ys,I as bs,x as xs,y as qs,z as Ls,E as Fa,A as Ts,B as $s,C as As,G as ja,J as ea,K as aa,L as Ss,M as ws,O as Ga,Q as Ya,U as Cs,V as Is,W as Rs,X as ks}from"../chunks/r_d1Iu0W.js";import{r as Wa}from"../chunks/htkwR9b-.js";import{P as Ja}from"../chunks/prk8PJfA.js";import{E as ma}from"../chunks/CNpD-yNH.js";import{C as Qa}from"../chunks/BWGoOYU0.js";import{M as Xa}from"../chunks/CUPWZLIN.js";import{n as de}from"../chunks/BDb8hZHu.js";var Ds=c("Delete <strong> </strong>? This cannot be undone.",1),Ms=c(" <strong> </strong> ",1),Os=c("<option> </option>"),Bs=c('<p class="form-error svelte-lqfl9a"> </p>'),Ps=c('<div class="form-fields svelte-lqfl9a"><div class="field"><label class="field-label" for="suite-name"></label> <input id="suite-name" type="text" class="field-input"></div> <div class="field"><label class="field-label" for="suite-desc"></label> <textarea id="suite-desc" class="field-input field-textarea svelte-lqfl9a" rows="3"></textarea></div> <div class="field"><label class="field-label" for="suite-prio"></label> <select id="suite-prio" class="field-input"></select></div> <!> <div class="modal-actions svelte-lqfl9a"><!> <!></div></div>'),Ns=c('<p class="form-error svelte-lqfl9a"> </p>'),Us=c('<div class="form-fields svelte-lqfl9a"><div class="field"><label class="field-label" for="run-title"></label> <input id="run-title" type="text" class="field-input"></div> <!> <div class="modal-actions svelte-lqfl9a"><!> <!></div></div>'),Hs=c('<a class="import-link svelte-lqfl9a"></a> <!> <!>',1),Vs=c('<button class="search-clear svelte-lqfl9a"><svg width="12" height="12" viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"><path d="M1 1l12 12M13 1L1 13"></path></svg></button>'),Fs=c('<span class="sort-dir svelte-lqfl9a"> </span>'),js=c('<button class="sort-chip svelte-lqfl9a"> <!></button>'),Gs=c('<span class="sort-dir svelte-lqfl9a"> </span>'),Ys=c('<button class="sort-chip svelte-lqfl9a"> <!></button>'),Ws=c('<div class="sort-bar svelte-lqfl9a"><span class="sort-label svelte-lqfl9a"></span> <!></div>'),Js=c('<div class="loading-row svelte-lqfl9a"></div>'),Qs=c('<div class="loading-row svelte-lqfl9a"></div>'),Xs=c('<span class="auto-badge svelte-lqfl9a"></span>'),Ks=c('<a class="case-result-row svelte-lqfl9a"><span class="id-chip small svelte-lqfl9a"> </span> <span class="case-result-title svelte-lqfl9a"> </span> <!> <span> </span> <span class="case-result-suite svelte-lqfl9a"> </span></a>'),zs=c('<div class="search-section svelte-lqfl9a"><h2 class="search-section-title svelte-lqfl9a"> <span class="tab-count svelte-lqfl9a"> </span></h2> <div class="case-results svelte-lqfl9a"></div></div>'),Zs=c('<p class="suite-desc svelte-lqfl9a"> </p>'),er=c('<div class="suite-card svelte-lqfl9a"><a class="card-link svelte-lqfl9a"></a> <div class="suite-card-header svelte-lqfl9a"><span class="id-chip svelte-lqfl9a"> </span> <span> </span> <div class="suite-card-actions svelte-lqfl9a"><button class="icon-btn danger svelte-lqfl9a"><svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="3 6 5 6 21 6"></polyline><path d="M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6"></path><path d="M10 11v6M14 11v6"></path><path d="M9 6V4h6v2"></path></svg></button></div></div> <h3 class="suite-name svelte-lqfl9a"> </h3> <!> <div class="suite-meta svelte-lqfl9a"><span class="meta-item svelte-lqfl9a"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M9 5H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2M9 5a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2M9 5a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2"></path></svg> </span> <span class="meta-item svelte-lqfl9a"> </span></div></div>'),ar=c('<div class="search-section svelte-lqfl9a"><h2 class="search-section-title svelte-lqfl9a"> <span class="tab-count svelte-lqfl9a"> </span></h2> <div class="suite-grid svelte-lqfl9a"></div></div>'),tr=c('<div class="run-row svelte-lqfl9a"><a class="card-link svelte-lqfl9a"></a> <div class="run-row-main svelte-lqfl9a"><span></span> <span class="run-title svelte-lqfl9a"> </span> <span class="run-count svelte-lqfl9a"> </span></div> <div class="run-meta svelte-lqfl9a"><span class="run-status-label svelte-lqfl9a"> </span> <span class="meta-sep svelte-lqfl9a">·</span> <span> </span> <span class="meta-sep svelte-lqfl9a">·</span> <span> </span></div> <div class="run-row-actions svelte-lqfl9a"><button class="icon-btn svelte-lqfl9a"><svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2"></rect><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path></svg></button> <button class="icon-btn danger svelte-lqfl9a"><svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="3 6 5 6 21 6"></polyline><path d="M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6"></path><path d="M10 11v6M14 11v6"></path><path d="M9 6V4h6v2"></path></svg></button></div></div>'),sr=c('<div class="search-section svelte-lqfl9a"><h2 class="search-section-title svelte-lqfl9a">Runs <span class="tab-count svelte-lqfl9a"> </span></h2> <div class="runs-list svelte-lqfl9a"></div></div>'),rr=c("<!> <!> <!>",1),lr=c("<div><!></div>"),ir=c('<div class="loading-row svelte-lqfl9a"></div>'),nr=c('<p class="suite-desc svelte-lqfl9a"> </p>'),or=c('<div class="suite-card svelte-lqfl9a"><a class="card-link svelte-lqfl9a"></a> <div class="suite-card-header svelte-lqfl9a"><span class="id-chip svelte-lqfl9a"> </span> <span> </span> <div class="suite-card-actions svelte-lqfl9a"><button class="icon-btn danger svelte-lqfl9a"><svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="3 6 5 6 21 6"></polyline><path d="M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6"></path><path d="M10 11v6M14 11v6"></path><path d="M9 6V4h6v2"></path></svg></button></div></div> <h3 class="suite-name svelte-lqfl9a"> </h3> <!> <div class="suite-meta svelte-lqfl9a"><span class="meta-item svelte-lqfl9a"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M9 5H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2M9 5a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2M9 5a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2"></path></svg> </span> <span class="meta-item svelte-lqfl9a"> </span></div></div>'),vr=c('<div class="pagination-row svelte-lqfl9a"><!></div>'),dr=c('<div class="suite-grid svelte-lqfl9a"></div> <!>',1),cr=c("<div><!></div>"),_r=c('<div class="loading-row svelte-lqfl9a"></div>'),ur=c('<div class="run-row svelte-lqfl9a"><a class="card-link svelte-lqfl9a"></a> <div class="run-row-main svelte-lqfl9a"><span></span> <span class="run-title svelte-lqfl9a"> </span> <span class="run-count svelte-lqfl9a"> </span></div> <div class="run-meta svelte-lqfl9a"><span class="run-status-label svelte-lqfl9a"> </span> <span class="meta-sep svelte-lqfl9a">·</span> <span> </span> <span class="meta-sep svelte-lqfl9a">·</span> <span> </span></div> <div class="run-row-actions svelte-lqfl9a"><button class="icon-btn svelte-lqfl9a"><svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="9" y="9" width="13" height="13" rx="2"></rect><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path></svg></button> <button class="icon-btn danger svelte-lqfl9a"><svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="3 6 5 6 21 6"></polyline><path d="M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6"></path><path d="M10 11v6M14 11v6"></path><path d="M9 6V4h6v2"></path></svg></button></div></div>'),pr=c('<div class="pagination-row svelte-lqfl9a"><!></div>'),fr=c('<div class="runs-list svelte-lqfl9a"></div> <!>',1),hr=c("<div><!></div>"),mr=c('<!> <!> <!> <!> <div class="page-header svelte-lqfl9a"><div class="header-text svelte-lqfl9a"><h1 class="svelte-lqfl9a"></h1> <p class="header-desc svelte-lqfl9a"></p></div> <div class="header-actions svelte-lqfl9a"><!></div></div> <div class="tabs svelte-lqfl9a"><button class="tab svelte-lqfl9a"> <span class="tab-count svelte-lqfl9a"> </span></button> <button class="tab svelte-lqfl9a"> <span class="tab-count svelte-lqfl9a"> </span></button></div> <div class="search-bar svelte-lqfl9a"><svg class="search-icon svelte-lqfl9a" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line></svg> <input type="search" class="search-input svelte-lqfl9a"> <!></div> <!> <!>',1);function Mr(Ka,za){Tt(za,!1);const ue=g(),Me=g(),Le=g(),Te=g();let $e=g(typeof sessionStorage<"u"&&sessionStorage.getItem("plum:repo:tab")||"suites");function ga(a){l($e,a);try{sessionStorage.setItem("plum:repo:tab",a)}catch{}}function Ea(a,n){try{const o=sessionStorage.getItem(a);if(o)return JSON.parse(o)}catch{}return n}function ya(a,n){try{sessionStorage.setItem(a,JSON.stringify(n))}catch{}}let ge=g([]),pe=g(0),ba=g(1),K=g(Ea("plum:repo:suites:sort",{by:"createdAt",order:"desc"})),ce=g([]),fe=g(0),xa=g(1),re=g(Ea("plum:repo:runs:sort",{by:"createdAt",order:"desc"}));const qa={Critical:0,High:1,Medium:2,Low:3};function Za(a,n){return[...a].sort((o,q)=>{const k=(qa[o.priority]??4)-(qa[q.priority]??4);return n==="asc"?k:-k})}let ta=g(!0),le=g(null),je=g(!1),sa=g(null),Oe=g(!1),z=g({name:"",description:"",priority:"Medium"}),Ge=g(!1),Ae=g(""),Be=g(!1),Se=g({title:""}),Ye=g(!1),we=g(""),W=g(null),he=g(!1),Ce=g(null),We=g(!1),Ee=g("");const et=["Critical","High","Medium","Low"];let ra=g(!1);async function at(a){l(ra,!0);try{await Ft("all",null,a),de("success",kt(Fa))}catch{de("error",Dt(Fa.toLowerCase()))}finally{l(ra,!1)}}async function la(a=1){const n=e(K).by==="priority",o=await Ot({page:a,sortBy:n?"createdAt":e(K).by,sortOrder:e(K).order});l(ge,n?Za(o.suites,e(K).order):o.suites),l(pe,o.total),l(ba,a)}async function ia(a=1){const n=await Bt({page:a,sortBy:e(re).by,sortOrder:e(re).order});l(ce,n.runs),l(fe,n.total),l(xa,a)}async function tt(a){e(K).by===a?ke(K,e(K).order=e(K).order==="asc"?"desc":"asc"):l(K,{by:a,order:a==="createdAt"?"desc":"asc"}),ya("plum:repo:suites:sort",e(K)),await la(1)}async function st(a){e(re).by===a?ke(re,e(re).order=e(re).order==="asc"?"desc":"asc"):l(re,{by:a,order:a==="createdAt"||a==="updatedAt"?"desc":"asc"}),ya("plum:repo:runs:sort",e(re)),await ia(1)}$t(async()=>{try{await Promise.all([la(1),ia(1)])}catch{de("error",Qt)}finally{l(ta,!1)}});async function rt(){if(!e(z).name.trim()){l(Ae,gs);return}l(Ae,""),l(Ge,!0);try{const a=await Ht(e(z));l(ge,[...e(ge),a]),l(pe,e(pe)+1),l(Oe,!1),l(z,{name:"",description:"",priority:"Medium"}),de("success",Es(a.name))}catch(a){l(Ae,a.message)}finally{l(Ge,!1)}}async function lt(a,n){try{await Pt(a),l(ge,e(ge).filter(o=>o.id!==a)),l(pe,e(pe)-1),de("success",cs(n))}catch{de("error",_s)}l(W,null),l(he,!1)}async function it(){if(!e(Se).title.trim()){l(we,ys);return}l(we,""),l(Ye,!0);try{const a=await Vt({title:e(Se).title,caseIds:[]});l(ce,[a,...e(ce)]),l(Be,!1),l(Se,{title:""}),window.location.href=`/test-repository/runs/${a.id}`}catch(a){l(we,a.message)}finally{l(Ye,!1)}}async function La(a){l(Ce,a),l(We,!0)}async function nt(){if(!e(Ce))return;const a=e(Ce);l(Ce,null),l(We,!1);try{const n=await Ut(a.id);l(ce,[n,...e(ce)]),l(fe,e(fe)+1),Wa.update(o=>o+1),de("success",hs(n.title))}catch{de("error",ms)}}async function ot(a,n){try{await Nt(a),l(ce,e(ce).filter(o=>o.id!==a)),l(fe,e(fe)-1),Wa.update(o=>o+1),de("success",us(n))}catch{de("error",ps)}l(W,null),l(he,!1)}function na(a){return(a==null?void 0:a.toLowerCase())??"medium"}function Ta(a){return a==="complete"?"pass":a==="in-progress"?"warn":"muted"}Ve(()=>e(Ee),()=>{l(ue,e(Ee).trim())}),Ve(()=>(e(sa),e(ue),Ha),()=>{clearTimeout(e(sa)),e(ue)?(l(je,!0),l(le,null),l(sa,setTimeout(async()=>{try{l(le,await Ha(e(ue)))}catch{l(le,{suites:[],cases:[],runs:[]})}finally{l(je,!1)}},300))):(l(le,null),l(je,!1))}),Ve(()=>e(le),()=>{var a;l(Me,((a=e(le))==null?void 0:a.cases)??[])}),Ve(()=>e(le),()=>{var a;l(Le,((a=e(le))==null?void 0:a.suites)??[])}),Ve(()=>e(le),()=>{var a;l(Te,((a=e(le))==null?void 0:a.runs)??[])}),At(),Lt();var $a=mr();xt(a=>{wt.title=Xt});var Aa=G($a);const vt=ve(()=>{var a;return fs((a=e(W))==null?void 0:a.type)});Qa(Aa,{get title(){return e(vt)},get open(){return e(he)},set open(a){l(he,a)},$$events:{confirm:()=>{var a;return((a=e(W))==null?void 0:a.type)==="suite"?lt(e(W).id,e(W).name):ot(e(W).id,e(W).name)}},children:(a,n)=>{var o=_e(),q=G(o);{var k=p=>{var _=Ds(),L=r(G(_)),C=s(L);t(L),qe(),w(()=>v(C,`"${e(W).name??""}"`)),i(p,_)};b(q,p=>{e(W)&&p(k)})}i(a,o)},$$slots:{default:!0},$$legacy:!0});var Sa=r(Aa,2);Qa(Sa,{title:Kt,confirmLabel:Va,get open(){return e(We)},set open(a){l(We,a)},$$events:{confirm:nt},children:(a,n)=>{var o=_e(),q=G(o);{var k=p=>{var _=Ms(),L=G(_);L.nodeValue=`${Va} `;var C=r(L),D=s(C);t(C);var h=r(C,1,!0);h.nodeValue=zt,w(()=>v(D,`"${e(Ce).title??""}"`)),i(p,_)};b(q,p=>{e(Ce)&&p(k)})}i(a,o)},$$slots:{default:!0},$$legacy:!0});var wa=r(Sa,2);Xa(wa,{title:Zt,get open(){return e(Oe)},set open(a){l(Oe,a)},children:(a,n)=>{var o=Ps(),q=s(o),k=s(q);k.textContent=es;var p=r(k,2);ha(p),R(p,"placeholder",as),t(q);var _=r(q,2),L=s(_);L.textContent=ts;var C=r(L,2);qt(C),R(C,"placeholder",ss),t(_);var D=r(_,2),h=s(D);h.textContent=rs;var d=r(h,2);w(()=>{e(z),Ct(()=>{})}),me(d,5,()=>et,ua,(f,T)=>{var $=Os(),I={},u=s($,!0);t($),w(()=>{I!==(I=e(T))&&($.value=($.__value=e(T))==null?"":e(T)),v(u,e(T))}),i(f,$)}),t(d),t(D);var M=r(D,2);{var E=f=>{var T=Bs(),$=s(T,!0);t(T),w(()=>v($,e(Ae))),i(f,T)};b(M,f=>{e(Ae)&&f(E)})}var N=r(M,2),y=s(N);De(y,{get disabled(){return e(Ge)},$$events:{click:rt},children:(f,T)=>{qe();var $=Re();w(I=>v($,I),[()=>ls(e(Ge))],ve),i(f,$)},$$slots:{default:!0}});var U=r(y,2);De(U,{variant:"ghost",$$events:{click:()=>{l(Oe,!1),l(Ae,"")}},children:(f,T)=>{qe();var $=Re();$.nodeValue=Pa,i(f,$)},$$slots:{default:!0}}),t(N),t(o),Ze(p,()=>e(z).name,f=>ke(z,e(z).name=f)),Ze(C,()=>e(z).description,f=>ke(z,e(z).description=f)),Mt(d,()=>e(z).priority,f=>ke(z,e(z).priority=f)),i(a,o)},$$slots:{default:!0},$$legacy:!0});var Ca=r(wa,2);Xa(Ca,{title:is,get open(){return e(Be)},set open(a){l(Be,a)},children:(a,n)=>{var o=Us(),q=s(o),k=s(q);k.textContent=ns;var p=r(k,2);ha(p),R(p,"placeholder",os),t(q);var _=r(q,2);{var L=d=>{var M=Ns(),E=s(M,!0);t(M),w(()=>v(E,e(we))),i(d,M)};b(_,d=>{e(we)&&d(L)})}var C=r(_,2),D=s(C);De(D,{get disabled(){return e(Ye)},$$events:{click:it},children:(d,M)=>{qe();var E=Re();w(N=>v(E,N),[()=>vs(e(Ye))],ve),i(d,E)},$$slots:{default:!0}});var h=r(D,2);De(h,{variant:"ghost",$$events:{click:()=>{l(Be,!1),l(we,"")}},children:(d,M)=>{qe();var E=Re();E.nodeValue=Pa,i(d,E)},$$slots:{default:!0}}),t(C),t(o),Ze(p,()=>e(Se).title,d=>ke(Se,e(Se).title=d)),i(a,o)},$$slots:{default:!0},$$legacy:!0});var oa=r(Ca,2),va=s(oa),Ia=s(va);Ia.textContent=Gt;var dt=r(Ia,2);dt.textContent=Yt,t(va);var Ra=r(va,2),ct=s(Ra);{var _t=a=>{var n=Hs(),o=G(n);R(o,"href",bs),o.textContent=xs;var q=r(o,2);jt(q,{get busy(){return e(ra)},$$events:{select:p=>at(p.detail)}});var k=r(q,2);De(k,{$$events:{click:()=>l(Oe,!0)},children:(p,_)=>{qe();var L=Re();L.nodeValue=qs,i(p,L)},$$slots:{default:!0}}),i(a,n)},ut=a=>{De(a,{$$events:{click:()=>l(Be,!0)},children:(n,o)=>{qe();var q=Re();q.nodeValue=Ls,i(n,q)},$$slots:{default:!0}})};b(ct,a=>{e($e)==="suites"?a(_t):a(ut,!1)})}t(Ra),t(oa);var da=r(oa,2),Pe=s(da),ka=s(Pe);ka.nodeValue=`${Wt} `;var Da=r(ka),pt=s(Da);t(Da),t(Pe);var Je=r(Pe,2),Ma=s(Je);Ma.nodeValue=`${Jt} `;var Oa=r(Ma),ft=s(Oa);t(Oa),t(Je),t(da);var ca=r(da,2),Qe=r(s(ca),2);ha(Qe),R(Qe,"placeholder",ds);var ht=r(Qe,2);{var mt=a=>{var n=Vs();R(n,"aria-label",It),oe("click",n,()=>l(Ee,"")),i(a,n)};b(ht,a=>{e(Ee)&&a(mt)})}t(ca);var Ba=r(ca,2);{var gt=a=>{var n=Ws(),o=s(n);o.textContent=Rt;var q=r(o,2);{var k=_=>{var L=_e(),C=G(L);me(C,0,()=>[["createdAt","Date Created"],["displayId","ID"],["name","Name"],["priority","Priority"]],ua,(D,h)=>{let d=()=>h[0],M=()=>h[1];var E=js(),N=s(E),y=r(N);{var U=f=>{var T=Fs(),$=s(T,!0);t(T),w(()=>v($,e(K).order==="asc"?"↑":"↓")),i(f,T)};b(y,f=>{e(K).by===d()&&f(U)})}t(E),w(()=>{Ke(E,"active",e(K).by===d()),v(N,`${M()??""} `)}),oe("click",E,()=>tt(d())),i(D,E)}),i(_,L)},p=_=>{var L=_e(),C=G(L);me(C,0,()=>[["createdAt","Date Created"],["updatedAt","Last Updated"],["title","Name"]],ua,(D,h)=>{let d=()=>h[0],M=()=>h[1];var E=Ys(),N=s(E),y=r(N);{var U=f=>{var T=Gs(),$=s(T,!0);t(T),w(()=>v($,e(re).order==="asc"?"↑":"↓")),i(f,T)};b(y,f=>{e(re).by===d()&&f(U)})}t(E),w(()=>{Ke(E,"active",e(re).by===d()),v(N,`${M()??""} `)}),oe("click",E,()=>st(d())),i(D,E)}),i(_,L)};b(q,_=>{e($e)==="suites"?_(k):_(p,!1)})}t(n),i(a,n)};b(Ba,a=>{e(ue)||a(gt)})}var Et=r(Ba,2);{var yt=a=>{var n=lr(),o=s(n);{var q=p=>{var _=Js();_.textContent=Na,i(p,_)},k=p=>{var _=_e(),L=G(_);{var C=h=>{var d=Qs();d.textContent=Na,i(h,d)},D=h=>{var d=_e(),M=G(d);{var E=y=>{const U=ve(()=>Cs(e(Ee)));ma(y,{title:Ts,get description(){return e(U)}})},N=y=>{var U=rr(),f=G(U);{var T=A=>{var S=zs(),O=s(S),J=s(O);J.nodeValue=`${Is} `;var Q=r(J),ie=s(Q,!0);t(Q),t(O);var X=r(O,2);me(X,5,()=>e(Me),x=>x.id,(x,m)=>{var H=Ks(),B=s(H),ae=s(B,!0);t(B);var P=r(B,2),ne=s(P,!0);t(P);var Y=r(P,2);{var te=se=>{var ye=Xs();ye.textContent=Rs,i(se,ye)};b(Y,se=>{e(m).isAutomated&&se(te)})}var V=r(Y,2),F=s(V,!0);t(V);var j=r(V,2),ee=s(j);t(j),t(H),w(se=>{R(H,"href",`/test-repository/suites/${e(m).suite.id??""}`),v(ae,e(m).displayId),v(ne,e(m).title),Fe(V,`priority-badge small ${se??""} svelte-lqfl9a`),v(F,e(m).priority),v(ee,`${e(m).suite.displayId??""} · ${e(m).suite.name??""}`)},[()=>na(e(m).priority)],ve),i(x,H)}),t(X),t(S),w(()=>v(ie,e(Me).length)),i(A,S)};b(f,A=>{e(Me).length>0&&A(T)})}var $=r(f,2);{var I=A=>{var S=ar(),O=s(S),J=s(O);J.nodeValue=`${ks} `;var Q=r(J),ie=s(Q,!0);t(Q),t(O);var X=r(O,2);me(X,5,()=>e(Le),x=>x.id,(x,m)=>{var H=er(),B=s(H),ae=r(B,2),P=s(ae),ne=s(P,!0);t(P);var Y=r(P,2),te=s(Y,!0);t(Y);var V=r(Y,2),F=s(V);R(F,"title",ja),t(V),t(ae);var j=r(ae,2),ee=s(j,!0);t(j);var se=r(j,2);{var ye=be=>{var xe=Zs(),He=s(xe,!0);t(xe),w(()=>v(He,e(m).description)),i(be,xe)};b(se,be=>{e(m).description&&be(ye)})}var Xe=r(se,2),Ie=s(Xe),Ne=r(s(Ie));t(Ie);var Ue=r(Ie,2),_a=s(Ue,!0);t(Ue),t(Xe),t(H),w((be,xe,He)=>{R(B,"href",`/test-repository/suites/${e(m).id??""}`),R(B,"aria-label",e(m).name),v(ne,e(m).displayId),Fe(Y,`priority-badge ${be??""} svelte-lqfl9a`),v(te,e(m).priority),v(ee,e(m).name),v(Ne,` ${xe??""}`),v(_a,He)},[()=>na(e(m).priority),()=>ea(e(m)._count.cases),()=>aa(e(m).createdBy.name)],ve),oe("click",F,()=>{l(W,{type:"suite",id:e(m).id,name:e(m).name}),l(he,!0)}),i(x,H)}),t(X),t(S),w(()=>v(ie,e(Le).length)),i(A,S)};b($,A=>{e(Le).length>0&&A(I)})}var u=r($,2);{var Z=A=>{var S=sr(),O=s(S),J=r(s(O)),Q=s(J,!0);t(J),t(O);var ie=r(O,2);me(ie,5,()=>e(Te),X=>X.id,(X,x)=>{var m=tr(),H=s(m),B=r(H,2),ae=s(B),P=r(ae,2),ne=s(P,!0);t(P);var Y=r(P,2),te=s(Y,!0);t(Y),t(B);var V=r(B,2),F=s(V),j=s(F,!0);t(F);var ee=r(F,4),se=s(ee,!0);t(ee);var ye=r(ee,4),Xe=s(ye,!0);t(ye),t(V);var Ie=r(V,2),Ne=s(Ie);R(Ne,"title",Ga);var Ue=r(Ne,2);R(Ue,"title",Ya),t(Ie),t(m),w((_a,be,xe,He)=>{R(H,"href",`/test-repository/runs/${e(x).id??""}`),R(H,"aria-label",e(x).title),Fe(ae,`run-status-dot ${_a??""} svelte-lqfl9a`),v(ne,e(x).title),v(te,be),v(j,e(x).status),v(se,xe),v(Xe,He)},[()=>Ta(e(x).status),()=>ea(e(x)._count.entries),()=>aa(e(x).createdBy.name),()=>new Date(e(x).createdAt).toLocaleDateString()],ve),oe("click",Ne,()=>La(e(x))),oe("click",Ue,()=>{l(W,{type:"run",id:e(x).id,name:e(x).title}),l(he,!0)}),i(X,m)}),t(ie),t(S),w(()=>v(Q,e(Te).length)),i(A,S)};b(u,A=>{e(Te).length>0&&A(Z)})}i(y,U)};b(M,y=>{e(Me).length===0&&e(Le).length===0&&e(Te).length===0?y(E):y(N,!1)},!0)}i(h,d)};b(L,h=>{e(le)?h(D,!1):h(C)},!0)}i(p,_)};b(o,p=>{e(je)?p(q):p(k,!1)})}t(n),pa(3,n,()=>fa,()=>({y:4,duration:160})),i(a,n)},bt=a=>{var n=_e(),o=G(n);{var q=p=>{var _=cr(),L=s(_);{var C=h=>{var d=ir();d.textContent=Ua,i(h,d)},D=h=>{var d=_e(),M=G(d);{var E=y=>{ma(y,{title:As,description:$s})},N=y=>{var U=dr(),f=G(U);me(f,5,()=>e(ge),I=>I.id,(I,u)=>{var Z=or(),A=s(Z),S=r(A,2),O=s(S),J=s(O,!0);t(O);var Q=r(O,2),ie=s(Q,!0);t(Q);var X=r(Q,2),x=s(X);R(x,"title",ja),t(X),t(S);var m=r(S,2),H=s(m,!0);t(m);var B=r(m,2);{var ae=F=>{var j=nr(),ee=s(j,!0);t(j),w(()=>v(ee,e(u).description)),i(F,j)};b(B,F=>{e(u).description&&F(ae)})}var P=r(B,2),ne=s(P),Y=r(s(ne));t(ne);var te=r(ne,2),V=s(te,!0);t(te),t(P),t(Z),w((F,j,ee)=>{R(A,"href",`/test-repository/suites/${e(u).id??""}`),R(A,"aria-label",e(u).name),v(J,e(u).displayId),Fe(Q,`priority-badge ${F??""} svelte-lqfl9a`),v(ie,e(u).priority),v(H,e(u).name),v(Y,` ${j??""}`),v(V,ee)},[()=>na(e(u).priority),()=>ea(e(u)._count.cases),()=>aa(e(u).createdBy.name)],ve),oe("click",x,()=>{l(W,{type:"suite",id:e(u).id,name:e(u).name}),l(he,!0)}),i(I,Z)}),t(f);var T=r(f,2);{var $=I=>{var u=vr(),Z=s(u);const A=ve(()=>Math.ceil(e(pe)/ze));Ja(Z,{get current(){return e(ba)},get total(){return e(A)},$$events:{change:S=>la(S.detail)}}),t(u),i(I,u)};b(T,I=>{Math.ceil(e(pe)/ze)>1&&I($)})}i(y,U)};b(M,y=>{e(ge).length===0?y(E):y(N,!1)},!0)}i(h,d)};b(L,h=>{e(ta)?h(C):h(D,!1)})}t(_),pa(3,_,()=>fa,()=>({y:4,duration:160})),i(p,_)},k=p=>{var _=hr(),L=s(_);{var C=h=>{var d=_r();d.textContent=Ua,i(h,d)},D=h=>{var d=_e(),M=G(d);{var E=y=>{ma(y,{title:ws,description:Ss})},N=y=>{var U=fr(),f=G(U);me(f,5,()=>e(ce),I=>I.id,(I,u)=>{var Z=ur(),A=s(Z),S=r(A,2),O=s(S),J=r(O,2),Q=s(J,!0);t(J);var ie=r(J,2),X=s(ie,!0);t(ie),t(S);var x=r(S,2),m=s(x),H=s(m,!0);t(m);var B=r(m,4),ae=s(B,!0);t(B);var P=r(B,4),ne=s(P,!0);t(P),t(x);var Y=r(x,2),te=s(Y);R(te,"title",Ga);var V=r(te,2);R(V,"title",Ya),t(Y),t(Z),w((F,j,ee,se)=>{R(A,"href",`/test-repository/runs/${e(u).id??""}`),R(A,"aria-label",e(u).title),Fe(O,`run-status-dot ${F??""} svelte-lqfl9a`),v(Q,e(u).title),v(X,j),v(H,e(u).status),v(ae,ee),v(ne,se)},[()=>Ta(e(u).status),()=>ea(e(u)._count.entries),()=>aa(e(u).createdBy.name),()=>new Date(e(u).createdAt).toLocaleDateString()],ve),oe("click",te,()=>La(e(u))),oe("click",V,()=>{l(W,{type:"run",id:e(u).id,name:e(u).title}),l(he,!0)}),i(I,Z)}),t(f);var T=r(f,2);{var $=I=>{var u=pr(),Z=s(u);const A=ve(()=>Math.ceil(e(fe)/ze));Ja(Z,{get current(){return e(xa)},get total(){return e(A)},$$events:{change:S=>ia(S.detail)}}),t(u),i(I,u)};b(T,I=>{Math.ceil(e(fe)/ze)>1&&I($)})}i(y,U)};b(M,y=>{e(ce).length===0?y(E):y(N,!1)},!0)}i(h,d)};b(L,h=>{e(ta)?h(C):h(D,!1)})}t(_),pa(3,_,()=>fa,()=>({y:4,duration:160})),i(p,_)};b(o,p=>{e($e)==="suites"?p(q):p(k,!1)},!0)}i(a,n)};b(Et,a=>{e(ue)?a(yt):a(bt,!1)})}w(()=>{Ke(Pe,"active",e($e)==="suites"),v(pt,`${(e(ue)?e(Le).length+"/":"")??""}${e(pe)??""}`),Ke(Je,"active",e($e)==="runs"),v(ft,`${(e(ue)?e(Te).length+"/":"")??""}${e(fe)??""}`)}),oe("click",Pe,()=>ga("suites")),oe("click",Je,()=>ga("runs")),Ze(Qe,()=>e(Ee),a=>l(Ee,a)),i(Ka,$a),St()}export{Mr as component};
@@ -0,0 +1,6 @@
1
+ /*
2
+ * This file is part of Plum.
3
+ * Licensed under the MIT License. See LICENSE file in the project root for details.
4
+ */
5
+
6
+ import{a as o,t as u,s as w,h as ga,b as Te,c as Ke,e as R,n as ba}from"../chunks/6VDMVB5U.js";import{i as Xt}from"../chunks/CtgCYzu5.js";import{p as ht,l as me,s as i,aj as zt,b as Et,d as r,k as a,t as E,g as e,c as Lt,m as b,o as wa,f as se,x as Fe,$ as ha,y as Pt,j as l,n as pe}from"../chunks/BIf7lHIm.js";import{i as m,s as Ea,a as Ut}from"../chunks/D_thT6pZ.js";import{t as k,s as La,a as mt,f as xt,e as Be,i as ft}from"../chunks/BTV7EXZb.js";import{l as Aa,r as Mt,i as Vt,j as Gt,C as Ca,L as Ta,s as Ne}from"../chunks/C4Z3p6jE.js";import{b as jt}from"../chunks/BnXsGCy3.js";import{B as Se,i as Sa,s as ya}from"../chunks/qvxlSGpD.js";import{p as ka}from"../chunks/Dlymnwnf.js";import{v as gt,j as Ia,w as $a,x as De,y as Oa,z as Ra}from"../chunks/BdBJfKUi.js";import{r as bt}from"../chunks/htkwR9b-.js";import{a as Ba}from"../chunks/CXQhSK1T.js";import{M as Na}from"../chunks/CUPWZLIN.js";import{n as re}from"../chunks/BDb8hZHu.js";import{E as Da}from"../chunks/CNpD-yNH.js";import{p as Je}from"../chunks/D72giPTu.js";import{ae as Pa,F as Ua,aO as Ma,aP as Va,T as Ga,aQ as ja,aR as Ha,aS as Ka,aT as Fa,aU as Xa,aV as za,aW as Wa,aX as Ya,aY as Ja,aZ as qa,a_ as Qa,a$ as Za,b0 as es,b1 as ts,b2 as as,b3 as ss,b4 as rs,b5 as ls,b6 as is,b7 as os,b8 as ns,b9 as vs,ba as ds,bb as cs,bc as us,bd as _s,be as ps,bf as ms,bg as xs,bh as fs,bi as gs,bj as Ht,bk as bs,bl as ws,bm as hs,bn as Es,a8 as Ls,bo as As}from"../chunks/r_d1Iu0W.js";var Cs=u('<span class="auto-badge svelte-1yr9844"></span>');function lt(Le){var q=Cs();q.textContent=Aa,o(Le,q)}var Ts=u('<span class="priority-badge svelte-1m066kw"> </span>');function Kt(Le,q){ht(q,!1);const V=b();let Q=Je(q,"priority",8,"Medium"),G=Je(q,"small",8,!1);me(()=>zt(Q()),()=>{var Xe;i(V,((Xe=Q())==null?void 0:Xe.toLowerCase())??"medium")}),Et(),Xt();var z=Ts(),Pe=r(z,!0);a(z),E(()=>{k(z,"critical",e(V)==="critical"),k(z,"high",e(V)==="high"),k(z,"medium",e(V)==="medium"),k(z,"low",e(V)==="low"),k(z,"small",G()),w(Pe,Q())}),o(Le,z),Lt()}var Ss=u('<span class="id-chip svelte-1gmo0py"> </span>');function wt(Le,q){let V=Je(q,"id",8,""),Q=Je(q,"small",8,!1);var G=Ss(),z=r(G,!0);a(G),E(()=>{k(G,"small",Q()),w(z,V())}),o(Le,G)}var ys=u('<span class="result-chip svelte-1rgb1a1"> </span>');function Ft(Le,q){ht(q,!1);const V=b();let Q=Je(q,"status",8,"pending");me(()=>zt(Q()),()=>{i(V,Q()==="pass"?"pass":Q()==="fail"?"fail":Q()==="blocked"?"warn":Q()==="skip"?"muted":"pending")}),Et();var G=ys(),z=r(G,!0);a(G),E(()=>{k(G,"pass",e(V)==="pass"),k(G,"fail",e(V)==="fail"),k(G,"warn",e(V)==="warn"),k(G,"muted",e(V)==="muted"),k(G,"pending",e(V)==="pending"),w(z,Q())}),o(Le,G),Lt()}var ks=u('<div class="form-fields svelte-1mxlw2t"><div class="field"><label class="field-label" for="er-title"></label> <input id="er-title" type="text" class="field-input"></div> <div class="modal-actions svelte-1mxlw2t"><!> <!></div></div>'),Is=u('<div class="loading-state svelte-1mxlw2t"></div>'),$s=u("<!> <!>",1),Os=u("<!> <!> <!>",1),Rs=u('<span class="exec-progress svelte-1mxlw2t"> </span>'),Bs=u('<span class="locked-badge svelte-1mxlw2t"></span>'),Ns=u('<span class="entry-sort-dir svelte-1mxlw2t"> </span>'),Ds=u('<button class="entry-sort-chip svelte-1mxlw2t"> <!></button>'),Ps=ba('<svg class="drag-handle svelte-1mxlw2t" width="12" height="12" viewBox="0 0 24 24" fill="currentColor"><circle cx="9" cy="5" r="1.5"></circle><circle cx="15" cy="5" r="1.5"></circle><circle cx="9" cy="12" r="1.5"></circle><circle cx="15" cy="12" r="1.5"></circle><circle cx="9" cy="19" r="1.5"></circle><circle cx="15" cy="19" r="1.5"></circle></svg>'),Us=u("<option> </option>"),Ms=u('<select class="assignee-select svelte-1mxlw2t"><option></option><!></select>'),Vs=u('<button class="icon-btn danger svelte-1mxlw2t"><svg width="11" height="11" viewBox="0 0 14 14" fill="none"><path d="M1 1l12 12M13 1L1 13" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"></path></svg></button>'),Gs=u('<div class="entry-row svelte-1mxlw2t" role="listitem"><!> <div class="entry-info svelte-1mxlw2t"><div class="entry-badges svelte-1mxlw2t"><!> <!></div> <p class="entry-title svelte-1mxlw2t"> </p> <span class="entry-suite svelte-1mxlw2t"> </span></div> <!> <!></div>'),js=u('<div class="entry-sort-bar svelte-1mxlw2t"></div> <div class="entry-list svelte-1mxlw2t" role="list"></div>',1),Hs=u('<button class="browser-case svelte-1mxlw2t"><!> <span class="browser-case-title svelte-1mxlw2t"> </span> <!> <!></button>'),Ks=u('<div class="browser-cases svelte-1mxlw2t"></div>'),Fs=u('<p class="browser-empty svelte-1mxlw2t"> </p>'),Xs=u('<div class="browser-suite svelte-1mxlw2t"><button class="browser-suite-header svelte-1mxlw2t"><svg class="chevron svelte-1mxlw2t" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><polyline points="9 18 15 12 9 6"></polyline></svg> <span class="browser-suite-name svelte-1mxlw2t"> </span> <span class="browser-suite-count svelte-1mxlw2t"> </span></button> <!></div>'),zs=u('<p class="browser-empty svelte-1mxlw2t"></p>'),Ws=u('<div class="builder-panel right-panel svelte-1mxlw2t"><div class="builder-panel-head svelte-1mxlw2t"><h2 class="builder-panel-title svelte-1mxlw2t"></h2> <input type="text" class="search-input svelte-1mxlw2t"></div> <div class="suite-browser svelte-1mxlw2t"><!> <!></div></div>'),Ys=u('<div class="builder-workspace svelte-1mxlw2t"><div class="builder-panel left-panel svelte-1mxlw2t"><div class="builder-panel-head svelte-1mxlw2t"><h2 class="builder-panel-title svelte-1mxlw2t"></h2> <span class="count-chip svelte-1mxlw2t"> </span> <!></div> <!></div> <!></div>'),Js=u('<div class="exec-locked-banner svelte-1mxlw2t"></div>'),qs=u('<div class="progress-bar-wrap svelte-1mxlw2t"><div class="progress-stats svelte-1mxlw2t"><span class="stat pass svelte-1mxlw2t"> </span> <span class="stat fail svelte-1mxlw2t"> </span> <span class="stat muted svelte-1mxlw2t"> </span></div> <div class="progress-bar svelte-1mxlw2t"><div class="progress-fill pass svelte-1mxlw2t"></div> <div class="progress-fill fail svelte-1mxlw2t"></div></div></div>'),Qs=u('<button class="exec-chevron svelte-1mxlw2t"><svg class="chevron svelte-1mxlw2t" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><polyline points="9 18 15 12 9 6"></polyline></svg></button>'),Zs=u('<div class="exec-assignee-row svelte-1mxlw2t"><!></div> <div class="exec-assignee-divider svelte-1mxlw2t"></div>',1),er=u('<span class="exec-assignee-name svelte-1mxlw2t"> </span>'),tr=u('<button class="exec-assign-me svelte-1mxlw2t"></button>'),ar=u('<div class="exec-assignee-row svelte-1mxlw2t"><!> <!></div> <div class="exec-assignee-divider svelte-1mxlw2t"></div>',1),sr=u('<div class="exec-btns svelte-1mxlw2t"><button class="exec-btn in-progress svelte-1mxlw2t"></button> <button class="exec-btn pass svelte-1mxlw2t"></button> <button class="exec-btn fail svelte-1mxlw2t"></button> <button class="exec-btn warn svelte-1mxlw2t"></button> <button class="exec-btn muted svelte-1mxlw2t"></button></div>'),rr=u('<div class="exec-btns svelte-1mxlw2t"><!> <button class="exec-reset svelte-1mxlw2t"></button></div>'),lr=u('<p class="exec-step-data svelte-1mxlw2t"> </p>'),ir=u('<p class="exec-step-expected svelte-1mxlw2t"> </p>'),or=u('<div class="exec-step svelte-1mxlw2t"><span class="exec-step-num svelte-1mxlw2t"></span> <div class="exec-step-body svelte-1mxlw2t"><p class="exec-step-action svelte-1mxlw2t"> </p> <!> <!></div></div>'),nr=u('<div class="exec-steps svelte-1mxlw2t"></div>'),vr=u('<div class="execute-row svelte-1mxlw2t"><div class="execute-row-main svelte-1mxlw2t"><div class="exec-info svelte-1mxlw2t"><!> <!> <!> <div><p class="exec-title svelte-1mxlw2t"> </p> <span class="exec-suite svelte-1mxlw2t"> </span></div></div> <div class="exec-actions svelte-1mxlw2t"><!> <!></div></div> <!></div>'),dr=u('<div class="execute-workspace"><!> <!> <div class="execute-list svelte-1mxlw2t"></div></div>'),cr=u('<div class="run-header svelte-1mxlw2t"><div class="run-header-left svelte-1mxlw2t"><h1 class="run-title svelte-1mxlw2t"> </h1> <span> </span> <button class="icon-btn svelte-1mxlw2t"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7"></path><path d="M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z"></path></svg></button></div> <div class="run-header-actions svelte-1mxlw2t"><!></div></div> <div class="mode-tabs svelte-1mxlw2t"><button class="mode-tab svelte-1mxlw2t"></button> <button class="mode-tab svelte-1mxlw2t"> <!></button></div> <!>',1),ur=u('<!> <div class="breadcrumb svelte-1mxlw2t"><a href="/test-repository" class="bc-link svelte-1mxlw2t"></a> <span class="bc-sep svelte-1mxlw2t">›</span> <span class="bc-current"> </span></div> <!>',1);function Ir(Le,q){ht(q,!1);const[V,Q]=Ea(),G=()=>Ut(ka,"$page",V),z=()=>Ut(Ba,"$auth",V),Pe=b(),Xe=b(),qe=b(),it=b(),j=b(),ot=b(),ke=b(),nt=b(),vt=b(),xe=G().params.id;let le=b("build"),s=b(null),Qe=b([]),At=b([]),Ct=b(!0),Ze=b(!1),et=b(null),ie=b(""),Ae=b(new Set);const Tt={Critical:0,High:1,Medium:2,Low:3};let I=b((()=>{try{const t=sessionStorage.getItem("plum:run:entries:sort");if(t)return JSON.parse(t)}catch{}return{by:"order",order:"asc"}})());function Wt(t){e(I).by===t?Pt(I,e(I).order=e(I).order==="asc"?"desc":"asc"):i(I,{by:t,order:"asc"});try{sessionStorage.setItem("plum:run:entries:sort",JSON.stringify(e(I)))}catch{}}let Ue=b(null),tt=b(null),dt=b(null),St="",Ie=b(new Set),ze=b(!1),We=b({}),at=b(!1);function Yt(t){e(Ie).has(t)?e(Ie).delete(t):e(Ie).add(t),i(Ie,new Set(e(Ie)))}wa(async()=>{try{await(async t=>(i(s,t[0]),i(Qe,t[1]),i(At,t[2])))(await Promise.all([gt(xe),Ia(),$a()])),i(Ae,new Set(e(Qe).map(t=>t.id))),e(s).status==="in-progress"&&i(le,"execute")}catch{re("error",Ua)}finally{i(Ct,!1)}});async function yt(t,v){i(et,t);try{const _=await Oa(t,v||null);i(s,{...e(s),entries:e(s).entries.map(f=>f.id===t?{...f,assignedToId:_.assignedToId,assignedTo:_.assignedTo}:f)})}catch(_){re("error",_.message)}finally{i(et,null)}}async function Jt(t){if(!e(s)||e(qe).has(t.id))return;const v=e(s),_={id:`tmp-${t.id}`,order:e(s).entries.length,status:"pending",notes:"",executedAt:null,executedBy:null,case:t};i(s,{...e(s),entries:[...e(s).entries,_]});try{const f=e(s).entries.map(ae=>ae.case.id);await De(xe,{caseIds:f}),i(s,await gt(xe))}catch{i(s,v),re("error",xs)}}function qt(t){i(s,{...e(s),entries:e(s).entries.filter(v=>v.id!==t)})}async function Qt(){i(at,!0);try{const t=await De(xe,e(We));i(s,{...e(s),...t}),i(ze,!1),re("success",ja)}catch(t){re("error",t.message)}finally{i(at,!1)}}async function kt(){i(Ze,!0);try{const t=e(s).entries.map(_=>_.case.id),v=await De(xe,{caseIds:t});i(s,await gt(xe)),re("success",ms)}catch(t){re("error",t.message)}finally{i(Ze,!1)}}async function Zt(){await kt(),await De(xe,{status:"in-progress"}),i(s,{...e(s),status:"in-progress"}),i(le,"execute")}async function Me(t,v){i(dt,t.id);try{const _=await Ra(t.id,{status:v,notes:St});i(s,{...e(s),entries:e(s).entries.map(f=>f.id===t.id?{...f,..._,status:v}:f)}),St=""}catch(_){re("error",_.message)}finally{i(dt,null)}}async function ea(){try{await De(xe,{status:"backlog"}),i(s,{...e(s),status:"backlog"}),i(le,"build"),bt.update(t=>t+1)}catch(t){re("error",t.message)}}async function ta(){try{await De(xe,{status:"complete"}),i(s,{...e(s),status:"complete"}),bt.update(t=>t+1),re("success",As)}catch(t){re("error",t.message)}}async function aa(){try{await De(xe,{status:"backlog"}),i(s,{...e(s),status:"backlog"}),i(le,"build"),bt.update(t=>t+1),re("success",Ya)}catch(t){re("error",t.message)}}function sa(t,v){i(Ue,v),t.dataTransfer.effectAllowed="move"}function ra(t,v){t.preventDefault(),i(tt,v)}function la(t,v){if(t.preventDefault(),!e(Ue)||e(Ue)===v)return;const _=[...e(s).entries],f=_.findIndex(ge=>ge.id===e(Ue)),ae=_.findIndex(ge=>ge.id===v),[fe]=_.splice(f,1);_.splice(ae,0,fe),i(s,{...e(s),entries:_}),i(Ue,null),i(tt,null)}me(()=>z(),()=>{var t,v;i(Pe,((v=(t=z())==null?void 0:t.user)==null?void 0:v.id)??null)}),me(()=>(e(s),e(I)),()=>{i(Xe,(()=>{if(!e(s))return[];const t=[...e(s).entries],v=e(I).order==="asc"?1:-1;return e(I).by==="name"?t.sort((_,f)=>v*_.case.title.localeCompare(f.case.title)):e(I).by==="priority"?t.sort((_,f)=>v*((Tt[_.case.priority]??99)-(Tt[f.case.priority]??99))):e(I).by==="status"?t.sort((_,f)=>v*_.status.localeCompare(f.status)):e(I).by==="suite"?t.sort((_,f)=>{var ae,fe;return v*(((ae=_.case.suite)==null?void 0:ae.name)??"").localeCompare(((fe=f.case.suite)==null?void 0:fe.name)??"")}):t.sort((_,f)=>v*(_.order-f.order))})())}),me(()=>e(s),()=>{var t;i(qe,new Set(((t=e(s))==null?void 0:t.entries.map(v=>v.case.id))??[]))}),me(()=>(e(Qe),e(qe),e(ie)),()=>{i(it,e(Qe).map(t=>({...t,_totalCases:(t.cases??[]).length,cases:(t.cases??[]).filter(v=>!e(qe).has(v.id)&&(!e(ie)||t.displayId.toLowerCase().includes(e(ie).toLowerCase())||t.name.toLowerCase().includes(e(ie).toLowerCase())||v.title.toLowerCase().includes(e(ie).toLowerCase())||v.displayId.toLowerCase().includes(e(ie).toLowerCase())))})).filter(t=>!e(ie)||t.cases.length>0||t.displayId.toLowerCase().includes(e(ie).toLowerCase())||t.name.toLowerCase().includes(e(ie).toLowerCase())))}),me(()=>e(s),()=>{var t;i(j,((t=e(s))==null?void 0:t.status)==="complete")}),me(()=>e(s),()=>{var t;i(ot,((t=e(s))==null?void 0:t.entries.filter(v=>v.status!=="pending").length)??0)}),me(()=>e(s),()=>{var t;i(ke,((t=e(s))==null?void 0:t.entries.length)??0)}),me(()=>e(s),()=>{var t;i(nt,((t=e(s))==null?void 0:t.entries.filter(v=>v.status==="pass").length)??0)}),me(()=>e(s),()=>{var t;i(vt,((t=e(s))==null?void 0:t.entries.filter(v=>v.status==="fail").length)??0)}),Et(),Xt();var It=ur();ga(t=>{E(v=>ha.title=v,[()=>Ma(e(s))],Fe)});var $t=se(It);Na($t,{title:Va,get open(){return e(ze)},set open(t){i(ze,t)},children:(t,v)=>{var _=ks(),f=r(_),ae=r(f);ae.textContent=Ga;var fe=l(ae,2);Mt(fe),a(f);var ge=l(f,2),Ve=r(ge);Se(Ve,{get disabled(){return e(at)},$$events:{click:Qt},children:($e,Ge)=>{pe();var Oe=Te();E(()=>w(Oe,e(at)?Vt:Gt)),o($e,Oe)},$$slots:{default:!0}});var Ye=l(Ve,2);Se(Ye,{variant:"ghost",$$events:{click:()=>i(ze,!1)},children:($e,Ge)=>{pe();var Oe=Te();Oe.nodeValue=Ca,o($e,Oe)},$$slots:{default:!0}}),a(ge),a(_),jt(fe,()=>e(We).title,$e=>Pt(We,e(We).title=$e)),o(t,_)},$$slots:{default:!0},$$legacy:!0});var ct=l($t,2),Ot=r(ct);Ot.textContent=Pa;var Rt=l(Ot,4),ia=r(Rt,!0);a(Rt),a(ct);var oa=l(ct,2);{var na=t=>{var v=Is();v.textContent=Ta,o(t,v)},va=t=>{var v=Ke(),_=se(v);{var f=ae=>{var fe=cr(),ge=se(fe),Ve=r(ge),Ye=r(Ve),$e=r(Ye,!0);a(Ye);var Ge=l(Ye,2),Oe=r(Ge,!0);a(Ge);var Bt=l(Ge,2);Ne(Bt,"title",Ha),a(Ve);var Nt=l(Ve,2),da=r(Nt);{var ca=H=>{Se(H,{variant:"ghost",$$events:{click:aa},children:(B,ce)=>{pe();var be=Te();be.nodeValue=Xa,o(B,be)},$$slots:{default:!0}})},ua=H=>{var B=Ke(),ce=se(B);{var be=oe=>{var we=$s(),P=se(we);Se(P,{variant:"ghost",get disabled(){return e(Ze)},$$events:{click:kt},children:(C,W)=>{pe();var F=Te();E(()=>w(F,e(Ze)?Vt:Gt)),o(C,F)},$$slots:{default:!0}});var c=l(P,2);{var Z=C=>{Se(C,{$$events:{click:Zt},children:(W,F)=>{pe();var ee=Te();ee.nodeValue=fs,o(W,ee)},$$slots:{default:!0}})};m(c,C=>{e(s).entries.length>0&&C(Z)})}o(oe,we)},Re=oe=>{var we=Ke(),P=se(we);{var c=C=>{var W=Os(),F=se(W);Se(F,{variant:"ghost",$$events:{click:ea},children:($,Y)=>{pe();var O=Te();O.nodeValue=gs,o($,O)},$$slots:{default:!0}});var ee=l(F,2);Se(ee,{variant:"ghost",$$events:{click:()=>i(le,"build")},children:($,Y)=>{pe();var O=Te();O.nodeValue=Ht,o($,O)},$$slots:{default:!0}});var T=l(ee,2);Se(T,{$$events:{click:ta},children:($,Y)=>{pe();var O=Te();O.nodeValue=bs,o($,O)},$$slots:{default:!0}}),o(C,W)},Z=C=>{Se(C,{variant:"ghost",$$events:{click:()=>i(le,"build")},children:(W,F)=>{pe();var ee=Te();ee.nodeValue=Ht,o(W,ee)},$$slots:{default:!0}})};m(P,C=>{e(s).status==="in-progress"?C(c):C(Z,!1)},!0)}o(oe,we)};m(ce,oe=>{e(le)==="build"?oe(be):oe(Re,!1)},!0)}o(H,B)};m(da,H=>{e(j)?H(ca):H(ua,!1)})}a(Nt),a(ge);var ut=l(ge,2),st=r(ut);st.textContent=Ka;var rt=l(st,2),Dt=r(rt);Dt.nodeValue=`${Fa} `;var _a=l(Dt);{var pa=H=>{var B=Rs(),ce=r(B);a(B),E(()=>w(ce,`${e(ot)??""}/${e(ke)??""}`)),o(H,B)};m(_a,H=>{e(ke)>0&&H(pa)})}a(rt),a(ut);var ma=l(ut,2);{var xa=H=>{var B=Ys(),ce=r(B),be=r(ce),Re=r(be);Re.textContent=za;var oe=l(Re,2),we=r(oe,!0);a(oe);var P=l(oe,2);{var c=T=>{var $=Bs();$.textContent=Ja,o(T,$)};m(P,T=>{e(j)&&T(c)})}a(be);var Z=l(be,2);{var C=T=>{Da(T,{message:qa,size:"sm"})},W=T=>{var $=js(),Y=se($);Be(Y,4,()=>[["order","Order"],["name","Name"],["priority","Priority"],["status","Status"],["suite","Suite"]],ft,(J,g)=>{let A=()=>g[0],he=()=>g[1];var ne=Ds(),N=r(ne,!0),S=l(N);{var Ee=ve=>{var de=Ns(),Ce=r(de,!0);a(de),E(()=>w(Ce,e(I).order==="asc"?" ↑":" ↓")),o(ve,de)};m(S,ve=>{e(I).by===A()&&ve(Ee)})}a(ne),E(()=>{k(ne,"active",e(I).by===A()),w(N,he())}),R("click",ne,()=>Wt(A())),o(J,ne)}),a(Y);var O=l(Y,2);Be(O,5,()=>e(Xe),J=>J.id,(J,g)=>{var A=Gs(),he=r(A);{var ne=n=>{var d=Ps();o(n,d)};m(he,n=>{!e(j)&&e(I).by==="order"&&n(ne)})}var N=l(he,2),S=r(N),Ee=r(S);wt(Ee,{get id(){return e(g).case.displayId}});var ve=l(Ee,2);Kt(ve,{get priority(){return e(g).case.priority}}),a(S);var de=l(S,2),Ce=r(de,!0);a(de);var je=l(de,2),He=r(je,!0);a(je),a(N);var p=l(N,2);{var L=n=>{lt(n)},te=n=>{var d=Ms();Sa(d,()=>e(g).assignedToId??"");var x,h=r(d);h.value=((h.__value="")==null,""),h.textContent=Qa;var X=l(h);Be(X,1,()=>e(At),ft,(M,D)=>{var y=Us(),ye={},ue=r(y,!0);a(y),E(()=>{ye!==(ye=e(D).id)&&(y.value=(y.__value=e(D).id)==null?"":e(D).id),w(ue,e(D).name)}),o(M,y)}),a(d),E(()=>{x!==(x=e(g).assignedToId??"")&&(d.value=(d.__value=e(g).assignedToId??"")==null?"":e(g).assignedToId??"",ya(d,e(g).assignedToId??"")),d.disabled=e(et)===e(g).id}),R("change",d,M=>yt(e(g).id,M.target.value)),o(n,d)};m(p,n=>{e(g).case.isAutomated?n(L):n(te,!1)})}var K=l(p,2);{var U=n=>{var d=Vs();R("click",d,()=>qt(e(g).id)),o(n,d)};m(K,n=>{e(j)||n(U)})}a(A),E(()=>{var n;Ne(A,"draggable",!e(j)&&e(I).by==="order"),k(A,"entry-locked",e(j)),k(A,"dragging",e(Ue)===e(g).id),k(A,"drag-over",e(tt)===e(g).id),w(Ce,e(g).case.title),w(He,((n=e(g).case.suite)==null?void 0:n.name)??"")}),R("dragstart",A,function(...n){var d;(d=e(j)||e(I).by!=="order"?null:x=>sa(x,e(g).id))==null||d.apply(this,n)}),R("dragover",A,function(...n){var d;(d=e(j)||e(I).by!=="order"?null:x=>ra(x,e(g).id))==null||d.apply(this,n)}),R("dragleave",A,function(...n){var d;(d=e(j)||e(I).by!=="order"?null:()=>i(tt,null))==null||d.apply(this,n)}),R("drop",A,function(...n){var d;(d=e(j)||e(I).by!=="order"?null:x=>la(x,e(g).id))==null||d.apply(this,n)}),o(J,A)}),a(O),o(T,$)};m(Z,T=>{e(s).entries.length===0?T(C):T(W,!1)})}a(ce);var F=l(ce,2);{var ee=T=>{var $=Ws(),Y=r($),O=r(Y);O.textContent=Za;var J=l(O,2);Mt(J),Ne(J,"placeholder",es),a(Y);var g=l(Y,2),A=r(g);Be(A,1,()=>e(it),N=>N.id,(N,S)=>{var Ee=Xs(),ve=r(Ee),de=r(ve),Ce=l(de,2),je=r(Ce,!0);a(Ce);var He=l(Ce,2),p=r(He,!0);a(He),a(ve);var L=l(ve,2);{var te=U=>{var n=Ks();Be(n,5,()=>e(S).cases,d=>d.id,(d,x)=>{var h=Hs(),X=r(h);wt(X,{get id(){return e(x).displayId},small:!0});var M=l(X,2),D=r(M,!0);a(M);var y=l(M,2);Kt(y,{get priority(){return e(x).priority},small:!0});var ye=l(y,2);{var ue=_e=>{lt(_e)};m(ye,_e=>{e(x).isAutomated&&_e(ue)})}a(h),E(()=>w(D,e(x).title)),R("click",h,()=>Jt(e(x))),o(d,h)}),a(n),mt(3,n,()=>xt,()=>({y:-4,duration:120})),o(U,n)},K=U=>{var n=Ke(),d=se(n);{var x=h=>{var X=Fs(),M=r(X,!0);a(X),E(()=>w(M,e(ie)?ws:e(S)._totalCases===0?hs:Es)),o(h,X)};m(d,h=>{e(Ae).has(e(S).id)&&h(x)},!0)}o(U,n)};m(L,U=>{var n;e(Ae).has(e(S).id)&&((n=e(S).cases)==null?void 0:n.length)>0?U(te):U(K,!1)})}a(Ee),E(U=>{var n;k(de,"open",U),w(je,e(S).name),w(p,((n=e(S).cases)==null?void 0:n.length)??0)},[()=>e(Ae).has(e(S).id)],Fe),R("click",ve,()=>{e(Ae).has(e(S).id)?e(Ae).delete(e(S).id):e(Ae).add(e(S).id),i(Ae,new Set(e(Ae)))}),o(N,Ee)});var he=l(A,2);{var ne=N=>{var S=zs();S.textContent=Ls,o(N,S)};m(he,N=>{e(it).length===0&&N(ne)})}a(g),a($),jt(J,()=>e(ie),N=>i(ie,N)),o(T,$)};m(F,T=>{e(j)||T(ee)})}a(B),E(()=>{k(B,"locked-workspace",e(j)),w(we,e(s).entries.length)}),mt(3,B,()=>xt,()=>({y:4,duration:150})),o(H,B)},fa=H=>{var B=dr(),ce=r(B);{var be=P=>{var c=Js();c.textContent=ts,o(P,c)};m(ce,P=>{e(s).status!=="in-progress"&&!e(j)&&P(be)})}var Re=l(ce,2);{var oe=P=>{var c=qs(),Z=r(c),C=r(Z),W=r(C,!0);a(C);var F=l(C,2),ee=r(F,!0);a(F);var T=l(F,2),$=r(T,!0);a(T),a(Z);var Y=l(Z,2),O=r(Y),J=l(O,2);a(Y),a(c),E((g,A,he)=>{w(W,g),w(ee,A),w($,he),Ne(O,"style",`width: ${e(nt)/e(ke)*100}%`),Ne(J,"style",`width: ${e(vt)/e(ke)*100}%`)},[()=>as(e(nt)),()=>ss(e(vt)),()=>rs(e(ke)-e(ot))],Fe),o(P,c)};m(Re,P=>{e(ke)>0&&P(oe)})}var we=l(Re,2);Be(we,5,()=>e(s).entries,P=>P.id,(P,c)=>{var Z=vr(),C=r(Z),W=r(C),F=r(W);{var ee=p=>{var L=Qs();Ne(L,"title",Wa);var te=r(L);a(L),E(K=>k(te,"open",K),[()=>e(Ie).has(e(c).id)],Fe),R("click",L,()=>Yt(e(c).id)),o(p,L)};m(F,p=>{var L;((L=e(c).case.steps)==null?void 0:L.length)>0&&p(ee)})}var T=l(F,2);wt(T,{get id(){return e(c).case.displayId}});var $=l(T,2);{var Y=p=>{lt(p)};m($,p=>{e(c).case.isAutomated&&p(Y)})}var O=l($,2),J=r(O),g=r(J,!0);a(J);var A=l(J,2),he=r(A,!0);a(A),a(O),a(W);var ne=l(W,2),N=r(ne);{var S=p=>{var L=Zs(),te=se(L),K=r(te);lt(K),a(te),pe(2),o(p,L)},Ee=p=>{var L=Ke(),te=se(L);{var K=U=>{var n=ar(),d=se(n),x=r(d);{var h=D=>{var y=er(),ye=r(y,!0);a(y),E(()=>w(ye,e(c).assignedTo.name)),o(D,y)};m(x,D=>{e(c).assignedTo&&D(h)})}var X=l(x,2);{var M=D=>{var y=tr();y.textContent=ps,E(()=>y.disabled=e(et)===e(c).id),R("click",y,()=>yt(e(c).id,e(Pe))),o(D,y)};m(X,D=>{var y;!e(j)&&((y=e(c).assignedTo)==null?void 0:y.id)!==e(Pe)&&D(M)})}a(d),pe(2),o(U,n)};m(te,U=>{var n;(e(c).assignedTo||!e(j)&&((n=e(c).assignedTo)==null?void 0:n.id)!==e(Pe))&&U(K)},!0)}o(p,L)};m(N,p=>{e(c).case.isAutomated?p(S):p(Ee,!1)})}var ve=l(N,2);{var de=p=>{Ft(p,{get status(){return e(c).status}})},Ce=p=>{var L=Ke(),te=se(L);{var K=n=>{var d=sr(),x=r(d);x.textContent=ls;var h=l(x,2);h.textContent=is;var X=l(h,2);X.textContent=os;var M=l(X,2);M.textContent=ns;var D=l(M,2);D.textContent=vs,a(d),E(()=>k(x,"active",e(c).status==="in-progress")),R("click",x,()=>Me(e(c),"in-progress")),R("click",h,()=>Me(e(c),"pass")),R("click",X,()=>Me(e(c),"fail")),R("click",M,()=>Me(e(c),"blocked")),R("click",D,()=>Me(e(c),"skip")),o(n,d)},U=n=>{var d=rr(),x=r(d);Ft(x,{get status(){return e(c).status}});var h=l(x,2);Ne(h,"title",ds),h.textContent=cs,a(d),R("click",h,()=>Me(e(c),"pending")),o(n,d)};m(te,n=>{e(c).status==="pending"||e(c).status==="in-progress"?n(K):n(U,!1)},!0)}o(p,L)};m(ve,p=>{e(j)||e(s).status!=="in-progress"?p(de):p(Ce,!1)})}a(ne),a(C);var je=l(C,2);{var He=p=>{var L=nr();Be(L,5,()=>e(c).case.steps,ft,(te,K,U)=>{var n=or(),d=r(n);d.textContent=U+1;var x=l(d,2),h=r(x),X=r(h,!0);a(h);var M=l(h,2);{var D=ue=>{var _e=lr(),_t=r(_e,!0);a(_e),E(pt=>w(_t,pt),[()=>us(e(K).testData)],Fe),o(ue,_e)};m(M,ue=>{e(K).testData&&ue(D)})}var y=l(M,2);{var ye=ue=>{var _e=ir(),_t=r(_e,!0);a(_e),E(pt=>w(_t,pt),[()=>_s(e(K).expectedOutput)],Fe),o(ue,_e)};m(y,ue=>{e(K).expectedOutput&&ue(ye)})}a(x),a(n),E(()=>w(X,e(K).action)),o(te,n)}),a(L),o(p,L)};m(je,p=>{e(c).case.steps&&e(c).case.steps.length>0&&e(Ie).has(e(c).id)&&p(He)})}a(Z),E(()=>{var p;k(Z,"expanded",e(dt)===e(c).id),w(g,e(c).case.title),w(he,((p=e(c).case.suite)==null?void 0:p.name)??"")}),o(P,Z)}),a(we),a(B),mt(3,B,()=>xt,()=>({y:4,duration:150})),o(H,B)};m(ma,H=>{e(le)==="build"?H(xa):H(fa,!1)})}E(()=>{w($e,e(s).title),La(Ge,`run-status-badge ${e(s).status??""} svelte-1mxlw2t`),w(Oe,e(s).status),k(st,"active",e(le)==="build"),k(rt,"active",e(le)==="execute")}),R("click",Bt,()=>{i(We,{title:e(s).title}),i(ze,!0)}),R("click",st,()=>i(le,"build")),R("click",rt,()=>i(le,"execute")),o(ae,fe)};m(_,ae=>{e(s)&&ae(f)},!0)}o(t,v)};m(oa,t=>{e(Ct)?t(na):t(va,!1)})}E(()=>{var t;return w(ia,((t=e(s))==null?void 0:t.title)??"…")}),o(Le,It),Lt(),Q()}export{Ir as component};
@@ -0,0 +1,6 @@
1
+ /*
2
+ * This file is part of Plum.
3
+ * Licensed under the MIT License. See LICENSE file in the project root for details.
4
+ */
5
+
6
+ import{h as ds,a as o,c as Fe,t as i,s as c,r as ta,b as ge,e as K}from"../chunks/6VDMVB5U.js";import{i as cs}from"../chunks/CtgCYzu5.js";import{p as _s,m as p,o as ps,s as r,l as qe,b as us,f as W,c as fs,t as k,x as Te,g as e,$ as ks,y as $e,d as l,j as a,k as t,v as Ke,n as fe}from"../chunks/BIf7lHIm.js";import{i as u,s as hs,a as Es}from"../chunks/D_thT6pZ.js";import{e as Ie,i as Qe,s as xt,t as yt,a as Ht,f as Ft}from"../chunks/BTV7EXZb.js";import{s as Q,f as ct,D as ms,g as bs,r as Ze,h as gs,C as Ct,i as ga,j as xa,L as ya,e as xs,c as ys,k as Cs,l as Ca,m as Ts,n as Ls}from"../chunks/C4Z3p6jE.js";import{b as Oe}from"../chunks/BnXsGCy3.js";import{B as xe,b as zt}from"../chunks/qvxlSGpD.js";import{s as As}from"../chunks/Bfc47y5P.js";import{b as Ss}from"../chunks/tsOANt55.js";import{p as $s}from"../chunks/Dlymnwnf.js";import{i as Is,j as Os,k as Ds,l as ws,u as Ps,m as Ta,h as Bs,n as Ms,o as Rs}from"../chunks/BdBJfKUi.js";import{E as Ns}from"../chunks/zXSLr47H.js";import{Y as Us,Z as Vs,_ as Hs,$ as Fs,T as La,a0 as zs,f as aa,a1 as js,h as jt,a2 as Ys,d as Aa,a3 as Gs,a4 as Xs,a5 as Js,a6 as Ws,a7 as qs,a8 as Ks,a9 as Qs,w as Zs,aa as er,ab as tr,ac as ar,ad as sr,ae as rr,af as lr,ag as or,ah as ir,J as nr,ai as Sa,aj as vr,ak as dr,al as cr,am as _r,an as pr,ao as ur,ap as $a,aq as fr,ar as kr,as as hr,at as Er,au as mr,av as br,aw as gr,ax as xr,ay as yr,az as Cr,aA as Tr,aB as Lr,aC as Ar,aD as Sr,aE as $r,aF as Ia,aG as Ir,aH as Oa,aI as Or,aJ as Dr,aK as wr,aL as Pr,aM as Br,aN as Mr}from"../chunks/r_d1Iu0W.js";import{E as Rr}from"../chunks/CNpD-yNH.js";import{C as Nr}from"../chunks/BWGoOYU0.js";import{M as sa}from"../chunks/CUPWZLIN.js";import{n as Z}from"../chunks/BDb8hZHu.js";import{P as Ur}from"../chunks/prk8PJfA.js";var Vr=i(" <strong> </strong> ",1),Hr=i("<option> </option>"),Fr=i('<p class="form-error svelte-1n7rolk"> </p>'),zr=i('<div class="form-fields svelte-1n7rolk"><div class="field svelte-1n7rolk"><label class="field-label svelte-1n7rolk" for="tc-title"></label> <input id="tc-title" type="text" class="field-input"></div> <div class="field svelte-1n7rolk"><label class="field-label svelte-1n7rolk" for="tc-desc"></label> <textarea id="tc-desc" class="field-input field-textarea svelte-1n7rolk" rows="2"></textarea></div> <div class="field svelte-1n7rolk"><label class="field-label svelte-1n7rolk" for="tc-prio"></label> <select id="tc-prio" class="field-input"></select></div> <!> <div class="modal-actions svelte-1n7rolk"><!> <!></div></div>'),jr=i("<option> </option>"),Yr=i('<div class="form-fields svelte-1n7rolk"><div class="field svelte-1n7rolk"><label class="field-label svelte-1n7rolk" for="es-name"></label> <input id="es-name" type="text" class="field-input"></div> <div class="field svelte-1n7rolk"><label class="field-label svelte-1n7rolk" for="es-desc"></label> <textarea id="es-desc" class="field-input field-textarea svelte-1n7rolk" rows="2"></textarea></div> <div class="field svelte-1n7rolk"><label class="field-label svelte-1n7rolk" for="es-prio"></label> <select id="es-prio" class="field-input"></select></div> <div class="modal-actions svelte-1n7rolk"><!> <!></div></div>'),Gr=i('<p class="move-case-subtitle svelte-1n7rolk"> </p>'),Xr=i('<p class="form-error svelte-1n7rolk"></p>'),Jr=i("<option> </option>"),Wr=i('<div class="field svelte-1n7rolk"><label class="field-label svelte-1n7rolk" for="move-suite"></label> <select id="move-suite" class="field-input"></select></div>'),qr=i('<div class="form-fields svelte-1n7rolk"><!> <!> <div class="modal-actions svelte-1n7rolk"><!> <!></div></div>'),Kr=i('<div class="loading-state svelte-1n7rolk"></div>'),Qr=i('<p class="suite-desc svelte-1n7rolk"> </p>'),Zr=i('<button class="case-search-clear svelte-1n7rolk"><svg width="10" height="10" viewBox="0 0 14 14" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"><path d="M1 1l12 12M13 1L1 13"></path></svg></button>'),el=i('<div class="case-search svelte-1n7rolk"><svg class="case-search-icon svelte-1n7rolk" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line></svg> <input type="search" class="case-search-input svelte-1n7rolk"> <!></div>'),tl=i('<span class="case-sort-dir svelte-1n7rolk"> </span>'),al=i('<button class="case-sort-chip svelte-1n7rolk"> <!></button>'),sl=i('<div class="case-sort-bar svelte-1n7rolk"></div>'),rl=i('<div class="case-no-results svelte-1n7rolk"> <strong> </strong>"</div>'),ll=i('<span class="auto-badge svelte-1n7rolk"></span>'),ol=i('<div class="case-row svelte-1n7rolk" role="button" tabindex="0"><div class="case-row-top svelte-1n7rolk"><span class="id-chip small svelte-1n7rolk"> </span> <span> </span> <!> <div class="case-row-actions svelte-1n7rolk"><button class="icon-btn small svelte-1n7rolk"><svg width="11" height="11" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 7a2 2 0 0 1 2-2h4l2 2h8a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V7z"></path></svg></button> <button class="icon-btn danger small svelte-1n7rolk"><svg width="11" height="11" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="3 6 5 6 21 6"></polyline><path d="M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6"></path><path d="M10 11v6M14 11v6"></path><path d="M9 6V4h6v2"></path></svg></button></div></div> <p class="case-title svelte-1n7rolk"> </p> <span class="case-steps svelte-1n7rolk"> </span></div>'),il=i('<div class="cases-pagination svelte-1n7rolk"><!></div>'),nl=i('<div class="case-list svelte-1n7rolk"></div> <!>',1),vl=i('<div class="detail-loading svelte-1n7rolk"></div>'),dl=i('<span class="auto-badge svelte-1n7rolk"></span>'),cl=i('<button class="icon-btn svelte-1n7rolk"><svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 7a2 2 0 0 1 2-2h4l2 2h8a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V7z"></path></svg></button> <button class="icon-btn svelte-1n7rolk"><svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7"></path><path d="M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z"></path></svg></button>',1),_l=i("<option> </option>"),pl=i('<div class="edit-case-form svelte-1n7rolk"><div class="field svelte-1n7rolk"><label class="field-label svelte-1n7rolk" for="edit-title"></label> <input id="edit-title" type="text" class="field-input"></div> <div class="field svelte-1n7rolk"><label class="field-label svelte-1n7rolk" for="edit-desc"></label> <textarea id="edit-desc" class="field-input field-textarea svelte-1n7rolk" rows="2"></textarea></div> <div class="field svelte-1n7rolk"><label class="field-label svelte-1n7rolk" for="edit-prio"></label> <select id="edit-prio" class="field-input"></select></div> <div class="modal-actions svelte-1n7rolk"><!> <!></div></div>'),ul=i('<p class="detail-case-desc svelte-1n7rolk"> </p>'),fl=i("<span></span>"),kl=i('<div class="case-history-bars svelte-1n7rolk"></div>'),hl=i('<h2 class="detail-case-title svelte-1n7rolk"> </h2> <!> <p class="detail-meta svelte-1n7rolk"> </p> <!>',1),El=i("<!> <!>",1),ml=i('<button class="add-step-btn svelte-1n7rolk"></button>'),bl=i('<p class="no-steps svelte-1n7rolk"></p>'),gl=i('<div class="step-editor-row svelte-1n7rolk"><span class="step-num svelte-1n7rolk"></span> <div class="step-editor-fields svelte-1n7rolk"><div class="step-field svelte-1n7rolk"><label class="step-field-label svelte-1n7rolk"></label> <input type="text" class="field-input"></div> <div class="step-field svelte-1n7rolk"><label class="step-field-label svelte-1n7rolk"></label> <input type="text" class="field-input"></div> <div class="step-field svelte-1n7rolk"><label class="step-field-label svelte-1n7rolk"></label> <input type="text" class="field-input"></div></div> <button class="icon-btn danger small svelte-1n7rolk"><svg width="11" height="11" viewBox="0 0 14 14" fill="none"><path d="M1 1l12 12M13 1L1 13" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"></path></svg></button></div>'),xl=i('<div class="steps-editor svelte-1n7rolk"><!></div>'),yl=i('<div class="steps-table-row svelte-1n7rolk"><span class="col-num svelte-1n7rolk"></span> <span class="col-action"> </span> <span class="col-data"> </span> <span class="col-expected"> </span></div>'),Cl=i('<div class="steps-table svelte-1n7rolk"><div class="steps-table-head svelte-1n7rolk"><span class="col-num svelte-1n7rolk">#</span> <span class="col-action"></span> <span class="col-data"></span> <span class="col-expected"></span></div> <!></div>'),Tl=i('<p class="no-steps svelte-1n7rolk"></p>'),Ll=i('<div class="steps-section svelte-1n7rolk"><div class="steps-toolbar svelte-1n7rolk"><!> <!></div> <!></div>'),Al=i('<p class="no-steps svelte-1n7rolk"></p>'),Sl=i('<a target="_blank" rel="noopener noreferrer" class="history-source history-link svelte-1n7rolk"></a>'),$l=i('<span class="history-source history-missing svelte-1n7rolk"></span>'),Il=i('<a target="_blank" rel="noopener noreferrer" class="history-source history-link svelte-1n7rolk"> </a>'),Ol=i('<span class="history-source history-missing svelte-1n7rolk"></span>'),Dl=i('<p class="history-notes svelte-1n7rolk"> </p>'),wl=i('<div class="history-row svelte-1n7rolk"><span> </span> <div class="history-info svelte-1n7rolk"><!> <span class="history-by svelte-1n7rolk"> </span> <span class="history-date svelte-1n7rolk"> </span></div> <!></div>'),Pl=i('<div class="history-list svelte-1n7rolk"></div>'),Bl=i('<div class="history-section svelte-1n7rolk"><!></div>'),Ml=i('<div class="detail-header svelte-1n7rolk"><div class="detail-title-row svelte-1n7rolk"><span class="id-chip large svelte-1n7rolk"> </span> <span> </span> <!> <div class="detail-header-actions svelte-1n7rolk"><!> <button class="icon-btn svelte-1n7rolk"><svg width="13" height="13" viewBox="0 0 14 14" fill="none"><path d="M1 1l12 12M13 1L1 13" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"></path></svg></button></div></div> <!></div> <div class="detail-tabs svelte-1n7rolk"><button class="detail-tab svelte-1n7rolk"></button> <button class="detail-tab svelte-1n7rolk"></button></div> <!>',1),Rl=i('<div class="detail-panel svelte-1n7rolk"><!></div>'),Nl=i('<div class="breadcrumb svelte-1n7rolk"><a href="/test-repository" class="bc-link svelte-1n7rolk"></a> <span class="bc-sep svelte-1n7rolk">›</span> <span class="bc-current svelte-1n7rolk"> </span></div> <div class="suite-header svelte-1n7rolk"><div class="suite-title-row svelte-1n7rolk"><span class="id-chip large svelte-1n7rolk"> </span> <span> </span> <h1 class="suite-title svelte-1n7rolk"> </h1> <button class="icon-btn svelte-1n7rolk"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7"></path><path d="M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z"></path></svg></button> <div class="suite-export svelte-1n7rolk"><!></div></div> <!> <div class="suite-meta svelte-1n7rolk"><span> </span> <span class="meta-sep svelte-1n7rolk">·</span> <span> </span></div></div> <div class="workspace svelte-1n7rolk"><div class="cases-panel svelte-1n7rolk"><div class="panel-toolbar svelte-1n7rolk"><h2 class="panel-title svelte-1n7rolk"></h2> <!></div> <!> <!> <!></div> <!></div>',1),Ul=i("<!> <!> <!> <!> <!>",1);function lo(Da,ra){_s(ra,!1);const[wa,Pa]=hs(),Ba=()=>Es($s,"$page",wa),et=p(),_t=p(),Tt=p(),pt=p(),Yt=p(),la=p(),Lt=Ba().params.id,Gt=["Critical","High","Medium","Low"];let v=p(null),oa=p(!0),ut=p(!1),ie=p({title:"",description:"",priority:"Medium"}),At=p(!1),tt=p(""),d=p(null),ft=p(!1),ze=p(!1),ke=p({}),St=p(!1),je=p(!1),ne=p([]),$t=p(!1),at=p(!1),Ye=p(null),It=p(!1),Ot=p([]),kt=p(!1),Le=p(null),Ge=p(""),Dt=p(!1),De=p(""),Xe=p(1),ee=p((()=>{try{const s=sessionStorage.getItem("plum:repo:cases:sort");if(s)return JSON.parse(s)}catch{}return{by:"createdAt",order:"asc"}})());const ia={Critical:0,High:1,Medium:2,Low:3};function Ma(s){e(ee).by===s?$e(ee,e(ee).order=e(ee).order==="asc"?"desc":"asc"):r(ee,{by:s,order:"asc"});try{sessionStorage.setItem("plum:repo:cases:sort",JSON.stringify(e(ee)))}catch{}}let ht=p(!1),he=p({}),wt=p(!1),Xt=p(!1);async function Ra(s){r(Xt,!0);try{await Bs("suite",e(v).id,s),Z("success",xs(vr))}catch{Z("error",ys("this suite"))}finally{r(Xt,!1)}}ps(async()=>{try{r(v,await Is(Lt))}catch{Z("error",Us)}finally{r(oa,!1)}try{r(Ot,await Os())}catch{}});async function Na(){if(!e(ie).title.trim()){r(tt,Zs);return}r(tt,""),r(At,!0);try{const s=await ws({suiteId:Lt,...e(ie)});r(v,{...e(v),cases:[...e(v).cases,s],_count:{cases:e(v)._count.cases+1}}),r(Xe,Math.ceil(e(v).cases.length/ct)),r(ut,!1),r(ie,{title:"",description:"",priority:"Medium"}),Z("success",er(s.displayId))}catch(s){r(tt,s.message)}finally{r(At,!1)}}async function na(s){r(d,null),r(ft,!0),r(at,!1),r(ze,!1),r(je,!1);try{r(d,await Ms(s.id)),r(ne,(e(d).steps??[]).map(n=>({...n})))}catch{Z("error",kr)}finally{r(ft,!1)}}function Ua(){r(ke,{title:e(d).title,description:e(d).description,priority:e(d).priority}),r(ze,!0)}async function Va(){r(St,!0);try{const s=await Ta(e(d).id,e(ke));r(d,{...e(d),...s}),r(v,{...e(v),cases:e(v).cases.map(n=>n.id===e(d).id?{...n,...s}:n)}),r(ze,!1),Z("success",br)}catch(s){Z("error",s.message)}finally{r(St,!1)}}function Ha(){r(ne,[...e(ne),{action:"",testData:"",expectedOutput:""}])}function Fa(s){r(ne,e(ne).filter((n,h)=>h!==s))}async function za(){r($t,!0);try{const s=await Rs(e(d).id,e(ne));r(d,{...e(d),steps:s}),r(ne,s.map(n=>({...n}))),r(je,!1),Z("success",Lr)}catch(s){Z("error",s.message)}finally{r($t,!1)}}async function ja(s,n){var h;try{await Ds(s),r(v,{...e(v),cases:e(v).cases.filter(F=>F.id!==s),_count:{cases:e(v)._count.cases-1}}),((h=e(d))==null?void 0:h.id)===s&&r(d,null),Z("success",Xs(n))}catch{Z("error",Js)}r(Ye,null),r(It,!1)}function va(s){var n;r(Le,s),r(Ge,((n=e(et)[0])==null?void 0:n.id)??""),r(kt,!0)}async function Ya(){var s;if(!(!e(Le)||!e(Ge))){r(Dt,!0);try{await Ta(e(Le).id,{suiteId:e(Ge)});const n=e(Ot).find(h=>h.id===e(Ge));r(v,{...e(v),cases:e(v).cases.filter(h=>h.id!==e(Le).id),_count:{cases:e(v)._count.cases-1}}),((s=e(d))==null?void 0:s.id)===e(Le).id&&r(d,null),Z("success",ar(e(Le).displayId,(n==null?void 0:n.name)??"")),r(kt,!1),r(Le,null)}catch(n){Z("error",n.message??sr)}finally{r(Dt,!1)}}}async function Ga(){r(wt,!0);try{const s=await Ps(Lt,e(he));r(v,{...e(v),...s}),r(ht,!1),Z("success",tr)}catch(s){Z("error",s.message)}finally{r(wt,!1)}}function Jt(s){return(s==null?void 0:s.toLowerCase())??"medium"}function da(s){return s==="pass"?"pass":s==="fail"?"fail":s==="blocked"?"warn":"muted"}function Xa(s){return!s||s.length===0?[]:s.slice(0,Ls).slice().reverse()}qe(()=>e(Ot),()=>{r(et,e(Ot).filter(s=>s.id!==Lt))}),qe(()=>e(De),()=>{r(_t,e(De).trim().toLowerCase())}),qe(()=>(e(v),e(_t)),()=>{var s;r(Tt,(s=e(v))!=null&&s.cases?e(v).cases.filter(n=>!e(_t)||n.displayId.toLowerCase().includes(e(_t))||n.title.toLowerCase().includes(e(_t))):[])}),qe(()=>(e(Tt),e(ee)),()=>{r(pt,[...e(Tt)].sort((s,n)=>{const h=e(ee).order==="asc"?1:-1;return e(ee).by==="displayId"?h*s.displayId.localeCompare(n.displayId):e(ee).by==="name"?h*s.title.localeCompare(n.title):e(ee).by==="priority"?h*((ia[s.priority]??4)-(ia[n.priority]??4)):h*(new Date(s.createdAt)-new Date(n.createdAt))}))}),qe(()=>(e(pt),ct),()=>{r(Yt,Math.ceil(e(pt).length/ct))}),qe(()=>e(De),()=>{e(De)&&r(Xe,1)}),qe(()=>(e(pt),e(Xe),ct),()=>{r(la,e(pt).slice((e(Xe)-1)*ct,e(Xe)*ct))}),us(),cs();var ca=Ul();ds(s=>{k(n=>ks.title=n,[()=>Vs(e(v))],Te)});var _a=W(ca);Nr(_a,{title:Hs,get open(){return e(It)},set open(s){r(It,s)},$$events:{confirm:()=>{var s,n;return ja((s=e(Ye))==null?void 0:s.id,(n=e(Ye))==null?void 0:n.displayId)}},children:(s,n)=>{var h=Fe(),F=W(h);{var ve=z=>{var j=Vr(),de=W(j);de.nodeValue=`${ms} `;var Y=a(de),te=l(Y);t(Y);var ce=a(Y,1,!0);ce.nodeValue=bs,k(()=>c(te,`${e(Ye).displayId??""} — ${e(Ye).title??""}`)),o(z,j)};u(F,z=>{e(Ye)&&z(ve)})}o(s,h)},$$slots:{default:!0},$$legacy:!0});var pa=a(_a,2);sa(pa,{title:Fs,get open(){return e(ut)},set open(s){r(ut,s)},children:(s,n)=>{var h=zr(),F=l(h),ve=l(F);ve.textContent=La;var z=a(ve,2);Ze(z),Q(z,"placeholder",zs),t(F);var j=a(F,2),de=l(j);de.textContent=aa;var Y=a(de,2);ta(Y),Q(Y,"placeholder",js),t(j);var te=a(j,2),ce=l(te);ce.textContent=jt;var _e=a(ce,2);k(()=>{e(ie),Ke(()=>{})}),Ie(_e,5,()=>Gt,Qe,(_,C)=>{var O=Hr(),st={},Pt=l(O,!0);t(O),k(()=>{st!==(st=e(C))&&(O.value=(O.__value=e(C))==null?"":e(C)),c(Pt,e(C))}),o(_,O)}),t(_e),t(te);var y=a(te,2);{var N=_=>{var C=Fr(),O=l(C,!0);t(C),k(()=>c(O,e(tt))),o(_,C)};u(y,_=>{e(tt)&&_(N)})}var P=a(y,2),S=l(P);xe(S,{get disabled(){return e(At)},$$events:{click:Na},children:(_,C)=>{fe();var O=ge();k(()=>c(O,e(At)?gs:Ws)),o(_,O)},$$slots:{default:!0}});var G=a(S,2);xe(G,{variant:"ghost",$$events:{click:()=>{r(ut,!1),r(tt,"")}},children:(_,C)=>{fe();var O=ge();O.nodeValue=Ct,o(_,O)},$$slots:{default:!0}}),t(P),t(h),Oe(z,()=>e(ie).title,_=>$e(ie,e(ie).title=_)),Oe(Y,()=>e(ie).description,_=>$e(ie,e(ie).description=_)),zt(_e,()=>e(ie).priority,_=>$e(ie,e(ie).priority=_)),o(s,h)},$$slots:{default:!0},$$legacy:!0});var ua=a(pa,2);sa(ua,{title:Ys,get open(){return e(ht)},set open(s){r(ht,s)},children:(s,n)=>{var h=Yr(),F=l(h),ve=l(F);ve.textContent=Aa;var z=a(ve,2);Ze(z),t(F);var j=a(F,2),de=l(j);de.textContent=aa;var Y=a(de,2);ta(Y),t(j);var te=a(j,2),ce=l(te);ce.textContent=jt;var _e=a(ce,2);k(()=>{e(he),Ke(()=>{})}),Ie(_e,5,()=>Gt,Qe,(S,G)=>{var _=jr(),C={},O=l(_,!0);t(_),k(()=>{C!==(C=e(G))&&(_.value=(_.__value=e(G))==null?"":e(G)),c(O,e(G))}),o(S,_)}),t(_e),t(te);var y=a(te,2),N=l(y);xe(N,{get disabled(){return e(wt)},$$events:{click:Ga},children:(S,G)=>{fe();var _=ge();k(()=>c(_,e(wt)?ga:xa)),o(S,_)},$$slots:{default:!0}});var P=a(N,2);xe(P,{variant:"ghost",$$events:{click:()=>r(ht,!1)},children:(S,G)=>{fe();var _=ge();_.nodeValue=Ct,o(S,_)},$$slots:{default:!0}}),t(y),t(h),Oe(z,()=>e(he).name,S=>$e(he,e(he).name=S)),Oe(Y,()=>e(he).description,S=>$e(he,e(he).description=S)),zt(_e,()=>e(he).priority,S=>$e(he,e(he).priority=S)),o(s,h)},$$slots:{default:!0},$$legacy:!0});var fa=a(ua,2);sa(fa,{title:Gs,get open(){return e(kt)},set open(s){r(kt,s)},children:(s,n)=>{var h=qr(),F=l(h);{var ve=y=>{var N=Gr(),P=l(N);t(N),k(()=>c(P,`${e(Le).displayId??""} — ${e(Le).title??""}`)),o(y,N)};u(F,y=>{e(Le)&&y(ve)})}var z=a(F,2);{var j=y=>{var N=Xr();N.textContent=Ks,o(y,N)},de=y=>{var N=Wr(),P=l(N);P.textContent=Qs;var S=a(P,2);k(()=>{e(Ge),Ke(()=>{e(et)})}),Ie(S,5,()=>e(et),Qe,(G,_)=>{var C=Jr(),O={},st=l(C);t(C),k(()=>{O!==(O=e(_).id)&&(C.value=(C.__value=e(_).id)==null?"":e(_).id),c(st,`${e(_).displayId??""} — ${e(_).name??""}`)}),o(G,C)}),t(S),t(N),zt(S,()=>e(Ge),G=>r(Ge,G)),o(y,N)};u(z,y=>{e(et).length===0?y(j):y(de,!1)})}var Y=a(z,2),te=l(Y);const ce=Te(()=>e(Dt)||e(et).length===0);xe(te,{get disabled(){return e(ce)},$$events:{click:Ya},children:(y,N)=>{fe();var P=ge();k(S=>c(P,S),[()=>qs(e(Dt))],Te),o(y,P)},$$slots:{default:!0}});var _e=a(te,2);xe(_e,{variant:"ghost",$$events:{click:()=>r(kt,!1)},children:(y,N)=>{fe();var P=ge();P.nodeValue=Ct,o(y,P)},$$slots:{default:!0}}),t(Y),t(h),o(s,h)},$$slots:{default:!0},$$legacy:!0});var Ja=a(fa,2);{var Wa=s=>{var n=Kr();n.textContent=ya,o(s,n)},qa=s=>{var n=Fe(),h=W(n);{var F=ve=>{var z=Nl(),j=W(z),de=l(j);de.textContent=rr;var Y=a(de,4),te=l(Y);t(Y),t(j);var ce=a(j,2),_e=l(ce),y=l(_e),N=l(y,!0);t(y);var P=a(y,2),S=l(P,!0);t(P);var G=a(P,2),_=l(G,!0);t(G);var C=a(G,2);Q(C,"title",lr);var O=a(C,2),st=l(O);Ns(st,{get busy(){return e(Xt)},$$events:{select:m=>Ra(m.detail)}}),t(O),t(_e);var Pt=a(_e,2);{var Ka=m=>{var $=Qr(),V=l($,!0);t($),k(()=>c(V,e(v).description)),o(m,$)};u(Pt,m=>{e(v).description&&m(Ka)})}var ka=a(Pt,2),Wt=l(ka),Qa=l(Wt,!0);t(Wt);var ha=a(Wt,4),Za=l(ha,!0);t(ha),t(ka),t(ce);var qt=a(ce,2),Kt=l(qt),Qt=l(Kt),Ea=l(Qt);Ea.textContent=or;var es=a(Ea,2);xe(es,{size:"sm",$$events:{click:()=>r(ut,!0)},children:(m,$)=>{fe();var V=ge();V.nodeValue=ir,o(m,V)},$$slots:{default:!0}}),t(Qt);var ma=a(Qt,2);{var ts=m=>{var $=el(),V=a(l($),2);Ze(V),Q(V,"placeholder",dr);var Ne=a(V,2);{var we=D=>{var I=Zr();Q(I,"aria-label",Cs),K("click",I,()=>r(De,"")),o(D,I)};u(Ne,D=>{e(De)&&D(we)})}t($),Oe(V,()=>e(De),D=>r(De,D)),o(m,$)};u(ma,m=>{e(v).cases.length>0&&m(ts)})}var ba=a(ma,2);{var as=m=>{var $=sl();Ie($,5,()=>[["createdAt",cr],["displayId","ID"],["name",Aa],["priority",jt]],Qe,(V,Ne)=>{let we=()=>e(Ne)[0],D=()=>e(Ne)[1];var I=al(),ye=l(I),Ue=a(ye);{var Pe=ae=>{var x=tl(),se=l(x,!0);t(x),k(()=>c(se,e(ee).order==="asc"?"↑":"↓")),o(ae,x)};u(Ue,ae=>{e(ee).by===we()&&ae(Pe)})}t(I),k(()=>{yt(I,"active",e(ee).by===we()),c(ye,`${D()??""} `)}),K("click",I,()=>Ma(we())),o(V,I)}),t($),o(m,$)};u(ba,m=>{e(v).cases.length>0&&m(as)})}var ss=a(ba,2);{var rs=m=>{Rr(m,{title:pr,description:_r})},ls=m=>{var $=Fe(),V=W($);{var Ne=D=>{var I=rl(),ye=l(I);ye.nodeValue=`${ur} "`;var Ue=a(ye),Pe=l(Ue,!0);t(Ue),fe(),t(I),k(()=>c(Pe,e(De))),o(D,I)},we=D=>{var I=nl(),ye=W(I);Ie(ye,5,()=>e(la),ae=>ae.id,(ae,x)=>{var se=ol(),Be=l(se),Et=l(Be),rt=l(Et,!0);t(Et);var lt=a(Et,2),Bt=l(lt,!0);t(lt);var Mt=a(lt,2);{var Rt=re=>{var Ve=ll();Ve.textContent=Ca,o(re,Ve)};u(Mt,re=>{e(x).isAutomated&&re(Rt)})}var ot=a(Mt,2),mt=l(ot);Q(mt,"title",$a);var Nt=a(mt,2);t(ot),t(Be);var bt=a(Be,2),Zt=l(bt,!0);t(bt);var Ut=a(bt,2),gt=l(Ut,!0);t(Ut),t(se),k((re,Ve)=>{var Vt;yt(se,"selected",((Vt=e(d))==null?void 0:Vt.id)===e(x).id),c(rt,e(x).displayId),xt(lt,`priority-badge small ${re??""} svelte-1n7rolk`),c(Bt,e(x).priority),c(Zt,e(x).title),c(gt,Ve)},[()=>Jt(e(x).priority),()=>fr(e(x)._count.steps)],Te),K("click",mt,()=>va(e(x))),K("click",Nt,()=>{r(Ye,{id:e(x).id,displayId:e(x).displayId,title:e(x).title}),r(It,!0)}),K("click",ot,As(function(re){Ss.call(this,ra,re)})),K("click",se,()=>na(e(x))),K("keydown",se,re=>re.key==="Enter"&&na(e(x))),o(ae,se)}),t(ye);var Ue=a(ye,2);{var Pe=ae=>{var x=il(),se=l(x);Ur(se,{get current(){return e(Xe)},get total(){return e(Yt)},$$events:{change:Be=>r(Xe,Be.detail)}}),t(x),o(ae,x)};u(Ue,ae=>{e(Yt)>1&&ae(Pe)})}o(D,I)};u(V,D=>{e(Tt).length===0?D(Ne):D(we,!1)},!0)}o(m,$)};u(ss,m=>{e(v).cases.length===0?m(rs):m(ls,!1)})}t(Kt);var os=a(Kt,2);{var is=m=>{var $=Rl(),V=l($);{var Ne=D=>{var I=vl();I.textContent=ya,o(D,I)},we=D=>{var I=Fe(),ye=W(I);{var Ue=Pe=>{var ae=Ml(),x=W(ae),se=l(x),Be=l(se),Et=l(Be,!0);t(Be);var rt=a(Be,2),lt=l(rt,!0);t(rt);var Bt=a(rt,2);{var Mt=T=>{var L=dl();L.textContent=Ca,o(T,L)};u(Bt,T=>{e(d).isAutomated&&T(Mt)})}var Rt=a(Bt,2),ot=l(Rt);{var mt=T=>{var L=cl(),H=W(L);Q(H,"title",$a);var Ee=a(H,2);Q(Ee,"title",mr),K("click",H,()=>va(e(d))),K("click",Ee,Ua),o(T,L)};u(ot,T=>{e(ze)||T(mt)})}var Nt=a(ot,2);Q(Nt,"title",Ts),t(Rt),t(se);var bt=a(se,2);{var Zt=T=>{var L=pl(),H=l(L),Ee=l(H);Ee.textContent=La;var Me=a(Ee,2);Ze(Me),t(H);var le=a(H,2),q=l(le);q.textContent=aa;var Ae=a(q,2);ta(Ae),t(le);var w=a(le,2),Se=l(w);Se.textContent=jt;var B=a(Se,2);k(()=>{e(ke),Ke(()=>{})}),Ie(B,5,()=>Gt,Qe,(g,M)=>{var f=_l(),A={},me=l(f,!0);t(f),k(()=>{A!==(A=e(M))&&(f.value=(f.__value=e(M))==null?"":e(M)),c(me,e(M))}),o(g,f)}),t(B),t(w);var E=a(w,2),b=l(E);xe(b,{size:"sm",get disabled(){return e(St)},$$events:{click:Va},children:(g,M)=>{fe();var f=ge();k(()=>c(f,e(St)?ga:xa)),o(g,f)},$$slots:{default:!0}});var X=a(b,2);xe(X,{size:"sm",variant:"ghost",$$events:{click:()=>r(ze,!1)},children:(g,M)=>{fe();var f=ge();f.nodeValue=Ct,o(g,f)},$$slots:{default:!0}}),t(E),t(L),Oe(Me,()=>e(ke).title,g=>$e(ke,e(ke).title=g)),Oe(Ae,()=>e(ke).description,g=>$e(ke,e(ke).description=g)),zt(B,()=>e(ke).priority,g=>$e(ke,e(ke).priority=g)),Ht(3,L,()=>Ft,()=>({y:-4,duration:150})),o(T,L)},Ut=T=>{var L=hl(),H=W(L),Ee=l(H,!0);t(H);var Me=a(H,2);{var le=B=>{var E=ul(),b=l(E,!0);t(E),k(()=>c(b,e(d).description)),o(B,E)};u(Me,B=>{e(d).description&&B(le)})}var q=a(Me,2),Ae=l(q,!0);t(q);var w=a(q,2);{var Se=B=>{var E=kl();Ie(E,5,()=>Xa(e(d).history),b=>b.id,(b,X)=>{var g=fl();k((M,f)=>{xt(g,`history-bar ${M??""} svelte-1n7rolk`),Q(g,"title",`${e(X).result??""} — ${f??""}`)},[()=>da(e(X).result),()=>new Date(e(X).executedAt).toLocaleString()],Te),o(b,g)}),t(E),o(B,E)};u(w,B=>{e(d).history&&e(d).history.length>0&&B(Se)})}k(B=>{c(Ee,e(d).title),c(Ae,B)},[()=>Sa(e(d).createdBy.name)],Te),o(T,L)};u(bt,T=>{e(ze)?T(Zt):T(Ut,!1)})}t(x);var gt=a(x,2),re=l(gt);re.textContent=hr;var Ve=a(re,2);Ve.textContent=Er,t(gt);var Vt=a(gt,2);{var ns=T=>{var L=Ll(),H=l(L),Ee=l(H);{var Me=E=>{xe(E,{size:"sm",variant:"ghost",$$events:{click:()=>r(je,!0)},children:(b,X)=>{fe();var g=ge();g.nodeValue=gr,o(b,g)},$$slots:{default:!0}})},le=E=>{var b=El(),X=W(b);xe(X,{size:"sm",get disabled(){return e($t)},$$events:{click:za},children:(M,f)=>{fe();var A=ge();k(me=>c(A,me),[()=>xr(e($t))],Te),o(M,A)},$$slots:{default:!0}});var g=a(X,2);xe(g,{size:"sm",variant:"ghost",$$events:{click:()=>{r(je,!1),r(ne,(e(d).steps??[]).map(M=>({...M})))}},children:(M,f)=>{fe();var A=ge();A.nodeValue=Ct,o(M,A)},$$slots:{default:!0}}),o(E,b)};u(Ee,E=>{e(je)?E(le,!1):E(Me)})}var q=a(Ee,2);{var Ae=E=>{var b=ml();b.textContent=yr,K("click",b,Ha),o(E,b)};u(q,E=>{e(je)&&E(Ae)})}t(H);var w=a(H,2);{var Se=E=>{var b=xl(),X=l(b);{var g=f=>{var A=bl();A.textContent=Ar,o(f,A)},M=f=>{var A=Fe(),me=W(A);Ie(me,1,()=>e(ne),Qe,(it,Ce,nt)=>{var U=gl(),R=l(U);R.textContent=nt+1;var oe=a(R,2),Je=l(oe),He=l(Je);He.textContent=Sr;var pe=a(He,2);Ze(pe),Q(pe,"placeholder",$r),t(Je);var ue=a(Je,2),vt=l(ue);vt.textContent=Ia;var Re=a(vt,2);Ze(Re),Q(Re,"placeholder",Ir),t(ue);var dt=a(ue,2),be=l(dt);be.textContent=Oa;var J=a(be,2);Ze(J),Q(J,"placeholder",Or),t(dt),t(oe);var ea=a(oe,2);t(U),Oe(pe,()=>e(Ce).action,We=>(e(Ce).action=We,Ke(()=>e(ne)))),Oe(Re,()=>e(Ce).testData,We=>(e(Ce).testData=We,Ke(()=>e(ne)))),Oe(J,()=>e(Ce).expectedOutput,We=>(e(Ce).expectedOutput=We,Ke(()=>e(ne)))),K("click",ea,()=>Fa(nt)),o(it,U)}),o(f,A)};u(X,f=>{e(ne).length===0?f(g):f(M,!1)})}t(b),o(E,b)},B=E=>{var b=Fe(),X=W(b);{var g=f=>{var A=Cl(),me=l(A),it=a(l(me),2);it.textContent=Dr;var Ce=a(it,2);Ce.textContent=Ia;var nt=a(Ce,2);nt.textContent=Oa,t(me);var U=a(me,2);Ie(U,1,()=>e(d).steps,Qe,(R,oe,Je)=>{var He=yl(),pe=l(He);pe.textContent=Je+1;var ue=a(pe,2),vt=l(ue,!0);t(ue);var Re=a(ue,2),dt=l(Re,!0);t(Re);var be=a(Re,2),J=l(be,!0);t(be),t(He),k(()=>{c(vt,e(oe).action),c(dt,e(oe).testData||"—"),c(J,e(oe).expectedOutput||"—")}),o(R,He)}),t(A),o(f,A)},M=f=>{var A=Tl();A.textContent=wr,o(f,A)};u(X,f=>{e(d).steps&&e(d).steps.length>0?f(g):f(M,!1)},!0)}o(E,b)};u(w,E=>{e(je)?E(Se):E(B,!1)})}t(L),Ht(3,L,()=>Ft,()=>({y:4,duration:140})),o(T,L)},vs=T=>{var L=Bl(),H=l(L);{var Ee=le=>{var q=Al();q.textContent=Cr,o(le,q)},Me=le=>{var q=Pl();Ie(q,5,()=>e(d).history,Ae=>Ae.id,(Ae,w)=>{var Se=wl(),B=l(Se),E=l(B,!0);t(B);var b=a(B,2),X=l(b);{var g=U=>{var R=Sl();R.textContent=Tr,k(()=>Q(R,"href",`/reports/${e(w).report.id??""}`)),o(U,R)},M=U=>{var R=Fe(),oe=W(R);{var Je=pe=>{var ue=$l();ue.textContent=Pr,o(pe,ue)},He=pe=>{var ue=Fe(),vt=W(ue);{var Re=be=>{var J=Il(),ea=l(J,!0);t(J),k(We=>{Q(J,"href",`/test-repository/runs/${e(w).run.id??""}`),c(ea,We)},[()=>Br(e(w).run.title)],Te),o(be,J)},dt=be=>{var J=Ol();J.textContent=Mr,o(be,J)};u(vt,be=>{var J;(J=e(w).run)!=null&&J.id?be(Re):be(dt,!1)},!0)}o(pe,ue)};u(oe,pe=>{e(w).source==="automated"?pe(Je):pe(He,!1)},!0)}o(U,R)};u(X,U=>{var R;e(w).source==="automated"&&((R=e(w).report)!=null&&R.id)?U(g):U(M,!1)})}var f=a(X,2),A=l(f,!0);t(f);var me=a(f,2),it=l(me,!0);t(me),t(b);var Ce=a(b,2);{var nt=U=>{var R=Dl(),oe=l(R,!0);t(R),k(()=>c(oe,e(w).notes)),o(U,R)};u(Ce,U=>{e(w).notes&&U(nt)})}t(Se),k((U,R)=>{var oe;xt(B,`result-badge ${U??""} svelte-1n7rolk`),c(E,e(w).result),c(A,((oe=e(w).executedBy)==null?void 0:oe.name)??"—"),c(it,R)},[()=>da(e(w).result),()=>new Date(e(w).executedAt).toLocaleString()],Te),o(Ae,Se)}),t(q),o(le,q)};u(H,le=>{!e(d).history||e(d).history.length===0?le(Ee):le(Me,!1)})}t(L),Ht(3,L,()=>Ft,()=>({y:4,duration:140})),o(T,L)};u(Vt,T=>{e(at)?T(vs,!1):T(ns)})}k(T=>{c(Et,e(d).displayId),xt(rt,`priority-badge ${T??""} svelte-1n7rolk`),c(lt,e(d).priority),yt(re,"active",!e(at)),yt(Ve,"active",e(at))},[()=>Jt(e(d).priority)],Te),K("click",Nt,()=>{r(d,null),r(ze,!1)}),K("click",re,()=>r(at,!1)),K("click",Ve,()=>r(at,!0)),o(Pe,ae)};u(ye,Pe=>{e(d)&&Pe(Ue)},!0)}o(D,I)};u(V,D=>{e(ft)?D(Ne):D(we,!1)})}t($),Ht(3,$,()=>Ft,()=>({x:20,duration:200})),o(m,$)};u(os,m=>{(e(d)||e(ft))&&m(is)})}t(qt),k((m,$,V)=>{c(te,`${e(v).displayId??""} — ${e(v).name??""}`),c(N,e(v).displayId),xt(P,`priority-badge ${m??""} svelte-1n7rolk`),c(S,e(v).priority),c(_,e(v).name),c(Qa,$),c(Za,V),yt(qt,"split",e(d)||e(ft))},[()=>Jt(e(v).priority),()=>nr(e(v)._count.cases),()=>Sa(e(v).createdBy.name)],Te),K("click",C,()=>{r(he,{name:e(v).name,description:e(v).description,priority:e(v).priority}),r(ht,!0)}),o(ve,z)};u(h,ve=>{e(v)&&ve(F)},!0)}o(s,n)};u(Ja,s=>{e(oa)?s(Wa):s(qa,!1)})}o(Da,ca),fs(),Pa()}export{lo as component};
@@ -3,4 +3,4 @@
3
3
  * Licensed under the MIT License. See LICENSE file in the project root for details.
4
4
  */
5
5
 
6
- import{h as gt,a as n,t as c,b as Ue,s as f,e as $}from"../chunks/CfkUW1vA.js";import{i as qt}from"../chunks/C00jnSU2.js";import{p as xt,m as E,o as wt,ao as St,l as ve,b as Ct,f as Et,g as e,c as Lt,s as m,$ as kt,d as o,j as l,k as a,t as g,x}from"../chunks/CeH-RgMb.js";import{i as L}from"../chunks/CegSvdD-.js";import{e as A,t as V,i as T,a as Ge,b as je}from"../chunks/Beula-TH.js";import{A as At,p as Se,s as b,r as Tt,c as It,S as $t,w as Bt}from"../chunks/DuAVKaL3.js";import{b as Nt}from"../chunks/BAvTKHxT.js";import{b as Ot,t as Mt}from"../chunks/BJ_ypKl3.js";import{s as Je}from"../chunks/B0_HKFXV.js";import{E as Rt}from"../chunks/Cfmt4_tJ.js";async function Dt(){const i=await fetch(`${At}/tests`),{suites:I}=await i.json();return I.suites??[]}const Pt="Automated Tests — Plum",Ht="Tests",Ut="Search suites or tests…",Gt="No test suites found.",Ye="Run suite",jt="outline",Jt="Hide",Yt="Steps",zt="Examples",Ft=i=>`No tests matching "${i}"`,Kt=i=>`Copied ${i}`,Vt=i=>`Copy ${i}`,Xt=i=>`Run ${i}`,Qt=i=>`Run ${i}`,Wt=i=>i?"Collapse suite":"Expand suite",Zt=(i,I)=>`${i} of ${I} tests`,es=i=>`${i} ${Se(i,"test")}`,ts=(i,I)=>`${i} ${Se(i,"suite")} · ${I} ${Se(I,"test")}`;var ss=c('<button class="search-clear svelte-b4oiqy"><svg width="12" height="12" viewBox="0 0 14 14" fill="none" class="svelte-b4oiqy"><path d="M1 1l12 12M13 1L1 13" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" class="svelte-b4oiqy"></path></svg></button>'),as=c('<span class="sort-dir svelte-b4oiqy"> </span>'),os=c('<button class="sort-chip svelte-b4oiqy"> <!></button>'),rs=c('<div class="sort-bar svelte-b4oiqy"><span class="sort-label svelte-b4oiqy"></span> <!></div>'),is=c('<button class="id-pill svelte-b4oiqy"> </button>'),ls=c('<button class="id-pill svelte-b4oiqy"> </button>'),ns=c('<span class="outline-badge svelte-b4oiqy"></span>'),vs=c('<button class="steps-toggle svelte-b4oiqy"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" class="svelte-b4oiqy"><polyline points="9 18 15 12 9 6" class="svelte-b4oiqy"></polyline></svg> </button>'),cs=c('<li class="step svelte-b4oiqy"> </li>'),ds=c('<th class="svelte-b4oiqy"> </th>'),us=c('<td class="svelte-b4oiqy"> </td>'),ps=c('<tr class="svelte-b4oiqy"></tr>'),bs=c('<div class="examples svelte-b4oiqy"><span class="examples-label svelte-b4oiqy"></span> <div class="examples-table-wrap svelte-b4oiqy"><table class="examples-table svelte-b4oiqy"><thead class="svelte-b4oiqy"><tr class="svelte-b4oiqy"></tr></thead><tbody class="svelte-b4oiqy"></tbody></table></div></div>'),_s=c('<div class="steps svelte-b4oiqy"><ol class="step-list svelte-b4oiqy"></ol> <!></div>'),ys=c('<div class="test-row svelte-b4oiqy"><div class="test-main svelte-b4oiqy"><button class="run-icon-btn svelte-b4oiqy"><svg width="10" height="10" viewBox="0 0 24 24" fill="currentColor" stroke="none" class="svelte-b4oiqy"><polygon points="5,3 19,12 5,21" class="svelte-b4oiqy"></polygon></svg></button> <div class="test-ids svelte-b4oiqy"></div> <span class="test-name svelte-b4oiqy"> <!></span> <!></div> <!></div>'),hs=c('<div class="tests svelte-b4oiqy"></div>'),fs=c('<div class="suite svelte-b4oiqy"><div class="suite-header svelte-b4oiqy"><button class="suite-toggle svelte-b4oiqy"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" class="svelte-b4oiqy"><polyline points="9 18 15 12 9 6" class="svelte-b4oiqy"></polyline></svg></button> <div class="suite-meta svelte-b4oiqy"><div class="suite-badges svelte-b4oiqy"></div> <span class="suite-name svelte-b4oiqy"> </span> <span class="suite-count svelte-b4oiqy"> </span></div> <button class="run-btn suite-run svelte-b4oiqy"><svg width="11" height="11" viewBox="0 0 24 24" fill="currentColor" stroke="none" class="svelte-b4oiqy"><polygon points="5,3 19,12 5,21" class="svelte-b4oiqy"></polygon></svg> </button></div> <!></div>'),ms=c('<div class="suites svelte-b4oiqy"></div>'),gs=c('<div class="page-header svelte-b4oiqy"><div class="header-top svelte-b4oiqy"><div class="svelte-b4oiqy"><h1 class="svelte-b4oiqy"></h1> <p class="subtitle svelte-b4oiqy"><!></p></div></div> <div class="search-row svelte-b4oiqy"><div class="search-wrap svelte-b4oiqy"><svg class="search-icon svelte-b4oiqy" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8" class="svelte-b4oiqy"></circle><line x1="21" y1="21" x2="16.65" y2="16.65" class="svelte-b4oiqy"></line></svg> <input type="text" class="search-input svelte-b4oiqy"> <!></div></div></div> <!> <!>',1);function Is(i,I){xt(I,!1);const w=E(),X=E(),ce=E(),Ce=E();let U=E([]),B=E(""),G=E(new Set),j=E(new Set),S=E(new Set);const Q=new Map;function ze(t,s){try{const v=sessionStorage.getItem(t);if(v)return JSON.parse(v)}catch{}return s}function Fe(t,s){try{sessionStorage.setItem(t,JSON.stringify(s))}catch{}}let _=E(ze("plum:automated-tests:sort",{by:"id",order:"desc"}));function Ke(t){m(_,e(_).by===t?{...e(_),order:e(_).order==="asc"?"desc":"asc"}:{by:t,order:t==="id"?"desc":"asc"}),Fe("plum:automated-tests:sort",e(_))}async function Ve(){try{m(U,await Dt())}catch(t){console.error("Failed to fetch suites",t)}}wt(Ve);function J(t){return Array.isArray(t.suiteId)?t.suiteId:[t.suiteId]}function Ee(t){return Array.isArray(t.id)?t.id:[t.id]}function de(t){return Array.isArray(t.id)?t.id[0]:t.id}function Xe(t){e(G).has(t)?e(G).delete(t):e(G).add(t),m(G,e(G))}function Qe(t){e(j).has(t)?e(j).delete(t):e(j).add(t),m(j,e(j))}function Le(t){Ot.update(s=>({...s,testID:t})),Mt(t)}function We(t){Le(J(t)[0])}async function ke(t){await navigator.clipboard.writeText(t),e(S).add(t),m(S,e(S)),Q.has(t)&&clearTimeout(Q.get(t)),Q.set(t,setTimeout(()=>{e(S).delete(t),m(S,e(S)),Q.delete(t)},Bt))}St(()=>{for(const t of Q.values())clearTimeout(t)}),ve(()=>e(B),()=>{m(w,e(B).trim().toLowerCase())}),ve(()=>(e(U),e(w),e(_)),()=>{m(X,e(U).map(t=>{if(!e(w))return t;const s=t.suiteName.toLowerCase().includes(e(w))||J(t).some(d=>d.toLowerCase().includes(e(w))),v=t.tests.filter(d=>d.testCase.toLowerCase().includes(e(w))||Ee(d).some(Y=>Y.toLowerCase().includes(e(w))));return!s&&v.length===0?null:{...t,tests:s?t.tests:v}}).filter(Boolean).map(t=>({...t,tests:[...t.tests].sort((s,v)=>{const d=e(_).by==="name"?s.testCase.localeCompare(v.testCase):(de(s)??"").localeCompare(de(v)??"");return e(_).order==="asc"?d:-d})})).sort((t,s)=>{const v=e(_).by==="name"?t.suiteName.localeCompare(s.suiteName):(J(t)[0]??"").localeCompare(J(s)[0]??"");return e(_).order==="asc"?v:-v}))}),ve(()=>e(U),()=>{m(ce,e(U).reduce((t,s)=>t+s.tests.length,0))}),ve(()=>e(X),()=>{m(Ce,e(X).reduce((t,s)=>t+s.tests.length,0))}),Ct(),qt();var Ae=gs();gt(t=>{kt.title=Pt});var ue=Et(Ae),pe=o(ue),Te=o(pe),Ie=o(Te);Ie.textContent=Ht;var $e=l(Ie,2),Ze=o($e);{var et=t=>{var s=Ue();g(v=>f(s,v),[()=>Zt(e(Ce),e(ce))],x),n(t,s)},tt=t=>{var s=Ue();g(v=>f(s,v),[()=>ts(e(U).length,e(ce))],x),n(t,s)};L(Ze,t=>{e(w)?t(et):t(tt,!1)})}a($e),a(Te),a(pe);var Be=l(pe,2),Ne=o(Be),te=l(o(Ne),2);Tt(te),b(te,"placeholder",Ut);var st=l(te,2);{var at=t=>{var s=ss();b(s,"aria-label",It),$("click",s,()=>m(B,"")),n(t,s)};L(st,t=>{e(B)&&t(at)})}a(Ne),a(Be),a(ue);var Oe=l(ue,2);{var ot=t=>{var s=rs(),v=o(s);v.textContent=$t;var d=l(v,2);A(d,0,()=>[["id","ID"],["name","Name"]],T,(Y,N)=>{let z=()=>N[0],O=()=>N[1];var C=os(),k=o(C),be=l(k);{var W=M=>{var R=as(),_e=o(R,!0);a(R),g(()=>f(_e,e(_).order==="asc"?"↑":"↓")),n(M,R)};L(be,M=>{e(_).by===z()&&M(W)})}a(C),g(()=>{V(C,"active",e(_).by===z()),f(k,`${O()??""} `)}),$("click",C,()=>Ke(z())),n(Y,C)}),a(s),n(t,s)};L(Oe,t=>{e(w)||t(ot)})}var rt=l(Oe,2);{var it=t=>{const s=x(()=>e(w)?Ft(e(B)):Gt);Rt(t,{get message(){return e(s)}})},lt=t=>{var s=ms();A(s,5,()=>e(X),T,(v,d,Y)=>{var N=fs();const z=x(()=>J(e(d))[0]??e(d).suiteName),O=x(()=>!e(j).has(e(z)));var C=o(N),k=o(C),be=o(k);a(k);var W=l(k,2),M=o(W);A(M,5,()=>J(e(d)),T,(D,y)=>{var q=is(),h=o(q,!0);a(q),g((ae,F)=>{b(q,"title",ae),b(q,"aria-label",ae),V(q,"copied",F),f(h,e(y))},[()=>e(S).has(e(y))?Kt(e(y)):Vt(e(y)),()=>e(S).has(e(y))],x),$("click",q,()=>ke(e(y))),n(D,q)}),a(M);var R=l(M,2),_e=o(R,!0);a(R);var Me=l(R,2),nt=o(Me,!0);a(Me),a(W);var se=l(W,2);b(se,"title",Ye);var vt=l(o(se));vt.nodeValue=` ${Ye}`,a(se),a(C);var ct=l(C,2);{var dt=D=>{var y=hs();A(y,5,()=>e(d).tests,T,(q,h,ae)=>{var F=ys();const oe=x(()=>de(e(h))),re=x(()=>e(G).has(e(oe)));var ye=o(F),ie=o(ye),he=l(ie,2);A(he,5,()=>Ee(e(h)),T,(p,r)=>{var u=ls(),Z=o(u,!0);a(u),g((le,P)=>{b(u,"title",le),b(u,"aria-label",le),V(u,"copied",P),f(Z,e(r))},[()=>e(S).has(e(r))?`Copied ${e(r)}`:`Copy ${e(r)}`,()=>e(S).has(e(r))],x),$("click",u,()=>ke(e(r))),n(p,u)}),a(he);var fe=l(he,2),Re=o(fe),ut=l(Re);{var pt=p=>{var r=ns();r.textContent=jt,n(p,r)};L(ut,p=>{e(h).type==="outline"&&p(pt)})}a(fe);var bt=l(fe,2);{var _t=p=>{var r=vs(),u=o(r),Z=l(u);a(r),g(()=>{b(r,"aria-expanded",e(re)),V(u,"rotated",e(re)),f(Z,` ${(e(re)?Jt:Yt)??""}`)}),$("click",r,()=>Xe(e(oe))),n(p,r)};L(bt,p=>{var r;((r=e(h).steps)==null?void 0:r.length)>0&&p(_t)})}a(ye);var yt=l(ye,2);{var ht=p=>{var r=_s(),u=o(r);A(u,5,()=>e(h).steps,T,(P,ee)=>{var K=cs(),ne=o(K,!0);a(K),g(()=>f(ne,e(ee))),n(P,K)}),a(u);var Z=l(u,2);{var le=P=>{var ee=bs(),K=o(ee);K.textContent=zt;var ne=l(K,2),De=o(ne),me=o(De),Pe=o(me);A(Pe,5,()=>e(h).examples.headers,T,(ge,qe)=>{var H=ds(),xe=o(H,!0);a(H),g(()=>f(xe,e(qe))),n(ge,H)}),a(Pe),a(me);var He=l(me);A(He,5,()=>e(h).examples.rows,T,(ge,qe)=>{var H=ps();A(H,5,()=>e(qe),T,(xe,ft)=>{var we=us(),mt=o(we,!0);a(we),g(()=>f(mt,e(ft))),n(xe,we)}),a(H),n(ge,H)}),a(He),a(De),a(ne),a(ee),n(P,ee)};L(Z,P=>{e(h).examples&&P(le)})}a(r),Ge(3,r,()=>je,()=>({duration:180})),n(p,r)};L(yt,p=>{var r;e(re)&&((r=e(h).steps)==null?void 0:r.length)>0&&p(ht)})}a(F),g((p,r,u)=>{b(F,"style",p),b(ie,"title",r),b(ie,"aria-label",u),f(Re,`${e(h).testCase??""} `)},[()=>Je(Y*4+ae,30),()=>Xt(e(oe)),()=>Qt(e(h).testCase)],x),$("click",ie,()=>Le(e(oe))),n(q,F)}),a(y),Ge(3,y,()=>je,()=>({duration:180})),n(D,y)};L(ct,D=>{e(O)&&D(dt)})}a(N),g((D,y,q)=>{b(N,"style",D),V(C,"collapsed",!e(O)),b(k,"aria-expanded",e(O)),b(k,"aria-label",y),V(be,"rotated",e(O)),f(_e,e(d).suiteName),f(nt,q)},[()=>Je(Y,55),()=>Wt(e(O)),()=>es(e(d).tests.length)],x),$("click",k,()=>Qe(e(z))),$("click",se,()=>We(e(d))),n(v,N)}),a(s),n(t,s)};L(rt,t=>{e(X).length===0?t(it):t(lt,!1)})}Nt(te,()=>e(B),t=>m(B,t)),n(i,Ae),Lt()}export{Is as component};
6
+ import{h as gt,a as n,t as c,b as Ue,s as f,e as $}from"../chunks/6VDMVB5U.js";import{i as qt}from"../chunks/CtgCYzu5.js";import{p as xt,m as E,o as wt,ao as St,l as ve,b as Ct,f as Et,g as e,c as Lt,s as m,$ as kt,d as o,j as l,k as a,t as g,x}from"../chunks/BIf7lHIm.js";import{i as L}from"../chunks/D_thT6pZ.js";import{e as A,t as V,i as T,a as Ge,b as je}from"../chunks/BTV7EXZb.js";import{A as At,p as Se,s as b,r as Tt,b as It,S as $t,F as Bt}from"../chunks/C4Z3p6jE.js";import{b as Nt}from"../chunks/BnXsGCy3.js";import{b as Ot,t as Mt}from"../chunks/htkwR9b-.js";import{s as Fe}from"../chunks/B2lVGNml.js";import{E as Rt}from"../chunks/CNpD-yNH.js";async function Dt(){const i=await fetch(`${At}/tests`),{suites:I}=await i.json();return I.suites??[]}const Pt="Automated Tests — Plum",Ht="Tests",Ut="Search suites or tests…",Gt="No test suites found.",Je="Run suite",jt="outline",Ft="Hide",Jt="Steps",Yt="Examples",zt=i=>`No tests matching "${i}"`,Kt=i=>`Copied ${i}`,Vt=i=>`Copy ${i}`,Xt=i=>`Run ${i}`,Qt=i=>`Run ${i}`,Wt=i=>i?"Collapse suite":"Expand suite",Zt=(i,I)=>`${i} of ${I} tests`,es=i=>`${i} ${Se(i,"test")}`,ts=(i,I)=>`${i} ${Se(i,"suite")} · ${I} ${Se(I,"test")}`;var ss=c('<button class="search-clear svelte-b4oiqy"><svg width="12" height="12" viewBox="0 0 14 14" fill="none" class="svelte-b4oiqy"><path d="M1 1l12 12M13 1L1 13" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" class="svelte-b4oiqy"></path></svg></button>'),as=c('<span class="sort-dir svelte-b4oiqy"> </span>'),os=c('<button class="sort-chip svelte-b4oiqy"> <!></button>'),rs=c('<div class="sort-bar svelte-b4oiqy"><span class="sort-label svelte-b4oiqy"></span> <!></div>'),is=c('<button class="id-pill svelte-b4oiqy"> </button>'),ls=c('<button class="id-pill svelte-b4oiqy"> </button>'),ns=c('<span class="outline-badge svelte-b4oiqy"></span>'),vs=c('<button class="steps-toggle svelte-b4oiqy"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" class="svelte-b4oiqy"><polyline points="9 18 15 12 9 6" class="svelte-b4oiqy"></polyline></svg> </button>'),cs=c('<li class="step svelte-b4oiqy"> </li>'),ds=c('<th class="svelte-b4oiqy"> </th>'),us=c('<td class="svelte-b4oiqy"> </td>'),ps=c('<tr class="svelte-b4oiqy"></tr>'),bs=c('<div class="examples svelte-b4oiqy"><span class="examples-label svelte-b4oiqy"></span> <div class="examples-table-wrap svelte-b4oiqy"><table class="examples-table svelte-b4oiqy"><thead class="svelte-b4oiqy"><tr class="svelte-b4oiqy"></tr></thead><tbody class="svelte-b4oiqy"></tbody></table></div></div>'),_s=c('<div class="steps svelte-b4oiqy"><ol class="step-list svelte-b4oiqy"></ol> <!></div>'),ys=c('<div class="test-row svelte-b4oiqy"><div class="test-main svelte-b4oiqy"><button class="run-icon-btn svelte-b4oiqy"><svg width="10" height="10" viewBox="0 0 24 24" fill="currentColor" stroke="none" class="svelte-b4oiqy"><polygon points="5,3 19,12 5,21" class="svelte-b4oiqy"></polygon></svg></button> <div class="test-ids svelte-b4oiqy"></div> <span class="test-name svelte-b4oiqy"> <!></span> <!></div> <!></div>'),hs=c('<div class="tests svelte-b4oiqy"></div>'),fs=c('<div class="suite svelte-b4oiqy"><div class="suite-header svelte-b4oiqy"><button class="suite-toggle svelte-b4oiqy"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" class="svelte-b4oiqy"><polyline points="9 18 15 12 9 6" class="svelte-b4oiqy"></polyline></svg></button> <div class="suite-meta svelte-b4oiqy"><div class="suite-badges svelte-b4oiqy"></div> <span class="suite-name svelte-b4oiqy"> </span> <span class="suite-count svelte-b4oiqy"> </span></div> <button class="run-btn suite-run svelte-b4oiqy"><svg width="11" height="11" viewBox="0 0 24 24" fill="currentColor" stroke="none" class="svelte-b4oiqy"><polygon points="5,3 19,12 5,21" class="svelte-b4oiqy"></polygon></svg> </button></div> <!></div>'),ms=c('<div class="suites svelte-b4oiqy"></div>'),gs=c('<div class="page-header svelte-b4oiqy"><div class="header-top svelte-b4oiqy"><div class="svelte-b4oiqy"><h1 class="svelte-b4oiqy"></h1> <p class="subtitle svelte-b4oiqy"><!></p></div></div> <div class="search-row svelte-b4oiqy"><div class="search-wrap svelte-b4oiqy"><svg class="search-icon svelte-b4oiqy" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8" class="svelte-b4oiqy"></circle><line x1="21" y1="21" x2="16.65" y2="16.65" class="svelte-b4oiqy"></line></svg> <input type="text" class="search-input svelte-b4oiqy"> <!></div></div></div> <!> <!>',1);function Is(i,I){xt(I,!1);const w=E(),X=E(),ce=E(),Ce=E();let U=E([]),B=E(""),G=E(new Set),j=E(new Set),S=E(new Set);const Q=new Map;function Ye(t,s){try{const v=sessionStorage.getItem(t);if(v)return JSON.parse(v)}catch{}return s}function ze(t,s){try{sessionStorage.setItem(t,JSON.stringify(s))}catch{}}let _=E(Ye("plum:automated-tests:sort",{by:"id",order:"desc"}));function Ke(t){m(_,e(_).by===t?{...e(_),order:e(_).order==="asc"?"desc":"asc"}:{by:t,order:t==="id"?"desc":"asc"}),ze("plum:automated-tests:sort",e(_))}async function Ve(){try{m(U,await Dt())}catch(t){console.error("Failed to fetch suites",t)}}wt(Ve);function F(t){return Array.isArray(t.suiteId)?t.suiteId:[t.suiteId]}function Ee(t){return Array.isArray(t.id)?t.id:[t.id]}function de(t){return Array.isArray(t.id)?t.id[0]:t.id}function Xe(t){e(G).has(t)?e(G).delete(t):e(G).add(t),m(G,e(G))}function Qe(t){e(j).has(t)?e(j).delete(t):e(j).add(t),m(j,e(j))}function Le(t){Ot.update(s=>({...s,testID:t})),Mt(t)}function We(t){Le(F(t)[0])}async function ke(t){await navigator.clipboard.writeText(t),e(S).add(t),m(S,e(S)),Q.has(t)&&clearTimeout(Q.get(t)),Q.set(t,setTimeout(()=>{e(S).delete(t),m(S,e(S)),Q.delete(t)},Bt))}St(()=>{for(const t of Q.values())clearTimeout(t)}),ve(()=>e(B),()=>{m(w,e(B).trim().toLowerCase())}),ve(()=>(e(U),e(w),e(_)),()=>{m(X,e(U).map(t=>{if(!e(w))return t;const s=t.suiteName.toLowerCase().includes(e(w))||F(t).some(d=>d.toLowerCase().includes(e(w))),v=t.tests.filter(d=>d.testCase.toLowerCase().includes(e(w))||Ee(d).some(J=>J.toLowerCase().includes(e(w))));return!s&&v.length===0?null:{...t,tests:s?t.tests:v}}).filter(Boolean).map(t=>({...t,tests:[...t.tests].sort((s,v)=>{const d=e(_).by==="name"?s.testCase.localeCompare(v.testCase):(de(s)??"").localeCompare(de(v)??"");return e(_).order==="asc"?d:-d})})).sort((t,s)=>{const v=e(_).by==="name"?t.suiteName.localeCompare(s.suiteName):(F(t)[0]??"").localeCompare(F(s)[0]??"");return e(_).order==="asc"?v:-v}))}),ve(()=>e(U),()=>{m(ce,e(U).reduce((t,s)=>t+s.tests.length,0))}),ve(()=>e(X),()=>{m(Ce,e(X).reduce((t,s)=>t+s.tests.length,0))}),Ct(),qt();var Ae=gs();gt(t=>{kt.title=Pt});var ue=Et(Ae),pe=o(ue),Te=o(pe),Ie=o(Te);Ie.textContent=Ht;var $e=l(Ie,2),Ze=o($e);{var et=t=>{var s=Ue();g(v=>f(s,v),[()=>Zt(e(Ce),e(ce))],x),n(t,s)},tt=t=>{var s=Ue();g(v=>f(s,v),[()=>ts(e(U).length,e(ce))],x),n(t,s)};L(Ze,t=>{e(w)?t(et):t(tt,!1)})}a($e),a(Te),a(pe);var Be=l(pe,2),Ne=o(Be),te=l(o(Ne),2);Tt(te),b(te,"placeholder",Ut);var st=l(te,2);{var at=t=>{var s=ss();b(s,"aria-label",It),$("click",s,()=>m(B,"")),n(t,s)};L(st,t=>{e(B)&&t(at)})}a(Ne),a(Be),a(ue);var Oe=l(ue,2);{var ot=t=>{var s=rs(),v=o(s);v.textContent=$t;var d=l(v,2);A(d,0,()=>[["id","ID"],["name","Name"]],T,(J,N)=>{let Y=()=>N[0],O=()=>N[1];var C=os(),k=o(C),be=l(k);{var W=M=>{var R=as(),_e=o(R,!0);a(R),g(()=>f(_e,e(_).order==="asc"?"↑":"↓")),n(M,R)};L(be,M=>{e(_).by===Y()&&M(W)})}a(C),g(()=>{V(C,"active",e(_).by===Y()),f(k,`${O()??""} `)}),$("click",C,()=>Ke(Y())),n(J,C)}),a(s),n(t,s)};L(Oe,t=>{e(w)||t(ot)})}var rt=l(Oe,2);{var it=t=>{const s=x(()=>e(w)?zt(e(B)):Gt);Rt(t,{get message(){return e(s)}})},lt=t=>{var s=ms();A(s,5,()=>e(X),T,(v,d,J)=>{var N=fs();const Y=x(()=>F(e(d))[0]??e(d).suiteName),O=x(()=>!e(j).has(e(Y)));var C=o(N),k=o(C),be=o(k);a(k);var W=l(k,2),M=o(W);A(M,5,()=>F(e(d)),T,(D,y)=>{var q=is(),h=o(q,!0);a(q),g((ae,z)=>{b(q,"title",ae),b(q,"aria-label",ae),V(q,"copied",z),f(h,e(y))},[()=>e(S).has(e(y))?Kt(e(y)):Vt(e(y)),()=>e(S).has(e(y))],x),$("click",q,()=>ke(e(y))),n(D,q)}),a(M);var R=l(M,2),_e=o(R,!0);a(R);var Me=l(R,2),nt=o(Me,!0);a(Me),a(W);var se=l(W,2);b(se,"title",Je);var vt=l(o(se));vt.nodeValue=` ${Je}`,a(se),a(C);var ct=l(C,2);{var dt=D=>{var y=hs();A(y,5,()=>e(d).tests,T,(q,h,ae)=>{var z=ys();const oe=x(()=>de(e(h))),re=x(()=>e(G).has(e(oe)));var ye=o(z),ie=o(ye),he=l(ie,2);A(he,5,()=>Ee(e(h)),T,(p,r)=>{var u=ls(),Z=o(u,!0);a(u),g((le,P)=>{b(u,"title",le),b(u,"aria-label",le),V(u,"copied",P),f(Z,e(r))},[()=>e(S).has(e(r))?`Copied ${e(r)}`:`Copy ${e(r)}`,()=>e(S).has(e(r))],x),$("click",u,()=>ke(e(r))),n(p,u)}),a(he);var fe=l(he,2),Re=o(fe),ut=l(Re);{var pt=p=>{var r=ns();r.textContent=jt,n(p,r)};L(ut,p=>{e(h).type==="outline"&&p(pt)})}a(fe);var bt=l(fe,2);{var _t=p=>{var r=vs(),u=o(r),Z=l(u);a(r),g(()=>{b(r,"aria-expanded",e(re)),V(u,"rotated",e(re)),f(Z,` ${(e(re)?Ft:Jt)??""}`)}),$("click",r,()=>Xe(e(oe))),n(p,r)};L(bt,p=>{var r;((r=e(h).steps)==null?void 0:r.length)>0&&p(_t)})}a(ye);var yt=l(ye,2);{var ht=p=>{var r=_s(),u=o(r);A(u,5,()=>e(h).steps,T,(P,ee)=>{var K=cs(),ne=o(K,!0);a(K),g(()=>f(ne,e(ee))),n(P,K)}),a(u);var Z=l(u,2);{var le=P=>{var ee=bs(),K=o(ee);K.textContent=Yt;var ne=l(K,2),De=o(ne),me=o(De),Pe=o(me);A(Pe,5,()=>e(h).examples.headers,T,(ge,qe)=>{var H=ds(),xe=o(H,!0);a(H),g(()=>f(xe,e(qe))),n(ge,H)}),a(Pe),a(me);var He=l(me);A(He,5,()=>e(h).examples.rows,T,(ge,qe)=>{var H=ps();A(H,5,()=>e(qe),T,(xe,ft)=>{var we=us(),mt=o(we,!0);a(we),g(()=>f(mt,e(ft))),n(xe,we)}),a(H),n(ge,H)}),a(He),a(De),a(ne),a(ee),n(P,ee)};L(Z,P=>{e(h).examples&&P(le)})}a(r),Ge(3,r,()=>je,()=>({duration:180})),n(p,r)};L(yt,p=>{var r;e(re)&&((r=e(h).steps)==null?void 0:r.length)>0&&p(ht)})}a(z),g((p,r,u)=>{b(z,"style",p),b(ie,"title",r),b(ie,"aria-label",u),f(Re,`${e(h).testCase??""} `)},[()=>Fe(J*4+ae,30),()=>Xt(e(oe)),()=>Qt(e(h).testCase)],x),$("click",ie,()=>Le(e(oe))),n(q,z)}),a(y),Ge(3,y,()=>je,()=>({duration:180})),n(D,y)};L(ct,D=>{e(O)&&D(dt)})}a(N),g((D,y,q)=>{b(N,"style",D),V(C,"collapsed",!e(O)),b(k,"aria-expanded",e(O)),b(k,"aria-label",y),V(be,"rotated",e(O)),f(_e,e(d).suiteName),f(nt,q)},[()=>Fe(J,55),()=>Wt(e(O)),()=>es(e(d).tests.length)],x),$("click",k,()=>Qe(e(Y))),$("click",se,()=>We(e(d))),n(v,N)}),a(s),n(t,s)};L(rt,t=>{e(X).length===0?t(it):t(lt,!1)})}Nt(te,()=>e(B),t=>m(B,t)),n(i,Ae),Lt()}export{Is as component};