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{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};
@@ -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 g,c as ge,h as kt,s as E,e as ie,b as fe,n as $e}from"../chunks/6VDMVB5U.js";import{i as ze}from"../chunks/CtgCYzu5.js";import{p as Je,o as Xe,g as e,ao as Ze,l as A,s as c,aj as Rt,b as et,d as r,k as s,c as tt,m as u,y as ve,ap as It,f as S,$ as At,aq as Tt,j as n,t as L,x as ce,n as he}from"../chunks/BIf7lHIm.js";import{i as m,s as Bt,a as je}from"../chunks/D_thT6pZ.js";import{t as z,a as Ct,f as Nt,e as Me,i as qe}from"../chunks/BTV7EXZb.js";import{b as de}from"../chunks/BCh31ecr.js";import{g as He}from"../chunks/BIjh3jiU.js";import{p as Pt}from"../chunks/Dlymnwnf.js";import{c as St,d as Fe}from"../chunks/htkwR9b-.js";import{f as Dt}from"../chunks/gCgJ3Cwu.js";import{l as Ot,j as Te,m as me,n as Ut,o as Vt,V as Ke,Q as Gt,q as Wt,C as Be,s as jt,u as Mt,v as qt,w as Ht,x as Ft,y as Kt,z as Qt,A as Yt,B as $t,E as zt,F as Jt,G as Xt,W as Qe,I as Zt,J as ea,K as ta,M as aa,O as sa}from"../chunks/pNZogwkM.js";import{G as Ce,H as la}from"../chunks/C4Z3p6jE.js";import{p as ra}from"../chunks/D72giPTu.js";import{P as na,B as xe}from"../chunks/3MBVX4Yb.js";import{B as Ye}from"../chunks/DeiVAbyn.js";var va=g('<div class="live-viewport svelte-1wgcx8r"><div class="live-stage svelte-1wgcx8r"><div class="live-mount svelte-1wgcx8r"></div></div></div>');function oa(be,_e){Je(_e,!1);let D=ra(_e,"events",24,()=>[]);const Ee=4;let W=u(),j=u(),k=u(),l=u(null),x=u(0),f=0,O=0,M;function ee(){if(!f||!O||!e(W))return;const _=e(W).getBoundingClientRect(),p=_.width/f||0;ve(j,e(j).style.width=`${_.width}px`),ve(j,e(j).style.height=`${O*p}px`),ve(k,e(k).style.transformOrigin="top left"),ve(k,e(k).style.transform=`scale(${p})`)}function te(){var X,V;const _=e(W).getBoundingClientRect(),p=((X=D().find(R=>(R==null?void 0:R.type)===Ee))==null?void 0:X.data)??null;f=(p==null?void 0:p.width)>0?p.width:_.width,O=(p==null?void 0:p.height)>0?p.height:_.height,c(l,new na({target:e(k),props:{events:D(),liveMode:!0,autoPlay:!1,showController:!1,width:f,height:O}})),c(x,D().length),(V=e(l).getReplayer())==null||V.startLive(),ee()}Xe(()=>{te(),M=new ResizeObserver(ee),M.observe(e(W))}),Ze(()=>{var _,p;M==null||M.disconnect();try{(p=(_=e(l))==null?void 0:_.getReplayer())==null||p.destroy()}catch{}}),A(()=>(e(l),Rt(D()),e(x)),()=>{if(e(l)&&D().length>e(x)){for(let _=e(x);_<D().length;_++)e(l).addEvent(D()[_]);c(x,D().length)}}),et(),ze();var B=va(),ae=r(B),J=r(ae);de(J,_=>c(k,_),()=>e(k)),s(ae),de(ae,_=>c(j,_),()=>e(j)),s(B),de(B,_=>c(W,_),()=>e(W)),o(be,B),tt()}var ia=g('<h2 class="svelte-13l3gen"></h2> <p class="svelte-13l3gen"></p> <a href="/reports" class="notice-link svelte-13l3gen"></a>',1),ca=g('<div class="pulse-dot svelte-13l3gen"></div>'),da=g('<!> <div class="notice-state svelte-13l3gen"><!></div>',1),_a=g('<!> <div class="notice-state svelte-13l3gen"><div class="pulse-dot warn svelte-13l3gen"></div> <h2 class="svelte-13l3gen"></h2> <p class="svelte-13l3gen"></p> <p class="queue-pos svelte-13l3gen"> </p> <button class="cancel-btn svelte-13l3gen"></button></div>',1),ua=g('<!> <div class="notice-state svelte-13l3gen"><h2 class="svelte-13l3gen"> </h2> <a href="/reports" class="notice-link svelte-13l3gen"></a></div>',1),pa=g('<span class="live-badge svelte-13l3gen"><span class="live-dot svelte-13l3gen"></span> </span>'),ga=g('<span class="run-title-label svelte-13l3gen"> </span> <span class="run-sep svelte-13l3gen">·</span>',1),fa=g('<span class="run-sep svelte-13l3gen">·</span> <span class="run-detail svelte-13l3gen"> </span>',1),ha=g('<div class="run-info svelte-13l3gen"><!> <span class="run-tag-label svelte-13l3gen"> </span> <span class="run-sep svelte-13l3gen">·</span> <span class="run-detail svelte-13l3gen"> </span> <span class="run-sep svelte-13l3gen">·</span> <span class="run-detail svelte-13l3gen"> </span> <!></div>'),ma=g('<button class="cancel-btn svelte-13l3gen"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-13l3gen"><rect x="3" y="3" width="18" height="18" rx="2" class="svelte-13l3gen"></rect><line x1="9" y1="9" x2="15" y2="15" class="svelte-13l3gen"></line><line x1="15" y1="9" x2="9" y2="15" class="svelte-13l3gen"></line></svg> </button>'),xa=$e('<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="svelte-13l3gen"><polyline points="20 6 9 17 4 12" class="svelte-13l3gen"></polyline></svg> ',1),ba=$e('<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="svelte-13l3gen"><line x1="18" y1="6" x2="6" y2="18" class="svelte-13l3gen"></line><line x1="6" y1="6" x2="18" y2="18" class="svelte-13l3gen"></line></svg> ',1),Ea=g('<div class="completion-bar svelte-13l3gen"><div class="completion-left svelte-13l3gen"><!></div> <div class="completion-right svelte-13l3gen"><span class="redirect-hint svelte-13l3gen"> </span> <button class="view-now-btn svelte-13l3gen"> <svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-13l3gen"><line x1="5" y1="12" x2="19" y2="12" class="svelte-13l3gen"></line><polyline points="12 5 19 12 12 19" class="svelte-13l3gen"></polyline></svg></button></div></div>'),wa=g('<span class="tab-count svelte-13l3gen"> </span>'),ya=g('<button class="lane-tab svelte-13l3gen"><span class="tab-dot svelte-13l3gen"></span> <!></button>'),La=g('<div class="lane-tabs svelte-13l3gen"></div>'),ka=g('<button class="lane-tab svelte-13l3gen"> </button>'),Ra=g('<div class="lane-tabs worker-tabs svelte-13l3gen"></div>'),Ia=g('<div class="awaiting-state svelte-13l3gen"><svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" opacity="0.25" class="svelte-13l3gen"><rect x="2" y="5" width="20" height="14" rx="2" class="svelte-13l3gen"></rect><circle cx="12" cy="12" r="3" class="svelte-13l3gen"></circle></svg> <span class="svelte-13l3gen"> </span></div>'),Aa=g('<pre class="terminal svelte-13l3gen"> </pre>'),Ta=g('<pre class="terminal svelte-13l3gen"> </pre>'),Ba=g('<div class="live-fullscreen svelte-13l3gen"><div class="run-header svelte-13l3gen"><div class="header-left svelte-13l3gen"><div class="header-back svelte-13l3gen"><!></div> <!> <!></div> <!></div> <!> <!> <!> <div class="run-view svelte-13l3gen"><div class="stream-panel svelte-13l3gen"><!></div> <div class="terminal-panel svelte-13l3gen"><div class="terminal-bar svelte-13l3gen"><span class="dot red svelte-13l3gen"></span> <span class="dot yellow svelte-13l3gen"></span> <span class="dot green svelte-13l3gen"></span> <span class="terminal-label svelte-13l3gen"><!></span></div> <!></div></div></div>');function Ka(be,_e){Je(_e,!1);const[D,Ee]=Bt(),W=()=>je(Pt,"$page",D),j=()=>je(St,"$backgroundRuns",D),k=u(),l=u(),x=u(),f=u(),O=u(),M=u(),ee=u(),te=u(),B=u(),ae=u();let J=u(),_=u(),p=u(null),X=u(Ce/1e3),V=u(null),R=u(null),q=u(null),we=u(!1),Ne=u(0),ye=null;async function Pe(){try{const v=await Dt();c(we,!0);const I=v.find(ne=>ne.runId===e(k));c(Ne,(I==null?void 0:I.position)??0)}catch{c(we,!0)}}Xe(()=>{Pe(),ye=setInterval(()=>{e(x)==="queued"&&Pe()},4e3)}),It(()=>{e(J)&&ve(J,e(J).scrollTop=e(J).scrollHeight),e(_)&&ve(_,e(_).scrollTop=e(_).scrollHeight)}),Ze(()=>{e(p)&&clearTimeout(e(p)),e(V)&&clearInterval(e(V)),ye&&clearInterval(ye)});function at(){e(p)&&clearTimeout(e(p)),e(V)&&clearInterval(e(V)),He(Te(e(l).latestReportId))}A(()=>W(),()=>{c(k,W().params.id)}),A(()=>(j(),e(k)),()=>{c(l,j()[e(k)]??null)}),A(()=>e(l),()=>{var v;c(x,((v=e(l))==null?void 0:v.status)??null)}),A(()=>e(l),()=>{var v;c(f,((v=e(l))==null?void 0:v.lanes)??[])}),A(()=>e(f),()=>{c(O,e(f).length>1)}),A(()=>(e(f),e(R)),()=>{e(f).length===0?c(R,null):e(f).find(v=>v.id===e(R))||c(R,e(f)[0].id)}),A(()=>(e(f),e(R)),()=>{c(M,e(f).find(v=>v.id===e(R))??null)}),A(()=>(e(O),e(R),e(f)),()=>{var v;c(ee,e(O)?e(R):(v=e(f)[0])==null?void 0:v.id)}),A(()=>(e(ee),e(l)),()=>{var v;c(te,e(ee)&&((v=e(l))==null?void 0:v.rrwebByLane[e(ee)])||{})}),A(()=>e(te),()=>{c(B,Object.keys(e(te)).sort((v,I)=>Number(v)-Number(I)))}),A(()=>(e(B),e(q)),()=>{e(B).length===0?c(q,null):e(B).includes(e(q))||c(q,e(B)[0])}),A(()=>(e(q),e(te)),()=>{var v;c(ae,e(q)?((v=e(te)[e(q)])==null?void 0:v.events)??[]:[])}),A(()=>(e(x),e(l),e(p),e(X),e(V),Te),()=>{var v,I;e(x)==="done"&&((v=e(l))!=null&&v.testCompleted)&&((I=e(l))!=null&&I.latestReportId)&&!e(p)&&(c(X,Ce/1e3),c(V,setInterval(()=>{Tt(X,-1),e(X)<=0&&clearInterval(e(V))},1e3)),c(p,setTimeout(()=>He(Te(e(l).latestReportId)),Ce)))}),et(),ze();var Se=ge();kt(v=>{At.title=Ot});var st=S(Se);{var lt=v=>{var I=da(),ne=S(I);xe(ne,{href:"/reports",label:me});var ue=n(ne,2),Le=r(ue);{var Z=U=>{var H=ia(),le=S(H);le.textContent=Ut;var C=n(le,2);C.textContent=Vt;var N=n(C,2);N.textContent=Ke,o(U,H)},se=U=>{var H=ca();o(U,H)};m(Le,U=>{e(we)?U(Z):U(se,!1)})}s(ue),o(v,I)},rt=v=>{var I=ge(),ne=S(I);{var ue=Z=>{var se=_a(),U=S(se);xe(U,{href:"/reports",label:me});var H=n(U,2),le=n(r(H),2);le.textContent=Gt;var C=n(le,2);C.textContent=Wt;var N=n(C,2),G=r(N,!0);s(N);var F=n(N,2);F.textContent=Be,s(H),L(K=>E(G,K),[()=>jt(e(Ne))],ce),ie("click",F,()=>Fe(e(k))),o(Z,se)},Le=Z=>{var se=ge(),U=S(se);{var H=C=>{var N=ua(),G=S(N);xe(G,{href:"/reports",label:me});var F=n(G,2),K=r(F),ke=r(K,!0);s(K);var pe=n(K,2);pe.textContent=Ke,s(F),L(()=>E(ke,e(l).verdict==="cancelled"?Be:Mt)),o(C,N)},le=C=>{var N=Ba(),G=r(N),F=r(G),K=r(F),ke=r(K);xe(ke,{href:"/reports",label:me}),s(K);var pe=n(K,2);{var nt=a=>{var t=pa(),d=n(r(t),1,!0);d.nodeValue=qt,s(t),o(a,t)},vt=a=>{var t=ge(),d=S(t);{var i=b=>{Ye(b,{variant:"pass",children:(w,Q)=>{he();var T=fe();T.nodeValue=Zt,o(w,T)},$$slots:{default:!0}})},h=b=>{Ye(b,{variant:"fail",children:(w,Q)=>{he();var T=fe();T.nodeValue=ea,o(w,T)},$$slots:{default:!0}})};m(d,b=>{e(l).verdict==="pass"?b(i):b(h,!1)},!0)}o(a,t)};m(pe,a=>{e(x)==="running"?a(nt):a(vt,!1)})}var ot=n(pe,2);{var it=a=>{var t=ha(),d=r(t);{var i=y=>{var $=ga(),oe=S($),Ae=r(oe,!0);s(oe),he(2),L(()=>E(Ae,e(l).currentRun.runTitle)),o(y,$)};m(d,y=>{e(l).currentRun.runTitle&&y(i)})}var h=n(d,2),b=r(h,!0);s(h);var w=n(h,4),Q=r(w,!0);s(w);var T=n(w,4),Y=r(T,!0);s(T);var re=n(T,2);{var P=y=>{var $=fa(),oe=n(S($),2),Ae=r(oe,!0);s(oe),L(Lt=>E(Ae,Lt),[()=>ta(e(f).length)],ce),o(y,$)};m(re,y=>{e(f).length>1&&y(P)})}s(t),L(y=>{E(b,e(l).currentRun.tag||la),E(Q,y),E(Y,e(l).currentRun.browser)},[()=>Ht(e(l).currentRun.workers)],ce),o(a,t)};m(ot,a=>{e(l).currentRun&&a(it)})}s(F);var ct=n(F,2);{var dt=a=>{var t=ma(),d=n(r(t));d.nodeValue=` ${Be}`,s(t),ie("click",t,()=>Fe(e(k))),o(a,t)};m(ct,a=>{e(x)==="running"&&a(dt)})}s(G);var De=n(G,2);{var _t=a=>{var t=Ea(),d=r(t),i=r(d);{var h=P=>{var y=xa(),$=n(S(y),1,!0);$.nodeValue=aa,o(P,y)},b=P=>{var y=ba(),$=n(S(y),1,!0);$.nodeValue=sa,o(P,y)};m(i,P=>{e(l).verdict==="pass"?P(h):P(b,!1)})}s(d);var w=n(d,2),Q=r(w),T=r(Q,!0);s(Q);var Y=n(Q,2),re=r(Y);re.nodeValue=`${Ft} `,he(),s(Y),s(w),s(t),L(P=>{z(t,"pass-bar",e(l).verdict==="pass"),z(t,"fail-bar",e(l).verdict==="fail"),E(T,P)},[()=>Kt(e(X))],ce),ie("click",Y,at),Ct(3,t,()=>Nt,()=>({y:-8,duration:250})),o(a,t)};m(De,a=>{e(x)==="done"&&e(l).testCompleted&&e(l).latestReportId&&a(_t)})}var Oe=n(De,2);{var ut=a=>{var t=La();Me(t,5,()=>e(f),qe,(d,i)=>{var h=ya(),b=r(h),w=n(b),Q=n(w);{var T=Y=>{var re=wa(),P=r(re,!0);s(re),L(()=>E(P,e(i).testCount)),o(Y,re)};m(Q,Y=>{e(i).testCount&&Y(T)})}s(h),L(()=>{z(h,"active",e(R)===e(i).id),z(b,"tab-dot-running",e(i).status==="running"),z(b,"tab-dot-done",e(i).status==="done"),z(b,"tab-dot-error",e(i).status==="error"),E(w,` ${e(i).name??""} `)}),ie("click",h,()=>c(R,e(i).id)),o(d,h)}),s(t),o(a,t)};m(Oe,a=>{e(O)&&a(ut)})}var Ue=n(Oe,2);{var pt=a=>{var t=Ra();Me(t,5,()=>e(B),qe,(d,i)=>{var h=ka(),b=r(h,!0);s(h),L(w=>{z(h,"active",e(q)===e(i)),E(b,w)},[()=>Qt(e(i))],ce),ie("click",h,()=>c(q,e(i))),o(d,h)}),s(t),o(a,t)};m(Ue,a=>{e(B).length>1&&a(pt)})}var Ve=n(Ue,2),Re=r(Ve),gt=r(Re);{var ft=a=>{oa(a,{get events(){return e(ae)}})},ht=a=>{var t=Ia(),d=n(r(t),2),i=r(d,!0);s(d),s(t),L(()=>E(i,e(x)==="running"?Yt:$t)),o(a,t)};m(gt,a=>{e(ae).length>0?a(ft):a(ht,!1)})}s(Re);var Ge=n(Re,2),Ie=r(Ge),We=n(r(Ie),6),mt=r(We);{var xt=a=>{var t=fe();L(()=>{var d;return E(t,((d=e(M))==null?void 0:d.name)??zt)}),o(a,t)},bt=a=>{var t=fe();L(()=>E(t,e(x)==="running"?Jt:Xt)),o(a,t)};m(mt,a=>{e(O)?a(xt):a(bt,!1)})}s(We),s(Ie);var Et=n(Ie,2);{var wt=a=>{var t=Aa(),d=r(t,!0);s(t),de(t,i=>c(_,i),()=>e(_)),L(()=>{var i;return E(d,((i=e(M))==null?void 0:i.logs)||Qe)}),o(a,t)},yt=a=>{var t=Ta(),d=r(t,!0);s(t),de(t,i=>c(J,i),()=>e(J)),L(()=>{var i;return E(d,((i=e(f)[0])==null?void 0:i.logs)||e(l).output||Qe)}),o(a,t)};m(Et,a=>{e(O)?a(wt):a(yt,!1)})}s(Ge),s(Ve),s(N),L(()=>{z(G,"header-pass",e(l).verdict==="pass"),z(G,"header-fail",e(l).verdict==="fail")}),o(C,N)};m(U,C=>{e(x)==="done"&&!e(l).latestReportId?C(H):C(le,!1)},!0)}o(Z,se)};m(ne,Z=>{e(x)==="queued"?Z(ue):Z(Le,!1)},!0)}o(v,I)};m(st,v=>{e(l)?v(rt,!1):v(lt)})}o(be,Se),tt(),Ee()}export{Ka 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 J,a as b,t as h,s as O,e as I}from"../chunks/CfkUW1vA.js";import{i as Q}from"../chunks/C00jnSU2.js";import{p as X,o as Y,s as i,t as w,c as Z,$ as aa,m as n,d as r,g as e,k as o,j as l,x as ea}from"../chunks/CeH-RgMb.js";import{i as R,s as ta,a as sa}from"../chunks/CegSvdD-.js";import{s as A,E as la,r as T,P as ia}from"../chunks/DuAVKaL3.js";import{b as D}from"../chunks/BAvTKHxT.js";import{g as ra}from"../chunks/DiVmSEJa.js";import{a as oa}from"../chunks/Ck6C3Fl0.js";import{c as na,l as ca}from"../chunks/GDjpV3r7.js";import{t as va}from"../chunks/C7uEQ-LH.js";import{L as pa,C as ua,S as da,a as ma,E as _a,P as fa,s as ba,b as ha}from"../chunks/Dlnxgs49.js";var La=h('<p class="checking svelte-cliau1"></p>'),Ea=h('<p class="error svelte-cliau1"> </p>'),ga=h('<div class="card svelte-cliau1"><div class="brand svelte-cliau1"><span class="brand-serif svelte-cliau1">Pl</span><span class="brand-sans svelte-cliau1">um</span></div> <h1 class="title svelte-cliau1"></h1> <p class="subtitle svelte-cliau1"></p> <div class="fields svelte-cliau1"><div class="field svelte-cliau1"><label class="label svelte-cliau1" for="email"></label> <input id="email" type="email" class="input svelte-cliau1" autocomplete="email"></div> <div class="field svelte-cliau1"><label class="label svelte-cliau1" for="password"></label> <input id="password" type="password" class="input svelte-cliau1" autocomplete="current-password"></div></div> <!> <button class="submit-btn svelte-cliau1"> </button></div>'),Ia=h('<div class="page svelte-cliau1"><!></div>');function Oa(B,H){X(H,!1);const[K,M]=ta(),F=()=>sa(va,"$theme",K);let c=n(""),v=n(""),p=n(""),u=n(!1),y=n(!0);Y(async()=>{try{if(await na()){ra("/setup");return}}catch{}i(y,!1)});async function C(){i(p,""),i(u,!0);try{const{token:a,user:s}=await ca({email:e(c),password:e(v)});oa.login(a,s),window.location.href="/"}catch(a){i(p,a.message||ha)}finally{i(u,!1)}}function S(a){a.key==="Enter"&&C()}Q();var d=Ia();J(a=>{aa.title=pa});var W=r(d);{var j=a=>{var s=La();s.textContent=ua,b(a,s)},q=a=>{var s=ga(),k=l(r(s),2);k.textContent=da;var x=l(k,2);x.textContent=ma;var L=l(x,2),E=r(L),N=r(E);N.textContent=la;var m=l(N,2);T(m),A(m,"placeholder",_a),o(E);var P=l(E,2),$=r(P);$.textContent=ia;var _=l($,2);T(_),A(_,"placeholder",fa),o(P),o(L);var G=l(L,2);{var U=t=>{var g=Ea(),z=r(g,!0);o(g),w(()=>O(z,e(p))),b(t,g)};R(G,t=>{e(p)&&t(U)})}var f=l(G,2),V=r(f,!0);o(f),o(s),w(t=>{f.disabled=e(u)||!e(c)||!e(v),O(V,t)},[()=>ba(e(u))],ea),D(m,()=>e(c),t=>i(c,t)),I("keydown",m,S),D(_,()=>e(v),t=>i(v,t)),I("keydown",_,S),I("click",f,C),b(a,s)};R(W,a=>{e(y)?a(j):a(q,!1)})}o(d),w(()=>A(d,"data-theme",F())),b(B,d),Z(),M()}export{Oa as component};
6
+ import{h as J,a as b,t as h,s as O,e as I}from"../chunks/6VDMVB5U.js";import{i as Q}from"../chunks/CtgCYzu5.js";import{p as X,o as Y,s as i,t as w,c as Z,$ as aa,m as n,d as r,g as e,k as o,j as l,x as ea}from"../chunks/BIf7lHIm.js";import{i as R,s as ta,a as sa}from"../chunks/D_thT6pZ.js";import{s as A,E as la,r as T,P as ia}from"../chunks/C4Z3p6jE.js";import{b as D}from"../chunks/BnXsGCy3.js";import{g as ra}from"../chunks/BIjh3jiU.js";import{a as oa}from"../chunks/CXQhSK1T.js";import{c as na,l as ca}from"../chunks/DDx3no2z.js";import{t as va}from"../chunks/iL4SCrvY.js";import{L as pa,C as ua,S as da,a as ma,E as _a,P as fa,s as ba,b as ha}from"../chunks/Dlnxgs49.js";var La=h('<p class="checking svelte-cliau1"></p>'),Ea=h('<p class="error svelte-cliau1"> </p>'),ga=h('<div class="card svelte-cliau1"><div class="brand svelte-cliau1"><span class="brand-serif svelte-cliau1">Pl</span><span class="brand-sans svelte-cliau1">um</span></div> <h1 class="title svelte-cliau1"></h1> <p class="subtitle svelte-cliau1"></p> <div class="fields svelte-cliau1"><div class="field svelte-cliau1"><label class="label svelte-cliau1" for="email"></label> <input id="email" type="email" class="input svelte-cliau1" autocomplete="email"></div> <div class="field svelte-cliau1"><label class="label svelte-cliau1" for="password"></label> <input id="password" type="password" class="input svelte-cliau1" autocomplete="current-password"></div></div> <!> <button class="submit-btn svelte-cliau1"> </button></div>'),Ia=h('<div class="page svelte-cliau1"><!></div>');function Oa(B,H){X(H,!1);const[K,M]=ta(),F=()=>sa(va,"$theme",K);let c=n(""),v=n(""),p=n(""),u=n(!1),y=n(!0);Y(async()=>{try{if(await na()){ra("/setup");return}}catch{}i(y,!1)});async function C(){i(p,""),i(u,!0);try{const{token:a,user:s}=await ca({email:e(c),password:e(v)});oa.login(a,s),window.location.href="/"}catch(a){i(p,a.message||ha)}finally{i(u,!1)}}function S(a){a.key==="Enter"&&C()}Q();var d=Ia();J(a=>{aa.title=pa});var W=r(d);{var j=a=>{var s=La();s.textContent=ua,b(a,s)},q=a=>{var s=ga(),k=l(r(s),2);k.textContent=da;var x=l(k,2);x.textContent=ma;var L=l(x,2),E=r(L),N=r(E);N.textContent=la;var m=l(N,2);T(m),A(m,"placeholder",_a),o(E);var P=l(E,2),$=r(P);$.textContent=ia;var _=l($,2);T(_),A(_,"placeholder",fa),o(P),o(L);var G=l(L,2);{var U=t=>{var g=Ea(),z=r(g,!0);o(g),w(()=>O(z,e(p))),b(t,g)};R(G,t=>{e(p)&&t(U)})}var f=l(G,2),V=r(f,!0);o(f),o(s),w(t=>{f.disabled=e(u)||!e(c)||!e(v),O(V,t)},[()=>ba(e(u))],ea),D(m,()=>e(c),t=>i(c,t)),I("keydown",m,S),D(_,()=>e(v),t=>i(v,t)),I("keydown",_,S),I("click",f,C),b(a,s)};R(W,a=>{e(y)?a(j):a(q,!1)})}o(d),w(()=>A(d,"data-theme",F())),b(B,d),Z(),M()}export{Oa 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 st,a as _,b as ie,s as x,t as T,e as H}from"../chunks/6VDMVB5U.js";import{i as lt}from"../chunks/CtgCYzu5.js";import{p as rt,o as it,s as n,l as M,b as nt,f as ne,t as S,c as ot,m as d,g as e,z as vt,$ as dt,x as w,y as ct,d as i,n as J,j as o,k as l}from"../chunks/BIf7lHIm.js";import{i as A,s as gt,a as pt}from"../chunks/D_thT6pZ.js";import{a as _t,b as ut,t as b,e as Ee,i as we}from"../chunks/BTV7EXZb.js";import{o as V,s as j,r as Te,B as ft,q as $e}from"../chunks/C4Z3p6jE.js";import{H as xt,f as Pe,L as ht,d as mt,r as St,a as bt,b as jt,c as yt,e as Et,D as ke,P as wt,R as Tt,t as $t,T as Pt,p as kt,g as Lt,N as Ct,S as Rt,h as At,i as Dt,j as It,k as Mt}from"../chunks/pNZogwkM.js";import{a as Nt}from"../chunks/htkwR9b-.js";import{s as Le,t as Bt,i as Ot,a as Gt}from"../chunks/B2lVGNml.js";import{B as Ce}from"../chunks/DeiVAbyn.js";import{P as Ht}from"../chunks/prk8PJfA.js";import{C as Vt}from"../chunks/BWGoOYU0.js";import{E as zt}from"../chunks/CNpD-yNH.js";var qt=T('<div class="legacy-notice svelte-1xtj9lg"><p class="svelte-1xtj9lg"></p> <button class="legacy-notice-dismiss svelte-1xtj9lg"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg></button></div>'),Wt=T('<div class="rate-display svelte-1xtj9lg"><span class="rate-number svelte-1xtj9lg"> </span> <span class="rate-label svelte-1xtj9lg"></span></div>'),Ft=T('<span class="trend-dot svelte-1xtj9lg"></span>'),Ut=T('<div class="stats-bar svelte-1xtj9lg"><div class="pass-bar-track svelte-1xtj9lg"><div class="pass-bar-fill svelte-1xtj9lg"></div></div> <div class="bar-legend svelte-1xtj9lg"><span class="legend-pass svelte-1xtj9lg"> </span> <span class="legend-fail svelte-1xtj9lg"> </span></div></div> <div class="trend-row svelte-1xtj9lg"><span class="trend-label svelte-1xtj9lg"></span> <div class="trend-dots svelte-1xtj9lg"></div> <span class="trend-hint svelte-1xtj9lg"></span></div>',1),Yt=T('<button class="btn-delete-selected svelte-1xtj9lg"> </button>'),Jt=T('<div class="report-row svelte-1xtj9lg"><label class="row-check-wrap svelte-1xtj9lg"><input type="checkbox" class="checkbox svelte-1xtj9lg"></label> <a class="report-item svelte-1xtj9lg"><div class="item-left svelte-1xtj9lg"><span class="status-mark svelte-1xtj9lg"> </span> <div class="item-meta svelte-1xtj9lg"><span class="item-tags svelte-1xtj9lg"> </span> <div class="item-badges svelte-1xtj9lg"><!> <!></div></div></div> <div class="item-right svelte-1xtj9lg"><span class="item-date svelte-1xtj9lg"> </span> <svg class="item-arrow svelte-1xtj9lg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><line x1="5" y1="12" x2="19" y2="12"></line><polyline points="12 5 19 12 12 19"></polyline></svg></div></a> <button class="row-delete-btn svelte-1xtj9lg"><svg width="14" height="14" 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 14H6L5 6"></path><path d="M10 11v6M14 11v6"></path><path d="M9 6V4h6v2"></path></svg></button></div>'),Kt=T('<div class="pagination-wrap svelte-1xtj9lg"><!></div>'),Qt=T('<div class="list-header svelte-1xtj9lg"><label class="select-all-wrap svelte-1xtj9lg"><input type="checkbox" class="checkbox svelte-1xtj9lg"></label> <!></div> <div class="report-list svelte-1xtj9lg"></div> <!>',1),Xt=T('<!> <!> <div class="page-header svelte-1xtj9lg"><div class="header-top svelte-1xtj9lg"><div><h1 class="svelte-1xtj9lg"></h1> <p class="subtitle svelte-1xtj9lg"> </p></div> <!></div> <!></div> <!>',1);function ga(Re,Ae){rt(Ae,!1);const[De,Ie]=gt(),oe=()=>pt(Nt,"$reportsVersion",De),K=d(),L=d(),ve=d(),z=d(),Q=d();let C=d([]),h=d(0),q=d(0),de=d(0),X=d([]),D=d(1),ce=d(!1),c=d(new Set),m=d({open:!1,targets:[]}),Z=d(!1),W=d(!1);async function F(){try{let t=await Pe({page:e(D),limit:V});t.reports.length===0&&e(D)>1&&(n(D,Math.max(1,Math.ceil(t.total/V))),t=await Pe({page:e(D),limit:V})),n(C,t.reports),n(h,t.total),n(q,t.passCount),n(de,t.failCount),n(X,t.trend),n(c,new Set),await vt(),n(ce,!0)}catch(t){console.error("Failed to fetch reports",t)}}function Me(t){n(D,t),F()}it(()=>{F();try{n(W,localStorage.getItem("plum:legacyScreenshotsNoticeDismissed")!=="true")}catch{n(W,!0)}});function Ne(){n(W,!1);try{localStorage.setItem("plum:legacyScreenshotsNoticeDismissed","true")}catch{}}function Be(t,r){r.preventDefault(),r.stopPropagation();const s=new Set(e(c));s.has(t)?s.delete(t):s.add(t),n(c,s)}function Oe(t){if(t.stopPropagation(),e(z)){const r=new Set(e(c));e(C).forEach(s=>r.delete(s.id)),n(c,r)}else{const r=new Set(e(c));e(C).forEach(s=>r.add(s.id)),n(c,r)}}function ge(t){n(m,{open:!0,targets:t})}function Ge(t,r){r.preventDefault(),r.stopPropagation(),ge([t])}async function He(){n(Z,!0);try{e(m).targets.length===1?await bt(e(m).targets[0]):await jt([...e(m).targets]),n(m,{open:!1,targets:[]}),await F()}catch(t){console.error("Delete failed",t)}finally{n(Z,!1)}}M(()=>(e(h),V),()=>{n(K,Math.ceil(e(h)/V))}),M(()=>(e(h),e(q)),()=>{n(L,e(h)?Math.round(e(q)/e(h)*100):0)}),M(()=>e(X),()=>{n(ve,[...e(X)].reverse())}),M(()=>(e(C),e(c)),()=>{n(z,e(C).length>0&&e(C).every(t=>e(c).has(t.id)))}),M(()=>e(c),()=>{n(Q,e(c).size>0)}),M(()=>oe(),()=>{oe()&&F()}),nt(),lt();var pe=Xt();st(t=>{dt.title=ht});var _e=ne(pe);const Ve=w(()=>yt(e(m).targets.length));Vt(_e,{get title(){return e(Ve)},get loading(){return e(Z)},get open(){return e(m).open},set open(t){ct(m,e(m).open=t)},$$events:{confirm:He},children:(t,r)=>{J();var s=ie();S(v=>x(s,v),[()=>mt(e(m).targets.length)],w),_(t,s)},$$slots:{default:!0},$$legacy:!0});var ue=o(_e,2);{var ze=t=>{var r=qt(),s=i(r);s.textContent=Et;var v=o(s,2);j(v,"title",ke),j(v,"aria-label",ke),l(r),H("click",v,Ne),_t(3,r,()=>ut,()=>({duration:200})),_(t,r)};A(ue,t=>{e(W)&&t(ze)})}var ee=o(ue,2),te=i(ee),ae=i(te),fe=i(ae);fe.textContent=xt;var xe=o(fe,2),qe=i(xe,!0);l(xe),l(ae);var We=o(ae,2);{var Fe=t=>{var r=Wt(),s=i(r),v=i(s);l(s);var $=o(s,2);$.textContent=wt,l(r),S(()=>{b(s,"pass",e(L)>=80),b(s,"warn",e(L)<80&&e(L)>=50),b(s,"fail",e(L)<50),x(v,`${e(L)??""}%`)}),_(t,r)};A(We,t=>{e(h)>0&&t(Fe)})}l(te);var Ue=o(te,2);{var Ye=t=>{var r=Ut(),s=ne(r),v=i(s),$=i(v);l(v);var U=o(v,2),N=i(U),B=i(N,!0);l(N);var Y=o(N,2),se=i(Y,!0);l(Y),l(U),l(s);var p=o(s,2),a=i(p);a.textContent=Tt;var y=o(a,2);Ee(y,5,()=>e(ve),we,(P,f,k)=>{var E=Ft();S((R,le)=>{j(E,"style",R),j(E,"title",le),b(E,"pass",e(f).status==="PASS"),b(E,"fail",e(f).status!=="PASS")},[()=>Le(k,35),()=>$t(e(f).status,e(f).tags,e(f).date)],w),_(P,E)}),l(y);var u=o(y,2);u.textContent=Pt,l(p),S((P,f)=>{j($,"style",`width: ${(e(ce)?e(L)+"%":"0")??""}`),x(B,P),x(se,f)},[()=>kt(e(q)),()=>Lt(e(de))],w),_(t,r)};A(Ue,t=>{e(h)>0&&t(Ye)})}l(ee);var Je=o(ee,2);{var Ke=t=>{zt(t,{message:Ct})},Qe=t=>{var r=Qt(),s=ne(r),v=i(s);j(v,"title",Rt);var $=i(v);Te($),l(v);var U=o(v,2);{var N=p=>{var a=Yt(),y=i(a,!0);l(a),S(u=>x(y,u),[()=>Mt(e(c).size)],w),H("click",a,()=>ge([...e(c)])),_(p,a)};A(U,p=>{e(Q)&&p(N)})}l(s);var B=o(s,2);Ee(B,5,()=>e(C),we,(p,a,y)=>{var u=Jt(),P=i(u);j(P,"title",At);var f=i(P);Te(f),l(P);var k=o(P,2),E=i(k),R=i(E),le=i(R,!0);l(R);var he=o(R,2),re=i(he),Xe=i(re,!0);l(re);var me=o(re,2),Se=i(me);const Ze=w(()=>Gt(e(a).triggerType));Ce(Se,{get variant(){return e(Ze)},children:(g,O)=>{J();var G=ie();S(I=>x(G,I),[()=>Bt(e(a).triggerType)],w),_(g,G)},$$slots:{default:!0}});var et=o(Se,2);{var tt=g=>{Ce(g,{variant:"neutral",children:(O,G)=>{J();var I=ie();S(()=>x(I,e(a).browser)),_(O,I)},$$slots:{default:!0}})};A(et,g=>{e(a).browser&&e(a).browser!==ft[0].id&&g(tt)})}l(me),l(he),l(E);var be=o(E,2),je=i(be),at=i(je,!0);l(je),J(2),l(be),l(k);var ye=o(k,2);j(ye,"title",Dt),l(u),S((g,O,G,I)=>{j(u,"style",g),b(u,"is-selected",O),$e(f,O),j(k,"href",G),b(k,"is-pass",e(a).status==="PASS"),b(k,"is-fail",e(a).status!=="PASS"),b(R,"pass",e(a).status==="PASS"),b(R,"fail",e(a).status!=="PASS"),x(le,e(a).status==="PASS"?"✓":"✗"),x(Xe,I),x(at,e(a).date)},[()=>Le(y),()=>e(c).has(e(a).id),()=>It(e(a).id),()=>{var g;return((g=e(a).testRun)==null?void 0:g.title)??(Ot(e(a).triggerType)?e(a).triggerType:e(a).tags)}],w),H("change",f,g=>Be(e(a).id,g)),H("click",ye,g=>Ge(e(a).id,g)),_(p,u)}),l(B);var Y=o(B,2);{var se=p=>{var a=Kt(),y=i(a);Ht(y,{get current(){return e(D)},get total(){return e(K)},$$events:{change:u=>Me(u.detail)}}),l(a),_(p,a)};A(Y,p=>{e(K)>1&&p(se)})}S(()=>{$e($,e(z)),$.indeterminate=e(Q)&&!e(z)}),H("change",$,Oe),_(t,r)};A(Je,t=>{e(h)===0?t(Ke):t(Qe,!1)})}S(t=>x(qe,t),[()=>St(e(h))],w),_(Re,pe),ot(),Ie()}export{ga as component};
@@ -0,0 +1,10 @@
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{i as Ta,j as xs,a as v,t as c,s as m,b as Kt,c as _t,n as Ct,e as ae,h as ys}from"../chunks/6VDMVB5U.js";import{i as nt}from"../chunks/CtgCYzu5.js";import{Z as ks,h as La,_ as Ca,a6 as bs,a8 as Ia,aI as qs,aX as Es,aW as Rs,a3 as Ts,av as Ls,aG as Cs,t as q,d as s,k as a,p as it,l as te,s as o,aj as Zt,b as It,g as e,c as lt,m as x,f as xe,A as Fa,j as r,x as X,o as Va,ao as Is,B as _a,z as As,$ as Bs,n as Ss}from"../chunks/BIf7lHIm.js";import{i as b,s as za,a as Wa}from"../chunks/D_thT6pZ.js";import{t as P,e as we,i as me,a as $s,b as Ms}from"../chunks/BTV7EXZb.js";import{s as z,e as Os,c as Ps,p as Aa,B as Ba}from"../chunks/C4Z3p6jE.js";import{s as Sa}from"../chunks/Bfc47y5P.js";import{b as Ds}from"../chunks/tsOANt55.js";import{p as Ns}from"../chunks/Dlymnwnf.js";import{U as js,X as Hs,Y as Fs,Z as Vs,_ as zs,$ as Ws,a0 as $a,a1 as Ma,a2 as Gs,a3 as Us,a4 as Ys,a5 as Ks,a6 as Zs,a7 as Js,a8 as Xs,a9 as Qs,aa as er,ab as tr,ac as ar,ad as sr,ae as rr,af as nr,m as ir,ag as lr,ah as or,ai as vr,aj as cr,ak as dr,z as pr,al as ur,am as fr,an as hr,ao as _r,ap as Oa,I as gr,J as wr,aq as mr,ar as xr,as as yr,at as kr,K as br}from"../chunks/pNZogwkM.js";import{k as qr,c as Er,p as Rr,g as Pa,f as Da,s as Na,b as Yt,d as Tr,t as Lr,i as Cr}from"../chunks/B2lVGNml.js";import{n as Lt}from"../chunks/BDb8hZHu.js";import{B as Ir}from"../chunks/DeiVAbyn.js";import{P as Ar,B as Br}from"../chunks/3MBVX4Yb.js";import{E as Sr}from"../chunks/zXSLr47H.js";import{p as U}from"../chunks/D72giPTu.js";import{b as ja}from"../chunks/BCh31ecr.js";import{r as $r,c as Mr,s as Or,a as Pr}from"../chunks/BtTNggoY.js";import{a as Dr}from"../chunks/DiexacSB.js";function Nr(I,_,f,h,y){var L=I,R="",E;ks(()=>{if(R===(R=_()??"")){La&&Ca();return}E!==void 0&&(Cs(E),E=void 0),R!==""&&(E=bs(()=>{if(La){Ia.data;for(var T=Ca(),A=T;T!==null&&(T.nodeType!==8||T.data!=="");)A=T,T=qs(T);if(T===null)throw Es(),Rs;Ta(Ia,A),L=Ts(T);return}var B=R+"",F=xs(B);Ta(Ls(F),F.lastChild),L.before(F)}))})}var jr=c('<span class="status-dot svelte-eg9xrn"></span>');function Ha(I,_){let f=U(_,"status",8,"passed");var h=jr();q(()=>{P(h,"pass",f()==="passed"),P(h,"fail",f()==="failed"),P(h,"skip",f()!=="passed"&&f()!=="failed")}),v(I,h)}var Hr=c('<span class="tag-chip svelte-foe7v9"> </span>');function Fr(I,_){let f=U(_,"tag",8,"");var h=Hr(),y=s(h,!0);a(h),q(()=>m(y,f())),v(I,h)}var Vr=c('<span class="kw svelte-3mvi7i"> </span>');function Ga(I,_){it(_,!1);const f=x();let h=U(_,"keyword",8,"");te(()=>Zt(h()),()=>{o(f,qr(h()))}),It(),nt();var y=Vr(),L=s(y,!0);a(y),q(()=>{P(y,"kw-given",e(f)==="kw-given"),P(y,"kw-when",e(f)==="kw-when"),P(y,"kw-then",e(f)==="kw-then"),P(y,"kw-and",e(f)==="kw-and"),m(L,h())}),v(I,y),lt()}var zr=c('<span class="step-status-icon svelte-9zpq1y"><!></span>');function Ua(I,_){let f=U(_,"status",8,"passed");var h=zr(),y=s(h);{var L=E=>{var T=Kt("✓");v(E,T)},R=E=>{var T=_t(),A=xe(T);{var B=$=>{var k=Kt("✗");v($,k)},F=$=>{var k=Kt("−");v($,k)};b(A,$=>{f()==="failed"?$(B):$(F,!1)},!0)}v(E,T)};b(y,E=>{f()==="passed"?E(L):E(R,!1)})}a(h),q(()=>{P(h,"icon-pass",f()==="passed"),P(h,"icon-fail",f()==="failed"),P(h,"icon-skip",f()!=="passed"&&f()!=="failed")}),v(I,h)}var Wr=Ct('<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M12 2c0 4.5-5 7-5 12a5 5 0 0 0 10 0c0-5-5-7.5-5-12z"></path><path d="M12 9c0 2.5-2.5 4-2.5 7a2.5 2.5 0 0 0 5 0c0-3-2.5-4.5-2.5-7z"></path></svg>'),Gr=Ct('<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><polygon points="12,5.5 14.5,12 12,10.5 9.5,12" fill="currentColor" stroke="none"></polygon><polygon points="12,18.5 9.5,12 12,13.5 14.5,12" fill="currentColor" stroke="none" opacity="0.35"></polygon></svg>'),Ur=Ct('<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"></circle><circle cx="12" cy="12" r="4"></circle><line x1="21.17" y1="8" x2="12" y2="8"></line><line x1="3.95" y1="6.06" x2="8.54" y2="14"></line><line x1="10.88" y1="21.94" x2="15.46" y2="14"></line></svg>');function Yr(I,_){let f=U(_,"browser",8,"chromium"),h=U(_,"size",8,11);var y=_t(),L=xe(y);{var R=T=>{var A=Wr();q(()=>{z(A,"width",h()),z(A,"height",h())}),v(T,A)},E=T=>{var A=_t(),B=xe(A);{var F=k=>{var g=Gr();q(()=>{z(g,"width",h()),z(g,"height",h())}),v(k,g)},$=k=>{var g=Ur();q(()=>{z(g,"width",h()),z(g,"height",h())}),v(k,g)};b(B,k=>{f()==="webkit"?k(F):k($,!1)},!0)}v(T,A)};b(L,T=>{f()==="firefox"?T(R):T(E,!1)})}v(I,y)}function Kr(I){return I.replace(/"/g,"&quot;")}function Zr(I){const _=I.tagName.toLowerCase(),f=Array.from(I.attributes??[]).map(R=>` ${R.name}="${Kr(R.value)}"`).join(""),h=I.children.length,y=h===0?(I.textContent??"").trim():"",L=h>0?`
7
+ <!-- ${h} child element${h===1?"":"s"} -->
8
+ `:y?`
9
+ ${y.slice(0,200)}
10
+ `:"";return`<${_}${f}>${L}</${_}>`}function Jr(I){const _=I.getBoundingClientRect();return{markup:Zr(I),attributes:Array.from(I.attributes??[]).map(f=>({name:f.name,value:f.value})),box:{width:Math.round(_.width),height:Math.round(_.height)}}}var Xr=c('<li><button class="rail-step svelte-q7af2t"><!> <span class="rail-step-text svelte-q7af2t"><!> <span> </span></span></button></li>'),Qr=c('<aside class="steps-rail svelte-q7af2t"><div class="steps-rail-header svelte-q7af2t"></div> <ol class="steps-list svelte-q7af2t"></ol></aside>');function en(I,_){it(_,!1);let f=U(_,"steps",24,()=>[]),h=U(_,"stepTimestamps",24,()=>[]),y=U(_,"currentStepIndex",24,()=>-1);const L=Fa();nt();var R=Qr(),E=s(R);E.textContent=js;var T=r(E,2);we(T,5,f,me,(A,B,F)=>{var $=Xr(),k=s($),g=s(k);Ua(g,{get status(){return e(B).status}});var ie=r(g,2),se=s(ie);Ga(se,{get keyword(){return e(B).keyword}});var Q=r(se,2),ce=s(Q,!0);a(Q),a(ie),a(k),a($),q(()=>{k.disabled=h()[F]===void 0,P(k,"rail-step-active",F===y()),m(ce,e(B).name)}),ae("click",k,()=>L("jump",F)),v(A,$)}),a(T),a(R),v(I,R),lt()}var tn=c('<div class="combined-timeline-tick svelte-5daecg"></div>'),an=c('<div class="combined-timeline svelte-5daecg"><span class="combined-timeline-time svelte-5daecg"> </span> <div class="combined-timeline-track svelte-5daecg"><div class="combined-timeline-fill svelte-5daecg"></div> <!> <div class="combined-timeline-handle svelte-5daecg"></div></div> <span class="combined-timeline-time svelte-5daecg"> </span></div>');function sn(I,_){it(_,!1);const f=x(),h=x();let y=U(_,"from",8,0),L=U(_,"to",8,0),R=U(_,"position",8,0),E=U(_,"stepTimestamps",24,()=>[]);const T=Fa();function A(w){return L()>y()?Math.min(100,Math.max(0,(w-y())/(L()-y())*100)):0}function B(w){if(w<=0)return"00:00";const j=Math.floor(w/1e3),re=Math.floor(j/60),Re=j%60;return`${String(re).padStart(2,"0")}:${String(Re).padStart(2,"0")}`}function F(w){const j=w.currentTarget.getBoundingClientRect(),re=Math.min(1,Math.max(0,(w.clientX-j.left)/j.width));T("seek",y()+re*(L()-y()))}te(()=>Zt(R()),()=>{o(f,A(R()))}),te(()=>Zt(E()),()=>{o(h,E().map(A))}),It(),nt();var $=an(),k=s($),g=s(k,!0);a(k);var ie=r(k,2),se=s(ie),Q=r(se,2);we(Q,1,()=>e(h),me,(w,j)=>{var re=tn();q(()=>z(re,"style",`left: ${e(j)??""}%`)),v(w,re)});var ce=r(Q,2);a(ie);var Z=r(ie,2),J=s(Z,!0);a(Z),a($),q((w,j)=>{m(g,w),z(se,"style",`width: ${e(f)??""}%`),z(ce,"style",`left: ${e(f)??""}%`),m(J,j)},[()=>B(R()-y()),()=>B(L()-y())],X),ae("click",ie,F),v(I,$),lt()}var rn=c('<pre class="code-viewer svelte-mer6ic"><code><!></code></pre>');function nn(I,_){it(_,!1);const f=x();let h=U(_,"code",8,"");function y(A){return A.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}function L(A){return y(A).replace(/(&lt;!--[\s\S]*?--&gt;)/g,'<span class="tok-comment">$1</span>').replace(/(&lt;\/?)([a-zA-Z][a-zA-Z0-9-]*)/g,'$1<span class="tok-tag">$2</span>').replace(/([a-zA-Z_:][a-zA-Z0-9_:.-]*)(=)(&quot;[^&]*&quot;)/g,'<span class="tok-attr">$1</span>$2<span class="tok-value">$3</span>')}te(()=>Zt(h()),()=>{o(f,L(h()))}),It(),nt();var R=rn(),E=s(R),T=s(E);Nr(T,()=>e(f)),a(E),a(R),v(I,R),lt()}var ln=c('<div class="inspector-attr-row svelte-mmh4st"><dt class="svelte-mmh4st"> </dt> <dd class="svelte-mmh4st"> </dd></div>'),on=c('<div class="inspector-section svelte-mmh4st"><span class="inspector-section-label svelte-mmh4st"></span></div> <dl class="inspector-attrs svelte-mmh4st"></dl>',1),vn=c('<!> <div class="inspector-section svelte-mmh4st"><span class="inspector-section-label svelte-mmh4st"></span> <span class="inspector-size svelte-mmh4st"> </span></div> <!>',1),cn=c('<div class="inspector-empty svelte-mmh4st"></div>'),dn=c('<aside class="inspector-panel svelte-mmh4st"><div class="inspector-header svelte-mmh4st"><svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 3l7.07 16.97 2.51-7.39 7.39-2.51L3 3z"></path></svg> </div> <!></aside>');function pn(I,_){it(_,!1);let f=U(_,"selectedElement",8,null);nt();var h=dn(),y=s(h),L=r(s(y));L.nodeValue=` ${Hs}`,a(y);var R=r(y,2);{var E=A=>{var B=vn(),F=xe(B);nn(F,{get code(){return f().markup}});var $=r(F,2),k=s($);k.textContent=Fs;var g=r(k,2),ie=s(g);a(g),a($);var se=r($,2);{var Q=ce=>{var Z=on(),J=xe(Z),w=s(J);w.textContent=zs,a(J);var j=r(J,2);we(j,5,()=>f().attributes,me,(re,Re)=>{var ne=ln(),ye=s(ne),Ge=s(ye,!0);a(ye);var ke=r(ye,2),ee=s(ke,!0);a(ke),a(ne),q(()=>{m(Ge,e(Re).name),m(ee,e(Re).value)}),v(re,ne)}),a(j),v(ce,Z)};b(se,ce=>{f().attributes.length>0&&ce(Q)})}q(()=>m(ie,`${f().box.width??""} × ${f().box.height??""}`)),v(A,B)},T=A=>{var B=cn();B.textContent=Vs,v(A,B)};b(R,A=>{f()?A(E):A(T,!1)})}a(h),v(I,h),lt()}var un=c('<div class="active-tab-badge svelte-xitf7u"> </div>'),fn=c('<div class="player-status svelte-xitf7u"><div class="loading-dots svelte-xitf7u"><span class="svelte-xitf7u"></span><span class="svelte-xitf7u"></span><span class="svelte-xitf7u"></span></div></div>'),hn=c('<div class="player-status svelte-xitf7u"></div>'),_n=c('<div class="inspect-highlight svelte-xitf7u"></div>'),gn=c('<button class="restart-overlay-btn svelte-xitf7u"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="1 4 1 10 7 10"></polyline><path d="M3.51 15a9 9 0 1 0 2.13-9.36L1 10"></path></svg></button>'),wn=c('<div class="download-menu svelte-xitf7u" role="menu"><button class="download-item svelte-xitf7u" role="menuitem"><span class="di-label svelte-xitf7u"></span> <span class="di-hint svelte-xitf7u"></span></button> <button class="download-item svelte-xitf7u" role="menuitem"><span class="di-label svelte-xitf7u"></span> <span class="di-hint svelte-xitf7u"></span></button></div>'),mn=c('<div class="recording-player svelte-xitf7u"><!> <div class="player-stage svelte-xitf7u"><div class="player-column svelte-xitf7u"><div class="player-mount svelte-xitf7u"></div> <!></div> <!> <!> <!> <!> <button class="inspect-fab svelte-xitf7u"><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="M3 3l7.07 16.97 2.51-7.39 7.39-2.51L3 3z"></path></svg></button> <div class="download-fab-wrap svelte-xitf7u"><button class="inspect-fab svelte-xitf7u" aria-haspopup="menu"><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="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><polyline points="7 10 12 15 17 10"></polyline><line x1="12" y1="15" x2="12" y2="3"></line></svg></button> <!></div></div> <!></div>');function xn(I,_){it(_,!1);const[f,h]=za(),y=()=>Wa($r,"$replayVideoJob",f),L=x(),R=x(),E=x(),T=x();let A=U(_,"reportId",8),B=U(_,"recordings",24,()=>[]),F=U(_,"steps",24,()=>[]),$=U(_,"scenarioName",8,""),k=U(_,"inspecting",12,!1);const g=480,ie=320,se=80,Q=150,ce=24;let Z=x(),J=x(),w=null,j=x(!0),re=x(!1),Re=x(null),ne=x(null),ye=null,Ge=null,ke=null,ee=x(-1),Te=x([]),Ue=x(new Map),Ie=new Map,N=x([]),de=x(0),je=0,ot=x(0),vt=null;function At(){const t=be();t&&!e(Le)&&o(ot,je+t.getCurrentTime()),vt=requestAnimationFrame(At)}function be(){var t;return(t=w==null?void 0:w.getReplayer)==null?void 0:t.call(w)}function p(t){const n=Ie.get(t==null?void 0:t.recordingId)??[];if(n.length===0)return{first:0,span:0};const d=n[0].timestamp,i=(t==null?void 0:t.to)??1/0;let l=d;for(const u of n){if(u.timestamp>i)break;l=u.timestamp}return{first:d,span:Math.max(0,l-d)}}function D(t){let n=-1;for(let d=0;d<e(Te).length&&!(e(Te)[d]>t);d++)n=d;return n}function pe(t,n,d){var H;let i=e(N).findIndex(W=>t>=W.from&&t<=W.to);if(i===-1&&(i=e(N).length-1),i<0)return;const{first:l,span:u}=p(e(N)[i]),S=Math.min(Math.max(0,t-l),u),C=((H=be())==null?void 0:H.config.speed)??1;i===e(de)&&t>=je?(Ze=Date.now()+Q,w==null||w.goto(t-je,n),d!==void 0&&o(ee,d),k()&&(ue(),Ae(),Ke())):(o(de,i),$e({finished:!1,timeOffset:S,paused:!n,speed:C,stepIndexOverride:d}))}function Ye(t){if(e(Te)[t]===void 0||!w)return;o(ee,t);let n=e(Te)[t+1];if(n===void 0){const{first:d,span:i}=p(e(N)[e(N).length-1]);n=d+Math.max(0,i-1)}n!==void 0&&pe(n,!1,t)}function Ae(){const t=be(),n=t==null?void 0:t.iframe,d=n==null?void 0:n.contentDocument;if(!n||!d)return;Ge=d;const i=C=>{const H=C.target;if(!H||H===d.documentElement){o(ne,null);return}const W=H.getBoundingClientRect(),le=n.getBoundingClientRect(),oe=e(Z).getBoundingClientRect(),Ee=le.width/(n.clientWidth||1),Y=le.height/(n.clientHeight||1);o(ne,{top:le.top+W.top*Y-oe.top,left:le.left+W.left*Ee-oe.left,width:W.width*Ee,height:W.height*Y})},l=C=>{C.preventDefault(),C.stopPropagation(),o(Re,Jr(C.target))},u=()=>{o(ne,null)},S=C=>{C.key==="Escape"&&Se()};d.addEventListener("mousemove",i),d.addEventListener("click",l,!0),d.addEventListener("mouseleave",u),d.addEventListener("keydown",S);try{d.documentElement.dataset.plumInspectWired="1"}catch{}ye=()=>{d.removeEventListener("mousemove",i),d.removeEventListener("click",l,!0),d.removeEventListener("mouseleave",u),d.removeEventListener("keydown",S),o(ne,null)}}function ue(){Ge=null,ye&&(ye(),ye=null)}function Be(){ke!==null&&(cancelAnimationFrame(ke),ke=null)}function qe(){var d,i,l;if(!k()){ke=null;return}const t=(i=(d=be())==null?void 0:d.iframe)==null?void 0:i.contentDocument,n=((l=t==null?void 0:t.documentElement)==null?void 0:l.dataset.plumInspectWired)==="1";t&&(t!==Ge||!n)&&(ue(),Ae()),ke=requestAnimationFrame(qe)}function Ke(){ke===null&&(ke=requestAnimationFrame(qe))}async function Se(){k(!k());const t=Ot();t&&k()&&(t.paused=!0),t&&(t.stepIndexOverride=e(ee)),k()||(ue(),Be()),await As(),$e(t)}function fe(){const t=be();t&&(t.service.state.matches("paused")?w.play():w.pause())}let He=x(!1),he=x(!1);function Bt(){return`report-${A()}${$()?"-"+$():""}`.replace(/[^a-z0-9]+/gi,"-").replace(/^-+|-+$/g,"").toLowerCase()}async function St(){if(o(he,!1),!e(He)){o(He,!0);try{const t=await Mr(be()),n=e(ee)>=0?`-step-${e(ee)+1}`:"";Dr(t,`${Bt()}${n}.png`),Lt("success",Xs)}catch{Lt("error",Qs)}finally{o(He,!1)}}}async function gt(){var l,u;if(o(he,!1),((l=y())==null?void 0:l.status)==="rendering")return;if(e(N).length>1){Lt("error",er);return}const t=be();if(!t)return;const n=Ie.get((u=e(N)[0])==null?void 0:u.recordingId)??[],d=n.length>1?n[n.length-1].timestamp-n[0].timestamp:0,i=Ot();await Or({replayer:t,durationMs:d,filename:`${Bt()}-replay.webm`}),$e(i)}function wt(t){if(t.key==="Escape"&&e(he)){o(he,!1);return}if(t.key==="Escape"&&k()){Se();return}t.key===" "&&!k()&&(t.preventDefault(),fe())}function Jt(t){e(he)&&!t.target.closest(".download-fab-wrap")&&o(he,!1)}let Le=x(!1),$t=x(""),ct=!1,Ze=0,Je=0;function Mt(){var t;return(t=e(J))==null?void 0:t.querySelector(".rr-controller__btns button")}function dt(t){if(!t)return;const n=t.getBoundingClientRect(),d=e(Z).getBoundingClientRect();o($t,`top: ${n.top-d.top}px; left: ${n.left-d.left}px; width: ${n.width}px; height: ${n.height}px;`)}function Xt(){const t=be(),n=Mt();if(!t||!n)return;const d=Je;t.on("finish",()=>{if(Je===d&&!(Date.now()<Ze)&&ct){if(e(de)<e(N).length-1){const i=t.config.speed;o(de,e(de)+1);const l=e(N)[e(de)],{first:u}=p(l),S=Math.max(0,l.from-u);$e({finished:!1,timeOffset:S,paused:!1,speed:i});return}dt(n),o(Le,!0),o(ot,e(E))}}),t.on("start",()=>{o(Le,!1),ct=!0}),t.on("resume",()=>{o(Le,!1),ct=!0}),t.on("pause",()=>{ct=!1})}function mt(){var t;if(o(Le,!1),e(de)!==0){const n=((t=be())==null?void 0:t.config.speed)??1;o(de,0),$e({finished:!1,timeOffset:0,paused:!1,speed:n})}else w==null||w.goto(0,!0)}function Ot(){const t=be();if(!t)return null;if(e(Le))return{finished:!0,speed:t.config.speed};const{first:n}=p(e(N)[e(de)]);return{finished:!1,timeOffset:je+t.getCurrentTime()-n,paused:t.service.state.matches("paused"),speed:t.config.speed}}function Pt(){if(ue(),w){try{w.$destroy()}catch{}w=null}}function $e(t=null){var _e,Ve;Je+=1;const n=e(Z).getBoundingClientRect(),d=Math.max(g,Math.floor(n.width)),i=Math.max(ie,Math.floor(n.height)-se-ce);if(w){try{w.$destroy()}catch{}w=null}e(J).replaceChildren();const l=e(N)[e(de)],u=Ie.get(l==null?void 0:l.recordingId)??[],S=(l==null?void 0:l.to)??1/0,C=u.filter(M=>M.timestamp<=S),H=((_e=u[0])==null?void 0:_e.timestamp)??0,W=t!=null&&t.finished?S:H+((t==null?void 0:t.timeOffset)??0);let le=0;for(let M=0;M<C.length&&!(C[M].timestamp>W);M++)C[M].type===2&&(le=M>0&&C[M-1].type===4?M-1:M);const oe=C.slice(le).filter(M=>M.type!==5||M.timestamp>=l.from),Ee=((Ve=oe[0])==null?void 0:Ve.timestamp)??H;je=Ee;const Y=Math.max(0,W-Ee);w=new Ar({target:e(J),props:{events:oe,autoPlay:!1,showController:!0,speedOption:[.5,1,2],speed:1,width:d,height:i}}),(t==null?void 0:t.stepIndexOverride)!==void 0?o(ee,t.stepIndexOverride):o(ee,D(W)),w.addEventListener("custom-event",M=>{var ge;((ge=M==null?void 0:M.data)==null?void 0:ge.tag)==="step"&&o(ee,e(ee)+1)}),Xt(),t?t.finished?(w.setSpeed(t.speed),Ze=Date.now()+Q,w.goto(Y,!1),o(Le,!0),o(ot,e(E)),requestAnimationFrame(()=>dt(Mt()))):(w.setSpeed(t.speed),t.paused&&(Ze=Date.now()+Q),w.goto(Y,!t.paused)):(requestAnimationFrame(()=>{if(!e(J))return;const M=Array.from(e(J).querySelectorAll(".rr-controller__btns button")).find(ge=>ge.textContent.trim()==="1x");M==null||M.click()}),w.play()),k()&&(ue(),Ae(),Ke())}Va(async()=>{o(Ue,new Map(B().map(i=>[i.id,i])));try{const i=await Promise.all(B().map(l=>Ws(A(),l.id)));B().forEach((l,u)=>Ie.set(l.id,i[u]??[]))}catch{o(re,!0),o(j,!1);return}if([...Ie.values()].every(i=>i.length===0)){o(re,!0),o(j,!1);return}const t=Er(B());o(N,t.length>0?t:B()[0]?[{recordingId:B()[0].id,from:0,to:0}]:[]);const n=B().find(i=>i.tabIndex===0)??B()[0],d=Ie.get(n==null?void 0:n.id)??[];o(Te,d.filter(i=>{var l;return i.type===5&&((l=i.data)==null?void 0:l.tag)==="step"}).map(i=>i.timestamp)),$e(),o(j,!1),vt=requestAnimationFrame(At)}),Is(()=>{var t;vt!==null&&cancelAnimationFrame(vt),((t=y())==null?void 0:t.status)==="rendering"&&Pr(),Be(),Pt()}),te(()=>(e(Ue),e(N),e(de)),()=>{var t;o(L,e(Ue).get((t=e(N)[e(de)])==null?void 0:t.recordingId))}),te(()=>e(N),()=>{var t;o(R,((t=e(N)[0])==null?void 0:t.from)??0)}),te(()=>e(N),()=>{var t;o(E,((t=e(N)[e(N).length-1])==null?void 0:t.to)??0)}),te(()=>y(),()=>{var t;o(T,((t=y())==null?void 0:t.status)==="rendering")}),It(),nt();var xt=mn();ae("keydown",_a,wt),ae("click",_a,Jt);var Dt=s(xt);{var Nt=t=>{en(t,{get steps(){return F()},get stepTimestamps(){return e(Te)},get currentStepIndex(){return e(ee)},$$events:{jump:n=>Ye(n.detail)}})};b(Dt,t=>{F().length>0&&t(Nt)})}var Fe=r(Dt,2),Xe=s(Fe),yt=s(Xe);ja(yt,t=>o(J,t),()=>e(J));var jt=r(yt,2);{var Qt=t=>{sn(t,{get from(){return e(R)},get to(){return e(E)},get position(){return e(ot)},get stepTimestamps(){return e(Te)},$$events:{seek:n=>pe(n.detail,!1)}})};b(jt,t=>{e(N).length>1&&t(Qt)})}a(Xe);var kt=r(Xe,2);{var ea=t=>{var n=un(),d=s(n,!0);a(n),q(i=>m(d,i),[()=>Gs(e(L).tabIndex)],X),v(t,n)};b(kt,t=>{e(N).length>1&&e(L)&&t(ea)})}var bt=r(kt,2);{var ta=t=>{var n=fn();v(t,n)},qt=t=>{var n=_t(),d=xe(n);{var i=l=>{var u=hn();u.textContent=tr,v(l,u)};b(d,l=>{e(re)&&l(i)},!0)}v(t,n)};b(bt,t=>{e(j)?t(ta):t(qt,!1)})}var pt=r(bt,2);{var aa=t=>{var n=_n();q(()=>z(n,"style",`top: ${e(ne).top??""}px; left: ${e(ne).left??""}px; width: ${e(ne).width??""}px; height: ${e(ne).height??""}px;`)),v(t,n)};b(pt,t=>{e(ne)&&t(aa)})}var Et=r(pt,2);{var sa=t=>{var n=gn();z(n,"aria-label",Us),q(()=>z(n,"style",e($t))),ae("click",n,mt),v(t,n)};b(Et,t=>{e(Le)&&t(sa)})}var Ce=r(Et,2);z(Ce,"title",$a),z(Ce,"aria-label",$a);var ut=r(Ce,2),Me=s(ut);z(Me,"title",Ma),z(Me,"aria-label",Ma);var Ht=r(Me,2);{var ra=t=>{var n=wn(),d=s(n),i=s(d);i.textContent=Ys;var l=r(i,2);l.textContent=Ks,a(d);var u=r(d,2),S=s(u);S.textContent=Zs;var C=r(S,2);C.textContent=Js,a(u),a(n),q(()=>{d.disabled=e(He),u.disabled=e(T)}),ae("click",d,St),ae("click",u,gt),v(t,n)};b(Ht,t=>{e(he)&&t(ra)})}a(ut),a(Fe),ja(Fe,t=>o(Z,t),()=>e(Z));var na=r(Fe,2);{var ia=t=>{pn(t,{get selectedElement(){return e(Re)}})};b(na,t=>{k()&&t(ia)})}a(xt),q(()=>{P(yt,"player-mount-multi",e(N).length>1),Ce.disabled=e(j)||e(re),P(Ce,"inspect-fab-active",k()),Me.disabled=e(j)||e(re),z(Me,"aria-expanded",e(he)),P(Me,"inspect-fab-active",e(he))}),ae("click",Ce,Se),ae("click",Me,()=>o(he,!e(he))),v(I,xt),lt(),h()}var yn=c('<div class="error-state svelte-1wrqiav"> </div>'),kn=c('<div class="loading-state svelte-1wrqiav"><div class="loading-dots svelte-1wrqiav"><span class="svelte-1wrqiav"></span><span class="svelte-1wrqiav"></span><span class="svelte-1wrqiav"></span></div></div>'),bn=Ct('<svg width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="svelte-1wrqiav"><polyline points="20 6 9 17 4 12" class="svelte-1wrqiav"></polyline></svg>'),qn=Ct('<svg width="26" height="26" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="svelte-1wrqiav"><line x1="18" y1="6" x2="6" y2="18" class="svelte-1wrqiav"></line><line x1="6" y1="6" x2="18" y2="18" class="svelte-1wrqiav"></line></svg>'),En=c('<span class="run-name-badge svelte-1wrqiav"> </span>'),Rn=c('<span class="run-name-badge svelte-1wrqiav"> </span>'),Tn=c('<div class="stat svelte-1wrqiav"><span class="stat-num fail-color svelte-1wrqiav"> </span> <span class="stat-label svelte-1wrqiav"><svg width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="svelte-1wrqiav"><line x1="18" y1="6" x2="6" y2="18" class="svelte-1wrqiav"></line><line x1="6" y1="6" x2="18" y2="18" class="svelte-1wrqiav"></line></svg> </span></div>'),Ln=c('<div class="stat svelte-1wrqiav"><span class="stat-num muted-color svelte-1wrqiav"> </span> <span class="stat-label svelte-1wrqiav"><svg width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" class="svelte-1wrqiav"><line x1="5" y1="12" x2="19" y2="12" class="svelte-1wrqiav"></line></svg> </span></div>'),Cn=c('<div class="stat svelte-1wrqiav"><span class="stat-num svelte-1wrqiav"> </span> <span class="stat-label svelte-1wrqiav"><svg width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-1wrqiav"><rect x="3" y="3" width="7" height="7" rx="1" class="svelte-1wrqiav"></rect><rect x="14" y="3" width="7" height="7" rx="1" class="svelte-1wrqiav"></rect><rect x="3" y="14" width="7" height="7" rx="1" class="svelte-1wrqiav"></rect><rect x="14" y="14" width="7" height="7" rx="1" class="svelte-1wrqiav"></rect></svg> </span></div>'),In=c('<span class="log-runner-count svelte-1wrqiav"> </span>'),An=c('<button class="log-tab svelte-1wrqiav"><svg width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" class="svelte-1wrqiav"><rect x="2" y="3" width="20" height="14" rx="2" class="svelte-1wrqiav"></rect><path d="M8 21h8M12 17v4" class="svelte-1wrqiav"></path></svg> </button>'),Bn=c('<div class="log-tabs svelte-1wrqiav"></div>'),Sn=c('<details class="logs-section svelte-1wrqiav"><summary class="logs-summary svelte-1wrqiav"><svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-1wrqiav"><polyline points="4 17 10 11 4 5" class="svelte-1wrqiav"></polyline><line x1="12" y1="19" x2="20" y2="19" class="svelte-1wrqiav"></line></svg> <!></summary> <!> <pre class="logs-body svelte-1wrqiav"> </pre></details>'),$n=c('<div class="group-header runner-group-header svelte-1wrqiav"><svg class="group-icon svelte-1wrqiav" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><rect x="2" y="3" width="20" height="14" rx="2" class="svelte-1wrqiav"></rect><path d="M8 21h8M12 17v4" class="svelte-1wrqiav"></path></svg> </div>'),Mn=c('<div class="group-header worker-group-header svelte-1wrqiav"><svg class="group-icon svelte-1wrqiav" width="11" height="11" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="3" width="7" height="7" rx="1" class="svelte-1wrqiav"></rect><rect x="14" y="3" width="7" height="7" rx="1" class="svelte-1wrqiav"></rect><rect x="3" y="14" width="7" height="7" rx="1" class="svelte-1wrqiav"></rect><rect x="14" y="14" width="7" height="7" rx="1" class="svelte-1wrqiav"></rect></svg> </div>'),On=c('<span class="suite-tag svelte-1wrqiav"> </span>'),Pn=c('<span class="scenario-count svelte-1wrqiav"> </span>'),Dn=c('<span class="scenario-count svelte-1wrqiav"> </span>'),Nn=c('<button class="replay-btn svelte-1wrqiav"><svg width="11" height="11" viewBox="0 0 24 24" fill="currentColor" stroke="none" class="svelte-1wrqiav"><polygon points="5,3 19,12 5,21" class="svelte-1wrqiav"></polygon></svg> </button>'),jn=c('<button class="replay-btn replay-btn-sm svelte-1wrqiav"><svg width="9" height="9" viewBox="0 0 24 24" fill="currentColor" stroke="none" class="svelte-1wrqiav"><polygon points="5,3 19,12 5,21" class="svelte-1wrqiav"></polygon></svg> </button>'),Hn=c('<div class="example-header svelte-1wrqiav"><!> <span class="svelte-1wrqiav"> </span> <span class="scenario-duration svelte-1wrqiav"> </span> <!></div>'),Fn=c('<pre class="step-error svelte-1wrqiav"> </pre>'),Vn=c('<td class="svelte-1wrqiav"> </td>'),zn=c('<tr class="svelte-1wrqiav"></tr>'),Wn=c('<table class="step-datatable svelte-1wrqiav"><tbody class="svelte-1wrqiav"></tbody></table>'),Gn=c('<div class="step svelte-1wrqiav"><div class="step-row svelte-1wrqiav"><!> <!> <span class="step-name svelte-1wrqiav"> </span> <span class="step-duration svelte-1wrqiav"> </span></div> <!> <!></div>'),Un=c("<!> <!>",1),Yn=c('<div class="steps svelte-1wrqiav"></div>'),Kn=c('<div class="scenario svelte-1wrqiav"><div class="scenario-row svelte-1wrqiav"><button class="scenario-header svelte-1wrqiav"><!> <span class="scenario-name svelte-1wrqiav"> <!> <!></span> <div class="scenario-tags svelte-1wrqiav"></div> <span class="scenario-duration svelte-1wrqiav"> </span> <svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" class="chevron svelte-1wrqiav"><polyline points="9 18 15 12 9 6" class="svelte-1wrqiav"></polyline></svg></button> <!></div> <!></div>'),Zn=c('<div class="feature svelte-1wrqiav"><div class="feature-header svelte-1wrqiav"><h2 class="feature-name svelte-1wrqiav"><svg width="13" height="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feature-icon svelte-1wrqiav"><path d="M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z" class="svelte-1wrqiav"></path><polyline points="14 2 14 8 20 8" class="svelte-1wrqiav"></polyline></svg> <!></h2> <div class="feature-right svelte-1wrqiav"><span class="feature-file svelte-1wrqiav"> </span> <!></div></div> <div class="scenarios svelte-1wrqiav"></div></div>'),Jn=c("<!> <!>",1),Xn=c("<!> <!>",1),Qn=c('<div class="report-header svelte-1wrqiav"><div class="header-main svelte-1wrqiav"><div class="header-status svelte-1wrqiav"><div class="status-icon-wrap svelte-1wrqiav"><!></div> <div class="svelte-1wrqiav"><div class="h1-row svelte-1wrqiav"><h1 class="svelte-1wrqiav"> </h1> <!></div> <div class="header-meta svelte-1wrqiav"><span class="mono svelte-1wrqiav"> </span> <span class="meta-sep svelte-1wrqiav">·</span> <span class="svelte-1wrqiav"> </span> <span class="meta-sep svelte-1wrqiav">·</span> <span class="svelte-1wrqiav"> </span> <span class="meta-sep svelte-1wrqiav">·</span> <span class="browser-pill svelte-1wrqiav"><!> </span></div></div></div> <div class="header-stats svelte-1wrqiav"><div class="stat svelte-1wrqiav"><span class="stat-num pass-color svelte-1wrqiav"> </span> <span class="stat-label svelte-1wrqiav"><svg width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round" class="svelte-1wrqiav"><polyline points="20 6 9 17 4 12" class="svelte-1wrqiav"></polyline></svg> </span></div> <!> <!> <div class="stat svelte-1wrqiav"><span class="stat-num svelte-1wrqiav"> </span> <span class="stat-label svelte-1wrqiav"><svg width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="svelte-1wrqiav"><circle cx="12" cy="12" r="10" class="svelte-1wrqiav"></circle><polyline points="12 6 12 12 16 14" class="svelte-1wrqiav"></polyline></svg> </span></div> <div class="stat svelte-1wrqiav"><span class="stat-num svelte-1wrqiav"> </span> <span class="stat-label svelte-1wrqiav"><svg width="10" height="10" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" class="svelte-1wrqiav"><rect x="2" y="3" width="20" height="14" rx="2" class="svelte-1wrqiav"></rect><path d="M8 21h8M12 17v4" class="svelte-1wrqiav"></path></svg> </span></div> <!></div></div></div> <!> <!>',1),ei=c('<div class="replay-overlay svelte-1wrqiav"><div class="replay-modal svelte-1wrqiav"><div class="replay-modal-header svelte-1wrqiav"><span class="replay-modal-title svelte-1wrqiav"> </span> <button class="replay-close svelte-1wrqiav"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" class="svelte-1wrqiav"><line x1="18" y1="6" x2="6" y2="18" class="svelte-1wrqiav"></line><line x1="6" y1="6" x2="18" y2="18" class="svelte-1wrqiav"></line></svg></button></div> <div class="replay-body svelte-1wrqiav"><!></div></div></div>'),ti=c('<div class="detail-top svelte-1wrqiav"><!> <!></div> <!> <!>',1);function ki(I,_){it(_,!1);const[f,h]=za(),y=()=>Wa(Ns,"$page",f),L=x(),R=x(),E=x(),T=x(),A=x(),B=x(),F=x(),$=x(),k=parseInt(y().params.id,10);let g=x(null),ie=x(null),se=x(new Set),Q=x([]),ce=x(!1),Z=x(null),J=x([]),w=x(!1),j=x(!1);async function re(p){o(j,!0);try{await or(k,p),Lt("success",Os("Report"))}catch{Lt("error",Ps("this report"))}finally{o(j,!1)}}function Re(p){return e(Q).some(D=>D.scenarioId===p.id)}function ne(p){o(Z,p),o(J,e(Q).filter(D=>D.scenarioId===p.id).sort((D,pe)=>D.tabIndex-pe.tabIndex)),o(ce,!0)}function ye(){o(ce,!1),o(Z,null),o(J,[])}function Ge(p){e(ce)&&p.key==="Escape"&&!e(w)&&ye()}Va(async()=>{try{o(g,await ar(k)),o(Q,await sr(k))}catch{o(ie,nr)}});function ke(p){e(se).has(p)?e(se).delete(p):e(se).add(p),o(se,e(se))}let ee=x(0);te(()=>e(g),()=>{var p;o(L,Rr(((p=e(g))==null?void 0:p.logs)??null))}),te(()=>e(L),()=>{e(L)&&o(ee,0)}),te(()=>e(g),()=>{var p;o(R,((p=e(g))==null?void 0:p.status)==="PASS")}),te(()=>e(g),()=>{var p;o(E,((p=e(g))==null?void 0:p.features.flatMap(D=>D.scenarios))??[])}),te(()=>e(E),()=>{o(T,e(E).filter(p=>p.status==="passed").length)}),te(()=>e(E),()=>{o(A,e(E).filter(p=>p.status==="failed").length)}),te(()=>e(E),()=>{o(B,e(E).filter(p=>p.status==="skipped"||p.status==="pending").length)}),te(()=>(e(g),e(E)),()=>{var p;o(F,((p=e(g))==null?void 0:p.duration)??e(E).reduce((D,pe)=>D+pe.duration,0))}),te(()=>(e(g),e(Q),Pa),()=>{o($,e(g)&&e(Q)?Pa(e(g).features):[])}),It(),nt();var Te=ti();ae("keydown",_a,Ge),ys(p=>{Bs.title=rr});var Ue=xe(Te),Ie=s(Ue);Br(Ie,{href:"/reports",label:ir});var N=r(Ie,2);{var de=p=>{Sr(p,{items:lr,get busy(){return e(j)},$$events:{select:D=>re(D.detail)}})};b(N,p=>{e(g)&&p(de)})}a(Ue);var je=r(Ue,2);{var ot=p=>{var D=yn(),pe=s(D,!0);a(D),q(()=>m(pe,e(ie))),v(p,D)},vt=p=>{var D=_t(),pe=xe(D);{var Ye=ue=>{var Be=kn();v(ue,Be)},Ae=ue=>{var Be=Qn(),qe=xe(Be),Ke=s(qe),Se=s(Ke),fe=s(Se),He=s(fe);{var he=i=>{var l=bn();v(i,l)},Bt=i=>{var l=qn();v(i,l)};b(He,i=>{e(R)?i(he):i(Bt,!1)})}a(fe);var St=r(fe,2),gt=s(St),wt=s(gt),Jt=s(wt,!0);a(wt);var Le=r(wt,2);{var $t=i=>{var l=En(),u=s(l,!0);a(l),q(()=>m(u,e(g).testRun.title)),v(i,l)},ct=i=>{var l=_t(),u=xe(l);{var S=C=>{var H=Rn(),W=s(H,!0);a(H),q(()=>m(W,e(g).triggerType)),v(C,H)};b(u,C=>{Cr(e(g).triggerType)&&C(S)},!0)}v(i,l)};b(Le,i=>{var l;(l=e(g).testRun)!=null&&l.title?i($t):i(ct,!1)})}a(gt);var Ze=r(gt,2),Je=s(Ze),Mt=s(Je,!0);a(Je);var dt=r(Je,4),Xt=s(dt,!0);a(dt);var mt=r(dt,4),Ot=s(mt,!0);a(mt);var Pt=r(mt,4),$e=s(Pt);const xt=X(()=>e(g).browser??Ba[0].id);Yr($e,{get browser(){return e(xt)}});var Dt=r($e);a(Pt),a(Ze),a(St),a(Se);var Nt=r(Se,2),Fe=s(Nt),Xe=s(Fe),yt=s(Xe,!0);a(Xe);var jt=r(Xe,2),Qt=r(s(jt));Qt.nodeValue=` ${vr}`,a(jt),a(Fe);var kt=r(Fe,2);{var ea=i=>{var l=Tn(),u=s(l),S=s(u,!0);a(u);var C=r(u,2),H=r(s(C));H.nodeValue=` ${mr}`,a(C),a(l),q(()=>m(S,e(A))),v(i,l)};b(kt,i=>{e(A)>0&&i(ea)})}var bt=r(kt,2);{var ta=i=>{var l=Ln(),u=s(l),S=s(u,!0);a(u);var C=r(u,2),H=r(s(C));H.nodeValue=` ${xr}`,a(C),a(l),q(()=>m(S,e(B))),v(i,l)};b(bt,i=>{e(B)>0&&i(ta)})}var qt=r(bt,2),pt=s(qt),aa=s(pt,!0);a(pt);var Et=r(pt,2),sa=r(s(Et));sa.nodeValue=` ${cr}`,a(Et),a(qt);var Ce=r(qt,2),ut=s(Ce),Me=s(ut,!0);a(ut);var Ht=r(ut,2),ra=r(s(Ht));a(Ht),a(Ce);var na=r(Ce,2);{var ia=i=>{var l=Cn(),u=s(l),S=s(u,!0);a(u);var C=r(u,2),H=r(s(C));a(C),a(l),q(W=>{m(S,e(g).workerCount),m(H,` ${W??""}`)},[()=>Aa(e(g).workerCount,"worker")],X),v(i,l)};b(na,i=>{e(g).workerCount>1&&i(ia)})}a(Nt),a(Ke),a(qe);var t=r(qe,2);{var n=i=>{var l=Sn(),u=s(l),S=r(s(u));S.nodeValue=` ${yr} `;var C=r(S);{var H=Y=>{var _e=In(),Ve=s(_e,!0);a(_e),q(M=>m(Ve,M),[()=>br(e(L).length)],X),v(Y,_e)};b(C,Y=>{e(L).length>1&&Y(H)})}a(u);var W=r(u,2);{var le=Y=>{var _e=Bn();we(_e,5,()=>e(L),me,(Ve,M,ge)=>{var G=An(),Qe=r(s(G));a(G),q(()=>{P(G,"log-tab-active",e(ee)===ge),m(Qe,` ${e(M).name??""}`)}),ae("click",G,Sa(()=>o(ee,ge))),v(Ve,G)}),a(_e),v(Y,_e)};b(W,Y=>{e(L).length>1&&Y(le)})}var oe=r(W,2),Ee=s(oe,!0);a(oe),a(l),q(()=>{var Y;return m(Ee,((Y=e(L)[e(ee)])==null?void 0:Y.content)??"")}),v(i,l)};b(t,i=>{e(L).length>0&&i(n)})}var d=r(t,2);we(d,1,()=>e($),me,(i,l,u)=>{var S=Xn(),C=xe(S);{var H=le=>{var oe=$n(),Ee=r(s(oe));a(oe),q(()=>m(Ee,` ${e(l).runnerName??dr??""}`)),v(le,oe)};b(C,le=>{e($).length>1&&le(H)})}var W=r(C,2);we(W,1,()=>e(l).workers,me,(le,oe,Ee)=>{var Y=Jn(),_e=xe(Y);{var Ve=ge=>{var G=Mn(),Qe=r(s(G));a(G),q(ze=>m(Qe,` ${ze??""}`),[()=>pr(e(oe).workerId)],X),v(ge,G)};b(_e,ge=>{e(l).workers.length>1&&ge(Ve)})}var M=r(_e,2);we(M,1,()=>e(oe).features,me,(ge,G,Qe)=>{var ze=Zn(),la=s(ze),oa=s(la),ga=r(s(oa)),Ya=r(ga);{var Ka=Oe=>{var V=On(),ft=s(V,!0);a(V),q(et=>m(ft,et),[()=>Da(e(G))],X),v(Oe,V)};b(Ya,Oe=>{Da(e(G))&&Oe(Ka)})}a(oa);var wa=r(oa,2),Ft=s(wa),Za=s(Ft,!0);a(Ft);var Ja=r(Ft,2);const Xa=X(()=>e(G).status==="passed"?"pass":"fail");Ir(Ja,{get variant(){return e(Xa)},children:(Oe,V)=>{Ss();var ft=Kt();q(()=>m(ft,e(G).status)),v(Oe,ft)},$$slots:{default:!0}}),a(wa),a(la);var ma=r(la,2);we(ma,5,()=>e(G).scenarioGroups,me,(Oe,V,ft)=>{var et=Kn();const xa=X(()=>`${u}-${Ee}-${Qe}-${e(V).key}`),ya=X(()=>e(se).has(e(xa))),Qa=X(()=>e(V).scenarios.some(Re));var va=s(et),Vt=s(va),ka=s(Vt);Ha(ka,{get status(){return e(V).status}});var ca=r(ka,2),ba=s(ca),qa=r(ba);{var es=K=>{var O=Pn(),tt=s(O,!0);a(O),q(Pe=>m(tt,Pe),[()=>ur(e(V).scenarios.length)],X),v(K,O)};b(qa,K=>{e(V).scenarios.length>1&&K(es)})}var ts=r(qa,2);{var as=K=>{var O=Dn();z(O,"title",fr);var tt=s(O,!0);a(O),q(Pe=>m(tt,Pe),[()=>hr(e(V).scenarios[0].attempts)],X),v(K,O)};b(ts,K=>{var O;((O=e(V).scenarios[0])==null?void 0:O.attempts)>1&&K(as)})}a(ca);var da=r(ca,2);we(da,5,()=>e(V).tags,me,(K,O)=>{Fr(K,{get tag(){return e(O)}})}),a(da);var pa=r(da,2),ss=s(pa,!0);a(pa);var rs=r(pa,2);a(Vt);var ns=r(Vt,2);{var is=K=>{var O=Nn();z(O,"title",_r);var tt=r(s(O));tt.nodeValue=` ${Oa}`,a(O),ae("click",O,()=>ne(e(V).scenarios[0])),v(K,O)};b(ns,K=>{e(Qa)&&e(V).scenarios.length===1&&K(is)})}a(va);var ls=r(va,2);{var os=K=>{var O=Yn();we(O,5,()=>e(V).scenarios,me,(tt,Pe,vs)=>{var Ea=Un(),Ra=xe(Ea);{var cs=Rt=>{var ve=Hn(),We=s(ve);Ha(We,{get status(){return e(Pe).status}});var at=r(We,2),zt=s(at,!0);a(at);var ht=r(at,2),Tt=s(ht,!0);a(ht);var ua=r(ht,2);{var Wt=st=>{var De=jn(),fa=r(s(De));fa.nodeValue=` ${Oa}`,a(De),ae("click",De,()=>ne(e(Pe))),v(st,De)};b(ua,st=>{Re(e(Pe))&&st(Wt)})}a(ve),q((st,De)=>{m(zt,st),m(Tt,De)},[()=>kr(vs+1),()=>Yt(e(Pe).duration)],X),v(Rt,ve)};b(Ra,Rt=>{e(V).scenarios.length>1&&Rt(cs)})}var ds=r(Ra,2);we(ds,1,()=>e(Pe).steps,me,(Rt,ve)=>{var We=Gn(),at=s(We),zt=s(at);Ua(zt,{get status(){return e(ve).status}});var ht=r(zt,2);Ga(ht,{get keyword(){return e(ve).keyword}});var Tt=r(ht,2),ua=s(Tt,!0);a(Tt);var Wt=r(Tt,2),st=s(Wt,!0);a(Wt),a(at);var De=r(at,2);{var fa=Ne=>{var rt=Fn(),Gt=s(rt,!0);a(rt),q(()=>m(Gt,e(ve).error)),v(Ne,rt)};b(De,Ne=>{e(ve).error&&Ne(fa)})}var ps=r(De,2);{var us=Ne=>{var rt=Wn(),Gt=s(rt);we(Gt,5,()=>e(ve).dataTable,me,(fs,hs,_s,ai)=>{var Ut=zn();P(Ut,"step-datatable-header",_s===0),we(Ut,5,()=>e(hs),me,(gs,ws)=>{var ha=Vn(),ms=s(ha,!0);a(ha),q(()=>m(ms,e(ws))),v(gs,ha)}),a(Ut),v(fs,Ut)}),a(Gt),a(rt),v(Ne,rt)};b(ps,Ne=>{e(ve).dataTable&&Ne(us)})}a(We),q(Ne=>{P(We,"step-fail",e(ve).status==="failed"),P(We,"step-skip",e(ve).status==="skipped"||e(ve).status==="pending"),m(ua,e(ve).name),m(st,Ne)},[()=>Yt(e(ve).duration)],X),v(Rt,We)}),v(tt,Ea)}),a(O),$s(3,O,()=>Ms,()=>({duration:200})),v(K,O)};b(ls,K=>{e(ya)&&K(os)})}a(et),q((K,O)=>{z(et,"style",K),P(et,"scenario-fail",e(V).status==="failed"),m(ba,`${e(V).name??""} `),m(ss,O),P(rs,"rotated",e(ya))},[()=>Na(Qe*5+ft,40),()=>Yt(e(V).duration)],X),ae("click",Vt,()=>ke(e(xa))),v(Oe,et)}),a(ma),a(ze),q((Oe,V)=>{z(ze,"style",Oe),P(ze,"feature-pass",e(G).status==="passed"),P(ze,"feature-fail",e(G).status!=="passed"),m(ga,` ${e(G).name??""} `),z(Ft,"title",e(G).uri),m(Za,V)},[()=>Na(Qe,60),()=>Tr(e(G).uri)],X),v(ge,ze)}),v(le,Y)}),v(i,S)}),q((i,l,u,S)=>{P(qe,"pass",e(R)),P(qe,"fail",!e(R)),P(fe,"pass-bg",e(R)),P(fe,"fail-bg",!e(R)),m(Jt,e(R)?gr:wr),m(Mt,e(g).tags),m(Xt,i),m(Ot,l),m(Dt,` ${e(g).browser??Ba[0].id??""}`),m(yt,e(T)),m(aa,u),m(Me,e(g).runnerCount),m(ra,` ${S??""}`)},[()=>Lr(e(g).triggerType),()=>new Date(e(g).createdAt).toLocaleString(),()=>Yt(e(F)),()=>Aa(e(g).runnerCount,"runner")],X),v(ue,Be)};b(pe,ue=>{e(g)?ue(Ae,!1):ue(Ye)},!0)}v(p,D)};b(je,p=>{e(ie)?p(ot):p(vt,!1)})}var At=r(je,2);{var be=p=>{var D=ei(),pe=s(D),Ye=s(pe),Ae=s(Ye),ue=s(Ae,!0);a(Ae);var Be=r(Ae,2);a(Ye);var qe=r(Ye,2),Ke=s(qe);{var Se=fe=>{xn(fe,{reportId:k,get recordings(){return e(J)},get steps(){return e(Z).steps},get scenarioName(){return e(Z).name},get inspecting(){return e(w)},set inspecting(He){o(w,He)},$$legacy:!0})};b(Ke,fe=>{e(J).length>0&&fe(Se)})}a(qe),a(pe),a(D),q(()=>m(ue,e(Z).name)),ae("click",Be,ye),ae("click",pe,Sa(function(fe){Ds.call(this,_,fe)})),ae("click",D,ye),v(p,D)};b(At,p=>{e(ce)&&e(Z)&&p(be)})}v(I,Te),lt(),h()}export{ki 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 wt,a as f,s as g,e as K,t as x,b as Z,c as Ot}from"../chunks/6VDMVB5U.js";import{i as Dt}from"../chunks/CtgCYzu5.js";import{p as Ut,o as Bt,s as v,f as Ke,c as Pt,m as U,$ as Ht,t as R,x as M,g as e,y as W,d as n,j as t,k as a,v as Mt,n as xe}from"../chunks/BIf7lHIm.js";import{i as J,s as Wt,a as Jt}from"../chunks/D_thT6pZ.js";import{e as qe,i as ze,t as Ce}from"../chunks/BTV7EXZb.js";import{A as Se,s as q,z as mt,y as z,q as pt,g as Gt,B as Pe,r as de,I as Ft,J as Vt,K as Kt,D as qt}from"../chunks/C4Z3p6jE.js";import{b as rt,a as bt}from"../chunks/BnXsGCy3.js";import{B as Xe,b as zt}from"../chunks/qvxlSGpD.js";import{p as Xt}from"../chunks/Bfc47y5P.js";import{f as Qt,a as Yt}from"../chunks/kFFd6Oo5.js";import{f as Zt,c as jt}from"../chunks/htkwR9b-.js";import{s as es}from"../chunks/B2lVGNml.js";import{B as ts}from"../chunks/DeiVAbyn.js";import{M as ss}from"../chunks/CUPWZLIN.js";import{C as as}from"../chunks/BWGoOYU0.js";import{n as fe}from"../chunks/BDb8hZHu.js";import{E as ns}from"../chunks/CNpD-yNH.js";async function lt(){const c=await fetch(`${Se}/cron-jobs`),{cronJobs:C}=await c.json();return C??[]}async function rs({taskName:c,cronExpression:C,tags:X,workers:Q,browser:w,runnerIds:I,notifyDiscord:S,notifySlack:B,isEditing:h,editTaskName:k}){const p=X.replace(/\sOR\s/gi,j=>j.toLowerCase()),P=h?`${Se}/cron-jobs/${encodeURIComponent(k)}`:`${Se}/cron-jobs`;return(await fetch(P,{method:h?"PUT":"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cronExpression:C,taskName:c,tags:p,workers:Q,browser:w,runnerIds:I,notifyDiscord:S??!1,notifySlack:B??!1})})).json()}async function ls(c,C){return(await fetch(`${Se}/cron-jobs/${encodeURIComponent(c)}/toggle`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({enabled:C})})).json()}async function os(c){return(await fetch(`${Se}/cron-jobs/${encodeURIComponent(c)}/run`,{method:"POST"})).json()}async function vs(c){return(await fetch(`${Se}/cron-jobs/${encodeURIComponent(c)}`,{method:"DELETE"})).json()}const cs="Scheduled Tests — Plum",is="Scheduled Tests",ds="Manage recurring test runs via cron jobs",fs="+ New Job",us="No scheduled tests yet. Create one to get started.",_s="Task Name",ms="Use a unique, meaningful name",ps="nightly-login-suite",bs="Schedule",hs="Select a schedule",Es="Custom…",gs="0 9 * * 1-5",ks="Invalid cron expression",ys="Tags",Ns="Multiple: @test-1 or @test-2. Leave blank to run all tests",xs="@suite-login (optional)",Cs="Workers",Ss="Parallel workers for this job",Ls="Browser",Ts="Runners",$s="Select one or more nodes",Rs="this server",Is="Notifications",As="All fields are required.",ws="Invalid cron expression.",Os="Failed to save. Please try again.",ht="Network error.",Ds="Could not update schedule.",Us="Could not trigger run.",Bs="Could not delete cron job.",Ps="Delete Cron Job",Hs="Are you sure you want to delete",Ms="Disable schedule",Ws="Enable schedule",Js="Running now",Gs="Name",Fs="Schedule",Vs="Tags",Ks="Workers",qs="Browser",zs="Runner",Xs="Actions",Qs=c=>c?"Edit Cron Job":"New Cron Job",Ys=c=>c?"Save Changes":"Add Cron Job",Zs=c=>c?Ms:Ws,js=c=>`Run ${c} now`,ea=c=>`${c} nodes`,ta=(c,C)=>`${c?"Updated":"Added"}: ${C}`,sa=c=>`Started: ${c}`,aa=c=>`Deleted: ${c}`,na=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];function ra(c){if(!c)return"";const C=c.trim().split(/\s+/);if(C.length!==5)return"";const[X,Q,w,I,S]=C,B=(L,j)=>{const ee=L>=12?"PM":"AM";return`${L%12||12}:${String(j).padStart(2,"0")} ${ee}`},h=L=>/^\d+$/.test(L),k=h(Q)?+Q:null,p=h(X)?+X:null;if(c==="* * * * *")return"Every minute";const P=X.match(/^\*\/(\d+)$/);if(P&&Q==="*"&&w==="*"&&I==="*"&&S==="*")return`Every ${P[1]} minutes`;if(p!==null&&Q==="*"&&w==="*"&&I==="*"&&S==="*")return`Every hour at :${String(p).padStart(2,"0")}`;if(p!==null&&k!==null&&w==="*"&&I==="*"&&S==="1-5")return`Weekdays at ${B(k,p)}`;if(p!==null&&k!==null&&w==="*"&&I==="*"&&S==="*")return`Daily at ${B(k,p)}`;if(p!==null&&k!==null&&w==="*"&&I==="*"&&/^\d$/.test(S))return`Every ${na[+S]} at ${B(k,p)}`;const O=h(w)?+w:null;return p!==null&&k!==null&&O!==null&&I==="*"&&S==="*"?`Monthly on the ${O}${O===1?"st":O===2?"nd":O===3?"rd":"th"} at ${B(k,p)}`:""}var la=x('<option class="svelte-13v7bmf"> </option>'),oa=x('<p class="cron-desc svelte-13v7bmf"> </p>'),va=x('<input type="text" class="field-input cron-input svelte-13v7bmf" spellcheck="false"> <!>',1),ca=x('<button type="button" class="seg-btn svelte-13v7bmf"><span class="seg-num svelte-13v7bmf"> </span></button>'),ia=x('<label class="runner-check-option svelte-13v7bmf"><input type="checkbox" class="svelte-13v7bmf"> <span class="runner-check-dot remote svelte-13v7bmf"></span> <span class="svelte-13v7bmf"> </span> <span class="runner-check-hint svelte-13v7bmf"> </span></label>'),da=x('<label class="notify-check-option svelte-13v7bmf"><input type="checkbox" class="svelte-13v7bmf"> <span class="svelte-13v7bmf"></span></label>'),fa=x('<label class="notify-check-option svelte-13v7bmf"><input type="checkbox" class="svelte-13v7bmf"> <span class="svelte-13v7bmf"></span></label>'),ua=x('<div class="field svelte-13v7bmf"><div class="field-label svelte-13v7bmf"><span class="svelte-13v7bmf"></span></div> <div class="notify-checks svelte-13v7bmf"><!> <!></div></div>'),_a=x('<p class="form-error svelte-13v7bmf"> </p>'),ma=x('<form class="modal-form svelte-13v7bmf"><div class="field svelte-13v7bmf"><div class="field-label svelte-13v7bmf"><span class="svelte-13v7bmf"></span> <span class="field-hint svelte-13v7bmf"></span></div> <input type="text" class="field-input svelte-13v7bmf" required></div> <div class="field svelte-13v7bmf"><div class="field-label svelte-13v7bmf"><span class="svelte-13v7bmf"></span></div> <select class="field-input svelte-13v7bmf" required><option disabled class="svelte-13v7bmf"></option><!><option class="svelte-13v7bmf"></option></select> <!></div> <div class="field svelte-13v7bmf"><div class="field-label svelte-13v7bmf"><span class="svelte-13v7bmf"></span> <span class="field-hint svelte-13v7bmf"></span></div> <input type="text" class="field-input svelte-13v7bmf"></div> <div class="field svelte-13v7bmf"><div class="field-label svelte-13v7bmf"><span class="svelte-13v7bmf"></span> <span class="field-hint svelte-13v7bmf"></span></div> <div class="stepper svelte-13v7bmf"><button type="button" class="step-btn svelte-13v7bmf">−</button> <span class="step-val svelte-13v7bmf"> </span> <button type="button" class="step-btn svelte-13v7bmf">+</button></div></div> <div class="field svelte-13v7bmf"><div class="field-label svelte-13v7bmf"><span class="svelte-13v7bmf"></span></div> <div class="seg-control svelte-13v7bmf"></div></div> <div class="field svelte-13v7bmf"><div class="field-label svelte-13v7bmf"><span class="svelte-13v7bmf"></span> <span class="field-hint svelte-13v7bmf"></span></div> <div class="runner-checks svelte-13v7bmf"><label class="runner-check-option svelte-13v7bmf"><input type="checkbox" class="svelte-13v7bmf"> <span class="runner-check-dot built-in svelte-13v7bmf"></span> <span class="svelte-13v7bmf"></span> <span class="runner-check-hint svelte-13v7bmf"></span></label> <!></div></div> <!> <!> <!></form>'),pa=x(' <strong class="svelte-13v7bmf"> </strong> ',1),ba=x('<span class="running-dot svelte-13v7bmf"></span>'),ha=x('<tr class="job-row svelte-13v7bmf"><td class="td-toggle svelte-13v7bmf"><button class="toggle-btn svelte-13v7bmf"><span class="toggle-knob svelte-13v7bmf"></span></button></td><td class="td-run svelte-13v7bmf"><button class="run-icon-btn svelte-13v7bmf"><svg width="10" height="10" viewBox="0 0 24 24" fill="currentColor" stroke="none" class="svelte-13v7bmf"><polygon points="5,3 19,12 5,21" class="svelte-13v7bmf"></polygon></svg></button></td><td class="job-name svelte-13v7bmf"><!> </td><td class="svelte-13v7bmf"><!></td><td class="svelte-13v7bmf"><span class="tag-text svelte-13v7bmf"> </span></td><td class="svelte-13v7bmf"><span class="workers-badge svelte-13v7bmf"> </span></td><td class="svelte-13v7bmf"><span class="browser-badge svelte-13v7bmf"> </span></td><td class="svelte-13v7bmf"><span class="runner-badge svelte-13v7bmf"><!></span></td><td class="actions-cell svelte-13v7bmf"><!> <!></td></tr>'),Ea=x('<div class="table-wrap svelte-13v7bmf"><table class="data-table svelte-13v7bmf"><thead class="svelte-13v7bmf"><tr class="svelte-13v7bmf"><th class="th-toggle svelte-13v7bmf"></th><th class="th-run svelte-13v7bmf"></th><th class="svelte-13v7bmf"></th><th class="svelte-13v7bmf"></th><th class="svelte-13v7bmf"></th><th class="svelte-13v7bmf"></th><th class="svelte-13v7bmf"></th><th class="svelte-13v7bmf"></th><th class="svelte-13v7bmf"></th></tr></thead><tbody class="svelte-13v7bmf"></tbody></table></div>'),ga=x('<!> <!> <div class="page-header svelte-13v7bmf"><div class="header-row svelte-13v7bmf"><div class="svelte-13v7bmf"><h1 class="svelte-13v7bmf"></h1> <p class="subtitle svelte-13v7bmf"></p></div> <!></div></div> <div class="card svelte-13v7bmf" style="padding: 0; overflow: hidden;"><!></div>',1);function Pa(c,C){Ut(C,!1);const[X,Q]=Wt(),w=()=>Jt(jt,"$backgroundRuns",X),I=/^(\*|([0-5]?[0-9])|\*\/[0-9]+) (\*|([01]?[0-9]|2[0-3])) (\*|([01]?[0-9]|3[01])) (\*|([1-9]|1[0-2])) (\*|[0-6](-[0-6])?)$/,S="__custom__",B=[{label:"Every minute",value:"* * * * *"},{label:"Every hour",value:"0 * * * *"},{label:"Every midnight",value:"0 0 * * *"},{label:"Every Sunday",value:"0 0 * * 0"}];let h=U([]),k=U([]),p=U({discordWebhookUrl:"",slackWebhookUrl:"",notifyPublicUrl:""}),P=U(!1),O=U(!1),L=U(!1),j="",ee=U(""),r=U({taskName:"",cronExpression:"",tags:"",workers:1,browser:Pe[0].id,runnerIds:[z],notifyDiscord:!1,notifySlack:!1}),Le=U(""),Te=U(!1),G=U("");function Et(s){s.target.value===S?(v(Te,!0),W(r,e(r).cronExpression="")):(v(Te,!1),W(r,e(r).cronExpression=s.target.value))}function ot(s){const m=e(r).runnerIds;m.includes(s)&&m.length===1||W(r,e(r).runnerIds=m.includes(s)?m.filter(d=>d!==s):[...m,s])}function vt(s){W(r,e(r).workers=Math.max(1,Math.min(10,(e(r).workers||1)+s)))}function gt(){v(L,!1),j="",v(r,{taskName:"",cronExpression:"",tags:"",workers:1,browser:Pe[0].id,runnerIds:[z],notifyDiscord:!1,notifySlack:!1}),v(Le,""),v(Te,!1),v(G,""),v(P,!0)}function kt(s){v(L,!0),j=s.taskName;const m=new Set([z,...e(k).map(y=>y.id)]),T=(s.runnerIds?s.runnerIds.split(",").map(y=>y.trim()):[z]).filter(y=>m.has(y));v(r,{taskName:s.taskName,cronExpression:s.cronExpression,tags:s.tags,workers:s.workers??1,browser:s.browser??Pe[0].id,runnerIds:T.length>0?T:[z],notifyDiscord:s.notifyDiscord??!1,notifySlack:s.notifySlack??!1});const $=B.some(y=>y.value===s.cronExpression);v(Te,!$),v(Le,$?s.cronExpression:S),v(G,""),v(P,!0)}async function yt(){if(!e(r).taskName||!e(r).cronExpression){v(G,As);return}if(!I.test(e(r).cronExpression)){v(G,ws);return}v(G,"");try{(await rs({...e(r),isEditing:e(L),editTaskName:j})).message?(fe("success",ta(e(L),e(r).taskName)),v(P,!1),v(h,await lt())):v(G,Os)}catch{v(G,ht)}}async function Nt(s){const m=!s.enabled;v(h,e(h).map(d=>d.taskName===s.taskName?{...d,enabled:m}:d));try{await ls(s.taskName,m)}catch{v(h,e(h).map(d=>d.taskName===s.taskName?{...d,enabled:!m}:d)),fe("error",Ds)}}async function xt(s){try{await os(s),fe("success",sa(s))}catch{fe("error",Us)}}async function Ct(){try{(await vs(e(ee))).message?(fe("success",aa(e(ee))),v(h,await lt())):fe("error",Bs)}catch{fe("error",ht)}v(O,!1),v(ee,"")}function St(s){var m;return((m=B.find(d=>d.value===s))==null?void 0:m.label)??s}Bt(async()=>{await(async s=>(v(h,s[0]),v(k,s[1]),v(p,s[2])))(await Promise.all([lt(),Qt().catch(()=>[]),Yt().catch(()=>({discordWebhookUrl:"",slackWebhookUrl:"",notifyPublicUrl:""}))]))}),Dt();var ct=ga();wt(s=>{Ht.title=cs});var it=Ke(ct);const Lt=M(()=>Qs(e(L)));ss(it,{get title(){return e(Lt)},get open(){return e(P)},set open(s){v(P,s)},children:(s,m)=>{var d=ma(),T=n(d),$=n(T),y=n($);y.textContent=_s;var ue=t(y,2);ue.textContent=ms,a($);var _e=t($,2);de(_e),q(_e,"placeholder",ps),a(T);var me=t(T,2),pe=n(me),He=n(pe);He.textContent=bs,a(pe);var te=t(pe,2);R(()=>{e(Le),Mt(()=>{})});var se=n(te);se.value=((se.__value="")==null,""),se.textContent=hs;var Me=t(se);qe(Me,1,()=>B,ze,(o,i)=>{var l=la(),b={},A=n(l,!0);a(l),R(()=>{b!==(b=e(i).value)&&(l.value=(l.__value=e(i).value)==null?"":e(i).value),g(A,e(i).label)}),f(o,l)});var _=t(Me);_.value=(_.__value=S)==null?"":S,_.textContent=Es,a(te);var Ze=t(te,2);{var ae=o=>{var i=va(),l=Ke(i);de(l),q(l,"placeholder",gs);var b=t(l,2);{var A=H=>{var F=oa(),Ue=n(F,!0);a(F),R((Be,V)=>{Ce(F,"cron-invalid",Be),g(Ue,V)},[()=>!I.test(e(r).cronExpression),()=>I.test(e(r).cronExpression)?ra(e(r).cronExpression)||e(r).cronExpression:ks],M),f(H,F)};J(b,H=>{e(r).cronExpression&&H(A)})}rt(l,()=>e(r).cronExpression,H=>W(r,e(r).cronExpression=H)),f(o,i)};J(Ze,o=>{e(Te)&&o(ae)})}a(me);var D=t(me,2),ne=n(D),Y=n(ne);Y.textContent=ys;var $e=t(Y,2);$e.textContent=Ns,a(ne);var be=t(ne,2);de(be),q(be,"placeholder",xs),a(D);var re=t(D,2),he=n(re),We=n(he);We.textContent=Cs;var je=t(We,2);je.textContent=Ss,a(he);var Ee=t(he,2),Re=n(Ee),le=t(Re,2),Je=n(le,!0);a(le);var Ge=t(le,2);a(Ee),a(re);var oe=t(re,2),ve=n(oe),et=n(ve);et.textContent=Ls,a(ve);var ge=t(ve,2);qe(ge,5,()=>Pe,ze,(o,i)=>{var l=ca(),b=n(l),A=n(b,!0);a(b),a(l),R(()=>{Ce(l,"active",e(r).browser===e(i).id),g(A,e(i).label)}),K("click",l,()=>W(r,e(r).browser=e(i).id)),f(o,l)}),a(ge),a(oe);var ke=t(oe,2),Ie=n(ke),ye=n(Ie);ye.textContent=Ts;var Ae=t(ye,2);Ae.textContent=$s,a(Ie);var Fe=t(Ie,2),we=n(Fe),Ne=n(we);de(Ne);var Oe=t(Ne,4);Oe.textContent=mt;var Ve=t(Oe,2);Ve.textContent=Rs,a(we);var tt=t(we,2);qe(tt,1,()=>e(k),ze,(o,i)=>{var l=ia(),b=n(l);de(b);var A=t(b,4),H=n(A,!0);a(A);var F=t(A,2),Ue=n(F,!0);a(F),a(l),R(Be=>{pt(b,Be),g(H,e(i).name),g(Ue,e(i).url)},[()=>e(r).runnerIds.includes(e(i).id)],M),K("change",b,()=>ot(e(i).id)),f(o,l)}),a(Fe),a(ke);var u=t(ke,2);{var E=o=>{var i=ua(),l=n(i),b=n(l);b.textContent=Is,a(l);var A=t(l,2),H=n(A);{var F=V=>{var ce=da(),ie=n(ce);de(ie);var at=t(ie,2);at.textContent=Ft,a(ce),bt(ie,()=>e(r).notifyDiscord,nt=>W(r,e(r).notifyDiscord=nt)),f(V,ce)};J(H,V=>{e(p).discordWebhookUrl&&V(F)})}var Ue=t(H,2);{var Be=V=>{var ce=fa(),ie=n(ce);de(ie);var at=t(ie,2);at.textContent=Vt,a(ce),bt(ie,()=>e(r).notifySlack,nt=>W(r,e(r).notifySlack=nt)),f(V,ce)};J(Ue,V=>{e(p).slackWebhookUrl&&V(Be)})}a(A),a(i),f(o,i)};J(u,o=>{(e(p).discordWebhookUrl||e(p).slackWebhookUrl)&&o(E)})}var N=t(u,2);{var De=o=>{var i=_a(),l=n(i,!0);a(i),R(()=>g(l,e(G))),f(o,i)};J(N,o=>{e(G)&&o(De)})}var st=t(N,2);Xe(st,{type:"submit",size:"md",children:(o,i)=>{xe();var l=Z();R(b=>g(l,b),[()=>Ys(e(L))],M),f(o,l)},$$slots:{default:!0}}),a(d),R(o=>{Re.disabled=e(r).workers<=1,g(Je,e(r).workers),Ge.disabled=e(r).workers>=10,pt(Ne,o)},[()=>e(r).runnerIds.includes(z)],M),rt(_e,()=>e(r).taskName,o=>W(r,e(r).taskName=o)),zt(te,()=>e(Le),o=>v(Le,o)),K("change",te,Et),rt(be,()=>e(r).tags,o=>W(r,e(r).tags=o)),K("click",Re,()=>vt(-1)),K("click",Ge,()=>vt(1)),K("change",Ne,()=>ot(z)),K("submit",d,Xt(yt)),f(s,d)},$$slots:{default:!0},$$legacy:!0});var dt=t(it,2);as(dt,{title:Ps,get open(){return e(O)},set open(s){v(O,s)},$$events:{confirm:Ct},children:(s,m)=>{xe();var d=pa(),T=Ke(d);T.nodeValue=`${Hs} `;var $=t(T),y=n($,!0);a($);var ue=t($,1,!0);ue.nodeValue=Gt,R(()=>g(y,e(ee))),f(s,d)},$$slots:{default:!0},$$legacy:!0});var Qe=t(dt,2),ft=n(Qe),Ye=n(ft),ut=n(Ye);ut.textContent=is;var Tt=t(ut,2);Tt.textContent=ds,a(Ye);var $t=t(Ye,2);Xe($t,{$$events:{click:gt},children:(s,m)=>{xe();var d=Z();d.nodeValue=fs,f(s,d)},$$slots:{default:!0}}),a(ft),a(Qe);var _t=t(Qe,2),Rt=n(_t);{var It=s=>{ns(s,{message:us,size:"sm"})},At=s=>{var m=Ea(),d=n(m),T=n(d),$=n(T),y=t(n($),2);y.textContent=Gs;var ue=t(y);ue.textContent=Fs;var _e=t(ue);_e.textContent=Vs;var me=t(_e);me.textContent=Ks;var pe=t(me);pe.textContent=qs;var He=t(pe);He.textContent=zs;var te=t(He);te.textContent=Xs,a($),a(T);var se=t(T);qe(se,5,()=>e(h),ze,(Me,_,Ze)=>{var ae=ha();const D=M(()=>e(_).runnerIds?e(_).runnerIds.split(",").map(u=>u.trim()):[z]);var ne=n(ae),Y=n(ne);a(ne);var $e=t(ne),be=n($e);a($e);var re=t($e),he=n(re);{var We=u=>{var E=ba();q(E,"title",Js),f(u,E)};J(he,u=>{Zt(w(),e(_).taskName)&&u(We)})}var je=t(he);a(re);var Ee=t(re),Re=n(Ee);ts(Re,{variant:"schedule",children:(u,E)=>{xe();var N=Z();R(De=>g(N,De),[()=>St(e(_).cronExpression)],M),f(u,N)},$$slots:{default:!0}}),a(Ee);var le=t(Ee),Je=n(le),Ge=n(Je,!0);a(Je),a(le);var oe=t(le),ve=n(oe),et=n(ve);a(ve),a(oe);var ge=t(oe),ke=n(ge),Ie=n(ke,!0);a(ke),a(ge);var ye=t(ge),Ae=n(ye),Fe=n(Ae);{var we=u=>{var E=Z();E.nodeValue=mt,f(u,E)},Ne=u=>{var E=Ot(),N=Ke(E);{var De=o=>{var i=Z();R(l=>g(i,l),[()=>{var l;return((l=e(k).find(b=>b.id===e(D)[0]))==null?void 0:l.name)??e(D)[0]}],M),f(o,i)},st=o=>{var i=Z();R(l=>g(i,l),[()=>ea(e(D).length)],M),f(o,i)};J(N,o=>{e(D).length===1?o(De):o(st,!1)},!0)}f(u,E)};J(Fe,u=>{e(D).length===1&&e(D)[0]===z?u(we):u(Ne,!1)})}a(Ae),a(ye);var Oe=t(ye),Ve=n(Oe);Xe(Ve,{variant:"ghost",size:"sm",$$events:{click:()=>kt(e(_))},children:(u,E)=>{xe();var N=Z();N.nodeValue=Kt,f(u,N)},$$slots:{default:!0}});var tt=t(Ve,2);Xe(tt,{variant:"danger",size:"sm",$$events:{click:()=>{v(ee,e(_).taskName),v(O,!0)}},children:(u,E)=>{xe();var N=Z();N.nodeValue=qt,f(u,N)},$$slots:{default:!0}}),a(Oe),a(ae),R((u,E,N)=>{q(ae,"style",u),Ce(ae,"disabled",!e(_).enabled),q(Y,"title",E),q(Y,"aria-label",E),q(Y,"aria-pressed",e(_).enabled),Ce(Y,"on",e(_).enabled),q(be,"title",N),g(je,` ${e(_).taskName??""}`),g(Ge,e(_).tags),Ce(ve,"multi",e(_).workers>1),g(et,`×${e(_).workers??""}`),g(Ie,e(_).browser??Pe[0].id),Ce(Ae,"multi-node",e(D).length>1)},[()=>es(Ze),()=>Zs(e(_).enabled),()=>js(e(_).taskName)],M),K("click",Y,()=>Nt(e(_))),K("click",be,()=>xt(e(_).taskName)),f(Me,ae)}),a(se),a(d),a(m),f(s,m)};J(Rt,s=>{e(h).length===0?s(It):s(At,!1)})}a(_t),f(c,ct),Pt(),Q()}export{Pa as component};